//whizzette.js Copyright © 2007 John Goodman - john.goodman(at)unverse.net  *date 070217 KEEP IT SMALL!
var version = "Whizzette v5";
var wzItems = new Array();
var wzHTML = new Array();
var cssFile, buttonPath='images/buttons/';
function o(el){return document.getElementById(el);}
function d(wz){return wz.contentWindow.document;}
function addEvt(o,e,f){
 if(window.addEventListener) o.addEventListener(e, f, false);
 else o.attachEvent("on"+e,f);
}
function wzinit(){
 var wzD = document.getElementsByTagName("div");
 var frm;
 for (i=0;i<wzD.length;i++) {
  if (wzD[i].className.indexOf("whizzette") != -1) {
   wzgo(wzD[i]);
   frm=wzD[i].parentNode;
   while (frm.nodeName != "FORM") frm=frm.parentNode;
   addEvt(frm,'submit',wzupd);
  }
 }  overlay= new Element('div', {'id':'lb-overlay'}); overlay.setStyle({display:'none'}); lbdiv = new Element('div', {'id':'lb-div'}); lbdiv.setStyle({display:'none'}); lbdiv.innerHTML="<a href='javascript:closeLb();' style='float:right;clear:both;color:#000;'>Close</a><iframe width='100%' frameborder='0' height='200px' src='imageupload.php'></iframe>" document.getElementsByTagName('body')[0].appendChild(overlay); document.getElementsByTagName('body')[0].appendChild(lbdiv);
}
function wzgo(wz){ 
 wzHTML['wz_'+wz.id] = wz.innerHTML;
 var height = wz.style.height ? wz.style.height : "250px";
 wz.style.height="auto";
 var width = wz.style.width ? wz.style.width : "100%";
 wzItems[wzItems.length]=wz.id;
 var whizz = '<input type="hidden" id="wzhid_'+wz.id+'" name="'+wz.id+'" />\n'
 var fb='<select id="fb" onchange="wzdo(\''+wz.id+'\',this.options[selectedIndex].value)">\n'
+' <option value="<p>" selected="selected">Format:<\/option>\n'
+' <option value="<h1>">Heading 1<\/option>\n'
+' <option value="<h2>">Heading 2<\/option>\n'
+' <option value="<h3>">Heading 3<\/option>\n'
+' <option value="<h4>">Heading 4<\/option>\n'
+' <option value="<p>">Paragraph<\/option>\n'
+' <option value="<pre>">Preformatted<\/option>\n'
+'<\/select>\n';
 var bd=bt(wz.id,"Bold","Bold");
 var em=bt(wz.id,"Italic","Italic");
 var im=bt(wz.id,"GetImage","Image");
 var lk=bt(wz.id,"CreateLink","Link");
 var bl=bt(wz.id,"InsertUnorderedList","Bullet");
 var nm=bt(wz.id,"InsertOrderedList","Number");
 var jl=bt(wz.id,"JustifyLeft","Left");
 var jc=bt(wz.id,"JustifyCenter","Center");
 var jr=bt(wz.id,"JustifyRight","Right");
 var ht=bt(wz.id,"Source","HTML");
 var tbar = wz.title ? wz.title.toLowerCase() : "bold italic link number bullet left center right image";  
 var c = tbar.split(' '); //controls
 for (var i = 0; i < c.length; i++) {
  whizz+= c[i]=="formatblock" ? fb : c[i]=="bold" ? bd : c[i]=="italic" ? em : c[i]=="link" ? lk : c[i]=="image" ? im : c[i]=="number" ? nm : c[i]=="bullet" ? bl : c[i]=="html" ? ht :c[i]=="left" ? jl :c[i]=="center" ? jc :c[i]=="right" ? jr : "";
 }
 whizz+='<iframe id="wz_'+wz.id+'" name="wz_'+wz.id+'" onload="wzon(this)" style="border:2px inset buttonshadow; width:'+width+'; height:'+height+';"><\/iframe>';
 wz.innerHTML=whizz;
}
function bt(w,c,b){
 if (buttonPath) b='<img src="'+buttonPath+b.toLowerCase()+'.gif">';
 return '<button type="button" onclick="wzdo(\''+w+'\',\''+c+'\')">'+b+'<\/button>\n';
}
function wzon(wz){
 var wd=d(wz);
 if (cssFile) {
  var css = wd.createElement("link");
  css.setAttribute("href",cssFile);
  css.setAttribute("rel","stylesheet");
  css.setAttribute("type","text/css");
  wd.getElementsByTagName("head")[0].appendChild(css);
 }
 wd.body.innerHTML=wzHTML[wz.id];
 wd.designMode='on';
}
function wzupd(){
 for (i=0; i<wzItems.length; i++){
  o('wzhid_'+wzItems[i]).value=cU(o('wz_'+wzItems[i]).contentWindow.document.body.innerHTML);
 }
}
function cU(h){return window.cleanUp?cleanUp(h):h;}//xhtml, Word
function wzdo(wz,cmd,parm){
 var ed=o('wz_'+wz).contentWindow.document;
 if (cmd.indexOf('<')==0){
  parm=cmd;
  cmd="FormatBlock";
  o("fb").selectedIndex=0;
 }
 //if (cmd == "InsertImage") parm = prompt("Filename or path to image",""); if (cmd == "GetImage"){ getImageToAdd(wz); } else{
	 if (cmd == "CreateLink") parm = prompt("URL or address of link","http://"); 
	 ed.execCommand(cmd,false,parm);
	 o('wz_'+wz).contentWindow.focus(); }
}var IMAGE_WZ=null;function getImageToAdd(wz){	IMAGE_WZ=wz;	$('lb-overlay').show();	$('lb-div').show();}function closeLb(){	$('lb-overlay').hide();	$('lb-div').hide();}function addImage(url){	closeLb();	o('wz_'+IMAGE_WZ).contentWindow.focus();	o('wz_'+IMAGE_WZ).contentWindow.document.execCommand("insertimage",false, url);	//wzdo(IMAGE_WZ, "insertimage", url);	IMAGE_WZ=null;}
addEvt(window,'load',wzinit);