function generateHours(dateText){
	if(!$("select#type").length){
		return;
	}
	var day = new Date(dateText);
	var start = 10;
	var end = 19;

	// Sat & Sun start/end time is different
	if(day.getUTCDay() == 5 || day.getUTCDay() == 6){
		start = 12;
	}
	var hours = new Array();
	// it just works :)
	for(var h = start; h <= end; h+=0.7){
		hours.push(h.toFixed(2));
		h += 0.3;
		hours.push(h.toFixed(2));
	}
	// remove last XX:30 element
	hours.pop();
	
	var select = $('#hour');
	var options = select.attr('options');
	// remove previous <option> tags
	$('option', select).remove();

	// write elements as new <option> tags
	$.each(hours, function(id,val) {
		options[options.length] = new Option(val, val);
	});

	// select previously selected value by hidden input with $_POST value
	select.val($("#selectedHour").val());
}

function daysBetween(date1, date2) {
    // The number of milliseconds in one day
    var ONE_DAY = 1000 * 60 * 60 * 24

    // Convert both dates to milliseconds
    var date1_ms = date1.getTime()
    var date2_ms = date2.getTime()

    // Calculate the difference in milliseconds
    var difference_ms = Math.abs(date1_ms - date2_ms)

    // Convert back to days and return
    return Math.round(difference_ms/ONE_DAY)
}

function calculatePrice(){
	if($("#dateFrom").val() != '' && $("#dateTo").val() != ''){
		if(language == 'Bg'){
			var lv = 'лв';
			var daysTxt = 'дена';
		}else{
			var lv = 'lv';
			var daysTxt = 'days';
		}

		var days = daysBetween(Date.parse(($("#dateFrom").val())),Date.parse(($("#dateTo").val())))+1;
		var price = $("#animal option:selected").text().split(' - ')[1].replace(' '+lv, '');
		var text = days + ' ' + daysTxt + ' X ' + price + ' ' + lv + ' = ' + (days*price).toFixed(2) + ' ' + lv + ' ';

		$("#total").text(text);
		$("#textForEMail").val(text);
	}
}

$(document).ready(function(){
	if($('#slider').length){
		$('#slider').nivoSlider({
			effect:'sliceUp', //Specify sets like: 'fold,fade,sliceDown,random'
			slices:10,
			animSpeed:1000, //Slide transition speed
			pauseTime:4000,
			startSlide:0, //Set starting Slide (0 index)
			directionNav:true, //Next & Prev
			directionNavHide:true, //Only show on hover
			controlNav:false, //1,2,3...
			controlNavThumbs:false, //Use thumbnails for Control Nav
			controlNavThumbsFromRel:false, //Use image rel for thumbs
			controlNavThumbsSearch: '.jpg', //Replace this with...
			controlNavThumbsReplace: '_thumb.jpg', //...this in thumb Image src
			keyboardNav:true, //Use left & right arrows
			pauseOnHover:true, //Stop animation while hovering
			manualAdvance:false, //Force manual transitions
			captionOpacity:0.8, //Universal caption opacity
			beforeChange: function(){},
			afterChange: function(){},
			slideshowEnd: function(){} //Triggers after all slides have been shown
		});
	}
	
	// remove skype nubmers formating
	window.setTimeout(function() {
			$('.skype_pnh_container').html('');
			$('.skype_pnh_print_container').removeClass('skype_pnh_print_container');
	}, 800);

	// jquery datepicker
	$(function(){
		$("#date").datepicker(
			{dateFormat: 'yy-mm-dd',
			minDate: '1d',
			onSelect: function(dateText, inst) {
				generateHours(dateText);
			}
		});
		if($("#date").val() != ''){
			generateHours($("#date").val());
		}
		$("#dateFrom").datepicker(
			{dateFormat: 'yy-mm-dd',
			minDate: '1d',
			onSelect: function(dateText, inst) {
				calculatePrice();
			}
		});
		$("#dateTo").datepicker(
			{dateFormat: 'yy-mm-dd',
			minDate: '1d',
			onSelect: function(dateText, inst) {
				calculatePrice();
			}
		});
	});

	$("select#type").change(
	function () {
		if($("select#type option:selected").attr("value")==1){
			$(".hiddenMessage").show();
		}else{
			$(".hiddenMessage").hide();
		}
	});

	$("select#animal").change(
	function () {
		calculatePrice();
	});

	if($("#map_canvas").length){
		var coordinates = new google.maps.LatLng(42.61652, 23.40056);
		var myOptions = {
		  zoom: 15,
		  center: coordinates,
		  mapTypeId: google.maps.MapTypeId.HYBRID
		};
		var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
		var marker = new google.maps.Marker({
			  position: coordinates
		});

		// To add the marker to the map, call setMap();
		marker.setMap(map);
	}
	
});

