/* Javascript Funktionen
 * Erzeugt am: 10.08.2006
 * Versionskontrolle: $Id: hrws.js 94 2009-11-18 13:22:59Z heiko $
 */

// geschützte E-Mail Adressen entschlüsseln:
function hrwsMailTo(s) {	//
	var n=0;
	var r="";
	for(var i=0; i < s.length; i++) {
		n=s.charCodeAt(i);
		if (n>=8364) {n = 128;}
		r += String.fromCharCode(n-(1));
	}
	location.href=r;
}

// BB-Code Umsetzung
function setSmiley(aSmile, fld) {
	var ft = document.getElementsByName(fld);
	fld.value += ' ' + aSmile;
}

function dobb(bbelement, bbtext) {
	var bb = new Array();
	bb['URL'] = '[eurl]';
	bb['URL*'] = '[/eurl]';
	bb['f'] = '[b]';
	bb['f*'] = '[/b]';
	bb['k'] = '[i]';
	bb['k*'] = '[/i]';
	bb['u'] = '[u]';
	bb['u*'] = '[/u]';
	bb['Zitat'] = ' [quote]';
	bb['Zitat*'] = '[/quote] ';
	bb['Code'] = ' [code]';
	bb['Code*'] = '[/code] ';
	if (bb[bbelement.value] != '') {
		bbtext.value = bbtext.value + bb[bbelement.value];
		if (bbelement.value.charAt(bbelement.value.length-1) == '*')
			bbelement.value = bbelement.value.slice(0, bbelement.value.length-1);
		else bbelement.value = bbelement.value + '*';
	}
	bbtext.focus();
}

// Page Fade-In/Out
var is_IE = (navigator.userAgent.toLowerCase().indexOf("msie")>-1);
var op_val = 100;
var op_delay = 20;
var op_step = 7;

function op_setop(obj, val) {
	if (is_IE) {
		obj.style.setAttribute("-ms-filter", "progid:DXImageTransform.Microsoft.Alpha(Opacity="+val+")");
		obj.style.filter = "alpha(opacity="+val+")";
	} else {
		obj.style.opacity = val/100;
	}
}

function op_page(down) {
	if (down) {
		if (op_val > 0) {
			op_val-= op_step;
			if (op_val < 0) op_val = 0;
			op_setop(document.getElementById('content'), op_val);
			window.setTimeout("op_page(true)", op_delay);
		} else {
			op_contentexchange();
		}		
	} else {
		if (op_val < 100) {
			op_val+= op_step;
			if (op_val > 100) op_val = 100;
			op_setop(document.getElementById('content'), op_val);
			window.setTimeout("op_page(false)", op_delay);
		}
	}
}

var op_newmaincontent = "";

function op_contentexchange() {
	if (op_newmaincontent == "") { // wait
//		if (op_val == 0) {
//			document.getElementById('main').innerHTML = "<center>Bitte warten ...</center>";
//			op_setop(document.getElementById('main'), (op_val=75));
//		}
		window.setTimeout("op_contentexchange()", op_delay);
	} else {
		if (op_val != 0) {
			op_setop(document.getElementById('content'), (op_val=0));
		}
		document.getElementById('content').innerHTML = op_newmaincontent;
		op_newmaincontent = "";
		window.setTimeout("op_page(false)", op_delay);
	}
}

// Cookie kompatibilität prüfen
var cookieOk = false;
if (navigator.cookieEnabled == true) {
	cookieOk = true;
}


// creating http object
function getHTTPObject() {
	if (typeof XMLHttpRequest != 'undefined') return new XMLHttpRequest();
	try {
		return new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
		try {
			return new ActiveXObject("Microsoft.XMLHTTP");
		} catch (e) {}
	}
	return false;
}
var http = getHTTPObject(); 
var ajaxurl = '/hrwsAjax.server.php';
var ajaxformupdate = false;
var hrwsfade = false;

function genericRequest(query) {
	if (!cookieOk) query += "&cookie=0";
	http.open("GET", ajaxurl + query, true);
	http.onreadystatechange = HandleHttpResponse;
	http.send(null);
	if (hrwsfade && !is_IE) {
		op_page(true);
	}
	return false;
}

// Handling simple script tags (globaly defined function calls etc.)
function handleJSResponse(atext) {
	var expr=/<script.*?>([\s\S]*?)<\/script>/gmi;
	var result=expr.exec(atext);
	if (result != null) {
		if (result[1]) eval(result[1]);
	}
	while (result=expr.exec(atext)) { // execute at least twice
		if (result[1]) eval(result[1]);
	}
}

// Handling a response
function HandleHttpResponse() {
	if (http.readyState == 4) {
		var response = http.responseText;
		if (ajaxformupdate == true) {
			if (response.indexOf('||') != -1) { // Feldnamen erkannt
				var update = new Array();
				update = response.split('||');
				for (i=0; i<update.length; i+=2) {
					document.getElementsByName(update[i])[0].value = update[i+1];
				}
			}
			ajaxformupdate = false;
		} else {
			if (response.indexOf('||') != -1) { // mehrere Inhalte...
				var update = new Array();
				update = response.split('||');
				for (i=0; i<update.length; i+=2) {
					if (hrwsfade && !is_IE && (update[i] == 'content')) {
						op_newmaincontent = update[i+1];
						hrwsfade = false;
					} else {
						document.getElementById(update[i]).innerHTML = update[i+1];
					}
					handleJSResponse(update[i+1]);
				}
			} else {
				if (hrwsfade && !is_IE) {
					op_newmaincontent = response;
					hrwsfade = false;
				} else {
					document.getElementById('content').innerHTML = response;
				}
				handleJSResponse(response);
			}
		}
	}
}

function hrwsAjax(page, site) {
	var spage = page.split('&');
	hrwsfade = true;
	window.scrollTo(0,0);
	if ((site == null) || (site == "")) site = "index";
	if ((site == "index") && (location.pathname.substr(location.pathname.length-3,3)=="htm") && (page != "index")) {
		return genericRequest("?site=" + site + "&page=" + page);
	}
	if (((location.pathname == "/") || (location.pathname == "/index.php")) && (location.search=="")) {
		return genericRequest("?site=" + site + "&page=" + page);
	}
	if ((location.pathname == "/"+site+".php") && ((location.search == "") || (location.search == "?page="+spage[0]))) {
		return genericRequest("?site=" + site + "&page=" + page);
	} else return true;
}

function hrwsAjaxPost(page, site) {
	var theform = document.forms[page];
	if ((site == null) || (site == "")) site = "index";
	var query = "?site="+site+"&page="+page;
	var i=0;
	while(theform.elements[i]) {
		if (theform.elements[i].name != "" && theform.elements[i].type != "button") {
			if (theform.elements[i].type == "radio") {
				if (theform.elements[i].checked)
					query += "&" + theform.elements[i].name + "=" + escape(theform.elements[i].value);
			} else if (theform.elements[i].type == "checkbox") {
				if (theform.elements[i].checked)
					query += "&" + theform.elements[i].name + "=" + escape(theform.elements[i].value);
			} else {
				query += "&" + theform.elements[i].name + "=" + escape(theform.elements[i].value);
			}
		} else {
			if (theform.elements[i].type == "submit") {
				theform.elements[i].value = "... loading ...";
			}
		}
		theform.elements[i].disabled = true;
		i++;
	}
	hrwsfade = true;
	window.scrollTo(0,0);
	query = query.replace(/\+/g, "%2B"); // preserve + sign
	genericRequest(query);
	return false;
}

var op_togval = 0;
function hrwsToggle(elem) {
	var el = document.getElementById(elem);
	if (el) {
		if (el.style.display != 'block') { // anzeigen
			if (!is_IE) {
				op_setop(el, (op_togval=0));
				el.style.display = 'block';
				op_Toggle(false, elem);
			} else el.style.display = 'block';
		} else { // verstecken
			if (is_IE) el.style.display = 'none';
			else {
				op_togval=100;
				op_Toggle(true, elem);
			}
		}
		return false;
	}
}
function op_Toggle(down, elem) {
	var el = document.getElementById(elem);
	if (down) {
		if (op_togval > 0) {
			op_togval-= op_step;
			if (op_togval < 0) op_togval = 0;
			op_setop(el, op_togval);
			window.setTimeout("op_Toggle(true, '"+elem+"')", op_delay);
		} else {
			el.style.display = 'none';
		}		
	} else {
		if (op_togval < 100) {
			op_togval+= op_step;
			if (op_togval > 100) op_togval = 100;
			op_setop(el, op_togval);
			window.setTimeout("op_Toggle(false, '"+elem+"')", op_delay);
		}
	}
}

var op_bodyval = 100;
var op_target = "";
function hrwsBody(target) {
	op_bodyval = 100;
	op_target = target;
	op_Body();
	return false;
}
function op_Body() {
	var el = document.getElementsByTagName('body')[0];
	if (op_bodyval > 0) {
		op_bodyval -= op_step;
		if (op_bodyval < 0) op_bodyval = 0;
		op_setop(el, op_bodyval);
		window.setTimeout("op_Body()", op_delay);
	} else {
		location.href = op_target;
		op_target = "";
	}
}

var si_title = "";
var si_pics = new Array();
var si_path = "";
var si_normal = "";
function hrwsShowIt(id) {
	if (si_pics[id]) {
		var file = si_pics[id][0];
		var size = si_pics[id][1];
		if (file.length == 1) {
			file = si_pics[id];
			size = si_normal;
		} else if (size == null || size == "") size = si_normal;
		Fenster = open(si_path + file, si_title, size);
		Fenster.focus();
	}
}