// JavaScript Document

var timer, ancho, alto;

function init() {
	var x;
	
	ancho = (window.innerWidth) ? window.innerWidth : document.body.clientWidth;
	alto = (window.innerHeight) ? window.innerHeight : document.body.clientHeight;

	if (document.getElementById('procesador') != null && typeof document.getElementById('procesador') != 'undefined') {
		document.getElementById('procesador').onchange = recalc_precios;
		document.getElementById('memoria').onchange = recalc_precios;
		document.getElementById('disco_duro').onchange = recalc_precios;
	}
}

function recalc_precios() {
	var base = 8.95;
	var cpu = document.getElementById('procesador').selectedIndex + 1;
	var mem = document.getElementById('memoria').selectedIndex + 1;
	var hdd = document.getElementById('disco_duro').selectedIndex + 1;
	//var factor1 = 7;
	//var factor2 = 14;
	//var precio = 0;
	//var difmem = 0;
	if (mem > 2) {
		if (cpu < 2) {
			cpu = 2;
			//alert(cpu);
			document.getElementById('procesador').selectedIndex = 1;
		}
	}
	//alert(cpu);
	//alert(mem);
	//alert(hdd);
	/*if (mem > 8) {
		difmem = mem - 8;
		precio = 56 + (difmem * 14);
	}*/
	document.getElementById('precio').innerHTML = base + (cpu * 7) + (mem * 9) + (hdd * 5);
}

function trim(s) {
	return s.replace(/^\s*|\s*$/g, "");
}

function mail_valido(dircorreo) {
	var conarroba=0, conpunto=0, posarroba=0, x, car;
	dircorreo=dircorreo.toLowerCase();
	if (trim(dircorreo) == '') return false;
	if (dircorreo.indexOf('@') != dircorreo.lastIndexOf('@') || dircorreo.indexOf('@') == -1) return false;
	if (dircorreo.indexOf('.') == -1) return false;
	if (dircorreo.indexOf('..') > -1) return false;
	for (x=0;x < dircorreo.length;x++) {
		car = dircorreo.charCodeAt(x);
		if (car < 45 || car == 47 || (car > 57 && car < 64) || (car > 64 && car < 95) || (car > 95 && car < 97) || car > 122) return false;
		if (dircorreo.substr(x, 1) == '@' && (x == 0 || x > (dircorreo.length - 5))) return false;
		if (dircorreo.substr(x,1) == '@') {
			conarroba=1;
			posarroba=x;
		}
		if (dircorreo.substr(x,1) == '.' && conarroba == 1 && x < (posarroba + 2)) return false;
		if (dircorreo.substr(x,1) == '.' && x > (dircorreo.length - 3)) return false;
		if (dircorreo.substr(x,1) == '.' && conarroba == 1 && x >= (dircorreo.length - 5)) conpunto=1;
	}
	
	if (conpunto && conarroba)
		return true;
	else
		return false;
}

function url_valida(url) {
	
	// Validar una URL (sin http ni www)
	
	var conpunto=0, x, car;
	url = url.toLowerCase();
	
	if (trim(url) == '') return false;	// Si está vacía, error
	if (url.indexOf('@') > -1) return false;	// Si tiene alguna arroba, error (es un e-mail)
	if (url.indexOf('.') == -1) return false;	// Si no tiene ningún punto, error
	if (url.indexOf('.') < 3) return false;	// Si no tiene un nombre de dominio mayor de 3 letras + extension, error
	if (url.length < (url.lastIndexOf('.') + 3)) return false;	// Si no tiene una extensión minima de 2 letras, error
	if (url.lastIndexOf('.') < (url.length - 5)) return false;	// Si la extensión es mayor de 4 letras, error
	
	// Si tiene algún carácter inválido, error
	
	for (x=0;x < url.length;x++) {
		car = url.charCodeAt(x);
		if (car < 45 || (car > 57 && car < 61) || (car > 61 && car < 63) || (car >= 64 && car < 95) || (car > 95 && car < 97) || car > 122) return false; 
	}
	
	// Todo ok
	return true;
}

function tfno_valido(telefono) {
	var patron = /^([0-9]{9,})$/;
	return patron.test(telefono);
}

function validaPresupuesto() {
	var Nombre = document.forms['presup'].nombre.value;
	var Email = document.forms['presup'].email.value;
	var Telefono = document.forms['presup'].telefono.value;
	var Comentarios = document.forms['presup'].comentarios.value;
	var privacidad = document.forms['presup'].privacidad.value;
	
	if (trim(Nombre) == "")
		alert('Debe indicar su nombre.');
	else if (!mail_valido(Email))
		alert('El e-mail indicado es incorrecto.');
	else if (!tfno_valido(Telefono))
		alert('El teléfono indicado es incorrecto.');
	else if (trim(Comentarios) == "")
		alert('Debe indicar los comentarios.');
	else if (document.forms['presup'].privacidad.checked == false)
		alert('Es necesario que acepte la Política de Privacidad para poder realizar la Solicitud. Gracias.');
	else
		return true;
		
	return false;
}

function validaNuevoCliente() {
	var nombre = document.forms['formRegistro'].Nombre.value;
	var apellidos = document.forms['formRegistro'].Apellidos.value;
	var email = document.forms['formRegistro'].Email.value;
	var direccion1 = document.forms['formRegistro'].Direccion1.value;
	var ciudad = document.forms['formRegistro'].Ciudad.value;
	var provincia = document.forms['formRegistro'].Provincia.value;
	var codpostal = document.forms['formRegistro'].CodPostal.value;
	var pais = document.forms['formRegistro'].Pais.options[document.forms['formRegistro'].Pais.selectedIndex].value;
	var telefono = document.forms['formRegistro'].Telefono.value;
	var nif = document.forms['formRegistro'].Nif.value;
	var tipocliente = document.forms['formRegistro'].TipoCliente.options[document.forms['formRegistro'].TipoCliente.selectedIndex].value;
	var pass = document.forms['formRegistro'].Contrasena.value;
	var conpass = document.forms['formRegistro'].ConfirmarContrasena.value;
	var condiciones = document.forms['formRegistro'].Condiciones.checked;

	if (trim(nombre) == "" || trim(apellidos) == "")
		alert('Debe indicar su nombre y apellidos.');
	else if (!mail_valido(email))
		alert('El e-mail indicado es incorrecto.');
	else if (trim(direccion1) == "")
		alert('Debe indicar su dirección.');
	else if (trim(ciudad) == "")
		alert('Debe indicar su ciudad.');
	else if (trim(provincia) == "")
		alert('Debe indicar su provincia.');
	else if (trim(codpostal) == "")
		alert('Debe indicar su código postal.');
	else if (pais == '0')
		alert('Debe seleccionar su país.');
	else if (!tfno_valido(telefono))
		alert('El teléfono indicado es incorrecto.');
	else if (trim(nif) == "")
		alert('Debe indicar su NIF.');
	else if (tipocliente == '0')
		alert('Debe indicar tipo de cliente.');
	else if (trim(pass) == "" || trim(conpass) == "")
		alert('Debe indicar una contraseña.');
	else if (pass != conpass)
		alert('Su contraseña no coincide. Verifique.');
	else if (!condiciones)
		alert('Debe aceptar los términos del servicio y condiciones de uso.');
	else
		return true;
	
	return false;
}

function validaPedido() {
	var condiciones = document.forms['formFinPedido'].Condiciones.checked;

	if (!condiciones)
		alert('Debe aceptar los términos del servicio y condiciones de uso.');
	else
		return true;
	
	return false;
}

function validaDominio() {
	if (!url_valida(document.forms['envio'].dominio.value))
		alert('Debe indicar un nombre de dominio válido');
	else
		return true;
	
	return false;
}

function validaContacto() {
	var Nombre = document.forms['form2'].nombre.value;
	var Email = document.forms['form2'].email.value;
	var Telefono = document.forms['form2'].telefono.value;
	var Mensaje = document.forms['form2'].mensaje.value;
	var privacidad = document.forms['form2'].privacidad.value;
	
	
	if (trim(Nombre) == "")
		alert('Debe indicar su nombre.');
	else if (!mail_valido(Email))
		alert('El e-mail indicado es incorrecto.');
	else if (!tfno_valido(Telefono))
		alert('El teléfono indicado es incorrecto.');
	else if (trim(Mensaje) == "")
		alert('Debe indicar el mensaje.');
	else if (document.forms['form2'].privacidad.checked==false) 
		alert('Para poder enviar su solicitud de contacto, debe aceptar la Politica de Privacidad. Gracias.');
		
	else
		return true;
		
	return false;
}

function masInfo(asunto) {
	document.forms['presup'].asunto_defecto.value = asunto;
	setTimeout("document.forms['presup'].nombre.focus()", 50);
}

function nuevo_cliente() {
	document.forms['formClientes'].action = 'nuevo_cliente.php';
	document.forms['formClientes'].submit();
}

