// filename: gen.js
// Creating the Browsercheck Object for Browser Identification
// Distributed under the terms of the GNU Library General Public License
// version 1.01-isi - 2006-02-01
// please document *any* changes exactly!
// author: sheila blogg at idatso dot com


// window.onerror = null

// set window name
window.name = "isi";

// escape from framesets
if (parent.frames && parent.frames.length != 0) top.location.href = document.location.href;
else self.focus();

function pageInit() {
	is = new BrowserCheck();
	
	fenster = new screenObject();
	reloadPage(true);
	adjust();

	setAcronyms('acronym');
	setAcronyms('abbr');
}


function adjust() {

//dotted line, left side

	document.getElementById('bgleft').style.height = fenster.visHeight+"px";
	
	

// visual adjustments for FireFox
	if (is.ff) {
		if (document.getElementById('row2')) document.getElementById('row2').style.marginBottom = '-1px';
		if (document.getElementById('row3')) document.getElementById('row3').style.marginBottom = '-1px';
		//if (document.getElementById('formCountry')) document.getElementById('formCountry').style.width = '20.8em';
	}

	
// visual adjustments for IE

	if (is.ie && is.win) {	
		/*
		if (document.getElementById('formVorname')) {;
		
			contentObj = document.getElementById("contentleft");
			inputObj = contentObj.getElementsByTagName("input");

			for (var j=0; j < inputObj.length; j++){
					inputObj[j].style.height = 1.8+"em";
				}
		}
		
		if (document.getElementById('formCountry')) document.getElementById('formCountry').style.height = '1em';
		if (document.getElementById('formOrt')) document.getElementById('formOrt').style.width = '12.9em';
		if (document.getElementById('formCountry')) document.getElementById('formCountry').style.width = '20.1em';
		if (document.getElementById('formMitteilung')) document.getElementById('formMitteilung').style.width = '25.2em';
		if (document.getElementById('formRemarks')) document.getElementById('formRemarks').style.width = '27.0em';
		if (document.getElementById('copySubmit')) document.getElementById('copySubmit').style.height = '2.5em';
	*/
	/* login */
	/*
		if (document.getElementById('formUsername')) document.getElementById('formUsername').style.height = '1.8em';
		if (document.getElementById('formPassword')) document.getElementById('formPassword').style.height = '1.8em';
*/
	/* lynx view */
		if (document.getElementById('formSuchCopy')) document.getElementById('formSuchCopy').style.height = '1.8em';
	
	/* search */
	//	if (document.getElementById('formURL')) document.getElementById('formURL').style.height = '1.8em';
	
	}
	else if (is.ie && is.mac) {

	}
	if (is.opera) {
/*
		if (document.getElementById('formAnredeFrau')) {
			document.getElementById('formAnredeFrau').style.width = '1.65em';
			document.getElementById('formAnredeFrau').style.marginLeft = '0.3em';
		}

		if (document.getElementById('formAnredeHerr')) document.getElementById('formAnredeHerr').style.width = '1.65em';
		if (document.getElementById('formOrt')) document.getElementById('formOrt').style.width = '12.85em';
		if (document.getElementById('formCountry')) document.getElementById('formCountry').style.width = '18.2em';
		if (document.getElementById('formCallback')) document.getElementById('formCallback').style.width = '1.65em';
		if (document.getElementById('formNewsletter')) document.getElementById('formNewsletter').style.width = '1.65em';
		if (document.getElementById('formMitteilung')) document.getElementById('formMitteilung').style.width = '25.2em';
		if (document.getElementById('formRemarks')) document.getElementById('formRemarks').style.width = '27.0em';
*/

	}


}

// highlightening of navigation if navigated with tab-keys
function navfocus(objekt){
	var addclass = "active";
	if (objekt.className.indexOf("active") != -1) objekt.className = objekt.className + " tabbed ";
	else objekt.className = objekt.className + " " + addclass;
}

function navunfocus(objekt){
	var addclass = "active";
	if (objekt.className.indexOf("tabbed") == -1) objekt.className = "" ;

}


// kill search default on first focus
function kill_default(obj, hasFocus) {
	formDefaults = new Array; formDefaults['anrede'] = ''; formDefaults['vorname'] = 'Vorname'; formDefaults['nachname'] = 'Nachname'; formDefaults['firma'] = 'Firma'; formDefaults['strasse'] = "Stra\xDFe"; formDefaults['plz'] = 'PLZ'; formDefaults['ort'] = 'Ort'; formDefaults['land'] = ''; formDefaults['telefon'] = 'Telefon'; formDefaults['email'] = 'E-Mail'; formDefaults['uri'] = 'http://'; formDefaults['callback'] = ''; formDefaults['newsletter'] = ''; formDefaults['mitteilung'] = 'Ihre Mitteilung'; formDefaults['query_string'] = 'Suchtext'; formDefaults['DEVpasswd'] = ''; formDefaults['DEVuser'] = 'Benutzername';
	if (hasFocus && formDefaults[obj.name] == obj.value) obj.value = '';
	else if (!hasFocus && obj.value == '') obj.value = formDefaults[obj.name];
}



//////////////////////////////
// write acronyms for print //
//////////////////////////////

// set acronym event onlick/onkeydown
function setAcronyms(type) { // type: acronym || abbr
	if (document.getElementsByTagName) {
		var i = document.getElementsByTagName(type).length - 1;
		while (i >= 0) {
			var obj = document.getElementsByTagName(type)[i];
			// alert(obj.getAttribute('title'));
			if (obj.getAttribute && obj.setAttribute) {
				// var title = obj.getAttribute('title');
				obj.onclick = displayAcronyms;
				obj.onkeydown = displayAcronyms;
				obj.onmouseout = killAcronymBox;
				obj.onblur = killAcronymBox;
			}
			i--;
		}
	}
}
// display acronym title
function displayAcronyms(e) {
	obj = this;
	
	if (document.getElementById('acronymBox')) killAcronymBox();
	
	if (e) {
		var x = e.pageX;
		var y = e.pageY + 20;
	}
	else if (event) {
		var x = event.clientX - 2;
		var y = event.clientY + 17;
	}
	else return false;
	
	acronymParagraph = document.createElement('p');
	acronymText = document.createTextNode(obj.getAttribute('title'));
		
	if (!document.getElementById('acronymBox')) {
		acronymBox = document.createElement('div');
		acronymBox.id = 'acronymBox';
		document.body.appendChild(acronymBox);
		document.getElementById('acronymBox').appendChild(acronymParagraph);
		document.getElementById('acronymBox').firstChild.appendChild(acronymText);
	}
	else {
		oldChild = document.getElementById('acronymBox').firstChild.firstChild;
		document.getElementById('acronymBox').firstChild.replaceChild(acronymText, oldChild);
	}
		
	document.getElementById('acronymBox').style.position = 'absolute';
	document.getElementById('acronymBox').style.left = x + 'px';
	document.getElementById('acronymBox').style.top = y + 'px';
	document.getElementById('acronymBox').style.zIndex = 50000;
	document.getElementById('acronymBox').style.display = 'block';
	
	killAcronymTimeout = setTimeout('killAcronymBox()', 5000);
}
var killAcronymTimeout;

function killAcronymBox() {
	if (document.getElementById('acronymBox')) {
		clearTimeout(killAcronymTimeout);
		document.getElementById('acronymBox').style.display = 'none';
	}
}
// screenObject() creates universally accessible screen attribute objects
function screenObject() {
	// bottom edge
	if (window.pageYOffset) {
		this.bottom = window.pageYOffset;}
	else if (document.body && document.body.scrollHeight) {
		this.bottom = document.body.scrollHeight;}
	else {this.bottom = false;}

	// height	
	if (window.outerHeight) {
		this.height = window.outerHeight;}
	else if (document.body && document.body.offsetHeight) {
		this.height = document.body.offsetHeight;}
	else {this.height = false;}
		
	// visible height
	if (is.ie) {
		this.visHeight = (document.body.scrollHeight > document.body.offsetHeight) ? document.body.scrollHeight : document.body.offsetHeight;
	}
	else if (is.opera) { // added 1 Jan 2006 by sheila
		if (document.getElementById('content') && document.getElementById('mittlerespalte') && document.getElementById('rechtespalte')) {
			var contentHeight = (document.getElementById('mittlerespalte').offsetHeight > document.getElementById('rechtespalte').offsetHeight) ? document.getElementById('content').offsetTop + document.getElementById('mittlerespalte').offsetHeight : document.getElementById('content').offsetTop + document.getElementById('rechtespalte').offsetHeight;
		}
		this.visHeight = (contentHeight > document.body.offsetHeight) ? contentHeight : document.body.offsetHeight;
	}
	else if (document.getElementsByTagName && document.getElementsByTagName('html')[0].offsetHeight) {
		this.visHeight = document.getElementsByTagName('html')[0].offsetHeight;
	}
	else {this.visHeight = false;}
		
	// width
	if (window.outerWidth) {
		this.width = window.outerWidth;}
	else if (document.body && document.body.offsetWidth) {
		this.width = document.body.offsetWidth;}
	else {this.width = false;}
		
	// visible width
	if (window.innerWidth) {
		this.visWidth = window.innerWidth;}
	else if (document.body && document.body.clientWidth) {
		this.visWidth = document.body.clientWidth;}
	else {this.visWidth = false;}
		
	// scroll position
	if (window.pageYOffset) {
		this.scrollTop = window.pageYOffset;}
	else if (document.body && document.body.scrollTop) {
		this.scrollTop = document.body.scrollTop;}
	else {this.scrollTop = 0}
}


function disableSubmitButton(id) {
	var disText = 'bitte warten';
		
	document.getElementById(id).value = disText;
	document.getElementById(id).style.color = '#999';
	document.getElementById(id).style.background = '#ddd';
	document.getElementById(id).style.border = '1px solid #666';
	document.getElementById(id).style.MarginTop = '2em';
	if (is.ie && document.getElementById('copySubmitFieldset')) document.getElementById('copySubmitFieldset').style.marginTop = '0.9em';
	if (is.ie && document.getElementById('copySubmitFieldset1')) document.getElementById('copySubmitFieldset1').style.marginTop = '0.9em';
	
	document.getElementById(id).disabled = true;
	document.getElementById(id).style.cursor = 'wait';
}


function reloadPage(init) {
	compareWindow = new screenObject();
	// initialize function on first call
	if (init == true) {
		// set resize event
		window.onresize = reloadPage
	}
	// do something if window size has changed
	else if (compareWindow.visHeight != fenster.visHeight || compareWindow.visWidth != fenster.visWidth) {
		// maximizeColumns();
		setTimeout('document.location.reload()',250);
	}
}


