/* Form Validations */

function checkVal(fld, mbr)
{
	if (!mbr)
		fld.focus() ;
}

function anyStr(fld, minlength, maxlength)
{
	str = fld.value ; 
	anyChars = false ;
	field = fld.name.toUpperCase() ;
	
	if (str.length == 0)
	{
		alert(field + " can not be all blank")
		return false ;
	}
	
	for (var i=0; i<str.length; i++) 
	{
		subStr = str.substring(i, i+1) ;  
		if (subStr != ' ')
	  		anyChars = true ;
	}
	
	if (!anyChars)
	{
		alert(field + " can not be all spaces") ;
		return false ;
	}
	
	if (minlength > 0 || maxlength > 0)
		if(!chkLength(fld, minlength, maxlength))
			return false ;
	
	return true ;
}

function isDigit(fld, minlength, maxlength, minvalue, maxvalue)
{ 
	str = fld.value ;
	field = fld.name.toUpperCase() ;
	if (str.length == 0)
		return false ;
	
	for (i = 0; i < str.length; i++)
	{   
		var c = str.charAt(i);
		if (!isNumber(c))
	  		return false;
	}

	if (str == "0")
	{
		return true ;
	}
	
	if (parseInt(str, 10) == 0)
		return false ;
	
	if (minlength > 0 || maxlength > 0)
		if (chkLength(fld, minlength, maxlength) == false)
			return false ;
	
	if (minvalue != 0 || maxvalue != 0)
		if (chkValue(str, minvalue, maxvalue) == false)
			return false ;
	
	return true ;
}

function chkLength(fld, minlength, maxlength)
{
	str       = fld.value ;
	field     = fld.name.toUpperCase() ;
	maxstatus = true ;
	minstatus = true ;
	
	if (maxlength > 0)
		if (str.length > maxlength)
	  		maxstatus = false ;
	
	if (minlength > 0)
		if (str.length < minlength)
	  		minstatus = false ;
	  
	if (!maxstatus || !minstatus)
		return false ;    
	else
		return true ;
}

function chkValue(str, minvalue, maxvalue)
{
	if (parseInt(str, 10) < minvalue)
		return false ;
	
	if (parseInt(str, 10) > maxvalue)
		return false ;
	
	return true ;
}

function isNumber (c)
{   
	return ((c >= "0") && (c <= "9"))
}

function showStatus(message)
{
	status = message ;
}  

function emailCheck(fld)
{
	if (!(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(fld.value)))
		return false ;
	else
		return true ;
}  

function isPostCode(entry)
{ 
	entry = entry.toUpperCase(); 
	strlen = entry.length; 
	
	if (strlen != 6) 
		return false;
		
	if ('ABCEHJKLMNPRSTVXY'.indexOf(entry.charAt(0)) < 0)
		return false;
	
	if ('0123456789'.indexOf(entry.charAt(1)) < 0) 
		return false;
	
	if ('ABCDEFGHJKLMNPQRSTUVWXYZ'.indexOf(entry.charAt(2)) < 0)
		return false;
	
	if ('0123456789'.indexOf(entry.charAt(3)) < 0) 
		return false;
	
	if ('ABCDEFGHJKLMNPQRSTUVWXYZ'.indexOf(entry.charAt(4)) < 0) 
		return false;
	
	if ('0123456789'.indexOf(entry.charAt(5)) < 0) 
		return false;
		
	return true;
}

function setDate(fld, whichDate)
{
	if (whichDate == 1 )
	{
		fld.form.ClaimReceivedDate.value = "" ;
		if ((fld.form.ClaimReceivedDateDD.selectedIndex == 0 && fld.form.ClaimReceivedDateMM.selectedIndex == 0 && fld.form.ClaimReceivedDateYYYY.selectedIndex == 0)) 
		    fld.form.ClaimReceivedDate.value = "" ;    
	    else
		    fld.form.ClaimReceivedDate.value = fld.form.ClaimReceivedDateDD.value + "/" + fld.form.ClaimReceivedDateMM.value + "/" + fld.form.ClaimReceivedDateYYYY.value ;
	}
	else
	{
		fld.form.DateOfLoss.value = "" ;
		if ((fld.form.DateOfLossDD.selectedIndex == 0 && fld.form.DateOfLossMM.selectedIndex == 0 && fld.form.DateOfLossYYYY.selectedIndex == 0)) 
		    fld.form.DateOfLoss.value = "" ;    
	    else
		    fld.form.DateOfLoss.value = fld.form.DateOfLossDD.value + "/" + fld.form.DateOfLossMM.value + "/" + fld.form.DateOfLossYYYY.value ;		
	}
}
	

/*  Form Submit Function Calls */
	
function checkFields(frm, opt)
{
	if (opt == 1)
	{
		fld = frm.elements["InsuranceCompanyName"] ;
		if (fld.value == "")
		{
			alert("Please enter Insurance Company Name...") ;  
			fld.focus() ;
			return false ;
		}	
		
		fld = frm.elements["ClaimNumber"] ;
		if (fld.value == "")
		{
			alert("Please enter Claim Number...") ;  
			fld.focus() ;
			return false ;
		}	
		
		fld = frm.elements["Adjuster"] ;
		if (fld.value == "")
		{
			alert("Please enter Adjuster...") ;  
			fld.focus() ;
			return false ;
		}		
		
		fld = frm.elements["Agent"] ;
		if (fld.value == "")
		{
			alert("Please enter Agent...") ;  
			fld.focus() ;
			return false ;
		}
		
		fld = frm.elements["DateOfLoss"] ;  
		if (!(fld.value == ""))
		{
			result = checkDate(fld) ;
			
		    if (!result)
		    { 
		      fld.form.DateOfLossDD.focus() ;
		      return result ;
		    }
		}
		else
		{
		    alert("Please enter Date of Loss...") ;
			fld.form.DateOfLossDD.focus() ;		    
		    return false ;
		}		
		
		fld = frm.elements["DeductibleAmount"] ;
		if (!(fld.value == ""))
		{
			result = isDigit(fld,1,7,0,2000000) ;
			if (!result)
			{
			  	alert("Please enter a valid Deductible Amount between 0 to 2,000,000") ;  
			  	fld.focus() ;
			  	return result ;
			}  
		} 
		else
		{
			alert("Please enter a valid Deductible Amount between 0 to 2,000,000") ;  
			fld.focus() ;
			return false ;  
		} 	
	}
	
	fld = frm.elements["NameOfInsurer"] ;
	if (fld.value == "")
	{
		alert("Please enter Name of the Insurer...") ;  
		fld.focus() ;
		return false ;
	}	
	
	fld = frm.elements["AdressLine1"] ;
	if (fld.value == "")
	{
		alert("Please enter Address...") ;  
		fld.focus() ;
		return false ;
	}	
	
	fld = frm.elements["City"] ;
	if (fld.value == "")
	{
		alert("Please enter City...") ;  
		fld.focus() ;
		return false ;
	}	
	
	fld = frm.elements["Province"] ;
	if (fld.selectedIndex == 0)
	{
		alert("Please select Province...") ;  
		fld.focus() ;
		return false ;
	}

	fld = frm.elements["PostalCode"] ;
	result = isPostCode(fld.value) ;
	if (!result)
	{
		alert("Postal Code must be 6 characters!  example : A1B2C3 ") ;  
		fld.focus() ;
		return result ;
	} 
	

	fld = frm.elements["ResPhoneCode"] ;
	if (!(fld.value == ""))
	{
		result = isDigit(fld,3,3,100,999) ;
		if (!result)
		{
			alert("Phone Area Code must be a 3 digit number!") ;  
			fld.focus() ;
			return result ;
		}  
	} 
	else
	{
		alert("Phone Area Code must be a 3 digit number!") ;  
		fld.focus() ;
		return false ;  
	}  
	
	fld = frm.elements["ResPhoneNumber"] ;
	if (!(fld.value == ""))
	{
		result = isDigit(fld,7,7,1000000,9999999) ;
		if (!result)
		{
			alert("Phone Number must be a 7 digit number!") ;  
			fld.focus() ;
			return result ;
		}  
	} 
	else
	{
		alert("Phone Number must be a 7 digit number!") ;  
		fld.focus() ;
		return false ;  
	}	

	if ((!(frm.elements["BusPhoneCode"].value == "")) || (!(frm.elements["BusPhoneNumber"].value == "")))
	{
		fld = frm.elements["BusPhoneCode"] ;
		result = isDigit(fld,3,3,100,999) ;
		if (!result)
		{
			alert("Phone Area Code must be a 3 digit number!") ;  
			fld.focus() ;
			return result ;
		}  
		
		fld = frm.elements["BusPhoneNumber"] ;
		result = isDigit(fld,7,7,1000000,9999999) ;
		if (!result)
		{
			alert("Phone Number must be a 7 digit number!") ;  
			fld.focus() ;
			return result ;
		} 
	}
	
	fld = frm.elements["TypeOfLoss"] ;
	if (fld.selectedIndex == 0)
	{
		alert("Please select Type of Loss...") ;  
		fld.focus() ;
		return false ;
	}
	else
	{
		if (fld.value == "Other")
		{
			fld = frm.elements["ExplainOtherLoss"] ;
			if (fld.value == "")
			{
				alert("Please specify the nature of loss...") ;  
				fld.focus() ;
				return false ;
			}		
		}
	}	
}

/* Form Submit Function Calls End */