(function($){$.fn.shuffle=function(){return this.each(function(){var items=$(this).children().clone(true);return(items.length)?$(this).html($.shuffle(items)):this;});};$.shuffle=function(arr){for(var j,x,i=arr.length;i;j=parseInt(Math.random()*i),x=arr[--i],arr[i]=arr[j],arr[j]=x);return arr;};if(typeof(jQuery.isArticle)=="undefined"){jQuery.isArticle=function(){if(typeof(subsection_path)=="undefined")return false;else return true;};}
jQuery.log=function(msg){if(typeof(console)!="undefined")console.log(msg);};jQuery.fn.shopping=function(settings){var config={cutLength:67,covers_css:{"width":"70px"},num_tabs:7,loading_image:"",keywords_token:"##KEYWORDS##",keywords:"",init:true,hasFeatured:true};var ajaxManager="";var nfeed=0;var maxElement=new Array();var urlCalled=new Array();var orderElem=new Array();var xmlMerge=new Array();var xmlArray=new Array();var shoppingScroller;var init=true;var $this_selector;var $this;var shoppingUrl="http://www.shopping24.ilsole24ore.com/sh4/catalog/";if(typeof(enableContestSearch)=="undefined")enableContestSearch=false;if(settings)$.extend(config,settings);var _core={truncate:function(text,length){var total=text.length+1;if(total<length)return text;var cut_pos=text.length-length;if(cut_pos>0){if(text.length<cut_pos)return text;var subtext=text.substr(0,length-3);return subtext.substr(0,subtext.lastIndexOf(" "))+'...';}else return text;},loading:function(is_loading){var selector="";if(config.type=="art")selector="#shopping-scroller";else selector=$this_selector+" .scroller";if(is_loading){$(selector).css("visibility","hidden");$($this_selector+" .loading").show();}else{$($this_selector+" .loading").hide();$(selector).hide().css("visibility","visible").show();}},checkUrl:function(url){var sh24_url="";if(url.indexOf("http://")==-1)sh24_url=shoppingUrl+url;else sh24_url=url;return sh24_url;},createElement:function(prodotto,index){var title=$(prodotto).find("TITOLO,titolo").text();var desc=$(prodotto).find("JOLLY,jolly").text();var imgSrc=$(prodotto).find("URL_IMMAGINE,url_immagine").text();var price=$(prodotto).find("PREZZO_SCONTATO,prezzo_scontato").text();var percent=$(prodotto).find("SCONTO,sconto").text();var urlScheda=_core.checkUrl($(prodotto).find("URL_SCHEDA, url_scheda").text());var codProd=$(prodotto).find("URL_SCHEDA, url_scheda").text().split("PRODID=")[1];var el;var priceParts;var decimalPart="00";if(index==0&&nfeed==0)el=$($this_selector+" .item");else el=$($this_selector+" .item:first").clone();if(el.hasClass("empty"))el.removeClass("empty")
el.find("img").attr("src",imgSrc).css(config.covers_css);el.find(".title").text(_core.truncate(title.toLowerCase(),50));el.find(".description").text(desc);el.find("a").attr("href",urlScheda).attr("name","&lid="+codProd+"&lpos=shopping24");if(percent==0)el.find(".percent").html("&nbsp;");else el.find(".percent").html("-"+percent+"%&nbsp;");if($(prodotto).find("PREZZO_SCONTATO,prezzo_scontato").text()=="")el.find(".buy").html("n/d").parent().find(".iva").html("").parent().find(".percent").html("&nbsp;");else{if(price.indexOf(",")>-1)priceParts=price.split(',');else priceParts=price.split('.');price=priceParts[0];if(priceParts.length>1)decimalPart=priceParts[1];if(decimalPart.length<2)decimalPart+="0";el.find(".buy").html("&euro; "+price+","+decimalPart);}
return el;},bindScroller:function(selector,num_elem){if(config.init){shoppingScroller=$(selector).scrollable({size:num_elem,keyboard:false,clickable:false,loop:false,speed:500,api:true});$($this_selector+" .left").click(function(event){event.preventDefault();curr_page=shoppingScroller.getPageIndex()
if(curr_page==0)shoppingScroller.end()
else shoppingScroller.prevPage();});$($this_selector+" .right").click(function(event){event.preventDefault();curr_page=shoppingScroller.getPageIndex();total_pages=shoppingScroller.getPageAmount();if(curr_page==(total_pages-1))shoppingScroller.begin();else shoppingScroller.nextPage();});shoppingStripHandlersBound=true;}else{shoppingScroller=$(selector).scrollable();shoppingScroller.reload();shoppingScroller.begin();}},generateShoppingUrl:function(index){var keywords="";var rnd=new Date().valueOf();if(config.json.feed[index].name.indexOf(config.keywords_token)>-1){if(typeof(correlated_shopping)!='undefined'&&correlated_shopping.length>0){$.each(correlated_shopping,function(index,element){if(index==correlated_shopping.length-1)keywords+="["+element[1]+"]'"+element[0]+"'";else keywords+="["+element[1]+"]'"+element[0]+"',";});}else keywords="%27%27";config.json.feed[index].name=config.json.feed[index].name.replace(config.keywords_token,keywords);}else config.json.feed[index].name+="?rnd="+rnd;},stripSearchUrl:function(){var cut=0;var new_cfg={"numFeed":0,"feed":[]};for(i=0;i<config.json.numFeed;i++){if(config.json.feed[i].name.indexOf(config.keywords_token)==-1){new_cfg.feed[cut]=config.json.feed[i]
cut++;}}
new_cfg.numFeed=cut;config.json=new_cfg;},styleArrows:function(){var cssval={off:{"background-position":"22px 50%","cursor":"default"},on:{"background-position":"-107px 50%","cursor":"pointer"}};$this.find(".left, .right").css({"opacity":"1","zoom":"1","cursor":"pointer"}).hover(function(){$(this).css(cssval.on);},function(){$(this).css(cssval.off);});},"art":{loadstrip:function(){_core.loading(true);if(!enableContestSearch)_core.stripSearchUrl();for(i=0;i<config.json.numFeed;i++){orderElem[i]={"index":i,"count":config.json.feed[i].count,"url":config.json.feed[i].name}
_core.generateShoppingUrl(i);if(i<(config.json.numFeed-1)){id=$.manageAjax.add('ShoppingQueue',{url:config.json.feed[i].name,type:"GET",dataType:"xml",success:function(xml,textS,XHR){current=orderElem.shift();xmlArray[current.index]={"url":current.url,"count":current.count,"xml":xml};},error:function(xhr,status,error){$.log("status: "+status+" getting shopping");}});}else{idl=$.manageAjax.add('ShoppingQueue',{url:config.json.feed[i].name,type:"GET",dataType:"xml",success:function(xml,textS,XHR){current=orderElem.shift();xmlArray[current.index]={"url":current.url,"count":current.count,"xml":xml};},error:function(xhr,status,error){$.log("status: "+status);},complete:function(){$.each(xmlArray,function(index,element){_core[config.type].parseXML(element.xml,element.count,element.url);});_core.bindScroller("#shopping-scroll-wrap",2);if($($this_selector+" .empty").length>0)$($this_selector+" .empty").remove();_core.loading(false);}});}}},parseXML:function(xml,maxprod,url){if((url.indexOf(config.keywords_token)>-1)||($this.find(".item").length<2)){if(maxprod==0)maxprod=$(xml).find("PRODOTTO, prodotto").length;$(xml).find("PRODOTTO,prodotto").each(function(index){if(index==maxprod)return false;var el=_core.createElement(this,index);if(index>0||nfeed>0)$("#shopping-scroller").append(el);});nfeed++;}}},tabs:[],"hp":{loadstrip:function(){_core.loading(true);if(!enableContestSearch)_core.stripSearchUrl();for(i=0;i<config.json.numFeed;i++){maxElement[i]=config.json.feed[i].count;orderElem[i]={"index":i,"count":config.json.feed[i].count}
_core.generateShoppingUrl(i);if(i<(config.json.numFeed-1)){id=$.manageAjax.add('ShoppingQueue',{url:config.json.feed[i].name,type:"GET",dataType:"xml",success:function(xml){val=orderElem.shift();xmlArray[val.index]={count:val.count,xml:xml};},error:function(xhr,status,error){$.log("status: "+status);}});}else{id=$.manageAjax.add('ShoppingQueue',{url:config.json.feed[i].name,type:"GET",dataType:"xml",success:function(xml){val=orderElem.shift();xmlArray[val.index]={count:val.count,xml:xml};},complete:function(){$($this_selector).unbind("ajaxSuccess");_core["hp"].createTabs();$("ul.shopping li:first").click();},error:function(xhr,status,error){$.log("status: "+status);}});}}},createTabs:function(){var html_tabs="";if(config.hasFeatured)html_tabs="<li class=\"featured\"><a class=\"current\" href=\"#\" rel=\"Consigliati\">Consigliati</a></li>";$.each(xmlArray,function(index,element){$(element.xml).find("PRODOTTO, prodotto").each(function(){var tipo=$(this).find("TIPO,tipo").text();if($.inArray(tipo,_core.tabs)==-1){if(_core.tabs.length<config.num_tabs){_core.tabs[_core.tabs.length]=tipo;html_tabs+="<li><a href=\"#\" rel=\""+tipo+"\">"+tipo+"</a></li>";}else return;}});});$("ul.shopping").append(html_tabs).css("visibility","visible");$("ul.shopping li").click(_core.hp.loadtabs);},loadtabs:function(e){e.preventDefault();nfeed=0;var elem_zero=$($this_selector+" .item:eq(0)");if(!init){shoppingScroller.begin();shoppingScroller.getItems().remove();shoppingScroller.getItemWrap().append(elem_zero);shoppingScroller.reload().begin()}
$("ul.shopping li a").removeClass("current");$(this).find("a").addClass("current");$.each(xmlArray,function(index,element){var sel=$("ul.shopping li a.current").attr("rel");_core[config.type].parseXML(element.xml,element.count,sel);});if(init)_core.bindScroller($this_selector+" .scroller-5",5);else shoppingScroller.begin();if(init)_core.loading(false);init=false;if(config.type=="hp")$this.navistrip();if(shoppingScroller.getPageAmount()==1)$this.find(".left, .right").manageArrows();else _core.styleArrows();},parseXML:function(xml,maxprod,tipo){var elements;if(tipo=="Consigliati")elements=$(xml.getElementsByTagName("TIPO"));else elements=$(xml).find("tipo:contains("+tipo+"), TIPO:contains("+tipo+")");elements.each(function(index){if((index==maxprod)&&(tipo=="Consigliati"))return false;var el=_core.createElement($(this).parent(),index);if(index>0||nfeed>0){if(init)$($this_selector+" .scroller").append(el);else{shoppingScroller.getItemWrap().append(el);shoppingScroller.reload();}}});if(tipo=="Consigliati")$($this_selector+" .scroller").shuffle();nfeed++;}}};return this.each(function(){if(typeof(correlated_shopping)=='undefined'||correlated_shopping.length==0)enableContestSearch=false;$this=$(this);$this_selector="#"+$this.attr("id");if(config.type=="hp")_core.styleArrows();if(($this.attr("id")=="shopping")||($this.attr("id")=="sh24-cobrand"))config.type="art";else config.type="hp";ajaxManager=$.manageAjax.create('ShoppingQueue',{queue:true});_core[config.type].loadstrip();});};jQuery.fn.shoppingTabs=function(settings){return this.each(function(){if($("#shopping2").length>0){$(this).click(function(e){hasFeatured=false;var $this=$(this);var jsonID=$this.attr("id");if(jsonID=="sh24tab")hasFeatured=true;var jsonVal;e.preventDefault();$this.parent().parent().find("h2.current").removeClass("current");$this.parent().addClass("current");$.each(shopping.tablist,function(){if(this.id==jsonID){jsonVal=this.value;return false;}});$("#shopping2").find(".scroller").find(".item:not(:first)").remove();$("#shopping2").parent().find("ul.shopping").empty();$("#shopping2").shopping({json:jsonVal,init:false,hasFeatured:hasFeatured});});}});};})(jQuery);function shopping_init(){var cut=67;var sh_selector="";if(jQuery("#shopping").length>0){cut=75;sh_selector="#shopping";}
if(jQuery("#shopping2").length>0)sh_selector="#shopping2";if((jQuery(sh_selector).length>0)&&(typeof(shopping)!="undefined")){var current_json;jQuery.each(shopping.tablist,function(){if(this.id=="sh24tab"){current_json=this.value;return false;}});jQuery(sh_selector).shopping({json:current_json,cutLength:cut});}else jQuery(sh_selector).hide().parent().hide();if(jQuery(".sh24_tabs h2 a").length>0)jQuery(".sh24_tabs h2 a").shoppingTabs();}
