function formatDateDojo(vForm, alter) {
    var depdate;
    var retdate;
    try {
        if (alter != null && alter.length > 0) {
            depdate = dojo.widget.byId("dojoDepDate" + alter).getDate();
            if (dojo.widget.byId("dojoRetDate" + alter) != null) {
                retdate = dojo.widget.byId("dojoRetDate" + alter).getDate();
                document.forms[vForm].retDate.value = dojo.date.format(retdate, { selector:"dateOnly", datePattern:"dd.MM.yyyy" });
            }
        } else {
            depdate = dojo.widget.byId("dojoDepDate").getDate();
            if (dojo.widget.byId("dojoRetDate") != null) {
                retdate = dojo.widget.byId("dojoRetDate").getDate();
                document.forms[vForm].retDate.value = dojo.date.format(retdate, { selector:"dateOnly", datePattern:"dd.MM.yyyy" });
            }
        }
        document.forms[vForm].depDate.value = dojo.date.format(depdate, { selector:"dateOnly", datePattern:"dd.MM.yyyy" });
    } catch (e) {
        throw "Fehler bei der Datumskonvertierung.";
    }
}


function checkDepartureReturnTwoDojo(dep, ret, equals, alter) {
    if (dojo.widget.byId("dojoRetDate") == null) {
        return true;
    }
    if (alter == "filter") {
        if (dojo.widget.byId("dojoRetDateFilter").getDate() < dojo.widget.byId("dojoDepDateFilter").getDate()) {
            return false;
        }
        if (equals && dojo.widget.byId("dojoRetDateFilter").getDate() == dojo.widget.byId("dojoDepDateFilter").getDate()) {
            return false;
        }
    } else {
        if (dojo.widget.byId("dojoRetDate").getDate() < dojo.widget.byId("dojoDepDate").getDate()) {
            return false;
        }
        if (equals && dojo.widget.byId("dojoRetDate").getDate() == dojo.widget.byId("dojoDepDate").getDate()) {
            return false;
        }
    }
    return true;
}

function durationMatchesDojo(d1, d2, dur) {
    var t = dojo.widget.byId("dojoRetDate").getDate() - dojo.widget.byId("dojoDepDate").getDate();
}


function checkInputDojo(vForm, alter) {
    //If no hotel we could searhc for the same date.

    var includeHotel = false;
    var includeFlight = false;


    if (vForm.hotelSelected && vForm.hotelSelected.checked) {
        includeHotel = true;
    }
    if (vForm.flightSelected && vForm.flightSelected.checked) {
        includeFlight = true;
    }

    if (vForm.carSelected && vForm.carSelected.checked) {
        if (! (includeHotel || includeFlight)) {
            alert("Bitte w�hlen Sie eine weitere Leistung (Flug oder Hotel) aus.");
            return false;
        }
    } else if (vForm.carSelected && document.URL.indexOf("/fldrv/") == -1) {
        if (! (includeHotel || includeFlight)) {
            alert("Bitte w�hlen Sie Ihr gew�nschtes Produkt aus.");
            return false;
        }
    }


    //destination (dp)
    if (vForm.destName) {
        if (vForm.destName.value == "") {
            alert("Bitte ein Reiseziel angeben!");
            return false;
        }
    }

    //departures
    if (vForm.depAirport) {
        if (vForm.depAirport.value == "") {
            alert("Bitte einen Abflughafen angeben!");
            return false;
        }
    }


    //date check
    if (!checkDepartureReturnTwoDojo(vForm.depDate.value, vForm.retDate.value, includeHotel, alter)) {
        alert("Das Abflugdatum muss vor dem R�ckflugdatum liegen!");
        return false;
    }
    //duration
    if (vForm.duration && vForm.duration.value != '') {
        if (!durationMatchesDojo(vForm.depDate.value, vForm.retDate.value, vForm.duration.value)) {
            alert('Die Reisedauer liegt nicht innerhalb des gewählten Zeitraums für Abflug und Rückflug. Bitte passen Sie die Daten an!');
            return false;
        }
    }
    //room allocation (dp)
    if (vForm.roomCount && !checkRoomAllocation()) {
        alert("Die Summe der Erwachsenen in der Zimmerzuordnung stimmt nicht mit der Anzahl der reisenden Erwachsenen überein!");
        return false;
    }
    //services count (dp)

    var servCount = 0;
    var dp = false;
    var flightSelected = false;

    if (vForm.hotelSelected) {
        dp = true;
        if (vForm.hotelSelected.checked) {
            servCount = servCount + 1;
        }
    }
    if (vForm.carSelected) {
        dp = true;
        if (vForm.carSelected.checked) {
            servCount = servCount + 1;
        }
    }
    if (vForm.flightSelected) {
        dp = true;
        if (vForm.flightSelected.checked) {
            flightSelected = true;
            servCount = servCount + 1;
        } else {
            servCount = 0;
        }
    }
    var hotelSelected = false;
    if (vForm.hotelSelected) {
        dp = true;
        if (vForm.hotelSelected.checked) {
            hotelSelected = true;
        }
    }

    var railSelected = false;
    if (vForm.railSelected) {
        railSelected = vForm.railSelected.checked || vForm.railSelected.value == "on";
    }
    /*
     if (document.URL.indexOf("/dp/") > -1 && ((!flightSelected || !hotelSelected) && (!flightSelected || !carSelected) && !railSelected)){
     alert("Bitte mind. 2 Leistungen (Flug+Hotel od. Flug) wahlen!");
     return false;
     }
     */
    return true;
}


function enableDateInputDojo(val, alter) {
    if (alter == "filter") {
        if (val) {
            dojo.widget.byId("dojoDepDateFilter").enable();
            dojo.widget.byId("dojoRetDateFilter").enable();
        } else {
            if (dojo.widget.byId("dojoDepDateFilter") != null) {
                dojo.widget.byId("dojoDepDateFilter").disable();
            }
            if (dojo.widget.byId("dojoRetDateFilter") != null) {
                dojo.widget.byId("dojoRetDateFilter").disable();
            }
        }
    } else {
        depdate = dojo.widget.byId("dojoDepDate").getDate();
        retdate = dojo.widget.byId("dojoRetDate").getDate();
    }
}

function openMessageBox(top, left, txt) {
    var div = document.createElement("div");
    div.style.position = "absolute";
    div.style.width = 250;
    if (navigator.userAgent.toLowerCase().indexOf("gecko") > -1) {
        div.style.top = top;
    }
    else {
        div.style.top = top + 365;
    }
    div.style.left = left;
    div.style.padding = 5;
    div.style.fontSize = 10;
    div.style.overflow = "visible";
    div.style.border = "2px solid #A90852";
    div.style.backgroundColor = "eeeeee";
    div.innerHTML = txt + "<div style='border-top:1px solid #A90852;text-align:right'><a href='#' onclick=\"javascript:this.parentNode.parentNode.style.display='none'\">schliessen</a></div>";
    document.getElementsByTagName("body")[0].appendChild(div);
}


function openMessageBoxRel(comp, txt, top, left) {
    if (dojo.byId("msg") == null) {
        var div = document.createElement("div");
        div.setAttribute("id", "msg");
        div.style.position = "absolute";
        if (top == null) {
            div.style.top = -35;
        }
        if (left == null) {
            div.style.left = 10;
        }
        div.style.width = 200;
        div.style.padding = 3;
        div.style.fontSize = 10;
        div.style.zIndex = 300;
        div.style.overflow = "visible";
        div.style.border = "2px solid #A90852";
        div.style.backgroundColor = "ffffff";
        div.innerHTML = txt + "<div style='text-align:right'><a href='#' onclick=\"javascript:this.parentNode.parentNode.parentNode.removeChild(this.parentNode.parentNode)\">schliessen</a></div>";
        comp.parentNode.appendChild(div);
    } else {
        dojo.byId("msg").parentNode.removeChild(dojo.byId("msg"));
    }
}

function hideIfr() {
    var ifr = dojo.byId("ifr");
    if (ifr) {
        ifr.style.top = 0;
        ifr.style.left = 0;
        ifr.style.width = 0;
        ifr.style.Height = 0;
    }
}

function openMessageBox2(comp, txt, x, y) {
    if (dojo.byId("msg") == null) {
        var div = document.createElement("div");
        //div.className = "msg";
        div.setAttribute("id", "msg");
        div.style.position = "absolute";
        var ifr = dojo.byId("ifr");
        if (navigator.userAgent.indexOf("Gecko") == -1 && !ifr) {
            ifr = document.createElement("iframe");
            ifr.setAttribute("id", "ifr");
            ifr.style.position = "absolute";
            document.getElementsByTagName("body")[0].appendChild(ifr);
        }
        var absPos = dojo.html.getAbsolutePosition(comp, true);
        if (y) {
            div.style.top = absPos.y + y;
            if (ifr != null) {
                ifr.style.top = absPos.y + y;
            }
        } else {
            div.style.top = absPos.y + 10;
            if (ifr != null) {
                ifr.style.top = absPos.y + 10;
            }
        }
        if (x) {
            div.style.left = absPos.x + x;
            if (ifr != null) {
                ifr.style.left = absPos.x + x;
            }
        } else {
            div.style.left = absPos.x + 10;
            if (ifr != null) {
                ifr.style.left = absPos.x + 10;
            }
        }
        div.style.width = 200;
        div.style.padding = 3;
        div.style.fontSize = 10;
        div.style.zIndex = 3;

        div.style.overflow = "visible";
        /*			div.style.border = "2px solid #A90852";  */
        div.className = "PopupDiv";
        div.style.backgroundColor = "ffffff";
        div.innerHTML = txt + "<div style='text-align:right'><a href='#' onclick=\"javascript:this.parentNode.parentNode.parentNode.removeChild(this.parentNode.parentNode);hideIfr();\">schliessen</a></div>";
        comp.parentNode.appendChild(div);
        if (ifr != null) {
            ifr.style.width = 200;
        }
        if (ifr != null) {
            ifr.style.height = dojo.html.getBorderBox(div).height;
        }
    } else {
        comp.parentNode.removeChild(dojo.byId("msg"));
        hideIfr();
    }
}

function fixborder() {
    //alert(document.getElementById('LeftTabTable').childNodes[0].childNodes[0].childNodes[0].className);  ie
    //alert(document.getElementById('LeftTabTable').childNodes[1].childNodes[0].childNodes[1].className);   firefox

    if (document.getElementById('LeftTabTable') != null) {
        var cell;

        if (navigator.userAgent.indexOf("Gecko") > -1) {
            cell = document.getElementById('LeftTabTable').childNodes[1].childNodes[0].childNodes[1];
        }
        else /* IE */
        {
            cell = document.getElementById('LeftTabTable').childNodes[0].childNodes[0].childNodes[0];
        }

        if (cell.className == "TabActive TabActiveLeft") {
            document.getElementById('BorderTopID').className = "BorderTop2";
        }
    }
}


function adaptHeight(outer) {

    var searchDiv = $("Search");

    var leftTab = $("LeftTab");
    var flexLeft = $("FlexLeft");
    var flexLeftInner = $("FlexLeftInner");

    var rightImg = $("RightImg");
    var flexRight = $("FlexRight");
    var flexRightInner = $("FlexRightInner");

    if (searchDiv && flexLeft) {

        var boxHeight = dojo.html.getBorderBox(searchDiv).height - 200;
        var searchBorder = dojo.byId("suchRand");
        if (searchBorder == null) {
            searchBorder = document.createElement("div");
            searchBorder.setAttribute("id", "suchRand");
            searchBorder.style.position = "absolute";
            /*searchBorder.style.borderRight = "1px solid #A90852";*/
            searchBorder.className = "SearchBorderDiv";
        }
        flexLeft.style.top = 200;
        if (navigator.userAgent.indexOf("Gecko") > -1) {
            if (flexLeftInner) {
                var hh = boxHeight - 17;
                dojo.html.setMarginBox(flexLeftInner, {height:hh});
            }
            var hh = dojo.html.getMarginBoxHeight(flexLeftInner) + 5;
            if (outer) {
                dojo.html.setMarginBox(searchBorder, {height:hh,width:155});
            } else {
                dojo.html.setMarginBox(searchBorder, {height:hh,width:155});
            }
        } else {  /* IE */
            if (flexLeftInner) {
                var hh = boxHeight - 20;
                dojo.html.setMarginBox(flexLeftInner, {height:hh});
            }
            var hh = dojo.html.getMarginBoxHeight(flexLeftInner) + 5;
            if (outer) {
                dojo.html.setMarginBox(searchBorder, {height:hh,width:dojo.html.getMarginBox(dojo.byId("Subhome_Left")).width + 1 + dojo.byId("Search").offsetLeft});
            } else {
                dojo.html.setMarginBox(searchBorder, {height:hh,width:dojo.html.getMarginBox(dojo.byId("Subhome_Left")).width + 1 + dojo.byId("Search").offsetLeft});
            }
        }
        leftTab.appendChild(searchBorder);
    }
    if (searchDiv && flexRight) {
        var boxHeight = dojo.html.getBorderBox(searchDiv).height - (dojo.html.getBorderBox(rightImg).height + 8);
        flexRight.style.top = dojo.html.getBorderBox(rightImg).height + 8;
        if (navigator.userAgent.indexOf("Gecko") > -1) {
            /*flexRightInner.style.height = boxHeight - 34;*/
            flexRightInner.style.height = boxHeight - 18;
        } else {
            flexRightInner.style.height = boxHeight - 22;
        }
    }
}

function pcto_dis() {
    if (document.createElement) {
        var cto_dis_im = document.createElement('IFRAME');
        if (cto_dis_im) {
            cto_dis_im.width = '1px';
            cto_dis_im.height = '1px';
            cto_dis_im.style.display = 'none';
            cto_dis_im.src = 'http://dis.criteo.com/dis/dis.aspx?p=3705&c=2&cb=' + Math.floor(Math.random() * 99999999999);
            var cto_dis_doc = document.getElementById('pcto_dis_div');
            if (cto_dis_doc !== null && cto_dis_doc.appendChild) {
                cto_dis_doc.appendChild(cto_dis_im);
            }
        }
    }
}

