var vCadena = 0;
var vNumero = 1;
var vEmail = 2;
var vVacio = 3;
var vURL = 4;

var fnValidaContacto = function() {
	$("label").removeClass("invalido");
	if (!fnCampoValido('Remitente', vEmail)) { return false; }
	if (!fnCampoValido('Asunto', vCadena, 0)) { return false; }
	if ( 
			!$('#Redaccion').attr('checked') && 
			!$('#Publicidad').attr('checked') && 
			!$('#MiEspacio').attr('checked') && 
			!$('#Alertas').attr('checked') && 
			!$('#Observaciones').val() 
	) { 
		return fnAvisoCampoInvalido('Informacion', 0, 'Seleccione una de las opciones de información');
	}
	if (!$('#Privacidad').attr('checked')) { return fnAvisoCampoInvalido('Privacidad', 0, 'Para continuar debe aceptar la Política de Privacidad');  }
	return true;
}

var fnValidaBoletin = function() {
	$("label").removeClass("invalido");
	if ( !$('#Nombre').val() && !$('#NombreEmpresa').val() ) { 
		return fnAvisoCampoInvalido('Nombre', 0, 'Indiquenos su nombre o el de su empresa.');
	}
	if (!fnCampoValido('Remitente', vEmail)) { return false; }
	if (!fnCampoValido('Actividad', vCadena)) { return false; }
	if (!$('#Privacidad').attr('checked')) { return fnAvisoCampoInvalido('Privacidad', 0, 'Para continuar debe aceptar la Política de Privacidad');  }	
	return true;
}

var fnBoletinPaisProvincia = function() {
	if ($('#Pais').val() != 60) {
		$('#Provincia').val(58);
		$('#Provincia').attr('disabled','disabled');
	} else {
		$('#Provincia').val(0);		
		$('#Provincia').removeAttr('disabled');		
	}
}

var fnValidaAmigo = function() {
	$("label").removeClass("invalido");
	if (!fnCampoValido('Remitente', vEmail)) { return false; }
	if (!fnCampoValido('Destinatario', vEmail)) { return false; }
	if (!$('#Privacidad').attr('checked')) { return fnAvisoCampoInvalido('Privacidad', 0, 'Para continuar debe aceptar la Política de Privacidad');  }	
	return true;
}

var fnValidaMensaje = function(nLongitudMaxima) {
	$("label").removeClass("invalido");
	if (!fnCampoValido('Remitente', vEmail)) { return false; }
	if (!fnCampoValido('Nombre', vCadena)) { return false; }
	if (!fnCampoValido('Asunto', vCadena)) { return false; }
	if (!fnCampoValido('Asunto', vCadena)) { 
		return false; 
	} else {
		nLongitudAsunto = $('#Asunto').val().length;
		if (nLongitudAsunto > nLongitudMaxima) {
			return fnAvisoCampoInvalido('Asunto', 0, 'El texto del asunto no puede superar los ' + nLongitudMaxima + ' caracteres');
		}
	}
	if (!$('#Privacidad').attr('checked')) { return fnAvisoCampoInvalido('Privacidad', 0, 'Para continuar debe aceptar la Política de Privacidad');  }	
	return true;
}

var fnCampoAsuntoMensajeArtista = function(nLongitudMaxima) {
	$('#MensajeLongitudAsunto').html('El texto del asunto no puede superar los ' + nLongitudMaxima + ' caracteres. Actualmente ' + $('#Asunto').val().length + '.')
}

var xAlertas = null;

var fnBusquedaAlertas = function(o, t, u) {
	if (xAlertas) { xAlertas.abort(); }
	$(o).html("<h2 style='text-align: center;'>Buscando " + t + "</h2>");
	xAlertas = $.get('/Resultados-Alertas/' + t + '/' + u + '/', function(data){		
		$(o).html(data);
	});
	return false;
}

var fnBloqueaProvincia = function(o) {
	if ($(o).val() != 60) {
		$('#Provincia').val(0);
		$('#Provincia').attr('disabled', 'disabled');
	} else {
		$('#Provincia').removeAttr('disabled');
	}
}

////////////////////////////////////////////////////////////////////////////////////

function fnCampoValido(id, tipo, len, msj) {
	var bValido = false;
	var dCampo = $('#' + id);
	switch (tipo) {
		case vCadena:
			bValido = fnCadenaValida(dCampo.val(), len);
			break;
		case vNumero:
			bValido = fnNumeroValido(dCampo.val(), len);
			break;
		case vEmail:
			bValido = fnEmailValido(dCampo.val());
			break;
		case vVacio:
			bValido = fnCampoVacio(dCampo.val());
			break;
		case vURL:
			bValido = fnCampoURL(dCampo.val());
			break;
	}
	if (!bValido) { fnAvisoCampoInvalido(id, len, msj); }
	return bValido;
}

function fnAvisoCampoInvalido(id, len, mensaje) {
	var sMensaje = mensaje;
	var sLabel = "label[for='" + id + "']";
	$(sLabel).addClass("invalido");
	if (!sMensaje) {
		sMensaje = "Campo Invalido: " + $(sLabel).text().replace(':','') + ".";
		if (len) { sMensaje += " Minimo " + len + " caracteres"; }
	}
	alert(sMensaje);
	$('#' + id).focus();
	return false;		
}

function fnCampoVacio() {
	return (arguments[0] != ''); 
}

function fnBorrarTexto(objeto, borrar) {
	if ($(objeto).val() == borrar) { $(objeto).val(''); }	
}

function fnCadenaValida() {
	if (arguments[1]) { return ( arguments[0].length >= arguments[1] ); }
	return (typeof arguments[0] == 'string' && arguments[0] != '' && isNaN(arguments[0])); 
}

function fnNumeroValido() { 
	return (!isNaN(arguments[0]) && arguments[0] != '' && arguments[0] != arguments[1]); 
}

function fnEmailValido() {
	var RegExPattern = /^\w+[\+\.\w-]*@([\w-]+\.)*\w+[\w-]*\.([a-z]{2,4}|\d+)$/i
	if (arguments[0] != '' && RegExPattern.test(arguments[0])) { return true; }
	return false;
}

var fnCampoNumerico = function(e) {
	var key = window.event ? e.keyCode : e.which;
	var keychar = String.fromCharCode(key);
	reg = /\d/;
	return !reg.test(keychar);	
}

var fnCampoAlfabetico = function(e) {
	var key = window.event ? e.keyCode : e.which;
	var keychar = String.fromCharCode(key);
	reg = /\D/;
	return !reg.test(keychar);	
}

var fnCampoURL = function(s) {
	var regexp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;
	return regexp.test(s);
}

function fnNuevaVentana(url, win, cnf, mdl) {
	var win = null;
	cnf['left'] = 0;
	cnf['top'] = 0;
	if (cnf['width'] > screen.width) cnf['width'] = screen.width - 20;
	if (cnf['height'] > screen.height) cnf['height'] = screen.height - 20;		
	var winl = (screen.width - cnf['width']) / 2;
	var wint = (screen.height - cnf['height']) / 2;
	if (winl > 0) cnf['left'] = winl;
	if (wint > 0) cnf['top'] = wint;	
	var settings = '';
	for(var key in cnf) {
		settings += ' ' + key + '=' + cnf[key] + ',';
	}
	
	abierto = false;
	if (mdl) {
		if (window.showModalDialog) {
			window.showModalDialog(url, win, "dialogWidth:" + cnf['width'] + "px;dialogHeight:" + cnf['height'] + "px;unadorned:0");	
			abierto = true;
		}
	}
	
	if (!abierto) {
		win = window.open(url, win, settings);
		win.window.focus();
	}
	return false;
}

