// JavaScript Document
//YOUR DEFUALT BUSINESS NUMBER WILL SHOW IF PUBLISHING FAILS FOR SOME REASON
var number_placeholderarray = new Array("numberassigned","numberassigned_footer", "numberassigned_top","numberassigned_left","numberassigned_right","numberassigned_support","numberassigned_1","numberassigned_2","numberassigned_3","numberassigned_4","numberassigned_5","numberassigned_6","numberassigned_7","numberassigned_8","numberassigned_9","numberassigned_10");
var promo_placeholderarray = new Array("promoassigned","promoassigned_footer", "promoassigned_top","promoassigned_left","promoassigned_right","promoassigned_support","promoassigned_1","promoassigned_2","promoassigned_3","promoassigned_4","promoassigned_5","promoassigned_6","promoassigned_7","promoassigned_8","promoassigned_9","promoassigned_10");
var tnarray=new Array("","");

var source=getVar("utm_source");
//name of the campaign to fetch in trackable numbers associated with campaign, leave blank to fetch with no campaign association
var campaign = getVar("mm_campaign"); 

var mkwid=getVar("mkwid");

var mcreativeid=getVar("mcreativeid");

var adcampaign=unescape(getVar("utm_campaign"));

//name of the campaign to fetch in trackable numbers associated with campaign, leave blank to fetch with no campaign association
var keyword_ppc = unescape(getVar("keyword"));
if(keyword_ppc.length < 2)
	keyword_ppc = unescape(getVar("mm_keyword"));

if (type=="D")
 var keyword_ppc="direct traffic";
 
var type="P";

//name of the campaign to fetch in trackable numbers associated with campaign, leave blank to fetch with no campaign association
var phone_number = getVar("phone_number"); 

//ad type differentiation inside campaign, leave blank to fetch with for no ad type association
var ad_type = getVar("ad_type");

	if(ad_type.length < 2){
		if (typeof adtype != 'undefined')
		{
			ad_type = adtype;
		}else{
		
		}
	}

//set number display format 0 for XXX.XXX.XXXX 1 for (XXX) XXX-XXXX and 2 for xxx-xxx-xxxx
if (typeof customer_number_format != 'undefined')
	var display_format = customer_number_format;
else
	var display_format=0;

//check  custom JS variable values. If they are there then pass to pixelfire and set them in cookie, else fetch from cooke and assign else null
if (typeof custom1 != 'undefined')
{
	setcookie("MM_custom1",custom1,720);
	var c1=custom1;
}
else
	var c1 = get_cookie("MM_custom1",null);
	

if (typeof custom2 != 'undefined')
{
	setcookie("MM_custom2",custom2,720);
	var c2=custom2;
}
else
var c2 = get_cookie("MM_custom2",null);

if (typeof custom3 != 'undefined')
{
	setcookie("MM_custom3",custom3,720);
	var c3=custom3;
}
else
var c3 = get_cookie("MM_custom3",null);

if (typeof affiliate_id != 'undefined')
{
	setcookie("MM_affiliate_id",affiliate_id,720);
	var aid=affiliate_id;
}
else
var aid = get_cookie("MM_affiliate_id",null);

if(getVar("type")=="I") 
{
	type="I";
	source=document.referrer;
}

if(getVar("type")=="S") 
{
	type="S";
	source=encodeURIComponent(document.URL);
}

if (typeof promocode != 'undefined'){

}else{
	promocode = '';
	default_promo = 0;
}

if (typeof overwrite_default_number != 'undefined'){

}else{
	overwrite_default_number = 'Y';
		
}

/**
 * Requests the ad object using a cross domain call.
 * This function is to be called on page load to get the JSON text with the Ad    
*/

function getNumber(campaign_alt) 
{
	if(!cookieExists())
	{
		//alert("cookie doesnt exist");
		//document.write("no cookie");
		if(campaign.length < 2)
			campaign=campaign_alt;
		//alert(keyword_ppc.length);
		
		 if(keyword_ppc.length < 2)
		{
			// organic Keyword
		  	referrer=document.referrer;
			if(referrer) //added on 06.04 
			{
				if (type=="S"){
					keyword="source";
				}else{
					source=findurl(referrer);
		        	var keyword_organic=getRef('q');
					if(source == 'search.yahoo.com')	
					{
						keyword_organic=getRef('p');
					}

					//document.write("keyword=" + keyword);	
					//document.write("referrer="+ referrer);
					//document.write("referrererer");
					keyword=keyword_organic;
					type="O";
				}
			} //added on 06.04 
		}
	
		else
		{
			var keyword=keyword_ppc;
		}
		
		if(keyword)//added on 06.04 if keyword exist with the request
		{ //added on 06.04 
			//Hard code the url of the request
			var lu = probeURL();
			var ru = unescape(document.referrer);
			var ru = encodeURIComponent(ru);
			var request = "http://www.mongoosemetrics.com/correlation/json_find_correlation_number.php?keyword="+keyword+"&campaign="+campaign+"&phone_number="+phone_number+"&type="+type+"&source="+source+"&mkwid="+mkwid+"&mcreativeid="+mcreativeid+"&adcampaign="+adcampaign+"&ad_type="+ad_type+"&callback=showNumber&referrer="+ru+"&u="+lu+"&pc="+promocode;
			//alert(request);
			// Get the script tag, if it exists
			var head = document.getElementsByTagName("head").item(0);
			script = document.createElement("script");
			script.setAttribute("src", request);
			// all set, add the script
			head.appendChild(script);
			
		} //added on 06.04 
		else //if cookie doesnt exist and keyword is not part of the request, its a straight access.
		{
			show_cookie("MM_correlation_Number");
			if (promocode)
				show_cookie("MM_promo_code");
		}
		var tn=get_cookie("MM_correlation_Number",default_number);
		
		if(tn!=default_number)
			pixelfire(tn);	
		return(tn);
	 }
	 else //cookie exist
	{
		//alert("cookie exists");
		if (typeof redirect_url != 'undefined')
			window.location.href=redirect_url;
		show_cookie("MM_correlation_Number");
		if (promocode)
			show_cookie("MM_promo_code");
		var tn=get_cookie("MM_correlation_Number",default_number);
		if(tn!=default_number)
			pixelfire(tn);
		return(tn);
	}
}

function pixelfire(tn)
{
	var lu = probeURL();
	var url="http://www.mongoosemetrics.com/pixelfire_correlate.php?phone_number="+tn+"&u="+lu+"&c1="+escape(c1)+"&c2="+escape(c2)+"&c3="+escape(c3)+"&aid="+aid;

//alert("url is "+ url);
myImage= new Image();
myImage.src=url;

}
/**
 * THis function is called when the JSON string is returned from json-encode.php
*/
function findurl(url)
{
	var x=url.split("http://");
	var y=x[1].split("/");
	return(y[0]);
}

function showNumber(number) 
{
	//alert(response);
	response = number.corelate_number;
	interval = number.interval;
	unique_cookie = number.unique_cookie;
	promo_code = number.promo_code;
 	if(response!=-1)
	{	//document.write(response);
    	setcookie("MM_correlation_Number",response,interval);	
		setcookie("MM_session_ID",unique_cookie,43200);	
    	if (promo_code)
			setcookie("MM_promo_code",promo_code,interval);	
	}
	show_cookie("MM_correlation_Number");
	pixelfire(response);

	//Redirect page to a different URL after assignment, the variable defined on client web page
	if (typeof redirect_url != 'undefined')
		window.location.href=redirect_url;
		
	//reload the page after number assignment of customer has set var mm_reload=1;	
	if (typeof mm_reload != 'undefined')
        {
                if(mm_reload == 1)
                {
                        window.location.reload();
                }
        }

}

	  
//FUNCTION TO FETCH THE URL VALUE FOR A NAME E.G: ?CAMPAIGN=INSULATED WATER HEATER -->getVAR("CAMPAIGN")

function getVar(name)
{
	 get_string = document.location.search;         
	 return_value = '';
	 do 
	 { //This loop is made to catch all instances of any get variable.
		name_index = get_string.indexOf('&' + name + '=');
	
		if(name_index != -1)
		{
	  		get_string = get_string.substr(name_index + name.length + 2, get_string.length - name_index);
	  
	 		end_of_value = get_string.indexOf('&');
			if(end_of_value != -1)                
				value = get_string.substr(0, end_of_value);                
	  		else                
				value = get_string;                
		    if(return_value == '' || value == '')
				return_value += value;
			 else
                                return_value += ', ' + value;
	  	}
		else
		{
			name_index = get_string.indexOf('?' + name + '=');
			
			if(name_index != -1)
			{
	  		get_string = get_string.substr(name_index + name.length + 2, get_string.length - name_index);
	  
	 		end_of_value = get_string.indexOf('&');
			if(end_of_value != -1)                
			value = get_string.substr(0, end_of_value);                
			  		else                
			value = get_string;                
			    if(return_value == '' || value == '')
			return_value += value;
			 else
			 return_value += ', ' + value;
			}
		}
	 } 
	 while(name_index != -1)
	
     //Restores all the blank spaces.
	 var space = return_value.indexOf('+');
	 while(space != -1)
	 { 
	   return_value = return_value.substr(0, space) + ' ' + 
	   return_value.substr(space + 1, return_value.length);
	   space = return_value.indexOf('+');
	 }
     return(return_value);        
}
function getRef(name)
{
 get_string = document.referrer;
 return_value = '';

 do
 { //This loop is made to catch all instances of any get variable.
		name_index = get_string.indexOf(name + '=');

		if(name_index != -1)
		{
				get_string = get_string.substr(name_index + name.length + 1, get_string.length - name_index);

				end_of_value = get_string.indexOf('&');
				if(end_of_value != -1)
						value = get_string.substr(0, end_of_value);
				else
						value = get_string;
			if(return_value == '' || value == '')
						return_value += value;
	//else
				 //       return_value += ', ' + value;

		}
 }
 while(name_index != -1)

//Restores all the blank spaces.
 var space = return_value.indexOf('+');
 while(space != -1)
 {
   return_value = return_value.substr(0, space) + ' ' +
   return_value.substr(space + 1, return_value.length);
   space = return_value.indexOf('+');
 }
return(return_value);

}



//FUNCTION TO SET PUBLISHED NUMBER TO COOKIE FOR INTERVAL SPECIFIED
function setcookie(cookie_name,val, interval)
{
//alert(interval);
	if(val!="")
	{
		var today = new Date();
		today.setTime( today.getTime() );
		vtime = today.getTime()+ 1000 * 60 * interval ;
		var cookie_expire_date = new Date(vtime); 
		document.cookie=cookie_name+"="+val+";expires="+cookie_expire_date.toGMTString()+";path=/";
	}
}

function show_cookie(name)
{
	//var default_number = "8002931174"; 
	if(document.cookie)
	{
		index=document.cookie.indexOf(name);
		if (index != -1)
		{
			namestart = (document.cookie.indexOf("=", index) + 1);
                        nameend = document.cookie.indexOf(";", index);
                        if (nameend == -1) {nameend = document.cookie.length;}
			var ret_one = document.cookie.substring(namestart, nameend);
			var ret_two = document.cookie.substring(namestart, nameend);
		}else{
			var ret_one = default_number;
			var ret_two = default_promo;
		}
	}else{
		var ret_one = default_number;
		var ret_two = default_promo;
	}
	if (name == "MM_promo_code"){
		for (i=0; i<promo_placeholderarray.length;i++)
		{	
			if(document.getElementById(promo_placeholderarray[i]))
			{
				
				document.getElementById(promo_placeholderarray[i]).innerHTML = ret_two;
			}
				
		}		
	}else{
		for (i=0; i<number_placeholderarray.length;i++){
			if(document.getElementById(number_placeholderarray[i]))
			{
				if(ret_one != default_number || overwrite_default_number != 'N')
				{
					
					document.getElementById(number_placeholderarray[i]).innerHTML = formatnumber(ret_one,display_format);
					
				}
			}
			
		}
	}
	tnarray[0]=ret_one;
	tnarray[1]=formatnumber(ret_one,display_format);
	
	if (typeof callback_function != 'undefined')	
	eval(callback_function+"();")

}
function get_cookie(name,default_value)
{
//alert(document.cookie);
//var default_number = "8001234567";
        if(document.cookie)
        {
				//alert(document.cookie);
                index=document.cookie.indexOf(name);
				//alert(index);
                if (index != -1)
                {
                        namestart = (document.cookie.indexOf("=", index) + 1);
                        nameend = document.cookie.indexOf(";", index);
                        if (nameend == -1) {nameend = document.cookie.length;}
                        var ret_one = document.cookie.substring(namestart, nameend);
                }
                else
                var ret_one = default_value;
        }
        else
                var ret_one = default_value;
	return(ret_one);
}



//FUNCTION TO CHECK IF COOKIE WITH MM_CORRELATION_NUMBER EXISTS FOR THE VISITOR BROWSER
function cookieExists()
{
//alert(document.cookie);
	if(document.cookie)
	{
		index=document.cookie.indexOf("MM_correlation_Number");
		if (index != -1)
			return true;
		else
			return false;
	}
	else
		return false;
}
function formatnumber(num,display_format)
{
	if (typeof 	prefix_countrycode != 'undefined')
		var country_code = prefix_countrycode;
	else
		var country_code = "";	


	//format 0 --  xxx.xxx.xxxx
	//format 1 --  (xxx) xxx-xxxx
	//format 2 --   xxx-xxx-xxxx
	if(display_format==0)
	{
		_return="";

		if(country_code!="")
		 _return+=country_code+".";

		var ini = num.substring(0,3);
		_return+=ini+".";
		var st = num.substring(3,6);
		_return+=st+".";
		var end = num.substring(6,10);
		_return+=end;
		return _return;
	}
	else if(display_format==1)
	{
		_return="";

		if(country_code!="")
		 _return+=country_code;

		var ini = "("+num.substring(0,3)+")";
		_return+=ini+" ";
		var st = num.substring(3,6);
		_return+=st+"-";
		var end = num.substring(6,10);
		_return+=end;
		return _return;
	}
	else
	{
		_return="";

		if(country_code!="")
		 _return+=country_code+"-";

		var ini = num.substring(0,3);
		_return+=ini+"-";
		var st = num.substring(3,6);
		_return+=st+"-";
		var end = num.substring(6,10);
		_return+=end;
		return _return;
	}
}
function c(name,default_value)
{
	return(get_cookie(name,default_value));
}

function o(num,display_format)
{
	return(formatnumber(num,display_format));
}

function probeURL ()
{
	var checkURL = 'NA';
	checkURL = document.URL;
	if (checkURL.length < 3){checkURL = window.location.href;}
	if (checkURL.length < 3){checkURL = document.location.href;}
	if (checkURL.length < 3){checkURL = location.href;}
	checkURL = unescape(checkURL);
	var checkPOS = checkURL.indexOf('?');
	if (checkPOS != -1){
		splitURL=checkURL.split('?');
		checkURL=splitURL[0];
	}
	return encodeURIComponent(checkURL);
}

function showExt () {
	if (tnarray[0].length == 10){
		return 1;
	}else{
		return -1;
	}
}
