var interval;
var delay = 4000;

var total = 0;

function startRotator()
{
	$('#bannersRotator ul li a').each(function()
	{
		$(this).hover( handlerIn, handlerOut);
	});
	
	$('#bannersRotator ul li').css({ opacity: 0.0 });
	$('#bannersRotator ul li:first').css({ opacity: 1.0 });
	
	interval = setInterval(rotate, delay);
}

function rotate()
{
	var first = $('#bannersRotator ul li:first');
	
	var current = $('#bannersRotator ul li.show') ? $('#bannersRotator ul li.show') : first;
	var next = (current.next().length) ? (current.next().hasClass('show') ?  first : current.next() ) : first ;
	
	next.css({opacity: 0.0}).addClass('show').animate({opacity:1.0},1000);
	current.removeClass('show').css({opacity:1.0});
}

function handlerIn()
{
	clearInterval(interval);
}

function handlerOut()
{
	interval = setInterval(rotate, delay);
}

function prepareNav()
{
	$(".nav").children("li").each( function(){
		var current = "nav current-" + ($(this).attr("class"));
		var parentClass = $(".nav").attr("class");
		if( parentClass != current)
		{
			$(this).children("a").css({backgroundImage:"none"});
		}
		attachNavEvents(".nav",$(this).attr("class"));
	});
}

function attachNavEvents(parent, myClass)
{
	$(parent + " ." +  myClass).mouseover( function()
	{
		$(this).before('<div class="nav-' + myClass + '"></div>');
		$("div.nav-" + myClass).css({display:"none"}).fadeIn(200);
	}).mouseout(function()
	{
		$("div.nav-" + myClass).fadeOut(200, function()
		{
			$(this).remove();
		});
	});
}

function prepareFormFields()
{
	prepareFormLabels();
	
	$('#scheduleSubmit').click( function() {
		
		$('.scheduleForm form').validate({
			errorElement: "p",
			invalidHandler: function(form, validator)
			{
				prepareFormLabels();
				
					$('.scheduleForm .validationErrors').text("Pola: typ pojazdu, nr rejestracj, data przeglądu (dd, mm, rrrr), przedział godzin są wymagane.");
					$('.scheduleForm').css("margin-top", "10px");
					$('.scheduleForm form').css("margin-bottom", "10px");		
			},
			submitHandler: function(form)
			{
				var dataString = $('.scheduleForm form').serialize();
				var action = $('.scheduleForm form').attr('action');
				
				$.ajax({
					type: "POST",
					url: action,
					data: "action=schedule_visit&" + dataString,
					success: scheduleVisitSuccess,
					error: scheduleVisitError
				});
			}
		});
	});
	
	$('#scheduleSubmitAdv').click( function() {
		
		$('.dialogAdvancedSchedule.scheduleVisit form').validate({
			errorElement: "p",
			invalidHandler: function(form, validator)
			{
				$('.dialogAdvancedSchedule .validationErrors').text("Pola: imię, nazwisko, nr rejestracji, data przeglądu (dd, mm, rrrr), typ pojazdu, przedział godzin są wymagane. Proszę wyrazić zgodę na przetwarzanie danych osobowych.");
				prepareFormLabels();
			},
			submitHandler: function(form)
			{
				var dataString = $('.dialogAdvancedSchedule.scheduleVisit form').serialize();
				var action = $('.dialogAdvancedSchedule.scheduleVisit form').attr('action');
				// 	
				$.ajax({
					type: "POST",
					url: action,
					data: "action=schedule_visit_adv&" + dataString,
					success: scheduleVisitAdvSuccess,
					error: scheduleVisitError
				});
			}
		});
	});
	
	$('#reminderSubmit').click( function() {
		
		$('.dialogExaminationReminder form').validate({
			errorElement: "p",
			invalidHandler: function(form, validator)
			{
				$('.dialogExaminationReminder .validationErrors').text("Pola: email, nr rejestracji, data przeglądu (dd, mm, rrrr) są wymagane. Proszę wyrazić zgodę na przetwarzanie danych osobowych.");
				prepareFormLabels();
			},
			submitHandler: function(form)
			{
					var dataString = $('.dialogExaminationReminder form').serialize();
					var url = $('.dialogExaminationReminder form').attr('action');
					// 	
					$.ajax({
						type: "POST",
						url: url,
						data: "action=add_reminder_data&" + dataString,
						success: reminderSuccess
					});
			}
		});
	});
}

function prepareFormLabels()
{
	var name = 	$("input[name='schedule_name']");
	var last_name = $("input[name='schedule_lastname']");
	var number = $("input[name='schedule_number']");
	var phone = $("input[name='schedule_contact_phone']");
	var date_day = $("input[name='schedule_date_day']");
	var date_month = $("input[name='schedule_date_month']");
	var date_year = $("input[name='schedule_date_year']");
	
	name.example("imię");
	last_name.example("nazwisko");
	number.example("nr rejestracji");
	phone.example("tel. kontaktowy");
	date_day.example("dd");
	date_month.example("mm");
	date_year.example("rrrr");
	
	$("input[name='reminder_email']").example('e-mail');
	$("input[name='reminder_phone']").example('telefon');
	$("input[name='reminder_date_day']").example("dd");
	$("input[name='reminder_date_month']").example("mm");
	$("input[name='reminder_date_year']").example("rrrr");
	$("input[name='reminder_v_number']").example("0000000");
}

function reminderSuccess(response)
{
	$('.dialogExaminationReminder form fieldset').html(response);
	$('#reminderSubmit').hide();
}

function prepareDialogs()
{
	var advSchedule = $('.dialogAdvancedSchedule');
	advSchedule.dialog({
		dialogClass: 'dialogAdvancedSchedule', 
		autoOpen: false, 
		closeOnEscape: true, 
		show: 'fade', 
		hide: 'fade',
		width: 700,
		modal: true,
		position: ['center', 50]
	});
	
	var reminder = $('.dialogExaminationReminder');
	reminder.dialog({
		dialogClass: 'dialogExaminationReminder',
		autoOpen: false,
		closeOnEscape: true,
		show: 'fade',
		hide: 'fade',
		width: 380,
		modal: true,
		position: ['center', 160]
	});
	
	
	$('a.advancedSchedule').click( function() {
		advSchedule.dialog('open');
		$('input,textarea,select').blur();
		return false;
	});
	
	$('a.examinationReminder').click( function() {
		reminder.dialog('open');
		$('input,textarea,select').blur();
		return false;
	});
}

function scheduleVisitSuccess(response)
{
	$('.scheduleForm').html(response);
	$('.scheduleVisit h5').hide();
}

function scheduleVisitAdvSuccess(response)
{
	$('.dialogAdvancedSchedule.scheduleVisit form fieldset').html(response);
	$('#scheduleSubmitAdv').hide();
}

function scheduleVisitError(response)
{
}

function preparePriceCalculator()
{

	$('#services td .add').each( function(){
		$(this).click( addPrice );
	});
	
}

function addPrice()
{
	$(this).unbind();
	
	$(this).removeClass('add');
	$(this).addClass('substract');
	
	var price = parseFloat( $(this).parent().text() );
	total += price;
	$('.totalPrice').text( total + " PLN" );
	
	$(this).click(substractPrice);
	
	if($(this).is('a'))
		return false;
}

function substractPrice()
{	
	$(this).unbind();
	
	var price = parseFloat( $(this).parent().text() );
	total -= price;
	if(total < 0) total = 0; 
	$('.totalPrice').text( total + " PLN" );

	$(this).removeClass('substract');
	$(this).addClass('add');
	
	$(this).click(addPrice);
	
	if($(this).is('a'))
		return false;
}

$(document).ready(function() {
	if($('#bannersRotator').length)
	{
		startRotator();
	}
	
	if($('.scheduleForm').length)
	{
		prepareFormFields();
		prepareDialogs();
	}
	
	if($('#services').length)
	{
		preparePriceCalculator();
	}
	
	prepareNav();
	
	$("select, input[type=text]").uniform();
});
