/*
	  Copyright (C) Brain Box, Inc.
	  All JavaScript contained here in is the intellectual property of Brain Box, Inc. unless stated otherwise
	  Any use of this code without written permission or license is prohibited
	  To obtain permission to use this code visit http://www.brainboxdev.com/codelicense.aspx
	  
	  field id|field label|required flag|validator function
	  required flag values
	    1=required anytime
		2=required for new
		3=required for existing
		0=not required
  */
  
  function bbChkForm(frm,frmId){
	var newForm = false;
	if(frm.action.indexOf("id=") == -1){
	  newForm = true;
	}
	for(i=0;i<arrFields.length;i++){
		var arrTemp = arrFields[i].split("|");
		if(arrTemp[3] == "validateRadio"){
			var isChecked = false;
			var arrRadId = new Array();
			var cntRad = 0;
			for(j=0;j<frm.length;j++){
				if(frm[j].id.indexOf(arrTemp[0]+frmId) != -1){
					arrRadId[cntRad] = frm[j].id;
					cntRad++;
				}
			}
			for(j=0;j<arrRadId.length;j++){
			  if(document.getElementById(arrRadId[j]).checked){
				isChecked = true;
				break;
			  }
			}
			
			if(!isChecked) {
	  			alert("You must make a selection on " + arrTemp[1] + ".");
				document.getElementById(arrRadId[0]).focus();
	  			return false;
			}
		}else if(arrTemp[3] == "validateCheckbox"){
			if(!document.getElementById(arrTemp[0]+frmId).checked){
				alert(arrTemp[1]);
				document.getElementById(arrTemp[0]+frmId).focus();
				return false;
			}
		}else{
			var objFld = document.getElementById(arrTemp[0]+frmId);
	  		if(arrTemp[2] == "1" || (arrTemp[2] == "2" && newForm == true) || (arrTemp[2] == 0 && arrTemp[3].length != 0)){
	    		if(objFld.value.length == 0){
		 	 		alert("Please enter your "+arrTemp[1]+".");
		  			objFld.focus();
		  			return false;
				}
	  		}
			if(arrTemp[3].length != 0 && objFld.value.length != 0){  
				if(eval(arrTemp[3]+"('"+objFld.value+"','"+arrTemp[1]+"')") == false){
		 		 	objFld.select();
		  			objFld.focus();
		 			return false;
				}
	  		}
		}
	}
	return true;
  }
  
 function validatePhone(strIn,fldLabel){
    strIn = strIn.replace("(","").replace(")","").replace(/ /g,"").replace(/-/g,"");
	if(isNaN(strIn) || strIn.length != 10){
	  alert(fldLabel+" is not a valid phone number.");
	  return false;
	}else{
	  return true;
	}
  }
  
  function validateUrl(strIn,fldLabel){
	var strTemp = 'droid@'+strIn;
	var re = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$|(\[?((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\]?)$/i );
	if(re.test(strIn) == false){
	  alert(fldLabel+" is not a domain name.");
	  return false;
	}else{
	  return true;
	}
  }
  
  function validateEmail(strIn,fldLabel){
	var re = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$|(\[?((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\]?)$/i );
	if(re.test(strIn) == false){
	  alert(fldLabel+" is not a valid email address.");
	  return false;
	}else{
	  return true;
	}
  }
  
  function validateCode(strIn, fldLabel) {
	strIn = strIn.replace("-", "");
	if(strIn.length < 5) {
	  alert(fldLabel + " is not valid.");
	  return false;
	}else{
	  return true;
	}
  }
  
  function validateDate(strIn, intDayDiff){
	  var arrDate = strIn.split("/");
	  if(arrDate.length != 3){
		return false;  
	  }else{
		 if(isNaN(arrTemp[0]) || isNaN(arrTemp[1]) || isNaN(arrTemp[2]) || arrTemp[0] == 0 || arrTemp[0] > 12 || arrTemp[2] < 1000 || arrTemp[1] == 0){
			return false;										  
		 }else{
			if(arrTemp[1] == 2){
				if(arrTemp[2] % 4 == 0){
				  if(arrTemp[1] > 29){
					return false;
				  }
				}else{
				  if(arrTemp[1] > 28){
					return false;
				  }
				}
			}else if(arrTemp[1] == 4 || arrTemp[1] == 6 || arrTemp[1] == 9 || arrTemp[1] == 11){
				if(arrTemp[1] > 30){
				  return false;	
				}
			}else{
				if(arrTemp[1] > 31){
				  return false;	
				}
			}
		 }
	  }
	  if(intDayDiff.length && !isNaN(intDayDiff)){
		intDayDiff *= 86400;
		if(getDays(arrTemp[0],arrTemp[1],arrTemp[2]) <= getDays(now.getMonth(),now.getDay(),now.getFullYear())+intDayDiff){
		  alert("The year you entered for your Date of Birth is not valid.");
		  return false;	
		}
	  }
	  return true;
  }
  
  function getDays(intMon, intDay, intYear){
	dDate=new Date();
	intMon = parseInt(intMon - 1);
	intDay = parseInt(intDay);
	intYear = parseInt(intYear);
	dDate.setMonth(intMon,intDay);
    dDate.setFullYear(intYear);
    dDate.setHours(0,0,0);
    return (dDate.getTime()-dDate.getMilliseconds())/1000;
  }