var punDetect=navigator.userAgent.toLowerCase();var punOS,punBrowser,punVersion,punTotal,punThestring;function punGetBrowserInfo(){if(punCheckIt('konqueror')){punBrowser="Konqueror";punOS="Linux";}
else if(punCheckIt('safari'))punBrowser="Safari"
else if(punCheckIt('omniweb'))punBrowser="OmniWeb"
else if(punCheckIt('opera'))punBrowser="Opera"
else if(punCheckIt('webtv'))punBrowser="WebTV";else if(punCheckIt('icab'))punBrowser="iCab"
else if(punCheckIt('msie'))punBrowser="Internet Explorer"
else if(!punCheckIt('compatible')){punBrowser="Netscape Navigator"
punVersion=punDetect.charAt(8);}
else punBrowser="An unknown browser";if(!punVersion)punVersion=punDetect.charAt(place+punThestring.length);if(!punOS){if(punCheckIt('linux'))punOS="Linux";else if(punCheckIt('x11'))punOS="Unix";else if(punCheckIt('mac'))punOS="Mac"
else if(punCheckIt('win'))punOS="Windows"
else punOS="an unknown operating system";}}
function punCheckIt(string){place=punDetect.indexOf(string)+1;punThestring=string;return place;}
Event.observe(window,'load',punGetBrowserInfo,false);var Productupdates=Class.create();Productupdates.prototype={yPos:0,xPos:0,isLoaded:false,initialize:function(ctrl,url){if(url){this.content=url;}else{this.content=ctrl.href;}
ctrl.observe('click',function(event){this.activate();Event.stop(event);}.bind(this));},activate:function(){if(punBrowser=='Internet Explorer'){this.getScroll();this.prepareIE('100%','hidden');this.setScroll(0,0);this.hideSelects('hidden');}
this.displayProductupdates("block");},prepareIE:function(height,overflow){bod=document.getElementsByTagName('body')[0];bod.style.height=height;bod.style.overflow=overflow;htm=document.getElementsByTagName('html')[0];htm.style.height=height;htm.style.overflow=overflow;},hideSelects:function(visibility){selects=document.getElementsByTagName('select');for(i=0;i<selects.length;i++){selects[i].style.visibility=visibility;}},getScroll:function(){if(self.pageYOffset){this.yPos=self.pageYOffset;}else if(document.documentElement&&document.documentElement.scrollTop){this.yPos=document.documentElement.scrollTop;}else if(document.body){this.yPos=document.body.scrollTop;}},setScroll:function(x,y){window.scrollTo(x,y);},displayProductupdates:function(display){$('productupdates-overlay').style.display=display;$('productupdates').style.display=display;if(display!='none')this.loadInfo();},loadInfo:function(){$('productupdates').className="loading";var myAjax=new Ajax.Request(this.content,{method:'post',parameters:"",onComplete:this.processInfo.bindAsEventListener(this)});},processInfo:function(response){$('punContent').update(response.responseText);$('productupdates').className="done";this.isLoaded=true;},deactivate:function(){if(punBrowser=="Internet Explorer"){this.setScroll(0,this.yPos);this.prepareIE("auto","auto");this.hideSelects("visible");}
this.displayProductupdates("none");}}
function addProductupdatesMarkup(){bod=document.getElementsByTagName('body')[0];overlay=document.createElement('div');overlay.id='prodictupdates-overlay';pun=document.createElement('div');pun.id='productupdates';pun.className='loading';pun.innerHTML='<div id="punLoadMessage">'+'<p>Loading</p>'+'</div>';bod.appendChild(overlay);bod.appendChild(pun);}
var ProductupdatesForm=Class.create();ProductupdatesForm.prototype={initialize:function(form){this.form=form;if($(this.form)){this.sendUrl=$(this.form).action;$(this.form).observe('submit',function(event){this.send();Event.stop(event);}.bind(this));}
this.loadWaiting=false;this.validator=new Validation(this.form);this.onSuccess=this.success.bindAsEventListener(this);this.onComplete=this.resetLoadWaiting.bindAsEventListener(this);this.onFailure=this.resetLoadWaiting.bindAsEventListener(this);var container=$('subscribe-login-container');if(container&&container.style.display=='none'){this._disableEnableAll(container,true);}},send:function(){if(!this.validator.validate()){return false;}
this.setLoadWaiting(true);var request=new Ajax.Request(this.sendUrl,{method:'post',onComplete:this.onComplete,onSuccess:this.onSuccess,onFailure:this.onFailure,parameters:Form.serialize(this.form)});},success:function(transport){this.resetLoadWaiting();if(transport&&transport.responseText){try{response=eval('('+transport.responseText+')');}
catch(e){response={};}}
if(response.error){if(response.error_type=='no_login'){var container=$('subscribe-login-container');if(container){container.show();this._disableEnableAll(container,false);}}
if((typeof response.message)=='string'){alert(response.message);}else{alert(response.message.join("\n"));}
return false;}
$('punContent').update(transport.responseText);},_disableEnableAll:function(element,isDisabled){var descendants=element.descendants();for(var k in descendants){descendants[k].disabled=isDisabled;}
element.disabled=isDisabled;},setLoadWaiting:function(isDisabled){var container=$('subscribe-button-container');if(isDisabled){container.setStyle({opacity:.5});this._disableEnableAll(container,true);Element.show('subscribe-please-wait');this.loadWaiting=true;}else{container.setStyle({opacity:1});this._disableEnableAll(container,false);Element.hide('subscribe-please-wait');this.loadWaiting=false;}},resetLoadWaiting:function(transport){this.setLoadWaiting(false);}};;Validation.add('validate-password','Please enter 6 or more characters. Leading or trailing spaces will be ignored.',function(v){var pass=v.strip();return!(pass.length>0&&pass.length<4);});;Validation.add('validate-codfisc','Il codice fiscale non è valido',function(cf){var validi,i,s,set1,set2,setpari,setdisp;cf=cf.toUpperCase();validi="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";var l=parseInt(cf.length);if(l!=16)
{return false;}
for(i=0;i<16;i++){if(validi.indexOf(cf.charAt(i))==-1)
{return false;}}
set1="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";set2="ABCDEFGHIJABCDEFGHIJKLMNOPQRSTUVWXYZ";setpari="ABCDEFGHIJKLMNOPQRSTUVWXYZ";setdisp="BAKPLCQDREVOSFTGUHMINJWZYX";s=0;for(i=1;i<=13;i+=2)
s+=setpari.indexOf(set2.charAt(set1.indexOf(cf.charAt(i))));for(i=0;i<=14;i+=2)
s+=setdisp.indexOf(set2.charAt(set1.indexOf(cf.charAt(i))));if(s%26!=cf.charCodeAt(15)-'A'.charCodeAt(0))
{return false;}
return true;});Validation.add('validate-piva','La partita IVA non è corretta',function(pi)
{if(pi=='')return false;if(pi.length!=11)
{return false;}
validi="0123456789";for(i=0;i<11;i++){if(validi.indexOf(pi.charAt(i))==-1)
{return true;}}
s=0;for(i=0;i<=9;i+=2)
s+=pi.charCodeAt(i)-'0'.charCodeAt(0);for(i=1;i<=9;i+=2){c=2*(pi.charCodeAt(i)-'0'.charCodeAt(0));if(c>9)c=c-9;s+=c;}
if((10-s%10)%10!=pi.charCodeAt(10)-'0'.charCodeAt(0))
{return false;}
return true;});;function taxToggle(details,switcher,expandedClassName)
{if($(details).style.display=='none'){$(details).show();$(switcher).addClassName(expandedClassName);}else{$(details).hide();$(switcher).removeClassName(expandedClassName);}};function getPointsString(amount,currency_id){s=amount+' ';if(currency_map[currency_id]!=''&&currency_map[currency_id]!=' '){s=s+currency_map[currency_id]+" ";}
if(amount>1){s+=CAPTION_POINTS;}else{s+=CAPTION_POINT;}
return s;};var SmoothSlider=Class.create();SmoothSlider.prototype=Control.Slider.prototype;SmoothSlider.prototype.setValue=function(sliderValue,handleIdx){if(!this.active){this.activeHandleIdx=handleIdx||0;this.activeHandle=this.handles[this.activeHandleIdx];this.updateStyles();}
handleIdx=handleIdx||this.activeHandleIdx||0;if(this.initialized&&this.restricted){if((handleIdx>0)&&(sliderValue<this.values[handleIdx-1]))
sliderValue=this.values[handleIdx-1];if((handleIdx<(this.handles.length-1))&&(sliderValue>this.values[handleIdx+1]))
sliderValue=this.values[handleIdx+1];}
sliderValue=this.getNearestValue(sliderValue);this.values[handleIdx]=sliderValue;this.value=this.values[0];if(this.slideFxBusy==true){if(this.slideFx){this.slideFx.cancel();this.slideFxBusy=false;this.handles[handleIdx].style[this.isVertical()?'top':'left']=this.translateToPx(sliderValue);}}else{this.slideFxBusy=true;var translated_value=this.translateToPx(sliderValue);if(translated_value!="NaNpx"){var move_x=this.isVertical()?0:parseInt(translated_value);var move_y=this.isVertical()?parseInt(translated_value):0;this.slideFx=new Effect.Move(this.handles[handleIdx],{x:move_x,y:move_y,mode:'absolute',duration:0.4,afterFinish:function(){this.slideFxBusy=false;}.bindAsEventListener(this)});}}
this.isMoving=false;this.drawSpans();if(!this.dragging||!this.event)this.updateFinished();};;var RedemptionSlider=Class.create({initialize:function(sliderHandleId,sliderRailId,sliderCaptionId,sliderValueboxId){this.sliderHandleId=sliderHandleId;this.sliderRailId=sliderRailId;this.sliderCaptionId=sliderCaptionId;this.sliderValuebox=$(sliderValueboxId);this.sliderData={minimum:1,maximum:1,sliderValue:1,step:1,range:$R(0,100),values:$R(0,100),onSlide:this.slideListener.bind(this),onChange:this.changeListener.bind(this)};this.regenerateSlider(1,1,1,1);this.sliderCaption=$(sliderCaptionId);this.points_per_use=1;this.points_currency=-1;this.oldRuleId=-1;this.oldProductPrice=-1;},changeListener:function(val){this.setExternalValue(val);feignPriceChange();},slideListener:function(val){this.changeListener(val);},getValue:function(){return this.slider.value;},getUses:function(){return this.getValue();},getRealMaxUses:function(max_uses,points_per_use,cp,pp,pp_disp){var lowest_max_uses=max_uses;var max_pp_uses=pp/pp_disp;max_pp_uses=parseInt(max_pp_uses)+((max_pp_uses-parseInt(max_pp_uses)>0)?1:0);if(max_pp_uses<lowest_max_uses){lowest_max_uses=max_pp_uses;}
var max_cp_uses=parseInt(cp/points_per_use);if(max_cp_uses<lowest_max_uses){lowest_max_uses=max_cp_uses;}
return lowest_max_uses;},regenerateSlider:function(min,max,step,initial_value){if(this.slider!=null){this.slider.dispose();}
max=parseInt(max/step)*step;this.sliderData.minimum=min;this.sliderData.maximum=max;this.sliderData.step=step;this.sliderData.range=$R(min,max);if(step==1){this.sliderData.values=$R(min,max);}else{var vals=new Array();vals.push(min);$R(min,max-1).each(function(v){if(v%step==0&&(v+step)<=max){vals.push(v+step);}});this.sliderData.values=vals;}
this.sliderData.sliderValue=initial_value;this.slider=new SmoothSlider(this.sliderHandleId,this.sliderRailId,this.sliderData);},setExternalValue:function(val){this.sliderCaption.innerHTML=getPointsString(val*this.points_per_use,this.points_currency);this.sliderValuebox.value=this.getUses();},incr:function(){this.slider.setValue(this.slider.value+this.sliderData.step);},decr:function(){this.slider.setValue(this.slider.value-this.sliderData.step);},maximize:function(){this.slider.setValue(this.sliderData.maximum);},isMaxed:function(){return(this.getValue()==this.sliderData.maximum);}});
