function CheckLoginField(formObject)
	{		

		if(trim(formObject.value) == ''){
			alert("Please enter username.");
			formObject.focus();
			return false;
		}
		else{
			var flag = CheckEmail(trim(formObject.value));
			if(flag == false){
				// formObject.value = '';
				formObject.focus();
				return false;
			}		
			
		}
		return true;
	}	
		
// Function To trim whitespaces in javascript	
	function trim(sString) 
			{ 
			  sTrimmedString = ""; 
			   if (sString != "") 
			   { 
				  var iStart = 0; 
				  var iEnd = sString.length - 1; 
				  var sWhitespace = " \t\f\n\r"; 
				  
				  while (sWhitespace.indexOf(sString.charAt(iStart)) != -1) 
				  { 
					 iStart++; 
					 if (iStart > iEnd) 
						break; 
				  } 
				  
				  // If the string not just whitespace 
				  if (iStart <= iEnd) 
				  { 
					 while (sWhitespace.indexOf(sString.charAt(iEnd)) != -1) 
						iEnd--; 
					   sTrimmedString = sString.substring(iStart,++iEnd); 
				  } 
			   } 
			   return sTrimmedString; 
			} 
			


function CheckEmail(emailStr,mydom)
		   {
		   	var emailPat=/^(.+)@(.+)$/
			var emailDomain=/^(.+)@(.+)(\.)(.+)$/
		   	var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
		   	var validChars="\[^\\s" + specialChars + "\]"
		   	var quotedUser="(\"[^\"]*\")"
		   	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
		   	var atom=validChars + '+'
		   	var word="(" + atom + "|" + quotedUser + ")"
		   //	var userPat=new RegExp("^" + word + "(\\." + word + ")*$")

		   	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")
		   	var matchArray=emailStr.match(emailPat)
			var matchDomainArray=emailStr.match(emailDomain)
         
		   	if (matchArray==null)
		   	{
		   		alert("Email address seems incorrect (check @ and .'s)")
		   		return false
		   	}
         if(matchDomainArray==null){
			 alert("Email address seems incorrect (check @ and .'s)")
		   		return false
		 }
		   	var user=matchArray[1]
		   	var domain=matchArray[2]
			var DomArray=matchDomainArray[2]

		   	if (user.match(/[^a-zA-Z_0-9\.]/))
		   	{
		   		// user is not valid
		   		alert("Wrong format for e-mail address.")
		   		return false
		   	}

			
			if (DomArray.match(/[^-a-zA-Z_0-9\.]/)){
		   		// user is not valid
		   		alert("Wrong domain name for e-mail address.")
		   		return false
		   	}
         
		   	var IPArray=domain.match(ipDomainPat)
         
		   	if (IPArray!=null) 
		   	{
		   		for (var i=1;i<=4;i++)
		   		{
		   			if (IPArray[i]>255) 
		   			{	
		   				alert("Destination IP address is invalid!")
		   				return false
		   			}
		   		}		
		   	}
		   	var domainArray=domain.match(domainPat)
		   	if (domainArray==null)
		   	{
		   		alert("The domain name doesn't seem to be valid.")
		   		return false
		   	}
         
		   	var atomPat=new RegExp(atom,"g")
		   	var domArr=domain.match(atomPat)
		   	var len=domArr.length
		   		
		   	if (domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>3) 
		   	{
		   		alert("The address must end in a three-letter domain, or two letter country.")
		   		return false
		   	}
			if (domArr[domArr.length-1] != mydom && mydom) 
		   	{
		   		alert("The Email Address Must be a Valid "+mydom+" Address !!")
		   		return false
		   	}
		   	if (len<2)
		   	{
		   		var errStr="This address is missing a hostname!"
		   		alert(errStr)
		   		return false
		   	}
		   	return true
		   }				
		   
function CheckStep2(frmObject)
{

	 if(trim(frmObject.firstname.value) == '')
	 {
	 	 alert('Please enter First Name.');
	 	 frmObject.firstname.focus();
	 	 return false;
	 }/*else if(trim(frmObject.firstname.value)){
	 	 alert('Please enter valid First Name.');
	 	 frmObject.firstname.focus();
	 	 return false;
	 }*/
	 
	 if(trim(frmObject.lastname.value) == '')
	 {
	 	 alert('Please enter Last Name.');
	 	 frmObject.lastname.focus();
	 	 return false;
	 }/*else if(trim(frmObject.lastname.value)){
	 	 alert('Please enter valid Last Name.');
	 	 frmObject.lastname.focus();
	 	 return false;
	 }*/
	 	 
	 if(trim(frmObject.phone_1.value) == '')
	 {
	 	 alert('Please enter Phone Number.');
	 	 frmObject.phone_1.focus();
	 	 return false;
	 }
	 else if(trim(frmObject.phone_2.value) == '')
	 {
	 	 alert('Please enter Phone Number.');
	 	 frmObject.phone_2.focus();
	 	 return false;
	 }
	 else if(trim(frmObject.phone_3.value) == '')
	 {
	 	 alert('Please enter Phone Number.');
	 	 frmObject.phone_3.focus();
	 	 return false;
	 }
	 else if(frmObject.phone_1.value.length < 3 || frmObject.phone_2.value.length < 3 || frmObject.phone_3.value.length < 3)
		{
	 		alert('Phone Number can not be less than 10 digit.');
			frmObject.phone_1.value = "";
			frmObject.phone_2.value = "";
			frmObject.phone_3.value = "";
	 		frmObject.phone_1.focus();
	 		return false;
		}
	 else
	{			
		if(isNaN(frmObject.phone_1.value))
		 {
		 	 
		 	 alert('Please Enter a Valid Phone Number.');
		 	 frmObject.phone_1.focus();
		 	 return false;
	 	 }else if(isNaN(frmObject.phone_2.value))
		 {
		 	 
		 	 alert('Please Enter a Valid Phone Number.');
		 	 frmObject.phone_2.focus();
		 	 return false;
	 	 }else if(isNaN(frmObject.phone_3.value))
		 {
		 	 
		 	 alert('Please Enter a Valid Phone Number.');
		 	 frmObject.phone_3.focus();
		 	 return false;
	 	 }
	 }
if(frmObject.sphone_1)
	if(trim(frmObject.sphone_1.value) != '' || trim(frmObject.sphone_2.value) != '' || trim(frmObject.sphone_3.value) != '' ){
	 				
		if(isNaN(frmObject.sphone_1.value))
		 {
		 	 
		 	 alert('Please Enter a Valid Secondary Phone  Number.');
		 	 frmObject.sphone_1.focus();
		 	 return false;
	 	 }else if(isNaN(frmObject.sphone_2.value))
		 {
		 	 
		 	 alert('Please Enter a Valid Secondary Phone Number.');
		 	 frmObject.sphone_2.focus();
		 	 return false;
	 	 }else if(isNaN(frmObject.sphone_3.value))
		 {
		 	 
		 	 alert('Please Enter a Valid Secondary Phone Number.');
		 	 frmObject.sphone_3.focus();
		 	 return false;
	 	 }
	 }


	 if(trim(frmObject.fax_1.value) != '' || trim(frmObject.fax_2.value) != '' || trim(frmObject.fax_3.value) != '' ){
	 				
		if(isNaN(frmObject.fax_1.value))
		 {
		 	 
		 	 alert('Please Enter a Valid Fax Number.');
		 	 frmObject.fax_1.focus();
		 	 return false;
	 	 }else if(isNaN(frmObject.fax_2.value))
		 {
		 	 
		 	 alert('Please Enter a Valid Fax Number.');
		 	 frmObject.fax_2.focus();
		 	 return false;
	 	 }else if(isNaN(frmObject.fax_3.value))
		 {
		 	 
		 	 alert('Please Enter a Valid Fax Number.');
		 	 frmObject.fax_3.focus();
		 	 return false;
	 	 }
	 }

	
	 	 
	 if(trim(frmObject.email.value) != '')
	 {
	 	  if(!CheckEmail(trim(frmObject.email.value)))
			 {
			   frmObject.email.focus();
			   return false;
			 }
	 }	
		
		return true;
	 
}		   


function CheckStep3(frnObject)
{
	
	  if(trim(frmObject.b_address1.value) == '')
		 {
		 	 alert('Please enter address.');
		 	 frmObject.b_address1.focus();
		 	 return false;
		 }
		 
		 if(trim(frmObject.b_city.value) == '')
		 {
		 	 alert('Please enter city.');
		 	 frmObject.b_city.focus();
		 	 return false;
		 }
		 
		 if(trim(frmObject.b_state.value) == '')
		 {
		 	 alert('Please select state.');
		 	 frmObject.b_state.focus();
		 	 return false;
		 }
		 
		 if(trim(frmObject.b_country.value) == '')
		 {
		 	 alert('Please select country.');
		 	 frmObject.b_country.focus();
		 	 return false;
		 }
		 
		  if(trim(frmObject.b_zipcode.value) == '')
			 {
			 	 alert('Please enter zipcode.');
			 	 frmObject.b_zipcode.focus();
			 	 return false;
			 }
		 return true; 		 
}


function CheckStep3Provider(frmObject)
{
	
	 /*if(trim(frmObject.ssn.value) == '')
		 {
		 	 alert('Please enter SSN Number.');
		 	 frmObject.ssn.focus();
		 	 return false;
		 }
		*/
	 if(trim(frmObject.checkname.value) == '')
		 {
		 	 alert('Please enter Check Name.');
		 	 frmObject.checkname.focus();
		 	 return false;
		 }
		
		if(trim(frmObject.reportemail.value) == '')
		 {
		 	 alert('Please enter reportmail.');
		 	 frmObject.reportemail.focus();
		 	 return false;
		 }
		else
			{
				 if(!CheckEmail(trim(frmObject.reportemail.value)))
				 {
				 	 frmObject.reportemail.focus();
				 	 return false;
				}
			}		 		
		if(trim(frmObject.checkpaymentperiod.value) == '')
		 {
		 	 alert('Please enter Payment Period.');
		 	 frmObject.checkpaymentperiod.focus();
		 	 return false;
		 }
		 		 		
	 	if(trim(frmObject.checkminpaymentamount.value) == '')
		 {
		 	 alert('Please enter check minimum payment amount.');
		 	 frmObject.checkminpaymentamount.focus();
		 	 return false;
		 }
		else
			{
				 if(isNaN(frmObject.checkminpaymentamount.value))
				 {
				 	 alert('Please enter a number.');
		 	 			frmObject.checkminpaymentamount.focus();
		 	 			return false;
				}
			else
				{
					 if(frmObject.checkminpaymentamount.value < 50)
					 {
					   alert('Please enter a value more than 50.');
		 	 			frmObject.checkminpaymentamount.focus();
		 	 			return false;	
					 }
				}
			}		
		
		if(trim(frmObject.checkpaymenttype.value) == '')
		 {
		 	 alert('Please select check payment type.');
		 	 frmObject.checkpaymenttype.focus();
		 	 return false;
		 }		 
				 
				 
	 return true;
	 
}


function validateQty(ctrl,iMinQty,iAvailQty, objForm, unlimitedProducts) {	
	
	if (isNaN(ctrl.value))
	{
			 alert('Please enter a valid quantity.');
			 ctrl.value = iMinQty;
			 ctrl.focus();
			 return false;
	}
	else if (parseInt(ctrl.value) < iMinQty)
	{
			 // alert('You can only buy '+iMinQty+' or more of this product.');
			 alert('You must order at least '+iMinQty+' of this product.');
			 ctrl.value = iMinQty;
			 ctrl.focus();
			 return false;
	}
		
	
	if (unlimitedProducts != "y" ) { 
				
		if (parseInt(ctrl.value) > iAvailQty)
		{
				 alert('You can buy less than available '+iAvailQty+' quantity of this product.');
				 ctrl.focus();
				 return false;
		}	
	}
	
	objForm.submit();
	return true;
}


function openWin(x,width,height) {
 	window.open(x,null,"width="+width+",height="+height+",menubar=0,toolbar=0,resizable=0,scrollbars=1");
}


/*************************************
* Function for the phone no validation
*****************************************/
function isInteger(s)
{   var i;
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

// Declaring required variables
var digits = "0123456789";
// non-digit characters which are allowed in phone numbers
var phoneNumberDelimiters = "-";
// characters which are allowed in international phone numbers
// (a leading + is OK)
var validWorldPhoneChars = phoneNumberDelimiters;
// Minimum no of digits in an international phone no.
var minDigitsInIPhoneNumber = 10;

function stripCharsInBag(s, bag)
{   var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }	
    return returnString;
}

function checkInternationalPhone(strPhone) {	
	
	var bracket=3
	if(strPhone.indexOf("+")>1) return false
	if(strPhone.indexOf("-")!=-1)bracket=bracket+1
	if(strPhone.indexOf("(")!=-1 && strPhone.indexOf("(")>bracket)return false
	var brchr=strPhone.indexOf("(")
	if(strPhone.indexOf("(")!=-1 && strPhone.charAt(brchr+2)!=")")return false
	if(strPhone.indexOf("(")==-1 && strPhone.indexOf(")")!=-1)return false

	s=stripCharsInBag(strPhone,validWorldPhoneChars);	
	return (isInteger(s) && s.length == minDigitsInIPhoneNumber);
}


function userNameValidation (frmFldVal) {	
	var patternChars = /^[a-zA-Z_ ]+$/;
	//  var patternChars = new RegExp("/^[a-zA-Z_]+$/");
	// var patternChars = new RegExp("^[0-9]$");

	if(  ! patternChars.test(frmFldVal) ) {				
		return true;	
	} else {		
		return false;	
	}	
}

function compNameValidation(frmFldVal) {	
	var patternChars = /^[a-zA-Z _\'()-.&,]+$/;

	if(  ! patternChars.test(frmFldVal) ) {				
		return true;	
	} else {		
		return false;	
	}	
}

function charValidation(frmFldVal) {	
	var patternChars = /^[a-zA-Z ]+$/;

	if(  ! patternChars.test(frmFldVal) ) {				
		return true;	
	} else {		
		return false;	
	}	
}

function numberValidation(frmFldVal) {	
	var patternChars = /^[0-9.]+$/;

	if(  ! patternChars.test(frmFldVal) ) {				
		return true;	
	} else {		
		return false;	
	}	
}

/// added by sudheeer -- password strength


function showmeter(x)
{
   var pass=x.value;
   //document.write(pass);
   if(pass!="")
   nPerc = chkpwd(pass);
   else
   nPerc = 1;
   nPerc=nPerc * 2;
   if(nPerc >= 160) nPerc = 155;
   document.getElementById("tblarrow").width=nPerc;
}

/// added by sudheeer -- password strength
function chkpwd(p)
{
   var intScore = 0;
   intScore += p.length;
   if(p.length > 0 && p.length <= 4) { // length 4 or less
   intScore += p.length;
   }
   else if (p.length >= 5 && p.length <= 7) { // length between 5 and 7
   intScore += 6;
   }
   else if (p.length >= 8 && p.length <= 15) { // length between 8 and 15
   intScore += 12;
   }
   else if (p.length >= 16) { // length 16 or more
   intScore += 18;
   }

   if (p.match(/[a-z]/)) { // [verified] at least one lower case letter
   intScore += 1;
   }
   if (p.match(/[A-Z]/)) { // [verified] at least one upper case letter
   intScore += 5;
   }
   // NUMBERS
   if (p.match(/\d/)) { // [verified] at least one number
   intScore += 5;
   }
   if (p.match(/.*\d.*\d.*\d/)) { // [verified] at least three numbers
   intScore += 5;
   }

   // SPECIAL CHAR
   if (p.match(/[!,@,#,$,%,^,&,*,?,_,~]/)) { // [verified] at least one special character
   intScore += 5;
   }
   // [verified] at least two special characters
   if (p.match(/.*[!,@,#,$,%,^,&,*,?,_,~].*[!,@,#,$,%,^,&,*,?,_,~]/)) {
   intScore += 5;
   }

   // COMBOS
   if (p.match(/(?=.*[a-z])(?=.*[A-Z])/)) { // [verified] both upper and lower case
   intScore += 2;
   }
   if (p.match(/(?=.*\d)(?=.*[a-z])(?=.*[A-Z])/)) { // [verified] both letters and numbers
   intScore += 2;
   }
   // [verified] letters, numbers, and special characters
   if (p.match(/(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!,@,#,$,%,^,&,*,?,_,~])/)) {
   intScore += 2;
   }
   return intScore;
}

// added by sudheer
// For account type list box in the register_step1.tpl


function fillCategory(){ 
 // this function is used to fill the category list on load
addOption(document.registerform.accountype, "Candidate", "Candidate", "");
addOption(document.registerform.accountype, "Political party", "Political party", "");
addOption(document.registerform.accountype, "PACs/527", "PACs/527", "");
addOption(document.registerform.accountype, "Union", "Union", "");
addOption(document.registerform.accountype, "Non-profit", "Non-profit", "");
addOption(document.registerform.accountype, "Consultants", "Consultants", "");
addOption(document.registerform.accountype, "Voter", "Voter", "");
}

function SelectSubCat(){
// ON selection of category this function will work

removeAllOptions(document.registerform.SubCat);
//addOption(document.registerform.SubCat, "", "select", "");

if(document.registerform.accountype.value == 'Candidate'){
addOption(document.registerform.SubCat,"Federal", "Federal");
addOption(document.registerform.SubCat,"State", "State");
addOption(document.registerform.SubCat,"Local", "Local");
addOption(document.registerform.SubCat,"Municipal", "Municipal");
}
if(document.registerform.accountype.value == 'Political party'){
addOption(document.registerform.SubCat,"National", "National");
addOption(document.registerform.SubCat,"State", "State");
addOption(document.registerform.SubCat,"County", "County", "");
addOption(document.registerform.SubCat,"Township", "Township", "");
}
if(document.registerform.accountype.value == 'PACs/527'){
addOption(document.registerform.SubCat,"National", "National");
addOption(document.registerform.SubCat,"State", "State");
addOption(document.registerform.SubCat,"Corporate", "Corporate");
addOption(document.registerform.SubCat,"Union", "Union");
}
if(document.registerform.accountype.value == 'Union'){
addOption(document.registerform.SubCat,"National", "National");
addOption(document.registerform.SubCat,"State", "State");
addOption(document.registerform.SubCat,"Local", "Local");
}

if(document.registerform.accountype.value == 'Non-profit'){
addOption(document.registerform.SubCat,"5OIC-3", "5OIC-3");
addOption(document.registerform.SubCat,"5OIC-4", "5OIC-4");
addOption(document.registerform.SubCat,"5OIC-6", "5OIC-6");
addOption(document.registerform.SubCat,"NGO", "NGO");
}

if(document.registerform.accountype.value == 'Consultants'){
addOption(document.registerform.SubCat,"AAPC", "AAPC");
addOption(document.registerform.SubCat,"IAPC", "IAPC");
addOption(document.registerform.SubCat,"EAPC", "EAPC");
addOption(document.registerform.SubCat,"Other", "Other");
}

if(document.registerform.accountype.value == 'Consultants'){
addOption(document.registerform.SubCat,"AAPC", "AAPC");
addOption(document.registerform.SubCat,"IAPC", "IAPC");
addOption(document.registerform.SubCat,"EAPC", "EAPC");
addOption(document.registerform.SubCat,"Other", "Other");
}

if(document.registerform.accountype.value == 'Voter'){
addOption(document.registerform.SubCat,"Volunteer", "Volunteer");
addOption(document.registerform.SubCat,"Blogger", "Blogger");
addOption(document.registerform.SubCat,"Paid Volunteer", "Paid Volunteer");
addOption(document.registerform.SubCat,"e-Activist", "e-Activist");
}



}
////////////////// 

function removeAllOptions(selectbox)
{
	var i;
	for(i=selectbox.options.length-1;i>=0;i--)
	{
		//selectbox.options.remove(i);
		selectbox.remove(i);
	}
}


function addOption(selectbox, value, text )
{
	var optn = document.createElement("OPTION");
	optn.text = text;
	optn.value = value;

	selectbox.options.add(optn);
}



/// Addded by sudheer -- register_step1.tpl

/*var arrCompFieldNames = ["firstname","lastname","b_address1","b_address2","b_city","b_zipcode","email","mobile","fax","company","website","uname"]
var arrCompFieldVals = ["First Name","Last Name","Street Line 1","Street Line 2","City","Zip code","Email address","Phone number","Fax number","Campaign/Org name","http://","Email Address"]
function emptyValue(fieldName) {
 for (var i = 0; i < arrCompFieldNames.length; i++) {
 if (fieldName.name == arrCompFieldNames[i]) {
 if (fieldName.value == arrCompFieldVals[i]) {
 fieldName.style.color = '#000000';
 fieldName.value = '';
 break;
 }
 }
 }
}

function fillValue(fieldName) {
 if (fieldName.value == '') {
 for (var i = 0; i < arrCompFieldNames.length; i++) {
 if (fieldName.name == arrCompFieldName s[i]) {
 fieldName.style.color = '#9a9696';
 fieldName.value = arrCompFieldVals[i]
 break;
 }
 }
 }
}*/

