
var gpsMgr={getPos:function(callback,failureCallback){try{navigator.geolocation.getCurrentPosition(callback,failureCallback);}catch(e){failureCallback.call(this);}},distAB:function(a,b){return Math.sqrt(Math.pow((a.longitude-b.longitude)*53.0,2.0)+Math.pow((a.latitude-b.latitude)*69.1,2.0));}}
var SDProxy={sendRequest:function(pStr,callback){jQuery.getJSON('Wcf/SDProxy.ashx',pStr,callback);},addProduct:function(pId,qty,callback){this.sendRequest('Command=AddProduct&ProductId='+pId+'&Quantity='+qty,callback);},deleteProduct:function(pId,callback){this.sendRequest('Command=DeleteProduct&ProductId='+pId,callback);}}
var lcMgr={itemCountEle:null,totalPriceEle:null,accordionCheckoutListId:null,init:function(iCele,tPele){this.itemCountEle=iCele;this.totalPriceEle=tPele;},deleteCheckoutProduct:function(pId){var pData=$("input[name='p_"+pId+"']");var p={ProductId:null,Price:null,Name:null};var qty=parseInt($('#pqty_'+pId).attr('value'));eval('p = '+pData[0].value);SDProxy.deleteProduct(pId,function(){$('#pli_'+pId).remove();$('input.btnAdd_'+pId).attr('disabled','').attr('value','add');lcMgr.updateUI(p,0-qty);});},addCheckoutProduct:function(pId){var pData=$("input[name='p_"+pId+"']");var p={ProductId:null,Price:null,Name:null,Description:null,ImageId:null};eval('p = '+pData[0].value);SDProxy.addProduct(pId,1,function(){lcMgr.updateUI(p,1);checkoutAccordion.expandElement(lcMgr.accordionCheckoutListId);lcMgr.addCheckoutProductToScreen(p);$('.btnAdd_'+pId).attr('value','added');});},addCheckoutProductToScreen:function(p){var l=$('#checkoutList');var h='';h+='<li id="pli_'+p.ProductId+'" class="checkoutListItem">';h+='<div class="pQty"><input size="3" type="number" name="pqty_'+p.ProductId+'" id="pqty_'+p.ProductId+'" value="1" /></div>';h+='<div class="pInfo">';h+='<div class="pName">'+p.Name+' <small>- $'+parseFloat(p.Price).toFixed(2)+'</small></div>';h+='<div id="pPrice_'+p.ProductId+'" class="pPrice">$'+parseFloat(p.Price).toFixed(2)+'</div>';h+='<div class="pDesc">'+p.Description+'</div>';h+='<div class="pBtn"><input type="button" value="delete" onclick="lcMgr.deleteCheckoutProduct('+p.ProductId+');  this.value=\'deleting\'; this.disabled=true;" /></div>';h+='</div>';h+='</li>';l.append(h);$('#checkoutNoItemsFound').hide();},addProduct:function(pId){var pData=$("input[name='p_"+pId+"']");var p={ProductId:null,Price:null,Name:null};eval('p = '+pData[0].value);SDProxy.addProduct(pId,1,function(){lcMgr.updateUI(p);$('.btnAdd_'+pId).attr('value','add').attr('disabled',false);lcMgr.confirmCheckout();});},editProduct:function(pId){window.location='ProductEditor.aspx?ProductId='+pId;},editProductFromCheckout:function(pId){window.location='ProductEditor.aspx?Source=Checkout&ProductId='+pId;},updateUI:function(p,multiplier){if(multiplier==undefined)multiplier=1;var currCount=parseInt($('#'+this.itemCountEle).text());var currPrice=parseFloat($('#'+this.totalPriceEle).text());currCount+=multiplier;currPrice+=(parseFloat(p.Price)*multiplier);$('#'+this.itemCountEle).text(currCount);$('#'+this.totalPriceEle).text(currPrice.toFixed(2));if(currCount==0)$('#checkoutNoItemsFound').show();},confirmCheckout:function(){var currCount=parseInt($('#'+this.itemCountEle).text());var currPrice=parseFloat($('#'+this.totalPriceEle).text());alert('Item added to order ('+currCount+' item(s), $'+currPrice.toFixed(2)+') You may continue adding items or head to the checkout to update quantities and complete order.');}}
AccordionMenu=function(rootDiv,speed){this.rootDiv=rootDiv;if(speed!=undefined)this.speed=speed;var me=this;$('#'+rootDiv+' .accordionMenuHeader a').click(function(){me.toggleElementClick(this);return false;});}
AccordionMenu.prototype.rootDiv=null;AccordionMenu.prototype.collapsePrev=false;AccordionMenu.prototype.speed='';AccordionMenu.prototype.unload=function(){$('#'+this.rootDiv+' .accordionMenuHeader a').unbind();}
AccordionMenu.prototype.toggleElementClick=function(ele){var ulId=$(ele).attr('target');if($(ele).parent('.accordionMenuHeader').hasClass('accordionOpenHeader')){$(ele).parent('.accordionMenuHeader').removeClass('accordionOpenHeader');if(this.speed==''){$('#'+ulId).toggle();}else{$('#'+ulId).slideToggle(this.speed);}}
else{if(this.collapsePrev){if(this.speed==''){$('#'+this.rootDiv).children('.accordionCategoryItem').hide();}else{$('#'+this.rootDiv).children('.accordionCategoryItem').slideUp(this.speed);}
$('#'+this.rootDiv).children('.accordionMenuHeader').removeClass('accordionOpenHeader');}
$(ele).parent('.accordionMenuHeader').addClass('accordionOpenHeader');if(this.speed==''){$('#'+ulId).show();}else{$('#'+ulId).slideDown(this.speed);}}}
AccordionMenu.prototype.toggleElement=function(ulId){if($('#'+this.rootDiv+' a[target='+ulId+']').parent('.accordionMenuHeader').hasClass('accordionOpenHeader')){this.collapseElement(ulId);}else{this.expandElement(ulId);}}
AccordionMenu.prototype.collapseElement=function(ulId){if($('#'+this.rootDiv+' a[target='+ulId+']').parent('.accordionMenuHeader').hasClass('accordionOpenHeader')){$('#'+this.rootDiv+' a[target='+ulId+']').parent('.accordionMenuHeader').removeClass('accordionOpenHeader');if(this.speed==''){$('#'+ulId).hide();}else{$('#'+ulId).slideUp(this.speed);}}}
AccordionMenu.prototype.expandElement=function(ulId){if(!$('#'+this.rootDiv+' a[target='+ulId+']').parent('.accordionMenuHeader').hasClass('accordionOpenHeader')){if(this.collapsePrev){if(this.speed==''){$('#'+this.rootDiv).children('.accordionCategoryItem').hide();}else{$('#'+this.rootDiv).children('.accordionCategoryItem').slideUp(this.speed);}
$('#'+this.rootDiv).children('.accordionMenuHeader').removeClass('accordionOpenHeader');}
$('#'+this.rootDiv+' a[target='+ulId+']').parent('.accordionMenuHeader').addClass('accordionOpenHeader');if(this.speed==''){$('#'+ulId).show();}else{$('#'+ulId).slideDown(this.speed);}}}
AccordionMenu.prototype.jumpToElement=function(ulId){window.location='#'+ulId;}
