function printPage() {
	window.print();
}

function validateZipCode(zipCode){
	var zipCodeRegExp = /^[0-9]{5}$/;
	return zipCodeRegExp.test(zipCode);
}

function trimZipCode(zip,defaultval){
	 if(zip && zip.value.length > 5 && zip.value != defaultval){
	   zip.value = zip.value.substring(0,5);	
	 }
}

function launchStoreSearchForm(productid,sku,storecode,substorecode,postalcode){

	if(postalcode == '' || postalcode == 'null'){
		var url = '/inStorePickup/storesearch.jsp';
		var pars = 'productid=' + productid + '&sku=' + sku + '&storecode=' + storecode + '&substorecode=' + substorecode;
        	new Ajax.Request(url,{method: 'post',postBody: pars,onSuccess:function(transport){document.getElementById('ajaxstoresearchlayer').innerHTML=transport.responseText;showStoreResultsOrSearchLayer('ispu_checkStoreContainer');}});
        }else{
          	getStoreLocationSKUQuantityByPostalCode(productid,sku,storecode,substorecode,postalcode,0);
        }
}

function getStoreLocationSKUQuantityByPostalCode(productid,sku,storecode,substorecode,postalcode,startindex){

	if(!validateZipCode(postalcode)){
	  alert("Please enter a valid zip code.");
	  return;
	}

	var url = '/inStorePickup/storeavailresults.jsp';
	var pars = 'productid=' + productid + '&sku=' + sku + '&storecode=' + storecode + '&substorecode=' + substorecode + '&postalcode=' + postalcode + '&startindex=' + startindex;
        new Ajax.Request(url,{method: 'post',postBody: pars,onSuccess:function(transport){if(transport.responseText.indexOf("nostores")==-1){document.getElementById('ajaxsarlayer').innerHTML=transport.responseText;showStoreResultsOrSearchLayer('ispu_container');}else{document.getElementById('ajaxstoresearchlayer').innerHTML=transport.responseText;showStoreResultsOrSearchLayer('ispu_checkStoreContainer');};fireOmniture();}});
}

function getMoreStores(productid,sku,storecode,substorecode,postalcode,startindex,caller){
	var url = '/inStorePickup/storeavailresults.jsp';
	var pars = 'productid=' + productid + '&sku=' + sku + '&storecode=' + storecode + '&substorecode=' + substorecode + '&postalcode=' + postalcode + '&startindex=' + startindex + '&caller=' + caller;
	new Ajax.Request(url,{method: 'post',postBody: pars,onSuccess:function(transport){if(transport.responseText.indexOf("nostores")==-1){document.getElementById('ajaxsarlayer').innerHTML=transport.responseText;showStoreResultsOrSearchLayer('ispu_container');}else{document.getElementById('ajaxstoresearchlayer').innerHTML=transport.responseText;showStoreResultsOrSearchLayer('ispu_checkStoreContainer');};fireOmniture();}});
}

function findAnotherStore(productid,sku,storecode,substorecode,postalcode,startindex,caller){

	if(!validateZipCode(postalcode)){
	  alert("Please enter a valid zip code.");
	  return;
	}
	
	var url = '/inStorePickup/storeavailresults.jsp';
	var pars = 'productid=' + productid + '&sku=' + sku + '&storecode=' + storecode + '&substorecode=' + substorecode + '&postalcode=' + postalcode + '&startindex=' + startindex + '&caller=' + caller;
        new Ajax.Request(url,{method: 'post',postBody: pars,onSuccess:function(transport){if(transport.responseText.indexOf("nostores")==-1){document.getElementById('ajaxsarlayer').innerHTML=transport.responseText;showStoreResultsOrSearchLayer('ispu_container');}else{document.getElementById('ajaxstoresearchlayer').innerHTML=transport.responseText;showStoreResultsOrSearchLayer('ispu_checkStoreContainer');};fireOmniture();}});
        
        //update the zip code field on product page
	if(document.orderForm && document.orderForm.zipcode2){
		document.orderForm.zipcode2.value = postalcode;
	}
}


var modalBox = null;


// Dynamic creation of modal and tool tip objects
function showStoreResultsOrSearchLayer(layerclassname) {

	prepareStoreHrsDialogs();
	
	if(modalBox == null){
	
		modalBox = new Df.Modal();
		modalBox.pars.animateHolder = {
			time: 100,
			pause: 50,
			// *********************************************************
			// THIS NEEDS TO BE DYNAMICALLY CHANGED FOR TRU OR BRU STORE
			backgroundColor: '#42566D',   // FOR TRU ONLY
			//backgroundColor: '#656676',     // FOR BRU ONLY
			// THIS NEEDS TO BE DYNAMICALLY CHANGED FOR TRU OR BRU STORE
			// *********************************************************
			opacity: .5,
			selectors: ['opacity']
		}
		modalBox.pars.animateDialog = {
			time: 100,
			pause: 50,
			opacity: .99,
			selectors: ['opacity']
		}
	
		modalBox.pars.minWidth= 'body';
		modalBox.pars.minHeight= 'body';

		modalBox.set();
	}
	
	modalBox.setDomNode($$('.' + layerclassname)[0]);
	modalBox.show();
}

function prepareStoreHrsDialogs(){

	var count=0;
	var el;
	while(el = document.getElementById('ispu_tip'+count)){

	        var dialogId = 'ispu_tip' + count;
	        var hrsElement = 'ispu_tip_content' + count;
		var strhrstip = new Df.Tip(dialogId);
		strhrstip.pars.animate = { time: 200, opacity: .99 };
		strhrstip.pars.className = 'trus_tipHolder';
		strhrstip.pars.direction = 'rc';
		strhrstip.pars.yOffset = 10;
		strhrstip.pars.dataString = "<div class='ispu_hourTop'><img src='../images/pixel.gif' width='176' height='13'></div><div id='ispu_hoursContainer'><table width='100%'><tr><td id='ispu_title'>STORE HOURS</td></tr><tr><td class='ispu_hours'>" + document.getElementById(hrsElement).innerHTML + "</td></tr></table></div><div class='ispu_hourBottom'><img src='../images/pixel.gif' width='176' height='13'></div>";
		strhrstip.set();
		count++;

		if (el.addEventListener){
		  el.addEventListener('mouseover', hoursListener, false); 
		} else if (el.attachEvent){
		  el.attachEvent('onmouseover', hoursListener);
		}

	}

}

var omn_imp_product = null;
var omn_imp_store_list = null;
var omn_imp_zip = null;

function fireOmniture(caller_override, store_number)
{
	s.eVar35 = null;
	s.eVar36 = null;
	if(store_number != undefined)
		prepareMDHcall(caller_override, store_number);
	else if(caller_override == undefined)
		parseOmnitureData();
	else
	{
		s.linkTrackVars = "prop10";
		s.prop10 = "Store Availability Results: " + caller_override;
		s.products = null;
		s.events = null;
		s.prop9 = null;
	}
	
//alert("s.linkTrackVars: " + s.linkTrackVars + "\ns.products: " + s.products +
//	"\ns.events: " + s.events + "\ns.prop9: " + s.prop9 + "\ns.prop10: " + s.prop10 +
//	"\ns.eVar35: " + s.eVar35 + "\ns.eVar36: " + s.eVar36);
	
	var bkp_s_products = null;
	var bkp_s_events = null;
	if(s_products != undefined)
	{
		bkp_s_products = s_products;
		s_products = null;
	}
	if(s_events != undefined)
	{
		bkp_s_events = s_events;
		s_events = null;
	}

	s.tl(null, 'o', null);

	if((s.products != null) && (store_number == undefined))
	{
//alert("omn_imp_product = " + omn_imp_product + "\nomn_imp_store_list = " + omn_imp_store_list +
//	"\nomn_imp_zip = " + omn_imp_zip);

	s.doImpressions({
		impression   		: 'event31',
		store_list 			: omn_imp_store_list,
		store_availability 	: 'evar31',
		stores				: 'evar32',
		zip					: ['evar34', omn_imp_zip],
		products			: omn_imp_product
	});
	}
	
	if(bkp_s_products != null)
		s_products = bkp_s_products;
	if(bkp_s_events != null)
		s_events = bkp_s_events;
}

function fireOmnitureZip(caller_override)
{
	s.linkTrackVars = "prop10";
	s.prop10 = "Zip Code Div Layer: " + caller_override;
	s.products = null;
	s.events = null;
	s.prop9 = null;

//alert("s.linkTrackVars: " + s.linkTrackVars + "\ns.products: " + s.products +
//	"\ns.events: " + s.events + "\ns.prop9: " + s.prop9 + "\ns.prop10: " + s.prop10 +
//	"\ns.eVar35: " + s.eVar35 + "\ns.eVar36: " + s.eVar36);

	s.tl(null, 'o', null);
}

function hoursListener()
{
	var storeId = "";

	if(typeof event != 'undefined')
		storeId = event.srcElement.id;
	else
		storeId = this.firstChild.id;

	var pos = storeId.indexOf("TRUS");
	if(pos > 0)
	{
		storeId = storeId.substring(pos);
		fireOmniture("Hours", storeId);
	}
}

function parseOmnitureData()
{
	var sTrackVarsBox = document.getElementById("sar_trackvars");
	var sProp9Box = document.getElementById("sar_prop9");
	
	if(sTrackVarsBox != undefined)
		s.linkTrackVars = sTrackVarsBox.innerHTML;
		
	processOmnitureVar("sar_products", "s.products");
	if(s.products != null)
	{
		omn_imp_product = null;
		var pos = s.products.indexOf(';');
		if(pos >= 0)
		{
			pos = s.products.indexOf(';',pos+1);
			if(pos >= 0)
				omn_imp_product = s.products.substring(0, pos);
		}
		
		processOmnitureVar("sar_evar30", "omn_imp_store_list");
		processOmnitureVar("sar_zip", "omn_imp_zip");
	
	}
	
	var sEvents = processOmnitureVar("sar_events", "s.events");
	if(sEvents != null)
		s.linkTrackEvents = sEvents;
	
	if(sProp9Box != undefined)
	{
		if(sProp9Box.innerHTML != "undefined")
		{
			s.prop9 = sProp9Box.innerHTML;
		}
		else
			s.prop9 = null;
	}
	else if(s_channel == "Baby Registry")
	{
		if(s_pageName.indexOf("Owner") >= 0)
			s.prop9 = "Baby Registry Recipient";
		else
			s.prop9 = "Baby Registry Giver";
	}
	else
		s.prop9 = s_channel;
	
	processOmnitureVar("sar_prop10", "s.prop10");
}

function prepareMDHcall(caller_override, store_number)
{
	processOmnitureVar("sar_mdh_trackvars","s.linkTrackVars");
	processOmnitureVar("sar_products", "s.products");
	if(s.products != null)
	{
		var pos1 = s.products.indexOf("eVar30");
		var pos2 = s.products.indexOf("eVar34");
		if((pos1 > 0) && (pos2 > 0))
			s.products = s.products.substr(0,pos1) + s.products.substr(pos2);
	}
	
	var sEvents = processOmnitureVar("sar_mdh_events", "s.events");
	s.linkTrackEvents = sEvents.substr(0, sEvents.indexOf(':'));
	s.eVar35 = store_number;
	s.eVar36 = store_number + ":" + caller_override;
	s.prop9 = null;
	s.prop10 = null;
}

function processOmnitureVar(domName, sVarName)
{
	var varBox = document.getElementById(domName);
	var ret = null;
	if(varBox != undefined)
		ret = varBox.innerHTML;
	eval(sVarName + " = ret");
	return ret;
}