(function($){ $.adduserColor = function(t,p){ p = $.extend({ develop:false, // defaultColor:'', gradientPage:'include/gradient.php', // changetype:'', onShow:function(colpkr){}, onBeforeShow:function(elm){}, onChange:function(hsb, hex, rgb,div){ }, onSubmit:function(hsb, hex, rgb, elm){} }, p); /*DOM ids/classes*/ var v={ name:$(t).attr('name'), classId:$(t).attr('chclassid'), CssEle:$(t).attr('chCssEle'), hoverClassId:$(t).attr('hoverClassId'), hoverCssEle:$(t).attr('hoverCssElm'), dfColor:$(t).attr('dfColor'), color:$(t).attr('dfColor'), chGradient:$(t).attr('chGradient'), mouseBeforeColor:'' }; /*event*/ var e = { initAllEvent : function(){ //set init color var sessionColor=f.checkSessionColor(); if (sessionColor){ v.color=sessionColor; f.changeColorByClassId(v.classId,v.color,v.CssEle); f.setDivColor(t,v.color); } else if (v.dfColor){ f.changeColorByClassId(v.classId,v.dfColor,v.CssEle); f.setDivColor(t,v.dfColor); } if (p.defaultColor==''){ p.defaultColor=(!(v.dfColor))?'0000FF':v.dfColor; } if (p.develop) e.initTriggerColorPicker(); if (v.hoverClassId)f.sethoverTrigger(v.hoverClassId,v.hoverCssEle,v.CssEle); f.setColorAfterAjax(); }, initTriggerColorPicker: function(){ $(t).ColorPicker({ eventName:'click', color:p.defaultColor, onShow:function(colpkr){p.onShow(colpkr)}, onHide:function(a,b,hex,d){ f.setSessionColor(hex); f.changeColorByClassId(v.classId,hex,v.CssEle); }, onBeforeShow:function(t){p.onBeforeShow(t)}, onChange:function(hsb, hex, rgb,div){ v.color=hex; p.onChange(hsb, hex, rgb,div); f.setDivColor(div,hex); f.changeColorByClassId(v.classId,hex,v.CssEle,'onChange'); }, onSubmit:function(hsb, hex, rgb, el){ v.color=hex; p.onSubmit(hsb, hex, rgb, el); f.setSessionColor(hex); f.changeColorByClassId(v.classId,hex,v.CssEle); } }).show(); }, initDiv:function(){ } } /*frame funciton*/ var f = { checkSessionColor:function(){ var color=''; if ($.isFunction($.cookie)){ color=$.cookie(v.name); } return color; }, setSessionColor:function(hex){ if ($.isFunction($.cookie)){ $.cookie(v.name,hex); } }, setDivColor:function(elm,hex){ $(elm).css('background-color','#'+hex); }, setColorAfterAjax:function(){ $( document ).ajaxComplete(function() { f.changeColorByClassId(v.classId,v.color,v.CssEle); if (v.hoverClassId)f.sethoverTrigger(v.hoverClassId,v.hoverCssEle,v.CssEle); }); }, sethoverTrigger:function(classId,hoverCssEle,CssEle){ $(classId).each(function(i,e){ var cssElm=($(e).attr('hoverCss'))?$(e).attr('hoverCss'): (hoverCssEle)?hoverCssEle: ($(e).attr('chCss'))?$(e).attr('chCss'): defaultCssElm; $(e).hover( function(){ v.mouseBeforeColor=$(e).css(cssElm); $(e).css(cssElm,'#'+v.color); }, function(){ $(e).css(cssElm,v.mouseBeforeColor); } ) }).show(); }, changeColorByClassId:function(classId,hex,defaultCssElm,from){ $(classId).each(function(i,e){ var type=$(e).attr('changeType'); switch(type){ case 'gradient': if (from!='onChange') f.changeGradient(e,hex); break; default: f.cahngeColorByElm(e,hex,defaultCssElm); } }); }, cahngeColorByElm:function(elm,hex,defaultCssElm){ var cssElm=($(elm).attr('chCss'))?$(elm).attr('chCss'):defaultCssElm; if (cssElm=='background-color'&&$(elm).css('background-image')){$(elm).css('background-image','');} $(elm).css(cssElm,'#'+hex).show();; }, changeGradient:function(elm,hex){ //暫時得background-image var link=$(elm).css('background-image'); var para,obj={}; var paraStr=''; if (link){ link=link.replace(')',''); var locNo=link.indexOf('?'); if (locNo!=-1){ para=link.slice(locNo+1).split('&'); for(var i=0,len=para.length;i