$(document).bind('ready', initBusca);

function initBusca () {
	window.autocompleter.add($('#busca-carro .autocomplete-cidade'), {url: '/autocomplete.php'});
	$('#busca h3 a').bind('mouseover', aba_mouseover).bind('mouseout', aba_mouseout).bind('click', aba_click);
	$('input[name=pagamento]').bind('click', pagamento_click);
	var today = new Date();
	$('#dataRetirada').datetimepicker({minDate: today, onSelect: function (selectedDate) {
					instance = $(this).data("datetimepicker");
					date = $.datetimepicker.parseDate(instance.settings.dateFormat || $.datetimepicker._defaults.dateFormat, selectedDate, instance.settings );
					/* novo */
					if (typeof instance.currentHour != 'undefined' && typeof instance.currentMinute != 'undefined') {
						ins = $('#dataDevolucao').data("datetimepicker");
						ins.currentHour = instance.currentHour;
						if (ins.currentHour > 12) {
							ins.currentHour += -12 
						}
						ins.currentMinute = instance.currentMinute;
						ins.currentAMPM = instance.currentAMPM;
						$('#dataDevolucao').data("datetimepicker", ins);
					}
					/* novo */
				$('#dataDevolucao').datetimepicker( "option", "minDate", date);
		}
	});
	$('#dataDevolucao').datetimepicker({minDate: today, onSelect: function (selectedDate) {
					instance = $(this).data("datetimepicker");
					date = $.datetimepicker.parseDate(instance.settings.dateFormat || $.datetimepicker._defaults.dateFormat, selectedDate, instance.settings );
				$('#dataRetirada').datetimepicker("option", "maxDate", date);
		}
	});
	
	new Validator('#busca-carro', {
		realtimeValidation: false,
		action: validationAction,
		success: preLoader, 
		validations: [
			{type: 'radio', msg: 'Escolha uma forma de pagamento.', validate: validate_radio},
			{type: 'datetime', msg: 'Data em formato inválido.', validate: validate_datetime},
			{type: 'cidade', msg: 'Cidade inválida.', validate: validate_cidade},
			{type: 'date-devolucao', msg: 'Data de devolução menor que data de retirada.', validate: validate_devolucao}
		]
	});
	var dev = $('input[name=devolver]').bind('click', showHideCidadeDevolucao);
	(function(){ jQuery('input[name=devolver]').bind('click', function(event, ui){var target = jQuery('<div id="dialog1" title="Importante!"><h1 style="text-align:center">Importante!</h1><p style="text-align:justify; font-size:12px"> 	Ao devolver o carro em cidade diferente da que retirou, desde que a locadora escolhida também tenha loja, será cobrada taxa de retorno, que pode variar entre R$ 0,80 e R$ 1,00 em média por kilômetro.  	</p>     <p style="text-align:justify; margin-top:10px; font-size:12px;"> Salientamos que esse valor não aparece em cotações, nas solicitações de reservas, mas sim nas confirmações que serão enviadas posteriormente.</p></div>'); target.show(); if(!target.dialog('isOpen')){target.dialog({autoOpen:false,bgiframe:true,modal:true,resizable:false,width:400,height:220,position:['center', 'center'],draggable:true})}; target.dialog('open');});})();
	$(dev.get(0)).trigger('click');
}

function validate_cidade () {
	return ((this.elm.css('display') != 'none') ? (parseInt($('#' + this.elm.attr('id') + '-val').val(), 10) > 0) : true);
}

function validate_devolucao () {
	var rval  = $('#data_retirada').val();
	var dval  = $('#data_devolucao').val();
	var rdate = new Date(rval.replace(/(.{2})\/(.{2})\/(.*)/, '$2/$1/$3'));
	var ddate = new Date(dval.replace(/(.{2})\/(.{2})\/(.*)/, '$2/$1/$3'));
	return (ddate > rdate);
}


function aba_mouseover (event) {
	var $this = $(this);
	var $h3_atual = $this.parent();
	var $li_atual = $h3_atual.parent();
	if (!$li_atual.hasClass('active')) {
		$h3_atual.stop().animate({top: -20});
		$this.stop().animate({paddingTop: 10, height: 29});
	}
}

function aba_mouseout (event) {
	var $this = $(this);
	var $h3_atual = $this.parent();
	var $li_atual = $h3_atual.parent();
	if (!$li_atual.hasClass('active')) {
		$h3_atual.stop().animate({top: -8});
		$this.stop().animate({paddingTop: 4, height: 23});
	}
}

function aba_click (event) {
	var i;
	var $li_busca = $('#busca .busca-item');
	var $item_atual;
	var $link_atual;
	for (i = 0; i < $li_busca.length; i++) {
		$item_atual = $($li_busca.get(i));
		$item_atual.removeClass('active');
		$link_atual = $item_atual.children('h3').children(); 
		if ($link_atual.get(0) == this) {
			$item_atual.addClass('active');
		} else {
			$link_atual.mouseout();
		}
	}
	return false;
}

function pagamento_click (event) {
	if ($(this).val() == 'faturamento') {
		$('#carro-forma-cc').removeClass('active');
		$('#carro-forma-f').addClass('active');
		$.modaldialog.warning('<p style="text-align:justify; font-size:12px; margin:5px;">A forma de pagamento "Faturamento" é restrita às empresas clientes da Layum Travel.</p><p style="text-align:justify; font-size:12px; margin:5px;">Caso sua empresa não possua cadastro junto à Layum, preencha o formulário de cadastro.</p><p style="text-align:justify; font-size:12px; margin:5px;">Seu cadastro será encaminhado ao nosso departamento administrativo para análise.</p>', {width: 300});
	} else {
		$('#carro-forma-f').removeClass('active');
		$('#carro-forma-cc').addClass('active');
	}
}



function setMinDataRe(date){
	if($('#dataDevolucao').val() == 'Data de Devolução') {
		$('#dataDevolucao').val('');
	}
	$('#dataDevolucao').datepicker('option', 'minDate', $('#dataRetirada').datepicker('getDate'));
	document.getElementById('dataDevolucao').value="Data de Devolução";
}

function setMinDataDe(date){
	$('#dataRetirada').datepicker('option', 'maxDate', $('#dataDevolucao').datepicker('getDate'));
}

function showHideCidadeDevolucao () {
	$this = $(this);
	if ($this.val() == 1) {
		$this.parent().hide().next().show();
		$.modaldialog.warning('<p style="text-align:center; font-weight:bold; font-size:14px; margin: 5px;">Importante!</p><p style="text-align:justify; font-size:12px"> 	Ao devolver o carro em cidade diferente da que retirou, desde que a locadora escolhida também tenha loja, será cobrada taxa de retorno, que pode variar entre R$ 0,80 e R$ 1,00 em média por kilômetro.  	</p>     <p style="text-align:justify; margin-top:10px; font-size:12px;"> Salientamos que esse valor não aparece em cotações, nas solicitações de reservas, mas sim nas confirmações que serão enviadas posteriormente.</p>');	
	} else {
		$('#cidade_devolucao').hide().prev().show();
	}
}

function validationAction (elm, errmsgs) {
	var i;
	elm = $(elm);
	if (errmsgs.length) {
		var div = elm.parent().children('.error');
		if (div.length <= 0) {
			div = $('<div class="error"></div>').appendTo(elm.parent()).css('left', elm.position().left + elm.width());
		}
		div = $(div.html('<div></div>').children().get(0));
		for (i = 0; i < errmsgs.length; i++) {
			div.append('<p>' + errmsgs[i] + '</p>');
		}
	} else {
		elm.parent().children('.error').remove();
	}
}

function validate_radio () {
	var boolValid = false;
	$('input[name=pagamento]').each(function() {
		if ( $(this).is(':checked') ) {
			boolValid = true;
		}
	});
	return boolValid;
}

function preLoader(){
	$("#loader_mask").css("display","block");
	$("#loader").css("display","block");
}
