function fComprobarCamp(pCamp, compareValue, pText, pTipus)
{
 var vValor;

 if (pTipus) vValor = pCamp.options[pCamp.selectedIndex].value;
 else vValor = pCamp.value;

 if (vValor == compareValue)
 {
  alert(pText);
  if (pCamp.type != "hidden") pCamp.focus();
  return(false);
 }

 return (true);
}


function fComprobarEmail(pEmail,pText)
{
 if ( (pEmail.value.indexOf("@")==-1) || (pEmail.value.indexOf(".")==-1) )
 {
  alert(pText);
  pEmail.focus();
  return false;
 }

 return (true);
}


function fComprobarNumero(pCamp,pTexto,pTipus)
{
 var vValor;

 if (pTipus != null) vValor = pCamp.options[pCamp.selectedIndex].value;
 else vValor = pCamp.value;

 if (isNaN(vValor.replace(",",".")))
 {
  alert(pTexto);
  if (pCamp.type != "hidden") pCamp.focus();
  return(false);
 }

 return (true);
}


function formatNumber(pNum,pDec)
{
 var vchSigne;
 
 if (pNum < 0) 
 {
  vchSigne = "-";
  pNum = -pNum;
 }
 else vchSigne = "";
 
 var vchEntero = formatEntero(String(Math.floor(pNum)));
 var vchNumber = vchEntero;
 var vchNum    = String(pNum);
 var i, n;
  
 if (pDec == 0) return (vchNumber);
 else vchNumber += ".";

 var nPos = vchNum.indexOf(".");
 if (nPos == -1) n = pDec;
 else
 {
  vchNumber += vchNum.substr(nPos + 1);
  n = pDec - vchNum.substr(nPos + 1).length;
 }
  
 for (i = 0; i < n; i++) vchNumber += "0";
 
 return (vchSigne + vchNumber);
}

function isNumber(pValor)
{
 return (!isNaN(fConvertElem(pValor)));
}

function toNumber(pValor)
{
 if (!isNumber(pValor)) return (null);
 
 return (parseFloat(fConvertElem(pValor)));
}

function fRound(pNum,pDec)
{ 
 var m = Math.pow(10,pDec);

 return (Math.round(pNum * m) / m);
}

function fComprobarFloat(pCamp,pTexto,pTipus)
{
 var vValor;
 var vValorIni;
 var vValorFi;

 if (pTipus != null) vValorIni = pCamp.options[pCamp.selectedIndex].value;
 else vValorIni = pCamp.value;

 vValor = parseFloat(vValorIni);
 vValorFi = vValor + '';

 if (isNaN(vValor))
 {
  alert(pTexto);
  pCamp.focus();
  return(false);
 }

 return (true);
}

function fDataValida(pData)
{
 var dateavui=  new Date();
 var datePat = /^(\d{1,2})(\-)(\d{1,2})\2(\d{4})$/;

 var matchArray = pData.match(datePat);
 var vAny = dateavui.getFullYear();

 if (matchArray == null) return false;

 var day = matchArray[1];
 var month = matchArray[3];
 var year = matchArray[4];

 if (year.length==2) year = String(vAny).substr(0,2) + year;

 if (month < 1 || month > 12) return false;
 if (day < 1 || day > 31) return false;
 if ((month==4 || month==6 || month==9 || month==11) && day==31) return false;
 if (month == 2)
 {
  var g = parseInt(year / 4);

  if (day > 29 || (day == 29 && (year / 4) != g)) return false;
 }

 return true;
}

function fHoraValida(pHora)
{
 var horaPat = /^(\d{1,2})(:)(\d{1,2})$/;
 var matchArray = pHora.match(horaPat);

 if (matchArray == null) return false;

 var hora  = matchArray[1];
 var minut = matchArray[3];

 if (hora < 0 || hora > 23) return false;
 if (minut < 0 || minut > 59) return false;

 return true;
}


/**********************************************/
/*******  Si pD1 < pD2 --> retorna (-1) *******/
/*******  Si pD1 = pD2 --> retorna (0) ********/
/*******  Si pD1 > pD2 --> retorna (1) ********/
/**********************************************/
function DataMesGran(pD1,pD2)
{
 var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/;
 var matchArray1 = pD1.match(datePat);
 var matchArray2 = pD2.match(datePat);

 if ( (matchArray1 == null) || (matchArray2 == null) ) return -1;

 var d1 = parseFloat(matchArray1[1]);
 var m1 = parseFloat(matchArray1[3]);
 var a1 = parseFloat(matchArray1[4]);

 var d2 = parseFloat(matchArray2[1]);
 var m2 = parseFloat(matchArray2[3]);
 var a2 = parseFloat(matchArray2[4]);

 if ( (a1 == a2) && (m1 == m2) && (d1 == d2) ) return 0;
 else if (a1  > a2) return 1;
 else if ( (a1 == a2) && (m1 > m2) ) return 1;
 else if ( (a1 == a2) && (m1 == m2) && (d1 > d2) ) return 1;

 return -1;
}


/**********************************************/
/*******  Si pH1 < pH2 --> retorna (-1) *******/
/*******  Si pH1 = pH2 --> retorna (0) ********/
/*******  Si pH1 > pH2 --> retorna (1) ********/
/**********************************************/
function HoraMesGran(pH1,pH2)
{
 var horaPat = /^(\d{1,2})(:)(\d{1,2})$/;
 var matchArray1 = pH1.match(horaPat);
 var matchArray2 = pH2.match(horaPat);

 if ( (matchArray1 == null) || (matchArray2 == null) ) return -1;

 var h1 = parseInt(matchArray1[1]);
 var m1 = parseInt(matchArray1[3]);

 var h2 = parseInt(matchArray2[1]);
 var m2 = parseInt(matchArray2[3]);

 if ( (h1 == h2) && (m1 == m2) ) return 0;
 else if (h1  > h2) return 1;
 else if ( (h1 == h2) && (m1 > m2) ) return 1;

 return -1;
}

function fParam (pVariable)
{
 var wCadena = location.search + '&';

 if (wCadena.indexOf(pVariable) == -1) return (null);
 
 var wInici = wCadena.indexOf(pVariable) + pVariable.length + 1;
 var wFin = wCadena.indexOf('&',wInici);

 return (wCadena.substr(wInici,wFin-wInici));
}


function fOpenWindow (pUrl, pTarget, pAtributos)
{
 window.open(pUrl, pTarget, pAtributos);
}


function getUrl()
{
 return (window.location.href);
}

function fNavegador()
{
 var vNavigator = navigator.appName;
 var vVersion = parseInt(navigator.appVersion);
 var vRet;

 if (vNavigator == "Netscape") vRet = "N"
 else vRet = "IE";

 if (vVersion >= 5)
 {
  if (vNavigator == "Netscape") vRet += "6";
  else vRet += "5";
 }
 else vRet += "4";

 return (vRet);
}


function fGetForm (pForm, pLayer)
{
 var nNavegador = fNavegador();

 if (nNavegador.substr(1,1) >= 6) 
 {
  if (document.getElementById(pForm)) return (document.getElementById(pForm));
 }
 else
 {
  if (nNavegador.substr(0,1) == "N")
  {
   if (pLayer == null)
   {
    if (document.forms[pForm]) return (document.forms[pForm]);
   }
   else
   {
    if (document.layers[pLayer].document.forms[pForm]) return (document.layers[pLayer].document.forms[pForm]);
   }
  }
  else
  {
   if (document.all[pForm]) return (document.all[pForm]);
  }
 }

 return (null);
}
