//var menuHeight=100; show=0; ml=new Array(); mmis=20
var show=0, ml=new Array(), mmis=20, toppar="maindiv", isGlossary=0, abcId=-1;

function foo(){}
function addEL(o,e,f,b){
	b=(b)?b:false;
	if(o.addEventListener)
		o.addEventListener(e,f,false);
	else if(o.attachEvent)
		o.attachEvent('on'+e,f);
}

/*	getElementsByClassName
	Developed by Robert Nyman, http://www.robertnyman.com
	Code/licensing: http://code.google.com/p/getelementsbyclassname/
*/
var getElementsByClassName = function (className, tag, elm){
	if (document.getElementsByClassName) {
		getElementsByClassName = function (className, tag, elm) {
			elm = elm || document;
			var elements = elm.getElementsByClassName(className),
				nodeName = (tag)? new RegExp("\\b" + tag + "\\b", "i") : null,
				returnElements = [],
				current;
			for(var i=0, il=elements.length; i<il; i+=1){
				current = elements[i];
				if(!nodeName || nodeName.test(current.nodeName)) {
					returnElements.push(current);
				}
			}
			return returnElements;
		};
	}
	else if (document.evaluate) {
		getElementsByClassName = function (className, tag, elm) {
			tag = tag || "*";
			elm = elm || document;
			var classes = className.split(" "),
				classesToCheck = "",
				xhtmlNamespace = "http://www.w3.org/1999/xhtml",
				namespaceResolver = (document.documentElement.namespaceURI === xhtmlNamespace)? xhtmlNamespace : null,
				returnElements = [],
				elements,
				node;
			for(var j=0, jl=classes.length; j<jl; j+=1){
				classesToCheck += "[contains(concat(' ', @class, ' '), ' " + classes[j] + " ')]";
			}
			try	{
				elements = document.evaluate(".//" + tag + classesToCheck, elm, namespaceResolver, 0, null);
			}
			catch (e) {
				elements = document.evaluate(".//" + tag + classesToCheck, elm, null, 0, null);
			}
			while ((node = elements.iterateNext())) {
				returnElements.push(node);
			}
			return returnElements;
		};
	}
	else {
		getElementsByClassName = function (className, tag, elm) {
			tag = tag || "*";
			elm = elm || document;
			var classes = className.split(" "),
				classesToCheck = [],
				elements = (tag === "*" && elm.all)? elm.all : elm.getElementsByTagName(tag),
				current,
				returnElements = [],
				match;
			for(var k=0, kl=classes.length; k<kl; k+=1){
				classesToCheck.push(new RegExp("(^|\\s)" + classes[k] + "(\\s|$)"));
			}
			for(var l=0, ll=elements.length; l<ll; l+=1){
				current = elements[l];
				match = false;
				for(var m=0, ml=classesToCheck.length; m<ml; m+=1){
					match = classesToCheck[m].test(current.className);
					if (!match) {
						break;
					}
				}
				if (match) {
					returnElements.push(current);
				}
			}
			return returnElements;
		};
	}
	return getElementsByClassName(className, tag, elm);
};

var ffo = function(e){
	var foc=document.getElementById(this.rel);
	if (!foc) foc=document.getElementById(e.srcElement.getAttribute('rel'));
	if (foc.style.visibility=='visible') {
		foc.style.visibility='hidden';
		foc.style.display='none';
		this.className='foa_r';
	} else {
		foc.style.visibility='visible';
		foc.style.display='block';
		this.className='foa_d';
	}
}

function trim (zeichenkette) {
  return zeichenkette.replace (/^\s+/, '').replace (/\s+$/, '');
}

function liDC(isDC) {
	document.getElementById('logintab').innerHTML=(isDC==1)?'<a href="javascript:liDC(0);" id="tabast">Astellas</a><span id="tabdc">DocCheck<sup>&copy;</sup></span>':'<span id="tabast">Astellas</span><a href="javascript:liDC(1);" id="tabdc">DocCheck<sup>&copy;</sup></a>';
	var f1 = document.getElementById('flogin');
	var link1 = document.getElementById('fgpw');
	var link2 = document.getElementById('gtpw');
	if(isDC==1) {
		f1.action = "https://login.doccheck.com";
		link1.setAttribute("href","https://www.doccheck.com/de/passwordreminder/");
		link2.setAttribute("href","https://www.doccheck.com/de/selectprofession/");
	} else {
		f1.action = "https://"+G_HOSTNAME+"/login.html";
		link1.setAttribute("href","/passwort_vergessen.html");
		link2.setAttribute("href","/registrieren.html");
	}
}

function onf(e) {
	if (this.initStr == this.value) {
		this.value="";
		if (this.chType==1)
			this.type="password";
		this.className=this.actClass;
	}
}

function offf(e) {
	if (trim(this.value) == "") {
		this.value=this.initStr;
		if (this.chType==1)
			this.type="text";
		this.className=this.pasClass;
	}
}

function showMenu(e){
	show=this.menuId;
}

function hideMenu(e){
	show=0;
}

function check(){
	for(var i=0;i<ml.length;i++){
		if(ml[i]==show){
			document.getElementById('mms'+ml[i]).style.visibility="visible";
			if(ml[i]<mmis) document.getElementById('mmi'+ml[i]).className="active";
		} else {
			document.getElementById('mms'+ml[i]).style.visibility="hidden";
			if(ml[i]<mmis) document.getElementById('mmi'+ml[i]).className=document.getElementById('mmi'+ml[i]).oC;
		}
	}
	window.setTimeout("check()", 100);
}

function setPos(whatobj,toobj,relobj) {
	var par = document.getElementById(relobj);
	var t=mmi=document.getElementById(toobj);
	var mms=document.getElementById(whatobj);
	if(mmi.className) mmi.oC=mmi.className;
	var s=par.offsetParent;
	var x=(mms.Xoff)?mms.Xoff:0, y=(mms.Yoff)?mms.Yoff:0;
	y+=t.offsetHeight;
	if(t.offsetParent){
		while(t.offsetParent!=s && t.offsetParent){
			x+=t.offsetLeft;
			y+=t.offsetTop;
			t=t.offsetParent;
		}
	}
	if(x+mms.offsetWidth > par.offsetWidth)
		x = par.offsetWidth-mms.offsetWidth-10;
	mms.style.left=x+'px';
	mms.style.top=y+'px';
}

function sc(e) {
	if(this.value != this.oldVal && trim(this.value) != "") {
		var oid="#"+this.autosel;
		$(oid).load("/test.php", "pattern="+trim(this.value), function(response, status, xhr){window.selrefresh(response, status, xhr);});
	}
}

function selrefresh(response, status, xhr) {
	document.getElementById('autocmpdiv').style.visibility=(document.getElementById('autocomp').options.length > 0)?"visible":"hidden";
}

function selclick() {
	document.getElementById(this.ifi).value=this.options[this.selectedIndex].value;
	document.getElementById('autocmpdiv').style.visibility="hidden";
}

// *********************************************************************** Glossary ************************************************************************************

setAbcId = function (data){
	abcId=data.abcId;
	var abc_letters=getElementsByClassName('abcsel','a',document.getElementById("abc_letters"));
	for(i=0;i<abc_letters.length;i++)
		abc_letters[i].className='abcact';
	document.getElementById(data.letterId).className='abcsel';
	$('#abc_entries').load("/ajax/abc.php",{'tp': topic, 'quest': abcId, 'cmd': 'getLinkList'});
	$('#abc_entry').load("/ajax/abc.php",{'tp': topic, 'quest': abcId, 'cmd': 'getEntry'});
};

function getAbcId(a1) {
	$.get("/ajax/abc.php",{'tp': topic, 'quest': a1, 'cmd': 'getIdByLetter'},setAbcId, "json");
}

function getEntryById(whatID) {
	$.get("/ajax/abc.php",{tp: topic, quest: whatID, cmd: 'getIdById'},setAbcId, "json");
}

function getEntryByName(whatName) {
	$.get("/ajax/abc.php",{tp: topic, quest: whatName, cmd: 'getIdByName'},setAbcId, "json");
}

var getLetterInfo = function(e){
	var letterID;
	if (this.id)
		letterID=this.id;
	else
		letterID=e.srcElement.id;
	getAbcId(letterID);
};

function initGlossary(){
	var abc_letters=getElementsByClassName('abcact','a',document.getElementById("abc_letters"));
	for(i=0;i<abc_letters.length;i++)
		addEL(abc_letters[i],'click',getLetterInfo);
	var abc_letters=getElementsByClassName('abcsel','a',document.getElementById("abc_letters"));
	for(i=0;i<abc_letters.length;i++)
		addEL(abc_letters[i],'click',getLetterInfo);
}

// *********************************************************************** Initpage ************************************************************************************
function initPage(){
// ********* Eigenschaften setzen **********
	if(!document.getElementById)
		return false;
	document.getElementById('searchform').autocomplete="off";
	var t1,t0=document.getElementById('liUser');t0.initStr="Benutzername";t0.chType=0;t0.actClass="labelact";t0.pasClass="labelpas";t0.onfocus=onf;t0.onblur=offf;
	t0=document.getElementById('liPassword');t0.initStr="Passwort";t0.chType=1;t0.actClass="labelact";t0.pasClass="labelpas";t0.onfocus=onf;t0.onblur=offf;
	t0=document.getElementById('searchword');t0.initStr="Suchbegriff";t0.chType=0;t0.actClass="labelact";t0.pasClass="labelpas";t0.onfocus=onf;t0.onblur=offf;
	for(var i=0;i<mmis;i++){
		if(document.getElementById('mms'+i) && document.getElementById('mmi'+i)){
			t0=document.getElementById('mms'+i);t1=document.getElementById('mmi'+i);
			t0.Yoff=5;
			if (navigator.appName.indexOf("Internet Explorer") != -1) t0.Xoff=-1;
			setPos('mms'+i,'mmi'+i,toppar);
			t0.menuId=i;
			t0.onmouseover=showMenu;
			t0.onmouseout=hideMenu;
			t1.menuId=i;
			t1.onmouseover=showMenu;
			t1.onmouseout=hideMenu;
			ml.push(i);
		}		
	}
	i=100;
	if(document.getElementById('mms'+i) && document.getElementById('mmi'+i)){
		t0=document.getElementById('mms'+i);t1=document.getElementById('mmi'+i);
		if (navigator.appName.indexOf("Internet Explorer") != -1) t0.Xoff=-1;
		setPos('mms'+i,'mmi'+i,toppar);
		t0.menuId=i;
		t0.onmouseover=showMenu;
		t0.onmouseout=hideMenu;
		t1.menuId=i;
		t1.onmouseover=showMenu;
		t1.onmouseout=hideMenu;
		ml.push(i);
	}
	setPos('autocmpdiv','searchword',toppar);
	document.getElementById('searchword').oldVal="";
	document.getElementById('searchword').autosel="autocomp";
	document.getElementById('autocomp').ifi="searchword";
	document.getElementById('searchword').onkeyup=sc;
	document.getElementById('autocomp').onchange=selclick;
	window.setTimeout("check()", 100);
	var flyouts=getElementsByClassName('flyout1','div',document.getElementById("maincontent"));
	for(i=0;i<flyouts.length;i++){
		var lines=Math.round((flyouts[i].offsetHeight-13)/23);
		flyouts[i].className='flyout'+lines;
	}
	var flylinks=getElementsByClassName('foa_r','a',document.getElementById("maincontent"));
	for(i=0;i<flylinks.length;i++)
		addEL(flylinks[i],'click',ffo);
	if(isGlossary==1) initGlossary();
}

$(document).ready(function(){
	initPage();
});

