/*
Javascript library created by CD  7/19/2005

Unused things and the coments moved to cuf-off-javascript.js
Every downloaded byte matters :] AJ 4/25/2006 
*/
global_showerrors=0; 
function validAlphanumeric(fieldobj,errorMsg) {
	 var strpattern=/^[0-9a-zA-Z]+$/;
	 if (fieldobj) {
	 	 removeSpace(fieldobj);
		 if (fieldobj.value!="") {
			 boolresult=strpattern.test(fieldobj.value);
			if (!boolresult)	{
				showpoperror(fieldobj,errorMsg);	
				fieldobj.focus();		
				return false;
			}
		 }			
	 }	
	return true;	
}

function validHexColor(fieldobj,errorMsg) {
	 var strpattern=/^#{0,1}[0-9,a-f,A-F]{6}$/;
	 if (fieldobj) {
	 	 removeSpace(fieldobj);
		 if (fieldobj.value!="") {
			 boolresult=strpattern.test(fieldobj.value);
			if (!boolresult)	{
				showpoperror(fieldobj,errorMsg);	
				fieldobj.focus();		
				return false;
			}
		 }			
	 }	
	return true;	
}

function validString (fieldobj,errorMsg) {
	 var strpattern=/^[0-9a-zA-Z\s\-\\\/:_\.#]+$/;   //'.', '_', '/', ':', '\' and '-'"   
	 if (fieldobj) {
	 	if ((!fieldobj.length) && (fieldobj.type =='text' || fieldobj.type == 'textarea' || 
			     fieldobj.type == 'password' || fieldobj.type == 'file')) {
		 	removeSpace(fieldobj);
			if (fieldobj.value!="") {
				boolresult=strpattern.test(fieldobj.value);
				if (!boolresult)	{
					showpoperror(fieldobj,errorMsg);	
					fieldobj.focus();		
					return false;
				}
			}
		}				
	 }	
	return true;	
}

function validUSZip(zipfieldobj,errorMsg) {
	if (zipfieldobj && zipfieldobj.form) {
		countryfieldobj=zipfieldobj.form.country; //note the country field is hardcoded.		
		if (countryfieldobj) {
		 	if ((!zipfieldobj.length) && (zipfieldobj.type =='text') && (countryfieldobj.type.indexOf('select') != -1)) {
				removeSpace(zipfieldobj);
				if (zipfieldobj.value!="") {
					var selx=countryfieldobj.options.selectedIndex;
					var selvalue=countryfieldobj.options[selx].value;			
					if (selvalue=='US') {
						if (!validNum(zipfieldobj,errorMsg)) 
							return false;
						if (zipfieldobj.value.length!=5) {
							showpoperror(zipfieldobj,errorMsg);				
							zipfieldobj.focus();		
							return false;						
						}	
					}
				}
			}
		}
	}	
	return true;	
}

function validCardExpire(mthobj,errorMsg) {
	if (mthobj && mthobj.form && (mthobj.type.indexOf('select') != -1)) {
		yearobj=mthobj.form.expyear; //note the field is hardcoded.		
		if (yearobj &&  (yearobj.type.indexOf('select') != -1)) {
			var today = new Date();			
			var thisyear=today.getFullYear();
			var thismonth=today.getMonth();
			var selmonth=mthobj.options[mthobj.options.selectedIndex].value;
			var selyear=yearobj.options[yearobj.options.selectedIndex].value;
			if ( (thisyear > selyear) || (thisyear == selyear && thismonth >= selmonth  ) ) {
				showpoperror(mthobj,errorMsg);			
				return false;
			}
		}
	}	
	return true;
}

function validConfirmPassword(fieldobj,errorMsg) {
	if (fieldobj && fieldobj.form)  {		
		passfieldobj=fieldobj.form.password; //note the password field is hardcoded	
		if (!passfieldobj)
			passfieldobj=fieldobj.form.adminpassword;
		if (passfieldobj) { 			
			if ( (!passfieldobj.length) && (passfieldobj.type =='text' || passfieldobj.type =='password') && (!fieldobj.length) && (fieldobj.type =='text' || fieldobj.type =='password') ) {
				if (passfieldobj.value !=fieldobj.value) {					
					showpoperror(fieldobj,errorMsg);				
					fieldobj.focus();		
					return false;						
				}			
			}			
		}	
	}
	return true;
}

function validConfirmPasswordNew(filedNobj,fieldobj,errorMsg) {
	if (filedNobj)  {		
		passfieldobj=filedNobj; //note the password field is hardcoded	
		if (passfieldobj) { 			
			if ( (!passfieldobj.length) && (passfieldobj.type =='text' || passfieldobj.type =='password') && (!fieldobj.length) && (fieldobj.type =='text' || fieldobj.type =='password') ) {
				if (filedNobj.value !=fieldobj.value) {					
					showpoperror(fieldobj,errorMsg);				
					fieldobj.focus();		
					return false;						
				}			
			}			
		}	
	}
	return true;
}


function validrequired(fieldobj,errorMsg) {
	var result = true;	
	
if (fieldobj) {
	if (!fieldobj.length) { // only one element 
		if (fieldobj.type =='text' || fieldobj.type == 'textarea' || fieldobj.type == 'password' || fieldobj.type == 'file') {
			removeSpace(fieldobj);		
			if (fieldobj.value == "") {
				showpoperror(fieldobj,errorMsg);					
				fieldobj.focus();
				result = false;
			}
		}	
		//select value - select seems to have a length attribute as determined by options so it would normally go to else block
		if (fieldobj.type.indexOf('select') != -1) {													
			var selx=fieldobj.options.selectedIndex;
			var selvalue=fieldobj.options[selx].value;			
			if (selvalue=="") {				
				showpoperror(fieldobj,errorMsg);					
				fieldobj.focus();
				result = false;
			}		
		}
	    if (fieldobj.type == 'radio' || fieldobj.type == 'checkbox') {
			var checked = fieldobj.checked;
			if (!checked) {
				showpoperror(fieldobj,errorMsg);					
				fieldobj.focus();
				result =  false;
			 }
		}
	 }			
	 
	else {  
		if ((fieldobj.type) && fieldobj.type.indexOf('select') != -1) {																	
			var selx=fieldobj.options.selectedIndex;
			var selvalue=fieldobj.options[selx].value;			
			if (selvalue=="") {				
				showpoperror(fieldobj,errorMsg);					
				fieldobj.focus();
				result = false;
			}		
		}	
		else if (fieldobj[0].type == 'radio' || fieldobj[0].type == 'checkbox') {								
		      var ischecked = false;
			  for (var r = 0; r < fieldobj.length; r++) {				  	
		          if (fieldobj[r].checked==true) {
				    ischecked=true;
		            break;
				  }
			   }	  	
			   
		      if (!ischecked) {
				showpoperror(fieldobj[0],errorMsg);					
	        	result =  false;
		      }
		}
   }	
  }
 return result;	
}

	
function validmaxLength	(fieldobj,errorMsg,fieldlent) {
	if (fieldobj) {
		removeSpace(fieldobj);
		if (fieldobj.value!="") { 
			// FF/NS5 counts newlines as only 1 char, but submits as 2...
			numCRs = 0;
			if (navigator.appName=="Netscape" && parseInt(navigator.appVersion)>=5)
				numCRs = fieldobj.value.split('\n').length - 1;
			//alert(numCRs + fieldobj.value.length);
			if ((fieldobj.value.length + numCRs) > fieldlent) {
				showpoperror(fieldobj,errorMsg);	
				fieldobj.focus();
				return false;	
			}
		}
	}	
	return true;
}

function validminLength	(fieldobj,errorMsg,fieldlent) {
	if (fieldobj) {
		removeSpace(fieldobj);
		if (fieldobj.value!="") { 
			if ( fieldobj.value.length < fieldlent ) {
				showpoperror(fieldobj,errorMsg);	
				fieldobj.focus();
				return false;	
			}
		}
	}	
	return true;
}

function validEmail(fieldobj,errorMsg) {
	if (fieldobj) {
		removeSpace(fieldobj);
		if (fieldobj.value!="") { 
			if (!isEmailAddr(fieldobj.value)) {
				showpoperror(fieldobj,errorMsg);					
				fieldobj.focus();
				return false;
			}   
		}
	}	
	return true;
}	

function validNum(fieldobj,errorMsg) { 	
	 var strpattern=/^[0-9]+(\.[0-9]+)?$/;  // allows decimal numbers
//	 var strpattern=/^[0-9]+$/;  // allows only straight integers
	 if (fieldobj) {
	 	 removeSpace(fieldobj);
		 if (fieldobj.value!="") {
			 boolresult=strpattern.test(fieldobj.value);
			if (!boolresult)	{
				showpoperror(fieldobj,errorMsg);	
				fieldobj.focus();		
				return false;
			}
		 }			
	 }	
	return true;
}

function validLettersOnly(fieldobj,errorMsg) { 	
	 var strpattern=/^[A-Za-z]+$/;  // allows letters only
	 if (fieldobj) {
	 	 removeSpace(fieldobj);
		 if (fieldobj.value!="") {
			 boolresult=strpattern.test(fieldobj.value);
			if (!boolresult)	{
				showpoperror(fieldobj,errorMsg);	
				fieldobj.focus();		
				return false;
			}
		 }			
	 }	
	return true;
}

function validLettersAndSpaces(fieldobj,errorMsg) { 	
	 var strpattern=/^[A-Za-z\s]+$/;  // allows spaces
	 if (fieldobj) {
	 	 removeSpace(fieldobj);
		 if (fieldobj.value!="") {
			 boolresult=strpattern.test(fieldobj.value);
			if (!boolresult)	{
				showpoperror(fieldobj,errorMsg);	
				fieldobj.focus();		
				return false;
			}
		 }			
	 }	
	return true;
}

function validNumberSapacesAndDashes(fieldobj,errorMsg) { 	
	 var strpattern=/^[0-9\s-\/]+$/;  // allows spaces
	 if (fieldobj) {
	 	 removeSpace(fieldobj);
		 if (fieldobj.value!="") {
			 boolresult=strpattern.test(fieldobj.value);
			if (!boolresult)	{
				showpoperror(fieldobj,errorMsg);	
				fieldobj.focus();		
				return false;
			}
		 }			
	 }	
	return true;
}


function validSurname(fieldobj,errorMsg) { 	
	 var strpattern=/^[A-Za-z\s\.\-\'\,]+$/;  // allows spaces
	 if (fieldobj) {
	 	 removeSpace(fieldobj);
		 if (fieldobj.value!="") {
			 boolresult=strpattern.test(fieldobj.value);
			if (!boolresult)	{
				showpoperror(fieldobj,errorMsg);	
				fieldobj.focus();		
				return false;
			}
		 }			
	 }	
	return true;
}

function validNumGtZero(fieldobj,errorMsg) { 	
	var result;
	 if (fieldobj) {
	 	 removeSpace(fieldobj);
		 if (fieldobj.value!="") {
			 boolresult=allDigits(fieldobj.value) && fieldobj.value!=0;
			if (!boolresult)	{
				showpoperror(fieldobj,errorMsg);	
				fieldobj.focus();		
				return false;
			}
		 }			
	 }	
	return true;
}

/* this one just strips the separators and checks if its a number.. Needs to be modified */
function validPhone(fieldobj,errorMsg) {	
	if (fieldobj) {
		removeSpace(fieldobj);
		if (fieldobj.value!="") { 
			var phone = fieldobj.value.replace(/[\(\)\.\-\ ]/g, '');	
			if (isNaN(phone)) 	{
				showpoperror(fieldobj,errorMsg);	
				fieldobj.focus();
				return false;
			}  
		}	
	}	
  return true;		
}

function switchImage(imgName, imgSrc) {
  if (document.images)  {
  	if (imgSrc != "none")
		 document.images[imgName].src = imgSrc;
  }
}


function removeSpace(obj) {
	if ((!obj.length) && (obj.type == 'text' || obj.type == 'textarea' || obj.type == 'password')) {
		var origStr=obj.value;
		while (origStr.substring(0,1)==" ") {
		    var lent=origStr.length;
			if (lent == 0)
				break;
			origStr=origStr.substring(1,lent);
			}	
		lent=origStr.length;	
	    if (lent !=0) {
			while (origStr.substring(lent-1,lent)==" ") {
				if (lent == 0)
					break;
				origStr=origStr.substring(0,lent-1);
				var lent=origStr.length;
			}
		}	 
		obj.value=origStr;		
	}
 }
	
function isEmailAddr(email) {
	// var emailFilter=/^.+@.+\.(.{2,3}|aero|coop|info|museum|name|travel)$/;
	 var emailFilter=/^([A-Za-z0-9][\.\w\-]*)?[A-Za-z0-9]@[A-Za-z0-9][\.\w\-]*\.([A-Za-z]{2,3}|aero|coop|info|museum|name|travel)$/;
	 return emailFilter.test(email);
}

function validInteger(fieldobj,errorMsg) { 	
	var result;
	 if (fieldobj) {
	 	 removeSpace(fieldobj);
		 if (fieldobj.value!="") {
			 boolresult=inValidCharSet(fieldobj.value,"-0123456789");
			if (!boolresult)	{
				showpoperror(fieldobj,errorMsg);	
				fieldobj.focus();		
				return false;
			}
		 }			
	 }	
	return true;
}
 
function allDigits(str)
{
	return inValidCharSet(str,"0123456789");
}

function inValidCharSet(str,charset)
{
	var result = true;
	// Note: doesn't use regular expressions to avoid early Mac browser bugs	
	for (var i=0;i<str.length;i++)
		if (charset.indexOf(str.substr(i,1))<0)
		{
			result = false;
			break;
		}
	
	return result;
}

function chkqty(obj) {
	var boxvalue=obj.qty.value;
	var result=allDigits(boxvalue) && boxvalue!=0;
	if (!result) alert("Please enter a numeric value greater than 0 in the quantity box"); 
	return result;
}

function checkChosenOptions(obj) {

	var varOptArray = obj.attributeValueID;
	var varOptList = "";
	for (i = 0; i < varOptArray.length; i++) {
		varOptList = varOptList +  varOptArray[i].value + ",";
	}
	
	var prodOptArray = obj.prodOptions;
	var prodOptList = "";
	for (i = 0; i < prodOptArray.length; i++) {
		prodOptList = prodOptList +  prodOptArray[i].value + ",";
	}
	
	//alert("var: " + varOptList.search(/090909/));
	if (varOptList.search(/090909/) > -1) {
		alert("All options are required.  Please choose one from each field.");
		return false;
	}
	
	//alert("prod: " + prodOptList.search(/090909/));
	if (prodOptList.search(/090909/) > -1) {
		alert("All options are required.  Please choose one from each field.");
		return false;
	}

	//alert("qty: " + chkqty(obj));
	if (!chkqty(obj)) {
		obj.qty.focus();
		return false;
	}
	
	return true;
}

/*  Confirmation javascript simply provide a message for this function for confirmation popup */
function Confirmit(mess) {
		var confirmVar=confirm(mess);
		return confirmVar;		
	}	

	
function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}


 function doClear(theText) 
{
     if (theText.value == theText.defaultValue)
 {
         theText.value = ""
     }
 }


