$(document).ready(function(){
prepareDatepicker();
$("#tabs").tabs({cookie: {expires: 2} });
});

function prepareDatepicker()
{
	var $inp = $("input.datepicker");
	if( ! $inp.length )
		return;
        
	$inp.datepicker({ 
		dateFormat: 'dd.mm.yy', 
		altFormat: 'dd.mm.yy', 
		changeMonth: true, 
		changeYear: true,
//		dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
//		dayNamesMin: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],
//		dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
		dayNames: ['Воскресенье', 'Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота'],
		dayNamesMin: ['Вс', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб'],
		dayNamesShort: ['Вс', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб'],
		firstDay: 1,
		maxDate: '+0y +0m +0w',
//		monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
//		monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
		monthNames: ['Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'],
		monthNamesShort: ['Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'],
		//monthNamesShort: ['Янв', 'Фев', 'Мар', 'Апр', 'Май', 'Июн', 'Июл', 'Авг', 'Сен', 'Окт', 'Ноя', 'Дек'],
		showButtonPanel: true,
        buttonImage: "/data/img/calend.png",
        buttonImageOnly: true,
		//shortYearCutoff: 100,
		showMonthAfterYear: false,
		maxDate: '+2y',
		minDate: '+0',
		//yearRange: '2000:2020',
		showOn: 'button', // both or focus
		closeText: 'Закрыть',
		currentText: 'Текущая дата',
        onChange: function(dateText, inst) {helpSelectDatePrep(dateText, inst);}
	});
    
    $inp.bind("change", function() { helpSelectDateParse(this);});
    
    $(".ui-datepicker-trigger").mouseover(function() {
    $(this).css('cursor', 'pointer');
});
}

function helpSelectDateParse(a_hndl)
{
    dateText = $(a_hndl).val();
    inp_id = $(a_hndl).attr("id");
    date_arr = dateText.split(".");
    if (date_arr.length == 3) //предположительно у нас есть дата
    {
        new_year = 0;
        if (date_arr[2].length == 4) //год из 4 цифр
        {
            year = parseInt(date_arr[2]);
            now = new Date();
            now_year = now.getFullYear();
            if (year != now_year && year != now_year + 1 && year != now_year + 2)
                new_year = now_year;
            else
                new_year = year; 
                
        }
        else if (date_arr[2].length == 2) //год из двух цифр
        {
            year = parseInt("20"+date_arr[2]);
            now = new Date();
            now_year = now.getFullYear();
            if (year != now_year && year != now_year + 1 && year != now_year + 2)
                new_year = now_year;
            else
                new_year = year; 
        }
        else return false;
        
        new_month = 0;
        if (date_arr[1].length == 2 || date_arr[1].length == 1) //это может быть месяц
        {
            if (date_arr[1] == "08") now_month = 8;
            else if (date_arr[1] == "09") now_month = 9;
            else now_month = parseInt(date_arr[1]);
            
            if (now_month >= 1 && now_month <= 12)
            {
                new_month = now_month;
            }
            else
            {
                now = new Date();
                new_month = now.getMonth() + 1;                                
            }
        }
        else return false;
        
        new_date = 0;
        if (date_arr[0].length == 2 || date_arr[0].length == 1) //это может быть дата
        {
            if (date_arr[0] == "08") date = 8;
            else if (date_arr[0] == "09") date = 9;
            else date = parseInt(date_arr[0]);
            
            now = new Date();
            now.setFullYear(new_year, new_month, 0);    
            new_date = now.getDate();
           // alert(new_date);
            if (date > 0 && date <= new_date)
            {
                new_date = date;
            }    
            else
                new_date = 1;
        }
        else return false;       
        if (new_date < 10) new_date = "0"+new_date;
        if (new_month < 10) new_month = "0"+new_month;
        $("#"+inp_id).val(new_date+"."+new_month+"."+new_year);
        helpSelectDate(dateText, inp_id);
    }
    else
        return false;
}

function helpSelectDatePrep(dateText, inst)
{
    helpSelectDate(dateText, inst.id);
}

function helpSelectDate(dateText, inp_id)
{
   // alert(dateText);
    spec_id = (inp_id).split("_")[2];
    d_in = 'd_in_'+spec_id;
    input_in = $("#"+d_in);
    input_in_val = input_in.val();
    
    d_out = 'd_out_'+spec_id;   
    input_out = $("#"+d_out);
    input_out_val = input_out.val();
    if (inp_id == d_in)
    {      
        need_change = 0;
        data_arr = input_in_val.split(".");
        if (input_out.val() == '') //если не установлена вторая дата, ставим её на след день
        {
            need_change = 1;
        }
        else 
        {
            data_arr_out = input_out_val.split(".");
            if (data_arr_out[2] < data_arr[2])
            {
                need_change = 1;
            } 
            else if (data_arr_out[2] == data_arr[2])
            {               
                if (data_arr_out[1] < data_arr[1])
                {
                    need_change = 1;
                } 
                else if (data_arr_out[1] == data_arr[1] && data_arr_out[0] <= data_arr[0])
                {
                    need_change = 1;
                }
            }
        }
        if (need_change == 1)
        {
            var nowDate = new Date();
            var lastDateOfMonth = new Date();
            nowDate.setFullYear(data_arr[2], data_arr[1] -1, data_arr[0]);
            lastDateOfMonth.setFullYear(data_arr[2], data_arr[1], 0);
            if (nowDate.getDate() == lastDateOfMonth.getDate())
            {
                if (data_arr[1] == 12) //декабрь, след год
                {
                    day = "01";
                    year = parseInt(data_arr[2])+1;
                    month = "01";    
                }
                else
                {
                    year = data_arr[2];
                    if (date_arr[1] == "08") month = 9;
                    else if (date_arr[1] == "09") month = 10;
                    else month = parseInt(data_arr[1])+1;

                    if (month < 10)
                    month = "0"+month;
                    day = "01";
                }
                
            }
            else
            {
                if (date_arr[0] == "08") day = 9;
                else if (date_arr[0] == "09") day = 10;
                else day = parseInt(data_arr[0])+1;
                if (day < 10)
                day = "0"+day;
                year = data_arr[2];
                month = data_arr[1];   
            }
            
            next_date = day+"."+month+"."+year;
            input_out.val(next_date);
        }
    }
    else if (inp_id == d_out)
    {
        need_change = 0;
        
        data_arr_out = input_out_val.split(".");
        data_arr_in = input_in_val.split(".");
        
        if (input_in.val() == '') //если не установлена вторая дата, ставим её на след день
        {
            need_change = 0;
        }
        else 
        {
            now = new Date();
            if (parseInt(data_arr_out[0]) == now.getDate() && parseInt(data_arr_out[1]) == now.getMonth() + 1 && parseInt(data_arr_out[2]) == now.getFullYear())
            {
                input_in.val(input_out_val);
            }
            else
            {                
                if (data_arr_out[2] < data_arr_in[2])
                {
                    need_change = 1;
                } 
                else if (data_arr_out[2] == data_arr_in[2])
                {               
                    data_arr_in = input_in_val.split(".");
                    if (data_arr_out[1] < data_arr_in[1])
                    {
                        need_change = 1;
                    } 
                    else if (data_arr_out[1] == data_arr_in[1] && data_arr_out[0] <= data_arr_in[0])
                    {
                        need_change = 1;
                    }
                }
            }
            if (need_change == 1)
            {
                var nowDate = new Date();
                
                nowDate.setFullYear(data_arr_out[2], data_arr_out[1] -1, data_arr_out[0]);
                
                if (parseInt(data_arr_out[0]) == 1) 
                {
                    if (data_arr_out[1] == 1) //январь, предыдущий год
                    {
                        day = "31";
                        year = parseInt(data_arr_out[2])-1;
                        month = "12";    
                    }
                    else
                    {
                        var lastDateOfMonth = new Date();            
                        lastDateOfMonth.setFullYear(data_arr_out[2], data_arr_out[1] - 2, 0);            
                        year = data_arr_out[2];
                        month = parseInt(data_arr_out[1]) - 1;
                        if (month < 10)
                        month = "0"+month;
                        day = lastDateOfMonth.getDate();
                    }                
                }
                else
                {
                    
                    if (data_arr_out[0] == 9) day = 8;
                    else if (data_arr_out[0] == 8) day = 7;
                    else day = parseInt(data_arr_out[0]) - 1;
                    if (day < 10)
                    day = "0"+day;
                    year = data_arr_out[2];
                    month = data_arr_out[1];   
                }
                
                prev_date = day+"."+month+"."+year;
                input_in.val(prev_date);
            }
        }
    }
    
}

function recalcOrderSum()
{
	var razmeshenie = $('#razmeshenie').val();
	var rcountName = 'room_count_name'+razmeshenie;
	var $room_count = $('#room_count');
	$room_count.name = rcountName;

	var guestsName = 'guests_name'+razmeshenie;
	var $guests_name = $('#guests_name');
	$guests_name.name = guestsName;
	
	var id = 'rtsum'+razmeshenie;
	var rtsum = $('#'+id).val();
	var room_count = $room_count.val();
	var isum = rtsum*room_count;
	var srv_sum = 0;
	var srv_count = 0;
	if(isum > 0)
		for(var i=0; i<15; i++)
		{
			$srv = $('#srv_'+i);
			if($srv.lenght <= 0)
				break;
			srv_count = $srv.val();
			if(srv_count > 0)
			{
				srv_sum = $('#srv_sum_'+i).val();
				isum = isum + srv_sum*srv_count;
			}
		}
	var $orderSum = $('#orderSum');
	if(isum > 0)
	{
		$orderSum.text(isum+' (руб.)');
	}
	else
	{
		$orderSum.html('Стоимость будет сообщена менеджером<br/> после подтверждения заказа');
	}
}

function recalcMaxSrvCount()
{
	var $room_count = $('#room_count');
	var room_count = $room_count.val();
	for(var i=0; i<15; i++)
	{
		var $srv = $('#srv_'+i);
		var $srv_max = $('#srv_maxcount_'+i);
		if($srv.lenght <= 0)
			break;
		var srv_max = $srv_max.val();
		var curCount = $srv.val();
		var srvMaxPossible = room_count*srv_max;
		var optHtml = (curCount==0) ? '<option value="0" selected="selected">- нет -</option>' : '<option value="0">- нет -</option>';
		for(var j=1; j<=srvMaxPossible; j++)
		{
			var selected = (j==curCount) ? ' selected="selected"' : '';
			optHtml += '<option value="'+j+'" '+selected+'>'+j+'</option>'
		}
		$srv.empty();
		$srv.html(optHtml);
	}
}

function prepareMetroMap()
{
	var $metro = $('#metro');
	$(".mst", $metro).tooltip({
	    bodyHandler: function(){
	    	var $this = $(this);
	      var $elInfo = $($this).next(':first');
          $elInfo.hover(function(){alert("yes");}, function(){alert("no");});
	      return $elInfo.html();
	    },
	    showURL: false,
	    delay: 0,
	    delayClose: 600
	});	
}
