 /* 1220024303 */
/* File http://www.ibft.at/ibft/ibft.js
 *
 * All IBFT-JS are in this file. You can use IBFT without JS
 * as well but this thingy makes things more easy and pretty.
 * 
 * All code is (C) Simon Laburda 2004-2008 unless noted otherwise.
 * If you want to use code from this file for your own project 
 * please ask me first. Most likely I will say yes. :-)
 */

// first of all, set up our environment
try {
	ibftroot.substring(0,0);
	try { ibftsroot.substring(0,0); } catch(e) {
		ibftsroot = ibftroot;
	}
	try { dataroot.substring(0,0); } catch(e) {
		dataroot = ibftroot + "/ibft";
	}
	try { mediaroot.substring(0,0); } catch(e) {
		mediaroot = dataroot + "/media";
	}
	try { langroot.substring(0,0); } catch(e) {
		langroot = ibftsroot + "/en";
	}
} catch(e) {
	alert("Error - System roots not set! Tell the admin");
}

// go somewhere. used in conjunction with a meta for non-js browsers
function ibftstart() {
	top.location.href = langroot + "/start";
}
function ibftgoto(whereto) {
	top.location.href = whereto;
}

function dogoogle() {
	document.write('<!-- SiteSearch Google --><form class="protected" style="font-size:50%; margin:0px; padding:0px;" method="get" action="http://www.google.at/custom" target="google_window"><table border="0" bgcolor="#ffffff" style="margin:0px; padding:0px;"><tr><td nowrap="nowrap" valign="top" align="left" height="32"><a href="http://www.google.com/"><img src="http://www.google.com/logos/Logo_25wht.gif" border="0" alt="Google" align="middle" /></a></td><td nowrap="nowrap"><input type="hidden" name="domains" value="www.ibft.at"></input><input class="cooltext" type="text" name="q" size="16" maxlength="255" value="" /></td><td><input class="coolradio" type="radio" name="sitesearch" value=""></input><font size="-1" color="#000000">Web</font><br /><input class="coolradio" type="radio" name="sitesearch" value="www.ibft.at" checked="checked" /><font size="-1" color="#000000">www.ibft.at</font></td><td><input class="coolbtn" type="submit" name="sa" value="Suchen" /></td></tr></table><input type="hidden" name="client" value="pub-8921871325528620"></input><input type="hidden" name="forid" value="1"></input><input type="hidden" name="ie" value="UTF-8"></input><input type="hidden" name="oe" value="UTF-8"></input><input type="hidden" name="flav" value="0000"></input><input type="hidden" name="sig" value="ZWqMHg_IIFAURtJO"></input><input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFFFFF;LBGC:336699;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;LH:50;LW:157;L:http://www.ibft.at/ibft/ibft.png;S:http://www.ibft.at/;FORID:1;"></input><input type="hidden" name="hl" value="de"></input></form><!-- SiteSearch Google -->');
}

// if(!$nofirefoxad && strpos(getenv('HTTP_USER_AGENT'),"MSIE")) {
function try_conversion_to_the_good_side() {
	document.write('<script type="text/javascript">google_ad_client = "pub-8921871325528620"; google_ad_width = 120; google_ad_height = 240; google_ad_format = "120x240_as_rimg"; google_cpa_choice = "CAAQ_abzzwEaCGBfcWzUew29KMWz93M";</script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>');
}

function dosidead() {
	document.write('<script type="text/javascript">google_ad_client = "pub-8921871325528620"; google_ad_width = 120; google_ad_height = 600; google_ad_format = "120x600_as"; google_ad_type = "text"; google_ad_channel =""; google_color_border = "FFFFCD"; google_color_link = "008100"; google_color_bg = "EEEEEE"; google_color_text = "000000"; google_color_url = "0000FF";></script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>');
}

function doresultad() {
	document.write('<script type="text/javascript">google_ad_client = "pub-8921871325528620"; google_ad_slot = "8380441908"; google_ad_width = 728; google_ad_height = 15;</script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>');
}


// called by onload=""
// gets rid of possible top-level frames and unprotects mail adresses
function ibft_onload() {
/*	if(self != top) {
		var adr = location.href;
		top.location.replace(adr);
	}*/
	for(i=1;aele=document.getElementById("smail"+i);i++) {
		maddr = aele.innerHTML.replace(/ <font>@ <\/font>/g,'@').replace(/ <FONT size=\+0>@ <\/FONT>/g,'@').replace(/<i>.<\/i>/g,'.').replace(/<I>.<\/I>/g,'.');
		aele.innerHTML = "<a href=\"mailto:" + maddr + "\">" + maddr + "</a>";
	}
}

function ibft_onloadcomplete() {
}


// checks
function delcheck() {
	return confirm("Do you really want to delete the selected entry?");
}
function mediadelcheck() {
	return confirm("Do you really want to delete this file?");
}
function cancelcheck() {
	return confirm("Do you really want to leave the assistent and delete all entered data?");
}

// hasflash()
// coded with little help from http://www.quirksmode.org/js/flash.html
function hasflash() {
	if (navigator.plugins && navigator.plugins.length) {
			if(navigator.plugins["Shockwave Flash"])
				return true;
			if(navigator.plugins["Shockwave Flash 2.0"])
				return true;
	}
	if (navigator.mimeTypes && navigator.mimeTypes.length) {
			x = navigator.mimeTypes['application/x-shockwave-flash'];
			if (x && x.enabledPlugin)
					return true;
	}
	return false;
}

// basic check for extended javascripts
function hasdhtml() {
	if(document == null) return false;	// should never happen
	if(document.firstChild == null) return false;
	if(document.getElementById("content") == null) return false;
		// todo: maybe some more checks
	return true;
}


// sfl subfunctions
function sfl_show(what) {
	var warr = what.split(",");
	for(i=0;i<warr.length;i++)
		document.getElementById("sfl_r" + warr[i]).style.display = "";
}

function sfl_hide(what) {
	var warr = what.split(",");
	for(i=0;i<warr.length;i++)
		document.getElementById("sfl_r" + warr[i]).style.display = "none";
}

// text/grph search functions
regs = Array();

function remake() {
	erg = "";
	for(i=0;i<regs.length;i++)
		if(regs[i])
			erg = erg + "," + regs[i];
	document.forms[0].elements[0].value = erg;
}

// you may wonder why there is a setTimeout()? easy: to work around a konqueror (and probably safari too) problem
var regs;
function txtsel_doreg(reg) {
	ison = false;
	for(i=0;i<regs.length;i++)
		if(regs[i] == reg) {
			ison = true;
			break;
		}
	if(ison) {
		document.getElementById("stat" + reg).src = "";
		document.getElementById("stat" + reg).src = mediaroot + "/x.gif";
		setTimeout('document.getElementById("stat' + reg + '").src = mediaroot + "/nein.png"', 100);
		for(i=0;i<regs.length;i++)
			if(regs[i] == reg)
				regs[i] = "";
	} else {
		document.getElementById("stat" + reg).src = "/ibft/media/ja.png";
		setTimeout('document.getElementById("stat' + reg + '").src = mediaroot + "/ja.png"', 100);
		for(i=0;i<regs.length;i++)
			if(regs[i] == "") {
				regs[i] = reg;
				remake();
				return false;
			}
		regs.push(reg);
	}
	remake();
	return false;
}

function reform() {
	document.forms[0].submit();
}

function formsave_action() {
	if(document.getElementById("saveformframe")) {
//		alert(document.forms[0].target);
//		alert(document.forms[0].target + " " + document.forms[0].submit);
		document.forms[0].target = "saveformframe";
		document.forms[0].submit();
	}
}
function formsave_repair() {
//	alert("repairing " + document.forms[0].target);
	if(document.getElementById("saveformframe")) {
		document.forms[0].target = "";
	}
}

function formsave_implement() {
	document.write("<iframe src=\"" + langroot + "/null\" name=\"saveformframe\" id=\"saveformframe\" width=\"1\" height=\"1\" style=\"display: none; position: absolute; left: -100px; top: -100px; visibility: hidden\"></iframe>");
	//document.write("<iframe src=\"" + langroot + "/null\" name=\"saveformframe\" id=\"saveformframe\" width=\"100\" height=\"100\" style=\"position: absolute; left: 10px; top: 10px;\"></iframe>");
	setTimeout('document.forms[0].target = "saveformframe";',500);
	setInterval("formsave_action();",60000);
}

// this is the graphical search part

var at_regs = Array("130","126","127","125","124","121","123","122","111","112","113","311","312","313","314","315","221","222","223","224","225","226","321","322","323","341","342","331","332","333","334","335","211","212","213");
var at_regnams =
Array("Vienna","Wiener Umland-Nordteil<br />Lower Austria","Wiener Umland-S&uuml;dteil<br />Lower Austria","Weinviertel<br />Lower Austria","Waldviertel<br />Lower Austria","Mostviertel-Eisenwurzen<br />Lower Austria","St.P&ouml;lten<br />Lower Austria","Nieder&ouml;sterreich-S&uuml;d<br />Lower Austria","Mittelburgenland<br />Burgenland","Nordburgenland<br />Burgenland","S&uuml;dburgenland<br />Burgenland","Innviertel<br />Upper Austria","Linz-Wels<br />Upper Austria","M&uuml;hlviertel<br />Upper Austria","Steyr-Kirchdorf<br />Upper Austria","Traunviertel<br />Upper Austria","Graz<br />Styria","Liezen<br />Styria","&Ouml;stliche Obersteiermark<br />Styria","Oststeiermark<br />Styria","West- und S&uuml;dsteiermark<br />Styria","Westliche Obersteiermark<br />Styria","Lungau<br />Salzburg","Pinzgau-Pongau<br />Salzburg","Salzburg und Umgebung<br />Salzburg","Bludenz-Bregenzer Wald<br />Vorarlberg","Rheintal-Bodenseegebiet<br />Vorarlberg","Au&szlig;erfern<br />Tyrol","Innsbruck<br />Tyrol","Osttirol<br />Tyrol","Tiroler Oberland<br />Tyrol","Tiroler Unterland<br />Tyrol","Klagenfurt-Villach<br />Carinthia","Oberk&auml;rnten<br />Carinthia","Unterk&auml;rnten<br />Carinthia");

//alert(at_regs.length + " - " + at_regnams.length);

function makemap() {
	for(i=0;i<at_regs.length;i++) {
		document.write('<img id="nuts_'+at_regs[i]+'" style="display:none;" class="contentmap" src="'+mediaroot+'/austria/nuts_'+at_regs[i]+'.gif" />');
	}
	document.write('<img class=\"contentmap\" src="'+mediaroot+'/austria/emptymap.gif" usemap="#at_regs" />');
	document.write('<img class=\"contentmap\" id=\"bld\" src="" usemap="#at_regs" />');
}

function selreg(reg) {
	document.getElementById("nuts_" + reg).style.display = "inline";
	for(i=0;i<regs.length;i++)
		if(regs[i] == "") {
			regs[i] = reg;
			return;
		}
	regs.push(reg);
}

function doreg(reg) {
	ison = false;
	for(i=0;i<regs.length;i++)
		if(regs[i] == reg) {
			ison = true;
			break;
		}
	if(ison) {
		document.getElementById("nuts_" + reg).style.display = "none"; 
		for(i=0;i<regs.length;i++)
			if(regs[i] == reg)
				regs[i] = "";
	} else {
		selreg(reg);
	}
	remake();
	return false;
}

function doblnd(reg) {
	var i;
	isdone = false;
	reg *= 10;
	for(i=0;i<regs.length;i++) {
		if(regs[i] >= reg && regs[i] < (reg + 10)) {
			document.getElementById("nuts_" + regs[i]).style.display = "none"; 
			regs[i] = "";
			isdone = true;
		}
	}
	if(!isdone) {
		for(i=0;i<at_regs.length;i++) 
			if(at_regs[i] >= reg && at_regs[i] < (reg + 10)) {
//				if(confirm("sel " + i + " - " + at_regs[i])) return;
				selreg(at_regs[i]);
//				alert("sel OK " + i + " - " + at_regs[i]);
				}
	}
	remake();
	return false;
}

var clearmapthingy;
function overreg(reg) {
	regstr = "" + reg + "";
	clearTimeout(clearmapthingy);
	document.getElementById("bld").src = mediaroot + "/austria/nuts_" + regstr.substring(0,2) + ".gif";
	for(var i=0;i<at_regs.length;i++)
		if(at_regs[i] == reg) {
			document.getElementById("taglabel").innerHTML = at_regnams[i] + "<br /><br />";
			return;
		}
}

function outreg(reg) {
	clearTimeout(clearmapthingy);
	clearmapthingy = setTimeout('document.getElementById("bld").src = ""; document.getElementById("taglabel").innerHTML = "Please click on the regions you would like to search"', 50);
}


function gotostep(id) {
	var f = document.getElementById("sform");
	formsave_repair();
	f.action = "melden?step=" + id;
	f.submit();
	return false;
}



// Numeric check script - Original:  Nannette Thacker http://www.shiningstar.net
// Modified by Simon Laburda to support Firefox
var sel_shouldbe;
function checkNumeric(objName)
{
	var numberfield = objName;
	if (chkNumeric(objName) == false)
	{
		numberfield.select();
		numberfield.focus();
		numberfield.value = "";
		sel_shouldbe = numberfield;
		setTimeout("sel_shouldbe.focus(); sel_shouldbe.select();",10);
		return false;
	}
	else
	{
		return true;
	}
}

function chkNumeric(objName)
{
var checkOK = "0123456789.-";
var checkStr = objName;
var allValid = true;
var decPoints = 0;
var allNum = "";

for (i = 0;  i < checkStr.value.length;  i++)
{
ch = checkStr.value.charAt(i);
for (j = 0;  j < checkOK.length;  j++)
if (ch == checkOK.charAt(j))
break;
if (j == checkOK.length)
{
allValid = false;
break;
}
if (ch != ",")
allNum += ch;
}
if (!allValid)
{	
// alertsay = "Please enter only these values \""
// alertsay = alertsay + checkOK + "\" in the \"" + checkStr.name + "\" field."
alert("Please enter a valid number");
return (false);
}

}



// Google maps simplification

function maps_init() {
	document.write('<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=ABQIAAAAzVKTBjdqtq4x4fv39WfGzBQhjLxHSTxZ3qnLr2UuDicHXYu49hT3L-Y0rgEcGDJNt-NYlBYScJVmNA" type="text/javascript"></script>');
}

function maps_draw(search,fin,nam) {
	if (GBrowserIsCompatible()) { 
		var map = new GMap(document.getElementById("map"));
		map.addControl(new GLargeMapControl());
		map.addControl(new GMapTypeControl());
		map.setCenter(new GLatLng(47.657988,12.996826),2);
		var geo = new GClientGeocoder(new GGeocodeCache()); 

		var reasons=[];
		reasons[G_GEO_SUCCESS]            = "Success";
		reasons[G_GEO_MISSING_ADDRESS]    = "Missing Address: The address was either missing or had no value.";
		reasons[G_GEO_UNKNOWN_ADDRESS]    = "Unknown Address:  No corresponding geographic location could be found for the specified address.";
		reasons[G_GEO_UNAVAILABLE_ADDRESS]= "Unavailable Address:  The geocode for the given address cannot be returned due to legal or contractual reasons.";
		reasons[G_GEO_BAD_KEY]            = "Bad Key: The API key is either invalid or does not match the domain for which it was given";
		reasons[G_GEO_TOO_MANY_QUERIES]   = "Too Many Queries: The daily geocoding quota for this site has been exceeded.";
		reasons[G_GEO_SERVER_ERROR]       = "Server error: The geocoding request could not be successfully processed.";

		geo.getLatLng(search + ", " + fin, function (point) { 
			if (point) {
				var marker = new GMarker(point);
				GEvent.addListener(marker, "click", openit = function() {
					marker.openInfoWindowHtml("<p class=\"protected\" style=\"font-size:85%;\"><b>" + nam + "</b><br />" + search + "</p>");
				});
				map.addOverlay(marker);
				map.setCenter(point,14);
				openit();
			} else {
				var result=geo.getCache().get(search);
				if (result) {
					var reason="Code "+result.Status.code;
					if (reasons[result.Status.code]) {
						reason = reasons[result.Status.code]
					}
				} else {
					var reason = "";
				} 
				if((i = search.indexOf(",")) >= 0) {
					maps_draw(search.substring(i+1),fin,nam);
				}

//				alert(reason);
//				document.getElementById("map").innerHTML = 'Could not find "' +search+ '" ' + reason;
			}
		});
	}
}
    
