//================== openWindow =======================
// Opens a page in a pop-up window.
// url = url of web page
// intWidth = width of window
// intHeight = height of window
// intScrollbar = show/hide scrollbar (0 = hide, 1 = show)
function openWindow(url, intWidth, intHeight, intScrollbar)
{
    wintop = (window.screen.availHeight - intHeight)/2;
    winleft = (window.screen.availWidth - intWidth)/2;
    wResult = window.open(url, 'popup', "RESIZABLE=0,WIDTH=" + intWidth + ",HEIGHT=" + intHeight + ",SCROLLBARS=" + intScrollbar + ",LEFT=" + winleft + ",TOP=" + wintop);
}

// Check whether string s is empty.
function isEmpty(s)
{   return ((s == null) || (s.length == 0))
}

// Returns true if string s is empty or 
// whitespace characters only.
function isWhitespace (s)
{   var i;
    var whitespace = " \t\n\r";
    // Is s empty?
    if (isEmpty(s)) return true;

    // Search through string's characters one by one
    // until we find a non-whitespace character.
    // When we do, return false; if we don't, return true.
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);

        if (whitespace.indexOf(c) == -1) return false;
    }

    // All characters are whitespace.
    return true;
}

// isEmail (STRING s [, BOOLEAN emptyOK])
// 
// Email address must be of form a@b.c -- in other words:
// * there must be at least one character before the @
// * there must be at least one character before and after the .
// * the characters @ and . are both required
//
// For explanation of optional argument emptyOK,
// see comments of function isInteger.
function isEmail (s)
{   if (isEmpty(s)) 
       if (isEmail.arguments.length == 1) return false;
       else return (isEmail.arguments[1] == true);
   
    // is s whitespace?
    if (isWhitespace(s)) return false;
    
    // there must be >= 1 character before @, so we
    // start looking at character position 1 
    // (i.e. second character)
    var i = 1;
    var sLength = s.length;

    // look for @
    while ((i < sLength) && (s.charAt(i) != "@"))
    { i++
    }

    if ((i >= sLength) || (s.charAt(i) != "@")) return false;
    else i += 2;

    // look for .
    while ((i < sLength) && (s.charAt(i) != "."))
    { i++
    }

    // there must be at least one character after the .
    if ((i >= sLength - 1) || (s.charAt(i) != ".")) return false;
    else return true;
}

// =================== THE FOLLOWING ARE UTILITIES FOR POP-UP (TOOLTIP) TEXT =======================
var ie=document.all;
var ns6=document.getElementById && !document.all;
function makeItVisible(id, event)
{
  if (document.getElementById) { // Netscape 6.0+ and Internet Explorer 5.0+
    var xpos;
	var ypos;
	elm=document.getElementById(id);
	  
	if (ns6) {
	  xpos = window.pageXOffset + event.pageX;
	  ypos =  window.pageYOffset + event.pageY;
	}
	else {
	  xpos = document.documentElement.scrollLeft + event.clientX + 10;
	  ypos = document.documentElement.scrollTop + event.clientY + 10;
	}  
	
    elm.top = ypos;
    elm.left = xpos;
    elm.style.visibility = "visible";
  }
}
function hideHelp(id)
{
  if (document.getElementById) document.getElementById(id).style.visibility="hidden";
}


/******************************************************************************
 * killChars
 * use this function on an input's onchange() or onkeyup() to kill unwanted characters
 ******************************************************************************/
function killChars(string, totype) {
	switch(totype) {
		case 'money': // kill anything that's not a number or decimal
			return string.replace(/[^\d.]/g, '');
		break;
		
		case 'zip':
			return string.replace(/[^\d\-]/g, '');
		break;

		case 'numberonly':
			return string.replace(/[^\d]/g, '');
		break;
		
		case 'phone':
			return string.replace(/[^\d\- x().]/g, '');
		break;
		
		default:
			return string;
		break;
	}
}

function checkMax(field, max, msg) {
	if(!field) return false;
	if(field.value > max) {
		field.style.color = "#f00";
		
		if(msg) alert(msg);
		
		return false;
	} field.style.color = "inherit";
	
	return true;
}

// Change pre-filled form fields from gray to black (used with onblur and onfocus events)
function hovertxt(obj,flag){

    if(!flag)
    {
        if(obj.value.length < 1 || obj.value==obj.title )
             {   obj.value="";
                 obj.className="black-txt";

              }
    }else {
     if(obj.value.length<1 ||  obj.value=="")
      {  obj.value=obj.title;
         obj.className="grey-txt";

      }

    }
}
