// Pop-up window generator
var popUpWin = null;
function popUpWindow(URLStr, left, top, width, height)
{
  if(popUpWin) { if(!popUpWin.closed) popUpWin.close();}
  popUpWin = open(URLStr, 'popUpWin', 'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,copyhistory=1,width='+width+',height='+height+',left='+left+',top='+top+',screenX='+left+',screenY='+top+'');
//  popUpWin = open(URLStr, 'popUpWin', 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,copyhistory=yes,width='+width+',height='+height+',left='+left+',top='+top+',screenX='+left+',screenY='+top+'');
  popUpWin.focus();
}
//function popBox(thepage) {
//   window.open(thepage, "title", 'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=0,width=400,height=300');
//}
// MouseOver image swap 
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}
// Functions that swap images.
function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

// Functions that handle preload.
function MM_preloadImages() { //v3.0
 var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
   var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
   if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
// validate mail names
// If the string does not contain invalid characters, the function will return true.
// If it does, it will either return false or a list of the invalid characters used in the string if a second argument is present and 'true'
function validateString(string) {
	validChars = '1234567890-_.^~abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
	invalidChars = '';
	if(string == null || string == '') { return true; }	// Well no characters are invalid so it's a valid string!
	for(index = 0; index < string.length; index++) {	// For every character on the string...
		char = string.substr(index, 1);
		if(validChars.indexOf(char) == -1) {	// Is it a valid character?
			if(invalidChars.indexOf(char) == -1) {	//If not, is it already on the list of invalid characters?
				invalidChars += char;	// If not, add it
			}
		}
	}
	if(arguments.length > 1 && arguments[1] == true && invalidChars != '') {
		return(invalidChars);	// if second argument exists and is true, return invalid char list if any
	} else {
		return(invalidChars == '');	// otherwise a simple true/false
	}
}
// email format validation script
function emailCheck(str) {
	if (str == "") { return false; }	// check for the obvious first!
	var at="@";
	var dot=".";
	var firstat=str.indexOf(at);
	var lastat=str.lastIndexOf(at);
	var lenstr=str.length;
	var firstdot=str.indexOf(dot);
	var lastdot=str.lastIndexOf(dot);
	if (lenstr > 256) { return false; }	// longer than this is highly unlikely and probably a spoof!
	if (firstat == -1 || firstat == 0 || lastat == lenstr-1) { return false; }	// must have at least one @ inside atring (not first or last char)
	if (firstat != lastat) { return false; }	// must have only one @
	if (firstdot == -1 || firstdot == 0 || lastdot == lenstr-1) { return false; }	// must have at least one dot inside string (not first or last char)
	if (lastdot < firstat) { return false; } // must have a dot after the @
	if (str.substring(firstat-1,firstat) == dot || str.substring(firstat+1,firstat+2) == dot) { return false; }	// can't have dot immediately before or after @
	if (str.indexOf("..") != -1) { return false; }	// no double dots
	if (str.indexOf(" ") != -1) { return false; }	// no spaces
	if (!validateString(str.substring(0, firstat)) || !validateString(str.substring(firstat+1))) { return false; }	// check name & domain for invalid chars
	return true;
}

