(function(a){a.fn.document=function(){var c=this[0];if(c.nodeName.toLowerCase()=="iframe"){return c.contentWindow.document}else{return a(this)}};a.fn.documentSelection=function(){var c=this[0];if(c.contentWindow.document.selection){return c.contentWindow.document.selection.createRange().text}else{return c.contentWindow.getSelection().toString()}};a.fn.wysiwyg=function(d){if(arguments.length>0&&arguments[0].constructor==String){var f=arguments[0].toString();var h=[];for(var e=1;e<arguments.length;e++){h[e-1]=arguments[e]}if(f in b){return this.each(function(){a.data(this,"wysiwyg").designMode();b[f].apply(this,h)})}else{return this}}var c={};if(d&&d.controls){var c=d.controls;delete d.controls}var d=a.extend({html:'<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">STYLE_SHEET</head><body>INITIAL_CONTENT</body></html>',css:{},debug:false,autoSave:true,rmUnwantedBr:true,brIE:true,controls:{},messages:{}},d);d.messages=a.extend(true,d.messages,b.MSGS_EN);d.controls=a.extend(true,d.controls,b.TOOLBAR);for(var g in c){if(g in d.controls){a.extend(d.controls[g],c[g])}else{d.controls[g]=c[g]}}return this.each(function(){b(this,d)})};function b(d,c){return this instanceof b?this.init(d,c):new b(d,c)}a.extend(b,{insertImage:function(f,e){var d=a.data(this,"wysiwyg");if(d.constructor==b&&f&&f.length>0){if(e){d.editorDoc.execCommand("insertImage",false,"#jwysiwyg#");var c=d.getElementByAttributeValue("img","src","#jwysiwyg#");if(c){c.src=f;for(var g in e){c.setAttribute(g,e[g])}}}else{d.editorDoc.execCommand("insertImage",false,f)}}},createLink:function(e){var c=a.data(this,"wysiwyg");if(c.constructor==b&&e&&e.length>0){var d=a(c.editor).documentSelection();if(d.length>0){c.editorDoc.execCommand("unlink",false,[]);c.editorDoc.execCommand("createLink",false,e)}else{if(c.options.messages.nonSelection){alert(c.options.messages.nonSelection)}}}},setContent:function(c){var d=a.data(this,"wysiwyg");d.setContent(c);d.saveContent()},clear:function(){var c=a.data(this,"wysiwyg");c.setContent("");c.saveContent()},MSGS_EN:{nonSelection:"select the text you wish to link"},TOOLBAR:{bold:{visible:true,tags:["b","strong"],css:{fontWeight:"bold"}},italic:{visible:true,tags:["i","em"],css:{fontStyle:"italic"}},strikeThrough:{visible:false,tags:["s","strike"],css:{textDecoration:"line-through"}},underline:{visible:false,tags:["u"],css:{textDecoration:"underline"}},separator00:{visible:false,separator:true},justifyLeft:{visible:false,css:{textAlign:"left"}},justifyCenter:{visible:false,tags:["center"],css:{textAlign:"center"}},justifyRight:{visible:false,css:{textAlign:"right"}},justifyFull:{visible:false,css:{textAlign:"justify"}},separator01:{visible:false,separator:true},indent:{visible:false},outdent:{visible:false},separator02:{visible:false,separator:true},subscript:{visible:false,tags:["sub"]},superscript:{visible:false,tags:["sup"]},separator03:{visible:false,separator:true},undo:{visible:false},redo:{visible:false},separator04:{visible:false,separator:true},insertOrderedList:{visible:false,tags:["ol"]},insertUnorderedList:{visible:false,tags:["ul"]},insertHorizontalRule:{visible:false,tags:["hr"]},separator05:{separator:true},createLink:{visible:true,exec:function(){var d=a(this.editor).documentSelection();if(d.length>0){if(a.browser.msie){this.editorDoc.execCommand("createLink",true,null)}else{var c=prompt("URL","http://");if(c&&c.length>0){this.editorDoc.execCommand("unlink",false,[]);this.editorDoc.execCommand("createLink",false,c)}}}else{if(this.options.messages.nonSelection){alert(this.options.messages.nonSelection)}}},tags:["a"]},insertImage:{visible:true,exec:function(){if(a.browser.msie){this.editorDoc.execCommand("insertImage",true,null)}else{var c=prompt("URL","http://");if(c&&c.length>0){this.editorDoc.execCommand("insertImage",false,c)}}},tags:["img"]},separator06:{separator:true},h1mozilla:{visible:true&&a.browser.mozilla,className:"h1",command:"heading",arguments:["h1"],tags:["h1"]},h2mozilla:{visible:true&&a.browser.mozilla,className:"h2",command:"heading",arguments:["h2"],tags:["h2"]},h3mozilla:{visible:true&&a.browser.mozilla,className:"h3",command:"heading",arguments:["h3"],tags:["h3"]},h1:{visible:true&&!(a.browser.mozilla),className:"h1",command:"formatBlock",arguments:["Heading 1"],tags:["h1"]},h2:{visible:true&&!(a.browser.mozilla),className:"h2",command:"formatBlock",arguments:["Heading 2"],tags:["h2"]},h3:{visible:true&&!(a.browser.mozilla),className:"h3",command:"formatBlock",arguments:["Heading 3"],tags:["h3"]},separator07:{visible:false,separator:true},cut:{visible:false},copy:{visible:false},paste:{visible:false},separator08:{separator:true&&!(a.browser.msie)},increaseFontSize:{visible:true&&!(a.browser.msie),tags:["big"]},decreaseFontSize:{visible:true&&!(a.browser.msie),tags:["small"]},separator09:{separator:true},html:{visible:false,exec:function(){if(this.viewHTML){this.setContent(a(this.original).val());a(this.original).hide()}else{this.saveContent();a(this.original).show()}this.viewHTML=!(this.viewHTML)}},removeFormat:{visible:true,exec:function(){this.editorDoc.execCommand("removeFormat",false,[]);this.editorDoc.execCommand("unlink",false,[])}}}});a.extend(b.prototype,{original:null,options:{},element:null,editor:null,init:function(f,e){var d=this;this.editor=f;this.options=e||{};a.data(f,"wysiwyg",this);var i=f.width||f.clientWidth;var h=f.height||f.clientHeight;if(f.nodeName.toLowerCase()=="textarea"){this.original=f;if(i==0&&f.cols){i=(f.cols*8)+21}if(h==0&&f.rows){h=(f.rows*16)+16}var g=this.editor=a("<iframe></iframe>").css({minHeight:(h-6).toString()+"px",width:(i-8).toString()+"px"}).attr("id",a(f).attr("id")+"IFrame");if(a.browser.msie){this.editor.css("height",(h).toString()+"px")}}var c=this.panel=a("<ul></ul>").addClass("panel");this.appendControls();this.element=a("<div></div>").css({width:(i>0)?(i).toString()+"px":"100%"}).addClass("wysiwyg").append(c).append(a("<div><!-- --></div>").css({clear:"both"})).append(g);a(f).hide().before(this.element);this.viewHTML=false;this.initialHeight=h-8;this.initialContent=a(f).val();this.initFrame();if(this.initialContent.length==0){this.setContent("")}if(this.options.autoSave){a("form").submit(function(){d.saveContent()})}a("form").bind("reset",function(){d.setContent(d.initialContent);d.saveContent()})},initFrame:function(){var c=this;var d="";if(this.options.css&&this.options.css.constructor==String){d='<link rel="stylesheet" type="text/css" media="screen" href="'+this.options.css+'" />'}this.editorDoc=a(this.editor).document();this.editorDoc_designMode=false;try{this.editorDoc.designMode="on";this.editorDoc_designMode=true}catch(f){a(this.editorDoc).focus(function(){c.designMode()})}this.editorDoc.open();this.editorDoc.write(this.options.html.replace(/INITIAL_CONTENT/,this.initialContent).replace(/STYLE_SHEET/,d));this.editorDoc.close();this.editorDoc.contentEditable="true";if(a.browser.msie){setTimeout(function(){a(c.editorDoc.body).css("border","none")},0)}a(this.editorDoc).click(function(e){c.checkTargets(e.target?e.target:e.srcElement)});a(this.original).focus(function(){a(c.editorDoc.body).focus()});if(this.options.autoSave){a(this.editorDoc).keydown(function(){c.saveContent()}).keyup(function(){c.saveContent()}).mousedown(function(){c.saveContent()})}if(this.options.css){setTimeout(function(){if(c.options.css.constructor==String){}else{a(c.editorDoc).find("body").css(c.options.css)}},0)}a(this.editorDoc).keydown(function(g){if(a.browser.msie&&c.options.brIE&&g.keyCode==13){var e=c.getRange();e.pasteHTML("<br />");e.collapse(false);e.select();return false}})},designMode:function(){if(!(this.editorDoc_designMode)){try{this.editorDoc.designMode="on";this.editorDoc_designMode=true}catch(c){}}},getSelection:function(){return(window.getSelection)?window.getSelection():document.selection},getRange:function(){var c=this.getSelection();if(!(c)){return null}return(c.rangeCount>0)?c.getRangeAt(0):c.createRange()},getContent:function(){return a(a(this.editor).document()).find("body").html()},setContent:function(c){a(a(this.editor).document()).find("body").html(c)},saveContent:function(){if(this.original){var c=this.getContent();if(this.options.rmUnwantedBr){c=(c.substr(-4)=="<br>")?c.substr(0,c.length-4):c}a(this.original).val(c)}},appendMenu:function(g,d,f,e){var c=this;var d=d||[];a("<li></li>").append(a("<a><!-- --></a>").addClass(f||g)).mousedown(function(){if(e){e.apply(c)}else{c.editorDoc.execCommand(g,false,d)}if(c.options.autoSave){c.saveContent()}}).appendTo(this.panel)},appendMenuSeparator:function(){a('<li class="separator"></li>').appendTo(this.panel)},appendControls:function(){for(var c in this.options.controls){var d=this.options.controls[c];if(d.separator){if(d.visible!==false){this.appendMenuSeparator()}}else{if(d.visible){this.appendMenu(d.command||c,d.arguments||[],d.className||d.command||c||"empty",d.exec)}}}},checkTargets:function(e){for(var d in this.options.controls){var g=this.options.controls[d];var f=g.className||g.command||d||"empty";a("."+f,this.panel).removeClass("active");if(g.tags){var h=e;do{if(h.nodeType!=1){break}if(a.inArray(h.tagName.toLowerCase(),g.tags)!=-1){a("."+f,this.panel).addClass("active")}}while(h=h.parentNode)}if(g.css){var h=a(e);do{if(h[0].nodeType!=1){break}for(var c in g.css){if(h.css(c).toString().toLowerCase()==g.css[c]){a("."+f,this.panel).addClass("active")}}}while(h=h.parent())}}},getElementByAttributeValue:function(e,c,f){var h=this.editorDoc.getElementsByTagName(e);for(var d=0;d<h.length;d++){var g=h[d].getAttribute(c);if(a.browser.msie){g=g.substr(g.length-f.length)}if(g==f){return h[d]}}return false}})})(jQuery);