/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
var url ="http://"+document.location.host+"/DataProviderService/DataProvider";
function addNewsletterAddress(){
    var email =document.getElementById('emailField').value
    var pl = new SOAPClientParameters();
    pl.add("arg0",email);
    var result = SOAPClient.invoke(url, "addNewsletterReceiver", pl, false, null);
    var bool =(result[0].bool);
    if (bool == 'true'){
        alert("Ihre EMailadresse wurde unserem Verteiler hinzugefügt");
    }else {
        alert("Ihre EMailadresse konnte nicht hinzugefügt werden. (Schon eingetragen?)");
    }
}

function filterCustomers(){
    var vorname = $('vorname').value;
      var nachname = $('nachname').value;
        var customerId = $('customerId').value;
          var email = $('email').value;
          syncRequest('editform', 'customerOverview.jsp?vorname='+vorname+"&nachname="+nachname+"&customerId="+customerId+"&email="+email)
}
function removeNewsletterAddress(){
    var email =document.getElementById('emailField').value
    var pl = new SOAPClientParameters();
    pl.add("arg0",email);
    var result =   SOAPClient.invoke(url, "removeNewsletterReceiver", pl, false, null);
    var inte =(result[0].inte);
    if (inte > 0){
        alert("Ihre EMailadresse wurde aus unserem Verteiler entfernt");
    }else {
        alert("Ihre EMailadresse konnte nicht entfernt werden, da Sie nicht eingetragen war.");
    }
}
function createGContents(){ 
    var pl = new SOAPClientParameters();
    pl.add("arg0",false);
    var veranstaltungen = SOAPClient.invoke(url, "getGewinnspiele", pl, false, null);
    createTable(new Array("Name","Startet am","Endet am"),new Array("name","date=startDate","date=endDate"),veranstaltungen,"mainTable","onGewinnspielRowSelected();")

  if (CKEDITOR.instances['mainTable_editkurzbeschreibung']) {
        CKEDITOR.remove(CKEDITOR.instances['mainTable_editkurzbeschreibung']);
    }
    CKEDITOR.replace('mainTable_editkurzbeschreibung');

    if (CKEDITOR.instances['mainTable_editbeschreibung']) {
        CKEDITOR.remove(CKEDITOR.instances['mainTable_editbeschreibung']);
    }
    CKEDITOR.replace('mainTable_editbeschreibung');



}
function createPartnerContents(){
    var pl = new SOAPClientParameters();
    pl.add("arg0",false);
    var veranstaltungen = SOAPClient.invoke(url, "getPartner", pl, false, null);
    createTable(new Array("Id","Name","Vorname","Strasse","PLZ","Ort","Provision"),new Array("id","name","vorname","strasse","plz","ort","provision"),veranstaltungen,"mainTable","onPartnerRowSelected();")
}
function showGewinnspielTeilnehmer(){
    document.getElementById("teilnehmerSub").style.display = 'block';
}
function editPreise(){
    var editBusDiv = document.getElementById("preise");
    // var busdiv  = document.getElementById("kartendiv");
    // var index = busdiv.index;
    // var value = busdiv.values[index];
    //  document.getElementById("kartendiv_name").value = value.name;
    //  document.getElementById("kartendiv_description").value = value.description;
    //  document.getElementById("kartendiv_price").value = value.price;

    editBusDiv.style.display='block';
}
function savePreise(){
    var div = document.getElementById("mainTable");
    var selectedValue = div.values[div.index];

    var busdiv  = document.getElementById("priceTable");
    var index = busdiv.index;
    var obj;

    if (index != null){
        obj = busdiv.values[index];
    }
    else {
        obj = new Object();
    }

    obj.name=  document.getElementById("preise"+"name").value;
    obj.description=  document.getElementById("preise"+"description").value;
    obj.anzahl=  document.getElementById("preise"+"anzahl").value;
    obj.gewinnspieleId = selectedValue.id;
    var pl = new SOAPClientParameters();
    pl.add("arg0",obj);
    var saved = SOAPClient.invoke(url, "saveGewinnspielPreise", pl, false, null);
    if (index != null){
        busdiv.values[index] = saved;
        appendTableChanges(new Array(saved.name,saved.active), index, "priceTable");
    }
    else {
        if (!busdiv.values){
            busdiv.values = new Array();
        }
        busdiv.values[busdiv.values.length] = saved;
        appendTableRow(new Array(saved.name,saved.active), busdiv.values.length-1, "priceTable");
        selectTableRow("priceTable", busdiv.values.length-1);
    }


    var pl2 = new SOAPClientParameters();
    pl2.add("arg0",selectedValue.id);
    var preise = SOAPClient.invoke(url, "getGewinnspielepreise", pl2, false, null);
    createTable(new Array("Name","Anzahl"),new Array("name","anzahl"),preise,"priceTable","onPreiseRowSelected();")


    document.getElementById("preise").style.display='none';
    
}

function savePartner(){

    var busdiv  = document.getElementById("mainTable");
    var index = busdiv.index;
    var obj;

    if (index != null){
        obj = busdiv.values[index];
    }
    else {
        obj = new Object();
    }

    obj.name=     document.getElementById("partner"+"name").value;
    obj.vorname= document.getElementById("partner"+"vorname").value;
    obj.strasse=  document.getElementById("partner"+"strasse").value;
    obj.plz=  document.getElementById("partner"+"plz").value;
    obj.ort=   document.getElementById("partner"+"ort").value;
    obj.provision=   document.getElementById("partner"+"provision").value ;
      obj.username=   document.getElementById("partner"+"username").value ;
          obj.password=   document.getElementById("partner"+"password").value ;
    var pl = new SOAPClientParameters();
    pl.add("arg0",obj);
    var saved = SOAPClient.invoke(url, "savePartner", pl, false, null);
    if (index != null){
        busdiv.values[index] = saved;
        appendTableChanges(new Array(saved.name,saved.active), index, "mainTable");
    }
    else {
        if (!busdiv.values){
            busdiv.values = new Array();
        }
        busdiv.values[busdiv.values.length] = saved;
        appendTableRow(new Array(saved.name,saved.active), busdiv.values.length-1, "mainTable");
        selectTableRow("mainTable", busdiv.values.length-1);
    }
    document.getElementById("mainTable_edit").style.display='none';
    sendRequest('editform', 'editReseller.jsp');
    createPartnerContents();
}
function saveGewinnspiele(){
    var busdiv  = document.getElementById("mainTable");
    var index = busdiv.index;
    var obj;

    if (index != null){
        obj = busdiv.values[index];
    }
    else {
        obj = new Object();
    }

    obj.name=  document.getElementById("mainTable_edit"+"name").value;
    //obj.partyDate=  document.getElementById("mainTable_edit"+"partyDate").value;
    var shortTextEditor = CKEDITOR.instances['mainTable_editkurzbeschreibung'];
    var descriptionEditor =    CKEDITOR.instances['mainTable_editbeschreibung'];



    var startDate = document.getElementById("mainTable_edit"+"startDate").value;
    var startDateDate = parseDefaultDate(startDate);
    var endDate = document.getElementById("mainTable_edit"+"endDate").value;
    var endDateDate = parseDefaultDate(endDate);
    obj.startDate = startDateDate;
    obj.endDate = endDateDate;

    obj.kurzbeschreibung = shortTextEditor.getData();
    obj.beschreibung= descriptionEditor.getData();

    var pl = new SOAPClientParameters();
    pl.add("arg0",obj);
    var saved = SOAPClient.invoke(url, "saveGewinnspiel", pl, false, null);
    if (index != null){
        busdiv.values[index] = saved;
        appendTableChanges(new Array(saved.name,saved.active), index, "mainTable");
    }
    else {
        if (!busdiv.values){
            busdiv.values = new Array();
        }
        busdiv.values[busdiv.values.length] = saved;
        appendTableRow(new Array(saved.name,saved.active), busdiv.values.length-1, "mainTable");
        selectTableRow("mainTable", busdiv.values.length-1);
    }
    document.getElementById("mainTable_edit").style.display='none';
    sendRequest('editform', 'editGewinnspiele.jsp');
    createGContents();
/*new Ajax.Updater('editform', '/com.hme.web.new-war/editGewinnspiele.jsp', {
        method: 'get' ,
        evalScripts:false ,
        onComplete: function(){
            createGContents();
        }
    });*/
}
function deletePreise(){
    var bussediv = document.getElementById("priceTable");
    var index = bussediv.index;
    var value = bussediv.values[index];

    var pl = new SOAPClientParameters();
    pl.add("arg0","GewinnspielPreise");
    pl.add("arg1",value.id);
    SOAPClient.invoke(url, "dropRecord", pl, false, null);
    removeTableRow(index, "priceTable");


}
function editPreise(){
    document.getElementById("preise").style.display='block';
}
function newPreise(){
    var div =document.getElementById("preise");
    div.index = null;
    var div2 =document.getElementById("preise");
    div2.index = null;
    div.style.display='block';
    clearInputFields(div);
// document.getElementById("preise").style.display='block';
}
function onPartnerRowSelected(){
    var divname ="mainTable";
    var div = document.getElementById(divname);
    var selectedValue = div.values[div.index];
    document.getElementById("partner"+"name").value =selectedValue.name;
    document.getElementById("partner"+"vorname").value = selectedValue.vorname;
    document.getElementById("partner"+"strasse").value =selectedValue.strasse;
    document.getElementById("partner"+"plz").value =selectedValue.plz;
    document.getElementById("partner"+"ort").value =selectedValue.ort;
    document.getElementById("partner"+"provision").value =selectedValue.provision;
     document.getElementById("partner"+"username").value =selectedValue.username;
          document.getElementById("partner"+"password").value =selectedValue.password;
    document.getElementById("mainTable_masterdata2").style.display='block';
    document.getElementById("mainTable_masterdata3").style.display='block';
}
function onPreiseRowSelected(){
    var divname ="priceTable";
    var div = document.getElementById(divname);
    document.getElementById("price_buttonedit").style.display='block';
    document.getElementById("price_buttondelete").style.display='block';
    var selectedValue = div.values[div.index];
    document.getElementById("preise"+"name").value =selectedValue.name;
    document.getElementById("preise"+"description").value = selectedValue.description;
    document.getElementById("preise"+"anzahl").value =selectedValue.anzahl;
}
function onGewinnspielRowSelected(){
    var divname ="mainTable";
    var div = document.getElementById(divname);
    var selectedValue = div.values[div.index];
    var buttonMasterDate = document.getElementById(divname+"_masterdata");
    buttonMasterDate.style.display = 'block';
    var buttonTourplan = document.getElementById(divname+"_masterdata2");
    buttonTourplan.style.display = 'block';

  
    document.getElementById("mainTable_edit"+"startDate").value = longToDateString(selectedValue.startDate);
    document.getElementById("mainTable_edit"+"endDate").value = longToDateString(selectedValue.endDate);
     var shortTextEditor = CKEDITOR.instances['mainTable_editkurzbeschreibung'];
    var descriptionEditor =    CKEDITOR.instances['mainTable_editbeschreibung'];
 
    shortTextEditor.setData(getData(selectedValue.kurzbeschreibung));
    descriptionEditor.setData(getData(selectedValue.beschreibung));

    var pl = new SOAPClientParameters();
    pl.add("arg0",selectedValue.id);
    var preise = SOAPClient.invoke(url, "getGewinnspielepreise", pl, false, null);
    createTable(new Array("Name","Anzahl"),new Array("name","anzahl"),preise,"priceTable","onPreiseRowSelected();")


    pl = new SOAPClientParameters();
    pl.add("arg0",selectedValue.id);
    var preise = SOAPClient.invoke(url, "getGewinnspieleTeilnehmer", pl, false, null);
    createTable(new Array("Vorname","Nachname","Stadt","Email","Beantwortet am"),new Array("firstName","name","city","email","date=answeredAt"),preise,"teilnehmerTable","")

//  fillMasterData("Busse", "masterDataBuss");
//  fillMasterData("Karten", "masterDataKarten");
//  fillMasterData("Abfahrtsorte", "masterDataAbfahrten");

//   var tourplanData = document.getElementById("tourplanData");
//   if (tourplanData && tourplanData.style.display == 'block')
//       showTourplan();

}

function showGewinnspielPreise(){
    document.getElementById("preiseSub").style.display = 'block';
}

function createVContents(from){
    openLoadingScreen("öffne",true);
    if (!from){
        from = new Date().getTime();
    }
    var pl = new SOAPClientParameters();
    pl.add("arg0",from);
    var veranstaltungen = SOAPClient.invoke(url, "getVeranstaltungenFrom", pl, false, null);
    document.getElementById("fromFilterDate").value=longToDateString(from);
    createTable(new Array("Name","Aktiv"),new Array("name","active"),veranstaltungen,"mainTable","onTravelRowSelected();")

    //pl = new SOAPClientParameters();
    //pl.add("arg0",true);
    var busse = getMasterData("Busse");//SOAPClient.invoke(url, "getBusse", pl, false, null);
    
    var editors = new Array();
    editors[0] = new editor(3,checkOpener,"personCount","currency");
    editors[1] = new editor(1,checkOpener,"name","text");
    var widths = new Array("50%","25%","35%");
    createTable(new Array("Name","Typ","Personenanzahl"),new Array("name","type","personCount"),busse,"masterDataBuss","",new checkbox("checkDaBox('masterDataBuss');"),editors,widths)
    
    var busse = getMasterData("Karten");
    
    var editors = new Array();

    editors[0] = new editor(3,checkOpener,"price","currency");
    editors[1] = new editor(1,checkOpener,"name","text");
    editors[2] = new editor(4,checkOpener,"maxCount","currency");
    var widths = new Array("50%","25%","35%","20%");
    createTable(new Array("Name","Beschreibung","Preis","Anzahl"),new Array("name","description","price","maxCount"),busse,"masterDataKarten","",new checkbox("checkDaBox('masterDataKarten');"),editors,widths)
    
    var busse = getMasterData("Abfahrtsorte");
    
    var editors = new Array();
    editors[0] = new editor(3,checkOpener,"price","currency");
    editors[1] = new editor(1,checkOpener,"name","text");
    editors[2] = new editor(2,checkOpener,"description","text");
    var widths = new Array("50%","25%","35%");
    createTable(new Array("Name","Beschreibung","Preis"),new Array("name","description","price"),busse,"masterDataAbfahrten","",new checkbox("checkDaBox('masterDataAbfahrten');"),editors,widths)


    if (CKEDITOR.instances['mainTable_editshortText']) {
        CKEDITOR.remove(CKEDITOR.instances['mainTable_editshortText']);
    }
    CKEDITOR.replace('mainTable_editshortText');

    if (CKEDITOR.instances['mainTable_editdescription']) {
        CKEDITOR.remove(CKEDITOR.instances['mainTable_editdescription']);
    }
    CKEDITOR.replace('mainTable_editdescription');

    if (CKEDITOR.instances['mainTable_editcontactInformations']) {
        CKEDITOR.remove(CKEDITOR.instances['mainTable_editcontactInformations']);
    }
    CKEDITOR.replace('mainTable_editcontactInformations');
    
   closeLoadingScreen();
}

function getMasterData(name,divname){
    var mainTable = document.getElementById("mainTable");
    var div = document.getElementById(divname);
    var allResults;
    /*
    if (div && div.allResults){
        if (mainTable.index != 'null' && divname){
         
            var selectionId = mainTable.values[mainTable.index].id;
            allResults = div.allResults[selectionId];
            if (allResults){
                for (var i = 0; i< allResults.length;i++){
                    if (allResults[i].parent_id >0 && (!allResults[i].defaultValue || allResults[i].defaultValue == false || allResults[i].defaultValue =='false')){
                        allResults[i].checked = true;
              
                    }
                }
            }
        }
    }*/
    if (!allResults) {
        pl = new SOAPClientParameters();
        pl.add("arg0",true);
        allResults = SOAPClient.invoke(url, "get"+name, pl, false, null,true);
    
        if (mainTable.index != 'null' && divname){
         
            var selectionId = mainTable.values[mainTable.index].id;
            var pl = new SOAPClientParameters();
            pl.add("arg0",false);
            pl.add("arg1",selectionId);
  
            var result = SOAPClient.invoke(url, "get"+name, pl, false, null,true);
            // alert(selectionId+" result = "+result);
            if (allResults){
                for (var i = 0;i < allResults.length;i++){
                    var found = false;
                    if (result){
                        for (var j = 0; j< result.length;j++){
                            if (allResults[i].id == result[j].parent_id){
                                allResults[i]=result[j];
                                allResults[i].checked = true;
                                found = true;
                            // alert("true");
                            // appendTableChanges(result[j],i,divname);
                            }
               
                        }
                   
                    }
                    if (found == false){
                        allResults[i].checked = false;
                    }
            
                }
            }
            if (div){
                if (!div.allResults){
                    div.allResults=new Array();
                }
                div.allResults[selectionId] = allResults;
            }
        }
    }
    return allResults;
}
function sendUpdateNotification(){
    var pl = new SOAPClientParameters();
    SOAPClient.invoke(url, "sendUpdateMails", pl, false, null,true);
}
function filterList(arr){
    var arr2 = new Array();
    for (var i = 0;i< arr.length;i++){
        if (arr[i].parent_id == null || arr[i].defaultValue =='true'){
            
        }
        else {
            arr2[arr2.length]=arr[i];
        }
    }
    return arr2;
}

function showTourplan(){
    var tourplanData = document.getElementById("tourplanData");
    tourplanData.style.display = 'block';
     
    var busse = filterList(getMasterData("busse","masterDataBuss"));
    var abfahrten = filterList(getMasterData("abfahrtsorte","masterDataAbfahrten"));
      
    var mainTable = document.getElementById("mainTable");
    var id = mainTable.values[mainTable.index].id;
    var pl = new SOAPClientParameters();
    pl.add("arg0",id);
    var result = SOAPClient.invoke(url, "getAbfahrtsorteReferencen", pl, false, null);
    
    var data=new Array();
    var tourData = new Array();
    var columns;
    var dataColumns;
    for (var i = 0; i< abfahrten.length;i++){
        var row = new Array();
        var tourRow = new Array();
        if (!columns){
            columns = new Array();
            dataColumns = new Array();
            dataColumns[0] = "0";
            columns[0] = "";           
            for (var k= 0; k < busse.length;k++){
                columns[k+1]=busse[k].name;
                dataColumns[k+1]=k+1;
            }
        }
      
        row[0] = abfahrten[i].name;
        
        for (var j = 0; j < busse.length;j++){
            var reference=null;
            if (result){
                for (var searchIndex=0;searchIndex< result.length;searchIndex++){
                    if (result[searchIndex].busse_id == busse[j].id && result[searchIndex].abfahrt_id == abfahrten[i].id){
                        reference = result[searchIndex];
                    }
                }
            }
            
            var uniqueCheckBoxID = "travel_X"+j+"I"+i+"_check";
            var uniqueInputID = "travel_X"+j+"I"+i+"_input";
           
            var select = "<select id='"+uniqueInputID+"_hour'>";
            for (var c = 0; c < 24;c++){
                select += "<option>"+c+"</option>";
            }
            
            var va= " <table cellspacing='0' cellpadding='0'><tr><td> ";
            va+=" <input id='"+uniqueCheckBoxID+"' type='checkbox' "+(reference?" checked ":"")+" onchange=\"if (this.checked){document.getElementById('"+uniqueInputID+"').disabled=false}else {document.getElementById('"+uniqueInputID+"').disabled=true}\" /></td>";
            va +="<td><input id='"+uniqueInputID+"' onchange=\"tourplanCheck('"+uniqueInputID+"')\" style='width:80px;' type='text' "+(reference?"value='"+formatTime(reference.abfahrtszeit)+"'":"disabled='true'")+"/></td></tr></table> ";
            row[j+1] = va;
            tourRow[j] = new TourplanData(busse[j], abfahrten[i], uniqueCheckBoxID, uniqueInputID,reference);
        //
        ////X"+j+"I"+i;
        // row[j]=new TourplanData(busse[j], abfahrten[i]);
        }
        data[data.length] = row;
        tourData[tourData.length]=tourRow;
    }
    
    tourplanData.tourData = tourData;
    createTable(columns, dataColumns,data, "tourplanTable",  null, null, null)
   
//create data array
    
}

function formatTime(value){
   
    if (value){
        var date = new Date();
        date.setTime(value);
        return fillZero(date.getHours())+":"+fillZero(date.getMinutes());
    }else {
        return "";
    }
}

function fillZero(value){
    if (value<= 9){
        return "0"+value;
    }
    else return value;
}
function tourplanCheck(uniqueInputID){
    var element = document.getElementById(uniqueInputID);
    var value = element.value;
    var date = new Date("1970/01/01 "+value);
    if (date.toString().indexOf('Invalid')>-1){  
        setTimeout(focusEditor, 100, uniqueInputID);
        alert("Zeitpunkt ist ungültig");
    }
    
    
}
function tourplanCallback(column, row){
    
}
function sendInfoMails(vid){
    var subject = document.getElementById("subject2").value;
    var notesEditor = CKEDITOR.instances['notes2'];//FCKeditorAPI.GetInstance("notes2");
    var notes = notesEditor.getData();
    var pl = new SOAPClientParameters();
    pl.add("arg0",vid);
    pl.add("arg1",subject);
    pl.add("arg2",notes);
    SOAPClient.invoke(url, "sendInfoMail", pl, false, null);
    document.getElementById('infoDialog').style.display='none';
}

function changeBookingDetails(anzahl,oid,vid,booking,callback){
    var newCount=prompt('Neue Kartenanzahl eingeben: Derzeit '+anzahl+' gebucht.',anzahl);
    openLoadingScreen("Verarbeite Änderung", true);
    var pl = new SOAPClientParameters();
    pl.add("arg0",newCount);
    pl.add("arg1",oid);
    SOAPClient.invoke(url, "setBookingDetails", pl, false, null);
    if (callback){
        callback();
    }
    else {
        loadDiv("admiDetailTable.jsp","vid="+vid+"&booking="+booking+"","bookingDetails");
    }
    closeLoadingScreen();

  
}
function getReport(vid){
    var reporturl = "http://"+document.location.host+"/com.hme.web.new-war/RequestProvider?action=generateReport&vid="+vid;
    window.open(reporturl, "Download");
}
function getCSVExport(vid){
    var reporturl = "http://"+document.location.host+"/com.hme.web.new-war/RequestProvider?action=generateCSVExport&vid="+vid;
    window.open(reporturl, "Download");
}

function generateSicherungsscheine(vid){
    var reporturl = "http://"+document.location.host+"/com.hme.web.new-war/RequestProvider?action=generateSicherungsscheine&vid="+vid;
    window.open(reporturl, "Download");
}



function sendReminderMails(vid){

    var subject = document.getElementById("subject").value;
    var notesEditor = CKEDITOR.instances['notes3'];
    
    var notes = notesEditor.getData();

    var pl = new SOAPClientParameters();
    pl.add("arg0",vid);
    pl.add("arg1",subject);
    pl.add("arg2",notes);
    SOAPClient.invoke(url, "sendVPaymentMail", pl, false, null);
    document.getElementById('reminderDialog').style.display='none';
}

function saveTourplanData(){
    openLoadingScreen("Speichere", true);
    var tourplanData = document.getElementById("tourplanData");
    var tourData = tourplanData.tourData;
    
    var drops= new Array();
    var adds = new Array();
    for (var i = 0; i< tourData.length;i++){
        for (var j=0; j < tourData[i].length;j++){
            var current = tourData[i][j];
            var checkBox = document.getElementById(current.checkboxid);
            var input = document.getElementById(current.inputid);
          
            if (checkBox.checked){
                current.drop = false;
                var longTime = 0;
                if (input.value){
                    var date = new Date("1970/01/01 "+input.value);
                    if (date.toString().indexOf('Invalid')==-1){ 
                        longTime = date.getTime();
                    } 
                }
                if (current.abfahrtsorte){
                    var mainTable = document.getElementById("mainTable");
                    var selectionId = mainTable.values[mainTable.index].id;
                    if (!current.abfahrtsorte.abfahrt_id){
                        alert('defekt');
                    }
                    current.abfahrtsorte.abfahrtszeit = longTime;
                    current.abfahrtsorte.busse_id = current.bus.id;
                    delete current.abfahrtsorte.busse;
                    delete current.abfahrtsorte.abfahrtsorte;
                    delete current.abfahrtsorte.veranstaltung;
                    //current.abfahrtsorte.busse = null;
                    current.abfahrtsorte.abfahrt_id = current.abfahrt.id;
                    // current.abfahrtsorte.abfahrtsorte =null;
                    current.abfahrtsorte.veranstaltungs_id = selectionId;
                    // current.abfahrtsorte.veranstaltung = null;
                    current.abfahrtsorte.abfahrtszeit = longTime;

                }else {
                    var mainTable = document.getElementById("mainTable");
                    var selectionId = mainTable.values[mainTable.index].id;

                    current.abfahrtsorte = new Object();
                    current.abfahrtsorte.busse_id = current.bus.id;
                    current.abfahrtsorte.abfahrt_id = current.abfahrt.id;
                    current.abfahrtsorte.veranstaltungs_id = selectionId;
                    current.abfahrtsorte.abfahrtszeit = longTime;
                }
                adds[adds.length] = current.abfahrtsorte;
            //alert("checked "+date+" "+longTime);
                
            }  
            else if (current.abfahrtsorte){
                current.drop = true;
                drops[drops.length]=current.abfahrtsorte.id;
                current.abfahrtsorte.id = null;
                current.abfahrtsorte = null;
            }
        }
    }
    
    if (drops.length > 0){
        var pl = new SOAPClientParameters();
        pl.add("arg0","AbfahrtsorteReferencen");
        pl.add("arg1",drops);
        SOAPClient.invoke(url, "dropRecords", pl, false, null);
    }
    if (adds.length > 0){
        var pl = new SOAPClientParameters();
        pl.add("arg0",adds);
        SOAPClient.invoke(url, "saveAbfahrtsorteReferencen", pl, false, null);
    }
    
    tourplanData.style.display='none';
    closeLoadingScreen();
}



function TourplanData(bus,abfahrt,checkboxid,inputid,abfahrtsorte) {
    this.bus = bus;
    this.abfahrt=abfahrt;
    this.checkboxid = checkboxid;
    this.inputid = inputid;
    this.abfahrtsorte = abfahrtsorte;
}

function saveMasterData(){
    openLoadingScreen("Speichere", true);
    var masterDataBuss = document.getElementById("masterDataBuss");
    var masterDataKarten = document.getElementById("masterDataKarten");
    var masterDataAbfahrten = document.getElementById("masterDataAbfahrten");
    var mainTable = document.getElementById("mainTable");
    var selection = mainTable.values[mainTable.index].id;
     
    var changedBusses = getSelecteFromMasterDataDiv(masterDataBuss,selection);
    var changedKarten = getSelecteFromMasterDataDiv(masterDataKarten,selection);
    var changedAbfahrten = getSelecteFromMasterDataDiv(masterDataAbfahrten,selection);

    //    alert("cb = "+changedBusses.length+" ck ) "+changedKarten.length+" ca "+changedAbfahrten.length);

    submitMasterDataChanges(changedBusses, "Busse", masterDataBuss);
    submitMasterDataChanges(changedKarten, "Karten", masterDataKarten);
    submitMasterDataChanges(changedAbfahrten, "Abfahrtsorte", masterDataAbfahrten);
    closeLoadingScreen();
    
}

function submitMasterDataChanges(arr,type,element){
    openLoadingScreen("Speichere", true);
    for (var i = 0; i< arr.length;i++){
        var value = arr[i].value;
        var internalIndex = arr[i].internalIndex;
        
        if (arr[i].add == false){
           
            var pl = new SOAPClientParameters();
            pl.add("arg0",type);
            pl.add("arg1",value.id);
            SOAPClient.invoke(url,"dropRecord" /*/"saveBusse"*/, pl, false, null,true);
            value.id = "null";
            value.defaultValue = true;
            value.parent_id = null;
            element.values[internalIndex] =value;
        }
        else { 
            var pl = new SOAPClientParameters();
            pl.add("arg0",value);
            var saved = SOAPClient.invoke(url,"save"+type /*/"saveBusse"*/, pl, false, null,true);
            
            element.values[internalIndex] = saved;
        }
    }
    //var mainTable = document.getElementById("mainTable");

    //var selectionId = mainTable.values[mainTable.index].id;

    //element.allResults[selectionId] = element.values;
    $("masterData").style.display='none';
    closeLoadingScreen();
}


function valuemarker(value,internalIndex,add) {
    this.value = value;
    this.internalIndex = internalIndex;
    this.add=add;
}

function getSelecteFromMasterDataDiv(element,selection){
    var arr = new Array();
    var values = element.values;
    for (var i = 0;i < values.length;i++){
        var checkBox = document.getElementById(element.id+"tr"+i+"checkbox");
        if (checkBox){
            if (checkBox.checked){
                if (values[i].defaultValue == 'true' || values[i].defaultValue == true){
                    values[i].defaultValue = false;
                    values[i].parent_id = values[i].id;
                    values[i].id = "null";
                      
                }
                values[i].veranstaltungs_id = selection;
                arr[arr.length] = new valuemarker(values[i],i,true);
                 
            }
            else if ((!values[i].defaultValue ||values[i].defaultValue == 'false' || values[i].defaultValue == false) && values[i].id != 0 &&  values[i].id != 'null'){
                arr[arr.length] = new valuemarker(values[i],i,false);
            }
            values[i]['checked'] = null;
        }
        
       
    }
    return arr;
}

function checkOpener(divname){
    var div = document.getElementById(divname);
    var index = div.index;
    var checkBox = document.getElementById(divname+"tr"+index+"checkbox");
    return checkBox ? checkBox.checked:false;  
}

function showStammdaten(){
    fillMasterData("Busse", "masterDataBuss");
    fillMasterData("Karten", "masterDataKarten");
    fillMasterData("Abfahrtsorte", "masterDataAbfahrten");
    document.getElementById("masterData").style.display = 'block';
}

function stammdatenValuesCheck(divname){
    var div = document.getElementById(divname);
    for (var i =0; i< div.values.length;i++){
        var check = document.getElementById(divname+"tr"+i+"checkbox");
        var row = document.getElementById(divname+"tr"+i);
        validateRow(row,div,check.checked);
         
    }
}
function validateRow(element,div,checked){
    var editors = div.editors;
    for (var i = 0; i< editors.length;i++){
        var name =  element.id+"td"+(editors[i].column);
        var image = name+"_statusimg";
        if (checked){
            document.getElementById(image).src="hmepage_images/document.png";
        }
        else {
            document.getElementById(image).src="hmepage_images/empty.png";
        }
    }
    
}
function checkDaBox(divname){
    var div = document.getElementById(divname);
    var index = div.index;
    var check = document.getElementById(divname+"tr"+index+"checkbox");
    var row = document.getElementById(divname+"tr"+index);
        
    validateRow(row,div, check.checked)
}
function getData(value){
    if (value && value['#text']){
        return value['#text']
    }
    else if (value){
        return value;
    }
    else return "";
}

function resendEmail(id){
    syncSoap("resendBookingMail", new Array(id+""));
    alert("Gesendet "+id)
}
function onTravelRowSelected(){
    document.getElementById("masterData").style.display = 'none';
    openLoadingScreen("Daten werden geladen! Momentchen", true);
    var divname ="mainTable";
    var div = document.getElementById(divname);
    var buttonMasterDate = document.getElementById(divname+"_masterdata");
    buttonMasterDate.style.display = 'block';
    var buttonTourplan = document.getElementById(divname+"_tourplan");
    buttonTourplan.style.display = 'block';

    var selectedValue = div.values[div.index];
    document.getElementById("mainTable_edit"+"partyDate").value = longToDateString(selectedValue.partyDate);


    document.getElementById("mainTable_edit"+"onlyCards").checked=selectedValue.onlyCards;
    document.getElementById("mainTable_edit"+"outOfTickets").checked=selectedValue.outOfTickets;
    document.getElementById("mainTable_edit"+"billingShortCode").value=selectedValue.billingShortCode;
    document.getElementById("mainTable_edit"+"noCardsPossible").checked=selectedValue.noCardsPossible;
    document.getElementById("mainTable_edit"+"noBusPossible").checked=selectedValue.noBusPossible;
    document.getElementById("mainTable_edit"+"preReservationMode").checked=selectedValue.preReservationMode;
        
CKEDITOR.instances['mainTable_editshortText'].setData(getData(selectedValue.shortText));
CKEDITOR.instances['mainTable_editdescription'].setData(getData(selectedValue.description));
CKEDITOR.instances['mainTable_editcontactInformations'].setData(getData(selectedValue.contactInformations));
    //shortTextEditor.SetHTML(getData(selectedValue.shortText));
    //descriptionEditor.SetHTML(getData(selectedValue.description));
    //contactInformationEditor.SetHTML(getData(selectedValue.contactInformations));

  
    
  
    var tourplanData = document.getElementById("tourplanData");
    if (tourplanData && tourplanData.style.display == 'block')
        showTourplan();

    closeLoadingScreen();
}

function fillMasterData( name, divname){
    document.getElementById(divname).innerHTML = "";
    var vals = getMasterData(name, divname);
    var divElement = document.getElementById(divname);
    refillData(vals, divname);
    
    setTimeout(revalidateCheckBox, 100, divname);
}

function revalidateCheckBox(divname){
    var div = document.getElementById(divname);
    if (div.values){
        var values = div.values;
        for (var i = 0; i< values.length;i++){
            var element = document.getElementById(divname+"tr"+i+"checkbox");
            if (values[i].checked == true || values[i].checked == 'true'){
                element.checked = true;
            }
            else {
                element.checked =false;
            }
            
        }
    }
}

function saveVeranstaltung(){
    var busdiv  = document.getElementById("mainTable");
    var index = busdiv.index;
    var obj;
  
    if (index != null){
        obj = busdiv.values[index];
    }
    else {
        obj = new Object();
    }
   
    obj.name=  document.getElementById("mainTable_edit"+"name").value;
    obj.active = document.getElementById("mainTable_edit"+"active").checked;
    
    obj.onlyCards = document.getElementById("mainTable_edit"+"onlyCards").checked;
    obj.outOfTickets = document.getElementById("mainTable_edit"+"outOfTickets").checked;
    obj.billingShortCode = document.getElementById("mainTable_edit"+"billingShortCode").value;
    obj.noCardsPossible = document.getElementById("mainTable_edit"+"noCardsPossible").checked;
    obj.noBusPossible = document.getElementById("mainTable_edit"+"noBusPossible").checked;
    obj.preReservationMode = document.getElementById("mainTable_edit"+"preReservationMode").checked;
    //obj.partyDate=  document.getElementById("mainTable_edit"+"partyDate").value;
    var shortTextEditor = CKEDITOR.instances["mainTable_edit"+"shortText"];
    var descriptionEditor = CKEDITOR.instances["mainTable_edit"+"description"];
    var contactInformationEditor = CKEDITOR.instances["mainTable_edit"+"contactInformations"];
    var partyDate = document.getElementById("mainTable_edit"+"partyDate").value;
    var date = parseDefaultDate(partyDate);
    obj.partyDate = date;
  
    obj.minAge = document.getElementById("mainTable_edit"+"minAge").value;
    obj.shortText= shortTextEditor.getData();

    obj.description = descriptionEditor.getData();
    obj.contactInformations= contactInformationEditor.getData();


    var pl = new SOAPClientParameters();
    pl.add("arg0",obj);
    var saved = SOAPClient.invoke(url, "saveVeranstaltung", pl, false, null);
    if (index != null){
        busdiv.values[index] = saved;
        appendTableChanges(new Array(saved.name,saved.active), index, "mainTable");
    }
    else {    
     
        busdiv.values[busdiv.values.length] = saved;
        appendTableRow(new Array(saved.name,saved.active), busdiv.values.length-1, "mainTable");
        selectTableRow("mainTable", busdiv.values.length-1);
    }
    document.getElementById("mainTable_edit").style.display='none';
    sendRequest('editform','veranstaltungs_admin.jsp');
    createVContents();
/* new Ajax.Updater('editform', '/com.hme.web.new-war/veranstaltungs_admin.jsp', {
        method: 'get' ,
        evalScripts:false ,
        onComplete: function(){
            createVContents();
        }
    });*/
}

function reloadVeranstaltung(){

    var dateField = document.getElementById("fromFilterDate");
    var fromDate =  parseDefaultDate(dateField.value);
    //alert(fromDate);
    document.getElementById("mainTable_edit").style.display='none';
    sendRequest('editform','veranstaltungs_admin.jsp');
    createVContents(fromDate);
/*new Ajax.Updater('editform', '/com.hme.web.new-war/veranstaltungs_admin.jsp', {
        method: 'get' ,
        evalScripts:false ,
        onComplete: function(){
            createVContents(fromDate);
        }
    });*/
}
function reloadBookingAdmin(){

    var dateField = document.getElementById("fromFilterDate");
    if (dateField.value && dateField.value.length > 0)
        var fromDate =  parseDefaultDate(dateField.value);
    var orderField = document.getElementById("orderField");
    sendRequest('editform','bookings_admin.jsp?fromDate='+fromDate+"&orderField="+orderField.value);

/*  new Ajax.Updater('editform', '/com.hme.web.new-war/bookings_admin.jsp?fromDate='+fromDate+"&orderField="+orderField.value, {
        method: 'get' ,
        evalScripts:true ,
        onComplete:function(){
            closeLoadingScreen();
        }
    });*/
}
function deleteVeranstaltung(){
    var bussediv = document.getElementById("mainTable");
    var index = bussediv.index;
    var value = bussediv.values[index]; 

    var pl = new SOAPClientParameters();
    pl.add("arg0","Veranstaltungen");
    pl.add("arg1",value.id);
    SOAPClient.invoke(url, "dropRecord", pl, false, null);
    removeTableRow(index, "mainTable");
}
function deletePartner(){
    var bussediv = document.getElementById("mainTable");
    var index = bussediv.index;
    var value = bussediv.values[index];

    var pl = new SOAPClientParameters();
    pl.add("arg0","Reseller");
    pl.add("arg1",value.id);
    SOAPClient.invoke(url, "dropRecord", pl, false, null);
    removeTableRow(index, "mainTable");
}
function deleteGewinnspiel(){
    var bussediv = document.getElementById("mainTable");
    var index = bussediv.index;
    var value = bussediv.values[index];

    var pl = new SOAPClientParameters();
    pl.add("arg0","Gewinnspiele");
    pl.add("arg1",value.id);
    SOAPClient.invoke(url, "dropRecord", pl, false, null);
    removeTableRow(index, "mainTable");
}
function newVeranstaltung(){
    var editBusDiv = document.getElementById("mainTable_edit");
    var busdiv  = document.getElementById("mainTable");
    busdiv.index = null;
    editBusDiv.style.display='block';
    clearInputFields(editBusDiv);
}


function newPartner(){
    var editBusDiv = document.getElementById("mainTable_edit");
    var busdiv  = document.getElementById("mainTable");
    busdiv.index = null;
    editBusDiv.style.display='block';
    clearInputFields(editBusDiv);
}
function newGewinnspiel(){
    var editBusDiv = document.getElementById("mainTable_edit");
    var busdiv  = document.getElementById("mainTable");
    busdiv.index = null;
    editBusDiv.style.display='block';
    clearInputFields(editBusDiv);
}
function editPartner(){
    var editBusDiv = document.getElementById("mainTable_edit");
    /*/ var busdiv  = document.getElementById("mainTable");
    var index = busdiv.index;
    var value = busdiv.values[index];
 /*   document.getElementById("karten_name").value = value.name;
    document.getElementById("karten_description").value = value.description;
    document.getElementById("karten_preis").value = value.price;*/
    checkInternalTypes("mainTable_edit");
    editBusDiv.style.display='block';
}
function editGewinnspiel(){
    var editBusDiv = document.getElementById("mainTable_edit");
    /*/ var busdiv  = document.getElementById("mainTable");
    var index = busdiv.index;
    var value = busdiv.values[index];
 /*   document.getElementById("karten_name").value = value.name;
    document.getElementById("karten_description").value = value.description;
    document.getElementById("karten_preis").value = value.price;*/
    checkInternalTypes("mainTable_edit");
    editBusDiv.style.display='block';
}

function editVeranstaltung(){
    var editBusDiv = document.getElementById("mainTable_edit");
    /*/ var busdiv  = document.getElementById("mainTable");
    var index = busdiv.index;
    var value = busdiv.values[index];
 /*   document.getElementById("karten_name").value = value.name;
    document.getElementById("karten_description").value = value.description;
    document.getElementById("karten_preis").value = value.price;*/
    checkInternalTypes("mainTable_edit");
    editBusDiv.style.display='block';
}


