//����������������������������������������������������������������������������Ŀ
//�  JAVA SCRIPT MEN�                                                          �
//�                                                                            �
//�  Copyright (c) 2003 Ing. Robert Grasboeck                                  �
//����������������������������������������������������������������������������Ĵ
//�  Filename   : menu.js                                                      �
//�  Programmer : Ing. R.Grasboeck                                             �
//������������������������������������������������������������������������������

loadtimex = new Date()

//----------------------------------------------------------
// Helpline messages
b_help = "Text in fett: [b]Text[/b]  (alt+b)";
i_help = "Text in kursiv: [i]Text[/i]  (alt+i)";
u_help = "Unterstrichener Text: [u]Text[/u]  (alt+u)";
q_help = "Zitat: [quote]Text[/quote]  (alt+q)";
c_help = "Code anzeigen: [code]Code[/code]  (alt+c)";
l_help = "Liste: [list]Text[/list] (alt+l)";
o_help = "Geordnete Liste: [list=]Text[/list]  (alt+o)";
p_help = "Bild einf�gen: [img]http://URL_des_Bildes[/img]  (alt+p)";
w_help = "URL einf�gen: [url]http://URL[/url] oder [url=http://url]URL Text[/url]  (alt+w)";
a_help = "Alle offenen BBCodes schlie�en";
s_help = "Schriftfarbe: [color=red]Text[/color]  Tip: Du kannst ebenfalls color=#FF0000 benutzen";
f_help = "Schriftgr��e: [size=x-small]Kleiner Text[/size]";

// Check for Browser & Platform for PC & IE specific bits
// More details from: http://www.mozilla.org/docs/web-developer/sniffer/browser_type.html
var clientPC = navigator.userAgent.toLowerCase(); // Get client info
var clientVer = parseInt(navigator.appVersion); // Get browser version

var is_ie = ((clientPC.indexOf("msie") != -1) && (clientPC.indexOf("opera") == -1));
var is_nav  = ((clientPC.indexOf('mozilla')!=-1) && (clientPC.indexOf('spoofer')==-1)
                && (clientPC.indexOf('compatible') == -1) && (clientPC.indexOf('opera')==-1)
                && (clientPC.indexOf('webtv')==-1) && (clientPC.indexOf('hotjava')==-1));

var is_win   = ((clientPC.indexOf("win")!=-1) || (clientPC.indexOf("16bit") != -1));
var is_mac    = (clientPC.indexOf("mac")!=-1);

// Define the bbCode tags
bbcode = new Array();
bbtags = new Array('[b]','[/b]','[i]','[/i]','[u]','[/u]','[quote]','[/quote]','[code]','[/code]','[list]','[/list]','[list=]','[/list]','[img]','[/img]','[url]','[/url]');
imageTag = false;

// Shows the help messages in the helpline window
function helpline(help) {
  document.Formular.helpbox.value = eval(help + "_help");
}

// Replacement for arrayname.length property
function getarraysize(thearray) {
	for (i = 0; i < thearray.length; i++) {
		if ((thearray[i] == "undefined") || (thearray[i] == "") || (thearray[i] == null))
			return i;
		}
	return thearray.length;
}

// Replacement for arrayname.push(value) not implemented in IE until version 5.5
// Appends element to the array
function arraypush(thearray,value) {
	thearray[ getarraysize(thearray) ] = value;
}

// Replacement for arrayname.pop() not implemented in IE until version 5.5
// Removes and returns the last element of an array
function arraypop(thearray) {
	thearraysize = getarraysize(thearray);
	retval = thearray[thearraysize - 1];
	delete thearray[thearraysize - 1];
	return retval;
}

function bbfontstyle(bbopen, bbclose) {
  if((clientVer >= 4) && is_ie && is_win)
    {
     theSelection = document.selection.createRange().text;

     if(!theSelection)
       {
        document.Formular.inhalt.value += bbopen + bbclose;
        document.Formular.inhalt.focus();
        return;
       }

     document.selection.createRange().text = bbopen + theSelection + bbclose;
     document.Formular.inhalt.focus();
     return;
    }
   else
    {
     document.Formular.inhalt.value += bbopen + bbclose;
     document.Formular.inhalt.focus();
     return;
    }
   storeCaret(document.Formular.inhalt);
  }



function bbstyle(bbnumber) {

	donotinsert = false;
	theSelection = false;
	bblast = 0;

	if (bbnumber == -1) { // Close all open tags & default button names
		while (bbcode[0]) {
			butnumber = arraypop(bbcode) - 1;
      document.Formular.inhalt.value += bbtags[butnumber + 1];
      buttext = eval('document.Formular.addbbcode' + butnumber + '.value');
      eval('document.Formular.addbbcode' + butnumber + '.value ="' + buttext.substr(0,(buttext.length - 1)) + '"');
		}
		imageTag = false; // All tags are closed including image tags :D
    document.Formular.inhalt.focus();
		return;
	}

	if ((clientVer >= 4) && is_ie && is_win)
		theSelection = document.selection.createRange().text; // Get text selection

	if (theSelection) {
		// Add tags around selection
		document.selection.createRange().text = bbtags[bbnumber] + theSelection + bbtags[bbnumber+1];
    document.Formular.inhalt.focus();
		theSelection = '';
		return;
	}

	// Find last occurance of an open tag the same as the one just clicked
	for (i = 0; i < bbcode.length; i++) {
		if (bbcode[i] == bbnumber+1) {
			bblast = i;
			donotinsert = true;
		}
	}

	if (donotinsert) {		// Close all open tags up to the one just clicked & default button names
		while (bbcode[bblast]) {
				butnumber = arraypop(bbcode) - 1;
        document.Formular.inhalt.value += bbtags[butnumber + 1];
        buttext = eval('document.Formular.addbbcode' + butnumber + '.value');
        eval('document.Formular.addbbcode' + butnumber + '.value ="' + buttext.substr(0,(buttext.length - 1)) + '"');
				imageTag = false;
			}
      document.Formular.inhalt.focus();
			return;
	} else { // Open tags

		if (imageTag && (bbnumber != 14)) {		// Close image tag before adding another
      document.Formular.inhalt.value += bbtags[15];
			lastValue = arraypop(bbcode) - 1;	// Remove the close image tag from the list
      document.Formular.addbbcode14.value = "Img";  // Return button back to normal state
			imageTag = false;
		}

		// Open tag
    document.Formular.inhalt.value += bbtags[bbnumber];
		if ((bbnumber == 14) && (imageTag == false)) imageTag = 1; // Check to stop additional tags after an unclosed image tag
		arraypush(bbcode,bbnumber+1);
    eval('document.Formular.addbbcode'+bbnumber+'.value += "*"');
    document.Formular.inhalt.focus();
		return;
	}
  storeCaret(document.Formular.inhalt);
}

// Insert at Claret position. Code from
// http://www.faqts.com/knowledge_base/view.phtml/aid/1052/fid/130
function storeCaret(textEl)
  {
   if(textEl.createTextRange) textEl.caretPos = document.selection.createRange().duplicate();
  }

function chkFormular()
  {
   if(document.Formular.inhalt.value == "")
     {
      alert("Bitte eine Nachricht eingeben");
      //document.Formular.inhalt.value.focus();
      return false;
     }
   return true;
  }

function PrintLoadTime()
  {
   loadtimey            = new Date()
   diff                 = loadtimey.getTime() - loadtimex.getTime()
   newstatus            = "Ladezeit: " + diff/1000 + " sec.";
   window.defaultStatus = newstatus;
  }



var ImageWND = null;

function CloseViewer()
  {
   if(ImageWND)
     {
      ImageWND.close();
     }
  }

function OpenPopup(link)
  {
   var Url = 'picview.php?pic='+link;

   ImageWND = window.open(Url, "Fotoview", "Width=150, Height=150, noscrollbars");
   ImageWND.focus();
  }

function SpezialPopup(Width, Height, Url, Name)
  {
   MeinFenster = window.open(Url, Name, "Width="+Width+", Height="+Width+", scrollbars=yes");
  }

var timerid = 0;

function MaxImageSize()
{
	array = document.getElementsByName("outputimage"); // get array

  all = 0;

	for (i=0; i<array.length; i++)
	{
		if (document.getElementsByName("outputimage")[i].complete)
		{
			// breite verkleinenern
			if (document.getElementsByName("outputimage")[i].width > 350) 
        document.getElementsByName("outputimage")[i].width = 350;

			all ++;
		}
	}

  clearInterval(timerid); // clear old interval

	if (all != array.length)
		timerid = setInterval("MaxImageSize()", 2000); // do again
}

