try {
    document.execCommand("BackgroundImageCache", false, true);
} catch(e) {}

var xmlHttp = false;
var start;

var l="D";
var lang="de";
var v="english version";
if(window.location.host.indexOf("childcare") > 0 || window.location.search.indexOf("LANG=E") > 0){
    l="E";
    lang="en";
    v="deutsche version";
}
var selectColor = "#91CDE8";
var overColor = "#31A1CE";
var blue_1 = "#67BADE";
var blue_2 = "#008DC5";
var grey_1 = "#DADADA";
var white = "#FFFFFF";		
var black = "#000000";	
var listView=true;
var mapView=false;
var wArrow = new Image(6,20);
var gArrow = new Image(6,20);

var caretype_desc = new Object();
var caretype_name = new Object();
var timemodel_desc = new Object();
var timemodel_name = new Object();
var special_desc = new Object();
var special_name = new Object();

var ctIDs = new Array('1','2','3','4','5','6','7','9','10','11','12','13','14','15','16','19','20','21','38','39','40','41','50','51','52','54');
var tmIDs = new Array("22","27","25","24","23","29");
var spIDs = new Array("44","42","43","45","46","47");
var srIDs = new Array("53");
	
var age = 0;
var newdetail=false;
var offset = 20;
var requestID = 0;
var autoRequest = false;	
var zipcode = 0;
var sortBy="thzip";
var cending="desc";
var query="";
var reorder=false;
var kc=0;
var sgLen=0;
var sgFocus=0;
var lZIP=68161;
var lADDRESS="";
var lCITY="Mannheim";
var lPHONE="";
var lINSTITUT="";
var lINSTITUTID=0;	
var qoogle="";
var lastqoogle="";
	
wArrow.src="images/pfeil_blau_6x20.gif";			
gArrow.src="images/pfeil_rechts_grau.gif";				
		
var selected = new Array();
selected["ct"] = new Array();
selected["tm"] = new Array();
selected["sp"] = new Array();
selected["sr"] = new Array();
selected["qu"] = new Array();
selected["ag"] = "";			
selected["yag"] = "yag0";
selected["ya"] = "";	
selected["pg"] = "pg3";	
selected["pa"] = 1;		
selected["of"] = "of20";

function startAutoRequest(){
    autoRequest = true;
    process();
}

function stopAutoRequest(){	
    autoRequest = false;
}

// Setzt Status der Selectionsfelder auf aktuelle Werte
function setSelection(){
    for(var i=0;i<s.length;i++){
        document.getElementById(selected[s[i]]).style.color=white;
        document.getElementById("d"+selected[s[i]]).style.backgroundColor=blue_2;
    }
}

function changeImgSrc(name,newsrc){
    document.images.name.src = newsrc;
}

function attOver(e) {
    if(typeof(e) == "object") e = "xxx";
    if(e.substr(0,2) == "ct") {
        document.getElementById("selection_legend").innerHTML="<span class='legend_hl'>"+caretype_name[e]+"</span><br /><span class='legend_text'>"+caretype_desc[e]+"</span>";
        document.getElementById("selection_legend").style.display = "block";
        document.getElementById(e).style.backgroundColor = blue_2;
        document.getElementById(e).style.color = white;
        this.id = "";
    }
    if(this.id.substr(0,2) == "sp") {
        document.getElementById("selectionInstitution_legend").innerHTML="<span class='legend_hl'>"+special_name[this.id]+"</span><br /><span class='legend_text'>"+special_desc[this.id]+"</span>";
        document.getElementById("selectionInstitution_legend").style.display = "block";
    }
    if(this.id.substr(0,2) == "tm") {
        document.getElementById("selectionInstitution_legend").innerHTML="<span class='legend_hl'>"+timemodel_name[this.id]+"</span><br /><span class='legend_text'>"+timemodel_desc[this.id]+"</span>";
        document.getElementById("selectionInstitution_legend").style.display = "block";
    }
}
	
function attOut(e) {
    if(typeof(e) == "object") e = "xxx";
    if(e.substr(0,2) == "ct") {
        var attName	= e.substr(0,2);
        if (!inarray(e,attName)) {
            document.getElementById(e).style.backgroundColor = white;
            document.getElementById(e).style.color = blue_2;
        } else {
            document.getElementById(e).style.backgroundColor = blue_2;
            document.getElementById(e).style.color = white;
        }
    }
    document.getElementById("selectionInstitution_legend").style.display = document.getElementById("selection_legend").innerHTML = "";
    document.getElementById("selection_legend").style.display = "none";
    document.getElementById("selectionInstitution_legend").style.display = "none";
}

function initCT(){
    for(var i=0;i<ctIDs.length;i++){
        document.getElementById('ct'+ctIDs[i]).style.backgroundColor = white;
        document.getElementById('ct'+ctIDs[i]).style.color = blue_2;
    }
}

function initSelection(attId){
    if((typeof selected[attId])=='object') {
        for(var i=0;i<selected[attId].length;i++){
            document.getElementById(selected[attId][i]).style.backgroundColor = white;
            document.getElementById(selected[attId][i]).style.color = blue_2;
        }
        selected[attId] = new Array();
    } else {
        if(((typeof selected[attId])=='string') && selected[attId]!="") {
            document.getElementById(selected[attId]).style.backgroundColor = white;
            document.getElementById(selected[attId]).style.color = blue_2;
            selected[attId]="";
        }
    }
    process();
}

function attOverSingleSelection(id) {
    attName=id.substr(0,2);
    if(selected[attName]!=id) {
        document.getElementById(id).style.color=white;
        switch(attName){
            case 'of':
                document.getElementById("d"+id).style.backgroundColor=blue_2;
                break;
            default:
                document.getElementById(id).style.backgroundColor=blue_2;
        }
    }
}
	
function attOutSingleSelection(id) {
    attName=id.substr(0,2);
    if(selected[attName] != id) {
        document.getElementById(id).style.color = blue_2;
        switch(attName){
            case 'of':
                document.getElementById("d"+id).style.backgroundColor = white;
                document.getElementById("d"+id).style.color = blue_2;
                break;
            default:
                document.getElementById(id).style.backgroundColor = white;
                document.getElementById(id).style.color = blue_2;
        }
    }
}	

function clearCt() {
    for(var i=0;i<ctIDs.length;i++){
        document.getElementById('ct'+ctIDs[i]).style.color=blue_2;
        document.getElementById('ct'+ctIDs[i]).style.backgroundColor=white;
    }
    selected['ct'] = new Array();
    process();
}
	
function attClick(e) {
    if(e != "click" && typeof(e) != "object") {
        attName=e.substr(0,2);
        id = e;
    }else{
        attName=this.id.substr(0,2);
        id = this.id;
    }
    switch(attName) {
        case 'ct':
            if(inarray(id,attName)){
                selected[attName]=stripSelection(id,attName);
                document.getElementById(id).style.color=blue_2;
                document.getElementById(id).style.backgroundColor=white;
            } else {
                document.getElementById(id).style.color=white;
                document.getElementById(id).style.backgroundColor=blue_2;
                selected[attName].push(id);
            }
            break;
        case 'tm': case 'sp':
            if(id == "sp53"){
                if(inarray(id.substr(0,4),"sr")){
                    document.getElementById("CITY").disabled = false;
                    document.getElementById("CITY").value = cityValue;
                    document.getElementById("UMKREIS").disabled = false;
                    document.getElementById("UMKREIS").selectedIndex = umkreisIndex;
                    selected["sr"]=stripSelection(id.substr(0,4),"sr");
                } else {
                    cityValue = document.getElementById("CITY").value;
                    document.getElementById("CITY").value = "";
                    document.getElementById("CITY").disabled = true;
                    umkreisIndex = document.getElementById("UMKREIS").selectedIndex;
                    document.getElementById("UMKREIS").selectedIndex = 0;
                    document.getElementById("UMKREIS").disabled = true;
                    selected["sr"].push(id.substr(0,4));
                }
            } else {
                if(inarray(id.substr(0,4),attName)){
                    selected[attName]=stripSelection(id.substr(0,4),attName);
                } else {
                    selected[attName].push(id.substr(0,4));
                }
            }
            break;
        case 'ya':
            if(typeof(id) == "object") {
                selected["ya"] = "";
            } else {
                selected["ya"] = this.value;
            }
            break;
        case 'of':
            document.getElementById(selected[attName]).style.color=blue_2;
            document.getElementById("d"+selected[attName]).style.backgroundColor=white;
            document.getElementById(id).style.color=white;
            document.getElementById("d"+id).style.backgroundColor=blue_2;
            var newOffset=parseInt(id.replace(/of/,''));
            selected[attName]=id;
            YAHOO.kibet.paginator.paginator.setRowsPerPage(newOffset);
            break;
        default: break;
    }
    process();
}	
		
function inarray(str,attName){
    var reg=new RegExp(str+",");
    var aValues=selected[attName].join(",")+",";
    if(reg.test(aValues)){
        return true;
    } else {
        return false;
    }
}	

function stripSelection(str,attName){
    var aValues=selected[attName].join(",")+",";
    var re1=new RegExp(str+",");
    typArr=false;
    if((typeof selected[attName])=='object') {
        typArr=true;
    }
    if(aValues.indexOf(str)>=0) {
        aValues=aValues.replace(re1,"");
        aValues=aValues.substr(0,aValues.length-1);
        (aValues.indexOf(",")>=0)?selected[attName]=aValues.split(","):selected[attName]=aValues.split(",");
        if ( (selected[attName]=="") && (typArr)){
            selected[attName]=new Array();
        }
    }
    return selected[attName];
}
	
function deleteSelection(id){
    var aValues=selected["ct"].join(",");
    var substitute="/"+id+"/";
    newValues=aValues.replace(substitute, "");
    selected["ct"]=concat(newValues);
}

// Setzt ein ueber ID referenziertes <DIV> auf STATE (visible|hidden)
function displayDiv(id,state){
    document.getElementById(id).style.display=state;
}

// Setzt Flag fuer Zipcode-Suche
function getZipBasedResult(zipcode,cityname){
    document.getElementById('CITY').value=zipcode+" "+cityname;
    process();
}

function getSortedData(id){
    var th="";
    var re1=new RegExp("&CENDING=(asc|desc)");
    var re2=new RegExp("&SORT=(INS|ORG|CTY|ZIP)");
    var re3=new RegExp("&REQUESTID=([0-9]{1,4})");
    if(query.indexOf("&CENDING="+cending)) {
        query=query.replace(re1,"");
        query=query.replace(re2,"");
        query=query.replace(re3,"");
    }
    switch(id){
        case 'thzip':
            query+="&SORT=ZIP&CENDING="+cending;
            th=translation[l]["thzip"];
            break;
        case 'thcity':
            query+="&SORT=CTY&CENDING="+cending;
            th=translation[l]["thcity"];
            break;
        case 'thins':
            query+="&SORT=INS&CENDING="+cending;
            th=translation[l]["thins"];
            break;
        case 'thorg':
            query+="&SORT=ORG&CENDING="+cending;
            th=translation[l]["thorg"];
            break;
    }
    initResultTH();
    document.getElementById(id).innerHTML="<span class='fett'>"+th+" <img src='images/pfeil_"+cending+"_grau.gif' border='0' width='10' height='20' align='top'></span>";
    ((cending=="asc")&&(id==sortBy)) ? cending="desc":cending="asc";
    sortBy=id;
    reorder=true;
    process();
    reorder=false;
}

function initResultTH(){
    document.getElementById('thzip').innerHTML=translation[l]["thzip"];
    document.getElementById('thcity').innerHTML=translation[l]["thcity"];
    document.getElementById('thins').innerHTML=translation[l]["thins"];
    document.getElementById('thorg').innerHTML=translation[l]["thorg"];
}

function initCtrl(){
    document.getElementById(selected['of']).style.color=white;
    document.getElementById("d"+selected['of']).style.backgroundColor=blue_2;
    document.getElementById("result").style.display='none';
    document.getElementById("result").style.visibility='hidden';
    document.getElementById("nav").style.display='none';
    document.getElementById("nav").style.visibility='hidden';
    document.getElementById("links").style.display="block";
    document.getElementById("links").style.visibility='visible';
    document.getElementById('divMapView').style.backgroundColor=white;
    document.getElementById('divListView').style.backgroundColor=grey_1;
    mapView=false;
    listView=true;
}	

function initLabels() {
    document.getElementById("labelVersion").innerHTML=v;
    document.getElementById("labelSearchVersion").innerHTML=translation[l]["labelSearchVersion"];
    document.getElementById("labelSearchVersion").href="kinderbetreuung_id.html?LANG="+l;
    document.getElementById("labelCareType").innerHTML=translation[l]["labelCareType"];
    document.getElementById("labelSelectionInstitution").innerHTML=translation[l]["labelSelectionInstitution"];
    document.getElementById("labelQualification").innerHTML=translation[l]["labelQualification"];
    document.getElementById("labelTimeModel").innerHTML=translation[l]["labelTimeModel"];
    document.getElementById("labelAge").innerHTML=translation[l]["labelAge"];
    document.getElementById("labelWhere").innerHTML=translation[l]["labelWhere"];
    document.getElementById("descWhere").innerHTML=translation[l]["descWhere"];
    document.getElementById("btn").value=translation[l]["labelSearch"];
    document.getElementById("labelAddQ").innerHTML=translation[l]["labelAddQ"];
    document.getElementById("labelAdd").innerHTML=translation[l]["labelAdd"];
    document.getElementById("labelAdd").href="register.php?LANG="+l;
    document.getElementById("labelImprint").innerHTML=translation[l]["labelImprint"];
    document.getElementById("labelImprint").href="imprint.php?LANG="+l;

    document.getElementById("yui-ya-button-button").innerHTML=translation[l]["ya0"];
    document.getElementById("yui-ya-button-button").title="";

    document.getElementById("yui-tm-button-button").innerHTML=translation[l]["tm0"];
    document.getElementById("yui-tm-button-button").title="";
    document.getElementById("tm22").firstChild.innerHTML=translation[l]["tm22"];
    document.getElementById("tm27").firstChild.innerHTML=translation[l]["tm27"];
    document.getElementById("tm25").firstChild.innerHTML=translation[l]["tm25"];
    document.getElementById("tm24").firstChild.innerHTML=translation[l]["tm24"];
    document.getElementById("tm23").firstChild.innerHTML=translation[l]["tm23"];
    document.getElementById("tm29").firstChild.innerHTML=translation[l]["tm29"];
    if(document.getElementById("tm22").style.display == "none") document.getElementById("tm22Link").innerHTML=translation[l]["tm22"];
    if(document.getElementById("tm27").style.display == "none") document.getElementById("tm27Link").innerHTML=translation[l]["tm27"];
    if(document.getElementById("tm25").style.display == "none") document.getElementById("tm25Link").innerHTML=translation[l]["tm25"];
    if(document.getElementById("tm24").style.display == "none") document.getElementById("tm24Link").innerHTML=translation[l]["tm24"];
    if(document.getElementById("tm23").style.display == "none") document.getElementById("tm23Link").innerHTML=translation[l]["tm23"];
    if(document.getElementById("tm29").style.display == "none") document.getElementById("tm29Link").innerHTML=translation[l]["tm29"];

    document.getElementById("yui-sp-button-button").innerHTML=translation[l]["sp0"];
    document.getElementById("yui-sp-button-button").title="";
    document.getElementById("sp44").firstChild.innerHTML=translation[l]["sp44"];
    document.getElementById("sp42").firstChild.innerHTML=translation[l]["sp42"];
    document.getElementById("sp43").firstChild.innerHTML=translation[l]["sp43"];
    document.getElementById("sp45").firstChild.innerHTML=translation[l]["sp45"];
    document.getElementById("sp47").firstChild.innerHTML=translation[l]["sp47"];
    document.getElementById("sp46").firstChild.innerHTML=translation[l]["sp46"];
    if(document.getElementById("sp44").style.display == "none") document.getElementById("sp44Link").innerHTML=translation[l]["sp44"];
    if(document.getElementById("sp42").style.display == "none") document.getElementById("sp42Link").innerHTML=translation[l]["sp42"];
    if(document.getElementById("sp43").style.display == "none") document.getElementById("sp43Link").innerHTML=translation[l]["sp43"];
    if(document.getElementById("sp45").style.display == "none") document.getElementById("sp45Link").innerHTML=translation[l]["sp45"];
    if(document.getElementById("sp47").style.display == "none") document.getElementById("sp47Link").innerHTML=translation[l]["sp47"];
    if(document.getElementById("sp46").style.display == "none") document.getElementById("sp46Link").innerHTML=translation[l]["sp46"];

    document.getElementById("CITY").value = "";
    document.getElementById("UMKREIS").selectedIndex = 0;
    
    document.getElementById("ct38").innerHTML=translation[l]["ct38"];
    document.getElementById("ct2").innerHTML=translation[l]["ct2"];
    document.getElementById("ct5").innerHTML=translation[l]["ct5"];
    document.getElementById("ct3").innerHTML=translation[l]["ct3"];
    document.getElementById("ct10").innerHTML=translation[l]["ct10"];
    document.getElementById("ct41").innerHTML=translation[l]["ct41"];
    document.getElementById("ct1").innerHTML=translation[l]["ct1"];
    document.getElementById("ct9").innerHTML=translation[l]["ct9"];
    document.getElementById("ct40").innerHTML=translation[l]["ct40"];
    document.getElementById("ct6").innerHTML=translation[l]["ct6"];
    document.getElementById("ct13").innerHTML=translation[l]["ct13"];
    document.getElementById("ct16").innerHTML=translation[l]["ct16"];
    document.getElementById("ct12").innerHTML=translation[l]["ct12"];
    document.getElementById("ct19").innerHTML=translation[l]["ct19"];
    document.getElementById("ct14").innerHTML=translation[l]["ct14"];
    document.getElementById("ct15").innerHTML=translation[l]["ct15"];
    document.getElementById("ct21").innerHTML=translation[l]["ct21"];
    document.getElementById("ct20").innerHTML=translation[l]["ct20"];
    document.getElementById("ct7").innerHTML=translation[l]["ct7"];
    document.getElementById("ct4").innerHTML=translation[l]["ct4"];
    document.getElementById("ct11").innerHTML=translation[l]["ct11"];
    document.getElementById("ct50").innerHTML=translation[l]["ct50"];
    document.getElementById("ct51").innerHTML=translation[l]["ct51"];
    document.getElementById("ct39").innerHTML=translation[l]["ct39"];
    document.getElementById("ct52").innerHTML=translation[l]["ct52"];
    document.getElementById("ct54").innerHTML=translation[l]["ct54"];
		
    document.getElementById("clearCt").innerHTML=translation[l]["clearCt"];
    document.getElementById("clearFilter").innerHTML=translation[l]["clearFilter"];
		
    document.getElementById("listView").innerHTML=translation[l]["listView"];
    document.getElementById("mapView").innerHTML=translation[l]["mapView"];
    document.getElementById("thzip").innerHTML=translation[l]["thzip"];
    document.getElementById("thcity").innerHTML=translation[l]["thcity"];
    document.getElementById("thins").innerHTML=translation[l]["thins"];
    document.getElementById("thorg").innerHTML=translation[l]["thorg"];
    document.getElementById("ft").innerHTML=translation[l]["ft"];
    document.getElementById("umkreis_von").innerHTML=translation[l]["umkreis_von"];
    document.getElementById("ueberregional").innerHTML=translation[l]["ueberregional"];

    document.getElementById("logokibetImgD").style.display='none';
    document.getElementById("logokibetImgE").style.display='none';
    document.getElementById("logokibetImg"+l).style.display='inline-block';
    
    document.getElementById("year").innerHTML=translation[l]["year"];
}

function keyRelease(evt) {
    if (!evt) evt = window.event;
    if (evt.which) {
        kc = evt.which;
    } else if (evt.keyCode) {
        kc = evt.keyCode;
    }
    if((kc==40)&&(sgFocus>0)) setFocus("DOWN");
    if((kc==38)&&(sgFocus>0)) setFocus("UP");
}
	
function checkRequest(id){ 
    if(document.getElementById(id).value.length>0) {
        suggest();
    }
}	

function setFocus(direction){
    switch(direction){
        case 'DOWN':
            if(sgFocus<sgLen) {
                document.getElementById('sg_'+sgFocus).style.backgroundColor=white;
                document.getElementById('sg_'+sgFocus).style.color=black;
                sgFocus=sgFocus+1;
            }
            document.getElementById('sg_'+sgFocus).focus();
            document.getElementById('sg_'+sgFocus).style.backgroundColor=blue_2;
            document.getElementById('sg_'+sgFocus).style.color=white;
            break;
        case 'UP':
            if(sgFocus>1) {
                document.getElementById('sg_'+sgFocus).style.backgroundColor=white;
                document.getElementById('sg_'+sgFocus).style.color=black;
                sgFocus=sgFocus-1;
                document.getElementById('sg_'+sgFocus).focus();
                document.getElementById('sg_'+sgFocus).style.backgroundColor=blue_2;
                document.getElementById('sg_'+sgFocus).style.color=white;
            } else {
                document.getElementById('CITY').focus();
                sgFocus=0;
            }
            break;
        default:
            break;
    }
}

function setFocusColor(id){
    document.getElementById('sg_'+id).style.backgroundColor=blue_2;
}	

function openWindow (url) {
    win = window.open(url, "Google maps", "width=800,height=600,left=0,top=0");
    win.focus();
}	
	
function loadMap(q){
    document.getElementById('frameGoogleMap').src="google.php?"+q;
    lastqoogle = q;
    changeView("mapView");
}
	
function changeView(el){
    var myClassName = "navitemDisabled";
    if(lastqoogle != "") {
        myClassName = "navitem";
    }else{
        return false;
    }

    if (el!="mapView") {
        // LISTVIEW
        mapView=false;
        listView=true;
        document.getElementById('mapView').className=myClassName;
        document.getElementById('divMapView').style.backgroundColor=white;
        document.getElementById('divListView').style.backgroundColor=grey_1;
        displayDiv("thzip","block");
        displayDiv("thcity","block");
        displayDiv("thins","block");
        displayDiv("thorg","block");
        displayDiv("resultSet","block");
        displayDiv("divMapGoogle","none");
    } else {
        // MAPVIEW
        mapView=true;
        listView=false;
        document.getElementById('mapView').className=myClassName;
        document.getElementById('divMapView').style.backgroundColor=grey_1;
        document.getElementById('divListView').style.backgroundColor=white;
        displayDiv("thzip","none");
        displayDiv("thcity","none");
        displayDiv("thins","none");
        displayDiv("thorg","none");
        displayDiv("resultSet","none");
        displayDiv("divMapGoogle","block");
    }

    return true;
}

function buildPageNav() {
    // Set up the application under the YAHOO.example namespace
    YAHOO.namespace("kibet.paginator");
    myTotalRecords = 0;
    if(document.getElementById("countRows") != null) myTotalRecords = parseInt(document.getElementById("countRows").firstChild.data);

    YAHOO.kibet.paginator.handlePagination = function (state) {
        // Update the Paginator's state, confirming change
        YAHOO.kibet.paginator.paginator.setState(state);
        selected['pa'] = state.page;
        selected['pg'] = 'pg'+state.page+2;
        if(state.page != state.before.page) process();
    };
    // Create the Paginator widget and subscribe to its changeRequest event
    YAHOO.kibet.paginator.paginator = new YAHOO.widget.Paginator({
        rowsPerPage : 20,
        totalRecords : 20,
        pageLinks : 5,
        alwaysVisible : false,
        containers : 'pages',
        previousPageLinkLabel : "&lt;",
        firstPageLinkLabel : "&lt;&lt;",
        nextPageLinkLabel : "&gt;",
        lastPageLinkLabel : "&gt;&gt;"
    });
    YAHOO.kibet.paginator.paginator.subscribe('changeRequest', YAHOO.kibet.paginator.handlePagination);
    // Render the Paginator into the configured container(s)
    YAHOO.kibet.paginator.paginator.render();
}

function switchLang(){
    l="D";
    v="english version";
    if(document.getElementById('labelVersion').innerHTML=="english version") {
        l="E";
        v="deutsche Version";
    }
    initCtrl();
    initLegend();
    initLabels();
    process();
}
	
function initPage() { 
    xmlHttp = getXMLRequest();
    buildPageNav()
    initFilter();
    initCtrl();
    initLegend();
    process();
} 
YAHOO.util.Event.onDOMReady(initPage);
YAHOO.util.Event.onAvailable('yui-ya-button-button', initLabels);
	
document.onkeyup=keyRelease;
