$(document)
		.ready( function() {

			// booking
				var CalcFunc = function() {
					if ($('#bookingPage').size() == 0)
						return;
					// discounts and fee
					var dicountWD = parseInt($('#dicountWD').val());
					var dicountWE = parseInt($('#dicountWE').val());
					var lotOfRooms = parseInt($('#lotOfRooms').val());
					var feePerAddPeople = parseInt($('#feePerAddPeople').val());
					var discountMonths = $('#discountMonths').val();

					discountMonths = discountMonths.split(',');

					// days //////////////////////////////////////
					var date1 = new Date($('#CheckIn').val());
					var date2 = new Date($('#CheckOut').val());

					var year1 = date1.getFullYear();
					var year2 = date2.getFullYear();
					var month1 = date1.getMonth();
					var month2 = date2.getMonth();
					var day1 = date1.getDate();
					var day2 = date2.getDate();

					var totalDayes = 0;
					var daysWD = 0;
					var daysWE = 0;

					for ( var year = year1; year <= year2; year++) {
						var month1S = month1;
						if(year != year1){
							month1S = 1;
						}
						
						var month2S = month2;
						if(year != year2){
							month2S = 12;
						}
						
						for ( var month = month1S; month <= month2S; month++) {
							var nm = month + 1;
							nm += '';
							discountMonth = ($.inArray(nm, discountMonths) == -1);

							// start day
							var dayStart = 1;
							if (month == month1) {
								dayStart = day1;
							}

							//
							var dayEnd = 1;
							if (month == month2) {
								dayEnd = day2;
							} else {
								dayEnd = 32 - new Date(year, month, 32)
										.getDate();
							}

							for ( var day = dayStart; day <= dayEnd; day++) {
								if (day == dayEnd && month == month2
										&& year == year2)
									break;
								totalDayes++;

								if (discountMonth) {
									continue;
								}

								var currDate = new Date(year, month, day);

								switch (currDate.getDay()) {
								case 0:
								case 6:
									daysWE++;
									break;
								case 1:
								case 2:
								case 3:
								case 4:
								case 5:
									daysWD++;
									break;
								}
							}
						}
					}
					;

					var checkedNumber = $(':checkbox').filter(":checked")
							.size();
					var isFinDiscount = (totalDayes >= 5 || totalDayes
							* checkedNumber >= 5);

					$(':checkbox')
							.each( function(index) {
								var parentDiv = $(this).parent().parent();
								// calculate discount ///
									// get price
									var price = parseInt($('.realPrice',
											parentDiv).val());
									// get peoples
									var people = parseInt($('.peoplePerRoom',
											parentDiv).val());

									var feeForPeop = (people - 1)
											* feePerAddPeople;
									currPrice = price + feeForPeop;
									$('span.price', parentDiv).text(currPrice);

									// set discount
									var avg = price;
									if (daysWD > 0 || daysWE > 0) {
										avg = (totalDayes - daysWD - daysWE)
												* price + (1 - dicountWD / 100)
												* daysWD * price
												+ (1 - dicountWE / 100)
												* daysWE * price;
										avg /= totalDayes;
									}

									if (isFinDiscount == true) {
										avg *= (1 - lotOfRooms / 100);
									}

									if (avg == price) {
										$('span.discount', parentDiv).html('');
										$('span.price', parentDiv).removeClass(
												'redClass');
									} else {
										totalDiscount = Math.floor(avg)
												+ feeForPeop;
										$('span.discount', parentDiv).html(
												totalDiscount);
										$('span.price', parentDiv).addClass(
												'redClass');
									}
								});

					// calculate total price
					total = 0;
					if (checkedNumber > 0) {
						$(':checkbox')
								.filter(":checked")
								.each(
										function() {
											var parentDiv = $(this).parent()
													.parent();
											var currPrice = parseInt($(
													'span.price', parentDiv)
													.first().text());
											var str = $.trim($('span.discount',
													parentDiv).text());
											var currDiscount = (str.length > 0) ? parseInt(str)
													: 0;

											var val = (currDiscount != 0) ? currDiscount
													: currPrice;

											return total += parseInt(val);
										});
					}

					var FinValue = total * totalDayes;
					$('#totalSpan').text(FinValue)
					
					var disVal = (FinValue == 0)?'disabled':'';
					$('#submitBooking').attr('disabled', disVal);

				};

				// calendar
				$(':input[name="hotel"]').change( function() {
					if ($(this).val()) {
						$("#rightSubmit").attr('disabled', '');
					} else {
						$("#rightSubmit").attr('disabled', 'disabled');
					}
				});

				$('#CheckIn').change( function() {
					$('#hCheckIn').val($(this).val());
					var date1 = new Date($(this).val());
					var date2 = new Date($('#CheckOut').val());

					// if(date1 >= date2){
						// var newDate = new Date(date1.getYear(),
						// date1.getMonth(), date1.getDate() + 1);
						// $("#CheckOut").datepicker("setDate", newDate);
						// }
						CalcFunc();
					});

				$('#CheckOut').change( function() {
					$('#hCheckOut').val($(this).val());
					CalcFunc();
				});

				$(':checkbox').click(CalcFunc);
				$('.peoplePerRoom').change(CalcFunc);
				CalcFunc();
			});