﻿/*:::::::::.
::   Javascript Functions for map & guide
::
::   Author:         plenum stoll & fischbach, Herrenberg 
::   Create Date:    2006-01-18
::   Change Date:    
::   Purpose:        Several Functiondescriptions
::
::   Function Index:
::   
:: 
::                                                                .:
::                                                                ::
::                                                                ::
::                                                            .:::*/

if (!Array.prototype.push)
{
    Array.prototype.push = function()
    {
        for (var i = 0, ii = arguments.length; i < ii; i++)
        {
            this[this.length] = arguments[i];
        }
        return this.length;
    };
}
var EventBroadcaster = new Object();
EventBroadcaster.init = function(obj)
{
    obj._listeners = new Array();
    obj.broadcastMessage = this._broadcastMessage;
    obj.addListener = this._addListener;
    return obj;
};
EventBroadcaster._broadcastMessage = function(method)
{
    var listeners = this._listeners;
    var i = listeners.length;
    while (i--)
    {
        var listener = listeners[i];
        if (listener[method])
        {
            listener[method]();
        }
    }
};
EventBroadcaster._addListener = function(obj)
{
    this._listeners.push(obj);
    return true;
};
window.onload = function()
{
    this.broadcastMessage('onload');
};
EventBroadcaster.init(window);

var sfFocus = new Object();
window.addListener(sfFocus);
sfFocus.onload = function(){
    var sfEls = document.getElementsByTagName("INPUT");
    for (var i=0; i<sfEls.length; i++) {
        if(sfEls[i].className.indexOf('focusThis')!=-1){
            sfEls[i].onfocus=function() {
                this.className+=" sffocus";
            }
            sfEls[i].onblur=function() {
                this.className=this.className.replace(new RegExp(" sffocus\\b"), "");
            }
        } 
    }
}

 checkModules = function(node){
    if(document.getElementsByTagName){
         this.Node = node;
         this.WrapperDivId = Node.parentNode.parentNode.id;
         this.strCssClass = Node.parentNode.className;
         this.bCheckState = Node.checked;
         
         // get all LI elements & create array for appropriate LI elements
         AllLis = document.getElementsByTagName("LI");
         appropriateLis = new Array();
         
         // assign LIs and set back class I
         for(i=0;i<AllLis.length;i++){
             // if LI is approptiate assign it
             if(AllLis[i].className.indexOf(strCssClass)!=-1 && AllLis[i].parentNode.parentNode.id==WrapperDivId) appropriateLis.push(AllLis[i]);
             // if LI is appropriate to other variant, change its class
             if(AllLis[i].parentNode.parentNode.id==WrapperDivId) AllLis[i].className=AllLis[i].className.replace(new RegExp(" act\\b"), "");
         }
         // assign active state or remove it (for checkbox proposals)
         for(i=0;i<appropriateLis.length;i++){
            if(bCheckState){
                   appropriateLis[i].className+=" act";
               }else{
                   appropriateLis[i].className=appropriateLis[i].className.replace(new RegExp(" act\\b"), "");
               }
         }
     }
 }
 showVariantBlock = function(node){
     if(document.getElementById && document.getElementsByTagName){
           this.Node = node;
           this.SubItems = Node.getElementsByTagName("OPTION");
           // alert(SubItems.length);
           for(i=0;i<SubItems.length;i++){
               if(document.getElementById(SubItems[i].value)) document.getElementById(SubItems[i].value).style.display="none";
           }
        if(Node.options[Node.options.selectedIndex].value == "-") return
           if(document.getElementById(Node.options[Node.options.selectedIndex].value)) document.getElementById(Node.options[Node.options.selectedIndex].value).style.display="block";
     }
 }


var ContactCheckErrors = new Object();
window.addListener(ContactCheckErrors);
ContactCheckErrors.onload = function(){
    if(document.getElementById) {
        for(i=0;i<errorElms.length;i++){
            if(document.getElementById(errorElms[i][0]).style.display != "none") {
             document.getElementById(errorElms[i][1]).className="error";
            }
        }
    }
}


/*:: error function for contact pages ::*/
errorElms = new Array();
function addError(elm) {
    if(document.getElementById) {
        errorElms.push(elm);
    }
}
function open_win()
{
    win = window.open('','regwin','status=yes,dependent=no,width=815,height=750,top=100,left=100'); 
    win.focus();
}

switchLang = function(element)
{
    this.FormEl = element;
    this.location.href=this.FormEl.options[this.FormEl.selectedIndex].value;
}



    if(document.getElementsByTagName && document.getElementById){
        document.write('<style type="text/css"> .module_variants, #nav_lang_form_dropdown_submit {display:none;}</style>');
    }








