/*	jQuery plugin - FeatureList - 1.0.0 - jQuery v1.3+
---------------------------------------------------------------------- */
(function($) {
	$.fn.featureList = function(options) {
		var tabs	= $(this);
		var output	= $(options.output);

		new jQuery.featureList(tabs, output, options);

		return this;	
	};

	$.featureList = function(tabs, output, options) {
		function slide(nr) {
			if (typeof nr == "undefined") {
				nr = visible_item + 1;
				nr = nr >= total_items ? 0 : nr;
			}

			tabs.removeClass('current').filter(":eq(" + nr + ")").addClass('current');

			output.stop(true, true).filter(":visible").fadeOut();
			output.filter(":eq(" + nr + ")").fadeIn(function() {
				visible_item = nr;	
			});
		}

		var options			= options || {}; 
		var total_items		= tabs.length;
		var visible_item	= options.start_item || 0;

		options.pause_on_hover		= options.pause_on_hover		|| true;
		options.transition_interval	= options.transition_interval	|| 5000;

		output.hide().eq( visible_item ).show();
		tabs.eq( visible_item ).addClass('current');

		tabs.click(function() {
			if ($(this).hasClass('current')) {
				return false;	
			}

			slide( tabs.index( this) );
		});

		if (options.transition_interval > 0) {
			var timer = setInterval(function () {
				slide();
			}, options.transition_interval);

			if (options.pause_on_hover) {
				tabs.mouseenter(function() {
					clearInterval( timer );

				}).mouseleave(function() {
					clearInterval( timer );
					timer = setInterval(function () {
						slide();
					}, options.transition_interval);
				});
			}
		}
	};
})(jQuery);

/*	jQuery plugin - hoverIntent r5 // 2007.03.27 // jQuery 1.1.2+
---------------------------------------------------------------------- */
(function($){$.fn.hoverIntent=function(f,g){var cfg={sensitivity:7,interval:100,timeout:0};cfg=$.extend(cfg,g?{over:f,out:g}:f);var cX,cY,pX,pY;var track=function(ev){cX=ev.pageX;cY=ev.pageY;};var compare=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);if((Math.abs(pX-cX)+Math.abs(pY-cY))<cfg.sensitivity){$(ob).unbind("mousemove",track);ob.hoverIntent_s=1;return cfg.over.apply(ob,[ev]);}else{pX=cX;pY=cY;ob.hoverIntent_t=setTimeout(function(){compare(ev,ob);},cfg.interval);}};var delay=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);ob.hoverIntent_s=0;return cfg.out.apply(ob,[ev]);};var handleHover=function(e){var p=(e.type=="mouseover"?e.fromElement:e.toElement)||e.relatedTarget;while(p&&p!=this){try{p=p.parentNode;}catch(e){p=this;}}if(p==this){return false;}var ev=jQuery.extend({},e);var ob=this;if(ob.hoverIntent_t){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);}if(e.type=="mouseover"){pX=ev.pageX;pY=ev.pageY;$(ob).bind("mousemove",track);if(ob.hoverIntent_s!=1){ob.hoverIntent_t=setTimeout(function(){compare(ev,ob);},cfg.interval);}}else{$(ob).unbind("mousemove",track);if(ob.hoverIntent_s==1){ob.hoverIntent_t=setTimeout(function(){delay(ev,ob);},cfg.timeout);}}};return this.mouseover(handleHover).mouseout(handleHover);};})(jQuery);

/*	jQuery plugin - simpleTooltip jQuery plugin, by Marius ILIE, visit http://dev.mariusilie.net for details
---------------------------------------------------------------------- */
(function($){ $.fn.simpletooltip = function(){
	return this.each(function() {
		var text = $(this).attr("title");
		$(this).attr("title", "");
		if(text != undefined) {
			$(this).hover(function(e){
				var tipX = e.pageX + 12;
				var tipY = e.pageY + 12;
				$(this).attr("title", ""); 
				$("body").append("<div id='simpleTooltip' style='position: absolute; z-index: 100; display: none;'>" + text + "</div>");
				if($.browser.msie) var tipWidth = $("#simpleTooltip").outerWidth(true)
				else var tipWidth = $("#simpleTooltip").width()
				$("#simpleTooltip").width(tipWidth);
				$("#simpleTooltip").css("left", tipX).css("top", tipY).fadeIn("medium");
			}, function(){
				$("#simpleTooltip").remove();
				$(this).attr("title", text);
			});
			$(this).mousemove(function(e){
				var tipX = e.pageX + 12;
				var tipY = e.pageY + 12;
				var tipWidth = $("#simpleTooltip").outerWidth(true);
				var tipHeight = $("#simpleTooltip").outerHeight(true);
				if(tipX + tipWidth > $(window).scrollLeft() + $(window).width()) tipX = e.pageX - tipWidth;
				if($(window).height()+$(window).scrollTop() < tipY + tipHeight) tipY = e.pageY - tipHeight;
				$("#simpleTooltip").css("left", tipX).css("top", tipY).fadeIn("medium");
			});
		}
	});
}})(jQuery);

/*	jQuery plugin - ValidateFormFields
	Créé le 02/12/2010 par Lenny
---------------------------------------------------------------------- */
(function($){
	
    // définition du plugin
    $.fn.validateFormFields = function(settings){
    	
		// parametres par défaut
        var defaults = {
            ajaxFile: 'ajax.validateFormFields.php',
			validationEventTriggers: 'blur',
            inlineValidation: true,
            returnValidationSucess: true,
			returnValidationFailure: true,
			returnValidationFailureMsg: true,
			selectLabelField: true,
            blockSubmit: true
        };
        
		// importation des parametres
        var settings = $.extend(defaults, settings);
		
		// envoi du formulaire
		$(this).bind("submit", function(){
			if (settings.blockSubmit == true){
				var validForm = true;
				$.each($(".validationFF"), function(i,field){
					validateField(field);
					if ($(field).hasClass('vff_invalid')) validForm = false;
				});
				// si un champs est invalide, bloquage de l'envoi du formulaire
				if (!validForm) return false;
			}
		})
		
		// validation : champs par champs / lors de l'envoi du formulaire
		if(settings.inlineValidation == true){
			$(this).find("[class*=validationFF]").live(settings.validationEventTriggers, function(){ 
				validateField(this);
			});
			$(this).find("[class*=validationFF][type=checkbox]").live("click", function(){
				validateField(this);
			});
		}
		
		// test de validité d'un champs
		function validateField(e){
			var rules = $(e).attr('class').split(/ /);
			var validField = true;
			var msg = '';
			var val = $(e).val();
			var fieldName = $(e).attr("name");
			var fieldId = $(e).attr("id");
			for (i=0; i<rules.length;i++){
				switch (rules[i]){
					case "vff_require":
						fieldType = $(e).attr("type");
						if (fieldType == "text" || fieldType == "password" || fieldType == "textarea"){
							if(!val){
								validField = false;
								msg = 'Ce champs est requis';
							}
						}	
						else if (fieldType == "radio" || fieldType == "checkbox" ){
							if($("input[name='"+fieldName+"']:checked").size() == 0){
								validField = false;
								msg = 'Un choix est requis est requis';
							}
						}	
						else if (fieldType == "select-one") {
							if(!val){
								validField = false;
								msg = 'Un choix est requis est requis';
							}
						}
						else if (fieldType == "select-multiple") {
							if(!$(e).find("option:selected").val()){
								validField = false;
								msg = 'Un choix est requis est requis';
							}
						}
					break;
					// regles
					case "vff_letter": // uniquement des caracteres alphabetiques
						if(!val.match(/^[a-zA-Z\ \']+$/)){
							validField = false;
							msg = 'Lettres seulement accepté';
						}
					break;
					case "vff_number": // uniquement des caracteres numeriques
						if(!val.match(/^[0-9\ ]+$/)){
							validField = false;
							msg = 'Chiffres seulement accepté';
						}
					break;
					case "vff_noSC": // uniquement des caracteres alpha-numeriques
						if(!val.match(/^[0-9a-zA-Z]+$/)){
							validField = false;
							msg = 'Aucune caractère spécial accepté';
						}
					break;
					case "vff_noRC": // aucuns des caracteres speciaux
						if(val.match(/(.)\1{2,}/)){
							validField = false;
							msg = 'Un caractére est trop répété';
						}
					break;
					// format de données
					case "vff_email": // format email
						if(!val.match(/^[a-zA-Z0-9_\.\-]+\@([a-zA-Z0-9\-]+\.)+[a-zA-Z0-9]{2,4}$/)){
							validField = false;
							msg = 'Adresse email invalide';
						}
					break;
					case "vff_phone": // format telephone
						if(!val.match(/^[0-9\-\+\(\)\ ]+$/)){
							validField = false;
							msg = 'Téléphone invalide';
						}
					break;
					case "vff_zip": // format code postal
						if(!val.match(/^[0-9]{5}$/) || val==00000 ){
							validField = false;
							msg += 'Code postal invalide';
						}
					break;
					case "vff_date": // format date
						if(!val.match(/^[0-9]{4}\-\[0-9]{1,2}\-\[0-9]{1,2}$/)){
							validField = false;
							msg += 'Date invalide, format YYYY-MM-DD requis';
						}
					break;
					// test en ajax
					case "vff_ajax":
						var msgFalse = new Array();
						switch (fieldName){
							case 'new_member_login':
							case 'email':
								action = 'login_available';
								data = 'email='+val;
								msgFalse[1] = 'Ce login est déjà pris';
							break;
							case 'zip':
							case 'countrynr':
								action = 'zone_livrable';
								if (fieldName=='zip') data = 'zip='+val+'&countrynr='+$('select[name=countrynr]').val();
								else data = 'zip='+$('input[name=zip]').val()+'&countrynr='+val;
								msgFalse[1] = 'Désolé, Kookit n\'effectue pas de livraison dans les DOM/TOM. Merci de compléter vos coordonnées.';
								msgFalse[2] = 'Désolé, Kookit n\'effectue pas de livraison dans les DOM/TOM.';
								msgFalse[3] = 'Merci de compléter vos coordonnées.';
							break;
							case 'phone':
								action = 'phone_format';
								if (fieldName=='phone') data = 'phone='+val+'&countrynr='+$('select[name=countrynr]').val();
								else{
									data = 'phone='+$('input[name=phone]').val()+'&countrynr='+val;
									fieldName='phone';
								} 
								msgFalse[1] = 'Format du numero de téléphone invalide';
							break;
						}
						var result = jQuery.ajax({
							type: 'POST',
							async: false,
							url: settings.ajaxFile+'?action='+action,
							data: data
						}).responseText;
						if (result!=0){
							validField = false;
							msg = msgFalse[result];
						}
					break;
					// confirm
					case "vff_confirm":
						switch (fieldName){
							case 'email_conf':
								if ($('#email').val()!=val){
									msg = 'Votre email et votre email de confirmation sont differents';
									validField = false;
								}
							break;
						}
					break;
					case "vff_specific":
						switch (fieldName){
							case 'accepte_cgv':
								if($("input[name='"+fieldName+"']:checked").size() == 0){
									validField = false;
									msg = 'Veuillez accepter les conditions générales de ventes en cochant la case ci-dessous';
								}
							break;
						}
					break;
				};
			};
			validForm = validField;
			$(e).removeClass('vff_valid vff_invalid');
			$(e).parent().children("div.vff_msg_invalid").remove();
			if (validField){
				if (settings.returnValidationSucess){
					$(e).addClass('vff_valid');
					if (settings.selectLabelField) $('label[for='+fieldId+']').addClass('vff_valid');
				}
			}else{
				if (settings.returnValidationFailure){
					$(e).addClass('vff_invalid');
					if (settings.selectLabelField) $('label[for='+fieldId+']').addClass('vff_invalid');
					if (settings.returnValidationFailureMsg){
						var divFormError = document.createElement('div');
						$(divFormError).addClass("vff_msg_invalid");
						$(e).before(divFormError);
						$(divFormError).html(msg);
					}
				}
			}
		}
		
        return $(this);    
    };
})(jQuery);

/*	jQuery plugin - jSlider
---------------------------------------------------------------------- */
(function(){Function.prototype.inheritFrom=function(b,c){var d=function(){};d.prototype=b.prototype;this.prototype=new d();this.prototype.constructor=this;this.prototype.baseConstructor=b;this.prototype.superClass=b.prototype;if(c){for(var a in c){this.prototype[a]=c[a]}}};Number.prototype.nice=function(l){var o=/^(-)?(\d+)([\.,](\d+))?$/;var d=Number(this);var j=String(d);var k;var c="";var b=" ";if((k=j.match(o))){var f=k[2];var m=(k[4])?Number("0."+k[4]):0;if(m){var e=Math.pow(10,(l)?l:2);m=Math.round(m*e);sNewDecPart=String(m);c=sNewDecPart;if(sNewDecPart.length<l){var a=l-sNewDecPart.length;for(var g=0;g<a;g++){c="0"+c}}c=","+c}else{if(l&&l!=0){for(var g=0;g<l;g++){c+="0"}c=","+c}}var h;if(Number(f)<1000){h=f+c}else{var n="";var g;for(g=1;g*3<f.length;g++){n=b+f.substring(f.length-g*3,f.length-(g-1)*3)+n}h=f.substr(0,3-g*3+f.length)+n+c}if(k[1]){return"-"+h}else{return h}}else{return j}}})();(function(){var b={};this.tmpl=function a(e,d){var c=!(/\W/).test(e)?b[e]=b[e]||a(e):new Function("obj","var p=[],print=function(){p.push.apply(p,arguments);};with(obj){p.push('"+e.replace(/[\r\t\n]/g," ").split("<%").join("\t").replace(/((^|%>)[^\t]*)'/g,"$1\r").replace(/\t=(.*?)%>/g,"',$1,'").split("\t").join("');").split("%>").join("p.push('").split("\r").join("\\'")+"');}return p.join('');");return d?c(d):c}})();(function(a){this.Draggable=function(){this._init.apply(this,arguments)};Draggable.prototype={oninit:function(){},events:function(){},onmousedown:function(){this.ptr.css({position:"absolute"})},onmousemove:function(c,b,d){this.ptr.css({left:b,top:d})},onmouseup:function(){},isDefault:{drag:false,clicked:false,toclick:true,mouseup:false},_init:function(){if(arguments.length>0){this.ptr=a(arguments[0]);this.outer=a(".draggable-outer");this.is={};a.extend(this.is,this.isDefault);var b=this.ptr.offset();this.d={left:b.left,top:b.top,width:this.ptr.width(),height:this.ptr.height()};this.oninit.apply(this,arguments);this._events()}},_events:function(){var b=this;a(document).mousemove(function(c){if(b.is.drag){b._mousemove(c);return false}}).mouseup(function(c){b._mouseup(c)}).bind("dragstart",function(){return false});this.ptr.mousedown(function(c){b._mousedown(c);return false}).mouseup(function(c){b._mouseup(c)});this.ptr.find("a").click(function(){b.is.clicked=true;if(!b.is.toclick){b.is.toclick=true;return false}}).mousedown(function(c){b._mousedown(c);return false}).bind("dragstart",function(){return false});this.events()},_mousedown:function(b){this.is.drag=true;this.is.clicked=false;this.is.mouseup=false;var c=this.ptr.offset();this.cx=b.pageX-c.left;this.cy=b.pageY-c.top;a.extend(this.d,{left:c.left,top:c.top,width:this.ptr.width(),height:this.ptr.height()});if(this.outer&&this.outer.get(0)){this.outer.css({height:Math.max(this.outer.height(),a(document.body).height()),overflow:"hidden"})}this.onmousedown(b)},_mousemove:function(b){this.is.toclick=false;this.onmousemove(b,b.pageX-this.cx,b.pageY-this.cy)},_mouseup:function(b){var c=this;if(this.is.drag){this.is.drag=false;if(this.outer&&this.outer.get(0)){if(a.browser.mozilla){this.outer.css({overflow:"hidden"})}else{this.outer.css({overflow:"visible"})}if(a.browser.msie&&a.browser.version=="6.0"){this.outer.css({height:"100%"})}else{this.outer.css({height:"auto"})}}this.onmouseup(b)}}}})(jQuery);(function(b){b.slider=function(e,d){e.sliderHandler=new jSlider(e,d)};b.fn.slider=function(d){return this.each(function(){b.slider(this,d)})};var c={settings:{from:1,to:10,step:1,smooth:true,limits:true,round:0,value:"5;7",dimension:""},className:"jslider",selector:".jslider-",template:tmpl('<span class="<%=className%>"><table><tr><td><div class="<%=className%>-bg"><i class="l"><i></i></i><i class="r"><i></i></i><i class="v"><i></i></i></div><div class="<%=className%>-pointer"><i></i></div><div class="<%=className%>-pointer <%=className%>-pointer-to"><i></i></div><div class="<%=className%>-label"><span><%=settings.from%></span></div><div class="<%=className%>-label <%=className%>-label-to"><span><%=settings.to%></span><%=settings.dimension%></div><div class="<%=className%>-value"><span></span><%=settings.dimension%></div><div class="<%=className%>-value <%=className%>-value-to"><span></span><%=settings.dimension%></div><div class="<%=className%>-scale"><%=scale%></div></td></tr></table></span>')};this.jSlider=function(){return this.init.apply(this,arguments)};jSlider.prototype={init:function(e,d){this.settings=b.extend(true,{},c.settings,d?d:{});this.inputNode=b(e).hide();this.settings.interval=this.settings.to-this.settings.from;this.settings.value=this.inputNode.attr("value");if(this.settings.calculate&&b.isFunction(this.settings.calculate)){this.nice=this.settings.calculate}if(this.settings.onstatechange&&b.isFunction(this.settings.onstatechange)){this.onstatechange=this.settings.onstatechange}this.is={init:false};this.o={};this.create()},onstatechange:function(){},create:function(){var d=this;this.domNode=b(c.template({className:c.className,settings:{from:this.nice(this.settings.from),to:this.nice(this.settings.to),dimension:this.settings.dimension},scale:this.generateScale()}));this.inputNode.after(this.domNode);this.drawScale();if(this.settings.skin&&this.settings.skin.length>0){this.domNode.addDependClass(this.settings.skin,"_")}this.sizes={domWidth:this.domNode.width(),domOffset:this.domNode.offset()};b.extend(this.o,{pointers:{},labels:{0:{o:this.domNode.find(c.selector+"value").not(c.selector+"value-to")},1:{o:this.domNode.find(c.selector+"value").filter(c.selector+"value-to")}},limits:{0:this.domNode.find(c.selector+"label").not(c.selector+"label-to"),1:this.domNode.find(c.selector+"label").filter(c.selector+"label-to")}});b.extend(this.o.labels[0],{value:this.o.labels[0].o.find("span")});b.extend(this.o.labels[1],{value:this.o.labels[1].o.find("span")});if(!d.settings.value.split(";")[1]){this.settings.single=true;this.domNode.addDependClass("single")}if(!d.settings.limits){this.domNode.addDependClass("limitless")}this.domNode.find(c.selector+"pointer").each(function(e){var g=d.settings.value.split(";")[e];if(g){d.o.pointers[e]=new a(this,e,d);var f=d.settings.value.split(";")[e-1];if(f&&new Number(g)<new Number(f)){g=f}g=g<d.settings.from?d.settings.from:g;g=g>d.settings.to?d.settings.to:g;d.o.pointers[e].set(g)}});this.o.value=this.domNode.find(".v");this.is.init=true;b.each(this.o.pointers,function(e){d.redraw(this)});(function(e){b(window).resize(function(){e.onresize()})})(this)},generateScale:function(){if(this.settings.scale&&this.settings.scale.length>0){var f="";var e=this.settings.scale;var g=Math.round((100/(e.length-1))*10)/10;for(var d=0;d<e.length;d++){f+='<span style="left: '+d*g+'%">'+(e[d]!="|"?"<ins>"+e[d]+"</ins>":"")+"</span>"}return f}else{return""}return""},drawScale:function(){this.domNode.find(c.selector+"scale span ins").each(function(){b(this).css({marginLeft:-b(this).outerWidth()/2})})},onresize:function(){var d=this;this.sizes={domWidth:this.domNode.width(),domOffset:this.domNode.offset()};b.each(this.o.pointers,function(e){d.redraw(this)})},limits:function(d,g){if(!this.settings.smooth){var f=this.settings.step*100/(this.settings.interval);d=Math.round(d/f)*f}var e=this.o.pointers[1-g.uid];if(e&&g.uid&&d<e.value.prc){d=e.value.prc}if(e&&!g.uid&&d>e.value.prc){d=e.value.prc}if(d<0){d=0}if(d>100){d=100}return Math.round(d*10)/10},redraw:function(d){if(!this.is.init){return false}this.setValue();if(this.o.pointers[0]&&this.o.pointers[1]){this.o.value.css({left:this.o.pointers[0].value.prc+"%",width:(this.o.pointers[1].value.prc-this.o.pointers[0].value.prc)+"%"})}this.o.labels[d.uid].value.html(this.nice(d.value.origin));this.redrawLabels(d)},redrawLabels:function(j){function f(l,m,n){m.margin=-m.label/2;label_left=m.border+m.margin;if(label_left<0){m.margin-=label_left}if(m.border+m.label/2>e.sizes.domWidth){m.margin=0;m.right=true}else{m.right=false}l.o.css({left:n+"%",marginLeft:m.margin,right:"auto"});if(m.right){l.o.css({left:"auto",right:0})}return m}var e=this;var g=this.o.labels[j.uid];var k=j.value.prc;var h={label:g.o.outerWidth(),right:false,border:(k*this.sizes.domWidth)/100};if(!this.settings.single){var d=this.o.pointers[1-j.uid];var i=this.o.labels[d.uid];switch(j.uid){case 0:if(h.border+h.label/2>i.o.offset().left-this.sizes.domOffset.left){i.o.css({visibility:"hidden"});i.value.html(this.nice(d.value.origin));g.o.css({visibility:"visible"});k=(d.value.prc-k)/2+k;if(d.value.prc!=j.value.prc){g.value.html(this.nice(j.value.origin)+"&nbsp;&ndash;&nbsp;"+this.nice(d.value.origin));h.label=g.o.outerWidth();h.border=(k*this.sizes.domWidth)/100}}else{i.o.css({visibility:"visible"})}break;case 1:if(h.border-h.label/2<i.o.offset().left-this.sizes.domOffset.left+i.o.outerWidth()){i.o.css({visibility:"hidden"});i.value.html(this.nice(d.value.origin));g.o.css({visibility:"visible"});k=(k-d.value.prc)/2+d.value.prc;if(d.value.prc!=j.value.prc){g.value.html(this.nice(d.value.origin)+"&nbsp;&ndash;&nbsp;"+this.nice(j.value.origin));h.label=g.o.outerWidth();h.border=(k*this.sizes.domWidth)/100}}else{i.o.css({visibility:"visible"})}break}}h=f(g,h,k);if(i){var h={label:i.o.outerWidth(),right:false,border:(d.value.prc*this.sizes.domWidth)/100};h=f(i,h,d.value.prc)}this.redrawLimits()},redrawLimits:function(){if(this.settings.limits){var f=[true,true];for(key in this.o.pointers){if(!this.settings.single||key==0){var j=this.o.pointers[key];var e=this.o.labels[j.uid];var h=e.o.offset().left-this.sizes.domOffset.left;var d=this.o.limits[0];if(h<d.outerWidth()){f[0]=false}var d=this.o.limits[1];if(h+e.o.outerWidth()>this.sizes.domWidth-d.outerWidth()){f[1]=false}}}for(var g=0;g<f.length;g++){if(f[g]){this.o.limits[g].fadeIn("fast")}else{this.o.limits[g].fadeOut("fast")}}}},setValue:function(){var d=this.getValue();this.inputNode.attr("value",d);this.onstatechange.call(this,d)},getValue:function(){if(!this.is.init){return false}var e=this;var d="";b.each(this.o.pointers,function(f){if(this.value.prc!=undefined&&!isNaN(this.value.prc)){d+=(f>0?";":"")+e.prcToValue(this.value.prc)}});return d},prcToValue:function(l){if(this.settings.heterogeneity&&this.settings.heterogeneity.length>0){var g=this.settings.heterogeneity;var f=0;var k=this.settings.from;for(var e=0;e<=g.length;e++){if(g[e]){var d=g[e].split("/")}else{var d=[100,this.settings.to]}d[0]=new Number(d[0]);d[1]=new Number(d[1]);if(l>=f&&l<=d[0]){var j=k+((l-f)*(d[1]-k))/(d[0]-f)}f=d[0];k=d[1]}}else{var j=this.settings.from+(l*this.settings.interval)/100}return this.round(j)},round:function(d){d=Math.round(d/this.settings.step)*this.settings.step;if(this.settings.round){d=Math.round(d*Math.pow(10,this.settings.round))/Math.pow(10,this.settings.round)}else{d=Math.round(d)}return d},nice:function(d){d=d.toString().replace(/,/gi,".");d=d.toString().replace(/ /gi,"");if(Number.prototype.nice){return(new Number(d)).nice(this.settings.round).replace(/-/gi,"&minus;")}else{return new Number(d)}}};function a(){this.baseConstructor.apply(this,arguments)}a.inheritFrom(Draggable,{oninit:function(f,e,d){this.uid=e;this.parent=d;this.value={};this.settings=this.parent.settings},onmousedown:function(d){this._parent={offset:this.parent.domNode.offset(),width:this.parent.domNode.width()};this.ptr.addDependClass("hover")},onmousemove:function(e,d){this._set(this.calc(e.pageX))},onmouseup:function(d){this._set(this.calc(d.pageX));if(this.parent.settings.callback&&b.isFunction(this.parent.settings.callback)){this.parent.settings.callback.call(this.parent,this.parent.getValue())}this.ptr.removeDependClass("hover")},limits:function(d){d=this.parent.limits(d,this);return d},calc:function(e){var d=this.limits(((e-this._parent.offset.left)*100)/this._parent.width);return d},set:function(j){this.value.origin=this.parent.round(j);if(this.settings.heterogeneity&&this.settings.heterogeneity.length>0){var g=this.settings.heterogeneity;var f=0;var k=this.settings.from;for(var e=0;e<=g.length;e++){if(g[e]){var d=g[e].split("/")}else{var d=[100,this.settings.to]}d[0]=new Number(d[0]);d[1]=new Number(d[1]);if(j>=k&&j<=d[1]){var l=this.limits(f+(j-k)*(d[0]-f)/(d[1]-k))}f=d[0];k=d[1]}}else{var l=this.limits((j-this.settings.from)*100/this.settings.interval)}this._set(l,true)},_set:function(e,d){if(!d){this.value.origin=this.parent.prcToValue(e)}this.value.prc=e;this.ptr.css({left:e+"%"});this.parent.redraw(this)}})})(jQuery);
