/*
 CLEditor WYSIWYG HTML Editor v1.2
 http://premiumsoftware.net/cleditor
 requires jQuery v1.4.2 or later

 Copyright 2010, Chris Landowski, Premium Software, LLC
 Dual licensed under the MIT or GPL Version 2 licenses.
*/
(function(d){function aa(a){var b=this,c=a.target,e=d(c).data(y),h=p[e],f=h.popupName,i=q[f];if(!b.disabled){var g={editor:b,button:c,buttonName:e,popup:i,popupName:f,command:h.command,value:null,useCSS:b.options.useCSS};if(h.buttonClick&&h.buttonClick(a,g)===false)return false;if(e=="html")if(t(b)){z(b);b.$area.hide();b.$frame.show();c.title=h.title}else{A(b);b.$frame.hide();b.$area.show();c.title="Show Rich Text"}else if(t(b)){u(b,"The '"+h.title+"' button is not allowed when viewing HTML.",c);
return false}else if(f){var m=d(i);if(f=="url"){if(e=="link"&&K(b)==""){u(b,"A selection is required when inserting a link.",c);return false}m.children(":button").unbind(v).bind(v,function(){L(b);var n=m.find(":text"),o=d.trim(n.val());o!=""&&w(b,g.command,o,null,g.button);n.val("http://");r();B(b)})}if(c!==d(i).data(x)){M(b,i,c);return false}return}else if(e=="print")b.$frame[0].contentWindow.print();else if(!w(b,g.command,g.value,g.useCSS,c))return false;B(b)}}function N(a){for(a=a.target;a.tagName!=
"DIV";)a=a.parentNode;a=d(a);var b=a.data(y)?"white":"#FFFFCC";a.css(E,b)}function O(a){for(a=a.target;a.tagName!="DIV";)a=a.parentNode;d(a).css(E,"transparent")}function ba(a){var b=a.data.popup,c=d(b),e=a.target;if(!(b===q.msg||c.hasClass(F))){c=c.data(x);var h=d(c).data(y),f=p[h],i=f.command,g=null,m=this.options.useCSS;if(h==P)g=e.style.fontFamily;else if(h==Q){if(e.tagName=="DIV")e=e.children[0];g=e.innerHTML}else if(h==R)g="<"+e.tagName+">";else if(h==S)g=T(e.style.backgroundColor);else if(h==
"highlight"){g=T(e.style.backgroundColor);if(d.browser.msie)i="backcolor";else m=true}b={editor:this,button:c,buttonName:h,popup:b,popupName:f.popupName,command:i,value:g,useCSS:m};if(!(f.popupClick&&f.popupClick(a,b)===false)){if(b.command&&!w(this,b.command,b.value,b.useCSS,c))return false;r();B(this)}}}function U(a,b,c,e,h){if(q[a])return q[a];var f=d(k).hide().addClass(ca).appendTo("body");if(e)f.html(e);else if(a==S){b=b.colors.split(" ");b.length<10&&f.width("auto");d.each(b,function(i,g){d(k).appendTo(f).css(E,
"#"+g)});c=da}else if(a==P)d.each(b.fonts.split(","),function(i,g){d(k).appendTo(f).css("font-family",g).html(g)});else if(a==Q)d.each(b.sizes.split(","),function(i,g){d(k).appendTo(f).html("<font size="+g+">"+g+"</font>")});else if(a==R)d.each(b.styles,function(i,g){d(k).appendTo(f).html(g[1]+g[0]+g[1].replace("<","</"))});else if(a=="url"){f.html('Enter URL:<br><input type=text value="http://" size=35><br><input type=button value="Submit">');c=F}if(!c&&!e)c=V;f.addClass(c);d.browser.msie&&f.attr(G,
"on").find("div,font,p,h1,h2,h3,h4,h5,h6").attr(G,"on");if(f.hasClass(V)||h===true)f.children().hover(N,O);q[a]=f[0];return f[0]}function W(a,b){if(b){a.$area.attr(H,H);a.disabled=true}else{a.$area.removeAttr(H);delete a.disabled}try{if(d.browser.msie)a.doc.body.contentEditable=!b;else a.doc.designMode=!b?"on":"off"}catch(c){}}function T(a){var b=/rgba?\((\d+), (\d+), (\d+)/.exec(a);return b?"#"+(b[1]<<16|b[2]<<8|b[3]).toString(16):a}function w(a,b,c,e,h){if(!d.browser.msie){if(e===undefined||e===
null)e=a.options.useCSS;a.doc.execCommand("styleWithCSS",0,e.toString())}e=true;var f;if(b.toLowerCase()=="inserthtml"&&d.browser.msie)a.doc.selection.createRange().pasteHTML(c);else{try{e=a.doc.execCommand(b,0,c||null)}catch(i){f=i.description;e=false}e||("cutcopypaste".indexOf(b)>-1?u(a,"For security reasons, your browser does not support the "+b+" command. Try using the keyboard shortcut or context menu instead.",h):u(a,f?f:"Error executing the "+b+" command.",h))}A(a);return e}function B(a){setTimeout(function(){t(a)?
a.$area.focus():a.$frame[0].contentWindow.focus()},0)}function r(){d.each(q,function(a,b){d(b).hide().unbind(v).removeData(x)})}function t(a){return a.$frame.css("display")=="none"}function C(){var a=d("link[href$='jquery.cleditor.css']").attr("href");return a.substr(0,a.length-19)+"images/"}function I(a){var b=a.$toolbar,c=b.children("div:last");c=c.offset().top+c.outerHeight()-b.offset().top+1;b.height(c);b=a.$main.width();c=/%/.test(""+a.options.height)?a.$main.height()-c:parseInt(a.options.height)-
c;a.$frame.width(b).height(c);a.$area.width(b).height(ea?c-2:c)}function L(a){if(a.range){a.range.select();delete a.range}}function K(a){if(d.browser.msie)return a.doc.selection.createRange().text;return a.$frame[0].contentWindow.getSelection()}function u(a,b,c){var e=U("msg",a.options,fa);e.innerHTML=b;M(a,e,c)}function M(a,b,c){var e,h,f=d(b);if(c){var i=d(c);e=i.offset();h=--e.left;e=e.top+i.height()}else{i=a.$toolbar;e=i.offset();h=Math.floor((i.width()-f.width())/2)+e.left;e=e.top+i.height()-
2}r();f.css({left:h,top:e}).show();if(c){f.data(x,c);f.bind(v,{popup:b},d.proxy(ba,a))}var g=f.find(":text:first")[0];if(g){if(d.browser.msie)a.range=a.doc.selection.createRange();setTimeout(function(){g.select();g.focus()},100)}}function z(a){var b=a.$area.val(),c=d(a.doc.body);if(b!=c.html()){b=b.replace(/<(?=\/?script)/ig,"&lt;");c.html(b);d(a).triggerHandler(D)}}function A(a){var b=d(a.doc.body).html(),c=a.$area;if(b!=c.val()){c.val(b);d(a).triggerHandler(D)}}d.cleditor={defaultOptions:{width:500,
height:250,controls:"bold italic underline strikethrough subscript superscript | font size style | color highlight removeformat | bullets numbering | outdent indent | alignleft center alignright justify | undo redo | rule image link unlink | cut copy paste | print html",colors:"FFFFFF FFCCCC FFCC99 FFFF99 FFFFCC 99FF99 99FFFF CCFFFF CCCCFF FFCCFF CCCCCC FF6666 FF9966 FFFF66 FFFF33 66FF99 33FFFF 66FFFF 9999FF FF99FF C0C0C0 FF0000 FF9900 FFCC66 FFFF00 33FF33 66CCCC 33CCFF 6666CC CC66CC 999999 CC0000 FF6600 FFCC33 FFCC00 33CC00 00CCCC 3366FF 6633FF CC33CC 666666 990000 CC6600 CC9933 999900 009900 339999 3333FF 6600CC 993399 333333 660000 993300 996633 666600 006600 336666 000099 333399 663366 000000 330000 663300 663333 333300 003300 003333 000066 330099 330033",
fonts:"Arial,Arial Black,Comic Sans MS,Courier New,Narrow,Garamond,Georgia,Impact,Sans Serif,Serif,Tahoma,Trebuchet MS,Verdana",sizes:"1,2,3,4,5,6,7",styles:[["Paragraph","<p>"],["Header 1","<h1>"],["Header 2","<h2>"],["Header 3","<h3>"],["Header 4","<h4>"],["Header 5","<h5>"],["Header 6","<h6>"]],useCSS:false,bodyStyle:"margin:4px; font:10pt Arial,Verdana; cursor:text"},buttons:{init:"bold,,|italic,,|underline,,|strikethrough,,|subscript,,|superscript,,|font,,fontname,|size,Font Size,fontsize,|style,,formatblock,|color,Font Color,forecolor,|highlight,Text Highlight Color,hilitecolor,color|removeformat,Remove Formatting,|bullets,,insertunorderedlist|numbering,,insertorderedlist|outdent,,|indent,,|alignleft,Align Text Left,justifyleft|center,,justifycenter|alignright,Align Text Right,justifyright|justify,,justifyfull|undo,,|redo,,|rule,Insert Horizontal Rule,inserthorizontalrule|image,Insert Image,insertimage,url|link,Insert Hyperlink,createlink,url|unlink,Remove Hyperlink,|cut,,|copy,,|paste,,|print,,|html,Show HTML"},
imagesPath:function(){return C()}};d.fn.cleditor=function(a){var b=d([]);this.each(function(){if(this.tagName=="TEXTAREA"){var c=d(this).data(l);b=c?b.add(c):b.add(new cleditor(this,a))}});return b};var E="backgroundColor",x="button",y=x+"Name",D="change",l="cleditor",v="click",S="color",H="disabled",k="<div>",P="font",Q="size",R="style",G="unselectable",ga=l+"Main",X=l+"Group",Y=l+"Button",ha=l+"Divider",ca=l+"Popup",V=l+"List",da=l+"Color",F=l+"Prompt",fa=l+"Msg",ea=/msie\s6/i.test(navigator.userAgent),
q={},Z,p=d.cleditor.buttons;d.each(p.init.split("|"),function(a,b){var c=b.split(","),e=c[0];p[e]={stripIndex:a,name:e,title:c[1]==""?e.charAt(0).toUpperCase()+e.substr(1):c[1],command:c[2]==""?e:c[2],popupName:c[3]==""?e:c[3]}});delete p.init;cleditor=function(a,b){var c=this;b=d.extend({},d.cleditor.defaultOptions,b);var e=d(a).hide().data(l,c).bind("keyup mouseup",function(){z(c)}),h=d(k).addClass(ga).width(b.width).height(b.height).insertBefore(e).append(e),f=d(k).css({backgroundImage:"url("+
C()+"toolbar.gif)",backgroundRepeat:"repeat"}).prependTo(h),i=d(k).addClass(X).appendTo(f),g=0;d.each(b.controls.split(" "),function(o,J){if(J=="")return true;if(J=="|"){var j=d(k).addClass(ha).appendTo(i);i.width(g+=j.width());i=d(k).addClass(X).appendTo(f);g=0}else{j=p[J];var s=d(k).data(y,j.name).addClass(Y).attr("title",j.title).bind(v,d.proxy(aa,c)).appendTo(i);if(j.css)s.css(j.css);else j.image?s.css({backgroundImage:"url("+C()+j.image+")"}):s.css({backgroundImage:"url("+C()+"buttons.gif)"});
j.stripIndex&&s.css({backgroundPosition:j.stripIndex*-24});i.width(g+=s.width());d.browser.msie&&s.attr(G,"on");j.popupName&&U(j.popupName,b,j.popupClass,j.popupContent,j.popupHover)}});f.find("."+Y).hover(N,O);var m=d('<iframe frameborder="0" src="javascript:true;">').appendTo(h),n=m[0].contentWindow.document;n.open();n.write('<html><body style="'+b.bodyStyle+'">'+e.val()+"</body></html>");n.close();c.$main=h;c.$toolbar=f;c.$area=e;c.$frame=m;c.options=b;c.doc=n;W(c);d(n).click(r).bind("keyup mouseup",
function(){A(c)});if(!Z){d(document).click(function(o){o=d(o.target);o.add(o.parents()).is("."+F)||r()});Z=true}/auto|%/.test(""+b.width+b.height)&&d(window).resize(function(){I(c)});I(c)};var $=cleditor.prototype;d.each([["clear",function(a){a.$area.val("");z(a)}],["disable",W],["execCommand",w],["focus",B],["hidePopups",r],["htmlMode",t,true],["resizeControls",I],["restoreSelection",L],["select",function(a){setTimeout(function(){t(a)?a.$area.select():w(a,"selectall")},0)}],["selectedText",K,true],
["showMessage",u],["updateFrame",z],["updateTextArea",A]],function(a,b){$[b[0]]=function(){for(var c=[this],e=0;e<arguments.length;e++)c.push(arguments[e]);c=b[1].apply(this,c);if(b[2])return c;return this}});$.change=function(a){var b=d(this);return a?b.bind(D,a):b.trigger(D)}})(jQuery);
