// JavaScript Document
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}


function agregar_a_favoritos(url,titulo){
   if ((navigator.appName=="Microsoft Internet Explorer") && 
         (parseInt(navigator.appVersion)>=4)) {
      window.external.AddFavorite(url,titulo);
   } else { 
      if(navigator.appName == "Netscape") 
         alert("Presione Crtl+D para agregar este sitio en sus Favoritos"); 
   }
} 


/* CREACION DE UN OBJETO AJAX 
 Primero se intenta obtener mediante la creación de un objeto ActiveX, 
 que es la forma que se usa para Internet Explorer, hasta dentro de poco 
 porque IE7 lo va a traer de forma nativa. La siguiente manera es instanciándolo
 directamente, que se usa en otros navegadores como Firefox.*/

function objeto_ajax() {
	try {
		_ajaxobj = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
		try {
			_ajaxobj = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (E) {
			_ajaxobj = false;
		}
	}
   
	if (!_ajaxobj && typeof XMLHttpRequest!='undefined') {
		_ajaxobj = new XMLHttpRequest();
	}
	
	return _ajaxobj;
}



// Documento JavaScript
// Esta función cargará las paginas
function llamarasincrono (url, id_contenedor)
{
	// Instanciamos el objecto XMLHttpRequest
	pagina_requerida = objeto_ajax();
    pagina_requerida.onreadystatechange = function ()
    {
        // función de respuesta
        cargarpagina (pagina_requerida, id_contenedor);
    }
	
    pagina_requerida.open ('GET', url, true); // asignamos los métodos open y send
    pagina_requerida.send (null);
}


function cambiar_pagina (url, id_contenedor, atras)
{
	
	if (url=="yo"){
  	   window.location = "inicio.php"; 
	}else{
	// Instanciamos el objecto XMLHttpRequest
	pagina_requerida = objeto_ajax();
	pagina_requerida.onreadystatechange = function ()
	{
		// función de respuesta
		cargarpagina (pagina_requerida, id_contenedor);
	}
	variables = "atras="+atras;
	pagina_requerida.open ('GET', url+"?&"+variables, true); // asignamos los métodos open y send
	pagina_requerida.send (null);
		}
}


function llamarasincrono_descarga (url, id_contenedor, fichero, ruta)
{
	// Instanciamos el objecto XMLHttpRequest
	pagina_requerida = objeto_ajax();
	
	pagina_requerida.onreadystatechange = function ()
	{
		// función de respuesta
		cargarpagina (pagina_requerida, id_contenedor);
	}
	variables = "file="+fichero+"&ruta="+ruta;
	pagina_requerida.open ('GET', url+"?&"+variables, true); // asignamos los métodos open y send
	pagina_requerida.send (null);
}



// todo es correcto y ha llegado el momento de poner la información requerida
// en su sitio en la pagina xhtml
function cargarpagina (pagina_requerida, id_contenedor)
{
/*	if(pagina_requerida.readyState==1){ // Preloader
	document.getElementById(id_contenedor).innerHTML = "<table class='MenuNormal' width='100%' border='0' cellpadding='0' cellspacing='0'>
  <tr>
    <td valign='top'><table width='100%' height='475' border='0' cellspacing='0' cellpadding='10'>
      <tr>
        <td valign='top'><div align='justify'>
            <table width='100%' border='0' cellspacing='0' cellpadding='0'>
              <tr>
                <td class='Cabezera' valign='top'><strong>CARGANDO... </strong></td>
              </tr>
            </table>
           <div id='preloader' align='center'><img src='images/ajax-loader.gif' width='32' height='32' /></div>
            </td>
      </tr>
    </table></td>	
        <td width='47' bgcolor='#AFBEB6'>&nbsp;</td>
  </tr>
</table>";

	}else if(pagina_requerida.readyState==4){
			if(pagina_requerida.status==200){
				   	//mostramos los datos dentro de la div
					document.getElementById (id_contenedor).innerHTML = pagina_requerida.responseText;
			}else if(pagina_requerida.status==404){
					document.getElementById(id_contenedor).innerHTML = "La página no existe";
			}else{
					//mostramos el posible error
					document.getElementById(id_contenedor).innerHTML = "Error:".pagina_requerida.status; 
			}
   }
	*/
	//////////////////////////////////////////
	
   if (pagina_requerida.readyState == 4 && (pagina_requerida.status == 200 || window.location.href.indexOf ("http") == - 1))
	{
	    document.getElementById (id_contenedor).innerHTML = pagina_requerida.responseText;
	}
}




// Comrpobar si un e-mail es correcto
	function validarEmail(valor)
	{
		if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(valor))
		{
			return (true)
		} 
		else 
		{
	    	return (false);
	  	}
	 }
	 
	 
/*
/////////////////////////////////////////////////////////////////
Validacion de un numero de telefono

Entrada: String con el numero de telefono
Salida : true o false, segun el telefono sea correcto o no. 

   formatos permitidos, minimo 9 digitos:
    (+44)(0)20-12341234 || 02012341234 || +44 (0) 1234-1234 ||(44+)020-12341234 || 12341234(+020)
//////////////////////////////////////////////////////////////////
*/
function validar_numero_telefono(telefono){
	if (telefono.length>=9){
		var formato_telefono = /^(\(?\+?[0-9]*\)?)?[0-9_\- \(\)]*$/;
		//usa el metodo test de expresion regular
		if(!formato_telefono.test(telefono)) {
		   //alert('TELEFONO no válido.')
		   return false;
		}else{
		  //alert('Telefono Validado');
		   return true;
		}
	}else{
	  //alert('TELEFONO no válido.')
	  return false;
	}
}


/*/////////////////////////////////////////////////////
Validacion de numero de cuenta corriente de un banco español
Entrada: Numero de la cuenta
Salidad: true o false, si la cuenta es correcta o no

Código CCC (Código Cuenta Cliente):

En España, todos los bancos utilizan el formato de Código Cuenta Cliente. Se trata de una secuencia de 20 dígitos, cuyo contenido se especifica a continuación:

    * 4 dígitos: Código del Banco
    * 4 dígitos: Código de la sucursal
    * 2 dígitos: Dígito de control
    * 10 dígitos: número de cuenta del cliente. 

Los dos dígitos de control sirven para validar el resto del número de cuenta.

El primer dígito de control sirve para validar el Código del Banco y el de la sucursal.
El segundo dígito de control sirve para validar el número de cuenta.
*/

function validacion_numero_cuenta_corriente(numeroCuenta){
	valores = new Array(1, 2, 4, 8, 5, 10, 9, 7, 3, 6);
	controlCS,controlCC = 0;
	for (i=0; i<=7; i++)
		controlCS += parseInt(numeroCuenta.charAt(i)) * valores[i+2];
	
	controlCS = 11 - (controlCS % 11);
	if (controlCS == 11) controlCS = 0;
	else if (controlCS == 10) controlCS = 1;
	
	for (i=10; i<=19; i++)
		controlCC += parseInt(numeroCuenta.charAt(i)) * valores[i-10];
		
	controlCC = 11 - (controlCC % 11);
	if (controlCC == 11) controlCC = 0;
	else if (controlCC == 10) controlCC = 1;
	
	if (numeroCuenta.charAt(8)==controlCS && numeroCuenta.charAt(9)==controlCC ) {
		return true;
	}else{
		return false;
	}

} 



