// ################################################################################
// Name:         Javascript Library 
// Beschreibung: Bibliothek mit Javascript-Grundfunktionen fuer Browser ab Version 3.0
// Version:      1.3
// Autor:        Roland Brueggemann, via one! multimedia GmbH
// Benoetigt:    -
// ################################################################################


// ################################################################################
// Funktionsliste
//
//   Grafiken
//     imgNew()
//     imgChange()
//     imgPreload()
//
//   Fenster
//     newWindow()
//     ab 1.4 newCenteredWindow()
//     ab 1.4 newFullscreenWindow()
//     windowMaximize()
// 
//   URL
//     gotoUrl()
//     selectUrl()
//
//   etc.
//     getRidOfFrames()
// ################################################################################

var xmlHttp;

function checknick(str){
    if (str.length==0){
        AJS.getElement('nook').style.display = 'none';
    	return
    }
    xmlHttp=GetXmlHttpObject()
    if (xmlHttp==null){
        alert ("Browser does not support HTTP Request")
        return
    }
    var url="/messagecenter/test.php"
    url=url+"?nick="+str
    AJS.getElement('indicator').style.display = 'block';
    
    xmlHttp.onreadystatechange=stateChanged_checkusername
    xmlHttp.open("GET",url,true)
    xmlHttp.send(null)
}
function stateChanged_checkusername(){
    if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){
    	if(xmlHttp.responseText == "ok") {
    		AJS.getElement('ok').style.display = 'block';
    		AJS.getElement('nook').style.display = 'none';
    	} else {
    		AJS.getElement('ok').style.display = 'none';
    		AJS.getElement('nook').style.display = 'block';
    	}
        AJS.getElement('indicator').style.display = 'none';
    }
}



//

///////////////////////////////////////////////////////////////////////////////////
function GetXmlHttpObject(){
    var objXMLHttp=null
    if (window.XMLHttpRequest){
        objXMLHttp=new XMLHttpRequest()
    }else if (window.ActiveXObject){
        objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
    }
    return objXMLHttp
}





//////////////////// Buddys in message machen

function addBuddyInput() {
	var liste = AJS.getElement('buddyliste');
	var feld = AJS.getElement('usernick');
	if (liste.selectedIndex != 0) {
	
		newRecip = liste.options[liste.selectedIndex].value;
		if (feld.value.indexOf(newRecip) == -1) {
			//if (recipField.value == "")
				feld.value = newRecip;
				checknick(newRecip);
			//else
			//	recipField.value +=  "; " + newRecip;
		} else {
			alert("??? ? ??????!");
			
		}
		
	}
		
}








// ##################################################
// Funktion:     imgNew()
// Beschreibung: Interne Funktion zur Erstellung ein neues Image-Objekts fuer die uerbergebene Grafikdatei
// Autor:        Roland Brueggemann
// Parameter:    
//    file       Dateiname des Bildes (vollstaendiger Pfad)
// Rueckgabe:    Inhalt des Image-Objektes
// Aufruf:       imgNew("bilder/test.gif");
// ##################################################

function imgNew(arg) {

	if (document.images) {
		rslt = new Image();
		rslt.src = arg;
		return rslt;
	}
}

// ##################################################
// Funktion:     imgChange()
// Beschreibung: Tauscht Inhalt einer Grafik aus (Bildwechsel)
// Autor:        Roland Brueggemann
// Parameter (abwechselnd):
//               Bild-"Name" der zu aendernen Grafik
//               Dateiname des Bildes (vollstaendiger Pfad)
// Rueckgabe:    -
// Aufruf:       imgChange("button","bilder/button.gif");
// ##################################################

function imgChange() {

	if (document.images) {
		for (var i=0; i<imgChange.arguments.length; i+=2) {
			document[imgChange.arguments[i]].src = imgChange.arguments[i+1];
		}
	}
}

// ##################################################
// Funktion:     imgPreload()
// Beschreibung: Laedt Bild in den Speicher, um verzoegertes Nachladen zu verhindern
// Autor:        Roland Brueggemann
// Parameter:
//    file       Dateiname des Bildes (vollstaendiger Pfad)
// Rueckgabe:    -
// Aufruf:       imgPreload("bilder/test.gif");
// ##################################################

var imgPreloadCount = 0;
imgPreloadName = new Array();

function imgPreload(file) {

	if (document.images) {
		imgPreloadName[imgPreloadCount] = imgNew(file);
		imgPreloadCount ++;
	}
}

// ##################################################
// Funktion:     newWindow()
// Beschreibung: Oeffnet neues Browserfenster mit angegebener URL
// Autor:        Roland Brueggemann
// Parameter:
//    url        Adresse, die aufgerufen werden soll
//    width      Breite des Fensters
//    height     Hoehe des Fensters
//    options    Fenster-Eigenschaften
//    name       Name des Fensters
//    posX       X-Position des neuen Fensters
//    posY       Y-Position des neuen Fensters
// Rueckgabe:    -
// Aufruf:       newWindow("http://www.viaone.de",780,450);
// ##################################################

function newWindow(url,width,height,options,name,posX,posY) {

	if (!url) return false;
	if (!width) width = 900;
	if (!height) height = 300;
	if (!options) options = "scrollbars=yes,menubar=no,toolbar=no,location=no,status=yes,resizable=yes";
	if (!posX && posX != "0") posX = 20;
	if (!posY && posX != "0") posY = 20;
	if (!name) name = "extWindow";

	window.open( url, name, "width=" + width + ",height=" + height + ",screenX=" + posX + ",screenY=" + posY + ",left=" + posX + ",top=" + posY + "," + options );
}



// ##################################################
// Funktion:     windowMaximize()
// Beschreibung: Maximiert das Broserfenster, in dem die Funktion aufgerufen wurde
// Autor:        Roland Brueggemann
// Parameter:    -
// Rueckgabe:    -
// Aufruf:       windowMaximize()
// ##################################################

function windowMaximize() {

	if (window.screen){
		if (document.all || document.layers) { 
			self.moveTo(0,0); 
			self.resizeTo(screen.availWidth,screen.availHeight)
		}
	}
}

// ##################################################
// Funktion:     gotoUrl()
// Beschreibung: Wechselt zur angegebenen URL (immer im href, nicht als onclick angeben!)
// Autor:        Roland Brueggemann
// Parameter (abwechselnd):
//               URL, die aufgerufen werden soll
//               Framename, in welchem die URL aufgerufen werden soll
//                  "this","": 	   Seite wird in aktuellem Frame geoeffnet
//                  "top":         Seite wird in aktuellem Fenster geoeffnet
//                  "blank","new": Seite wird in neuem Fenster geoeffnet
//                  sonst:         Seite wir in angegebem Frame geoeffnet (gleiches Frameset!)
// Rueckgabe:    -
// Aufruf:       gotoUrl("http://www.viaone.de","top");
// ##################################################

function gotoUrl() {

	for (var i=0; i<gotoUrl.arguments.length; i+=2) {
		url = gotoUrl.arguments[i];
		target = gotoUrl.arguments[i+1];

		if (url) {
			if (!target || target == "this") {
				this.location.href = url;
			}
			else if (target == "top") {
				top.location.href = url;
			}
			else if (target == "blank" || target == "new") {
				window.open(url);
			}
			else if (parent.frames[target]) {
				parent.frames[target].location.href = url;
			}
			else {
				alert("Der angegebene Frame " + target + " existiert nicht!");
			}
		} else {
			alert("Bitte geben Sie eine URL an!");
		}
	}
}

// ##################################################
// Funktion:     selectUrl(formname,selectname)
// Beschreibung: Wechselt zur ausgwaehlten Url einer beliebigen Selectbox
// Autor:        Roland Brueggemann
// Parameter: 
//    formname   Name des Formulares der Selectbox
//    selectname Name der Selectbox
// Rueckgabe:    -
// Aufruf:       selectUrl("meinFormular","meineSelectbox");
// ##################################################

function selectUrl(formname,selectname) {

	index = document[formname][selectname].selectedIndex; 
	url = document[formname][selectname].options[index].value; 
	
	if (url != "") {
		this.location.href = url; 
	}
}

// ##################################################
// Funktion:     getRidOfFrames()
// Beschreibung: Oeffnet aktuelle URL im Top-Frame
// Autor:        Roland Brueggemann
// Parameter:    -
// Rueckgabe:    -
// Aufruf:       getRidOfFrames()
// ##################################################

function getRidOfFrames() {

	if(top.frames.length > 0) {
		top.location.href = self.location;
	}
}

// ##################################################
// Funktion:     translate()
// Beschreibung: Übersetzt Latanische zeichen in Russische
// Autor:        -
// Parameter:    -
// Rueckgabe:    -
// Aufruf:       translate()
// ##################################################

var d = 2;
var focused = null;

function translate() {

var msg = document.send.message.value;

d = d == 2 ? 1 : 2;

var msg_part = new Array();
var current_part = '';
var bracket_open = false;

for (i = 0; i < msg.length; i++) {

chr = msg.charAt(i);

if (chr == '[' || chr ==':') {

bracket_open = true;
// msg_part.push(current_part);
msg_part[msg_part.length] = current_part;
current_part = chr;

} else if (chr == ']' || chr ==':' && bracket_open) {

bracket_open = false;
current_part += chr;
//msg_part.push(current_part);
msg_part[msg_part.length] = current_part;
current_part = '';

} else {

current_part += chr;

} // if

} // for

msg_part.push(current_part);

if (d == 1) {

var search_cap = new Array(/S(CH|ch)/g,/W/g, /[YJ][Oo]/g, /C[Hh]/g, /S[Hh]/g, /(E[Hh]|JE)/g, /[YJ][Uu]/g, /[YJ][Aa]/g, /Z[Hh]/g, /(#|'')/g, /A/g, /B/g, /[VW]/g, /G/g, /D/g, /E/g, /Z/g, /I/g, /J/g, /K/g, /L/g, /M/g, /N/g, /O/g, /P/g, /R/g, /S/g, /T/g, /U/g, /F/g, /[HX]/g, /C/g, /'/g, /Y/g);
var replace_cap = new Array("Ù","Â", "¨", "×", "Ø", "Ý", "Þ", "ß", "Æ", "Ú", "À", "Á", "Â", "Ã", "Ä", "Å", "Ç", "È", "É", "Ê", "Ë", "Ì", "Í", "Î", "Ï", "Ð", "Ñ", "Ò", "Ó", "Ô", "Õ", "Ö", "Ü", "Û");

var search_small = new Array(/sch/g,/w/g,/[yj]o/g, /ch/g, /sh/g, /(eh|je)/g, /[yj]u/g, /[yj]a/g, /zh/g, /(#|'')/g, /a/g, /b/g, /[vw]/g, /g/g, /d/g, /e/g, /z/g, /i/g, /j/g, /k/g, /l/g, /m/g, /n/g, /o/g, /p/g, /r/g, /s/g, /t/g, /u/g, /f/g, /[hx]/g, /c/g, /'/g, /y/g, /#/);
var replace_small = new Array("ù","â", "¸", "÷", "ø", "ý", "þ", "ÿ", "æ", "ú", "à", "á", "â", "ã", "ä", "å", "ç", "è","é", "ê", "ë", "ì", "í", "î", "ï", "ð", "ñ", "ò", "ó", "ô", "õ", "ö", "ü", "û", "ú");

} if (d == 2) {

var search_cap = new Array(/Ù/g,/Â/g,/¨/g,/×/g,/Ø/g,/Ý/g,/Þ/g,/ß/g,/Æ/g,/À/g,/Á/g,/Â/g,/Ã/g,/Ä/g,/Å/g,/Ç/g,/È/g,/É/g,/Ê/g,/Ë/g,/Ì/g,/Í/g,/Î/g,/Ï/g,/Ð/g,/Ñ/g,/Ò/g,/Ó/g,/Ô/g,/Õ/g,/Ö/g,/Ü/g,/Û/g,/Ú/);
var replace_cap = new Array("SCH","W","JO","CH","SH","JE","JU","JA","ZH","A","B","V","G","D","E","Z","I","J","K","L","M","N","O","P","R","S","T","U","F","X","C","'","Y","''");

var search_small = new Array(/ù/g,/â/g,/¸/g,/÷/g,/ø/g,/ý/g,/þ/g,/ÿ/g,/æ/g,/à/g,/á/g,/â/g,/ã/g,/ä/g,/å/g,/ç/g,/è/g,/é/g,/ê/g,/ë/g,/ì/g,/í/g,/î/g,/ï/g,/ð/g,/ñ/g,/ò/g,/ó/g,/ô/g,/õ/g,/ö/g,/ü/g,/û/g,/ú/);
var replace_small = new Array("sch","w","jo","ch","sh","je","ju","ja","zh","a","b","v","g","d","e","z","i","j","k","l","m","n","o","p","r","s","t","u","f","x","c","'","y","''");

}

for (j = 0; j < msg_part.length; j++) {

if (msg_part[j] != '') {

for (k=0; k < search_cap.length; k++) {

msg_part[j] = msg_part[j].replace(search_small[k],replace_small[k]);
msg_part[j] = msg_part[j].replace(search_cap[k],replace_cap[k]);

}

}

j++;

} // for

msg = msg_part.join("");

document.send.message.value=msg;


}
function insert(myValue) {
  //IE support
  if (document.selection) {
    document.form.message.focus();
    sel = document.selection.createRange();
    sel.text = myValue;
 }
  //MOZILLA/NETSCAPE support
  else if (document.form.message.selectionStart || document.form.message.selectionStart == '0') {
    var startPos = document.form.message.selectionStart;
    var endPos = document.form.message.selectionEnd;
    document.form.message.value = document.form.message.value.substring(0, startPos)
                  + myValue 
                  + document.form.message.value.substring(endPos, document.form.message.value.length);
				 
  } else {
    document.form.message.value += myValue;
	 
  }
  document.form.message.focus();
}


// ##################################################
// Funktion:     setCheckboxes(the_form, the_boxes, do_check) 
// Beschreibung: Checkboxen markieren
// Autor:        ---
// Parameter:    ---
// Rueckgabe:    -
// Aufruf:       setCheckboxes(the_form, the_boxes, do_check) 
// ##################################################

<!-- 

function setCheckboxes(the_form, the_boxes, do_check) {
    
	var formelements = (typeof(document.forms[the_form].elements) != 'undefined') ? document.forms[the_form].elements : 0;
				  	
	var count_formelements = (typeof(formelements.length) != 'undefined') ? formelements.length : 0;
	
	if (count_formelements) {
   	    for (var i = 0; i < count_formelements; i++) {
			if (!the_boxes || the_boxes == formelements[i].name) {
				formelements[i].checked = do_check;
			}
        }	
	}
}


// ##################################################
// Funktion:     FotoWindow()
// Beschreibung: ---
// Autor:        www.web-toolbox.net , W. Jansen
// Parameter:    Als Übergabeparameter wird die bildquelle,breite und höhe übergeben
// Rueckgabe:    -
// Aufruf:       FotoWindow('foto-gross.jpg','480','360')
// ##################################################

function FotoWindow(bildurl,b,h,bildname)
{
var eigenschaften,sbreite,shoehe,fenster,b,h;

x = (screen.width)-400;
y = 100;

eigenschaften="left="+x+",top="+y+",screenX="+x+",screenY="+y+",width="+b+",height="+h+",menubar=no,toolbar=no";

fenster=window.open("","",eigenschaften);
fenster.focus();
fenster.document.open();
with (fenster) {
  document.write('<html><head>');
  document.write('<scr' + 'ipt type="text/javascr' + 'ipt" language="JavaScr' + 'ipt">');
  document.write("document.onmousedown=click ");
  document.write('</scr' + 'ipt>');
  document.write('<title>'+ bildname +'</title></head>');
  document.write('<' + 'body onblur="window.close();" ');// bei Focusverlust schliessen
  document.write('marginwidth="0" marginheight="0" leftmargin="0" topmargin="0">');
  document.write('<img src="'+ bildurl +'"border="0">');
  document.write('</body></html>');
  fenster.document.close();
}
}
//########################################################################
var IWIDTH=250  // Tip box width
var ns4         // Are we using Netscape4?
var ie4         // Are we using Internet Explorer Version 4?
var ie5         // Are we using Internet Explorer Version 5 and up?
var kon         // Are we using KDE Konqueror?
var x,y,winW,winH // Current help position and main window size
var idiv=null   // Pointer to infodiv container
var px="px"     // position suffix with "px" in some cases

function nsfix(){setTimeout("window.onresize = rebrowse", 2000);}

function rebrowse(){window.location.reload();}

function hascss(){ return gettip('infodiv')?true:false }

function infoinit(){
 ns4=(document.layers)?true:false, ie4=(document.all)?true:false;
 ie5=((ie4)&&((navigator.userAgent.indexOf('MSIE 5')>0)||(navigator.userAgent.indexOf('MSIE 6')>0)))?true:false;
 kon=(navigator.userAgent.indexOf('konqueror')>0)?true:false;
 x=0; y=0; winW=800; winH=600;
 idiv=null;
 document.onmousemove = mousemove;
 if(ns4&&document.captureEvents) document.captureEvents(Event.MOUSEMOVE);
 if(ns4||kon){ nsfix() }
 if(ns4) { px=""; }
}

function untip(){
 if(idiv) idiv.visibility=ns4?"hide":"hidden";
 idiv=null;
}

function gettip(name){return (document.layers&&document.layers[name])?document.layers[name]:(document.all&&document.all[name]&&document.all[name].style)?document.all[name].style:document[name]?document[name]:(document.getElementById(name)?document.getElementById(name).style:0);}

// Prepare tip boxes, but don't show them yet
function maketip(name,title,text){
 if(hascss()) document.write('<div id="'+name+'" name="'+name+'" style="position:absolute; visibility:hidden; z-index:20; top:0; left:0;"><table width='+IWIDTH+' border=0 cellpadding=1 cellspacing=0 bgcolor="#6E84C2"><tr><td class="tiptd"><table width="100%" border=0 cellpadding=0 cellspacing=0><tr><td class="class2" align="center"><b>'+title+'</b></td></tr></table><table width="100%" border=0 cellpadding=2 cellspacing=4 bgcolor="#E4EAF3"><tr><td nowrap="nowrap" >'+text+'</td></tr></table></td></tr></table></div>'+"\n");
}

function tip(name) {
 if( hascss() ) {
  if(idiv) untip();
  idiv=gettip(name);
  if(idiv){
   winW=(window.innerWidth)? window.innerWidth+window.pageXOffset-16:document.body.offsetWidth-20;
   winH=(window.innerHeight)?window.innerHeight+window.pageYOffset  :document.body.offsetHeight;
   if( x <= 0 || y <= 0 ) { // konqueror can't get mouse position
    x=(winW-IWIDTH)/2+(window.pageXOffset?window.pageXOffset:0); y=(winH-50)/2+(window.pageYOffset?window.pageYOffset:0); // middle of window
   }
   showtip();
  }
 }
}

function showtip() {
 idiv.left=(((x+260)<winW)?x+12:x-255)+px;
 idiv.top=(((y+250)<winH)?y:y-80)+px;
 idiv.visibility=ns4?"show":"visible";
}

function mousemove(e) {
 if(e) {
  x=e.pageX?e.pageX:e.clientX?e.clientX:0;
  y=e.pageY?e.pageY:e.clientY?e.clientY:0;
 } else if(event) {
   x=event.clientX; y=event.clientY;
  } else { x=0; y=0; }
 if(document.documentElement) {
    x+=document.documentElement.scrollLeft;
    y+=document.documentElement.scrollTop;
  }
 if(idiv) showtip();
}

// Initialize after loading the page
window.onload=infoinit;


/////////////////////////////////////////////
var GB_ANIMATION = false;
var GB_IMG_DIR = "/images/greybox/";

      //Clicking on the transparent overlay closes the GreyBox window?
      var GB_overlay_click_close = true;

      //Demo change headline - look more in demoiframe
      //$ function is like getElementById
      function changeHeadline(text){
        $('headline').innerHTML = text;
      }
  
function addPic(picName)
{
	document.forms[0].message.value = document.forms[0].message.value + picName;
	document.forms[0].message.focus();
}

<!--

function na_open_window(name, url, left, top, width, height, toolbar, menubar, statusbar, scrollbar, resizable)
{
  toolbar_str = toolbar ? 'yes' : 'no';
  menubar_str = menubar ? 'yes' : 'no';
  statusbar_str = statusbar ? 'yes' : 'no';
  scrollbar_str = scrollbar ? 'yes' : 'no';
  resizable_str = resizable ? 'yes' : 'no';
  window.open(url, name, 'left='+left+',top='+top+',width='+width+',height='+height+',toolbar='+toolbar_str+',menubar='+menubar_str+',status='+statusbar_str+',scrollbars='+scrollbar_str+',resizable='+resizable_str);
}

	
function aendereGroesse(breite, hoehe) {
	document.getElementById("kalle").style.width = breite;
	document.getElementById("kalle").style.height = hoehe;
}

// -->

<!-- Begin
var checkflag = "false";
function check(field) {
	if (checkflag == "false") {
		for (i = 0; i < field.length; i++) {
			field[i].checked = true;}
		checkflag = "true";
		return " keine "; }
	else {
		for (i = 0; i < field.length; i++) {
			field[i].checked = false; }
		checkflag = "false";
		return " alle "; }
}
//  End -->



function isLinked(node) {
	do {
		node = node.parentNode;
		if (node.nodeName == 'A') return true;
	}
	while (node.nodeName != 'TD' && node.nodeName != 'BODY');
		
	return false;
}
// -->



function refreshSession ()
{
	
new Ajax.PeriodicalUpdater('pn_menu', 'http://www.top10ka.de/new_session.php', {
method: 'get', frequency: 60*5
});
}