﻿// JScript File

/************************************************
validate bs_contact_reinstatement.aspx form
   
*************************************************/
function fnValidateReinstatementForm(form)
{
    var bln = 0;
    var msg = "";
    var isChecked=0;
    
    //initialize the error message
	form.elements["lblError"].style.color="red";
	form.elements["lblError"].className="FormTitle";
	form.elements["lblError"].value = "";
	form.elements["optionEmail"].style.color="black";
	form.elements["optionReinstate"].style.color="black";
	
	//check the radio buttons
    if (form.responsetype[0].checked == false && form.responsetype[1].checked == false)
    {
        bln = 1;
        	form.elements["optionEmail"].style.color="red"; 
     }

        for (var i=0; i<form.quotetype.length; i++) 
        { 
            if (form.quotetype[i].checked) 
            {
                isChecked=1;
                break;
            } 
        } 
        
     if (isChecked != 1)
    {
        bln = 1;
        form.elements["optionReinstate"].style.color="red";
     }
	
    
	for (var i = 0; i < form.elements.length-4; i++)
	{
		if ((form.elements[i].value != "" && form.elements[i].value != "*") && form.elements[i].name != "optionEmail" && form.elements[i].name != "optionReinstate")
		{
		    form.elements[i].style.color="black";
		}
		
		//validate the email
		if (form.elements[i].name == "email")
	    {
	       if (!fnValidateEmail(form.elements[i].value))
	       {
	            bln = 1;
	        form.elements[i].style.color="red";
	       }
	    }
		//validate the phone number
		else if (form.elements[i].name == "phone")
	    {
	       if (!fnValidatePhone(form.elements[i].value))
	       {
	            bln = 1;
	        form.elements[i].style.color="red";
	       }
	    }
	    //validate the zipcode
		else if (form.elements[i].name == "zip")
	    {
	       if (!fnValidateZip(form.elements[i].value))
	       {
	            bln = 1;
	        form.elements[i].style.color="red";
	       }
	    }
	    
	    //validate the zipcode
		else if (form.elements[i].name == "quotevalid")
	    {
	       if (!fnValidateDate(form.elements[i].value))
	       {
	            bln = 1;
	        form.elements[i].style.color="red";
	       }
	    }
		
		if(form.elements[i].value == "" || form.elements[i].value == "*" )
		{  
		    if (form.elements[i].name != "lblError" && form.elements[i].name != "optionEmail" && form.elements[i].name != "optionReinstate")
		    {
		        bln = 1;
			    form.elements[i].value ="*";
		        form.elements[i].style.color="red";
		    }
		}
	}//end for loop
	    if (bln != 0)
	    {
	        form.elements["lblError"].value = "Form cannot be submitted, values are invalid or missing.";
	        //go to top of window
	        window.scrollTo(0,0);
	        return false;
	    }
	    else
	    {
            return true;
        }
}//end function fnValidateForm(form)

/************************************************
validate bs_contact.aspx form
   
*************************************************/
function fnValidateContact(form)
{

    var bln = 0;
    var msg = "";
    
    //initialize the error message
	form.elements["lblError"].style.color="red";
	form.elements["lblError"].className="FormTitle";
	form.elements["lblError"].value = "";
    form.elements["emailcontact"].style.color="black"; 
    form.emailcontact[0].text = "";
	
	for (var i = 0; i < form.elements.length-3; i++)
	{
		if (form.elements[i].value != "" && form.elements[i].value != "*")
		{
		    form.elements[i].style.color="black";
		}
		//validate the email
		if (form.elements[i].name == "email")
	    {
	       if (!fnValidateEmail(form.elements[i].value))
	       {
	            bln = 1;
	        form.elements[i].style.color="red";
	       }
	    }
	    else if (form.elements[i].name == "areacode")
	    {
	       if (!fnValidateNumericLen(form.elements[i].value, 3))
	       {
	            bln = 1;
	        form.elements[i].style.color="red";
	       }
	    }
	    else if (form.elements[i].name == "phonefirst")
	    {
	       if (!fnValidateNumericLen(form.elements[i].value, 3))
	       {
	            bln = 1;
	        form.elements[i].style.color="red";
	       }
	    }
	    else if (form.elements[i].name == "phonesecond")
	    {
	       if (!fnValidateNumericLen(form.elements[i].value, 4))
	       {
	            bln = 1;
		    //form.elements[i].value ="*";
	        form.elements[i].style.color="red";
	       }
	    }
		
		if(form.elements[i].value == "" || form.elements[i].value == "*" )
		{  
		    if (form.elements[i].name != "lblError")
		    {
		        if (form.elements[i].name == "fname" || 
		        form.elements[i].name == "areacode" || form.elements[i].name == "phonefirst" || 
		        form.elements[i].name == "phonesecond" || form.elements[i].name == "email" )
		        {
		            bln = 1;
			        form.elements[i].value ="*";
		            form.elements[i].style.color="red";
		       }
		       else if (form.elements[i].name == "emailcontact")
		        {
		            bln = 1;
		        	form.elements["emailcontact"].style.color="red";
                    form.emailcontact[0].text = "*";
		       }
		    }
		}
		
	}//end for loop
	    if (bln != 0)
	    {
	        form.elements["lblError"].value = "Form cannot be submitted, values are invalid or missing.";
	        //go to top of window
	        window.scrollTo(0,0);
	        return false;
	    }
	    else
	    {
	        //get email address
	        fnGetContactEmailAddress(form, "emailcontact");
            return true;
        }
}//end function fnValidateContact(form)

function fnGetContactEmailAddress(form, frmElement)
{
     switch (form.elements[frmElement].value)
    {
        case "recruiting":
            form.elements["emailto"].value = "HRDept@brockandscott.com";
            //form.elements["locationtitle"].value = "Career Opportunities";
            break;
        case "realestate":
            form.elements["emailto"].value = "realestate@brockandscott.com";
            //form.elements["locationtitle"].value = "Real Estate";
            break;
        case "bankruptcy":
            form.elements["emailto"].value = "bankruptcy@brockandscott.com";
            //form.elements["locationtitle"].value = "Bankruptcy";
            break;
        case "collections":
            form.elements["emailto"].value = "collections@brockandscott.com";
            //form.elements["locationtitle"].value = "Collections";
            break;
        case "foreclosure":
            form.elements["emailto"].value = "foreclosure@brockandscott.com";
            //form.elements["locationtitle"].value = "Foreclosure";
            break;
        case "reo":
            form.elements["emailto"].value = "reoservices@brockandscott.com";
            //form.elements["locationtitle"].value = "REO Services";
            break;
        case "tasc":
            form.elements["emailto"].value = "TASCServices@brockandscott.com";
            //form.elements["locationtitle"].value = "TASC";
            break;            
        case "general":
            form.elements["emailto"].value = "generalcontact@brockandscott.com";
            //form.elements["locationtitle"].value = "TASC";
            break;
        default:
            form.elements["emailto"].value = "generalcontact@brockandscott.com";
            //form.elements["locationtitle"].value = "General Contact";
            break;
    }
}//end function fnGetContactEmailAddress(frmElement)

function fnValidateNumericLen(s, num)
{
//check for numeric string 's', of length of 'num'
//var objRegExp  = /(^\d{3}$)/;
var objRegExp  = new RegExp('(^\\d{' + num + '}$)');
return objRegExp.test(s);

}

function fnValidatePhone(strValue) 
{
//validate Phone string xxx-xxx-xxxx
var objRegExp  = /^[1-9]\d{2}\-\s?\d{3}\-\d{4}$/;
   return objRegExp.test(strValue);
}

function fnValidateZip( strValue ) 
{
//Validate zip code 

var objRegExp  = /(^\d{5}$)|(^\d{5}-\d{4}$)/;

  //check for valid US Zipcode
  return objRegExp.test(strValue);
}

function fnValidateEmail( strValue) 
{
//Validate email

var objRegExp  = /(^[a-z]([a-z_\.]*)@([a-z_\.]*)([.][a-z]{3})$)|(^[a-z]([a-z_\.]*)@([a-z_\.]*)(\.[a-z]{3})(\.[a-z]{2})*$)/i;

  //check for valid email
  return objRegExp.test(strValue);
}

function fnValidateDate( strValue ) {
/************************************************
AUTHOR: Karen Gayda

DESCRIPTION: Validates that a string contains only
    valid dates with 2 digit month, 2 digit day,
    4 digit year. Date separator can be ., -, or /.
    Uses combination of regular expressions and
    string parsing to validate date.
    Ex. mm/dd/yyyy or mm-dd-yyyy or mm.dd.yyyy

PARAMETERS:
   strValue - String to be tested for validity

RETURNS:
   True if valid, otherwise false.

REMARKS:
   Avoids some of the limitations of the Date.parse()
   method such as the date separator character.
*************************************************/
  var objRegExp = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{4}$/
 
  //check to see if in correct format
  if(!objRegExp.test(strValue))
    return false; //doesn't match pattern, bad date
  else{
    var strSeparator = strValue.substring(2,3) 
    var arrayDate = strValue.split(strSeparator); 
    //create a lookup for months not equal to Feb.
    var arrayLookup = { '01' : 31,'03' : 31, 
                        '04' : 30,'05' : 31,
                        '06' : 30,'07' : 31,
                        '08' : 31,'09' : 30,
                        '10' : 31,'11' : 30,'12' : 31}
    var intDay = parseInt(arrayDate[1],10); 

    //check if month value and day value agree
    if(arrayLookup[arrayDate[0]] != null) {
      if(intDay <= arrayLookup[arrayDate[0]] && intDay != 0)
        return true; //found in lookup table, good date
    }
    
    //check for February (bugfix 20050322)
    //bugfix  for parseInt kevin
    //bugfix  biss year  O.Jp Voutat
    var intMonth = parseInt(arrayDate[0],10);
    if (intMonth == 2) { 
       var intYear = parseInt(arrayDate[2]);
       if (intDay > 0 && intDay < 29) {
           return true;
       }
       else if (intDay == 29) {
         if ((intYear % 4 == 0) && (intYear % 100 != 0) || 
             (intYear % 400 == 0)) {
              // year div by 4 and ((not div by 100) or div by 400) ->ok
             return true;
         }   
       }
    }
  }  
  return false; //any other values, bad date
}
