﻿// JScript File
function ValidateForm() 
{
  
  var isValid = true;
  
  if( !IsEmailRequired("emBox","yesBox","email","errorEmailRequired")
    | !IsInputValueMatch("email","email2","errorVerifyEmail")
    | !IsEmailFormatValid("email","errorEmail")
    | !IsPhoneFormatValid("altPhone1","altPhone2","altPhone3","errorAltPhone")
    | !IsPhoneFormatValid("workPhone1","workPhone2", "workPhone3","errorWorkPhone")
    | !IsPhoneFormatValid("homePhone1","homePhone2", "homePhone3","errorHomePhone")
    | !IsZipFormatValid("zip","errorZip")
    | !IsInputValueMatch("account","account2","errorVerifyAccount")
    | !IsAccountFormatValid("account","errorAccountFormat")
    | !IsRequiredFieldValid("account","errorAccount")
    | !IsRequiredFieldValid("lastName","errorLastName")
    | !IsRequiredFieldValid("firstName","errorFirstName")
    )
  {
        
    isValid = false;
  }


  return isValid;
}


function ValidateWaterWiseForm() 
{  
	var isValid = true;
  
	if ( !IsRequiredFieldValid("address", "errorAddress")   				 |
		 !IsRequiredFieldValid("city", "errorCity") 						 |
		 !IsRequiredFieldValid("violationTime", "errorViolationTime") 		 |
		 !IsRequiredFieldValid("firstName", "errorFirstName") 				 |
		 !IsRequiredFieldValid("lastName", "errorLastName")					 |
		 !IsOneRadioButtonSelected("hasPhoto", 2, "errorHasPhoto")			 |			
		 !IsOneRadioButtonSelected("locationType", 4, "errorLocationType") 	 |	
		 !isComboBoxValid("violationDay", "errorViolationDay" ) 			 |
		 !IsOneRadioButtonSelected("emwdCustomer", 2, "errorEmwdCustomer")	 |		
		 !IsOneRadioButtonSelected("contactMethod", 2, "errorContactMethod") |
		 !IsPhotoRequired( "hasPhoto", "filepath", "errorPhoto" )	     | 
		 !IsEmailRequired2( "contactMethod", "email", "errorEmail" )	     | 
	     !IsPhoneRequired( "contactMethod", "phone", "errorPhone" )			 
		 )
	{
		isValid = false;
	}

	return isValid;
}

function IsDependencyRequired( radioName, index, inputName, errorName )
{
	var isValid = true;
	
	var radio = document.getElementById( radioName + index );
	var input = document.getElementById( inputName );
	if ( radio != null && radio != undefined 
		&& input != null && input != undefined )
	{
		if ( radio.checked && input.value == "" )
			isValid = false;
	}

	if(!isValid)
	  DisplayErrorMsg(errorName);
	else
	  HideErrorMsg(errorName);
  
	return isValid;
}


function IsPhotoRequired( inputName, filepath, errorName )
{
	return IsDependencyRequired( inputName, 0, filepath, errorName );
}


function IsEmailRequired2( inputName, email, errorName )
{
	return IsDependencyRequired( inputName, 1, email, errorName );
}


function IsPhoneRequired( inputName, phone, errorName )
{
	return IsDependencyRequired( inputName, 0, phone, errorName );
}


function IsOneRadioButtonSelected( inputName, length, errorName )
{
	var isValid = false;
	
	for(var i = 0; i < length; i++) 
	{
		var input = document.getElementById(inputName + i);
		if( input.checked )
		{
			isValid = true;
			break;
		}
	}	
	
	if(!isValid)
	  DisplayErrorMsg(errorName);
	else
	  HideErrorMsg(errorName);
  
	return isValid;
}


function isComboBoxValid( inputName, errorName )
{
	var isValid = true;
	
	var input = document.getElementById( inputName );
	if ( input != null && input != undefined )
	{
		if ( input.selectedIndex == 0  )
			isValid = false;
	}
	
	if(!isValid)
	  DisplayErrorMsg(errorName);
	else
	  HideErrorMsg(errorName);
  
	return isValid;
}

function IsAccountFormatValid(inputName, errorName)
{
  var emailExp = new RegExp(/^(\d{8}\-\d{2})+$/);
  
  var input = document.getElementById(inputName);
	var isValid = true;
	
	if( input != null 
	    && input != undefined )
	  if( input.type == "text"
      && !emailExp.test(input.value) 
      && input.value.trim().length != 0)
      {
        isValid = false;
        input.select();
        input.focus();
      }
    
	if(!isValid)
	  DisplayErrorMsg(errorName);
	else
	  HideErrorMsg(errorName);
	
	return isValid;
}

function IsEmailRequired(primaryInputName, secondaryInputName ,emailName,errorName)
{
  var isValid = false;
  var inputPrime = document.getElementById(primaryInputName);
  var inputSec = document.getElementById(secondaryInputName);
  var emailinput = document.getElementById(emailName);
  
  if(inputPrime != undefined 
     && inputPrime != null
     && inputSec != undefined 
     && inputSec != null
     && emailinput != undefined 
     && emailinput != null
    )
  {
    if( (inputPrime.checked || inputSec.checked)
        && emailinput.value.trim().length != 0)
      isValid = true;
    else if(!inputPrime.checked && !inputSec.checked)
      isValid = true;
    else
    {
      isValid = false;
      emailinput.select();
      emailinput.focus();
    }
  }
  
  if(!isValid)
	  DisplayErrorMsg(errorName);
	else
	  HideErrorMsg(errorName);
    
  return isValid;
}

function IsInputValueMatch(primeInputName, secondaryInputName, errorName)
{
  var isValid = false;
  var primeInput = document.getElementById(primeInputName);
  var secondaryInput = document.getElementById(secondaryInputName);
  
  if(primeInput != undefined 
     && primeInput != null 
     && secondaryInput != undefined 
     && secondaryInput != null)
  {
    if(primeInput.value == secondaryInput.value)
      isValid = true;
  }
  
  
  
  if(!isValid)
	  DisplayErrorMsg(errorName);
	else
	  HideErrorMsg(errorName);
  
  return isValid;
  
}


function IsEmailFormatValid(inputName, errorName)
{
  var emailExp = new RegExp(/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/);
  
  var input = document.getElementById(inputName);
	var isValid = true;
	
	if( input != null 
	    && input != undefined )
	  if( input.type == "text"
      && !emailExp.test(input.value) 
      && input.value.trim().length != 0)
      {
        isValid = false;
        input.select();
        input.focus();
      }
    
	if(!isValid)
	  DisplayErrorMsg(errorName);
	else
	  HideErrorMsg(errorName);
	
	return isValid;
}

function IsZipFormatValid(inputName, errorName)
{                         
  var zipExp = new RegExp(/(^\d{5}$)|(^\d{5}-\d{4}$)/);
  
  var input = document.getElementById(inputName);
	var isValid = true;
	
	if( input != null 
	    && input != undefined )
	  if( input.type == "text"
      && !zipExp.test(input.value) 
      && input.value.trim().length != 0)
      {
        isValid = false;
        input.select();
        input.focus();
      }
    
	if(!isValid)
	  DisplayErrorMsg(errorName);
	else
	  HideErrorMsg(errorName);
	
	return isValid;
}

function IsPhoneFormatValid(inputName1,inputName2,inputName3, errorName)
{
  var phoneExp = new RegExp(/^\([1-9]\d{2}\)\s?\d{3}\-\d{4}$/);
  
  var input1 = document.getElementById(inputName1);
	var input2 = document.getElementById(inputName2);
  var input3 = document.getElementById(inputName3);
  
  var isValid = true;
	
  if( input1 != null 
	    && input1 != undefined
      && input1.type == "text" 
      && input2 != null 
	    && input2 != undefined 
      && input2.type == "text"
      && input3 != null 
	    && input3 != undefined 
      && input3.type == "text")
      {
        
        if(input1.value.trim().length > 0
          || input2.value.trim().length > 0
          || input3.value.trim().length > 0)
        {
          var phone = "(" + input1.value.trim() + ")" + input2.value.trim() + "-" + input3.value.trim();
          
          if(!phoneExp.test(phone) )
          {
            isValid = false;
            input1.select();
            input1.focus();
          }
        }
      }
      
  
      
  
    
	if(!isValid)
	  DisplayErrorMsg(errorName);
	else
	  HideErrorMsg(errorName);
	
	return isValid;
}

function IsRequiredFieldValid(inputName, errorName)
{
  var input = document.getElementById(inputName);
	var isValid = true;
	
	if( input != null 
	    && input != undefined )
	  if( input.type == "text"
      && (input.value == undefined
      || input.value.trim().length == 0))
      {
        isValid = false;
        input.select();
        input.focus();
      }
    
	if(!isValid)
	  DisplayErrorMsg(errorName);
	else
	  HideErrorMsg(errorName);
	
	return isValid;
}

function DisplayErrorMsg(errorName)
{
  var inputError = document.getElementById(errorName);
	
  if( inputError != null 
	    && inputError != undefined)
	{
    inputError.style.display = "inline";
  }
  
}

function HideErrorMsg(errorName)
{
  var inputError = document.getElementById(errorName);
	
  //if field is not valid then we display the error message.
	if( inputError != null 
	    && inputError != undefined)
	{
    inputError.style.display = "none";
  }
  
}

String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/g,"");
}
String.prototype.ltrim = function() {
	return this.replace(/^\s+/,"");
}
String.prototype.rtrim = function() {
	return this.replace(/\s+$/,"");
}





