var V_o = 0;
var VN_o = 0;
var U_o = 0;
var tags   = new Array();
 
// Stack operations -----------------------------------------------------------------------
function size (stack) {
  for (i = 0 ; i < stack.length; i++ )
    if (( stack[i] == "" ) || ( stack[i] == null ) || ( stack == 'undefined' )) return i;	
  return stack.length;
}

function push (stack, newval) {
  n = size(stack);
  stack[n] = newval;
}

function pop (stack) {
  n = size(stack);
  a = stack[n - 1];
  delete stack[n - 1];
  return a;
}

// Browser detection ----------------------------------------------------------------------
function Is() {
  agent = navigator.userAgent.toLowerCase();
  this.agent = navigator.userAgent.toLowerCase();
  this.major = parseInt(navigator.appVersion);
  this.minor = parseFloat(navigator.appVersion);
  this.ns = ( ( agent.indexOf( 'mozilla' ) != -1 ) && ( ( agent.indexOf( 'spoofer' ) == -1 ) && ( agent.indexOf( 'compatible' ) == -1 ) ) );
  this.ns4 = ( this.ns && ( this.major <= 4 ) && ( this.minor < 5 ) );
  this.ns6 = ( this.ns && ( this.major >= 5 ) );
  this.opera = ( agent.indexOf( 'opera' ) != -1 );
  this.opera6 = ( this.major >= 6 );
  this.ie = ( agent.indexOf( "msie" ) != -1 );
  this.ie4 = ( this.ie && ( this.major == 4 ) && ( agent.indexOf( "msie 5.0" ) == -1 ) );
  this.ie5 = ( this.ie && ( this.major == 4 ) && ( agent.indexOf( "msie 5" ) != -1 ) );
  this.ie6 = ( this.ie && ( this.major == 4 ) && ( agent.indexOf( "msie 6" ) != -1 ) );
  this.ie7 = ( this.ie && ( this.major == 4 ) && ( agent.indexOf( "msie 7" ) != -1 ) );
  this.iframe = ( this.ie || this.ns6 || this.opera6 );
  this.layer = ( this.ie || this.ns6 );
  this.win =  (( agent.indexOf( "win" ) != -1 ) || ( agent.indexOf( "16bit" ) != -1 ));
}
var is = new Is();


// Tags -----------------------------------------------------------------------------------

function add_code (a) {
  document.forrasform.forras.value += a;
  document.forrasform.forras.focus();
}


function tag (a) {
  var enterURL   = prompt ("Add meg a félkövér szöveget", "");

  if (!enterURL) {
    alert ("HIBA: nem adtál meg linket (url-t)!");
    return;
  }
  insert ("[V]" + enterURL + "[/V]", "",  false);
}

function tag_url () {
  var enterURL   = prompt ("Add meg a hivatkozást (linket, url-t)!", "http://");
  var enterURL_cimke   = prompt ("Add meg a hivatkozás szövegét (amire klikkelni lehet)!", "");

  if (!enterURL) {
    alert ("HIBA: nem adtál meg linket (url-t)!");
    return;
  }
  if (!enterURL_cimke) {
    alert ("HIBA: nem adtál meg szöveget!");
    return;
  }
  insert ("[L]" + enterURL + "*", "", false);
  insert (enterURL_cimke + "[/L]", "", false);
}

function tag_image () {
  var enterURL = prompt ("Add meg a képre mutató hivatkozást (linket, url-t)!", "http://");
  //var enterURL_cimke = prompt ("Add meg a kép szövegét (amire klikkelni lehet)!", "");

  if (!enterURL) {
    alert ("HIBA: nem adtál meg hivatkozást (url-t) a képre!");
    return;
  }
  /*if (!enterURL_cimke) {
    alert ("HIBA: nem adtál meg szöveget!");
    return;
  }*/
  insert ("[IMG]" + enterURL + "[/IMG]", "", false);
  //insert (enterURL_cimke + "[/IMG]", "", false);
}

function tag_kep () {
  var enterURL   = prompt ("Add meg a hivatkozást:", "http://");
  var enterURL_cimke   = prompt ("Add meg a kép címét:", "http://");

  if (!enterURL) {
    alert ("HIBA: nem adtál meg linket (url-t)!");
    return;
  }
  if (!enterURL_cimke) {
    alert ("HIBA: nem adtál meg szöveget!");
    return;
  }
  insert ("[L]" + enterURL + "*[FIMG]", "", false);
  insert (enterURL_cimke + "[/FIMG][/L]", "", false);
} 

function tag_sound () {
  var enterURL = prompt ("Add meg a hangra mutató hivatkozást (linket, url-t)!", "http://");
  //var enterURL_cimke = prompt ("Add meg a kép szövegét (amire klikkelni lehet)!", "");

  if (!enterURL) {
    alert ("HIBA: nem adtál meg hivatkozást (url-t) a hangra!");
    return;
  }
  /*if (!enterURL_cimke) {
    alert ("HIBA: nem adtál meg szöveget!");
    return;
  }*/
  insert ("[SOUND]" + enterURL + "[/SOUND]", "", false);
  //insert (enterURL_cimke + "[/IMG]", "", false);
}

function tag_video () {
  var enterURL = prompt ("Add meg a vidora mutató hivatkozást (linket, url-t)!", "http://");
  //var enterURL_cimke = prompt ("Add meg a kép szövegét (amire klikkelni lehet)!", "");

  if (!enterURL) {
    alert ("HIBA: nem adtál meg hivatkozást (url-t) a videora!");
    return;
  }
  /*if (!enterURL_cimke) {
    alert ("HIBA: nem adtál meg szöveget!");
    return;
  }*/
  insert ("[VIDEO]" + enterURL + "[/VIDEO]", "", false);
  //insert (enterURL_cimke + "[/IMG]", "", false);
}


function tag_flash () {
  var enterURL = prompt ("Add meg a flash file nevét", "");
  //var enterURL_cimke = prompt ("Add meg a kép szövegét (amire klikkelni lehet)!", "");

  if (!enterURL) {
    alert ("HIBA: nem adtál meg hivatkozást (url-t) a flashre!");
    return;
  }
  /*if (!enterURL_cimke) {
    alert ("HIBA: nem adtál meg szöveget!");
    return;
  }*/
  insert ("[FLASH]" + enterURL + "[/FLASH]", "", false);
  //insert (enterURL_cimke + "[/IMG]", "", false);
}


function tag_image2 (sqlkep,ig) {
  switch (ig) {
    case '1':
      insert ("[IMG1]" + sqlkep + "[/IMG]", "", false);
      break;
    case '2':
      insert ("[IMG2]" + sqlkep + "[/IMG]", "", false);
      break;
    case '3':
      insert ("[IMG3]" + sqlkep + "[/IMG]", "", false);
      break;
    case '4':
      insert ("[IMG4]" + sqlkep + "[/IMG]", "", false);
      break;
    case '5':
      insert ("[IMG5]" + sqlkep + "[/IMG]", "", false);
      break;
    default:
      insert ("[IMG2]" + sqlkep + "[/IMG]", "", false);
    }
}
function tag_image2db (sqlkep) {
  insert ("[IMG]" + sqlkep + "[/IMG]", "", false);
}
function tag_image2dj (sqlkep) {
  insert ("[IMG]" + sqlkep + "[/IMG]", "", false);
}
function tag_image2dk (sqlkep) {
  insert ("[IMG]" + sqlkep + "[/IMG]", "", false);
}
function tag_image2b (sqlkep) {
  insert ("[IMG]" + sqlkep + "[/IMG]", "", false);
}
function tag_image2j (sqlkep) {
  insert ("[IMG]" + sqlkep + "[/IMG]", "", false);
}

function insert (atag, ctag, single) {
  var closed = false;
  var a = document.forrasform.forras;
  if ( (is.major >= 4) && is.ie && is.win) {// IE4+  
    if (a.isTextEdit) {
      a.focus();
      var sel = document.selection;
      var rng = sel.createRange();
      rng.colapse;

      if ((sel.type == "Text" || sel.type == "None") && rng != null) {
        if(ctag != "" && rng.text.length > 0)
          atag += rng.text + ctag;
        else if(single)
          closed = true;

        rng.text = atag;
      }
    } else {
      if (single) closed = true;
      a.value += atag;
    }
  } else if (a.setSelectionRange) {// Mozilla  
    var sel_start = a.selectionStart;
    var sel_end = a.selectionEnd;
    var sel_length = sel_end - sel_start;

    if (ctag.length == 0) {
      a.value = a.value.substr(0, sel_start) + atag + a.value.substr(sel_end);
      a.setSelectionRange(sel_start + atag.length, sel_start + atag.length);
    } else {
      a.value = a.value.substr(0,sel_start) + atag + a.value.substr(sel_start,sel_length) + ctag + a.value.substr(sel_end);
      a.setSelectionRange(sel_start + atag.length, sel_end + atag.length);
    }
  } else {
    if (single) closed = true;
    a.value += atag;
  }

  a.focus();
  return closed;
}
function biztos () {
  if (!confirm('Biztos törlöd a kiválasztott hírt?')) {
    document.forrasform.biztosin.value = "0";
  } else {
    document.forrasform.biztosin.value = "1";
  }
} 