function update_facebox(data){
  if($('#facebox').is(':visible')){
	  $('#facebox .content').html(data);
  }
  else{
	$.facebox(data);
  }
}

var loadFormValidation=function(){
	$("form").submit(function(){
		var this_form=$(this);
		var submit_errors=$('<div></div>');
		var ct=0;
		var tested=[];
		var reg = [];
		reg['valid_email']=/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
		reg['valid_postal_code']=/^[0-9]{4}-[0-9]{3}$/;
		reg['valid_phone']=/^(\+|0)?[0-9]{9,14}$/;
		reg['valid_date']=/^[0-9]{4}-[0-9]{2}-[0-9]{2}$/;
		
		reg['valid_document']=/^.*(\.pdf|\.doc|\.xdoc)$/;
		reg['valid_image']=/^.*(\.jpg)$/;


		$(this).find('.required').each(function(){
			var bloco=$(this).closest('.field_block');
            var lbl='';
            if(($(this).attr('type')=='radio')){
                var name_input=$(this).attr('name');
                var checked=false;
                $(this).closest('form').find('input[name='+name_input+']').each(function(){
                    if(!checked && $(this).is(':checked')){
                        checked=true;
                    }
                });
                if(!checked){
                    lbl=$(this).closest('form').find('.'+name_input);
                }                
            }
            if(lbl!='' || ($(this).attr('type')=='checkbox' && !$(this).is(':checked')) || $(this).val()==''){
				bloco.addClass('error');
                if(lbl==''){
                    lbl=($(this).siblings('label').length > 0)?$(this).siblings('label'):$(this).parent().siblings('label');
                }
				if(!tested[lbl.text().replace("*","")]){
					submit_errors.append('<p><b>- '+lbl.text().replace("*","")+'</b><span>'+warning_msg['required']+'</span></p>');
					tested[lbl.text().replace("*","")]=true;
				}
				ct++;			
            }else{
				bloco.removeClass('error');
			}
		});

		$(this).find('.sintaxe').each(function(){
			var bloco=$(this).closest('.field_block');
			if(!$(this).hasClass('required') && $(this).val()==''){
				bloco.removeClass('error');
			}else{
				var found_match=false;
				for(var k in reg){
					if(found_match){
						break;
					}
					if($(this).hasClass(k)){
						found_match=true;
						if(!reg[k].test($(this).val())){
							bloco.addClass('error');
							var lbl=($(this).siblings('label').length > 0)?$(this).siblings('label'):$(this).parent().siblings('label');
							if(!tested[lbl.text().replace("*","")]){
								submit_errors.append('<p><b>- '+lbl.text().replace("*","")+'</b><span>'+warning_msg[k]+'</span></p>');
								tested[lbl.text().replace("*","")]=true;
							}
							ct++;
						}
						else{
							bloco.removeClass('error');
						}
					}
				}
			}
		});

		if(ct>0){
			submit_errors.html('<div id="form_error"><h1>'+warning_msg['title']+'</h1><p>'+warning_msg['top_msg']+'</p><div class="form_error_div">'+submit_errors.html()+'</div><p>'+warning_msg['bottom_msg']+'</p></div>');
			$.fancybox(submit_errors.html());
			return false;
		}
	});
}

function loadForm(){
	$(".popup_form,.ajax_form").submit(function(){
		 var result=$(this).serialize();
		 var action=$(this).attr('action');
		 var method=$(this).attr('method');
		 var target="";
		 if($(this).hasClass('ajax_form')){
			target=$(this).parent();
		 }
		 $.ajax({
				   type:method,
				   url:action,
				   data:result,
				   beforeSend:function(){
						if(target!=''){
							target.html('<div class="loading_ajax"><img src="/img/ajax-loader.gif" alt="Loading..."/></div>');
						}else{
							update_facebox('<div class="loading_ajax"><img src="/img/ajax-loader.gif" alt="Loading..."/></div>');
						}
				   },
				   success:function(res){
					  if(res!=''){
						if(target!=''){
							target.html(res);
						}else{
							update_facebox(res);
						}
						loadForm();
					  }
				   }
		   });
		   return false;
	});

	$(".birth_date").datepicker({
		  showOn:           'both',
		  buttonImage:      '/temas/boticario/imgs/calendar_icon.gif',
		  buttonImageOnly:  true,
		  dateFormat:       'yy-mm-dd',
		  changeYear: 		true,
		  changeMonth: 		true,
		  maxDate: 			'-13y',
		  yearRange: 		'c-90:c+00'
	});

	$(".datepicker").datepicker(
	{
		  showOn:           'both',		  
		  buttonImage:      '/temas/boticario/imgs/calendar_icon.gif',
		  buttonImageOnly:  true,
		  dateFormat:       'yy-mm',
		  changeYear: 		true,
		  changeMonth: 		true,
			  maxDate:		'0y'		  
	});

	$(".monthpicker").focus(function(){
		$(".ui-datepicker-calendar").hide();
		$(".ui-datepicker-current").hide();
	}).datepicker({
		  showOn:           'both',
		  buttonImage:      '/temas/boticario/imgs/calendar_icon.gif',
		  buttonImageOnly:  true,
		  dateFormat:       'yy-mm',
		  changeYear: 		true,
		  changeMonth: 		true,
			  maxDate:		'0y',
		  showButtonPanel: true,
			onClose: function(dateText, inst) {
				var month = $("#ui-datepicker-div .ui-datepicker-month :selected").val();
				var year = $("#ui-datepicker-div .ui-datepicker-year :selected").val();
				$(this).datepicker('setDate', new Date(year, month, 1));
			},
			beforeShow : function(input, inst) {
				if ((datestr = $(this).val()).length > 0) {
					actDate = datestr.split('-');
					year = actDate[0];
					month = actDate[1]-1;
					$(this).datepicker('option', 'defaultDate', new Date(year, month));
					$(this).datepicker('setDate', new Date(year, month));
				}
			}
	});
	
	loadFormValidation();
}

$(function(){
	$(".form").submit(function(){
		var ficheiro=$(this).attr("action");
		var metodo=$(this).attr("method");
		var dados=$(this).serialize();

		$.ajax({
			type: metodo,
			url: ficheiro,
			data: dados,
			success: function(msg){
				$.facebox(msg);
			}
		});
		$.ajax({
			type: "get",
			url: "/recalculo_cab.php",
			success: function(msg){
				$(".divCarrinho").html(msg);
			}
		});

		return false;
	});

	var input=[];
	$('.toggle_input').each(function(){
		input[$(this).attr('id')]=$(this).val();
	});

	$('.toggle_input').focus(function(){
		if($(this).attr('readonly')==false && $(this).val()==input[$(this).attr('id')]){
			$(this).val('');
		}
	});

	$('.toggle_input').blur(function(){
		if($(this).attr('readonly')==false && $(this).val()==''){
			$(this).val(input[$(this).attr('id')]);
		}
	});

	$('.auto_disable').submit(function(){
		$(this).find('input[type=text]').each(function(){
			if($(this).val()==input[$(this).attr('id')]){
				$(this).attr('disabled',true);
			}
		});
	});

	$('a[rel=facebox]').live('click',function(){
		  update_facebox('<div class="loading_ajax"><img src="/img/ajax-loader.gif" alt="Loading..."/></div>');
		  $.get($(this).attr('href'), function(data) {
			  if(data!=''){
				update_facebox(data);
				loadForm();
			  }
		  });
		  return false;
	});

	$('a.ajax_link').live('click',function(){
		var target=$(this).attr('rel');
        var obj=$(this);

		$('#'+target).html('<div class="loading_ajax"><img src="/img/ajax-loader.gif" alt="Loading..."/></div>');
		$.get($(this).attr('href'), function(data) {
			$('#'+target).html(data);
			$('#'+target).slideDown('fast');
			loadForm();
		});
        return false;
    });
	loadForm();

    $('.carousel').jcarousel({
        buttonPrevHTML: '<div class="seta-left-scroller"><img src="/temas/boticario/imgs/galeria_left.jpg" alt="Esquerda" /></div>',
        buttonNextHTML: '<div class="seta-right-scroller"><img src="/temas/boticario/imgs/galeria_right.jpg" alt="Direita" /></div>',
        scroll:         1
    });

	$('.cycle').cycle(
	{
		fx:                 'fade',
		timeout:            5000
	});

	$(".listMenuOrdem").change(function(){
		$(this).parent('form').submit();
	});

	$("a.fancyimg").fancybox({
		'titleShow':false
	});

	$('#btfav').click(function()
	{
		if (window.sidebar)
		{
			window.sidebar.addPanel(document.title, location.href , "");
		}
		else if(window.external)
		{
			window.external.AddFavorite(location.href, document.title);
		}
		return false;
	});

	var updateCart=function(){
		var id_entrega=$("#selectNameentrega option:selected").val();
		var id_transporte=$("#selectNameexpedicao option:selected").val();
		var id_pagamento=$("#selectNamepagamento option:selected").val();
		var dsc_saldo=$("#desconta_saldo").is(':checked')?1:0;

		if(isNaN(id_entrega)){id_entrega=0;}
		if(isNaN(id_transporte)){id_transporte=0;}
		if(isNaN(id_pagamento)){id_pagamento=0;}

		$.get('/loja/ajax/update_cart.php?id_entrega='+id_entrega+'&id_transporte='+id_transporte+'&id_pagamento='+id_pagamento+'&dsc_saldo='+dsc_saldo, function(data) {
			if(data!=''){
				$("#shopping_list").html(data);
                var preco_total=parseFloat($("#dtotal .val_preco").html().replace(",", "."));
                if(preco_total<=0){
                    $("#dpagamento").hide();
                }else{
                    $("#dpagamento").show();
                }
			}
		});
	}
	/*************** LOJA (START) ***************/
	$("#selectNameexpedicao").change(function(){
		var id=$(this).val();
		if(id > 0){
			var fct='pagamento';
			$.get('/loja/ajax/opcoes_entrega.php?fct='+fct+'&id_entrega='+$("#selectNameentrega option:selected").val()+'&id_transporte='+id, function(data) {
				if(data!=''){
					$("#selectNamepagamento").html(data);
					$("#dpagamento").removeClass('hide');
					updateCart();
				}
			});
		}
		return false;
	});

	$("#selectNameentrega").change(function(){
		var id=$(this).val();		
		if(id > 0){
			var fct='transporte';
			$.get('/loja/ajax/opcoes_entrega.php?fct='+fct+'&id_entrega='+id, function(data) {
				if(data!=''){
					$("#selectNameexpedicao").html(data);
					$("#dexpedicao").removeClass('hide');
					$("#selectNameexpedicao").trigger('change');
				}else{
					$("#selectNameexpedicao").html('');
					$("#selectNamepagamento").html('');
					$("#dexpedicao,#dpagamento").addClass('hide');
					updateCart();
				}
			});
		}
		return false;
	});
	
	$("#desconta_saldo").click(function(){
		updateCart();
	});

	$("#validateCode_form").submit(function(){
		 var result=$(this).serialize();
		 var action=$(this).attr('action');
		 var method=$(this).attr('method');
		 var this_form=$(this);
		 $.ajax({
				   type:method,
				   url:action,
				   data:result,
				   beforeSend:function(){},
				   success:function(res){
					  if(res!=''){
						if(this_form.find('#promo_code_result').length==0){
							this_form.append($('<p></p>').attr('id','promo_code_result').html(res));
						}else{
							this_form.find('#promo_code_result').html(res);
						}
						updateCart();
						loadForm();
					  }
				   }
		   });
		   return false;
	});

	$("#selectNameentrega").trigger('change');
	/*************** LOJA (END) ***************/


	/******** BOLSA EMPREGO (START) ********************/
	$("#bolsa_addnewline").live('click',function(){
		var clean_line=$("#historico_experiencia tbody tr:first").clone();
		clean_line.find('input').val('');
		clean_line.find('input').removeAttr('id');
		clean_line.find('input').removeClass('hasDatepicker');
		clean_line.find('img[class=ui-datepicker-trigger]').remove();
		$("#historico_experiencia tbody").append(clean_line);
		clean_line.find('.bolsa_removeline').fadeIn();
		loadForm();
	});
	
	$(".bolsa_removeline").live('click',function(){
		$(this).closest('tr').remove();
	});

	$("#toportunidades").change(function(){
		var id=$(this).val();
		if(id > 0){			
			$.get('/bolsaempregos/ajax/getLojasFromOportunidade.php?id='+id, function(data) {
				if(data!=''){
					$("#tlojas").html(data);
					$("#bloco_lojas").fadeIn();
					$("#tlojas").removeAttr('disabled');
				}else{
					$("#bloco_lojas").fadeOut(function(){
						$("#tlojas").html(data);
					});
					$("#tlojas").attr('disabled',true);
				}
			});
		}
		return false;
	});
	/******** BOLSA EMPREGO (END) ********************/
});
