/*
###########################################
BasisKonfiguration fur Funktionen die 
häufig in den Seiten gebraucht werden.

Created by joker
###########################################
*/

//standard Hilfsfunktionen
function addLoadEvent(func)
{
	if (typeof func != 'function') return;
        var oldonload = window.onload;
        if (typeof window.onload != 'function')
        {
                window.onload = func;
        }
        else
        {
                window.onload = function()
                {
                        oldonload();
                                        func();
                                }
        }
}

function toggle(strID){
	var myObj = document.getElementById(strID);
	if(myObj.style.display == "none"){
	myObj.style.display = "block";
	}else{
	myObj.style.display = "none";
	}
}

function addEvent( obj, type, fn, p )
{
        obj["e"+type+fn] = fn;
        if (obj.addEventListener)
        {
                eval('obj.addEventListener( type, function(event){obj["e"+type+fn](event, ' + p + ')}, true );');
        }
        else
        if (obj.attachEvent)
        {
		tStr = 'obj["e"'+type+fn+'](window.event, ' + p + ');';
                obj[type+fn] = function() { eval ( 'obj["e"+type+fn](window.event, ' + p + ');' ); }
                obj.attachEvent("on"+type, obj[type+fn]);
        }
}

function removeEvent( obj, type, fn )
{
        if ( obj.detachEvent )
        {
        obj.detachEvent( 'on'+type, obj[type+fn] );
                obj[type+fn] = null;
        }
        else obj.removeEventListener( type, fn, false );
}


function eventAdder2(objAttrib,handler,addFunction)
{
	//alert("WORKING");
        if ((!document.all)&&(document.getElementById))
        {
                objAttrib.setAttribute(handler,addFunction);
        }
        //workaround for IE 5.x

        if ((document.all)&&(document.getElementById))
        {
		//alert("ADD HANDLER");
                objAttrib[handler]=new Function(addFunction);
        }
}

function attAdder(objAttrib,name,value)
{

        for (var k=0;k<objAttrib.attributes.length;k++)
        {
                if (objAttrib.attributes[k].nodeName == name)
                {
                        objAttrib.attributes[k].nodeValue = value;
                        return;
                }
        }

        objAttrib.setAttribute(name,value);
}

function styAdder(objAttrib,name,value)
{
        var str = "objAttrib.style."+name+" = '"+value+"';";
        eval(str);
}

function inArray(needle,haystack)
{
        if (typeof(haystack.length) == "undefined")
        {
                return false;
        }

        for(var i=0; i<haystack.length;i++)
        {
                if (haystack[i] == needle)
                {
                        return true;
                }
        }

        return false;
}





function setleftKOSnavi(id)
{
	frags = id.split(",");
	url = "/handle?action=getLeftNavi&navId="+frags[0];
	
	for (var i=1;i<frags.length;i++)
	{
		url = url+"&navId"+i+"="+frags[i];
	}
	top.main.navileft.mod_navi(url);
}

function acObj(name,acc)
{
	this.acc = acc;
	this.name = name;
}

function focus_on_first_field()
{
	var accept = new Array();
	accept[accept.length] = new acObj("radio",false);
	accept[accept.length] = new acObj("hidden",false);
	//accept[accept.length] = new acObj("radio",false);
	//accept[accept.length] = new acObj("radio",false);
	
	fl = document.forms.length;
	if (fl < 1) return false;
	act = document.forms[0];
	el = act.elements.length;
	for (var i=0;i<el;i++)
	{
		myEl = document.forms[0].elements[i];
		mt = myEl.type;
		friss = true;
		for (var j=0;j<accept.length;j++)
		{
			if (accept[j].name == mt)
			{
				friss = accept[j].acc;
			}
		}
		if (friss)
		{
			myEl.focus();
			return false;
		}
	}
	
}

function buildFocusElements()
{
	// Versehe alle Elemente mit einem onFocus Handler
	scanFields = new Array();
	scanFields[scanFields.length] = "input";
	//scanFields[scanFields.length] = "a";

	for (var keys in scanFields)
	{
		tKey = scanFields[keys];
		myList = document.getElementsByTagName(tKey);

		for (var i=0;i<myList.length;i++)
		{
			handleField = myList[i];
			//alert("Rufe Handle");
			eventAdder2(handleField,"onfocus","storeThis(this)");
			//alert("HABE GERUFEN");
		}
	}
}

myAktElement = false;

function storeThis(me)
{
	myAktElement = me;
} 

function fireForm()
{
	beginner = myAktElement;
	//alert(beginner.nodeName);
	pass = true;
	while (pass)
	{
		if (beginner.parentNode)
		{
			beginner=beginner.parentNode;
			if (beginner.nodeName == "FORM")
			{
				//alert("FORM FOUND!");
				//HABE eine Form gefunden
				beginner.submit();
				pass = false;
			}
			if (beginner.nodeName == "BODY")
			{
				// Das war wohl nichts --> ignore
				pass = false;
			}
		}
		else
		{
			pass = false;
		}
	}
}

function KOSinit()
{
	buildFocusElements();
	focus_on_first_field();
}





function delay_reload()
{
        document.location.href = rtoken;
}

rtoken = "about:blank";

function popUpNReload(pop, redo)
{
  window.open(pop, "KOSPOP");
  rtoken = redo;
  window.setTimeout("delay_reload()",1000);
  return false;
}

// EnterKeyHandler

if ( document.layers) 
{
	document.captureEvents(Event.KEYPRESS);
}


document.onkeypress = function (evt) 
	{
		var key = document.all ? event.keyCode : evt.which ? evt.which : evt.keyCode;
  		if (key == 13)
		{
			fireForm();
			return false;
  		}
  		return true;
  	};

addLoadEvent (KOSinit);



