// JavaScript Document

//Extendemos la definición de una función para poder usar parámetros por defecto
Function.prototype.defaults = function()
{
  var _f = this;
  var _a = Array(_f.length-arguments.length).concat(
    Array.prototype.slice.apply(arguments));
  return function()
  {
    return _f.apply(_f, Array.prototype.slice.apply(arguments).concat(
      _a.slice(arguments.length, _a.length)));
  }
}
//----------------------
function validarEmail(email) {
	var s = email;
	var filter=/^[A-Za-z][A-Za-z0-9_]*@[A-Za-z0-9_]+\.[A-Za-z0-9_.]+[A-za-z]$/;
	if (s.length == 0 ) return true;
	if (filter.test(s))
		return true;
	return false;
}
function rellenarSelect(idSelect, elementosArray) {
	var i, objetoSelect;
	
	objetoSelect = document.getElementById(idSelect);
	objetoSelect.length = elementosArray.length;
	for(i = 0; i < objetoSelect.length; i++) {
          objetoSelect.options[i].value = elementosArray[i];
          objetoSelect.options[i].text = elementosArray[i];
	} 
	objetoSelect.selectedIndex = 0;
}

function valorSelect(idSelect, selectActual) {
	var i, objetoSelect;
	
	objetoSelect = document.getElementById(idSelect);
	for (i = 0; i < objetoSelect.length; i++) {
		if (objetoSelect.options[i].value == selectActual) {
				objetoSelect.selectedIndex = i;
		}
	}
}

function cargarIframe(idIframe, pagina) {
	var frameActual;
	
	frameActual = document.getElementById(idIframe);
	frameActual.location = pagina;
	//frameActual.style.height = frameActual.window.innerHeight;
}

function recalcula(elIframe){
   var daH = (document.body && document.body.clientHeight)? parent.interior.document.body.clientHeight: 0;
   daH = (document.addBinding)?daH+20:daH+5;
   //alert(daH);
   document.getElementById(elIframe).style.height = daH + "px";
} 

function vaciarFormulario(formulario) {
	var formularioObjeto, i;
	
	formularioObjeto = document.getElementById(formulario);
	for (i = 0; i < formulario.length; i++) {
		if ((formulario.elements[i].type != "hidden") && (formulario.elements[i].type != "button") && (formulario.elements[i].type != "submit") && (formulario.elements[i].type != "reset")) {
			formulario.elements[i].value = "";
		}
	}
}
function lTrim(sStr){
	 while (sStr.charAt(0) == " ")
	 	sStr = sStr.substr(1, sStr.length - 1);
	 return sStr;
}
function rTrim(sStr){
	while (sStr.charAt(sStr.length - 1) == " ")
		sStr = sStr.substr(0, sStr.length - 1);
	return sStr;
}
function allTrim(sStr){
	return rTrim(lTrim(sStr));
}
function parseIntNull(valor) {
	return((valor == '')?valor:parseInt(valor));
}
function parseFloatNull(valor) {
	return((valor == '')?valor:parseFloat(valor));
}
function validarFormularioFamilia() {
	var errores = '';
	var nombre;
	var claseError = 'errorValidado';
	
	nombre = document.getElementById('familiaNombre');
	if (allTrim(nombre.value) == '') {
		errores += 'Nombre: es un campo obligatorio\n';
		nombre.className = claseError;
	}
	if (errores)
		alert('Se han producido los siguientes errores:\n' + errores);
	nombre.focus();
	return(errores == '');
}
function validarFormularioSubfamilia() {
	var errores = '';
	var nombre, familia;
	var claseError = 'errorValidado';
	
	nombre = document.getElementById('subfamiliaNombre');
	familia = document.getElementById('subfamiliaFamilia');
	if (allTrim(nombre.value) == '') {
		errores += 'Nombre: es un campo obligatorio\n';
		nombre.className = claseError;
	}
	if (allTrim(familia.value) == '') {
		errores += 'Familia: es un campo obligatorio\n';
		familia.className = claseError;
	}
	if (errores)
		alert('Se han producido los siguientes errores:\n' + errores);
	nombre.focus();
	return(errores == '');
}
function validarFormularioCliente() {
	var errores = '';
	var nombre, codigo, tipo, email, password, password2, provincia;
	var claseError = 'errorValidado';
	
	nombre = document.getElementById('clienteNombre');
	codigo = document.getElementById('clienteCodigoCliente');
	tipo = document.getElementById('clienteTipo');
	email = document.getElementById('clienteEmail');
	password = document.getElementById('clientePassword');
	password2 = document.getElementById('clientePassword2');
	provincia = document.getElementById('clienteProvincia');
	
	nombre.className = '';
	codigo.className = '';
	tipo.className = '';
	email.className = '';
	password.className = '';
	password2.className = '';
	provincia.className = '';
	
	if (allTrim(nombre.value) == '') {
		errores += 'Nombre: es un campo obligatorio\n';
		nombre.className = claseError;
	}
	if (allTrim(codigo.value) == '') {
		errores += 'Código cliente: es un campo obligatorio\n';
		codigo.className = claseError;
	}
	if (allTrim(tipo.value) == '') {
		errores += 'Tipo: es un campo obligatorio\n';
		tipo.className = claseError;
	}
	if (allTrim(email.value) == '') {
		errores += 'E-mail: es un campo obligatorio\n';
		email.className = claseError;
	}
	if (!validarEmail(email.value)) {
		errores += 'E-mail: no es un e-mail válido\n';
		email.className = claseError;
	}
	if (allTrim(provincia.value) == '') {
		errores += 'Provincia: es un campo obligatorio\n';
		provincia.className = claseError;
	}
	if (allTrim(password.value) == '') {
		errores += 'Password: es un campo obligatorio\n';
		password.className = claseError;
	}
	if (password.value != password2.value) {
		errores += 'Repetir contraseña: tiene que ser igual a Contraseña\n';
		password2.className = claseError;
	}
	if (errores)
		alert('Se han producido los siguientes errores:\n' + errores);
	codigo.focus();
	return(errores == '');
}
function validarFormularioProducto() {
	var errores = '';
	var nombre, codigoProducto, codigoNacional, codigoEAN, precio1, precio2, precio3, precio4;
	var claseError = 'errorValidado';
	
	nombre = document.getElementById('productoNombre');
	codigoProducto = document.getElementById('productoCodigoProducto');
	codigoNacional = document.getElementById('productoCodigoNacional');
	codigoEAN = document.getElementById('productoCodigoEAN');
	precio1 = document.getElementById('productoPrecio1');
	precio2 = document.getElementById('productoPrecio2');
	precio3 = document.getElementById('productoPrecio3');
	precio4 = document.getElementById('productoPrecio4');
	subfamilia = document.getElementById('productoSubfamilia');
	empresa = document.getElementById('productoEmpresa');
	almacen = document.getElementById('productoAlmacen');
	
	nombre.className = '';
	codigoProducto.className = '';
	codigoNacional.className = '';
	codigoEAN.className = '';
	precio1.className = '';
	precio2.className = '';
	precio3.className = '';
	precio4.className = '';
	subfamilia.className = '';
	empresa.className = '';
	almacen.className = '';
	
	if (allTrim(nombre.value) == '') {
		errores += 'Nombre: es un campo obligatorio\n';
		nombre.className = claseError;
	}
	if (allTrim(codigoProducto.value) == '') {
		errores += 'Código producto: es un campo obligatorio\n';
		codigoProducto.className = claseError;
	}
/*	else
		if (isNaN(codigoProducto.value)) {
			errores += 'Código producto: tiene que ser un valor númerico\n';
			codigoProducto.className = claseError;
		}
		else
			codigoProducto.value = parseInt(codigoProducto.value);
*/
	
	if (subfamilia.value == '') {
		errores += 'Subfamilia: es un campo obligatorio\n';
		subfamilia.className = claseError;
	}
	if (empresa.value == '') {
		errores += 'Empresa: es un campo obligatorio\n';
		empresa.className = claseError;
	}
	if (almacen.value == '') {
		errores += 'Almacén: es un campo obligatorio\n';
		almacen.className = claseError;
	}
	if (isNaN(codigoNacional.value)) {
		errores += 'Código nacional: tiene que ser un valor númerico\n';
		codigoNacional.className = claseError;
	}
	else
		codigoNacional.value = parseIntNull(codigoNacional.value);
	if (isNaN(codigoEAN.value)) {
		errores += 'Código EAN: tiene que ser un valor númerico\n';
		codigoEAN.className = claseError;
	}
	else
		codigoEAN.value = parseIntNull(codigoEAN.value);
	if (isNaN(precio1.value)) {
		errores += 'Precio 1: tiene que ser un valor númerico\n';
		precio1.className = claseError;
	}
	else
		precio1.value = parseFloatNull(precio1.value);
	if (isNaN(precio2.value)) {
		errores += 'Precio 2: tiene que ser un valor númerico\n'
		precio2.className = claseError;
	}
	else
		precio2.value = parseFloatNull(precio2.value);
	if (isNaN(precio3.value)) {
		errores += 'Precio 3: tiene que ser un valor númerico\n'
		precio3.className = claseError;
	}
	else
		precio3.value = parseFloatNull(precio3.value);
	if (isNaN(precio4.value)) {
		errores += 'Precio 4: tiene que ser un valor númerico\n'
		precio4.className = claseError;
	}
	else
		precio4.value = parseFloatNull(precio4.value);

	if (errores)
		alert('Se han producido los siguientes errores:\n' + errores);
		
	nombre.focus();
	return(errores == '');
}
function iniciarFormularioProducto() {
	document.getElementById('productoNombre').focus();
}

function getFechaActual() {
	miFecha = new Date();
	miFechaStr = miFecha.getFullYear() + '-' + (miFecha.getMonth() + 1) + '-' + miFecha.getDate() + ' ' + miFecha.getHours() + ':' + miFecha.getMinutes() + ':' + miFecha.getSeconds();
	return miFechaStr;
}

var crearDireccion = function(cuenta, dominio) {
	return(cuenta + '@' + dominio);
}.defaults('farmaten.com');

function escribirDireccion(cuenta) {
	document.write(crearDireccion(cuenta));
}
function escribirEnlace(enlace, textoEnlace) {
	document.write('<a href="' + enlace + '">' + textoEnlace + '</a>');
}
function escribirEnlaceEmail(cuenta) {
	escribirEnlace("mailto:" + crearDireccion(cuenta), crearDireccion(cuenta));
}
