// JavaScript Document
var breakfast = Array();
var countries = ""; // список стран
var prices = Array(); // общая стоимость периода
var rooms_accomod = Array();
var guest_name_arr = Array('','',''); // список имен гостей
var guest_lastname_arr = Array('','',''); // список фамилий гостей
var stop_procedure = false;

/*
**
*/

function visa_support()
{
	var id = $("select#visa").val();
	var visa_support = $("div#visa_support");
	visa_support.empty();
	if (id != 0)
	{
		$("<font color=\"red\">Отправьте копию паспорта по факсу или электронной почте</font>").appendTo(visa_support);
	}
}

/*
**
*/

function new_date(date)
{
	var date_arr = date.split('.');
	var year = date_arr[2];
	var mouth = date_arr[1];
    mouth = parseInt(mouth)-1;
	var days = date_arr[0];
	//var ndate = new Date(year, mouth, days);
    var mouthArray = Array(	  'January',
                              'February',
                              'March',
                              'April',
                              'May',
                              'June',
                              'July',
                              'August',
                              'September',
                              'October',
                              'November',
                              'December' );
    var ndate = new Date(mouthArray[mouth]+", "+days+", "+year);
	//var ndate = new Date(ndate.getFullYear(), ndate.getMonth()-1, ndate.getDate())
    var ndate = new Date(ndate.getFullYear(), ndate.getMonth(), ndate.getDate())
	return ndate;
}

/*
**
*/

function formatDate(formatDate, formatString)
{
  		var yyyy = formatDate.getFullYear();
  		var yy = yyyy.toString().substring(2);
  		var m = formatDate.getMonth() + 1;
  		var mm = m < 10 ? "0" + m : m;
  		var d = formatDate.getDate();
 		var dd = d < 10 ? "0" + d : d;

  		var h = formatDate.getHours();
		var hh = h < 10 ? "0" + h : h;
		var n = formatDate.getMinutes();
		var nn = n < 10 ? "0" + n : n;
		var s = formatDate.getSeconds();
		var ss = s < 10 ? "0" + s : s;

		formatString = formatString.replace(/yyyy/i, yyyy);
		formatString = formatString.replace(/yy/i, yy);
		formatString = formatString.replace(/mm/i, mm);
		formatString = formatString.replace(/m/i, m);
		formatString = formatString.replace(/dd/i, dd);
		formatString = formatString.replace(/d/i, d);
		formatString = formatString.replace(/hh/i, hh);
		formatString = formatString.replace(/h/i, h);
		formatString = formatString.replace(/nn/i, nn);
		formatString = formatString.replace(/n/i, n);
		formatString = formatString.replace(/ss/i, ss);
		formatString = formatString.replace(/s/i, s);

		return formatString;	
}

function start_validate(date)
{
  d = new Date();
  d2 = new Date(d.getTime());
  if (d2.getTime() > date.getTime())
  {
	return d2;
  }
  else
  {
	return date;
  }
}

function stop_validate(sdate, edate)
{
  edate = new Date(edate.getTime()+86400000);
  if (edate > sdate.getTime())
  {
	return edate;
  }
  else
  {
	return sdate;
  }
  return sdate;
}

Date.prototype.format = function(format)
{
	return formatDate(this, format);
}
Date.prototype.start_validate = function(date)
{
	return start_validate(this, date);
}
Date.prototype.stop_validate = function(date)
{
	return stop_validate(this, date);
}

/*
**
*/
function get_hotels()
{
  var id = $("select#city_id").val();
  $.getJSON('/ajax/hotels.php', {'city_id': id}, onAjaxHotelsSuccess);
 
}

/*
**
*/

function get_rooms()
{  
  $("input#submit").attr('disabled', 'disabled');
  var id = $("select#hotel_id").val();
  var sdate = $("input#start_date").val();
  var edate = $("input#stop_date").val();
  var accomod = $("select#room_type").val();
  
  d1 = new_date(sdate);
  d2 = d1.start_validate();
  //sdate = d2.format("dd.mm.yyyy");
  d3 = new_date(edate);
  d4 = d3.stop_validate(d1);
  //edate = d4.format("dd.mm.yyyy");
  
  //$("input#start_date").attr('value', sdate);
  //$("input#stop_date").attr('value', edate);
  $.getJSON('/ajax/rooms.php', {'hotel_id': id, 'start_date':sdate, 'stop_date':edate, 'accomod':accomod}, onAjaxRoomsSuccess);
  generat_guestlist();
}

/*
**
*/

function generat_guestlist()
{
  $("input.guest_name").each(function(index)
  {
    guest_name_arr[index] = $(this).attr('value');
  });
  $("input.guest_lastname").each(function(index)
  {
    guest_lastname_arr[index] = $(this).attr('value');
  });
  
  var tab = $("table#tab_guestlist");  
  var type = $("select#room_type").attr('value');
  var betwin = $("div#betwin");
  var check = $("input#bt").attr('checked');
  var betwin_info = $("div#betwin_info");
  betwin_info.empty();
  if (check != true)
  {
	  betwin.empty();
	  if (type == 2) {
		$("<input type=\"checkbox\" name=\"bt\" id=\"bt\" onClick=\"JavaScript:generat_guestlist();\"><font> дополнительная кровать</font>").appendTo(betwin);
	  }
  }
  else if(check == true && type == 1)
  {
	  betwin.empty();  
  }
  //
  if (check == true)
  {
	   if (type == 2)
	   {
		  $("<font color=green>(информация о стоимости дополнительной кровати будет сообщена Вам менеджером)</font>").appendTo(betwin_info);
	   }
  }
  //
  tab.empty();
  if (check == true && type == 1) type = 1;
  else if (check == true) type = type*1+1;
$("<tr bgcolor=\"#DFDFDF\"><tr><td><b>Фамилия</b></td><td><b>Имя Отчество</b></td><td><b>Гражданство</b></td></tr>").appendTo(tab);
  for (var i=0; i<type; i++)
  {
	  $("<tr bgcolor=\"#DFDFDF\"><tr><td><input type=\"text\" class=\"guest_name\" style=\"width:100px;\" id=\"guest_name[]\" name=\"guest_name[]\" value=\""+guest_name_arr[i]+"\"></td><td><input type=\"text\" class=\"guest_lastname\" style=\"width:200px;\" id=\"guest_lastname[]\" name=\"guest_lastname[]\" value=\""+guest_lastname_arr[i]+"\"></td><td><select name=\"guest_country[]\"  style=\"width:200px;\">"+countries+"</select></td></tr>").appendTo(tab);
  }
}

/*
** проверка списка гостей
*/

function guest_list_validate()
{ 
	stop_procedure = false;
	$("input.guest_name").each(valid_guest); // передаем в each функцию colorize
	//$("input.guest_lastname").each(valid_guest); // передаем в each функцию colorize
	if (stop_procedure == true)
	{
		//alert('Введите ФИО гостей!');
		alert('Заполните поле Фамилия!');
		return false;
	}
	return true;
}

function valid_guest(index)
{
	if ($(this).attr('value') == "")
	{
		stop_procedure = true;
	}
}

/*
** очистить список гостей
*/

function guest_list_clear()
{ 
	$("input.guest_name").each(clear_guest);
	$("input.guest_lastname").each(clear_guest);
}

function clear_guest(index)
{
	$(this).attr('value','');
}

/*
**
*/

function put_date(date, type)
{
  if (type == 1)
  {
	  $("input#start_date").attr('value', date);
  }
  else if (type == 2)
  {
	  $("input#stop_date").attr('value', date);
  }
}

/*
**
*/
/*function generat_room_num()
{
  var type = $("select#room_type").attr('value');
  var num = $("select#people_num").attr('value');
  var col = (num / type);
  $("select#room_num").attr('value', Math.ceil(col));	
}*/
/*
**
*/

function get_breakfast()
{
	var rooms = $("select#room_id");
	var id = rooms.val();
	var brf = $("select#breakfast");
	brf.empty();
	if (breakfast[id] != 2) $("<option></option>").attr("value", 0).html('Не включен').appendTo(brf);
	if (breakfast[id] != 0) $("<option></option>").attr("value", 1).html('Включен').appendTo(brf);
}

/*
**
*/

function delete_period(id)
{
  dateObjectName = new Date();
  session = $("input#session").attr('value');
  $.getJSON('/ajax/delete_period.php?'+dateObjectName.getTime(), {'id' : id, 'session' : session}, onAjaxPeriodSuccess);
}

/*
** Получаем список стран
*/

function onAjaxCountrySuccess(obj)
{
	for (var i=0; i<obj.length; i++)
	{
		countries += "<option id=\""+obj[i].id+"\">"+obj[i].country+"</option>";
	}
	//generat_guestlist();
}

/*
**
*/

function onAjaxHotelsSuccess(obj)
{
	var sel = $("select#hotel_id");
	var hotel_id = sel.val();
	sel.empty();
	var stars = "";
	var stars_number = 0;
	for (var i=0; i<obj.length; i++)
	{
		if (stars_number != obj[i].stars)
		{
			stars = "";
			for (var a=0; a<obj[i].stars; a++)
			{
				stars += '*';
				stars_number = obj[i].stars;
			}
		}
		if (obj[i].online != 0) hotel_name = ""+stars+" "+obj[i].hotel+" (Онлайн)"
		else hotel_name = ""+stars+" "+obj[i].hotel;
		var opt = $("<option></option>");
		opt.attr("value", obj[i].id).html(hotel_name);
		if (obj[i].id == hotel_id)
		{
			opt.attr("selected", "selected");
		}
		if (obj[i].online != 0)
		{
			opt.css({color: "#009900"});
		}
		else
		{
			opt.css({color: "#000000"});
		}
		opt.appendTo(sel);
	}
	get_rooms();
}

/*
**
*/

function get_room_prices()
{
	var rooms = $("select#room_id");
	var id = rooms.val();
	var room_price = $("div#room_price");
	room_price.empty();
	if (prices[id] != 0) {
		$("<font>Стоимость номера за выбранный период: <b>"+prices[id]+"</b> руб.</font>").appendTo(room_price);
	}
	else
	{
		$("<font>Стоимость номера за выбранный период определяется по запросу.</font>").appendTo(room_price);	
	}
	get_breakfast();
	get_room_type();
}

/*
** Определить тип размещения
*/

function get_room_type()
{
	var rooms = $("select#room_id");
	var id = rooms.val();
	var rooms_type = $("select#room_type");
	var rooms_type_id = rooms_type.val();
	rooms_type.empty();
	var opt = $("<option></option>");
	opt.attr("value", 1).html('Одноместное');
	if (rooms_type_id == 1) opt.attr("selected", "selected");
	opt.appendTo(rooms_type);
	if (rooms_accomod[id] != 1)
	{
		var opt = $("<option></option>");
		opt.attr("value", 2).html('Двухместное');
		if (rooms_type_id == 2) opt.attr("selected", "selected");
		opt.appendTo(rooms_type);
	}
	generat_guestlist();
}

/*
**
*/

function onAjaxRoomsSuccess(obj)
{
	
	var rooms = $("select#room_id");
	var room_id = rooms.val();
	rooms.empty();
	for (var i=0; i<obj.length; i++)
	{
		prices[obj[i].id] = obj[i].sum; // сумма номера
		if (obj[i].min_sum != 0 && obj[i].min_sum != '-') {
			if (obj[i].is_min == 0) room_name = obj[i].room+" ("+obj[i].min_sum+" руб.)";
			else room_name = obj[i].room+" (от "+obj[i].min_sum+" руб.)";
		}
		else room_name = obj[i].room+" ( - )";
		
		/*if (obj[i].online != 0) room_name = room_name+" (Онлайн)";
		else room_name = room_name+" (По запросу)";*/
		var opt = $("<option></option>");
		opt.attr("value", obj[i].id).html(room_name);
		if (obj[i].id == room_id)
		{
			opt.attr("selected", "selected");
		}
		if (obj[i].online != 0) {
		  opt.css({color: "#009900"});
		}
		else {
		  opt.css({color: "#000000"});
		}
		opt.appendTo(rooms);
		breakfast[obj[i].id] = obj[i].breakfast;
		rooms_accomod[obj[i].id] = obj[i].accomod; //тип размещения
	}
	get_breakfast();
	get_room_prices();
	$("input#submit").attr('disabled', '');
}

/*
**
*/

/*function onAjaxPeriodSuccess(obj)
{
	session = obj[0].session;
	$("input#session").attr('value',session);
	$("table#td_period").empty();
	if (obj[1].length == 0) return false;
	$("<tr bgcolor=\"#DFDFDF\"><td><b>Гостиница</b></td><td><b>Номер</b></td><td><b>Дата начала</b></td><td><b>Дата окончания</b></td><td><b>Количество номеров</b></td><td>Действие</td></tr>").appendTo("table#td_period");
	for (var i=0; i<obj[1].length; i++)
	{
		$("<tr><td>"+obj[1][i].hotel_name+"</td><td>"+obj[1][i].room_name+"</td><td>"+obj[1][i].start_date+"</td><td>"+obj[1][i].stop_date+"</td><td>"+obj[1][i].room_num+"</td><td><input type=\"button\" value=\"x\" onClick=\"JavaScript:delete_period('"+obj[1][i].id+"');\"></td></tr>").appendTo("table#td_period");
	}	
	$("<tr><td colspan=\"6\" align=\"right\"><input type=\"button\" value=\"далее\" onClick=\"JavaScript:document.location='confirm.php?session="+session+"';\"></td></tr>").appendTo("table#td_period");
}*/

/*
**
*/

function onAjaxPeriodSuccess(obj)
{
	$("table#td_period").empty();
	if (obj[1].length == 0 || obj[1].length == undefined) return false;
	var online;
	for (var i=0; i<obj[1].length; i++)
	{
		$("<tr bgcolor=\"#DFDFDF\" style=\"font-size:11px;\"><td align=\"center\" style=\"border-right: #000 solid 1px; border-top: #000 solid 1px; border-left: #000 solid 1px;\" width=\"28px;\"><b>Тип брони</b></td><td align=\"center\" style=\"border-right: #000 solid 1px; border-top: #000 solid 1px\"><b>Список гостей</b></td><td align=\"center\" style=\"border-right: #000 solid 1px; border-top: #000 solid 1px\" width=\"65px;\"><b>Даты</b></td><td align=\"center\" style=\"border-right: #000 solid 1px; border-top: #000 solid 1px\" width=\"80px;\"><b>Стоимость номера в день</b></td><td align=\"center\" style=\"border-right: #000 solid 1px; border-top: #000 solid 1px\" width=\"30px;\"><b>Кол-во дней</b></td><td align=\"center\" style=\"border-right: #000 solid 1px; border-top: #000 solid 1px\" width=\"30px;\"><b>Кол-во номеров</b></td><td align=\"center\" style=\"border-right: #000 solid 1px; border-top: #000 solid 1px\" width=\"50px;\"><b>Стоимость завтрака</b></td><td align=\"center\" style=\"border-right: #000 solid 1px; border-top: #000 solid 1px\" width=\"60px;\"><b>Сумма</b></td><td align=\"center\" style=\"border-right: #000 solid 1px; border-top: #000 solid 1px\" width=\"40px;\"><b>Удалить</b></td></tr>").appendTo("table#td_period");
		var status = 1;
		if (obj[1][i].online == 1) online = 'Online';
		else online = '<nobr>По запросу</nobr>';
		for (var a=0; a<obj[1][i].periods.length; a++)
		{
		var str = "<tr style=\"font-size:11px;\">";
		if (status == 1) {str += "<td align=\"center\" style=\"border-right: #000 solid 1px; border-left: #000 solid 1px;\" rowspan=\""+obj[1][i].periods.length+"\">"+online+"</td>";}
		if (status == 1) {str += "<td  align=\"center\" style=\"border-right: #000 solid 1px\" rowspan=\""+obj[1][i].periods.length+"\">"+obj[1][i].guest_list+"</td>";}
		str += "<td align=\"center\" style=\"border-right: #000 solid 1px\">"+obj[1][i].periods[a].speriod+" - "+obj[1][i].periods[a].eperiod+"</td>";
		str += "<td align=\"center\" style=\"border-right: #000 solid 1px\">"+obj[1][i].periods[a].price+"</td><td style=\"border-right: #000 solid 1px\" align=\"center\">"+obj[1][i].periods[a].days+"</td>";
		if (status == 1) {str += "<td  style=\"border-right: #000 solid 1px\" align=\"center\" rowspan=\""+obj[1][i].periods.length+"\">"+obj[1][i].room_num+"</td>";}
		if (status == 1) {str += "<td  style=\"border-right: #000 solid 1px\" align=\"center\" rowspan=\""+obj[1][i].periods.length+"\">"+obj[1][i].periods[a].breakfast+"</td>";}
		str += "<td style=\"border-right: #000 solid 1px\" align=\"center\" >"+obj[1][i].periods[a].sum+"</td>";
		if (status == 1) str += "<td style=\"border-right: #000 solid 1px\" align=\"center\" rowspan=\""+obj[1][i].periods.length+"\"><input type=\"button\" title=\"Удалить услугу\" value=\"X\" style=\"color:#F00; font-weight:bold; text-align:center; width:20px; height:20px;\" onClick=\"JavaScript:delete_period('"+obj[1][i].id+"');\"></td>";
		$(str).appendTo("table#td_period");
		status = 0;
		}
		if (obj[1][i].order_summ != 0)
		{
			$("<tr style=\"font-size:11px;\"><td colspan=\"9\" style=\"border-top: #000 solid 1px;\" align=\"right\"><b>Итого: </b>"+obj[1][i].order_summ+" руб.</td></tr>").appendTo("table#td_period");
		}
		else
		{
			$("<tr style=\"font-size:11px;\"><td colspan=\"9\" style=\"border-top: #000 solid 1px;\" align=\"right\"><b>Итого: </b>цена доступна по запросу</td></tr>").appendTo("table#td_period");		
		}
		$("<tr><td colspan=\"9\" align=\"right\">&nbsp;</td></tr>").appendTo("table#td_period");
	}
	$("<tr><td colspan=\"9\" align=\"right\"><input type=\"image\" src=\"/img/room_add2.jpg\" onClick=\"JavaScript:validate_submit(); return false;\"><input type=\"image\" src=\"/img/btb_next_order.jpg\" onClick=\"JavaScript:document.location='/ru/booking.html?session="+session+"&op=order';\"></td></tr>").appendTo("table#td_period");
}

/*
**
*/

function validate_submit()
{
	$("#fbooking").validate(
	{
		/*focusInvalid: false,
		focusCleanup: true,*/
		rules :
		{
				//main_date : "required", 
				guest_name : "required"
		},
		messages :
		{
				//main_date : "TEST",
				guest_name : "Введите дату начала"
		}/*,
		errorPlacement: function(error, element)
		{
		  er = element.attr("name");
		  alert(er);
		  //error.appendTo(element.parent().find("label[@for='" + er + "']").find("em"));
		}*/

	});
	if (!guest_list_validate()) return false;
	dateObjectName = new Date();
	var qString = $("#fbooking").formSerialize();
	//alert(qString);
	$.getJSON('/ajax/booking.php?'+dateObjectName.getTime(), qString, onAjaxPeriodSuccess);
	//$("#fbooking").clearForm();
	guest_list_clear();
}

/*
** выполняется в момент загрузки страницы
*/

$(document).ready(function()
{
	dateObjectName = new Date();
	session = $("input#session").attr('value');
	get_hotels();
	$.getJSON('/ajax/booking.php?'+dateObjectName.getTime(), {'session' : session}, onAjaxPeriodSuccess);
	$.getJSON('/ajax/country.php?'+dateObjectName.getTime(), ' ', onAjaxCountrySuccess);
});