<!-- Begin

//----------------------------------------------------------------------------
//form validation
function ValidateForm(frm) {
	var msg = "";
	switch(frm.name) {
		case "frm1":
			if(!trim(frm.firstname.value))			{ msg += "* First Name :\n"; }
			if(!trim(frm.lastname.value))			{ msg += "* Last Name :\n"; }
			if(!trim(frm.phone.value))				{ msg += "* Phone :\n"; }
			if(!trim(frm.email.value))				{ msg += "* E-mail Address :\n"; }
		break;
	}
	if(msg) {
		msg = "The following fields are required\n"+msg;
		alert(msg);
		return false;
	}
}

//---- js tools ------
//windows popup 
function winpop(strURL, objName, width, height) {
	window.open(strURL, objName, 'scrollbars=yes,resizable=no,height=' + height + ',width=' + width +',left=' + (screen.width-width)/2 + ',top='+ (screen.height-height)/2 +',status=0');
}

//replace invalid chars (for username)
function InvalidChars(frmObj) {
	var regInvalid = /[ ,:~!@#$%^&*()?"'`<>+=|{}\/\\/]/gi;
	var str = frmObj.value.toLowerCase();

	if (str.match(regInvalid))	frmObj.value = str.replace(regInvalid,"");
}

//digits & valid phone/fax chas
function ValidatePhoneFax(frmObj) {
	var regNotPhone=/[^- +_,.#\/(0-9)]/gi;
	var tmpStr=frmObj.value;
	if(tmpStr.match(regNotPhone)) {
		frmObj.value=tmpStr.replace(regNotPhone,"");
	}
}

//integers input only
function ValidateInt(frmObj) {
	var regNotInt=/[^0-9]/gi;
	var tmpStr=frmObj.value;
	frmObj.value=tmpStr.replace(regNotInt,"");
}

//old e-mail address validation
/*
function ValidateEmail(frmObj) {
	var regEmail=/\b(^(\S+@).+((\.com)|(\.net)|(\.edu)|(\.mil)|(\.gov)|(\.org)|(\.biz)|(\..{2,2}))$)\b/gi;
	frmObj.value = frmObj.value.toLowerCase();
	if(trim(frmObj.value)){
		if(!regEmail.test(frmObj.value)) {
			alert("Sorry, invalid email address format.");
			frmObj.value = "";
			//frmObj.select();
			frmObj.focus();
		}
	} else { frmObj.value = ""; }
}
*/

//e-mail address
function ValidateEmail(addr,man,db) {
	if (addr == '' && man) {
	   if (db) alert('email address is mandatory');
	   return false;
	}
	var invalidChars = '\/\'\\ ";:?!()[]\{\}^|';
	for (i=0; i<invalidChars.length; i++) {
	   if (addr.indexOf(invalidChars.charAt(i),0) > -1) {
		  if (db) alert('email address contains invalid characters');
		  return false;
	   }
	}
	for (i=0; i<addr.length; i++) {
	   if (addr.charCodeAt(i)>127) {
		  if (db) alert("email address contains non ascii characters.");
		  return false;
	   }
	}
	
	var atPos = addr.indexOf('@',0);
	if (atPos == -1) {
	   if (db) alert('email address must contain an @');
	   return false;
	}
	if (atPos == 0) {
	   if (db) alert('email address must not start with @');
	   return false;
	}
	if (addr.indexOf('@', atPos + 1) > - 1) {
	   if (db) alert('email address must contain only one @');
	   return false;
	}
	if (addr.indexOf('.', atPos) == -1) {
	   if (db) alert('email address must contain a period in the domain name');
	   return false;
	}
	if (addr.indexOf('@.',0) != -1) {
	   if (db) alert('period must not immediately follow @ in email address');
	   return false;
	}
	if (addr.indexOf('.@',0) != -1){
	   if (db) alert('period must not immediately precede @ in email address');
	   return false;
	}
	if (addr.indexOf('..',0) != -1) {
	   if (db) alert('two periods must not be adjacent in email address');
	   return false;
	}
	var suffix = addr.substring(addr.lastIndexOf('.')+1);
	if (suffix.length != 2 && suffix != 'com' && suffix != 'net' && suffix != 'org' && suffix != 'edu' && suffix != 'int' && suffix != 'mil' && suffix != 'gov' & suffix != 'arpa' && suffix != 'biz' && suffix != 'aero' && suffix != 'name' && suffix != 'coop' && suffix != 'info' && suffix != 'pro' && suffix != 'museum') {
	   if (db) alert('invalid primary domain in email address');
	   return false;
	}
	return true;
}

//alert feedback
function feedback(obj,msg) {
	alert(msg);
	obj.focus()
	return false;
}

//trim spaces - used by other functions
function trim(value) {
   var temp = value;
   var obj = /^(\s*)([\W\w]*)(\b\s*$)/;
   if (obj.test(temp)) { temp = temp.replace(obj, '$2'); }
   var obj = / +/g;
   temp = temp.replace(obj, " ");
   if (temp == " ") { temp = ""; }
   return temp;
}

//uppercase/lowercase text value
function LowerCase(frmObj){
	frmObj.value = frmObj.value.toLowerCase();
}	
function UpperCase(frmObj){
	frmObj.value = frmObj.value.toUpperCase();
}	
function ProperCase(frmObj) {
	var index;
	var tmpStr;
	var tmpChar;
	var preString;
	var postString;
	var strlen;

	tmpStr = trim(frmObj.value.toLowerCase());
	strLen = tmpStr.length;

	if (strLen > 0)  {
		for (index = 0; index < strLen; index++)  {
			if (index == 0)  {
				tmpChar = tmpStr.substring(0,1).toUpperCase();
				postString = tmpStr.substring(1,strLen);
				tmpStr = tmpChar + postString;
			} else {
				tmpChar = tmpStr.substring(index, index+1);
				if ((tmpChar == " " || tmpChar == "-") && index < (strLen-1))  {
					tmpChar = tmpStr.substring(index+1, index+2).toUpperCase();
					preString = tmpStr.substring(0, index+1);
					postString = tmpStr.substring(index+2,strLen);
					tmpStr = preString + tmpChar + postString;
	         	}
	      	}
	   }
	}
	frmObj.value = tmpStr;
}
-->
