/** * @preserve Copyright Shareaholic, Inc. (www.shareaholic.com). All Rights Reserved. */ jQuery(document).ready(function() { if (jQuery('#iconator')) jQuery('#shrsb-networks').sortable({ delay: 250, cursor: 'move', scroll: true, revert: true, opacity: 0.7, placeholder: 'dropzoneNetworks', forcePlaceholderSize: true, items: 'li' }); if (jQuery('.shrsb-bookmarks')) { jQuery('#shrsb-sortables').sortable({ handle: '.box-mid-head', delay: 250, cursor: 'move', scroll: true, revert: true, opacity: 0.7 }); jQuery('#buttonPreviewsTop,#buttonPreviewsBottom').sortable({ delay: 250, cursor: 'move', scroll: true, revert: true, opacity: 0.7, placeholder: 'dropzone', forcePlaceholderSize: true, items: 'li' }); //Select all icons upon clicking jQuery('#sel-all').click(function() { jQuery('#shrsb-networks').each(function() { jQuery('#shrsb-networks input').attr('checked', 'checked'); }); }); //Deselect all icons upon clicking jQuery('#sel-none').click(function() { jQuery('#shrsb-networks').each(function() { jQuery('#shrsb-networks input').removeAttr('checked'); }); }); //Select most popular icons upon clicking jQuery('#sel-pop').click(function() { jQuery('#shrsb-networks').each(function() { jQuery('#shrsb-networks input').removeAttr('checked'); }); jQuery('#shrsb-networks').each(function() { jQuery('#shr-facebook').attr('checked', 'checked'); jQuery('#shr-twitter').attr('checked', 'checked'); jQuery('#shr-linkedin').attr('checked', 'checked'); jQuery('#shr-googlebookmarks').attr('checked', 'checked'); jQuery('#shr-delicious').attr('checked', 'checked'); jQuery('#shr-stumbleupon').attr('checked', 'checked'); jQuery('#shr-reddit').attr('checked', 'checked'); jQuery('#shr-gmail').attr('checked', 'checked'); jQuery('#shr-mail').attr('checked', 'checked'); jQuery('#shr-printfriendly').attr('checked', 'checked'); }); }); //Swap enabled/disabled between donation options onclick jQuery('#preset-amounts').parent('label').click(function() { jQuery('#custom-amounts').attr('disabled', 'disabled').css({'cursor':'none'}); jQuery('#preset-amounts').removeAttr('disabled'); }); //Swap enabled/disabled between donation options onclick jQuery('#custom-amounts').parent('label').click(function() { jQuery('#preset-amounts').attr('disabled', 'disabled').css({'cursor':'none'}); jQuery('#custom-amounts').removeAttr('disabled'); }); // Handle tiny form submission upon selecting option to hide sponsor messages jQuery('#hide-sponsors').click(function() { jQuery('#no-sponsors').submit(); }); // Create a universal click function to close status messages... jQuery('.del-x').click(function() { jQuery(this).parent('div').parent('div').fadeOut(); }); // if checkbox isn't already checked, open warning message... jQuery("#custom-mods").click(function() { if(jQuery(this).is(":not(:checked)")) { jQuery("#custom-mods-notice").css("display", "none"); } else { jQuery("#custom-mods-notice").fadeIn("fast"); jQuery("#custom-mods-notice").css("display", "table"); } }); // close custom mods warning when they click the X jQuery(".custom-mods-notice-close").click(function() { jQuery("#custom-mods-notice").fadeOut('fast'); }); // Apply "smart options" to BG image jQuery('#bgimg-yes').click(function() { if(jQuery(this).is(':checked')) { jQuery('#bgimgs').fadeIn('slow'); } else { jQuery('#bgimgs').css('display', 'none'); } }); // Apply "smart options" to Twitter jQuery('#shr-twitter').click(function() { if (jQuery(this).attr('checked')) { jQuery('#twitter-defaults').fadeIn('fast'); } else { jQuery('#twitter-defaults').fadeOut(); } }); jQuery('#shorty').change(function() { jQuery('#shortyapimdiv-bitly').fadeOut('fast'); jQuery('#shortyapimdiv-supr').fadeOut('fast'); jQuery('#shortyapimdiv-jmp').fadeOut('fast'); if(this.value=='bitly'){ jQuery('#shortyapimdiv-bitly').fadeIn('fast'); } else if(this.value=='supr'){ jQuery('#shortyapimdiv-supr').fadeIn('fast'); } else if(this.value=='jmp'){ jQuery('#shortyapimdiv-jmp').fadeIn('fast'); } }); jQuery('#shortyapichk-supr').click(function() { if (this.checked) { jQuery('#shortyapidiv-supr').fadeIn('fast'); } else { jQuery('#shortyapidiv-supr').fadeOut('fast'); } }); jQuery('#likeButtonSetTop-yes').click(function() { if (this.checked) { jQuery('.likeButtonsAvailableTop').fadeIn('fast'); } }); jQuery('#likeButtonSetTop-no').click(function() { if (this.checked) { jQuery('.likeButtonsAvailableTop').fadeOut('fast'); } }); jQuery('#likeButtonSetBottom-yes').click(function() { if (this.checked) { jQuery('.likeButtonsAvailableBottom').fadeIn('fast'); } }); jQuery('#likeButtonSetBottom-no').click(function() { if (this.checked) { jQuery('.likeButtonsAvailableBottom').fadeOut('fast'); } }); jQuery('#fbLikeButtonTop-yes').click(function() { if (this.checked) { jQuery('.likebuttonpreviewTop').fadeIn('fast'); } }); jQuery('#fbLikeButtonBottom-yes').click(function() { if (this.checked) { jQuery('.likebuttonpreviewBottom').fadeIn('fast'); } }); jQuery('#fbLikeButtonTop-no').click(function() { if (this.checked) { jQuery('.likebuttonpreviewTop').fadeOut('fast'); } }); jQuery('#fbLikeButtonBottom-no').click(function() { if (this.checked) { jQuery('.likebuttonpreviewBottom').fadeOut('fast'); } }); jQuery('#fbSendButtonBottom-yes').click(function() { if (this.checked) { jQuery('.sendbuttonpreviewBottom').fadeIn('fast'); } }); jQuery('#fbSendButtonTop-yes').click(function() { if (this.checked) { jQuery('.sendbuttonpreviewTop').fadeIn('fast'); } }); jQuery('#fbSendButtonTop-no').click(function() { if (this.checked) { jQuery('.sendbuttonpreviewTop').fadeOut('fast'); } }); jQuery('#fbSendButtonBottom-no').click(function() { if (this.checked) { jQuery('.sendbuttonpreviewBottom').fadeOut('fast'); } }); jQuery('#googlePlusOneButtonTop-yes').click(function() { if (this.checked) { jQuery('.plusonepreviewTop').fadeIn('fast'); } }); jQuery('#googlePlusOneButtonTop-no').click(function() { if (this.checked) { jQuery('.plusonepreviewTop').fadeOut('fast'); } }); jQuery('#googlePlusOneButtonBottom-yes').click(function() { if (this.checked) { jQuery('.plusonepreviewBottom').fadeIn('fast'); } }); jQuery('#googlePlusOneButtonBottom-no').click(function() { if (this.checked) { jQuery('.plusonepreviewBottom').fadeOut('fast'); } }); jQuery('#fbLikeButtonTop-yes,#googlePlusOneButtonTop-yes,#fbSendButtonTop-yes').click(function() { if (this.checked) { jQuery('.likeButtonSetOptionsTop').fadeIn('fast'); } }); jQuery('#fbLikeButtonBottom-yes,#googlePlusOneButtonBottom-yes,#fbSendButtonBottom-yes').click(function() { if (this.checked) { jQuery('.likeButtonSetOptionsBottom').fadeIn('fast'); } }); jQuery('#fbLikeButtonTop-no,#googlePlusOneButtonTop-no,#fbSendButtonTop-no').click(function() { if(jQuery('#fbLikeButtonTop-no').get(0).checked && jQuery('#googlePlusOneButtonTop-no').get(0).checked && jQuery('#fbSendButtonTop-no').get(0).checked) { jQuery('.likeButtonSetOptionsTop').fadeOut('fast'); } }); jQuery('#fbLikeButtonBottom-no,#googlePlusOneButtonBottom-no,#fbSendButtonBottom-no').click(function() { if(jQuery('#fbLikeButtonBottom-no').get(0).checked && jQuery('#googlePlusOneButtonBottom-no').get(0).checked && jQuery('#fbSendButtonBottom-no').get(0).checked) { jQuery('.likeButtonSetOptionsBottom').fadeOut('fast'); } }); jQuery('#designer_toolTips-yes').click(function() { if (this.checked) { jQuery('.designer_toolTip_prefs').fadeIn('fast'); } }); jQuery('#designer_toolTips-no').click(function() { if (this.checked) { jQuery('.designer_toolTip_prefs').fadeOut('fast'); } }); jQuery('#position-above').click(function() { if (jQuery('#info-manual').is(':visible')) { jQuery('#info-manual').fadeOut(); } }); jQuery('#position-below').click(function() { if (jQuery('#info-manual').is(':visible')) { jQuery('#info-manual').fadeOut(); } }); jQuery('#position-manual').click(function() { if (jQuery('#info-manual').is(':not(:visible)')) { jQuery('#info-manual').fadeIn('slow'); } }); jQuery('.dtags-info').click(function() { jQuery('#tag-info').fadeIn('fast'); }); jQuery('.dtags-close').click(function() { jQuery('#tag-info').fadeOut(); }); jQuery('.shebang-info').click(function() { jQuery('#info-manual').fadeIn('fast'); }); jQuery('#shrsbresetallwarn-cancel').click(function() { jQuery('#shrsbresetallwarn').fadeOut(); }); jQuery('#shrsbresetallwarn-yes').click(function() { this.checked=jQuery('#shrsbresetallwarn').fadeOut(); this.checked=jQuery('#resetalloptionsaccept').submit(); this.checked=!this.checked; }); // Load character count and tweet output demo onload var dfaultload = 0; var dfaulttitle = 8; var dfaulturl = 13; if(jQuery("#tweetconfig").val().indexOf('${title}')!=-1) { dfaultload = Math.floor(dfaultload + dfaulttitle); } if(jQuery("#tweetconfig").val().indexOf('${short_link}')!=-1) { dfaultload = Math.floor(dfaultload + dfaulturl); } var mathdoneload = Math.floor(jQuery('#tweetconfig').val().length - dfaultload); if(mathdoneload >= 50) { jQuery('#tweetcounter span').addClass('error'); } else { jQuery('#tweetcounter span').removeClass(); } jQuery('#tweetcounter span').html(mathdoneload); var endvalueload = jQuery('#tweetconfig').val(); endvalueload = endvalueload.replace('${title}', 'Some fancy post title'); endvalueload = endvalueload.replace('${short_link}', 'http://goo.gl/dbqlx'); var endtweetload = endvalueload; jQuery('#tweetoutput span').html(endtweetload); jQuery('#tweetconfig').keyup(function() { var dfaults = 0; var title = 8; var url = 13; if(jQuery("#tweetconfig").val().indexOf('${title}')!=-1) { dfaults = Math.floor(dfaults + title); } if(jQuery("#tweetconfig").val().indexOf('${short_link}')!=-1) { dfaults = Math.floor(dfaults + url); } var mathdone = Math.floor(jQuery(this).val().length - dfaults); if(mathdone >= 50) { jQuery('#tweetcounter span').addClass('error'); alert("You need to leave room for the short URL and/or post title..."); return false; } else { jQuery('#tweetcounter span').removeClass(); } jQuery('#tweetcounter span').html(mathdone); var endvalue = jQuery(this).val(); endvalue = endvalue.replace('${title}', 'Some fancy post title'); endvalue = endvalue.replace('${short_link}', 'http://goo.gl/dbqlx'); var endtweet = endvalue; jQuery('#tweetoutput span').html(endtweet); }); // Check if like button is included and show the position prefs //var likeBtnChecked = jQuery('#fbLikeButton-yes').get(0).checked || jQuery('#googlePlusOneButton-yes').get(0).checked || jQuery('#fbSendButton-yes').get(0).checked; if (jQuery('#likeButtonSetTop-yes').get(0).checked) { jQuery('.likeButtonsAvailableTop').fadeIn('fast'); } if (jQuery('#likeButtonSetBottom-yes').get(0).checked) { jQuery('.likeButtonsAvailableBottom').fadeIn('fast'); } if(jQuery('#fbLikeButtonTop-yes').get(0).checked || jQuery('#googlePlusOneButtonTop-yes').get(0).checked || jQuery('#fbSendButtonTop-yes').get(0).checked) { jQuery('.likeButtonSetOptionsTop').fadeIn('fast'); } if(jQuery('#fbLikeButtonBottom-yes').get(0).checked || jQuery('#googlePlusOneButtonBottom-yes').get(0).checked || jQuery('#fbSendButtonBottom-yes').get(0).checked) { jQuery('.likeButtonSetOptionsBottom').fadeIn('fast'); } if(jQuery('#fbLikeButtonTop-yes').get(0).checked) { jQuery('.likebuttonpreviewTop').fadeIn('fast'); } if(jQuery('#fbLikeButtonBottom-yes').get(0).checked) { jQuery('.likebuttonpreviewBottom').fadeIn('fast'); } if(jQuery('#fbSendButtonTop-yes').get(0).checked) { jQuery('.sendbuttonpreviewTop').fadeIn('fast'); } if(jQuery('#fbSendButtonBottom-yes').get(0).checked) { jQuery('.sendbuttonpreviewBottom').fadeIn('fast'); } if(jQuery('#googlePlusOneButtonTop-yes').get(0).checked) { jQuery('.plusonepreviewTop').fadeIn('fast'); } if(jQuery('#googlePlusOneButtonBottom-yes').get(0).checked) { jQuery('.plusonepreviewBottom').fadeIn('fast'); } // Check if designer tooltips are included and show the color prefs var designerToolTipsChecked = jQuery('#designer_toolTips-yes').get(0).checked; if (designerToolTipsChecked) { jQuery('.designer_toolTip_prefs').fadeIn('fast'); } jQuery('#tip_bg_color_picker_holder').ColorPicker({ flat: true, color: jQuery("#tip_bg_color").val(), onChange : function(hsb, hex, rgb, el) { jQuery("#tip_bg_color").val('#' + hex); jQuery('#tip_bg_color_picker div').css('backgroundColor', '#' + hex); }, onSubmit: function(hsb, hex, rgb, el) { jQuery("#tip_bg_color").val('#' + hex); jQuery('#tip_bg_color_picker div').css('backgroundColor', '#' + hex); jQuery('#tip_bg_color_picker_holder').toggle(); } }); // The below lines are to prevent a nasty input form control not focussable error in chrome/safari jQuery('#tip_bg_color_picker_holder').find('input').each(function(index) { jQuery(this).attr("maxlength","50") ; }); jQuery('#tip_bg_color_picker div').bind('click', function() { jQuery('#tip_bg_color_picker_holder').toggle(); jQuery('#tip_bg_color_picker_holder').ColorPickerSetColor(jQuery("#tip_bg_color").val()); // Attach click handler to the body to hide the color picker (if visible) for clicks outside the color picker jQuery('body').trigger('click'); if(jQuery('#tip_bg_color_picker_holder').is(':visible')) { jQuery('body').bind("click",function () { jQuery('#tip_bg_color_picker_holder').hide(); jQuery('body').unbind("click"); }); } return false; }); jQuery('#tip_bg_color_reset').bind('click', function() { jQuery("#tip_bg_color").val('#000000'); jQuery('#tip_bg_color_picker div').css('backgroundColor', '#000000'); }); // Prevent the body click handler from firing if the click is inside the color picker jQuery('#tip_bg_color_picker_holder').click(function() { return false;}); jQuery('#tip_text_color_picker_holder').ColorPicker({ flat: true, color: jQuery("#tip_text_color").val(), onChange : function(hsb, hex, rgb, el) { jQuery("#tip_text_color").val('#' + hex); jQuery('#tip_text_color_picker div').css('backgroundColor', '#' + hex); }, onSubmit: function(hsb, hex, rgb, el) { jQuery("#tip_text_color").val('#' + hex); jQuery('#tip_text_color_picker div').css('backgroundColor', '#' + hex); jQuery('#tip_text_color_picker_holder').toggle(); } }); // The below lines are to prevent a nasty input form control not focussable error in chrome/safari jQuery('#tip_text_color_picker_holder').find('input').each(function(index) { jQuery(this).attr("maxlength","50") ; }); jQuery('#tip_text_color_picker div').bind('click', function() { jQuery('#tip_text_color_picker_holder').toggle(); jQuery('#tip_text_color_picker_holder').ColorPickerSetColor(jQuery("#tip_text_color").val()); // Attach click handler to the body to hide the color picker (if visible) for clicks outside the color picker jQuery('body').trigger('click'); if(jQuery('#tip_text_color_picker_holder').is(':visible')) { jQuery('body').bind("click",function () { jQuery('#tip_text_color_picker_holder').hide(); jQuery('body').unbind("click"); }); } return false; }); // Prevent the body click handler from firing if the click is inside the color picker jQuery('#tip_text_color_picker_holder').click(function() { return false;}); jQuery('#tip_text_color_reset').bind('click', function() { jQuery("#tip_text_color").val('#ffffff'); jQuery('#tip_text_color_picker div').css('backgroundColor', '#ffffff'); }); }}); /** * * Color picker * Author: Stefan Petre www.eyecon.ro * * Dual licensed under the MIT and GPL licenses * */ (function($){var ColorPicker=function(){var ids={},inAction,charMin=65,visible,tpl='
',defaults={eventName:'click',onShow:function(){},onBeforeShow:function(){},onHide:function(){},onChange:function(){},onSubmit:function(){},color:'ff0000',livePreview:true,flat:false},fillRGBFields=function(hsb,cal){var rgb=HSBToRGB(hsb);$(cal).data('colorpicker').fields.eq(1).val(rgb.r).end().eq(2).val(rgb.g).end().eq(3).val(rgb.b).end();},fillHSBFields=function(hsb,cal){$(cal).data('colorpicker').fields.eq(4).val(hsb.h).end().eq(5).val(hsb.s).end().eq(6).val(hsb.b).end();},fillHexFields=function(hsb,cal){$(cal).data('colorpicker').fields.eq(0).val(HSBToHex(hsb)).end();},setSelector=function(hsb,cal){$(cal).data('colorpicker').selector.css('backgroundColor','#'+HSBToHex({h:hsb.h,s:100,b:100}));$(cal).data('colorpicker').selectorIndic.css({left:parseInt(150*hsb.s/100,10),top:parseInt(150*(100-hsb.b)/100,10)});},setHue=function(hsb,cal){$(cal).data('colorpicker').hue.css('top',parseInt(150-150*hsb.h/360,10));},setCurrentColor=function(hsb,cal){$(cal).data('colorpicker').currentColor.css('backgroundColor','#'+HSBToHex(hsb));},setNewColor=function(hsb,cal){$(cal).data('colorpicker').newColor.css('backgroundColor','#'+HSBToHex(hsb));},keyDown=function(ev){var pressedKey=ev.charCode||ev.keyCode||-1;if((pressedKey>charMin&&pressedKey<=90)||pressedKey==32){return false;} var cal=$(this).parent().parent();if(cal.data('colorpicker').livePreview===true){change.apply(this);}},change=function(ev){var cal=$(this).parent().parent(),col;if(this.parentNode.className.indexOf('_hex')>0){cal.data('colorpicker').color=col=HexToHSB(fixHex(this.value));}else if(this.parentNode.className.indexOf('_hsb')>0){cal.data('colorpicker').color=col=fixHSB({h:parseInt(cal.data('colorpicker').fields.eq(4).val(),10),s:parseInt(cal.data('colorpicker').fields.eq(5).val(),10),b:parseInt(cal.data('colorpicker').fields.eq(6).val(),10)});}else{cal.data('colorpicker').color=col=RGBToHSB(fixRGB({r:parseInt(cal.data('colorpicker').fields.eq(1).val(),10),g:parseInt(cal.data('colorpicker').fields.eq(2).val(),10),b:parseInt(cal.data('colorpicker').fields.eq(3).val(),10)}));} if(ev){fillRGBFields(col,cal.get(0));fillHexFields(col,cal.get(0));fillHSBFields(col,cal.get(0));} setSelector(col,cal.get(0));setHue(col,cal.get(0));setNewColor(col,cal.get(0));cal.data('colorpicker').onChange.apply(cal,[col,HSBToHex(col),HSBToRGB(col)]);},blur=function(ev){var cal=$(this).parent().parent();cal.data('colorpicker').fields.parent().removeClass('colorpicker_focus');},focus=function(){charMin=this.parentNode.className.indexOf('_hex')>0?70:65;$(this).parent().parent().data('colorpicker').fields.parent().removeClass('colorpicker_focus');$(this).parent().addClass('colorpicker_focus');},downIncrement=function(ev){var field=$(this).parent().find('input').focus();var current={el:$(this).parent().addClass('colorpicker_slider'),max:this.parentNode.className.indexOf('_hsb_h')>0?360:(this.parentNode.className.indexOf('_hsb')>0?100:255),y:ev.pageY,field:field,val:parseInt(field.val(),10),preview:$(this).parent().parent().data('colorpicker').livePreview};$(document).bind('mouseup',current,upIncrement);$(document).bind('mousemove',current,moveIncrement);},moveIncrement=function(ev){ev.data.field.val(Math.max(0,Math.min(ev.data.max,parseInt(ev.data.val+ev.pageY-ev.data.y,10))));if(ev.data.preview){change.apply(ev.data.field.get(0),[true]);} return false;},upIncrement=function(ev){change.apply(ev.data.field.get(0),[true]);ev.data.el.removeClass('colorpicker_slider').find('input').focus();$(document).unbind('mouseup',upIncrement);$(document).unbind('mousemove',moveIncrement);return false;},downHue=function(ev){var current={cal:$(this).parent(),y:$(this).offset().top};current.preview=current.cal.data('colorpicker').livePreview;$(document).bind('mouseup',current,upHue);$(document).bind('mousemove',current,moveHue);},moveHue=function(ev){change.apply(ev.data.cal.data('colorpicker').fields.eq(4).val(parseInt(360*(150-Math.max(0,Math.min(150,(ev.pageY-ev.data.y))))/150,10)).get(0),[ev.data.preview]);return false;},upHue=function(ev){fillRGBFields(ev.data.cal.data('colorpicker').color,ev.data.cal.get(0));fillHexFields(ev.data.cal.data('colorpicker').color,ev.data.cal.get(0));$(document).unbind('mouseup',upHue);$(document).unbind('mousemove',moveHue);return false;},downSelector=function(ev){var current={cal:$(this).parent(),pos:$(this).offset()};current.preview=current.cal.data('colorpicker').livePreview;$(document).bind('mouseup',current,upSelector);$(document).bind('mousemove',current,moveSelector);},moveSelector=function(ev){change.apply(ev.data.cal.data('colorpicker').fields.eq(6).val(parseInt(100*(150-Math.max(0,Math.min(150,(ev.pageY-ev.data.pos.top))))/150,10)).end().eq(5).val(parseInt(100*(Math.max(0,Math.min(150,(ev.pageX-ev.data.pos.left))))/150,10)).get(0),[ev.data.preview]);return false;},upSelector=function(ev){fillRGBFields(ev.data.cal.data('colorpicker').color,ev.data.cal.get(0));fillHexFields(ev.data.cal.data('colorpicker').color,ev.data.cal.get(0));$(document).unbind('mouseup',upSelector);$(document).unbind('mousemove',moveSelector);return false;},enterSubmit=function(ev){$(this).addClass('colorpicker_focus');},leaveSubmit=function(ev){$(this).removeClass('colorpicker_focus');},clickSubmit=function(ev){var cal=$(this).parent();var col=cal.data('colorpicker').color;cal.data('colorpicker').origColor=col;setCurrentColor(col,cal.get(0));cal.data('colorpicker').onSubmit(col,HSBToHex(col),HSBToRGB(col),cal.data('colorpicker').el);},show=function(ev){var cal=$('#'+$(this).data('colorpickerId'));cal.data('colorpicker').onBeforeShow.apply(this,[cal.get(0)]);var pos=$(this).offset();var viewPort=getViewport();var top=pos.top+this.offsetHeight;var left=pos.left;if(top+176>viewPort.t+viewPort.h){top-=this.offsetHeight+176;} if(left+356>viewPort.l+viewPort.w){left-=356;} cal.css({left:left+'px',top:top+'px'});if(cal.data('colorpicker').onShow.apply(this,[cal.get(0)])!=false){cal.show();} $(document).bind('mousedown',{cal:cal},hide);return false;},hide=function(ev){if(!isChildOf(ev.data.cal.get(0),ev.target,ev.data.cal.get(0))){if(ev.data.cal.data('colorpicker').onHide.apply(this,[ev.data.cal.get(0)])!=false){ev.data.cal.hide();} $(document).unbind('mousedown',hide);}},isChildOf=function(parentEl,el,container){if(parentEl==el){return true;} if(parentEl.contains){return parentEl.contains(el);} if(parentEl.compareDocumentPosition){return!!(parentEl.compareDocumentPosition(el)&16);} var prEl=el.parentNode;while(prEl&&prEl!=container){if(prEl==parentEl) return true;prEl=prEl.parentNode;} return false;},getViewport=function(){var m=document.compatMode=='CSS1Compat';return{l:window.pageXOffset||(m?document.documentElement.scrollLeft:document.body.scrollLeft),t:window.pageYOffset||(m?document.documentElement.scrollTop:document.body.scrollTop),w:window.innerWidth||(m?document.documentElement.clientWidth:document.body.clientWidth),h:window.innerHeight||(m?document.documentElement.clientHeight:document.body.clientHeight)};},fixHSB=function(hsb){return{h:Math.min(360,Math.max(0,hsb.h)),s:Math.min(100,Math.max(0,hsb.s)),b:Math.min(100,Math.max(0,hsb.b))};},fixRGB=function(rgb){return{r:Math.min(255,Math.max(0,rgb.r)),g:Math.min(255,Math.max(0,rgb.g)),b:Math.min(255,Math.max(0,rgb.b))};},fixHex=function(hex){var len=6-hex.length;if(len>0){var o=[];for(var i=0;i-1)?hex.substring(1):hex),16);return{r:hex>>16,g:(hex&0x00FF00)>>8,b:(hex&0x0000FF)};},HexToHSB=function(hex){return RGBToHSB(HexToRGB(hex));},RGBToHSB=function(rgb){var hsb={h:0,s:0,b:0};var min=Math.min(rgb.r,rgb.g,rgb.b);var max=Math.max(rgb.r,rgb.g,rgb.b);var delta=max-min;hsb.b=max;if(max!=0){} hsb.s=max!=0?255*delta/max:0;if(hsb.s!=0){if(rgb.r==max){hsb.h=(rgb.g-rgb.b)/delta;}else if(rgb.g==max){hsb.h=2+(rgb.b-rgb.r)/delta;}else{hsb.h=4+(rgb.r-rgb.g)/delta;}}else{hsb.h=-1;} hsb.h*=60;if(hsb.h<0){hsb.h+=360;} hsb.s*=100/255;hsb.b*=100/255;return hsb;},HSBToRGB=function(hsb){var rgb={};var h=Math.round(hsb.h);var s=Math.round(hsb.s*255/100);var v=Math.round(hsb.b*255/100);if(s==0){rgb.r=rgb.g=rgb.b=v;}else{var t1=v;var t2=(255-s)*v/255;var t3=(t1-t2)*(h%60)/60;if(h==360)h=0;if(h<60){rgb.r=t1;rgb.b=t2;rgb.g=t2+t3} else if(h<120){rgb.g=t1;rgb.b=t2;rgb.r=t1-t3} else if(h<180){rgb.g=t1;rgb.r=t2;rgb.b=t2+t3} else if(h<240){rgb.b=t1;rgb.r=t2;rgb.g=t1-t3} else if(h<300){rgb.b=t1;rgb.g=t2;rgb.r=t2+t3} else if(h<360){rgb.r=t1;rgb.g=t2;rgb.b=t1-t3} else{rgb.r=0;rgb.g=0;rgb.b=0}} return{r:Math.round(rgb.r),g:Math.round(rgb.g),b:Math.round(rgb.b)};},RGBToHex=function(rgb){var hex=[rgb.r.toString(16),rgb.g.toString(16),rgb.b.toString(16)];$.each(hex,function(nr,val){if(val.length==1){hex[nr]='0'+val;}});return hex.join('');},HSBToHex=function(hsb){return RGBToHex(HSBToRGB(hsb));},restoreOriginal=function(){var cal=$(this).parent();var col=cal.data('colorpicker').origColor;cal.data('colorpicker').color=col;fillRGBFields(col,cal.get(0));fillHexFields(col,cal.get(0));fillHSBFields(col,cal.get(0));setSelector(col,cal.get(0));setHue(col,cal.get(0));setNewColor(col,cal.get(0));};return{init:function(opt){opt=$.extend({},defaults,opt||{});if(typeof opt.color=='string'){opt.color=HexToHSB(opt.color);}else if(opt.color.r!=undefined&&opt.color.g!=undefined&&opt.color.b!=undefined){opt.color=RGBToHSB(opt.color);}else if(opt.color.h!=undefined&&opt.color.s!=undefined&&opt.color.b!=undefined){opt.color=fixHSB(opt.color);}else{return this;} return this.each(function(){if(!$(this).data('colorpickerId')){var options=$.extend({},opt);options.origColor=opt.color;var id='collorpicker_'+parseInt(Math.random()*1000);$(this).data('colorpickerId',id);var cal=$(tpl).attr('id',id);if(options.flat){cal.appendTo(this).show();}else{cal.appendTo(document.body);} options.fields=cal.find('input').bind('keyup',keyDown).bind('change',change).bind('blur',blur).bind('focus',focus);cal.find('span').bind('mousedown',downIncrement).end().find('>div.colorpicker_current_color').bind('click',restoreOriginal);options.selector=cal.find('div.colorpicker_color').bind('mousedown',downSelector);options.selectorIndic=options.selector.find('div div');options.el=this;options.hue=cal.find('div.colorpicker_hue div');cal.find('div.colorpicker_hue').bind('mousedown',downHue);options.newColor=cal.find('div.colorpicker_new_color');options.currentColor=cal.find('div.colorpicker_current_color');cal.data('colorpicker',options);cal.find('div.colorpicker_submit').bind('mouseenter',enterSubmit).bind('mouseleave',leaveSubmit).bind('click',clickSubmit);fillRGBFields(options.color,cal.get(0));fillHSBFields(options.color,cal.get(0));fillHexFields(options.color,cal.get(0));setHue(options.color,cal.get(0));setSelector(options.color,cal.get(0));setCurrentColor(options.color,cal.get(0));setNewColor(options.color,cal.get(0));if(options.flat){cal.css({position:'relative',display:'block'});}else{$(this).bind(options.eventName,show);}}});},showPicker:function(){return this.each(function(){if($(this).data('colorpickerId')){show.apply(this);}});},hidePicker:function(){return this.each(function(){if($(this).data('colorpickerId')){$('#'+$(this).data('colorpickerId')).hide();}});},setColor:function(col){if(typeof col=='string'){col=HexToHSB(col);}else if(col.r!=undefined&&col.g!=undefined&&col.b!=undefined){col=RGBToHSB(col);}else if(col.h!=undefined&&col.s!=undefined&&col.b!=undefined){col=fixHSB(col);}else{return this;} return this.each(function(){if($(this).data('colorpickerId')){var cal=$('#'+$(this).data('colorpickerId'));cal.data('colorpicker').color=col;cal.data('colorpicker').origColor=col;fillRGBFields(col,cal.get(0));fillHSBFields(col,cal.get(0));fillHexFields(col,cal.get(0));setHue(col,cal.get(0));setSelector(col,cal.get(0));setCurrentColor(col,cal.get(0));setNewColor(col,cal.get(0));}});}};}();$.fn.extend({ColorPicker:ColorPicker.init,ColorPickerHide:ColorPicker.hidePicker,ColorPickerShow:ColorPicker.showPicker,ColorPickerSetColor:ColorPicker.setColor});})(jQuery); .