dojo.require("dojo.parser");
dojo.require("dijit.Dialog");

dojo.require("dijit.form.Form");
dojo.require("dijit.form.Button");
dojo.require("dijit.form.DateTextBox");
dojo.require("dijit.form.ValidationTextBox");
dojo.require("dijit.form.TimeTextBox");
dojo.require("dijit.form.Textarea");
dojo.require("dijit.form.ComboBox");
dojo.require("dojox.validate.regexp");

// make dojo.toJson() print dates correctly (this feels a bit dirty)
Date.prototype.json = function(){ return dojo.date.stamp.toISOString(this, {selector: 'date'});};


var ARR_EXTS_IMGS		= 	new Array(".gif", ".jpg", ".png", ".jpeg");
var URL_PREFIX			=	"http://";

function enviarHaciaReferencia(recursoId) {
	document.location.href = recursoId;
	return;
}

function enviarHacia(recursoId, idEvento, uriWebPage) {
    
	document.forms['frmBuscadorEventos'].elements['idEvento'].value = idEvento;
	document.forms['frmBuscadorEventos'].elements['uriWebPage'].value = uriWebPage;
	document.forms['frmBuscadorEventos'].action = recursoId;
	document.forms['frmBuscadorEventos'].submit();
	return;
	
}
function enviarHaciaEventosDia(recursoId, mes, dia, anio) {
    
	if (mes < 0) {
		
		mes 	= 	11;
		anio 	= 	--anio;
		
	} else if (mes >= 12 ) {
		
		mes 	= 	0;
		anio 	= 	++anio;
		
	}
	document.forms['frmBuscadorMiniEventos'].elements['mes'].value = mes;
	document.forms['frmBuscadorMiniEventos'].elements['dia'].value = dia;
	document.forms['frmBuscadorMiniEventos'].elements['anio'].value = anio;
	
	document.forms['frmBuscadorMiniEventos'].action = recursoId;
	document.forms['frmBuscadorMiniEventos'].submit();	
	return;
}
function enviarHaciaEventos(recursoId, mes, anio) {

	if (mes < 0) {
		
		mes 	= 	11;
		anio 	= 	--anio;
		
	} else if (mes >= 12 ){
		
		mes 	= 	0;
		anio 	= 	++anio;
		
	}
	
	document.forms['frmBuscadorMiniEventos'].elements['mes'].value 	= mes;
	document.forms['frmBuscadorMiniEventos'].elements['anio'].value = anio;
	document.forms['frmBuscadorMiniEventos'].elements['dia'].value 	= "";
	
	document.forms['frmBuscadorMiniEventos'].action = recursoId;
	document.forms['frmBuscadorMiniEventos'].submit();
	return;
}

function enviarHaciaEventosDiaCartelera(formId, recursoId, mes, dia, anio) {
	
	var objForma	=	 document.getElementById(formId);
	
	if (objForma != null) {
		
		if (mes < 0) {
			
			mes 	= 	11;
			anio 	= 	--anio;
			
		} else if (mes >= 12 ) {
			
			mes 	= 	0;
			anio 	= 	++anio;
			
		}
		objForma.elements['mes'].value = mes;
		objForma.elements['dia'].value = dia;
		objForma.elements['anio'].value = anio;
		
		objForma.action = recursoId;
		objForma.submit();	
	}
    
	return;
}
function enviarHaciaEventosCartelera(formId, formIdMini, recursoId, mes, anio) {

	var objForma	=	 document.getElementById(formId);
	
	if (objForma != null) {	
		
		if (mes < 0) {
			
			mes 	= 	11;
			anio 	= 	--anio;
			
		} else if (mes >= 12 ){
			
			mes 	= 	0;
			anio 	= 	++anio;
			
		}
		
		objForma.elements['mes'].value 	= mes;
		objForma.elements['anio'].value = anio;
		objForma.elements['dia'].value 	= "";
		
		objForma.action = recursoId;
		objForma.submit();
		//Si esta incluido un minicalendario...
//		var objFormMini	=	document.getElementById(formIdMini);
//		objFormMini.elements["mes"].value = mes;
//		objFormMini.elements["anio"].value = anio;
//		objFormMini.submit();
	}
	return;
}
function enviarHaciaAdmon(recursoId, idEvento, uriWebPage, modo) {
	
	document.forms['frmBuscadorEventosAdmon'].elements['idEvento'].value = idEvento;
	document.forms['frmBuscadorEventosAdmon'].elements['uriWebPage'].value = uriWebPage;	
	document.forms['frmBuscadorEventosAdmon'].elements['modo'].value = modo;
	document.forms['frmBuscadorEventosAdmon'].action = recursoId;
	document.forms['frmBuscadorEventosAdmon'].submit();
	return;
}

function buscar(formaId) {
	
	var bExito	=	false;
	var forma 	=  dojo.byId(formaId);
	
	if (forma != null) {
	
		forma.elements['modo'].value = "indice";
		
		var fechaIni 	= dojo.byId("fechaInicio").value;
		var fechaFin 	= dojo.byId("fechaFinal").value;
		
		if (fechaIni == "" || fechaFin == "") {
			
			return true;
		}
		
		var fechaIniArr	= fechaIni.split("/");		
		var fechaFinArr	= fechaFin.split("/");
		
		
		var fechaIni		= 		new Date(fechaIniArr[1] +"/" +fechaIniArr[0]+"/" +fechaIniArr[2]), 
			fechaFin		= 		new Date(fechaFinArr[1] +"/" +fechaFinArr[0]+"/" +fechaFinArr[2]);		
							
		if (fechaIni.getTime() <= fechaFin.getTime()) {
			
			bExito		=		true;
			
		} else {
			
			alert(getLocalizeString('msgErrFechas'));
			
		}
										
	}
	
	return bExito;	
	
}

function muestraDialogoEliminar(idEvento, uriWebPage) {
		document.forms['frmElimina'].elements['idEvento'].value = idEvento;
		document.forms['frmElimina'].elements['uriWebPage'].value = uriWebPage;			
		dijit.byId('optionsDialog').show();		
	return;
}


function validaCampos(forma) {
	
	var bExito	=	false;
	
	if (forma != null) {
		deshabilitaBotones(forma);
		var fechaIniArr	= dojo.byId("fechaInicio").value.split("/");		
		var fechaFinArr	= dojo.byId("fechaFinal").value.split("/");
		
		var fechaIni		= 		new Date(fechaIniArr[1] +"/" +fechaIniArr[0]+"/" +fechaIniArr[2]), 
			fechaFin		= 		new Date(fechaFinArr[1] +"/" +fechaFinArr[0]+"/" +fechaFinArr[2]);		
				
		if(forma.validate()){
			
			if (fechaIni.getTime() <= fechaFin.getTime()) {
				
				bExito		=		true;
				
			} else {
				alert(getLocalizeString('msgErrFechas'));
				habilitaBotones(forma);
			}
						
		} else {
			alert(getLocalizeString('msgErrDatos'));
			habilitaBotones(forma);
		}
		
	}
	
	return bExito;
}

function validaExtension(nombreArchivo) {
	
	var bOk			=	false;
	
	if (nombreArchivo != null
			&& nombreArchivo != "") {
		
		var nombArch	=	nombreArchivo;
		nombArch		=	nombArch.toLowerCase();
		
		for (var i = 0; i < ARR_EXTS_IMGS.length; i++) {

			if (nombArch.lastIndexOf(ARR_EXTS_IMGS[i]) >= 0) {
				
				bOk 	= 	true;				
				break;
				
			}
			
		}
				
	}
	
	return bOk;
	
}

function validaAltaImg(objForm) {
	
	var bOk		=	false;
	
	if (objForm != null) {
		deshabilitaBotonesHTML(objForm);
		var isTitulo 	= 	(objForm.elements['titulo'].value != null 
									&& objForm.elements['titulo'].value != '');
				
			
		var isFile 		= 	(objForm.elements['file'].value != null 
									&& objForm.elements['file'].value != ''
										&& validaExtension(objForm.elements['file'].value.toLowerCase()));
				
		bOk 			=	(isTitulo && isFile);
		
		if (!bOk) {
			
			alert(getLocalizeString("msgErrDatos"));
			habilitaBotonesHTML(objForm);
			
		}
		
	}
	
	return bOk;
}

function validaAltaEnlace(objForm) {
	var bOk		=	false;
	
	if (objForm != null) {
		deshabilitaBotonesHTML(objForm);
		var isTitulo 	= 	(objForm.elements['titulo'].value != null 
								&& objForm.elements['titulo'].value != '');   

		var url			=   objForm.elements['url'].value;
			
		var isUrl 		= 	(url != null 
								&& url != ''
									&& url.toLowerCase() != URL_PREFIX
										&& url.toLowerCase().lastIndexOf(URL_PREFIX) >= 0 );

		bOk 			=	(isTitulo 
								&& isUrl);

		if (!bOk) {
			
			alert(getLocalizeString("msgErrDatos"));
			habilitaBotonesHTML(objForm);
		}
		     			
	}
	
	return bOk;
}

function muestraDialogoAlta(idImagen, idEvento, nombre) {					
	dijit.byId('optionsDialog').show();		
	return;
}

function muestraConfirmEliminar(idImagen, idEvento, nombre) {
	if (confirm(getLocalizeString("msgConfimEliminar"))) {
		document.forms['frmElimina'].elements['idImagen'].value = idImagen;
		document.forms['frmElimina'].elements['idEvento'].value = idEvento;
		document.forms['frmElimina'].elements['nombre'].value = nombre;
		document.forms['frmElimina'].submit();							    		
	}		
}
function muestraConfirmEliminarEnlace(idEnlace, idEvento, nombre) {
	if (confirm(getLocalizeString("msgConfimEliminar"))) {
		document.forms['frmEventoEnlaceElimina'].elements['idEnlace'].value = idEnlace;
		document.forms['frmEventoEnlaceElimina'].elements['idEvento'].value = idEvento;
		document.forms['frmEventoEnlaceElimina'].submit();							    		
	}		
}
function indicaError(mensaje) {
	if (mensaje != null && mensaje != '') {
		var objMsg	= document.getElementById("error");
		objMsg.innerHTML =mensaje;
	} else {
		objMsg.innerHTML = '';
	}
}

function muestraImg(idHolder, rutaWork, idRegistro, idImagen, tipoArchivo, anchoMax, alturaMax, idSite) {		
	var holderImg 		= 	document.getElementById(idHolder);
	var urlResize		=	rutaWork+"/jsp/gld/calendarioEventos/eventosImageScaler.jsp?idRegistro="+ idRegistro
								+ "&idImagen=" + idImagen
								+ "&width=" + anchoMax
								+ "&height=" + alturaMax
								+ "&idSite=" + idSite
	holderImg.innerHTML = 	'<img alt="Foto" src="'+urlResize+'"></img>';
}

function muestraMensaje(msg) {
	
	if(msg != null 
			&& msg != '') {
		alert(msg);
	}
	
	return;
}
function isNumero(value) {
	var bOk = false;		
	if (value != null) {
		var regExp = /^\d+$/;
		bOk  = regExp.test(value.toString());			
	}
	return bOk;
}
function validarNumero(elem) {
	var bOk = true;
	if (!isNumero(elem.value)) {
		elem.className='dijitReset';
		bOk = false;
	}
	return bOk;
}

function validaFormaAdmonRecurso(objForm, idResource) {
	
	var bOk		=	false;
	
	if (objForm != null) {
		
		var sErrMsg		=	"";
		
		var objNumRegPorPagina		=	objForm.elements["numRegPorPagina" + "_" + idResource];	
		var objTamanioArchivoKB		=	objForm.elements["tamanioArchivoKB" + "_" + idResource];
		var objMaxArchPermUpload	=	objForm.elements["maxArchPermUpload" + "_" + idResource];
		var objMaxEnlacesPermit		=	objForm.elements["maxEnlacesPermit" + "_" + idResource];
		var objKeyGoogleMaps		=	objForm.elements["keyGoogleMaps" + "_" + idResource];
				
		var isNumRegPorPagina		=	validarNumero(objNumRegPorPagina) && objNumRegPorPagina.value > 0;	
		var isTamanioArchivoKB		=	validarNumero(objTamanioArchivoKB) && objTamanioArchivoKB.value > 0;
		var isMaxArchPermUpload		=	validarNumero(objMaxArchPermUpload) && objMaxArchPermUpload.value > 0;
		var isMaxEnlacesPermit		=	validarNumero(objMaxEnlacesPermit) && objMaxEnlacesPermit.value > 0;
		
		var primerMensaje			= 	true;

		if (!isNumRegPorPagina) {
			if (!primerMensaje) {
				sErrMsg	+= "\n";					
			} else {
				primerMensaje	=	false;
			}
			sErrMsg += getLocalizeString("msgErrRegPorPag");				
		}
						
		if (!isTamanioArchivoKB) {
			if (!primerMensaje) {
				sErrMsg	+= "\n";					
			} else {
				primerMensaje	=	false;
			}
			sErrMsg += getLocalizeString("msgErrArchTamanio");				
		}
		
		if (!isMaxArchPermUpload) {
			if (!primerMensaje) {
				sErrMsg	+= "\n";					
			} else {
				primerMensaje	=	false;
			}
			sErrMsg += getLocalizeString("msgErrArchPermit");				
		}
		
		if (!isMaxEnlacesPermit) {
			if (!primerMensaje) {
				sErrMsg	+= "\n";					
			} else {
				primerMensaje	=	false;
			}
			sErrMsg += getLocalizeString("msgErrEnlacPermit");				
		}
		
		if (sErrMsg == "") {
			bOk = true;
		} else {
			muestraMensaje(sErrMsg);
		}
	}
	
	return bOk;			
}

function estadoBotones(forma, deshabilitado) {
		
	if (forma != null) {		
		var objSubmmit	= dojo.byId("submmit");		
		var objCancelar	= dojo.byId("btnCancelar");
		
		objSubmmit.disabled = deshabilitado;
		objCancelar.disabled = deshabilitado;					
	}
	return;
}
function deshabilitaBotones(forma) {
	estadoBotones(forma, true);
}
function habilitaBotones(forma) {
	estadoBotones(forma, false);
}
function estadoBotonesHTML(forma, deshabilitado) {
	
	if (forma != null) {		
		var objSubmmit	= document.getElementById("btnAceptar");	
		objSubmmit.disabled = deshabilitado;
						
	}
	return;
}
function deshabilitaBotonesHTML(forma) {
	estadoBotonesHTML(forma, true);
}
function habilitaBotonesHTML(forma) {
	estadoBotonesHTML(forma, false);
}

function getLocalizeString(s) {
	if (typeof (i18n_eventos) != 'undefined' && i18n_eventos[s]) {
		return i18n_eventos[s];
	}
	return s;
}

function enviarHaciaEvento(idForm, url, id, uriWebPage) {
    
	var objForm	=	document.getElementById(idForm);
	if (objForm != null) {
		objForm.elements['idEvento'].value = id;
		objForm.elements['uriWebPage'].value = uriWebPage;
		objForm.action = url;
		objForm.submit();
	}
	return;
}


