var edButtons=new Array()
var edLinks=new Array()
var edOpenTags=new Array()
function edButton(id,display,tagStart,tagEnd,access,open){
this.id=id
this.display=display
this.tagStart=tagStart
this.tagEnd=tagEnd
this.access=access
this.open=open}
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(button,i){
if(button.access){
var accesskey=' accesskey = "'+button.access+'"'}
else{
var accesskey=''}
switch(button.id){
case 'ed_img':
document.write('<input type="button" id="'+button.id+'" '+accesskey+' class="ed_button" onclick="edInsertImage(edCanvas);" value="'+button.display+'" />')
break
case 'ed_link':
document.write('<input type="button" id="'+button.id+'" '+accesskey+' class="ed_button" onclick="edInsertLink(edCanvas, '+i+');" value="'+button.display+'" />')
break
case 'ed_ext_link':
document.write('<input type="button" id="'+button.id+'" '+accesskey+' class="ed_button" onclick="edInsertExtLink(edCanvas, '+i+');" value="'+button.display+'" />')
break
case 'ed_footnote':
document.write('<input type="button" id="'+button.id+'" '+accesskey+' class="ed_button" onclick="edInsertFootnote(edCanvas);" value="'+button.display+'" />')
break
default:
document.write('<input type="button" id="'+button.id+'" '+accesskey+' class="ed_button" onclick="edInsertTag(edCanvas, '+i+');" value="'+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(button){
if(edButtons[button].tagEnd !=''){
edOpenTags[edOpenTags.length]=button
document.getElementById(edButtons[button].id).value='/'+document.getElementById(edButtons[button].id).value}}
function edRemoveTag(button){
for(i=0;i<edOpenTags.length;i++){
if(edOpenTags[i]==button){
edOpenTags.splice(i,1)
document.getElementById(edButtons[button].id).value=document.getElementById(edButtons[button].id).value.replace('/','')}}}
function edCheckOpenTags(button){
var tag=0
for(i=0;i<edOpenTags.length;i++){
if(edOpenTags[i]==button){
tag++}}
if(tag>0){
return true}
else{
return false}}
function edCloseAllTags(){
var count=edOpenTags.length
for(o=0;o<count;o++){
edInsertTag(edCanvas,edOpenTags[edOpenTags.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 edToolbar(){
document.write('<div id="ed_toolbar"><span>')
for(i=0;i<extendedStart;i++){
edShowButton(edButtons[i],i)}
for(i=extendedStart;i<edButtons.length;i++){
edShowButton(edButtons[i],i)}
document.write('<input type="button" id="ed_close" class="ed_button" onclick="edCloseAllTags();" value="Close All" />')
document.write('</span>')
document.write('</div>')}
function edShowExtra(){
document.getElementById('ed_extra_show').style.visibility='hidden'
document.getElementById('ed_extra_buttons').style.display='block'
edSetCookie(
'js_quicktags_extra'
,'show'
,new Date("December 31, 2100")
)}
function edHideExtra(){
document.getElementById('ed_extra_buttons').style.display='none'
document.getElementById('ed_extra_show').style.visibility='visible'
edSetCookie(
'js_quicktags_extra'
,'hide'
,new Date("December 31, 2100")
)}
function edInsertTag(myField,i){
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(i)|| edButtons[i].tagEnd==''){
sel.text=edButtons[i].tagStart
edAddTag(i)}
else{
sel.text=edButtons[i].tagEnd
edRemoveTag(i)}}
myField.focus()}
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(i)|| edButtons[i].tagEnd==''){
myField.value=myField.value.substring(0,startPos)
+edButtons[i].tagStart
+myField.value.substring(endPos,myField.value.length)
edAddTag(i)
cursorPos=startPos+edButtons[i].tagStart.length}
else{
myField.value=myField.value.substring(0,startPos)
+edButtons[i].tagEnd
+myField.value.substring(endPos,myField.value.length)
edRemoveTag(i)
cursorPos=startPos+edButtons[i].tagEnd.length}}
myField.focus()
myField.selectionStart=cursorPos
myField.selectionEnd=cursorPos
myField.scrollTop=scrollTop}
else{
if(!edCheckOpenTags(i)|| edButtons[i].tagEnd==''){
myField.value+=edButtons[i].tagStart
edAddTag(i)}
else{
myField.value+=edButtons[i].tagEnd
edRemoveTag(i)}
myField.focus()}}
function edInsertContent(myField,myValue){
if(document.selection){
myField.focus()
sel=document.selection.createRange()
sel.text=myValue
myField.focus()}
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(myField,i,defaultValue){
if(!defaultValue){
defaultValue='http://'}
if(!edCheckOpenTags(i)){
var URL=prompt('Enter the URL',defaultValue)
if(URL){
edButtons[i].tagStart='<a href="'+URL+'">'
edInsertTag(myField,i)}}
else{
edInsertTag(myField,i)}}
function edInsertExtLink(myField,i,defaultValue){
if(!defaultValue){
defaultValue='http://'}
if(!edCheckOpenTags(i)){
var URL=prompt('Enter the URL',defaultValue)
if(URL){
edButtons[i].tagStart='<a href="'+URL+'" rel="external">'
edInsertTag(myField,i)}}
else{
edInsertTag(myField,i)}}
function edInsertImage(myField){
var myValue=prompt('Enter the URL of the image','http://')
if(myValue){
myValue='<img src="'
+myValue
+'" alt="'+prompt('Enter a description of the image','')
+'" />'
edInsertContent(myField,myValue)}}
function edInsertFootnote(myField){
var note=prompt('Enter the footnote:','')
if(!note || note==''){
return false}
var now=new Date
var fnId='fn'+now.getTime()
var fnStart=edCanvas.value.indexOf('<ol class="footnotes">')
if(fnStart !=-1){
var fnStr1=edCanvas.value.substring(0,fnStart)
var fnStr2=edCanvas.value.substring(fnStart,edCanvas.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(edCanvas,count)
if(fnStart !=-1){
fnStr1=edCanvas.value.substring(0,fnStart+count.length)
fnStr2=edCanvas.value.substring(fnStart+count.length,edCanvas.value.length)}
else{
var fnStr1=edCanvas.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>'
edCanvas.value=fnStr1+fnStr2.replace('</ol>',footnote)}
function countInstances(string,substr){
var count=string.split(substr)
return count.length-1}
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}