/*
###################################################################
## Title		 : Javascript Validations
#  Description	 : LTC javascript functions.
## Date			 : 3rd Oct 2006
#  Last Modified :
## Functions	 : Trim(), leftTrim(), rightTrim(), sltRequired(), 
				   txtRequired(), validZip(), validEmail(), 
				   check_usphone(),checkContactForm(),
##################################################################
*/

/*###############################################################
##  This function is used to trim the leading and trailing spaces.
################################################################*/
function Trim(sString)
{
	return leftTrim(rightTrim(sString));
}

/*###############################################################
##  This function is used to remove the leading spaces.
################################################################*/
function leftTrim(sString)
{
	while (sString.substring(0,1) == ' ')
	{
		sString = sString.substring(1, sString.length);
	}
	return sString;
}

/*###############################################################
##  This fiunction is used to remove the trailing spaces.
################################################################*/
function rightTrim(sString)
{
	while (sString.substring(sString.length-1, sString.length) == ' ')
	{
		sString = sString.substring(0,sString.length-1);
	}
	return sString;
}

/*###############################################################
##  Common function for validating Select Box's.
##  Input  : Field Value, Field Name.
##  Output : True(option selected); False(no option selected)
################################################################*/
function sltRequired(formField,fieldLabel) 
{
	var result = true;
	if (Trim(formField.value) == "-1")
	{
		alert('Please select ' + fieldLabel +' ');
		formField.focus();
		result = false;
	}
	return result;
}


/*###############################################################
##  Common function for validating Text Box's
##  Input  : Field Value, Field Name.
##  Output : True(value entered); False(no value)
################################################################*/
function txtRequired(formField,fieldLabel) 
{
	var result = true;
	if (Trim(formField.value) == "")
	{
		alert('Please enter your ' + fieldLabel +' ');
		formField.focus();
		result = false;
	}
	return result;
}

/*###############################################################
##  Common function for validating Text Box's
##  Input  : Field Value, Field Name.
##  Output : True(value entered); False(no value)
################################################################*/
function txtRequired1(formField,fieldLabel) 
{
	var result = true;
	if (Trim(formField.value) == "")
	{
		alert('Please enter ' + fieldLabel +' ');
		formField.focus();
		result = false;
	}
	return result;
}

/*###############################################################
##  Function for validating Zipcodes
##  Input  : Field Value
##  Output : True(Valid Zip); False(Invalid Zip)
################################################################*/
function validZip(formField) 
{
	var result = true;
	var dot    = ".";
	var zipcode = Trim(formField.value);
	var ldot   = zipcode.indexOf(dot);
	// US Zip codes are only 5 digits long.
	if((zipcode.length != 5) || isNaN(zipcode)|| ldot!=-1)	
	{	alert("Please enter a valid Zip Code");
		formField.focus();
		result = false;
	}
	return result;
}

/*###############################################################
##  Function for validating Email Id's
##  Input  : Field Value
##  Output : True(Valid Email); False(Invalid Email) 
################################################################*/
function validEmail(str) 
{
//	var at="@"
//	var dot="."
//	var lat=str.indexOf(at)
//	var lstr=str.length
//	var ldot=str.indexOf(dot)
//
//	if (lat==-1)	// check if mail id has '@'
//	   return false
//
//	if (lat==-1 || lat==0 || lat==(lstr-1)) // check if '@' is in start or end of email
//		return false
//
//	if (ldot==-1 || ldot==0 || ldot==(lstr-1)) // check for '.' 
//		return false
//
//	if (str.indexOf(at,(lat+1))!=-1)
//		return false
//
//	if (str.indexOf(dot,(ldot+1))!=-1)
//		return false
//
//	if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot)
//		return false
//
//	if (str.indexOf(dot,(lat+2))==-1)
//		return false
//
//	if (str.indexOf(" ")!=-1)
//		return false
//	
//	return true;	

var filter  = /^[a-zA-Z]([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
   if(!filter.test(str))
		return false;
  
	return true;
}
/*###############################################################
##  Function for validating Address
##  Input  : Field Value
##  Output : True(Valid Email); False(Invalid Email) 
################################################################*/
function validAddress(str) 
{
	var filter  = /^[a-zA-Z0-9#]([a-zA-Z0-9_\.\-\/\:\;\,\# ])+$/;
    if(!filter.test(str))
		return false;
  
	return true;
}
/*###############################################################
##  Function to validate US Phone Numbers
##  Input  : Phone Number, Field Name
##  Output : True(Valid Phone #); False(Invalid Phone #)
################################################################*/
function check_usphone(formField,fieldLabel)
{
	var result = true;
	var phone = Trim(formField.value);
	if(phone != "")
	{	// Regular Expr to match the string
		if((phone.match(/^[ ]*[(]{0,1}[ ]*[0-9]{3,3}[ ]*[)]{0,1}[-]{0,1}[ ]*[0-9]{3,3}[-]{0,1}[ ]*[0-9]{4,4}[ ]*$/)==null))
		{
			alert('Please enter valid phone number with area code in '+fieldLabel+' field \n Ex : (###) ###-####');
			formField.focus();
			result = false;
		}
	}
 	return result;
}

/*###############################################################
##  Function to validate Site Contact Page
##  Input  : Form Fields
##  Output : Redirected to contact php if success.
################################################################*/
function checkContactForm2(frm)
{
	var fax	  = Trim(frm.txtOfficeFax.value);
	var email = Trim(frm.txtOfficeEmail.value);

if(!txtRequired(frm.txtFName ,"Name"))
		return false;

if(!txtRequired(frm.txtCompany ,"Company Name"))
		return false;
if(!txtRequired(frm.txtAddress ,"Address"))
		return false;
	if(!txtRequired(frm.txtCity ,"City"))
		return false;
	if(!sltRequired(frm.sltState,"State"))
		return false;
	if(!validZip(frm.txtZip))
		return false;
	
	if(!txtRequired(frm.txtOfficePhone,"Phone Number"))
		return false;
	if(!check_usphone(frm.txtOfficePhone,"Phone Number"))
		return false;

	if(!txtRequired(frm.txtOfficeFax ,"Fax Number"))
		return false;
		if(fax != "")
	{
		if(!check_usphone(frm.txtOfficeFax,"Fax Number"))
			return false;
	}
	if(!txtRequired(frm.txtOfficeEmail,"Email Id"))
		return false;
	if(!validEmail(email))
	{	alert('Please Enter a valid Email Id');
		frm.txtOfficeEmail.focus();
		return false;
	}
	
	if(frm.taDescription.value == '')
	{
		alert('Please briefly mention ur requirements');
		frm.taDescription.focus();
		return false;
	}
	return true;
}
function checkContactForm(frm)
{
	var fax	  = Trim(frm.txtOfficeFax.value);
	var email = Trim(frm.txtOfficeEmail.value);
	var fax2	  = Trim(frm.txtHomeFax.value);
	var email2 = Trim(frm.txtHomeEmail.value);

	if(!txtRequired(frm.txtFName ,"First Name"))
		return false;
	if(!txtRequired(frm.txtLName ,"Last Name"))
		return false;
	if(!txtRequired(frm.txtCompany ,"Company"))
		return false;
	if(!txtRequired(frm.txtdepartment ,"Department"))
		return false;
	if(!txtRequired(frm.txtAddress ,"Address"))
		return false;
	if(!txtRequired(frm.txtCity ,"City"))
		return false;
	if(!sltRequired(frm.sltState,"State"))
		return false;
	if(!validZip(frm.txtZip))
		return false;
	if(!txtRequired(frm.txtOfficeEmail,"Office Email Id"))
		return false;
	if(!validEmail(email))
	{	alert('Please Enter a valid Office Email Id');
		frm.txtOfficeEmail.focus();
		return false;
	}
	if(!txtRequired(frm.txtOfficePhone,"Office Phone Number"))
		return false;
	if(!check_usphone(frm.txtOfficePhone,"Office Phone Number"))
		return false;

	if(fax != "")
	{
		if(!check_usphone(frm.txtOfficeFax,"Office Fax Number"))
			return false;
	}
	

	
if(!txtRequired(frm.txtHomeEmail,"Home Email Id"))
		return false;
	if(!validEmail(email2))
	{	alert('Please Enter a valid Home Email Id');
		frm.txtHomeEmail.focus();
		return false;
	}

if(!txtRequired(frm.txtHomePhone,"Home Phone Number"))
		return false;
	if(!check_usphone(frm.txtHomePhone,"Home Phone Number"))
		return false;
	if(fax2 != "")
	{
		if(!check_usphone(frm.txtHomeFax,"Home Fax Number"))
			return false;
	}
	







	if(frm.taDescription.value == '')
	{
		alert('Please briefly mention ur requirements');
		frm.taDescription.focus();
		return false;
	}
	return true;
}

/*###############################################################
##  Function to validate Client Login Page
##  Input  : Form Fields
##  Output : Redirected to Customer Leads if success.
################################################################*/
function checkLoginForm(frm)
{
	if(!txtRequired(frm.txtUserName,"User Name"))
		return false;
	if(!txtRequired(frm.txtPassword,"Password"))
		return false;
	if(!txtRequired(frm.txtImageCode,"Image Verification Code"))
		return false;
	if(!frm.chkTerms.checked)
	{
		alert("You have to agree the terms and conditions to proceed");
		frm.chkTerms.focus();
		return false;
	}	
	frm.hdnSubmit.value = 'Submit';
	return true;
}

/*###############################################################
##  Function to validate Client Forgot Password Option
##  Input  : Email Id
##  Output : True if Email Id is not null
################################################################*/
function checkFgtPswd(frm)
{
	var email = Trim(frm.txtEmail.value);
	if(!txtRequired(frm.txtEmail,"Email Id"))
		return false;
	if(!validEmail(email))
	{	alert('Please Enter a valid Email Id');
		frm.txtEmail.focus();
		return false;
	}
	frm.hdnFgtPswd.value = 'ForgotPassword';
	return true;
}
/*###############################################################
##  Function to validate Client Sign Up/Registration Page
##  Input  : Form Elements
##  Output : Defines whether Valid Inputs or Not
################################################################*/
function checkRegister(frm)
{
	var email  = Trim(frm.txtEmail.value);
	var zipcode = Trim(frm.txtZipcode.value);
	var address = Trim(frm.txtAddress.value);	
	
	if(!txtRequired(frm.txtCompany,"Company Name"))
		return false;
	if(isNumeric(frm.txtCompany,"Company Name"))
		return false;
	if(!validString(frm.txtCompany))
	{
		alert('Please enter a valid Company Name.No Special characters Allowed');
		frm.txtCompany.focus();
		return false;
	}
	if(!txtRequired(frm.txtAddress,"Address"))
		return false;
	if(isNumeric(frm.txtAddress,"Address"))
		return false;
	if(!validAddress(address))
	{
		alert('Please enter a valid Address.No Special characters Allowed');
		frm.txtAddress.focus();
		return false;
	}
	if(!txtRequired(frm.txtCity,"City"))
		return false;
	if(isNumeric(frm.txtCity,"City Name"))
		return false;
	if(!validString(frm.txtCity))
	{
		alert('Please enter a valid City Name.No Special characters Allowed');
		frm.txtCity.focus();
		return false;
	}
	if(!sltRequired(frm.sltState,"State"))
		return false;
	if(!txtRequired(frm.txtZipcode,"Zip Code"))
		return false;

	if (zipcode != "")
	{
		if(!validZip(frm.txtZipcode))
		return false;
	}
	if(Trim(frm.txtMnPhone1.value).length != 3 || isNaN(frm.txtMnPhone1.value))
	{	alert("Please enter a valid Main Phone");
		frm.txtMnPhone1.focus();
		return false;
	}

	if(Trim(frm.txtMnPhone2.value).length != 3 || isNaN(frm.txtMnPhone2.value))
	{	alert("Please enter a valid Main Phone");
		frm.txtMnPhone2.focus();
		return false;
	}
	if(Trim(frm.txtMnPhone3.value).length != 4 || isNaN(frm.txtMnPhone3.value))
	{	alert("Please enter a valid Main Phone");
		frm.txtMnPhone3.focus();
		return false;
	}
	if(Trim(frm.txtMnPhone4.value).length != '')
	{
		if(Trim(frm.txtMnPhone4.value).length != 3 || isNaN(frm.txtMnPhone4.value))
		{	alert("Please enter a valid Main Phone Extension");
			frm.txtMnPhone4.focus();
			return false;
		}
	}
	if(Trim(frm.txtOthPhone1.value).length != '' || Trim(frm.txtOthPhone2.value).length != '' || Trim(frm.txtOthPhone3.value).length != '' || Trim(frm.txtOthPhone4.value).length != '')
	{
		if(Trim(frm.txtOthPhone1.value).length != 3 || isNaN(frm.txtOthPhone1.value))
		{	alert("Please enter a valid Secondary Phone ");
			frm.txtOthPhone1.focus();
			return false;
		}

		if(Trim(frm.txtOthPhone2.value).length != 3 || isNaN(frm.txtOthPhone2.value))
		{	alert("Please enter a valid Secondary Phone");
			frm.txtOthPhone2.focus();
			return false;
		}
		if(Trim(frm.txtOthPhone3.value).length != 4 || isNaN(frm.txtOthPhone3.value))
		{	alert("Please enter a valid Secondary Phone");
			frm.txtOthPhone3.focus();
			return false;
		}
		if(Trim(frm.txtOthPhone4.value).length != '')
		{
			if(Trim(frm.txtOthPhone4.value).length != 3 || isNaN(frm.txtOthPhone4.value))
			{	alert("Please enter a valid Secondary Phone Extension");
				frm.txtOthPhone4.focus();
				return false;
			}
		}
	}
	if(Trim(frm.txtFax1.value).length != '' || Trim(frm.txtFax2.value).length != '' || Trim(frm.txtFax3.value).length != '')
	{
		if(Trim(frm.txtFax1.value).length != 3 || isNaN(frm.txtFax1.value))
		{	alert("Please enter a valid Fax Number");
			frm.txtFax1.focus();
			return false;
		}

		if(Trim(frm.txtFax2.value).length != 3 || isNaN(frm.txtFax2.value))
		{	alert("Please enter a valid Fax Number");
			frm.txtFax2.focus();
			return false;
		}
		if(Trim(frm.txtFax3.value).length != 4 || isNaN(frm.txtFax3.value))
		{	alert("Please enter a valid Fax Number");
			frm.txtFax3.focus();
			return false;
		}
	}
    
	if(!txtRequired(frm.txtFirstName,"First Name"))
		return false;
	if(isNumeric(frm.txtFirstName,"First Name"))
		return false;
	if(!validString(frm.txtFirstName))
	{
		alert('Please enter a valid First Name.No Special characters Allowed');
		frm.txtFirstName.focus();
		return false;
	}
	if(!txtRequired(frm.txtLastName,"Last Name"))
		return false;
	if(isNumeric(frm.txtLastName,"Last Name"))
		return false;
	if(!validString(frm.txtLastName))
	{
		alert('Please enter a valid Last Name.No Special characters Allowed');
		frm.txtLastName.focus();
		return false;
	}
	if(!txtRequired(frm.txtEmail,"Email Id"))
		return false;
	if(!validEmail(email))
	{	alert('Please enter a valid Email Id');
		frm.txtEmail.focus();
		return false;
	}
	if(!txtRequired(frm.txtUserName,"User Name"))
		return false;
	if(isNumeric(frm.txtUserName,"User Name"))
		return false;	
	if(frm.txtUserName.value.length < 6)
	{	alert('Username length is too short.');
		frm.txtUserName.focus();
		return false;
	}
	if(!validStringNoSpaces(frm.txtUserName))
	{
		alert('User Name should be strictly AlphaNumeric.. ');
		frm.txtUserName.focus();
		return false;
	}
	
	if(document.forms[0].hdnAvailable.value == "no")
	{		
		alert('The Username is already choosen. Please select a different Username');
		frm.txtUserName.focus();
		return false;
	}
	
	if(!txtRequired(frm.txtPassword ,"Password"))
		return false;

	if(!validStringNoSpaces(frm.txtPassword))
	{
		alert('Your password should be strictly AlphaNumeric.');
		frm.txtPassword.focus();
		return false;
	}

	if(frm.txtPassword.value.length < 6)
	{	alert('Password length is too short.');
		frm.txtPassword.focus();
		return false;
	}
	if(frm.txtPassword.value.length > 20)
	{	alert('Password length is exceeding.');
		frm.txtPassword.focus();
		return false;
	}
	if(frm.txtRePassword.value =="")
	{	alert('Please Confirm Ur Password.');
		frm.txtRePassword.focus();
		return false;
	
	}
	if(frm.txtPassword.value != frm.txtRePassword.value)
	{	alert('Passwords Not matching.');
		frm.txtPassword.focus();
		return false;
	}

	if(frm.txtURL.value != "")
	{
		if(!isNaN(frm.txtURL.value)) // use regular expr to compare
		{
			alert('Please enter a valid URL');
			frm.txtURL.focus();
			return false;
		}
	}

	if(frm.txtOfficerCount.value != "" && isNaN(frm.txtOfficerCount.value))
	{
		alert('Please enter a valid number of loan officers at comapny');
		frm.txtOfficerCount.focus();
		return false;
	}

	if(frm.txtLeadsAmount.value != "" && isNaN(frm.txtLeadsAmount.value))
	{
		alert('Please enter a valid value');
		frm.txtLeadsAmount.focus();
		return false;
	}

	var sIntLeads = "";
	for(i = 0; i < frm.chkIntLeads.length; i++)
	{	if(frm.chkIntLeads[i].checked)
			sIntLeads += frm.chkIntLeads[i].value + ","; 
	}
	frm.hdnChkIntLeads.value = sIntLeads;
	
	if(!frm.chkAgree.checked)
	{
		alert("You have to agree the terms and conditions to proceed");
		frm.chkAgree.focus();
		return false;
	}	

	return true;	
}

/*###############################################################
##  Function to validate Client Criteria Filter Page
##  Input  : Form Elements
##  Output : Defines whether Valid Inputs or Not
################################################################*/
function checkCriteria(frm)
{
	var ldays   = frm.chkDaySel.length;
	var ltypes  = frm.chkPropType.length;
	var lstates = frm.chkPropState.length;
	
	var sdays   = "";
	var stypes  = "";
	var sstates = "";

	for(i = 0; i < ldays; i++)
	{
		if(frm.chkDaySel[i].checked)
			sdays += frm.chkDaySel[i].value + ","; 
	}

	for(i = 0; i < ltypes; i++)
	{	if(frm.chkPropType[i].checked)
			stypes += frm.chkPropType[i].value + ","; 
	}

	for(i = 0; i < lstates; i++)
	{	if(frm.chkPropState[i].checked)
			sstates += frm.chkPropState[i].value + ","; 
	}

	if(sdays == "")
	{
		alert("Please select the interested days of delivery");
		frm.chkDaySel[1].focus();
		return false;
	}
	
	if(stypes == "")
	{
		alert("Please select the property types interested");
		frm.chkPropType[1].focus();
		return false;
	}
	
	if(sstates == "")
	{
		alert("Please select the property states interested");
		frm.chkPropState[1].focus();
		return false;
	}

	frm.hdnDaysSel.value = sdays;
	frm.hdnPropType.value = stypes;
	frm.hdnPropState.value = sstates;

	return true;	

}

/*###############################################################
##  Function to validate Client Overstock Search Criteria Page
##  Input  : Form Elements
##  Output : Defines whether Valid Inputs or Not
################################################################*/
function checkOCriteria(frm)
{
	var stype   = "";
	var scredit = "";
	var sprop   = "";
	var sstates = "";

	for(i = 0; i < frm.chkLoantype.length; i++)
	{
		if(frm.chkLoantype[i].checked)
			stype += "'" + frm.chkLoantype[i].value + "',"; 
	}
	for(i = 0; i < frm.chkCredit.length; i++)
	{	if(frm.chkCredit[i].checked)
			scredit += "'" + frm.chkCredit[i].value + "',"; 
	}
	for(i = 0; i < frm.chkProptype.length; i++)
	{	if(frm.chkProptype[i].checked)
			sprop += "'" + frm.chkProptype[i].value + "',"; 
	}
	
	for(i = 0; i < frm.chkPropState.length; i++)
	{	if(frm.chkPropState[i].checked)
			sstates += "'" + frm.chkPropState[i].value + "',"; 
	}

	frm.hdnLoantype.value = stype;
	frm.hdnCredit.value = scredit;
	frm.hdnProptype.value = sprop;
	frm.hdnPropstate.value = sstates;
	frm.hdnSubmit.value = "Submit";

	return true;	
}


/*###############################################################
##  Function to validate Client Overstock Search Criteria Page
##  Input  : Form Elements
##  Output : Defines whether Valid Inputs or Not
################################################################*/
function checkOCriteria2(frm)
{
	var stype   = "";
	var scredit = "";
	var sprop   = "";
	var sstates = "";
	var ssource = "";

	for(i = 0; i < frm.chkLoantype.length; i++)
	{
		if(frm.chkLoantype[i].checked)
			stype += "'" + frm.chkLoantype[i].value + "',"; 
	}
	for(i = 0; i < frm.chkCredit.length; i++)
	{	if(frm.chkCredit[i].checked)
			scredit += "'" + frm.chkCredit[i].value + "',"; 
	}
	for(i = 0; i < frm.chkProptype.length; i++)
	{	if(frm.chkProptype[i].checked)
			sprop += "'" + frm.chkProptype[i].value + "',"; 
	}
	for(i = 0; i < frm.chkSource.length; i++)
	{
		if(frm.chkSource[i].checked)
			ssource += "'" + frm.chkSource[i].value + "',"; 
	}
	
	for(i = 0; i < frm.chkPropState.length; i++)
	{	if(frm.chkPropState[i].checked)
			sstates += "'" + frm.chkPropState[i].value + "',"; 
	}


	frm.hdnLoantype.value = stype;
	frm.hdnCredit.value = scredit;
	frm.hdnProptype.value = sprop;
	frm.hdnPropstate.value = sstates;
	frm.hdnSource.value = ssource;
	frm.hdnSubmit.value = "Submit";

	return true;	
}


/*###############################################################
##  Function to validate Admin Overstock Lead Report Page
##  Input  : Form Elements
##  Output :
################################################################*/
function checkAdCriteria(frm)
{
	var stype   = "";
	var scredit = "";
	var sprop   = "";
	var ssource = "";
	var sstates = "";

	for(i = 0; i < frm.chkLoantype.length; i++)
	{
		if(frm.chkLoantype[i].checked)
			stype += "'" + frm.chkLoantype[i].value + "',"; 
	}
	for(i = 0; i < frm.chkCredit.length; i++)
	{	if(frm.chkCredit[i].checked)
			scredit += "'" + frm.chkCredit[i].value + "',"; 
	}
	for(i = 0; i < frm.chkProptype.length; i++)
	{	if(frm.chkProptype[i].checked)
			sprop += "'" + frm.chkProptype[i].value + "',"; 
	}

	for(i = 0; i < frm.chkSource.length; i++)
	{	if(frm.chkSource[i].checked)
			ssource += "'" + frm.chkSource[i].value + "',"; 
	}
	
	for(i = 0; i < frm.chkPropState.length; i++)
	{	if(frm.chkPropState[i].checked)
			sstates += "'" + frm.chkPropState[i].value + "',"; 
	}

	frm.hdnLoantype.value = stype;
	frm.hdnCredit.value = scredit;
	frm.hdnProptype.value = sprop;
	frm.hdnPropstate.value = sstates;
	frm.hdnSource.value = ssource;

	frm.hdnSubmit.value = "Submit";

	return true;	
}


/*###############################################################
##  Function to Select All Check Box's
##  Input  : Check Box Array Name
##  Output : All Checkbox's Checked
################################################################*/
function checkAll(cname)
{
	var ltypes  = document.forms[0].chkPropType.length;
	
	for(i = 0; i < ltypes; i++)
		document.forms[0].chkPropType[i].checked = true;
}

/*###############################################################
##  Function to De-Select All checkbox Items.
##  Input  : CheckBox Array name
##  Output : All check box's Un Checked
################################################################*/
function unCheckAll(cname)
{
	var ltypes  = document.forms[0].chkPropType.length;
	
	for(i = 0; i < ltypes; i++)
		document.forms[0].chkPropType[i].checked = false;
}

/*###############################################################
##  Function to Select All Check Box's
##  Input  : Check Box Array Name
##  Output : All Checkbox's Checked
################################################################*/
function selectAll(cname)
{
	var ltypes  = document.forms[0].chkPropState.length;
	
	for(i = 0; i < ltypes; i++)
		document.forms[0].chkPropState[i].checked = true;
}

/*###############################################################
##  Function to De-Select All checkbox Items.
##  Input  : CheckBox Array name
##  Output : All check box's Un Checked
################################################################*/
function deSelectAll(cname)
{
	var ltypes  = document.forms[0].chkPropState.length;
	
	for(i = 0; i < ltypes; i++)
		document.forms[0].chkPropState[i].checked = false;
}

/*###############################################################
##  Function to Select All checkbox Items.
##  Input  : CheckBox Array name
##  Output : All check box's Checked
################################################################*/
function chkAll(field)
{
for (i = 0; i < field.length; i++)
	field[i].checked = true ;
}

function unChkAll(field)
{
for (i = 0; i < field.length; i++)
	field[i].checked = false ;
}


/*###############################################################
##  Function to Select Atleast one checkbox Items.
##  Input  : CheckBox Array name
##  Output : Atleast one check box Checked
################################################################*/
function addItems(field)
{
	var count=0;
	for (i = 0; i < field.length; i++){
	if(field[i].checked == true)
	count++;
	}
	if (count == 0)
	{
		alert("Please select atleast one item");
		return false;
	}
	return true;
}



/*###############################################################
##  Function to validate Client Change Password Request
##  Input  : Form elements
##  Output : 
################################################################*/
function validatePswd(frm)
{
	//Old password Required
	if(!txtRequired(frm.txtOPassword ," Old Password"))
		return false;

	if(!validString(frm.txtOPassword))
	{
		alert('Your password must contain only letter and digit characters');
		frm.txtOPassword.focus();
		return false;
	}
	
	// New password required	
	if(!txtRequired(frm.txtPassword ,"Password"))
		return false;

	if(!validString(frm.txtPassword))
	{
		alert('Your password must contain only letter and digit characters');
		frm.txtPassword.focus();
		return false;
	}
	// Compare new and retype password	
	if(frm.txtPassword.value.length < 6)
	{	alert('Password length is too short.');
		frm.txtPassword.focus();
		return false;
	}
	
	if(frm.txtPassword.value.length > 20)
	{	alert('Password length is exceeding allowed limit.');
		frm.txtPassword.focus();
		return false;
	}

	if(frm.txtRePassword.value =="")
	{	alert('Please Confirm Ur Password.');
		frm.txtRePassword.focus();
		return false;
	}

	if(frm.txtPassword.value != frm.txtRePassword.value)
	{	alert('Passwords Not matching.');
		frm.txtPassword.focus();
		return false;
	}


	// Check for specific set of characters
		//----missin----

	// Setting the submit request to change password
	frm.hdnUpdPswd.value = 'ChangePassword';

	return true;
}

/*###############################################################
##  Function to validate Client Updation Page
##  Input  : Form Elements
##  Output : Defines whether Valid Inputs or Not
################################################################*/
function validateClient(frm)
{
	var email  = Trim(frm.txtEmail.value);
	var zipcode = Trim(frm.txtZipcode.value);

	if(!txtRequired(frm.txtFirstName,"First Name"))
		return false;
	if(isNumeric(frm.txtFirstName,"First Name"))
		return false;
	if(!validString(frm.txtFirstName))
	{
		alert('First Name must contain only letter and digit characters');
		frm.txtFirstName.focus();
		return false;
	}
	if(!txtRequired(frm.txtLastName,"Last Name"))
		return false;
	if(isNumeric(frm.txtLastName,"Last Name"))
		return false;
	if(!validString(frm.txtLastName))
	{
		alert('Last Name must contain only letter and digit characters');
		frm.txtLastName.focus();
		return false;
	}
	if(!txtRequired(frm.txtUserName,"User Name"))
		return false;
	
	if(!validString(frm.txtUserName))
	{
		alert('User Name must contain only letter and digit characters');
		frm.txtUserName.focus();
		return false;
	}
	
	if(!txtRequired(frm.txtCompany,"Company Name"))
		return false;

	if(isNumeric(frm.txtCompany,"Company Name"))
		return false;

	if(!txtRequired(frm.txtAddress,"Address"))
		return false;

	if(isNumeric(frm.txtAddress,"Address"))
		return false;
	if(!txtRequired(frm.txtCity,"City"))
		return false;
	if(isNumeric(frm.txtCity,"City Name"))
		return false;
	if(!sltRequired(frm.sltState,"State"))
		return false;
	if(!txtRequired(frm.txtZipcode,"Zip Code"))
		return false;
	if (zipcode != "")
	{
		if(!validZip(frm.txtZipcode))
		return false;
	}

	if(Trim(frm.txtMnPhone1.value).length != 3 || isNaN(frm.txtMnPhone1.value))
	{	alert("Please enter a valid Main Phone");
		frm.txtMnPhone1.focus();
		return false;
	}

	if(Trim(frm.txtMnPhone2.value).length != 3 || isNaN(frm.txtMnPhone2.value))
	{	alert("Please enter a valid Main Phone");
		frm.txtMnPhone2.focus();
		return false;
	}

	if(Trim(frm.txtMnPhone3.value).length != 4 || isNaN(frm.txtMnPhone3.value))
	{	alert("Please enter a valid Main Phone");
		frm.txtMnPhone3.focus();
		return false;
	}

	if(Trim(frm.txtOthPhone1.value).length != '' || Trim(frm.txtOthPhone2.value).length != '' || Trim(frm.txtOthPhone3.value).length != '' || Trim(frm.txtOthPhone4.value).length != '')
	{
		if(Trim(frm.txtOthPhone1.value).length != 3 || isNaN(frm.txtOthPhone1.value))
		{	alert("Please enter a valid Secondary Phone ");
			frm.txtOthPhone1.focus();
			return false;
		}

		if(Trim(frm.txtOthPhone2.value).length != 3 || isNaN(frm.txtOthPhone2.value))
		{	alert("Please enter a valid Secondary Phone");
			frm.txtOthPhone2.focus();
			return false;
		}
		if(Trim(frm.txtOthPhone3.value).length != 4 || isNaN(frm.txtOthPhone3.value))
		{	alert("Please enter a valid Secondary Phone");
			frm.txtOthPhone3.focus();
			return false;
		}
	}

	if(Trim(frm.txtFax1.value).length != '' || Trim(frm.txtFax2.value).length != '' || Trim(frm.txtFax3.value).length != '')
	{
		if(Trim(frm.txtFax1.value).length != 3 || isNaN(frm.txtFax1.value))
		{	alert("Please enter a valid Fax Number");
			frm.txtFax1.focus();
			return false;
		}

		if(Trim(frm.txtFax2.value).length != 3 || isNaN(frm.txtFax2.value))
		{	alert("Please enter a valid Fax Number");
			frm.txtFax2.focus();
			return false;
		}
		if(Trim(frm.txtFax3.value).length != 4 || isNaN(frm.txtFax3.value))
		{	alert("Please enter a valid Fax Number");
			frm.txtFax3.focus();
			return false;
		}
	}

	if(!txtRequired(frm.txtEmail,"Email Id"))
		return false;
	if(!validEmail(email))
	{	alert('Please enter a valid Email Id');
		frm.txtEmail.focus();
		return false;
	}
	if(frm.txtURL.value != "")
	{
		if(!isNaN(frm.txtURL.value)) // use regular expr to compare
		{
			alert('Please enter a valid URL');
			frm.txtURL.focus();
			return false;
		}
	}
	if(frm.txtOfficerCount.value != "" && isNaN(frm.txtOfficerCount.value))
	{
		alert('Please enter a valid number of loan officers at comapny');
		frm.txtOfficerCount.focus();
		return false;
	}

	if(frm.txtLeadsAmount.value != "" && isNaN(frm.txtLeadsAmount.value))
	{
		alert('Please enter a valid value');
		frm.txtLeadsAmount.focus();
		return false;
	}
	
	if(document.forms[0].elements.length == 27)
	{	if(document.forms[0].hdnAvailable.value == "no")
		{		
			alert('The Username is already choosen. Please select a different Username');
			frm.txtUserName.focus();
			return false;
		}
	}

	// Setting the submit request to update details
	frm.hdnUpdClient.value = "UpdateClient";

	return true;	
}

function isUndefined(a) {
    return typeof a == 'undefined';
} 

/*###############################################################
##  Function to move focus to next element for phone number
##  Input  : Form Elements
##  Output : Defines whether Valid Inputs or Not
################################################################*/
function nextElement(field)
{
	var x = event.srcElement;
	if (x.value.length >= x.maxLength)
	{	
		x.form.elements[field].focus( );
		x.form.elements[field].value = String.fromCharCode(event.keyCode);
		event.returnValue = false;
	}
	if(event.keyCode < 48 || event.keyCode > 57) 
		event.returnValue = false;
}

/*###############################################################
##  Function for validating Numeric values
##  Input  : Field Value
##  Output : True(Numeric); False(Non-Numeric)
################################################################*/
function isNumeric(formField,formlabel) 
{
	if(isNaN(formField.value))
		return false;
	else
	{
		alert("Please enter a valid " + formlabel);
		formField.focus();
		return true;
	}
}

/*###############################################################
##  Function for validating alphanumeric fields
##  Input  : Field Value
##  Output : True(Alpha-Numeric); False(Non-AlphaNumeric)
################################################################*/
function validString(formField)
{
   	var ValidChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0987654321 ";
	var IsChar=true;
	var Char;
	for (i = 0; i < formField.value.length && IsChar == true; i++) 
	{  Char = formField.value.charAt(i); 
	    if (ValidChars.indexOf(Char) == -1) 
	    	IsChar = false;
	}
	return IsChar;
}

/*###############################################################
##  Function for validating alphanumeric fields without WhiteSpaces
##  Input  : Field Value
##  Output : True(Alpha-Numeric); False(Non-AlphaNumeric)
################################################################*/
function validStringNoSpaces(formField)
{
   	var ValidChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0987654321";
	var IsChar=true;
	var Char;
	for (i = 0; i < formField.value.length && IsChar == true; i++) 
	{  Char = formField.value.charAt(i); 
	    if (ValidChars.indexOf(Char) == -1) 
	    	IsChar = false;
	}
	return IsChar;
}
/*###############################################################
##  Function for displaying dates on change of month.
##  Input  :
##  Output : 
################################################################*/
function getDates(mon)
{
	document.forms[0].submit();
}

/*###############################################################
##  Function for validating check help
##  Input  :
##  Output : 
################################################################*/
function checkHelp(frm)
{
	var email = Trim(frm.txtEmail.value);

	if(!txtRequired(frm.txtComments,"Comments"))
		return false;
	if((email != '') && !validEmail(email))
	{	alert('Please Enter a valid Email Id');
		frm.txtEmail.focus();
		return false;
	}
	return true;
}

/*###############################################################
##  Function for setting offset value
##  Input  :
##  Output : 
################################################################*/
function setOffset(val,field)
{
	for(i = 0; i< val.options.length; i++)
	{	if(val.options[i].selected == true)
			offset = val.options[i].value;
	}
	
	document.forms[0].hdnOffset.value = offset;
	document.forms[0].hdnSort.value = field;
	document.forms[0].hdnSubmit.value = 'Submit';
	document.forms[0].submit();
}

function nextprev(val,field)
{
	document.forms[0].hdnOffset.value = val;
	document.forms[0].hdnSort.value = field;
	document.forms[0].hdnSubmit.value = 'Submit';
	//checkOCriteria(document.forms[0]);
	document.forms[0].submit();
}

function nextprev2(val,field)
{
	document.forms[0].hdnOffset.value = val;
	document.forms[0].hdnSort.value = field;
	document.forms[0].hdnSubmit.value = 'Submit';
	checkOCriteria2(document.forms[0]);
	document.forms[0].submit();
}

/*###############################################################
##  Function 
##  Input  :
##  Output : 
################################################################*/
function sortBy(field,offset)
{
	document.forms[0].hdnSort.value = field;
	document.forms[0].hdnOffset.value = offset;
	document.forms[0].hdnSubmit.value = 'Submit';
	document.forms[0].submit();
}

/*###############################################################
##  Function for validating My Lead Export Report
##  Input  : 
##  Output : 
################################################################*/
function expReport(formField)
{
	var email = Trim(document.frmMyLeads.txtEmail.value);

	if(email == '')
	{
		alert('Please enter the E-Mail');
		document.frmMyLeads.txtEmail.focus();
		return false;
	}

	if(!validEmail(email))
	{	alert('Please Enter a valid Email Id');
		document.frmMyLeads.txtEmail.focus();
		return false;
	}

	return true;
}

/*###############################################################
##  Function to validate Admin Login Page
##  Input  : form name	
##  Output : True (valid data)
################################################################*/
function checkAdLogin(frm)
{
	if(!txtRequired(frm.txtAdminId,"Admin ID"))
		return false;
	if(!txtRequired(frm.txtPassword ,"Password"))
		return false;
	if(frm.txtAdminId.value.length > 20 || !isNaN(frm.txtAdminId.value))
	{	alert('Invalid Login Details');
		frm.txtAdminId.focus();
		return false;
	}
	if(frm.txtPassword.value.length > 20 || frm.txtPassword.value.length < 5)
	{	alert('Invalid Login Details');
		frm.txtPassword.focus();
		return false;
	}
	frm.hdnSubmit.value = 'Submit';

	return true;
}
/*###############################################################
##  Function to validate Admin Login Page
##  Input  : form name	
##  Output : True (valid data)
################################################################*/
function checkPrices(frm)
{
	for(i = 0; i < 7; i++)
	{
		if(Trim(frm.elements[i].value) == '')
		{
			alert('Please enter amount');
			frm.elements[i].focus();
			return false;
		}
		if(isNaN(frm.elements[i].value))
		{
			alert('Please enter a valid price');
			frm.elements[i].focus();
			return false;
		}
	}
	frm.hdnSubmit.value = 'Submit';

	return true;
}

/*###############################################################
##  Function to validate My Sales People
##  Input  : form name	
##  Output : True (valid data)
################################################################*/
function checkSales(frm)
{
	var email = Trim(frm.txtEmail.value);
//	var im = Trim(frm.txtImAdd.value);

	if(!txtRequired(frm.txtName,"Sales person Name"))
		return false;
	if(!txtRequired(frm.txtEmail ,"Sales person Email Id"))
		return false;
	if(!validEmail(email))
	{	alert('Please a Enter a valid Email Id');
		frm.txtEmail.focus();
		return false;
	}

	if(!txtRequired(frm.txtImAdd ,"Sales person IM Address"))
		return false;
	/*if(!validEmail(im))
	{	alert('Please a Enter a valid IM Address');
		frm.txtImAdd.focus();
		return false;
	}
*/
	if(!txtRequired(frm.txtPhone ,"Sales person Direct Phone Number"))
		return false;
	if(!check_usphone(frm.txtPhone,"Phone Number"))
		return false;

	if(!txtRequired(frm.txtMobile ,"Sales person Mobile Number"))
		return false;
	if(!check_usphone(frm.txtMobile,"Mobile Number"))
		return false;

	if(!txtRequired(frm.txtFax ,"Sales person Fax Number"))
		return false;
	if(!check_usphone(frm.txtFax,"Fax Number"))
		return false;
	
	return true;
}

/*###############################################################
##  Function to validate Admin Overstock Todays Report
##  Input  : form name	
##  Output : True (valid data)
################################################################*/
function oRepToday()
{
	if(document.forms[0].rdbToday[0].checked == false && document.forms[0].rdbToday[1].checked == false)
	{	alert('Please check either Sold or Unsold');
		document.forms[0].rdbToday[0].focus();
		return false;
	}
	document.forms[0].hdnSubmit.value = 'Today';
	document.forms[0].submit();
}

/*###############################################################
##  Function to validate Admin Overstock Yesterdays Report
##  Input  : form name	
##  Output : True (valid data)
################################################################*/
function oRepYesterday()
{
	if(document.forms[0].rdbYesterday[0].checked == false && document.forms[0].rdbYesterday[1].checked == false)
	{	alert('Please check either Sold or Unsold');
		document.forms[0].rdbYesterday[0].focus();
		return false;
	}
	document.forms[0].hdnSubmit.value = 'Yesterday';
	document.forms[0].submit();
}

/*###############################################################
##  Function to validate Admin Overstock Yesterdays Report
##  Input  : form name	
##  Output : True (valid data)
################################################################*/
function oReport()
{
	if(document.forms[0].txtStartdate.value == '')
	{	alert("Please enter Start Date");
		return false;
	}
	if(document.forms[0].txtEnddate.value == '')
	{	alert("Please enter End Date");
		return false;
	}

	if(Trim(document.forms[0].txtMin.value) > Trim(document.forms[0].txtMax.value))
	{
		alert('Maximum times sold should be less than mininum times sold');
		document.forms[0].txtMin.focus();
		return false;
	}
	document.forms[0].hdnSubmit.value = 'Report';
	document.forms[0].submit();
}



/*###############################################################
##  Function to validate Dispute Leads
##  Input  : form name	
##  Output : True (valid data)
################################################################*/
function chechDLead(frm)
{	
	var sel = false;
	if(frm.elements.length == 2)
	{
		alert('No Leads Available');
		return false;
	}
	else
	{	var leads = '';
		for(i=0; i < (frm.elements.length); i++)
		{
			if(frm.elements[i].type == 'checkbox' && frm.elements[i].checked == true)
			{
				if(frm.elements[i+1].value == '-1')
				{
					alert('Please select the Reason');
					frm.elements[i+1].focus();
					return false;
				}
				else
				{
					leads = leads + frm.elements[i].name + "-" + frm.elements[i+1].value + "-" + frm.elements[i+2].value + ",";
					i = i+1;
					sel = true;
				}
			}
		}
	}
	if(sel == false)
	{
		alert('Please select the leads to returns');
		frm.elements[0].focus();
		return false;
	}
	frm.hdnSubmit1.value = 'Submit';
	frm.hdnLeads.value = leads;

	return true;
}

/*###############################################################
##  Function to check for an element in array
##  Input  : array and value
##  Output : return true if 'value' exists in array.
################################################################*/
function in_array(arr,key)
{
	//alert(arr.length);
	//alert(key);
	for(i = 0; i< arr.length; i++)
	{
		if(arr[i] == key)
			return true;
	}
	return false;
}

/*###############################################################
##  Function to check for an element in array
##  Input  : array and value
##  Output : return true if 'value' exists in array.
################################################################*/
function checkCstReport()
{
	var sstates = "";
	var states = "";
	
	for(i = 0; i < document.forms[0].chkPropState.length; i++)
	{	if(document.forms[0].chkPropState[i].checked)
		{	sstates += " client_flt_leadstates like '%" + document.forms[0].chkPropState[i].value + "%' OR "; 
			states += document.forms[0].chkPropState[i].value + ","; 
		}
	}	
	sstates += "";
	document.forms[0].hdnPropstate.value = sstates;
	document.forms[0].hdnStates.value = states;
	document.forms[0].hdnReport.value = 'report'; 
	document.forms[0].submit();

}

/*###############################################################
##  Function to validate Client Sign Up/Registration Page
##  Input  : Form Elements
##  Output : Defines whether Valid Inputs or Not
################################################################*/
function checkAdminAdd(frm)
{
	var email  = Trim(frm.txtEmail.value);
	var zipcode = Trim(frm.txtZipcode.value);
			
	if(!txtRequired(frm.txtFirstName,"First Name"))
		return false;
	if(isNumeric(frm.txtFirstName,"First Name"))
		return false;
	if(!txtRequired(frm.txtLastName,"Last Name"))
		return false;
	if(isNumeric(frm.txtLastName,"Last Name"))
		return false;
	if(!txtRequired(frm.txtUserName,"User Name"))
		return false;
	if(isNumeric(frm.txtUserName,"User Name"))
		return false;
	if(Trim(frm.txtUserName.value).length < 6){
	alert('User Name must be minimum of 6 characters');
	frm.txtUserName.focus="";
	return false;
	}
	if(!validString(frm.txtUserName))
	{
		alert('Please enter a valid User Name.No Special characters Allowed');
		frm.txtUserName.focus();
		return false;
	}
	if(document.forms[0].hdnAvailable.value == "no")
	{		
		alert('The Username is already choosen. Please select a different Username');
		frm.txtUserName.focus();
		return false;
	}
	if(!txtRequired(frm.txtCompany,"Company Name"))
		return false;
	if(isNumeric(frm.txtCompany,"Company Name"))
		return false;
	if(!txtRequired(frm.txtAddress,"Address"))
		return false;
	if(isNumeric(frm.txtAddress,"Address"))
		return false;
	if(!txtRequired(frm.txtCity,"City"))
		return false;
	if(isNumeric(frm.txtCity,"City Name"))
		return false;
	if(!sltRequired(frm.sltState,"State"))
		return false;
	if(!txtRequired(frm.txtZipcode,"Zip Code"))
		return false;

	if (zipcode != "")
	{
		if(!validZip(frm.txtZipcode))
		return false;
	}
	if(Trim(frm.txtMnPhone1.value).length != 3 || isNaN(frm.txtMnPhone1.value))
	{	alert("Please enter a valid Main Phone");
		frm.txtMnPhone1.focus();
		return false;
	}

	if(Trim(frm.txtMnPhone2.value).length != 3 || isNaN(frm.txtMnPhone2.value))
	{	alert("Please enter a valid Main Phone");
		frm.txtMnPhone2.focus();
		return false;
	}
	if(Trim(frm.txtMnPhone3.value).length != 4 || isNaN(frm.txtMnPhone3.value))
	{	alert("Please enter a valid Main Phone");
		frm.txtMnPhone3.focus();
		return false;
	}
	if(Trim(frm.txtOthPhone1.value).length != '' || Trim(frm.txtOthPhone2.value).length != '' || Trim(frm.txtOthPhone3.value).length != '' || Trim(frm.txtOthPhone4.value).length != '')
	{
		if(Trim(frm.txtOthPhone1.value).length != 3 || isNaN(frm.txtOthPhone1.value))
		{	alert("Please enter a valid Secondary Phone ");
			frm.txtOthPhone1.focus();
			return false;
		}

		if(Trim(frm.txtOthPhone2.value).length != 3 || isNaN(frm.txtOthPhone2.value))
		{	alert("Please enter a valid Secondary Phone");
			frm.txtOthPhone2.focus();
			return false;
		}
		if(Trim(frm.txtOthPhone3.value).length != 4 || isNaN(frm.txtOthPhone3.value))
		{	alert("Please enter a valid Secondary Phone");
			frm.txtOthPhone3.focus();
			return false;
		}
	}
	if(Trim(frm.txtFax1.value).length != '' || Trim(frm.txtFax2.value).length != '' || Trim(frm.txtFax3.value).length != '')
	{
		if(Trim(frm.txtFax1.value).length != 3 || isNaN(frm.txtFax1.value))
		{	alert("Please enter a valid Fax Number");
			frm.txtFax1.focus();
			return false;
		}

		if(Trim(frm.txtFax2.value).length != 3 || isNaN(frm.txtFax2.value))
		{	alert("Please enter a valid Fax Number");
			frm.txtFax2.focus();
			return false;
		}
		if(Trim(frm.txtFax3.value).length != 4 || isNaN(frm.txtFax3.value))
		{	alert("Please enter a valid Fax Number");
			frm.txtFax3.focus();
			return false;
		}
	}

	if(!txtRequired(frm.txtEmail,"Email Id"))
		return false;
	if(!validEmail(email))
	{	alert('Please enter a valid Email Id');
		frm.txtEmail.focus();
		return false;
	}

	if(frm.txtURL.value != "")
	{
		if(!isNaN(frm.txtURL.value)) // use regular expr to compare
		{
			alert('Please enter a valid URL');
			frm.txtURL.focus();
			return false;
		}
	}

	if(frm.txtOfficerCount.value != "" && isNaN(frm.txtOfficerCount.value))
	{
		alert('Please enter a valid number of loan officers at comapny');
		frm.txtOfficerCount.focus();
		return false;
	}

	if(frm.txtLeadsAmount.value != "" && isNaN(frm.txtLeadsAmount.value))
	{
		alert('Please enter a valid value');
		frm.txtLeadsAmount.focus();
		return false;
	}
	return true;	
}

/*###############################################################
##  Function to validate Admin Lead Custom Reports
##  Input  : Form Elements
##  Output : Defines whether Valid Inputs or Not
################################################################*/
function checkAdLead1()
{
	var stype   = "";
	var scredit = "";
	var sprop   = "";
	var ssource = "";
	var mnTimes = "";
	var mxTimes = "";

	if(document.forms[0].txtStartdate.value == '')
	{	alert("Please enter Start Date");
		return false;
	}
	if(document.forms[0].txtEnddate.value == '')
	{	alert("Please enter End Date");
		return false;
	}

	mnTimes = Trim(document.forms[0].txtMinTimes.value);
	mxTimes = Trim(document.forms[0].txtMaxTimes.value);

	if(mnTimes != "")
	{
		if(isNaN(mnTimes) || mnTimes.indexOf(".") != -1)
		{
			alert('Please enter a valid value in Minimum Times Sold');
			document.forms[0].txtMinTimes.focus();
			return false;
		}

	}
	if(mxTimes != "")
	{
		if(isNaN(mxTimes) || mxTimes.indexOf(".") != -1)
		{
			alert('Please enter a valid Maximum Times Sold');
			document.forms[0].txtMaxTimes.focus();
			return false;
		}
	}
	if(mnTimes != "" && mxTimes != "" && mnTimes > mxTimes)
	{
		alert('Minimum times sold should be less than Maximum times sold');
		document.forms[0].txtMinTimes.focus();
		return false;
	}

	for(i = 0; i < document.forms[0].chkLoantype.length; i++)
	{
		if(document.forms[0].chkLoantype[i].checked)
			stype += "'" + document.forms[0].chkLoantype[i].value + "',"; 
	}
	for(i = 0; i < document.forms[0].chkCredit.length; i++)
	{	if(document.forms[0].chkCredit[i].checked)
			scredit += "'" + document.forms[0].chkCredit[i].value + "',"; 
	}
	for(i = 0; i < document.forms[0].chkProptype.length; i++)
	{	if(document.forms[0].chkProptype[i].checked)
			sprop += "'" + document.forms[0].chkProptype[i].value + "',"; 
	}

	for(i = 0; i < document.forms[0].chkSource.length; i++)
	{	if(document.forms[0].chkSource[i].checked)
			ssource += document.forms[0].chkSource[i].value + ","; 
	}
	if(ssource == "")
	{
		alert('Please select source of Leads');
		document.forms[0].chkSource[0].focus();
		return false;
	}
	
	document.forms[0].hdnLoantype.value = stype;
	document.forms[0].hdnCredit.value = scredit;
	document.forms[0].hdnProptype.value = sprop;
	document.forms[0].hdnSource.value = ssource;

	document.forms[0].action = 'creport.php'; 
	document.forms[0].submit();
}

/*###############################################################
##  Function to validate Admin Lead Quality Reports
##  Input  : Form Elements
##  Output : Defines whether Valid Inputs or Not
################################################################*/
function checkLeadQuality()
{
	var sstates   = "";
	var ssource = "";

	if(document.forms[0].txtSdate.value == '')
	{
		alert("Please select start date");
		document.forms[0].txtSdate.focus();
		return false;
	}
	if(document.forms[0].txtEdate.value == '')
	{
		alert("Please select End date");
		document.forms[0].txtEdate.focus();
		return false;
	}
	for(i = 0; i < document.forms[0].chkPropState.length; i++)
	{
		if(document.forms[0].chkPropState[i].checked)
			sstates += "'" + document.forms[0].chkPropState[i].value + "',"; 
	}
	for(i = 0; i < document.forms[0].chkQSource.length; i++)
	{	if(document.forms[0].chkQSource[i].checked)
			ssource += document.forms[0].chkQSource[i].value + ","; 
	}
	if(ssource == "")
	{
		alert('Please select source of Leads');
		document.forms[0].chkQSource[0].focus();
		return false;
	}
		
	document.forms[0].hdnPropstate.value = sstates;
	document.forms[0].hdnSource.value = ssource;
	document.forms[0].action = 'quality.php'; 
	document.forms[0].submit();
}

/*###############################################################
##  Function to validate Admin New Lead
##  Input  : form name	
##  Output : True (valid data)
################################################################*/
function checkNewLead(frm)
{
	var email = Trim(frm.txtEmail.value);

	if(!txtRequired1(frm.txtName,"Name"))
		return false;
	if(!txtRequired1(frm.txtAddress,"Address"))
		return false;
	if(frm.rdbLoantype[0].checked == false && frm.rdbLoantype[1].checked == false && frm.rdbLoantype[2].checked == false)
	{
		alert("Please select the Loan Type");
		frm.rdbLoantype[0].focus();
		return false;
	}
	if(!txtRequired1(frm.txtCity,"City"))
		return false;
	if(!sltRequired(frm.sltState,"your State"))
		return false;
	if(!txtRequired1(frm.txtZipcode,"Zipcode"))
		return false;
	if(!validZip(frm.txtZipcode))
		return false;
	if(!txtRequired1(frm.txtEmail,"Email Id"))
		return false;
	if(!validEmail(email))
	{	alert('Please a enter a valid Email Id');
		frm.txtEmail.focus();
		return false;
	}
	if(!txtRequired1(frm.txtPhone1,"Primary Phone Number"))
		return false;
	if(!check_usphone(frm.txtPhone1,"Primary Phone Number"))
		return false;
	if(!check_usphone(frm.txtPhone2,"Secondary Phone Number"))
		return false;
	
	frm.hdnSubmit.value = "submit";
	
	return true;
}


/*###############################################################
##  Function to validate Admin Adlead3
##  Input  : Form Elements
##  Output : 
################################################################*/
function checkAdlead3()
{
	var stype   = "";
	var sstates = "";
	var leadid  = "";
	
	leadid = Trim(document.frmAdlead3.txtLeadid.value);
	if(isNaN(leadid) || leadid.indexOf(".") != -1)
	{
		alert('Please enter only the Numeric part of Lead ID');
		document.frmAdlead3.txtLeadid.focus();
		return false;
	}
	for(i = 0; i < document.frmAdlead3.chkLoantype.length; i++)
	{
		if(document.frmAdlead3.chkLoantype[i].checked)
			stype += "'" + document.frmAdlead3.chkLoantype[i].value + "',"; 
	}
	for(i = 0; i < document.frmAdlead3.chkPropState.length; i++)
	{	if(document.frmAdlead3.chkPropState[i].checked)
			sstates += "'" + document.frmAdlead3.chkPropState[i].value + "',"; 
	}

	document.frmAdlead3.hdnLoantype.value = stype;
	document.frmAdlead3.hdnPropstate.value = sstates;
	document.frmAdlead3.hdnReport.value = "Submit";
	document.frmAdlead3.action = "adlead3.php";
	document.frmAdlead3.submit();
	return true;	
}

/*###############################################################
##  Function to validate admin leads report
##  Input  : 
##  Output : 
################################################################*/
function checkDaysReport()
{
	if(document.forms[0].txtFromdate.value == '')
	{	alert("Please enter From Date");
		return false;
	}
	if(document.forms[0].txtTodate.value == '')
	{	alert("Please enter To Date");
		return false;
	}

	document.forms[0].hdnDay.value = 'dates'; 
	document.forms[0].action = 'leadreport.php'; 
	document.forms[0].submit();
}


/*###############################################################
##  Function to validate customer lead delivery options
##  Input  : 
##  Output : 
################################################################*/
function checkOptions(frm)
{
	var result = false;
	for(i = 0; i<3; i++)
	{
		if(document.forms[0].rdReceiveBy[i].checked == true)
		{	result = true;
		}
	}
	if(result == false)
	{
		alert("Please Select How Would You Like To Receive Your Leads");
		document.forms[0].rdReceiveBy[0].focus();
		exit;
	}
	
	if(document.forms[0].leads_email.value == '')
	{
		alert('Please enter the Email id');
		document.forms[0].leads_email.focus();
		return false;
	}
	else
	{	emails = document.forms[0].leads_email.value + ',';
		mails = emails.split(',');
	}

	for(i = 0; i < mails.length - 1; i++)
	{
		if(mails[i] != '' && !validEmail(mails[i]))
		{	alert("'"+mails[i]+"' is invalid mail id.");
			document.forms[0].leads_email.focus();
			return false;
		}
		if(mails[i] == '')
		{
			document.forms[0].leads_email.value = emails.substring(0,emails.length-2);
		}
	}

	document.forms[0].hdnSubmit.value = "Submit";
	document.forms[0].submit();
	return true;
}


/*###############################################################
##  Function 
##  Input  :
##  Output : 
################################################################*/
function OSortBy(field,offset)
{
	document.forms[0].hdnSort.value = field;
	document.forms[0].hdnOffset.value = offset;
	checkOCriteria(document.forms[0]);
	document.forms[0].submit();

}

/*###############################################################
##  Function 
##  Input  :
##  Output : 
################################################################*/
function OSortBy2(field,offset)
{
	document.forms[0].hdnSort.value = field;
	document.forms[0].hdnOffset.value = offset;
	checkOCriteria2(document.forms[0]);
	document.forms[0].submit();

}

/*###############################################################
##  Function 
##  Input  :
##  Output : 
################################################################*/
function updRecords(val)
{
	document.forms[0].hdnUpdate.value = 'update';
	document.forms[0].hdnLeadId.value = val;
	document.forms[0].hdnSubmit.value = 'Submit';
	document.forms[0].submit();
}

function checkEditPrice(frm)
{
	if(frm.sltState.value == "-1")
	{
		alert('Please select state');
		frm.sltState.focus();
		return false;
	}
	if(frm.prime_price.value == "")
	{
		alert('Please enter price for prime_price Leads');
		frm.prime_price.focus();
		return false;
	}
	if(isNaN(frm.prime_price.value) || frm.prime_price.value.indexOf(".") != -1)
	{
		alert('Please enter valid Price for prime_price Leads');
		frm.prime_price.focus();
		return false;
	}
	if(frm.subprime_price.value == "")
	{
		alert('Please enter price for subprime_price Leads');
		frm.subprime_price.focus();
		return false;
	}
	if(isNaN(frm.subprime_price.value) || frm.subprime_price.value.indexOf(".") != -1)
	{
		alert('Please enter valid price for subprime_price Leads');
		frm.subprime_price.focus();
		return false;
	}
	if(frm.purchase_price.value == "")
	{
		alert('Please enter price for purchase_price Leads');
		frm.purchase_price.focus();
		return false;
	}
	if(isNaN(frm.purchase_price.value) || frm.purchase_price.value.indexOf(".") != -1)
	{
		alert('Please enter valid price for purchase_price Leads');
		frm.purchase_price.focus();
		return false;
	}


if(frm.equity_price.value == "")
	{
		alert('Please enter price for equity_price Leads');
		frm.equity_price.focus();
		return false;
	}
	if(isNaN(frm.equity_price.value) || frm.equity_price.value.indexOf(".") != -1)
	{
		alert('Please enter valid price for equity_price Leads');
		frm.equity_price.focus();
		return false;
	}



if(frm.debt_price.value == "")
	{
		alert('Please enter price for debt_price Leads');
		frm.debt_price.focus();
		return false;
	}
	if(isNaN(frm.debt_price.value) || frm.debt_price.value.indexOf(".") != -1)
	{
		alert('Please enter valid price for debt_price Leads');
		frm.debt_price.focus();
		return false;
	}




	if(parseInt(frm.prime_price.value) < parseInt(frm.subprime_price.value))
	{
		alert('prime_price leads price should be greater than subprime_price leads price');
		frm.prime_price.focus();
		return false;
	}

	if(parseInt(frm.prime_price.value) < parseInt(frm.purchase_price.value))
	{
		alert('Exclusive leads price should be greater than purchase_price leads price');
		frm.prime_price.focus();
		return false;
	}

	if(parseInt(frm.subprime_price.value) < parseInt(frm.purchase_price.value))
	{
		alert('subprime_price leads price should be greater than purchase_price leads price');
		frm.subprime_price.focus();
		return false;
	}
	if(parseInt(frm.prime_price.value) < parseInt(frm.equity_price.value))
	{
		alert('prime_price leads price should be greater than equity_price leads price');
		frm.prime_price.focus();
		return false;
	}
	if(parseInt(frm.subprime_price.value) < parseInt(frm.equity_price.value))
	{
		alert('subprime_price leads price should be greater than equity_price leads price');
		frm.subprime_price.focus();
		return false;
	}
	if(parseInt(frm.purchase_price.value) < parseInt(frm.equity_price.value))
	{
		alert('purchase_price leads price should be greater than equity_price leads price');
		frm.purchase_price.focus();
		return false;
	}




if(parseInt(frm.prime_price.value) < parseInt(frm.debt_price.value))
	{
		alert('prime_price leads price should be greater than debt_price leads price');
		frm.prime_price.focus();
		return false;
	}
	if(parseInt(frm.subprime_price.value) < parseInt(frm.debt_price.value))
	{
		alert('subprime_price leads price should be greater than debt_price leads price');
		frm.subprime_price.focus();
		return false;
	}
	if(parseInt(frm.purchase_price.value) < parseInt(frm.debt_price.value))
	{
		alert('purchase_price leads price should be greater than equity_price leads price');
		frm.purchase_price.focus();
		return false;
	}
	if(parseInt(frm.equity_price.value) < parseInt(frm.debt_price.value))
	{
		alert('equity_price leads price should be greater than debt_price leads price');
		frm.equity_price.focus();
		return false;
	}
	frm.action = 'editprice.php?id='+frm.sltState.value;
	frm.hdnSubmit.value = 'submit';
	return true;

}

function getPrices(slt)
{
	document.forms[0].action = 'editprice.php?id='+document.forms[0].sltState.value;
	document.forms[0].submit();
}

function getRecords(option)
{
	document.forms[0].hdnSubmit.value=option; 
	document.forms[0].submit();
}

function checkEditSales()
{
	if(document.forms[0].sltSalesPerson.value == '-1')
	{
		alert('Please select the sales person');
		document.forms[0].sltSalesPerson.focus();
		return false;
	}
	document.location='ed_form.php?id='+document.forms[0].sltSalesPerson.value;
}

function checkEdit(frm)
{
	frm.hdnSubmit.value='submit';
	x = checkContactForm(frm);
	if(x)
		frm.action = 'ed_form.php?id='+frm.hdnId.value;
	else
		return false;
	
}

	function checkLinks()
	{
		var tflag = false;
		var type = "";
		/* Loan type */		
		for(i=0; i<3; i++)
		{
			if(document.forms[0].rdbLoantype[i].checked == true)
			{	tflag = "true";
				type = document.forms[0].rdbLoantype[i].value;
			}
		}

		/* Source */

		var sflag = false;
		var source = "";
		for(i=0; i<2; i++)
		{
			if(document.forms[0].rdbSource[i].checked == true)
			{	source = document.forms[0].rdbSource[i].value;
				sflag = true;
			}
		}
		if(!tflag)
		{
			alert('Please select the Loan type');
			document.forms[0].rdbloantype[0].focus();
			return false;
		}
		if(!sflag)
		{
			alert('Please select the Lead Source');
			document.forms[0].rdbSource[0].focus();
			return false;
		}
		if(type == 'HomePurchase')
		{
			if(source == 'MCQ')
				window.open('http://www.mycompetingquotes.com/purchase.html');
			else
				window.open('http://www.connecttolenders.com/homepage5.php');
		}
		else if(type == 'HomeEquity')
		{
			if(source == 'MCQ')
				window.open('http://www.mycompetingquotes.com/equity.html');
			else
				window.open('http://www.connecttolenders.com/homepage3.php');
			
		}
		else
		{
			if(source == 'MCQ')
				window.open('http://www.mycompetingquotes.com/refinance.html');
			else
				window.open('http://www.connecttolenders.com/homepage2.php');
		}
	}

/*###############################################################
##  Function to validate ADD Funds - Credit Card
##  Input  : Form Fields
##  Output : Redirected to add funds if success.
################################################################*/
function checkCCValues(frm)
{
	var email = Trim(frm.txtEmail.value);

	if(!txtRequired(frm.txtAmount ,"Amount"))
		return false;
	if(isNaN(frm.txtAmount.value) || frm.txtAmount.value == "0")	
	{	alert("Please enter a valid Amount");
		frm.txtAmount.focus();
		return false;
	}
	if(parseInt(frm.txtAmount.value) < "300")
	{
		alert("Please ADD a Minimum of 300$ to your account");
		frm.txtAmount.focus();
		return false;

	}
	if(!txtRequired(frm.txtCCno ,"Credit Card Number"))
		return false;
	if(isNaN(frm.txtCCno.value) || frm.txtCCno.value.length <= 12 || frm.txtCCno.value.length >= 17 )	
	{	alert("Please enter a valid Credit Card Number");
		frm.txtCCno.focus();
		return false;
	}
	if(!txtRequired(frm.txtExpireDate ,"Card Expiration Date"))
		return false;
	if(isNaN(frm.txtExpireDate.value) || frm.txtExpireDate.value.length != 4)	
	{	alert("Please enter Card Expiration date in 'MMYY' Format. \n Ex: 1209 for December 2009");
		frm.txtExpireDate.focus();
		return false;
	}
	
	if(frm.chkEmail.checked == true)
	{
		if(!txtRequired(frm.txtEmail,"Email Id"))
			return false;
		if(!validEmail(email))
		{	alert('Please Enter a valid Email Id');
			frm.txtEmail.focus();
			return false;
		}
	}

	if(!txtRequired(frm.txtFirstname ,"First Name"))
		return false;
	if(!txtRequired(frm.txtLastname ,"Last Name"))
		return false;
	if(!txtRequired(frm.txtCompany,"Company"))
		return false;
	if(!txtRequired(frm.txtBilling,"Billing Address"))
		return false;
	if(!txtRequired(frm.txtCity,"City Name"))
		return false;
	if(!sltRequired(frm.sltState,"State"))
		return false;
	if(!txtRequired(frm.txtCompany,"Company"))
		return false;
	if(!validZip(frm.txtZipcode))
		return false;

	return true;
}


/*###############################################################
##  Function to validate Detailed History - Date Range
##  Input  : From date and To date
##  Output : Redirected to add funds if success.
################################################################*/
function checkDates()
{
	if(document.forms[0].txtStartdate.value == '')
	{	alert("Please enter From Date");
		return false;
	}
	if(document.forms[0].txtEnddate.value == '')
	{	alert("Please enter To Date");
		return false;
	}
	document.forms[0].hdnSubmit.value = "Submit";
}
/*###############################################################
##  Function to validate Delete User from Admin customer module
##  
################################################################*/
function delPersons2()
{
	
	var flag = false;
	var items = "";
	for(i = 0; i < document.del.custcheck.length; i++)
	{
		if(document.del.custcheck[i].checked == true)
		{	
			flag = true;
			items += document.del.custcheck[i].value + ",";
		}
	}
	
	if(flag)
	{
		items = items.substring(0,(items.length -1));
		var x=window.confirm("Are you sure you want to delete the selected customers?");
		
		if(x){
			location.href='delstaff2.php?id='+items;
			
		}
		else
			return false;
	}
	else
	{	alert('Please select the records to delete');
		return false;
	}
}


/*###############################################################
##  Function to validate Delete User from Admin customer module
##  
################################################################*/
function delPersons3()
{
	var flag = false;
	var items = "";
	for(i = 0; i < document.del.lead.length; i++)
	{
		if(document.del.lead[i].checked == true)
		{	flag = true;
			items += document.del.lead[i].value + ",";
		}
	}
	
	if(flag)
	{		
		items = items.substring(0,(items.length -1));
	
		var x=window.confirm("Are you sure you want to delete the selected Leads?");
		if(x){
			document.del.action='deletelead.php?id='+items;
		}
		else
			return false;
	}
	else
	{	alert('Please select the records to delete');
		return false;
	}
}

/*###############################################################
##  Function to validate Admin Delete Leads
##  Input  : Leads to delete
##  Output : 
################################################################*/
function delleads()
{
	var lleads  = document.frmDelete.chkLead.length;
	var sleads  = "";

	//alert(lleads);
	for(i = 0; i < lleads; i++)
	{
		if(document.frmDelete.chkLead[i].checked)
			sleads += document.frmDelete.chkLead[i].value + ","; 
	}
	if(sleads == "")
	{
		alert("Please select the leads to delete");
		return false;
	}
	else
	{
		if(window.confirm("Are you sure you want to delete the selected Leads?"))
		{
			var url = "deletelead.php?id="+sleads;
			ajaxDelete(url);
		}
		else
			return false;
	}
}

var http = getHTTPObject();

function getHTTPObject() { 
  var xmlhttp; 
  /*@cc_on 
  @if (@_jscript_version >= 5) 
    try { 
      xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); 
    } catch (e) { 
      try { 
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
      } catch (E) { 
        xmlhttp = false; 
      } 
    } 
  @else 
  xmlhttp = false; 
  @end @*/ 
  if (!xmlhttp && typeof XMLHttpRequest != 'undefined') { 
    try { 
      xmlhttp = new XMLHttpRequest(); 
    } catch (e) { 
      xmlhttp = false; 
    } 
  } 
  return xmlhttp; 
} 

/*###############################################################
##  AJAX Functions
################################################################*/
function ajaxDelete(url)
{
	http.open("GET", url, true);
	http.onreadystatechange = HandleResponse;
	http.send(null);
}

/*###############################################################
##  AJAX Functions
################################################################*/
function HandleResponse()
{	var res;
	if(http.readyState == 4)
	{
		res = http.responseText;

		if(res == "success")
		{
			alert('Records deleted Successfully');
			checkAdlead3();		
		}
		else
			alert(res);
	}
} 

