// SHOWDIALOG i CLOSEDIALOG requereixen el codi HTML següent
//   <div id="hidDiv"></div>
// al body del document on s'utilitzen.

function ShowDialog(myMsg) {
  var myBrowser, MSIEpos, doThis, isIE;
  doThis=true;
  isIE=false;
  myBrowser=navigator.appVersion;
  MSIEpos=myBrowser.indexOf("MSIE");
  if (MSIEpos>=0) {
    //Es IExplorer
    isIE=true;
    if (myBrowser.substr(MSIEpos+5,1)<7) doThis=false;
  }
  
  if (!doThis) {alert(myMsg); return false;}
  
  var myDiv;
  myDiv=document.getElementById('hidDiv');
  myDiv.innerHTML='<div style="position: absolute; z-index: 1; top: 0px; left: 0px; width: 100%; height: 2000px; background: #000000; opacity: .6;'+(isIE? 'filter: alpha(opacity=60);': '')+'"></div>'
   +'<div style="padding: 10px; position: absolute; left: 50%; top: 35%; z-index: 2; width: 300px; margin-left: -150px; background: #f3f3f3; border-style: solid; border-color: #CCCCCC #AAAAAA #AAAAAA #CCCCCC; border-width: 1px 2px 2px 1px;">'
   +'<a id="aDialog" style="width: 0px; height: 0px;"></a>'
   +'<table cellspacing="14"><tr><td><img align="top" alt="Icona admiracio" src="/img/exclamation.gif"></td><td>'
   +myMsg.replace(/\n/g,'<br>')
   +'</td></tr></table><center><br><input type="button" id="btDialog" value="Ok" onclick="CloseDialog();" style="width: 60px;"><br><br></center></div>';
   
   //focus en entiqueta oculta per assegurar la visualització del dialog
   document.getElementById('aDialog').focus();
   
   //focus en el button per sortir picant enter
   document.getElementById('btDialog').focus();
   
   return true;
}
  
  
function CloseDialog(myMsg) {
  var myDiv;
  myDiv=document.getElementById('hidDiv');
  myDiv.innerHTML='';
}



function CalculaLletraNIF(DNI) {
  var TC='TRWAGMYFPDXBNJZSQVHLCKET';
  len=DNI.length;
  if ((len <7) || (len> 11)) return ' ';
  return TC.charAt(DNI % 23);
}


function ValidEmail(str) {
  var ip, ia, lp

  if (str.length<5) return false
  if (str.indexOf(' ')>0) return false
  ia=str.indexOf('@')
  if (ia<=0) return false
  ip=str.indexOf('.')
  if (ip<=0) return false

  if (str.indexOf('@', ia+1)>0) return false
  if (str.indexOf('@.')>0) return false
  if (str.indexOf('.@')>0) return false
  if (str.indexOf('..')>0) return false

  while (ip>0) {
    lp=ip
    ip=str.indexOf('.', ip+1)
  }
  return ((lp>0) && (lp<str.length-2) && (lp>str.length-6))
}




function checkDC(cc1,cc2,dc){
  
  // Validar entrada       
  if (!(cc1.match(/^\d{8}$/) && cc2.match(/^\d{10}$/) && dc.match(/^\d{2}$/) )) return false;
  var arrWeights = new Array(1,2,4,8,5,10,9,7,3,6);	// vector de pesos
  var dc1=0, dc2=0;
    	    
  // Cálculo del primer dígito de cintrol
  for (i=7;i>=0;i--) dc1 += arrWeights[i+2] * cc1.charAt(i);
  dc1 = 11 - (dc1 % 11);
  if (11 == dc1) dc1 = 0;
  if (10 == dc1) dc1 = 1;
    	    
  // Cálculo del segundo dígito de control
  for (i=9;i>=0;i--) dc2 += arrWeights[i] * cc2.charAt(i);
  dc2 = 11 - (dc2 % 11);
  if (11 == dc2) dc2 = 0;
  if (10 == dc2) dc2 = 1;

  //Comprobar la coincidencia y delvolver el resultado
  return (10*dc1+dc2 == dc);	// Javascript infiere tipo entero para dc1 y dc2   
}



function ValidCompte(myEnt, myOfi, myDC, myCue){
  return checkDC(myEnt+myOfi, myCue, myDC)
}