jQuery.fn.exists = function(){return (this.length>0);}

function CreateBookmarkLink() {
	var titulo = "Rosas Sant Jordi";
	var url = "http://www.rosessantjordi.com";
	if(window.sidebar) // Mozilla Firefox
		window.sidebar.addPanel(titulo, url, "");
	else if( window.external ) // IE, Opera
		window.external.AddFavorite(url, titulo);
}

function validarEmail(valor) {
	var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
	if(reg.test(valor) == false)
		return false;
	else
		return true;
}

function newCalendario(CALENDARIO) {
	var d = new Date();
	$("#" + CALENDARIO).datepicker();
	$("#" + CALENDARIO).datepicker("option", "yearRange", "1900:" + d.getFullYear());
	$("#" + CALENDARIO).datepicker("option", "changeMonth", true);
	$("#" + CALENDARIO).datepicker("option", "changeYear", true);
	$("#" + CALENDARIO).datepicker("option", "gotoCurrent", true);
}

function checkFormContacto(f) {
	if(!f.nombre.value || !f.email.value || !f.mensaje.value) {
		alert(txt_error_campos);
		return false;
	} else if(!validarEmail(f.email.value)) {
		alert(txt_error_email);
		return false;
	} else
		return true;
}

function checkPresupuesto(f) {
	if(!f["form-caducidad"].value || !f["form-cliente"].value) {
		alert(txt_error_campos);
		return false;
	} else
		return true;
}

function checkFormAmigo(f) {
	if(!f.nombre.value || !f.emailD.value || !f.emailO.value) {
		alert(txt_error_campos);
		return false;
	} else if(!validarEmail(f.emailO.value) || !validarEmail(f.emailD.value)) {
		alert(txt_error_email);
		return false;
	} else
		return true;
}

function checkFormFicheros(f) {
	if(!f["form-solicitud"].value || !f["form-dni1"].value || !f["form-dni2"].value) {
		alert(txt_error_campos);
		return false;
	} else
		return true;
}

function checkFormRosaVirtual(f) {
	if(!f.nombre.value || !f.email.value || !f.destino.value || $("input[@name='rosavirtual']:checked").val() == undefined) {
		alert(txt_error_campos);
		return false;
	} else if(!validarEmail(f.email.value) || !validarEmail(f.destino.value)) {
		alert(txt_error_email);
		return false;
	} else if(!$('#condiciones').is(':checked')) {
		alert(txt_error_condiciones);
		return false;
	} else
		return true;
}

function checkFormPermisos(f) {
	if(!f["form-nombrecompleto"].value || !f["form-direccion"].value || !f["form-piso"].value || !f["form-cp"].value || !f["form-poblacion"].value || !f["form-provincia"].value || !f["form-fecha-nacimiento"].value || !f["form-telefono"].value || !f["form-email"].value || !f["form-dni"].value || !f["form-sol-poblacion"].value || !f["form-sol-calle"].value || !f["form-metrosq"].value || !f["form-metrosl"].value) {
		alert(txt_error_campos_todos);
		return false;
	} else if(!validarEmail(f["form-email"].value)) {
		alert(txt_error_email);
		return false;
	} else if(!valida_nif_cif_nie($("#form-dni").val())) {
		alert(txt_error_dni);
		return false;
	} else if(!$('#condiciones').is(':checked')) {
		alert(txt_error_condiciones);
		return false;
	} else
		return true;
}

function checkFormUser(f) {
	$.post(pathraiz + 'ajax/usuarios.html?path=' + pathraiz + '&idioma=' + idioma, { formulario: $(f).serialize() }, function(data) {
		if(data == "redir")
			window.location.href = window.location.href;
		else if(data == "txt_registro_ok") {
			$("#" + f.id + "-error").html(txt_registro_ok + "<br />" + txt_nota_spam);
			$("#" + f.id + "-error").show();
		} else {
			$("#" + f.id + "-error").html(eval(data));
			$("#" + f.id + "-error").show();
		}
	});
	return false;
}

function validarDescuento(CODIGO) {
	$.post(pathraiz + 'ajax/descuentos.html?path=' + pathraiz + '&idioma=' + idioma, { codigo: CODIGO }, function(data) {
		if(data == "error") {
			alert(txt_error_descuento);
			window.location.href = window.location.href;
		} else {
			var resultado = data.split("@");
		/*
			$('#descuento').val(resultado[0]);
			$('#IDdescuento').val(resultado[1]);
		*/
			alert(txt_descuento_ok + " " + resultado[0] + "%");
			window.location.href = window.location.href;
		}
	});
	return false;
}

function enviarPrecios() {
	$.post(pathraiz + 'ajax/enviar-precios.html?path=' + pathraiz + '&idioma=' + idioma, function(data) {
		if(data == "OK")
			alert(txt_enviar_precios_ok);
		else
			alert(txt_error_generico);
	});
	return false;
}

function logOut() {
	$.get(pathraiz + 'ajax/logout.html', function(data) {
		window.location.href = window.location.href;
	});
}

function cambiaProvincia(PROVINCIA) {
	if(PROVINCIA) {
		$("#transporte-result-select").html(txt_espera);
		$("#transporte-result-precio").html("");
		$.post(pathraiz + 'ajax/transporte.html?path=' + pathraiz + '&idioma=' + idioma + "&tipo=1", { identificador: PROVINCIA }, function(data) {
			$("#transporte-result-select").html(data);
		});
	} else {
		$("#transporte-result-select").html("");
		$("#transporte-result-precio").html("");
	}
}

function cambiaLocalidad(LOCALIDAD) {
	if($("#transporte-result-precio").exists()) {
		if(LOCALIDAD) {
			$("#transporte-result-precio").html(txt_espera);
			$.post(pathraiz + 'ajax/transporte.html?path=' + pathraiz + '&idioma=' + idioma + "&tipo=2", { identificador: LOCALIDAD }, function(data) {
				$("#transporte-result-precio").html(data);
			});
		} else
			$("#transporte-result-precio").html("");
	}
}

function cambiaPoblacion(LOCALIDAD) {
	if($("#detalle-poblacion").exists()) {
		if(LOCALIDAD) {
			$("#detalle-poblacion").html(txt_espera);
			$.post(pathraiz + 'ajax/permisos-poblacion.html?path=' + pathraiz + '&idioma=' + idioma, { identificador: LOCALIDAD }, function(data) {
				$("#detalle-poblacion").html(data);
			});
		} else
			$("#detalle-poblacion").html("&nbsp;");
	}
}

function anyadirCarrito(IDE) {
	var cantidad = parseInt($("#unidades").val());
	if(cantidad < 1) {
		alert(txt_error_cantidad_nula);
		return false;
	}
	var articulo = $("#articulo").val();
	var precio1 = $("#precio1").val();
	var precio2 = $("#precio2").val();
	var precio3 = $("#precio3").val();
	var iva = $("#iva").val();
	var montaje = $("#montaje").val();
	var bolsas = false;
	var espigas = false;

	if(isNaN(cantidad))
		cantidad = $("#minimo").val();
	$("#unidades").val(cantidad);
	if(cantidad < $("#minimo").val()) {
		alert(txt_error_cantidad + " " + $("#minimo").val());
		return false;
	} else if((cantidad % $("#multiplo").val()) > 0) {
		alert(txt_error_multiplo + " " + $("#multiplo").val());
		return false;
	}

	if($('#montada2').is(':checked')) {
		IDE += "s";
		articulo += " (" + txt_sin_montar + ")";
		if($('#bolsas').is(':checked'))
			bolsas = 1;
		if($('#espigas').is(':checked'))
			espigas = 1;
	}

	$.post(pathraiz + 'ajax/carrito.html', { IDE: IDE, articulo: articulo, cantidad: cantidad, precio1: precio1, precio2: precio2, precio3: precio3, iva: iva, montaje: montaje, bolsas: bolsas, espigas: espigas }, function(data) {
		if(data == "OK") {
			window.location.href = ruta_carrito;
		} else if(data == "error_stock") {
			alert(txt_error_stock);
		} else
			alert(txt_error_generico);
	});
}

function eliminarItem(IDE) {
	$.post(pathraiz + 'ajax/carrito-eliminar.html', { IDE: IDE }, function(data) {
		if(data == "OK") {
			window.location.href = ruta_carrito;
		} else
			alert(txt_error_generico);
	});
}

function vaciarCesta() {
	$.get(pathraiz + 'ajax/vaciar-cesta.html', function(data) {
		window.location.href = window.location.href;
	});
}

function setPantallaUser(PANTALLA) {
	if(PANTALLA == "login") {
		$("#user-login").toggle();
		$("#user-registro").hide();
		$("#user-pwd").hide();
	} else if(PANTALLA == "registro") {
		$("#user-login").hide();
		$("#user-registro").toggle();
		$("#user-pwd").hide();
	} else if(PANTALLA == "pwd") {
		$("#user-login").hide();
		$("#user-registro").hide();
		$("#user-pwd").toggle();
	} else if(PANTALLA == "modif") {
		$("#user-modif").toggle();
	}
}

function showDetalleRosa() {
	if($('#montada2').is(':checked')) {
		$("#detalle-sin-montar").show();
		if($("#montaje").val() > 0) {
			$("#txt-precio3").html(($("#precio3").val() - $("#montaje").val()).toFixed(2));
			$("#txt-precio2").html(($("#precio2").val() - $("#montaje").val()).toFixed(2));
			$("#txt-precio1").html(($("#precio1").val() - $("#montaje").val()).toFixed(2));
		}
	} else {
		$("#detalle-sin-montar").hide();
		if($("#montaje").val() > 0) {
			$("#txt-precio3").html($("#precio3").val());
			$("#txt-precio2").html($("#precio2").val());
			$("#txt-precio1").html($("#precio1").val());
		}
	}
}

function setDirEnvio() {
	if($('#donde1').is(':checked')) {
		$("#dire-envio2").hide();
		$("#dire-envio1").show();
	} else {
		$("#dire-envio1").hide();
		$("#dire-envio2").show();
	}
}

function checkPedido() {
	if(!$("#form-nombrecompleto").val() || !$("#form-nif").val() || !$("#form-movil").val() || !$("#form-direccionfacturacion").val() || !$("#form-cp").val() || !$("#form-poblacion").val() || !$("#form-provincia").val()) {
		alert(txt_error_campos);
		return false;
	}
	if(!valida_nif_cif_nie($("#form-nif").val())) {
		alert(txt_error_dni);
		return false;
	}
	if($('#donde1').is(':checked')) {
		if(!$("#form-direccioncompleta").val() || !$("#form-cp2").val() || !$("#form-provincia2").val() || !$("#localidad").val()) {
			alert(txt_error_campos)
			return false;
		}
	}
	return true;
}

// Función para upload de ficheros
function cargaFicheros(campo, extensiones, tamanyo, boton) {
	var extMostrar = '';
	if(extensiones != "") {
		var extPermitidas = extensiones.split(",");
		for(var i=0; i<extPermitidas.length; i++)
			extMostrar += "*." + extPermitidas[i] + ";";
	}

	$("#upload-" + campo).uploadify({
		"uploader": pathraiz + "flash/uploadify.swf",
		"script": pathraiz + "ajax/upload.php",
		"buttonText": txt_subir,
		"buttonImg": pathraiz + "images/" + idioma + "/" + boton + ".jpg",
		"cancelImg": pathraiz + "images/eliminar.gif",
		"width": 100,
		"height": 22,
		"expressInstall" : pathraiz + "flash/expressInstall.swf",
		"fileDataName": campo,
		"fileExt": extMostrar,
		"fileDesc": extensiones,
		"scriptData": {'campo':campo, 'tamanyo':tamanyo},
		"auto": true,
		"multi": false,
		"sizeLimit": tamanyo * 1024,
		"onComplete": function(event, queueID, fileObj, response, data) {
			if(response.indexOf("error_") != 0) {
				$("#upload-" + campo).uploadifySettings("buttonImg", pathraiz + "images/" + idioma + "/reemplazar.jpg");
				$("#upload-name-" + campo).val(response);
				$("#" + campo).val(fileObj.name);
			}
		}
	});
}

function slideJump(CAPA) {
	if($("#" + CAPA).exists() && $("#" + capaSlideActiva).exists()) {
		clearInterval(slideTimer);
		$("#" + capaSlideActiva).animate({ opacity: 0 }, 250, function() {
			$("#" + capaSlideActiva).hide();
			$("#" + CAPA).show();
			$("#" + CAPA).animate({ opacity: 1 }, 250, function() {
				capaSlideActiva = CAPA;
				slideStart();
			});
		});
	}
}

function slideStart() {
	slideSiguiente = "";
	for(var i=0; i<slideTotales; i++) {
		if("slidecapa-" + i == capaSlideActiva) {
			if((i + 1) < slideTotales)
				slideSiguiente = "slidecapa-" + (i + 1);
			else
				slideSiguiente = "slidecapa-0";
		}
	}
	slideTimer = setTimeout("slideJump('"+slideSiguiente+"')", slideIntervalo);
}

function toggleBackOffice() {
	if($("#backofficeAccesos").exists()) {
		if($("#backofficeAccesos").is(":visible"))
			$("#backofficeAccesos").hide();
		else
			$("#backofficeAccesos").show();
	}
}


function str_replace(search, replace, subject) {
	var f = search, r = replace, s = subject;
	var ra = r instanceof Array, sa = s instanceof Array, f = [].concat(f), r = [].concat(r), i = (s = [].concat(s)).length;
 	while (j = 0, i--) {
		if(s[i]) {
			while (s[i] = s[i].split(f[j]).join(ra ? r[j] || "" : r[0]), ++j in f){};
		}
	};
 	return sa ? s : s[0];
}

function valida_nif_cif_nie(a) {
	//Retorna: 1 = NIF ok, 2 = CIF ok, 3 = NIE ok, -1 = NIF error, -2 = CIF error, -3 = NIE error, 0 = ??? error
	a = a.toUpperCase();
	var temp = a;
	var cadenadni = "TRWAGMYFPDXBNJZSQVHLCKE";
 	if(temp!==''){
		//si no tiene un formato valido devuelve error
		if((!/^[A-Z]{1}[0-9]{7}[A-Z0-9]{1}$/.test(temp) && !/^[T]{1}[A-Z0-9]{8}$/.test(temp)) && !/^[0-9]{8}[A-Z]{1}$/.test(temp))
			return false;
 		//comprobacion de NIFs estandar
		if (/^[0-9]{8}[A-Z]{1}$/.test(temp)) {
			posicion = a.substring(8,0) % 23;
			letra = cadenadni.charAt(posicion);
			var letradni=temp.charAt(8);
			if (letra == letradni)
			   	return true;
			else
				return false;
		} 
		//algoritmo para comprobacion de codigos tipo CIF
		suma = parseInt(a[2])+parseInt(a[4])+parseInt(a[6]);
		for(i = 1; i < 8; i += 2) {
			temp1 = 2 * parseInt(a[i]);
			temp1 += '';
			temp1 = temp1.substring(0,1);
			temp2 = 2 * parseInt(a[i]);
			temp2 += '';
			temp2 = temp2.substring(1,2);
			if (temp2 == '')
				temp2 = '0';
			suma += (parseInt(temp1) + parseInt(temp2));
		}
		suma += '';
		n = 10 - parseInt(suma.substring(suma.length-1, suma.length));
 		//comprobacion de NIFs especiales (se calculan como CIFs)
		if(/^[KLM]{1}/.test(temp)) 		{
			if(a[8] == String.fromCharCode(64 + n))
				return true;
			else
				return false;
		}
 		//comprobacion de CIFs
		if(/^[ABCDEFGHJNPQRSUVW]{1}/.test(temp)) {
			temp = n + '';
			if (a[8] == String.fromCharCode(64 + n) || a[8] == parseInt(temp.substring(temp.length-1, temp.length)))
				return true;
			else
				return false;
		}
 		//comprobacion de NIEs
		//T
		if(/^[T]{1}/.test(temp)) {
			if (a[8] == /^[T]{1}[A-Z0-9]{8}$/.test(temp))
				return true;
			else
				return false;
		}
 		//XYZ
		if(/^[XYZ]{1}/.test(temp)) {
			pos = str_replace(['X', 'Y', 'Z'], ['0','1','2'], temp).substring(0, 8) % 23;
			if(a[8] == cadenadni.substring(pos, pos + 1))
				return true;
			else
				return false;
		}
	} 
	return false;
}


