function getQueryVariable(variable) {
  
  var query = window.location.search.substring(1);
  var vars = query.split("&");
  for (var i=0;i<vars.length;i++) {

	var pair = vars[i].split("=");

	if (pair[0].toLowerCase() == variable) {
	  return pair[1];
    }
  }
  return null; 
}

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}

function getLeadSource() { 
    var ld = readCookie("ld"); 
    return (ld != false && ld != null) ? ld: ''; 
} 

function getPromotionCode() {
    var pc = readCookie("pc");
    return (pc != false && pc != null) ? pc: '';
}

function getHideMenuParam(){
	var hm = readCookie("hm");
	return (hm != false && hm != null) ? hm: '';
}

var ld = getQueryVariable("ld");
var pc = getQueryVariable("pc");
var adver = getQueryVariable("adver");
var type = getQueryVariable("type");
var hm = getQueryVariable("hm");

//-------DO NOT REMOVE; THESE ARE REPORT SUITE IDS--------
function getAccount(){
var hn = window.location.hostname;
if(hn.indexOf("amazonservices.") >=0){
return 'amznsrvsprod';}
return 'amznsrvsprod';
}
var s_account = getAccount();
//---------------------------------------------------------


if (ld && ld != null && ld != '') {
	ld = ld + "AS";
        createCookie("ld", ld, 30);
}else{
        var refURL = document.referrer;
        //var testRE = new RegExp("desktop\.amazon\.co","i");
        //var testRE = new RegExp("((webstoreoffers|desktop|webstore)\.amazon\.co|amazonservices\.com)","i");
        var testRE = new RegExp("(http://(webstoreoffers|webstore)\.amazon\.co|http://www\.amazonservices\.com|(desktop|integ)\.amazon\.co)","i");
        var newld = '';
        //Preserve lead when surfing internal pages
        if( !refURL || !refURL.match(testRE)){
                var googleRE = new RegExp("www\.google\.","i");
                var yahooRE = new RegExp("\.search\.yahoo\.co","i");
                var msnRE = new RegExp("\.search\.(live|msn)\.co","i");
                var aolRE = new RegExp("(\.search\.aol\.co|aolsearch)","i");
                var askRE = new RegExp("\.ask\.co","i");
                var altaRE = new RegExp("\.altavista\.co","i");
                var lycosRE = new RegExp("\.lycos\.co","i");
                                                                                                                                                             
                var azRE = new RegExp("AZMMSubNav");
                                                                                                                                                             
                //Malformed lead source from AZMMSubNav
                var currentURL = window.location.search.substring(1);
                if(currentURL.match(azRE)){
                        newld = "AZMMSubNav";
                }else{
                        //Natural Search Leads
                        if(refURL.match(googleRE)){
                        	newld = "NSGoogle";
                        }else{
				if(refURL.match(yahooRE)){
					newld = "NSYahoo";
				}else{
					if(refURL.match(msnRE)){
						newld = "NSMsn";
					}else{
						if(refURL.match(aolRE)){
                                                	newld = "NSAol";
                                                }else{
                                                	if(refURL.match(askRE) || refURL.match(altaRE) || refURL.match(lycosRE)){
                                                        	newld = "NSOther";
                                                        }
                                                }
                                        }
                                }
                        }
                }	

        	//Set lead=domain if ld is null/AS and referral URL is not an internal site URL
	        if(newld == '' && !refURL.match(testRE)){
        	        if(refURL && refURL != '' && (getLeadSource() == '' || getLeadSource() == "AS" || getLeadSource() == "WBAS")){
                	        var domain = refURL.match( /:\/\/([^\/:]+)/ );
	                        //Prefix "EL" for External Links
	                        if(domain){
	                                newld = domain[1]?"EL-"+domain[1]:'';
	                        }
	                }else{
	                        newld = getLeadSource();
	                }
	    	}
		//Append AS at the end of all leads if not already		
		if(!newld.match(new RegExp("AS$"))) newld = newld + "AS";
		createCookie("ld", newld, 30);
	}
}

//Add prefix 'WB' to the lead for SoA tracking if landing page is as.com/webstore
var webstoreRE = new RegExp("(http://www\.amazonservices\.com|(desktop|integ)\.amazon\.com).*/webstore\/","i");
var refURL = document.referrer;
var testRE = new RegExp("(http://(webstoreoffers|webstore)\.amazon\.co|http://www\.amazonservices\.com|(desktop|integ)\.amazon\.co)","i");
var newld = getLeadSource();
// Check if WB not already added at the beginning, as.com/webstore page and referrals URL was not an internal site page 
if(!newld.match(new RegExp("^WB")) && location.href.match(webstoreRE) && !refURL.match(testRE)){
	// alert(location.href.match(webstoreRE));
	// createCookie("ld", "WB"+newld, 30);
}

                                                                                                                                                             
                                                                                                                                                             
if (pc && pc != null && pc != '') {
                createCookie("pc", pc, 30);
}
                                                                                                                                                             
createCookie("referrer", document.referrer, 30);

if (hm && hm != null && hm != '') {
                createCookie("hm", hm, 30);
}
