var myTags = new Array();
myTags[myTags.length] = new Array('idubb_url','url','link','[URL]','[/URL]');
myTags[myTags.length] = new Array('idubb_img','img','resim','[IMG]','[/IMG]');


function ShowAfterRegex (myText,myDiv) {
  myText = document.getElementById(myText);
  myDiv  = document.getElementById(myDiv);
  //alert(myDiv.scroll);
  myDiv.innerHTML = myText.value;
  myDiv.innerHTML = RegExpian(myText);
  
  if ( document.getElementById(myText.name + 'html' ) ) {
    document.getElementById(myText.name + 'html').value = myDiv.innerHTML;
  }
  
  myDiv.scrollTop = 20000;
}



function RegExpian (input) {
  inputreg = input.value;
  inputreg = inputreg.replace(/&/ig,"&amp;");
  inputreg = inputreg.replace(/>/ig,"&gt;");
  inputreg = inputreg.replace(/</ig,"&lt;");
  //inputreg = inputreg.replace(/\"/ig,"&quot;");
  //inputreg = inputreg.replace(/\[/ig,"&#91;");
  //inputreg = inputreg.replace(/\]/ig,"&#93;");
  inputreg = inputreg.replace(/\r\n/ig,"\n");
  inputreg = inputreg.replace(/\r/ig,"\n");
  inputreg = inputreg.replace(/\[B\]/ig,"<strong>");
  inputreg = inputreg.replace(/\[\/B\]/ig,"</strong>");
  inputreg = inputreg.replace(/\[I\]/ig,"<em>");
  inputreg = inputreg.replace(/\[\/I\]/ig,"</em>");
  inputreg = inputreg.replace(/\[U\]/ig,"<u>");
  inputreg = inputreg.replace(/\[\/U\]/ig,"</u>");
  inputreg = inputreg.replace(/\[S\]/ig,"<strike>");
  inputreg = inputreg.replace(/\[\/S\]/ig,"</strike>");
  inputreg = inputreg.replace(/\[SUB\]/ig,"<sub>");
  inputreg = inputreg.replace(/\[\/SUB\]/ig,"</sub>");
  inputreg = inputreg.replace(/\[SUP\]/ig,"<sup>");
  inputreg = inputreg.replace(/\[\/SUP\]/ig,"</sup>");
  inputreg = inputreg.replace(/\[CODE\]/ig,"<code>");
  inputreg = inputreg.replace(/\[\/CODE\]/ig,"</code>");
  inputreg = inputreg.replace(/\[PRE\]/ig,"<pre>");
  inputreg = inputreg.replace(/\[\/PRE\]/ig,"</pre>");
  inputreg = inputreg.replace(/\[QUOTE\]/ig,"<blockquote>");
  inputreg = inputreg.replace(/\[\/QUOTE\]/ig,"</blockquote>");
  inputreg = inputreg.replace(/\[LEFT\]/ig,"<div align=\"left\">");
  inputreg = inputreg.replace(/\[\/LEFT\]/ig,"</div>");
  inputreg = inputreg.replace(/\[CENTER\]/ig,"<div align=\"center\">");
  inputreg = inputreg.replace(/\[\/CENTER\]/ig,"</div>");
  inputreg = inputreg.replace(/\[RIGHT\]/ig,"<div align=\"right\">");
  inputreg = inputreg.replace(/\[\/RIGHT\]/ig,"</div>");
  inputreg = inputreg.replace(/\[JUSTIFY\]/ig,"<div align=\"justify\">");
  inputreg = inputreg.replace(/\[\/JUSTIFY\]/ig,"</div>");
  inputreg = inputreg.replace(/\[LIST\]/ig,"<ul>");
  inputreg = inputreg.replace(/\[\/LIST\]/ig,"</ul>");
  inputreg = inputreg.replace(/\[LIST1\]/ig,"<ol>");
  inputreg = inputreg.replace(/\[\/LIST1\]/ig,"</ol>");
  inputreg = inputreg.replace(/\[\*\](.*)(\n|\r|\r\n)/ig,"<li>$1</li>"); // A fix for list lines - Liste satırları için düzeltme
  inputreg = inputreg.replace(/\[\*\](.*)/ig,"<li>$1</li>"); // A fix for list lines - Liste satırları için düzeltme
  inputreg = inputreg.replace(/\[URL\]([^\[]*)\[\/URL\]/ig,"<a href=\"$1\" title=\"$1\">$1</a>");
  inputreg = inputreg.replace(/\[URL HREF=\"([^\"]*)\" TITLE=\"([^\"]*)\"]([^\[]*)\[\/URL\]/ig,"<a href=\"$1\" title=\"$2\">$3</a>");
  inputreg = inputreg.replace(/\[EMAIL\]([^\[]*)\[\/EMAIL\]/ig,"<a href=\"mailto:$1\" title=\"$1\">$1</a>");
  inputreg = inputreg.replace(/\[EMAIL HREF=\"([^\"]*)\"](.*)\[\/EMAIL\]/ig,"<a href=\"mailto:$1\">$2</a>");
  inputreg = inputreg.replace(/\[IMG\]([^\[]*)\[\/IMG\]/ig,"<img src=\"$1\" />");
  inputreg = inputreg.replace(/\[IMG SRC=\"([^\"]*)\" ALIGN=\"([^\"]*)\"]([^\[]*)\[\/IMG\]/ig,"<img src=\"$1\" alt=\"$3\" align=\"$2\" />");
  inputreg = inputreg.replace(/\[IMG SRC=\"([^\"]*)\"]([^\[]*)\[\/IMG\]/ig,"<img src=\"$1\" alt=\"$2\" />");
  inputreg = inputreg.replace(/\[COLOR NUM=\"([^\"]*)\"]([^\[]*)\[\/COLOR\]/ig,"<font color=\"$1\">$2</font>");
  inputreg = inputreg.replace(/\[BR\]/ig,"<br />");
  inputreg = inputreg.replace(/\n/ig,"<br />");
  inputreg = inputreg.replace(/\t/ig,"&nbsp;&nbsp;&nbsp;&nbsp;");
  return inputreg;
}





function WriteTagButtons (textareatemp,layertemp) {
  for ( i = 0; i < myTags.length; i++ ) {
    document.write('<input type="button" id="' + myTags[i][0] + '" style="background:url(editorimages/' + myTags[i][1] + '.gif) no-repeat;width:22px;height:22px;padding:2px;" name="' + myTags[i][1] + '" onClick="WriteOption(\'' + myTags[i][0] + '\',\''+textareatemp+'\',\''+ layertemp + '\',\'' + myTags[i][3] + '\',\'' + myTags[i][4] + '\');" title="' + myTags[i][2] + '" />');
  }
}



function WriteOption (myButId,myText,myLayer,tagOpen,tagClose) {
  myText = document.getElementById(myText);
  myLayer= document.getElementById(myLayer);


  mySelection = '';
  
  if ( window.getSelection || document.getSelection ) {
    mySelection = myText.value.substring(myText.selectionStart,myText.selectionEnd);
  }
  else {
    mySelection = iestr = document.selection.createRange().text;
  }

    
  Content = '';


  myButSwitch = myButId.substring(6,myButId.length);

  // -- LIST
  if ( myButSwitch == 'list' || myButSwitch == 'listnum' ) {
    Content = tagOpen + "\n";
    
		do {
		  tmpval = prompt("Please enter an item:","");
		  if ( tmpval != undefined && tmpval != '') {
		    Content += "[*]" + tmpval + "\n";
		  }
		} while (tmpval != null && tmpval != "" && tmpval != undefined);
		
		Content = Content + tagClose + "\n";
  }
  // -- URL
  else if ( myButSwitch == 'url') {
    tagOpen = tagOpen.substring(0,tagOpen.length-1);
    Content  = tagOpen;
    tmphref  = prompt("Adres:","http://");
    tmptitle = prompt("Bağlantı Açıklaması:","");
    tmptext  = '';
    
    if ( mySelection == '' ) {
      tmptext  = prompt("Hangi Kelimeye Link Verilecek?","");
    }
    else {
      tmptext = mySelection;
    }
    
    if ( tmphref == null || tmphref == "" || tmphref == undefined ) { Content = Content + ' ' + 'HREF="#"'; }
    else                                                            { Content = Content + ' ' + 'HREF="' + tmphref + '"'; }
    
    if ( tmptitle == null || tmptitle == "" || tmptitle == undefined ) { Content = Content + ' ' + 'TITLE="' + '"'; }
    else                                                               { Content = Content + ' ' + 'TITLE="' + tmptitle + '"'; }
    
    if ( tmptext == null || tmptext == "" || tmptext == undefined ) {
      if ( tmphref != undefined && tmphref != '' ) {
        Content = Content + ']' + tmphref;
      }
      else {
        Content = Content + ']';
      }
    }
    else {
     Content = Content + ']' + '' + tmptext;
    }
    
    Content = Content + tagClose;
  }
  // -- IMG
  else if ( myButSwitch == 'img') {
    tagOpen = tagOpen.substring(0,tagOpen.length-1);
    Content  = tagOpen;
    tmphref  = prompt("Resim Kaynağı:","");
    tmptext  = '';
    if ( mySelection == '' ) {
      tmptext  = prompt("Resim Açıklaması:","");
    }
    else {
      tmptext = mySelection;
    }
    tmpalign = '';
 
    
    
    if ( tmphref == null || tmphref == "" || tmphref == undefined ) {
      Content = Content + ' ' + 'SRC=""';
    }
    else {
     Content = Content + ' ' + 'SRC="' + tmphref + '"';
    }
    
    if ( tmpalign == null || tmpalign == "" || tmpalign == undefined ) {
      Content = Content + '';
    }
    else {
      Content = Content + ' ALIGN="' + tmpalign + '"';
    }

    if ( tmptext == null || tmptext == "" || tmptext == undefined ) {
      if ( tmphref != undefined && tmphref != '' ) {
        Content = Content + ']' + tmphref;
      }
      else {
        Content = Content + ']';
      }
    }
    else {
     Content = Content + ']' + '' + tmptext;
    }
    
    Content = Content + tagClose;
  }
  // -- COLOR
  else if ( myButSwitch == 'color') {
    tagOpen = tagOpen.substring(0,tagOpen.length-1);

    Content  = tagOpen;
    tmpcolor = prompt("Enter Color Type like #FFFFFF:","");
    tmptext  = '';
    if ( mySelection == '' ) {
      tmptext  = prompt("Enter Text","");
    }
    else {
      tmptext = mySelection;
    }
    
    if ( tmpcolor == null || tmpcolor == "" || tmpcolor == undefined ) {
      Content = Content + ' ' + 'NUM="#"]';
    }
    else {
     Content = Content + ' ' + 'NUM="' + tmpcolor + '"]';
    }

    if ( tmptext == null || tmptext == "" || tmptext == undefined ) {
    }
    else {
     Content = Content + tmptext;
    }
    
    Content = Content + tagClose;
  }
  // -- EMAIL
  else if ( myButSwitch == 'email') {
    tagOpen = tagOpen.substring(0,tagOpen.length-1);

    Content  = tagOpen;
    tmpemail = prompt("Enter Email Address","");
    tmptext  = '';
    if ( mySelection == '' ) {
      tmptext  = prompt("Enter Email Link Text","");
    }
    else {
      tmptext = mySelection;
    }

    if ( tmpemail == null || tmpemail == "" || tmpemail == undefined ) {
      Content = Content + ' ' + 'HREF="#"]';
    }
    else {
     Content = Content + ' ' + 'HREF="' + tmpemail + '"]';
    }

    if ( tmptext == null || tmptext == "" || tmptext == undefined ) {
      Content = Content + tmpemail;
    }
    else {
     Content = Content + tmptext;
    }
    
    Content = Content + tagClose;
  }
  else if ( myButSwitch == "br" ) {
    Content = "[BR]";
  }
  else if ( myButSwitch == 'newline' ) {
    Content = '\n';
  }
  else if ( myButSwitch == 'tab' ) {
    Content = '\t';
  }
  
		var startPos = myText.selectionStart;
		var endPos = myText.selectionEnd;
		var cursorPos = endPos;
		var scrollTop = myText.scrollTop;
  
  if ( window.getSelection || document.getSelection ) {
    // Almost Mozilla or Opera
    if ( myText.selectionStart != myText.selectionEnd ) {
      if ( Content != '' ) {
        myText.value = 
          myText.value.substring(0,myText.selectionStart)
        + Content
        + myText.value.substring(myText.selectionEnd,myText.value.length);
        
        cursorPos += Content.length - mySelection.length;
      }
      else {
       myText.value = 
        myText.value.substring(0,myText.selectionStart)
        + tagOpen
        + myText.value.substring(myText.selectionStart,myText.selectionEnd)
        + tagClose
        + myText.value.substring(myText.selectionEnd,myText.value.length);
        
        cursorPos += tagOpen.length + tagClose.length;
        
      }
    }
    else {
      if ( Content != '' ) {
        myText.value = 
          myText.value.substring(0,myText.selectionStart)
        + Content
        + myText.value.substring(myText.selectionEnd,myText.value.length);
        
        cursorPos += Content.length;
      }
      else {
      myText.value = 
        myText.value.substring(0,myText.selectionStart)
      + tagOpen
      + myText.value.substring(myText.selectionStart,myText.selectionEnd)
      + tagClose
      + myText.value.substring(myText.selectionEnd,myText.value.length);
      
      cursorPos += tagOpen.length;
      
      }
    }
    
		myText.focus();
		myText.selectionStart = cursorPos;
		myText.selectionEnd = cursorPos;
		myText.scrollTop = scrollTop;
  }
  else if (document.selection) {
    // Almost suckzors
    myText.focus();
    iestr = document.selection.createRange();
    
    if ( iestr.text.length > 0 ) {
      if ( Content != '' ) {
        iestr.text = Content;
      }
      else {
        iestr.text = tagOpen + iestr.text + tagClose;
      }
    }
    else {
      if ( Content != '' ) {
        iestr.text = Content;
      }
      else {
        iestr.text = tagOpen + tagClose;
      }
    }
    myText.focus();
  }
  ShowAfterRegex(myText.id,myLayer.id);
}
