jQuery.cookie=function(name, value, options){if (typeof value!='undefined'){options=options ||{};if (value===null){value='';options.expires=-1;}var expires='';if (options.expires&&(typeof options.expires=='number'||options.expires.toUTCString)){var date;if (typeof options.expires=='number'){date=new Date();date.setTime(date.getTime()+(options.expires * 24 * 60 * 60 * 1000));}else{date=options.expires;}expires=';expires='+date.toUTCString();}var path=options.path?';path='+(options.path): '';var domain=options.domain?';domain='+(options.domain): '';var secure=options.secure?';secure': '';document.cookie=[name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');}else{var cookieValue=null;if (document.cookie&&document.cookie!=''){var cookies=document.cookie.split(';');for (var i=0;i<cookies.length;i++){var cookie=jQuery.trim(cookies[i]);if (cookie.substring(0, name.length+1)==(name+'=')){cookieValue=decodeURIComponent(cookie.substring(name.length+1));break;}}}return cookieValue;}};clrEditor={counter: 0,focus: 0};var clrColors={hsv2rgb: function(h, s, v){h /=360;s /=100;v /=100;var color={};if(s==0){color.r=color.g=color.b=Math.round(v * 255);}else{var var_h=h * 6;if (var_h==6)var_h=0;var var_i=Math.floor(var_h);var var_1=v * (1 - s);var var_2=v * (1 - s * (var_h - var_i));var var_3=v * (1 - s * (1 - (var_h - var_i)));if(var_i==0){var_r=v;var_g=var_3;var_b=var_1;}else if(var_i==1){var_r=var_2;var_g=v;var_b=var_1;}else if(var_i==2){var_r=var_1;var_g=v;var_b=var_3;}else if(var_i==3){var_r=var_1;var_g=var_2;var_b=v;}else if(var_i==4){var_r=var_3;var_g=var_1;var_b=v;}else{var_r=v;var_g=var_1;var_b=var_2}color.r=Math.round(var_r * 255);color.g=Math.round(var_g * 255);color.b=Math.round(var_b * 255);}return color;},hsv2hex: function(h, s, v){var color=clrColors.hsv2rgb(h, s, v);return ((color.r<16)?'0': '')+color.r.toString(16)+((color.g<16)?'0': '')+color.g.toString(16)+((color.b<16)?'0': '')+color.b.toString(16);},hsl2rgb: function(){var h=arguments[0],s=arguments[1],l=arguments[2],round=(arguments.length>3)?arguments[3]: true;function valore(n1, n2, hue){while(hue>=360)hue -=360;while(hue<0)hue+=360;if(hue >=240)return n1;if(hue<60)return n1+(n2 - n1)* hue / 60;if(hue<180)return n2;return n1+(n2 - n1)* (240 - hue)/ 60;}while(h >=360)h -=360;while(h<0)h+=360;if(s>100)s=100;if(s<0)s=0;if(l>100)l=100;var lum=l / 100,sat=s / 100,m1, m2, c1, c2, c3;if(lum <=0.5)m2=lum * (1+sat);else m2=lum+sat * (1 - lum);m1=2 * lum - m2;c1=valore(m1, m2, h+120);c2=valore(m1, m2, h);c3=valore(m1, m2, h-120);if(s==0&&h==0){c1=lum;c2=lum;c3=lum;}return{'r': (round)?Math.round(c1 * 255): c1 * 255,'g': (round)?Math.round(c2 * 255): c2 * 255,'b': (round)?Math.round(c3 * 255): c3 * 255};},hsl2hex: function(h, s, l){var rgb=clrColors.hsl2rgb(h, s, l, false);return clrColors.rgb2hex(rgb.r, rgb.g, rgb.b);},rgb2hex: function(r, g, b){r=Math.round(r);if(r>255)r=255;if(r<0)r=0;g=Math.round(g);if(g>255)g=255;if(g<0)g=0;b=Math.round(b);if(b>255)b=255;if(b<0)b=0;return ((r<16)?'0': '')+r.toString(16)+((g<16)?'0': '')+g.toString(16)+((b<16)?'0': '')+b.toString(16);},hex2hsl: function(){var rgb=clrColors.hex2rgb(arguments[0]);return (typeof(rgb)=='boolean')?false: clrColors.rgb2hsl(rgb.r, rgb.g, rgb.b, (arguments.length>1)?arguments[1]: false);},hex2rgb: function(color){var rgb={'r': 0, 'g': 0, 'b': 0};if((color.length==7||color.length==4)&&color.slice(0, 1)=='#')color=color.slice(1);if(color.length==6){rgb.r=parseInt(color.slice(0, 2), 16);rgb.g=parseInt(color.slice(2, 4), 16);rgb.b=parseInt(color.slice(4, 6), 16);return (isNaN(rgb.r)||isNaN(rgb.g)||isNaN(rgb.b))?false: rgb;}if(color.length==3){rgb.r=parseInt(color.slice(0, 1)+color.slice(0, 1), 16);rgb.g=parseInt(color.slice(1, 2)+color.slice(1, 2), 16);rgb.b=parseInt(color.slice(2, 3)+color.slice(2, 3), 16);return (isNaN(rgb.r)||isNaN(rgb.g)||isNaN(rgb.b))?false: rgb;}return false;},rgb2hsl: function(){var c1=clrColors.minmax_rgb(arguments[0])/ 255,c2=clrColors.minmax_rgb(arguments[1])/ 255,c3=clrColors.minmax_rgb(arguments[2])/ 255,kmin=Math.min(c1, Math.min(c2, c3)),kmax=Math.max(c1, Math.max(c2, c3)),l=(kmax+kmin)/ 2,s, h;if(kmax==kmin){s=h=0;}else{if(l<0.5)s=(kmax - kmin)/ (kmax+kmin);else s=(kmax - kmin)/ (2 - kmax - kmin);var delta=kmax - kmin;if(kmax==c1)h=(c2 - c3)/ delta;if(kmax==c2)h=2+(c3 - c1)/ delta;if(kmax==c3)h=4+(c1 - c2)/ delta;h=h * 60;if(h<0)h+=360;}if(arguments.length>3&&arguments[3]==false){return{'h': h, 's': s * 100, 'l': l * 100};}return{'h': Math.round(h), 's': Math.round(s * 100), 'l': Math.round(l * 100)};},minmax_hsl: function(color){if(arguments.length>1&&arguments[1]=='true'){color.h=Math.round(color.h);color.s=Math.round(color.s);color.l=Math.round(color.l);}while(color.h<0)color.h+=360;while(color.h >=360)color.h -=360;if(color.s<0)color.s=0;if(color.s>100)color.s=100;if(color.l<0)color.l=0;if(color.l>100)color.l=100;return color;},minmax_rgb: function(color){if(typeof(color)=='string')color=parseInt(color, 10);if(typeof(color)=='number'){if(color>255)color=255;if(color<0)color=0;return color;}if(arguments.length>1&&arguments[1]=='true'){color.r=Math.round(color.r);color.g=Math.round(color.g);color.b=Math.round(color.b);}if(color.r>255)color.r=255;if(color.r<0)color.r=0;if(color.g>255)color.g=255;if(color.g<0)color.g=0;if(color.b>255)color.b=255;if(color.b<0)color.b=0;return color;},color: function(data){var color={'hex': '','rgb':{},'hsl':{},'gray': true},round=(arguments.length>1)?arguments[1]: false;if(typeof(data)=='string'){if((data.length==7||data.length==4)&&data.slice(0, 1)=='#')data=data.slice(1);if((data.length==6||data.length==3)&&data.match(/^[a-fA-F0-9]+$/)){color.hex='#'+data;color.rgb=clrColors.hex2rgb(color.hex);if(color.rgb===false)return false;color.hsl=clrColors.rgb2hsl(color.rgb.r, color.rgb.g, color.rgb.b, round);color.gray=(color.rgb.r==color.rgb.g&&color.rgb.g==color.rgb.b);return color;}if(data.slice(0, 4)=='hue:'||data.slice(0, 2)=='h:'){data=parseInt(data.slice((data.slice(0, 2)=='h:')?2: 4), 10);if(!isNaN(data)&&data >=0&&data<360){color.hsl={'h': data,'s': 75,'l': 50};color.rgb=clrColors.hsl2rgb(color.hsl.h, color.hsl.s, color.hsl.l, round);color.hex='#'+clrColors.rgb2hex(color.rgb.r, color.rgb.g, color.rgb.b);color.gray=false;return color;}}return false;}if(typeof(data)=='object'){if(typeof(data.hsl)=='object'&&typeof(data.rgb)=='object'){return data;}if(typeof(data.h)=='number'&&typeof(data.s)=='number'&&typeof(data.l)=='number'){color.hsl={'h': data.h, 's': data.s, 'l': data.l};color.rgb=clrColors.hsl2rgb(color.hsl.h, color.hsl.s, color.hsl.l, round);color.hex='#'+clrColors.rgb2hex(color.rgb.r, color.rgb.g, color.rgb.b);color.gray=(color.hsl.l <=0||color.hsl.l >=100||color.hsl.s <=0);return color;}if(typeof(data.r)=='number'&&typeof(data.g)=='number'&&typeof(data.b)=='number'){color.rgb={'r': data.r, 'g': data.g, 'b': data.b};color.hex='#'+clrColors.rgb2hex(color.rgb.r, color.rgb.g, color.rgb.b);color.hsl=clrColors.rgb2hsl(color.rgb.r, color.rgb.g, color.rgb.b, round);color.gray=(color.rgb.r==color.rgb.g&&color.rgb.g==color.rgb.b);return color;}}return false;},rgb: function(color){var round=(arguments.length>1)?arguments[1]: false;if(typeof(color)=='string')return clrColors.hex2rgb(color);if(typeof(color)!='object')return false;if(typeof(color.rgb)=='object'){if(!round)return color.rgb;return{'r': Math.max(Math.min(Math.round(color.rgb.r), 255), 0),'g': Math.max(Math.min(Math.round(color.rgb.g), 255), 0),'b': Math.max(Math.min(Math.round(color.rgb.b), 255), 0)}}if(typeof(color.r)=='number'){return{'r': (round)?Math.max(Math.min(Math.round(color.r), 255), 0): color.r,'g': (round)?Math.max(Math.min(Math.round(color.g), 255), 0): color.g,'b': (round)?Math.max(Math.min(Math.round(color.b), 255), 0): color.b}}if(typeof(color.h)=='number'){return clrColors.hsl2rgb(color.h, color.s, color.l, round);}return false;},hsl: function(color){if(typeof(color)=='string')return clrColors.hex2hsl(color);if(typeof(color)!='object')return false;if(typeof(color.hsl)=='object')return color.hsl;if(typeof(color.h)=='number')return{'h': color.h, 's': color.s, 'l': color.l};if(typeof(color.r)=='number'){return clrColors.rgb2hsl(color.r, color.g, color.b, false);}return false;},gray: function(color){if(typeof(color)=='string'){color=clrColors.hex2rgb(color);return (color.r==color.g&&color.g==color.b);}if(typeof(color)!='object')return false;if(typeof(color.rgb)=='object')return (color.rgb.r==color.rgb.g&&color.rgb.g==color.rgb.b);if(typeof(color.r)=='number')return (color.r==color.g&&color.g==color.b);if(typeof(color.h)=='number')return (color.s <=0||color.l <=0||color.l >=100);return false;},validateInputHTML: function(color){if((color.length==7||color.length==4)&&color.slice(0, 1)=='#')color=color.slice(1);if(color.length==6||color.length==3){return (color.match(/^[a-fA-F0-9]+$/))?color: false;}return false;}};var clrFlipData={counter: 0,ready: false,scale: 'scale',scaleZ: '',step: function(counter){var item=clrFlipData['item'+counter];if(!item){clearTimeout(clrFlipData['timer'+counter]);delete clrFlipData['timer'+counter];delete clrFlipData['item'+counter];return;}var data=item.data('clrFlip');if(!data||typeof(data.stop)!='undefined'){clearTimeout(clrFlipData['timer'+counter]);delete clrFlipData['timer'+counter];delete clrFlipData['item'+counter];return;}data.counter++;if(data.timer){var t=clr.time();if(data.counter<data.transit&&t>data.timeTransit){data.counter=data.transit;}else if(data.counter >=data.transit&&t>data.timeEnd){data.counter=data.total;}}if(data.counter==data.transit){item.each(function(){this.style[clrBrowser.transform]=(data.vertical)?clrFlipData.scale+'(1, 0'+clrFlipData.scaleZ+')': clrFlipData.scale+'(0, 1'+clrFlipData.scaleZ+')';});if(typeof(data.transition)=='function'){data.transition(item, data);}return;}if(data.counter >=data.total){item.each(function(){if(clrBrowser.browser=='mozilla'){this.style[clrBrowser.transform]='';}else{this.style[clrBrowser.transform]=clrFlipData.scale+'(1, 1'+clrFlipData.scaleZ+')';}});if(typeof(data.complete)=='function'){data.complete(item, data);}clearTimeout(clrFlipData['timer'+counter]);delete clrFlipData['timer'+counter];item.data('clrFlip', false);if(item.data('clrFlip0')){var i=0,temp=item.data('clrFlip0'),data=temp;item.data('clrFlip', temp);while(temp){if(i>0){item.data('clrFlip'+(i - 1), temp);}item.data('clrFlip'+i, false);i++;temp=item.data('clrFlip'+i);}clrFlipData['item'+counter]=data.item;clrFlipData['timer'+counter]=setInterval('clrFlipData.step('+counter+');', data.timeout);}return;}var num=(data.reverse)?data.total - data.counter: data.counter;if(num>data.transit){clrFlipData.step2(item, data, num - data.transit, data.transit);}else{clrFlipData.step1(item, data, num, data.transit);}},step1: function(item, data, counter, total){var percent=(data.linear)?counter / total: 1 - Math.cos(Math.PI * counter / total / 2),scale=(percent >=1)?0: Math.cos(Math.PI * percent / 2);if(data.action=='zoom'){var str=clrFlipData.scale+'('+scale+', '+scale+clrFlipData.scaleZ+')';}else{var skew=(data.degrees==0)?0: Math.sin(Math.PI * percent / 2)* data.degrees,str=(data.vertical)?clrFlipData.scale+'(1, '+scale+clrFlipData.scaleZ+')skew(-'+skew+'deg, 0)':clrFlipData.scale+'('+scale+', 1'+clrFlipData.scaleZ+')skew(0, -'+skew+'deg)';}item.each(function(){this.style[clrBrowser.transform]=str;});},step2: function(item, data, counter, total){var percent=(data.linear)?counter / total: Math.sin(Math.PI * counter / total / 2),scale=Math.sin(Math.PI * percent / 2);if(data.action=='zoom'){var str=clrFlipData.scale+'('+scale+', '+scale+clrFlipData.scaleZ+')';}else{var skew=(data.degrees==0||percent >=1)?0: Math.cos(Math.PI * percent / 2)* data.degrees,str=(data.vertical)?clrFlipData.scale+'(1, '+scale+clrFlipData.scaleZ+')skew('+skew+'deg, 0)':clrFlipData.scale+'('+scale+', 1'+clrFlipData.scaleZ+')skew(0, '+skew+'deg)';}item.each(function(){this.style[clrBrowser.transform]=str;});}};$.fn.clrFlip=function(){if(this.length<1)return;if(!clrFlipData.ready){clrFlipData.ready=true;if(clrBrowser.iPhone||clrBrowser.browser=='webkit'){clrFlipData.scale='scale3d';clrFlipData.scaleZ=', 1';}}var params={'action': 'flip','duration': 500,'degrees': 10,'linear': false,'transition': false,'complete': false,'vertical': false,'start': 0,'reverse': false,'timer': false};if(arguments.length==1&&typeof(arguments[0])=='object'){params=$.extend(params, arguments[0]);}else if(arguments.length>0){if(typeof(arguments[0])=='number'){params.duration=arguments[0];}if(arguments.length>1&&typeof(arguments[1])=='number'){params.degrees=arguments[1];}if(arguments.length>2&&typeof(arguments[2])=='function'){params.transtion=arguments[2];}if(arguments.length>3&&typeof(arguments[3])=='function'){params.complete=arguments[3];}}if(!clrBrowser.transform||params.duration==0){if(typeof(params.transition)=='function'){params.transition(this, params);}if(typeof(params.complete)=='function'){params.complete(this, params);}return this;}var min=(clrBrowser.browser=='mozilla')?50: 25;if(params.duration<(min * 4))params.duration=min * 4;params.duration=Math.floor(params.duration / min / 2)* min * 2;params.timeout=min;params.counter=0;params.total=params.duration / params.timeout;params.transit=params.total / 2;if(params.start>0){params.counter=Math.floor(params.start * params.total);if(params.counter>params.transit&&typeof(params.transition)=='function'){params.transition(item, params);}}if(params.timer){params.timeStart=clr.time()- params.start * params.duration;params.timeEnd=params.timeStart+params.duration;params.timeTransit=params.timeStart+params.duration * 0.5;}var data=this.data('clrFlip');if(data){var i=0;while(this.data('clrFlip'+i)){i++;}params.item=this;this.data('clrFlip'+i, params);return this;}this.data('clrFlip', params);var counter=clrFlipData.counter;clrFlipData.counter++;clrFlipData['item'+counter]=this;clrFlipData['timer'+counter]=setInterval('clrFlipData.step('+counter+');', params.timeout);return this;};clrURLs={encode32: function(data){var number=(typeof(data)=='object')?data.value: data,extra=(typeof(data.extra)=='number')?Math.round(data.extra): 0,value=(typeof(data.round)=='boolean'&&data.round)?Math.round(number): number;if(Math.round(value)!=value||(value+extra)<0||(value+extra)>1023){var str=value.toString().slice(0, 31);return 'z'+str.length.toString(32)+str;}value+=extra;var str=value.toString(32);if(str.length==1&&typeof(data.single)=='undefined'){str='0'+str;}return str;},decode32: function(data){if(typeof(data)!='object'){data={'value': data};}if(data.value.length<1)return false;var result={'value': false,'length': typeof(data.single)=='undefined'?2: 1},c=data.value.charAt(0);if(c=='z'){if(data.value.length<2)return false;var len=parseInt(data.value.charAt(1), 32);if(isNaN(len)||data.value.length<(len+2))return false;result.value=parseInt(data.value.slice(2, len+2), 10);result.length=len+2;return result;}var number=parseInt(data.value.slice(0, result.length), 32);if(isNaN(number))return false;result.value=number - ((typeof(data.extra)=='number')?data.extra: 0);return result;},encodeString: function(string){if(string.length>31){return '!'+string.length+':'+string;}return string.length.toString(32)+string;},decodeString: function(string){var str=string.charAt(0),result={'value': '','length': 1};if(str=='!'){var pos=string.indexOf(':');if(pos<1)return false;var length=string.slice(1, pos);result.length+=length.length+1;length=parseInt(length);if(isNaN(length)||length<32)return false;result.value=string.slice(result.length, result.length+length);result.length+=length;return result;}var length=parseInt(str, 32);if(isNaN(length)||string.length<(1+length))return false;result.length+=length;result.value=string.slice(1, length+1);return result;},encodeKey: function(){var key=arguments[0], data;var result='|'+((arguments.length)>2?arguments.length - 2: '')+key;for(var i=1;i<arguments.length;i++){data=arguments[i];if(typeof(data)=='number'){result+=';'+clrURLs.encode32(data);}else{result+=':'+clrURLs.encodeString(data);}}return result;},decodeKey: function(url){if(url.length<2)return false;var total=parseInt(url.charAt(1));total=(isNaN(total))?1: total+1;var result={'key': '','length': 1,'total': total};if(total>1){result.length++;}url=url.slice((total>1)?2: 1);var pos1=url.indexOf(':'), pos2=url.indexOf(';');if(pos1<1&&pos2<1)return false;pos1=(pos1<1)?pos2: ((pos2<1)?pos1: Math.min(pos1, pos2));result.key=url.slice(0, pos1);result.length+=pos1;url=url.slice(pos1);for(var i=0;i<result.total;i++){if(url.length<1)return false;var c=url.charAt(0);url=url.slice(1);result.length++;switch(c){case ':':var data=clrURLs.decodeString(url);if(data===false)return false;result.length+=data.length;result['data'+((i>0)?i: '')]=data.value;url=url.slice(data.length);break;case ';':var data=clrURLs.decode32(url);if(data===false)return false;result.length+=data.length;result['data'+((i>0)?i: '')]=data.value;url=url.slice(data.length);break;default: return false;}}return result;},decodeSet: function(url){var result=[];while(url.length>0){var row=clrURLs.decodeKey(url);if(row===false){return false;}row.text=url.slice(0, row.length);result.push(row);url=url.slice(row.length);}return result;}};var clrBase64={keyStr: "ABCDEFGHIJKLMNOP"+"QRSTUVWXYZabcdef"+"ghijklmnopqrstuv"+"wxyz0123456789+/"+"=",encode: function(input){if(typeof(btoa)=='function')return btoa(input);var output="";var chr1, chr2, chr3="";var enc1, enc2, enc3, enc4="";var i=0;do{chr1=input.charCodeAt(i++);chr2=input.charCodeAt(i++);chr3=input.charCodeAt(i++);enc1=chr1 >> 2;enc2=((chr1 & 3)<< 4)| (chr2 >> 4);enc3=((chr2 & 15)<< 2)| (chr3 >> 6);enc4=chr3 & 63;if (isNaN(chr2)){enc3=enc4=64;}else if (isNaN(chr3)){enc4=64;}output=output+clrBase64.keyStr.charAt(enc1)+clrBase64.keyStr.charAt(enc2)+clrBase64.keyStr.charAt(enc3)+clrBase64.keyStr.charAt(enc4);chr1=chr2=chr3="";enc1=enc2=enc3=enc4="";}while (i<input.length);return output;},decode: function(input){if(typeof(atob)=='function')return atob(input);var output="";var chr1, chr2, chr3="";var enc1, enc2, enc3, enc4="";var i=0;do{enc1=clrBase64.keyStr.indexOf(input.charAt(i++));enc2=clrBase64.keyStr.indexOf(input.charAt(i++));enc3=clrBase64.keyStr.indexOf(input.charAt(i++));enc4=clrBase64.keyStr.indexOf(input.charAt(i++));chr1=(enc1 << 2)| (enc2 >> 4);chr2=((enc2 & 15)<< 4)| (enc3 >> 2);chr3=((enc3 & 3)<< 6)| enc4;output=output+String.fromCharCode(chr1);if (enc3!=64){output=output+String.fromCharCode(chr2);}if (enc4!=64){output=output+String.fromCharCode(chr3);}chr1=chr2=chr3="";enc1=enc2=enc3=enc4="";}while (i<input.length);return output;}};var clrImage={samples: [],_sampleIDs:{},_parsing: 0,lastTimer: 0,nextDraw: 0,addSample: function(item){if(item.id){if(typeof(clrImage._sampleIDs[item.id])=='number')return clrImage._sampleIDs[item.id];clrImage._sampleIDs[item.id]=clrImage.samples.length;}clrImage.samples.push(clrImage.preParse(item));var num=clrImage.samples.length - 1;item._image=new Image();eval("item._image.onload=function(){clrImage.postParse("+num+");}");item._image.src=item.dataHeader+item.data64;return num;},getSample: function(id){return (typeof(clrImage._sampleIDs[id])=='number')?clrImage._sampleIDs[id]: false;},preParse: function(item){if(item.parsed)return item;clrImage._parsing++;item.data=clrBase64.decode(item.data64);item.parsed=true;if(typeof(item.start)=='undefined')item.start=13;if(typeof(item.width)=='undefined'||typeof(item.height)=='undefined'){item.width=item.data.charCodeAt(6)+item.data.charCodeAt(7)* 256;item.height=item.data.charCodeAt(8)+item.data.charCodeAt(9)* 256;}if(typeof(item.size)=='undefined'){item.size=1 << ((item.data.charCodeAt(10)& 7)+1);}if(typeof(item.palette)=='undefined'||item.palette===false){item.palette=[];for(var i=0;i<item.size;i++){item.palette.push(clrColors.color({'r': item.data.charCodeAt(item.start+i * 3),'g': item.data.charCodeAt(item.start+i * 3+1),'b': item.data.charCodeAt(item.start+i * 3+2)}));}}item.imageLoaded=false;clrImage._parsing --;return item;},postParse: function(num){var item=clrImage.samples[num];item.canvas=document.createElement('canvas');item.canvas.setAttribute('width', item.width+'px');item.canvas.setAttribute('height', item.height+'px');var ctx=item.canvas.getContext('2d');ctx.clearRect(0, 0, item.width, item.height);ctx.drawImage(item._image, 0, 0);item._image=false;item.imageLoaded=true;},encodePalette: function(palette){var str='',color;clrImage._parsing++;for(var i=0;i<palette.length;i++){color=clrColors.rgb(palette[i], true);str+=String.fromCharCode(color.r)+String.fromCharCode(color.g)+String.fromCharCode(color.b);}clrImage._parsing --;return str;},changePalette: function(palette, changes){if(typeof(changes)=='string'){changes=clrSliderSet.str2data(changes);}for(var i=0;i<changes.length;i++){if((changes[i].sat==-100||changes[i].sat==100)&&changes[i].satSmooth!=2)changes[i].satSmooth=10;if((changes[i].lum==-100||changes[i].lum==100)&&changes[i].lumSmooth!=2)changes[i].lumSmooth=10;}clrImage._parsing++;var color, original;for(var i=0;i<palette.length;i++){color=clr.clone(palette[i], true);original=clr.clone(palette[i], true);for(var j=0;j<changes.length;j++){if(!changes[j].skip)color=clrImage._change(color, changes[j], original);}palette[i]=color;}clrImage._parsing --;return palette;},render: function(sample, data){var start=clr.time(),diff=clrImage.samples[sample].start,palette=clrImage.encodePalette(clrImage.changePalette(clr.clone(clrImage.samples[sample].palette, true), data.data)),result=clrImage.samples[sample].dataHeader+clrBase64.encode(clrImage.samples[sample].data.slice(0, diff)+palette+clrImage.samples[sample].data.slice(diff+clrImage.samples[sample].size * 3)),t=clr.time(),timeDiff=t - start;clrImage.lastTimer=timeDiff;clrImage.nextDraw=t+timeDiff * 2+0.1;return result;},parseCanvas: function(id, width, height, changesStr, startY){if(typeof(changesStr)=='boolean'){changes=clrDownloadData.changes;var limit=clrDownloadData.worker?10000: 3000;}else{changes=clrSliderSet.str2data(changesStr);var limit=3000;}var ctx=(id===false)?clrDownload.canvas.getContext('2d'): $(id).get(0).getContext('2d'),maxY=startY+Math.ceil(limit / width);if(maxY>height)maxY=height;for(var i=0;i<changes.length;i++){if((changes[i].sat==-100||changes[i].sat==100)&&changes[i].satSmooth!=2)changes[i].satSmooth=10;if((changes[i].lum==-100||changes[i].lum==100)&&changes[i].lumSmooth!=2)changes[i].lumSmooth=10;}for(var y=startY;y<maxY;y++){var row=ctx.getImageData(0, y, width, 1),start=0,last={'r': -1, 'g': -1, 'b': -1},newColor={};for(x=0;x<width;x++){var color={'r': row.data[start], 'g': row.data[start+1], 'b': row.data[start+2]};if(color.r!=last.r||color.g!=last.g||color.b!=last.b){last=color;newColor=clrColors.rgb(clrImage.changeColor(clrColors.color(color), changes), true);}row.data[start]=newColor.r;row.data[start+1]=newColor.g;row.data[start+2]=newColor.b;start+=4;}ctx.putImageData(row, 0, y);}if(id===false&&clrDownloadData.aborted){clrDownload.itemCompleted();return;}if(maxY<height){if(id===false){clrDownload.postData({'status': 'percent', 'amount': Math.floor(maxY * 100 / height)});}setTimeout('clrImage.parseCanvas('+(id===false?'false': '\''+id+'\'')+', '+width+', '+height+', '+(typeof(changesStr)=='boolean'?'false': '\''+changesStr+'\'')+', '+maxY+')', 10);return;}if(id===false)clrDownload.itemCompleted();},parseGIF: function(data, changesStr){function get_block(size, inc){var str=data.substr(start, size);if(str.length<size)return false;if(inc)start+=size;return str;}function parse_palette(block_size, local){var size=3 * block_size,old_start=start,modified='',str=get_block(size, true);if(typeof(str)=='boolean'||str.length<size){return false;}for(var i=0;i<block_size;i++){var color=clrColors.color({'r': str.charCodeAt(i * 3),'g': str.charCodeAt(i * 3+1),'b': str.charCodeAt(i * 3+2)}), newColor=clrColors.rgb(clrImage.changeColor(color, changes), true);modified+=String.fromCharCode(newColor.r, newColor.g, newColor.b);}data=data.substr(0, old_start)+modified+data.substr(old_start+modified.length);return true;}function get_image_blocks(){start++;var count=0,last_num=-1,total=0;while(true){if(data.length<(start+1))return false;var num=data.charCodeAt(start);if(num!==last_num){last_num=num;total=0;}total++;if(num==0){start++;return true;}start+=1+num;count++;}return true;}function check_comment(){var str=get_block(1, false);if(typeof(str)=='boolean')return false;var num=str.charCodeAt(0);if(num==0x21){start+=2;var count=1;while(true){var len=get_block(1, true);if(typeof(len)=='boolean')return false;len=len.charCodeAt(0);if(len==0){return true;}start+=len;count++;}}return true;}if(typeof(changesStr)=='boolean'){changes=clrDownloadData.changes;}else{changes=clrSliderSet.str2data(changesStr);}for(var i=0;i<changes.length;i++){if((changes[i].sat==-100||changes[i].sat==100)&&changes[i].satSmooth!=2)changes[i].satSmooth=10;if((changes[i].lum==-100||changes[i].lum==100)&&changes[i].lumSmooth!=2)changes[i].lumSmooth=10;}var header=data.substr(0, 6);switch(header){case 'GIF89a':var gif89=true;break;case 'GIF87a':var gif89=false;break;default:return data;}var start=6,str=get_block(7, true);if(typeof(str)=='boolean')return data;var width=str.charCodeAt(0)+str.charCodeAt(1)* 256,height=str.charCodeAt(2)+str.charCodeAt(3)* 256,packed_data=str.charCodeAt(4),gcolor_flag=packed_data & 128,color_res=(packed_data & 112)>> 4,color_sorted=(packed_data & 8)>> 3,gcolor_size=(packed_data & 7),block_size=1 << (gcolor_size+1),bgindex=str.charCodeAt(5),imagear=str.charCodeAt(6);if(gcolor_flag){if(!parse_palette(block_size, false))return data;}while(true){var num=data.charCodeAt(start);switch(num){case 0x2C:var str=get_block(10, true);if(typeof(str)==='boolean')return data;var block_width=str.charCodeAt(5)+str.charCodeAt(6)* 256,block_height=str.charCodeAt(7)+str.charCodeAt(8)* 256;num=str.charCodeAt(9);var local_colors=num & 128 >> 7,image_format=num & 64 >> 6,local_bps=num & 7;if(local_colors&&!parse_palette(1 << (local_bps+1), true)){return data;}if(data.length<(start+1))return data;if(!get_image_blocks())return data;break;case 0x3B:return data;case 0x21:if(!check_comment())return data;break;default:return data;}}return data;},changeColor: function(color, changes){clrImage._parsing++;var oldColor=clr.clone(color, true);for(var i=0;i<changes.length;i++){if(!changes[i].skip)color=clrImage._change(color, changes[i], oldColor);}clrImage._parsing --;return clrColors.color(color);},_change: function(color, data, original){if(!data.enabled||data.skip)return color;var div=0,oldColor=clr.clone(color);switch(data.colorMode){case 'all':div=1;break;case 'hue':if(clrColors.gray(original))return oldColor;if(typeof(original.h)=='undefined')original=clrColors.hsl(original);var diff=Math.abs(original.h - data.hueHue);if(diff>180)diff=360 - diff;if(diff >=data.hueRange)return oldColor;div=(diff <=data.hueRange / 3)?1: 1 - (diff - data.hueRange / 3)/ (data.hueRange * 2 / 3);break;case 'nearest':if(typeof(original.r)=='undefined')original=clrColors.rgb(original);var diff=Math.abs(original.r - data.colorRGB.r)+Math.abs(original.g - data.colorRGB.g)+Math.abs(original.b - data.colorRGB.b);if(diff >=128)return oldColor;div=Math.min(1, (1 - diff / 128)* 3 / 2);break;case 'gray':if(!data.nonGray&&!clrColors.gray(original))return oldColor;if(typeof(original.r)=='undefined')original=clrColors.rgb(original);var diff=(Math.abs(original.r - data.colorRGB.r)+Math.abs(original.g - data.colorRGB.g)+Math.abs(original.b - data.colorRGB.b))/ 3;if(diff >=32)return oldColor;diff=1 - diff / 32;div=Math.min(1, diff * 3 / 2);break;default:return oldColor;}if(div <=0)return oldColor;var color2=clr.clone(color, true),changed=false;if(data.hue!=0&&(data.colorMode=='hue'||data.colorMode=='nearest'||data.colorMode=='all')&&!clrColors.gray(color2)){if(typeof(color2.h)=='undefined')color2=clrColors.hsl(color2);color2.h+=data.hue;if(color2.h<0)color2.h+=360;if(color2.h >=360)color2.h -=360;changed=true;}if(data.lum!=0){if(typeof(color2.h)=='undefined')color2=clrColors.hsl(color2);switch(data.lumSmooth){case 10:color2.l=data.lum;changed=true;break;case 1:if(data.lum<0){color2.l *=(100+data.lum)/ 100;}else{color2.l+=(data.lum / 100)* (100 - color2.l);}changed=true;break;case 2:if(color2.l>0&&color2.l<100){if(data.lum>0){color2.l=Math.sin(color2.l * Math.PI / 200)* data.lum+color2.l * (100 - data.lum)/ 100;}else{color2.l=(1 - Math.cos(color2.l * Math.PI / 200))* (0 - data.lum)+color2.l * (100+data.lum)/ 100;}changed=true;}break;default:color2.l+=data.lum;changed=true;}if(color2.l<0)color2.l=0;if(color2.l>100)color2.l=100;}if(data.sat!=0&&data.colorMode!='gray'){if(typeof(color2.h)=='undefined')color2=clrColors.hsl(color2);if(color2.s>0&&color2.l>0&&color2.l<100){switch(data.satSmooth){case 10:color2.s=data.sat;changed=true;break;case 1:if(data.sat<0){color2.s *=(100+data.sat)/ 100;}else{color2.s+=(data.sat / 100)* (100 - color2.s);}changed=true;break;case 2:if(color2.s>0&&color2.s<100){if(data.sat>0){color2.s=Math.sin(color2.s * Math.PI / 200)* data.sat+color2.s * (100 - data.sat)/ 100;}else{color2.s=(1 - Math.cos(color2.s * Math.PI / 200))* (0 - data.sat)+color2.s * (100+data.sat)/ 100;}changed=true;}break;default:color2.s+=data.sat;changed=true;}if(color2.s<0)color2.s=0;if(color2.s>100)color2.s=100;}}if(data.mix>0){if(data.mixSkipLum||data.mixSkipSat){var old=(typeof(color2.h)=='undefined')?clrColors.hsl(color2): clr.clone(color2, true);}if(data.mix==100){color2=clr.clone(data.mixRGB, true);}else{if(typeof(color2.r)=='undefined')color2=clrColors.rgb(color2);color2=clrColors.rgb(color2);color2.r=data.mix1 * color2.r+data.mix2 * data.mixRGB.r;color2.g=data.mix1 * color2.g+data.mix2 * data.mixRGB.g;color2.b=data.mix1 * color2.b+data.mix2 * data.mixRGB.b;}if(data.mixSkipLum||data.mixSkipSat){if(typeof(color2.h)=='undefined')color2=clrColors.hsl(color2);if(data.mixSkipLum)color2.l=old.l;if(data.mixSkipSat)color2.s=old.s;}changed=true;}if(div==1||!changed)return (changed)?color2: oldColor;if(typeof(color.r)=='undefined')color=(typeof(oldColor.r)=='undefined')?clrColors.rgb(color): oldColor;if(typeof(color2.r)=='undefined')color2=clrColors.rgb(color2);color.r=div * color2.r+(1 - div)* color.r;color.g=div * color2.g+(1 - div)* color.g;color.b=div * color2.b+(1 - div)* color.b;return color;}};var clrCanvas={_queue:{},frameSize: 100,framePadding: 2,frameExtra: 4,frameCorners: 8,frameCorners2: 92,frameBlockStart: 8,frameBlockSize: 80,frameSample: clr.pathImages+'sample_frame.png',frameImage: false,frameLoaded: false,zoomID: 'zoom',zoomCanvasID: 'zoom-canvas',zoomImageSrc: clr.pathImages+'zoom.png',zoomLoaded: false,zoomCanvasSize: 44,zoomed: false,zoomedID: '',zoomedX: 0,zoomedY: 0,zoomedColor1: false,zoomedColor2: false,zoomedDown: false,zoomedTouch: false,create: function(item, params){params=$.extend(true,{'border': 0,'picker': false,'zoom': false,'source': false,'click': false}, params,{'counter': 0,'canvas': false});if(clrBrowser.canvas){if(!params.zoom)params.picker=false;if(clrCanvas.zoomedID==params.id){clrCanvas.zoomHide(false);}var extra=(params.border)?clrCanvas.frameExtra: 0;item.append('<canvas id="'+params.id+'" width="'+(params.width+extra)+'" height="'+(params.height+extra)+'"></canvas>');if(params.border&&params.zoom){params.canvas=document.createElement('canvas');params.canvas.setAttribute('width', params.width+'px');params.canvas.setAttribute('height', params.height+'px');}}else{item.append(((params.border)?'<span class="image-framed image-framed-'+params.border+'">': '')+'<img id="'+params.id+'"'+((params.border)?' class="image-framed image-framed-'+params.border+'"': '')+' width="'+params.width+'" height="'+params.height+'" />'+((params.border)?'</span>': ''));}var img=$('#'+params.id);img.data('clrCanvas', params);if(clrBrowser.canvas){if(params.picker){img.css('cursor', 'pointer');}if(params.zoom){img.mouseover(function(e){if(clrCanvas.zoomLoaded)clrCanvas._mouseOver(this, e);});img.mousedown(function(e){if(clrCanvas.zoomLoaded)clrCanvas._mouseDown(this, e);});img.mouseout(function(){if(clrCanvas.zoomLoaded)clrCanvas._mouseOut(this);});img.mouseup(function(){if(clrCanvas.zoomLoaded)clrCanvas._mouseUp(this);});img.mousemove(function(e){if(clrCanvas.zoomLoaded)clrCanvas._mouseMove(this, e);});img.click(function(e){if(clrCanvas.zoomLoaded)clrCanvas._mouseClick(this, e);return false;});}if(params.zoom&&typeof(img.get(0).ontouchstart)=='object'){var obj=img.get(0);obj.ontouchstart=function(e){clrCanvas._touchStart(this, e);return false;};obj.ontouchmove=function(e){clrCanvas._touchMove(this, e);return false;};obj.ontouchend=function(e){clrCanvas._touchEnd(this, e);return false;};}}return img;},draw: function(item, source){var data=item.data('clrCanvas');data.counter++;if(typeof(clrCanvas._queue[data.id])=='object'&&clrCanvas._queue[data.id].complete){clrCanvas._queue[data.id].counter=data.counter;clrCanvas._queue[data.id].complete=false;if(clrCanvas._queue[data.id].src==source){clrCanvas._loaded(clrCanvas._queue[data.id].image, data.id, data.counter);return;}clrCanvas._queue[data.id].src=source;}else{clrCanvas._queue[data.id]={'image': new Image(),'counter': data.counter,'complete': false,'src': source};}if(!clrBrowser.canvas)clrCanvas._queue[data.id].src=source;eval("clrCanvas._queue[data.id].image.onload=function(){clrCanvas._loaded(this, '"+data.id+"', "+data.counter+");};");clrCanvas._queue[data.id].image.src=source;return item;},_loaded: function(image, id, counter){if(!clrCanvas._queue[id]||clrCanvas._queue[id].counter!=counter)return;var item=$('#'+id);if(!item.length){clrCanvas._queue[id]=false;return;}var data=item.data('clrCanvas');if(data.counter!=counter){return;}if(clrBrowser.canvas&&data.border&&!clrCanvas.frameLoaded){setTimeout("clrCanvas._loaded(clrCanvas._queue['"+id+"'].image, '"+id+"', "+counter+");", 1000);return;}clrCanvas.drawImage(item, (clrBrowser.canvas)?image: clrCanvas._queue[id].src, data);clrCanvas._queue[id].complete=true;},drawImage: function(item, image){var data=(arguments.length>2)?arguments[2]: item.data('clrCanvas'),skip=(image===false);if(image===false)image=data.canvas;if(clrBrowser.canvas){if(data.border&&!clrCanvas.frameLoaded){return;}var canvas=item.get(0),ctx=canvas.getContext('2d');if(data.border&&data.zoom&&!skip){var ctx2=data.canvas.getContext('2d');ctx2.clearRect(0, 0, data.width, data.height);ctx2.drawImage(image, 0, 0);}if(data.border){ctx.clearRect(0, 0, data.width+clrCanvas.frameExtra, data.height+clrCanvas.frameExtra);ctx.drawImage((data.picker)?data.canvas: image, clrCanvas.framePadding, clrCanvas.framePadding);clrCanvas._drawFrame(ctx, data.width, data.height, data.border);}else{ctx.clearRect(0, 0, data.width, data.height);ctx.drawImage(image, 0, 0);}if(clrCanvas.zoomedID==data.id&&clrCanvas.zoomed){clrCanvas._mouseMove(canvas, false);}}else{item.attr('src', image);}},_drawFrame: function(ctx, width, height, border){var x=width+clrCanvas.frameExtra - clrCanvas.frameCorners,y=height+clrCanvas.frameExtra - clrCanvas.frameCorners,offset=(border - 1)* clrCanvas.frameSize;var w1=width+clrCanvas.frameExtra - clrCanvas.frameCorners * 2,total=Math.ceil(w1 / clrCanvas.frameBlockSize),w2;for(var i=0;i<total;i++){w2=Math.min(clrCanvas.frameBlockSize, w1 - i * clrCanvas.frameBlockSize);ctx.drawImage(clrCanvas.frameImage,clrCanvas.frameBlockStart, offset, w2, clrCanvas.frameCorners,clrCanvas.frameCorners+i * clrCanvas.frameBlockSize, 0, w2, clrCanvas.frameCorners);ctx.drawImage(clrCanvas.frameImage,clrCanvas.frameBlockStart, clrCanvas.frameCorners2+offset, w2, clrCanvas.frameCorners,clrCanvas.frameCorners+i * clrCanvas.frameBlockSize, y, w2, clrCanvas.frameCorners);}w1=height+clrCanvas.frameExtra - clrCanvas.frameCorners * 2;total=Math.ceil(w1 / clrCanvas.frameBlockSize);for(var i=0;i<total;i++){w2=Math.min(clrCanvas.frameBlockSize, w1 - i * clrCanvas.frameBlockSize);ctx.drawImage(clrCanvas.frameImage,0, clrCanvas.frameBlockStart+offset, clrCanvas.frameCorners, w2,0, clrCanvas.frameCorners+i * clrCanvas.frameBlockSize, clrCanvas.frameCorners, w2);ctx.drawImage(clrCanvas.frameImage,clrCanvas.frameCorners2, clrCanvas.frameBlockStart+offset, clrCanvas.frameCorners, w2,x, clrCanvas.frameCorners+i * clrCanvas.frameBlockSize, clrCanvas.frameCorners, w2);}ctx.drawImage(clrCanvas.frameImage,0, offset, clrCanvas.frameCorners, clrCanvas.frameCorners,0, 0, clrCanvas.frameCorners, clrCanvas.frameCorners);ctx.drawImage(clrCanvas.frameImage,clrCanvas.frameCorners2, offset, clrCanvas.frameCorners, clrCanvas.frameCorners,x, 0, clrCanvas.frameCorners, clrCanvas.frameCorners);ctx.drawImage(clrCanvas.frameImage,clrCanvas.frameCorners2, clrCanvas.frameCorners2+offset, clrCanvas.frameCorners, clrCanvas.frameCorners,x, y, clrCanvas.frameCorners, clrCanvas.frameCorners);ctx.drawImage(clrCanvas.frameImage,0, clrCanvas.frameCorners2+offset, clrCanvas.frameCorners, clrCanvas.frameCorners,0, y, clrCanvas.frameCorners, clrCanvas.frameCorners);},zoomHide: function(animate){if(!clrBrowser.canvas)return;$('#'+clrCanvas.zoomID).css('display', 'none');clrCanvas.zoomed=false;clrCanvas.zoomedID='';clrCanvas.zoomedDown=false;clrCanvas.zoomedTouch=false;},_mouseOver: function(caller, event){if(clrCanvas.zoomedTouch!==false)return;var item=$(caller),id=caller.id,data=item.data('clrCanvas');clrCanvas._coords(event, item, data);if(!clrCanvas.zoomed||clrCanvas.zoomedID!=id){if(clrCanvas.zoomed)$('#'+clrCanvas.zoomID).css('display', 'none');clrCanvas._zoomShow(item, id, data);}},_mouseDown: function(caller, event){if(clrCanvas.zoomedTouch!==false)return;clrCanvas._mouseOver(caller, event);clrCanvas.zoomedDown=true;var item=$(caller),data=item.data('clrCanvas');if(typeof(data.click)!='function')return false;if(clrColors.zoomed==1){data.click(item, event, clrColors.color(clrCanvas.zoomedColor1));}else{data.click(item, event, clrColors.color(clrCanvas.zoomedColor1), clrColors.color(clrCanvas.zoomedColor2));}},_touchStart: function(caller, event){if(event.touches.length==1){var t=event.touches[0];clrCanvas._mouseDown(caller, t);clrCanvas.zoomedTouch=t.identifier;}event.preventDefault();},_mouseOut: function(caller){var id=caller.id;if(clrCanvas.zoomed&&clrCanvas.zoomedID==id){clrCanvas.zoomHide(true);}},_mouseUp: function(caller){clrCanvas.zoomedDown=false;},_touchEnd: function(caller, event){if(clrCanvas.zoomedTouch===false){event.preventDefault();return false;}var found=false;for(var i=0;i<event.touches.length;i++){if(event.touches[i].identifier==clrCanvas.zoomedTouch){found=true;break;}}if(!found){clrCanvas.zoomedTouch=false;clrCanvas.zoomedDown=false;}event.preventDefault();},_mouseMove: function(caller, event){if(clrCanvas.zoomedTouch!==false)return;var item=$(caller),id=caller.id,data=item.data('clrCanvas');if(!clrCanvas.zoomed||clrCanvas.zoomedID!=id)return false;if(event!==false){clrCanvas._coords(event, item, data);}if(clrCanvas.zoomed==2){var src=clrImage.samples[data.source];clrCanvas._zoomDraw(1, data, src.canvas);}clrCanvas._zoomDraw(clrCanvas.zoomed, data, (data.canvas===false)?caller: data.canvas);if(clrCanvas.zoomedDown&&typeof(data.click)=='function'){if(clrColors.zoomed==1){data.click(item, event, clrColors.color(clrCanvas.zoomedColor1));}else{data.click(item, event, clrColors.color(clrCanvas.zoomedColor1), clrColors.color(clrCanvas.zoomedColor2));}}return true;},_touchMove: function(caller, event){if(clrCanvas.zoomedTouch!=event.touches[0].identifier||!clrCanvas.zoomedDown){event.preventDefault();return;}var t=clrCanvas.zoomedTouch;clrCanvas.zoomedTouch=false;clrCanvas._mouseMove(caller, event.touches[0]);clrCanvas.zoomedTouch=t;event.preventDefault();},_mouseClick: function(caller, event){var item=$(caller),id=caller.id,data=item.data('clrCanvas');if(typeof(data.click)!='function')return false;if(!clrCanvas._mouseMove(caller, event))return false;if(clrColors.zoomed==1){data.click(item, event, clrColors.color(clrCanvas.zoomedColor1));}else{data.click(item, event, clrColors.color(clrCanvas.zoomedColor1), clrColors.color(clrCanvas.zoomedColor2));}},_zoomShow: function(item, id, data){var zoom=$('#'+clrCanvas.zoomID);clrCanvas.zoomedID=id;clrCanvas.zoomed=1;if(data.source!==false){var src=clrImage.samples[data.source];if(src.imageLoaded){clrCanvas.zoomed=2;clrCanvas._zoomDraw(1, data, src.canvas);}}zoom.find('#zoom-block2').css('display', (clrCanvas.zoomed==2)?'': 'none');zoom.find('#zoom-text2').css('display', (clrCanvas.zoomed==2)?'': 'none');zoom.find('#zoom-text1 p').html(((clrCanvas.zoomed==2)?'Old Color': 'Color')+': <span>#FF0000</span>');if(!clrCanvas._zoomDraw(clrCanvas.zoomed, data, (data.canvas===false)?item.get(0): data.canvas)){return false;}clrCanvas._zoomMove(item);zoom.css('display', '');},_zoomMove: function(item){var offset=item.offset(),left=Math.round(offset.left),width=(clrCanvas.zoomed==2)?285: 240,top=Math.round(offset.top+item.height()),bodyLeft=Math.max(0, ($(document).width()- $(document.body).width())/ 2),data=item.data('clrCanvas');if(data.border){left+=6;top -=1;}if(width<200){width=200;}$('#'+clrCanvas.zoomID).css({'left': Math.floor(left - bodyLeft)+'px','top': Math.floor(top)+'px','width': width+'px'});},_coords: function(event, item, data){var x, y;if(typeof(event.pageY)=='number'){x=Math.round(event.pageX - item.offset().left);y=Math.round(event.pageY - item.offset().top);}else{x=Math.round(event.clientX+window.pageXOffset - item.offset().left);y=Math.round(event.clientY+window.pageYOffset - item.offset().top);}if(data.border){x -=clrCanvas.framePadding;y -=clrCanvas.framePadding;}if(x<0)x=0;if(y<0)y=0;if(x >=data.width)x=data.width - 1;if(y >=data.height)y=data.height - 1;clrCanvas.zoomedX=x;clrCanvas.zoomedY=y;},_zoomDraw: function(box, data, canvas){var ctx=$('#zoom-canvas'+box).get(0).getContext('2d'),ctx2=canvas.getContext('2d'),custom=(typeof(data.zoom)=='function'),imageData;ctx.drawImage(clrCanvas.zoomImage,clrCanvas.zoomCanvasSize, 0, clrCanvas.zoomCanvasSize, clrCanvas.zoomCanvasSize,0, 0, clrCanvas.zoomCanvasSize, clrCanvas.zoomCanvasSize);var maxX=11, xDiff=5, left=clrCanvas.zoomedX - xDiff, startX=0,maxY=11, yDiff=5, top=clrCanvas.zoomedY - yDiff, startY=0;if(left<0){maxX+=left;startX=0 - left;left=0;}if((left+maxX)>=data.width){maxX=data.width - left;}if(top<0){maxY+=top;startY=0 - top;top=0;}if((top+maxY)>=data.height){maxY=data.height - top;}if(!custom){try{imageData=ctx2.getImageData(left, top, maxX, maxY);}catch(e){clrCanvas.zoomHide(false);clrCanvas['zoomedColor'+box]=false;return false;}}var start=0,color=false,hsl=false;for(var x=0;x<maxX;x++){for(var y=0;y<maxY;y++){start=(x+y * maxX)* 4;if(custom){imageData=data.zoom(left+x, top+y);ctx.fillStyle='rgb('+imageData.r+', '+imageData.g+', '+imageData.b+')';if((x+startX)==5&&(y+startY)==5){color='#'+clrColors.rgb2hex(imageData.r, imageData.g, imageData.b);hsl=clrColors.rgb2hsl(imageData.r, imageData.g, imageData.b);}}else{ctx.fillStyle='rgb('+imageData.data[start+0]+', '+imageData.data[start+1]+', '+imageData.data[start+2]+')';if((x+startX)==5&&(y+startY)==5){color='#'+clrColors.rgb2hex(imageData.data[start+0], imageData.data[start+1], imageData.data[start+2]);hsl=clrColors.rgb2hsl(imageData.data[start+0], imageData.data[start+1], imageData.data[start+2]);}}ctx.fillRect((x+startX)* 4, (y+startY)* 4, 4, 4);}}ctx.drawImage(clrCanvas.zoomImage,0, 0, clrCanvas.zoomCanvasSize, clrCanvas.zoomCanvasSize,0, 0, clrCanvas.zoomCanvasSize, clrCanvas.zoomCanvasSize);var text=color+(hsl===false||hsl.l==0||hsl.l==100||hsl.s==0?'': ' ('+hsl.h+')');clrCanvas['zoomedColor'+box]=color;$('#zoom-text'+box+' .zoom-sample').css('background-color', color);if(box==2){$('#zoom-text2').toggleClass('same', text==$('#zoom-text1 p span').html()?true: false);}$('#zoom-text'+box+' p span').html(text);return true;}};$.fn.clrCanvas=function(params){return clrCanvas.create(this, params);};$.fn.clrCanvasDraw=function(src){return clrCanvas.draw(this, src);};$.fn.clrCanvasDrawCanvas=function(src){return clrCanvas.drawCanvas(this, src);};if(clrBrowser.canvas){clrCanvas.frameImage=new Image();clrCanvas.frameImage.onload=function(){clrCanvas.frameLoaded=true;};clrCanvas.frameImage.src=clrCanvas.frameSample;$(document).ready(function(){$(document.body).append('<div id="zoom" style="display: none;">'+'<div id="zoom-block1"><canvas id="zoom-canvas1" width="'+clrCanvas.zoomCanvasSize+'" height="'+clrCanvas.zoomCanvasSize+'"></canvas></div>'+'<div id="zoom-block2"><canvas id="zoom-canvas2" width="'+clrCanvas.zoomCanvasSize+'" height="'+clrCanvas.zoomCanvasSize+'"></canvas></div>'+'<div id="zoom-text1"><span class="zoom-sample"></span><p>Old Color: <span>#FF0000</span></p></div>'+'<div id="zoom-text2"><span class="zoom-sample"></span><p>New Color: <span>#FF0000</span></p></div>'+'</div>');$('#zoom').mouseover(function(){clrCanvas.zoomHide(false);});clrCanvas.zoomID='zoom';clrCanvas.zoomImage=new Image();clrCanvas.zoomImage.onload=function(){clrCanvas.zoomLoaded=true;};clrCanvas.zoomImage.src=clrCanvas.zoomImageSrc;});}var clrHelp={shown: false,enabled: true,show: function(el, method, text){var help=$('#help').hide();if(!clrHelp.enabled){clrHelp.shown=false;return;}var bodyLeft=Math.max(0, ($(document).width()- $(document.body).width())/ 2),params=method;if(typeof(method)!='string'){var exLeft=typeof(method.left)=='undefined'?0: method.left,exTop=typeof(method.top)=='undefined'?0: method.top;method=method.method;}else{var exLeft=0, exTop=0;}if(clrBrowser.browser=='ie')exLeft+=8;switch(method){case 'left':var left=Math.round(el.offset().left - bodyLeft+exLeft)+'px',top=Math.round(el.offset().top+el.height()+exTop)+'px';break;default:clrHelp.shown=false;return;}help.css({'left': left, 'top': top}).stop(true, true).html(text).fadeIn(clrHelp.shown?0: 500);clrHelp.shown=true;},hide: function(instant){if(instant)$('#help').stop(true, true).hide();if(!clrHelp.shown)return;$('#help').fadeOut(500);clrHelp.shown=false;}};$(document).ready(function(){$(document.body).append('<div id="help" style="display: none;"></div>');$(window).resize(function(){clrHelp.hide(true);});$('#help').mouseover(function(){clrHelp.hide(true);});});var clrSlider={counter: 0,hoverCounter: 0,big:{width: 368,height: 44,paletteLeft: 4,paletteTop: 4,contentWidth: 360,contentHeight: 36,handleHover: 60,handleFocus: 120,handleFocusHover: 180,imageBg: 'url('+clr.pathImages+'slider_bg.png)',imagePalette: 'url('+clr.pathImages+'slider_palette.png)',imageHandle: 'url('+clr.pathImages+'slider_handle.png)',hue:{left: 0,top: 0,min: 0,max: 359,color: 'transparent'},hueDiff:{left: 0,top: 0,min: -180,max: 179,color: 'transparent'},light:{left: 0,top: 42,min: 0,max: 100,color: 'transparent'},lightDiff:{left: 0,top: 42,min: -100,max: 100,color: 'transparent'},sat:{left: 0,top: 84,min: 0,max: 100,color: 'transparent'},satDiff:{left: 0,top: 84,min: -100,max: 100,color: 'transparent'},mix:{left: 360,top: 84,min: 0,max: 100,color: '#000'},rgb:{left: 360,top: 84,min: 0,max: 255,color: '#000'}},hoverCheck: function(item, counter){if(counter==clrSlider.hoverCounter){$(item).clrSlider('hover-focus', true);}}};$.fn.clrSlider=function(action, params){var item=this;function create(){var type=clrSlider[params.type],mode=type[params.mode],offset=(typeof(params.offset)=='undefined')?0: params.offset,value=(typeof(params.value)=='undefined')?0: params.value,color=(typeof(params.color)=='undefined')?mode.color: params.color,focused=(typeof(params.focused)=='undefined')?false: params.focused,top, left;clrSlider.counter++;item.replaceWith('<div id="slider-'+clrSlider.counter+'" class="slider-slider"><'+'/div>');item=$('#slider-'+clrSlider.counter);var data={'type': params.type,'mode': params.mode,'value': value,'moveValue': value,'touchId': false,'offset': offset,'hover': false,'focus': focused,'click': false,'multibg': true,'transition': false,'change': (typeof(params.change)=='undefined')?false: params.change,'params': clr.clone(params, true),'color': color,'bg1': false,'bg1top': 0,'bg1left': 0,'bg2': false,'bg2top': 0,'bg2left': 0,'bg3': false,'bg3top': 0,'bg3left': 0};if(!clrBrowser.multiBg){item.html('<div class="slider-bg"><div class="slider-handle"><'+'/div><'+'/div>');data.multibg=false;}item.css({'display': 'block','width': type.width+'px','height': type.height+'px'});if(typeof(params.css)!=='undefined'){item.css(params.css);}data.bg1=type.imagePalette;data.bg1top=type.paletteTop - mode.top;data.bg1left=type.paletteLeft - offset - mode.left;if(!data.multibg){item.css({'background-image': data.bg1,'background-position': data.bg1left+'px '+data.bg1top+'px','background-repeat': 'no-repeat','background-color': data.color});}data.bg2=type.imageBg;data.bg2top=(focused)?-44: 0;data.bg2left=0;if(!data.multibg){item.find('.slider-bg').css({'width': type.width+'px','height': type.height+'px','background-image': data.bg2,'background-position': data.bg2left+'px '+data.bg2top+'px','background-repeat': 'no-repeat'});}mode.div=type.contentWidth / (mode.max - mode.min);value=Math.max(Math.min(value, mode.max), mode.min);data.bg3=type.imageHandle;data.bg3top=(focused)?0 - type.handleFocus: 0;data.bg3left=0+Math.round((value - mode.min)* mode.div);if(!data.multibg){item.find('.slider-handle').css({'width': type.width+'px','height': type.height+'px','background-image': data.bg3,'background-position': data.bg3left+'px '+data.bg3top+'px','background-repeat': 'no-repeat'});}else{item.css('background', data.bg3+' no-repeat '+data.bg3left+'px '+data.bg3top+'px'+', '+data.bg2+' no-repeat '+data.bg2left+'px '+data.bg2top+'px'+', '+data.color+' '+data.bg1+' no-repeat '+data.bg1left+'px '+data.bg1top+'px');}item.data('clr', data);item.click(function(e){$(this).clrSlider('mouseclick', e);return false;}).mouseover(function(e){$(this).clrSlider('mouseover', e);return false;}).mouseleave(function(e){$(this).clrSlider('mouseleave', e);return false;}).mousedown(function(e){$(this).clrSlider('mousedown', e);return false;}).mouseup(function(e){$(this).clrSlider('mouseup', e);return false;}).mousemove(function(e){$(this).clrSlider('mousemove', e);return false;});if(typeof(item.get(0).ontouchstart)=='object'){var obj=item.get(0);obj.ontouchstart=function(e){$(this).clrSlider('touchstart', e);return false;};obj.ontouchmove=function(e){$(this).clrSlider('touchmove', e);return false;};obj.ontouchend=function(e){$(this).clrSlider('touchend', e);return false;};}};function onChange(value, moving, data){if(typeof(data.change)=='function'){data.change(item, value, moving);}};function mouseClick(){var x=Math.round(params.clientX - item.offset().left),data=item.data('clr'),type=clrSlider[data.type],mode=type[data.mode],value=Math.min(mode.max, Math.max(mode.min, Math.round((x - type.paletteLeft)/ mode.div+mode.min)));if(data.transition)return;if(value!=data.value||data.click){data.click=false;data.value=data.moveValue=value;moveSlider(value, data);onChange(value, false, data);}};function mouseOver(){var data=item.data('clr');if(data.click){if(data.touchId===false){mouseMove();}return;}if(data.hover)return;data.hover=true;if(clrBrowser.hover){moveSlider(data.value, data);}if(!data.focus){clrSlider.hoverCounter++;setTimeout('clrSlider.hoverCheck(\'#'+item.attr('id')+'\', '+clrSlider.hoverCounter+');', 1500);}};function mouseLeave(){var data=item.data('clr');clrSlider.hoverCounter++;if(clrSlider.hoverCounter>1000)clrSlider.hoverCounter -=1000;if(data.click||data.hover){if(data.click){data.value=data.moveValue;onChange(data.value, false, data);}data.click=false;data.touchId=false;data.hover=false;moveSlider(data.value, data);}};function mouseDown(){var x=Math.round(params.clientX - item.offset().left),data=item.data('clr'),type=clrSlider[data.type],mode=type[data.mode],value=Math.min(mode.max, Math.max(mode.min, Math.round((x - type.paletteLeft)/ mode.div+mode.min)));if(data.transition||data.touchId!==false)return;data.click=true;data.moveValue=value;moveSlider(value, data);if(data.value!=data.moveValue){onChange(data.moveValue, true, data);}};function touchStart(){if(params.touches.length==1){var t=params.touches[0],x=Math.round(t.pageX - item.offset().left),data=item.data('clr'),type=clrSlider[data.type],mode=type[data.mode],value=Math.min(mode.max, Math.max(mode.min, Math.round((x - type.paletteLeft)/ mode.div+mode.min)));if(data.transition)return;data.click=true;data.touchId=t.identifier;data.moveValue=value;moveSlider(value, data);if(data.moveValue!=data.value){onChange(data.moveValue, true, data);}}params.preventDefault();};function mouseUp(){var data=item.data('clr');if(!data.click||data.touchId!==false)return;data.click=false;mouseClick();};function touchEnd(){var data=item.data('clr');if(!data.click||!data.touchId){params.preventDefault();return false;}var found=false;for(var i=0;i<params.touches.length;i++){if(params.touches[i].identifier==data.touchId){found=true;break;}}if(!found){data.click=false;data.value=data.moveValue;moveSlider(data.value, data);onChange(data.value, false, data);}params.preventDefault();};function mouseMove(){var data=item.data('clr');if(!data.click||data.touchId!==false)return;var x=Math.round(params.clientX - item.offset().left),type=clrSlider[data.type],mode=type[data.mode],value=Math.min(mode.max, Math.max(mode.min, Math.round((x - type.paletteLeft)/ mode.div+mode.min)));if(data.moveValue!=value){data.moveValue=value;moveSlider(value, data);onChange(data.moveValue, true, data);}};function touchMove(){var data=item.data('clr');if(!data.click||!data.touchId||data.touchId!=params.touches[0].identifier){params.preventDefault();return false;}var t=params.touches[0],x=Math.round(t.pageX - item.offset().left),type=clrSlider[data.type],mode=type[data.mode],value=Math.min(mode.max, Math.max(mode.min, Math.round((x - type.paletteLeft)/ mode.div+mode.min)));if(data.moveValue!=value){data.moveValue=value;moveSlider(value, data);onChange(data.moveValue, true, data);}params.preventDefault();};function moveSlider(value, data){var type=clrSlider[data.type],mode=type[data.mode];data.bg3left=0+Math.round((value - mode.min)* mode.div);data.bg3top=(clrBrowser.hover&&(data.hover||data.click))?(0 - ((data.focus)?type.handleFocusHover: type.handleHover)): ((data.focus)?0 - type.handleFocus: 0);if(data.multibg){item.css('background-position', data.bg3left+'px '+data.bg3top+'px, '+data.bg2left+'px '+data.bg2top+'px, '+data.bg1left+'px '+data.bg1top+'px');}else{item.find('.slider-handle').css('background-position', data.bg3left+'px '+data.bg3top+'px');}};function value(){var data=item.data('clr');if(typeof(params)=='boolean'){return data.value;}var old=data.value,type=clrSlider[data.type],mode=type[data.mode];data.value=data.tempValue=Math.max(Math.min(params, mode.max), mode.min);moveSlider(data.value, data);return old;};function offset(){var data=item.data('clr');if(typeof(params)=='boolean'){return data.offset;}var old=data.offset,type=clrSlider[data.type];data.bg1top=type.paletteTop,data.bg1left=type.paletteLeft - params;data.offset=params;if(data.multibg){item.css('background-position', data.bg3left+'px '+data.bg3top+'px, '+data.bg2left+'px '+data.bg2top+'px, '+data.bg1left+'px '+data.bg1top+'px');}else{item.css('background-position', data.bg1left+'px '+data.bg1top+'px');}return old;};function focus(){var data=item.data('clr'),value=(typeof(params)=='boolean')?params:!data.focus;if(value==data.focus)return false;data.focus=value;moveSlider(data.value, data);};function hoverFocus(){var data=item.data('clr');if(!data.click){onChange(false, false, data);}};function switchMode(){var data=item.data('clr');if(typeof(params)=='string'){params={'mode': params};}if(!clrBrowser.transform){setData();return;}if(data.tempMode==params.mode)return;data.tempMode=params.mode;{var flip={'duration': (data.click)?0: ((clrBrowser.iPhone)?200: 300),'degrees': 5,'params': params,'transition': function(item, data){item.clrSlider('set', data.params);},'complete': function(item, data){item.clrSlider('transition-complete', true);},'vertical': true,'reverse': true};data.transition=true;item.clrFlip(flip);}};function color(value){var data=item.data('clr');data.color=value;item.css('background-color', data.color);};function setData(){var data=item.data('clr'),type=clrSlider[data.type],value,bg1=false,bg3=false;if(typeof(params.mode)=='string'&&data.mode!=params.mode&&type[params.mode]){data.mode=params.mode;data.tempMode=params.mode;data.value=0;data.moveValue=0;data.color=type[data.mode].color;data.click=false;type[data.mode].div=type.contentWidth / (type[data.mode].max - type[data.mode].min);bg1=true;bg3=true;}if(typeof(params.offset)=='number'&&data.offset!=params.offset){data.offset=params.offset;bg1=true;}if(typeof(params.color)=='string'&&data.color!=params.color){data.color=params.color;bg1=true;}if(typeof(params.value)=='number'&&params.value!=data.value){data.value=params.value;data.moveValue=params.value;data.click=false;bg3=true;}if(!bg1&&!bg3)return;var mode=type[data.mode];data.bg1top=type.paletteTop - mode.top;data.bg1left=type.paletteLeft - data.offset - mode.left;if(bg1&&!data.multibg){item.css({'background-image': data.bg1,'background-position': data.bg1left+'px '+data.bg1top+'px','background-repeat': 'no-repeat','background-color': data.color});}else if(bg1){item.css('background-color', data.color);}data.bg3left=0+Math.round((data.value - mode.min)* mode.div);data.bg3top=(clrBrowser.hover&&(data.hover||data.click))?(0 - ((data.focus)?type.handleFocusHover: type.handleHover)): ((data.focus)?0 - type.handleFocus: 0);if(data.multibg){var str=data.bg3left+'px '+data.bg3top+'px, '+data.bg2left+'px '+data.bg2top+'px, '+data.bg1left+'px '+data.bg1top+'px';item.css('background-position', str);}else{item.find('.slider-handle').css('background-position', data.bg3left+'px '+data.bg3top+'px');}};function transitionComplete(){var data=item.data('clr');data.transition=false;};switch(action){case 'create':create();break;case 'append':item.append('<div id="slider-'+clrSlider.counter+'-temp"><'+'/div>');item=$('#slider-'+clrSlider.counter+'-temp');create();break;case 'prepend':item.prepend('<div id="slider-'+clrSlider.counter+'-temp"><'+'/div>');item=$('#slider-'+clrSlider.counter+'-temp');create();break;case 'mouseclick':mouseClick();return false;case 'mouseover':mouseOver();return false;case 'mouseleave':mouseLeave();return false;case 'mousedown':mouseDown();return false;case 'mouseup':mouseUp();return false;case 'mousemove':mouseMove();return false;case 'touchstart':touchStart();return false;case 'touchmove':touchMove();return false;case 'touchend':touchEnd();return false;case 'value':return value();case 'offset':return offset();case 'focus':focus();break;case 'hover-focus':hoverFocus();break;case 'color':color(params);break;case 'switchmode':switchMode();break;case 'set':setData();break;case 'transition-complete':transitionComplete();break;}return item;};var clrSliderBlock={counter: 0,focus: 0,str2data: function(str){var data=clrSliderBlock.decodeString(str);data=clrSliderBlock.blankData((data===false)?{}: data, false);return clrSliderBlock.getData(false, data);},decodeString: function(str){function next(){if(!str.length)return false;c=str.slice(0, 1);str=str.slice(1);return true;};function parse(){var result;if(!str.length){data.color='#FF0000';return;}data.lumSmooth=2;next();switch(c){case 'H':data.colorMode='hue';break;case 'N':data.colorMode='nearest';break;case 'G':data.colorMode='gray';break;case 'A':data.colorMode='all';break;case '#':c=clrColors.color('#'+str);if(c===false)return;str='';data.color=c.hex;data.colorMode=(c.gray)?'gray': 'hue';return;default: return;}if(data.colorMode!='all'){result=clrURLs.decodeString(str);if(result===false)return;str=str.slice(result.length);data.color='#'+result.value;}if(!next())return;if(c=='M'){c=parseInt(str.slice(0, 1), 10);str=str.slice(1);switch(c){case 1:data.mode='hue';break;case 2:data.mode='lum';break;case 3:data.mode='sat';break;case 4:data.mode='mix';break;default:return;}if(!next())return;}if(c=='D'){data.enabled=false;if(!next())return;}if(c=='h'){result=clrURLs.decode32(str);if(result===false)return;data.hue=result.value - 180;str=str.slice(result.length);if(!next())return;}if(c=='H'){result=clrURLs.decode32(str);if(result===false)return;data.hueRange=result.value;str=str.slice(result.length);if(!next())return;}if(c=='l'){result=clrURLs.decode32(str);if(result===false)return;data.lum=result.value - 100;str=str.slice(result.length);data.lumSmooth=1;if(!next())return;}if(c=='s'){result=clrURLs.decode32(str);if(result===false)return;data.sat=result.value - 100;str=str.slice(result.length);if(!next())return;}if(c=='m'){result=clrURLs.decode32(str);if(result===false)return;data.mix=result.value;str=str.slice(result.length);data.mixSet=true;if(!next())return;}if(c=='n'){result=clrURLs.decodeString(str);if(result===false)return;data.mixColor='#'+result.value;str=str.slice(result.length);data.mixSet=true;if(!next())return;}if(c=='g'){data.nonGray=false;if(!next())return;}if(c=='L'){data.lumSmooth=0;if(!next())return;}if(c=='O'){data.lumSmooth=2;if(!next())return;}if(c=='S'){data.satSmooth=0;if(!next())return;}if(c=='T'){data.satSmooth=2;if(!next())return;}if(c=='P'){data.mixSkipLum=true;if(!next())return;}if(c=='U'){data.mixSkipSat=true;if(!next())return;}}var data={'mode': 'hue','color': false,'enabled': true,'colorMode': 'hue','nonGray': true,'hue': 0,'hueRange': 45,'lum': 0,'lumSmooth': 1,'sat': 0,'satSmooth': 1,'mix': 0,'mixColor': false,'mixSet': false,'mixSkipLum': false,'mixSkipSat': false}, c;parse();if(str.length)return false;return data;},blankData: function(data, item){var baseData={'mode': 'hue','transitionMode': false,'color': false,'link': (clrBrowser.hover)?'a': 'p','focus': false,'autoHide': false,'enabled': true,'lastData': false,'lastKey': false,'colorMode': 'hue','nonGray': true,'hue': 0,'hueRange': 45,'lum': 0,'lumSmooth': 1,'sat': 0,'satSmooth': 1,'mix': 0,'mixColor': false,'mixSet': false,'mixSkipLum': false,'mixSkipSat': false,'onchange': false,'onsetchange': false,'ondrag': false,'ondelete': false,'oncandelete': false};data=$.extend(baseData, data);if(!data.counter&&item!==false){data.counter=clrSliderBlock.counter+1;clrSliderBlock.counter++;item.attr('id', 'slider-block-'+data.counter);}if(data.color===false)data.color='#FF0000';data.color=clrColors.color(data.color);if(data.mixColor===false)data.mixColor='#FF0000';data.mixColor=clrColors.color(data.mixColor);return data;},getString: function(full, data){if(!data.enabled&&!full)return '';if(!full&&data.lastKey){return data.lastKey;}var str='';switch(data.colorMode){case 'hue':str+='H';break;case 'nearest':str+='N';break;case 'gray':str+='G';break;case 'all':str+='A';break;default:return '';}if(data.colorMode!='all'){str+=clrURLs.encodeString(data.color.hex.slice(1));}if(full){switch(data.mode){case 'hue':str+='M1';break;case 'lum':str+='M2';break;case 'sat':str+='M3';break;case 'mix':str+='M4';break;}if(!data.enabled){str+='D';}}if(data.hue!=0)str+='h'+clrURLs.encode32(data.hue+180);if(data.hueRange!=45)str+='H'+clrURLs.encode32(data.hueRange);if(data.lum!=0)str+='l'+clrURLs.encode32(data.lum+100);if(data.sat!=0)str+='s'+clrURLs.encode32(data.sat+100);if(data.mix!=0)str+='m'+clrURLs.encode32(data.mix);if(data.mix!=0||data.mixSet)str+='n'+clrURLs.encodeString(data.mixColor.hex.slice(1));if(!data.nonGray)str+='g';if(data.lumSmooth==0)str+='L';if(data.lumSmooth==2)str+='O';if(data.satSmooth==0)str+='S';if(data.satSmooth==2)str+='T';if(data.mixSkipLum)str+='P';if(data.mixSkipSat)str+='U';if(!full&&arguments.length==1&&data.lastKey)data.lastKey=str;return str;},getData: function(full, data){if(!full&&data.lastData!==false){return data.lastData;}var result={'enabled': data.enabled,'color': (full)?clr.clone(data.color, true): data.color.hex,'colorMode': data.colorMode,'nonGray': data.nonGray,'hue': data.hue,'hueRange': data.hueRange,'lum': data.lum,'lumSmooth': data.lumSmooth,'sat': data.sat,'satSmooth': data.satSmooth,'mix': data.mix,'mixColor': (full)?clr.clone(data.mixColor, true): data.mixColor.hex,'mixSkipLum': data.mixSkipLum,'mixSkipSat': data.mixSkipSat,'mixRGB': clr.clone(data.mixColor.rgb),'hueHue': (data.color===false)?0: data.color.hsl.h,'skip':!data.enabled};switch(data.colorMode){case 'hue':case 'nearest':if(data.hue==0&&data.sat==0&&data.lum==0&&data.mix==0)result.skip=true;break;case 'all':if(data.hue==0&&data.sat==0&&data.lum==0&&data.mix==0)result.skip=true;break;case 'gray':if(data.lum==0&&data.mix==0)result.skip=true;break;}if(data.colorMode=='nearest'||data.colorMode=='gray'){result.colorRGB=clr.clone(data.color.rgb);if(data.colorMode=='gray'){result.colorAVG=(data.color.rgb.r+data.color.rgb.g+data.color.rgb.b)/ 3;}}if(data.mix>0){result.mix2=data.mix / 100;result.mix1=1 - result.mix2;}if(full){result=$.extend(result,{'mode': data.mode,'focus': data.focus,'mixSet': data.mixSet});}else{data.lastData=result;}return result;}};$.fn.clrSliderBlock=function(action, params){var item=this;if(item.length!=1||item.hasClass('deleted'))return false;function create(){var baseData={'counter': clrSliderBlock.counter+1,'mode': 'hue','transitionMode': false,'color': false,'link': (clrBrowser.hover)?'a': 'p','focus': false,'autoHide': item.parents('div.slider-set:first').clrSliderSet('check-auto-hide', true),'enabled': true,'lastData': false,'lastKey': false,'colorMode': 'hue','nonGray': true,'hue': 0,'hueRange': 45,'lum': 0,'lumSmooth': 2,'sat': 0,'satSmooth': 1,'mix': 0,'mixColor': false,'mixSet': false,'mixSkipLum': false,'mixSkipSat': false,'onchange': false,'onsetchange': false,'ondrag': false,'ondelete': false,'oncandelete': false};if(typeof(params)=='string'){params=clrSliderBlock.decodeString(params);}else if(typeof(params.data)=='string'){params=$.extend(clrSliderBlock.decodeString(params.data), params);}var data=parseParams(baseData, params);if(!data){data=clrSliderBlock.blankData(baseData, item);}clrSliderBlock.counter++;item.replaceWith('<div id="slider-block-'+clrSliderBlock.counter+'" class="slider'+((clrBrowser.iPhone)?' buttons-big': ' buttons-small')+'">'+'<div class="slider-block-wrapper">'+'<div class="slider-top">'+'<div class="slider-mode">'+'<'+data.link+' href="javascript:void(0);" onmouseover="$(\'#slider-block-'+clrSliderBlock.counter+'\').clrSliderBlock(\'help\', \'mode-hue\', $(this));" onclick="$(\'#slider-block-'+clrSliderBlock.counter+'\').clrSliderBlock(\'mode\', \'hue\');return false;" class="slider-mode-hue"><span>Hue</span></'+data.link+'>'+'<'+data.link+' href="javascript:void(0);" onmouseover="$(\'#slider-block-'+clrSliderBlock.counter+'\').clrSliderBlock(\'help\', \'mode-lum\', $(this));" onclick="$(\'#slider-block-'+clrSliderBlock.counter+'\').clrSliderBlock(\'mode\', \'lum\');return false;" class="slider-mode-lum"><span>Lightness</span></'+data.link+'>'+'<'+data.link+' href="javascript:void(0);" onmouseover="$(\'#slider-block-'+clrSliderBlock.counter+'\').clrSliderBlock(\'help\', \'mode-sat\', $(this));" onclick="$(\'#slider-block-'+clrSliderBlock.counter+'\').clrSliderBlock(\'mode\', \'sat\');return false;" class="slider-mode-sat"><span>Saturation</span></'+data.link+'>'+'<'+data.link+' href="javascript:void(0);" onmouseover="$(\'#slider-block-'+clrSliderBlock.counter+'\').clrSliderBlock(\'help\', \'mode-mix\', $(this));" onclick="$(\'#slider-block-'+clrSliderBlock.counter+'\').clrSliderBlock(\'mode\', \'mix\');return false;" class="slider-mode-mix last"><span>Mixer</span></'+data.link+'>'+'</div>'+'<'+data.link+' href="javascript:void(0);" onmouseover="$(\'#slider-block-'+clrSliderBlock.counter+'\').clrSliderBlock(\'help\', \'options\', $(this));" onclick="$(\'#slider-block-'+clrSliderBlock.counter+'\').clrSliderBlock(\'options\', false);return false;" class="slider-options"><span>Options</span></'+data.link+'>'+'<div class="slider-mode2">'+'<'+data.link+' href="javascript:void(0);" onmouseover="$(\'#slider-block-'+clrSliderBlock.counter+'\').clrSliderBlock(\'help\', \'mode2-0\', $(this));" onclick="$(\'#slider-block-'+clrSliderBlock.counter+'\').clrSliderBlock(\'mode2\', 0);return false;" class="slider-mode2-0"><span></span></'+data.link+'>'+'<'+data.link+' href="javascript:void(0);" onmouseover="$(\'#slider-block-'+clrSliderBlock.counter+'\').clrSliderBlock(\'help\', \'mode2-1\', $(this));" onclick="$(\'#slider-block-'+clrSliderBlock.counter+'\').clrSliderBlock(\'mode2\', 1);return false;" class="slider-mode2-1"><span></span></'+data.link+'>'+'<'+data.link+' href="javascript:void(0);" onmouseover="$(\'#slider-block-'+clrSliderBlock.counter+'\').clrSliderBlock(\'help\', \'mode2-2\', $(this));" onclick="$(\'#slider-block-'+clrSliderBlock.counter+'\').clrSliderBlock(\'mode2\', 2);return false;" class="slider-mode2-2"><span></span></'+data.link+'>'+'</div>'+'</div>'+'<div class="slider-middle">'+'<'+data.link+' href="javascript:void(0);" onmouseover="$(\'#slider-block-'+clrSliderBlock.counter+'\').clrSliderBlock(\'help\', \'src\', $(this));" onclick="$(\'#slider-block-'+clrSliderBlock.counter+'\').clrSliderBlock(\'src\', false);return false;" class="slider-src"><span>Source Color</span></'+data.link+'>'+'<div class="slider-slider"></div>'+'<'+data.link+' href="javascript:void(0);" onclick="$(\'#slider-block-'+clrSliderBlock.counter+'\').clrSliderBlock(\'do-focus\', 0);return false;" class="slider-expand" onmouseover="$(\'#slider-block-'+clrSliderBlock.counter+'\').clrSliderBlock(\'help\', \'expand\', $(this));"><span>&nbsp;</span></'+data.link+'>'+'</div>'+'<div class="slider-bottom">'+'<div class="slider-right">'+'<'+data.link+' href="javascript:void(0);" onclick="$(\'#slider-block-'+clrSliderBlock.counter+'\').clrSliderBlock(\'inc\', 1);return false;" class="slider-add"><span>+</span></'+data.link+'>'+'<span class="slider-input"><input type="text" value="" /></span>'+'<'+data.link+' href="javascript:void(0);" onclick="$(\'#slider-block-'+clrSliderBlock.counter+'\').clrSliderBlock(\'inc\', -1);return false;" class="slider-dec"><span>-</span></'+data.link+'>'+'<'+data.link+' href="javascript:void(0);" onmouseover="$(\'#slider-block-'+clrSliderBlock.counter+'\').clrSliderBlock(\'help\', \'hex\', $(this));" onclick="$(\'#slider-block-'+clrSliderBlock.counter+'\').clrSliderBlock(\'hex\', false);return false;" class="slider-hex"><span>#<span class="slider-r">00</span><span class="slider-g">00</span><span class="slider-b">00</span></span></'+data.link+'>'+'<'+data.link+' href="javascript:void(0);" onmouseover="$(\'#slider-block-'+clrSliderBlock.counter+'\').clrSliderBlock(\'help\', \'match\', $(this));" onclick="$(\'#slider-block-'+clrSliderBlock.counter+'\').clrSliderBlock(\'match\', false);return false;" class="slider-color"><span>match color</span></'+data.link+'>'+'</div>'+'<'+data.link+' href="javascript:void(0);" onmouseover="$(\'#slider-block-'+clrSliderBlock.counter+'\').clrSliderBlock(\'help\', \'up\', $(this));" onclick="$(\'#slider-block-'+clrSliderBlock.counter+'\').clrSliderBlock(\'move\', \'up\');return false;" class="slider-up"><span>Move Up</span></'+data.link+'>'+'<'+data.link+' href="javascript:void(0);" onmouseover="$(\'#slider-block-'+clrSliderBlock.counter+'\').clrSliderBlock(\'help\', \'down\', $(this));" onclick="$(\'#slider-block-'+clrSliderBlock.counter+'\').clrSliderBlock(\'move\', \'down\');return false;" class="slider-down"><span>Move Down</span></'+data.link+'>'+'<'+data.link+' href="javascript:void(0);" onmouseover="$(\'#slider-block-'+clrSliderBlock.counter+'\').clrSliderBlock(\'help\', \'delete\', $(this));" onclick="$(\'#slider-block-'+clrSliderBlock.counter+'\').clrSliderBlock(\'delete\', false);return false;" class="slider-delete"><span>Delete</span></'+data.link+'>'+'<'+data.link+' href="javascript:void(0);" onmouseover="$(\'#slider-block-'+clrSliderBlock.counter+'\').clrSliderBlock(\'help\', \'disable\', $(this));" onclick="if(!$(this).hasClass(\'transition\')){$(\'#slider-block-'+clrSliderBlock.counter+'\').clrSliderBlock(\'disable\', $(this).hasClass(\'selected\'));}return false;" class="slider-disable"><span>Disable/Enable</span></'+data.link+'>'+'</div>'+'</div>'+'</div>');item=$('#slider-block-'+clrSliderBlock.counter);var slider={'type': 'big','focused': (clrBrowser.hover)?data.focus: false,'change': function(item, value, moving){item.parents('div.slider:first').clrSliderBlock('slider-changed',{'value': value, 'moving': moving});},'value': data[data.mode]};if(data.mode!='mix'){item.find('.slider-hex').hide();}if(data.mode=='mix'||data.colorMode=='all'||data.colorMode=='gray'){item.find('.slider-color').hide();}switch(data.mode){case 'hue':slider.mode='hueDiff';slider.offset=180+Math.round(data.color.hsl.h);if(slider.offset >=360)slider.offset -=360;break;case 'sat':slider.mode='satDiff';break;case 'lum':slider.mode='lightDiff';break;case 'mix':slider.mode='mix';slider.color=data.mixColor.hex;showMixer(data);break;}item.find('div.slider-slider').clrSlider('create', slider);eval("item.find('div.slider-slider').mouseover(function(){$(\'#slider-block-"+clrSliderBlock.counter+"\').clrSliderBlock(\'help\', \'tar\', $(this));});");updateCode(data, false);item.data('clr', data);item.find('input').bind('change keyup blur', function(){var value=parseInt(this.value.slice(0, 4), 10);if(!isNaN(value)&&value.toString()==this.value){$(this).parents('.slider:first').clrSliderBlock('input', value);}});if(data.focus){clrSliderBlock.focus=data.counter;if(typeof(data.oncandelete)=='function'){item.find('.slider-delete').css('display', (data.oncandelete(item, data))?'': 'none');}}item.parents('div.slider-set:first').clrSliderSet('update-total', true);};function parseParams(data, params){if(typeof(params)!='object')return;data=$.extend(data, params);if(data.color===false)data.color=clrColors.color('#FF0000');else data.color=clrColors.color(data.color);if(data.mixColor===false){data.mixColor=clr.clone(data.color, true);if(data.mix>0&&typeof(params.mixSet)=='undefined')data.mixSet=true;}else{data.mixColor=clrColors.color(data.mixColor);if(typeof(params.mixSet)=='undefined')data.mixSet=true;}if(data.colorMode!='all'&&data.color.gray)data.colorMode='gray';if(data.colorMode=='gray'&&(data.mode=='hue'||data.mode=='sat'))data.mode='lum';data.transitionMode=false;data.lastData=false;data.lastKey=false;return data;};function updateCode(data, full){item.toggleClass('slider-expanded', data.focus||!data.autoHide);item.toggleClass('slider-disabled',!data.enabled);item.find('div.slider-top, div.slider-bottom').css('display', (data.focus||!data.autoHide)?'': 'none');var row=item.find('div.slider-mode');row.find(data.link).removeClass('selected');row.find('.slider-mode-'+data.mode).addClass('selected');toggleColorMode(data.colorMode);row.find('.slider-mode-hue').toggleClass('active',!(data.hue==0));row.find('.slider-mode-lum').toggleClass('active',!(data.lum==0));row.find('.slider-mode-sat').toggleClass('active',!(data.sat==0));row.find('.slider-mode-mix').toggleClass('active',!(data.mix==0));row=item.find('div.slider-middle');row.find('.slider-src').toggleClass('all', (data.colorMode=='all')).css('background-color', ((data.colorMode=='all')?'transparent': data.color.hex));row.find('.slider-expand span').html(data[data.mode]).toggleClass('slider-expand-neg', data[data.mode]<0);row=item.find('div.slider-bottom');row.find('span.slider-input input').val(data[data.mode]);row.find('.slider-disable').toggleClass('selected',!data.enabled);switch(data.mode){case 'lum':item.find('div.slider-mode2').css('display', '').find('a').removeClass('active');item.find('div.slider-mode2 .slider-mode2-'+data.lumSmooth).addClass('active');break;case 'sat':item.find('div.slider-mode2').css('display', '').find('a').removeClass('active');item.find('div.slider-mode2 .slider-mode2-'+data.satSmooth).addClass('active');break;default:item.find('div.slider-mode2').css('display', 'none');}if(data.mode=='mix'){showMixer(data);}else{row.find('.slider-hex').hide();}if(data.mode=='mix'||data.colorMode=='all'||data.colorMode=='gray'){row.find('.slider-color').hide();}else{row.find('.slider-color').show();}if(data.mode=='hue'&&data.colorMode=='gray'){mode('lum', data);}else if(data.mode=='sat'&&data.colorMode=='gray'){mode('lum', data);}else if(full){var params={'mode': 'hueDiff','offset': 0,'value': data[data.mode]};switch(data.mode){case 'hue':params.offset=180+Math.round(data.color.hsl.h);if(params.offset >=360)params.offset -=360;break;case 'sat':params.mode='satDiff';break;case 'lum':params.mode='lightDiff';break;case 'mix':params.mode='mix';params.color=data.mixColor.hex;break;}item.find('div.slider-slider').clrSlider('set', params);}};function setData(params){if(params===false)return false;if(typeof(params)=='string'){params=clrSliderBlock.decodeString(params);}else if(typeof(params.data)=='string'){params=$.extend(clrSliderBlock.decodeString(params.data), params);}var data=$.extend(item.data('clr'),{'mode': 'hue','transitionMode': false,'lastData': false,'lastKey': false,'color': false,'enabled': true,'colorMode': 'hue','nonGray': true,'hue': 0,'lum': 0,'lumSmooth': 1,'sat': 0,'satSmooth': 1,'mix': 0,'mixColor': false,'mixSet': false,'mixSkipLum': false,'mixSkipSat': false});data=parseParams(data, params);item.data('clr', data);updateCode(data, true);if(data.focus){clrSliderBlock.focus=data.counter;}if(data.focus||!data.autoHide){if(typeof(data.oncandelete)=='function'){item.find('.slider-delete').css('display', (data.oncandelete(item, data))?'': 'none');}}return true;};function toggleColorMode(colorMode){var row=item.find('div.slider-mode'),gray=(colorMode=='gray'),all=(colorMode=='all');row.find('.slider-mode-hue').toggleClass('first',!gray).css('display', gray?'none': '');row.find('.slider-mode-lum').toggleClass('first', gray);row.find('.slider-mode-sat').css('display', (gray)?'none': '');};function focus(f){var data=item.data('clr'),value=(typeof(f)=='boolean')?f:!data.focus,forceHide=(typeof(f)=='string')?true: false;if(!forceHide){if(value==data.focus)return false;data.focus=value;}else{data.focus=!item.hasClass('slider-expanded');}if(data.focus){if(clrSliderBlock.focus>0&&clrSliderBlock.focus!=data.counter){$('#slider-block-'+clrSliderBlock.focus).clrSliderBlock('focus', false);}clrSliderBlock.focus=data.counter;if(typeof(data.oncandelete)=='function'){item.find('.slider-delete').css('display', (data.oncandelete(item, data))?'': 'none');}if(!item.hasClass('slider-expanded')){item.addClass('slider-expanded').find('div.slider-top, div.slider-bottom').slideDown(100);}}else{if((data.autoHide||forceHide)&&item.hasClass('slider-expanded')){item.removeClass('slider-expanded').find('div.slider-top, div.slider-bottom').slideUp(100);}if(clrSliderBlock.focus=data.counter){clrSliderBlock.focus=0;}}if(clrBrowser.hover){item.find('div.slider-slider').clrSlider('focus', data.focus);}};function autoHide(hide){var data=item.data('clr');if(data.autoHide==hide)return;data.autoHide=hide;if(!data.focus&&hide){item.removeClass('slider-expanded').find('div.slider-top, div.slider-bottom').slideUp(100);}};function disable(value){var data=item.data('clr');if(data.enabled==value)return;data.enabled=!data.enabled;item.toggleClass('slider-disabled',!data.enabled);if((data.focus||!data.autoHide)&&clrBrowser.transform){var flip=item.find('.slider-disable').addClass('transition');flip.clrFlip({'duration': (clrBrowser.iPhone)?200: 400,'transition': function(item){item.toggleClass('selected');},'complete': function(item){item.removeClass('transition');},'reverse': flip.hasClass('selected')});}else{item.find('.slider-disable').toggleClass('selected');}changed(data);};function sliderChanged(value, moving){var data=item.data('clr');if(value===false){focus(true);return;}value=min_max(data.mode, value);item.find('.slider-expand span').html(value).toggleClass('slider-expand-neg', value<0);if(!moving){if(value==data[data.mode])return;data[data.mode]=value;item.find('span.slider-input input').val(value);if(!data.focus){focus(true);}changed(data);}else{if(typeof(data.ondrag)=='function'){var lastData=data.lastData,lastKey=data.lastKey,old=data[data.mode];data[data.mode]=value;data.lastData=false;data.lastKey=false;data.lastData=clrSliderBlock.getData(false, data);data.lastKey=clrSliderBlock.getString(true, data);data.ondrag(item, data.lastData, data.lastKey);data.lastData=lastData;data.lastKey=lastKey;data[data.mode]=old;}}};function inc(value){var data=item.data('clr'),value=data[data.mode]+value;if(data.mode=='hue'&&value==-181)value+=360;if(data.mode=='hue'&&value==180)value -=360;value=min_max(data.mode, value);if(value==data[data.mode])return;data[data.mode]=value;item.find('span.slider-input input').val(value);item.find('.slider-expand span').html(value).toggleClass('slider-expand-neg', value<0);item.find('div.slider-slider').clrSlider('value', value);changed(data);};function input(){var data=item.data('clr'),value=min_max(data.mode, Math.round(params));if(value!=params||value==data[data.mode]){return;}data[data.mode]=value;item.find('.slider-expand span').html(value).toggleClass('slider-expand-neg', value<0);item.find('div.slider-slider').clrSlider('value', value);changed(data);};function mode(mode){var data=data=(arguments.length<2)?item.data('clr'): arguments[1];if(data.mode==mode)return;item.find('.slider-mode-'+data.mode).toggleClass('selected').toggleClass('active', (data[data.mode]!=0));item.find('.slider-mode-'+mode).toggleClass('selected').removeClass('active');data.mode=mode;item.find('span.slider-input input').val(data[data.mode]);item.find('.slider-expand span').html(data[data.mode]).toggleClass('slider-expand-neg', data[data.mode]<0);var params={'mode': 'hueDiff','offset': 0,'value': data[data.mode]};if(mode=='mix'||data.colorMode=='all'||data.colorMode=='gray'){item.find('.slider-color').hide();}else{item.find('.slider-color').show();}switch(mode){case 'hue':params.offset=180+Math.round(data.color.hsl.h);if(params.offset >=360)params.offset -=360;item.find('.slider-hex').hide();item.find('div.slider-mode2').css('display', 'none');break;case 'sat':params.mode='satDiff';item.find('.slider-hex').hide();item.find('div.slider-mode2').css('display', '').find('a').removeClass('active');item.find('div.slider-mode2 .slider-mode2-'+data.satSmooth).addClass('active');break;case 'lum':params.mode='lightDiff';item.find('.slider-hex').hide();item.find('div.slider-mode2').css('display', '').find('a').removeClass('active');item.find('div.slider-mode2 .slider-mode2-'+data.lumSmooth).addClass('active');break;case 'mix':params.mode='mix';params.color=data.mixColor.hex;item.find('div.slider-mode2').css('display', 'none');showMixer(data);break;}item.find('div.slider-slider').clrSlider('switchmode', params);if(data.mode=='mix'&&!data.mixSet){showMixColor(data);}};function mode2(value){var data=data=(arguments.length<2)?item.data('clr'): arguments[1];switch(data.mode){case 'lum':if(data.lumSmooth==value)return;data.lumSmooth=value;break;case 'sat':if(data.satSmooth==value)return;data.satSmooth=value;break;default: return;}item.find('div.slider-mode2 a').removeClass('active');item.find('div.slider-mode2 .slider-mode2-'+value).addClass('active');changed(data);};function setMixColor(params, updated){var data=item.data('clr'),color=params.color;if(updated){data.mixSet=true;}data.mixColor=clr.clone(color, true);data.mixSkipSat=params.mixSkipSat;data.mixSkipLum=params.mixSkipLum;showMixer(data);if(data.mode=='mix'){item.find('div.slider-slider').clrSlider('color', color.hex);}if(data.mix>0){changed(data);}};function setSrcColor(params){var data=item.data('clr'),color=params.color;if(params.color===false){data.color=clrColor.color('#FF0000');data.colorMode='all';item.find('.slider-src').css('background-color', 'transparent');}else{data.color=clr.clone(color, true);data.colorMode=(data.color.gray)?'gray': ((params.mode)?params.mode: 'hue');item.find('.slider-src').css('background-color', data.color.hex);}toggleColorMode(data.colorMode);if(data.colorMode=='gray'&&(data.mode=='hue'||data.mode=='sat')){mode('lum', data);}else if(data.mode=='hue'){var offset=180+Math.round(data.color.hsl.h);if(offset >=360)offset -=360;item.find('div.slider-slider').clrSlider('offset', offset);}if(data.mode=='mix'||data.colorMode=='all'||data.colorMode=='gray'){item.find('.slider-color').hide();}else{item.find('.slider-color').show();}changed(data);};function setMatchColor(params){function setValue(value){item.find('span.slider-input input').val(value);item.find('.slider-expand span').html(value).toggleClass('slider-expand-neg', value<0);item.find('div.slider-slider').clrSlider('value', value);};var data=item.data('clr'),color=params.color,updated=false,row=item.find('div.slider-mode');clrPopup.matchSkipHue=params.matchSkipHue;clrPopup.matchSkipLum=params.matchSkipLum;clrPopup.matchSkipSat=params.matchSkipSat;clrPopup.matchResetHue=params.matchResetHue;clrPopup.matchResetLum=params.matchResetLum;clrPopup.matchResetSat=params.matchResetSat;clrPopup.matchLinearLum=params.matchLinearLum;clrPopup.matchLinearSat=params.matchLinearSat;var value=data.hue;if(params.matchSkipHue){if(params.matchResetHue)value=0;}else if(!color.gray&&!data.color.gray){value=Math.round(color.hsl.h - data.color.hsl.h);if(value >=180)value -=360;if(value<-180)value+=360;}if(value!=data.hue){data.hue=value;updated=true;if(data.mode=='hue')setValue(value);row.find('.slider-mode-hue').toggleClass('active',!(data.hue==0));}value=data.lum;if(params.matchSkipLum){if(params.matchResetLum)value=0;}else{var linear=color.hsl.l - data.color.hsl.l,relative=(linear>0)?((data.color.hsl.l==-100)?999:(color.hsl.l - data.color.hsl.l)/ (100 - data.color.hsl.l)* 100):((color.hsl.l>0)?color.hsl.l * 100 / data.color.hsl.l - 100:-999);if(relative>-100&&relative<100&&!params.matchLinearLum){data.lumSmooth=1;value=Math.round(relative);}else{data.lumSmooth=0;value=Math.round(linear);}updated=true;}if(value!=data.lum){data.lum=value;updated=true;if(data.mode=='lum')setValue(value);row.find('.slider-mode-lum').toggleClass('active',!(data.lum==0));}value=data.sat;if(params.matchSkipSat){if(params.matchResetSat)value=0;}else{if(data.color.hsl.s>0&&color.hsl.s==0){data.satSmooth=1;value=-100;}else{var linear=color.hsl.s - data.color.hsl.s,relative=(linear>0)?((data.color.hsl.s==-100)?999:(color.hsl.s - data.color.hsl.s)/ (100 - data.color.hsl.s)* 100):((color.hsl.s>0)?color.hsl.s * 100 / data.color.hsl.s - 100:-999);if(relative>-100&&relative<100&&!params.matchLinearSat){data.satSmooth=1;value=Math.round(relative);}else{data.satSmooth=0;value=Math.round(linear);}}updated=true;}if(value!=data.sat){data.sat=value;updated=true;if(data.mode=='sat')setValue(value);row.find('.slider-mode-sat').toggleClass('active',!(data.sat==0));}if(updated){changed(data);}};function getSamples(){var row=item.parents('.has-samples:first');return (row.length)?row.data('clr').samples: false;};function showMixer(data){var row=item.find('.slider-hex'),str=data.mixColor.hex.toUpperCase();if(str.length==4){str='#'+str.slice(1, 2)+str.slice(1, 2)+str.slice(2, 3)+str.slice(2, 3)+str.slice(3, 4)+str.slice(3, 4);}row.find('.slider-r').html(str.slice(1, 3));row.find('.slider-g').html(str.slice(3, 5));row.find('.slider-b').html(str.slice(5, 7));row.show();};function showMixColor(){var data=(arguments.length==0)?item.data('clr'): arguments[0],popup={'title': 'Select color to paint over original color.','subtitle': 'Colors will be mixed, use options below color picker to select which color components will be used in the mix.','type': 'color','color': data.mixColor,'samples': getSamples(),'submit': function(data){$('#'+data.caller).find('.slider-hex').removeClass('clicked');$('#'+data.caller).clrSliderBlock('hex-update', data);},'cancel': function(data){$('#'+data.caller).find('.slider-hex').removeClass('clicked');}};if(!data.color.gray){popup.mixSkipLum=data.mixSkipLum;popup.mixSkipSat=data.mixSkipSat;}eval('popup.caller=\''+item.attr('id')+'\';');item.find('.slider-hex').addClass('clicked');item.clrPopup('show', popup);};function selectSource(){var data=(arguments.length==0)?item.data('clr'): arguments[0],popup={'title': 'Select color to change.','subtitle': 'Make sure color you select exists in original sample image, otherwise there will be nothing to change.','type': 'color','color': data.color,'colorMode': data.colorMode,'defaultMode': 'sample-0','samples': getSamples(),'submit': function(data){$('#'+data.caller).clrSliderBlock('src-update',{'color': data.color, 'mode': data.colorMode});}};if(data.colorMode=='all')return;eval('popup.caller=\''+item.attr('id')+'\';');item.clrPopup('show', popup);};function showMatchColor(){var data=(arguments.length==0)?item.data('clr'): arguments[0],popup={'title': 'Select color to change original color to.','subtitle': 'ColorizeIt will try to calculate chances required to convert source color to color you select, but some color modifications are not possible. Color modifications that change lightness or saturation might not be correct.','type': 'color','samples': getSamples(),'match': clr.clone(data.color),'color': clrImage.changeColor(data.color, [clrSliderBlock.getData(false, data)]),'submit': function(data){$('#'+data.caller).find('.slider-color').removeClass('clicked');$('#'+data.caller).clrSliderBlock('match-update', data);},'cancel': function(data){$('#'+data.caller).find('.slider-color').removeClass('clicked');},'matchSkipHue': (typeof(clrPopup.matchSkipHue)=='undefined')?false: clrPopup.matchSkipHue,'matchResetHue': (typeof(clrPopup.matchResetHue)=='undefined')?true: clrPopup.matchResetHue,'matchSkipLum': (typeof(clrPopup.matchSkipLum)=='undefined')?false: clrPopup.matchSkipLum,'matchResetLum': (typeof(clrPopup.matchResetLum)=='undefined')?true: clrPopup.matchResetLum,'matchLinearLum': (typeof(clrPopup.matchLinearLum)=='undefined')?(data.lumSmooth==0): clrPopup.matchLinearLum,'matchSkipSat': (typeof(clrPopup.matchSkipSat)=='undefined')?false: clrPopup.matchSkipSat,'matchResetSat': (typeof(clrPopup.matchResetSat)=='undefined')?true: clrPopup.matchResetSat,'matchLinearSat': (typeof(clrPopup.matchLinearSat)=='undefined')?(data.satSmooth==0): clrPopup.matchLinearSat};eval('popup.caller=\''+item.attr('id')+'\';');item.find('.slider-color').addClass('clicked');item.clrPopup('show', popup);};function showOptions(){var data=(arguments.length==0)?item.data('clr'): arguments[0],popup={'title': 'Color editor options.','type': 'colorOptions','color': data.color,'colorMode': data.colorMode,'nonGray': data.nonGray,'lumSmooth': data.lumSmooth,'satSmooth': data.satSmooth,'hueRange': data.hueRange,'contentCount': 0,'submit': function(data){$('#'+data.caller).find('.slider-options').removeClass('clicked');$('#'+data.caller).clrSliderBlock('options-update', data);},'cancel': function(data){$('#'+data.caller).find('.slider-options').removeClass('clicked');}};eval('popup.caller=\''+item.attr('id')+'\';');item.find('.slider-options').addClass('clicked');item.clrPopup('show', popup);};function updateOptions(params){var data=item.data('clr'),list=['colorMode', 'nonGray', 'lumSmooth', 'satSmooth', 'hueRange'],updated=false;for(var i=0;i<list.length;i++){if(typeof(params[list[i]])!='undefined'&&data[list[i]]!=params[list[i]]){data[list[i]]=params[list[i]];updated=true;}}updateCode(data, false);if(updated){changed(data);}};function checkDelete(){var data=item.data('clr');if(typeof(data.oncandelete)=='function'&&!data.oncandelete(item, data)){if((data.focus||!data.autoHide)&&clrBrowser.transform){item.find('.slider-delete').clrFlip({'duration': (clrBrowser.iPhone)?200: 400,'transition': function(item){item.css('display', 'none');}});}else{item.find('.slider-delete').css('display', 'none');}return false;}if(confirm('Delete this color?')){doDelete(true);return true;}return false;};function doDelete(animate){var data=item.data('clr');item.addClass('deleted');if(typeof(data.ondelete)=='function'){data.ondelete(item, data);}if(clrSliderBlock.focus==data.counter){clrSliderBlock.focus=0;if(animate){item.removeClass('slider-expanded').find('div.slider-top, div.slider-bottom').slideUp(100);var item2=item.next();if(!item2.length||!item2.hasClass('slider'))item2=item.prev();if(item2.length&&item2.hasClass('slider')){item2.clrSliderBlock('focus', true);}}}if(animate&&clrBrowser.transform&&!clrBrowser.mobile){data.enabled=false;var flip={'duration': 500,'degrees': 5,'transition': function(item, data){item.css('display', 'none')},'complete': function(item, data){item.remove();},'vertical': true,'reverse': true};item.addClass('deleted').clrFlip(flip);}else{item.remove();}item.parents('div.slider-set:first').clrSliderSet('update-total', true);return true;};function min_max(mode, value){var min, max;switch(mode){case 'hue':min=-180;max=179;break;case 'lum':case 'sat':min=-100;max=100;break;case 'mix':min=0;max=100;break;}return (value<min)?min: ((value>max)?max: value);};function changed(data){data.lastData=false;data.lastKey=false;if(typeof(data.onchange)=='function'){data.lastData=clrSliderBlock.getData(false, data);data.lastKey=clrSliderBlock.getString(true, data);data.onchange(item, data.lastData, data.lastKey);}};function move(dir){var swap;switch(dir){case 'up':swap=item.prev();break;case 'down':swap=item.next();break;default: return false;}if(swap.length!=1||!swap.hasClass('slider'))return false;var temp=swap.clrSliderBlock('get-data', true);if(temp===false)return false;swap.clrSliderBlock('set', clrSliderBlock.getData(true, item.data('clr')));setData(temp);var data=item.data('clr');if(typeof(data.onsetchange)=='function'){data.onsetchange(item);}return true;};function help(id, el){if(typeof(clrHelp)=='undefined')return;if(!el.hasClass('help')){el.addClass('help').mouseout(function(){clrHelp.hide(false);});}switch(id){case 'src':var data=item.data('clr'),text='Tip: this is the color you are editing. On the right of it you can<br />see a slider, use it to change this color to another color.';if(data.colorMode=='all'){text+='<br /><br />This editor is configured to edit all colors. If you would like to edit specific<br />color, use another editor block or click "change another color" button.';}clrHelp.show(el, 'left', text);return;case 'tar':var data=item.data('clr'),exp=data.focus?'<br />Use menu above to switch to another color editing mode.': '<br />Click button on the right of slider to see more options.';switch(data.mode){case 'hue':clrHelp.show(el, 'left', 'Tip: move this slider to change color\'s hue component.'+exp);return;case 'lum':clrHelp.show(el, 'left', 'Tip: move this slider to make color darker or lighter.'+(data.focus?'<br />Click "Options" button for lightness settings.': '')+exp+'<br /><br />Changing lightness by too much may cause style to look ugly.');return;case 'sat':clrHelp.show(el, 'left', 'Tip: move this slider to make color more or less saturated.<br />Changing saturation by too much may cause style to look ugly!'+(data.focus?'<br />Click "Options" button for saturation settings.': '')+exp);return;case 'mix':clrHelp.show(el, 'left', 'Tip: this will overwrite original color with color you have selected.<br />Move slider to increase or decrease presense of your custom color.'+exp);return;}return;case 'up':clrHelp.show(el, 'left', 'Tip: clicking this button will swap this color editor with one above (if there is one).');return;case 'down':clrHelp.show(el, 'left', 'Tip: clicking this button will swap this color editor with one below (if there is one).');return;case 'expand':clrHelp.show(el,{'method': 'left', 'top': 15, 'left': -262}, 'Tip: this button shows current slider\'s value.<br />Click it to show or hide additional controls.');return;case 'mode-hue':if(item.data('clr').mode=='hue')return;clrHelp.show(el.parent('div.slider-mode'), 'left', 'Tip: this will allow you to change color\'s hue component.<br />For example, use it to change color from blue to green.');return;case 'mode-lum':var data=item.data('clr');if(data.mode=='lum')return;var extra='';clrHelp.show(el.parent('div.slider-mode'), 'left', 'Tip: this will allow you to change color\'s lightness.<br />Use it if you want to make color darker or lighter.'+extra+'<br /><br />Changing lightness by too much may cause style to look ugly.');return;case 'mode-sat':if(item.data('clr').mode=='sat')return;clrHelp.show(el.parent('div.slider-mode'), 'left', 'Tip: this will allow you to change color\'s saturation.<br />Use it if you want to make color more or less colorful.');return;case 'mode-mix':if(item.data('clr').mode=='mix')return;clrHelp.show(el.parent('div.slider-mode'), 'left', 'Tip: this will allow you to draw another color over selected color.');return;case 'mode2-0':case 'mode2-1':case 'mode2-2':var data=item.data('clr'),helpMode=data.mode+id.substr(5, 2),align='left';switch(helpMode){case 'lum-0':clrHelp.show(el, align, 'Tip: this affects the way lightness is being changed.<br />This option makes lightness change exactly as you set<br />it, so+1 means lightness component is increased by 1.');return;case 'sat-0':clrHelp.show(el, align, 'Tip: this affects the way saturation is being changed.<br />This option makes saturation change exactly as you set<br />it, so+1 means saturation component is increased by 1.');return;case 'lum-1':clrHelp.show(el, align, 'Tip: this affects the way lightness is being changed.<br />This option makes lightness change relatively to lightness of original color,<br />making lightness change smoother. For example,+10 means lightness will<br />increase by 10% of old value.');return;case 'sat-1':clrHelp.show(el, align, 'Tip: this affects the way saturation is being changed.<br />This option makes saturation change relatively to saturation of original color,<br />making saturation change smoother. For example,+10 means saturation will<br />increase by 10% of old value.');return;case 'lum-2':clrHelp.show(el, align, 'Tip: this affects the way lightness is being changed.<br />This option is almost the same as previous, but lightness will change even smoother.<br />This is the safest option, it works better for most styles than other lightness options.');return;case 'sat-2':clrHelp.show(el, align, 'Tip: this affects the way saturation is being changed.<br />This option is almost the same as previous, but saturation will change even smoother.<br />This is the safest option if you want to change saturation only a little bit.');return;}return;case 'options':clrHelp.show(el, 'left', 'Tip: click this button to see advanced editor options.');return;case 'disable':clrHelp.show(el, 'left', item.data('clr').enabled?'Tip: click this button to temporary disable color changes made in this editor.': 'Tip: click this button to enable color changes made in this editor.');return;case 'delete':clrHelp.show(el, 'left', 'Tip: click this button to remove this color editor.<br />You can add it back later by clicking "Change Another Color" button below.');return;case 'match':clrHelp.show(el, 'left', 'Tip: this nifty button will allow you to select color you want to change color you are editing to.<br />After selecting color, ColorizeIt will calculate changes required to change style\'s color<br />to color you want and will move all sliders accordingly.<br />This feature is very handy if you want to match this style\'s colors to color scheme of your website.');return;case 'hex':clrHelp.show(el, 'left', 'Tip: click this to change color you are drawing over current color.');return;default:clrHelp.show(el, 'left', 'Tip: ('+id+')');return;}};switch(action){case 'create':create();break;case 'append':item.append('<div id="slider-block-'+clrSliderBlock.counter+'-temp"><'+'/div>');item=$('#slider-block-'+clrSliderBlock.counter+'-temp');create();break;case 'prepend':item.prepend('<div id="slider-block-'+clrSliderBlock.counter+'-temp"><'+'/div>');item=$('#slider-block-'+clrSliderBlock.counter+'-temp');create();break;case 'focus':focus(params);break;case 'do-focus':focus('toggle');break;case 'auto-hide':autoHide(params);break;case 'disable':disable(params);break;case 'slider-changed':sliderChanged(params.value, params.moving);break;case 'inc':inc(params);break;case 'mode':mode(params);break;case 'mode2':mode2(params);break;case 'move':move(params);break;case 'options':showOptions();break;case 'src':selectSource();break;case 'hex':showMixColor();break;case 'match':showMatchColor();break;case 'src-update':setSrcColor(params);focus(true);break;case 'hex-update':setMixColor(params, true);break;case 'match-update':setMatchColor(params);break;case 'options-update':updateOptions(params);break;case 'input':input();break;case 'delete':return (params)?doDelete(false): checkDelete();case 'changed':changed(item.data('clr'));break;case 'help':help(params, arguments[2]);break;case 'get-data':return clrSliderBlock.getData(params, item.data('clr'));case 'get-string':return clrSliderBlock.getString(params, item.data('clr'));case 'set':return setData(params);}return item;};var clrSliderSet={counter: 0,str2data: function(str){var list=[],data=str.split('|');for(var i=0;i<data.length;i++){list.push(clrSliderBlock.str2data(data[i]));}return list;}};$.fn.clrSliderSet=function(action, params){var item=this;if(item.length!=1||item.hasClass('deleted'))return false;function create(){var data=baseData();clrSliderSet.counter++;data.counter=clrSliderSet.counter;item.replaceWith('<div id="slider-set-'+data.counter+'" class="slider-set"><p id="slider-set-empty">There are no colors to edit.<br />Add a color by clicking "Add Color" button below and then selecting one of colors that are available on sample image.</p><div class="clear set-clear"></div></div>');item=$('#slider-set-'+data.counter);data.total=0;item.data('clr', data);parseParams(data, params);};function setData(params){var data=item.data('clr');if(typeof(params)=='string'){var list=params.split('|'),max=Math.max(data.total, list.length),enabled=data.enabled,deleteList=[];for(var i=0;i<max;i++){if(i<list.length&&i<data.total){$('#'+data.items[i]).clrSliderBlock('set', list[i]);}else if(i<list.length){addEditor(list[i]);}else{deleteList.push(data.items[i]);}}for(var i=0;i<deleteList.length;i++){$('#'+deleteList[i]).clrSliderBlock('delete', true);}updateSet(data);return;}item.html('<div class="clear set-clear"></div>');parseParams(data, params);};function baseData(){return{'total': 0,'lastTotal': 0,'max': 8,'items': [],'data': [],'keys': [],'key': '','samples': [],'onchange': false,'ondrag': false};};function parseParams(data, params){for(var i=0;i<data.max;i++){if(typeof(params['item'+i])!=='undefined'){addEditor(params['item'+i], data);}}updateSet(data, false);var list=['onchange', 'ondrag'];for(var i=0;i<list.length;i++){if(typeof(params[list[i]])!='undefined'){data[list[i]]=params[list[i]];}}if(typeof(params.samples)=='object'){data.samples=[];for(var i=0;i<params.samples.length;i++){data.samples.push(params.samples[i]);}item.toggleClass('has-samples', true);}};function add(params){var data=item.data('clr');if(data.max <=data.total)return false;addEditor(params, data);updateSet(data);updateTotal(data, true);return true;}function addEditor(params){var data=(arguments.length>1)?arguments[1]: item.data('clr'),block=(typeof(params)=='object')?clr.clone(params, true):{'data': params};block.onchange=function(item, data, key){item.parents('div.slider-set:first').clrSliderSet('onchange',{'item': item, 'data': data, 'key': key});};block.ondrag=function(item, data, key){item.parents('div.slider-set:first').clrSliderSet('ondrag',{'item': item, 'data': data, 'key': key});};block.onsetchange=function(item){item.parents('div.slider-set:first').clrSliderSet('onsetchange', true);};block.ondelete=function(item, data){item.parents('div.slider-set:first').clrSliderSet('ondelete',{'item': item, 'data': data});};block.oncandelete=function(){return true;};item.children('div.set-clear').before('<div class="set-temp"></div>');item.children('div.set-temp').clrSliderBlock('create', block);};function updateSet(){var data=(arguments.length>0)?arguments[0]: item.data('clr'),list=item.children('div.slider');data.total=0;data.items=[];data.data=[];data.keys=[];list.each(function(){if($(this).hasClass('deleted'))return;data.items.push(this.id);data.keys.push($(this).clrSliderBlock('get-string', true));data.data.push($(this).clrSliderBlock('get-data', false));data.total++;});var fullKey=makeKey(data);if(fullKey!==data.key&&arguments.length<2){data.key=fullKey;changed(data, true);return;}data.key=fullKey;if(data.total!=data.lastTotal)updateTotal(data, false);};function updateTotal(data, update){if(update){data.total=0;item.children('div.slider').each(function(){if($(this).hasClass('deleted'))return;data.total++;});}if(data.lastTotal<1&&data.total>0)$('#slider-set-empty').css('display', 'none');if(data.lastTotal>0&&data.total<1)$('#slider-set-empty').css('display', '');if((data.total<5&&data.lastTotal>4)||(data.total>4&&data.lastTotal<5)){var autoHide=data.total<5?false: true;item.children('div.slider').each(function(){if($(this).hasClass('deleted'))return;$(this).clrSliderBlock('auto-hide', autoHide);});}data.lastTotal=data.total;}function updateItem(row, params, key, onchange){var data=item.data('clr'),id=row.attr('id');for(var i=0;i<data.items.length;i++){if(data.items[i]==id){if(data.key[i]==key)return;var skip=(!data.data[i].enabled&&!params.enabled);data.data[i]=params;data.keys[i]=key;var fullKey=makeKey(data);if(!skip&&fullKey!==data.key){data.key=fullKey;changed(data, onchange);return;}data.key=fullKey;return;}}};function makeKey(data){var str='';for(var i=0;i<data.keys.length;i++){if(data.keys[i].length){str+=((str.length)?'|': '')+data.keys[i];}}return str;};function getColors(all){var data=item.data('clr'),result=[];for(var i=0;i<data.data.length;i++){result.push((data.data[i].colorMode=='all')?false: data.data[i].color);}if(!all){return result;}result={'src': result,'tar': []};for(var i=0;i<data.data.length;i++){if(result.src[i]===false){result.tar.push(false);}else{result.tar.push(clrImage.changeColor(result.src[i], data.data).hex);}}return result;};function changed(data, onchange){if(typeof(data.onchange)=='function'){data.onchange(item, data, onchange);}};switch(action){case 'create':create();break;case 'append':item.append('<div id="slider-set-'+clrSliderSet.counter+'-temp"><'+'/div>');item=$('#slider-set-'+clrSliderSet.counter+'-temp');create();break;case 'prepend':item.prepend('<div id="slider-set-'+clrSliderSet.counter+'-temp"><'+'/div>');item=$('#slider-set-'+clrSliderSet.counter+'-temp');create();break;case 'ondelete':case 'onsetchange':updateSet();break;case 'ondrag':if(!clrBrowser.mobile&&!clrImage.parsing&&clrImage.nextDraw<clr.time()){updateItem(params.item, params.data, params.key, false);}break;case 'onchange':updateItem(params.item, params.data, params.key, true);break;case 'get-data':return item.data('clr');case 'get-key':return item.data('clr').key;case 'set':setData(params);break;case 'trigger-change':changed(item.data('clr'), true);break;case 'add':return add(params);case 'get-colors':return getColors(params);case 'update-total':var data=item.data('clr');updateTotal(data, true);break;case 'check-auto-hide':var data=item.data('clr');return (data.total>4)?true: false;}return item;};var clrPopup={id: false,contentId: false,contentCount: 1,visible: false,item: false,params: false,type: false,diffY: 2,diffX: 2,switching: false,titleNum: -1,titleMax: 2,content: function(data){var block=(arguments.length>1)?clrPopup.block(arguments[1]): 'div.popup-content-0',content=$('#'+clrPopup.contentId+' '+block);content.html(data);return content;},append: function(data){var block=(arguments.length>1)?clrPopup.block(arguments[1]): 'div.popup-content-0',content=$('#'+clrPopup.contentId+' '+block);content.append(data);return content;},prepend: function(data){var block=(arguments.length>1)?clrPopup.block(arguments[1]): 'div.popup-content-0',content=$('#'+clrPopup.contentId+' '+block);content.prepend(data);return content;},title: function(data){var content=(arguments.length>1)?arguments[1]: $('#'+clrPopup.contentId+' h1.popup-title');content.html(data);},block: function(key){switch(key){case 'footer':return 'div.popup-footer';case 'buttons':return 'div.popup-buttons';case 'header':return 'div.popup-header';case 'content-wrapper':return 'div.popup-content-wrapper';}if(typeof(key)=='number'){return 'div.popup-content-'+key;}return 'div.popup-content-0';},submit: function(data){if(typeof(data.submit)=='function'){data.submit(data);}},cancel: function(data){if(typeof(data.cancel)=='function'){data.cancel(data);}},corner: function(){return $('#'+clrPopup.contentId).css({'left': 0, 'top': 0});},resize: function(){var popup=$('#'+clrPopup.id),content=$('#'+clrPopup.contentId),w1=$(window).width(),w2=content.width(),h1=$(window).height(),h2=content.height(),bodyLeft=Math.max(0, ($(document).width()- $(document.body).width())/ 2),windowTop=0,windowLeft=0,blocks=content.find('.popup-content');if(blocks.length==1&&h1>200&&(blocks.height())>(h1 - 130)){blocks.css({'max-height': (h1 - 120)+'px', 'overflow': 'auto'});}else{blocks.css({'max-height': 'none', 'overflow': 'visible'});}if(typeof(window.pageYOffset)=='number'){windowTop=window.pageYOffset;windowLeft=window.pageXOffset;}else if(document.body&&document.body.scrollTop){windowTop=document.body.scrollTop;windowLeft=document.body.scrollLeft;}else if(document.documentElement&&document.documentElement.scrollTop){windowTop=document.documentElement.scrollTop;windowLeft=document.documentElement.scrollLeft;}content.css({'left': Math.floor((((w2+clrPopup.diffX)<w1)?(w1 - w2 - clrPopup.diffX)/ 2: 0)+windowLeft - bodyLeft)+'px','top': Math.floor((((h2+clrPopup.diffY)<h1)?(h1 - h2 - clrPopup.diffY)/ 2: 0)+windowTop)+'px'});},button: function(button, text){switch(button){case 1:var item=$('#'+clrPopup.contentId+' .popup-button-change');break;case 2:var item=$('#'+clrPopup.contentId+' .popup-button-cancel');break;default: return;}if(typeof(text)==='boolean'){item.toggle(text);}else{item.html('<span></span>'+text);}},};$.fn.clrPopup=function(action, params){var item=this;function show(){if(clrPopup.id===false||clrPopup.visible||typeof(clrPopup[params.type])!='function'){cancelEvent(params);return;}clrCanvas.zoomHide(false);var popup=$('#'+clrPopup.id).hide(),content=$('#'+clrPopup.contentId).css('width', 'auto').hide(),contentDiv='';clrPopup.contentCount=(typeof(params.contentCount)=='number')?((params.contentCount>0)?params.contentCount: clrPopup[params.type]('contentCount', params)): 1;clrPopup.switching=false;for(var i=0;i<clrPopup.contentCount;i++){contentDiv+='<div class="popup-content-wrapper popup-content-wrapper-'+i+'"><div class="popup-content popup-content-'+i+'"></div></div>';}clrPopup.titleNum++;if(clrPopup.titleNum>clrPopup.titleMax)clrPopup.titleNum=0;content.find('#'+clrPopup.contentId+'-wrapper').html('<div class="popup-title title'+clrPopup.titleNum+'"><h1 class="popup-title"></h1>'+'</div>'+'<div class="popup-header"></div>'+contentDiv+'<div class="popup-footer"></div>'+'<div class="popup-buttons">'+'<a href="javascript:void(0);" onclick="$(this).clrPopup(\'submit\', true);return false;" class="input-button popup-button-change"><span></span>Submit</a>'+'<a href="javascript:void(0);" onclick="$(this).clrPopup(\'cancel\', true);return false;" class="input-button popup-button-cancel"><span></span>Cancel</a>'+'</div>');content.css({'left': 0,'top': 0}).removeClass('popup-nobg');popup.css({'display': 'block'}).removeClass('popup-nobg');clrPopup.item=item;clrPopup.params=clr.clone(params, true);clrPopup.type=params.type;clrPopup[params.type]('show');clrPopup.resize();clrPopup.visible=true;if(clrBrowser.transform&&clrBrowser.opacity){content.css('opacity', 0).show();popup.removeClass('hidden').show();content.clrFlip({'action': 'zoom','duration': 500,'start': 0.4,'degrees': 5,'timer': true,'transition': function(item, params){item.css('opacity', 1);}});}else{popup.removeClass('hidden').show();content.slideDown(300);}};function cancel(){if(clrPopup.id===false||!clrPopup.visible){return;}var popup=$('#'+clrPopup.id),content=$('#'+clrPopup.contentId);clrPopup.visible=false;if(clrBrowser.transform&&clrBrowser.opacity){content.clrFlip({'action': 'zoom','duration': 400,'reverse': true,'degrees': 5,'timer': true,'transition': function(item, params){item.hide();$('#'+clrPopup.id).addClass('hidden').fadeOut(100);}});}else{content.hide();popup.addClass('hidden').hide();}clrCanvas.zoomHide(false);cancelEvent(clrPopup.params);};function cancelEvent(popup){clrPopup[popup.type]('cancel', popup);};function submit(){if(clrPopup.id===false||!clrPopup.visible){return;}if(!clrPopup[clrPopup.type]('can-submit', clrPopup.params))return;var popup=$('#'+clrPopup.id),content=$('#'+clrPopup.contentId);clrPopup.visible=false;if(clrBrowser.transform&&clrBrowser.opacity){content.clrFlip({'action': 'zoom','duration': 400,'degrees': 5,'timer': true,'transition': function(item, params){item.hide();$('#'+clrPopup.id).addClass('hidden').fadeOut(100);}});}else{content.hide();popup.addClass('hidden').hide();}clrCanvas.zoomHide(false);clrPopup[clrPopup.type]('submit', clrPopup.params);};switch(action){case 'show':show();break;case 'cancel':cancel();break;case 'submit':submit();break;}return item;};$(document).ready(function(){$(document.body).append('<div id="popup" class="hidden" style="display: none;"></div><div id="popup-content" style="display: none;"><div id="popup-content-wrapper" class="'+((clrBrowser.iPhone)?'buttons-big': 'buttons-small')+((clrBrowser.corners===false)?' no-rounded': '')+'"></div></div>');clrPopup.id='popup';clrPopup.contentId='popup-content';$(window).resize(function(){var content=$('#popup-content');if(content.length&&content.is(':visible')){var item=$('#'+clrPopup.id),w1=$(window).width(),w2=content.width(),h1=$(window).height(),h2=content.height(),bodyLeft=Math.max(0, ($(document).width()- $(document.body).width())/ 2),windowTop=0,windowLeft=0,blocks=content.find('.popup-content');if(blocks.length==1&&h1>200&&(blocks.height())>(h1 - 130)){blocks.css({'max-height': (h1 - 120)+'px', 'overflow': 'auto'});}else{blocks.css({'max-height': 'none', 'overflow': 'visible'});}if(typeof(window.pageYOffset)=='number'){windowTop=window.pageYOffset;windowLeft=window.pageXOffset;}else if(document.body&&document.body.scrollTop){windowTop=document.body.scrollTop;windowLeft=document.body.scrollLeft;}else if(document.documentElement&&document.documentElement.scrollTop){windowTop=document.documentElement.scrollTop;windowLeft=document.documentElement.scrollLeft;}if(!clrBrowser.iPhone){content.css({'left': Math.floor((((w2+clrPopup.diffX)<w1)?(w1 - w2 - clrPopup.diffX)/ 2: 0)+windowLeft - bodyLeft)+'px','top': Math.floor((((h2+clrPopup.diffY)<h1)?(h1 - h2 - clrPopup.diffY)/ 2: 0)+windowTop)+'px'});}}});$('#popup').dblclick(function(){if($(this).hasClass('hidden')){$(this).clrPopup('cancel', true);}else{$(this).addClass('hidden');$('#'+clrPopup.contentId).addClass('popup-nobg');}return false;});$('#popup-content').dblclick(function(){return false;});});clrPopup.color=function(action, params){function show(){clrPopup.title('Color Picker.');clrPopup.colorMode=typeof(clrPopup.params.defaultMode)=='string'?clrPopup.params.defaultMode: 'rgb';var str='<p class="popup-title">'+clrPopup.params.title+'</p>',samples=(clrBrowser.canvas&&typeof(clrPopup.params.samples)=='object')?clrPopup.params.samples: false,foundMode=false;if(typeof(clrPopup.params.subtitle)=='string'){str+='<p class="popup-comment">'+clrPopup.params.subtitle+'</p><div class="clear"></div>';}str+='<a href="javascript:void(0);" onclick="if(!$(this).hasClass(\'tab-active\')){clrPopup.color(\'mode\', \'rgb\');}return false;" class="tab ';if(clrPopup.colorMode=='rgb'){str+='tab-active ';foundMode=true;}str+='tab-first tab-color-rgb"><span>RGB</span></a>';str+='<a href="javascript:void(0);" onclick="if(!$(this).hasClass(\'tab-active\')){clrPopup.color(\'mode\', \'hsl\');}return false;" class="tab ';if(clrPopup.colorMode=='hsl'){str+='tab-active ';foundMode=true;}str+='tab-color-hsl"><span>HLS</span></a>';if(clrBrowser.canvas){str+='<a href="javascript:void(0);" onclick="if(!$(this).hasClass(\'tab-active\')){clrPopup.color(\'mode\', \'hue\');}return false;" class="tab ';if(clrPopup.colorMode=='hue'){str+='tab-active ';foundMode=true;}str+='tab-color-hue"><span>Hue</span></a>';}if(clrBrowser.canvas&&samples!==false){var total=samples.length;for(var i=0;i<total;i++){str+='<a href="javascript:void(0);" onclick="if(!$(this).hasClass(\'tab-active\')){clrPopup.color(\'mode\', \'sample-'+samples[i]+'\');}return false;" class="tab ';if(clrPopup.colorMode=='sample-'+i){str+='tab-active ';foundMode=true;}str+='tab-color-sample-'+samples[i]+'"><span>Sample'+((total>1)?' #'+(i+1): ' Image')+'</span></a>';}}clrPopup.content(str, 'header').find('.tab:last').addClass('tab-last');setContent();if(!foundMode){changeMode('rgb', false);}};function setContent(){var id='#'+clrPopup.contentId+' ';$(id+clrPopup.block()+', '+id+clrPopup.block('footer')).empty();if(clrPopup.params.match){clrPopup.content('<div class="popup-color-row"><p>Change color <a class="popup-inline-link" href="javascript:void(0);" onclick=" var color=clrColors.color(\''+clrPopup.params.match.hex+'\');$(\'#popup-input-hex\').val(color.hex);clrPopup.color(\'hex-changed\', color);return false;">'+clrPopup.params.match.hex+'</a></p><span class="popup-color" style="background-color: '+clrPopup.params.match.hex+'"></span><p>to</p><span id="popup-sample" class="popup-color" style="background-color: '+clrPopup.params.color.hex+'"></span><input type="text" id="popup-input-hex" value="'+clrPopup.params.color.hex.toUpperCase()+'" /></div>', 'footer');}else{clrPopup.content('<div class="popup-color-row"><p>Selected color:</p><input type="text" id="popup-input-hex" value="'+clrPopup.params.color.hex.toUpperCase()+'" /><span id="popup-sample" class="popup-color" style="background-color: '+clrPopup.params.color.hex+'"></span></div>', 'footer');}if(clrPopup.params.colorMode){clrPopup.append('<a href="javascript:void(0);" onclick="clrPopup.color(\'option\', \'gray\');return false;" id="popup-option-gray" class="popup-radio'+((clrPopup.params.colorMode=='gray')?' checked': '')+'">Edit as gray color.</a>'+'<a href="javascript:void(0);" onclick="clrPopup.color(\'option\', \'hue\');return false;" id="popup-option-hue" class="popup-radio'+((clrPopup.params.colorMode=='hue')?' checked': '')+'">Edit all colors with same hue.</a>'+'<a href="javascript:void(0);" onclick="clrPopup.color(\'option\', \'nearest\');return false;" id="popup-option-nearest" class="popup-radio'+((clrPopup.params.colorMode=='nearest')?' checked': '')+'">Edit nearest colors.</a>', 'footer');toggleOptions();}else if(typeof(clrPopup.params.mixSkipSat)!='undefined'){clrPopup.append('<a href="javascript:void(0);" onclick="clrPopup.color(\'checkbox\',{\'key\': \'skip-lum\', \'var\': \'mixSkipLum\'});return false;" id="popup-option-skip-lum" class="popup-checkbox'+((clrPopup.params.mixSkipLum)?' checked': '')+'">Do not change lightness.</a>'+'<a href="javascript:void(0);" onclick="clrPopup.color(\'checkbox\',{\'key\': \'skip-sat\', \'var\': \'mixSkipSat\'});return false;" id="popup-option-skip-sat" class="popup-checkbox'+((clrPopup.params.mixSkipSat)?' checked': '')+'">Do not change saturation.</a>', 'footer');}else if(typeof(clrPopup.params.match)!='undefined'){clrPopup.append('<a href="javascript:void(0);" onclick="clrPopup.color(\'checkbox\',{\'key\': \'match-hue\', \'var\': \'matchSkipHue\'});return false;" id="popup-option-match-hue" class="popup-checkbox popup-control-first'+((clrPopup.params.matchSkipHue)?' checked': '')+'">Do not change hue.</a>'+'<a href="javascript:void(0);" onclick="clrPopup.color(\'checkbox\',{\'key\': \'match-reset-hue\', \'var\': \'matchResetHue\'});return false;" id="popup-option-match-reset-hue" class="popup-checkbox popup-control-offset'+((clrPopup.params.matchResetHue)?' checked': '')+'">Reset hue.</a>'+'<a href="javascript:void(0);" onclick="clrPopup.color(\'checkbox\',{\'key\': \'match-lum\', \'var\': \'matchSkipLum\'});return false;" id="popup-option-match-lum" class="popup-checkbox'+((clrPopup.params.matchSkipLum)?' checked': '')+'">Do not change lightness.</a>'+'<a href="javascript:void(0);" onclick="clrPopup.color(\'checkbox\',{\'key\': \'match-reset-lum\', \'var\': \'matchResetLum\'});return false;" id="popup-option-match-reset-lum" class="popup-checkbox popup-control-offset'+((clrPopup.params.matchResetLum)?' checked': '')+'">Reset lightness.</a>'+'<a href="javascript:void(0);" onclick="clrPopup.color(\'checkbox\',{\'key\': \'match-linear-lum\', \'var\': \'matchLinearLum\'});return false;" id="popup-option-match-linear-lum" class="popup-checkbox popup-control-offset'+((clrPopup.params.matchLinearLum)?' checked': '')+'">Linear lightness change.</a>'+'<a href="javascript:void(0);" onclick="clrPopup.color(\'checkbox\',{\'key\': \'match-sat\', \'var\': \'matchSkipSat\'});return false;" id="popup-option-match-sat" class="popup-checkbox'+((clrPopup.params.matchSkipSat)?' checked': '')+'">Do not change saturation.</a>'+'<a href="javascript:void(0);" onclick="clrPopup.color(\'checkbox\',{\'key\': \'match-reset-sat\', \'var\': \'matchResetSat\'});return false;" id="popup-option-match-reset-sat" class="popup-checkbox popup-control-offset'+((clrPopup.params.matchResetSat)?' checked': '')+'">Reset saturation.</a>'+'<a href="javascript:void(0);" onclick="clrPopup.color(\'checkbox\',{\'key\': \'match-linear-sat\', \'var\': \'matchLinearSat\'});return false;" id="popup-option-match-linear-sat" class="popup-checkbox popup-control-offset'+((clrPopup.params.matchLinearSat)?' checked': '')+'">Linear saturation change.</a>', 'footer');updateMatchOptions();}switch(clrPopup.colorMode){case 'rgb':case 'hsl':if(clrPopup.colorMode=='rgb'){var data={'text1': 'Red','text2': 'Green','text3': 'Blue','value1': Math.floor(clrPopup.params.color.rgb.r),'value2': Math.floor(clrPopup.params.color.rgb.g),'value3': Math.floor(clrPopup.params.color.rgb.b),'mode1': 'rgb','mode2': 'rgb','mode3': 'rgb','color1': '#FF0000','color2': '#00FF00','color3': '#0000FF'};}else if(clrPopup.colorMode=='hsl'){var data={'text1': 'Hue','text2': 'Lightness','text3': 'Saturation','value1': Math.floor(clrPopup.params.color.hsl.h),'value2': Math.floor(clrPopup.params.color.hsl.l),'value3': Math.floor(clrPopup.params.color.hsl.s),'mode1': 'hue','mode2': 'light','mode3': 'sat','color1': '','color2': '','color3': ''};}var row=clrPopup.content('<div class="popup-row-color popup-row1">'+'<p>'+data.text1+':</p><div class="popup-input-slider"><input type="text" value="'+data.value1+'" /></div><div class="popup-slider"></div>'+'</div>'+'<div class="popup-row-color popup-row2">'+'<p>'+data.text2+':</p><div class="popup-input-slider"><input type="text" value="'+data.value2+'" /></div><div class="popup-slider"></div>'+'</div>'+'<div class="popup-row-color popup-row3">'+'<p>'+data.text3+':</p><div class="popup-input-slider"><input type="text" value="'+data.value3+'" /></div><div class="popup-slider"></div>'+'</div>'),slider={'type': 'big','mode': data.mode1,'color': data.color1,'num': 1,'focused': true,'change': function(item, value, moving){clrPopup.color('slider',{'num': item.data('clr').params.num, 'value': value, 'src': 'slider'});},'value': data.value1};row.find('.popup-row1 .popup-slider').clrSlider('create', slider);slider.num++;slider.mode=data.mode2;slider.color=data.color2;slider.value=data.value2;row.find('.popup-row2 .popup-slider').clrSlider('create', slider);slider.num++;slider.mode=data.mode3;slider.color=data.color3;slider.value=data.value3;row.find('.popup-row3 .popup-slider').clrSlider('create', slider);row.find('.popup-row1 input').bind('change keyup blur', function(){var value=parseInt(this.value.slice(0, 4), 10);if(!isNaN(value)&&value.toString()==this.value){clrPopup.color('input-changed',{'num': 1, 'value': value, 'src': 'input'});}});row.find('.popup-row2 input').bind('change keyup blur', function(){var value=parseInt(this.value.slice(0, 4), 10);if(!isNaN(value)&&value.toString()==this.value){clrPopup.color('input-changed',{'num': 2, 'value': value, 'src': 'input'});}});row.find('.popup-row3 input').bind('change keyup blur', function(){var value=parseInt(this.value.slice(0, 4), 10);if(!isNaN(value)&&value.toString()==this.value){clrPopup.color('input-changed',{'num': 3, 'value': value, 'src': 'input'});}});break;case 'hue':if(clrPopup.colorMode=='hue'){var value=Math.floor(clrPopup.params.color.hsl.h),text='Hue',height=200,sliderMode='hue',sliderColor='transparent'}var row=clrPopup.content('<div class="popup-row-color popup-row1">'+'<p>'+text+':</p><div class="popup-input-slider"><input type="text" value="'+value+'" /></div><div class="popup-slider"></div>'+'</div>'+'<div class="popup-row-canvas"></div>');row.find('div.popup-row-canvas').clrCanvas({'width': 360,'height': height,'id': 'popup-canvas','border': 1,'picker': true,'zoom': function(x, y){return clrPopup.color('zoom',{'x': x, 'y': y});},'click': function(item, event, color){$('#popup-input-hex').val(color.hex);clrPopup.color('hex-changed', color);}});slider={'type': 'big','mode': sliderMode,'color': sliderColor,'focused': true,'change': function(item, value, moving){$('#'+clrPopup.contentId+' .popup-row1 input').val(value);if(!moving){clrPopup.color('slider2', value);}},'value': value};row.find('.popup-row1 .popup-slider').clrSlider('create', slider);row.find('.popup-row1 input').bind('change keyup blur', function(){var value=parseInt(this.value.slice(0, 4), 10);if(!isNaN(value)&&value.toString()==this.value&&value >=0&&value<360){$('#'+clrPopup.contentId+' .popup-row1 div.slider-slider').clrSlider('value', value);clrPopup.color('slider2', value);}});updateColorCanvas(value);break;default:if(clrPopup.colorMode.slice(0, 7)=='sample-'){var sample=parseInt(clrPopup.colorMode.slice(7));if(typeof(sample)!='number')break;clrPopup.colorSample=sample;var sampleData=clrImage.samples[sample],row=clrPopup.content('<div class="popup-row-sample"></div>');row.find('div.popup-row-sample').clrCanvas({'width': sampleData.width,'height': sampleData.height,'id': 'popup-canvas','border': 2,'picker': true,'zoom': true,'click': function(item, event, color){$('#popup-input-hex').val(color.hex);clrPopup.color('hex-changed', color);}});if(sampleData.imageLoaded){clrCanvas.drawImage($('#popup-canvas'), sampleData.canvas);}else{$('#popup-canvas').clrCanvasDraw(sampleData.dataHeader+sampleData.data64);}}break;}$('#popup-input-hex').bind('change keyup blur', function(){var value=this.value;if((value.length==7||value.length==4)&&value.slice(0, 1)=='#')value=value.slice(1);if((value.length==6||value.length==3)&&value.match(/^[a-fA-F0-9]+$/)){var color={'hex': '','rgb':{},'hsl':{},'gray': true};color.hex='#'+value;color.rgb=clrColors.hex2rgb(color.hex);if(color.rgb===false)return false;color.hsl=clrColors.rgb2hsl(color.rgb.r, color.rgb.g, color.rgb.b, false);color.gray=(color.rgb.r==color.rgb.g&&color.rgb.g==color.rgb.b)?true: false;clrPopup.color('hex-changed', color);}});};function toggleOptions(){var footer=$('#'+clrPopup.contentId+' '+clrPopup.block('footer')),oldMode=clrPopup.params.colorMode;if(clrPopup.params.color.gray){footer.find('.popup-radio').hide();clrPopup.params.colorMode='gray';}else{var avg=Math.round((clrPopup.params.color.rgb.r+clrPopup.params.color.rgb.g+clrPopup.params.color.rgb.b)/ 3),diff=Math.abs(clrPopup.params.color.rgb.r - avg)+Math.abs(clrPopup.params.color.rgb.g - avg)+Math.abs(clrPopup.params.color.rgb.b - avg);if(diff <=40){footer.find('#popup-option-gray').show();}else{footer.find('#popup-option-gray').hide();if(oldMode=='gray'){clrPopup.params.colorMode='hue';}}footer.find('#popup-option-hue').show();footer.find('#popup-option-nearest').show();}if(clrPopup.params.colorMode!=oldMode){footer.find('#popup-option-'+oldMode).removeClass('checked');footer.find('#popup-option-'+clrPopup.params.colorMode).addClass('checked');}};function updateColorCanvas(value){var canvas=$('#popup-canvas'),data=canvas.data('clrCanvas'),ctx=data.canvas.getContext('2d'),inc=2;clrPopup.canvasColor=value;switch(clrPopup.colorMode){case 'hue':var height=200,incX=Math.ceil(3.6 * inc),incY=2 * inc,color, x, y, left;ctx.clearRect(0, 0, 360, height);for(x=0;x<100;x+=inc){left=Math.floor(x * 3.6);for(y=0;y<100;y+=inc){ctx.fillStyle='#'+clrColors.hsv2hex(value, x, 100 - y);ctx.fillRect(left, y * 2, incX, incY);}}break;default: return;}clrCanvas.drawImage(canvas, false, data);};function zoom(x, y){switch(clrPopup.colorMode){case 'hue':x /=3.6 / 1.01;if(x<0)x=0;if(x>100)x=100;y /=2 / 1.01;if(y<0)y=0;if(y>100)y=100;return clrColors.hsv2rgb(clrPopup.canvasColor, x, 100 - y);}return{'r': 0, 'g': 0, 'b': 0};};function slider(){if(clrPopup.id===false||!clrPopup.visible){return;}var updated=false,color, max,min=0;switch(clrPopup.colorMode){case 'rgb':max=255;break;case 'hsl':if(params.num==1)max=359;else max=100;break;default:return;}if(params.value<min||params.value>max)return;switch(clrPopup.colorMode){case 'rgb':color={'r': clrPopup.params.color.rgb.r,'g': clrPopup.params.color.rgb.g,'b': clrPopup.params.color.rgb.b};updated=true;var row=$('#'+clrPopup.contentId+' '+clrPopup.block('content'));switch(params.num){case 1:color.r=params.value;break;case 2:color.g=params.value;break;case 3:color.b=params.value;break;default:updated=false;}if(updated){if(params.src!='input'){row.find('.popup-row'+params.num+' input').val(params.value);}if(params.src!='slider'){row.find('.popup-row'+params.num+' div.slider-slider').clrSlider('value', params.value);}}break;case 'hsl':color={'h': clrPopup.params.color.hsl.h,'s': clrPopup.params.color.hsl.s,'l': clrPopup.params.color.hsl.l};updated=true;var row=$('#'+clrPopup.contentId+' '+clrPopup.block('content'));switch(params.num){case 1:color.h=params.value;break;case 2:color.l=params.value;break;case 3:color.s=params.value;break;default:updated=false;}if(updated){if(params.src!='input'){row.find('.popup-row'+params.num+' input').val(params.value);}if(params.src!='slider'){row.find('.popup-row'+params.num+' div.slider-slider').clrSlider('value', params.value);}}break;}if(updated){clrPopup.params.color=clrColors.color(color);$('#popup-sample').css('background-color', clrPopup.params.color.hex);$('#popup-input-hex').val(clrPopup.params.color.hex);if(clrPopup.params.colorMode){toggleOptions();}}return updated;};function setColor(color){clrPopup.params.color=clr.clone(color, true);$('#popup-sample').css('background-color', clrPopup.params.color.hex);$('#popup-input-hex').val(clrPopup.params.color.hex);if(clrPopup.params.colorMode){toggleOptions();}switch(clrPopup.colorMode){case 'rgb':case 'hsl':if(clrPopup.colorMode=='rgb'){var data={'value1': Math.floor(clrPopup.params.color.rgb.r),'value2': Math.floor(clrPopup.params.color.rgb.g),'value3': Math.floor(clrPopup.params.color.rgb.b)};}else if(clrPopup.colorMode=='hsl'){var data={'value1': Math.floor(clrPopup.params.color.hsl.h),'value2': Math.floor(clrPopup.params.color.hsl.l),'value3': Math.floor(clrPopup.params.color.hsl.s)};}var row=$('#'+clrPopup.contentId+' '+clrPopup.block('content'));row.find('.popup-row1 input').val(data.value1);row.find('.popup-row1 div.slider-slider').clrSlider('value', data.value1);row.find('.popup-row2 input').val(data.value2);row.find('.popup-row2 div.slider-slider').clrSlider('value', data.value2);row.find('.popup-row3 input').val(data.value3);row.find('.popup-row3 div.slider-slider').clrSlider('value', data.value3);break;}};function changeMode(mode, animate){if(clrPopup.colorMode==mode||clrPopup.switching)return;var row=$('#'+clrPopup.contentId+' '+clrPopup.block('header'));row.find('.tab-color-'+clrPopup.colorMode).removeClass('tab-active');row.find('.tab-color-'+mode).addClass('tab-active');var oldNum=0,newNum=0;switch(clrPopup.colorMode){case 'rgb': oldNum++;case 'hsl': oldNum++;case 'hue': oldNum++;case 'sample-0': oldNum++;}switch(mode){case 'rgb': newNum++;case 'hsl': newNum++;case 'hue': newNum++;case 'sample-0': newNum++;}clrPopup.colorMode=mode;clrPopup.switching=true;$('#'+clrPopup.contentId+' '+clrPopup.block('content-wrapper')).clrFlip({'duration': (clrBrowser.mobile||!animate)?0: 400,'degrees': 5,'reverse': (newNum<oldNum)?true: false,'transition': function(item, params){clrPopup.color('transition');},'complete': function(item, params){clrPopup.switching=false;}});};function canSubmit(){if(clrPopup.params.match&&clrPopup.params.matchSkipHue&&clrPopup.params.matchSkipLum&&clrPopup.params.matchSkipSat){alert('You cannot skip all 3 color components.');return false;}return true;};function setOption(mode){if(clrPopup.params.colorMode==mode)return;$('#popup-option-'+clrPopup.params.colorMode).removeClass('checked');clrPopup.params.colorMode=mode;$('#popup-option-'+clrPopup.params.colorMode).addClass('checked');toggleOptions();};function setOption2(keyName, varName){clrPopup.params[varName]=!clrPopup.params[varName];$('#popup-option-'+keyName).toggleClass('checked', clrPopup.params[varName]);switch(keyName){case 'match-hue':case 'match-sat':case 'match-lum':updateMatchOptions();}};function updateMatchOptions(){var checked=$('#popup-option-match-hue').hasClass('checked');$('#popup-option-match-reset-hue').css('display', (checked)?'': 'none');var checked=$('#popup-option-match-lum').hasClass('checked');$('#popup-option-match-reset-lum').css('display', (checked)?'': 'none');$('#popup-option-match-linear-lum').css('display', (checked)?'none': '');var checked=$('#popup-option-match-sat').hasClass('checked');$('#popup-option-match-reset-sat').css('display', (checked)?'': 'none');$('#popup-option-match-linear-sat').css('display', (checked)?'none': '');};switch(action){case 'show':return show();case 'slider':case 'input-changed':return slider();case 'slider2':updateColorCanvas(params);break;case 'can-submit':return canSubmit();case 'submit':return clrPopup.submit(params);case 'cancel':return clrPopup.cancel(params);case 'hex-changed':setColor(params);break;case 'mode':changeMode(params, true);break;case 'transition':setContent();break;case 'option':setOption(params);break;case 'checkbox':setOption2(params.key, params['var']);break;case 'zoom':return zoom(params.x, params.y);}};clrPopup.colorMode='rgb';clrPopup.colorOptions=function(action, params){function show(){clrPopup.title(clrPopup.params.title);var str='';if(!clrPopup.params.color.gray&&clrPopup.params.colorMode!='all'){var avg=Math.round((clrPopup.params.color.rgb.r+clrPopup.params.color.rgb.g+clrPopup.params.color.rgb.b)/ 3),diff=Math.abs(clrPopup.params.color.rgb.r - avg)+Math.abs(clrPopup.params.color.rgb.g - avg)+Math.abs(clrPopup.params.color.rgb.b - avg);if(diff <=40){str+='<a href="javascript:void(0);" onmouseover="clrPopup.colorOptions(\'help\', \'edit-gray\', $(this));" onclick="clrPopup.colorOptions(\'option-src\', \'gray\');return false;" id="popup-option-src-gray" class="popup-radio'+((clrPopup.params.colorMode=='gray')?' checked': '')+'">Edit as gray color.</a>';}str+='<a href="javascript:void(0);" onmouseover="clrPopup.colorOptions(\'help\', \'edit-hue\', $(this));" onclick="clrPopup.colorOptions(\'option-src\', \'hue\');return false;" id="popup-option-src-hue" class="popup-radio'+((clrPopup.params.colorMode=='hue')?' checked': '')+'">Change all colors with same hue.</a>'+'<a href="javascript:void(0);" onmouseover="clrPopup.colorOptions(\'help\', \'edit-nearest\', $(this));" onclick="clrPopup.colorOptions(\'option-src\', \'nearest\');return false;" id="popup-option-src-nearest" class="popup-radio'+((clrPopup.params.colorMode=='nearest')?' checked': '')+'">Change nearest colors.</a>';str+='<div id="popup-hue-range"'+(clrPopup.params.colorMode=='hue'?'': ' style="display: none;"')+'>';str+='<p class="popup-content-title">Hue range</p>';var list=[15, 30, 45, 60, 75, 90],last=0;if(clrPopup.params.hueRange>90)list.push(clrPopup.params.hueRange);for(var i=0;i<list.length;i++){var num=list[i];if(num>clrPopup.params.hueRange&&prev<clrPopup.params.hueRange){num=clrPopup.params.hueRange;i --;}str+='<a href="javascript:void(0);" onmouseover="clrPopup.colorOptions(\'help\', \'hue-range-'+num+'\', $(this));" onclick="clrPopup.colorOptions(\'hue-range\', '+num+');return false;" id="popup-option-huerange-'+num+'" class="popup-radio'+((clrPopup.params.hueRange==num)?' checked': '')+'">+- '+num+(num==45?' (default)': '')+'</a>';prev=num;}str+='</div>';}else if(clrPopup.params.colorMode!='all'){str+='<a href="javascript:void(0);" onmouseover="clrPopup.colorOptions(\'help\', \'edit-nongray\', $(this));" onclick="clrPopup.colorOptions(\'option-non-gray\',!$(this).hasClass(\'checked\'));return false;" id="popup-option-non-gray" class="popup-checkbox'+((clrPopup.params.nonGray)?' checked': '')+'">Change nearest non-gray colors.</a>';}clrPopup.content('<p class="popup-content-title">Source color</p>'+str, 0);str='';var items=['Linear lightness change.', 'Relative lightness change.', 'Very smooth lightness change.'];for(var i=0;i<items.length;i++){str+='<a href="javascript:void(0);" onmouseover="clrPopup.colorOptions(\'help\', \'lum-'+i+'\', $(this));" onclick="clrPopup.colorOptions(\'option-lum\', '+i+');return false;" id="popup-option-lum-'+i+'" class="popup-radio'+((clrPopup.params.lumSmooth==i)?' checked': '')+'">'+items[i]+'</a>';}if(clrPopup.params.colorMode!='gray'){items=['Linear saturation change.', 'Relative saturation change.', 'Very smooth saturation change.'];for(var i=0;i<items.length;i++){str+='<a href="javascript:void(0);" onmouseover="clrPopup.colorOptions(\'help\', \'sat-'+i+'\', $(this));" onclick="clrPopup.colorOptions(\'option-sat\', '+i+');return false;" id="popup-option-sat-'+i+'" class="popup-radio'+((clrPopup.params.satSmooth==i)?' checked': '')+((i>0)?'': ' popup-radio-margin')+'">'+items[i]+'</a>';}}clrPopup.content('<p class="popup-content-title">'+((clrPopup.params.colorMode=='gray')?'Lightness': 'Lightness and saturation')+'</p>'+str, (clrPopup.params.colorMode=='all')?0: 1);clrPopup.button(1, 'Change');};function setOption(opType, opVar, value){if(clrPopup.params[opVar]==value)return;if(typeof(value)=='boolean'){$('#popup-option-'+opType).toggleClass('checked');clrPopup.params[opVar]=value;return;}$('#popup-option-'+opType+'-'+clrPopup.params[opVar]).removeClass('checked');$('#popup-option-'+opType+'-'+value).addClass('checked');clrPopup.params[opVar]=value;if(opVar=='colorMode')switch(value){case 'hue':$('#popup-hue-range').show();break;default:$('#popup-hue-range').hide();}};function help(id, el){if(typeof(clrHelp)=='undefined')return;if(!el.hasClass('help')){el.addClass('help').mouseout(function(){clrHelp.hide(false);});}var align={'method': 'left', 'top': 2};switch(id){case 'edit-gray':clrHelp.show(el, align, 'Tip: if you select this option, only colors close to original will be<br />changed, including similar gray colors.');return;case 'edit-hue':clrHelp.show(el, align, 'Tip: this will make editor change all colors with the similar hue component.<br />This should be used if you want to change, for example, all blue colors to green.');return;case 'edit-nearest':clrHelp.show(el, align, 'Tip: this will make editor change only colors nearest to original color.');return;case 'edit-nongray':clrHelp.show(el, align, 'Tip: disabling this will make editor change all colors nearest to original color,<br />including ones that have hue component.');return;case 'lum-0':clrHelp.show(el, align, 'Tip: this affects the way lightness is being changed.<br />This option makes lightness change exactly as you set<br />it, so+1 means lightness component is increased by 1.');return;case 'sat-0':clrHelp.show(el, align, 'Tip: this affects the way saturation is being changed.<br />This option makes saturation change exactly as you set<br />it, so+1 means saturation component is increased by 1.');return;case 'lum-1':clrHelp.show(el, align, 'Tip: this affects the way lightness is being changed.<br />This option makes lightness change relatively to lightness of original color,<br />making lightness change smoother. For example,+10 means lightness will<br />increase by 10% of old value.');return;case 'sat-1':clrHelp.show(el, align, 'Tip: this affects the way saturation is being changed.<br />This option makes saturation change relatively to saturation of original color,<br />making saturation change smoother. For example,+10 means saturation will<br />increase by 10% of old value.');return;case 'lum-2':clrHelp.show(el, align, 'Tip: this affects the way lightness is being changed.<br />This option is almost the same as previous, but lightness will change even smoother.<br />This is the safest option, it works better for most styles than other lightness options.');return;case 'sat-2':clrHelp.show(el, align, 'Tip: this affects the way saturation is being changed.<br />This option is almost the same as previous, but saturation will change even smoother.<br />This is the safest option if you want to change saturation only a little bit.');return;default:if(id.substring(0, 10)=='hue-range-'){var num=id.substring(10);clrHelp.show(el, align, 'Tip: Change range of colors that are affected by color change to '+num);return;}clrHelp.show(el, align, 'Tip: ('+id+')');return;}};switch(action){case 'contentCount':return (params.colorMode=='all')?1: 2;case 'show':return show();case 'can-submit': return true;case 'submit':return clrPopup.submit(params);case 'cancel':return clrPopup.cancel(params);case 'option-src':setOption('src', 'colorMode', params);break;case 'option-non-gray':setOption('non-gray', 'nonGray', params);break;case 'option-lum':setOption('lum', 'lumSmooth', params);break;case 'option-sat':setOption('sat', 'satSmooth', params);break;case 'hue-range':setOption('huerange', 'hueRange', params);break;case 'help':help(params, arguments[2]);break;}};var clrWebsite={titleNum: -1,titleMax: 2,linkAttrs: ['href', 'target', 'onclick'],link: 'a',counter: 0,lastAjaxID: '',transform: function(num, prefix){var str=prefix+'transform'+(num>0?num: '');if($('body').hasClass(str))return;$('body').addClass(str);if(num<4){setTimeout("clrWebsite.transform("+(num+1)+", '"+prefix+"');", 200);}},alert: function(text){var title=(arguments.length>1)?arguments[1]: 'Alert',popup={'title': title,'text': text,'type': 'alert','caller': false};$(document.body).clrPopup('show', popup);},formError: function(item, message){var found=false, item2;if(item.prop('tagName')=='P')found=true;if(!found){item2=item.parent('p');if(item2.length>0){item=item2;found=true;}}if(!found)return false;item2=item.find('p.form-error');if(item2.length){if(message===false)item2.hide();else item2.html(message).show();}else if(message!==false){item.append('<p class="form-error" onclick="$(this).hide();return false;">'+message+'</p>');}return true;},browse: function(item, link){var parent=item.parents('nav');if(!parent.length)return true;var id=parent.attr('id');if(!id){id='id-'+clrWebsite.counter;clrWebsite.counter++;parent.attr('id', id);}clrWebsite.ajaxNavigate(link, id);return false;},showArticle: function(link){var url='/article.php',params={'link': link},popup={'title': 'Loading','type': 'article','caller': false};$(document.body).clrPopup('show', popup);$.ajax({'url': url,'type': 'POST','data': params,'dataType': 'json','timeout': '15000','success': function(data){clrWebsite.articleSuccess(data)},'error': function(XMLHttpRequest, textStatus, errorThrown){clrWebsite.articleError(textStatus, errorThrown);}});},articleSuccess: function(data){if(data===null||typeof(data.text)=='undefined'){clrWebsite.articleSet('Error', '<p class="popup-alert">Error retrieving article from server.</p>');return;}clrWebsite.articleSet(data.title, data.text);},articleError: function(textStatus, errorThrown){var error='';switch(textStatus){case 'timeout':error='Error: Cannot connect to server.<br />There might be a technical problem at server, please try again later.';break;case 'parsererror':error='Error: Invalid response from server.';break;case 'custom':error=errorThrown;break;default:error='Error connecting to server.';}clrWebsite.articleSet('Error', '<p class="popup-alert">'+error+'</p>');},articleSet: function(title, text){if(clrPopup.type=='article'){clrPopup.title(title);clrPopup.corner().css('width', $('body').hasClass('framed')?'700px': '840px');clrPopup.content(text).addClass('content-tutorial');clrPopup.resize();}},ajaxNavigate: function(link, id){var url='/navigate.php',params={'link': link, 'id': id, 'random': Math.random()},item=$('#'+id);item.find('p.ajax-error').remove();var height=item.height();item.data('oldHTML', item.html()).html('<p style="min-height: '+Math.round(height - 8)+'px;">Loading...</p>');clrWebsite.lastAjaxID=id;$.ajax({'url': url,'type': 'POST','data': params,'dataType': 'json','timeout': '15000','success': function(data){clrWebsite.ajaxSuccess(data);},'error': function(XMLHttpRequest, textStatus, errorThrown){clrWebsite.ajaxError(textStatus, errorThrown);}});},ajaxError: function(textStatus, errorThrown){if(!clrWebsite.lastAjaxID.length)return false;var item=$('#'+clrWebsite.lastAjaxID);if(!item.length)return false;var error='';switch(textStatus){case 'timeout':error='Error: Cannot connect to server.<br />There might be a technical problem at server, please try again later.';break;case 'parsererror':error='Error: Invalid response from server.';break;case 'custom':error=errorThrown;break;default:error='Error connecting to server.';}item.html('<p class="ajax-error">'+error+'</p>'+item.data('oldHTML'));},ajaxSuccess: function(data){if(data===null){clrWebsite.ajaxError('parsererror', '');return;}if(typeof(data.error)=='string'){clrWebsite.ajaxError('custom', data.error);return;}if(typeof(data.url)=='string'){document.location.href=data.url;return;}if(typeof(data.itemID)=='undefined'||typeof(data.HTML)=='undefined'){clrWebsite.ajaxError('custom', 'Error: Invalid response from server.');return;}var item=$('#'+data.itemID);if(!item.length){clrWebsite.ajaxError('custom', 'Error: invalid item id in server response.');return;}if(data.itemID==clrWebsite.lastAjaxID){clrWebsite.lastAjaxID='';}item.html(data.HTML);},dismissNotices: function(button){var block=button.parents('section');var loginURL='/session.php',params={};params['url']=clrWebsite.session.URL;params['action']='notice';params['random']=Math.random();$.ajax({'url': loginURL,'type': 'POST','data': params,'dataType': 'json','timeout': '15000','success': function(data){},'error': function(XMLHttpRequest, textStatus, errorThrown){}});block.slideUp(500);},updateTabs: function(id){var tabs=$('#'+id+'-tabs');tabs.find('p').each(function(){var item=$(this);if(item.find('div.content-tab-handle').length)return;item.find('a').mouseover(function(){$(this).parents('p:first').addClass('tab-hover');}).mouseout(function(){$(this).parents('p:first').removeClass('tab-hover');});item.append('<div class="content-tab-handle"></div>');});$('#'+id+'>section').css('min-height', Math.round(tabs.height()+20)+'px');},welcomeTab: function(tab){var tabs=$('#welcome-tabs'),parent=tabs.parent(),row=tabs.find('.tab-welcome-'+tab),content=parent.find('#welcome-'+tab);if(row.hasClass('options-tab-active'))return;if(!row.length||!content.length){clrWebsite.alert('Sorry, this function is not available yet.');return;}parent.find('.editor-options-content').css('display', 'none');content.css('display', '');tabs.find('.options-tab-active').removeClass('options-tab-active');row.addClass('options-tab-active');clrWebsite.moveTab(tabs);},search: function(){var input=$('#search input');if(!input.length)return false;var value=input.val();if(value=='Search...'||value==''||value=='Searching...'){input.val(input.parents('nav').hasClass('focused')?'': 'Search...');return false;}input.val('Searching...').addClass('searching').prop('disabled', true);clrWebsite.sendSearch(0,{'name': value});return true;},search2: function(){var form=$('#browse-form');if(!form.length||form.hasClass('searching'))return false;var select=$('#search-cat').get(0),categories=select.options[select.selectedIndex].value;if(!categories.length){clrWebsite.alert('Please select categories you want to search.');return false;}var value=$('#search-name').val();if(!value.length||value=='style name')return false;form.addClass('searching').find('a').addClass('clicked').html('<span></span>Searching...');clrWebsite.sendSearch(1,{'name': value, 'cat': categories});return true;},sendSearch: function(item, post){post['action']='search';post['random']=Math.random();var params={'url': '/search.html','type': 'POST','data': post,'dataType': 'json','timeout': '15000'};eval("params['success']=function(data){clrWebsite.searchSuccess("+item+", data);}");eval("params['error']=function(XMLHttpRequest, textStatus, errorThrown){clrWebsite.searchError("+item+", textStatus, errorThrown);}");$.ajax(params);},searchSuccess: function(item, data){if(data===null){clrWebsite.searchError(item, 'parsererror', '');return;}if(typeof(data.error)=='string'){clrWebsite.searchError(item, 'custom', data.error);return;}clrWebsite.searchRestore(item);if(typeof(data.url)=='string'){document.location.href=data.url;return;}if(typeof(data.message)=='string'){clrWebsite.alert(data.message, 'Search');return;}clrWebsite.alert('Search error: invalid response from server.', 'Search Error');},searchError: function(item, textStatus, errorThrown){clrWebsite.searchRestore(item);var error='';switch(textStatus){case 'timeout':error='Search error: cannot connect to server.<br />There might be a technical problem at server, please try again later.';break;case 'parsererror':error='Search error: invalid response from server.';break;case 'custom':error=errorThrown;break;default:error='Search error: unable to connect to server.';}clrWebsite.alert(error, 'Search Error');},searchRestore: function(item){switch(item){case 0:var input=$('#search input');if(!input.length||!input.hasClass('searching'))return;input.removeClass('searching').prop('disabled', false).val(input.parents('nav').hasClass('focused')?'': 'Search...');return;case 1:var form=$('#browse-form');if(!form.length||!form.hasClass('searching'))return;form.removeClass('searching').find('a').removeClass('clicked').html('<span></span>Search');return;}},randomStyles: function(){if($('#random-refresh').hasClass('loading'))return;var row=$('#random-styles-list');$('#random-refresh').css('min-width', Math.floor($('#random-refresh').width())+'px').addClass('loading').html('Loading');setTimeout("$('#random-refresh').removeClass('loading').html('Refresh list').css('min-width', 0);", 2000);row.html('<p style="min-height: '+Math.floor($('section.random-styles').height()- 48)+'px;margin: 0;"></p>');$.get('/index_random.html?t='+clr.time(), function(data, textStatus, jqXHR){clrWebsite.zoomIn($('#random-styles-list').html($(data).children().addClass(clrBrowser.transitions?'block-transform': '').each(function(i){$(this).data('counter', i);if(!clrBrowser.transitions)$(this).css('opacity', 0);}).parents()).find('ul.styles:first').children(), false);});},zoomIn: function(list, doReset){if(doReset){list.addClass(clrBrowser.transitions?'block-transform': '').each(function(i){$(this).data('counter', i);if(!clrBrowser.transitions)$(this).css('opacity', 0);});}list.delay(clrBrowser.transitions?100: 0).queue(function(next){if(clrBrowser.transitions)$(this).addClass('block-transform-list');next();}).queue(function(next){$(this).delay($(this).data('counter')* 200).queue(function(next){if(clrBrowser.transitions)$(this).addClass('block-transformed');else $(this).fadeTo(700, 1);next();});next();});},};clrPopup.alert=function(action, params){if(action=='show'){clrPopup.title(clrPopup.params.title);clrPopup.content('<p class="popup-alert">'+clrPopup.params.text+'</p>');clrPopup.button(1, false);clrPopup.button(2, 'Close');}};clrPopup.article=function(action, params){if(action=='show'){clrPopup.title('Loading...');clrPopup.content('<p class="popup-alert">Loading article...</p>');$('#'+clrPopup.contentId+' .popup-button-change').hide();}};$(document).ready(function(){clrWebsite.link=(clrBrowser.hover)?'a': 'p';if(typeof(clrOutdatedIE)!='undefined')return;if(!clrBrowser.canvas||!clrBrowser.corners||!clrBrowser.multiBg||!clrBrowser.opacity){if(typeof(clrBrowser.outdated)!='undefined'&&clrBrowser.outdated=='ff3'){var text='<p>This site makes extensive use of JavaScript and latest HTML 5 technologies that Firefox 3 does not fully support. Please update to Firefox 4 or newer version or switch to a different browser.</p>';}else{var text='<p>This site makes extensive use of JavaScript and latest HTML 5 technologies. Your browser is outdated, it does not support HTML 5. Please update your browser or switch to a different browser.</p>'+'<hr class="form-separator" />'+'<p>If you are using Internet Explorer, you can install <a href="http://code.google.com/chrome/chromeframe/">Google Chrome Frame</a> browser addon, created by Google.</p>';}$(document.body).html('<div id="noscript-bg">'+'<div id="noscript-text">'+text+'<p>Popular browsers that support HTML 5: <a href="http://www.google.com/chrome">Google Chrome</a>, <a href="http://www.getfirefox.com/">Mozilla Firefox</a>, <a href="http://www.opera.com/">Opera Browser</a>, <a href="http://www.apple.com/safari/">Apple Safari</a>, <a href="http://www.beautyoftheweb.com/">Microsoft Internet Explorer 9</a>.</p>'+'<p>If you have any questions, please post them on <a href="http://forum.colorizeit.com/index.php">support forum</a>.'+'</div>'+'</div>');return;}var header=$('header h1'),html=header.html();header.html('<a href="/index.html" title="Return to ColorizeIt home page." />');$('section').each(function(){var counter=1;$(this).children('h2.step').each(function(){$(this).addClass('step'+counter).nextAll('p').addClass('step');counter++;if(counter>5)counter=1;});$(this).children('h2.next').each(function(){if(counter==1)counter++;$(this).addClass('step'+counter);counter++;if(counter>5)counter=1;});});$('#browse-tags-all').hide();$('#browse-tags a').each(function(i){$(this).before(' &nbsp;');});$('ul.styles').after('<div class="clear"></div>');$('#search-name').focus(function(){if(this.value=='style name')this.value='';}).blur(function(){if(this.value=='')this.value='style name';});$('#search input').focus(function(){if(this.value=='Search...')this.value='';$(this).parents('nav').addClass('focused');}).blur(function(){if(this.value=='')this.value='Search...';$(this).parents('nav').removeClass('focused');});$('a.demo-link').each(function(){var url=$(this).attr('title');if(url&&url.substr(0, 4)=='url:'){$(this).attr('href', url.substr(4)).attr('title', 'Preview Style');}});if($('#random-styles-list').length)clrWebsite.randomStyles();var styles=$('li.style').not('.sidebar li.style');if(styles.length)clrWebsite.zoomIn(styles, true);if(clrBrowser.transitions===false){$('body').addClass('transform transform2 transform3 transform4');}else{setTimeout("clrWebsite.transform(0, '');", 2000);$(window).load(function(){clrWebsite.transform(0, '');});}clrWebsite.session.update();});clrWebsite.session={nologin: (clrSessionData.nologin===true)?true: false,registered: clrSessionData.sessionLogged,URL: clrSessionData.url,loginAction: '',ajax: false,listData: [],update: function(){$('#menu-login, #menu-login-span').toggle(!clrWebsite.session.nologin);$('#menu-login').html('<span></span>'+((clrWebsite.session.registered)?'Logout': 'Login or Register'));$('#menu-manage, #menu-manage-span').toggle(!clrWebsite.session.nologin&&clrWebsite.session.registered);},click: function(){if(clrWebsite.session.registered){var item=$('#menu-login'),popup={'caller': item,'title': 'Log out','type': 'login'};clrWebsite.session.loginAction='logout';item.clrPopup('show', popup);}else{var item=$('#menu-login'),popup={'caller': item,'title': 'Log in','type': 'login'};clrWebsite.session.loginAction='login';item.clrPopup('show', popup);}}};clrPopup.login=function(action, params){function setContent(){var list=[{'id': 'google','title': 'Google','input': false},{'id': 'yahoo','title': 'Yahoo','input': false}],list2=[{'id': 'aol','title': 'AOL','input': true,'longinput': true,'limit': 64,'def': 'Enter your AOL login','regexp': /^[a-zA-Z0-9._-]+$/,'openid': false},{'id': 'openid','title': 'OpenID','input': true,'longinput': true,'limit': 128,'def': 'http://','regexp': /^(http|https):\/\/.+$/,'openid': false}],str='<p class="auth-popup-block">';for(var i=0;i<list.length;i++){clrWebsite.session.listData[list[i].id]=list[i];if(i>0&&(i % 2)==0)str+='</p><p class="auth-popup-block">';str+='<a href="javascript:void(0);" class="auth-button-noinput auth-button-'+list[i].id+((i % 2==0)?' auth-button-even': ' auth-button-odd')+'" onclick="clrPopup.login(\'click\', \''+list[i].id+'\');return false;"><span>Sign in with '+list[i].title+'</span></a>';}str+='</p>';for(var i=0;i<list2.length;i++){clrWebsite.session.listData[list2[i].id]=list2[i];str+='<p class="auth-button-input auth-button-'+list2[i].id+((list2[i].longinput)?' auth-button-longinput': '')+'">';str+='<input class="auth-button-input" value="'+list2[i].def+'" onchange="return clrPopup.login(\'validate-input\', \''+list2[i].id+'\');" onkeyup="return clrPopup.login(\'validate-input\', \''+list2[i].id+'\');" onfocus="if(this.value==\''+list2[i].def+'\'){this.value=\'\';}" onblur="clrPopup.login(\'validate-input\', \''+list2[i].id+'\');if(this.value==\'\'){this.value=\''+list2[i].def+'\';}" />';str+='<a href="javascript:void(0);" class="auth-button-button" onclick="clrPopup.login(\'click2\', \''+list2[i].id+'\');return false;" onmouseover="$(\'#popup-content p.auth-button-'+list2[i].id+'\').addClass(\'auth-button-hover\');" onmouseout="$(\'#popup-content p.auth-button-'+list2[i].id+'\').removeClass(\'auth-button-hover\');"><span>Sign in with '+list2[i].title+'</span></a>';str+='</p>';}clrPopup.content(str).addClass('transparent');};function show(){$('#menu-login').addClass('clicked');clrPopup.title(clrPopup.params.title);if(clrWebsite.session.loginAction=='logout'){clrPopup.content('<p class="auth-popup-logout">Logging out...</p>');$('#'+clrPopup.contentId+' .popup-button-cancel').hide();setTimeout("clrPopup.login(\'logout\', true);", 1000);}else{clrPopup.content('<p>ColorizeIt uses OpenID for authentication.<br />You can login if you have an account at one of websites listed below.</p><p>Select your OpenID provider:</p>', 'header');setContent();clrPopup.content('<p>After selecting OpenID provider you will be taken to provider\'s website.</p><p>OpenID is a safe, faster, and easier way to log in to web sites.<br />To find out more about OpenID, visit <a href="http://openid.net" target="_blank">OpenID.net</a>.</p>', 'footer');}$('#'+clrPopup.contentId+' .popup-button-change').hide();return true;};function showMessage(text){var item=$('#popup-content div.popup-content p.auth-message');if(!item.length){$('#popup-content div.popup-content').append('<p class="auth-message">'+text+'</p>');}else{item.html(text).show();}};function addError(item, message){var found=false, item2;if(item.prop('tagName')=='P'&&item.hasClass('auth-button-input'))found=true;if(!found){item2=item.parent('p.auth-button-input');if(item2.length>0){item=item2;found=true;}}if(!found){item2=item.parent('p:first');if(item2.length>0){item=item2;found=true;}}if(!found)return false;item2=item.find('p.auth-error');$('#popup-content p.auth-error').hide();if(item2.length){if(message===false)item2.hide();else item2.html(message).show();}else if(message!==false){item.append('<p class="auth-error" onclick="$(this).hide();return false;">'+message+'</p>');}return true;};function validName(value, id){if(value.length<1||value.length>clrWebsite.session.listData[id].limit||value===clrWebsite.session.listData[id].def)return false;var pattern=clrWebsite.session.listData[id].regexp;return pattern.test(value);};function validateInput(id){var item=$('#popup-content p.auth-button-'+id+' input'),value=item.val();if(validName(value, id)){if(item.hasClass('auth-button-error')){item.removeClass('auth-button-error');$('#popup-content p.auth-error').hide();}return true;}else if(value.length>0){if(!item.hasClass('auth-button-error')){item.addClass('auth-button-error');}if(value===clrWebsite.session.listData[id].def){addError(item, (clrWebsite.session.listData[id].openid)?'Please enter your id before clicking button.': 'Please enter your user name before clicking button.');}else{addError(item, (clrWebsite.session.listData[id].openid)?'Invalid OpenID': 'Invalid user name. Name can contain only letters A-Z, numbers, dot and underscore.');}}return false;};function click(id){if(clrWebsite.session.ajax!==false){addError($('#popup-content a.auth-button-'+id), 'Another action is in progress. Please wait for it to finish.');return false;}showMessage('Log in request was sent to server. Please wait...');sendAction(clrWebsite.session.loginAction,{'provider': id, 'user': ''});return false;};function click2(id){if(clrWebsite.session.ajax!==false){addError($('#popup-content a.auth-button-'+id), 'Another action is in progress. Please wait for it to finish.');return false;}if(!validateInput(id))return false;var user=$('#popup-content p.auth-button-'+id+' input').val();showMessage('Log in request was sent to server. Please wait...');sendAction(clrWebsite.session.loginAction,{'provider': id, 'user': user});return false;};function logout(){sendAction('logout',{});return true;};function sendAction(action, params){$('#popup-content p.auth-error').hide();var loginURL='/session.php';params['url']=clrWebsite.session.URL;params['action']=action;params['random']=Math.random();clrWebsite.session.ajax=params;$.ajax({'url': loginURL,'type': 'POST','data': params,'dataType': 'json','timeout': '15000','success': function(data){if(data===null){clrPopup.login('ajax-error',{'status': 'parsererror', 'error': ''});}else{clrPopup.login('ajax-success', data);}},'error': function(XMLHttpRequest, textStatus, errorThrown){clrPopup.login('ajax-error',{'status': textStatus, 'error': errorThrown});}});};function ajaxError(status, error){alert(error);if(clrWebsite.session.ajax===false)return false;switch(clrWebsite.session.ajax.action){case 'login':case 'logout':switch(status){case 'timeout':showMessage('Error: Cannot connect to server.<br />There might be a technical problem at server, please try again later.');break;case 'parsererror':showMessage('Error: Invalid response from server.');break;default:showMessage('Error connecting to login server.');}break;default:if(typeof(error)=='string'){showMessage('Error: '+error);}else{showMessage('Error connecting to server.');}}clrWebsite.session.ajax=false;};function ajaxSuccess(params){if(typeof(params)=='string'){showMessage('Error: '+params);clrWebsite.session.ajax=false;return;}if(typeof(params.error)=='string'){showMessage('Error: '+params.error);clrWebsite.session.ajax=false;return;}if(typeof(params.url)=='string'){showMessage((typeof(params.message)=='string')?params.message: 'Redirecting to OpenID provider website, please wait...');clrWebsite.session.ajax=false;document.location.href=params.url;return;}clrWebsite.session.ajax=false;};switch(action){case 'logout':return logout();case 'show':return show();case 'click':return click(params);case 'click2':return click2(params);case 'validate':return validate(params);case 'validate-input':return validateInput(params);case 'hide-error':return addError($('#popup-content p.auth-button-'+params), false);case 'ajax-success':return ajaxSuccess(params);case 'ajax-error':return ajaxError(params.status, params.error);case 'cancel':case 'submit':$('#menu-login').removeClass('clicked');return;}};
