
//* Mensajes mostrados por pantalla al usuario ***********************
var MensajeCamposOblig = 'Los campos marcados con * deben de estar cumplimentados obligatoriamente';
var MensajeCamposObligENG = 'All fields marked with * must be complimented';
var MensajeCamposObligHUN = 'All fields marked with * must be complimented';
var MensajeEMailNoValido = 'La dirección de correo introducida no es valida';
var MensajeEMailNoValidoENG = 'Invalid email address';
var MensajeEMailNoValidoHUN = 'Invalid email address';
var MensajeBlogsNoArtComent = 'No es posible añadir comentarios. No existe ningún artículo.';


//*******************************************************************************
//Abre una ventana con el formulario Contacte con nosotros
function AbrirContacte () {
	Alto = 400;
	Ancho = 500;
	DistanciaArriba = 20;
	DistanciaIzq = ((screen.width - Ancho) / 2);			
	//window.open ('https://www.sek.net/webscolegios/textosFijos/contactoHTTPS.asp?h=<%=Request.ServerVariables("HTTP_HOST")%>&u=<%=DirectorioVirtual()%>&i=<%=Session("Idioma")%>&desc=<%=LiteralContacte%>','ContacteWebsColegios','height=' + Alto + ',left=' + DistanciaIzq + ',top=' + DistanciaArriba + ',width=' + Ancho + ',resizable=no,scrollbars=yes,toolbar=no');  
	window.open ('textosFijos/contactoHTTPS.asp?h=<%=Request.ServerVariables("HTTP_HOST")%>&u=<%=DirectorioVirtual()%>&i=<%=Session("Idioma")%>&desc=<%=LiteralContacte%>','ContacteWebsColegios','height=' + Alto + ',left=' + DistanciaIzq + ',top=' + DistanciaArriba + ',width=' + Ancho + ',resizable=no,scrollbars=yes,toolbar=no');  
}


//*******************************************************************************
//Aplica etiquetas especiales a un texto introducido en un formulario para su posterior formateo a HTML
function FormatTextoAdv(Formato) {
 if (document.selection.createRange().text != '') {
  switch (Formato) {
   case 'n':
    document.selection.createRange().text = '[b]' + document.selection.createRange().text + '[/b]';
    break;
   case 'c':
    document.selection.createRange().text = '[i]' + document.selection.createRange().text + '[/i]';
    break;
   case 's':
    document.selection.createRange().text = '[u]' + document.selection.createRange().text + '[/u]';
    break;
   case 'lo':
    document.selection.createRange().text = document.selection.createRange().text.replace (/\[ol\]\r\n|\[li\]|\r\n\[\/ol\]|\[\/li\]/g, '');
    document.selection.createRange().text = document.selection.createRange().text.replace (/\[ul\]\r\n|\[li\]|\r\n\[\/ul\]|\[\/li\]/g, '');
    document.selection.createRange().text = '[ol]\r\n[li]' + document.selection.createRange().text.replace (/\r\n/g,'[/li]\r\n[li]') + '[/li]\r\n[/ol]';
    break;
   case 'lu':
    document.selection.createRange().text = document.selection.createRange().text.replace (/\[ol\]\r\n|\[li\]|\r\n\[\/ol\]|\[\/li\]/g, '');
    document.selection.createRange().text = document.selection.createRange().text.replace (/\[ul\]\r\n|\[li\]|\r\n\[\/ul\]|\[\/li\]/g, '');
    document.selection.createRange().text = '[ul]\r\n[li]' + document.selection.createRange().text.replace (/\r\n/g,'[/li]\r\n[li]') + '[/li]\r\n[/ul]';
    break;
   case 'l':
    URL=prompt('Introduzca dirección (URL)','http://');
    if (URL!=null) {
     document.selection.createRange().text = '[a]' + URL + '|' + document.selection.createRange().text + '[/a]';
    }
    break;	
  // case 'p':
  //  window.open('adminArchivos/insertarArchivoContenido.asp' , 'Archivos' ,'status=no,width=450,height=300,scrollbars=yes');
  //  break;
  }
 }
}


//*******************************************************************************
//Aplica etiquetas especiales a un texto introducido en un formulario para su posterior formateo a HTML
function FormatTexto(Formato) {
 if (document.selection.createRange().text != '') {
  switch (Formato) {
   case 'n':
    document.selection.createRange().text = '[b]' + document.selection.createRange().text + '[/b]';
    break;
   case 'c':
    document.selection.createRange().text = '[i]' + document.selection.createRange().text + '[/i]';
    break;
   case 's':
    document.selection.createRange().text = '[u]' + document.selection.createRange().text + '[/u]';
    break;
   case 'l':
    URL=prompt('Introduzca dirección (URL)','http://');
    if (URL!=null) {
     document.selection.createRange().text = '[a]' + URL + '|' + document.selection.createRange().text + '[/a]';
    }
    break;	
   case 'p':
    window.open('adminArchivos/insertarArchivoContenido.asp' , 'Archivos' ,'status=no,width=450,height=300,scrollbars=yes');
    break;
  }
 }
}

//*******************************************************************************
//Aplica estilos a una fila de una tabla para que aparezca seleccionada
function SeleccTR (tabla, fila, campo1, valor1, campo2, valor2) {
	for (i=0; i < tabla.rows.length; i++) {
		tabla.rows(i).className = 'NOSELECC';
  }
  fila.className = 'SELECC';
  campo1.value = valor1;
  campo2.value = valor2;
}

//*******************************************************************************
//Muestra un mensaje de confirmacion al eliminar una imagen y llama a la pagina de eliminacion
function EliminarFoto (foto, num, id, codigoCentro, idioma) 
{
	switch (idioma) {
		case 'ENG': 
			varLiteralSeguro = 'Are you sure to delete ' 
			break;
		case 'HUN': 
			varLiteralSeguro = 'Are you sure to delete'
			break;
		default:		
			varLiteralSeguro = '¿Está seguro de que desea eliminar'
	}

	if (foto != '') {
		resp = confirm (varLiteralSeguro + ' ' + foto + '"?');
		if (resp == true) {
			if (codigoCentro == 'PorDefecto') {
				document.URL = 'default.asp?car=adminWebPorDefecto&arc=EliminarFoto.asp&id=' + id + '&f=' + foto + '&n=' + num;
			}
			else {
				document.URL = 'default.asp?car=adminWeb&arc=EliminarFoto.asp&id=' + id + '&cc=' + codigoCentro + '&n=' + num + '&f=' + foto;
			}
		}
		else {
			return false;
		}
	}	
}

//*******************************************************************************
//Imprime una pagina y oculta la capa pasada por parametro
function Imprimir (capa) {		
	capa.style.display = 'none';
	print();
}


//*******************************************************************************
//Habilita todos los controles de un formulario
function quitarDisabled (formulario)	{
	for (i=0; i<formulario.all.length;i++) {
		formulario.all(i).disabled=false;
	}	
}

//*******************************************************************************
//Intercambia la propiedad display de una capa pasada por parametro
function MostrarOcultar (capa)	{
	if (capa.style.display == 'none') {
		capa.style.display='block'; 
	}
	else {
		capa.style.display='none'; 
	}	
}

//*******************************************************************************
//Intercambia la propiedad display de dos capas pasadas por parametro
function IntercambiarMostrarOcultar (capaM, capaO)	{
	capaM.style.display='block'; 
	capaO.style.display='none'; 				
}

//*******************************************************************************
//Intercambia la propiedad display de una tabla y cambiar los estilos de su cabecera
//  para que aparezca para mostrar u ocultar
function MostrarTabla(elem, imagen, row) {
	 if (elem.style.display == 'none') {
		elem.style.display = '';
		imagen.src = '../images/blue_up.gif';
		row.className = 'OPEN';
	 }
	 else {
	  elem.style.display = 'none';
		imagen.src = '../images/gray_down.gif';
		row.className = 'CLOSE';
	 } 
}

//*******************************************************************************
//Intercambia la propiedad display de una tabla y cambiar los estilos de su cabecera
//  para que aparezca para mostrar u ocultar
function MostrarTabla2(elem, imagen, row) {
	 if (elem.style.display == 'none') {
		elem.style.display = '';
		imagen.src = '../images/white_up.gif';
		row.className = 'OPEN';
	 }
	 else {
	  elem.style.display = 'none';
		imagen.src = '../images/White_down.gif';
		row.className = 'CLOSE';
	 } 
}

//*******************************************************************************
//Valida la el numero de caracteres introducidos en un campo textarea
function ValidaLongTextArea(texto, numCar) {
	textoInicio = texto.value	
	if (textoInicio.length >= numCar) {
		texto.value = textoInicio.substring (0, numCar);
	}	
}

//*******************************************************************************
//Valida la el numero de caracteres introducidos en un campo textarea al pegar el texto
function ValidaLongTextAreaPegar(texto, numCar) {
 textoInicio = window.clipboardData.getData("Text");	 
	if (textoInicio.length > numCar) {
	 alert ('El texto introducido ha sido ajustado al máximo de caracteres permitidos\n\tMáximo permitido: ' + numCar + '\tCaracteres introducidos: ' + textoInicio.length);
		window.clipboardData.setData("Text",textoInicio.substring (0, numCar));
	}	
}

//*******************************************************************************
//Check if all the obligatory fields in the news are completed.
function ValidateForm(newsform)
{
	if ((newsform.Titulo.value=='' || newsform.Cuerpo.value=='' ||
		newsform.IdTipo.value=='' || newsform.FechaRealizacion.value=='' ||
		newsform.Autor.value=='')&&
		(newsform.TituloEng.value=='' || newsform.CuerpoEng.value=='' ||
		newsform.IdTipo.value=='' || newsform.FechaRealizacion.value=='' ||
		newsform.Autor.value==''))
	{
		alert (MensajeCamposObligENG);
		return false;	  
	}
	else
	{
 		newsform.FechaRealizacion.value=newsform.FechaRealizacionDia.value + '/' + newsform.FechaRealizacionMes.value + '/' + newsform.FechaRealizacionAgno.value;
		newsform.submit();
	}
}

//**************************************************************************
// Sólo números en caja de texto
// UTILIZACIÓN:
// NO permite decimales --> onkeypress="onlyDigits(event,'noDec')"
// SI permite decimales	--> onkeypress="onlyDigits(event,'decOK')"
var isIE = document.all?true:false;
var isNS = document.layers?true:false;
function onlyDigits(e,decReq) {
var key = (isIE) ? window.event.keyCode : e.which;
var obj = (isIE) ? event.srcElement : e.target;
var isNum = (key > 47 && key < 58) ? true:false;
var dotOK = (key==46 && decReq=='decOK' && (obj.value.indexOf(".")<0 || obj.value.length==0)) ? true:false;
window.event.keyCode = (!isNum && !dotOK && isIE) ? 0:key;
e.which = (!isNum && !dotOK && isNS) ? 0:key;
return (isNum || dotOK);
}

//*******************************************************************************
// Función que nos va a contar el número de caracteres y de palabras del area de texto
// de un formulario
function wordCount(texto,campo, idioma) {

	switch (idioma) {
		case 'ENG': 
			var Literal0Caract = '0 characters 0 words' 
			var LiteralCaracter = 'character'
			var LiteralCaracteres = 'characters'
			var LiteralPalabra = 'word'
			var LiteralPalabras = 'words'
			break;
		case 'HUN': 
			var Literal0Caract = '0 caracteres 0 palabras' 
			var LiteralCaracter = 'character'
			var LiteralCaracteres = 'characters'
			var LiteralPalabra = 'word'
			var LiteralPalabras = 'words'
			break;
		default:		
			var Literal0Caract = '0 caracteres 0 palabras' 
			var LiteralCaracter = 'caracter'
			var LiteralCaracteres = 'caracteres'
			var LiteralPalabra = 'palabra'
			var LiteralPalabras = 'palabras'
	}

	textoArea = texto.value;
	numeroCaracteres = textoArea.length;

	// Eliminamos los caracteres en blanco del inicio y del final. Usamos expresiones regulares
	inicioBlanco = /^ / // El ^ indica principio de cadena
	finBlanco = / $/ // El $ indica final de cadena
	variosBlancos = /[ ]+/g // El global (g) es para obtener todas las posibles combinaciones

	textoArea = textoArea.replace(inicioBlanco,"");
	textoArea = textoArea.replace(finBlanco,"");
	textoArea = textoArea.replace(variosBlancos," ");

	// Creamos un array con las diferentes palabras. Teniendo en cuenta que la separación
	// entre palabras es el espacio en blanco.
	textoAreaDividido = textoArea.split(" ");
	numeroPalabras = textoAreaDividido.length;

	if (textoArea.length == 0) {
		campo.value = Literal0Caract;
	}
	else {
		// Mostramos los datos.
	// Tendremos en cuenta si hay que escribir en plural o en singular.
	tC = (numeroCaracteres==1)? ' ' + LiteralCaracter :  ' ' + LiteralCaracteres;
	tP = (numeroPalabras==1)? ' ' + LiteralPalabra : ' ' + LiteralPalabras;
	campo.value = numeroCaracteres + tC + ' ' + numeroPalabras + tP;
	}
}
function getWindowHeight() {
			var windowHeight = 0;
			if (typeof(window.innerHeight) == 'number') {
				windowHeight = window.innerHeight;
			}
			else {
				if (document.documentElement && document.documentElement.clientHeight) {
					windowHeight = document.documentElement.clientHeight;
				}
				else {
					if (document.body && document.body.clientHeight) {
						windowHeight = document.body.clientHeight;
					}
				}
			}
			return windowHeight;
		}
//***************************************************************************************************************
//************************************** VALIDA FECHAS **********************************************************
//***************************************************************************************************************
//El array "DaysInMonth" contiene los dias que tiene cada mes
var DaysInMonth = new Array()
DaysInMonth[0] = 31 //Los dias de Enero
DaysInMonth[1] = 0 //Los dias de Febrero se calculan mas adelante por si el año es bisiesto
DaysInMonth[2] = 31 //Los dias de Marzo
DaysInMonth[3] = 30 //Los dias de Abril
DaysInMonth[4] = 31 //Los dias de Mayo
DaysInMonth[5] = 30 //Los dias de Junio
DaysInMonth[6] = 31 //Los dias de Julio
DaysInMonth[7] = 31 //Los dias de Agosto
DaysInMonth[8] = 30 //Los dias de Septiembre
DaysInMonth[9] = 31 //Los dias de Octubre
DaysInMonth[10] = 30 //Los dias de Noviembre
DaysInMonth[11] = 31 //Los dias de Diciembre

//la funcion IsInteger(Chain) chequea si "Chain" es un numero entero sin signo valido
//La variable "Chain" es una cadena de caracteres
function IsInteger(Chain)
{
var Template = /^\d+$/ //Formato de numero entero sin signo
return Template.test(Chain) //Compara "Chain" con el formato "Template"
}

//La funcion "IsDay(Day, Month)" chequea si "Day" es un numero de dia valido para el mes "Month"
//Las variables "Day" y "Month" son cadenas de caracteres
function IsDay(Day, Month)
{
if (Day.substring(0,1) == 0) {
	Day = Day.substring (1,2)		
}
if (IsInteger(Day) && IsMonth(Month)) //Si "Day" es un numero entero valido y "Month" es un numero de mes valido
{
return (parseInt(Day)>0 && parseInt(Day)<=DaysInMonth[Month - 1]) ? 1 : 0 //Si "Day" esta entre 1 y los dias que tiene el mes "Month" devuelve verdadero si no devuelve falso
}
else return 0 //Si "Day" no es un numero entero valido o "Month" no es un numero de mes valido devuelve falso
}

//La funcion "IsMonth(Month)" chequea si "Month" es un numero de mes valido
//La variable "Month" es una cadena de caracteres
function IsMonth(Month)
{
if (Month.substring(0,1) == 0) {
	Month = Month.substring (1,2)		
}
if (IsInteger(Month)) //Si "Month" es un número entero valido
{
return (parseInt(Month)>0 && parseInt(Month)<=12) ? 1 : 0 //Si "Month" esta entre 1 y 12 devuelve verdadero si no devuelve falso
}
else return 0 //Si "Month" no es un numero entero valido devuelve falso
}

//La funcion "IsYear(Year)" chequea si "Year" es un numero de año valido
//La variable "Year" es una cadena de caracteres
function IsYear(Year)
{
if (IsInteger(Year)) //Si "Year" es un numero entero valido
{
return (Year.length == 4) ? 1 : 0 //Si "Year" tiene cuatro digitos devuelve verdadero si no devuelve falso
}
else return 0 //Si "Year" no es un numero entero valido devuelve falso
}

//La funcion IsLeapYear(Year) chequea si "Year" es un año es bisiesto
//La variable "Year" es una cadena de caracteres
function IsLeapYear(Year)
{
if (IsInteger(Year)) //Si "Year" es un numero entero valido
{
return ((Year % 4 == 0 && Year % 100 != 0) || (Year % 400 == 0)) ? 1 : 0// Si "Year" es un año es bisiesto devuelve verdadero si no devuelve falso
}
else return 0 //Si "Year" no es un numero entero valido devuelve falso
}

//La funcion IsDate(YourDate, YourDateSeparator) chequea si "YourDate" es una fecha valida con el separador de fecha "YourDateSeparator"
//Las variables "YourDate" y "YourDateSeparator" son cadenas de caracteres
function IsDate(YourDate, YourDateSeparator)
{
var IsAllOK = 1 //Variable iniciada como verdadera para saber si todas las validaciones fueron correctas
var YourDateParts = new Array() //Variable donde se almacenaran las partes de la fecha (dia, mes y año) tras haber eliminado el separador de la fecha
YourDateParts = YourDate.split(YourDateSeparator) //Se crean las partes de la fecha (dia, mes y año) eliminando el separador de la fecha
var Day = YourDateParts[0] //El dia corresponde al primer elemento del array
var Month = YourDateParts[1] //El mes corresponde al segundo elemento del array
var Year = YourDateParts[2] //El año corresponde al tercer elemento del array
if (IsYear(Year) && !IsLeapYear(Year)) //Si "Year" es un numero de año valido y no es bisiesto
{
DaysInMonth[1] = 28 //Como "Year" no es bisiesto Febrero tiene entonces 28 dias
}
else if (IsYear(Year) && IsLeapYear(Year)) //Si "Year" es un numero de año valido y es bisiesto
{
DaysInMonth[1] = 29 //Como "Year" es bisiesto Febrero tiene entonces 29 dias
}
else IsAllOK = 0 //Si "Year" no es un numero de año valido la variable pasa a ser falsa
IsAllOK = (IsMonth(Month)) ? IsAllOK : 0 //Si "Month" es un numero de mes valido la variable se queda como esta si no pasa a ser falsa
IsAllOK = (IsDay(Day, Month)) ? IsAllOK : 0 //Si "Day" es un numero de dia valido para el mes "Month" la variable se queda como esta si no pasa a ser falsa
return IsAllOK //Finalmente se devuelve el valor de la variable como verdadero o falso
}

//**********EOF****************************************************************