String.prototype.trim = function () {
    return this.replace(/^\s*/, "").replace(/\s*$/, "");
}

var agt = navigator.userAgent.toLowerCase();

var exclude=/[^@\-\.\w]|^[_@\.\-]|[\._\-]{2}|[@\.]{2}|(@)[^@]*\1/;
var check=/@[\w\-]+\./;
var checkend=/\.[a-zA-Z]{2,3}$/;

function more(myPage, windowName, myWidth, myHeight, scroll, resize){
	LeftPosition= (screen.width*0.5)-(myWidth*0.5);
	TopPosition= (screen.height*0.4)-(myHeight*0.5);
	window.open(myPage, windowName, 'width='+myWidth+',height='+myHeight+',top='+TopPosition+',left='+LeftPosition+',scrollbars=' + scroll + ',location=no,directories=no,status=no,menubar=no,toolbar=no,resizable=' + resize);
}

function empt(){}

function changeToNumeric(nowField, max_val){
	tmpValue = document.getElementById(nowField).value;
	tmpValue = tmpValue.replace(/[^0-9]/ig,"");
	document.getElementById(nowField).value=tmpValue;
	if(max_val!=-1)if(document.getElementById(nowField).value*1>max_val)document.getElementById(nowField).value=max_val;
}

function changeToDouble(nowField, max_val){
	tmpValue = document.getElementById(nowField).value;
	tmpValue = tmpValue.replace(/[^.^0-9]/ig, "");
	document.getElementById(nowField).value=tmpValue;
	if(max_val!=-1)if(parseInt(document.getElementById(nowField).value)*1>max_val)document.getElementById(nowField).value=max_val;
}

function maxWords(nowField, max_val){
	tmpValue = document.getElementById(nowField).value.trim();
	pos = 0;
	num = -1;
	i = -1;
	while (pos != -1) {
		pos = tmpValue.indexOf(" ", i + 1);
		num += 1;
		i = pos;
		if (num >= max_val) {
			if (i!=-1) tmpValue = tmpValue.substring(-1, i);
			document.getElementById(nowField).value=tmpValue;
			pos = -1;
		}
	}
}

function minWords(nowField, min_val){
	tmpValue = document.getElementById(nowField).value.trim();
	pos = 0;
	num = -1;
	i = -1;
	while (pos != -1) {
		pos = tmpValue.indexOf(" ", i + 1);
		num += 1;
		i = pos;
	}
	if (num < min_val) {
		alert("Not enough words entered");
		return false;
	}
	else return true;
}

function isNumeric(str){
	var valid_chars = "0123456789";
  	var isnumber = true;
	var curr_char;
	for (i = 0; i < str.length && isnumber; i++) { 
      curr_char = isnumber.charAt(i); 
      if (valid_chars.indexOf(curr_char) == -1) isnumber = false;
	  }
   return isnumber;
}

var now=new Date();
now.setDate(now.getDate() + 1); //add a day to the date so the bDay will be matched exactly!
Month=now.getMonth();              
Day=now.getDate();                 
Year=now.getYear();
function dateToAge(str){
	if(document.getElementById('birthMonth').value!=""&&document.getElementById('birthDay').value!=""&&document.getElementById('birthYear').value!=""){
		if(Year<1000)Year+=1900;
		by=document.getElementById('birthYear').value;
		bm=document.getElementById('birthMonth').value;
		bd=document.getElementById('birthDay').value;
		BDate=Date.UTC(by,bm,bd);
		if(Year<2000)CDate = Date.UTC(Year,Month,Day);
		else CDate = Date.UTC(Year,Month,Day);
		Age=CDate-BDate + (1000*60*60*24*30); 
		Age=parseInt(((((Age/1000)/60)/60)/24)/365.25,10);
		return Age;
	}
}

var last_error="", last_error_elem="";
function error_me(element, message, caption){
	last_error_elem=element;
	if(caption==undefined)caption=element;
	if(last_error!="")last_error.className="";
	
	alert(message);

	last_error=document.getElementById('lbl_'+caption); last_error.className="highlight_error";
	if(!navigator.userAgent.indexOf("MSIE")) location.href="#"+'lbl_'+caption;
	location.href = "#";
	document.getElementById(element).focus();
	return false;
}

var err_error_me_multi = false;
//var collect_error_me_multi = "";
var first_element_error_me_multi = "";
var first_message_error_me_multi = "";
var first_caption_error_me_multi = "";
function error_me_multi(element, message, caption){
	if(caption==undefined)caption=element;
	err_error_me_multi = true;
	if (first_message_error_me_multi == ""){
		first_message_error_me_multi = message;
		first_element_error_me_multi = element;
		if (first_caption_error_me_multi == "") first_caption_error_me_multi = caption;
	}
	document.getElementById('lbl_'+caption).className = "req highlight_error";
}

function error_me_multi_alert(){
	alert(first_message_error_me_multi);
	//if(!navigator.userAgent.indexOf("MSIE")) location.href="#"+'lbl_'+first_caption_error_me_multi;
	////location.href = "#";
	Effect.ScrollTo('lbl_'+first_caption_error_me_multi, { offset:-100 });
	document.getElementById(first_element_error_me_multi).focus();
}

function error_me_multi_clean(){
	err_error_me_multi = false;
	first_element_error_me_multi = "";
	first_message_error_me_multi = "";
	first_caption_error_me_multi = "";
	elem = document.getElementsByTagName("label");
	for (i = 0; i < elem.length; i++) {
		//alert(elem[i].className);
		if (elem[i]) {
			if (elem[i].className == "req highlight_error") elem[i].className = "req";
		}
	}
}

function reveal_alert_pop(cond){
	if(cond){
		var agt=navigator.userAgent.toLowerCase();
		if (agt.indexOf("msie")!=-1){
			elem=document.getElementsByTagName('input');
			for(i in elem)if(elem[i].name!=undefined)elem[i].style.visibility='hidden';
			elem=document.getElementsByTagName('select');
			for(i in elem)if(elem[i].name!=undefined)elem[i].style.visibility='hidden';
		}
		document.getElementById('alert_pop').className='visible';
	}else{
		var agt=navigator.userAgent.toLowerCase();
		if (agt.indexOf("msie")!=-1){
			elem=document.getElementsByTagName('input');
			for(i in elem)if(elem[i].name!=undefined)elem[i].style.visibility='visible';
			elem=document.getElementsByTagName('select');
			for(i in elem)if(elem[i].name!=undefined)elem[i].style.visibility='visible';
		}
		document.getElementById('alert_pop').className='hidden';
	}
}


function show(elem){
	document.getElementById(elem).className = 'visible';
}
function showMe(elem){
	document.getElementById(elem).className = 'visible';
}
function hide(elem){
	document.getElementById(elem).className = 'hidden';
}
function hideMe(elem){
	document.getElementById(elem).className = 'hidden';
}

function showAlert(alertElem){
	document.getElementById('alert_pop_wide').className = '';
	if (alertElem.indexOf("-") > -1) document.getElementById('alert_pop_wide').className = 'on';
	alertElem = alertElem.replace("-", "");
	
	showMe('alert_pop_bg');
	var agt = navigator.userAgent.toLowerCase();
	if (agt.indexOf("msie 6") > -1){
		elem = document.getElementById('wrapper').getElementsByTagName('input');
		for(i in elem)if(elem[i].name != undefined)elem[i].style.visibility = 'hidden';
		elem = document.getElementById('wrapper').getElementsByTagName('select');
		for(i in elem)if(elem[i].name != undefined)elem[i].style.visibility = 'hidden';
		document.getElementById('alert_pop').style.position = "absolute";
		document.getElementById('alert_pop_bg').style.position = "absolute";
		document.getElementById('alert_pop_bg').style.height = "90000px"
	}
	location = "#";
	showMe(alertElem); showMe('alert_pop');
}

function hideAlert(alertElem){
	var agt = navigator.userAgent.toLowerCase();
	if (agt.indexOf("msie 6") > -1){
		elem = document.getElementById('wrapper').getElementsByTagName('input');
		for(i in elem)if(elem[i].name != undefined)elem[i].style.visibility = 'visible';
		elem = document.getElementById('wrapper').getElementsByTagName('select');
		for(i in elem)if(elem[i].name != undefined)elem[i].style.visibility = 'visible';
	}
	
	hideMe('alert_pop'); hideMe(alertElem);
	hideMe('alert_pop_bg');
	document.getElementById('alert_pop_wide').className = '';
}




/*function jsAutoSelect(elem, val){
	for (i = 0; i < document.getElementById(elem).length; i++) {
		alert(document.getElementById(elem).options[i].value);
	}
}*/



//=====================================================AJAX
function getHTTPObject() {
	var xhr = false;
	if(window.XMLHttpRequest) {
		var xhr = new XMLHttpRequest();
	} else if(window.ActiveXObject) {
		try {
			var xhr = new ActiveXObject("Msxml2.XMLHTTP");
		} catch(e) {
			try {
				var xhr = new ActiveXObject("Microsoft.XMLHTTP");
			} catch(e) {
				xhr = false;
			}
		}
	}
	return xhr;
}

var ajaxWorking = false;

function doAjax(httpPath, vals, method, sync, flag) {

	/*============================
	FUNCTION INFO:	
	httpPath => url of execution page
	vals => values to pass to the above page
		all values i'm entering. all value must transferred as string; devided by  |~|. 
		//ex: 'state=AR|~|phone=212-111-1111|~|active=1'
	method => POST or GET
	sync => true (for sync executing) or false (for async executing)
	flag => cursor to the location withing the success / fail functions. (optional)
	==============================*/

	var http = getHTTPObject();

	if (http && !ajaxWorking) {
		vals_break = "";
		if (vals != "") {
			vals = vals.split("|~|");
			for (i = 0; i < vals.length; i++) {
				variable = vals[i].substr(0, vals[i].indexOf("="));
				value = "";
				value = vals[i].substr(vals[i].indexOf("=") + 1, vals[i].length);
				if (value != "") {
					if (vals_break != "") vals_break += "&";
					vals_break += variable + "=" + escape(value);
				}
			}
		}
		if (vals_break=="") vals_break = null;
		
		http.open(method, httpPath, sync);
		http.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		////http.setRequestHeader('Content-Type',  "text/xml");
		ajaxWorking = true;
		http.send(vals_break);
		http.onreadystatechange = function(){
			if (http.readyState == 4) {
				ajaxWorking = false;
				//alert('VALUES:\n' + vals_break + '\n\nHTML:\n' + http.responseText);
				if (http.status == 200) ajaxSuccess(http.responseXML, flag);
				else ajaxFail(flag);
			}
		}
	}
}



var last_cap_err = "";
/*
function error_me(element, message, caption){
	document.getElementById(element).focus();
	alert(message);
	if (caption) {
		if (document.getElementById(last_cap_err)) document.getElementById(last_cap_err).className = "";
		document.getElementById('cap_' + element).className = "highlight";
	}
	return false;
}
*/
function verEmail(elem, caption){
	if (document.getElementById(elem).value == '') return error_me(elem,'Please enter Email', caption);
	else if(((document.getElementById(elem).value.search(exclude) != -1)||(document.getElementById(elem).value.search(check)) == -1)||(document.getElementById(elem).value.search(checkend) == -1)) return error_me(elem, 'Please enter valid Email', caption);
	return true;
}

/*
var disableBleeding = true;
window.onbeforeunload = function() {
	//if (disableBleeding) return "You are leaving the page without saving changes."; //false;
	javascript:window.history.forward(1);
	
	
	//return false;
  	//if (disableBleeding) {
	//	if (confirm("Are you sure you want to leave this page?")) return true;
	//	else return false;
	//} else return true;
}
*/
function setCookie(c_name, value, expiredays){
	var exdate = new Date();
	exdate.setDate(exdate.getDate()+expiredays);
	document.cookie = c_name+ "=" +escape(value)+
	";path=/" +
	((expiredays == null) ? "" : ";expires="+exdate.toGMTString());
}
	
function getCookie(c_name){
	if (document.cookie.length > 0){
		c_start = document.cookie.indexOf(c_name + "=");
	 	if (c_start!=-1){
	    	c_start=c_start + c_name.length+1;
	    	c_end=document.cookie.indexOf(";",c_start);
	    	if (c_end==-1) c_end=document.cookie.length;
	    	return unescape(document.cookie.substring(c_start,c_end));
	    }
	}
	return "";
}

function promoup(myPage, windowName, myWidth, myHeight, dayLength){
	if (getCookie(windowName) != "true"){
		more(myPage, windowName, myWidth, myHeight, 'no', 'no');
		setCookie(windowName, "true", dayLength);
		window.focus();
	}
}
/*
var liveLeadsPhone = true;
window.onload = promoupLiveLeads;
function promoupLiveLeads(){
	if (liveLeadsPhone) {
		tmpElems = document.getElementsByTagName('body');
		for (var i = 0; i < tmpElems.length; i++) tmpElem = tmpElems[i].onclick = function(){ promoup('promoup.asp', 'promoup', 500, 160, 1);}
	}
}
*/

function generalHomeCheckZip(){
	if (document.getElementById('quoteFor').value=='') {alert('Please enter quote type'); document.getElementById('quoteFor').focus();return false;}
	if (document.getElementById('zipMe').value=='') {alert('Please enter zip'); document.getElementById('zipMe').focus(); return false;}
	return true;
}
//document.onload = document.getElementById('zipMe').focus();

function generalHomeCheckZipPop(){
	if (document.getElementById('quoteFor').value=='') {alert('Please enter quote type'); document.getElementById('quoteFor').focus();return false;}
	if (document.getElementById('zipMe').value=='') {alert('Please enter zip'); document.getElementById('zipMe').focus(); return false;}
	
	//alert('d');
	window.open('/xt_checkZip_pop.asp?zipMe=' + document.getElementById('zipMe').value + '&quoteFor=' + document.getElementById('quoteFor').value);
	return true;
}

function removeAllOptionsButFirst(elem){
	for(i = document.getElementById(elem).options.length - 1; i > 0; i--) document.getElementById(elem).remove(i);
}