/*************************************************************************
Page: Utility
Purpose: Provide utility javascript functions and validation schemes for pages
Author: CP
Date Created: 8/27/03
Date Edited:
*************************************************************************/

//========================================================================
//Validate Date. Ex. 11/06/1972
var strAlertMsg = ""
var focusField = ""
function isDate(strFieldName,strMsg){
var objFormField = document.forms[0].elements[strFieldName];
strDate = objFormField.value;
if(strDate.length>0){
		var dateregex=/^[ ]*[0]?(\d{1,2})\/(\d{1,2})\/(\d{4,})[ ]*$/;
			var match=strDate.match(dateregex);
			if (match){
					var tmpdate=new Date(match[3],parseInt(match[1],10)-1,match[2]);
				if (tmpdate.getDate()==parseInt(match[2],10) && tmpdate.getFullYear()==parseInt(match[3],10) && (tmpdate.getMonth()+1)==parseInt(match[1],10)){ 
					return true; 
					}
			}
				strAlertMsg += "- "+ strMsg +" must formatted.\nExample: 01/01/2003\n";
			if(!focusField) focusField =""+ strFieldName +"";
		return false;
}
else{
		return true;
}
}
//========================================================================
//Validate Us Phone. Ex. (999) 999-9999 or (999)999-9999
function isPhone(strFieldName,strMsg)     {
    var objFormField = document.forms[0].elements[strFieldName];
    var strValue = objFormField.value;
    var objRegExp  = /^\([1-9]\d{2}\)\s?\d{3}\-\d{4}$/;
     if(!objRegExp.test(strValue)){
         strAlertMsg += "- "+ strMsg +" is formatted incorrectly.\n    Example: (999)999-9999\n";
    if(!focusField) focusField=""+ strFieldName +"";
         return false;
         }
    return true;
}
//========================================================================
//Validate US zip code in 5 digit format or zip+4 format. 99999 or 99999-9999
function isZipCode(strFieldName,strMsg)     {
    var objFormField = document.forms[0].elements[strFieldName];
    var strValue = objFormField.value;
    var objRegExp  = /(^\d{5}$)|(^\d{5}-\d{4}$)/;
    if(!objRegExp.test(strValue)){
         strAlertMsg += "- "+ strMsg +" is Required.\n";
    if(!focusField) focusField =""+ strFieldName +"";
         return false;
         }
    return true;
}
//==========================================================================
//Validate the Select
function hasSelection(strFieldName,strMsg)     {
    var objFormField = document.forms[0].elements[strFieldName];
    if(objFormField.selectedIndex ==0)     {
         strAlertMsg += "- "+ strMsg +" is Required.\n";
          return false; 
           }
    return true; 
}
//========================================================================
//Validate Check Box
function isChecked(strFieldName,strMsg) {
    var objFormField= document.forms[0].elements[strFieldName];
    var strValue= objFormField.checked;
    if (!strValue) {
         //alert("The \""+ strMsg +"\" box is checked!")
         //} else {
         strAlertMsg += "- "+ strMsg +" is Required.\n";
    if(!focusField) focusField =""+ strFieldName +"";
         return false;
         }
    return true;
}
//========================================================================
//Validate Text Box
function isEmpty(strFieldName,strMsg){
    var objFormField = document.forms[0].elements[strFieldName];
    var strValue = objFormField.value;
    strValue = strValue.split(" ").join("")
    if(strValue.length<1){
         strAlertMsg += "- "+ strMsg +" is Required.\n";
    if(!focusField) focusField =""+ strFieldName +"";
         return false;
         }
    return true;
}
//========================================================================
//Validate Email
function isEmail(strFieldName,strMsg){
    var objFormField = document.forms[0].elements[strFieldName]
    var strEmail = objFormField.value;
    var bolValid = true;
         if(strEmail.length < 7){
         bolValid = false;
         }
         if(strEmail.lastIndexOf(" ") >0){
         bolValid = false;
         }
         var intLastDot = strEmail.lastIndexOf(".")
         if(intLastDot == -1 ||  strEmail.length - intLastDot >4){
         bolValid = false;
         }
         var intAt = strEmail.lastIndexOf("@")
         if(intAt == -1 ||  strEmail.length - intAt < 5){
         bolValid = false;
         }
         if(!bolValid){
         strAlertMsg += "- "+ strMsg +" is not a correct address.\n";
    if(!focusField) focusField =""+ strFieldName +"";
         }
    return bolValid;
}
//========================================================================
//Validate Radio Button
function checkRadioControl(strFieldName,strMsg){
         var objFormField = document.forms[0].elements[strFieldName]
         intControlLength = objFormField.length
         bolSelected = false;
         for (i=0;i<intControlLength;i++){
         if(objFormField[i].checked){
         bolSelected = true;
         break;
         }
    }     
     if(! bolSelected){
         strAlertMsg += "- "+ strMsg +" is Required.\n";
         return false;
         }
    return true;
}
//========================================================================
//Compare the Fields
function compareFields(strFieldName1,strFieldName2,strMsg){
         var objFormField1= document.forms[0].elements[strFieldName1];
         var objFormField2= document.forms[0].elements[strFieldName2];
         var strValue1= objFormField1.value;
         var strValue2= objFormField2.value;
    if(strValue1 != strValue2){
         strAlertMsg +="The "+ strMsg +" fields do not match, please try again.\n"; 
     if(!focusField) focusField =""+ strFieldName1 +"";
         return false; 
          }
    return true;
}
//========================================================================
//Format Phone Number 9999999999 = (999)999-9999
//Call the function like so onKeyPress="javascript:formatPhone(this);
function formatPhone(objFormField){
    intFieldLength = objFormField.value.length;
    if(intFieldLength == 3){
         objFormField.value = "(" + objFormField.value + ") ";
         return false;
         }
   if(intFieldLength >= 9 && intFieldLength <= 10){
       objFormField.value = objFormField.value + "-";
       return false;
       }
}
//========================================================================
//Validate is Number
function isNumber(strFieldName,strMsg){
 var objFormField = document.forms[0].elements[strFieldName];
 if(isNaN(objFormField.value)){
         strAlertMsg += "- "+ strMsg +" must be a number.\n";
    if(!focusField) focusField =""+ strFieldName +"";
         return false;
         }
}
//========================================================================
//Validate ExpDate. Ex. 11/72
function isExpDate(strFieldName,strMsg){
var objFormField = document.forms[0].elements[strFieldName];
strDate = objFormField.value;
		var dateregex=/^[0-9][0-9]\/[0-9][0-9]$/;
			var match=strDate.match(dateregex);
			if (match){return true;}
				strAlertMsg += "- "+ strMsg +" must formatted.\nExample: 01/05\n";
			if(!focusField) focusField =""+ strFieldName +"";
		return false;
}

function fixMoney(strFieldName,strMsg)
{ // monetary field check
  var objFormField = document.forms[0].elements[strFieldName];
  var sep
  if(!objFormField.value.length||objFormField.disabled) return true; // blank fields are the domain of requireValue 
  var val= objFormField.value;
  if(typeof(sep)!='undefined') val= val.replace(new RegExp(sep,'g'),'');
  if(val.indexOf('$') == 0)
    val= parseFloat(val.substring(1,40));
  else
    val= parseFloat(val);
  if(isNaN(val))
  { // parse error 
    strAlertMsg += "- "+ strMsg + ' must contain a dollar amount.\n';
    if(!focusField) focusField =""+ strFieldName +"";
    return false;
  }
  var sign= ( val < 0 ? '-': '' );
  val= Number(Math.round(Math.abs(val)*100)).toString();
  while(val.length < 2) val= '0'+val;
  var len= val.length;
  val= sign + ( len == 2 ? '0' : val.substring(0,len-2) ) + '.' + val.substring(len-2,len+1);
  objFormField.value= val;
  return true;
}


//========================================================================
//Validate TextBox Length
function isLarge(strFieldName, strMsg, intMaxLength)
{
var objFormField = document.forms[0].elements[strFieldName];
strText = objFormField.value;
		if (strText.length > intMaxLength){
				 strAlertMsg += "- "+ strMsg +" is too long.\n   Max is " + intMaxLength + " Characters.\n   You have "+ strText.length + " Characters";
				 if(!focusField) focusField =""+ strFieldName +"";
				 return false;}
return true;
}

//========================================================================
//Validate minimum textbox length
function isSmall(strFieldName, strMsg, intMinLength)
{
var objFormField = document.forms[0].elements[strFieldName];
strText = objFormField.value;
		if (strText.length < intMinLength){
				 strAlertMsg += "- "+ strMsg +" is too short.\n  Minimum is " + intMinLength + " Characters.\n";
				 if(!focusField) focusField =""+ strFieldName +"";
				 return false;}
return true;
}

//========================================================================
//format money
function formatMoney(mnt) 
{
    mnt -= 0;
    mnt = (Math.round(mnt*100))/100;
    return '$' + ((mnt == Math.floor(mnt)) ? mnt + '.00' 
              : ( (mnt*10 == Math.floor(mnt*10)) ? 
                       mnt + '0' : mnt));
}
 
/*insert into pages
function validate()
{
strAlertMsg = ""
focusField = ""
x = document.forms[0];
    isEmpty('txtBox','First Name')
    isEmail('email','Email')
    isEmail('email2','Email2')
    compareFields('email','email2','Email')
    hasSelection('select1','Select')
    checkRadioControl('radio1','Radio')
    isChecked('chkBox','Check Me')
    isZipCode('usZip','US Zip')
    isEmpty('dDate','Date')
    isDate('dDate','Date')
    isPhone('usPhone','US Phone')
   if(strAlertMsg !=""){
         alert("Please correct the following errors:\n____________________________\n\n" + strAlertMsg);
         eval("x." + focusField + ".focus()");
       return false;
   }
   return true;
}
*/