// JS QuickTags version 1.3.1
// Copyright (c) 2002-2008 Alex King
// http://alexking.org/projects/js-quicktags
// Thanks to Greg Heo <greg@node79.com> for his changes
// to support multiple toolbars per page.
// Licensed under the LGPL license
// http://www.gnu.org/copyleft/lesser.html
//=		=	=	=	=	=	=	=
// modify By Tojary
//http://www.ololi.com
//=		=	=	=	=	=	=	=	
var dictionaryUrl='http://www.ninjawor.ds.com/';
var edButtons=new Array();
var edLinks=new Array();
var edOpenTags=new Array();
function edButton(id,display,tagStart,tagEnd,access,open) {
	this.id=id;
	// used to name the toolbar button
	this.display=display;
	// label on button
	this.tagStart=tagStart;
	// open tag
	this.tagEnd=tagEnd;
	// close tag
	this.access=access;
	// set to -1 if tag does not need to be closed
	this.open=open;
	// set to -1 if tag does not need to be closed
}
edButtons.push(
new edButton(
'ed_bold'
,'粗体'
,'<strong>'
,'</strong>'
,'b'
)
);
edButtons.push(
new edButton(
'ed_italic'
,'斜体'
,'<em>'
,'</em>'
,'i'
)
);

/*
edButtons.push(
new edButton(
'ed_ext_link'
,'链接'
,''
,'</a>'
,'e'
)
);

edButtons.push(
new edButton(
'ed_img'
,'插入图片'
,''
,''
,'m'
,-1
)
);

edButtons.push(
new edButton(
'ed_block'
,'引用'
,'<blockquote>'
,'</blockquote>'
,'q'
)
);
*/

var extendedStart=edButtons.length;

/*
edButtons.push(
new edButton(
'ed_code'
,'插入代码'
,'<code>'
,'</code>'
,'c'
)
);
*/

edButtons.push(
new edButton(
'ed_ins'
,'下划线'
,'<ins>'
,'</ins>'
,'x'
)
);
edButtons.push(
new edButton(
'ed_del'
,'删除线'
,'<del>'
,'</del>'
,'s'
)
);

function edLink(display,URL,newWin) {
	this.display=display;
	this.URL=URL;
	if(!newWin) {
		newWin=0;
	}
	this.newWin=newWin;
}
edLinks[edLinks.length]=new edLink('alexking.org'
,'http://www.alexking.org/'
);
function edShowButton(which,button,i) {
	if(button.access) {
		var accesskey=' accesskey = "'+button.access+'"'
	}
	else {
		var accesskey='';
	}
	switch(button.id) {
		case 'ed_img':
		document.write('<input type="button"  value=" " id="'+button.id+'_'+which+'" '+accesskey+' class="'+button.access+'" onclick="edInsertImage(\''+which+'\');" title="'+button.display+'" />');
		break;
		case 'ed_link':
		document.write('<input type="button"  value=" " id="'+button.id+'_'+which+'" '+accesskey+' class="'+button.access+'" onclick="edInsertLink(\''+which+'\', '+i+');" title="'+button.display+'" />');
		break;
		case 'ed_ext_link':
		document.write('<input type="button"  value=" " id="'+button.id+'_'+which+'" '+accesskey+' class="'+button.access+'" onclick="edInsertExtLink(\''+which+'\', '+i+');" title="'+button.display+'" />');
		break;
		case 'ed_footnote':
		document.write('<input type="button"  value=" " id="'+button.id+'_'+which+'" '+accesskey+' class="'+button.access+'" onclick="edInsertFootnote(\''+which+'\');" title="'+button.display+'" />');
		break;
		case 'ed_via':
		document.write('<input type="button"  value=" " id="'+button.id+'_'+which+'" '+accesskey+' class="'+button.access+'" onclick="edInsertVia(\''+which+'\');" title="'+button.display+'" />');
		break;
		default:
		document.write('<input type="button"  value=" " id="'+button.id+'_'+which+'" '+accesskey+' class="'+button.access+'" onclick="edInsertTag(\''+which+'\', '+i+');" title="'+button.display+'"  />');
		break;
	}
}
function edShowLinks() {
	var tempStr='<select onchange="edQuickLink(this.options[this.selectedIndex].value, this);"><option value="-1" selected>(Quick Links)</option>';
	for(i=0;i<edLinks.length;i++) {
		tempStr+='<option value="'+i+'">'+edLinks[i].display+'</option>';
	}
	tempStr+='</select>';
	document.write(tempStr);
}
function edAddTag(which,button) {
	if(edButtons[button].tagEnd!='') {
		edOpenTags[which][edOpenTags[which].length]=button;
		document.getElementById(edButtons[button].id+'_'+which).value=''+document.getElementById(edButtons[button].id+'_'+which).value;
	}
}
function edRemoveTag(which,button) {
	for(i=0;i<edOpenTags[which].length;i++) {
		if(edOpenTags[which][i]==button) {
			edOpenTags[which].splice(i,1);
			document.getElementById(edButtons[button].id+'_'+which).value=document.getElementById(edButtons[button].id+'_'+which).value.replace('','');
		}
	}
}
function edCheckOpenTags(which,button) {
	var tag=0;
	for(i=0;i<edOpenTags[which].length;i++) {
		if(edOpenTags[which][i]==button) {
			tag++;
		}
	}
	if(tag>0) {
		return true;
		// tag found
	}
	else {
		return false;
		// tag not found
	}
}
function edCloseAllTags(which) {
	var count=edOpenTags[which].length;
	for(o=0;o<count;o++) {
		edInsertTag(which,edOpenTags[which][edOpenTags[which].length-1]);
	}
}
function edQuickLink(i,thisSelect) {
	if(i>-1) {
		var newWin='';
		if(edLinks[i].newWin==1) {
			newWin=' target="_blank"';
		}
		var tempStr='<a href="'+edLinks[i].URL+'"'+newWin+'>'
		+edLinks[i].display
		+'</a>';
		thisSelect.selectedIndex=0;
		edInsertContent(edCanvas,tempStr);
	}
	else {
		thisSelect.selectedIndex=0;
	}
}
function edSpell(which) {
	myField=document.getElementById(which);
	var word='';
	if(document.selection) {
		myField.focus();
		var sel=document.selection.createRange();
		if(sel.text.length>0) {
			word=sel.text;
		}
	}
	else if(myField.selectionStart||myField.selectionStart=='0') {
		var startPos=myField.selectionStart;
		var endPos=myField.selectionEnd;
		if(startPos!=endPos) {
			word=myField.value.substring(startPos,endPos);
		}
	}
	if(word=='') {
		word=prompt('Enter a word to look up:','');
	}
	if(word!='') {
		window.open(dictionaryUrl+escape(word));
	}
}
function edToolbar(which) {
	document.write('<div id="ed_toolbar_'+which+'"><span>');
	for(i=0;i<extendedStart;i++) {
		edShowButton(which,edButtons[i],i);
	}
	if(edShowExtraCookie()) {
		document.write(

		);
	}
	else {
		document.write(

		);
	}
	for(i=extendedStart;i<edButtons.length;i++) {
		edShowButton(which,edButtons[i],i);
	}
	document.write('</span>');
	//	edShowLinks();
	document.write('</div>');
	edOpenTags[which]=new Array();
}
function edShowExtra(which) {
	document.getElementById('ed_extra_show_'+which).style.visibility='hidden';
	document.getElementById('ed_extra_buttons_'+which).style.display='block';
	edSetCookie(
	'js_quicktags_extra'
	,'show'
	,new Date("December 31, 2100")
	);
}
function edHideExtra(which) {
	document.getElementById('ed_extra_buttons_'+which).style.display='none';
	document.getElementById('ed_extra_show_'+which).style.visibility='visible';
	edSetCookie(
	'js_quicktags_extra'
	,'hide'
	,new Date("December 31, 2100")
	);
}
// insertion code
function edInsertTag(which,i) {
	myField=document.getElementById(which);
	//IE support
	if(document.selection) {
		myField.focus();
		sel=document.selection.createRange();
		if(sel.text.length>0) {
			sel.text=edButtons[i].tagStart+sel.text+edButtons[i].tagEnd  ;
		}
		else {
			if(!edCheckOpenTags(which,i)||edButtons[i].tagEnd=='') {
				sel.text=edButtons[i].tagStart + " 内容写这 " + edButtons[i].tagEnd ;
				edAddTag(which,i);
			}
			else {
				sel.text=edButtons[i].tagStart + " 内容写这 "  + edButtons[i].tagEnd ;
				edRemoveTag(which,i);
			}
		}
		myField.focus();
	}
	//MOZILLA/NETSCAPE support
	else if(myField.selectionStart||myField.selectionStart=='0') {
		var startPos=myField.selectionStart;
		var endPos=myField.selectionEnd;
		var cursorPos=endPos;
		var scrollTop=myField.scrollTop;
		if(startPos!=endPos) {
			myField.value=myField.value.substring(0,startPos)
			+edButtons[i].tagStart
			+myField.value.substring(startPos,endPos)
			+edButtons[i].tagEnd
			+myField.value.substring(endPos,myField.value.length);
			cursorPos+=edButtons[i].tagStart.length+edButtons[i].tagEnd.length;
		}
		else {
			if(!edCheckOpenTags(which,i)||edButtons[i].tagEnd=='') {
				myField.value=myField.value.substring(0,startPos)
				+edButtons[i].tagStart
				+" 内容写这 " 
				+ edButtons[i].tagEnd
				+myField.value.substring(endPos,myField.value.length);
				edAddTag(which,i);
				cursorPos=startPos+edButtons[i].tagStart.length;
			}
			else {
				myField.value=myField.value.substring(0,startPos)
				+edButtons[i].tagStart
				+" 内容写这 " 
				+ edButtons[i].tagEnd
				+myField.value.substring(endPos,myField.value.length);
				edRemoveTag(which,i);
				cursorPos=startPos+edButtons[i].tagEnd.length;
			}
		}
		myField.focus();
		myField.selectionStart=cursorPos;
		myField.selectionEnd=cursorPos;
		myField.scrollTop=scrollTop;
	}
	else {
		if(!edCheckOpenTags(which,i)||edButtons[i].tagEnd=='') {
			myField.value+=edButtons[i].tagStart;
			edAddTag(which,i);
		}
		else {
			myField.value+=edButtons[i].tagEnd;
			edRemoveTag(which,i);
		}
		myField.focus();
	}
}
function edInsertContent(which,myValue) {
	myField=document.getElementById(which);
	//IE support
	if(document.selection) {
		myField.focus();
		sel=document.selection.createRange();
		sel.text=myValue;
		myField.focus();
	}
	//MOZILLA/NETSCAPE support
	else if(myField.selectionStart||myField.selectionStart=='0') {
		var startPos=myField.selectionStart;
		var endPos=myField.selectionEnd;
		var scrollTop=myField.scrollTop;
		myField.value=myField.value.substring(0,startPos)
		+myValue
		+myField.value.substring(endPos,myField.value.length);
		myField.focus();
		myField.selectionStart=startPos+myValue.length;
		myField.selectionEnd=startPos+myValue.length;
		myField.scrollTop=scrollTop;
	}else {
		myField.value+=myValue;
		myField.focus();
	}
}
function edInsertLink(which,i,defaultValue) {
	myField=document.getElementById(which);
	if(!defaultValue) {
		defaultValue='http://';
	}
	if(!edCheckOpenTags(which,i)) {
		var URL=prompt('Enter the URL',defaultValue);
		if(URL) {
			edButtons[i].tagStart='<a href="'+URL+'">';
			edInsertTag(which,i);
		}
	}
	else {
		edInsertTag(which,i);
	}
}
function edInsertExtLink(which,i,defaultValue) {
	myField=document.getElementById(which);
	if(!defaultValue) {
		defaultValue='http://';
	}
	if(!edCheckOpenTags(which,i)) {
		var URL=prompt('输入链接地址',defaultValue);
		if(URL) {
			edButtons[i].tagStart='<a href="'+URL+'" rel="external">';
			edInsertTag(which,i);
		}
	}
	else {
		edInsertTag(which,i);
	}
}
function edInsertImage(which) {
	myField=document.getElementById(which);
	var myValue=prompt('输入图片链接地址','http://');
	if(myValue) {
		myValue='<img src="'
		+myValue
		+'" alt="'+prompt('添加图片描述','')
		+'" />';
		edInsertContent(which,myValue);
	}
}
function edInsertFootnote(which) {
	myField=document.getElementById(which);
	var note=prompt('Enter the footnote:','');
	if(!note||note=='') {
		return false;
	}
	var now=new Date;
	var fnId='fn'+now.getTime();
	var fnStart=myField.value.indexOf('<ol class="footnotes">');
	if(fnStart!=-1) {
		var fnStr1=myField.value.substring(0,fnStart)
		var fnStr2=myField.value.substring(fnStart,myField.value.length)
		var count=countInstances(fnStr2,'<li id="')+1;
	}
	else {
		var count=1;
	}
	var count='<sup><a href="#'+fnId+'n" id="'+fnId+'" class="footnote">'+count+'</a></sup>';
	edInsertContent(which,count);
	if(fnStart!=-1) {
		fnStr1=myField.value.substring(0,fnStart+count.length)
		fnStr2=myField.value.substring(fnStart+count.length,myField.value.length)
	}
	else {
		var fnStr1=myField.value;
		var fnStr2="\n\n"+'<ol class="footnotes">'+"\n"
		+'</ol>'+"\n";
	}
	var footnote='	<li id="'+fnId+'n">'+note+' [<a href="#'+fnId+'">back</a>]</li>'+"\n"
	+'</ol>';
	myField.value=fnStr1+fnStr2.replace('</ol>',footnote);
}
function countInstances(string,substr) {
	var count=string.split(substr);
	return count.length-1;
}
function edInsertVia(which) {
	myField=document.getElementById(which);
	var myValue=prompt('Enter the URL of the source link','http://');
	if(myValue) {
		myValue='(Thanks <a href="'+myValue+'" rel="external">'
		+prompt('Enter the name of the source','')
		+'</a>)';
		edInsertContent(which,myValue);
	}
}
function edSetCookie(name,value,expires,path,domain) {
	document.cookie=name+"="+escape(value)+
	((expires)?"; expires="+expires.toGMTString():"")+
	((path)?"; path="+path:"")+
	((domain)?"; domain="+domain:"");
}
function edShowExtraCookie() {
	var cookies=document.cookie.split(';');
	for(var i=0;i<cookies.length;i++) {
		var cookieData=cookies[i];
		while(cookieData.charAt(0)==' ') {
			cookieData=cookieData.substring(1,cookieData.length);
		}
		if(cookieData.indexOf('js_quicktags_extra')==0) {
			if(cookieData.substring(19,cookieData.length)=='show') {
				return true;
			}
			else {
				return false;
			}
		}
	}
	return false;
}


