// AW 07-13-07 Removed DoVSignInfo() alert
// AW 12-03-07 Adding DoBBB
// AW 01-22-08 Adding Cookie check REF= logic to Abandonment offer (also now on Buy page); deleting old code

var bPopupsBlocked; // Will check onUnload()   = IsPopupBlocker();	
            
    // www.the-cool-place.co.uk/javascript/tutorial/javascript1.html 	  
	 	     	

function getBrowserType() {
var sType="";

       	if(document.layers)	sType="NN4";
        if(document.all)  sType="IE";
        if(!document.all && document.getElementById) sType="NN6";
        return sType;
}

var sBrowserType = getBrowserType();



// Just for testing
function doReportXY(e) {
   alert("Here in doReportXY");
   try {alert ("ClientX=" + e.clientX + "   ClientY="+e.clientY); } catch(Ex) {};
   // just bails in NN
   //try {alert ("pageX=" + e.pageX + "   pageY="+e.pageY); } catch(Ex) {};
   try {alert ("x=" + e.x + "   y="+e.y); } catch(Ex) {};
   //try {alert ("screenX=" + e.screenX + "   screenY="+e.screenY); } catch(Ex) {};
   alert("Finished in doReportXY");
}




function doBeforeUnloadOffer(bBackpageActive) {

    // Actually this "Before" event is likely only IE

    // bBackpageActive 
    //  if = false means X,Y thresholds are set to prevent offer launch
    //    E.g. For Checkout page where user may wish to click back-page to Buy page.
    //  if = true means we want offer to launch (this will happen most of time)

     //AW 1-22-08 Updated paid search check
     
     
     try {
       if ( (readCookie("REF") == null) || (readCookie("REF") == "") ) {return true;}
     } catch(Ex)
     { return true;}
     
 
     
     
     var e = window.event;
     var bRealClose = false;
     
     var  sOffer1 = "______________________________________________________________________________________________";
     var  sOffer2 = "                                                     D O N' T   G O   Y E T  --  S A V E  $5.00   N O W  !                        ";
     var  sOffer3 = "---------------------------------------------------------------------------------------------------------------------------------------------";
     var  sOffer4 = "Save $5 using your Instant Rebate Code below (1st-time customers):                                                     ";
     var  sOffer5 = "                                                                                                                                                                                                                ";
     var  sOffer6 = "   1. Click the [CANCEL] button below.                                    ";
     var  sOffer7 = "                                                                                             ";
     var  sOffer8 = "   2. Enter Code:--> MYDEAL <-- into the Affilate box below on this page.";
     var  sOffer9 = "                                                                      ";
     var sOffer10 = "   3. See your savings during Checkout.  ";   
     var sOffer11 = "                                  ";        
     var sOffer12 = "______________________________________________________________________________________________";
     var sOffer13 = "   NOTE: This 1st-time offer *cannot* be combined with other offers E.g. Free 3rd Tube Special";    

	 // Check IE or other e.g. NN (x,y's do not work)
     try {
        if (  (true == bBackpageActive) && ("IE" == sBrowserType) && ((e.clientX < 0) || (e.clientY < 0))    )  { bRealClose = true;  }
        if (  (false == bBackpageActive) && ("IE" == sBrowserType) && ((e.clientX > 60) && (e.clientY < 0))    )  { bRealClose = true;  }
          // For Checkout, Need X>60 and Y<0 so BackPage (Left 60) does not trigger bRealClose
     } catch(Ex) { // nothing
     } 
      
     try {
        if (  ("IE" != sBrowserType) &&  ((e.pageX < 0) || (e.pageY < 0))   )  { bRealClose = true;   }
     } catch(Ex) { // nothing
     }     

     if (bRealClose) {
        var oWin = window.open("/abandon.html","abwin","width=770,height=500,");
        if (oWin==null || typeof(oWin)=="undefined") 
           { bPopupsBlocked = true; }           
        else 
           { bPopupsBlocked = false; } // and it worked
        if (bPopupsBlocked)
          // format is a mess
          //   e.returnValue = sOffer1 + sOffer2+ sOffer3  + sOffer4 + sOffer5+ sOffer6 + sOffer7 + sOffer8+ sOffer9+ sOffer10 + sOffer11+ sOffer12 +sOffer13;  
          e.returnValue = "We regret to see you go. SAVE $5.00 --> Enter PROMO_CODE:[ MYDEAL ] below on Buy Page. Press CANCEL to stay." 
      } // bRealClose  
      
}


// ******************** OTHER **************************************************

	// intended to be called from root \ path (buy,checkout)

	function USChamberPop() {
    		window.open("chambercert.html","","width=770,height=340,");
	}

	function BBBSealPop() {
    		window.open("http://www.bbbonline.org/cks.asp?id=10712031054","","width=800,height=600,scrollbars,");
	}
  
			
	function gteepopup(){
    		var popurl="return_policy.html";
    		winpops=window.open(popurl,"","width=595,height=350,scrollbars,");
	}
	

	
	function doVSignInfo() {
	// AW 7-13-07 Removed
	//	alert("Your personal information is secure.  For performance, our Checkout page is displayed in standard mode, but " +
	//		"after you enter your data it is encrypted and sent over the internet using SSL.");
	}

	//**** AW - Added 1/30/06 *******
	function FormatCurrency(num) {
                num = num.toString().replace(/\$|\,/g,'');
                if(isNaN(num))
                num = "0";
                sign = (num == (num = Math.abs(num)));
                num = Math.floor(num*100+0.50000000001);
                cents = num%100;
                num = Math.floor(num/100).toString();
                if(cents<10)
                cents = "0" + cents;
                for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
                num = num.substring(0,num.length-(4*i+3))+','+
                num.substring(num.length-(4*i+3));
                //  return (((sign)?'':'-') + '$' + num + '.' + cents);
                // lose leading $
                return (((sign)?'':'-') + num + '.' + cents);
             }


// *************** COOKIE & QUERY STR HANDLING ****************
// ******************* AW - Added 5/9/06 *************************
// Cookies handling from http://www.quirksmode.org/js/cookies.html


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);
}


// AW 01-22-08 NOTE: QUERY STRING CLASS IS USED BELOW (not cookie)

// THIS LOOKS GOOD
// http://www.codeproject.com/jscript/JSCookieQueryStrWrapper.asp
// QueryString Class 
// & Cookies Class
//

/*
COOKIES - Instantiate global instances of these classes and initialize them:

    window.gCookies = new Cookies();
    window.gQueryString = new QueryString();
    gCookies.Read();
    gQueryString.Read();

Retrieving some sample data from these objects:

    var iObjId = parseInt(gCookies.GetValue("","myObjId"));
    var reportId = gQueryString.GetValue("reportId");
    
QUERY_STR - These data structures can store and retrieve data safely until it is later utilized by
writing out the cookie to the document (Cookie's Write method), or reassembling the
query string (ToString method) and navigating to another page with it.

    myQueryString.Clear();
    myQueryString.SetValue("workspaceId", workspaceId);
    ...
    myLink.href = document.location.pathname + myQueryString.ToString();
              
The QueryString class is emptied of all key/values by calling the Clear method. 
The Cookie class does not have a clear Clear method. To destroy a cookie, you must 
set its value to null, and once Write() is called, it will be forced to expire.

    gCookies.SetValue("", "MyIntegerOption", 1);
    gCookies.SetValue("", "MyCookieToExpire", null)
    gCookies.Write();
*/

function QueryString() {
	var data = [];
	this.Read = function() 
	{
		var aPairs, aTmp;
		var queryString = new String(window.location.search);
		queryString = queryString.substr(1, queryString.length); //remove "?"
		aPairs = queryString.split("&");	
		
		for (var i=0 ; i<aPairs.length; i++)
		{
			aTmp = aPairs[i].split("=");
			data[aTmp[0]] = aTmp[1];
		}
	}
	
	this.GetValue = function( key )
	{
		return data[key];
	}
	this.SetValue = function( key, value )
	{
		if (value == null)
			delete data[key];
		else 
			data[key] = value;
	}
	this.ToString = function()
	{
		var queryString = new String(""); 
		
		for (var key in data)
		{	
			if (queryString != "")
				queryString += "&"
			if (data[key])
				queryString += key + "=" + data[key];		
		}
		if (queryString.length > 0)
			return "?" + queryString;
		else
			return queryString;
	}
	this.Clear = function()
	{
		delete data;
		data = [];
	}
}




function getCountryShipFactor(sCountryCode) {
// AW 10-9-2006
// Multiplier for stnd FedEx rates
 
        switch (sCountryCode) {
                case "AF": return 1.3;  break;    // Afghanistan
                case "AL": return 1;  break;    // Albania
                case "DZ": return 1;  break;    // Algeria
                case "AS": return 1;  break;    // American Samoa
                case "AD": return 1;  break;    // Andorra
                case "AO": return 1;  break;    // Angola
                case "AI": return 1;  break;    // Anguilla
                case "AQ": return 1;  break;    // Antarctica
                case "AG": return 1;  break;    // AntiguaAnd Barbuda
                case "AR": return 1;  break;    // Argentina
                case "AM": return 1;  break;    // Armenia
                case "AW": return 1;  break;    // Aruba
                case "AU": return 1;  break;    // Australia
                case "AT": return 1;  break;    // Austria
                case "AZ": return 1;  break;    // Azerbaijan
                case "BS": return 1;  break;    // Bahamas, The
                case "BH": return 1.5;  break;    // Bahrain
                case "BD": return 1;  break;    // Bangladesh
                case "BB": return 1.25;  break;    // Barbados
                case "BY": return 1;  break;    // Belarus
                case "BE": return 1;  break;    // Belgium
                case "BZ": return 1;  break;    // Belize
                case "BJ": return 1;  break;    // Benin
                case "BM": return 1;  break;    // Bermuda
                case "BT": return 1;  break;    // Bhutan
                case "BO": return 1;  break;    // Bolivia
                case "BA": return 1;  break;    // Bosnia and Herzegovina
                case "BW": return 1;  break;    // Botswana
                case "BV": return 1;  break;    // Bouvet Island
                case "BR": return 1;  break;    // Brazil
                case "IO": return 1;  break;    // British Indian Ocean Territory
                case "BN": return 1;  break;    // Brunei
                case "BG": return 1;  break;    // Bulgaria
                case "BF": return 1;  break;    // Burkina Faso
                case "BI": return 1;  break;    // Burundi
                case "KH": return 1;  break;    // Cambodia
                case "CM": return 1;  break;    // Cameroon
                case "CA": return 0.85;  break;    // Canada
                case "CV": return 1;  break;    // Cape Verde
                case "KY": return 1;  break;    // Cayman Islands
                case "CF": return 1;  break;    // Central African Republic
                case "TD": return 1;  break;    // Chad
                case "CL": return 1;  break;    // Chile
                case "CN": return 1.2;  break;    // China
                case "HK": return 1.2;  break;    // China (Hong Kong S.A.R.)
                case "MO": return 1.2;  break;    // China (Macau S.A.R.)
                case "CX": return 1;  break;    // Christmas Island
                case "CC": return 1;  break;    // Cocos (Keeling) Islands
                case "CO": return 1;  break;    // Colombia
                case "KM": return 1;  break;    // Comoros
                case "CG": return 1;  break;    // Congo
                case "CD": return 1;  break;    // Congo, Democractic Republic of the
                case "CK": return 1;  break;    // Cook Islands
                case "CR": return 1;  break;    // Costa Rica
                case "CI": return 1;  break;    // Cote D'Ivoire (Ivory Coast)
                case "HR": return 1;  break;    // Croatia (Hrvatska)
                case "CU": return 1;  break;    // Cuba
                case "CY": return 1.5;  break;    // Cyprus
                case "CZ": return 1;  break;    // Czech Republic
                case "DK": return 1;  break;    // Denmark
                case "DJ": return 1;  break;    // Djibouti
                case "DM": return 1;  break;    // Dominica
                case "DO": return 1;  break;    // Dominican Republic
                case "TP": return 1;  break;    // East Timor
                case "EC": return 1;  break;    // Ecuador
                case "EG": return 1.5;  break;    // Egypt
                case "SV": return 1;  break;    // El Salvador
                case "GQ": return 1;  break;    // Equatorial Guinea
                case "ER": return 1;  break;    // Eritrea
                case "EE": return 1;  break;    // Estonia
                case "ET": return 1;  break;    // Ethiopia
                case "FK": return 1;  break;    // Falkland Islands (Islas Malvinas)
                case "FO": return 1;  break;    // Faroe Islands
                case "FJ": return 1;  break;    // Fiji Islands
                case "FI": return 1;  break;    // Finland
                case "FR": return 1;  break;    // France
                case "GF": return 1;  break;    // French Guiana
                case "PF": return 1;  break;    // French Polynesia
                case "TF": return 1;  break;    // French Southern Territories
                case "GA": return 1;  break;    // Gabon
                case "GM": return 1;  break;    // Gambia, The
                case "GE": return 1;  break;    // Georgia
                case "DE": return 1;  break;    // Germany
                case "GH": return 1;  break;    // Ghana
                case "GI": return 1;  break;    // Gibraltar
                case "GR": return 1;  break;    // Greece
                case "GL": return 1;  break;    // Greenland
                case "GD": return 1;  break;    // Grenada
                case "GP": return 1;  break;    // Guadeloupe
                case "GU": return 1;  break;    // Guam
                case "GT": return 1;  break;    // Guatemala
                case "GN": return 1;  break;    // Guinea
                case "GW": return 1;  break;    // Guinea-Bissau
                case "GY": return 1;  break;    // Guyana
                case "HT": return 1;  break;    // Haiti
                case "HM": return 1;  break;    // Heard and McDonald Islands
                case "HN": return 1;  break;    // Honduras
                case "HU": return 1;  break;    // Hungary
                case "IS": return 1;  break;    // Iceland
                case "IN": return 1.2;  break;    // India
                case "ID": return 1.25;  break;    // Indonesia
                case "IR": return 1.5;  break;    // Iran
                case "IQ": return 1.5;  break;    // Iraq
                case "IE": return 1.2;  break;    // Ireland
                case "IL": return 1;  break;    // Israel
                case "IT": return 1;  break;    // Italy
                case "JM": return 1.2;  break;    // Jamaica
                case "JP": return 1.5;  break;    // Japan
                case "JO": return 1;  break;    // Jordan
                case "KZ": return 1;  break;    // Kazakhstan
                case "KE": return 1;  break;    // Kenya
                case "KI": return 1;  break;    // Kiribati
                case "KR": return 1.5;  break;    // Korea
                case "KP": return 1.5;  break;    // Korea, North
                case "KW": return 1;  break;    // Kuwait
                case "KG": return 1;  break;    // Kyrgyzstan
                case "LA": return 1;  break;    // Laos
                case "LV": return 1;  break;    // Latvia
                case "LB": return 1;  break;    // Lebanon
                case "LS": return 1;  break;    // Lesotho
                case "LR": return 1;  break;    // Liberia
                case "LY": return 1;  break;    // Libya
                case "LI": return 1;  break;    // Liechtenstein
                case "LT": return 1;  break;    // Lithuania
                case "LU": return 1;  break;    // Luxembourg
                case "MK": return 1;  break;    // Macedonia
                case "MG": return 1;  break;    // Madagascar
                case "MW": return 1;  break;    // Malawi
                case "MY": return 1;  break;    // Malaysia
                case "MV": return 1;  break;    // Maldives
                case "ML": return 1;  break;    // Mali
                case "MT": return 1;  break;    // Malta
                case "MH": return 1;  break;    // Marshall Islands
                case "MQ": return 1;  break;    // Martinique
                case "MR": return 1;  break;    // Mauritania
                case "MU": return 1;  break;    // Mauritius
                case "YT": return 1;  break;    // Mayotte
                case "MX": return 1;  break;    // Mexico
                case "FM": return 1;  break;    // Micronesia
                case "MD": return 1;  break;    // Moldova
                case "MC": return 1;  break;    // Monaco
                case "MN": return 1;  break;    // Mongolia
                case "MS": return 1;  break;    // Montserrat
                case "MA": return 1;  break;    // Morocco
                case "MZ": return 1;  break;    // Mozambique
                case "MM": return 1;  break;    // Myanmar
                case "NA": return 1;  break;    // Namibia
                case "NR": return 1;  break;    // Nauru
                case "NP": return 1;  break;    // Nepal
                case "AN": return 1;  break;    // Netherlands Antilles
                case "NL": return 1;  break;    // Netherlands, The
                case "NC": return 1;  break;    // New Caledonia
                case "NZ": return 2.0;  break;    // New Zealand
                case "NI": return 1;  break;    // Nicaragua
                case "NE": return 1;  break;    // Niger
                case "NG": return 1;  break;    // Nigeria
                case "NU": return 1;  break;    // Niue
                case "NF": return 1;  break;    // Norfolk Island
                case "MP": return 1;  break;    // Northern Mariana Islands
                case "NO": return 1;  break;    // Norway
                case "OM": return 1;  break;    // Oman
                case "PK": return 1.5;  break;    // Pakistan
                case "PW": return 1;  break;    // Palau
                case "PA": return 1;  break;    // Panama
                case "PG": return 1;  break;    // Papua new Guinea
                case "PY": return 1;  break;    // Paraguay
                case "PE": return 1;  break;    // Peru
                case "PH": return 1;  break;    // Philippines
                case "PN": return 1;  break;    // Pitcairn Island
                case "PL": return 1.75;  break;    // Poland
                case "PT": return 1;  break;    // Portugal
                case "PR": return 1;  break;    // Puerto Rico
                case "QA": return 1.5;  break;    // Qatar
                case "RE": return 1;  break;    // Reunion
                case "RO": return 2.1;  break;    // Romania
                case "RU": return 1.3;  break;    // Russia
                case "RW": return 1;  break;    // Rwanda
                case "SH": return 1;  break;    // Saint Helena
                case "KN": return 1;  break;    // Saint Kitts And Nevis
                case "LC": return 1;  break;    // Saint Lucia
                case "PM": return 1;  break;    // Saint Pierre and Miquelon
                case "VC": return 1;  break;    // Saint Vincent And The Grenadines
                case "WS": return 1;  break;    // Samoa
                case "SM": return 1;  break;    // San Marino
                case "ST": return 1;  break;    // Sao Tome and Principe
                case "SA": return 1.5;  break;    // Saudi Arabia
                case "SN": return 1;  break;    // Senegal
                case "SC": return 1;  break;    // Seychelles
                case "SL": return 1;  break;    // Sierra Leone
                case "SG": return 1;  break;    // Singapore
                case "SK": return 1;  break;    // Slovakia
                case "SI": return 1;  break;    // Slovenia
                case "SB": return 1;  break;    // Solomon Islands
                case "SO": return 1;  break;    // Somalia
                case "ZA": return 2.1;  break;    // South Africa
                case "GS": return 1;  break;    // South Georgia/South Sandwich Islands
                case "ES": return 1;  break;    // Spain
                case "LK": return 1;  break;    // Sri Lanka
                case "SD": return 1;  break;    // Sudan
                case "SR": return 1;  break;    // Suriname
                case "SJ": return 1;  break;    // Svalbard And Jan Mayen Islands
                case "SZ": return 1;  break;    // Swaziland
                case "SE": return 1;  break;    // Sweden
                case "CH": return 1;  break;    // Switzerland
                case "SY": return 1.5;  break;    // Syria
                case "TW": return 1;  break;    // Taiwan
                case "TJ": return 1;  break;    // Tajikistan
                case "TZ": return 1;  break;    // Tanzania
                case "TH": return 1;  break;    // Thailand
                case "TG": return 1;  break;    // Togo
                case "TK": return 1;  break;    // Tokelau
                case "TO": return 1;  break;    // Tonga
                case "TT": return 1.2;  break;    // Trinidad And Tobago
                case "TN": return 1;  break;    // Tunisia
                case "TR": return 1.3;  break;    // Turkey
                case "TM": return 1;  break;    // Turkmenistan
                case "TC": return 1;  break;    // Turks And Caicos Islands
                case "TV": return 1;  break;    // Tuvalu
                case "UG": return 1;  break;    // Uganda
                case "UA": return 1;  break;    // Ukraine
                case "AE": return 1.5;  break;    // United Arab Emirates
                case "UK": return 0.85;  break;    // United Kingdom
                case "UM": return 1;  break;    // United States Minor Outlying Islands
                case "UY": return 1;  break;    // Uruguay
                case "UZ": return 1;  break;    // Uzbekistan
                case "VU": return 1;  break;    // Vanuatu
                case "VA": return 1;  break;    // Vatican City State (Holy See)
                case "VE": return 1;  break;    // Venezuela
                case "VN": return 1;  break;    // Vietnam
                case "VG": return 1;  break;    // Virgin Islands (British)
                case "VI": return 1;  break;    // Virgin Islands (US)
                case "WF": return 1;  break;    // Wallis And Futuna Islands
                case "EH": return 1;  break;    // Western Sahara
                case "YE": return 1;  break;    // Yemen
                case "YU": return 1;  break;    // Yugoslavia
                case "ZM": return 1;  break;    // Zambia
                case "ZW": return 1;  break;    // Zimbabwe
                default: return 1;                   
   		}
}


