	
	/********************************************************************************************** 
	*	function ognGetXmlVar(xmlElement,strVarName)
	*		
	*		La funció retorna el valor de la variable identficada pel segon parŕmetre enmagatzemada
	*		en el document XML aportat com a primer parŕmetre.
	*
	*	---------------------------------------------------------------------------
	*		
	*		$xmlElement		-> Document XML
	*		$strVarName		-> Nom de la variable que volem consultar
	*
	***********************************************************************************************/
	
	 			                     			
		function ognGetXmlVar(xmlElement,strVarName){
			if (xmlElement.getElementsByTagName(strVarName).item(0).childNodes.length>0)
				return (xmlElement.getElementsByTagName(strVarName).item(0).childNodes.item(0).data);
			else
				return "";
		}
	
	/**********************************************************************************************/
   
   
	/********************************************************************************************** 
	*	function ognGetXmlData(xmlElement,strDataName)
	*		
	*		La funció retorna el valor de la variable identficada pel segon parŕmetre enmagatzemada
	*		en el document XML aportat com a primer parŕmetre.
	*
	*	---------------------------------------------------------------------------
	*		
	*		$xmlElement		-> Document XML
	*		$strDataName	-> Nom de la variable que volem consultar
	*
	***********************************************************************************************/
	
		function ognGetXmlData(xmlElement,strDataName){
			
			var oNode	= xmlElement.getElementsByTagName(strDataName).item(0);
			for(var i=0;i<oNode.childNodes.length;i++){
				if(oNode.childNodes.item(i).nodeType==4){
					return(oNode.childNodes.item(i).nodeValue);					
				}			
			}
			return(null);
			
		}
	
	/**********************************************************************************************/
   
	
	/********************************************************************************************** 
	*	function ognWriteMail(strNom,strDomini)
	*		
	*		La función invocada en un href obre el programa de correu de l'usuari a fi d'enviar un mail
	*		a l'adreça de correu formada per la concatenació del primer parŕmetre, l'arroba i el segon
	*		parŕmetre. D'aquesta forma evitem escriure adreces de correu completes en el codi del site i 
	*		evitem que puguin ser rastrejades per possibles spammers.
	*
	*	---------------------------------------------------------------------------
	*		
	*		$strNom		-> Part de l'adreça de correu amb el nom d'usuari (abans de l'arroba)
	*		$strDomini	-> Part de l'adreça de correu amb el domini (després de l'arroba)
	*
	***********************************************************************************************/
	
	   function ognWriteMail(strNom,strDomini){
				
			window.open('mailto:'+strNom+'@'+strDomini,'_self');
			
		}
		
   /**********************************************************************************************/
   
   			                     			
				                     			   
   /********************************************************************************************** 
	*	function ognInitDropList(dieDropList,derValue)
	*		
	*		La función inicializa la lista desplegable pasada como primer parámetro dejando
	*		seleccionada la opción cuyo valor coincide con el segundo parámetro.
	*		En caso de no hallarse coincidencia la función no hace nada con lo que la lista
	*		aparecerá inicializada el la primera de sus opciones (o aquella seleccionada por
	* 		defecto mediante el atributo selected).
	*
	*	---------------------------------------------------------------------------
	*		
	*		$dieDropList	-> Objeto HTMLSelectElement a inicializar
	*		$derValue		-> Valor de la opción a la que deseamos inicializar la lista
	*
	***********************************************************************************************/
	
	   function ognInitDropList(dieDropList,derValue){
				
			for (i=1;i<dieDropList.length;i++){
				if (dieDropList.options[i].value==derValue){
					dieDropList.selectedIndex = i;
					return;
				}
			}
			
		}
		
   /**********************************************************************************************/
   
   
   /********************************************************************************************** 
	*	function ognIsCheckBoxEmpty(derCheckBox)
	*		
	*		La función comprueba que al menos una de las opciones de una lista de checkboxes esté
	* 		seleccionada
	*
	*	---------------------------------------------------------------------------
	*		
	*		$dieDropList	-> Objeto NodeList que contiene las diferentes opcioneslista
	*
	***********************************************************************************************/
	
	   function ognIsCheckBoxEmpty(derCheckBox){
			
			for (i=0;i<derCheckBox.length;i++){
				if (derCheckBox.item(i).checked)
					return(true);
			}
			
			return(false);			
			
		}
		
   /**********************************************************************************************/
   
   
   /********************************************************************************************** 
	*	function ognValidateEmail (derEmail)
	*		
	*		Valida que la sintaxis de una cadena dada coincida con la de una dirección válida de 
	*		e-mail.
	*
	*	---------------------------------------------------------------------------
	*		
	*		$derEmail	-> Cadena con la direccion de correo que queremos validar 
	*
	***********************************************************************************************/
	
		function ognValidateEmail(derEmail) {
		    
		    str = derEmail.toLowerCase( );
		    
		    if (str.indexOf("@") > 1) {
		        var addr = str.substring(0, str.indexOf("@"));
		        var domain = str.substring(str.indexOf("@") + 1, str.length);
		        // at least one top level domain required
		        if (domain.indexOf(".") == -1) {
		            //alert("Verify the domain portion of the email address.");
		            return false;
		        }
		        // parse address portion first, character by character
		        for (var i = 0; i < addr.length; i++) {
		            oneChar = addr.charAt(i).charCodeAt(0);
		            // dot or hyphen not allowed in first position; dot in last
		            if ((i == 0 && (oneChar == 45 || oneChar == 46))  || 
		                (i == addr.length - 1 && oneChar == 46)) {
		                //alert("Verify the user name portion of the email address.");
		                return false;
		            }
		            // acceptable characters (- . _ 0-9 a-z)
		            if (oneChar == 45 || oneChar == 46 || oneChar == 95 || 
		                (oneChar > 47 && oneChar < 58) || (oneChar > 96 && oneChar < 123)) {
		                continue;
		            } else {
		                //alert("Verify the user name portion of the email address.");
		                return false;
		            }
		        }
		        for (i = 0; i < domain.length; i++) {
		            oneChar = domain.charAt(i).charCodeAt(0);
		            if ((i == 0 && (oneChar == 45 || oneChar == 46)) || 
		                ((i == domain.length - 1  || i == domain.length - 2) && oneChar == 46)) {
		                //alert("Verify the domain portion of the email address.");
		                return false;
		            }
		            if (oneChar == 45 || oneChar == 46 || oneChar == 95 || 
		                (oneChar > 47 && oneChar < 58) || (oneChar > 96 && oneChar < 123)) {
		                continue;
		            } else {
		                //alert("Verify the domain portion of the email address.");
		                return false;
		            }
		        }
		        return true;
		    }
		    //alert("The email address may not be formatted correctly. Please verify.");
		    return false;
		}	
	
   /**********************************************************************************************/
   
   /********************************************************************************************** 
	*	function ognValidateNumber(strDecimal)
	*		
	*		La funció comprova la validesa d'un nombre decimal expressat en format llatí (coma decimal i punt
	*		separador de mil.lers).
	*		Considerarem la cadena buida com un valor vŕlid. 
	*
	*	---------------------------------------------------------------------------
	*		
	*		strDecimal		-> Cadena amb el nombre decimal en format llatí
	*
	***********************************************************************************************/
	
	   function ognValidateNumber(strDecimal){
			if (strDecimal==''){
				return(true);
			}	
			else{
				return(!isNaN(ognStr2Decimal(strDecimal)));
			}
		}
		
   /**********************************************************************************************/
   
   
   /********************************************************************************************** 
	*	function ognIsDate(dieDate)
	*		
	*		Validación de una fecha introducida por el usuario.
	*		Valida que la fecha esté introducida en formato dd/mm/yyyy.
	*		La primere linea supone la aceptación de valores nulos para el campo fecha.
	*
	*	---------------------------------------------------------------------------
	*		
	*		$dieDate	-> Cadena introducida por el usuario con la fecha que deseamos validar
	*
	***********************************************************************************************/
	
		function ognIsDate(dieDate) {
			if (dieDate=='') return(true); //Permitimos valor nulo para el campo de fecha
			var DatosFecha = dieDate.split('/');
			var Fecha = new Date();
			Fecha.setFullYear(DatosFecha[2],DatosFecha[1]-1,DatosFecha[0]);		
			return ((Fecha.getMonth()==DatosFecha[1]-1)&&(DatosFecha[2].length==4));
		}
	
   /**********************************************************************************************/
   
  
   /********************************************************************************************** 
	*	function ognIsDatePreterita(dieDate)
	*		
	*		Valida que la fecha pasada como parámetro sea igual al día de hoy o posterior
	*		La función devuelve true en caso de que la fecha sea anterior al día de hoy
	*
	*	---------------------------------------------------------------------------
	*		
	*		$dieDate	-> Objeto Date con la fecha que deseamos validar
	*
	***********************************************************************************************/
	
		function ognIsDatePreterita(dieDate) {
			
			var today	= new Date();
			today.setHours(0);
			today.setMinutes(0);
			today.setSeconds(0);
			today.setMilliseconds(0);
			
			if (dieDate<today)
				return(true);
			else
				return(false);
		}
	
   /**********************************************************************************************/
   
   
   /********************************************************************************************** 
	*	function ognInsertRow($oTable,$strHTML)
	*		
	*		La función recibe como primer parámetro un objecto HtmlTableElement y le inserta una 
	*		nueva fila al final. El contenido de la nueva fila (<tr>) se aporta como segundo parámetro.
	*
	*	---------------------------------------------------------------------------
	*		
	*		$oTable		-> Objeto HtmlTableElement con la tabla a tratar
	*		$strHTML	-> Contenido del nuevo tr a insertar. 
	*
	***********************************************************************************************/
	
		function ognInsertRow(oTable,strHTML){
		
			var theTR	= oTable.insertRow(oTable.rows.length);
			theTR.innerHTML	= strHTML;
			
		}
	
	
   	/**********************************************************************************************/
   
   
   
   /********************************************************************************************** 
	*	function ognWinCenter(oWin,nWidth,nHeight)
	*		
	*		La función recibe como primer parámetro un objeto Window y lo centra en pantalla
	*
	*	---------------------------------------------------------------------------
	*		
	*		$oWin		-> Objeto ventana a centrar
	*		$nWidth		-> Anchura de la ventana a centrar
	*		$nHeight	-> Altura de la ventana a centrar
	*		
	***********************************************************************************************/
	
		function ognWinCenter(oWin,nWidth,nHeight){
	
			xW= (screen.width - nWidth)/2;
			yW= (screen.height - nHeight)/2;
			oWin.moveTo(xW,yW);
	
		}
	
   	/**********************************************************************************************/
   
   
   

   /********************************************************************************************** 
	*	function ognPerfectOpen(strUrl,strWinName,nWidth,nHeight,bHasScrollBars)
	*		
	*		La función abre en una nueva ventana de identificador strWinName la URL aportada como primer parámetro.
	*		Para centrar la nueva ventana utilizaremos la función ognWinCenter().
	*
	*	---------------------------------------------------------------------------
	*		
	*		strURL			-> URL del documento que deseamos abrir en la nueva ventana
	*		strWinName		-> Nombre del objeto ventana recien creado.
	*		nWidth			-> Anchura en px de la nueva ventana.
	*		nHeight			-> Altura en px de la nueva ventana.
	*		bHasScrollBars	-> Booleano que indica si deseamos que la nueva ventana muestre barra de scroll
	*
	***********************************************************************************************/
	
		function ognPerfectOpen(strUrl,strWinName,nWidth,nHeight,bHasScrollBars){
		
			jsWinFormat	=	'width='+nWidth+', height='+nHeight;
			if (bHasScrollBars!=0) {
				jsWinFormat = jsWinFormat + ',scrollbars=yes';
				
			}
			theNewWin=window.open(strUrl,strWinName,jsWinFormat);
			ognWinCenter(theNewWin,nWidth,nHeight);
			theNewWin.focus();
			
			return(theNewWin);
		}
	
	
   	/**********************************************************************************************/
   
   
	/********************************************************************************************** 
	*	function ognStr2Decimal(strDecimal)
	*		
	*		La funció comprova la validesa d'un nombre decimal expressat en format llatí (coma decimal i punt
	*		separador de mil.lers) i retorna el decimal corresponent.
	*		En cas de no poder fer la conversió retorno NaN.
	*
	*	---------------------------------------------------------------------------
	*		
	*		strDecimal		-> Cadena amb el nombre decimal en format llatí
	*
	***********************************************************************************************/
	
	   function ognStr2Decimal(strDecimal){
				
			return(parseFloat(strDecimal.replace(/\./g,'').replace(/,/g,'.')));
			
		}
		
   /**********************************************************************************************/
   
  
  	/********************************************************************************************** 
	*	function ognPreloadImage(strImgObj,strImgSrc)
	*		
	*		Precarrega una imatge en un objecte image de javascript amb la imatge indicada a strImgSrc
	*	---------------------------------------------------------------------------
	*		
	*		strImgObj		-> Nom del nou objecte javascript amb la immatge.
	*		strImgSrc		-> Path del fitxer amb la imatge.
	*
	***********************************************************************************************/
	
		function ognPreloadImage(strImgObj,strImgSrc) {
			if (document.images) {
					eval(strImgObj+' = new Image()');
					eval(strImgObj+'.src = "'+ strImgSrc +'"');
			}
		}
		
   	/**********************************************************************************************/
   
    /********************************************************************************************** 
	*	function ognChangeImage(strDivName,strImgName,strImgObj)
	*		
	*		Substitueix la imatge que apareix en el niu HTML etiquetat com a strImgName. El primer parŕmentre
	*		indica la div en la que es troba el niu. Si no és a dins de cap div, passarem null.
	*
	*	---------------------------------------------------------------------------
	*		
	*		strDivName		-> Nom de la div a on es troba el niu (null si no s'escau)
	*		strImgSrc		-> Nom del niu HTML a on se situa la imatge a canviar (atribut ID o name en el seu defecte)
	*		strImbObj		-> Nom de l'objecte JavaScript que conté la nova imatge.
	*
	***********************************************************************************************/
	
		function ognChangeImage(strDivName,strImgName,strImgObj) {
			if (document.getElementById){
				oImage	= document.getElementById(strImgName);
				oImage.src	= eval(strImgObj +".src");
			}
			else { // old browsers
				if (document.images) {
					if (document.layers && strDivName!=null) 
						eval('document.'+ strDivName +'.document.images["'+ strImgName +'"].src = '+ strImgObj +'.src');
					else 
						document.images[strImgName].src = eval(strImgObj +".src");
				}
			}
		}

		
   	/**********************************************************************************************/
	