﻿
/**
 * add an event
 * @obj: object, where event occurs
 * @evType: type of the event (load, mouseover ...)
 * @fn: the function to be called
 */
 
function addEvent(obj, evType, fn)
{
	if (obj.addEventListener)
	{
		obj.addEventListener(evType, fn, false);
		return true;
	}
	else if (obj.attachEvent)
	{
		var r = obj.attachEvent("on"+evType, fn);
		return r;
	}
	else
	{
		return false;
	}
}

/**
 * remove an event
 * @obj: object, where event occurs
 * @evType: type of the event (load, mouseover ...)
 * @fn: the function to be called
 */
 
function removeEvent(obj, evType, fn)
{
	if (obj.removeEventListener)
	{
		obj.removeEventListener(evType, fn, false);
		return true;
	}
	else if (obj.detachEvent)
	{
		var r = obj.detachEvent("on"+evType, fn);
		return r;
	}
	else
	{
		return false;
	}
}

/**
* Button Mouseover
*/

function initJsButton()
{
	var regExp = new RegExp('(^.*?/?)(b\\d?_\\w*_)a\\.(gif|jpg|jpeg|png)$');
	//all images
	var imgs = document.getElementsByTagName('img');
	if(!imgs) imgs = new Array();
	//input type=images
	var inputs = document.getElementsByTagName('input');
	var inputImgs = new Array();
	var inputsLen = inputs.length;
	for(var i=0;i<inputsLen;i++)
		if(inputs[i].type == "image")
			inputImgs[inputImgs.length] = inputs[i];
	
	var imgsLen = imgs.length;
	var inputImgsLen = inputImgs.length;
	var totalLen = imgsLen + inputImgsLen;
	for(var i=0;i<totalLen;i++)
	{
		var img;	
		(i < imgsLen) ? img = imgs[i] : img = inputImgs[i-imgsLen];
		var res = regExp.exec(img.src);
		if(res)
		{
			var out = img.src;
			var over = res[1]+res[2]+"b."+res[3];
			img['jsButtonOut'] = out;
			img['jsButtonOver'] = over;
			//addEvent(img, 'mouseover', testmenow);
			img.onmouseover = function(){this.style.cursor = "pointer";this.src = this.jsButtonOver};
			//addEvent(img, 'mouseout', function(){this.style.cursor = "default";this.src = this.jsButtonOut});
			img.onmouseout = function(){this.style.cursor = "default";this.src = this.jsButtonOut};
		}
	}
}

addEvent(window, 'load', initJsButton);

/**
 * Input Text / textarea mouseover
 */

function initJsFormFocuses()
{
	var exclude = new Array();
	var excludeLen = exclude.length;
	var inputs = document.getElementsByTagName("input");
	var textareas = document.getElementsByTagName("textarea");
	var inputsLen = 0;
	if(inputs) inputsLen = inputs.length;
	var textareasLen = 0;
	if(textareas) textareasLen = textareas.length;
	var totalLen = inputsLen+textareasLen;
	
	
	a: for(var i=0;i<totalLen;i++)
	{
		var inputObj;
		//input-text?
		if(i < inputsLen)
			if(inputs[i].type == "text")
			{
				inputObj = inputs[i];
				inputObj.classNameFocus = "inputTextFocus";
				inputObj.classNameBlur = "inputText";
			}
			else continue a;
		else //textarea
		{
			inputObj = textareas[i-inputsLen];
			inputObj.classNameFocus = "inputTextareaFocus";
			inputObj.classNameBlur = "inputTextarea";
		}
		for(var ii=0;ii<excludeLen;ii++)
			if(exclude[ii] == inputObj.name)
				continue a;
		
		addEvent(inputObj, "focus", function(){this.className = this.classNameFocus});
		addEvent(inputObj, "blur", function(){this.className = this.classNameBlur});
	}
}

addEvent(window, 'load', initJsFormFocuses);

function initJsFormTextHandling()
{	//@TODO: hier das ganze über einen regExp machen!!
	var exclude = new Array("anmeldung_name", "anmeldung_email","keyword_alt");
	var excludeLen = exclude.length;
	var inputs = document.getElementsByTagName("input");
	var textareas = document.getElementsByTagName("textarea");
	var inputsLen = 0;
	if(inputs) inputsLen = inputs.length;
	var textareasLen = 0;
	if(textareas) textareasLen = textareas.length;
	var totalLen = inputsLen+textareasLen;
	
	a: for(var i=0;i<totalLen;i++)
	{
		var inputObj;
		//input-text?
		if(i < inputsLen)
			if(inputs[i].type == "text")
				inputObj = inputs[i];
			else continue a;
		else //textarea
			inputObj = textareas[i-inputsLen];
		var doExclude = false;
		for(var ii=0;ii<excludeLen;ii++)
			if(exclude[ii] == inputObj.name)
				doExclude = true;

		if(doExclude)
		{
			//set origValue
			if(inputObj && inputObj.value && inputObj.type && inputObj.type != "hidden" || inputObj && inputObj.value)
				inputObj.origValue = inputObj.value;
			//set to origValue
			addEvent(inputObj, "blur", function(){if(this.value == "" && this.origValue) this.value = this.origValue;});
			//select on click
			addEvent(inputObj, "click", function(){if(this.origValue == this.value) this.value = ''});
		}
	}
}

addEvent(window, 'load', initJsFormTextHandling);

/**
 * Form Sending
 * auto transform url-trails in action in method="get" forms
 *
 */
 
function initGetActionTrailTransformation()
{
	var fs = document.forms;
	for(var i=0;i<fs.length;i++)
	{	
		var f = fs[i];
		if(f.method && f.method.match(/get/i) && f.action)
		{
			var a = f.action;
			var delimPos = a.indexOf('?');
			if(delimPos != -1)
				var trail = a.substr(delimPos+1);
			else
				continue;
			var trailPieces = trail.split('&');
			for(var ii=0;ii<trailPieces.length;ii++)
			{
				var trailHash = trailPieces[ii].split('=');
				if(!f[trailHash[0]])
				{
					var eInput = document.createElement("input");
					eInput.type = "hidden";
					eInput.name = trailHash[0];
					eInput.value = trailHash[1];
					f.appendChild(eInput);
				}
			}
		}
	}
}

addEvent(window, 'load', initGetActionTrailTransformation);

/***********************************************
* IFrame SSI script II- ï¿½ Dynamic Drive DHTML code library (http://www.dynamicdrive.com)
* Visit DynamicDrive.com for hundreds of original DHTML scripts
* This notice must stay intact for legal use
***********************************************/
/*
//Input the IDs of the IFRAMES you wish to dynamically resize to match its content height:
//Separate each ID with a comma. Examples: ["myframe1", "myframe2"] or ["myframe"] or [] for none:
var iframeids=[];

//Should script hide iframe from browsers that don't support this script (non IE5+/NS6+ browsers. Recommended):
var iframehide="yes";

var getFFVersion=navigator.userAgent.substring(navigator.userAgent.indexOf("Firefox")).split("/")[1]
var FFextraHeight=parseFloat(getFFVersion)>=0.1? 16 : 0 //extra height in px to add to iframe in FireFox 1.0+ browsers

function resizeCaller() {
var dyniframe=new Array()
for (i=0; i<iframeids.length; i++){
if (document.getElementById)
resizeIframe(iframeids[i])
//reveal iframe for lower end browsers? (see var above):
if ((document.all || document.getElementById) && iframehide=="no"){
var tempobj=document.all? document.all[iframeids[i]] : document.getElementById(iframeids[i])
tempobj.style.display="block"
}
}
}

function resizeIframe(frameid){
var currentfr=document.getElementById(frameid)
if (currentfr && !window.opera){
currentfr.style.display="block"
if (currentfr.contentDocument && currentfr.contentDocument.body.offsetHeight) //ns6 syntax
currentfr.height = currentfr.contentDocument.body.offsetHeight+FFextraHeight;
else if (currentfr.Document && currentfr.Document.body.scrollHeight) //ie5+ syntax
currentfr.height = currentfr.Document.body.scrollHeight;
if (currentfr.addEventListener)
currentfr.addEventListener("load", readjustIframe, false)
else if (currentfr.attachEvent){
currentfr.detachEvent("onload", readjustIframe) // Bug fix line
currentfr.attachEvent("onload", readjustIframe)
}
}
}

function readjustIframe(loadevt) {
var crossevt=(window.event)? event : loadevt
var iframeroot=(crossevt.currentTarget)? crossevt.currentTarget : crossevt.srcElement
if (iframeroot)
resizeIframe(iframeroot.id);
}

function loadintoIframe(iframeid, url){
if (document.getElementById)
document.getElementById(iframeid).src=url
}

//addEvent(window, 'load', resizeCaller);
*/