var ta_use_cookies = "unsure";

function _getAbsoluteCookie(name) {
    var result = null;
    var myCookie = " " + document.cookie + ";";
    // alert(myCookie);
    var searchName = " " + name + "=";
    var startOfCookie = myCookie.indexOf(searchName);
    var endOfCookie;
    if (startOfCookie != -1) {
        startOfCookie += searchName.length; // skip past name of cookie
        endOfCookie = myCookie.indexOf(";", startOfCookie);
        result = myCookie.substring(startOfCookie, endOfCookie);
    }
    return result;
}

function _setAbsoluteCookie(name, value) {
    document.cookie = name + "=" + value + "; PATH=/tripsearch/";
    document.cookie = name + "=" + value + "; PATH=/";
}


function SetCookie(name, value) {

    var escapedValue = "#"+escape(value)+"#";

    if (escapedValue == "##" || escapedValue == "# #" || escapedValue == "#null#") {
        removeCookie(name);
        return;
    }

    // cookie syntax : memory=/key1/#escape(value1)#/key2/#escape(value2)#; PATH=/tripsearch/
    //                 memory=/key1/#escape(value1)#/key2/#escape(value2)#; PATH=/

    var masterCookie = _getAbsoluteCookie("memory");

    var key = "/"+name+"/";

    if (masterCookie == null) {
        masterCookie = key + escapedValue;
    } else {
        var ind = masterCookie.indexOf(key);
        if (ind != -1) {
            var endInd = masterCookie.indexOf("/",ind + key.length);
            if (endInd != -1) {
                masterCookie = masterCookie.substring(0,ind) + key + escapedValue + masterCookie.substring(endInd);
            } else {
                masterCookie = masterCookie.substring(0,ind) + key + escapedValue;
            }
        } else {
            masterCookie = masterCookie + key + escapedValue;
        }
    }

    _setAbsoluteCookie("memory",masterCookie);
}

function removeCookie(name) {
    var masterCookie = _getAbsoluteCookie("memory");

    var key = "/"+name+"/";

    if (masterCookie != null) {
        var ind = masterCookie.indexOf(key);
        if (ind != -1) {
            var endInd = masterCookie.indexOf("/",ind + key.length);
            if (endInd != -1) {
                masterCookie = masterCookie.substring(0,ind) + masterCookie.substring(endInd);
            } else {
                masterCookie = masterCookie.substring(0,ind);
            }
            _setAbsoluteCookie("memory",masterCookie);
        }
    }
}

function GetCookie(name) {
    // cookie syntax : memory=/key1/#escape(value1)#/key2/#escape(value2)#; PATH=/tripsearch/
    //                 memory=/key1/#escape(value1)#/key2/#escape(value2)#; PATH=/
    //                 memory=/key1/#escape(value1)#/key2/#escape(value2)#; PATH=/

    var masterCookie = _getAbsoluteCookie("memory");
    var key = "/"+name+"/";

    if (masterCookie != null) {
        var ind = masterCookie.indexOf(key);
        if (ind != -1) {
            var endInd = masterCookie.indexOf("/",ind + key.length);
            var result = null;
            if (endInd != -1) {
                result = masterCookie.substring(ind+key.length+1,endInd-1)
            } else {
                result = masterCookie.substring(ind+key.length+1,masterCookie.length-1)
            }
            result = unescape(result);
            return result;
        }
    }
    return null;
}

function saveValue(element) {
    var val = null;
    if (document.images && ta_use_cookies == "unsure") {
        if ((element.type == "text") || (element.type == "password") || (element.type == "textarea") || (element.type == "radio")) {
            val = element.value;
        }
        else if (element.type.indexOf("select") != -1) {
            val = "";
            for(k=0;k<element.length;k++)
                if (element.options[k].selected)
                    val += k+" ";
        } else if (element.type == "checkbox") {
            val = element.checked;
        }
        //SetCookie("memory_"+element.name,val);
        SetCookie(element.name,val);
    }
}

function saveToCookie(key, value) {
    if (document.images && ta_use_cookies == "unsure") {
        SetCookie(key,value);
    }
}

function getFromCookie(key) {
    var val = null;
    if(document.images) {
        val = GetCookie(key);
    }
    return val;
}

function fillInStoredValues() {
    var val = null;
    if (document.images) { // only do it in JavaScript 1.1 browsers
        for (i=0;i<document.forms.length;i++) {
            for (j=0;j<document.forms[i].elements.length; j++) {
                if (document.forms[i].elements[j]) {
                    //cookie_name = "memory_"+document.forms[i].elements[j].name;
                    cookie_name = document.forms[i].elements[j].name;
                    val = GetCookie(cookie_name);
                    if (val) {
                        if ((document.forms[i].elements[j].type == "text") || (document.forms[i].elements[j].type == "password") || (document.forms[i].elements[j].type == "textarea")) {
                            document.forms[i].elements[j].value = val;
                        } else if (document.forms[i].elements[j].type.indexOf("select") != -1) {
                            document.forms[i].elements[j].selectedIndex = -1;
                            while (((pos = val.indexOf(" ")) != -1) && (val.length > 1)) {
                                sel = parseInt(val.substring(0,pos));
                                val = val.substring(pos+1,val.length);
                                if (sel < document.forms[i].elements[j].length)
                                    document.forms[i].elements[j].options[sel].selected = true;
                            }
                        } else if (document.forms[i].elements[j].type == "checkbox") {
                            if (val == "true") {
                                document.forms[i].elements[j].checked = true;
                            } else {
                                document.forms[i].elements[j].checked = false;
                            }
                        } else if (document.forms[i].elements[j].type == "radio") {
                            if (document.forms[i].elements[j].value == val) {
                                document.forms[i].elements[j].checked = true;
                            }
                        }
                    }
                }
            }
        }
    }
}

// for custom form elements
function _fill(elementName, cookiePrefix) {
    for (i=0;i<document.forms.length;i++) {
        for (j=0;j<document.forms[i].elements.length; j++) {
            if (document.forms[i].elements[j] && document.forms[i].elements[j].name == elementName) {
                // this is the one
                // var cookie_name = cookiePrefix+document.forms[i].elements[j].name;
                var cookie_name = document.forms[i].elements[j].name;
                var val = GetCookie(cookie_name);
                if (val && document.forms[i].elements[j].type.indexOf("select") != -1) {
                    document.forms[i].elements[j].selectedIndex = -1;
                    while (((pos = val.indexOf(" ")) != -1) && (val.length > 1)) {
                        sel = parseInt(val.substring(0,pos));
                        val = val.substring(pos+1,val.length);
                        if (sel < document.forms[i].elements[j].length)
                        document.forms[i].elements[j].options[sel].selected = true;
                    }
                } else if (val && document.forms[i].elements[j].type == "checkbox") {
                    if (val == "true") {
                        document.forms[i].elements[j].checked = true;
                        return true;
                    } else {
                        document.forms[i].elements[j].checked = false;
                        return false;
                    }
                }
                return val;
            }
        }
    }
}

// for custom form elements
function _fillWithBrand(elementName, cookiePrefix, ta_brand) {
    for (i=0;i<document.forms.length;i++) {
        for (j=0;j<document.forms[i].elements.length; j++) {
            if (document.forms[i].elements[j] && document.forms[i].elements[j].name == elementName) {
                // this is the one
                // var cookie_name = cookiePrefix+document.forms[i].elements[j].name;
                var cookie_name = ta_brand+document.forms[i].elements[j].name;
                var val = GetCookie(cookie_name);
                if (val && document.forms[i].elements[j].type.indexOf("select") != -1) {
                    document.forms[i].elements[j].selectedIndex = -1;
                    while (((pos = val.indexOf(" ")) != -1) && (val.length > 1)) {
                        sel = parseInt(val.substring(0,pos));
                        val = val.substring(pos+1,val.length);
                        if (sel < document.forms[i].elements[j].length)
                        document.forms[i].elements[j].options[sel].selected = true;
                    }
                } else if (val && document.forms[i].elements[j].type == "checkbox") {
                    if (val == "true") {
                        document.forms[i].elements[j].checked = true;
                        return true;
                    } else {
                        document.forms[i].elements[j].checked = false;
                        return false;
                    }
                }
                return val;
            }
        }
    }
}

// for custom form elements
function _fillWithBrandByValue(elementName, cookiePrefix, ta_brand) {
    for (i=0;i<document.forms.length;i++) {
        for (j=0;j<document.forms[i].elements.length; j++) {
            if (document.forms[i].elements[j] && document.forms[i].elements[j].name == elementName) {
                // this is the one
                // var cookie_name = cookiePrefix+document.forms[i].elements[j].name;
                var cookie_name = ta_brand+document.forms[i].elements[j].name;
                var val = GetCookie(cookie_name);
                if (val && document.forms[i].elements[j].type.indexOf("select") != -1) {
                    var element = document.forms[i].elements[j];
                    element.selectedIndex = -1;
                    // works only for combos
                    for(k=0;k<element.options.length;k++)
                        if (element.options[k].value == val)
                            element.selectedIndex = k;
                } else if (val && document.forms[i].elements[j].type == "checkbox") {
                    if (val == "true") {
                        document.forms[i].elements[j].checked = true;
                        return true;
                    } else {
                        document.forms[i].elements[j].checked = false;
                        return false;
                    }
                }
                return val;
            }
        }
    }
}

function _print(elementName, cookiePrefix, title) {
    for (i=0;i<document.forms.length;i++) {
        for (j=0;j<document.forms[i].elements.length; j++) {
            if (document.forms[i].elements[j].name == elementName) {
                // this is the one
                // var cookie_name = cookiePrefix+document.forms[i].elements[j].name;
                var cookie_name = document.forms[i].elements[j].name;
                var val = GetCookie(cookie_name);
                alert(title+val);
            }
        }
    }
}


// for custom form elements
function _save(element, cookiePrefix) {
    if (!element && !element.type)
        return;
    var val = null;
    if (document.images && ta_use_cookies == "unsure") {
        if ((element.type == "text") || (element.type == "password") || (element.type == "textarea") || (element.type == "radio")) {
            val = element.value;
        }
        else if (element.type.indexOf("select") != -1) {
            val = "";
            for(k=0;k<element.length;k++)
                if (element.options[k].selected)
                    val += k+" ";
        } else if (element.type == "checkbox") {
            val = element.checked;
        }
        //SetCookie(cookiePrefix+element.name,val);
        SetCookie(element.name,val);
    }
}

// for custom form elements
function _saveWithBrand(element, cookiePrefix,ta_brand) {
    if (!element)   //removed && !element.type 12.11.2003
        return;
    var val = null;
    if (document.images && ta_use_cookies == "unsure") {
        if ((element.type == "text") || (element.type == "password") || (element.type == "textarea") || (element.type == "radio")) {
            val = element.value;
        }
        else if (element.type.indexOf("select") != -1) {
            val = "";
            for(k=0;k<element.length;k++)
                if (element.options[k].selected)
                    val += k+" ";
        } else if (element.type == "checkbox") {
            val = element.checked;
        }
        //SetCookie(cookiePrefix+element.name,val);
        SetCookie(ta_brand+element.name,val);
    }
}

// for custom form elements
function _saveWithBrandByValue(element, cookiePrefix,ta_brand) {
    if (!element)   //removed && !element.type 12.11.2003
        return;
    var val = null;
    if (document.images && ta_use_cookies == "unsure") {
        if ((element.type == "text") || (element.type == "password") || (element.type == "textarea") || (element.type == "radio")) {
            val = element.value;
        }
        else if (element.type.indexOf("select") != -1) {
            val = "";
            for(k=0;k<element.length;k++)
                if (element.options[k].selected)
                    val = element.options[k].value; // works only for combos
        } else if (element.type == "checkbox") {
            val = element.checked;
        }
        //SetCookie(cookiePrefix+element.name,val);
        SetCookie(ta_brand+element.name,val);
    }
}

/////////////
/// GROUPS
function saveGroupValue(element) {
    _save(element, "g_mem_");
}
function fillInStoredGroupValues() {
    // the order is determined here
    if (document.images) { // only do it in JavaScript 1.1 browsers
        _fill("ts_adults", "g_mem_");
        if (_fill("ts_with_children", "g_mem_")) {
            ta_showLayer("children_menus");
        } else {
            ta_hideLayer("children_menus");
        }
        _fill("ts_ch_2", "g_mem_");
        _fill("ts_ch_gr1", "g_mem_");
        _fill("ts_ch_gr2", "g_mem_");
        _fill("ts_ch_gr3", "g_mem_");
        _fill("ts_ch_gr4", "g_mem_");
    }
}
function ta_saveRoomCount(element) {
    _save(element, "r_mem_");
}

function ta_saveRoomCombis(element) {
    _save(element, "r_mem_");
}

function ta_fillRooms() {
    _fill("ts_room_count", "r_mem_");
    _fill("ts_room_combinations", "r_mem_");
}

function ta_fillRoomCombi() {
    _fill("ts_room_combinations", "r_mem_");
}

function ta_fillRoomCount() {
    _fill("ts_room_count", "r_mem_");
}

function saveAreaValue(element) {
    _saveWithBrandByValue(document.searchForm.ts_area, "a_mem_",ta_brand);
    _saveWithBrandByValue(document.searchForm.ts_dest, "a_mem_",ta_brand);
    if (ta_accEn) {
        _saveWithBrandByValue(document.searchForm.ts_accommodation, "a_mem_",ta_brand);
    }
    handleDestinationMenu();
}

function saveIataValue(element) {
    _saveWithBrandByValue(document.searchForm.ts_iata, "a_mem_",ta_brand);
}
function fillInStoredAreaValues() {
    if (document.images) { // only do it in JavaScript 1.1 browsers
        // the order is determined here
        _fillWithBrandByValue("ts_area", "a_mem_", ta_brand);
        ta_updateDependent('De',document.searchForm.ts_area,document.searchForm.ts_dest);
        _fillWithBrandByValue("ts_dest", "a_mem_", ta_brand);
        if (ta_accEn) {
            ta_updateDependent('Ac',document.searchForm.ts_dest,document.searchForm.ts_accommodation);
            _fillWithBrandByValue("ts_accommodation", "a_mem_", ta_brand);
            // handleAccommodationMenu();
        }
    }
}

function ta_fillAreaVal() {
    if (document.images) {
        _fillWithBrandByValue("ts_area", "a_mem_",ta_brand);
    }
}

function ta_fillIataVal() {
    if (document.images) {
        _fillWithBrandByValue("ts_iata", "a_mem_",ta_brand);
    }
}

function ta_fillDestVal() {
    if (document.images) {
        _fillWithBrandByValue("ts_dest", "a_mem_",ta_brand);
    }
}

function ta_fillAccVal() {
    if (document.images) {
        _fillWithBrandByValue("ts_accommodation", "a_mem_",ta_brand);
    }
}





