function validateBasic(form){
	var inputs = form.getElementsByTagName('input');
	var errores = new Array();
	var numErrores = 0;
	var c;
	for(c=0; c<inputs.length; c++){
		if(inputs[c].type != 'hidden'){
			var className = inputs[c].className;
			var value = inputs[c].value;
			var title = inputs[c].title;
			var req = false;
			if(className.indexOf('req') >= 0){
				if(value == ''){
					errores[numErrores] = getTextoError('req',title);
					numErrores++;
				}
				req = true;
			}
			if(className.indexOf('num') >= 0 && (req || value != '')){
				if(/[^\d]/.test(value)){
				errores[numErrores] = getTextoError('num',title);
				numErrores++;
			}
		}
		if(className.indexOf('dec') >= 0 && (req || value != '')){
			if(isNaN(value)){
				errores[numErrores] = getTextoError('dec',title);
				numErrores++;
			}
		}
		if(className.indexOf('email') >= 0 && (req || value != '')){
			if(!/^[a-zA-Z0-9._-]+([+][a-zA-Z0-9._-]+){0,1}[@][a-zA-Z0-9._-]+[.][a-zA-Z]{2,6}$/.test(value)){
				errores[numErrores] = getTextoError('email',title);
				numErrores++;
			}
		}
		if(className.indexOf('fecha') >= 0 && (req || value != '')){
			var regex = /^(\d{2})\/(\d{2})\/(\d{4})$/
			var d = new Date(value.replace(regex, '$2/$1/$3'));
			if ((parseInt(RegExp.$2, 10) == (d.getMonth())) &&
			(parseInt(RegExp.$1, 10) == d.getDate()) &&
			(parseInt(RegExp.$3, 10) == d.getFullYear() )){
				errores[numErrores] = getTextoError('fecha',title);
				numErrores++;
			}
		}
		if(className.indexOf('arch') >= 0 && (req || value != '')){
			var extensiones_permitidas = new Array('.doc', '.docx', '.xls', '.xlsx', '.pdf', '.jpg', '.tiff', '.zip', '.rar');
			var extension = value.substring(value.lastIndexOf('.')).toLowerCase();
			var d = 0;
			var esta = false;
			for(d=0; d<extensiones_permitidas.length; d++){
				if(!esta && extensiones_permitidas[d] == extension){
					esta = true;
				}
			}
			if(!esta){
				errores[numErrores] = getTextoError('arch',title);
				numErrores++;
			}
		}
		if(className.indexOf('jpg') >= 0 && (req || value != '')){
			var extension = value.substring(value.lastIndexOf('.')).toLowerCase();
			if(extension != '.jpg'){
				errores[numErrores] = getTextoError('jpg',title);
				numErrores++;
			}
		}
		if(className.indexOf('alfa') >= 0  && (req || value != '')){
			var validos = 'abcdefghijklmnñopqrstuvwxyz0123456789-_áéíóú .,';
			var d = 0;
			var value2 = value.toLowerCase();
			while(d < value2.length){
				if(validos.indexOf(value2.charAt(d),0) == -1){
					errores[numErrores] = getTextoError('alfa',title);
					numErrores++;
					c = 1000;
				}
				d++;
			}
		}
		if(className.indexOf('leng6') >= 0 && (req || value != '')){
			if(value.length < 6){
				errores[numErrores] = getTextoError('leng6',title);
				numErrores++;
			}
		}
	}
}

var selects = form.getElementsByTagName('select');
for(c=0; c<selects.length; c++){
	var className = selects[c].className;
	var value = selects[c].value;
	var title = selects[c].title;
	if(className.indexOf('req') >= 0){
		if(value == -1 || value == ''){
			errores[numErrores] = getTextoError('req',title);
			numErrores++;
		}
	}
}

var textareas = form.getElementsByTagName('textarea');
for(c=0; c<textareas.length; c++){
	var className = textareas[c].className;
	var value = textareas[c].value;
	var title = textareas[c].title;
	if(className.indexOf('req') >= 0){
		if(value == ''){
			errores[numErrores] = getTextoError('req',title);
			numErrores++;
		}
	}
}
return errores;
}
function doValidateBasic(form){
	var errores = validateBasic(form);
	if(errores.length == 0){
		return true;
	}
	else{
		doMostrarErrores(errores)
		return false;
	}
}
function doMostrarErrores(errores){
	var html = '';
	var c;
	var divError = document.getElementById('errores');
	divError.innerHTML = '';
	for(c=0; c<errores.length; c++){
		if(c > 0){
			html += '<br />';
		}
		html += '<img src="' + PATH_IMG_ERROR + 'warning.png" alt="Error" /> ' + errores[c];
	}
	divError.innerHTML = html;
	divError.style.display = 'block';
}
function lV(){
	var divError = document.getElementById('errores');
	divError.style.display = 'none';
}
function validarForm(nombre, form){
	switch(nombre){
		case 'basic': return doValidateBasic(form); break;

		case 'contacto':
		if(form.email.value == '' && form.telefono.value == ''){
			var errores = new Array();
			errores[0] = getTextoError('contacto',null);
			doMostrarErrores(errores);
			return false;
		}
		else {
			return doValidateBasic(form);
		}
		break;
		case 'buscar':
		if(form.desde.value != '' || form.hasta.value != ''){
			if(form.desde.value == '' || form.hasta.value == ''){
				var errores = new Array();
				errores[0] = getTextoError('buscar',null);
				doMostrarErrores(errores);
				return false;
			}
		}
		return true;
		break;

		case 'registro':
		if(form.clave.value != form.clave2.value){
			var errores = new Array();
			errores[0] = getTextoError('contrasenas',null);
			doMostrarErrores(errores);
			return false;
		}
		else {
			if(doValidateBasic(form)){
				if(!form.terminos.checked){
					var errores = new Array();
					errores[0] = getTextoError('terminos',null);
					doMostrarErrores(errores);
					return false;
				}
				return validar('registro',form.email.value,'','La dirección de email ingresada ya se encuentra registrada');
			}
			return false;
		}
		break;

		case 'misdatos':
		if(form.clave.value != '' || form.clave2.value != ''){
			form.clave.className = 'req leng6';
			form.clave2.className = 'req';
		}
		if(form.clave.value != form.clave2.value){
			var errores = new Array();
			errores[0] = getTextoError('contrasenas',null);
			doMostrarErrores(errores);
			return false;
		}
		else {
			return doValidateBasic(form);
		}
		break;

		case 'alojamiento':
		tinyMCE.getInstanceById('descripcion').save();
		tinyMCE.getInstanceById('infoAdicional').save();
		tinyMCE.getInstanceById('lugaresInteres').save();

		var inputCaracteristicas = document.getElementById('inputCaracteristicas');
		inputCaracteristicas.value = '';
		var caracteristicas = document.getElementById('tablaCaracteristicas');
		var inputs = caracteristicas.getElementsByTagName('input');
		var c;
		for(c=0; c<inputs.length; c++){
			var input = inputs[c];

			if(inputCaracteristicas.value != ''){
				inputCaracteristicas.value = inputCaracteristicas.value + '@|@';
			}
			if(input.value == ''){
				input.value = '0';
			}
			inputCaracteristicas.value = inputCaracteristicas.value + input.name + '|@|' + input.value;
		}
		inputs = caracteristicas.getElementsByTagName('select');
		for(c=0; c<inputs.length; c++){
			var input = inputs[c];
			
			if(input.name != 'capacidad' && input.name != 'habitaciones'){
				if(inputCaracteristicas.value != ''){
					inputCaracteristicas.value = inputCaracteristicas.value + '@|@';
				}
				if(input.value == ''){
					input.value = '0';
				}
				inputCaracteristicas.value = inputCaracteristicas.value + input.title + '|@|' + input.value;
			}
		}

		var inputPrecios = document.getElementById('inputPrecios');
		inputPrecios.value = '';

		var d = 1;
		while(d <= cdPrecio){
			filaPrecio = document.getElementById('filaPrecio_' + d)
			if(filaPrecio != null){
				var inputs = filaPrecio.getElementsByTagName('input');
				var selects = filaPrecio.getElementsByTagName('select');
				var inputD;
				var inputS;
				var inputM;
				var selecDD;
				var selecMD;
				var selecDH;
				var selecMH;

				for(var x=0; x<3; x++){
					var input = inputs[x];
					switch(input.name){
						case 'precioDia': inputD = input.value; break;
						case 'precioSemana': inputS = input.value; break;
						case 'minimoDias': inputM = input.value; break;
					}
				}

				for(var x=0; x<4; x++){
					var select = selects[x];
					switch(select.name){
						case 'diaDesde': selecDD = select.value; break;
						case 'diaHasta': selecDH = select.value; break;
						case 'mesDesde': selecMD = select.value; break;
						case 'mesHasta': selecMH = select.value; break;
					}
				}

				if(inputD.value == '' || inputM.value == ''){
					var errores = new Array();
					errores[0] = getTextoError('precios',null);
					doMostrarErrores(errores);
					return false;
				}
				inputD.className = 'req num';
				inputS.className = 'req';
				inputM.className = 'req num';
				if(inputPrecios.value != ''){
					inputPrecios.value = inputPrecios.value + '@|@';
				}
				inputPrecios.value = inputPrecios.value + selecDD + '/' + selecMD +'|' + selecDH + '/' + selecMH + '|@|' + inputD + '&' + inputS + '&' + inputM;
			}
			d++;
		}

		var inputOferta = document.getElementById('inputOferta');
		inputOferta.value = '';

		// Si incluye ofertas
		if(form.incluirOfertas.checked == true){
			var d = 1;
			while(d <= cdOferta){
				filaOferta = document.getElementById('filaOferta_' + d);
				if(filaOferta != null){
					var inputs = filaOferta.getElementsByTagName('input');
					var inputD;
					var inputV;
					if(inputs[0].name == 'ofertaValor'){
						inputD = inputs[1];
						inputV = inputs[0];
					}
					else{
						inputD = inputs[0];
						inputV = inputs[1];
					}
					if(inputD.value == '' || inputV.value == ''){
						var errores = new Array();
						errores[0] = getTextoError('ofertas',null);
						doMostrarErrores(errores);
						return false;
					}
					inputV.className = 'req num';
					if(inputOferta.value != ''){
						inputOferta.value = inputOferta.value + '@|@';
					}
					inputOferta.value = inputOferta.value + inputD.value + '|@|' + inputV.value;
				}
				d++;
			}
		}

		var inputServicios = document.getElementById('inputServicios');
		inputServicios.value = '';
		var servicios = document.getElementById('tablaServicios');
		var inputs = servicios.getElementsByTagName('input');
		var c;
		for(c=0; c<inputs.length; c++){
			var input = inputs[c];
			if(input.checked){
				if(inputServicios.value != ''){
					inputServicios.value = inputServicios.value + '@|@';
				}
				inputServicios.value = inputServicios.value + input.value;
			}
		}

		if(cantFotos == 0){
			var errores = new Array();
			errores[0] = getTextoError('fotografías',null);
			doMostrarErrores(errores);
			return false;
		}
		if(form.ubicacion == ''){
			var errores = new Array();
			errores[0] = getTextoError('ubicación',null);
			doMostrarErrores(errores);
			return false;
		}
		return doValidateBasic(form);
		break;
		
	}
}
function validarOpinion(form){
	var errores = validateBasic(form);
	if(errores.length == 0){
		return true;
	}
	else{
		var html = '';
		var c;
		var divError = document.getElementById('errores2');
		divError.innerHTML = '';
		for(c=0; c<errores.length; c++){
			if(c > 0){
				html += '<br />';
			}
			html += '<img src="' + PATH_IMG_ERROR + 'warning.png" alt="Error" /> ' + errores[c];
		}
		divError.innerHTML = html;
		divError.style.display = 'block';
		return false;
	}
}
function validarEnviarAmigo(form){
	var errores = validateBasic(form);
	if(errores.length == 0){
		return true;
	}
	else{
		var html = '';
		var c;
		var divError = document.getElementById('errores');
		divError.innerHTML = '';
		for(c=0; c<errores.length; c++){
			if(c > 0){
				html += '<br />';
			}
			html += '<img src="' + PATH_IMG_ERROR + 'warning.png" alt="Error" /> ' + errores[c];
		}
		divError.innerHTML = html;
		divError.style.display = 'block';
		return false;
	}
}
function validarConsulta(form){
	var errores = validateBasic(form);
	if(errores.length == 0){
		return true;
	}
	else{
		if(form.email.value == '' && form.telefono.value == ''){
			errores = new Array();
			errores[0] = getTextoError('consulta',null);
		}
		var html = '';
		var c;
		var divError = document.getElementById('errores3');
		divError.innerHTML = '';
		for(c=0; c<errores.length; c++){
			if(c > 0){
				html += '<br />';
			}
			html += '<img src="' + PATH_IMG_ERROR + 'warning.png" alt="Error" /> ' + errores[c];
		}
		divError.innerHTML = html;
		divError.style.display = 'block';
		return false;
	}
}
function getTextoError(error, field){
	if(field == null){
		return textoError[error];
	}
	return textoError[error].replace('FIELD', '"' + field + '"');
}
var PATH_IMG_ERROR = 'images/';
