if(typeof Prototype=='undefined')throw("cart_manager: Prototype JavaScript framework required");var Cart={Version:'v3.16.7 (Jun 10, 2010)',AjaxURL:"/common/cart_manager.php",Status:null,Response:null,ItemCount:0,Token:null,CaptureOnExit:true,DisplayStyle:"",ItemWindow:{x:415,y:0},ItemEffects:['BlindDown','BlindUp'],ItemObject:false,Order:(typeof EAC!='undefined')?EAC.CartValues:null,_ASYNCHRONOUS:true,_SYNCHRONOUS:false,_DISPLAY:true,_NO_DISPLAY:false,_SET_ON_UPDATE:true,_ADD_ON_UPDATE:false,_prior:null,_callback:{},Manager:function(action,arg1,isAsync,element){fields=(document.CartForm)?'&'+Form.serialize($(document.CartForm)):"";Cart.Status='';Cart.Response=null;var ajaxStructure={asynchronous:(isAsync!==false)?Cart._ASYNCHRONOUS:Cart._SYNCHRONOUS,requestHeaders:{'X-CartManager-Token':Cart.Token},postBody:'_action='+action+arg1+fields,onCreate:function(){document.fire('Cart:active');},onSuccess:function(response,json){document.fire('Cart:success',{action:action,status:Cart.Status,response:response,request:response.request,json:json,exception:null});document.fire('Cart:'+action,{action:action,status:Cart.Status,response:response,request:response.request,json:json,exception:null});},onFailure:function(response,json){document.fire('Cart:failure',{action:action,status:'Error',response:response,request:response.request,json:json,exception:null});},onException:function(request,exception){document.fire('Cart:exception',{action:action,status:'Error',response:{status:999,responseText:exception.message},request:request,json:null,exception:exception});},onComplete:function(){document.fire('Cart:idle');}};if(element){var xhr=new Ajax.Updater(element,Cart.AjaxURL,ajaxStructure);return null;}else{var xhr=new Ajax.Request(Cart.AjaxURL,ajaxStructure);return Cart.Response;}},_active:function(){window.status="<-- Updating -->";if(elem=document.getElementById('Shopping-Cart-Busy')){var top=window.pageYOffset||document.body.scrollTop||document.documentElement.scrollTop;var left=window.pageXOffset||document.body.scrollLeft||document.documentElement.scrollLeft;elem.style.top=(top+3)+'px';elem.style.left=(left+3)+'px';elem.style.display='block';}},_idle:function(){if(elem=document.getElementById('Shopping-Cart-Busy'))elem.style.display='none';window.status="";},_success:function(event){var response=event.memo.response;Cart.Status=response.getHeader('X-CartManager-Status')||'OK';Cart.Response=response.responseText;if(event.memo.json){Cart._showCount(event.memo.json.UserItems);Cart.Order=EAC.CartValues=event.memo.json;}
var warning=false;switch(event.memo.status){case'Empty':warning='The shopping cart is empty';break;case'Exceeded':warning='The total amount of the order exceeds the system limits';break;case'Duplicate':warning='An order has already been submitted during this session';break;case'Error':warning='An error has occured while processing the request';break;}
if(warning){event.memo.warning=warning;document.fire('Cart:warning',event.memo);window.status=warning;}},_failure:function(event){var response=event.memo.response;var request=event.memo.request;Cart.Status=event.memo.status;if(response.status==404)
response.responseText='Requested URL not found';if(response.responseText.length>1024||response.getHeader('Content-Type')=='text/html')
response.responseText='http '+response.status+' '+request.method+' error';var e=document.fire('Cart:error',event.memo);if(!e.stopped)alert("("+response.status+") "+response.responseText);},_exception:function(event){var request=event.memo.request;var exception=event.memo.exception;Cart.Status=event.memo.status;var e=document.fire('Cart:error',event.memo);if(!e.stopped){var err='AJAX '+request.method.toUpperCase()+' '+exception.name+': '+exception.message;var element=document.getElementById('Shopping-Cart-Confirmation')||document.getElementById('Shopping-Cart-Items')||null;if(element){element.innerHTML="<div id='Shopping-Cart-Message'><h3>We're sorry, we are unable to process your request due to an error. "+"Please refresh the page and try again or contact one of our sales representatives to complete your order.</h3>"+"<p>"+err+"<br />This is often the result of a connection failure and may be cause by firewall or security settings.</p></div>";element.style.sisplay='block';}else{alert(err);}}},Hello:function(){Cart.Token=encodeURIComponent(document.cookie);Cart.Manager('hello','',false);Cart.Token=Cart.Status;},Add:function(sku,show){Cart.Update(sku,1,Cart._SET_ON_UPDATE,show);},Remove:function(sku,show){Cart.Update(sku,0,true,show);},Update:function(sku,qty,set,show){Cart.registerCallback('onCartUpdate');if(typeof sku=='object'){try{sku=(sku)||null;if(typeof sku=='object'){for(i=0;i<sku.length;i++){if(sku[i].checked){Cart.Update(sku[i].value,qty,set,false);}}
if(show===true)Cart.Show();else if(typeof show=='string')location.href=show;return;}}catch(e){sku=null};}
if(sku){var set=(set)?'true':'false';var isAsync=(show)?false:true;Cart.Manager('update','&_sku='+sku+'&_qty='+qty+'&_set='+set,isAsync);if(show===true)Cart.Show();else if(typeof show=='string')location.href=show;}},Recalc:function(isAsync){var isAsync=(isAsync!==true)?Cart._SYNCHRONOUS:Cart._ASYNCHRONOUS;Cart.registerCallback('onCartRecalc');var result=Cart.Manager('recalc','',isAsync);return result;},Empty:function(isAsync){Cart.registerCallback('onCartEmpty');Cart.Manager('empty','',isAsync);},Count:function(isAsync){var isAsync=(isAsync!==true)?Cart._SYNCHRONOUS:Cart._ASYNCHRONOUS;Cart.registerCallback('onCartCount');var result=Cart.Manager('count','',isAsync,'Shopping-Cart-Counter');return(result*1);},_showCount:function(result){if(document.getElementById('Shopping-Cart-Counter'))
document.getElementById('Shopping-Cart-Counter').innerHTML=result;Cart.ItemCount=(result*1);},Show:function(isAsync,force){Cart.registerCallback('onCartShow');var force=(force)?'true':'false';if(document.getElementById('Shopping-Cart-Items')&&Cart._prior!=null){document.getElementById('Shopping-Cart-Items').innerHTML=Cart._prior;Cart._prior=null;}
Cart.Manager('show','&_style='+Cart.DisplayStyle+'&_force='+force,isAsync);},_show:function(event){var result=event.memo.response.responseText;var status=event.memo.status;if(result=='reload'||status=='reload'){if(typeof EAC!='undefined')EAC.backgroundLayer(true);window.onbeforeunload=null;window.location.reload(true);return;}
if(status!='OK')Cart._prior=document.getElementById('Shopping-Cart-Items').innerHTML||null;var parts=result.split("<!--[JSPLIT]-->");Cart._showElement('Shopping-Cart-Items',parts[0]||'');Cart._showElement('Shopping-Cart-Shipping',parts[1]||'');Cart._showElement('Shopping-Cart-Totals',parts[2]||'');Cart._showElement('Shopping-Cart-Payments',parts[3]||'');Cart._showElement('Shopping-Cart-Upsells',parts[4]||'');Cart._showElement('Shopping-Cart-Coupons',parts[5]||'');Cart._showElement('Shopping-Cart-PayPal',parts[6]||'');var el=null,sc=$$('.Shopping-Cart-WhenValid');if(Cart.ItemCount<1||status!='OK'){if(el=document.getElementById('Shopping-Cart-Form'))el.style.display='none';if(el=document.getElementById('Shopping-Cart-AltForm'))el.style.display='block';if(sc)sc.each(function(el){el.style.display='none';});}else{if(el=document.getElementById('Shopping-Cart-AltForm'))el.style.display='none';if(el=document.getElementById('Shopping-Cart-Form'))el.style.display='block';if(sc)sc.each(function(el){el.style.display='block';});}},_showElement:function(elem,content){if(!(elem=document.getElementById(elem)))return;elem.innerHTML=content;if(content&&typeof wFORMS!='undefined')try{wFORMS.addBehaviors(elem.id)}catch(e){}},Summary:function(isAsync){Cart.registerCallback('onCartSummary');Cart.Manager('summary','&_style='+Cart.DisplayStyle,isAsync,'Shopping-Cart-Summary');},Submit:function(isAsync){if(Cart.Order.OrderID)return Cart.Confirm(isAsync);document.observe('Cart:submit',Cart._submit);Cart.registerCallback('onCartSubmit');Cart.Manager('submit','',isAsync,'Shopping-Cart-Confirmation');},Confirm:function(isAsync){document.observe('Cart:confirm',Cart._submit);Cart.registerCallback('onCartConfirm');if(document.loaded){Cart.Manager('confirm','',isAsync,'Shopping-Cart-Confirmation');}else{document.observe('dom:loaded',function(event){Cart.Manager('confirm','',isAsync,'Shopping-Cart-Confirmation');});}},_submit:function(event){Cart.CaptureOnExit=false;},Reset:function(){Cart.Manager('reset','',false);},Capture:function(){if(Cart.CaptureOnExit){Cart.Manager('capture','',true);Cart.CaptureOnExit=false;}},Item:function(sku,event){var result=Cart.Manager('item','&_style='+Cart.DisplayStyle+'&_sku='+sku,false);if(document.getElementById('Shopping-Cart-Detail')&&result){document.getElementById('Shopping-Cart-Detail').innerHTML=result;if(typeof wFORMS!='undefined'){wFORMS.processedForm=document.CartItem;wFORMS.addBehaviors(document.CartItem);}
Cart.Item_Open(event);}},Item_Open:function(evt){if(typeof EAC!='undefined')
Cart.ItemObject=new EAC.floatingWindow('Shopping-Cart-Detail',Cart.ItemWindow.x,Cart.ItemWindow.y,evt,{id:'Shopping-Cart-Item',close:false,effects:Cart.ItemEffects});else
document.getElementById('Shopping-Cart-Detail').style.display='block';},Item_Close:function(){if(typeof Cart.ItemObject=='object')
Cart.ItemObject.close();else
document.getElementById('Shopping-Cart-Detail').style.display='none';},Source:function(source){var result=Cart.Manager('source','&_source='+source,false);if(result){if(typeof EAC!='undefined')EAC.backgroundLayer(true);window.onbeforeunload=null;window.location.reload(true);}},Promo:function(promo,show){if(promo){Cart.registerCallback('onCartUpdate','promo');var isAsync=(show)?false:true;Cart.Manager('promo','&_promo='+promo,isAsync);}},Post:function(event){if(typeof EAC!='undefined')EAC.backgroundLayer(true);Cart.Manager('post','',false);Event.stop(event);window.location.replace(document.CartForm.action);return false;},registerCallback:function(func,name){if(!func||typeof window[func]!='function')return;if(!name)name=func.substr(6).toLowerCase();if(Cart._callback[name])return;Cart._callback[name]=window[func];document.observe('Cart:'+name,function(event){Cart._callback[name](event.memo.response.responseText,event.memo.Status);});},Initialize:function(){if(typeof EAC!='undefined')EAC.console.info('Cart Manager '+Cart.Version);document.observe('Cart:active',Cart._active);document.observe('Cart:idle',Cart._idle);document.observe('Cart:success',Cart._success);document.observe('Cart:failure',Cart._failure);document.observe('Cart:exception',Cart._exception);document.observe('Cart:show',Cart._show);document.observe('Cart:promo',Cart._show);document.observe('dom:loaded',function(event){if(document.CartForm){if(document.CartForm.cst_Firstname){Event.observe(document.CartForm,"submit",function(event){Cart.CaptureOnExit=false;});Event.observe(window,"unload",function(event){Cart.Capture();});}
Cart.Show(Cart._ASYNCHRONOUS);}
Cart._showCount(Cart.ItemCount);});Cart.Hello();}}
if(typeof EAC!='undefined'){EAC.CART=Cart;}
Cart.Initialize();