
gs={productPrefix:'product',products:[],http_request:false,productCalculationUrl:'/cart/calculate',orderTotal:false,orderTotalExclusive:false,orderTotalID:"order_total",orderTotalExclusiveID:"order_total_exclusive",displayCardId:"displayCard",spotlightColors:{from:[255,255,255],to:[229,200,177]},spotlightDuration:1,wizardStep:0,init:function(){gs.wizardStep=gs.getCurrentWizardStep();if(gs.wizardStep&&gs.wizardStep>0){try{switch(gs.wizardStep){case 1:var elm=YAHOO.util.Dom.getElementsBy(function(el){return el.getAttribute("name");},'input',document.forms.frm);for(i=0;i<elm.length;i++){if(elm[i].name.slice(0,gs.productPrefix.length)===gs.productPrefix){gs.products[gs.products.length]=elm[i];YAHOO.util.Event.on(elm[i],"change",gs.productChangeHandler,this,true);}}
var elm_footer=YAHOO.util.Dom.getElementsBy(function(el){return true;},'tfoot',document.forms.frm)[0];gs.orderTotal=YAHOO.util.Dom.getElementsByClassName("price","td",elm_footer)[0];gs.orderTotalExclusive=YAHOO.util.Dom.getElementsByClassName("price","td",elm_footer)[1];break;case 2:YAHOO.util.Event.addListener('gs-checkout-step2-address-form','submit',gs.holdAdress);break;case 3:YAHOO.util.Event.addListener(window,'load',gs.getAdress);break;case 4:var elm_clear=YAHOO.util.Dom.getElementsByClassName("clear","div")[0];var elm_display=document.getElementById(gs.displayCardId);YAHOO.util.Event.on(elm_clear,"click",gs.clearCard,this,true);if(elm_display){YAHOO.util.Event.on(elm_display,"click",gs.viewCard,this,true);}
break;}}catch(e){}}else{var elm=YAHOO.util.Dom.getElementsBy(function(el){return el.getAttribute("name");},'input',document.forms.products);for(i=0;i<elm.length;i++){if(elm[i].name.slice(0,gs.productPrefix.length)===gs.productPrefix){gs.products[gs.products.length]=elm[i];YAHOO.util.Event.on(elm[i],"change",gs.productChangeHandler,this,true);}}
gs.orderTotal=document.getElementById(gs.orderTotalID);gs.orderTotalExclusive=document.getElementById(gs.orderTotalExclusiveID);YAHOO.util.Event.on(gs.orderTotalExclusive,"change",gs.spotLight,this,true);}},getCurrentWizardStep:function(){var elm_indicator=document.getElementById("block-gs_checkout-0");if(elm_indicator){var elm=YAHOO.util.Dom.getElementsByClassName("active","li",elm_indicator)[0];if(elm){var step_elm=YAHOO.util.Dom.getElementsByClassName("nr","span",elm)[0];return Number(step_elm.firstChild.nodeValue);}}
return 0;},viewCard:function(){var msg=document.getElementById('edit-cardtext').value;var wnd=window.open('','_blank','width=750, height=400, location=0, resizable=1, menubar=0, scrollbars=1');wnd.document.write('<pre style="padding:0.5em;">'+msg+'</pre>');wnd.document.close();},makePOSTRequest:function(url,parameters){gs.http_request=false;if(window.XMLHttpRequest){gs.http_request=new XMLHttpRequest();if(gs.http_request.overrideMimeType){gs.http_request.overrideMimeType('text/html');}}else if(window.ActiveXObject){try{gs.http_request=new ActiveXObject("Msxml2.XMLHTTP");}catch(e){try{gs.http_request=new ActiveXObject("Microsoft.XMLHTTP");}catch(e){}}}
if(!gs.http_request){return false;}
gs.http_request.onreadystatechange=gs.priceUpdateHandler;gs.http_request.open('POST',url,true);gs.http_request.setRequestHeader("Content-type","application/x-www-form-urlencoded");gs.http_request.setRequestHeader("Content-length",parameters.length);gs.http_request.setRequestHeader("Connection","close");gs.http_request.send(parameters);},holdAdress:function(){var frm=document.getElementById("gs-checkout-step2-address-form");if(frm){var elms=YAHOO.util.Dom.getElementsBy(function(el){return el.getAttribute("name")&&el.getAttribute("name").slice(0,8)=="address["},'',frm);if(elms&&elms.length>0){var value=[];var y=0;for(var i=0;i<elms.length;i++){value[y++]=elms[i].name.slice(8,elms[i].name.length-1);value[y++]=elms[i].value;}
document.cookie="uadr="+escape(value.join('|'));}}},getAdress:function(){var values=document.cookie;if(values=="")return false;var start=values.indexOf("uadr=");if(start==-1)return false;start+="uadr=".length;var end=values.indexOf(';',start);if(end==-1)end=values.length;var adress=values.substring(start,end);var adress_elms=unescape(adress).split('|');var elms={};for(var i=0;i<adress_elms.length;){elms[adress_elms[i++]]=adress_elms[i++];}
var frm=document.getElementById("gs-checkout-step2-address-form");var frm_elms=YAHOO.util.Dom.getElementsBy(function(el){return el.getAttribute("name")&&el.getAttribute("name").slice(0,8)=="address["},'',frm);for(var i=0;i<frm_elms.length;i++){var shortName=frm_elms[i].name.slice(8,frm_elms[i].name.length-1);if(elms[shortName]){frm_elms[i].value=elms[shortName];}}},priceUpdateHandler:function(){if(gs.http_request.readyState==4&&gs.http_request.status==200){if(gs.http_request.responseText!==undefined&&gs.http_request.responseText!=="error"){var productDecode=YAHOO.Tools.JSONParse(gs.http_request.responseText,false);if(productDecode){if(productDecode.products){for(i=0;i<productDecode.products.length;i++){var elm=document.getElementById("product_total_"+productDecode.products[i][0]);if(elm!==null){elm.innerHTML=productDecode.products[i][1];}}}
if(gs.orderTotal!==null){gs.orderTotal.innerHTML=productDecode.ordertotal||"";gs.spotLight(gs.orderTotal.parentNode);}
if(gs.orderTotalExclusive!==null){gs.orderTotalExclusive.innerHTML=productDecode.ordertotalexclusive||"";}}}}},productChangeHandler:function(e){if(gs.products.length===0)return true;var poststr="";var allProductAmountsValid=true;for(i=0;i<gs.products.length;i++){poststr+=((i>0)?"&":"")+gs.products[i].name+"="+encodeURI(gs.products[i].value);allProductAmountsValid=(!allProductAmountsValid)?YAHOO.util.Dom.hasClass('error'):allProductAmountsValid;}
gs.makePOSTRequest(gs.productCalculationUrl,poststr);console.log("-- "+allProductAmountsValid);},spotLight:function(elm){gs.animB=new YAHOO.util.ColorAnim(elm,{backgroundColor:{to:gs.spotlightColors.to}},gs.spotlightDuration);gs.animB.onComplete.subscribe(function(){gs.animB.attributes.backgroundColor.to=gs.spotlightColors.from;gs.animB.animate();gs.animB.onComplete.unsubscribeAll();});gs.animB.animate();},clearCard:function(e){YAHOO.util.Event.preventDefault(e);document.getElementById('edit-cardtext').value="";if(IAJS&&IAJS.controllerCollection&&IAJS.controllerCollection['edit-cardtext']){IAJS.controllerCollection['edit-cardtext'].updateRemaining();}}}
YAHOO.util.Event.onDOMReady(gs.init);
