//*********************************************
// Scripts for inserting icons and UBB code
//  You can use them freely, just give credits
//  where credit is due. As do I.
//*********************************************

  function bbicon(theicon, formelement) 
  { // Function based on a script from tweakers.net
    var target = document.getElementById(formelement);
    var text = theicon;

    if ( target != null )
    {
      if ( typeof target.selectionStart != 'undefined' )
      { // moz
        var sStart = target.selectionStart;
        var sEnd = target.selectionEnd;
        target.value = target.value.substr(0, sStart) + text + target.value.substr(sEnd, target.value.length - sEnd);
        var nStart = sStart == sEnd ? sStart + text.length : sStart;
        target.setSelectionRange(nStart, sStart + text.length);
        target.focus();
      }
      else
      { // IE
        target.focus();
        document.selection.createRange().text = document.selection.createRange().text + theicon;
      }
    }
  }

  function bblist(value, formelement)
  {
    var target = document.getElementById(formelement);
    var text = value;

    if ( target != null )
    {
      if ( typeof target.selectionStart != 'undefined' )
      { // moz
  
        var sStart = target.selectionStart;
        var sEnd = target.selectionEnd;
        if(sStart != sEnd)
        {
          var txtStart = target.value.substr(0, sStart); 
          var txtEnd = target.value.substr(sEnd, target.value.length - sEnd);
          var txtBody = "[" + text + "][*]" + target.value.substr(sStart, sEnd - sStart).replace(/\n/g, "\n[*]") + "[/" + text + "]";
          target.value = txtStart + txtBody + txtEnd;
          target.setSelectionRange(sStart, sEnd+txtBody.length);
        }
        else
        { // nothing selected
          alert("Please select the lines you want to make a list of!");
        }
      }
      else
      { // IE
        target.focus();
        document.selection.createRange().text = "[" + value + "][*]" + document.selection.createRange().text.replace(/\n/g, "\n[*]") + "[/" + value + "]";
      }
    }
  }

  function bburl(value, formelement)
  {
    var target = document.getElementById(formelement);
    var text = value;

    if ( target != null )
    {
      if ( typeof target.selectionStart != 'undefined' )
      { // moz
        var sStart = target.selectionStart;
        var sEnd = target.selectionEnd;
        if(sStart != sEnd)
        {
          target.value = target.value.substr(0, sStart) + "[" + text + "]" + target.value.substr(sStart, sEnd - sStart) + "[/" + text + "]" + target.value.substr(sEnd, target.value.length - sEnd);
          target.setSelectionRange(sStart, sEnd+(text.length*2)+5);
          target.focus();
        }
        else
        { // popup box, to start entering data
          sPut = prompt("Please insert the URL You want to link to.");
          if (sPut != null)
          {
            sPLink = prompt("Now, insert the text for your link.\nLeave blank to insert the URL itself as link.");
            if (sPLink != null)
            {
              if (sPLink != "")
              {
                target.value = target.value.substr(0, sStart) +"[" +text+ "="+ sPut +"]"+ sPLink +"[/"+text+"]"+ target.value.substr(sEnd, target.value.length - sEnd);
              target.setSelectionRange(sStart, sEnd+(text.length*2)+6+sPut.length+sPLink.length);
              }
              else
              {
                target.value = target.value.substr(0, sStart) +"[" +text+ "]"+ sPut +"[/"+text+"]"+ target.value.substr(sEnd, target.value.length - sEnd);
                target.setSelectionRange(sStart, sEnd+(text.length*2)+5+sPut.length);
              }
            }
          }
        }
      }
      else
      { // IE
        target.focus();
        document.selection.createRange().text = "[" + value + "]" + document.selection.createRange().text + "[/" + value + "]";
      }
    }
  }

  function bbtags(value, formelement) 
  { // Function based on a script from tweakers.net
    var target = document.getElementById(formelement);
    var text = value;

    if ( target != null )
    {
      if ( typeof target.selectionStart != 'undefined' )
      { // moz
        var sStart = target.selectionStart;
        var sEnd = target.selectionEnd;
        if(sStart != sEnd)
        {
          target.value = target.value.substr(0, sStart) + "[" + text + "]" + target.value.substr(sStart, sEnd - sStart) + "[/" + text + "]" + target.value.substr(sEnd, target.value.length - sEnd);
          target.setSelectionRange(sStart, sEnd+(text.length*2)+5);
          target.focus();
        }
        else
        { // popup box, to start entering data
          sPut = prompt("You didn't select anything.\nPlease enter the text that should be ["+value+"] tagged.","");
          sPLink = null;

          if (sPut != null)
          {
            target.value = target.value.substr(0, sStart) +"[" +text+ "]"+ sPut +"[/"+text+"]"+ target.value.substr(sEnd, target.value.length - sEnd);
            target.setSelectionRange(sStart, sEnd+(text.length*2)+5+sPut.length);
            target.focus();
          }
          else
          {
            target.setSelectionRange(sStart, sEnd);
            target.focus();
          }
        }
      }
      else
      { // IE
        target.focus();
        document.selection.createRange().text = "[" + value + "]" + document.selection.createRange().text + "[/" + value + "]";
      }
    }
  }

  function setClass(theRow, theClass)
  {
    theRow.className = theClass;
      return true;
  }

  function switchVis(ID)
  {
    if(document.getElementById){
      if(document.getElementById(ID).style.display == 'none'){
        document.getElementById(ID).style.display = 'block';
      }
      else{
        document.getElementById(ID).style.display = 'none';
      }
    }
  }

  function postInfo(ID, domain) 
  {
    window.open(domain+"index.php/forum/infopost/"+ID, "postinfo","width=800px,height=600px,scrollbars=1");
  }

  function viewImage(domain, image)
  {
    window.open(domain+"index.php/media/images/"+image,"postinfo","width=840px,height=660px,scrollbars=0");
  }

  function setCheckboxes(form, target, source)
  {
    var tgform = document.forms[form];
    for (i = 0; i < tgform.elements.length; i++) 
    {
      if(tgform.elements[i].name == source)
      {
        var tsource = i;
      }
      if(tgform.elements[i].name == target+'[]')
      {
        tgform.elements[i].checked = tgform.elements[tsource].checked;
      }
    }
    return true;
  }

  function addMember(src, target)
  {

    newMember = new String( document.getElementById(src).options[document.getElementById(src).selectedIndex].value );

    // get the current value of the textarea box
    //thisForm = document.post;
    strMembers = new String( document.getElementById(target).value );
    
    // parse the member names into an array
    arrMembers = strMembers.split(/[\n\r]/);
    
    // add the new member to the array
    arrMembers.push( newMember );
    
    // prune out any duplicates
    var seenIt = { };
    for ( var i = arrMembers.length - 1; i >= 0; i-- )
    {
      var thisOne = arrMembers[i];
      if ( seenIt[thisOne] ) 
      {
        arrMembers[i] = null;
    	}
      seenIt[thisOne] = true;
    }
    
    arrMembersOut = new Array();
    len = arrMembers.length
    for ( var i = 0; i < len; i++ )
    {
      if ( arrMembers[i] != null )
      {
        arrMembersOut.push( arrMembers[i] );
      }
    }
    
    // join the array and place the value in the textarea box
    arrMembersOut = arrMembersOut.sort();
    strMembersOut = arrMembersOut.join("\n");
    
    document.getElementById(target).value = strMembersOut;
    
    //thisForm.memberSearch.value = "";
    //thisForm.memberSearch.focus();
    
    return false;
  }
