/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
var contentTableName = "contentTable";
var url ="http://"+document.location.host+"/DataProviderService/DataProvider";
function deletePosition(trName){
    var table = document.getElementById(contentTableName);
    if (table.internalCount >= 1){
        table.internalCount--;
        var start = trName.indexOf('tr_');
        var end= trName.indexOf('_',start+3);
        var tr = $(trName.substring(start,end));
        tr.remove();
    }
    else {
        alert("Es muss mindestens eine Position vorhanden sein!");
    }

}

function showPartnerAbrechnungen(){
 var bussediv = document.getElementById("mainTable");
    var index = bussediv.index;
    var value = bussediv.values[index];
    syncRequest('partnerBuchungenDiv', 'partnerBillings.jsp?resellerId='+value.id);

}

function showPartnerBuchungen(){
    var bussediv = document.getElementById("mainTable");
    var index = bussediv.index;
    var value = bussediv.values[index];
    syncRequest('partnerBuchungenDiv', 'resellerDetailTable.jsp?resellerId='+value.id);
}

function initBooking(){
    if ($("contentTableDiv") && !document.proxyActive)
        $("contentTableDiv").scrollIntoView(20);
    var aid = $("aid").value;
    var bid = $("bid").value;
    var vid = $("vid").value;

    var abfahrten = syncSoap("getAbfahrtsorte", new Array(false,vid));
    // $("input_tr_1_td_cards").scrollTo();
    var bussesObjects = syncSoap("getBustourBusses",new Array(vid,aid));
    //alert("abfraher = "+abfahrten+" m "+bussesObjects);
    var citys = $("input_tr_1_td_citys");
    if (citys && aid && aid != 'null'){
        citys.objects = abfahrten;
        citys.object=searchObject(abfahrten, aid);
        citys.value = citys.object.name;
        checkFormField(citys);
    }
    var busses = $("input_tr_1_td_busses");
    if (busses && bid && bid != 'null'){

        busses.objects = bussesObjects;
        busses.object=searchObject(bussesObjects, bid);
        busses.value = busses.object.bus.name;
        checkFormField(busses);
    }
    getDataCustomer(true);
}

function searchObject(objects,id){
    for (var i =0;i < objects.length;i++){
        if (objects[i].bus){
            if (objects[i].bus.id == id){
                return objects[i];
            }
        }
        else if (objects[i].id == id){
            return objects[i];
        }
    }
    return null;
}
function addPosition(){
    var table = document.getElementById(contentTableName);
    if (table.internalCount){
        table.internalCount++;
    }
    else {
        table.internalCount = 2;
    }
    var element = document.getElementById("tr_"+(table.internalCount-1));
    var parentNode = element.parentNode;

    var clone = element.cloneNode(element);
    clone.setAttribute("id","tr_"+(table.internalCount));

    resetRow(clone, table.internalCount);

    var images = clone.getElementsByTagName("img");
    for (var i =0; i < images.length;i++){
        var imageElement = images[i].id;
        //  alert("aaa = "+start+"tr_"+(table.internalCount-1)+end+"_img");
        //  var imageElement = clone.getElementT(start+"tr_"+(table.internalCount-1)+end+"_img");

        imageElement.id = start+"tr_"+(table.internalCount)+end+"_img"
        imageElement.src = alertPic;

    }

    var elements = clone.getElementsByTagName("input");
    for (var i = 0; i < elements.length;i++){
        var name = elements[i].id;
        var start = name.substring(0,name.indexOf("tr_"));
        var end = name.substring(name.indexOf("_",name.indexOf("tr_")+3));
        var newName = start+"tr_"+(table.internalCount)+end;

        elements[i].value = "";
        elements[i].id = newName;

        validateTextValue(false, elements[i],newName);
    }
    parentNode.appendChild(clone);
    // alert(parentNode);
    setSelection(table.internalCount);

}

function checkOrderForm(){
    var elements = $("editform").getElementsByTagName("img");
    var message = null;
    for (var i = 0; i< elements.length;i++){
        if (elements[i].src.indexOf('hmepage_images/alert_round.png')>-1){
            message = 'Es wurden nicht alle Felder vollst&auml;ndig/fehlerfrei ausgef&uuml;llt';

        }
    }
    var ageElement = $("age");
    var agbElement = $("agb");
    if (!ageElement.checked){
        message= "Die Altersbest&auml;tigung wurde nicht ausgew&auml;hlt.";
    }
    else if (!agbElement.checked){
        message = "Die AGB wurden nicht best&auml;tigt";
    }

    if ($("advertisment").value){
        var checkV = syncSoap("checkAdvisementCode", new Array($("advertisment").value));
        if (checkV == 'true' || checkV == true){

        }
        else {
            message = "Der eingegebene Gutscheincode ist ung&uuml;ltig!";
        }
    }

    var tableElement  = $("contentTable");
    var childs = tableElement.getElementsByTagName("tr");
    for (var i = 0;i < childs.length;i++){
        if (childs[i].id.indexOf('tr_')>-1){
            var inputName = "input_"+childs[i].id+"_td";
            var card = $(inputName+"_cards");
            var bus =  $(inputName+"_busses");
            var city = $(inputName+"_citys");
            var count = $(inputName+"_count");
            var vid = $("vid").value;

            if (bus){
                if (bus.getAttribute("optional") == 'false' && (!bus.object || !city.object)){
                    message = "Eine Position wurde nicht vollst&auml;ndig/richtig ausgef&uuml;llt."
                    break;
                }
            }
            else if (card){
                if (card.getAttribute("optional") == 'false' && !card.object){
                    message = "Eine Position wurde nicht vollst&auml;ndig/richtig ausgef&uuml;llt."
                    break;
                }
            }

            if (bus && bus.getAttribute("optional") == 'false'){
                var bid = bus.object.bus.id;
                var aid = city.object.id;
                //  var karten_id = card.object.id;
                req = createXMLHttpRequest();
                req.open('get', "http://"+location.host+"/com.hme.web.new-war/RequestProvider?type=cardsLeft&aid="+aid+"&bid="+bid+"&vid="+vid,false);
                req.send(null);
                var rest= req.responseText;
                var anzahl = count.value;

                if (Number(anzahl) > Number(rest)){
                    if (!message){
                        message = "";
                    }
                    message += " Die ausgew&auml;hlte Kartenmenge ist f&uuml;r ("+bus.value+" aus "+city.value+") nicht mehr verf&uuml;gbar <br>";
                }
            }

        }
    }
    if (message){

        $("messageField_img").src = 'hmepage_images/32/alert_round.png';
        $("messageField_message").innerHTML = message;
        $("messageField").style.display='block';
        $("messageField").scrollTo();
        return false;
    }
    else {
        return true;
    }
}
function getDataAccount(){
    var xml = getLoggedInUserData();
    fillFormFields(xml);


}
function getDataCustomer(loggedInUser){
    if (loggedInUser){
         var xml = getUserData('currentuser','currentuser');
    fillFormFields(xml,true);
    }
    else {
         var xml = getUserData($("uniqueid").value,$("uniquepassword").value);
    fillFormFields(xml);
    }
   
}
function recoverPassword(){
    if (!$('uniqueemail').value){
        alert("Bitte Emailaddresse angeben");
    }
    req = createXMLHttpRequest();
    req.open('get', "http://"+location.host+"/com.hme.web.new-war/RequestProvider?type=recoverpassword&email="+$('uniqueemail').value,false);
    req.send(null);
    alert('Wenn führ Ihre EMailaddresse Daten hinterlegt sind, sollte nun eine EMail zu Ihnen unterwegs sein.')
}
function fillFormFields(xml,loggedInUser){
    if (xml){
        try {
       var mainChild= xml.getElementsByTagName("head")[0];

        var childs = mainChild.childNodes;
        var kunde = createObjectFromXml(childs[0]);
        var adresse = createObjectFromXml(childs[1]);

        var form = $("editform");
        form.kunde = kunde;
        setDisabledValue("customerid",kunde.customerid,true);
        setDisabledValue("vorname",kunde.vorname,true);
        setDisabledValue("nachname",kunde.nachname,true);
        setDisabledValue("email",kunde.email,true);

        form.adresse = adresse;

        setDisabledValue("strasse", adresse.strasse, false);
        setDisabledValue("plz", adresse.plz, false);
        setDisabledValue("ort", adresse.ort, false);
        setDisabledValue("telefon", adresse.telefon, false);
        setDisabledValue("handy", adresse.handy, false);
        setDisabledValue("msn", adresse.msn, false);
        setDisabledValue("skype", adresse.skype, false);
        setDisabledValue("icq", adresse.icq, false);

        /*/ $("vorname").setValue(kunde.vorname);
       $("nachname").setValue(kunde.nachname);
       $("email").setValue(kunde.email);
         */
        
        $("customerBox").style.display='none';
        }
        catch(e){
              if (!loggedInUser){
             alert("Keine passenden Kundendaten gefunden");
              }
        }
    }
    else {
        if (!loggedInUser){
        alert("Keine passenden Kundendaten gefunden");
        }
    }
}

function setDisabledValue(name,value,disabled){
    if (value && value != 'null'){
        $(name).value=value;
        checkFormField($(name),null);
        $(name).disabled = disabled;
        $(name).onchange();
    }
}

function createObjectFromXml(child){
    var obj = new Object();

        obj.name = child.nodeName;

        var nodes = child.childNodes;
        for (var i =0; i < nodes.length;i++){
            obj[nodes[i].nodeName.toLowerCase()]=nodes[i].childNodes[0].nodeValue;
        }
    
    return obj;
}


/**
 *
 */
function openDialog(divName,content,width,height,alignComponent,withoutBackground){
    var divCon = $(divName);
    if (divCon){
        divCon.parentNode.removeChild(divCon);
        divCon = null;
    }
    if (!divCon){
        var div=null;//document.createElement("div");
        if (document.all){
            if (withoutBackground){
            div =document.createElement("<div style='position:absolute;background-color:transparent;z-index:9999;border:0px;'>");
            }
            else {
                  div =document.createElement("<div style='position:absolute;background-color:white;z-index:9999;border:1px solid black;'>");
            }
        // div.setAttribute("style", "position:absolute;background-color:white;z-index:9999;border:1px solid black;");
        }
        else {
            div=document.createElement("div");
             if (withoutBackground){
            div.setAttribute("style", "position:absolute;background-color:transparent;z-index:9999;border:0px;");
             }
             else {
                   div.setAttribute("style", "position:absolute;background-color:white;z-index:9999;border:1px solid black;");
             }
       // div.style='position:absolute;background-color:white;z-index:9999;border:1px solid black;';
        // div =document.createElement("<div style='position:absolute;background-color:white;z-index:9999;border:1px solid black;'>");
        }
        div.id = divName;
        if ($("bd")){
            $("bd").appendChild(div);
        }
        else {
            if ($("mainDiv"))
            $("mainDiv").appendChild(div);
        else return;

        }
        document.currentDialog = div;
    }
   
    showModalDiv(width, height, divName,false,alignComponent);

    try {
        var d = $(divName);
        // d.childNodes[0].height = height;
        document.currentDialog = d;
        d.innerHTML = content;

        d.childNodes[0].setAttribute("style","height:"+height+"px;");
        d.childNodes[0].setAttribute("style","width:"+width+"px;");
    //d.elements[0].style.height = height;

    }
    catch (e){

    }

}

function showLoadDiv(content) {

    // if (document.getElementById('shadowDiv').style.display == 'none' ) {

    // otherwise a modal dialog ist allready present
   
    openDialog("messageLoadDiv",content,190, 100, false);

//    }
}
function openLoadingScreen(text,modal){
   
    var content =  "<table cellspacing='0' cellpadding='0' width='100%' style='background-color:#C6D4EE;'><tr style='background-color:#77A3EF;font-size:10pt;font-family:arial;font-weight:bold;'><td>Lade...</td></tr><tr style='font-size:10pt;font-family:arial;font-weight:bold;'><td align='center'>"+text+"</td>"+"</tr><tr><td align='center'><img src='hmepage_images/ajax-loader(2).gif'></td></tr></table>";

    
    //var timeOutValue = setTimeout(showLoadDiv, 750,content);
    if (document.currentTimeOut){
        clearTimeout(document.currentTimeOut);
        document.currentTimeOut = null;
    }
    if (document.currentDialog){
        document.currentDialog.style.display='none';
        document.currentDialog = null;
    }
    showLoadDiv(content);
// document.currentTimeOut = timeOutValue;
    
/*/
    sm('loading',200,50);
    /*
     var el = $("editform").loadingScreen;
     var w = $("editform").width / 2 - 75;
     var h = $("editform").height /2 -50;
     var style="position:absolute;width:120px;height:80px;top:"+h+"px;left:"+w+"px;background-color:#C6D4EE;border:1px solid #83A7F1;display:none;";
    if (!el){
        var el = document.createElement("div");
        $("editform").appendChild(el);
        el.setAttribute("style",style);
        $("editform").loadingScreen = el;
    }
    el.innerHTML = "<table cellspacing='0' cellpadding='0' width='100%'><tr style='background-color:#77A3EF;font-size:10pt;font-family:arial;font-weight:bold;'><td>Lade...</td></tr><tr style='font-size:10pt;font-family:arial;font-weight:bold;'><td align='center'>"+text+"</td>"+"</tr><tr><td align='center'><img src='hmepage_images/ajax-loader(2).gif'></td></tr></table>";
    el.focus();
    el.style.display='block';*/
}
function closeLoadingScreen(){
    // $("loading").style.display='none';
    if (document.currentTimeOut){
        clearTimeout(document.currentTimeOut);
        document.currentTimeOut = null;
    }
    if (document.currentDialog){
        document.currentDialog.style.display='none';
        document.currentDialog = null;
    }
}

function submitWinGame(){

    var kunde = new Object();
    kunde.firstname=$("vorname").value;
    kunde.name=$("nachname").value;
    kunde.email=$("email").value;
    kunde.street=$("strasse").value;
    kunde.plz=$("plz").value;
    kunde.city=$("ort").value;
    kunde.phone=$("telefon").value;
    kunde.handy=$("handy").value;
    kunde.gewinnspieleId = $("winId").value;

    var pl = new SOAPClientParameters();
    pl.add("arg0",kunde);
    var saved = SOAPClient.invoke(url, "saveGewinnspielTeilnehmer", pl, false);
    if (saved){

    }
    else {
    //alert("Anmeldung fehlgeschlagen, Email bereits schon fÃ¼r dieses Gewinnspiel registriert?");
    }
    winngame_callback();


}
var currentBooking=false;
function submitOrder(){
    if (currentBooking){
        return;
    }

    if (!checkOrderForm()){
        return;
    }
    currentBooking =true;
    openLoadingScreen("Sende Bestellung!", true);
    var form = $("editform");

    var kunde= form.kunde;
    if (!kunde)
        kunde = new Object();
    //kunde.id = $("kundeid").value;
    //kunde.customerid=$("customerid").value;
    kunde.vorname=$("vorname").value;
    kunde.nachname=$("nachname").value;
    kunde.email=$("email").value;
    // kunde.dateOfBirth=$("birth").value;
    kunde.postnuke_id=getLoggedInOid();
    var adresse =form.adresse;

    if (adresse){

        if (!compareValue(adresse.strasse,$("strasse").value) ||
            !compareValue(adresse.plz,$("plz").value) ||
            !compareValue(adresse.ort ,$("ort").value) ||
            !compareValue(adresse.telefon ,$("telefon").value) ||
            !compareValue(adresse.handy ,$("handy").value) ||
            !compareValue(adresse.msn ,$("msn").value) ||
            !compareValue(adresse.skype ,$("skype").value) ||
            !compareValue(adresse.icq ,$("icq").value)){
            adresse.id = null;
            alert("geÃ¤ndert!");
        }

    }
    if (!adresse )
        adresse = new Object();

    adresse.strasse=$("strasse").value;
    adresse.plz=$("plz").value;
    adresse.ort=$("ort").value;
    adresse.telefon=$("telefon").value;
    adresse.handy=$("handy").value;
    adresse.msn=$("msn").value;
    adresse.skype=$("skype").value;
    adresse.icq=$("icq").value;


    var buchungsoptionen = new Array();
    var tableElement  = $("contentTable");
    var childs = tableElement.getElementsByTagName("tr");
    for (var i = 0;i < childs.length;i++){
        if (childs[i].id.indexOf('tr_')>-1){
            var inputName = "input_"+childs[i].id+"_td";
            var card = $(inputName+"_cards");
            //var city = $(inputName+"_citys");
            var bus =  $(inputName+"_busses");
            var count = $(inputName+"_count");

            var option = new Object();
            if (bus && bus.object){
                option.abfahrtsorte_reference = bus.object.reference;
            }
            if (card && card.object){
                option.karten_id = card.object.id;
            }

            if (!option.abfahrtsorte_reference && !option.karten_id ){
                alert("Eine Position enthällt weder Karte noch Bus, bitte korrigieren");
                closeLoadingScreen();
                return;
                
            }

            option.anzahl = count.value;
            buchungsoptionen[buchungsoptionen.length]=option;
        //option.
        }
    }

    var buchung = new Object();
    buchung.veranstaltungs_id = $("vid").value;
    //buchung.kunden_id;
    buchung.bestaetigt=false;
    buchung.agb_bestaetigt=true;
    buchung.age_bestaetigt=true;
    buchung.note = $("notes").value;
    buchung.knowUs=$("knowus").value;
    buchung.alternateCitys=$("alternatecitys").value;
    // buchung.heared = $("hearedBox").text;
    buchung.uniqueID="fsafsasfa";
    buchung.ipAdress=$("ipadress").value;
    buchung.resellerId=$("resellerid").value;
    buchung.creationDate=new Date().getTime();

    asyncSoap("bookOrder", new Array(kunde,adresse,buchung,buchungsoptionen,$("advertisment").value),booking_callback,"Sende Bestellung! Bitte warten!");



}
function winngame_callback(result){
    var html = result;

    sendRequest('editform', "gewinnspiele.jsp");
//  new Ajax.Updater('editform', '/com.hme.web.new-war/gewinnspiele.jsp', {
//     method: 'get'
// });
//closeLoadingScreen();
//alert("Die Buchung wurde durchgefÃ¼hrt, eine EMail ist zu Ihnen unterwegs, bitte sehen Sie auch in Ihrem Spamverdachtsordner nach, da diese versehentlich auch dort landen kann!");

}

function booking_callback(req){

    var obj = new Array();
    try {
        if ( req.responseXML){
            for (var i = 0; i< req.responseXML.getElementsByTagName("root")[0].childNodes.length;i++){
                obj[obj.length] =xmlToObject(req.responseXML.getElementsByTagName("root")[0].childNodes[i]);
            }
        }


        var status= obj[0];
        var statusText = status.status;
        if (statusText && statusText.length > 0){
            alert("Fehler : "+statusText+"! Bestellvorgang abgebrochen!");
            currentBooking =false;
            closeLoadingScreen();
            return;
        }
    }
    catch(e){

    }
    currentBooking =false;
    
    sendRequest('mainDiv', 'mainContent.jsp');
    //   new Ajax.Updater('editform', '/com.hme.web.new-war/index.jsp', {
    //      method: 'get'
    //  });

    alert("Die Buchung wurde durchgefÃ¼hrt, eine EMail ist zu Ihnen unterwegs, bitte sehen Sie auch in Ihrem Spamverdachtsordner nach, da diese versehentlich auch dort landen kann!");
    closeLoadingScreen();
}

function compareValue(value,value2){
    if (value == null || value == 'null' || value == '' && value2 == null || value2 == 'null' || value2 ==''){
        return true;
    }
    else if (value == value2){
        return true;
    }
    else return false;

}

function resetRow(cloned,internalCount){
    for (var i =0; i< cloned.childNodes.length;i++){
        var node = cloned.childNodes[i];
        if (node.id && node.id.indexOf("tr_")>-1){
            var name = node.id;
            var start = name.substring(0,name.indexOf("tr_"));
            var end = name.substring(name.indexOf("_",name.indexOf("tr_")+3));
            var newName = start+"tr_"+(internalCount)+end;
            node.id = newName;
            if (node.nodeName == 'IMG' && node.id.indexOf('ident')==-1 ){
                node.src = alertPic;

            }
            else {
                node.value = null;
            }
        // alert("name = "+node.nodeName+" v "+node.nodeValue+" "+node.nodeType);
        }
        // alert("onclick = "+node.onclick);
        /*if (node.onclick&& node.onclick.toString().indexOf("tr_")>-1){
            var onclick = node.onclick.toString();
            var onclickstart = onclick.substring(0,onclick.indexOf("tr_"));
            var onclickend = onclick.substring(onclick.indexOf("_",onclick.indexOf("tr_")+3));
            var onclicknewName = onclickstart+"tr_"+(internalCount)+onclickend;
            alert(onclicknewName);
            node.onclick = onclicknewName;
        }*/
        if (node.hasChildNodes()){
            resetRow(node,internalCount);
        }


    }

}

function popupCards(divname,event){

    var element = document.getElementById(divname);
    var popupDivElement = document.getElementById(divname+"_popup");
    if (!popupDivElement){
        popupDivElement =createPopupDiv(element, event,divname);
        element.parentNode.appendChild(popupDivElement);
    }

    var innerHTML ='<table width="100%" cellspacing="0" cellpadding="0" class="popuptable"><tr class="popuptable_header"><td class="popuptable_header"></td><td class="popuptable_header" width="100%">Karte</td><td class="popuptable_header">'
    innerHTML += 'Preis</td>';
    innerHTML+='       <td align="center" width="15" class="popuptable_header"> <img src="hmepage_images/close.png" ';
    innerHTML+="  onclick=\"document.getElementById('"+divname+"_popup').style.display='none'\" />";
    innerHTML+='        </td>';
    innerHTML+=    '</tr>';

    var karten =popupDivElement.objects;
    if (!karten){

        //karten = xmlSoap("getKarten")
        karten = syncSoap("getKarten",new Array(false,document.getElementById("vid").value));
        popupDivElement.objects = karten;
    }
    if ($(divname).getAttribute("optional")=='true'){
        innerHTML += "<tr class='formtable_row"+("2")+" clickable' onclick=\"setFormValue('card','"+divname+"',-1);\" height='20'>";
        // innerHTML += '<td colspan="2"><table class="popuptable_font"  width="100%" cellspacing="0" cellpadding="0"><tr class="formtable_row'+(i%2 ? "1":"2")+"\"><td>";
        innerHTML += "<td><img src='hmepage_images/check.png' >";

        innerHTML += " </td><td>Keine Karte</td><td></td><td></td>";
    }
    for (var i = 0; i < karten.length;i++){
        var karte = karten[i];
        innerHTML += "<tr class='formtable_row"+(i%2 ? "1":"2")+" clickable' onclick=\"setFormValue('card','"+divname+"',"+i+");\" height='20'>";
        // innerHTML += '<td colspan="2"><table class="popuptable_font"  width="100%" cellspacing="0" cellpadding="0"><tr class="formtable_row'+(i%2 ? "1":"2")+"\"><td>";
        innerHTML += "<td><img src='hmepage_images/check.png' >";

        innerHTML += " </td><td>"+karte.name+"</td>";//</tr></table></td>";

        if ($("preorderdiv").getAttribute("status") == 'false'){
            innerHTML +="<td >"+Number(karte.price)+" Euro </td><td></td></tr>";
        }
        else {
            innerHTML += " </td><td>--</td>";
        }
    }

    innerHTML+="</table>";

    innerHTML+= '</tr></td>';
    innerHTML+='     </table>';
    popupDivElement.innerHTML = innerHTML;
    popupDivElement.style.display='block';

}
function absLeft(el) {
    return (el.offsetParent)?
    el.offsetLeft+absLeft(el.offsetParent) : el.offsetLeft;
}

function absTop(el) {
    return (el.offsetParent)?
    el.offsetTop+absTop(el.offsetParent) : el.offsetTop;
}
function createPopupDiv(element,event,divname){
    var popupDivElement;
    var style="position:absolute;width:"+element.offsetWidth+"px;height:100px;left:"+event.x+"px;top:"+(event.y+25)+"px;display:none;"
    if (document.all && !window.opera){
        // alert(absLeft(element)+";"+element.offsetLeft+" , "+event.x+" "+element.clientLeft+element.offsetTop+" ");
        style="position:absolute;width:"+element.offsetWidth+"px;height:100px;display:none;left:"+absLeft(element)+"px;top:"+(absTop(element)+18)+"px;";
        popupDivElement = document.createElement("<div style='"+style+"'>");

    }
    else {
        popupDivElement = document.createElement("div");
        popupDivElement.setAttribute("style",style);
    }
    popupDivElement.setAttribute("id", divname+"_popup");
    return popupDivElement;
}
function popupBusses(divname,event){

    var element = document.getElementById(divname);
    var rowName = divname.toString().substring(0,divname.toString().lastIndexOf("_"));
    var cityElement = document.getElementById(rowName+"_citys");
    var city = cityElement.object;


    var popupDivElement = document.getElementById(divname+"_popup");
    if (!popupDivElement){
        popupDivElement =createPopupDiv(element, event,divname);

        // element.parentNode.appendChild(popupDivElement);
        element.parentNode.appendChild(popupDivElement);
    }

    var innerHTML ='<table width="100%" cellspacing="0" cellpadding="0" class="popuptable"><tr class="popuptable_header"><td class="popuptable_header"></td><td class="popuptable_header" width="100%">Bus</td><td class="popuptable_header">'
    innerHTML += 'Status</td>';
    innerHTML+='       <td align="center" width="15" class="popuptable_header"> <img src="hmepage_images/close.png" ';
    innerHTML+="  onclick=\"document.getElementById('"+divname+"_popup').style.display='none'\" />";
    innerHTML+='        </td>';
    innerHTML+=    '</tr>';

    var karten = syncSoap("getBustourBusses",new Array(document.getElementById("vid").value,city.id));

    popupDivElement.objects = karten;

    for (var i = 0; i < karten.length;i++){
        var karte = karten[i];
        req = createXMLHttpRequest();
        req.open('get', "http://"+location.host+"/com.hme.web.new-war/RequestProvider?type=busstate&vid="+document.getElementById("vid").value+"&bid="+karte.bus.id+"&aid="+cityElement.object.id+"",false);
        req.send(null);
        var state= req.responseText;
        var entrys = state.split(";");
        var imageSrc = entrys[0];
        var imageText = entrys[1];
        var enabled = entrys[2];

        innerHTML += "<tr height='20' class='formtable_row"+(i%2 ? "1":"2")+""+(enabled == true || enabled == 'true'? " clickable' onclick=\"setFormValue('bus','"+divname+"',"+i+");\" ":"'")+">";
        // innerHTML += '<td colspan="2"><table class="popuptable_font"  width="100%" cellspacing="0" cellpadding="0"><tr class="formtable_row'+(i%2 ? "1":"2")+"\"><td>";
        innerHTML += "<td><img src='hmepage_images/check.png'"+">";
        innerHTML += " </td><td>"+karte.bus.name+"</td>";//</tr></table></td>";

        innerHTML +="<td align='center' ><img src='"+imageSrc+"' title='"+imageText+"'></img></td>"

        innerHTML +="<td></td></tr>";
    }

    innerHTML+="</table>";

    innerHTML+= '</tr></td>';
    innerHTML+='     </table>';
    popupDivElement.innerHTML = innerHTML;
    popupDivElement.style.display='block';

}
function popupCitys(divname,event){

    var element = document.getElementById(divname);
    var popupDivElement = document.getElementById(divname+"_popup");
    if (!popupDivElement){
        popupDivElement =createPopupDiv(element, event,divname);
        element.parentNode.appendChild(popupDivElement);
    }

    var innerHTML ='<table width="100%" cellspacing="0" cellpadding="0" class="popuptable"><tr class="popuptable_header"><td class="popuptable_header"></td><td class="popuptable_header" width="100%">Karte</td><td class="popuptable_header">'
    innerHTML += 'Kartenpreis</td>';
    innerHTML+='       <td align="center" width="15" class="popuptable_header"> <img src="hmepage_images/close.png" ';
    innerHTML+="  onclick=\"document.getElementById('"+divname+"_popup').style.display='none'\" />";
    innerHTML+='        </td>';
    innerHTML+=    '</tr>';

    var karten =popupDivElement.objects;
    if (!karten){
        karten = syncSoap("getAbfahrtsorte",new Array(false,document.getElementById("vid").value));
        popupDivElement.objects = karten;
    }
    if ($(divname).getAttribute("optional")=='true'){
        innerHTML += "<tr class='formtable_row"+("2")+" clickable' onclick=\"setFormValue('city','"+divname+"',-1);\" height='20'>";
        // innerHTML += '<td colspan="2"><table class="popuptable_font"  width="100%" cellspacing="0" cellpadding="0"><tr class="formtable_row'+(i%2 ? "1":"2")+"\"><td>";
        innerHTML += "<td><img src='hmepage_images/check.png' >";

        innerHTML += " </td><td>Keine Karte</td><td></td><td></td>";//</tr></table></td>";
    }
    for (var i = 0; i < karten.length;i++){
        var karte = karten[i];
        innerHTML += "<tr class='formtable_row"+(i%2 ? "1":"2")+" clickable' onclick=\"setFormValue('city','"+divname+"',"+i+");\">";
        // innerHTML += '<td colspan="2"><table class="popuptable_font"  width="100%" cellspacing="0" cellpadding="0"><tr class="formtable_row'+(i%2 ? "1":"2")+"\"><td>";
        innerHTML += "<td><img src='hmepage_images/check.png' >";
        innerHTML += " </td><td>"+karte.name+"</td>";//</tr></table></td>";
        if ($("preorderdiv").getAttribute("status") == 'false'){
            innerHTML +="<td >"+Number(karte.price)+" Euro </td><td></td></tr>";
        }
        else {
            innerHTML +="<td>--</td><td></td></tr>";
        }
    }

    innerHTML+="</table>";

    innerHTML+= '</tr></td>';
    innerHTML+='     </table>';
    popupDivElement.innerHTML = innerHTML;
    popupDivElement.style.display='block';

}
function setFormValue(type,divname,objectIndex){

    var element = document.getElementById(divname);
    var popupDivElement = document.getElementById(divname+"_popup");
    var rowName = divname.toString().substring(0,divname.toString().lastIndexOf("_"));
    if (objectIndex == -1){
        element.value = "";
        element.object = null;
        if (type == 'city'){
            var busElement =   document.getElementById(rowName+"_busses");
            busElement.object = null;
            busElement.value = "";
            validateTextValue(true, busElement, rowName+"_busses");
        }

        validateTextValue(true, element, divname);
        changeCount(divname);
    }
    else {
        var karte =  popupDivElement.objects[objectIndex];
        if (type =='card' || type=='bus' || type=='city'){
            element.value = karte.name;
            if (type=='bus'){
                element.value = karte.bus.name;
            }
            element.object = karte;
            if (type =='city'){
                var busElement =   document.getElementById(rowName+"_busses");
                busElement.object = null;
                busElement.value = "";
                validateTextValue('false', busElement, rowName+"_busses");
            }
            changeCount(divname);

        }
    }
    popupDivElement.style.display='none';
}

function changeCount(divname){

    var element = document.getElementById(divname);
    var rowName = divname.toString().substring(0,divname.toString().lastIndexOf("_"));
    var countElement = document.getElementById(rowName+"_count");
    var cartElement = document.getElementById(rowName+"_cards");
    var abfahrtElement = document.getElementById(rowName+"_citys");
    var totalElement = document.getElementById(rowName+"_price");
    if($("preorderdiv").getAttribute("status") =='false'){
        if (cartElement.object && abfahrtElement && abfahrtElement.object){
            var totalPrice =  (Number(cartElement.object.price)+Number(abfahrtElement.object.price))*countElement.value;
            totalElement.value = totalPrice+" Euro ";
        }
        else if (cartElement.object && (!abfahrtElement || abfahrtElement.getAttribute("optional")=='true')){
            var totalPrice =  (Number(cartElement.object.price))*countElement.value;
            totalElement.value = totalPrice+" Euro ";
        }
        else if (abfahrtElement && abfahrtElement.object && cartElement.getAttribute("optional") == 'true'){
            var totalPrice =  (Number(abfahrtElement.object.price))*countElement.value;
            totalElement.value = totalPrice+" Euro ";
        }
        else {
            totalElement.value = "";
        }
        validateTextValue($(divname).getAttribute("optional"), element,divname);
    }
    else {
        totalElement.value = " -- ";
        validateTextValue($(divname).getAttribute("optional"), element,divname);
    }


}

function setSelection(index){
    var table = document.getElementById(contentTableName);
    table.oldindex = table.index;
    table.index = index;
    var element = document.getElementById("tr_"+index);
    var oldElement = document.getElementById("tr_"+ table.oldindex);
    if (element)
        element.className = "formtable_row_selected";
    if (oldElement)
        oldElement.className = getTableColor(table.oldindex);

}
function getTableColor(c){
    return (c%2 ?"formtable_row1":"formtable_row2");
}
function removePosition(){

}
function getPosition(element)
/* der Aufruf dieser Funktion ermittelt die absoluten Koordinaten
   des Objekts element */
{
  var elem=element,tagname="",x=0,y=0;

/* solange elem ein Objekt ist und die Eigenschaft offsetTop enthaelt
   wird diese Schleife fuer das Element und all seine Offset-Eltern ausgefuehrt */
  while ((typeof(elem)=="object")&&(typeof(elem.tagName)!="undefined"))
  {
    y+=elem.offsetTop;     /* Offset des jeweiligen Elements addieren */
    x+=elem.offsetLeft;    /* Offset des jeweiligen Elements addieren */
    tagname=elem.tagName.toUpperCase(); /* tag-Name ermitteln, Grossbuchstaben */

/* wenn beim Body-tag angekommen elem fuer Abbruch auf 0 setzen */
    if (tagname=="BODY")
      elem=0;

/* wenn elem ein Objekt ist und offsetParent enthaelt
   Offset-Elternelement ermitteln */
    if (typeof(elem)=="object")
      if (typeof(elem.offsetParent)=="object")
        elem=elem.offsetParent;
  }

/* Objekt mit x und y zurueckgeben */
  position=new Object();
  position.x=x;
  position.y=y;
  return position;
}

/*############################################################################
 *
 * Modaldiv functions start
 *###################################################################################
 */
function showModalDiv(width, height, divId, hideShadow,alignComponent) {
    if (self.innerHeight){
        bodyWidth = self.innerWidth;
        bodyHeight = self.innerHeight;
    }  else if (document.documentElement && document.documentElement.clientHeight) {
        bodyWidth = document.documentElement.clientWidth;
        bodyHeight = document.documentElement.clientHeight;
    } else if (document.body) {
        bodyWidth = document.body.clientWidth;
        bodyHeight = document.body.clientHeight;
    }

    // shadowHeight = Math.max(bodyHeight);
    if ( divId ) {
        if (height ){

            var scrOfX = 0, scrOfY = 0;

            if( typeof( window.pageYOffset ) == 'number' ) {
                //Netscape compliant
                scrOfY = window.pageYOffset;
                scrOfX = window.pageXOffset;
            } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
                //DOM compliant
                scrOfY = document.body.scrollTop;
                scrOfX = document.body.scrollLeft;
            } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
                //IE6 standards compliant mode
                scrOfY = document.documentElement.scrollTop;
                scrOfX = document.documentElement.scrollLeft;
            }

            var top = ( Math.ceil((bodyHeight - height) / 2) + scrOfY) + 'px';
          
            document.getElementById(divId).style.top = top;
        }
        if (!alignComponent){
            document.getElementById(divId).style.left = ( ( ( bodyWidth - 200 - width ) / 2 ) + 200 ) + 'px';
        }
        document.getElementById(divId).style.width = width + 'px';
        if (height){
            document.getElementById(divId).style.height = height + 'px';

        }

        if (alignComponent){
            var comp = $(alignComponent);
            if (comp){
                var pos= getPosition(comp);
                var left = pos.x;
                var top2 = pos.y;

                document.getElementById(divId).style.left = left+ 'px';
                document.getElementById(divId).style.top = (top2+comp.offsetHeight)+'px';
                document.getElementById(divId).style.display = 'block';
            //window.scrollTo(0, top+comp.offsetHeight+1000);
            //document.getElementById(divId).sc
            //document.scrollto(0,1000);
            }
        }
        else {
            /*  $(divId).onresize = new function(){
                document.getElementById(divId).style.display = 'block';

                document.getElementById(divId).style.top = ( Math.ceil((bodyHeight - $(divId).clientHeight) / 2) + document.documentElement.scrollTop ) + 'px';
            }*/
            document.getElementById(divId).style.display = 'block';

        }
    } else {
        document.getElementById('modalMessageDiv').style.top = ( Math.ceil((bodyHeight - height) / 2) + document.documentElement.scrollTop ) + 'px';
        document.getElementById('modalMessageDiv').style.left = ( ( ( bodyWidth - 200 - width ) / 2 ) + 200 ) + 'px';
        document.getElementById('modalMessageDiv').style.width = width + 'px';
        document.getElementById('modalMessageDiv').style.height = height + 'px';
        document.getElementById('modalMessageDiv').style.display = 'block';
    }
    /*if (!hideShadow) {
        document.getElementById('shadowDiv').style.height = shadowHeight + 'px';
        document.getElementById('shadowDiv').style.display = 'block';
    }
    if ( navigator.userAgent.indexOf('MSIE') >= 0 ) {
        showIEHelper(bodyWidth, shadowHeight);
    }*/
    if (alignComponent){
//window.scrollTo(0,1000);
}
//fokussieren des ersten nicht versteckten Feldes im geladenen Formular
   
}



