
function showQuestion(argid, text){
	var atag = document.getElementById("q"+argid);
	if (atag){
		atag.className = text;
	}
}

function showQuestion2(flag){
	var atag = document.getElementById("generalError");
	if (atag){
		if(flag){
			atag.className = "generalErrorShow";			
		}
		else{
			atag.className = "generalErrorHide";
		}
	}
}

function validateForm(form){
	
	var checkerror = false;	
	var errorCount = 1; 
	if(form.TAX_RELIEF_TAX_AMOUNT.value == ""){
		showQuestion("1", 'inputGroup error');
		checkerror = true;	
	}
	else{
		showQuestion("1", 'inputGroup');
	}

	if(form.TAX_RELIEF_TAX_AGENCY.value == ""){
		showQuestion("2", 'inputGroup error');
		checkerror = true;
	}
	else{
		showQuestion("2", 'inputGroup');
	}

	if(form.TAX_RELIEF_TAX_TYPE.value == ""){
		showQuestion("3", 'inputGroup error');
		checkerror = true;
	}
	else{
		showQuestion("3", 'inputGroup');
	}
	
	if(form.TAX_RELIEF_TAXES_FILED.value == ""){
		showQuestion("4", 'inputGroup error');
		checkerror = true;
	}
	else{
		showQuestion("4", 'inputGroup');
	}	

	
	if(form.FNAME.value == ""){
		showQuestion("5", 'inputGroup error');
		checkerror = true;
	}
	else{
		if(checkName(form.FNAME.value) !=99){
			showQuestion("5", 'inputGroup error');
			checkerror = true;
		}
		else{
			showQuestion("5", 'inputGroup');
		}
	}

	if(form.LNAME.value == ""){
		showQuestion("6", 'inputGroup error');
		checkerror = true;
	}
	else{
		if(checkName(form.LNAME.value) !=99){
			showQuestion("6", 'inputGroup error');
			checkerror = true;
		}
		else{
			showQuestion("6", 'inputGroup');
		}
	}
	
	
	var err_zip = checkzip(form.ZIP.value, "");
	
	if(err_zip == 0){
		showQuestion("7", 'inputGroup error');
		checkerror = true;
	}
	else if(err_zip == 1){
		showQuestion("7", 'inputGroup error');
		checkerror = true;
	}
	else{
		showQuestion("7", 'inputGroup');
	}
	
	
	if(!isValidEmail(form.EMAIL.value)){
		showQuestion("8", 'inputGroup error');
		checkerror = true;
	}
	else{
		showQuestion("8", 'inputGroup');
	}
	
	var phonevalue = form.pri_phone_1.value+ form.pri_phone_2.value+ form.pri_phone_3.value;	
	var err_phone = isValidPhone(phonevalue);
	if(err_phone == 0){
		showQuestion("9", 'inputGroup error');
		checkerror = true;
	}
	else if(err_phone == 1){
		showQuestion("9", 'inputGroup error');
		checkerror = true;
	}
	else{
		showQuestion("9", 'inputGroup');
	}
	
	
	var phonevalue2 = form.sec_phone_1.value+ form.sec_phone_2.value+ form.sec_phone_3.value;	
	
	if(phonevalue2 != ''){
		err_phone = isValidPhone(phonevalue2);
		if(err_phone == 0){
			showQuestion("10", 'inputGroup error');
			checkerror = true;
		}
		else if(err_phone == 1){
			showQuestion("10", 'inputGroup error');
			checkerror = true;
		}
		else{
			showQuestion("10", 'inputGroup');
		}	
	}
	else{
		showQuestion("10", 'inputGroup');
	}
	
	
	
	
	if(checkerror){		
		showQuestion2(true);
		return false;		
	}
	else{
		var url = form.url.value;	
		if(url.indexOf("?FNAME")>0){
			url = url.substring(0, url.indexOf("?FNAME"));		
		}		
		document.leadForm.url.value = url+ "?FNAME="+form.FNAME.value;			
		showQuestion2(false);
	}
	return true;
}


function isValidPhone(strPhone) {
	if (strPhone.length < 10) { 
		return 0;
	}	
	var phoneRE = /^\(\d{3}\)\d{3}-\d{4}$/;	
	var phoneExp = /[^0-9]/;
	if(phoneExp.test(strPhone)){
		return 0;
	}	
	var areacode = new Array(
	"201", "202", "203", "204", "205", "206", "207", "208", "209", "210",
	"212", "213", "214", "215", "216", "217", "218", "219", "224", "225",
	"228", "229", "231", "234", "239", "240", "248", "250", "251", "252",
	"253", "254", "256", "260", "262", "267", "269", "270", "276", "281", 
	"289", "301", "302", "303", "304", "305", "306", "307", "308", "309",
	"310", "312", "313", "314", "315", "316", "317", "318", "319", "320",
	"321", "323", "325", "330", "331", "334", "336", "337", "339", "340", 
	"347", "351", "352", "360", "361", "386", "401", "402", "403", "404",
	"405", "406", "407", "408", "409", "410", "412", "413", "414", "415",
	"416", "417", "418", "419", "423", "424", "425", "432", "434", "435", 
	"440", "443", "450", "469", "478", "479", "480", "484", "501", "502",
	"503", "504", "505", "506", "507", "508", "509", "510", "512", "513",
	"514", "515", "516", "517", "518", "519", "520", "530", "540", "541",
	"551", "557", "559", "561", "562", "563", "567", "570", "571", "573",
	"574", "580", "585", "586", "601", "602", "603", "604", "605", "606",
	"607", "608", "609", "610", "612", "613", "614", "615", "616", "617",
	"618", "619", "620", "623", "626", "630", "631", "636", "641", "646", 
	"647", "650", "651", "660", "661", "662", "671", "678", "682", "701",
	"702", "703", "704", "705", "706", "707", "708", "709", "712", "713", 
	"714", "715", "716", "717", "718", "719", "720", "724", "727", "731", 
	"732", "734", "740", "754", "757", "760", "763", "765", "770", "772",
	"773", "774", "775", "778", "780", "781", "785", "786", "787", "801",
	"802", "803", "804", "805", "806", "807", "808", "810", "812", "813", 
	"814", "815", "816", "817", "818", "819", "828", "830", "831", "832", 
	"843", "845", "847", "848", "850", "856", "857", "858", "859", "860", 
	"862", "863", "864", "865", "867", "870", "878", "901", "902", "903",
	"904", "905", "906", "907", "908", "909", "910", "912", "913", "914", 
	"915", "916", "917", "918", "919", "920", "925", "928", "931", "936",
	"937", "939", "940", "941", "947", "949", "951", "952", "954", "956", 
	"970", "971", "972", "973", "978", "979", "980", "985", "989");
	var found = false;
	var userarea = strPhone.substring(0,3);
	for(i=0; i<areacode.length; i++){
		if(userarea ==areacode[i]){
			found = true;
			break;
		}
	}
	if(!found){		
		return 1;
	}
	
	var phonecheck = strPhone.substring(3);
	var specialcheck = strPhone.substring(3,6);
	
	if(phonecheck == "1234567" || phonecheck == "4567890" || phonecheck == "0000000" ||
	   phonecheck == "1111111" || phonecheck == "2222222" || phonecheck == "3333333" ||
	   phonecheck == "4444444" || phonecheck == "5555555" || phonecheck == "6666666" || 
	   phonecheck == "7777777" || phonecheck == "8888888" || phonecheck == "9999999" ||
	   specialcheck == "555"   || specialcheck == "000"   || specialcheck=="911"){
		
		return 0;
	}	
    return 99;
}

function isValidEmail(strEmail) {
  var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;  
  if(trimString(strEmail).length ==0 ){ return false;}  
  if (strEmail.length < 5) { return false; }  
  if (!strEmail.match(re)) { return false; }  
  return true;
}


function checkName(str){	
	var nameExp = /[^a-zA-Z\-\'\s]/;
	var name = trimString(str);

	if(name.length <=1){
		return 0;
	}
	else if (nameExp.test(str)){
	   return 0;	
	}
	else {	
		var count = 1;
		var charCheck = name.charAt(0);
		
		for(i = 1; i < name.length; i++){
			if(charCheck == name.charAt(i)){
				count++;				
			}
			else{
				charCheck = name.charAt(i);
				count = 1;
			}
			if(count >=3){
				return 0;
			}
		}
		return 99;
	}
	
	return 99;
}

function checkzip(value, stateValue){
	if(trimString(value)==""){
		return 0;
	}
	else if(value.length != 5){
		return 0;
	}
	else{
		return validZip(value, stateValue);
	}	
}

function validZip(zipnum, statevalue){

	var numExp = /[^0-9]/;
	if(numExp.test(zipnum)){
		return 0;
	}


	////doing zipcode check ////
	var zipcode = Array (
			"005NY" , "010MA" , "011MA" , "012MA" , "013MA" , "014MA" , "015MA" , "016MA" , "017MA" , "018MA" ,
			"019MA" , "020MA" , "021MA" , "022MA" , "023MA" , "024MA" , "025MA" , "026MA" , "027MA" , "028RI" ,
			"029RI" , "030NH" , "031NH" , "032NH" , "033NH" , "034NH" , "035NH" , "036NH" , "037NH" , "038NH" ,
			"039ME" , "040ME" , "041ME" , "042ME" , "043ME" , "044ME" , "045ME" , "046ME" , "047ME" , "048ME" ,
			"049ME" , "050VT" , "051VT" , "052VT" , "053VT" , "054VT" , "055MA" , "056VT" , "057VT" , "058VT" ,
			"059VT" , "060CT" , "061CT" , "062CT" , "063CT" , "063NY" , "064CT" , "065CT" , "066CT" , "067CT" ,
			"068CT" , "069CT" , "070NJ" , "071NJ" , "072NJ" , "073NJ" , "074NJ" , "075NJ" , "076NJ" , "077NJ" ,
			"078NJ" , "079NJ" , "080NJ" , "081NJ" , "082NJ" , "083NJ" , "084NJ" , "085NJ" , "086NJ" , "087NJ" ,
			"088NJ" , "089NJ" , "100NY" , "101NY" , "102NY" , "103NY" , "104NY" , "105NY" , "106NY" , "107NY" ,
			"108NY" , "109NY" , "110NY" , "111NY" , "112NY" , "113NY" , "114NY" , "115NY" , "116NY" , "117NY" ,
			"118NY" , "119NY" , "120NY" , "121NY" , "122NY" , "123NY" , "124NY" , "125NY" , "126NY" , "127NY" ,
			"128NY" , "129NY" , "130NY" , "131NY" , "132NY" , "133NY" , "134NY" , "135NY" , "136NY" , "137NY" ,
			"138NY" , "139NY" , "140NY" , "141NY" , "142NY" , "143NY" , "144NY" , "145NY" , "146NY" , "147NY" ,
			"148NY" , "149NY" , "150PA" , "151PA" , "152PA" , "153PA" , "154PA" , "155PA" , "156PA" , "157PA" ,
			"158PA" , "159PA" , "160PA" , "161PA" , "162PA" , "163PA" , "164PA" , "165PA" , "166PA" , "167PA" ,
			"168PA" , "169PA" , "170PA" , "171PA" , "172PA" , "173PA" , "174PA" , "175PA" , "176PA" , "177PA" ,
			"178PA" , "179PA" , "180PA" , "181PA" , "182PA" , "183PA" , "184PA" , "185PA" , "186PA" , "187PA" ,
			"188PA" , "189PA" , "190PA" , "191PA" , "192PA" , "193PA" , "194PA" , "195PA" , "196PA" , "197DE" ,
			"198DE" , "199DE" , "200DC" , "201VA" , "202DC" , "203DC" , "204DC" , "205DC" , "206MD" , "207MD" ,
			"208MD" , "209MD" , "210MD" , "211MD" , "212MD" , "214MD" , "215MD" , "216MD" , "217MD" , "218MD" ,
			"219MD" , "220VA" , "221VA" , "222VA" , "223VA" , "224VA" , "225VA" , "226VA" , "227VA" , "228VA" ,
			"229VA" , "230VA" , "231VA" , "232VA" , "233VA" , "234VA" , "235VA" , "236VA" , "237VA" , "238VA" ,
			"239VA" , "240VA" , "241VA" , "242VA" , "243VA" , "244VA" , "245VA" , "246VA" , "247WV" , "248WV" ,
			"249WV" , "250WV" , "251WV" , "252WV" , "253WV" , "254WV" , "255WV" , "256WV" , "257WV" , "258WV" ,
			"259WV" , "260WV" , "261WV" , "262WV" , "263WV" , "264WV" , "265WV" , "266WV" , "267WV" , "268WV" ,
			"270NC" , "271NC" , "272NC" , "273NC" , "274NC" , "275NC" , "276NC" , "277NC" , "278NC" , "279NC" ,
			"280NC" , "281NC" , "282NC" , "283NC" , "284NC" , "285NC" , "286NC" , "287NC" , "288NC" , "289NC" ,
			"290SC" , "291SC" , "292SC" , "293SC" , "294SC" , "295SC" , "296SC" , "297SC" , "298SC" , "299SC" ,
			"300GA" , "301GA" , "302GA" , "303GA" , "304GA" , "305GA" , "306GA" , "307GA" , "308GA" , "309GA" ,
			"310GA" , "311GA" , "312GA" , "313GA" , "314GA" , "315GA" , "316GA" , "317GA" , "318GA" , "319GA" ,
			"320FL" , "321FL" , "322FL" , "323FL" , "324FL" , "325FL" , "326FL" , "327FL" , "328FL" , "329FL" ,
			"330FL" , "331FL" , "332FL" , "333FL" , "334FL" , "335FL" , "336FL" , "337FL" , "338FL" , "339FL" ,
			"341FL" , "342FL" , "344FL" , "346FL" , "347FL" , "349FL" , "350AL" , "351AL" , "352AL" , "354AL" ,
			"355AL" , "356AL" , "357AL" , "358AL" , "359AL" , "360AL" , "361AL" , "362AL" , "363AL" , "364AL" ,
			"365AL" , "366AL" , "367AL" , "368AL" , "369AL" , "370TN" , "371TN" , "372TN" , "373TN" , "374TN" ,
			"375TN" , "376TN" , "377TN" , "378TN" , "379TN" , "380TN" , "381TN" , "382TN" , "383TN" , "384TN" ,
			"385TN" , "386MS" , "387MS" , "388MS" , "389MS" , "390MS" , "391MS" , "392MS" , "393MS" , "394MS" ,
			"395MS" , "396MS" , "397MS" , "398GA" , "399GA" , "400KY" , "401KY" , "402KY" , "403KY" , "404KY" ,
			"405KY" , "406KY" , "407KY" , "408KY" , "409KY" , "410KY" , "411KY" , "412KY" , "413KY" , "414KY" ,
			"415KY" , "416KY" , "417KY" , "418KY" , "420KY" , "421KY" , "422KY" , "423KY" , "424KY" , "425KY" ,
			"426KY" , "427KY" , "430OH" , "431OH" , "432OH" , "433OH" , "434OH" , "435OH" , "436OH" , "437OH" ,
			"438OH" , "439OH" , "440OH" , "441OH" , "442OH" , "443OH" , "444OH" , "445OH" , "446OH" , "447OH" ,
			"448OH" , "449OH" , "450OH" , "451OH" , "452OH" , "453OH" , "454OH" , "455OH" , "456OH" , "457OH" ,
			"458OH" , "459OH" , "460IN" , "461IN" , "462IN" , "463IN" , "464IN" , "465IN" , "466IN" , "467IN" ,
			"468IN" , "469IN" , "470IN" , "471IN" , "472IN" , "473IN" , "474IN" , "475IN" , "476IN" , "477IN" ,
			"478IN" , "479IN" , "480MI" , "481MI" , "482MI" , "483MI" , "484MI" , "485MI" , "486MI" , "487MI" ,
			"488MI" , "489MI" , "490MI" , "491MI" , "492MI" , "493MI" , "494MI" , "495MI" , "496MI" , "497MI" ,
			"498MI" , "499MI" , "500IA" , "501IA" , "502IA" , "503IA" , "504IA" , "505IA" , "506IA" , "507IA" ,
			"508IA" , "509IA" , "510IA" , "511IA" , "512IA" , "513IA" , "514IA" , "515IA" , "516IA" , "520IA" ,
			"521IA" , "522IA" , "523IA" , "524IA" , "525IA" , "526IA" , "527IA" , "528IA" , "530WI" , "531WI" ,
			"532WI" , "534WI" , "535WI" , "537WI" , "538WI" , "539WI" , "540WI" , "541WI" , "542WI" , "543WI" ,
			"544WI" , "545WI" , "546WI" , "547WI" , "548WI" , "549WI" , "550MN" , "551MN" , "553MN" , "554MN" ,
			"555MN" , "556MN" , "557MN" , "558MN" , "559MN" , "560MN" , "561MN" , "562MN" , "563MN" , "564MN" ,
			"565MN" , "566MN" , "567MN" , "569DC" , "570SD" , "571SD" , "572SD" , "573SD" , "574SD" , "575SD" ,
			"576SD" , "577SD" , "580ND" , "581ND" , "582ND" , "583ND" , "584ND" , "585ND" , "586ND" , "587ND" ,
			"588ND" , "590MT" , "591MT" , "592MT" , "593MT" , "594MT" , "595MT" , "596MT" , "597MT" , "598MT" ,
			"599MT" , "600IL" , "601IL" , "602IL" , "603IL" , "604IL" , "605IL" , "606IL" , "607IL" , "608IL" ,
			"609IL" , "610IL" , "611IL" , "612IL" , "613IL" , "614IL" , "615IL" , "616IL" , "617IL" , "618IL" ,
			"619IL" , "620IL" , "622IL" , "623IL" , "624IL" , "625IL" , "626IL" , "627IL" , "628IL" , "629IL" ,
			"630MO" , "631MO" , "633MO" , "634MO" , "635MO" , "636MO" , "637MO" , "638MO" , "639MO" , "640MO" ,
			"641MO" , "644MO" , "645MO" , "646MO" , "647MO" , "648MO" , "649MO" , "650MO" , "651MO" , "652MO" ,
			"653MO" , "654MO" , "655MO" , "656MO" , "657MO" , "658MO" , "660KS" , "661KS" , "662KS" , "664KS" ,
			"665KS" , "666KS" , "667KS" , "668KS" , "669KS" , "670KS" , "671KS" , "672KS" , "673KS" , "674KS" ,
			"675KS" , "676KS" , "677KS" , "678KS" , "679KS" , "680NE" , "681NE" , "683NE" , "684NE" , "685NE" ,
			"686NE" , "687NE" , "688NE" , "689NE" , "690NE" , "691NE" , "692NE" , "693NE" , "700LA" , "701LA" ,
			"703LA" , "704LA" , "705LA" , "706LA" , "707LA" , "708LA" , "710LA" , "711LA" , "712LA" , "713LA" ,
			"714LA" , "716AR" , "717AR" , "718AR" , "719AR" , "720AR" , "721AR" , "722AR" , "723AR" , "724AR" ,
			"725AR" , "726AR" , "727AR" , "728AR" , "729AR" , "730OK" , "731OK" , "733TX" , "734OK" , "735OK" ,
			"736OK" , "737OK" , "738OK" , "739OK" , "740OK" , "741OK" , "743OK" , "744OK" , "745OK" , "746OK" ,
			"747OK" , "748OK" , "749OK" , "750TX" , "751TX" , "752TX" , "753TX" , "754TX" , "755TX" , "756TX" ,
			"757TX" , "758TX" , "759TX" , "760TX" , "761TX" , "762TX" , "763TX" , "764TX" , "765TX" , "766TX" ,
			"767TX" , "768TX" , "769TX" , "770TX" , "772TX" , "773TX" , "774TX" , "775TX" , "776TX" , "777TX" ,
			"778TX" , "779TX" , "780TX" , "781TX" , "782TX" , "783TX" , "784TX" , "785TX" , "786TX" , "787TX" ,
			"788TX" , "789TX" , "790TX" , "791TX" , "792TX" , "793TX" , "794TX" , "795TX" , "796TX" , "797TX" ,
			"798TX" , "799TX" , "800CO" , "801CO" , "802CO" , "803CO" , "804CO" , "805CO" , "806CO" , "807CO" ,
			"808CO" , "809CO" , "810CO" , "811CO" , "812CO" , "813CO" , "814CO" , "815CO" , "816CO" , "820WY" ,
			"821WY" , "822WY" , "823WY" , "824WY" , "825WY" , "826WY" , "827WY" , "828WY" , "829WY" , "830WY" ,
			"831WY" , "832ID" , "833ID" , "834ID" , "834WY" , "835ID" , "836ID" , "837ID" , "838ID" , "840UT" ,
			"841UT" , "842UT" , "843UT" , "844UT" , "845UT" , "846UT" , "847UT" , "850AZ" , "852AZ" , "853AZ" ,
			"855AZ" , "856AZ" , "857AZ" , "859AZ" , "860AZ" , "863AZ" , "864AZ" , "865AZ" , "870NM" , "871NM" ,
			"873NM" , "874NM" , "875NM" , "877NM" , "878NM" , "879NM" , "880NM" , "881NM" , "882NM" , "883NM" ,
			"884NM" , "885TX" , "889NV" , "890NV" , "891NV" , "893NV" , "894NV" , "895NV" , "897NV" , "898NV" ,
			"900CA" , "901CA" , "902CA" , "903CA" , "904CA" , "905CA" , "906CA" , "907CA" , "908CA" , "910CA" ,
			"911CA" , "912CA" , "913CA" , "914CA" , "915CA" , "916CA" , "917CA" , "918CA" , "919CA" , "920CA" ,
			"921CA" , "922CA" , "923CA" , "924CA" , "925CA" , "926CA" , "927CA" , "928CA" , "930CA" , "931CA" ,
			"932CA" , "933CA" , "934CA" , "935CA" , "936CA" , "937CA" , "938CA" , "939CA" , "940CA" , "941CA" ,
			"942CA" , "943CA" , "944CA" , "945CA" , "946CA" , "947CA" , "948CA" , "949CA" , "950CA" , "951CA" ,
			"952CA" , "953CA" , "954CA" , "955CA" , "956CA" , "957CA" , "958CA" , "959CA" , "960CA" , "961CA" ,
			"967HI" , "968HI" , "970OR" , "971OR" , "972OR" , "973OR" , "974OR" , "975OR" , "976OR" , "977OR" ,
			"978OR" , "979OR" , "980WA" , "981WA" , "982WA" , "983WA" , "984WA" , "985WA" , "986WA" , "988WA" ,
			"989WA" , "990WA" , "991WA" , "992WA" , "993WA" , "994WA" , "995AK" , "996AK" , "997AK" , "998AK" ,
			"999AK");

	var testzip = zipnum.substring(0,3);

	var isZip = 0;
	
	if(statevalue ==''){
		for(var i=0; i<zipcode.length; i++){
			if(testzip == zipcode[i].substring(0,3)){
				isZip = 99;
				break;
			}
		}
	}
	else{
		testzip +=statevalue;
		for(var i=0; i<zipcode.length; i++){
			if(testzip == zipcode[i]){
				isZip = 99;
				break;
			}
		}
		if(isZip !=99){
			isZip = 1;
		}
	}
	return isZip;
}

function trimString (str) {
	if(str == null)
		return '';	
	return str.replace(/^\s+|\s+$/g, '') ;
}
function onKeyPressOnlyNumbers(e){
	var key;
	var keychar;

	if (window.event)
	   key = window.event.keyCode;
	else if (e)
	   key = e.which;
	else
	   return true;
		
	var keychar = String.fromCharCode(key);

	// control keys
	if ((key==null) || (key==0) || (key==8) ||
	    (key==9) || (key==13) || (key==27) )
	   return true;

	// numbers
	else if ((("0123456789").indexOf(keychar) > -1))
	   return true;

	return false;
}

function autofocusNext(field, limit, next) {
	if(field){
		if(field.value.length == limit) {
			if(next){
				next.focus();
			}
		}
	}
}