$(document).ready(function(){
	html_markup();
	menu_init();
	booking_init();
	guestbook_init();
	photogallery_init();
		
	$('.photoline .photos').cycle({
		timeout:8000,
		speed:3000
	});

	hs.graphicsDir = '/js/highslide/graphics/';
	hs.align = 'center';
	hs.transitions = ['expand', 'crossfade'];
	hs.outlineType = 'rounded-white';
	hs.fadeInOut = true;
	//hs.dimmingOpacity = 0.75;
	
	// Add the controlbar
	hs.addSlideshow({
		//slideshowGroup: 'group1',
		interval: 5000,
		repeat: false,
		useControls: true,
		fixedControls: 'fit',
		overlayOptions: {
			opacity: .75,
			position: 'bottom center',
			hideOnMouseOut: true
		}
	});

});

function html_markup()
{
	$('img.rounded').each(function(){
		var w=$(this).width();
		var h=$(this).height();
		var $span=$('<span class="rounded" />');
		$span.css('background-image','url("'+$(this).attr('src')+'")').css('width',w+'px').css('height',h+'px');
		$span.insertBefore(this);
		$(this).remove();
	});
	
	$('.pane.bgimage').each(function(){
		var $img=$(this).find('img');
		var h=$img.height();
		if($img.length)
		{
			$(this).css('background','url("'+$img.attr('src')+'") no-repeat top left').css('height',h+'px');
			$img.attr('src','/img/e.gif');
		}
	});
	
	$('.button').wrapInner('<span class="inner"/>').prepend('<span class="left"/>');
	
	$('.spoiler').click(function(){
		var uid=$(this).attr('rel');
		$('#'+uid).slideToggle(300);
		return false;
	});
}

function menu_init()
{
	$('.menu > li > a').prepend('<span class="bg"/>');
	
	if($.browser.msie)
	{
		$('.menu > li > a').mouseenter(function(){
			$(this).children('.bg').show();
		}).mouseleave(function(){
			if(!$(this).parent().hasClass('sel'))
				$(this).children('.bg').hide();
		});
	}
	else
	{
		$('.menu > li > a').mouseenter(function(){
			$(this).children('.bg').stop(true,true).fadeTo(200,1);
		}).mouseleave(function(){
			if(!$(this).parent().hasClass('sel'))
				$(this).children('.bg').stop().fadeTo(400,0);
		});
	}

	$('.menu > li > ul').each(function(){
		$(this).prepend('<li class="top"><div class="c1"></div><div class="c2"></div><div class="c3"></div></li>').append('<li class="bottom"></li>');
		var ul_w=$(this).width();
		var $a=$(this).parent().children('a');
		var top_w=$a.outerWidth()-2;
		
		var $top=$(this).children('li.top');
		var c3_w=ul_w-top_w-7;
		if(c3_w < 7)
			c3_w=7;
		$top.css('width',(top_w+8+c3_w)+'px');
		$top.children('.c1').css('width',(top_w+2)+'px');
		$top.children('.c3').css('width',c3_w+'px');

		if($.browser.msie)
		{		
			$a.mouseenter(function(){
				$(this).blur();
				var $li=$(this).parent();
				if(!$li.hasClass('sel'))
				{
					$li.addClass('sel');
					$(this).next('ul').slideDown(200);
				}
				return false;
			});
			
			$(this).parent().mouseleave(function(){
				$(this).children('ul').hide();
				$(this).children('a').children('.bg').hide();
				$(this).removeClass('sel');
			});
		}
		else
		{
			$a.mouseenter(function(){
				$(this).blur();
				var $li=$(this).parent();
				if(!$li.hasClass('sel'))
				{
					$li.children('a').children('.bg').stop(true,true);
					$li.addClass('sel');
					$(this).next('ul').stop().fadeTo(200,1);
				}
				
				return false;
			});
			
			$(this).parent().mouseleave(function(){
				$(this).children('ul').stop().fadeTo(400,0);
				$(this).children('a').children('.bg').fadeTo(400,0,function(){
					$(this).parent().parent().removeClass('sel');
				});
			});

		}
	});
}

function booking_init()
{
	var params={
		changedEl: "#select_adult, #select_children, #select_adult_form, #select_children_form"
	};
	cuSel(params);

	$('#inp_date_from_fast, #inp_date_to_fast').datepicker({
		changeMonth: true,
		changeYear: true,
		minDate: 0,
		maxDate: "+1Y"
	});
	
	$('#booking_form_fast_submit').click(function(){
		if(
			$('#booking_form_fast').find('input[name=date_from]').val() != '' &&
			$('#booking_form_fast').find('input[name=date_to]').val() != ''
		)
		{
			$('#booking_form_fast').attr('method','post');
			$('#booking_form_fast').find('input[name=step]').attr('value','2');
		}
		$('#booking_form_fast').submit();
	});
	
	/* STEP 1 */
	$('#inp_date_from_form, #inp_date_to_form').datepicker({
		changeMonth: true,
		changeYear: true,
		minDate: 0,
		maxDate: "+1Y"
	});
	
	$('#booking_form').submit(function(){
		if(
			$(this).find('input[name=date_from]').val() == '' ||
			$(this).find('input[name=date_to]').val() == ''
		)
		{
			booking_show_error('booking_form_error_fill');
			return false;
		}
	});
	
	$('#booking_form_submit').click(function(){
		$('#booking_form').submit();
		return false;
	});
	
	/* STEP 2 */
	//booking_step2(...)
	
	/* STEP 3 */
  var options = {
		data: { site: 1 },
		success: booking_step3_success,
		dataType: 'json',
		beforeSubmit: booking_step3_before
	}; 	
	
	$("#booking_form_step3").validate({
		submitHandler: function(form) {
			$(form).ajaxSubmit(options);
		},
		invalidHandler: function(){
			$('.error_pane.booking').hide();
			$('#booking_step3_error_fields').slideDown();
		},
		errorPlacement: function(error, element) {
		},
		errorClass: 'errorTip'
	});
	
	$('#booking_form_step3_submit').click(function(){
		$('#booking_form_step3').submit();
		return false;
	});
}

function booking_show_error(name)
{
	$('.error_pane.booking').hide();
	$('#'+name).slideDown();
}

function booking_step2(room_id,rooms_num,extra_place,price)
{
	$('#booking_form_step2').find('input[name=room_id]').attr('value',room_id);
	$('#booking_form_step2').find('input[name=rooms_num]').attr('value',rooms_num);
	$('#booking_form_step2').find('input[name=room_using_extra]').attr('value',extra_place);
	$('#booking_form_step2').find('input[name=calculator_price]').attr('value',price);
	$('#booking_form_step2').submit();
}

function booking_step3_before()
{
	var $obj=$('#booking_form_step3');
	$obj.fadeTo(300,0.5);
	$obj.before('<div id="booking_form_step3_blocker" style="position:absolute;width:'+$obj.outerWidth()+'px;height:'+$obj.outerHeight()+'px;z-index:9999;background:url(/img/ajax-loading.gif) no-repeat center center"></div>');
}

function booking_step3_success(obj)
{
	
	$('#booking_form_step3_blocker').remove();
	if(obj.error == 0)
	{
		$('#booking_form_step3').fadeOut(300,function(){
			$('#booking_form_step3').remove();
			$('#booking_form_step3_success').fadeIn(200);
		});
	}
	else
	{
		$('#booking_form_step3').fadeOut(300,function(){
			$('#booking_form_step3').remove();
			$('#booking_form_step3_error').fadeIn(200);
		});		
	}

}

/*** GUESTBOOK ***/


function guestbook_init()
{
	$('#guestbook_form_submit').click(function(){
		$('#guestbook_form').submit();
		return false;
	});
	
  var options = {
		data: { site: 1 },
		success: guestbook_success,
		dataType: 'json',
		beforeSubmit: guestbook_before
	}; 	
	
	$("#guestbook_form").validate({
		submitHandler: function(form) {
			$(form).ajaxSubmit(options);
		},
		invalidHandler: function(){
			$('.error_pane').hide();
			$('#guestbook_form_fields').slideDown();
		},
		errorPlacement: function(error, element) {
		},
		errorClass: 'errorTip'
	});
}

function guestbook_before()
{
	var $obj=$('#guestbook_form');
	$obj.fadeTo(300,0.5);
	$obj.before('<div id="guestbook_form_blocker" style="position:absolute;width:'+$obj.outerWidth()+'px;height:'+$obj.outerHeight()+'px;z-index:9999;background:url(/img/ajax-loading.gif) no-repeat center center"></div>');
}

function guestbook_success(obj)
{
	$('#guestbook_form_blocker').remove();
	if(obj.error == 0)
	{
		$('#guestbook_form').fadeOut(300,function(){
			$('#guestbook_form').remove();
			$('#guestbook_form_success').fadeIn(200);
		});
	}
	else
	{
		$('#guestbook_form').fadeOut(300,function(){
			$('#guestbook_form').remove();
			$('#guestbook_form_error').fadeIn(200);
		});		
	}
}

function photogallery_init()
{
	$('.photogallery_thumbs .item a').click(function(){
		var pic_src=$(this).attr('href');
		$('#photogallery_photo').fadeOut(200,function(){
			var $tmp=$('<img />');
			$tmp.load(function(){
				$('#photogallery_photo').fadeIn(300);
			});
			$tmp.attr('src',pic_src);
			$(this).css('background-image','url('+pic_src+')');
		});
		
		
		return false;
	});
}
