// this is the host and port for the call action
var call_action_host = "http://action.livedeal.com";
//var call_action_host = "http://edge-action.livedeal.com:3002";
var trackerHost = "http://tools.livedeal.com/track";
//var trackerHost = "http://edge-tools.livedeal.com/track";
include ("http://track.livedeal.com/javascripts/tracker.js");
//include ("http://localhost:3001/javascripts/tracker.js");
include ("http://www.google-analytics.com/urchin.js");

document.write('<div id="wash" style="position:absolute;display:none;width:100%;height:100%;'+
		'filter:alpha(opacity=40);opacity:0.4;background:white"></div>')
document.write('<div id="popup" style="display:none;position:absolute;width:225px;height:125px;'+
		'font-family:verdana;font-size:9pt">&nbsp;</div>')

function include(script_filename) {
    document.write('<' + 'script');
    document.write(' language="javascript"');
    document.write(' type="text/javascript"');
    document.write(' src="' + script_filename + '">');
    document.write('</' + 'script' + '>');
}

// use this function for form validation
function formValid(reqform){
    // form validation if valid return true else return false...
	if (isLdReferral()){
		document.getElementById("record").value=trim(document.getElementById("record").value);
		if (document.getElementById("lead2call_id").value != "") {
			document.getElementById("lead2call_id").value = trim(document.getElementById("lead2call_id").value);
			if (!isAtLeast(2, document.getElementById("lead2call_id").value)) {
				alert("lead2call_id too short or missing");
				return false;
			}
		}
//		if (!isAtLeast(2, document.getElementById("record").value)){
//			alert("record parameter too short or missing");
//			return false;
//		}
	}
	if (document.getElementById("cemail") != null) {
		document.getElementById("cemail").value = trim(document.getElementById("cemail").value);
	}
	if (document.getElementById("cphoneArea") != null) {
		document.getElementById("cphoneArea").value = trim(document.getElementById("cphoneArea").value);
	}
	if (document.getElementById("cphone1") != null) {
		document.getElementById("cphone1").value = trim(document.getElementById("cphone1").value);
	}
	if (document.getElementById("cphone2") != null) {
		document.getElementById("cphone2").value = trim(document.getElementById("cphone2").value);
	}
	if (document.getElementById("cname") != null) {
		document.getElementById("cname").value = trim(document.getElementById("cname").value);
	}
	if (document.getElementById("cmessage") != null) {
		document.getElementById("cmessage").value = trim(document.getElementById("cmessage").value);
	}
	if (document.getElementById("call") != null) {
		document.getElementById("call").value = trim(document.getElementById("call").value);
	}
	if (!isAtLeast(1, document.getElementById("cname").value)){
		popupDiv("popup","wash","cname","Please specify contact full name");
		return false;
	}
	if (!isValidEmail(document.getElementById("cemail").value)){
		popupDiv("popup","wash","cemail","Please specify email address in the format name@company.com");
		return false;
	}
	if (document.getElementById("cphone") == 'undefined' || document.getElementById("cphone") == null ||
				document.getElementById("cphone") == "") {
		if (!isAtLeast(3, document.getElementById("cphoneArea").value)) {
			popupDiv("popup", "wash", "cphoneArea", "Please specify valid phone number");
			return false;
		}
		if (!isAtLeast(3, document.getElementById("cphone1").value)) {
			popupDiv("popup", "wash", "cphone1", "Please specify valid phone number");
			return false;
		}
		if (!isAtLeast(4, document.getElementById("cphone2").value)) {
			popupDiv("popup", "wash", "cphone2", "Please specify valid phone number");
			return false;
		}
	} else {
		if (!isAtLeast(10, document.getElementById("cphone").value)) {
			popupDiv("popup", "wash", "cphone", "Please specify valid phone number");
			return false;
		}		
	}
	if (!isAtLeast(1, document.getElementById("cmessage").value)){
		popupDiv("popup","wash","cmessage","Please let us know how we can help");
		return false;
	}
	if (document.getElementById("call") != null && !isAtLeast(2, document.getElementById("call").value)){
		popupDiv("popup","wash","call","whether to call too short or missing");
		return false;
	}
//	if (!isAtLeast(5, document.getElementById("click_id").value)){
//		alert("click_id too short or missing");
//		return false;
//	}
    return true;
}
function msOver(obj){
	obj.style.border='1px solid white';
	obj.style.cursor='pointer';
}
function msOut(obj){
	obj.style.border='';
	obj.style.cursor='default';
}
function autotab(original,destination){
	if (original.getAttribute && original.value.length == original.getAttribute("maxlength")) {
		destination.focus();
		destination.select();
	}
}
function popupDiv(inner, outer, item, errmsg){
//	var title="Validation Error";
//	if (item=="")
//		title="Form Submitted";
//	var topline="<div style='width:215px; height:20px;padding-left:10px;'>"+title+"</div>";
	var msgline="<div style='width:212px; padding:45px 5px 0 8px; text-align:center;'>"
//	var buttonline="<br><br><div style='text-align:center;width:50px;height:20px;background-color:blue;margin:0 auto;" +
//		"color:white;' onmouseover='msOver(this);' onmouseout='msOut(this);'>Okay</div>";
	var buttonline="<br/><br/><span onmouseover='msOver(this)' onmouseout='msOut(this)'><u>OK</u></span>"
	msgline=msgline + errmsg + buttonline + "</div>";	
	
	positionDiv(inner, outer);
	if (hasValue("popupBackground")){
		document.getElementById(inner).style.backgroundColor=document.getElementById("popupBackground").innerHTML;
	} else {
		document.getElementById(inner).style.backgroundColor="#CCEEFF";
	}		
	document.getElementById(inner).style.display='block';
	document.getElementById(inner).innerHTML=msgline;
	document.getElementById(outer).style.display='block';
	document.getElementById(inner).onclick = function(){
		hidepopup(inner, outer, item)
	};	
}
function hidepopup(inner, outer, item) {
    document.getElementById(outer).style.display='none';
    document.getElementById(inner).style.display='none';	
	if (item == "") {
		window.location = location.protocol+"//"+location.hostname
	}
	else 
		document.getElementById(item).focus();
}
function winscroll(inner, outer){
	if (document.getElementById(outer).style.display=='block'){
		positionDiv(inner,outer);
	}
}
function positionDiv(inner,outer){
	var browser=navigator.appName;
	var version=navigator.appVersion;
	var userAgent=navigator.userAgent;	
//	alert(userAgent);
	var ch=document.body.parentNode.clientHeight;
	var cw=document.body.parentNode.clientWidth;
	var ct=Math.max(document.body.parentNode.scrollTop,document.body.scrollTop);
	var cl=Math.max(document.body.parentNode.scrollLeft,document.body.scrollLeft);
//	alert("top="+document.body.scrollTop+" Left="+cl+" height="+ch+" width="+cw)
	if (ch<130 || cw<230){
		alert('Browser Window is too small');
		return false;
	}
	document.getElementById(outer).style.top=ct+"px";
	document.getElementById(outer).style.left=cl+"px";			
	document.getElementById(inner).style.top=ct+((ch-125)/2)+"px";
	document.getElementById(inner).style.left=cl+((cw-225)/2)+"px";	
}
// call this function from the button onclick handler, don't use an onsubmit handler
function checkSubmit(reqform){
    if (!formValid(reqform)) {
		return false;
	}
    fakeajax(reqform);
	if (document.getElementById("formaction").action == "" || document.getElementById("formaction").action==document.location) {
		var tym="Thank You for your interest. We appreciate your business";
		if (hasValue("thankyoMessage"))
			tym=document.getElementById("thankyoMessage").innerHTML;
		popupDiv("popup","wash","",tym);
		reqform.reset();		
	}
	else {
	    setTimeout('document.getElementById("formaction").submit();', 250);
	}
    return true;
}
// this function is not being used yet but can be used to change the submit button to a button
function changeSubmitButton(theform) {
	for (i = 0; i < theform.length; i++) {
		var tempobj = theform.elements[i];
		if (tempobj.type.toLowerCase() == "submit") 
			tempobj.type="button";
	}
}
function getQSParam(ji){
    var query = window.location.search.substring(1);
    var gy = query.split("&");
    for (i = 0; i < gy.length; i++) {
        ft = gy[i].split("=");
        if (ft[0].toLowerCase() == ji.toLowerCase()) {
            return ft[1];
        }
    }
}
function writeLDCookie() {
    var param = getQSParam("LD_referral");
	var clickid = getQSParam("LD_clickid");
    if (param != null && param != '' && param == 'yes') {
        writeSessionCookie('ldreferral', 'yes');
		if (clickid==null || clickid==""){
			clickid="9999999999"			
		}
        writeSessionCookie('clickid', clickid);		
	}    
}
function referrerToSkip(){
	var referrer=document.referrer;
	if  (referrer.indexOf("http://sites.livedeal.com") >= 0) //test click from websplanet - suppress		
		return true;
	return false;
}
function writeOrganicCookie() {
	if (isLdReferral())
		return;
	if (referrerToSkip())//Skip traffic from known referrers
		return;
	if (cookieHasOrganicReferrer())//Dont overwrite the cookie if organic referrer already present in cookie (from inner pages)
		return;
	/*if (yesOrganic == undefined || trim(yesOrganic).toLowerCase()!='yes')
		return;*/
	referrer=document.referrer;
	writeSessionCookie('organicRef', referrer);
	if (referrer==null || referrer=='')
		writeSessionCookie('Direct', 'yes');
}

function cookieHasOrganicReferrer(){
	if (readCookie('Direct')=='yes')
		return true;
	if 	(readCookie('organicRef')!='')
		return true;
	return false;
}
function writeSessionCookie(name, value){
    var expire = "";
    writeSessionCookieExpire(name, value, expire);
}

function writeSessionCookieExpire(name, value, expire){
    document.cookie = name + "=" + escape(value) + expire;
}

function readCookie(name){
    var cookieValue = "";
    var search = name + "=";
    if (document.cookie.length > 0) {
        offset = document.cookie.indexOf(search);
        if (offset != -1) {
            offset += search.length;
            end = document.cookie.indexOf(";", offset);
            if (end == -1) 
                end = document.cookie.length;
            cookieValue = unescape(document.cookie.substring(offset, end))
        }
    }
    return cookieValue;
}

function isLdReferral(){
    var ref = document.referrer.toLowerCase();
    //	Read cookie and check if referral is present
    if (readCookie('ldreferral') == 'yes') {
        return true;
    }
    else {
        return false;
    }
}

function isOrganic(){
//	alert('cookie referrer='+readCookie('organicRef'));
	if (isLdReferral())
		return false;
	/*if (yesOrganic==undefined)
		return false;
	if (trim(yesOrganic).toLowerCase()!='yes')
		return false;	*/		
	if (!hasValue("geoid"))
		return false;
	if (cookieHasOrganicReferrer())
		return true;
	return false;
}

function swapPhone(origTextList, trackerTextList){
    if (isLdReferral()) {
        var trackerPhone = unescape(trackerTextList).split("*,*");
    }
    else if ((hasValue("turnOffOrganicCalltrack") && document.getElementById('turnOffOrganicCalltrack').innerHTML == 'yes')
				|| document.referrer=="" || document.referrer==null) {
        var trackerPhone = unescape(origTextList).split("*,*");		
	}
	else {
		var trackerPhone = unescape(trackerTextList).split("*,*");
    }
    
    var ldphone = document.getElementsByName("ldphone");
    for (i = 0; i < ldphone.length; i++) {
        document.getElementsByName("ldphone")[i].innerHTML = trackerPhone[0].split("*=*")[1];
    }
    var ldphone1 = document.getElementsByName("ldphone1");
    for (i = 0; i < ldphone1.length; i++) {
        document.getElementsByName("ldphone1")[i].innerHTML = trackerPhone[1].split("*=*")[1];
    }
    var ldphone2 = document.getElementsByName("ldphone2");
    for (i = 0; i < ldphone2.length; i++) {
        document.getElementsByName("ldphone2")[i].innerHTML = trackerPhone[2].split("*=*")[1];
    }
    var ldphone3 = document.getElementsByName("ldphone3");
    for (i = 0; i < ldphone3.length; i++) {
        document.getElementsByName("ldphone3")[i].innerHTML = trackerPhone[3].split("*=*")[1];
    }
    var ldphone4 = document.getElementsByName("ldphone4");
    for (i = 0; i < ldphone4.length; i++) {
        document.getElementsByName("ldphone4")[i].innerHTML = trackerPhone[4].split("*=*")[1];
    }
}
function swapImage(origImageList, trackerImageList){
    if (isLdReferral()) {
        var trackerImage = trackerImageList.split("*,*");
    }
    else if ((hasValue("turnOffOrganicCalltrack") && document.getElementById('turnOffOrganicCalltrack').innerHTML == 'yes')
				|| document.referrer=="" || document.referrer==null) {
        var trackerImage = origImageList.split("*,*");		
	}
	else {
		var trackerImage = trackerImageList.split("*,*");
	}
    var ldimage = document.getElementsByName("ldimage");
    for (i = 0; i < ldimage.length; i++) {
        document.getElementsByName("ldimage")[i].src = trackerImage[0].split("*=*")[1];
    }
}
function fakeajax(reqform){
//    var url = "http://" + call_action_host + "/call_action?";
    var url = call_action_host + "/call_action?";
	url = url + "LD_geo="+document.getElementById("geoid").innerHTML+"&";
	var lead2call=(document.getElementById("lead2call_id") == null)?"":document.getElementById("lead2call_id").value;
	var record=(document.getElementById("record") == null)?"":document.getElementById("record").value;	
	
	url = url + "lead2call_id=" + lead2call + "&record=" + record +
	    "&click_id=" + readCookie("clickid");

	url=url+"&sendemail="+document.getElementById("sendemail").value;
	for (i=0;i<reqform.elements.length;i++){
		if (reqform.elements[i].type == 'text' || reqform.elements[i].type == 'textarea') {
			if (reqform.elements[i].value != "")
				url = url + "&" + getName(reqform.elements[i].name) + "=" + reqform.elements[i].value;
		}
		else 
		if (reqform.elements[i].type == 'checkbox') {
			if (reqform.elements[i].checked) //skip checkboxes which are not checked or have a value false
				url = url + "&" + getName(reqform.elements[i].name) + "=yes";
		}
		else 
		if (reqform.elements[i].type == 'select-one') {
			url = url + "&" + getName(reqform.elements[i].name) + "=" + 
				reqform.elements[i].options[reqform.elements[i].selectedIndex].text;
		}
		else 
		if (reqform.elements[i].type == 'radio') {
			if (reqform.elements[i].checked) 
				url = url + "&" + getName(reqform.elements[i].name) + "=" + reqform.elements[i].value;
		}
	}
	url=url+"&rn="+(new(Date)).getTime();
	url=url+"&os="+navigator.oscpu+"&platform="+navigator.platform+"&useragent="+navigator.userAgent;

//    url = url +
//    "&sendemail=" +
//      document.getElementById("sendemail").value +
//    "&cphone=" +
//      document.getElementById("cphone").value +
//    "&cname=" +
//      document.getElementById("cname").value +
//    "&cemail=" +
//      document.getElementById("cemail").value +
//    "&cmessage=" +
//      document.getElementById("cmessage").value +
//    "&call=" +
//      document.getElementById("call").value;

// FAKE AJAX
		// when changing the code, PLEASE test the generated URL works!
//	alert("got here!: url=" + url);
    ldapiimg = document.createElement("img");
    ldapiimg.width = 1;
    ldapiimg.height = 1;
    ldapiimg.src = url;
//	document.body.appendChild(ldapiimg);
}

//special fucntion to handle field names generated by websplanet.
//They generate names like fldval7[bathroom]. We need to drop fldval7 and just keep bathroom
function getName(str1){ 
	if (str1.indexOf('[')<0)
		return str1;
	var str2=str1.split('[');
	if (str2.length>2)
		return str1;
	var str3=str2[1].split(']');
	return str3[0];
}

function isAtLeast(n, str){
	if (str==null){
		return false;
	}
	return str.length>n-1
}
function isValidEmail(str){
	if (str==null){
		return false;
	}
   return (str.lastIndexOf(".") > str.indexOf("@")+1) && (str.indexOf("@") > 0 && str.length > str.lastIndexOf(".")+2);
}
/**
  Script to trim leading and trailing white spaces.
  Usage: trim(string);"
  */
// Removes leading whitespaces
function LTrim( value ) {
	var re = /\s*((\S+\s*)*)/;
	return value.replace(re, "$1");
}

// Removes ending whitespaces
function RTrim( value ) {
	var re = /((\s*\S+)*)\s*/;
	return value.replace(re, "$1");	
}

// Removes leading and ending whitespaces
function trim( value ) {	
	return LTrim(RTrim(value));	
}
function empty(str){
	if (trim(str)==null || (trim(str)==''))
		return true;
	else
		return false;
}
function ldpopulate(){
	window.onscroll = function(){
		winscroll('popup', 'wash');
	};
	window.onresize = function(){
		winscroll('popup', 'wash');
	}
	writeLDCookie();
	writeOrganicCookie();
	//var v1=populatePhone();
	var v2=populateImage();
	var v3=recordImpression();	
}

function hasValue (obj){
    if (document.getElementById(obj) == undefined)
       return false;
    var v1=document.getElementById(obj).innerHTML;
    v1=v1.replace('&nbsp;',' ');
    var v2=escape(v1);
    v2=v2.replace('%A0','%20');
    var v3=unescape(v2);
    if (trim(v3) == null)
       return false;
    if (trim(v3) == "")
       return false;
    return true;

}

function recordImpression(){
	var referrer=document.referrer;
	var host=window.location.hostname;
	var impressionURL = trackerHost+"/record.php?";	
	impressionType="";
	if (isLdReferral()) //SEM -> Always record as impression
		impressionType = "LD_impression";
	else {
		var siteURL=window.location.href;
		if (!checkMapsClick(referrer,siteURL,getQueryParamValue(siteURL.toLowerCase(),"ld_map"))) {//don't record the map click.
			if (referrer.indexOf(host) > -1 && referrer.indexOf(host) < 9) {//Is an inner page -> record as impression
				impressionType = "LD_impression"
			}
			else {
				impressionURL = impressionURL + "act_refurl=" + escape(readCookie('organicRef')) + "&";
				impressionType = "LD_organic";
			}
		}
	}
	if (impressionType != "") {//Record only if SEM or yesorganic=yes
		impressionURL = impressionURL + impressionType + "=yes&";
		impressionURL = impressionURL + "ld_geo=" + document.getElementById("geoid").innerHTML;
//		alert(impressionURL);
//		sendAnalyticsOrganicClient(document.referrer, window.location.hostname);
		LDOrganic = document.createElement('img');
		LDOrganic.src = impressionURL;
	}
}
function getQueryParamValue(url, key){
    default_ = "";
    if ((url == null) || (url == '')) {
        return default_;
    }
    key = key.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
    var regex = new RegExp("[\\?&]" + key + "=([^&#]*)");
    var qs = regex.exec(url);
    if (qs == null) {
        return default_;
    }
    else {
        return qs[1];
    }
}
function getDomainFromUrl(url){
    var domain = "";
    if (url != null && url != '') {
        var newString = new String(url).replace(/http:\/\//mg, "");
        domain = newString.substring(0, newString.indexOf("/"));
    }
    return domain;
}

function checkMapsClick(siteURL,referrer, map_param){
    if (referrer != null && referrer != "" && referrer != "undefined"  && getDomainFromUrl (referrer)!= getDomainFromUrl(siteURL) && map_param=="yes" ) {
		return true;
    }
    return false;
}

function populatePhone(){
	var realp1=(document.getElementById("realP1")==null)?"":document.getElementById("realP1").innerHTML;
	var realp2=(document.getElementById("realP2")==null)?"":document.getElementById("realP2").innerHTML;
	var realp3=(document.getElementById("realP3")==null)?"":document.getElementById("realP3").innerHTML;
	var realp4=(document.getElementById("realP4")==null)?"":document.getElementById("realP4").innerHTML;
	var realp5=(document.getElementById("realP5")==null)?"":document.getElementById("realP5").innerHTML;
	var virtualp1=(document.getElementById("virtualP1")==null)?realp1:document.getElementById("virtualP1").innerHTML;
	var virtualp2=(document.getElementById("virtualP2")==null)?realp2:document.getElementById("virtualP2").innerHTML;
	var virtualp3=(document.getElementById("virtualP3")==null)?realp3:document.getElementById("virtualP3").innerHTML;		
	var virtualp4=(document.getElementById("virtualP4")==null)?realp4:document.getElementById("virtualP4").innerHTML;
	var virtualp5=(document.getElementById("virtualP5")==null)?realp5:document.getElementById("virtualP5").innerHTML;		
	realPhone='p1*=*'+escape(realp1)+'*,*p2*=*'+escape(realp2)+'*,*p3*=*'+escape(realp3)+'*,*p4*=*'+escape(realp4)+'*,*p5*=*'+escape(realp5);
	virtualPhone='p1*=*'+escape(virtualp1)+'*,*p2*=*'+escape(virtualp2)+'*,*p3*=*'+escape(virtualp3)+'*,*p4*=*'+escape(virtualp4)+'*,*p5*=*'+escape(virtualp5);
	swapPhone(realPhone,virtualPhone);
	return true;
}
function populateImage(){
	var reali1=(document.getElementById("realI1")==null)?"":document.getElementById("realI1").innerHTML;
	var virtuali1=(document.getElementById("virtualI1")==null)?"":document.getElementById("virtualI1").innerHTML;	
	realImage='i1*=*'+reali1;
	virtualImage='i1*=*'+virtuali1;	
	swapImage(realImage,virtualImage);
	return true;
}
//deprecated
function ldswap(origTextList, trackerTextList, origImageList, trackerImageList){
    if (isLdReferral()) {
        var trackerPhone = unescape(trackerTextList).split("*,*");
        var trackerImage = trackerImageList.split("*,*");
    }
    else {
        var trackerPhone = unescape(origTextList).split("*,*");
        var trackerImage = origImageList.split("*,*");
    }
    
    var ldphone = document.getElementsByName("ldphone");
    for (i = 0; i < ldphone.length; i++) {
        document.getElementsByName("ldphone")[i].innerHTML = trackerPhone[0].split("*=*")[1];
    }
    var ldphone1 = document.getElementsByName("ldphone1");
    for (i = 0; i < ldphone1.length; i++) {
        document.getElementsByName("ldphone1")[i].innerHTML = trackerPhone[1].split("*=*")[1];
    }
    var ldphone2 = document.getElementsByName("ldphone2");
    for (i = 0; i < ldphone2.length; i++) {
        document.getElementsByName("ldphone2")[i].innerHTML = trackerPhone[2].split("*=*")[1];
    }
    var ldphone3 = document.getElementsByName("ldphone3");
    for (i = 0; i < ldphone3.length; i++) {
        document.getElementsByName("ldphone3")[i].innerHTML = trackerPhone[3].split("*=*")[1];
    }
    var ldphone4 = document.getElementsByName("ldphone4");
    for (i = 0; i < ldphone4.length; i++) {
        document.getElementsByName("ldphone4")[i].innerHTML = trackerPhone[4].split("*=*")[1];
    }
    
    var ldimage = document.getElementsByName("ldimage");
    for (i = 0; i < ldimage.length; i++) {
        document.getElementsByName("ldimage")[i].src = trackerImage[0].split("*=*")[1];
    }
    
}