/*
** Title  : Boss Survey Error Scripts
** Desc   : 
** Created: 04/01/2002
** Creator: Bryan Peterson
** Changed: 10/09/2003 SC numCheck
** Additions: 10/09/2003 SC checkForm,numCheckB,numCheck2,MultipleLimit,clearMultiple
**	      03/31/2005 SC TextAreaLimit
** History: 
** Notes  : Scripts Called from ErrorHandler.cls
**			
*/




function checkForm(theForm,strfld){
	var i = 0;
	var check = 0;

	for (i=0; i< theForm.elements.length; i++){
		if (theForm.elements[i].name == strfld){
			check = 1;
		}
	}
	if(check == 1)
		{return true;}
	else
		{return false;}
}


function validateForm()
{
	if(confirm("Are you sure you want to submit this form?"))
	{
		return true;
	}
	else
	{
		return false;
	}
}

function isEmpty(entered)
{
	with (entered)
	{
		if (value==null || value=="")
		{
			return false;
		}
		else 
		{
			return true;
		}
	}
}
	
function dropdownchk(entered)
{
	with (entered)
	{
		if (selectedIndex==0)
		{
			return true;
		}
		else 
		{
			return false;
		}
	}
}
	
function radioChk(fieldName) {
	var optionSelected = -1;
	for (i=0; i<fieldName.length; i++) {
		if (fieldName[i].checked)
		{
			optionSelected = fieldName[i].value;
		}
	}
	if (optionSelected == -1 || optionSelected == 0) {
		return false;
	}
	return true;
}
	


function checkValidAge( form, status, field ){
	if ( field.value == '')
		return status;
	if( numberchk( field , 0, 100, 'I') == false){
		errorStr = errorStr + "Age: please enter a valid number\n";
		return false;
	}		
	return status;	
}

function checkValidEmail(field) {
	var emailField = field;
	if (field.value==null || field.value=="")
	{
	return true;
	}
	else 
	if ( field.value.length < 5 || field.value.indexOf("@") < 1 || field.value.indexOf(".") < 1) { 
		alert("Please enter a valid email address.\n");
		//errorStr = errorStr + "you must enter a valid email address:\n";
		emailField.focus();
		emailField.select();
		return false;
	} 
	return true;		
}



function numCheck(field) {
	var valid = "0123456789-";
	var numField = field;
	var ok = "yes";
	var temp;
	for (var i=0; i<field.value.length; i++) {
		temp = "" + field.value.substring(i, i+1);
	if (valid.indexOf(temp) == "-1") ok = "no";
	}
	if (ok == "no") {
		alert("You must enter a whole number.\n");
		//errorStr = errorStr + "You must enter a whole number:\n";
		numField.focus();
		numField.select();
		return false;
	}
	return true;
}

function numCheckB(field,xlbound,xubound) {
	var valid = "0123456789";
	var numField = field;
	var ok = "yes";
	var temp;
	var bounds = "";
	if (field.value==null || field.value=="")
	{
	return true;
	}
	for (var i=0; i<field.value.length; i++) {
		temp = "" + field.value.substring(i, i+1);
	if (valid.indexOf(temp) == "-1") ok = "no";
	}
	if ((ok == "yes") && (xubound < 999999999)) 
	{
		bounds = " between " + xlbound + " and " + xubound;
		if ((numField.value >= xlbound) && (numField.value <= xubound)) 
		{
			ok = "yes";
		}
		else 
		{
			ok = "no";
		}
	}
	if (ok == "no") 
	{
		alert("You must enter a whole number" + bounds + ".\n");
		//errorStr = errorStr + "You must enter a whole number:\n";
		numField.focus();
		numField.select();
		numField.value = "";
		return false;
	}
	return true;
}

function numCheck2(field) {
	var valid = "0123456789.";
	var numField = field;
	var ok = "yes";
	var temp;
	for (var i=0; i<field.value.length; i++) {
		temp = "" + field.value.substring(i, i+1);
	if (valid.indexOf(temp) == "-1") ok = "no";
	}
	if (ok == "no") {
		alert("You must enter a numeric value.\n");
		//errorStr = errorStr + "You must enter a numeric value:\n";
		numField.focus();
		numField.select();
		return false;
	}
	return true;
}

function validateZip(field) {
	var valid = "0123456789-";
	var hyphencount = 0;
	var zipField = field;
	
	if (field.value==null || field.value=="")
	{
	return true;
	}
	else 
	if (field.value.length!=5 && field.value.length!=10) {
	alert("Please enter your 5 digit or 5 digit +4 zip code.\n");
	errorStr = errorStr + "Please enter your 5 digit or 5 digit +4 zip code.\n";
	zipField.focus();
	zipField.select();
	return false;
	}
	for (var i=0; i < field.value.length; i++) {
		temp = "" + field.value.substring(i, i+1);
	if (temp == "-") hyphencount++;
	if (valid.indexOf(temp) == "-1") {
		alert("Invalid characters in your zip code.  Please try again.\n");
		errorStr = errorStr + "Invalid characters in your zip code.  Please try again.\n";
	zipField.focus();
	zipField.select();
	return false;
	}
	if ((hyphencount > 1) || ((field.value.length==10) && ""+field.value.charAt(5)!="-")) {
		alert("The hyphen character should be used with a properly formatted 5 digit+four zip code, like '12345-6789'.   Please try again.\n");
		errorStr = errorStr + "The hyphen character should be used with a properly formatted 5 digit+four zip code, like '12345-6789'.   Please try again.\n";
	zipField.focus();
	zipField.select();
	return false;
   }
}
	return true;
}

function checkDate(field){
	var checkstr = "0123456789";
	var DateField = field;
	var Datevalue = "";
	var DateTemp = "";
	var seperator = "/";
	var day;
	var month;
	var year;
	var leap = 0;
	var err = 0;
	var i;
   		err = 0;
   		DateValue = DateField.value;

   for (i = 0; i < DateValue.length; i++) {
	  if (checkstr.indexOf(DateValue.substr(i,1)) >= 0) {
	     DateTemp = DateTemp + DateValue.substr(i,1);
	  }
   }
   DateValue = DateTemp;
   if (DateValue.length == 6 && DateValue.substr(4,2) > 30) {
      DateValue = DateValue.substr(0,4) + '19' + DateValue.substr(4,2); }
   if (DateValue.length == 6 && DateValue.substr(4,2) <= 30) {
      DateValue = DateValue.substr(0,4) + '20' + DateValue.substr(4,2); }
   if (DateValue.length != 8) {
      err = 19;}
   year = DateValue.substr(4,4);
   if (year == 0) {
      err = 20;
   }  
   day = DateValue.substr(2,2);
   if (day < 1) {
     err = 22;
   }
   month = DateValue.substr(0,2);
   if ((month < 1) || (month > 12)) {
      err = 21;
   }
   if ((year % 4 == 0) || (year % 100 == 0) || (year % 400 == 0)) {
      leap = 1;
   }
   if ((month == 2) && (leap == 1) && (day > 29)) {
      err = 23;
   }
   if ((month == 2) && (leap != 1) && (day > 28)) {
      err = 24;
   }
   if ((day > 31) && ((month == "01") || (month == "03") || (month == "05") || (month == "07") || (month == "08") || (month == "10") || (month == "12"))) {
      err = 25;
   }
   if ((day > 30) && ((month == "04") || (month == "06") || (month == "09") || (month == "11"))) {
      err = 26;
   }
   if ((month == 0) && (day == 0) && (year == 00)) {
      err = 0; month = ""; day = ""; year = ""; seperator = "";
   }
   if (err == 0) {
	  DateField.value = month + seperator + day + seperator + year
   }
   else {
      alert("Date Format is incorrect!\n")
      DateField.select();
	  DateField.focus();
	  return false;
   }
	return true;
}


function TextAreaLimit(fldnm) {
     maxlength=500;
     if(document.forms[0].elements[fldnm].value.length>maxlength) {
	  document.forms[0].elements[fldnm].value = document.forms[0].elements[fldnm].value.substring(0, maxlength);
          alert("Your comments must be 500 characters or less");
          document.forms[0].elements[fldnm].focus();
          return false;
     } else {
          return true;
     }
}
	


function MultipleLimit(fldnm,numflds,limit){
	var cntsel = 0;
	var allfldnm = "";
	for (var i = 1; i <= numflds; i++) {
		allfldnm = "Question" + i + fldnm;
		if (document.forms[0].elements[allfldnm].checked){
		cntsel = cntsel + 1;
	}
}
	if (cntsel > limit){
	alert("Please only choose " + limit);
	return true;
	}
	else{
	return false;
	}
}

function clearMultiple(fldnm,numflds,thisname,field){
	var cntsel = 0;
	var allfldnm = "";
	if ((field.name == thisname ) && (document.forms[0].elements[thisname].checked == true)){
		for (var i = 1; i <= numflds; i++) {
		allfldnm = "Question" + i + fldnm;
			if (allfldnm != thisname){
			document.forms[0].elements[allfldnm].checked = false;
			cntsel = cntsel + 1;
			}
		}
	}else{
		document.forms[0].elements[thisname].checked = false;
		}

}




