function calculaDC(Banco, Cuenta)
{
      Pesos= new Array(6,3,7,9,10,5,8,4,2,1);
      var result ='';
      var iTemp =0;
	  	  
      for (var n=0;n<=7;n++){
         iTemp  = iTemp + Banco.substr(7 - n, 1) * Pesos[n];
      }
      result = 11 - iTemp % 11;
      if (result > 9){
        result=1-result % 10;
      }
      iTemp=0;
      for (var n=0;n<=9;n++){
         iTemp  = iTemp + Cuenta.substr(9 - n, 1) * Pesos[n];
      }
      iTemp =11 - (iTemp % 11);
      if (iTemp > 9){
       iTemp =1-(iTemp % 10);
      }
      result=result*10+iTemp;
      return(result);
 }
 
function checkEmail(email)
{
	var filter=/^[A-Za-z][A-Za-z0-9_.\-]*@[A-Za-z0-9_\-]+\.[A-Za-z0-9_.]+[A-za-z]$/;
	return filter.test(email.value) ;
}

function checkRequired(myForm, type){
var pass=true;

switch ( type )
{
	case "S":
		toCheck = new Array ( "first_name", "last_name", "email", "street", "zip", "city", "state", "00N800000040fzd" , "00N800000040fze" ,"00N800000042DjZ" , "00N800000042Dja" , "00N800000042DjX" , "00N800000042DjY" );
		break;
	case "V":
		toCheck = new Array ( "first_name", "last_name", "email", "city", "00N800000042Djm" );
		break;
	case "D":
		toCheck = new Array ( "first_name", "email", "state" );
		break;
}

for (i=0;i<myForm.length;i++){
	var tempobj=myForm.elements[i]
	mustfill = false;
	for ( j=0; j<=toCheck.length;j++ ) {
		if (tempobj.name == toCheck[j] ) mustfill = true;
	}
	
	if ( mustfill ) {
		if 	(((tempobj.type=="text"||tempobj.type=="textarea")&&tempobj.value=="")||(tempobj.type.toString().charAt(0)=="s"&&tempobj.selectedIndex==-1)){
			pass=false;
         break;
		}
	}
	}
	tempobj.focus();
	return pass;
}

function checkForm( myForm, type )
{
if ( ! checkEmail ( myForm.email ) ) {
  alert ( "La direccion de correo no es correcta" );
	myForm.email.focus();
	return false;
}
else 
if ( ! checkRequired ( myForm, type ) ) {
	alert("Por favor, rellena todos los campos obligatorios");
	return false;
}
else 
if ( type == "S" ) {
  entidad = document.getElementsByName ( "00N800000042DjZ" );	
  sucursal = document.getElementsByName ( "00N800000042Dja" );	
  dc = document.getElementsByName ( "00N800000042DjX" );	
  cuenta = document.getElementsByName ( "00N800000042DjY" );
  otracantidad = document.getElementById ( "otracantidad" );
  cantidad = document.getElementsByName ( "cantidad" );
  state = document.getElementById ( "state" );
  fnacimiento = document.getElementById ( "00N800000040fzt" );
  cp = document.getElementById ( "zip" );

  if ( document.getElementById ( "otra" ).checked ) {
      cuota = otracantidad.value ;
      if ( cuota < 1 || cuota > 5000 || isNaN(cuota) ) {
         alert("Por favor, introduce un valor correcto como cuota de socio");
         otracantidad.focus();
         return false;
      }
      else 
      {
         delete otracantidad;
         delete cantidad;
         setCuota ( cuota ) ;
      }
  }

  if ( document.getElementById ( "sexo" ).value == 'false' ) {
	 alert("Por favor, rellena todos los campos obligatorios");
    document.getElementById ( "00N80000004LfIS" ).focus();
    return false;
  }

  if ( fnacimiento.length > 0 ) {
  a_fnac = fnacimiento.value.split('/');

  if ( a_fnac[0] < 1 || a_fnac[0] > 31 || 
       a_fnac[1] < 1 || a_fnac[1] > 12 || 
       a_fnac[2] < 1900 || a_fnac[2] > 2010 ) {
     alert ( "Por favor, introduce una fecha correcta en el formato DD/MM/AAAA.");
     fnacimiento.focus();
     return false;
  }
  }

  patt = new RegExp ( '^[0-9][0-9][0-9][0-9][0-9]$' );
  if ( ! patt.test(cp.value) ) {
     alert ( "Por favor, introduce un código postal correcto (5 cifras)" );
     cp.focus();
     return false;
  }

  if ( state.value == "Seleccionar" ) {
    alert("Por favor, elige una provincia");
    state.focus();
    return false;
  }

//	alert ( entidad[0].value + " " + sucursal[0].value + " " + dc[0].value + " " + cuenta[0].value );
	
	if ( calculaDC ( entidad[0].value+sucursal[0].value, cuenta[0].value ) != dc[0].value ) {
		alert ( "Los datos bancarios son incorrectos. Por favor introdúcelos de nuevo" );
		entidad[0].focus();
		return false;
		}
}
return true;
}

function setCuota(amount) {
   document.getElementById('00N800000040fzd').value = amount;
}

/* Donativo */

function setAmount(amount) {
   document.getElementById('a3').value = amount;
   document.getElementById('amount').value = amount;
}

function sendDonation () {
   if ( document.getElementById('otra').checked )
      document.getElementById('a3').value = 
      document.getElementById('amount').value = 
      document.getElementById('otracantidad').value;
      
   if ( document.getElementById('cmd').value == '_xclick' )
      document.getElementById('a3').value = '';
   else
      document.getElementById('amount').value = '';
}

function setMode(mode) {
   if ( mode == 'puntual' ) {
         document.getElementById('cmd').value = '_xclick';
         document.getElementById('item_name').value = 'Donativo a HazteOir.org';
         document.getElementById('item_number').value = '20071125';
         document.getElementById('bn').value = 'PP-DonationsBF';
         document.getElementById('no_shipping').value = '0';
         document.getElementById('no_note').value = '1';
   } else {
         document.getElementById('cmd').value = '_xclick-subscriptions';
         document.getElementById('item_name').value = 'Donativo mensual a HazteOir.org';
         document.getElementById('item_number').value = '20071126';
         document.getElementById('bn').value = '';
         document.getElementById('no_shipping').value = '';
         document.getElementById('no_note').value = '';
   }
}
