/*
 * Declaramos funciones
 */

/**
 * Uses the hidden form in the layout to post the city id to the index controller
 */
function setCityCookie(city){
	$("#city").val(city);	
	$("#setcookie").submit();
}

/*elegir ciudad*/
function selectCity(id){
	if ($(id).length){
		$(id).sSelect().change(function(){
			var option_val = $(id).getSetSSValue();
			$(id+" option:selected").removeAttr("selected");
			$(id+" option[value="+option_val+"]").attr("selected","selected");
		});
	}
}

/*eliminar texto de sugerencia*/
function suggestText(id){
	if ($(id).length){
		var originalText = $(id).attr("value");
		$(id).click(
			function(){			
				if ($(this).attr("value")==originalText){
					$(this).attr("value","");
				} 
			}
		);
	}
}

/*contador de cuanto falta para el cierre de la oferta*/
function startCount(){
	if ($('.defaultCountdown').length){
		$('.defaultCountdown').countdown({until: fechaFin, format: 'DHMS'});
	}
}

/*basic modal box*/
function openModalBox(idLaunch, idModal){
	if ($(idLaunch).length){
		$(idLaunch).click(
			function(){
				$(idModal).show();
				return false;
			}
		);		
		$(idModal+' .cerrar').click(
			function(){
				$(idModal).hide();
				return false;
			}
		);
	}

}

/* static modal box close */
function closeModalBox(){
	if ($('.modalbox .cerrar').length){
		$('.modalbox .cerrar').click(
			function(){
				$('.modalbox').hide();
				return false;
			}
		);
	}
}


/*galeria de fotos de oferta*/
function galeriaFoto(id){
	if ($(id).length){
		$('.thumbnails a').click(
			function(){	
				var destino=$(this).attr('href');
				$('.main-photo').fadeOut('slow',
					function (){
						$('.main-photo').attr('src', destino);
						$('.main-photo').fadeIn('slow');
					}	
				);
				return false;
			}
		);
	}
}

/* mostrar formulario de editar datos*/

function editarDatos(){
	if ($('#editdata').length){
		$('#editdata').click(function() {
			$('#tabla-datos').hide();
			$('#editmisdatos').show();
			return false;
		});
	}
}


/* redirigir a la ciudad cuando seleccionas en el desplegable */
function redirectCity(){ 
	var dropdown = document.getElementById("seleccionar-ciudad");
	var index = dropdown.selectedIndex;
	document.location.href = "/" + dropdown.options[index].text.toLowerCase();
}

/*votar antiguos y proximos descuentos*/

function thumbsUpOldNew(){
	if ($('.ficha-descuento-anterior .thumbs-up').length){
		$('.ficha-descuento-anterior .thumbs-up').click(function() {
		  $.post("/offer/repeat/", { id:this.id }, function(data) {
		
			});
		  	$('#repetir'+this.id+' .thumbs-up').hide();
		  	$('#repetir'+this.id+' .thumbs-recibido').show();
			return false;
		});
	}
}


/* cargar la caja facebook */
function loadFacebook(){
	if ($('#amitad-facebook').length){	
		FB.init("185f7b42ac42441e5afcf8fa1a868270");
	}
}

/* Cargamos el validador ketchup */
function loadKetchup(){
	if ($('.form-ketchup').length){	
		$('.form-ketchup').ketchup({
			validationAttribute: 'rel'
		});
	}
}

/* cargar el registro del usuario en el pago */
function loadRegisterPayer(){
	if ($('#paymentForm').length){	
		$('#paymentForm').submit(function() {
			if($('#userId').val() > 0) {
				return true;
			}

			else {
				$.ajax({
				    type: 'GET',
				    url: '/comprar/newuser/',
				    dataType: 'json',
				    success: function(json){
							 	if(json['errors'] === undefined) {
							 		$('#signupbox').hide();
							 		$('#userId').val(json['id']);
							 		$('#username').val(json['name']);
							 		$('#paymentForm').submit();
								}
							 	else {
							 		if (json['errors']['email']['recordFound']) {
							 			alert("Ya existe un usuario con este email");
							 		} else {
							 			alert("Vaya, ha ocurrido un error. Por favor, vuelve a intentarlo");
							 		}
							 		return false;
							 	}
							 	
							},
				    data: { name : $("#signupbox input[name='name']").val(), 
						  lname : $("#signupbox input[name='lastname']").val(), 
						  cityId : $("#signupbox input[name='city']").val(), 
						  email : $("#signupbox input[name='email']").val(),
						  password : $("#signupbox input[name='password']").val(),
						  subscribe: $("input[name='subscribe']").attr('checked'),
						  confirmar: $("input[name='confirmar']").attr('checked')
						 },
				    async: false
				});
			}
			return false;
		});
	}
}


/* gestiona el form de regalar a amigo */
function loadGiftFriend(){
	if ($('#giftForm').length){
		$('#giftForm').submit(function() {
			$('#regala-amigo').css('display','none');
			$.getJSON("/comprar/regalar", 
					{
					toName: $("input[name='toName']").val(),
					fromName: $("input[name='fromName']").val(),
					message: $("#giftMessage").val(),
					toMail: $("input[name='toMail']").val(),
					offerId: '<?= $this->offer->id ?>',
					userId: $('#userId').val()
					}, function(json) {
						$('#giftId').val(json['id']);
					});
			return false;
		});

	}
}

/* gestiona el cambio de cantidad de descuentos en compra */
function loadAmountChange(){
	if ($('.amount').length){	
		$(".amount").change(function () {

			//calculamos el valor parcial
			var subPrice= $(this).val() * $('#unitPrice').html();
			var totalSum = subPrice;
			
			if(subPrice < 10){
				$("#useCredit").attr("checked", false).change().attr("disabled", true);				
			}else{
				$("#useCredit").removeAttr("disabled").change();
			}			
			
			if($("input[name='useCredit']:checked").val()) {				

				//calculamos el valor total
				totalSum = totalSum - $('#availableCredit').html();
				if (totalSum < 0){
					totalSum = 0;
				}
				//calculamos creditos a usar
				var availableCredit = $('#availableCredit').html();
				if (eval(availableCredit) > eval(subPrice)){
					availableCredit = eval(subPrice).toFixed(2);
				} 
				var totalAvailableCredit = " - "+availableCredit+"€";				
				//sustituimos creditos a usar
				$('#totalAvailableCredit').html(totalAvailableCredit);
			}
			$('#subPrice').html(subPrice.toFixed(2));
			$('#totalSum').html(totalSum.toFixed(2));
			return false;
		});
	}
}



/* gestiona el uso de credito en la compra */
function loadUseCredit(){
	if ($('input[name=useCredit]').length){	
		$("input[name=useCredit]").change(function(){
			if($("input[name='useCredit']:checked").val()) {

					//calculamos el valor parcial
					var subPrice = $('#subPrice').html();
					//calculamos creditos a usar
					var availableCredit = $('#availableCredit').html();
					if (eval(availableCredit) > eval(subPrice)){
						availableCredit = eval(subPrice).toFixed(2);
					} 
					var totalAvailableCredit = " - "+availableCredit+"€";
					
					//sustituimos creditos a usar
					$('#totalAvailableCredit').html(totalAvailableCredit);
					
					//calculamos valor total
					var totalSum = $(".amount").val() * $('#unitPrice').html() - $('#availableCredit').html();					
					if (totalSum <0){
						totalSum = 0;
					}
					//sustituimos valor total
					$('#totalSum').html(totalSum.toFixed(2));
					
			}
			else {
				//calculamos valor total
				var totalSum = $(".amount").val() * $('#unitPrice').html();
				//sustituimos valor total
				$('#totalSum').html(totalSum.toFixed(2));				
				//limpiamos creditos a usar
				$('#totalAvailableCredit').html("");
				}		
		});
	}
}


/* permite hacer login para la compra */
function loadBuyLogin(){
	if ($('.comprar-login').length){	
		$(".comprar-login").click(
				function(){
					$("#cuenta-creada").hide();
					$("#loginbox").show(); 
					return false;
				}
		);
	}
}

/* gestiona el form de login en compra */
function loadLoginButton(){
	if ($('#loginbutton').length){
		function sendLogin() {
			$.post("/user/",  { 
				  email: $('#loggedEmail').val(), 
				  password: $('#loggedPassword').val(), 
				  amount: $(".amount").val(), 
				  offerId: '<?= $this->offer->id ?>'
				  }, 
				  function(data) {
					  if(data.errors === undefined){
						  $('#usernamebox').html('<strong class="compra-logado">Elige tu metodo de compra, <span id="username">'+data['name']+'</span></strong>');
						  $('#userId').val(data['id']);
						  $('#name').val(data['name']);
						  $('#apellidos').val(data['lastName']);
						  $('#mailform').val(data['email']);
						  $('#password').val('******');
						  $('#newuser').hide();
					  }
					  else{
						  alert("Vaya, parece que el nombre de usuario o la contraseña no son correctos");
					  }
		      	}
			    );
		 	  return false;
			}
		
		
		$("#loginbox input").keypress(
			function (e) {
		      if (e.which == 13){
		    	  sendLogin();
		    	  return false;
		      }
		});
		
		$('#loginbutton').click(
			function(){	
				sendLogin();
			}
		);
	}
}



/*
 * Lanzamos funciones
 */
 
$(document).ready(function(){
	selectCity("#city");
	selectCity("#seleccionar-ciudad");
	suggestText("#mail");
	suggestText(".ajax-subscription .email");
	suggestText("#footer-superior .ajax-subscription input[type=text]");
	openModalBox('#regalalo', '#regala-amigo');
	closeModalBox();
	galeriaFoto(".galeria-fotos");
	loadKetchup();
	loadRegisterPayer();
	loadGiftFriend();
	loadBuyLogin();
	loadLoginButton();
	loadAmountChange();
	loadUseCredit();
	startCount();
	editarDatos();
	thumbsUpOldNew();
	loadFacebook();
});


