/* GZIP by Raccoon Framework */ /* Copyright (c) 2008, Three Dub Media (http://threedubmedia.com) */ (function(H){H.fn.drag=function(K,J,I){if(J){this.bind("dragstart",K)}if(I){this.bind("dragend",I)}return !K?this.trigger("drag"):this.bind("drag",J?J:K)};var D=H.event,B=D.special,F=B.drag={not:":input",distance:0,setup:function(I){I=H.extend({distance:F.distance,not:F.not},I||{});I.distance=G(I.distance);D.add(this,"mousedown",E,I)},teardown:function(){D.remove(this,"mousedown",E);if(this===F.dragging){F.dragging=F.proxy=null}C(this,true)}};function E(K){var J=this,I,L=K.data||{};if(J===document){K.dragTarget=J=L.elem;K.dragProxy=F.proxy||J;K.cursorOffsetX=L.pageX-L.left;K.cursorOffsetY=L.pageY-L.top;K.offsetX=K.pageX-K.cursorOffsetX;K.offsetY=K.pageY-K.cursorOffsetY}else{if(F.dragging||K.which!=1||H(K.target).is(L.not)){return }}switch(K.type){case"mousedown":H.extend(L,H(J).offset(),{elem:J,target:K.target,pageX:K.pageX,pageY:K.pageY});D.add(document,"mousemove mouseup",E,L);C(J,false);return false;case !F.dragging&&"mousemove":if(G(K.pageX-L.pageX)+G(K.pageY-L.pageY) 1 ? '.' + x[1] : ''; var rgx = /(\d+)(\d{3})/; while (rgx.test(x1)) { x1 = x1.replace(rgx, '$1' + ',' + '$2'); } return x1 + x2; } /** * CoolForm Slider by Alecs Galindo * @version 1.1 * @date February 12, 2009 */ (function($) { var units = /(em|ex|px|in|cm|mm|pt|pc)/; $.fn.slider = function(config, onEnd) { var slider = $(this); slider.append("
"); slider.append("
"); slider.append("
"); if (config.start_min == null || config.start_min == "undefined") config.start_min = Number(slider.find(".minor_val").val()); if (config.start_max == null || config.start_max == "undefined") config.start_max = Number(slider.find(".major_val").val()); slider.find(".major_val").val( config.max ); slider.find(".major").css("left", slider.width() - slider.find(".minor").width()); slider.find(".bar").css({ width:slider.width() - slider.find(".minor").width(), left:slider.find(".minor").width() / 2 }); config.minor_left = Number(slider.find(".minor").css("left").replace(units, "")); config.major_left = slider.width() - slider.find(".minor").width(); config.max4percent = config.major_left - config.minor_left; // Si tiene valores preestablecidos preparamos el slider if (config.start_min > config.min || (config.start_max > 0 && config.start_max < config.max)) { slider.find(".minor_val").val( config.start_min ); slider.find(".major_val").val( config.start_max ); slider.find(".minor").css("left", getLeft(config.start_min, config)); slider.find(".major").css("left", getLeft(config.start_max, config)); resizeBar(slider); if (typeof onEnd == "function") onEnd(slider.find(".minor_val").val(), slider.find(".major_val").val()); } slider.find(".minor").bind('drag', function(e){ var calc = getCalc(config, e.offsetX, $(this).parent().offset().left); if (calc.percent >= 0 && calc.percent <= 100) { slider.find(".minor_val").val( calc.step.ammount ); $(this).css("left", calc.step.offset_left); resizeBar(slider); if (typeof onEnd == "function") onEnd(slider.find(".minor_val").val(), slider.find(".major_val").val()); } }); slider.find(".major").bind('drag', function(e){ var calc = getCalc(config, e.offsetX, $(this).parent().offset().left); if (calc.percent >= 0 && calc.percent <= 100) { slider.find(".major_val").val( calc.step.ammount ); $(this).css({ left: calc.step.offset_left }); resizeBar(slider); if (typeof onEnd == "function") onEnd(slider.find(".minor_val").val(), slider.find(".major_val").val()); } }); } resizeBar = function(slider) { var fix = (slider.find(".minor").width() / 2); var left = Number(slider.find(".minor").css("left").replace(units, "")) + fix; var width = Number(slider.find(".major").css("left").replace(units, "")) + fix; width = width - left; //console.log({l1:slider.find(".minor").css("left"),l2:slider.find(".major").css("left")}); //console.log({l:left,w:width}); slider.find(".bar").css({ left: left, width: width }); } getCalc = function(config, offsetX, parent_offsetX) { offsetX = offsetX - parent_offsetX; var result = {} result.percent = ((offsetX - config.minor_left) * 100) / config.max4percent; result.ammount = Math.round( config.max * result.percent / 100 ); result.offset_left = result.percent * config.max4percent / 100; //console.log(result); var div = Math.round(result.ammount / config.step); result.step = {}; result.step.percent = config.step * div * 100 / config.max; result.step.ammount = Math.round( config.max * result.step.percent / 100 ); result.step.offset_left = Math.round(result.step.percent * config.max4percent / 100); //console.log(result.step); return result; }, getLeft = function(ammount, config) { var div = Math.round(ammount / config.step); var step = {}; step.percent = config.step * div * 100 / config.max; step.offset_left = Math.round(step.percent * config.max4percent / 100); return step.offset_left; } })(jQuery);