/*******************************************************************************
 * script.js
 *
 * Copyright (c) 2002, 2006 SoftWerk
 *
 * Loades med: <script language="javascript" src="script.js"></script>
 * Indeholder globale felt- og formvalideringsrutiner mv.
 *
 * 2002.09.25 SWE Udpluk specielt til barkassen.dk
 * 2002.10.31 SWE Tilføjet isNotNull()
 * 2003.03.01 SWE Tilføjet areEqual()
 * 2004.02.11 SWE Tilføjet replaceSpam()
 * 2004.02.27 SWE Ændret til antiSpam()
 * 2006.03.14 SWE Ændret lastcentury til century
 ******************************************************************************/

/*******************************************************************************
 * Felt validering
 ******************************************************************************/

//------------------------------------------------------------
function makeValidDate(pElement,century) {
//
// Lav pElement om til en valid dato i format DD.MM.YYYY
// Tøm pElement hvis det ikke er validt
// Kald:  onchange="makeValidDate(this)"
// Eller: onchange="makeValidDate(this,1900)"
//
// 27.03.01 SW  Tilrettet
// 10.01.01 SW  Totalt omskrevet til MySQL format: YYYY-MM-DD
// 2002.09.25 SWE Skrevet tilbage til DD-MM-YYYY
// 2005.12.20 SWE Tilføjet lastcentury
// 2006.03.14 SWE Ændret lastcentury til century
// 2006.08.30 SWE Fejlrettelse i default YY
//------------------------------------------------------------
  var DD;
  var MM;
  var YY;
  var now = new Date();

  switch(pElement.value.length) {
  case 10:  // DD-MM-YYYY
      DD = parseInt(pElement.value.substr(0,2),10);
      MM = parseInt(pElement.value.substr(3,2),10);
      YY = parseInt(pElement.value.substr(6,4),10);
      break;
  case 8:   // DDMMYYYY , DD-MM-YY
      if (isNaN(parseInt(pElement.value.substr(2,1),10))) { // DD-MM-YY
        DD = parseInt(pElement.value.substr(0,2),10);
        MM = parseInt(pElement.value.substr(3,2),10);
        YY = parseInt(pElement.value.substr(6,2),10);
        YY = (century?century:2000)-0+YY;
      } else {                                              // DDMMYYYY
        DD = parseInt(pElement.value.substr(0,2),10);
        MM = parseInt(pElement.value.substr(2,2),10);
        YY = parseInt(pElement.value.substr(4,4),10);
      }
      break;
  case 6:   // DDMMYY
      DD = parseInt(pElement.value.substr(0,2),10);
      MM = parseInt(pElement.value.substr(2,2),10);
      YY = parseInt(pElement.value.substr(4,2),10);
      YY = (century?century:2000)-0+YY;
      break;
  case 4:   // DDMM
      DD = parseInt(pElement.value.substr(0,2),10);
      MM = parseInt(pElement.value.substr(2,2),10);
      YY = (century?century:now.getFullYear());
      break;
  default:
      DD = parseInt(pElement.value,10);
      MM = now.getMonth()+1;
      YY = (century?century:now.getFullYear());
  }
//  if (YY < 100)
//	  if (YY > 10)
//	    YY += 1900;
//	  else
//	    YY += 2000;
  
  if (isNaN(DD) || isNaN(MM) || isNaN(YY) || DD<1 || DD>31 || MM<1 || MM>12 || YY<1000) {
    pElement.value = '';
    return false;
  }

  if (DD>30 && (MM==2||MM==4||MM==6||MM==9||MM==11)
  ||  DD>29 &&  MM==2 && !YY%4
  ||  DD>28 &&  MM==2 &&  YY%4) {
    pElement.value = '';
    return false;
  }

  pElement.value = (DD<10?'0':'')+DD+'-'+(MM<10?'0':'')+MM+'-'+YY;
  return true;
}

//------------------------------------------------------------
function makeValidNumber(pElement) {
//
// Lav pElement om til et validt tal 
// Tøm pElement hvis det ikke er validt
// Kald: onchange="makeValidNumber(this)"
//
// 2002.11.08  SWE  Oprettet
//------------------------------------------------------------
  var nVal;

  nVal = parseFloat(pElement.value);
  if (isNaN(nVal)) {
    pElement.value = '';
    return false;
  } else {
    pElement.value = nVal;
    return true;
  }
}

//------------------------------------------------------------
function makeValidTime(pElement) {
//
// Lav pElement om til et validt tidspunkt i format HH:MM
// Tøm pElement hvis det ikke er validt
// Kald: onchange="makeValidTime(this)"
//
// 27.03.01 SW  Tilrettet
//------------------------------------------------------------
  var nTimer;
  var nMinutter;
  var len;
  
  nTimer = parseInt(pElement.value,10);
  if (isNaN(nTimer)) nTimer = 0;
  if (nTimer < 0  ||  nTimer > 23) {
    pElement.value = '';
    return false;
  } else {
    if (nTimer < 10) {
      nTimer = '0' + nTimer;
    } else {
      nTimer += '';
    }
  }

  nIndex = pElement.value.indexOf(':');
  if (nIndex < 0) {
    nIndex = pElement.value.indexOf('.');
    if (nIndex < 0)
      nIndex = pElement.value.indexOf(',');
  }

  if (nIndex >= 0) {
    nMinutter = parseInt(pElement.value.substr(nIndex+1),10);
    if (isNaN(nMinutter)) nMinutter = 0;
    if (nMinutter < 0  ||  nMinutter > 59) {
      pElement.value = '';
      return false;
    } else {
      if (nMinutter < 10) {
        nMinutter = '0' + nMinutter;
      } else {
        nMinutter += '';
      }
    }
  } else {
    nMinutter = '00';
  }

  pElement.value = nTimer + ':' + nMinutter;
  return true;
}


/*******************************************************************************
 * Form validering
 ******************************************************************************/

//------------------------------------------------------------
function areEqual(pElement1, pElement2, pMessage) {
//
// Udskriv pMessage og return false hvis ikke
// pElement1 er identisk med pElement2
// Kald: OK = areEqual(input.p_kodeord, input.p_kodeord2, 'fejltekst');
//
// 2003.03.01 SWE Oprettet
//------------------------------------------------------------
  if (pElement1.value != pElement2.value) {
    alert(pMessage);
    pElement1.focus();
    return false;
  } else {
    return true;
  }
}

//------------------------------------------------------------
function isNotNull(pElement, pMessage) {
//
// Udskriv pMessage og return false hvis pElement er tomt
// Kald: OK = isNotNull(form1.alder,'fejltekst');
//
// 27.03.01 SW  Tilrettet
//------------------------------------------------------------
  if (!pElement.value) {
    alert(pMessage);
    pElement.focus();
    return false;
  } else {
    return true;
  }
}


/*******************************************************************************
 * Hjælpe funktioner
 ******************************************************************************/

//------------------------------------------------------------
function antiSpam(pElement,pMail) {
//
// Konverterer om nødvendig email adresse fra navn#domain.com
// og sætter href til mailto:navn@domain.com
//
// <a href="" onmouseover="antiSpam(this,'webmaster#kas.dk')">webmaster[at]kas.dk</a>
//
// 2004.02.11 SWE Oprettet
// 2004.02.27 SWE Fornyet
//------------------------------------------------------------
  mail = new String(pMail);
  pElement.href='mailto:' + mail.replace('#','@');
}


