//  module script

    var trr_ar_citydep = new Array();
    var trr_citydep_ix = new Array();

    var trr_ar_accmd   = new Array();
    var trr_ar_city    = new Array();
    var trr_ar_subcity = new Array();
    var trr_ar_citys   = new Array();
    var trr_ar_citym   = new Array();
    var trr_ar_cityd   = new Array();
    var trr_ar_cityds  = new Array();
    var trr_ar_citydp  = new Array();
    var trr_ar_dep     = new Array();
    var trr_ar_days    = new Array();
    var trr_ar_meal    = new Array();
    var trr_ar_star    = new Array();
    var trr_ar_hotel   = new Array();
    var trr_tours      = new String();

    var sCurCityDep = new String();
    var sCityHead = "- Все курорты -";

    var bCityDepListLoaded = 0;

    if (!trr_TourType) {
        var trr_TourType = "";
    }

    function trrLoadComplete() {
    	document.getElementById("trr_idata");
    	alert(trr_idata.window.document);
    }

    function trr_DepCity() {
        var dc = document.getElementById("trr_depcity");
        if (!dc) {
            return "";
        } else {
            return dc.options[dc.selectedIndex].value;
        }
    }
    function trr_LoadCitydepList() {
        var cmb = document.getElementById("trr_depcity");
        if (!cmb) {
            return "";
        } else {
            cmb.options.length = trr_ar_citydep.length+1;
            cmb.selectedIndex = 0;
            for (i=0; i<trr_ar_citydep.length; i++) {
                cmb.options[i+1] = new Option(trr_ar_citydep[i], trr_ar_citydep[i]);
            }
        }
    }

    function trr_SntProfile() {
        var sl = document.getElementById("trr_snt_profile");
        if (!sl) {
            return "";
        } else {
            return sl.options[sl.selectedIndex].value;
        }
    }

    function trr_LoadCityDep() {
		var trr_idata = document.getElementById("trr_idata");
		if (trr_idata) {
        	trr_idata.src = "http://trr.ru/trr.php/36993/citydeplist?ifr=1";
        } else {
			var trr_data = document.getElementById("trr_data");
			if (trr_data) {
	        	trr_data.src = "http://trr.ru/trr.php/36993/citydeplist";
	        }
		}
    }

    function trr_LoadCountries() {
        if (document.getElementById("trr_country") != null) {
            if (document.getElementById("trr_country").options != null) {
                var dc = trr_DepCity();
                //trr_Clear();
                var trr_idata = document.getElementById("trr_idata");
                if (trr_idata) {
	                trr_idata.src = "http://trr.ru/trr.php/36993/countrylist?citydep="+dc+"&tourtype="+trr_TourType+"&snt_profile="+trr_SntProfile()+"&ifr=1";
		        } else {
					var trr_data = document.getElementById("trr_data");
					if (trr_data) {
		                trr_data.src = "http://trr.ru/trr.php/36993/countrylist?citydep="+dc+"&tourtype="+trr_TourType+"&snt_profile="+trr_SntProfile();
			        }
				}
            } else {
                trr_LoadCountryData();
            }
        } else {
            trr_LoadCountryData();
        }
    }

    function trr_CountryIndex() {
        if (document.getElementById("trr_country") != null) {
            if (document.getElementById("trr_country").options != null) {
                return document.getElementById("trr_country").options[ document.getElementById("trr_country").selectedIndex ].value;
            } else {
                return trrCountry;
            }
        } else {
            return trrCountry;
        }
    }
    function trr_CountryName() {
        if (document.getElementById("trr_country") != null) {
            if (document.getElementById("trr_country").options != null) {
                return document.getElementById("trr_country").options[ document.getElementById("trr_country").selectedIndex ].text;
            } else {
                return "";
            }
        } else {
            return "";
        }
    }

    function trr_LoadCountryData() {
        var trr_country_index = trr_CountryIndex();
        if (trr_country_index != "") {
            trr_Clear();
            var sCurCityDep = trr_DepCity();
            var trr_idata = document.getElementById("trr_idata");
            if (trr_idata) {
	            trr_idata.src = "http://trr.ru/trr.php/36993/qdata?citydep="+sCurCityDep+"&iCountry="+trr_country_index+"&tourtype="+trr_TourType+"&snt_profile="+trr_SntProfile()+"&ifr=1";
            } else {
	            var trr_data = document.getElementById("trr_data");
	            if (trr_data) {
		            trr_data.src = "http://trr.ru/trr.php/36993/qdata?citydep="+sCurCityDep+"&iCountry="+trr_country_index+"&tourtype="+trr_TourType+"&snt_profile="+trr_SntProfile();
		        }
		  	}
        }
    }

    function trr_LoadArray(ar, data) {
        if (ar == "accmd")  { trr_ar_accmd  = data.split(","); }
        if (ar == "city")   { trr_ar_city   = data.split(","); }
        if (ar == "subcity"){ trr_ar_subcity= data.split(","); }
        if (ar == "citys")  { trr_ar_citys  = data.split(","); }
        if (ar == "citym")  { trr_ar_citym  = data.split(","); }
        if (ar == "cityd")  { trr_ar_cityd  = data.split(","); }
        if (ar == "cityds") { trr_ar_cityds = data.split(","); }
        if (ar == "dep")    { trr_ar_dep    = data.split(","); }
        if (ar == "days")   { trr_ar_days   = data.split(","); }
        if (ar == "meal")   { trr_ar_meal   = data.split(","); }
        if (ar == "star")   { trr_ar_star   = data.split(","); }
        if (ar == "hotel")  { trr_ar_hotel  = data.split(","); }
        if (ar == "tours")  { trr_tours     = data; }
    }

    function trr_Filter() {
        trr_FilterAccmd();
        trr_FilterCity();
        trr_FilterStar();
        trr_FilterHotel();
        trr_FilterMeal();
        trr_FilterDeps();
        trr_FilterDays();

        var tcnt = document.getElementById("trr_tcount");
        if (tcnt) {
            tcnt.innerText = trr_tours;
        }
        LoadFirstVals();

        cmbCurrency = document.getElementById("trr_price_currency");
        if (cmbCurrency) {
            cmbCurrency.options.length = 3;
            cmbCurrency.options[0].value = "USD";
            cmbCurrency.options[0].text = "$";
            cmbCurrency.options[1].value = "EUR";
            cmbCurrency.options[1].text = "Euro";
            cmbCurrency.options[2].value = "RUB";
            cmbCurrency.options[2].text = "Руб.";
        }
    }
    function LoadFirstVals() {
        var ar_one_line = new Array("trr_city[]", "trr_hotel[]", "trr_days_f", "trr_days_t");
        for (i=0; i<ar_one_line.length; i++) {
            var cmb = document.getElementById(ar_one_line[i]);
            if (!cmb) {
            } else {
                if (cmb.options.length == 2) {
                    cmb.options.selectedIndex = 1;
                }
            }
        }
        var cmb = document.getElementById("trr_dep");
        if (cmb) {
            cmb.options.selectedIndex = 1;
        }
    }

    function trr_SelectedVals(cmb) {
        var str = new String();
        for (i=1; i<document.getElementById(cmb).options.length; i++) {
            if (document.all[cmb].options[i].selected) {
                str = str+"("+document.getElementById(cmb).options[i].value+")";
            }
        }
        return str;
    }

    function trr_FilterAccmd() {
        var cmbQ = document.getElementById("trr_accmd");
        if (cmbQ != null) {
            cmbQ.options.length = trr_ar_accmd.length+1;
            for (i=0; i<trr_ar_accmd.length; i++) {
                ar = trr_ar_accmd[i].split(";");
                var sAccmd = ar[0];
                var aAccmd = sAccmd.split("+");
                if (aAccmd.length == 2) {
                    sAccmd = aAccmd[0]+" взр.+"+aAccmd[1]+" реб.";
                    cmbQ.options[i+1] = new Option(sAccmd, ar[0]);
                } else {
                    cmbQ.options[i+1] = new Option(sAccmd+" взр.", ar[0]);
                }
                if (ar[0] == "2") { cmbQ.selectedIndex = i+1; }
            }
            if (cmbQ.options.length == 2) { cmbQ.selectedIndex = 1; }
        }
    }
    function LoadQAge() {
        var cmbQ = document.getElementById("trr_accmd");
        var dvAge = document.getElementById("trr_age");
        var sOut = "";
        dvAge.innerHTML = "";
        if (cmbQ.selectedIndex > 0) {
            var sAccmd = cmbQ.options[cmbQ.selectedIndex].value;
            var aAccmd = sAccmd.split("+");
            if (aAccmd.length == 1) {
                var iMans = aAccmd[0];
                var iChilds = 0;
            } else {
                var iMans = aAccmd[0];
                var iChilds = aAccmd[1];
            }
            if (iChilds == 0) {
                cmbQ.style.width = 150;
                dvAge.style.display = "none";
            } else {
                cmbQ.style.width = 150-iChilds*20-20;
                for (i=0; i<iChilds; i++) {
                    sOut = sOut+"<input type=text name='age["+sAccmd+"][]' style='font-size: 8pt; width: 20px' maxlength=2>";
                }
                dvAge.innerHTML = sOut+"лет";
                dvAge.style.display = "block";
            }
        } else {
            cmbQ.style.width = 150;
            dvAge.style.display = "none";
        }
    }

    function trr_FilterCity() {
        var cmb = document.getElementById("trr_city[]");
        if (!cmb) {
            return "";
        } else {
            cmb.options.length = trr_ar_city.length+1;
            cmb.options[0] = new Option(sCityHead, "");
            cmb.selectedIndex = 0;
            for (i=0; i<trr_ar_city.length; i++) {
                cmb.options[i+1] = new Option(trr_ar_city[i], trr_ar_city[i]);
            }
        }
    }

    function trr_FilterSubCity() {
        var cmb = document.getElementById("trr_subcity");
        if (!cmb) {
            return "";
        } else {
            var selCity = trr_SelectedVals("trr_city[]");

            cmb.options.length = 1;
            cmb.options[0] = new Option("- Все районы -", "");
            cmb.selectedIndex = 0;

            if (selCity.length > 0) {
                for (i=0; i<trr_ar_subcity.length; i++) {
                    ar = trr_ar_subcity[i].split(":");
                    if (selCity.indexOf("("+ar[0]+")") > -1) {
                        cmb.options.length++;
                        l = cmb.options.length-1;
                        cmb.options[l] = new Option(ar[1], ar[1]);
                    }
                }
            }
        }
    }

    function trr_FilterStar() {
        var cmb = document.getElementById("trr_star[]");
        if (!cmb) {
            return "";
        } else {
            var ar_star = new Array();

            if (document.getElementById("trr_city[]").selectedIndex == 0) {
                /* all stars */
                ar_star = trr_ar_star;
            } else {
                /* by city */
                var sCity = trr_SelectedVals("trr_city[]");
                var sStar = new String(";");

                for (i=0; i<trr_ar_citys.length; i++) {
                    ar = trr_ar_citys[i].split(":");
                    if (sCity.indexOf("("+ar[0]+")") > -1 && ar[0].length > 0 && sStar.indexOf(";"+ar[1]+";") == -1) {
                        sStar = sStar+ar[1]+";";
                    }
                }
                ar_star = sStar.split(";");
            }
            ar_star.sort();
            cmb.options.length = 1;
            cmb.options[0] = new Option("- Все категории -", "");
            cmb.selectedIndex = 0;
            for (i=0; i<ar_star.length; i++) {
                if (ar_star[i].length > 0) {
                    cmb.options.length++;
                    l = cmb.options.length-1;
                    cmb.options[l] = new Option(ar_star[i], ar_star[i]);
                }
            }
        }
    }

    function trr_FilterHotel() {
        var ar_hotels = new Array();
        var sHotels = new String(";");
        var cmb = document.getElementById("trr_hotel[]");
        if (!cmb) {
            return "";
        } else {
            if (document.getElementById("trr_city[]").selectedIndex == 0 && document.getElementById("trr_star[]").selectedIndex == 0) {
                /* all hotels */
                for (i=0; i<trr_ar_hotel.length; i++) {
                    var ar = trr_ar_hotel[i].split(":");
                    if (sHotels.indexOf(";"+ar[1]+":"+ar[2]+";") == -1) {
                        sHotels = sHotels+ar[1]+":"+ar[2]+";";
                    }
                }
            } else {
                /* by city */
                var selCity = trr_SelectedVals("trr_city[]");
                var selStar = trr_SelectedVals("trr_star[]");

                for (i=0; i<trr_ar_hotel.length; i++) {
                    var ar = trr_ar_hotel[i].split(":");
                    if (sHotels.indexOf(";"+ar[1]+":"+ar[2]+";") == -1 && (selCity.indexOf("("+ar[0]+")") > -1 || selCity.length == 0) && (selStar.indexOf("("+ar[2]+")") > -1 || selStar.length == 0) ) {
                        sHotels = sHotels+ar[1]+":"+ar[2]+";";
                    }
                }
            }

            /* loading list */
            ar_hotels = sHotels.split(";");
            ar_hotels.sort();
            cmb.options.length = 1;
            cmb.options[0] = new Option("- Все отели -", "");
            for (i=2; i<ar_hotels.length; i++) {
                var ar = ar_hotels[i].split(":");
                if (ar_hotels[i].length > 1) {
                    cmb.options.length++;
                    l = cmb.options.length-1;
                    cmb.options[l] = new Option(ar[0]+" "+ar[1]+"*", ar[0]);
                }
            }
            cmb.selectedIndex = 0;
        }
    }

    function trr_FilterMeal() {
        var cmb = document.getElementById("trr_meal[]");
        if (!cmb) {
            return "";
        } else {
            var ar_meal = new Array();

            if (document.getElementById("trr_city[]").selectedIndex == 0 && document.getElementById("trr_hotel[]").selectedIndex == 0) {
                /* all meals */
                ar_meal = trr_ar_meal;
            }
            if (document.getElementById("trr_hotel[]").selectedIndex > 0) {
                /* by hotel */
                var selHotels = trr_SelectedVals("trr_hotel[]");
                var sMeal = new String(";");

                for (i=0; i<trr_ar_hotel.length; i++) {
                    ar = trr_ar_hotel[i].split(":");
                    if (selHotels.indexOf("("+ar[1]+")") > -1) {
                        ar2 = ar[3].split(";");
                        for (m=0; m<ar2.length; m++) {
                            if (sMeal.indexOf(ar2[m]) == -1) {
                                sMeal = sMeal+ar2[m]+";";
                            }
                        }
                    }
                }
                ar_meal = sMeal.split(";");
            }
            if (document.getElementById("trr_city[]").selectedIndex > 0 && document.getElementById("trr_hotel[]").selectedIndex == 0) {
                /* by city */
                var sCity = trr_SelectedVals("trr_city[]");
                var sMeal = new String(";");

                for (i=0; i<trr_ar_citym.length; i++) {
                    ar = trr_ar_citym[i].split(":");
                    if (sCity.indexOf("("+ar[0]+")") > -1 && ar[0].length > 0 && sMeal.indexOf(";"+ar[1]+";") == -1) {
                        sMeal = sMeal+ar[1]+";";
                    }
                }
                ar_meal = sMeal.split(";");
            }
            ar_meal.sort();
            cmb.options.length = 1;
            cmb.options[0] = new Option("- Питание любое -", "");
            cmb.selectedIndex = 0;
            for (i=0; i<ar_meal.length; i++) {
                if (ar_meal[i].length > 0) {
                    cmb.options.length++;
                    l = cmb.options.length-1;
                    cmb.options[l] = new Option(ar_meal[i], ar_meal[i]);
                }
            }
        }
    }

    function trr_FilterDeps() {
        var cmb  = document.getElementById("trr_dep");
        if (!cmb) {
            var cmb = document.getElementById("trr_dep_f");
            var cmb2 = document.getElementById("trr_dep_t");
            if (!cmb && !cmb2) {
                return "";
            }
        }
        if (cmb) {
            var ar_dep = new Array();
            var sDep = new String();

            if (document.getElementById("trr_city[]").selectedIndex == 0) {
                /* all */
                ar_dep = trr_ar_dep;
            } else {
                /* by city */
                var selCity = trr_SelectedVals("trr_city[]");

                for (i=0; i<trr_ar_cityd.length; i++) {
                    ar = trr_ar_cityd[i].split(":");
                    if (selCity.indexOf("("+ar[0]+")") > -1 && sDep.indexOf(ar[1]) == -1) {
                        sDep = sDep+ar[1]+";";
                    }
                }
                ar_dep = sDep.split(";");
                ar_dep.sort();
            }

            cmb.options.length = 1;
            cmb.options[0] = new Option("- Любая -", "");
            cmb.selectedIndex = 0;
            if (cmb2) {
                cmb2.options.length = 1;
                cmb2.options[0] = new Option("- Любая -", "");
                cmb2.selectedIndex = 0;
            }
            for (i=0; i<ar_dep.length; i++) {
                if (ar_dep[i].length > 0) {
                    ar = ar_dep[i].split("^");
                    cmb.options.length++;
                    l = cmb.options.length-1;
                    cmb.options[l] = new Option(ar[1], ar[0]);
                    if (cmb2) {
                        cmb2.options.length++;
                        l = cmb2.options.length-1;
                        cmb2.options[l] = new Option(ar[1], ar[0]);
                    }
                }
            }
        }
        if (cmb.options.length > 0 && cmb.options.selectedIndex == 0) { cmb.selectedIndex = 1; }
        if (cmb2) {
            if (cmb2.options.length > 0 && cmb2.options.selectedIndex == 0) { cmb2.selectedIndex = 1; }
        }
    }

    function trr_FilterDays() {
        var cmb  = document.getElementById("trr_days_f");
        var cmb2 = document.getElementById("trr_days_t");
        if (!cmb || !cmb2) {
            return "";
        } else {
            var ar_days = new Array();
            var sDays = new String();

            if (document.getElementById("trr_city[]").selectedIndex == 0) {
                /* all */
                ar_days = trr_ar_days;
            } else {
                /* by city */
                var selCity = trr_SelectedVals("trr_city[]");

                for (i=0; i<trr_ar_cityds.length; i++) {
                    ar = trr_ar_cityds[i].split(":");
                    if (selCity.indexOf("("+ar[0]+")") > -1 && sDays.indexOf(ar[1]+";") == -1) {
                        sDays = sDays+ar[1]+";";
                    }
                }
                ar_days = sDays.split(";");
                ar_days.sort();
            }

            cmb.options.length = 1;
            cmb.options[0] = new Option("- Все -", "");
            cmb.selectedIndex = 0;
            cmb2.options.length = 1;
            cmb2.options[0] = new Option("- Все -", "");
            cmb2.selectedIndex = 0;
            for (i=0; i<ar_days.length; i++) {
                if (ar_days[i].length > 0) {
                    cmb.options.length++;
                    cmb2.options.length++;
                    l = cmb.options.length-1;
                    cmb.options[l] = new Option(ar_days[i], ar_days[i]);
                    cmb2.options[l] = new Option(ar_days[i], ar_days[i]);
                }
            }
        }
    }

    function trr_Clear() {
        var cmbs = new Array("trr_city[]", "trr_star[]", "trr_hotel[]", "trr_meal[]", "trr_accmd", "trr_dep", "trr_days_f", "trr_days_t");
        for (i=0; i<cmbs.length; i++) {
            var cmb = document.getElementById(cmbs[i]);
            if (cmb) {
                if (cmb.options) {
                    cmb.options.length = 0;
                }
            }
        }
    }

    function trr_SetDays() {
        if (document.getElementById("trr_days_f").selectedIndex > document.getElementById("trr_days_t").selectedIndex) {
            document.getElementById("trr_days_t").selectedIndex = document.getElementById("trr_days_f").selectedIndex;
        }
    }

    function getURLParam(strParamName){
        var strReturn = "";
        var strHref = window.location.href;
        if ( strHref.indexOf("?") > -1 ) {
            var strQueryString = strHref.substr(strHref.indexOf("?")).toLowerCase();
            var aQueryString = strQueryString.split("&");
            for ( var iParam = 0; iParam < aQueryString.length; iParam++ ){
                if (aQueryString[iParam].indexOf(strParamName + "=") > -1 ){
                    var aParam = aQueryString[iParam].split("=");
                    strReturn = aParam[1];
                    break;
                }
            }
        }
        return strReturn;
    }
