function switchDisplay(obj) {
	var el = document.getElementById(obj);
	if ( el.style.display != 'none' ) {
		el.style.display = 'none';
	}
	else {
		el.style.display = '';
	}
}


function isEmail(val) {
  if (window.RegExp) {
  	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if (filter.test(val)) return true;
	else return false;
  }
  else{
     // there must be >= 1 character before @, so we start looking at character position 1 (i.e. second character)
    var i = 1;
    var sLength = val.length;

    // look for @
    while ((i < sLength) && (val.charAt(i) != "@")){ i++  }

    if ((i >= sLength) || (val.charAt(i) != "@")) return false;
    else i += 2;

    // look for .
    while ((i < sLength) && (val.charAt(i) != ".")){ i++ }

    // there must be at least one character after the .
    if ((i >= sLength - 1) || (val.charAt(i) != ".")) return false;
    else return true;
  }
}


function selectValidate(frmSelect){
	return frmSelect.options[frmSelect.selectedIndex].value
}

function dropdownValidate(frmSelect){
	return selectValidate(frmSelect)
}


function radioValidate(frmRadio){
	var i=0; 
	var bvaluecheck=false;
	for (var x=0; x<frmRadio.length;x++){
		bvaluecheck = frmRadio[x].checked || bvaluecheck;
	}	
	return bvaluecheck
}

function checkboxValidate(frmCheckbox){
	var bvaluecheck=false;
	var str = (frmCheckbox.length) + "";
	var bstr = (str == "undefined" || str == "null" || str == "");
	
	if (!bstr){
	 	bvaluecheck = (frmCheckbox[0].checked) || bvaluecheck;
		return bvaluecheck
	}

	bvaluecheck = frmCheckbox.checked || bvaluecheck;
	return bvaluecheck
}

function radioValidateList(conds){
	var List = arguments;
	var boll = "";
	var iconds = conds.length;
	
	for (var i=1; i<arguments.length; i++){
		if (iconds>1){
			boll = boll + eval(radioValidate(List[i])).toString() + ((i<=conds.length)?conds[i-1]:"");
		}else{
			boll = boll + eval(radioValidate(List[i])).toString() + ((i<arguments.length-1)?conds[0]:"");
		}
	}
	
	return eval(boll);
}

function checkboxValidateList(conds){
	var List = arguments;
	var boll = "";
	var iconds = conds.length;
	
	for (var i=1; i<arguments.length; i++){
		if (iconds>1){
			boll = boll + eval(checkboxValidate(List[i])).toString() + ((i<=conds.length)?conds[i-1]:"");
		}else{
			boll = boll + eval(checkboxValidate(List[i])).toString() + ((i<arguments.length-1)?conds[0]:"");
		}
	}
	return eval(boll);
}

//Call this function first before using uniqueValideate() 
//if you need to set the form name to a different name
var strUniqueValideateSetForm = null;
function uniqueValideateSetForm(frmName){
	if (frmName!=null){
		strUniqueValideateSetForm = frmName;
		return frmName;
	}
	return "forms[0]";
}

function uniqueValideate(){
	var selectArray = new Array(arguments.length);
	var str = "";
	var frmName = uniqueValideateSetForm(strUniqueValideateSetForm);
	
	for (var i= 0;i < arguments.length;i++)
	{
		str = "document." + frmName + "." + arguments[i] + ".options[document." + frmName + "." + arguments[i] + ".selectedIndex].value"
		selectArray[i] = eval(str);
	}
		
	for (var x=1;x<selectArray.length;x++){
		if (selectArray[0]==selectArray[x]){
			return false;
		}
	} 
	return true 
}

//Call this function first before using uniqueValidateReset() 
//if you need to set the form name to a different name
var strUniqueValidateResetSetForm = null;
function uniqueValidateResetSetForm(frmName){
	if (frmName!=null){
		strUniqueValidateResetSetForm = frmName;
		return frmName;
	}
	return "forms[0]";
}

function uniqueValidateReset(){
	var selectArray = new Array(arguments.length);
	var objSelArray = new Array(arguments.length);
	var frmName = uniqueValidateResetSetForm(strUniqueValidateResetSetForm);
	var str = "";
	
	for (var i= 0;i < arguments.length;i++)
	{
		if (eval("document." + frmName + "." + arguments[i] + ".selectedIndex")!=-1){
			str = "document." + frmName + "." + arguments[i] + ".options[document." + frmName + "." + arguments[i] + ".selectedIndex].value"
			selectArray[i] = eval(str);
			str = "document." + frmName + "." + arguments[i] 
			objSelArray[i] = eval(str);
		}
	}
		
	for (var x=1;x<selectArray.length;x++){
		
		if (selectArray[0]==selectArray[x] && !(selectArray[0]=="" || selectArray[x]=="")){
			//objSelArray[x].selectedIndex=0;
			objSelArray[0].selectedIndex=0;
			return false;
		}
	} 
	return true 
}

function calculate(a,b,c,d) {
	a = Number(a);
	b = Number(b);
	c = Number(c);
	d = Number(d);
	if (a+b+c+d != 100) {
		//alert("less than 100");
		return false;
	} 
	else return true;
}

function calculate2() {
	var isum=0;
	for (var i=0; i<arguments.length; i++){
		isum +=  Number(arguments[i]);
	}
	if (isum != 100) {
		//alert("less than 100");
		return false;
	} 
	else return true;
}

function isNumber(valuehere){
	return ((Number(valuehere)+"")!="NaN");
}

function fcnTextLimit(objText, limit, errMsgCustom) {
   var old = objText.value;
   var old_len  = objText.value.toString().length;
   var newText = old;
   if (old_len>limit){
   	 var errsHere = errMsgCustom + "";
   	 var berrsHere = (errsHere!="" && errsHere!="null" && errsHere!="undefined")
	 if (berrsHere){
  	 	 alert(errMsgCustom);
	 }else{
  	 	 alert("Character limit is " + limit + " characters");
	 }
   }
   objText.value = newText;
}

function fcnTextLimitError(objText, limit, errMsgCustom) {
   var old = objText.value;
   var old_len  = objText.value.toString().length;
   var errMsg = "";
   if (old_len>limit){
   	 errMsg = "Character limit is " + limit + " characters";	 
   	 var errsHere = errMsgCustom + "";
   	 var berrsHere = (errsHere!="" && errsHere!="null" && errsHere!="undefined")
	 if (berrsHere){
  	 	 errMsg = errMsgCustom;
	 }else{
  	 	 errMsg = "Character limit is " + limit + " characters";
	 }	 
   }
   return errMsg;
}

function vallidateWords(str, limit, errorMsg){
	return validateWords(str, limit, errorMsg);
}

function validateWords(str, limit, errorMsg){
	var testStr = new String(str+"");
	var testStr_limit = testStr.split(" ");
	var testStr_error = testStr_error + "";
	
	if (testStr_limit.length>limit && (errorMsg!=null && testStr_error!="")){
		alert(errorMsg);
		return false;
	}else if (testStr_limit.length>limit){
		return false;
	}
	
	return true;
}
