/*  jQRTE - $ WYSIWYG Editor v0.3
 *  jQRTE is distributed under the terms of the MIT license
 *  For more information visit http://jqframework.com/jqrte
 *  Copyright (C) 2009  jqframework.com
 * Do not remove this copyright message
 */

$.jQRTE={
iconList:["popup_html","popup_bgcolor","popup_forecolor","bold","italic","underline","justifyleft","justifycenter","justifyright","justifyfull","insertHorizontalRule","insertorderedlist","insertunorderedlist","indent","outdent","popup_addlink","unlink","removeformat","strikethrough","superscript","subscript","popup_addtable","popup_uploadfile","popup_addimage","popup_uploadimage","popup_emotion","popup_character","popup_copyright"],
rangeObj:null,
element:null,
callback:null,
charLimit:null,
selectionObj:null,
boxy:{},
backcolor:"#ffffff",
forecolor:"#000000",
backcolorList:{},
forecolorList:{},
init: function(element){
document.getElementById(element).contentWindow.document.designMode="on";
document.getElementById(element).contentWindow.document.contentEditable=true;
$(document.getElementById(element).contentWindow.document).keyup(function(e){$.jQRTE.saveRange(element)
});
$(document.getElementById(element).contentWindow.document).click(function(e){$.jQRTE.saveRange(element)
});
$(document.getElementById(element).contentWindow.document).focus(function(e){$.jQRTE.saveRange(element)
})
},
setCounter: function(element){
	var proposal = $("#" + element).contents().find("body").text();
	// Store curent length in element
	$("#" + element).data('content_length', proposal.length);
		
	if ($("#" + element).data('callback') != undefined) {
		var remaining = $("#" + element).data('maxlength') - proposal.length;
		var callback = $("#" + element).data('callback');
		callback(proposal.length);
	}
	
	if ($("#" + element).data('maxlength') != undefined) {
		var remaining = $("#" + element).data('maxlength') - proposal.length;
		var indicator = $("#" + element +"_chars_remaining");
		indicator.text(remaining);

		if (remaining < 0) {
			indicator.addClass("length_not_ok");
		} else {
			indicator.removeClass("length_not_ok");
		}
	}
},
updateContent:function(element){
	var box=element.split("_");
	var textid="";
	for(var i=0; i<box.length-1; i++){
		textid+="_"+box[i]
	}
	textid=textid.substr(1);
	var proposal = $("#" + element).contents().find("body").html();
	$("#" + textid).text(proposal);
	$.jQRTE.setCounter(element);
},
saveRange:function(element){
	var iframe=document.getElementById(element);
	var doc=document.getElementById(element).contentDocument||document.getElementById(element).contentWindow.document;
	var selection=doc.selection||iframe.contentWindow.getSelection();
	var range=selection.createRange?selection.createRange():selection.getRangeAt(0);
	var box=element.split("_");
	var textid="";
	for(var i=0; i<box.length-1; i++){
		textid+="_"+box[i]
	}
	textid=textid.substr(1);
$("#"+textid).text(document.getElementById(element).contentWindow.document.body.innerHTML);
	//
	$.jQRTE.setCounter(element);
	//
	$.jQRTE.rangeObj=range;
	$.jQRTE.selectionObj=selection
},
restoreRange:function(element){document.getElementById(element).contentWindow.focus();
if(navigator.appVersion.indexOf("MSIE")!=-1){if($.jQRTE.rangeObj){$.jQRTE.rangeObj.select()
}}else{if($.jQRTE.rangeObj){$.jQRTE.selectionObj.removeAllRanges();
$.jQRTE.selectionObj.addRange($.jQRTE.rangeObj)
}}},setIcon:function(element){for(var i=0;
i<$.jQRTE.iconList.length;
i++){var checkpopup=($.jQRTE.iconList[i]).substr(0,5);
if(checkpopup=="popup"){var fn;
var id=($.jQRTE.iconList[i]).substr(6);
if(id=="bgcolor"||id=="forecolor"){fn="handle_color"
}else{fn="handle_"+id
}$("#"+element+"_"+($.jQRTE.iconList[i]).substr(6)).html('<span id="'+element+"_"+$.jQRTE.iconList[i].substr(6)+"_btn\" onclick='$.jQRTE.jqp_c();$.jQRTE."+fn+'("'+id+'","'+element+'");\' style="background-position: '+(-18)*(i)+'px 0px;" class="icons"></span>')
}else{$("#"+element+"_"+$.jQRTE.iconList[i]).html('<span id="'+element+"_"+$.jQRTE.iconList[i]+'_btn" onclick=\'$.jQRTE.setCommand("'+$.jQRTE.iconList[i]+'",null,"'+element+'");\' style="background-position: '+(-18)*(i)+'px 0px;" class="icons"></span>')
}}$("#"+element+"_fontsize").change(function(){$.jQRTE.setCommand("fontsize",this.value,element);
$(this).val("")
});
$("#"+element+"_fontname").change(function(){$.jQRTE.setCommand("fontname",this.value,element);
$(this).val("")
});
$("#"+element+"_formatblock").change(function(){$.jQRTE.setCommand("formatblock",this.value,element);
$(this).val("")
})
},
setContent: function(element)
{
	var rid=element.split("_");
	var textid="";
	for(var i=0; i<rid.length-1; i++) {
		textid+="_"+rid[i]
	}
	textid=textid.substr(1);
	var content=$("#"+textid).text();
	if(content!=""){
		document.getElementById(element).contentWindow.document.open();
		document.getElementById(element).contentWindow.document.write(content);
		document.getElementById(element).contentWindow.document.close();
		$.jQRTE.setCounter(element);
	}
},
setCommand:function(id,value,element){$.jQRTE.restoreRange(element);
document.getElementById(element).contentWindow.document.execCommand(id,false,value);
$.jQRTE.restoreRange(element);
var box=element.split("_");
var textid="";
for(var i=0;
i<box.length-1;
i++){textid+="_"+box[i]
}textid=textid.substr(1);
$("#"+textid).text(document.getElementById(element).contentWindow.document.body.innerHTML)
},jqp_o:function(id,element,btn_id){$.jQRTE.boxy[id]=id;
$("#"+id).jqpopup_open(element+"_"+btn_id+"_btn");
$.jQRTE.element=element;
},jqp_c:function(){$.each($.jQRTE.boxy,function(){$("#"+this).jqpopup_close()
});
$.jQRTE.boxy={}
},handle_color:function(id,element){var rid=id;
if(id=="bgcolor"&&navigator.appVersion.indexOf("MSIE")!=-1){rid="backColor"
}else{if(id=="bgcolor"){rid="hiliteColor"
}}$.jQRTE.jqp_o("color_div",element,id);
if(id=="bgcolor"){if($.jQRTE.backcolorList[element]==null){$.jQRTE.backcolorList[element]=$.jQRTE.backcolor
}$("#color_value").jqcp_setColor($.jQRTE.backcolorList[element])
}else{if(id=="forecolor"){if($.jQRTE.forecolorList[element]==null){$.jQRTE.forecolorList[element]=$.jQRTE.forecolor
}$("#color_value").jqcp_setColor($.jQRTE.forecolorList[element])
}}$("#color_btn").unbind("click");
$("#color_btn").bind("click",function(){if(rid=="backColor"||rid=="hiliteColor"){$.jQRTE.backcolorList[element]=$("#color_value").val()
}else{$.jQRTE.forecolorList[element]=$("#color_value").val()
}$.jQRTE.setCommand(rid,$("#color_value").val(),element);
$.jQRTE.jqp_c()
})
},handle_character:function(id,element){$.jQRTE.jqp_o(id+"_div",element,id);
$(".character").unbind("click");
$(".character").bind("click",function(){$.jQRTE.htmlHandler(this.id.toString(),element);
$.jQRTE.jqp_c()
})
},handle_emotion:function(id,element){$.jQRTE.jqp_o(id+"_div",element,id);
$(".emoticon").unbind("click");
$(".emoticon").bind("click",function(){var str='<img src="'+this.src+'" title="'+this.title+'"/>';
$.jQRTE.htmlHandler(str,element);
$.jQRTE.jqp_c()
})
},handle_html:function(id,element){$.jQRTE.jqp_o(id+"_div",element,id);
if(navigator.appVersion.indexOf("MSIE")!=-1){$("#html_content").text(document.getElementById(element).contentWindow.document.body.innerHTML)
}else{$("#html_content").val(document.getElementById(element).contentWindow.document.body.innerHTML)
}$("#"+id+"_btn").unbind("click");
$("#"+id+"_btn").bind("click",function(){var rid=element.split("_");
var textid="";
for(var i=0;
i<rid.length-1;
i++){textid+="_"+rid[i]
}textid=textid.substr(1);
if(navigator.appVersion.indexOf("MSIE")!=-1){$("#"+textid).text($("#html_content").text())
}else{$("#"+textid).text($("#html_content").val())
}if(navigator.appVersion.indexOf("MSIE")!=-1){$(document.getElementById(element).contentWindow.document.body).html($("#html_content").text())
}else{var content=$("#html_content").val();
$(document.getElementById(element).contentWindow.document.body).html("<pre>"+content+"</pre>")
}$.jQRTE.jqp_c()
})
},handle_addimage:function(id,element){$.jQRTE.jqp_o(id+"_div",element,id);
$("#"+id+"_btn").unbind("click");
$("#"+id+"_btn").bind("click",function(){var str=" <img";
str+=' src="'+$("#addimage_url").val()+'"';
str+=' title="'+$("#addimage_desc").val()+'"';
str+=' align="'+$("#addimage_alignment").val()+'"';
str+=' border="'+$("#addimage_border").val()+'"';
str+="/>";
$.jQRTE.htmlHandler(str,element);
$.jQRTE.jqp_c()
})
},handle_addlink:function(id,element){$.jQRTE.jqp_o(id+"_div",element,id);
$("#"+id+"_btn").unbind("click");
$("#"+id+"_btn").bind("click",function(){var str='<a href="'+$("#addlink_url").val()+'"';
str+=' target="'+$("#addlink_target").val()+'"';
str+=">";
str+=$("#addlink_name").val();
str+="</a>";
$.jQRTE.htmlHandler(str,element);
$.jQRTE.jqp_c()
})
},handle_copyright:function(id,element){window.open("http://www.jqframework.com/","_new")
},handle_addtable:function(id,element){$.jQRTE.jqp_o(id+"_div",element,id);
$("#"+id+"_btn").unbind("click");
$("#"+id+"_btn").bind("click",function(){var str="<table";
str+=' cellpadding="'+$("#addtable_cellpadding").val()+'"';
str+=' cellspacing="'+$("#addtable_cellspacing").val()+'"';
str+=' width="'+$("#addtable_width").val()+$("#addtable_width_format").val()+'"';
str+=' border="'+$("#addtable_border").val()+'"';
str+=' align="'+$("#addtable_alignment").val()+'"';
str+=">";
for(var i=0;
i<$("#addtable_row").val();
i++){str+="<tr>";
for(var j=0;
j<$("#addtable_column").val();
j++){str+="<td>&nbsp;</td>"
}str+="</tr>"
}str+="</table>";
$.jQRTE.htmlHandler(str,element);
$.jQRTE.jqp_c()
})
},handle_uploadimage:function(id,element){$.jQRTE.jqp_o(id+"_div",element,id);
$("#"+id+"_btn").unbind("click");
$("#"+id+"_btn").bind("click",function(){$.jQRTE.uploads("image",element)
})
},handle_uploadimageReturn:function(element){var str=" <img";
str+=' src="'+$("#uploadimage_url").val()+'"';
str+=' title="'+$("#uploadimage_desc").val()+'"';
str+=' align="'+$("#uploadimage_alignment").val()+'"';
str+=' border="'+$("#uploadimage_border").val()+'"';
str+="/>";
$.jQRTE.htmlHandler(str,element);
$.jQRTE.jqp_c()
},handle_uploadfile:function(id,element){$.jQRTE.jqp_o(id+"_div",element,id);
$("#"+id+"_btn").unbind("click");
$("#"+id+"_btn").bind("click",function(){$.jQRTE.uploads("file",element)
})
},handle_uploadfileReturn:function(element){var str='<a href="'+$("#uploadfile_url").val()+'"><img';
str+=' src="images/attachment.gif"';
str+=' title="'+$("#uploadfile_name").val()+'"';
str+=' border="0"/>';
str+=$("#uploadfile_name").val();
str+="</a>";
$.jQRTE.htmlHandler(str,element);
$.jQRTE.jqp_c()
},htmlHandler:function(html_content,element){$.jQRTE.restoreRange(element);
if(navigator.appVersion.indexOf("MSIE")!=-1){document.getElementById(element).contentWindow.document.selection.createRange().pasteHTML(html_content)
}else{if(navigator.appName=="Netscape"){document.getElementById(element).contentWindow.document.execCommand("insertHTML",false,html_content)
}else{document.getElementById(element).contentWindow.document.execCommand("insertText",false,html_content)
}}$.jQRTE.restoreRange(element);
var box=element.split("_");
var textid="";
for(var i=0;
i<box.length-1;
i++){textid+="_"+box[i]
}textid=textid.substr(1);
$("#"+textid).text(document.getElementById(element).contentWindow.document.body.innerHTML)
},uploads:function(fname,element){var uid=fname.toLowerCase();
$.jQRTE.ajaxFileUpload({url:"genericupload.php",secureuri:false,fileElementId:"upload"+uid+"_fileToUpload",dataType:"json",success:function(data,status){if(typeof(data.error)!="undefined"){if(data.error.value!=""){alert(data.error.value)
}else{$("#upload"+uid+"_url").val(data.imagepath.value);
eval("$.jQRTE.handle_upload"+fname+"Return('"+element+"');")
}}},error:function(data,status,e){alert(e)
}});
return false
},uploadIframe:function(id,uri){var frameId="jUploadFrame"+id;
if(window.ActiveXObject){var io=document.createElement('<iframe id="'+frameId+'" name="'+frameId+'" />');
if(typeof uri=="boolean"){io.src="javascript:false"
}else{if(typeof uri=="string"){io.src=uri
}}}else{var io=document.createElement("iframe");
io.id=frameId;
io.name=frameId
}io.style.position="absolute";
io.style.top="-1000px";
io.style.left="-1000px";
document.body.appendChild(io);
return io
},uploadForm:function(id,fileElementId){var formId="jUploadForm"+id;
var fileId="jUploadFile"+id;
var form=$('<form  action="" method="POST" name="'+formId+'" id="'+formId+'" enctype="multipart/form-data"></form>');
var oldElement=$("#"+fileElementId);
var newElement=$(oldElement).clone();
$(oldElement).attr("id",fileId);
$(oldElement).before(newElement);
$(oldElement).appendTo(form);
$(form).css("position","absolute");
$(form).css("top","-1200px");
$(form).css("left","-1200px");
$(form).appendTo("body");
return form
},
ajaxFileUpload: function(s){
s=$.extend({},$.ajaxSettings,s);
var id=new Date().getTime();
var form=$.jQRTE.uploadForm(id,s.fileElementId);
var io=$.jQRTE.uploadIframe(id,s.secureuri);
var txtlength_callback;
var feedback_element;
var frameId="jUploadFrame"+id;
var formId="jUploadForm"+id;
if(s.global&&!$.active++){$.event.trigger("ajaxStart")
}var requestDone=false;
var xml={};
if(s.global){$.event.trigger("ajaxSend",[xml,s])
}var uploadCallback=function(isTimeout){var io=document.getElementById(frameId);
try{if(io.contentWindow){xml.responseText=io.contentWindow.document.body?io.contentWindow.document.body.innerHTML:null;
xml.responseXML=io.contentWindow.document.XMLDocument?io.contentWindow.document.XMLDocument:io.contentWindow.document
}else{if(io.contentDocument){xml.responseText=io.contentDocument.document.body?io.contentDocument.document.body.innerHTML:null;
xml.responseXML=io.contentDocument.document.XMLDocument?io.contentDocument.document.XMLDocument:io.contentDocument.document
}}}catch(e){$.handleError(s,xml,null,e)
}if(xml||isTimeout=="timeout"){requestDone=true;
var status;
try{status=isTimeout!="timeout"?"success":"error";
if(status!="error"){var data=$.jQRTE.uploadHttpData(xml,s.dataType);
if(s.success){s.success(data,status)
}if(s.global){$.event.trigger("ajaxSuccess",[xml,s])
}}else{$.handleError(s,xml,status)
}}catch(e){status="error";
$.handleError(s,xml,status,e)
}if(s.global){$.event.trigger("ajaxComplete",[xml,s])
}if(s.global&&!--$.active){$.event.trigger("ajaxStop")
}if(s.complete){s.complete(xml,status)
}$(io).unbind();
setTimeout(function(){try{$(io).remove();
$(form).remove()
}catch(e){$.handleError(s,xml,null,e)
}},100);
xml=null
}};
if(s.timeout>0){setTimeout(function(){if(!requestDone){uploadCallback("timeout")
}},s.timeout)
}try{var form=$("#"+formId);
$(form).attr("action",s.url);
$(form).attr("method","POST");
$(form).attr("target",frameId);
if(form.encoding){form.encoding="multipart/form-data"
}else{form.enctype="multipart/form-data"
}$(form).submit()
}catch(e){$.handleError(s,xml,null,e)
}if(window.attachEvent){document.getElementById(frameId).attachEvent("onload",uploadCallback)
}else{document.getElementById(frameId).addEventListener("load",uploadCallback,false)
}return{abort:function(){}}
},uploadHttpData:function(r,type){var data=!type;
data=type=="xml"||data?r.responseXML:r.responseText;
if(type=="script"){$.globalEval(data)
}if(type=="json"){eval("data = "+data)
}if(type=="html"){$("<div>").html(data).evalScripts()
}return data
}};


$.fn.extend({
	jqrte:function(){
		return this.each(function(){$.jQRTE.init(this.id)})
	},
	jqrte_setIcon:function(){return this.each(function(){$.jQRTE.setIcon(this.id) })
	},
	jqrte_setCallback:function(callback){$.jQRTE.callback = callback
	},
	jqrte_setContent:function(){return this.each(function(){$.jQRTE.setContent(this.id)})
	},
	jqrte_updateContent:function(){return this.each(function(){$.jQRTE.updateContent(this.id)})
	},
	jqrte_saveRange:function(){return this.each(function(){$.jQRTE.saveRange(this.id)})
	},
	jqpopup_close:function(){
		return this.each(function(){
			try{
				$.jQRTE.restoreRange($.jQRTE.element)
			}
			catch(e){}
			$.jQpopup.close(this.id)
		})
	}
});
function specialcharacter()
{
var cols=15;
var j=0;
var tablebox='<table cellpadding="1" cellspacing="1" border="1">';
for(var i=128;
i<255;
i++){if(i!=129&&i!=141&&i!=143&&i!=144&&i!=157&&i!=160){j++;
if(j==0){tablebox+="<tr>"
}tablebox+='<td class="character" width="20" align="center" id="&#'+i+';">&#'+i+";</td>";
if(j==cols){tablebox+="</tr>";
j=0
}}}tablebox+='<td class="character" id="&spades;">&spades;</td>';
tablebox+='<td class="character" id="&clubs;">&clubs;</td>';
tablebox+='<td class="character" id="&diams;">&diams;</td>';
tablebox+='<td class="character" id="&hearts;">&hearts;</td>';
tablebox+='<td class="character" id="&oline;">&oline;</td>';
tablebox+='<td class="character" id="&larr;">&larr;</td>';
tablebox+='<td class="character" id="&rarr;">&rarr;</td>';
tablebox+='<td class="character" id="&uarr;">&uarr;</td>';
tablebox+='<td class="character" id="&darr;">&darr;</td>';
tablebox+='<td colspan="5">&nbsp;</td>';
tablebox+="</tr>";
tablebox+="</table>";
$("#character_div").html(tablebox)
}$(document).ready(function(){$("#color_picker").jqcp();
$("#color_value").jqcp_setObject();
specialcharacter();
$(".jqrte_menu td").mouseover(function(){$(this).toggleClass("jqrte_active")
});
$(".jqrte_menu td").mouseout(function(){$(this).toggleClass("jqrte_active")
})
});