var selectURL="/rservice2";
var priceURL = 'http://www.zeus.ru/main5.shtml?action=price&tid=211&';
var params ="";
var paramsStatic = "";// Название статического js файла
var changedParam = "";
var pContent = "";
var pCSet = false;
var selVal;
var curHotel = ''; //для autocomplate - а
var rDays;
var nonDisabledDays = [];

jQuery(function(jQuery){
resetHotelsTHead();
 jQuery.datepicker.regional['ru'] = {
  closeText: 'Закрыть',
  prevText: '<Предыдущий',
  nextText: 'Следующий>',
  currentText: 'Сегодня',
  monthNames: ['Январь','Февраль','Март','Апрель','Май','Июнь',
  'Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'],
  monthNamesShort: ['Янв','Фев','Мар','Апр','Май','Июн',
  'Июл','Авг','Сен','Окт','Ноя','Дек'],
  dayNames: ['воскресенье','понедельник','вторник','среда','четверг','пятница','суббота'],
  dayNamesShort: ['вск','пнд','втр','срд','чтв','птн','сбт'],
  dayNamesMin: ['Вс','Пн','Вт','Ср','Чт','Пт','Сб'],
  dateFormat: 'dd.mm.yy', firstDay: 1,
  isRTL: false};
 jQuery.datepicker.setDefaults(jQuery.datepicker.regional['ru']);
});

var secondDp = false;


jQuery(function() {// инициализация datapicker и onload functions
    initNonDisDays();
    try {
        document.execCommand("BackgroundImageCache", false, true);
    } catch(exception) {
        // other browsers do nothing
    }

jQuery("#fromDate").datepicker({
         dateFormat: 'dd.mm.yy',
         minDate:  -32,
         constrainInput: true,
         showButtonPanel: true,
         closeText: 'Закрыть',
         gotoCurrent:true,
         showAnim: jQuery.support.boxModel ? 'show' : null, // optional
         duration: jQuery.support.boxModel ? 'normal' : 1,
         beforeShowDay: AirDays,
         beforeShow: function(){secondDp = false;},
         onSelect: function(dateText, inst) {
             var secDPV = jQuery('#toDate').val();
             if(secDPV==''||secDPV=='undefined'){// Если дата до пустой, то инициализируем с датой от
                jQuery('#toDate').datepicker('setDate', dateText);
             }else{
                 var df = jQuery("#fromDate").datepicker('getDate').getTime();
                 var dt = jQuery('#toDate').datepicker('getDate').getTime(); // дата до
                 if(df>dt){
                     jQuery('#toDate').datepicker('setDate', dateText);
                 }
             }
            jQuery('#toDate').datepicker('option', 'minDate', dateText);
            changedParam = "vilDate";
            params = "task=GetJSA&changedParam="+changedParam+"&changedOutCity="+jQuery("#outCity").val()+"&changedCountry="+jQuery("#tourToCountry").val();
            params +="&changedFlyType="+jQuery("#flyType").val();
            params +="&changedDate="+jQuery("#fromDate").val();
             updateFormLocal(2);
                }
});
function AirDays(date) {
    var m = date.getMonth()+1, d = date.getDate(), y = date.getFullYear();
    if(1<=m&&m<=9){
        m='0'+m;
    }
    if(1<=d&&d<=9){
        d='0'+d;
    }
    if( jQuery.inArray(d+'.'+m+'.'+y, nonDisabledDays) != -1 ) {
        return [true];
    }
 return [false];
}

jQuery("#toDate").datepicker({
         dateFormat: 'dd.mm.yy',
         minDate:  -32,
         constrainInput: true,
         showButtonPanel: true,
         closeText: 'Закрыть',
         gotoCurrent: true,
         showAnim: jQuery.support.boxModel ? 'show' : null, // optional
         duration: jQuery.support.boxModel ? 'normal' : 1,
         beforeShowDay: AirDays,
         beforeShow: function(){secondDp = true;},
         onSelect: function(dateText, inst) {
             changedParam = "toDate";
            params = "task=GetJSA&changedParam="+changedParam+"&changedOutCity="+jQuery("#outCity").val()+"&changedCountry="+jQuery("#tourToCountry").val();
            params +="&changedFlyType="+jQuery("#flyType").val();
            params +="&changedDate="+jQuery("#fromDate").val();
            params +="&toDate="+jQuery("#toDate").val();
             //updateForm();
             updateFormLocal(2);
                }
});
jQuery("#dps1").css("cursor","pointer").click(function(){jQuery('#fromDate').datepicker( "show" );});
jQuery("#dps2").css("cursor","pointer").click(function(){jQuery('#toDate').datepicker( "show" );});

jQuery('#outCity').change(function(){
    var cntry = jQuery('#tourToCountry').val();
    var city  = jQuery("#outCity").val();
    changedParam = "outCity";
    params = "task=GetJSA&changedParam="+changedParam+"&changedOutCity="+city+'&country='+cntry;
    paramsStatic = 'autojs1-'+cntry+'-'+city+'.js';
    updateFormStatic();
});
jQuery('#tourToCountry').change(function(){
    var cntry = jQuery('#tourToCountry').val();
    changedParam = "country";
    params = "task=GetJSA&changedParam="+changedParam;
    params+= "&changedCountry="+cntry;
    paramsStatic = 'autojs1-'+cntry+'.js';
    updateFormStatic();
});
jQuery('#way').change(function(){
    var wayOptionText    = getShOrigin(jQuery(this).val(), waysArray);
    var fltypeOptionText = getShOrigin(jQuery('#flyType').val(), sh211Array);
    //alert(wayOptionText);
    var cntry = jQuery("#tourToCountry").val();
    var city  = jQuery("#outCity").val();
    var wayId = getIdByVal(wayOptionText, marsMap);
    var aviaId= getIdByVal(fltypeOptionText, aviaMap);
    changedParam = 'way';
    params = "task=GetJSA&changedParam="+changedParam;
    params+= "&changedOutCity="+city+"&changedCountry="+
        cntry+'&way='+wayId+
        '&flyType='+aviaId;
    //
    //paramsStatic = 'autojs-'+cntry+'-'+city+'-'+wayId+'-'+aviaId+'.js';
    updateWaySel();
    //params+=getTemplIntersect(true);
    //alert(params);
    //updateFormStatic();
    updateFormLocal(1);
});

jQuery('#flyType').change(function(){//Авиакомпания
    var fltypeOptionText = getShOrigin(jQuery(this).val(), sh211Array);
    var wayOptionText    = getShOrigin(jQuery('#way').val(), waysArray);
    var cntry = jQuery("#tourToCountry").val();
    var city  = jQuery("#outCity").val();
    var wayId = getIdByVal(wayOptionText, marsMap);
    var aviaId= getIdByVal(fltypeOptionText, aviaMap);
    changedParam = "flyType";
    params = "task=GetJSA&changedParam="+changedParam+
        "&changedOutCity="+jQuery("#outCity").val()+"&changedCountry="+jQuery("#tourToCountry").val()+'&flyType='+aviaId+
        '&way='+wayId;
    //paramsStatic = 'autojs-'+cntry+'-'+city+'-'+wayId+'-'+aviaId+'.js';
    //updateForm();
    updateFlSel();
    //params+=getTemplIntersect(true);
    //alert(params);
    //updateFormStatic();
    updateFormLocal(1);

});

jQuery('#kurort').change(function(){
        changedParam = "kurort";
        var cntry = jQuery("#tourToCountry").val();
        var kurort= jQuery('#kurort').val();
        var stars = jQuery('#stars').val();
    params = "task=GetJSA&changedParam="+changedParam+"&country="+cntry+"&kurort="+kurort+'&stars='+stars;
    //paramsStatic = 'autojs-'+cntry+'-kur'+kurort+'-stars'+stars+'.js';
    updateForm();
});

jQuery("#stars").change(function(){
    changedParam='stars';
        var cntry = jQuery("#tourToCountry").val();
        var kurort= jQuery('#kurort').val();
        var stars = jQuery(this).val();
    params = "task=GetJSA&changedParam="+changedParam+"&country="+cntry+"&kurort="+kurort+'&stars='+stars;
    //paramsStatic = 'autojs-'+cntry+'-kur'+kurort+'-stars'+stars+'.js';
    updateForm();
})

jQuery("#minSearchButton").click(function(){
    getPriceTable();
});

jQuery('#nightsFrom').change(checkNights);
jQuery('#nightsTo').change(checkNights);
jQuery('#hotel').focus(function(){
    if(jQuery(this).val()=='Быстрый поиск отеля'){
        jQuery(this).val('');
    }
});


});

function getShOrigin(optval, sharray){
    if(!optval||optval=='undefined'||optval==''){
        return '';
    }
    for(var i=0; i<sharray.length; i++){
        if(optval==sharray[i].val){
            return sharray[i].originOpt;
        }
    }
    return '';
}

function is_int(input){
    return !isNaN(input)&&parseInt(input)==input;
  }


jQuery.preloadImages = function()
{
 for(var i = 0; i<arguments.length; i++)
 {
  jQuery("<img>").attr("src", arguments[i]);
 }
};

// Использование
jQuery.preloadImages("img/ajax-loaderS.gif");

function updateForm(){
    blockForm();
    xhr = jQuery.ajax({
      type: "GET",
      timeout: 20000, // timeout 20 seconds
      url: selectURL,
      data: params, //
      dataType: "script",
      success: function(response){unblockForm()},//убрать здесь анимацию
      error: function(xhr,stat,e){
          jQuery("div.podbor").unblock({fadeOut: 100});
          alert("Сервер перегружен. Повторите попытку позже...");
          // delete wait animation
      }
    });
}

function updateFormStatic(){
  try{
    blockForm();
    xhr = jQuery.ajax({
      type: "GET",
      timeout: 1000, // timeout 20 seconds
      url: "./auto/"+paramsStatic,
      data: '', //
      dataType: "script",
      success: function(response){
          unblockForm();
          if(response.length<10||response.indexOf("404 Not Found")!=-1){
              updateForm();
          }
      },//убрать здесь анимацию
      error: function(xhr,stat,e){
          jQuery("div.podbor").unblock({fadeOut: 100});
          updateForm();
      }
    });
  }catch(e){}
}
function updateFormLocal(choice){
    var debug = false;
    var timer;
    if(debug){ timer = (new Date()).getTime();}
    var shIds = getCurShIds();
    var timer2 = (new Date()).getTime()-timer;
    resetHotelsTHead();
    if(choice==1){// event был в списках маршрутов или авиакомпании
        var ndcdStart = (new Date()).getTime();
        nonDisabledDays=[];
        var newKurorts = [];
        var kIds = [];
        if(shIds.length==0){//Игнорируем маршруты и авиакомпании, оба пустые
            for(var i=0; i<matrix.length; i++){
                nonDisabledDays.push(matrix[i].d);
            }
        var dpStartTime = (new Date()).getTime();
        jQuery('#fromDate').val(matrix[0].d);
        jQuery('#toDate').datepicker('option', 'minDate', matrix[0].d).val(matrix[0].d);//дата - самая ранняя. Курорты и длителности берем по этой даты (по шаблонам, которые актуальны на эту дату)
        var doDCTime = (new Date()).getTime();
        updateDaysCnt(shIds);
        var doKurTime = (new Date()).getTime();
        var shs = matrix[0].sh;
        for(var j=0, len=shs.length; j<len; j++){
            for(var k=0, kLen=kurortArray.length; k<kLen; k++){
                if(jQuery.inArray(shs[j].s, kurortArray[k].sh)!=-1){
                    if(jQuery.inArray(k, kIds)==-1){
                        kIds.push(k);
                        newKurorts.push(kurortArray[k]);
                    }
                }
            }
        if(kurortArray.length==newKurorts.length){break;}
        }
        updateKurortsLocalStarsHotels(newKurorts);
        var aftKurTime = (new Date()).getTime();
        if(debug){alert('block 1 worked '+((new Date()).getTime()-timer)+
                ', doKur='+(doKurTime-timer)+'ms. , afterKur='+(aftKurTime-doKurTime)+", updateDaysCnt="+(doKurTime-doDCTime)+
                ', shIds='+timer2+'nonDisDays='+(doDCTime-ndcdStart)+',datepicker settings '+(doDCTime-dpStartTime) )}
        }else{
            var minDateIndex = -1;
            newKurorts = [];
            kIds = [];
            for(var i=0; i<matrix.length; i++){
                var shs = matrix[i].sh;
                for(var j=0; j<shs.length; j++){
                    if(jQuery.inArray(shs[j].s, shIds)!=-1){
                        if(minDateIndex==-1){
                            minDateIndex=i;
                        }
                    nonDisabledDays.push(matrix[i].d);
                    break;
                    }
                }
            }
        jQuery('#fromDate').val(nonDisabledDays[0]);
        jQuery('#toDate').val('option', 'minDate', nonDisabledDays[0]).val(nonDisabledDays[0]);
        updateDaysCnt(shIds);
        var shs = matrix[minDateIndex].sh;
        for(var j=0, lMatr=shs.length; j<lMatr; j++){
            for(var k=0, lKur = kurortArray.length; k<lKur; k++){
                if(jQuery.inArray(shs[j].s, kurortArray[k].sh)!=-1&&
                jQuery.inArray(shs[j].s, shIds)!=-1){
                    if(jQuery.inArray(k,kIds)==-1){
                        kIds.push(k);
                        newKurorts.push(kurortArray[k]);
                    }
                }
            }
            if(kurortArray.length==newKurorts.length){break;}
        }
        updateKurortsLocalStarsHotels(newKurorts);
        if(debug){alert('block 2 worked '+((new Date()).getTime()-timer))}
        }
    }else if(choice==2){// event был в datepicker 
       var mnDate = jQuery('#fromDate').val();
       var mxDate = jQuery('#toDate').val();
       var sInd = getDInd(mnDate);
       var eInd = getDInd(mxDate);
        newKurorts = [];
        kIds = [];
       for(var i=sInd; i<=eInd; i++ ){
           var shs = matrix[i].sh; 
               for(var j=0; j<shs.length; j++){
                   for(var k=0; k<kurortArray.length; k++){
                       if((shIds.length==0||shIds.length>0&&jQuery.inArray(shs[j].s, shIds)!=-1)&&
                           jQuery.inArray(shs[j].s, kurortArray[k].sh)!=-1){// тот же шаблон есть и в пересечении, и в матрице
                           if(jQuery.inArray(k, kIds)==-1){
                               kIds.push(k);
                               newKurorts.push(kurortArray[k]);
                           }
                       }
                   }
               }
       if(kurortArray.length==newKurorts.length){break;}
       }
       updateDaysCnt(shIds);
       updateKurortsLocalStarsHotels(newKurorts);
       if(debug){alert('block 3 worked '+((new Date()).getTime()-timer)+" ms.")}

    }    
}
function updateOutCities(){
  jQuery('#outCity').loadSelect(outCityArray);
}
function updateCountries(){
  jQuery('#tourToCountry').loadSelect(countryArray);
}
function updateWays(){
    jQuery('#way').loadSelect(waysArray, waysArray.length>1);
}
function updateAirlines(){
    jQuery("#flyType").loadSelect(sh211Array, sh211Array.length>1, 'Любая');
}
function updateKurorts(){
    var kIds = [];
    var newKurorts = [];
    for(var j=0; j<matrix[0].sh.length; j++){
        for(var k=0; k<kurortArray.length; k++){
            if(jQuery.inArray(matrix[0].sh[j].s, kurortArray[k].sh)!=-1){
                if(jQuery.inArray(k,kIds)==-1){
                    kIds.push(k);
                    newKurorts.push(kurortArray[k]);
                }
            }
        }
        if(kurortArray.length==newKurorts.length){break;}
    }
jQuery('#kurort').loadSelect(newKurorts, newKurorts.length>1);
    //jQuery('#kurort').loadSelect(kurortArray, true);
    if(newKurorts.length==1){
        changedParam = "kurort";
        var cntry = jQuery("#tourToCountry").val();
        var stars = jQuery('#stars').val();
        params = "task=GetJSA&changedParam="+changedParam+"&country="+cntry+"&kurort="+(newKurorts[0].val)+'&stars='+stars;
        xhr = jQuery.ajax({
          type: "GET",
          timeout: 20000, // timeout 20 seconds
          url: selectURL,
          data: params, //
          dataType: "script",
          success: function(response){},//убрать здесь анимацию
          error: function(xhr,stat,e){
              // delete wait animation
          }
        });
    }
}
function updateKurortsLocalStarsHotels(newKurorts){//Грузим курорты. Если количество один, то аяксом получаем звездности и отели и грузим
    jQuery('#kurort').loadSelect(newKurorts, newKurorts.length>1);
    var kurort= jQuery('#kurort').val();
    if(kurort!='undefined'&&kurort.length>0){// Здесь ajax запрос
        changedParam = "kurort";
        var cntry = jQuery("#tourToCountry").val();
        var stars = jQuery('#stars').val();
        params = "task=GetJSA&changedParam="+changedParam+"&country="+cntry+"&kurort="+kurort+'&stars='+stars;

    xhr = jQuery.ajax({
      type: "GET",
      timeout: 20000, // timeout 20 seconds
      url: selectURL,
      data: params, //
      dataType: "script",
      success: function(response){},//убрать здесь анимацию
      error: function(xhr,stat,e){
          // delete wait animation
      }
    });
    }
}
function updateStars(){
    var filteredStars = [];
    for(var i=0; i<starsArray.length; i++){
        if(jQuery.inArray(starsArray[i].option, actualStars)!=-1){
            filteredStars.push(starsArray[i]);
        }
    }
    jQuery('#stars').loadSelect(filteredStars, true, 'Любая');
}
function updateHotels(){
    if(jQuery('#kurort').val()==''&&jQuery('#stars').val()==''||hotelsListArray.length==0){
        jQuery('#hotelSelect').emptySelect().html('<option value="">&nbsp;</option>').attr("disabled", true);
        jQuery('#hotel').val('Быстрый поиск отеля');
        return;
    }
    if(hotelsListArray.length>0){
        jQuery('#hotelSelect').attr("disabled", false).loadSelect(hotelsListArray, true);
    }
}
function getCurShIds(){//Вернет текущие id шаблонов по маршруту и по авиакомпании
    var shs = [];
    var marShs = jQuery('#way').val();
    var aviaShs= jQuery('#flyType').val();
    if(marShs==''&&aviaShs==''){
        return shs;
    }
    if(marShs!=''&&aviaShs==''){
        return getMas(marShs, ';');
    }
    if(marShs==''&&aviaShs!=''){
        return getMas(aviaShs, ';');
    }
    return getIntersect(getMas(marShs,';'), getMas(aviaShs,';'));
}
function getMas(str, delim){
    if(str.indexOf(delim)==-1){
        return [str];
    }else return str.split(delim);
}
function updateDaysCnt(curShs){
   var mnDate = jQuery('#fromDate').val();
   var mxDate = jQuery('#toDate').val();
   rDays  = [];
   var sInd = getDInd(mnDate);
   var eInd = getDInd(mxDate);
   if(arguments.length==0){
        curShs = getCurShIds();
   }
   if(sInd>=0){
       //rDays = dayRange2Array(cntDaysArray[sInd].daysCnt);
       for(var i=sInd; i<=eInd; i++ ){
           var shs = matrix[i].sh;
           if(curShs.length==0){
               for(var j=0; j<shs.length; j++){
                   var dlits = dayRange2Array(shs[j].dl);
                   for(var k=0; k<dlits.length; k++){
                       if(jQuery.inArray(dlits[k], rDays)==-1){
                            rDays.push(dlits[k]);
                       }
                   }
               }
           }else{
               for(var j=0; j<shs.length; j++){
                   if(jQuery.inArray(shs[j].s, curShs)!=-1){
                       var dlits = dayRange2Array(shs[j].dl);
                       for(var k=0; k<dlits.length; k++){
                           if(jQuery.inArray(dlits[k], rDays)==-1){
                                rDays.push(dlits[k]);
                           }
                       }
                   }
               }
           }
       }
       rDays.sort(sortNumber);
       jQuery('#nightsFrom').loadNumSelect(rDays, true);
       jQuery('#nightsTo').loadNumSelect(rDays, true);
	   sliderUpdate();
   }
}
var lloocckk = 0;
function sliderUpdate(){
	if(lloocckk == 0){ lloocckk = 1;
		$('.ui-tooltip-pointer-down-inner').each(function(){
			var bWidth = $('.ui-tooltip-pointer-down-inner').css('borderTopWidth');
			var bColor = $(this).parents('.ui-slider-tooltip').css('backgroundColor')
			$(this).css('border-top', bWidth+' solid '+bColor);
		});
		$('select#nightsTo, select#nightsFrom').selectToUISlider({ labels: 20, tooltip: false });
	}else{
		$("[role='application']").remove()
		$('select#nightsTo, select#nightsFrom').selectToUISlider({ labels: 20, tooltip: false });
	}
}
function dayRange2Array(rangesArray){//создаем неприрывный массив из интервалов
    var dlArr = [];
    for(var i=0; i<rangesArray.length; i++){
        if(is_int(rangesArray[i])){
            var curDl = parseInt(rangesArray[i]);
            if(jQuery.inArray(curDl, dlArr)==-1){
                dlArr.push(curDl);
            }
            continue;
        }
        var range = rangesArray[i].split("-");
        range[0] = parseInt(range[0]);
        range[1] = parseInt(range[1]);
        for(var j=range[0]; j<=range[1];j++){
            if(jQuery.inArray(j, dlArr)==-1){
                dlArr.push(parseInt(j));
            }
        }
    }
    return dlArr;
}


function intersectionEmpty(arr1, arr2){
    for(i=0;i<arr1.length;i++){
        for(j=0;j<arr2.length;j++){
            if(arr1[i]==arr2[j])
                return false;
        }
    }
    return true;
}

function getIntersect(arr1,arr2){
    var a=[];
    for(var i=0; i<arr1.length; i++){
        if(jQuery.inArray(arr1[i], arr2)!=-1){
            a.push(arr1[i]);
        }
    }
    return a;
}
function implode (glue, pieces) {
    var i = '', retVal='', tGlue='';
    if (arguments.length === 1) {
        pieces = glue;
        glue = '';
    }
    if (typeof(pieces) === 'object') {
        if (pieces instanceof Array) {
            return pieces.join(glue);
        }
        else {
            for (i in pieces) {
                retVal += tGlue + pieces[i];
                tGlue = glue;
            }
            return retVal;
        }
    } else {
        return pieces;
    }
}

function getOptByVal(arName, val){
    for(i=0; i<arName.length; i++){
        if(arName[i].val==val){
            return arName[i];
        }
    }
    return false;
}
function updateFlSel(){
    var val = jQuery('#flyType').val();
    var wayVal = jQuery('#way').val();
    if(val==''&&wayVal==''){
        jQuery('#flyType').loadSelect(sh211Array, true, 'Любая');
        jQuery('#way').loadSelect(waysArray, true);
    }else if(val==''&&wayVal!=''){
        //updateWaySel();
        jQuery('#way').loadSelect(waysArray, true);
        jQuery('#flyType').loadSelect(sh211Array, true, 'Любая');
    }else{
        var opt = getOptByVal(sh211Array, val);
        var newWays = [];
        for(var i=0; i<waysArray.length; i++){
            if(!intersectionEmpty(waysArray[i].t, opt.t)){
                newWays.push(waysArray[i]);
            }
        }
        jQuery('#way').loadSelect(newWays, true);
    }
}
function updateWaySel(){
    var val = jQuery('#way').val();
    var flVal = jQuery('#flyType').val();
    if(val==''&&flVal==''){
        jQuery('#way').loadSelect(waysArray, true);
        jQuery('#flyType').loadSelect(sh211Array, true, 'Любая');
    }else if(val==''&&flVal!=''){
        //updateFlSel();
        jQuery('#way').loadSelect(waysArray, true);
        jQuery('#flyType').loadSelect(sh211Array, true, 'Любая');
    }else{
        var opt = getOptByVal(waysArray, val);
        var newShs = [];
        for(var i=0; i<sh211Array.length; i++){
            if(!intersectionEmpty(sh211Array[i].t, opt.t)){
                newShs.push(sh211Array[i]);
            }
        }
        jQuery('#flyType').loadSelect(newShs, true, 'Любая');
    }
}
function getTemplIntersect(updForm){
    var w = jQuery('#way').val();
    var s = jQuery('#flyType').val();
    var urlAdd=updForm?'&templ=':'';
    if(w==''&& s==''){
        return urlAdd;
    }
    if(w==''&&s!=''){
        return urlAdd+s;
    }
    if(s==''&&w!=''){
        return urlAdd+w;
    }
    if(s!=''&&w!=''){
        var sOpt = getOptByVal(sh211Array, s);
        var wOpt = getOptByVal(waysArray, w);
        return urlAdd+implode(";", getIntersect(sOpt.t, wOpt.t));
    }
    return urlAdd;
}
function blockForm(){
        jQuery("div.podbor").block({
                message: '<div>Загрузка данных<br/><br/><img src="img/ajax-loaderS.gif"/></div>',
                fadeIn:50,
                fadeOut:50,
                css: {border: '4px solid #6F4C53',
                       height: '70px',
                       width:  '180px',
                       backgroundColor: '#fff',
                       fontSize: '12px',
                       color: "#6F4C53",
                       padding: "10px"},
                overlayCSS:  {
                    backgroundColor: '#fff',
                    opacity:         0.6
                    }
            });
}
function unblockForm(){
    jQuery("div.podbor").unblock({fadeOut: 100});
}

function getDInd(dt){
    for(var i=0; i<matrix.length; i++){
        if(matrix[i].d==dt){
            return i;
        }
    }
    return -1;
}
function sortNumber(a,b)
{
    return a - b;
}
function checkNights(){
    var nToStr   = jQuery('#nightsTo').val();
    if(nToStr==''){
        return;
    }
    var nFrom = jQuery('#nightsFrom').val();
    nFrom = is_int(nFrom)?parseInt(nFrom):0;
    var nTo = is_int(nToStr)?parseInt(nToStr):0;
    if(nFrom>0&&nTo>0&&nFrom <= nTo){
        return;
    }else if(nFrom>nTo){alert("Исправте количество ночей (Количество ночей от должен быть меньше количества ночей до)");
        jQuery('#nightsTo option[value='+nFrom+']').attr('selected', true);
    }
}
function resetHotelsTHead(){
    jQuery('#hotelSelect').emptySelect().attr('disabled', true);
    jQuery('#hotel').val('Быстрый поиск отеля');
    jQuery('#stars option[value=""]').attr('selected', true);
}

function getPriceTable(){
    if(jQuery('#way').val()==''){
        alert('Выберите маршрут!');
        return;
    }
    var priceParams='';
    priceParams+= "flt="+jQuery("#tourToCountry").val()+"&flt2="+jQuery("#outCity").val();
    //var sh211  = "&id_price="+(getTemplIntersect(false).replace(/;/g, "&id_price="));
    //priceParams+= sh211;
    priceParams+=getDatesSubstring();
    priceParams+=getNightsSubstring();
    //priceParams+= '&nightsFrom='+jQuery('#nightsFrom').val()+'&nightsTo='+jQuery('#nightsTo').val();
    priceParams+='&f1='+jQuery('#kurort').val();
    priceParams+='&f3='+jQuery('#stars').val();
    var hotelId=jQuery('#hotelSelect').val();
    if(hotelId=='undefined'){
        hotelId='';
    }
    priceParams+='&f4='+(hotelId!=null?hotelId:'');

    var fltypeOptionText = getShOrigin(jQuery('#flyType').val(), sh211Array);
    var wayOptionText    = getShOrigin(jQuery('#way').val(), waysArray);
    var av = '';
    if(fltypeOptionText!=''){
        av+='&av='+getIdByVal(fltypeOptionText, aviaMap);
    }
    var mr = '';
    if(wayOptionText!=''){
        mr+='&mr='+getIdByVal(wayOptionText,marsMap);
    }
    document.location.href=priceURL+priceParams+mr+av;
}

function getDatesSubstring(){//Из интеравла возвращает часть урла для дат
    var fromD = jQuery('#fromDate').val();
    var toD   = jQuery('#toDate').val();
    return '&d1='+fromD+'&d2='+toD;
}

function getNightsSubstring(){
    var nightsFrom = jQuery('#nightsFrom').val();
    var nightsTo   = jQuery('#nightsTo').val();
    var nightsStr  = '';
    if(nightsFrom==''&&nightsTo==''){
        return '';
        //return '&f7='+implode('&f7=', rDays);
    }
    var stInd = nightsFrom==''?0:jQuery.inArray(parseInt(nightsFrom), rDays);//alert('stInd='+stInd);
    var eInd  = nightsTo==''?(rDays.length-1):jQuery.inArray(parseInt(nightsTo), rDays);//alert('eInd='+eInd);
    for(var i=stInd; i<=eInd; i++){
        nightsStr+='&f7='+rDays[i];
    }
    return nightsStr;

}


function getIdByVal(v, arr){
    if(v==''||v=='undefined'||v==null){
        return '';
    }
    for(var i=0; i<arr.length; i++){
        if(arr[i].option==v){
            return arr[i].val;
        }
    }
    return '';
}
function initNonDisDays(){
    nonDisabledDays = [];
    for(var iDay=0,iLen = matrix.length; iDay<iLen; iDay++){//init nonDisabledDays
        nonDisabledDays.push(matrix[iDay].d);
    }
}

(function(jQuery) { // adding comands, initialzation onload
   jQuery.fn.emptySelect = function() { // освобождаем список
     return this.each(function(){
       if (this.tagName=='SELECT') this.options.length = 0;
     });
   }
	jQuery.fn.loadNumSelect = function(numsArr, randVal){
		selVal = jQuery(this).val();
		return this.emptySelect().each(function(){
			if (this.tagName=='SELECT') {
				var selectElement = this;
				if(randVal){//Значение любое
					var option = new Option("---", "");
					if (jQuery.browser.msie) {
						selectElement.add(option);
					} else {
						selectElement.add(option,null);
					}
				}
				jQuery.each(numsArr,function(index,optionData){
					var selOpt = selVal!=null&&selVal!=''&&selVal==''+optionData;
					var option = new Option(optionData, optionData, false, selOpt);

					if (jQuery.browser.msie) {
						selectElement.add(option);
					} else {
						selectElement.add(option,null);
					}
					


				});
				
				/* для rangebar полоски*/
				var sl = $(this)
				var count = sl.find('option').size()
				sl.find('option:first-child').remove();
				if( count > 4 ){
					if(sl.attr('id') == 'nightsFrom')
						sl.find('option').eq(count - 3).attr('selected', 'selected');
					if(sl.attr('id') == 'nightsTo')
						sl.find('option').eq(1).attr('selected', 'selected');
				} else {
					if(sl.attr('id') == 'nightsFrom')
						sl.find('option:last-child').attr('selected', 'selected');
					if(sl.attr('id') == 'nightsTo')
						sl.find('option:first-child').attr('selected', 'selected');
				}				
			}
		});
	}

   jQuery.fn.loadSelect = function(optionsDataArray, randVal, randText) { // добавляем списку объекты
       selVal = '';
       if(jQuery(this).attr("id")!='outCity'&&jQuery(this).attr("id")!='tourToCountry'){//Те поля формы, которые не могут быть любой
            selVal = jQuery(this).val();
       }
     return this.emptySelect().each(function(){
       if (this.tagName=='SELECT') {
         var selectElement = this;
         if(randVal){// если установлен 2 параметр, то инициализируеться список со значением любой
           var option;
           if(!randText){
               option = new Option("Любой", "");
           }else{
               option = new Option(randText, "");
           }
           if (jQuery.browser.msie) {
             selectElement.add(option);
           }
           else {
             selectElement.add(option,null);
           }
         }
         jQuery.each(optionsDataArray,function(index,optionData){
           var selOpt = selVal!=null&&selVal!=''&&selVal==optionData.val;

           var option = new Option(optionData.option,
                                   optionData.val, false, selOpt);


           if (jQuery.browser.msie) {
             selectElement.add(option);
           }
           else {
             selectElement.add(option,null);
           }
         });
       }
     });
   }
 })(jQuery);
 //jQuery.noConflict();

