var dtFrom = new Array();
var dtTo = new Array();
function InitDialog(idBox,pWidth)
{
    if(!pWidth) pWidth = 500;
    jQuery("#"+idBox).dialog({
                                bgiframe: true,
                                autoOpen: false,
                                height: 250,
                                width: pWidth,
                                modal: true,
                                zindex: 100                                
                             });
}   
function openDialog(idBox)
{
    jQuery('#'+idBox).dialog('open');    
}  
function doSelectCity(elem,field,idBox)
{
    jQuery("#"+field).val(jQuery(elem).val());
    jQuery("#"+field+"_label").html(jQuery(elem).attr("title"));    
}  
function createCalendar(date_from_id,start_from) 
{   
    var obj  = jQuery(date_from_id).datepicker("getDate")
    jQuery(date_from_id)
        .datepicker(jQuery.extend({}, { 
             beforeShow: function (input) {                            
                return {
                    minDate: (jQuery.datepicker.parseDate("dd.mm.yy", dateRender(new Date())))                    
                }; 
            },
            dateFormat: "dd.mm D, yy" 
        })
    );
}

function operatorReselect(elem)
{
    var selOperator = jQuery(elem).val();
    if(selOperator && selOperator.length)
    {
        jQuery("#all_operators").attr("checked",false);
    }
    else
    {
        jQuery("#all_operators").attr("checked","checked");
    }
}  
function dateRender(date)
{
    var YEAR = date.getFullYear();
    var MONTH = (date.getMonth() < 9) ? "0"+(date.getMonth()+1) : (date.getMonth()+1);
    var DAY = (date.getDate() < 10) ? "0"+ date.getDate() : date.getDate();
    var str = DAY + "." + MONTH + "." + YEAR; 
    
    return str;
}  
function setMask(idBox,masks)
{
    jQuery('#'+idBox).mask(masks);
}    
function doSetDuration(dMin,dMax,elem)
{
    jQuery("#duration_boxes").find("a").each(function(){
        
        jQuery(this).removeClass("current_duration");
    });
    jQuery(elem).addClass("current_duration");
    jQuery("#m_duration_min").val(dMin);
    jQuery("#m_duration_max").val(dMax);
}
function doSetPrice(dMax,elem)
{
    jQuery("#price_boxes").find("a").each(function(){
        
        jQuery(this).removeClass("current_duration");
    });
    jQuery(elem).addClass("current_duration");
    jQuery("#m_price_min").val(0);
    jQuery("#m_price_max").val(dMax);
}
function doSetCurrency(val,elem)
{
    jQuery("#currency_boxes").find("a").each(function(){
        
        jQuery(this).removeClass("current_duration");
    });
    jQuery(elem).addClass("current_duration");
    jQuery("#m_currency").val(val);    
}
function doSetPerpage(val,elem)
{
    jQuery("#perpage_boxes").find("a").each(function(){
        
        jQuery(this).removeClass("current_duration");
    });
    jQuery(elem).addClass("current_duration");
    jQuery("#m_perpage").val(val);    
}
function CountryChange(key,val)
{
    jQuery("#CountryCange").html(val);
    jQuery("#country_id").val(key);
    jQuery('#countryBox').dialog('close');
    
    var country_id = jQuery("#country_id").val();
    jQuery("#date_from_field").val(dtFrom[country_id]);
    jQuery("#date_to_field").val(dtTo[country_id]);
    
    getResort(true);
    getHotel(true);   
 
}
function getResort(async)
{
    var country_id = jQuery("#country_id").val();
    document.getElementById("resort_block").innerHTML = "<center><img src='/img/mwait.gif'></center>";
    if(!jQuery("#cr"+country_id).attr("id")) 
    {
        var div = document.createElement("div");
        div.id = "cr"+country_id;
        jQuery.ajax({
                    url: "/tour_search/getresort",
                    cache: true,
                    type: "POST",
                    data: {country_id: country_id},
                    async: async,
                    success: function(html)
                    {
                       div.innerHTML = html; 
                       jQuery("#all_buffer").append(div);        
                       document.getElementById("resort_block").innerHTML = document.getElementById("cr"+country_id).innerHTML;
                    }
              });
    }
    else
    {
        document.getElementById("resort_block").innerHTML = document.getElementById("cr"+country_id).innerHTML;
    }
}

/******************************      HOTEL RESORT       ******************************/
function reloadACData() {
    var 
        AC = jQuery("#quick_search_hotel"),
        objHotel = new Array();
    jQuery("#hotel_block div").each (function (item, obj) {
        var 
            pk = jQuery(obj).children("input").val(),
            name = jQuery(obj).find("label").attr('title');
        objHotel[item] = {name: name, pk: pk};
    })
    AC.setOptions({data: objHotel});    
}
function getHotel(async)
{
    jQuery("#quick_search_hotel").val('Загрузка отелей..').attr('disabled',true);
    var country_id = jQuery("#country_id").val();
    document.getElementById("hotel_block").innerHTML = "<center><img src='/img/mwait.gif'></center>";
    if(!jQuery("#ch"+country_id).attr("id"))   
    {
        var div = document.createElement("div");
        div.id = "ch"+country_id;
        jQuery.ajax({
                    url: "/tour_search/gethotel",
                    cache: true,
                    type: "POST",
                    data: {country_id: country_id},
                    async: async,
                    success: function(html)
                    {
                       div.innerHTML = html; 
                       jQuery("#all_buffer").append(div);        
                       document.getElementById("hotel_block").innerHTML = document.getElementById("ch"+country_id).innerHTML;        
                       jQuery("#quick_search_hotel").val('').attr('disabled',false);
                       reloadACData();
                    }
              });
    }
    else
    {
       document.getElementById("hotel_block").innerHTML = document.getElementById("ch"+country_id).innerHTML;        
    }
}
function doCheckedResort(elem)
{
    var selStars = jQuery(jQuery("#star_block")).find("label.label_active");
    selStars.each(function(){
        doCheckedStar(this);
    });
    jQuery(jQuery(elem).parent()).find("input:checkbox").each(function(){
        if(this.checked)
        {
            this.checked = false;
            jQuery(elem).removeClass("label_active");
            filterHotelByResortOff(this.value)
        }
        else
        {
            this.checked = true;
            jQuery("#all_resort").attr("checked",false);
            jQuery(elem).addClass("label_active");
            filterHotelByResortOn(this.value)
        }
    });

    selStars.each(function(){
        doCheckedStar(this);
    });
    if(jQuery(jQuery("#resort_block")).find("label.label_active").length == 0) {
        jQuery("#all_resort").attr("checked",true);        
    } else {
        jQuery("#quick_search_hotel").removeAttr("disabled").val('');
        
    }

}
function filterHotelByResortOn(resort)
{
    jQuery("#hotel_block").find("div.invisibleR.r"+resort).each(function(){
        jQuery(this).removeClass("invisibleR"); 
        jQuery(this).addClass("visibleR");        
    });
}
function filterHotelByPk(pk)
{
    jQuery("#h"+pk+"_div").removeClass("invisibleR").addClass("visibleR"); 
}

function filterHotelByResortOff(resort)
{
    jQuery("#hotel_block").find("div.visibleR.r"+resort).each(function(){
        jQuery(this).removeClass("visibleR");
        jQuery(this).removeClass("invisibleS");
        jQuery(this).removeClass("visibleS");        
        jQuery(this).addClass("invisibleR");
        turnElement(this);
    });
}

function doSetAllResort(id)
{
    resetHotel();
    if(jQuery("#all_resort").attr("checked"))
    {
        
        jQuery(id).css("display","block");
       jQuery("#resort_block").find("label.label_active").each(
                                                               
                                                               function(){           
                                                                    doCheckedResort(this);
        
                                                                }
        
    )}
    else
    {
        jQuery(id).css("display","none"); 
    } 
}
function doSetAllMeal(id)
{
   if(jQuery("#all_meal").attr("checked"))
    {
        jQuery(id).css("display","block");
       jQuery("#meal_block").find("label.label_active").each(function(){doCheckedMeal(this);}        
    )}
    else
    {
        jQuery(id).css("display","none"); 
    }  
}
/******************************      HOTEL STAR       ******************************/

function doCheckedStar(elem)
{
    jQuery(jQuery(elem).parent()).find("input:checkbox").each(function(){
        if(this.checked)
        {
            this.checked = false;
            jQuery(elem).removeClass("label_active");
            filterHotelByStarOff(this.value);            
        }
        else
        {
            this.checked = true;
            if(jQuery("#all_star").attr("checked")) ResetHotelByStar();
            jQuery("#all_star").attr("checked",false);
            jQuery(elem).addClass("label_active");
            filterHotelByStarOn(this.value);
        }
    });
    
    if(jQuery(jQuery("#star_block")).find("label.label_active").length == 0) 
    {
        jQuery("#all_star").attr("checked",true);
        clearHotelByStar();
    }
    
}
function ResetHotelByStar()
{
     jQuery("#hotel_block").find("div.visibleR").each(function(){
          jQuery(this).addClass("invisibleS");
    });
}
function clearHotelByStar()
{
     jQuery("#hotel_block").find("div.visibleR").each(function(){
          jQuery(this).removeClass("invisibleS");
          jQuery(this).removeClass("visibleS");
    });
}
function filterHotelByStarOn(star)
{
    jQuery("#hotel_block").find("div.visibleR.invisibleS").each(function(){
        
        if(jQuery(this).hasClass("t"+star))
        {
           jQuery(this).addClass("visibleS"); 
           jQuery(this).removeClass("invisibleS"); 
        }
        
    });
}
function filterHotelByStarOff(star)
{
    jQuery("#hotel_block").find("div.visibleR.visibleS").each(function(){
        if(jQuery(this).hasClass("t"+star))
        {
           jQuery(this).removeClass("visibleS"); 
           jQuery(this).addClass("invisibleS");
           turnElement(this);
        }
        
    });
}
function doSetAllStar(id)
{
    if(jQuery("#all_star").attr("checked"))
    {
       jQuery(id).css("display","block");
       jQuery("#star_block").find("label.label_active").each(
                                                             function(){           
                                                                        doCheckedStar(this);
                                                                        }
    )}
    else
    {
        jQuery(id).css("display","none"); 
    }
}

function doSearchHotel(hotel)
{
    var hotel = hotel.toLowerCase();
    jQuery("#resort_block label.label_active").each(function(index,domElem){
        filterHotelByResortOn(
            jQuery(domElem)
                .prev("input")
                .val()
        );
    });
    jQuery("#star_block label.label_active").each(function(index,domElem){
        filterHotelByStarOn(
            jQuery(domElem)
                .prev("input")
                .val()
        );
    });
    var hotel_block = jQuery("#hotel_block"),
        filterHotel = jQuery("#filterHotel"),
        all_hotel = jQuery("#all_hotel"),
        visible_hotel = hotel_block.find("div.visibleR label")
            .removeClass("label_active")            
    all_hotel.attr("checked",true);
    filterHotel.addClass("filter_hide");
    if (!hotel) 
        return true;    
    all_hotel.attr("checked",false);
    filterHotel.removeClass("filter_hide"); 
    visible_hotel.addClass("temporary");    
    hotel_block        
        .find("div.visibleR label[title*='" + hotel + "']")
        .removeClass("temporary")
        .addClass("label_active")
        .prev("input")
        .attr("checked",true);
   hotel_block
        .find("div.visibleR label.temporary")
        .removeClass("temporary")
        .parent()
        .removeClass('visibleR')
        .addClass('invisibleR');
}
function doCheckedHotel(elem)
{
    jQuery(jQuery(elem).parent()).find("input:checkbox").each(function(){
        if(this.checked)
        {
            this.checked = false;
            jQuery(elem).removeClass("label_active");
        }
        else
        {
            this.checked = true;
            jQuery(elem).addClass("label_active");
            jQuery("#all_hotel").attr("checked",false);
        }
    });
    
    if(jQuery(jQuery("#hotel_block")).find("label.label_active").length == 0) jQuery("#all_hotel").attr("checked",true);        
}
function doSetAllHotel(id)
{
    if(jQuery("#all_hotel").attr("checked"))
    {
        resetHotel();
        jQuery(id).css("display","block"); 
        jQuery("#hotel_block").find("label.label_active").each(
                                                                  function(){           
                                                                    doCheckedHotel(this);
                                                                }
    )}
    else
    {
        jQuery(id).css("display","none"); 
    }
}
function turnElement(elem)
{
    jQuery(elem).find("input:checkbox").each(function(){
        this.checked = false;        
    });
    
    jQuery(elem).find("label.label_active").each(function(){
        jQuery(this).removeClass("label_active");        
    });
}
/******************************   END HOTEL        ******************************/   

function doCheckedMeal(elem)
{
    jQuery(jQuery(elem).parent()).find("input:checkbox").each(function(){
        if(this.checked)
        {
            this.checked = false;
            jQuery(elem).removeClass("label_active");    
        }
        else
        {
            this.checked = true;
            jQuery("#all_meal").attr("checked",false);
            jQuery(elem).addClass("label_active");            
        }
    });
    if(jQuery(jQuery("#meal_block")).find("label.label_active").length == 0) 
    {
        jQuery("#filterMeal").css("display","block");
        jQuery("#all_meal").attr("checked",true);
    }
    
}

function lockResult()
{
    jQuery("#search_result").html(jQuery("#lock_result").html());
}

function unlockResult()
{
    jQuery("#lock_result").slideUp("slow");
    jQuery("#result_tourlist").slideDown("search_result");
}
function doSetAllOperators(id)
{
   if(jQuery("#all_operators").attr("checked"))
    {
        jQuery(id).css("display","block");
        jQuery("#country_id option").removeAttr("selected");       
    }
    else
    {
        jQuery(id).css("display","none"); 
    }
}

/******************************    TOUR SEARCH   *********************************/
function doNextDate(date,elem)
{
    jQuery("#date_changer").find("a").each(function(){
        jQuery(this).removeClass("activeDate");
    });    
    jQuery(elem).addClass("activeDate");
    jQuery("#m_page").val("0");
    doSearchResult("&current="+date);
}
function hideForm(){

    jQuery("#hide_form").slideUp('slow');
    jQuery("#link_big_form").show('');
    jQuery("#link_short_form").hide('');

    
}
function showsForm(){
    
    jQuery("#hide_form").slideDown('slow');
    jQuery("#link_big_form").hide('');
    jQuery("#link_short_form").show('');
}

function checkTourDate(date_field,send_date) {   
   
    var
        date_val = jQuery(date_field).val(),
        date_obj = jQuery(date_field).datepicker("getDate"), 
        date = new Date(date_obj),
        month = date.getMonth() +1,
        day = date.getDate();    
    if (month < 10) month = '0' + month.toString();
    if (day < 10) day = '0' + day.toString();
    date = day + '.' + month + '.' + date.getFullYear();        
    jQuery(send_date).val(date);   
    
    return date_val;
}



function doPage(page)
{
    jQuery("#m_page").val(page);
    doSearchResult("&current="+jQuery("#hidcurrent").val(),true); 
}

function PersoneClear(id)
{
jQuery(id).removeClass('input_person_akt').addClass('input_person_pass');
} 
function PersoneAdd(id)
{
jQuery(id).removeClass('input_person_pass').addClass('input_person_akt');
}


jQuery(document).ready(function(){setDefaultDuration(7,10);});
function checkViewDurationTo(_at) {    
    var _at = parseInt(_at)
    var objs = jQuery("#m_duration_max option");
    objs.hide();    
    objs.removeAttr("selected");
    jQuery.each(objs, function() {
        obj = jQuery(this);
        var _to = parseInt(obj.val())        
        if (_to >= _at)
        {            
            obj.show();
        }
        if (_to == _at){
            obj.attr('selected','selected');
            ChangeDurationTo(_to);
        }
       
                    
    });    
}
function setDefaultDuration(minVal,maxVal)
{
    var min=jQuery('#m_duration_min'),max=jQuery('#m_duration_max');
    min.removeAttr("selected").find("option[value='" + minVal + "']").attr("selected",true);
    max.removeAttr("selected").find("option[value='" + maxVal + "']").attr("selected",true);
}
function checkSelectDuration(select)
{
    var min=jQuery('#m_duration_min'),max=jQuery('#m_duration_max'),
        minVal=parseInt(min.find("option:selected").val()), maxVal = parseInt(max.find("option:selected").val()),
        firstExpr = minVal > maxVal;
        
    if (select == 'at') 
        var obj = max, val = minVal;
    else
        var obj = min, val = maxVal;
    if (firstExpr) {
        obj.removeAttr("selected").find("option[value='" + val + "']").attr("selected",true);
    }
}
function ChangeDurationAt(x){
    du_at = x;    
    jQuery('#do_at_place').html(parseInt(du_at)+1); 
    checkSelectDuration('at');
}
function ChangeDurationTo(y){
    du_to = y;
    jQuery('#do_to_place').html(parseInt(du_to)+1);
   checkSelectDuration('to');
}

function show_glv(){
    jQuery('#countryBox').css('display','block');
    jQuery('#countryBox_hide').css('display','block');
    
}

function doShowByCode(code,serv)
{
    //popUpWindow('http://turist.'+serv+'/searchid/index/'+code,800,500);
      popUpWindow('http://toursearch.hottury.in.ua/searchid/index/'+code,800,500);
}
function resetHotel(){
    var hotel_block = jQuery("#hotel_block");
    hotel_block.find("div.visibleR").removeClass('visibleR').addClass('invisibleR');
    hotel_block.find("label.label_active").removeClass('label_active');
    hotel_block.find("input:checked").attr("checked",false);
}

function SearchTurist() {
    this.blockBottomExtSearch = "#blockBottomExtSearch";
    this.blockExtraId   = '#blockExtSearch';
    this.btnExtraId     = '#btnExtSearch';    
    this.inputCountry   = 'country_id';        
    this.blockResort    = 'resort_block';
    this.blockHotel     = 'hotel_block';        
    this.subBlockResort = 'cr';
    this.subBlockHotel  = 'ch';        
    this.subBlockTag    = 'div';    
    this.typeAjaxReq    = 'POST';
    this.urlModule      = '/tour_search';
    this.urlGetResort   = this.urlModule + '/getresort';
    this.urlGetHotel    = this.urlModule + '/gethotel';
}
SearchTurist.prototype = {    
    getId : function(name) { return "#" + name; },
    getCountryPk : function() { return document.getElementById(this.inputCountry).value; },
    getResortBlock : function() { return document.getElementById(this.blockResort); },
    getSelectedResort : function() {
        var resort = new Array();
        jQuery(this.getId(this.blockResort) + ' input:checked').each(function(ind,elem){resort[ind] = elem.value})
        return resort;
    },
    getSubBlock : function(mainBlock, subBlock, urlGet, params, isCreate) {
        var mainBlockId = this.getId(mainBlock),
            selector = mainBlockId + " > " + this.getId(subBlock) + params.code,
            block = jQuery(selector);
        if (block.size() || (typeof isCreate == 'undefined') )
           return block;
        var block = document.createElement(this.subBlockTag);
        block.id = subBlock + params.code;

        mwaitImg(mainBlockId,true);
        jQuery.ajax({ url: urlGet, cache: true, type: this.typeAjaxReq,
                    data: params,
                    success: function(html) {
                        block.innerHTML = html;
                        jQuery(mainBlockId).html(block);
                        mwaitImg(mainBlockId,false);
                    }
        });
        return jQuery(selector);
    },
    showExtra : function() {
        /*
        jQuery(this.blockExtraId).css('display','block');
       jQuery(this.blockBottomExtSearchId).removeClass('advance_1').css('display','block');
       jQuery(this.btnExtraId).css('display','none');     */
       jQuery('.advance_1').css('display','block');
       jQuery('.advance_0').css('display','none');
       this.getResort();
    },
    getResort : function() {
        jQuery(this.getId(this.blockResort) + " > " + this.subBlockTag).hide();
        var country = this.getCountryPk(),
            params = {country_id : country, code: country};
        this.getSubBlock(this.blockResort, this.subBlockResort, this.urlGetResort, params, true).show();
    },
    getHotel : function() {
        jQuery(this.getId(this.blockHotel) + " > " + this.subBlockTag).hide();
        var resorts = this.getSelectedResort();
        var params = {resort_id : resorts.join(','), country_id : this.getCountryPk(), code: resorts.join('-')};
        this.getSubBlock(this.blockHotel, this.subBlockHotel, this.urlGetHotel, params, true).show();
    },
    onChangeCountry : function() {
        reloadACData();
        this.getResort();
    },
    onChangeResort : function(elem) {
        elem = jQuery(elem);
        if (elem.prev().attr("checked"))
            elem.removeClass("label_active").prev().attr("checked",false);
        else
            elem.addClass("label_active").prev().attr("checked",true);
        this.getHotel();
    }
}
mwaitImg = function(id,isShow) {
        if (isShow) {
        jQuery(id).attr('style','background:url(/img/mwait.gif) 50% 0% no-repeat #FFFFFF ;');
        } else {
        jQuery(id).attr('style','background: #FFFFFF;');
        }

}
partnerSpo = new SearchTurist();


