$(function(){$("#origami").bind("tap",false);var supportTouch=$.support.touch,touchStart=supportTouch?"touchstart":"mousedown",touchEnd=supportTouch?"touchend":"mouseup",format={number:function(value){return value},hour:function(value){return value+"h"},hourMinute:function(value){var hour=Math.floor(value),minute=Math.floor(60*(value-hour));if(minute<10){minute="0"+minute}return hour+"h"+minute}},mask={number:function(setValue){return function(event){setValue(parseFloat($.trim(this.value)),event.type==="blur")}},hourMinute:function(setValue){return function(event){var val=this.value.split("h"),hour=parseFloat($.trim(val[0])),minute=val[1]?parseFloat($.trim(val[1])):0;setValue(hour+(minute/60),event.type==="blur")}}},units={K:1,M:1000},r_bandwidth=/^([0-9]+)(K|M)$/,result=$("#origami-result"),values=[];mask.hour=mask.hourMinute;function updateTotal(){var cumul=0,i=0,length=values.length;for(;i<length;i++){cumul+=values[i]}if(cumul){if(cumul<1000){cumul="< 1 Mo"}else if(cumul>=1000000){cumul=(cumul/1000000).toFixed(1)+" Go"}else{cumul=Math.ceil(cumul/1000)+" Mo"}}result.text(cumul+" par mois")}$(".origami-count").each(function(index){var elem=$(this),data=elem.data(),value=values[index]=0,increment=1*data.origamiIncrement,max=1*data.origamiMax,bandwidth=r_bandwidth.exec(data.origamiBandwidth),formatFN=format[data.origamiFormat],maskFN=mask[data.origamiFormat](setValue),controlPanel=elem.siblings(".origami-control-panel"),plusButton=$(".origami-plus",controlPanel),minusButton=$(".origami-minus",controlPanel),timer,timeout;elem.bind("keyup blur",maskFN);elem.bind("focus",function(){if($(this).val()==="-"){$(this).val("")}});bandwidth=bandwidth[1]*units[bandwidth[2]];function setValue(current,dynamic){var ok;if(isNaN(current)){current=value}else{if(current/increment>Math.floor(current/increment)){current=(Math.floor(current/increment)+1)*increment}ok=current>=0&&current<=max}if(dynamic!==undefined||ok){if(current<0){current=0}else if(current>max){current=max}values[index]=((value=current))*bandwidth;if(dynamic!==false){elem.val(current?formatFN(current):"-")}updateTotal()}return ok}function dirUpdate(direction){return function update(){if(setValue(value+direction*increment)){if(timer){timeout/=2;if(timeout<80){timeout=80}}else{timeout=1000}timer=setTimeout(update,timeout)}else{end()}return false}}function end(){if(timer){clearTimeout(timer);timer=timeout=undefined}}plusButton.bind(touchStart,dirUpdate(+1));minusButton.bind(touchStart,dirUpdate(-1));plusButton.add(minusButton).bind(touchEnd,end).bind("vmouseout vmousecancel",function(){$(this).trigger(touchEnd)});$("span.origami-reset").bind(touchStart,function(event){$(".origami-highlight").text("0 Mo par mois");$(".origami-count").val('-');value=values[index]=0})})});
