/*** FreTXTOBJeware Open Source writen by ngoCanh 2002-05                  */
/*** Original by Vietdev  http://vietdev.sourceforge.net             */
/*** Release 2002-12-12  R6.5                                        */
/*** GPL - Copyright protected                                       */
/*********************************************************************/

/*** CONFIGURATION - HERE YOU CAN SET DEFAULT-VALUES ********************/
if(typeof(SECURE)=="undefined") SECURE=0; //=0,1
if(typeof(VISUAL)=="undefined") VISUAL=1; //=0,1,2,3 see bottom of this file
if(typeof(POPWIN)=="undefined") POPWIN=1; //=1,0 Rightclick Popup dialog for textarea
if(typeof(DFFACE)=="undefined") DFFACE=''; // 'times new roman'; // Default fontFamily of Editor
if(typeof(DFSIZE)=="undefined") DFSIZE=''; // '14px'; // Default fontSize
if(typeof(DCOLOR)=="undefined") DCOLOR=''; // 'blue'; // Default color
if(typeof(DBGCOL)=="undefined") DBGCOL=''; // 'green'; // Default backgroundColor
if(typeof(DBGIMG)=="undefined") DBGIMG=''; // Default URL-backgroundImage 
if(typeof(DCSS)=="undefined") DCSS='config/styl.css'; // 'test.css'; // Default-Stylesheet-URL
if(typeof(SYMBOLE)=="undefined") SYMBOLE='<QBFBR>' ; // Symbole for end-of-field in clipboard-chipcard.
if(typeof(USETABLE)=="undefined") USETABLE=1; // Enable table editor
if(typeof(USEFORM)=="undefined") USEFORM=0; // Enable form input
if(typeof(RETURNNL)=="undefined") RETURNNL=1; // Return-Button= Newline; Shift+Return= New Paragraph
if(typeof(FULLCTRL)=="undefined") FULLCTRL=1; //=0,1; 0=fast loading; 1=all control rows at bottom of Edi. 
/*********************** END CONFIGURATION ****************************/




var fID; //***   IFRAME ID
var TXTOBJ=null; //***   TEXT Obj
var format=new Array();
var viewm=new Array();
var FACE= new Array();
var SIZE= new Array();
var COLOR= new Array();
var BCOLOR= new Array();
var BIMAGE= new Array();
var CSS= new Array();
var FWORD, FLAGS=0;



function changetoIframeEditor(el)
{ 
	 if( /Netscape/.test(navigator.userAgent) ) return null;
   if( document.all && navigator.platform!="Win32" ) return null;

   var wi= '', hi= '200';
   if(el.style.height) hi= el.style.height
   else if(el.rows) hi= (11*el.getAttribute('rows')+42)
   if(el.style.width) wi= el.style.width
   else if(el.cols) wi= (6*el.getAttribute('cols') +25)
	 
	 var parent= el.parentNode   

   
   while(parent.nodeName != 'FORM') parent= parent.parentNode
   var oform= parent
   var fidx=0; while(document.forms[fidx] != oform) fidx++ ; // form index


   var val='', fID;

   if(el.nodeName=='TEXTAREA' || el.nodeName=='INPUT')
	 { fID= fidx+'VDevID'+el.getAttribute('name'); val= el.value }
   else fID= fidx+'VDevID'+el.getAttribute('id')

   createEditor(el,fID,wi,hi);

   setTimeout("iEditor('"+fID+"')",200); 
   return true;
  
}




//////////////////////////////
// for text mode
function doFormat(arr,caret)
{
  var wrd=TXTOBJ.curword.text

  var cmd = new Array();
  cmd = arr.split(',')

  if(!cmd[0] || cmd[0]=='Swap[Text/HTML]' || cmd[0]=='Swap[Uni/View]' ) return 
  if(cmd[0]=='SelectAll') { TXTOBJ.focus(); TXTOBJ.select(); return }
  if(cmd[0]=='Cut') { caret.execCommand("Cut"); return }
  if(cmd[0]=='Copy') { caret.execCommand("Copy"); return }
  if(cmd[0]=='Paste') { caret.execCommand("Paste"); return }

  TXTOBJ.curword=caret.duplicate();
  TXTOBJ.curword.text= cmd[0]+wrd+cmd[1]
}


function editEmotions(wrd,obj)
{
  var caret=obj.document.selection.createRange();
  obj.curword=caret.duplicate();
  obj.curword.text= wrd + ' '
}
//////////////////////////////




function FMDown(e)
{
  if(USETABLE) doClick()
}



// init all found TEXTAREA in document
function changeAllTextareaToEditors()
{
  var i=0;
  while(document.getElementsByTagName('textarea')[i])
   { 
    if(!changetoIframeEditor(document.getElementsByTagName('textarea')[i])) break;
	if(++i>0 && !document.getElementsByTagName('textarea')[i] ) i=0;
   }
}



// init all found IFRAME in document to Editable
function changeAllIframeToEditors()
{
  var i=0;
  while(document.getElementsByTagName('iframe')[i])
  { 
	if(!changetoIframeEditor(document.getElementsByTagName('iframe')[i])) break;
	i++
  }

}



// init some IFRAMEs
// e.g. changeIframeToEditor('id1','id2',...); // id1= id of frame
function changeIframeToEditor()
{
  for(var j=0;j<arguments.length;j++)
   {
     var i=0;
	 while(document.getElementsByTagName('iframe')[i])
	  { 
		if(document.getElementsByTagName('iframe')[i].id == arguments[j])
		  {	changetoIframeEditor(document.getElementsByTagName('iframe')[i]); break; }
	    i++
	  }
   }
}




/////////////////////////////////////////////////////////////////
function controlRows(fid)
{
  var str = "\
<style>\
img.vdev {width:23; height:22}\
select.vdev {font-family:arial; font-size:12; height:22; background:#a0a080; color:#FFFFFF}\
input.vdev {font-family:arial; font-size:12; height:20; background:#a0a080; color:#FFFFFF}\
</style>\
<TR bgColor=#c0c0a0 align=center valign=middle EVENT>\
<TD nowrap style='cursor:hand'>\
<img src='IURL/bold.gif' alt='Pogrubienie' class=vdev onclick='doFormatF(\"Bold\")'>\
<img src='IURL/italic.gif' alt='Kursywa' class=vdev onclick='doFormatF(\"Italic\")'>\
<img src='IURL/under.gif' alt='Podkreślenie' class=vdev onclick='doFormatF(\"Underline\")'>\
<img src='IURL/left.gif' alt='Wyrównaj do lewej' class=vdev onclick='doFormatF(\"JustifyLeft\")'>\
<img src='IURL/center.gif' alt='Wyśrodkuj' class=vdev onclick='doFormatF(\"JustifyCenter\")'>\
<img src='IURL/right.gif' alt='Wyrównaj do prawej' class=vdev onclick='doFormatF(\"JustifyRight\")'>\
<img src='IURL/leftright.gif' alt='Wyjustuj' class=vdev onclick='doFormatF(\"JustifyFull\")'>\
<img src='IURL/outdent.gif' alt='Zmniejsz wcięcie' class=vdev onclick='doFormatF(\"Outdent\")'>\
<img src='IURL/indent.gif' alt='Zwiększ wcięcie' class=vdev onclick='doFormatF(\"Indent\")'>\
<img src='IURL/strike.gif' alt='Przekreślenie' class=vdev onclick='doFormatF(\"StrikeThrough\")'>\
<img src='IURL/superscript.gif' alt='Indeks górny' class=vdev onclick='doFormatF(\"SuperScript\")'>\
<img src='IURL/subscript.gif' alt='Indeks dolny' class=vdev onclick='doFormatF(\"SubScript\")'>\
<img src='IURL/bgcolor.gif' alt='Tło' class=vdev onclick='selectBgColor()'>\
<img src='IURL/fgcolor.gif' alt='Kolor czcionki' class=vdev onclick='selectFgColor()'>\
<img src='IURL/image.gif' alt='Wstaw obrazek' class=vdev onclick='selectImage()'>\
<img src='IURL/file.gif' alt='Właściwości obrazka' class=vdev onclick='doFormatF(\"InsertImage\")'>\
<img src='IURL/link.gif' alt='Utwórz link' class=vdev onclick='doFormatF(\"CreateLink\")'>\
<img src='IURL/numlist.gif' alt='Lista numerowana' class=vdev onclick='doFormatF(\"InsertOrderedList\")'>\
<img src='IURL/bullist.gif' alt='Lista wypunktowana' class=vdev onclick='doFormatF(\"InsertUnorderedList\")'>\
<img src='IURL/hr.gif' alt='Wstaw linię' class=vdev onclick='doFormatF(\"InsertHorizontalRule\")'>\
<img src='IURL/undo.gif' alt='Cofnij' class=vdev onclick='doFormatF(\"Undo\")'>\
<img src='IURL/redo.gif' alt='Ponów' class=vdev onclick='doFormatF(\"Redo\")'>\
</TD></TR>"

if(FULLCTRL)
{
str += "\
<TR bgColor=#c0c0a0 valign=middle align=center EVENT>\
<TD nowrap style='cursor:hand'>\
<img src='IURL/instable.gif' alt='Wstaw tabelę' class=vdev onclick='insertTable()'>\
<img src='IURL/tabprop.gif' alt='Właściwości tabeli' class=vdev onclick='tableProp()'>\
<img src='IURL/cellprop.gif' alt='Właściwości komórek' class=vdev onclick='cellProp()'>\
<img src='IURL/inscell.gif' alt='Wstaw komórkę' class=vdev onclick='insertCell()'>\
<img src='IURL/delcell.gif' alt='Usuń komórkę' class=vdev onclick='deleteCell()'>\
<img src='IURL/insrow.gif' alt='Wstaw wiersz' class=vdev onclick='insertRow()'>\
<img src='IURL/delrow.gif' alt='Usuń wiersz' class=vdev onclick='deleteRow()'>\
<img src='IURL/inscol.gif' alt='Wstaw kolumnę' class=vdev onclick='insertCol()'>\
<img src='IURL/delcol.gif' alt='Usuń kolumnę' class=vdev onclick='deleteCol()'>\
<img src='IURL/mrgcell.gif' alt='Scal kolumny' class=vdev onclick='morecolSpan()'>\
<img src='IURL/spltcell.gif' alt='Usuń scalanie kolumn' class=vdev onclick='lesscolSpan()'>\
<img src='IURL/mrgrow.gif' alt='Scal wiersze' class=vdev onclick='morerowSpan()'>\
<img src='IURL/spltrow.gif' alt='Usuń scalanie wierszy' class=vdev onclick='lessrowSpan()'>\
</TD></TR>\
";
}

str += "<TR bgColor=#a0a080 valign=middle align=center EVENT>\
<TD nowrap style='cursor:hand'>\
<SELECT name='QBCNTRL1' class=vdev onchange='doFormatF(\"FontName,\"+this.value)' style='width:120'>\
<OPTION value=''>Domyślna\
<OPTION value='Arial'>Arial\
<OPTION value='Times New Roman'>Times New Roman\
<OPTION value='Tahoma'>Tahoma\
<OPTION value='Verdana'>Verdana\
<OPTION value='Courier'>Courier\
<OPTION value='Webdings'>Webdings\
</SELECT>\
<SELECT name='QBCNTRL3' class=vdev onchange='doFormatF(\"FontSize,\"+this.value)' style='width:80'>\
<OPTION value=3>Rozmiar\
<OPTION value=7> - 7 -\
<OPTION value=6> - 6 -\
<OPTION value=5> - 5 -\
<OPTION value=4> - 4 -\
<OPTION value=3> - 3 -\
<OPTION value=2> - 2 -\
<OPTION value=1> - 1 -\
</OPTION>\
</SELECT>"


if(USEFORM==1)
{
str += "\
<SELECT name='QBCNTRL4' class=vdev onchange=doFormatF(this.value) style='width:80'>\
<OPTION value=''>Form\
<OPTION value=InsertFieldset>Fieldset\
<OPTION value=InsertInputButton>Button\
<OPTION value=InsertInputReset>Reset\
<OPTION value=InsertInputSubmit>Submit\
<OPTION value=InsertInputCheckbox>Checkbox\
<OPTION value=InsertInputRadio>Radio\
<OPTION value=InsertInputText>Text\
<OPTION value=InsertSelectDropdown>Dropdown\
<OPTION value=InsertSelectListbox>Listbox\
<OPTION value=InsertTextArea>TextArea\
<OPTION value=InsertButton>IEButton\
<OPTION value=InsertIFrame>IFrame\
</SELECT>";
}

str += "\
<INPUT name='QBCNTRL5' value='Graficzny / HTML' class=vdev onclick='swapMode()' type=button style='width:110'>\
";
/*
if(FULLCTRL)
{
str += "\
<INPUT name='QBCNTRL8' value='Upload' class=vdev onclick='doUploadFile()' type=button style='width:50'>\
<INPUT name='QBCNTRL9' value='Options' class=vdev onclick='doEditorOptions()' type=button style='width:50'>\
<INPUT name='QBCNTRL10' value='Help' class=vdev onclick='displayHelp()' type=button style='width:35'>\
";

}
else
{

str += "<INPUT name='QBCNTRL7' value='Extras' class=vdev onclick='doExtras()' type=button style='width:65; color:#00FF00'>"
}
*/
str += "</TD></TR>"

 var iurl= QBPATH + '/imgedit'
 var event= "onmousedown='fID=\"" + fid +"\"'"
 str = str.replace(/IURL/g, iurl);
 str = str.replace(/EVENT/g, event);
 return str ;
}



function createEditor(el,id,wi,hi)
{
  if(parseInt(wi)<630) wi=500;
  
  var hval='';
  if(el.value) hval= el.value
  hval= hval.replace(/\'/g,"&#39;")

  var arr = id.split("VDevID")

  var strx = "<iframe id="+id+" style='height:"+hi+"; width:"+wi+"'></iframe>"
  strx += "<input name="+arr[1]+" type=hidden value='"+hval+"'></input>"
  var str="<TABLE border=1 cellspacing=0 cellpadding=1 width="+wi+"><tr><td align=center>"
  str += strx+"</td></tr>"
  str += controlRows(id);
  str += "</TABLE> " ;

	//alert(str);
	
  if(document.all){ el.outerHTML= str; return; }

  var parent = el.parentNode;
  var oDiv = document.createElement('div');
  parent.insertBefore(oDiv, el);
  parent.removeChild(el);	 

  oDiv.innerHTML= str
}




function createLink()
{
  var el=document.getElementById(fID).contentWindow;
  if(!el){alert('Please click to select the editor');return}
  el.focus()

  var urlx= QBPATH + '/' + 'createlink.html'

  var twidth= 350;
  var theight=150;
  var tposx= (screen.width- twidth)/2
  var tposy= (screen.height- theight)/2
  	    	  
  var newWin1=window.open(urlx,"format","toolbar=no,width="+ twidth+",height="+ theight+ ",directories=no,status=no,scrollbars=yes,resizable=no, menubar=no")
  newWin1.moveTo(tposx,tposy);
  newWin1.focus()

}

function selectImage()
{ 
  var el=document.frames[fID]
  el.focus();
  doFormatDialog('edit_images.php','InsertImage',QBPATH)
}




function doFormatDialog(file,cmd,arg)
{ 
  var el=document.getElementById(fID).contentWindow;
  if(!el){alert('Please click to select the editor');return}

  var urlx= QBPATH + '/' + file +"?"+cmd

  var twidth= 350;
  var theight=300;
  var tposx= (screen.width- twidth)/2
  var tposy= (screen.height- theight)/2
  	    	  
  var newWin1=window.open(urlx,"format","toolbar=no,width="+ twidth+",height="+ theight+ ",directories=no,status=no,scrollbars=yes,resizable=no, menubar=no")
  newWin1.moveTo(tposx,tposy);
  newWin1.focus()

}



function selectEmoticon()
{ 
  var el=document.getElementById(fID).contentWindow;
  if(!el){alert('Please click to select the editor');return}
  el.focus();
  doFormatDialog('emoticon.html','InsertImage',QBPATH)
}

function selectBgColor()
{ 
  if(document.all) backcol= "BackColor"
  else backcol= "HiliteColor"

  doFormatDialog('selcolor.html',backcol,'')
}


function selectFgColor()
{ 
  doFormatDialog('selcolor.html','ForeColor','')
}


function characters()
{
  var el= document.getElementById(fID).contentWindow; 
  if(!el){alert('Please click to select the editor');return}
  el.focus();

  var urlx= QBPATH + '/selchar.html'

  var twidth= 350;
  var theight=400;
  var tposx= (screen.width- twidth)/2
  var tposy= (screen.height- theight)/2
  	    	  
  var newWin1=window.open(urlx,"format","toolbar=no,width="+ twidth+",height="+ theight+ ",directories=no,status=no,scrollbars=yes,resizable=no, menubar=no")
  newWin1.moveTo(tposx,tposy);
  newWin1.focus()

}




function doUploadFile()
{
  var el= document.getElementById(fID).contentWindow;
  if(!el){alert('Please click to select the editor');return}
  el.focus()

  var urlx= './upload.html'
  if(FULLCTRL) urlx= QBPATH + '/upload.html'

  var twidth= 0.8*screen.width, theight=190;
  var tposx= (screen.width- twidth)/2
  var tposy= screen.height- theight - 55
  	    	  
  var newWin1=window.open(urlx,"upload","toolbar=no,width="+ twidth+",height="+ theight+ ",directories=no,status=no,scrollbars=yes,resizable=no, menubar=no")
  newWin1.moveTo(tposx,tposy);
  newWin1.focus()

}


function doEditorOptions()
{
  var el= document.getElementById(fID).contentWindow;
  if(!el){alert('Please click to select the editor');return}
  el.focus()

  var urlx= './options.html'
  if(FULLCTRL) urlx= QBPATH + '/options.html'

  var twidth= 0.8*screen.width, theight=190;
  var tposx= (screen.width- twidth)/2
  var tposy= screen.height- theight - 55
  	    	  
  var newWin1=window.open(urlx,"options","toolbar=no,width="+ twidth+",height="+ theight+ ",directories=no,status=no,scrollbars=yes,resizable=no, menubar=no")
  newWin1.moveTo(tposx,tposy);
  newWin1.focus()

}


function displayHelp()
{
  var urlx= './edithelp.html'
  if(FULLCTRL) urlx= QBPATH + '/edithelp.html'

  var newWin=window.open(urlx,"help","toolbar=no, width=600px,height=400px,directories=no,status=no,scrollbars=yes,resizable=yes,menubar=no;scroll=no")
  newWin.focus()
}


function doExtras()
{
  var el= document.getElementById(fID).contentWindow;
  if(!el){alert('Please click to select the editor');return}
  el.focus()

  var urlx= QBPATH + '/extras.html'
  var twidth=400, theight=20;
  var tposx= (screen.width- twidth)/2
  var tposy= screen.height- theight - 155
  	    	  
  var newWin1=window.open(urlx,"extras","toolbar=no,width="+ twidth+",height="+ theight+ ",directories=no,status=no,scrollbars=yes,resizable=no, menubar=no")
  newWin1.moveTo(tposx,tposy);
  newWin1.focus()

}



function insertLink(linkurl)
{
  var el= document.getElementById(fID).contentWindow;
  if(!el && !TXTOBJ){alert('Please click a text element');return}

  if(el)
  {
	el.focus();
    var sel = el.document.selection;
	var strx= "<A href='"+linkurl+"' target=nwin>" + linkurl + "</A>"

	var Range = sel.createRange();
	if(!Range.duplicate) return;
	Range.pasteHTML(strx);
  }
  else 
  {
	TXTOBJ.focus();
    var caret= TXTOBJ.document.selection.createRange()
	TXTOBJ.curword=caret.duplicate();
	var strx= "<A href='"+linkurl+"' target=nwin>" + linkurl + "</A>,"
	doFormat(strx,caret)
  }

}





function editDivBorder()
{
  var el= document.getElementById(fID).contentWindow;
  if(!el){alert('Please click to select the editor');return}
  el.focus()
  
  var sel = el.document.selection;
  if(sel==null || sel.type!='Control') {alert('Please click once to select a div-layer');return} 

  var Range = sel.createRange();
  if(Range(0).tagName!='DIV') return

  var urlx= './divborder.html'
  if(FULLCTRL) urlx= QBPATH + '/divborder.html'

  var twidth= 0.8*screen.width, theight=215;
  var tposx= (screen.width- twidth)/2
  var tposy= screen.height- theight - 55
  	    	  
  var newWin1=window.open(urlx,"divborder","toolbar=no,width="+ twidth+",height="+ theight+ ",directories=no,status=no,scrollbars=yes,resizable=no, menubar=no")
  newWin1.moveTo(tposx,tposy);
  newWin1.focus()

}




function editDivFilter()
{
  var el= document.getElementById(fID).contentWindow;
  if(!el){alert('Please click to select the editor');return}
  el.focus()

  var sel = el.document.selection;
  if(sel==null || sel.type!='Control') {alert('Please click once to select a div-layer');return} 

  var Range = sel.createRange();
  if(Range(0).tagName!='DIV') return

  var urlx= './divfilter.html'
  if(FULLCTRL) urlx= QBPATH + '/divfilter.html'

  var twidth= 0.8*screen.width, theight=210;
  var tposx= (screen.width- twidth)/2
  var tposy= screen.height- theight - 55
  	    	  
  var newWin1=window.open(urlx,"divfilter","toolbar=no,width="+ twidth+",height="+ theight+ ",directories=no,status=no,scrollbars=yes,resizable=no, menubar=no")
  newWin1.moveTo(tposx,tposy);
  newWin1.focus()

}





function findTextHotKey(forward)
{
  if(!fID && !TXTOBJ){alert('Please click to select the editor');return}
  if(fID) el= document.getElementById(fID).contentWindow;
  else el= TXTOBJ
  el.focus();

  var rng = el.document.selection.createRange();
  el.curword=rng.duplicate();

  if(!FWORD && !el.curword.text ){ alert('No find string definition'); return }
  else if(el.curword.text)FWORD= el.curword.text

  if(el.curword.text)
   {
     if(forward==1) rng.moveEnd("character", -1 );  
	 else rng.moveStart("character", 1);  
   }

  if(rng.findText(FWORD,100000,FLAGS+forward)==true)
   { rng.select();  rng.scrollIntoView(); return }

  alert("Finish")
  return

}




function FileDialog()
{
  var urlx= './filedialog.html'
  if(FULLCTRL) urlx= QBPATH + '/filedialog.html'

  var twidth= 0.5*screen.width, theight=100;
  var tposx= (screen.width- twidth)/2
  var tposy= screen.height- theight - 55
  	    	  
  var newWin1=window.open(urlx,"fdialog","toolbar=no,width="+ twidth+",height="+ theight+ ",directories=no,status=no,scrollbars=yes,resizable=no, menubar=no")
  newWin1.moveTo(tposx,tposy);
  newWin1.focus()
}




function initDefaultOptions0(fID)
{
   setTimeout("document.getElementById('"+fID+"').contentWindow.document.body.style.fontFamily='"+DFFACE+"'",200)
   setTimeout("document.getElementById('"+fID+"').contentWindow.document.body.style.fontSize='"+DFSIZE+"'",200)
   setTimeout("document.getElementById('"+fID+"').contentWindow.document.body.style.color='"+DCOLOR+"'",200)
   setTimeout("document.getElementById('"+fID+"').contentWindow.document.body.style.backgroundColor='"+DBGCOL+"'",200)
   setTimeout("document.getElementById('"+fID+"').contentWindow.document.body.style.backgroundImage='url("+DBGIMG+")'",200)

   if(document.all)
	 setTimeout("CSS['"+fID+"']=document.getElementById('"+fID+"').contentWindow.document.createStyleSheet('"+DCSS+"')",200)

   FACE[fID]= DFFACE;
   SIZE[fID]= DFSIZE;
   COLOR[fID]= DCOLOR;
   BCOLOR[fID]= DBGCOL;
   BIMAGE[fID]= DBGIMG;
}






function DefaultOptions(linex)
{
  var retArr= new Array('','','','','','','');
  var tempx, strx, objx, idx ;


  // DEFAULT DIV
  var idx= linex.indexOf('ViEtDeVdIvId')
  if(idx>=0) 
	{
	  strx= linex.substring(linex.indexOf('style="')+7,linex.indexOf('">'))

      var atrA= strx.split(";")
	  for(var i=0; i<atrA.length; i++)
		{
		  tempx= atrA[i].split(':')
		  switch(tempx[0].toUpperCase())
		   {
			case "FONT-FAMILY": retArr[0]= tempx[1]; break;
			case "FONT-SIZE": retArr[1]= tempx[1]; break;
			case "BACKGROUND-COLOR": retArr[2]= tempx[1]; break;
			case "COLOR": retArr[3]= tempx[1]; break;
			case "BACKGROUND-IMAGE": if(tempx[2]) tempx[1] += ':'+ tempx[2];
									 retArr[4]= tempx[1].substring(tempx[1].indexOf('url(')+4,tempx[1].indexOf(')') ); 
									 break;
		   }
	    }

	  linex= ""+ />.*<\/div>/i.exec(linex)
      linex= linex.substring(1,linex.length-6)	
    }


   // EXT STYLE
   idx= linex.indexOf('<style>@import url("')
   if( idx>=0 )
    {
	   var strx= linex.substring(idx+20, linex.indexOf('")'))
       retArr[5]= strx
	   linex= linex.substring(0,idx)
    }

   retArr[6]= linex

   return retArr

}





function initDefaultOptions1(linex,fID)
{
  var retArr= new Array();


  retArr= DefaultOptions(linex);

  setTimeout("document.getElementById('"+fID+"').contentWindow.document.body.style.fontFamily='"+retArr[0]+"'",200)
  setTimeout("document.getElementById('"+fID+"').contentWindow.document.body.style.fontSize='"+retArr[1]+"'",200)
  setTimeout("document.getElementById('"+fID+"').contentWindow.document.body.style.backgroundColor='"+retArr[2]+"'",200)
  setTimeout("document.getElementById('"+fID+"').contentWindow.document.body.style.color='"+retArr[3]+"'",200)
  setTimeout("document.getElementById('"+fID+"').contentWindow.document.body.style.backgroundImage='url("+retArr[4]+")'",200)
  setTimeout("CSS['"+fID+"']=document.getElementById('"+fID+"').contentWindow.document.createStyleSheet('"+retArr[5]+"')",200)
  FACE[fID]= retArr[0];
  SIZE[fID]= retArr[1];
  COLOR[fID]= retArr[3];
  BCOLOR[fID]= retArr[2];
  BIMAGE[fID]= retArr[4];

  return retArr[6]

}




function actualize()
{
  var i=0;
  while(document.getElementsByTagName('iframe')[i])
  { 
	setHiddenValue(document.getElementsByTagName('iframe')[i].id) 
	i++
  }
}



function setHiddenValue(fid)
{ 
 if(!fid) return

 var strx= editorContents(fid)

 var idA= fid.split('VDevID')
 if(!idA[0]) return;

 var fobj= document.forms[idA[0]]
 if(!fobj) return;

 var loc=location.href
 loc= loc.substring(0,loc.lastIndexOf('/'))
 if(! /http:\/\//.test(loc) || /http\:\/\/127\.0\.0\.1/.test(loc) || /http\:\/\/localhost/.test(loc))
  {
   loc= loc.replace(/\//g,"\\/")
   loc= loc.replace(/\./g,"\\.")
   var reg= eval("/"+loc+"/g");
   strx= strx.replace(reg,".")
  }

 if(!document.all) strx= exchangeTags(strx,"<div>","</div>","",""); //delete trick div
 fobj[idA[1]].value= strx

}	



function editorContents(fid)
{
  var el= document.getElementById(fid).contentWindow;
  if(!el)return

  var strx, strx1;
  if(format[fid]=="HTML")
	{
	  strx= el.document.body.innerHTML
	  strx1= el.document.body.innerText
	}
  else
	{
	  strx = el.document.body.innerText
	  strx1=el.document.body.innerHTML
    }
  if(strx1=='' && strx.indexOf('<IMG')<0 && strx.indexOf('<HR')<0 ) return ''

  if(! document.all) strx = objInnerHTML(el);

  strx = strx.replace(/\r/g,""); 
  strx = strx.replace(/\n>/g,">"); 
  strx = strx.replace(/>\n/g,">"); 

  strx = strx.replace(/\\/g,"&#92;");
  strx = strx.replace(/\'/g,"&#39;")

  strx = doCleanCode(strx);

  // Security
	if(SECURE==1)
	{
		strx = strx.replace(/<meta/ig, "< meta"); 
	  strx = strx.replace(/&lt;meta/ig, "&lt; meta"); 

	  strx = strx.replace(/<script/ig, "< script"); 
	  strx = strx.replace(/&lt;script/ig, "&lt; script"); 
	  strx = strx.replace(/<\/script/ig, "< /script"); 
	  strx = strx.replace(/&lt;\/script/ig, "&lt; /script"); 

	  strx = strx.replace(/<iframe/ig, "< iframe"); 
	  strx = strx.replace(/&lt;iframe/ig, "&lt; iframe"); 
	  strx = strx.replace(/<\/iframe/ig, "< /iframe"); 
	  strx = strx.replace(/&lt;\/iframe/ig, "&lt; /iframe"); 

	  strx = strx.replace(/<object/ig, "< object"); 
	  strx = strx.replace(/&lt;object/ig, "&lt; object"); 
	  strx = strx.replace(/<\/object/ig, "< /object"); 
	  strx = strx.replace(/&lt;\/object/ig, "&lt; /object"); 

	  strx = strx.replace(/<applet/ig, "< applet"); 
	  strx = strx.replace(/&lt;applet/ig, "&lt; applet"); 
	  strx = strx.replace(/<\/applet/ig, "< /applet"); 
	  strx = strx.replace(/&lt;\/applet/ig, "&lt; /applet"); 

	  strx = strx.replace(/ on/ig, " o&shy;n"); 
	  strx = strx.replace(/script:/ig, "script&shy;:"); 
    }


  var idx= strx.indexOf('ViEtDeVdIvId')
  if( idx>=0 ) strx= strx.substring(strx.indexOf('>')+1,strx.lastIndexOf('</DIV>'))

  //idx= strx.indexOf('<style>@import url(')
  //if( idx>=0 ) strx= strx.substring(0,idx)
  //if(CSS[fid] && CSS[fid].href) strx += '<style>@import url("'+CSS[fid].href+'");</style>';


  var defdiv="" ;
  if(FACE[fid]) defdiv += "; FONT-FAMILY:"+ FACE[fid] 
  if(SIZE[fid]) defdiv += "; FONT-SIZE:"+ SIZE[fid]
  if(COLOR[fid]) defdiv += "; COLOR:"+ COLOR[fid]
  if(BCOLOR[fid])defdiv += "; BACKGROUND-COLOR:"+ BCOLOR[fid]
  if(BIMAGE[fid])
	{
     BIMAGE[fid]= BIMAGE[fid].replace(/\\/g,"/"); 
	 defdiv += "; BACKGROUND-IMAGE:url("+ BIMAGE[fid]+")"
    }
  if(defdiv)
	{
	 defdiv = '<DIV id=ViEtDeVdIvId style="POSITION:Relative' + defdiv + '">'
	 strx = defdiv + strx + "</DIV>"
	}

  return strx
}



// From Valerio Santinelli, PostNuke Developer,(http://www.onemancrew.org)
function doCleanCode(code) 
{    
  // removes all Class attributes on a tag eg. '<p class=asdasd>xxx</p>' returns '<p>xxx</p>'    
     //code = code.replace(/<([\w]+) class=([^ |>]*)([^>]*)/gi, "<$1$3")
  // removes all style attributes eg. '<tag style="asd asdfa aasdfasdf" something else>' returns '<tag something else>'
     //code = code.replace(/<([\w]+) style=\"([^\"]*)\"([^>]*)/gi, "<$1$3")
  // gets rid of all xml stuff... <xml>,<\xml>,<?xml> or <\?xml>
     //code = code.replace(/<]>/gi">\\?\??xml[^>]>/gi, "")
  // get rid of ugly colon tags <a:b> or </a:b>
     //code = code.replace(/<\/?\w+:[^>]*>/gi, "")
  // removes all empty <p> tags
     code = code.replace(/<p([^>])*>(&nbsp;)*\s*<\/p>/gi,"")
  // removes all empty span tags
     code = code.replace(/<span([^>])*>(&nbsp;)*\s*<\/span>/gi,"")
  return code
}




function formatDialog()
{
  TXTOBJ.focus();
  var caret=TXTOBJ.document.selection.createRange()
  TXTOBJ.curword=caret.duplicate();
  
  var y = screen.height -parseInt('27em')*14 - 30
  var feature = "font-family:Arial;font-size:10pt;dialogWidth:30em;dialogHeight:27em;dialogTop:"+y
      feature+= ";edge:sunken;help:no;status:no"

  var dialog= QBPATH+'/dialog.html'
  var arr= showModalDialog(dialog, "", feature);
  if(arr==null) return ;

  if(arr=='VISUAL')changetoIframeEditor(TXTOBJ);
  else doFormat(arr,caret)
}



function getScriptPath(script)
{
  var i=0;
  while(document.getElementsByTagName('script')[i])
  { 
	var src= document.getElementsByTagName('script')[i].src
	if( src.lastIndexOf(script)>=0 ) return src.substring(0,src.lastIndexOf(script));
	i++
  }
  return '';
}



///////////////////////////////////////////////////////////////////////
QBPATH= '.';

if(document.all){ 
	document.writeln('<script src="'+QBPATH+'/quickbuild4ie.js"></script>');
}
else { 
	document.writeln('<script src="'+QBPATH+'/quickbuild4mz.js"></script>');
}


if(USETABLE) document.writeln('<script src="'+QBPATH+'/tabedit.js"></script>');
if(RETURNNL) document.writeln('<script src="'+QBPATH+'/returnnl.js"></script>');
document.writeln('<script src="'+QBPATH+'/recover.js"></script>');

// VISUAL=0 : Textarea to Editor after confirmation
// VISUAL=1 : all Textarea to Editor
// VISUAL=2 : change only specific textarea
// VISUAL=3 : all Iframe to Editor
// VISUAL=4 : some specific iframes 
// VISUAL=other : no Visual-Editor, only use Rightmouse-Control
switch(VISUAL)
{
  case 1: changeAllTextareaToEditors(); break;
  case 2: changetoIframeEditor(document.forms[0].content); break;// please replace xxx=formIndex and yyy=textareaName
  case 3: changeAllIframeToEditors(); break;
  case 4: changeIframeToEditor('contents2'); break;//please replace contents.. = frame id
}

function doMDown(e)
{
 var el;
 if(document.all) el= event.srcElement
 else el= e.currentTarget
 
 var button
 if(document.all) button= event.button
 else button= e.which

 if(el.type=='text' || el.type=='textarea')
   {
	TXTOBJ=el; fID=''
    if(button>1 && POPWIN==1){ formatDialog();}
   }
}




//*************************************************************/
/********************* not the same *************************/
function doMUp(e)
{
 if(document.all) el= event.srcElement
 else el= e.currentTarget

 if(!el.type) return
 if(el.type!='text'&&el.type!='textarea'&&el.type!='password'&&el.type!='file')
  {
	if(!el.name || el.name.substring(0,7)!='QBCNTRL')
	 { 
	   actualize(); 
	   if(el.type != 'select-one' && el.type != 'select-multiple') el.focus(); 
	 }
    return
  }

 var visual=''
 if(typeof(ASKED)=="undefined" && el.type=='textarea' && VISUAL==0)
  { visual=confirm("Use Visual Mode ?"); if(!visual) ASKED=1; }
 	 
 if(visual) changetoIframeEditor(el);

}



function doKDown()
{
  var ctrl= event.ctrlKey
  if(!ctrl) return;

  var el=event.srcElement 
  if(el.type!='text' && el.type!='textarea') return
  TXTOBJ=el; fID='';

  var key= event.keyCode
  if(ctrl && key==71) { findText(); return false }  // ctrl+G search
  else if(ctrl && key==75){ findTextHotKey(0); return false } // ctrl+K  search forward
  else if(ctrl && key==74){ findTextHotKey(1); return false } // ctrl+J  search backward 
  else if(ctrl && key==83 && SYMBOLE!=''){ SmartcardData(); return false } // ctrl+S content rewrite
 
}




function findText()
{
  if(!fID && !TXTOBJ){alert('Please click to select the editor');return}
  if(fID) document.getElementById(fID).contentWindow.focus();
  else TXTOBJ.focus()

  var urlx= './dfindtext.html'
  if(FULLCTRL) urlx= QBPATH + '/dfindtext.html'

  var newWin=window.open(urlx,"find","toolbar=no, width=350px,height=220px,directories=no,status=no,scrollbars=yes,resizable=yes,menubar=no;scroll=no")
  newWin.moveTo(screen.width-500,50);
  newWin.focus()
}



function FMUp(e)
{ 
}
