/* JS Document */

/*
 * jQuery deffectForm v0.1
 * http://deffectstudios.com/
 * Copyright 2010, deffect Studios
 */

function deffectForms() {
	
	//Valores por defecto y eventos
	$(':text, textarea')
		.bind('mouseover mouseout', function(){
			$(this).toggleClass('hover');
		})
		.focus(function(){
			$(this).removeClass('fill');
			$(this).addClass('focus');
			var name = $(this).attr('id');
			if($(this).val() == $('#'+name+'Default').val()){
				$(this).val('');
			}
		})
		.blur(function(){
			if($(this).val() != ''){
				$(this).addClass('fill');
			}else{
				$(this).removeClass('focus');
				var name = $(this).attr('id');
				$(this).val($('#'+name+'Default').val());
				$(this).siblings('.input_cancel').hide();
				if ($(this).siblings().has('.msg')) {
					$(this).siblings('.msg').css('top','-4px');
				}
			}
		})
		.keydown(function(){
			var name = $(this).attr('id');
			if($(this).val().length){
				$(this).siblings('.input_cancel').show();
				if ($(this).siblings().has('.msg')) {
					$(this).siblings('.msg').css('top','-23px');
				}
			}else{
				$(this).siblings('.input_cancel').hide();
				if ($(this).siblings().has('.msg')) {
					$(this).siblings('.msg').css('top','-4px');
				}
			}
		});
	
	// Botón que limpia el campo
	$('.input_cancel').click(function(){
		$(this).siblings(':text, textarea').val('');
		$(this).siblings(':text, textarea').focus();
		$(this).hide();
		if ($(this).siblings().has('.msg')) {
			$(this).siblings('.msg').css('top','-4px');
		}
	});
	
	// Checkbox
	$(':checkbox').each(function(index) {
		if ($(this).attr('checked')){
			$(this).siblings('label').children('span').addClass('checked');
		}
	});

	$(':checkbox')
		.blur(function(){//Incompatible con Webkit
			$(this).siblings('label').children('span').removeClass('focus');
		})
		.mouseup(function(){
			$(this).siblings('label').children('span').addClass('focus');
			$(this).siblings('label').children('span').removeClass('active');
		})
		.click(function(){
			$(this).siblings('label').children('span').toggleClass('checked');
			$(this).siblings('label').children('span').addClass('focus');
			$(this).siblings('label').children('span').removeClass('active');
		});
	
	
	$(':checkbox').siblings('label')
		.mousedown(function(){
			$(this).children('span').addClass('active');
			$(this).children('span').removeClass('focus');
		});
	
		
	function mensaje(opt,id) {
		var position = $(id).parent().position();
		position.top += 4;
		//position.left -= 585;
		callerTopPosition = $(id).parent().offset().top;
		callerLeftPosition = $(id).parent().offset().left;
		$('#contacto').append('<div class="msg" style="position:absolute;left:'+callerLeftPosition+'px;top:'+callerTopPosition+'px;"><span class="msg-start"></span><span class="msg-middle">'+opt+'</span><span class="msg-end"></span></div>');
		
	}
	
	function mensaje2(opt,id) {
		$(id).parent().append('<div class="msg"><span class="msg-start"></span><span class="msg-middle">'+opt+'</span><span class="msg-end"></span></div>');
		(msg = $(id).siblings('.msg'))
			.animate({
				'right': "+=20px"
			}, 400);
		
		if ($(id).siblings('.input_cancel').css('display') == 'block'){
			$(id).siblings('.msg').css('top','-23px');
		}
	}
	
	//Validación
	$('button').click(function(){
		var hasError = false;
		var msg = '<span style="letter-space:0; color:#F00; background:#FFF; font-size: 12px; text-decoration: underline;">*</span>';
		var msg2 = '<span style="letter-space:0; color:#F00; background:#FFF; font-size: 12px; text-decoration: underline;">**</span>';
		var msg01 = '<div class="msg"><span class="msg-start"></span><span class="msg-middle">'
		var msg02 = '</span><span class="msg-end"></span></div>'
		var required = 'Este campo es obligatorio';
		var email = 'Formato de email incorrecto';
		var numbers = 'Introduce sólo números';
		
		$('.msg').remove();
		
		var nombreVal = $('#idNombre').val();
		var nombreDefaultVal = $('#idNombreDefault').val();
		
		if((nombreVal == nombreDefaultVal) || (nombreVal.length < 3)) {
			mensaje2(required, '#idNombre');
			hasError = true;
		}else{
		
		}
		
		var tlfReg = /^\+?\d+\d+\d$/;// /(^[0-9\s\+\-])+$/;
		var tlfVal = $('#idTlf').val();
		var tlfDefaultVal = $('#idTlfDefault').val();
		if((tlfVal == tlfDefaultVal) || (tlfVal.length < 3)) {
			mensaje2(required, '#idTlf');
			hasError = true;
		}else if(!tlfReg.test(tlfVal)){
			mensaje2(numbers, '#idTlf');
			hasError = true;
		}else{
		
		}
		
		var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
		var emailVal = $('#idEmail').val();
		var emailDefaultVal = $('#idEmailDefault').val();
		if((emailVal == emailDefaultVal) || (emailVal.length < 3)) {
			mensaje2(required, '#idEmail');
			hasError = true;
		} else if(!emailReg.test(emailVal)){
			mensaje2(email, '#idEmail');
			hasError = true;
		}else{
		
		}
		if ($('#idComentario').length) { 
			var mensajeVal = $('#idComentario').val();
			var mensajeDefaultVal = $('#idComentarioDefault').val();
			if((mensajeVal == mensajeDefaultVal) || (mensajeVal != undefined && mensajeVal.length < 3)) {
				mensaje2(required, '#idComentario');
				hasError = true;
			}else{
			
			}
		}
		
		if(hasError == true){
		
		}
		
		if(hasError == false){
			var $form = $('#formContacto');
			var $load = $('#barraCarga');
			$btn = $('button');
			$form.hide();
			$load.fadeIn();
			//document.getElementById('barraCarga').style.display="block";
			$form.after('<div id="resultado"></div>');
			$btn.attr('disabled', true);
			
			$.post($form.attr('action'), $form.serialize(), function(data){
				//alert("Data Loaded: " + data);
				$form.hide()
				$load.hide()
				//document.getElementById('barraCarga').style.display="none";
				$('#resultado').html(data).append('<p class="respuesta">Gracias por contactar con nosotros<br/>Le responderemos con la mayor brevedad<br/><br/><a class="enlace" href="javascript:;" id="restart">Escribir otro mensaje</a></p>').hide().fadeIn();
				$('#restart').click(function(){
					$('#resultado').remove();
					$btn.attr('disabled', false).toggleClass('bhover');
					$form.find(':text, textarea').val('').removeClass('fill focus');
					$form.find(':text, textarea').blur();
					$form.fadeIn()
					return false;
				});
			});
		}
		return false;
	});
	
}


var TabbedContent = {
	init: function() {	
		$(".tab_item").click(function() {
		
			var background = $(this).parent().find(".moving_bg");
			
			$(background).stop().animate({
				top: $(this).position()['top']
			}, {
				duration: 300
			});
			
			TabbedContent.slideContent($(this));
			
		});
		
		/*$(".tab_item").mouseover(function() {
			
			var pos = $(this).attr('class').split(' ').pop();
			var bg = $(this).parent().parent().find(".tabs_bg span").eq(pos-1);
			
			$(bg).stop().toggleClass('activo');
			
		});*/
		
		$(".tab_item").hover(function() {
			var pos = $(this).attr('class').split(' ').pop();
			var bg = $(this).parent().parent().find(".tabs_bg span").eq(pos-1);
			$(bg).stop().toggleClass('activo');
		},function() {
			var pos = $(this).attr('class').split(' ').pop();
			var bg = $(this).parent().parent().find(".tabs_bg span").eq(pos-1);
			$(bg).stop().toggleClass('activo');
		});
	},
	
	slideContent: function(obj) {
		
		var margin = $(obj).parent().parent().find(".slide_content").width();
		margin = margin * ($(obj).prevAll().size() - 1);
		margin = margin * -1;
		
		$(obj).parent().parent().find(".tabslider").stop().animate({
			marginLeft: margin + "px"
		}, {
			duration: 300
		});
	}
}

$(document).ready(function() {
	if ( $.browser.opera ) {
		//CSS para Opera porque apesta tanto como Explorer
		$('.tabs .tab_item').css('padding-top', '17');
		$('.galeria_pie').css('display', 'none');
	}	
});


