
var cart={items:null,goods:null,cookieName:'cart',dlgframe:null,restoreFromCookie:function(){var json=$.cookie(this.cookieName);this.items=$.parseJSON(json);if(this.items==null){this.items={};}},storeToCookie:function(){json=JSON.stringify(this.items);$.cookie(this.cookieName,json,{expires:21,path:'/',domain:document.domain});},requestGoods:function(callback){var ids=[];$.each(this.items,function(k,v){ids.push(v.id);});var this_=this;$.getJSON('/rpc[GoodPeer.retrieveByPKs]',{param:ids},function(data){this_.goods=[];$.each(data,function(k,v){this_.goods[v.good_id]=v;});if(callback){callback(this_);}});},updateGood:function(id,count){if(this.items==null){this.restoreFromCookie();}
id=parseInt(id);count=(count==null?null:parseInt(count));if(count!=null&&this.items[id]!=null){count+=this.items[id].count;}
if(count<0){}else{this.items[id]={id:id,count:count};}
this.storeToCookie();this.updateDialog();},addGood:function(id,count,objlink){if(count==null){count=1;}
if(0<count)
{this.updateGood(id,count);this.updateCount();}
return false;},removeGood:function(id,count){if(count==null){count=1;}
if(0<count)
{this.updateGood(id,-count);this.updateCount();}
return false;},updateCount:function(){if(this.items==null){this.restoreFromCookie();}
var count=0;for(var key in this.items){count+=this.items[key].count;}
$("#cart_count").text(''+count+'');},updateDialog:function(){if(this.dlgframe)
{this.requestGoods(function(cart){cart.dlgframe.find('.grid tr:not(.header)').remove();var total=0,count=0;$.each(cart.items,function(k,item){var good=cart.goods[item.id];var sum=good.price*item.count;total+=sum;count+=item.count;cart.dlgframe.find('.grid').append('<tr><td>'+good.title+'</td><td>'+item.count+'</td><td>'+good.price+'</td><td>'+sum+'</td><td>'
+'<a href="#" onclick="cart.addGood('+item.id+');" title="Увеличить"><span class="ui-icon ui-icon-triangle-1-n"></span></a>'
+'<a href="#" onclick="cart.removeGood('+item.id+');" title="Уменьшить"><span class="ui-icon ui-icon-triangle-1-s"></span></a>'
+'</td></tr>');});cart.dlgframe.find('.grid').append("<tr><td>Всего:</td><td>"+count+"</td><td></td><td>"+total+"</td></tr>");});}},open:function(id){this.dlgframe=$('#'+id);this.updateDialog();this.dlgframe.dialog({width:500,zIndex:10000,resizable:false,autoOpen:false}).dialog('open');}};
