/* * (c) TURY.ru module script */ var trr_tours = new String (); var trr_ar_citydep = 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_ar_resp_s = new Array (); var trr_ar_resp_l = new Array (); var countryDataElts = new Array ( "trr_city[]", "trr_star[]" , "trr_hotel[]", "trr_meal[]", "trr_accmd" , "trr_dep" , "trr_plusmn" , "trr_days_f", "trr_days_t", "trr_price_f", "trr_price_t", "trr_price_currency" ); var srchBlockElts = ( new Array ( 'trr_depcity', 'trr_country' ) ).concat ( countryDataElts ); function concat_assoc ( arr1, arr2 ) { var arr = new Object (); for ( var key in arr1 ) { arr [key] = arr1 [key]; } for ( var key in arr2 ) { arr [key] = arr2 [key]; } return arr; } var countryDataEltsAssoc = { "trr_city[]" : null, "trr_star[]" : null, "trr_hotel[]" : null, "trr_meal[]" : null, "trr_accmd" : null, "trr_dep" : null, "trr_plusmn" : null, "trr_days_f" : { set_handler : trr_days_f_set_ls , unset_handler : trr_days_f_unset_ls , val : '' }, "trr_days_t" : { set_handler : trr_days_t_set_ls , unset_handler : trr_days_t_unset_ls , val : '' }, "trr_price_f" : { set_handler : trr_price_f_set_ls, unset_handler : trr_price_f_unset_ls, val : '' }, "trr_price_t" : { set_handler : trr_price_t_set_ls, unset_handler : trr_price_t_unset_ls, val : '' }, "trr_price_currency" : { set_handler : trr_price_currency_set_ls, unset_handler : trr_price_currency_unset_ls, val : '' } }; var srchBlockEltsAssoc = concat_assoc ( { 'trr_depcity' : null, 'trr_country' : null }, countryDataEltsAssoc ); function trr_days_f_set_ls ( eltObj, elt ) { eltObj.val = elt.value; elt.disabled = true; } function trr_days_f_unset_ls ( eltObj, elt ) { elt.value = eltObj.val; elt.disabled = false; } function trr_days_t_set_ls ( eltObj, elt ) { eltObj.val = elt.value; elt.disabled = true; } function trr_days_t_unset_ls ( eltObj, elt ) { elt.value = eltObj.val; elt.disabled = false; } function trr_price_f_set_ls ( eltObj, elt ) { eltObj.val = elt.value; elt.disabled = true; } function trr_price_f_unset_ls ( eltObj, elt ) { elt.value = eltObj.val; elt.disabled = false; } function trr_price_t_set_ls ( eltObj, elt ) { eltObj.val = elt.value; elt.disabled = true; } function trr_price_t_unset_ls ( eltObj, elt ) { elt.value = eltObj.val; elt.disabled = false; } function trr_price_currency_set_ls ( eltObj, elt ) { eltObj.val = elt.value; elt.disabled = true; } function trr_price_currency_unset_ls ( eltObj, elt ) { elt.value = eltObj.val; elt.disabled = false; } function alert_object_dump ( obj ) { var dump = ''; for ( var key in obj ) { var val = obj [key]; dump += key + ' => ' + val; if ( val != null && typeof ( val ) == 'object' ) { dump += " {\n"; for ( var key2 in val ) dump += "\t" + key2 + ' => ' + val [key2] + "\n"; dump += "}\n"; } else { dump += "\n"; } } alert ( dump ); } var req_loadCityDep = null; var req_loadCountries = null; var req_loadCountryData = null; var req_submitSearchData = null; var req_loadHotelInfo = null; var req_advanceResponse = null; var req_showMealDescription = null; var req_showRoomDescription = null; var trr_page = ''; var trr_directLinkVals = new Array (); var trr_directLinkActive = false; String.prototype.trim = function () { return this.replace ( /^\s+|\s+$/g, '' ); }; function trr_SetCurPage ( page, additional_args ) { if ( page == 'index' || page == 'main' ) trr_page == ''; else trr_page = page; trr_additional_args = additional_args; } function trr_GetCurPage () { return trr_page; } function trr_ParseDirectLink () { loc = window.location.toString (); loc = loc.replace ( /!!/g, '%' ); addr_parts = loc.split ( "#:tour_search" ); if ( addr_parts.length > 1 ) { dl_args = ( addr_parts [1] ).split ( '/' ); if ( dl_args.length > 1 ) { dl_args = dl_args [1].split ( '?' ); var cur_page = dl_args [0]; trr_SetCurPage ( cur_page ); dl_args = '?' + dl_args [1]; } dl_args = dl_args.toString (); if ( dl_args.substr ( 0, 1 ) == '?' ) { dl_args = dl_args.substr ( 1 ).split ( '&' ); trr_directLinkActive = true; } else { return false; } } else { return false; } for ( i = 0 ; i < dl_args.length ; i++ ) { keyVal = dl_args [i].split ( '=' ); if ( keyVal.length < 2 ) continue; var key = keyVal.shift (); var val = keyVal.join ( '=' ); if ( trr_directLinkVals [key] != null ) trr_directLinkVals [key] = new Array ( trr_directLinkVals [key], trr_UrlFullDecode ( val ) ); else trr_directLinkVals [key] = trr_UrlFullDecode ( val ); } //alert_object_dump ( trr_directLinkVals ); return true; } function trr_LoadFromDirectLink ( eltIds ) { switch ( typeof ( eltIds ) ) { case 'string': processElt ( eltIds ); break; case 'object': // массив for ( var key in eltIds ) processElt ( eltIds [key] ); break; } function processElt ( eltId ) { if ( elt = document.getElementById ( eltId ) ) { switch ( elt.type ) { case 'select-multiple': case 'select-one': if ( trr_directLinkVals [eltId] != null ) { var val = trr_directLinkVals [eltId]; if ( typeof ( val ) == 'string' ) val = new Array ( val ); while ( val.length > 0 ) { var cur_val = val.shift (); for ( i = 0 ; i < elt.options.length ; i++ ) { if ( elt.options [i].value == cur_val ) { if ( elt.options.selectedIndex == 0 ) elt.options.selectedIndex = i; else elt.options [i].selected = true; } } } } break; case 'text': if ( trr_directLinkVals [eltId] ) elt.value = trr_directLinkVals [eltId]; break; } } } } function trr_GenDirectLink ( eltIds, add_args ) { loc = window.location.toString (); addr_parts = loc.split ( "#:tour_search" ); if ( addr_parts.length > 1 ) orig_addr = addr_parts [0]; else orig_addr = loc; var direct_addr = ''; if ( '' != ( cur_page = trr_GetCurPage () ) ) direct_addr += '/' + cur_page; switch ( typeof ( eltIds ) ) { case 'string': processElt ( eltIds, '?' ); break; case 'object': // массив firstElt = eltIds.shift (); processElt ( firstElt, '?', true ); for ( var key in eltIds ) processElt ( eltIds [key], '&', false ); eltIds.unshift ( firstElt ); break; } function processElt ( eltId, argPrefix, dont_check ) { if ( elt = document.getElementById ( eltId ) ) { switch ( elt.type ) { case 'select-multiple': case 'select-one': var dd_args = trr_MakeUrlArgFromDropDownVal ( eltId, eltId, '', true ); if ( dd_args.length > 0 ) direct_addr += argPrefix + dd_args; break; case 'text': if ( dont_check || ( elt.value.trim () ).length > 0 ) direct_addr += argPrefix + eltId + '=' + trr_UrlFullEncode ( elt.value ); break; } } } if ( direct_addr.length > 0 && add_args && add_args.length > 0 ) direct_addr += '&' + add_args; else if ( add_args && add_args.length > 0 ) direct_addr = '?' + add_args; var location_url = orig_addr + "#:tour_search" + direct_addr; location_url = location_url.replace ( /%/g, '!!' ); window.location = location_url; } function trr_RequestRemoteScript ( url, scriptLoadedCallback, async_data ) { return AJAXClient.SendGetRequest ( url, true, scriptLoadedCallback, async_data ); } function trr_ExecScriptXml ( xml ) { var nd = xml.getElementsByTagName ( 'data' ); if ( nd.length != 0 ) eval ( nd [0].childNodes [0].nodeValue ); } function trr_GetDropdownVal ( ddName, defaultVal ) { var dd = document.getElementById ( ddName ); if ( dd && dd.length != 0 && dd.selectedIndex != -1 ) return dd.options [dd.selectedIndex].value; else return defaultVal; } function trr_MakeUrlArgFromDropDownVal ( paramName, ddName, defaultVal, urlFullEncode ) { var dd = document.getElementById ( ddName ); if ( !dd || dd.length == 0 || dd.selectedIndex == -1 ) return defaultVal; var str = new String (); cmb_opts = document.getElementById ( ddName ).options; var sep = ''; urlFullEncode = urlFullEncode != null ? urlFullEncode : false; for ( i = 1 ; i < cmb_opts.length ; i++ ) if ( cmb_opts [i].selected ) { str = str + sep + paramName + '=' + ( urlFullEncode ? trr_UrlFullEncode ( cmb_opts [i].value ) : trr_UrlEncode ( cmb_opts [i].value ) ); sep = '&'; } return str; } function trr_GetTextboxVal ( txtName, defaultVal ) { var txt = document.getElementById ( txtName ); if ( txt ) return txt.value.trim (); else return defaultVal; } function trr_GetCheckboxVal ( chkName, defaultVal ) { var chk = document.getElementById ( chkName ); if ( chk ) return chk.checked ? 1 : 0; else return defaultVal; } function trr_GoToResultsPageNo ( page, hotel_name ) { trr_SubmitSearchData ( null, page, hotel_name ); } function trr_GoToResultsPageNoByParams ( params, page ) { trr_SubmitSearchData ( params, page ); } function trr_SubmitSearchData ( params, page, hotel_name ) { if ( params == null ) { var qChild = trr_GetAgeQueryPart (); var params = 'trr_depcity=' + trr_DepCity () + '&trr_country=' + trr_CountryIndex ( null ) + '&' + trr_MakeUrlArgFromDropDownVal ( 'trr_city[]' , 'trr_city[]' , '' ) + '&' + trr_MakeUrlArgFromDropDownVal ( 'trr_star[]' , 'trr_star[]' , '' ) + '&' + trr_MakeUrlArgFromDropDownVal ( 'trr_hotel[]', 'trr_hotel[]', '' ) + '&' + trr_MakeUrlArgFromDropDownVal ( 'trr_meal[]' , 'trr_meal[]' , '' ) + '&trr_dep=' + trr_GetDropdownVal ( 'trr_dep' , '' ) + '&trr_plusmn=' + trr_GetTextboxVal ( 'trr_plusmn' , '' ) + '&trr_days_f=' + trr_GetDropdownVal ( 'trr_days_f' , '' ) + '&trr_days_t=' + trr_GetDropdownVal ( 'trr_days_t' , '' ) + '&trr_accmd=' + trr_GetDropdownVal ( 'trr_accmd' , '' ) + qChild + '&trr_price_f=' + trr_UrlEncode ( trr_GetTextboxVal ( 'trr_price_f', '' ) ) + '&trr_price_t=' + trr_UrlEncode ( trr_GetTextboxVal ( 'trr_price_t', '' ) ) + '&trr_price_currency=' + trr_GetDropdownVal ( 'trr_price_currency', '' );/* + '&trr_full_search=' + trr_GetCheckboxVal ( 'trr_full_search' , '0' );*/ } if ( hotel_name != null ) { params = params.replace ( /trr_hotel\[\d*\]=[^&]*/gi, '' ); params = params.replace ( /&{2,}/, '&' ); params += '&trr_hotel[]=' + trr_UrlEncode ( hotel_name ); } if ( page != null ) params += '&page=' + page; params += '&querydate=' + Date (); // делаем запрос уникальным, чтобы избежать кеширования if ( targetContainer = document.getElementById ( 'content' ) ) targetContainer.innerHTML = '
'; url = "http://sun-ocean.ru//t_search/modules/tury.ru/tour_search/wsclient.php/tours"; if ( req_submitSearchData != null ) req_submitSearchData.abort (); req_submitSearchData = AJAXClient.SendPostRequest ( url, params, true, trr_SearchRequestCompleted ); } function trr_UrlEncode ( urlpart ) { return urlpart.replace ( /&/g, '%26' ); } function trr_GetAgeQueryPart () { var cmbQ; if ( cmbQ = document.getElementById ( "trr_accmd" ) ) { var sAccmd = cmbQ.options [cmbQ.selectedIndex].value; var aAccmd = sAccmd.split ( "+" ); var iChilds = 0; var qChild = ''; if ( aAccmd.length == 2 ) { var iMen = aAccmd [0]; var iChilds = aAccmd [1]; var iCM = aAccmd [0] + '%2B' + aAccmd [1]; for ( i = 0 ; i < iChilds ; i++ ) { qChild += '&age[' + sAccmd + '][]=' + trr_GetTextboxVal ( 'trr_age_' + i, '' ); } } return qChild; } else { return ''; } } function trr_SearchRequestCompleted ( text, xml ) { trr_SetCurPage ( 'tours' ); trr_GenDirectLink ( srchBlockElts ); req_submitSearchData = null; var nd = xml.getElementsByTagName ( 'data' ); if ( nd.length != 0 ) { var targetContainer = document.getElementById ( 'content' ); if ( targetContainer ) targetContainer.innerHTML = nd [0].childNodes [0].nodeValue; } } function trr_LoadHotelInfo ( hotel_id ) { trr_SetCurPage ( 'hotel' ); trr_GenDirectLink ( srchBlockElts, 'hotel_id=' + hotel_id ); if ( targetContainer = document.getElementById ( 'content' ) ) { targetContainer.innerHTML = '
'; } url = "http://sun-ocean.ru//t_search/modules/tury.ru/tour_search/wsclient.php/hotel?id=" + hotel_id + '&querydate=' + Date (); if ( req_loadHotelInfo != null ) req_loadHotelInfo.abort (); req_loadHotelInfo = AJAXClient.SendGetRequest ( url, true, trr_LoadHotelInfoCompleted ); } function trr_LoadHotelInfoCompleted ( text, xml ) { req_loadHotelInfo = null; var nd = xml.getElementsByTagName ( 'data' ); if ( nd.length != 0 ) { var targetContainer = document.getElementById ( 'content' ); if ( targetContainer ) targetContainer.innerHTML = nd [0].childNodes [0].nodeValue; } } function trr_AdvanceResponse ( resp_c_id, resp_id ) { if ( targetContainer = document.getElementById ( resp_c_id ) ) { trr_ar_resp_s [resp_c_id] = targetContainer.innerHTML; if ( trr_ar_resp_l [resp_c_id] == null ) { targetContainer.innerHTML = '
'; url = "http://sun-ocean.ru//t_search/modules/tury.ru/tour_search/wsclient.php/hotelresp?id=" + resp_id + '&querydate=' + Date (); if ( req_advanceResponse != null ) req_advanceResponse.abort (); req_advanceResponse = AJAXClient.SendGetRequest ( url, true, trr_AdvanceResponseCompleted, resp_c_id ); } else { targetContainer.innerHTML = trr_ar_resp_l [resp_c_id]; } } } function trr_AdvanceResponseCompleted ( text, xml, resp_c_id ) { req_advanceResponse = null; var nd = xml.getElementsByTagName ( 'data' ); if ( nd.length != 0 ) { var targetContainer = document.getElementById ( resp_c_id ); if ( targetContainer ) { var resp_html = nd [0].childNodes [0].nodeValue; trr_ar_resp_l [resp_c_id] = resp_html; targetContainer.innerHTML = resp_html; } } } function trr_HideResponse ( resp_c_id ) { if ( targetContainer = document.getElementById ( resp_c_id ) ) { if ( trr_ar_resp_s [resp_c_id] != null ) targetContainer.innerHTML = trr_ar_resp_s [resp_c_id]; } } function trr_ShowMealDescription ( mealId ) { var params = 'id=' + mealId + '&querydate=' + Date (); // делаем запрос уникальным, чтобы избежать кеширования mealWnd = window.open ( '', 'MealInfo', 'directories=no,menubar=no,resizable=no,scrollbars=no,location=no,width=400,height=200' ); mealWnd.document.write ( '
' ); mealWnd.document.write ( '
' ); mealWnd.focus (); url = "http://sun-ocean.ru//t_search/modules/tury.ru/tour_search/wsclient.php/meal"; if ( req_showMealDescription != null ) req_showMealDescription.abort (); req_showMealDescription = AJAXClient.SendPostRequest ( url, params, true, trr_MealDescriptionObtained, mealWnd ); } function trr_MealDescriptionObtained ( text, xml, mealWnd ) { req_showMealDescription = null; mealWnd.document.title = 'Питание'; var nd = xml.getElementsByTagName ( 'data' ); if ( nd.length != 0 ) { var targetContainer = mealWnd.document.getElementById ( 'content' ); if ( targetContainer ) targetContainer.innerHTML = nd [0].childNodes [0].nodeValue; } } function trr_ShowRoomDescription ( roomId ) { var params = 'id=' + roomId + '&querydate=' + Date (); // делаем запрос уникальным, чтобы избежать кеширования roomWnd = window.open ( '', 'RTypeInfo', 'directories=no,menubar=no,resizable=no,scrollbars=no,location=no,width=400,height=200' ); roomWnd.document.write ( '
' ); roomWnd.document.write ( '
' ); roomWnd.focus (); url = "http://sun-ocean.ru//t_search/modules/tury.ru/tour_search/wsclient.php/rtype"; if ( req_showRoomDescription != null ) req_showRoomDescription.abort (); req_showRoomDescription = AJAXClient.SendPostRequest ( url, params, true, trr_RoomDescriptionObtained, roomWnd ); } function trr_RoomDescriptionObtained ( text, xml, roomWnd ) { req_showRoomDescription = null; roomWnd.document.title = 'Номер'; var nd = xml.getElementsByTagName ( 'data' ); if ( nd.length != 0 ) { var targetContainer = roomWnd.document.getElementById ( 'content' ); if ( targetContainer ) targetContainer.innerHTML = nd [0].childNodes [0].nodeValue; } } function trr_DepCity () { if ( dc = document.getElementById ( "trr_depcity" ) ) return dc.options[dc.selectedIndex].value; else return ""; } function trr_SetElementsLoadingState ( eltIds, loadingString ) { if ( !loadingString ) loadingString = 'загрузка...'; switch ( typeof ( eltIds ) ) { case 'string': processElt ( eltIds ); break; case 'object': // массив for ( var key in eltIds ) processElt ( eltIds [key] ); break; } function processElt ( eltId ) { if ( elt = document.getElementById ( eltId ) ) { elt.disabled = true; switch ( elt.type ) { case 'select-one': while ( elt.options.length > 0 ) elt.remove ( 0 ); elt.options.add ( new Option ( loadingString, '' ) ); break; case 'text': elt.value = loadingString; break; } } } } function trr_SetElementsLoadingStateAssoc ( elts, loadingString ) { if ( !loadingString ) loadingString = 'загрузка...'; switch ( typeof ( elts ) ) { case 'string': processElt ( elts ); break; case 'object': // массив for ( var key in elts ) processElt ( key, elts [key] ); break; } function processElt ( eltId, eltObj ) { if ( elt = document.getElementById ( eltId ) ) { if ( eltObj != null ) { eltObj.set_handler ( eltObj, elt ); } else { elt.disabled = true; switch ( elt.type ) { case 'select-one': while ( elt.options.length > 0 ) elt.remove ( 0 ); elt.options.add ( new Option ( loadingString, '' ) ); break; case 'text': elt.value = loadingString; break; } } } } } function trr_UnsetElementsLoadingState ( eltIds ) { switch ( typeof ( eltIds ) ) { case 'string': processElt ( eltIds ); break; case 'object': // массив for ( var key in eltIds ) processElt ( eltIds [key] ); break; } function processElt ( eltId ) { if ( elt = document.getElementById ( eltId ) ) { switch ( elt.type ) { case 'select-one': elt.options.length = 0; break; case 'text': elt.value = ''; break; } elt.disabled = false; } } } function trr_UnsetElementsLoadingStateAssoc ( elts ) { switch ( typeof ( elts ) ) { case 'string': processElt ( elts ); break; case 'object': // массив for ( var key in elts ) processElt ( key, elts [key] ); break; } function processElt ( eltId, eltObj ) { if ( elt = document.getElementById ( eltId ) ) { if ( eltObj != null ) { eltObj.unset_handler ( eltObj, elt ); } else { switch ( elt.type ) { case 'select-one': elt.options.length = 0; break; case 'text': elt.value = ''; break; } elt.disabled = false; } } } } function trr_InitSearchBlock () { if ( trr_ParseDirectLink () ) { trr_LoadCityDep ( trr_DirectLinkCityDepLoaded ); } else { trr_LoadCityDep (); } } function trr_DirectLinkCityDepLoaded () { trr_LoadFromDirectLink ( 'trr_depcity' ); trr_LoadCountries ( trr_DirectLinkCountriesLoaded ); } function trr_DirectLinkCountriesLoaded () { trr_LoadFromDirectLink ( 'trr_country' ); trr_LoadCountryData ( trr_DirectLinkCountryDataLoaded ); } function trr_DirectLinkCountryDataLoaded () { trr_LoadFromDirectLink ( countryDataElts ); LoadQAge (); trr_LoadFromDirectLink ( srchBlockElts ); trr_GenDirectLink ( srchBlockElts ); var cur_page = trr_GetCurPage (); switch ( cur_page ) { case 'tours': trr_SubmitSearchData (); break; case 'hotel': if ( trr_directLinkVals ['hotel_id'] ) trr_LoadHotelInfo ( trr_directLinkVals ['hotel_id'] ); break; case '': default: // do nothing break; } } function trr_LoadCityDep ( next_func ) { trr_SetElementsLoadingState ( 'trr_depcity' ); trr_SetElementsLoadingState ( 'trr_country' ); trr_SetElementsLoadingState ( countryDataElts, ' ' ); if ( req_loadCityDep != null ) req_loadCityDep.abort (); req_loadCityDep = trr_RequestRemoteScript ( "http://sun-ocean.ru//t_search/modules/tury.ru/tour_search/wsclient.php/citydeplist" + '?format=xml' + '&querydate=' + Date (), trr_LoadCityDepCompleted, next_func ); } function trr_LoadCityDepCompleted ( text, xml, next_func ) { req_loadCityDep = null; trr_UnsetElementsLoadingState ( 'trr_depcity' ); trr_ExecScriptXml ( xml ); trr_GenDirectLink ( srchBlockElts ); if ( next_func ) { next_func (); } else { trr_LoadCountries (); } } function trr_LoadCountries ( next_func ) { var trr_country = document.getElementById ( 'trr_country' ); if ( trr_country ) { if ( trr_country.options != null ) { var depCity = trr_DepCity (); trr_SetElementsLoadingState ( 'trr_country' ); trr_SetElementsLoadingStateAssoc ( countryDataEltsAssoc, ' ' ); if ( req_loadCountries != null ) req_loadCountries.abort (); req_loadCountries = trr_RequestRemoteScript ( "http://sun-ocean.ru//t_search/modules/tury.ru/tour_search/wsclient.php/countrylist?citydep=" + depCity + '&format=xml' + '&querydate=' + Date (), trr_LoadCountriesCompleted, next_func ); } else { trr_LoadCountryData (); } } else { trr_LoadCountryData (); } } function trr_LoadCountriesCompleted ( text, xml, next_func ) { req_loadCountries = null; trr_UnsetElementsLoadingState ( 'trr_country' ); trr_ExecScriptXml ( xml ); trr_GenDirectLink ( srchBlockElts ); if ( next_func ) next_func (); } function trr_CountryIndex ( selIdx ) { var trr_country = document.getElementById ( 'trr_country' ); if ( trr_country && trr_country.options ) { if ( selIdx ) selIdx.val = trr_country.selectedIndex; return trr_country.options [trr_country.selectedIndex].value; } } function trr_LoadCountryData ( next_func ) { var selIdx = {val:0}; var trr_country_index = trr_CountryIndex ( selIdx ); if ( trr_country_index != "" && selIdx.val != 0 ) { trr_SetElementsLoadingStateAssoc ( countryDataEltsAssoc ); //trr_SetElementsLoadingState ( countryDataElts ); var sCurCityDep = trr_DepCity (); var dvAge = document.getElementById ( "trr_age" ); dvAge.style.display = "none"; if ( req_loadCountryData != null ) req_loadCountryData.abort (); req_loadCountryData = trr_RequestRemoteScript ( 'http://sun-ocean.ru//t_search/modules/tury.ru/tour_search/wsclient.php/qdata?citydep=' + sCurCityDep + '&iCountry=' + trr_country_index + '&format=xml' + '&querydate=' + Date (), trr_LoadCountryDataCompleted, next_func ); } } function trr_LoadCountryDataCompleted ( text, xml, next_func ) { req_loadCountryData = null; trr_UnsetElementsLoadingStateAssoc ( countryDataEltsAssoc ); trr_ExecScriptXml ( xml ); trr_Filter (); trr_GenDirectLink ( srchBlockElts ); if ( next_func ) next_func (); } 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 (); if ( tcnt = document.getElementById ( "trr_tcount" ) ) tcnt.innerHTML = trr_tours; LoadFirstVals (); if ( cmbCurrency = document.getElementById ( "trr_price_currency" ) ) { 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 = "Руб."; cmbCurrency.selectedIndex = 2; } } function LoadFirstVals () { var ar_one_line = new Array ( "trr_city[]", "trr_hotel[]", "trr_star[]", "trr_meal[]", "trr_days_f", "trr_days_t" ); for ( i = 0 ; i < ar_one_line.length ; i++ ) { if ( cmb = document.getElementById ( ar_one_line [i] ) ) if ( cmb.options.length == 2 ) cmb.options.selectedIndex = 1; } if ( cmb = document.getElementById ( "trr_dep" ) ) cmb.options.selectedIndex = 1; } function trr_SelectedVals ( cmb_name ) { var str = new String (); cmb_opts = document.getElementById ( cmb_name ).options; for ( i = 1 ; i < cmb_opts.length ; i++ ) if ( cmb_opts [i].selected ) str = str + '(' + cmb_opts [i].value + ')'; return str; } function trr_FilterAccmd () { if ( cmbQ = document.getElementById ( "trr_accmd" ) ) { 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++ ) { var accmdIdx = 'age[' + sAccmd + '][' + i + ']'; if ( !srchBlockElts [accmdIdx] ) srchBlockElts [accmdIdx] = accmdIdx; sOut = sOut + ""; } dvAge.innerHTML = sOut + "лет"; dvAge.style.display = "block"; } } else { cmbQ.style.width = 150; dvAge.style.display = "none"; } } function trr_FilterCity () { if ( cmb = document.getElementById ( "trr_city[]" ) ) { cmb.options.length = trr_ar_city.length + 1; cmb.options [0] = new Option ( "- Все курорты -", "" ); 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 () { if ( cmb = document.getElementById ( "trr_subcity" ) ) { 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 () { if ( cmb = document.getElementById ( "trr_star[]" ) ) { 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 ( ';' ); if ( cmb = document.getElementById ( "trr_hotel[]" ) ) { 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 () { if ( cmb = document.getElementById ("trr_meal[]") ) { 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 && 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++ ) { if ( cmb = document.getElementById ( cmbs [i] ) ) if ( cmb.options ) cmb.options.length = 0; } } function trr_SetDays () { var trr_days_f = document.getElementById ( "trr_days_f" ); var trr_days_t = document.getElementById ( "trr_days_t" ); if ( trr_days_f.selectedIndex > trr_days_t.selectedIndex ) trr_days_t.selectedIndex = trr_days_f.selectedIndex; } var Trr_Url = { encode : function ( string ) { return escape ( this._utf8_encode ( string ) ); }, decode : function ( string ) { return this._utf8_decode ( unescape ( string ) ); }, _utf8_encode : function ( string ) { string = string.replace ( /\r\n/g, "\n" ); var utftext = ""; for ( var n = 0 ; n < string.length ; n++ ) { var c = string.charCodeAt ( n ); if ( c < 128 ) { utftext += String.fromCharCode ( c ); } else if ( ( c > 127 ) && ( c < 2048 ) ) { utftext += String.fromCharCode ( ( c >> 6 ) | 192 ); utftext += String.fromCharCode ( ( c & 63 ) | 128 ); } else { utftext += String.fromCharCode ( ( c >> 12 ) | 224 ); utftext += String.fromCharCode ( ( ( c >> 6 ) & 63 ) | 128 ); utftext += String.fromCharCode ( ( c & 63 ) | 128 ); } } return utftext; }, _utf8_decode : function ( utftext ) { var string = ""; var i = 0; var c = c1 = c2 = 0; while ( i < utftext.length ) { c = utftext.charCodeAt ( i ); if ( c < 128 ) { string += String.fromCharCode ( c ); i++; } else if ( ( c > 191 ) && ( c < 224 ) ) { c2 = utftext.charCodeAt ( i + 1 ); string += String.fromCharCode ( ( ( c & 31 ) << 6 ) | ( c2 & 63 ) ); i += 2; } else { c2 = utftext.charCodeAt ( i + 1 ); c3 = utftext.charCodeAt ( i + 2 ); string += String.fromCharCode ( ( ( c & 15 ) << 12 ) | ( ( c2 & 63 ) << 6 ) | ( c3 & 63 ) ); i += 3; } } return string; } } var ansi2utf8code = new Array (); var utf8code2ansi = new Array (); ansi2utf8code ['%00'] = 63; utf8code2ansi [63] = '%00'; ansi2utf8code ['%01'] = 1; utf8code2ansi [1] = '%01'; ansi2utf8code ['%02'] = 2; utf8code2ansi [2] = '%02'; ansi2utf8code ['%03'] = 3; utf8code2ansi [3] = '%03'; ansi2utf8code ['%04'] = 4; utf8code2ansi [4] = '%04'; ansi2utf8code ['%05'] = 5; utf8code2ansi [5] = '%05'; ansi2utf8code ['%06'] = 6; utf8code2ansi [6] = '%06'; ansi2utf8code ['%07'] = 7; utf8code2ansi [7] = '%07'; ansi2utf8code ['%08'] = 8; utf8code2ansi [8] = '%08'; ansi2utf8code ['%0B'] = 11; utf8code2ansi [11] = '%0B'; ansi2utf8code ['%0C'] = 12; utf8code2ansi [12] = '%0C'; ansi2utf8code ['%0E'] = 14; utf8code2ansi [14] = '%0E'; ansi2utf8code ['%0F'] = 15; utf8code2ansi [15] = '%0F'; ansi2utf8code ['%10'] = 16; utf8code2ansi [16] = '%10'; ansi2utf8code ['%11'] = 17; utf8code2ansi [17] = '%11'; ansi2utf8code ['%12'] = 18; utf8code2ansi [18] = '%12'; ansi2utf8code ['%13'] = 19; utf8code2ansi [19] = '%13'; ansi2utf8code ['%14'] = 20; utf8code2ansi [20] = '%14'; ansi2utf8code ['%15'] = 21; utf8code2ansi [21] = '%15'; ansi2utf8code ['%16'] = 22; utf8code2ansi [22] = '%16'; ansi2utf8code ['%17'] = 23; utf8code2ansi [23] = '%17'; ansi2utf8code ['%18'] = 24; utf8code2ansi [24] = '%18'; ansi2utf8code ['%19'] = 25; utf8code2ansi [25] = '%19'; ansi2utf8code ['%1A'] = 26; utf8code2ansi [26] = '%1A'; ansi2utf8code ['%1B'] = 27; utf8code2ansi [27] = '%1B'; ansi2utf8code ['%1C'] = 28; utf8code2ansi [28] = '%1C'; ansi2utf8code ['%1D'] = 29; utf8code2ansi [29] = '%1D'; ansi2utf8code ['%1E'] = 30; utf8code2ansi [30] = '%1E'; ansi2utf8code ['%1F'] = 31; utf8code2ansi [31] = '%1F'; ansi2utf8code ['+'] = 32; utf8code2ansi [32] = '+'; ansi2utf8code ['%21'] = 33; utf8code2ansi [33] = '%21'; ansi2utf8code ['%22'] = 34; utf8code2ansi [34] = '%22'; ansi2utf8code ['%23'] = 35; utf8code2ansi [35] = '%23'; ansi2utf8code ['%24'] = 36; utf8code2ansi [36] = '%24'; ansi2utf8code ['%25'] = 37; utf8code2ansi [37] = '%25'; ansi2utf8code ['%26'] = 38; utf8code2ansi [38] = '%26'; ansi2utf8code ['%27'] = 39; utf8code2ansi [39] = '%27'; ansi2utf8code ['%28'] = 40; utf8code2ansi [40] = '%28'; ansi2utf8code ['%29'] = 41; utf8code2ansi [41] = '%29'; ansi2utf8code ['%2A'] = 42; utf8code2ansi [42] = '%2A'; ansi2utf8code ['%2B'] = 43; utf8code2ansi [43] = '%2B'; ansi2utf8code ['%2C'] = 44; utf8code2ansi [44] = '%2C'; ansi2utf8code ['-'] = 45; utf8code2ansi [45] = '-'; ansi2utf8code ['.'] = 46; utf8code2ansi [46] = '.'; ansi2utf8code ['%2F'] = 47; utf8code2ansi [47] = '%2F'; ansi2utf8code ['0'] = 48; utf8code2ansi [48] = '0'; ansi2utf8code ['1'] = 49; utf8code2ansi [49] = '1'; ansi2utf8code ['2'] = 50; utf8code2ansi [50] = '2'; ansi2utf8code ['3'] = 51; utf8code2ansi [51] = '3'; ansi2utf8code ['4'] = 52; utf8code2ansi [52] = '4'; ansi2utf8code ['5'] = 53; utf8code2ansi [53] = '5'; ansi2utf8code ['6'] = 54; utf8code2ansi [54] = '6'; ansi2utf8code ['7'] = 55; utf8code2ansi [55] = '7'; ansi2utf8code ['8'] = 56; utf8code2ansi [56] = '8'; ansi2utf8code ['9'] = 57; utf8code2ansi [57] = '9'; ansi2utf8code ['%3A'] = 58; utf8code2ansi [58] = '%3A'; ansi2utf8code ['%3B'] = 59; utf8code2ansi [59] = '%3B'; ansi2utf8code ['%3C'] = 60; utf8code2ansi [60] = '%3C'; ansi2utf8code ['%3D'] = 61; utf8code2ansi [61] = '%3D'; ansi2utf8code ['%3E'] = 62; utf8code2ansi [62] = '%3E'; ansi2utf8code ['%3F'] = 63; utf8code2ansi [63] = '%3F'; ansi2utf8code ['%40'] = 64; utf8code2ansi [64] = '%40'; ansi2utf8code ['A'] = 65; utf8code2ansi [65] = 'A'; ansi2utf8code ['B'] = 66; utf8code2ansi [66] = 'B'; ansi2utf8code ['C'] = 67; utf8code2ansi [67] = 'C'; ansi2utf8code ['D'] = 68; utf8code2ansi [68] = 'D'; ansi2utf8code ['E'] = 69; utf8code2ansi [69] = 'E'; ansi2utf8code ['F'] = 70; utf8code2ansi [70] = 'F'; ansi2utf8code ['G'] = 71; utf8code2ansi [71] = 'G'; ansi2utf8code ['H'] = 72; utf8code2ansi [72] = 'H'; ansi2utf8code ['I'] = 73; utf8code2ansi [73] = 'I'; ansi2utf8code ['J'] = 74; utf8code2ansi [74] = 'J'; ansi2utf8code ['K'] = 75; utf8code2ansi [75] = 'K'; ansi2utf8code ['L'] = 76; utf8code2ansi [76] = 'L'; ansi2utf8code ['M'] = 77; utf8code2ansi [77] = 'M'; ansi2utf8code ['N'] = 78; utf8code2ansi [78] = 'N'; ansi2utf8code ['O'] = 79; utf8code2ansi [79] = 'O'; ansi2utf8code ['P'] = 80; utf8code2ansi [80] = 'P'; ansi2utf8code ['Q'] = 81; utf8code2ansi [81] = 'Q'; ansi2utf8code ['R'] = 82; utf8code2ansi [82] = 'R'; ansi2utf8code ['S'] = 83; utf8code2ansi [83] = 'S'; ansi2utf8code ['T'] = 84; utf8code2ansi [84] = 'T'; ansi2utf8code ['U'] = 85; utf8code2ansi [85] = 'U'; ansi2utf8code ['V'] = 86; utf8code2ansi [86] = 'V'; ansi2utf8code ['W'] = 87; utf8code2ansi [87] = 'W'; ansi2utf8code ['X'] = 88; utf8code2ansi [88] = 'X'; ansi2utf8code ['Y'] = 89; utf8code2ansi [89] = 'Y'; ansi2utf8code ['Z'] = 90; utf8code2ansi [90] = 'Z'; ansi2utf8code ['%5B'] = 91; utf8code2ansi [91] = '%5B'; ansi2utf8code ['%5C'] = 92; utf8code2ansi [92] = '%5C'; ansi2utf8code ['%5D'] = 93; utf8code2ansi [93] = '%5D'; ansi2utf8code ['%5E'] = 94; utf8code2ansi [94] = '%5E'; ansi2utf8code ['_'] = 95; utf8code2ansi [95] = '_'; ansi2utf8code ['%60'] = 96; utf8code2ansi [96] = '%60'; ansi2utf8code ['a'] = 97; utf8code2ansi [97] = 'a'; ansi2utf8code ['b'] = 98; utf8code2ansi [98] = 'b'; ansi2utf8code ['c'] = 99; utf8code2ansi [99] = 'c'; ansi2utf8code ['d'] = 100; utf8code2ansi [100] = 'd'; ansi2utf8code ['e'] = 101; utf8code2ansi [101] = 'e'; ansi2utf8code ['f'] = 102; utf8code2ansi [102] = 'f'; ansi2utf8code ['g'] = 103; utf8code2ansi [103] = 'g'; ansi2utf8code ['h'] = 104; utf8code2ansi [104] = 'h'; ansi2utf8code ['i'] = 105; utf8code2ansi [105] = 'i'; ansi2utf8code ['j'] = 106; utf8code2ansi [106] = 'j'; ansi2utf8code ['k'] = 107; utf8code2ansi [107] = 'k'; ansi2utf8code ['l'] = 108; utf8code2ansi [108] = 'l'; ansi2utf8code ['m'] = 109; utf8code2ansi [109] = 'm'; ansi2utf8code ['n'] = 110; utf8code2ansi [110] = 'n'; ansi2utf8code ['o'] = 111; utf8code2ansi [111] = 'o'; ansi2utf8code ['p'] = 112; utf8code2ansi [112] = 'p'; ansi2utf8code ['q'] = 113; utf8code2ansi [113] = 'q'; ansi2utf8code ['r'] = 114; utf8code2ansi [114] = 'r'; ansi2utf8code ['s'] = 115; utf8code2ansi [115] = 's'; ansi2utf8code ['t'] = 116; utf8code2ansi [116] = 't'; ansi2utf8code ['u'] = 117; utf8code2ansi [117] = 'u'; ansi2utf8code ['v'] = 118; utf8code2ansi [118] = 'v'; ansi2utf8code ['w'] = 119; utf8code2ansi [119] = 'w'; ansi2utf8code ['x'] = 120; utf8code2ansi [120] = 'x'; ansi2utf8code ['y'] = 121; utf8code2ansi [121] = 'y'; ansi2utf8code ['z'] = 122; utf8code2ansi [122] = 'z'; ansi2utf8code ['%7B'] = 123; utf8code2ansi [123] = '%7B'; ansi2utf8code ['%7C'] = 124; utf8code2ansi [124] = '%7C'; ansi2utf8code ['%7D'] = 125; utf8code2ansi [125] = '%7D'; ansi2utf8code ['%7E'] = 126; utf8code2ansi [126] = '%7E'; ansi2utf8code ['%7F'] = 127; utf8code2ansi [127] = '%7F'; ansi2utf8code ['%80'] = 1026; utf8code2ansi [1026] = '%80'; ansi2utf8code ['%81'] = 1027; utf8code2ansi [1027] = '%81'; ansi2utf8code ['%82'] = 8218; utf8code2ansi [8218] = '%82'; ansi2utf8code ['%83'] = 1107; utf8code2ansi [1107] = '%83'; ansi2utf8code ['%84'] = 8222; utf8code2ansi [8222] = '%84'; ansi2utf8code ['%85'] = 8230; utf8code2ansi [8230] = '%85'; ansi2utf8code ['%86'] = 8224; utf8code2ansi [8224] = '%86'; ansi2utf8code ['%87'] = 8225; utf8code2ansi [8225] = '%87'; ansi2utf8code ['%88'] = 8364; utf8code2ansi [8364] = '%88'; ansi2utf8code ['%89'] = 8240; utf8code2ansi [8240] = '%89'; ansi2utf8code ['%8A'] = 1033; utf8code2ansi [1033] = '%8A'; ansi2utf8code ['%8B'] = 8249; utf8code2ansi [8249] = '%8B'; ansi2utf8code ['%8C'] = 1034; utf8code2ansi [1034] = '%8C'; ansi2utf8code ['%8D'] = 1036; utf8code2ansi [1036] = '%8D'; ansi2utf8code ['%8E'] = 1035; utf8code2ansi [1035] = '%8E'; ansi2utf8code ['%8F'] = 1039; utf8code2ansi [1039] = '%8F'; ansi2utf8code ['%90'] = 1106; utf8code2ansi [1106] = '%90'; ansi2utf8code ['%91'] = 8216; utf8code2ansi [8216] = '%91'; ansi2utf8code ['%92'] = 8217; utf8code2ansi [8217] = '%92'; ansi2utf8code ['%93'] = 8220; utf8code2ansi [8220] = '%93'; ansi2utf8code ['%94'] = 8221; utf8code2ansi [8221] = '%94'; ansi2utf8code ['%95'] = 8226; utf8code2ansi [8226] = '%95'; ansi2utf8code ['%96'] = 8211; utf8code2ansi [8211] = '%96'; ansi2utf8code ['%97'] = 8212; utf8code2ansi [8212] = '%97'; ansi2utf8code ['%98'] = 63; utf8code2ansi [63] = '%98'; ansi2utf8code ['%99'] = 8482; utf8code2ansi [8482] = '%99'; ansi2utf8code ['%9A'] = 1113; utf8code2ansi [1113] = '%9A'; ansi2utf8code ['%9B'] = 8250; utf8code2ansi [8250] = '%9B'; ansi2utf8code ['%9C'] = 1114; utf8code2ansi [1114] = '%9C'; ansi2utf8code ['%9D'] = 1116; utf8code2ansi [1116] = '%9D'; ansi2utf8code ['%9E'] = 1115; utf8code2ansi [1115] = '%9E'; ansi2utf8code ['%9F'] = 1119; utf8code2ansi [1119] = '%9F'; ansi2utf8code ['%A1'] = 1038; utf8code2ansi [1038] = '%A1'; ansi2utf8code ['%A2'] = 1118; utf8code2ansi [1118] = '%A2'; ansi2utf8code ['%A3'] = 1032; utf8code2ansi [1032] = '%A3'; ansi2utf8code ['%A4'] = 164; utf8code2ansi [164] = '%A4'; ansi2utf8code ['%A5'] = 1168; utf8code2ansi [1168] = '%A5'; ansi2utf8code ['%A6'] = 166; utf8code2ansi [166] = '%A6'; ansi2utf8code ['%A7'] = 167; utf8code2ansi [167] = '%A7'; ansi2utf8code ['%A8'] = 1025; utf8code2ansi [1025] = '%A8'; ansi2utf8code ['%A9'] = 169; utf8code2ansi [169] = '%A9'; ansi2utf8code ['%AA'] = 1028; utf8code2ansi [1028] = '%AA'; ansi2utf8code ['%AB'] = 171; utf8code2ansi [171] = '%AB'; ansi2utf8code ['%AC'] = 172; utf8code2ansi [172] = '%AC'; ansi2utf8code ['%AD'] = 173; utf8code2ansi [173] = '%AD'; ansi2utf8code ['%AE'] = 174; utf8code2ansi [174] = '%AE'; ansi2utf8code ['%AF'] = 1031; utf8code2ansi [1031] = '%AF'; ansi2utf8code ['%B0'] = 176; utf8code2ansi [176] = '%B0'; ansi2utf8code ['%B1'] = 177; utf8code2ansi [177] = '%B1'; ansi2utf8code ['%B2'] = 1030; utf8code2ansi [1030] = '%B2'; ansi2utf8code ['%B3'] = 1110; utf8code2ansi [1110] = '%B3'; ansi2utf8code ['%B4'] = 1169; utf8code2ansi [1169] = '%B4'; ansi2utf8code ['%B5'] = 181; utf8code2ansi [181] = '%B5'; ansi2utf8code ['%B6'] = 182; utf8code2ansi [182] = '%B6'; ansi2utf8code ['%B7'] = 183; utf8code2ansi [183] = '%B7'; ansi2utf8code ['%B8'] = 1105; utf8code2ansi [1105] = '%B8'; ansi2utf8code ['%B9'] = 8470; utf8code2ansi [8470] = '%B9'; ansi2utf8code ['%BA'] = 1108; utf8code2ansi [1108] = '%BA'; ansi2utf8code ['%BB'] = 187; utf8code2ansi [187] = '%BB'; ansi2utf8code ['%BC'] = 1112; utf8code2ansi [1112] = '%BC'; ansi2utf8code ['%BD'] = 1029; utf8code2ansi [1029] = '%BD'; ansi2utf8code ['%BE'] = 1109; utf8code2ansi [1109] = '%BE'; ansi2utf8code ['%BF'] = 1111; utf8code2ansi [1111] = '%BF'; ansi2utf8code ['%C0'] = 1040; utf8code2ansi [1040] = '%C0'; ansi2utf8code ['%C1'] = 1041; utf8code2ansi [1041] = '%C1'; ansi2utf8code ['%C2'] = 1042; utf8code2ansi [1042] = '%C2'; ansi2utf8code ['%C3'] = 1043; utf8code2ansi [1043] = '%C3'; ansi2utf8code ['%C4'] = 1044; utf8code2ansi [1044] = '%C4'; ansi2utf8code ['%C5'] = 1045; utf8code2ansi [1045] = '%C5'; ansi2utf8code ['%C6'] = 1046; utf8code2ansi [1046] = '%C6'; ansi2utf8code ['%C7'] = 1047; utf8code2ansi [1047] = '%C7'; ansi2utf8code ['%C8'] = 1048; utf8code2ansi [1048] = '%C8'; ansi2utf8code ['%C9'] = 1049; utf8code2ansi [1049] = '%C9'; ansi2utf8code ['%CA'] = 1050; utf8code2ansi [1050] = '%CA'; ansi2utf8code ['%CB'] = 1051; utf8code2ansi [1051] = '%CB'; ansi2utf8code ['%CC'] = 1052; utf8code2ansi [1052] = '%CC'; ansi2utf8code ['%CD'] = 1053; utf8code2ansi [1053] = '%CD'; ansi2utf8code ['%CE'] = 1054; utf8code2ansi [1054] = '%CE'; ansi2utf8code ['%CF'] = 1055; utf8code2ansi [1055] = '%CF'; ansi2utf8code ['%D0'] = 1056; utf8code2ansi [1056] = '%D0'; ansi2utf8code ['%D1'] = 1057; utf8code2ansi [1057] = '%D1'; ansi2utf8code ['%D2'] = 1058; utf8code2ansi [1058] = '%D2'; ansi2utf8code ['%D3'] = 1059; utf8code2ansi [1059] = '%D3'; ansi2utf8code ['%D4'] = 1060; utf8code2ansi [1060] = '%D4'; ansi2utf8code ['%D5'] = 1061; utf8code2ansi [1061] = '%D5'; ansi2utf8code ['%D6'] = 1062; utf8code2ansi [1062] = '%D6'; ansi2utf8code ['%D7'] = 1063; utf8code2ansi [1063] = '%D7'; ansi2utf8code ['%D8'] = 1064; utf8code2ansi [1064] = '%D8'; ansi2utf8code ['%D9'] = 1065; utf8code2ansi [1065] = '%D9'; ansi2utf8code ['%DA'] = 1066; utf8code2ansi [1066] = '%DA'; ansi2utf8code ['%DB'] = 1067; utf8code2ansi [1067] = '%DB'; ansi2utf8code ['%DC'] = 1068; utf8code2ansi [1068] = '%DC'; ansi2utf8code ['%DD'] = 1069; utf8code2ansi [1069] = '%DD'; ansi2utf8code ['%DE'] = 1070; utf8code2ansi [1070] = '%DE'; ansi2utf8code ['%DF'] = 1071; utf8code2ansi [1071] = '%DF'; ansi2utf8code ['%E0'] = 1072; utf8code2ansi [1072] = '%E0'; ansi2utf8code ['%E1'] = 1073; utf8code2ansi [1073] = '%E1'; ansi2utf8code ['%E2'] = 1074; utf8code2ansi [1074] = '%E2'; ansi2utf8code ['%E3'] = 1075; utf8code2ansi [1075] = '%E3'; ansi2utf8code ['%E4'] = 1076; utf8code2ansi [1076] = '%E4'; ansi2utf8code ['%E5'] = 1077; utf8code2ansi [1077] = '%E5'; ansi2utf8code ['%E6'] = 1078; utf8code2ansi [1078] = '%E6'; ansi2utf8code ['%E7'] = 1079; utf8code2ansi [1079] = '%E7'; ansi2utf8code ['%E8'] = 1080; utf8code2ansi [1080] = '%E8'; ansi2utf8code ['%E9'] = 1081; utf8code2ansi [1081] = '%E9'; ansi2utf8code ['%EA'] = 1082; utf8code2ansi [1082] = '%EA'; ansi2utf8code ['%EB'] = 1083; utf8code2ansi [1083] = '%EB'; ansi2utf8code ['%EC'] = 1084; utf8code2ansi [1084] = '%EC'; ansi2utf8code ['%ED'] = 1085; utf8code2ansi [1085] = '%ED'; ansi2utf8code ['%EE'] = 1086; utf8code2ansi [1086] = '%EE'; ansi2utf8code ['%EF'] = 1087; utf8code2ansi [1087] = '%EF'; ansi2utf8code ['%F0'] = 1088; utf8code2ansi [1088] = '%F0'; ansi2utf8code ['%F1'] = 1089; utf8code2ansi [1089] = '%F1'; ansi2utf8code ['%F2'] = 1090; utf8code2ansi [1090] = '%F2'; ansi2utf8code ['%F3'] = 1091; utf8code2ansi [1091] = '%F3'; ansi2utf8code ['%F4'] = 1092; utf8code2ansi [1092] = '%F4'; ansi2utf8code ['%F5'] = 1093; utf8code2ansi [1093] = '%F5'; ansi2utf8code ['%F6'] = 1094; utf8code2ansi [1094] = '%F6'; ansi2utf8code ['%F7'] = 1095; utf8code2ansi [1095] = '%F7'; ansi2utf8code ['%F8'] = 1096; utf8code2ansi [1096] = '%F8'; ansi2utf8code ['%F9'] = 1097; utf8code2ansi [1097] = '%F9'; ansi2utf8code ['%FA'] = 1098; utf8code2ansi [1098] = '%FA'; ansi2utf8code ['%FB'] = 1099; utf8code2ansi [1099] = '%FB'; ansi2utf8code ['%FC'] = 1100; utf8code2ansi [1100] = '%FC'; ansi2utf8code ['%FD'] = 1101; utf8code2ansi [1101] = '%FD'; ansi2utf8code ['%FE'] = 1102; utf8code2ansi [1102] = '%FE'; ansi2utf8code ['%FF'] = 1103; utf8code2ansi [1103] = '%FF'; function trr_UrlFullEncode ( string ) { string = string.replace ( /\r\n/g, "\n" ); var enctext = ''; for ( var n = 0 ; n < string.length ; n++ ) { var c = string.charCodeAt ( n ); if ( utf8code2ansi [c] ) enctext += utf8code2ansi [c]; } return enctext; } function trr_UrlFullDecode ( enctext ) { var string = ''; var encchar = ''; var inchar = false; for ( var n = 0 ; n < enctext.length ; n++ ) { var c = enctext.charAt ( n ); if ( inchar ) { encchar += c; if ( encchar.length == 3 ) inchar = false; } else { if ( c == '%' ) { encchar = '%'; inchar = true; } else { encchar = c; } } if ( !inchar ) { var enckey = encchar [0] == '%' ? encchar.toUpperCase () : encchar; if ( ansi2utf8code [enckey] ) { string += String.fromCharCode ( ansi2utf8code [enckey] ); } else { string += encchar; } } } return string; } function trr_SubmitSearchDataNewWindow ( params, page, hotel_name ) { if ( params == null ) { var qChild = trr_GetAgeQueryPart (); var params = 'trr_depcity=' + trr_DepCity () + '&trr_country=' + trr_CountryIndex ( null ) + '&' + trr_MakeUrlArgFromDropDownVal ( 'trr_city[]' , 'trr_city[]' , '', true ) + '&' + trr_MakeUrlArgFromDropDownVal ( 'trr_star[]' , 'trr_star[]' , '', true ) + '&' + trr_MakeUrlArgFromDropDownVal ( 'trr_hotel[]', 'trr_hotel[]', '', true ) + '&' + trr_MakeUrlArgFromDropDownVal ( 'trr_meal[]' , 'trr_meal[]' , '', true ) + '&trr_dep=' + trr_GetDropdownVal ( 'trr_dep' , '' ) + '&trr_plusmn=' + trr_GetTextboxVal ( 'trr_plusmn' , '' ) + '&trr_days_f=' + trr_GetDropdownVal ( 'trr_days_f' , '' ) + '&trr_days_t=' + trr_GetDropdownVal ( 'trr_days_t' , '' ) + '&trr_accmd=' + trr_GetDropdownVal ( 'trr_accmd' , '' ) + qChild + '&trr_price_f=' + trr_UrlEncode ( trr_GetTextboxVal ( 'trr_price_f', '' ) ) + '&trr_price_t=' + trr_UrlEncode ( trr_GetTextboxVal ( 'trr_price_t', '' ) ) + '&trr_price_currency=' + trr_GetDropdownVal ( 'trr_price_currency', '' );/* + '&trr_full_search=' + trr_GetCheckboxVal ( 'trr_full_search' , '0' );*/ } if ( hotel_name != null ) { params = params.replace ( /trr_hotel\[\d*\]=[^&]*/gi, '' ); params = params.replace ( /&{2,}/, '&' ); params += '&trr_hotel[]=' + trr_UrlEncode ( hotel_name ); } if ( page != null ) params += '&page=' + page; params += '&querydate=' + Date (); url = "http://sun-ocean.ru/search.html#:tour_search/tours?" + params; window.location=url; // mealWnd = window.open ( url, 'TourSearch', '' ); //mealWnd.focus (); }