/**********************************************************************
 * Clase: User
 * Autor: Moisés Lodeiro Santiago
 * E-Mail: moises.lodeiro@mundoserver.com
 * Fecha de Inicio: Sab 28 de Junio de 2008
 * --------------------------------------------------------------------
 * Finalidad: Se pretende implementar una clase abstracta de conexión
 * para que las clases hijas puedan usarlas de modo que puedan realizar
 * conexiones y desconexiones llamando a variables protegidas.
 * --------------------------------------------------------------------
 * Historial de cambios:
 * - 19/7/08 : Implementada la abstracción en la clase
 * 
 *********************************************************************/
var
   contador = 0;
   fmail = false;
   ftel = false;
   fcon = false;
   frepcon = false;
   fdni = false;
   fnombre = false;
   fapellido = false;

function base64_decode( data ) {


    var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
    var o1, o2, o3, h1, h2, h3, h4, bits, i=0, enc='';

    do {  // unpack four hexets into three octets using index points in b64
        h1 = b64.indexOf(data.charAt(i++));
        h2 = b64.indexOf(data.charAt(i++));
        h3 = b64.indexOf(data.charAt(i++));
        h4 = b64.indexOf(data.charAt(i++));

        bits = h1<<18 | h2<<12 | h3<<6 | h4;

        o1 = bits>>16 & 0xff;
        o2 = bits>>8 & 0xff;
        o3 = bits & 0xff;

        if (h3 == 64)      enc += String.fromCharCode(o1);
        else if (h4 == 64) enc += String.fromCharCode(o1, o2);
        else               enc += String.fromCharCode(o1, o2, o3);
    } while (i < data.length);

    return enc;
}

function base64_encode( data ) {

    var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
    var o1, o2, o3, h1, h2, h3, h4, bits, i=0, enc='';

    do { // pack three octets into four hexets
        o1 = data.charCodeAt(i++);
        o2 = data.charCodeAt(i++);
        o3 = data.charCodeAt(i++);

        bits = o1<<16 | o2<<8 | o3;

        h1 = bits>>18 & 0x3f;
        h2 = bits>>12 & 0x3f;
        h3 = bits>>6 & 0x3f;
        h4 = bits & 0x3f;

        // use hexets to index into b64, and append result to encoded string
        enc += b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4);
    } while (i < data.length);

    switch( data.length % 3 ){
        case 1:
            enc = enc.slice(0, -2) + '==';
        break;
        case 2:
            enc = enc.slice(0, -1) + '=';
        break;
    }

    return enc;
}


function activarboton(){
   contador++;
   if(contador == 7){
      document.getElementById('enviar').disabled = '';
   }
}


function creaxmlhttp(){
  var objetoxmlhttp=false;
  try {

   objetoxmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  } catch (e) {
   try {

     objetoxmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
     } 
     catch (E) {
     objetoxmlhttp = false;
   }
  }

  if (!objetoxmlhttp && typeof XMLHttpRequest!="undefined") {
   objetoxmlhttp = new XMLHttpRequest();
  }
  return objetoxmlhttp;
}

function loader(zona,gif){
   obj = document.getElementById(zona);
   if(obj){
      //obj.innerHTML = '<center>Comprobando Datos<br /><img src="global/ajax/'+gif+'.gif" /></center>';
      obj.innerHTML = '<img src="global/ajax/'+gif+'.gif" />';
   }
}

function comprobar(valores,area)
{
   var xmlhttp=creaxmlhttp();
   var url = 'global/ajax/ajax.php';




    xmlhttp.open ('POST', url, true);
    loader(area,'comp');
    xmlhttp.onreadystatechange = function() {
         if (xmlhttp.readyState==1) {
         //alert('wtf');
         }
         else if (xmlhttp.readyState==4){
            //document.getElementById(area).innerHTML = xmlhttp.responseText;
            if(xmlhttp.responseText == 'ok'){
            if(fmail == false){
               activarboton();
               fmail = true;
               document.getElementById(area).innerHTML = "<img src='global/ajax/accept.png' />";
            }
         }else{
            document.getElementById(area).innerHTML = "<img src='global/ajax/cross.png' />";
            if(fmail == true && contador > 0){
               contador--;
               fmail = false;
            }
         }
      }
    }
    xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    xmlhttp.send(valores);
    return;
}

function explode( delimiter, string ) {

    var emptyArray = { 0: '' };

    if ( arguments.length != 2
        || typeof arguments[0] == 'undefined'
        || typeof arguments[1] == 'undefined' )
    {
        return null;
    }

    if ( delimiter === ''
        || delimiter === false
        || delimiter === null )
    {
        return false;
    }

    if ( typeof delimiter == 'function'
        || typeof delimiter == 'object'
        || typeof string == 'function'
        || typeof string == 'object' )
    {
        return emptyArray;
    }

    if ( delimiter === true ) {
        delimiter = '1';
    }

    return string.toString().split ( delimiter.toString() );
}


function procesar(valores,campo) {
   var xmlhttp=creaxmlhttp();
   var url = 'global/ajax/ajax.php';
    xmlhttp.open ('POST', url, true);
    loader(campo,'ajax-loader');
    
    xmlhttp.onreadystatechange = function() {
         if (xmlhttp.readyState==1) {
         } else if (xmlhttp.readyState==4) {
            if(xmlhttp.status==200) {
            location.href = xmlhttp.responseText;
			
								if(xmlhttp.responseText == '#errornouser'){
						document.getElementById(campo).style.display = 'none';
						alert('Error:\nLos Datos de accesso son inválidos o bien puede ser que usted no activara su cuenta con anterioridad, si no esta seguro de esto revise su correo, en caso contrario, contacte con el servicio t&eacute;cnico.');
					}
			
            if(xmlhttp.responseText != 'index.php') {
               if(campo != 'ncreditos') {
               if(campo != '') {
                    
                            if(campo != 'actbut') {
                              if(campo != 'hostsms') {
                                 
                                 if(campo == 'adm'){
                                   document.getElementById(campo).innerHTML = 'En un momento serás redirigido a la página de administración';
                                   location.href = 'index.php?sec=adminzone';
                                 }else{
                                    if( campo != 'campo'){
										if(campo == 'msg'){
											if(xmlhttp.responseText == '#hack'){
											   document.getElementById(campo).innerHTML = 'Intento de Hack';
											}else{
											   document.getElementById(campo).innerHTML = 'Petición realizada con &eacute;xito';
											   var xid;
											   xid = explode("-",xmlhttp.responseText);
											   document.getElementById("status"+xid[1]).innerHTML = '<a style="color:#FF6633;" > Procesando petición </a>';
											   document.getElementById("stop"+xid[1]).innerHTML = '<center><img src="images/stop2.png"/></center>';
											}
											
										}else{
                                    	   
										   if(campo == 'status'){
										      var res;
											  var d;
											  res = xmlhttp.responseText;
											  d = document.getElementById(campo);
											  
											  if( res == '#novalido' ){
												  d.innerHTML = 'El email insertado no es válido o no ha registrado ninguno asi.';
											  }else if( res == '#insertecodigo' ){
												  d.innerHTML = 'Se le ha enviado un correo con la clave a insertar';
											  }else if( res == '#novalido' ){
												  d.innerHTML = 'El código insertado no es valido.';
											  }else if( res == '#valido' ){
												  d.innerHTML = 'Se le ha enviado la clave al email.';  
											  }else{
												  d.innerHTML = 'Error en verificación';
											  }
											  
										   }else{
											   if( campo != 'login_campo'){
												  document.getElementById(campo).innerHTML = 'Error, puede ser que no hayas activado aún tu cuenta. 										   Revisa tu correo electrónico.';
											   }
											   
											}
										}
                                    }
                                 }
                              }
                              
                           }else{
                              if(xmlhttp.responseText == '#errorconectar'){
                                alert('Error:\nNo se pudo establecer una conexión con el servidor, inténtelo de nuevo más tarde.');
                              }else{
                                if(xmlhttp.responseText != '#errorcreditos'){
                                  if(xmlhttp.responseText == '#comprado'){
                                    alert('Información:\nEl articulo ha sido adquirido con exito. Para más detalles revise su correo electrónico.');
                                    document.getElementById('actbut').innerHTML = '<input type="Button" value="¡Procesado con éxito!" disabled="disabled" />';
                                  }else{
                                    alert('Error:\nEl correo electronico no se le ha podido enviar.');
                                  }
                                }else{
                                 
                                  alert('Error:\nNo dispones de créditos suficientes para adquirir el articulo.');
                                  location.href = "index.php?sec=usuario&acc=recargar";
                                }
                              }
                           }
                    }else{
                       document.getElementById(campo).innerHTML = '<input type="Button" value="Procesado" disabled="disabled" />';
                       if(xmlhttp.responseText == '#comprado'){
                        alert('Información:\nEl articulo ha sido adquirido con exito. Para más detalles revise su correo electrónico.');
                       }else{
                        alert('Error:\nNo dispones de créditos suficientes para adquirir el articulo.');
                        location.href = "index.php?sec=usuario&acc=recargar";
                       }
                   }
                 }else{
                   if(xmlhttp.responseText == '#1'){
                     alert('Error, código inválido');
                     location.href = 'index.php?sec=usuario&acc=recargar';
                   }else if(xmlhttp.responseText == '#2'){
                     alert('El código ya ha sido usado');
                     location.href = 'index.php?sec=usuario&acc=recargar';
                   }else if(xmlhttp.responseText == '#3'){
                     alert('El código no es correcto');
                     location.href = 'index.php?sec=usuario&acc=recargar';
                   }else{
                     document.getElementById(campo).innerHTML = base64_decode(xmlhttp.responseText.substr(1,(xmlhttp.responseText).length));
                     alert('El c&oacute;digo es v&aacute;lido, se ha sumado 1 cr&eacute;dito a tu cuenta.');
                   }
                     }
               }else{
                  /*alert('Error:\nLos Datox de acceso son inválidos o bien puede ser que usted no activara su cuenta con anterioridad, si no esta seguro de esto revise su correo, en caso contrario, contacte con el servicio t&eacute;cnico.');
                   */
					if(xmlhttp.responseText == '#errornouser'){
						document.getElementById(campo).style.display = 'none';
						alert('Error:\nLos Datos de accesso son inválidos o bien puede ser que usted no activara su cuenta con anterioridad, si no esta seguro de esto revise su correo, en caso contrario, contacte con el servicio t&eacute;cnico.');
					}
			   }
			   /*if(xmlhttp.responseText == '#errornouser'){
					document.getElementById(campo).style.display = 'none';
					alert('Error:\nLos Datos de accesso son inválidos o bien puede ser que usted no activara su cuenta con anterioridad, si no esta seguro de esto revise su correo, en caso contrario, contacte con el servicio t&eacute;cnico.');
					
				}*/
            }
			
            
            else if(xmlhttp.status==404){
            //   alert('mallll');
            }else{
               //alert('wtfff');
            }
        }
	}
    xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    xmlhttp.send(valores);
    return;
}


function confirmar(idart,z){
   if(confirm('¡ATENCIÓN! Si aceptas estarás confirmando la compra del artícual, descontándose automáticamente los créditos de tu cuenta.')){
      document.getElementById('comprarbut').innerHTML = '<input type="Button" value="Procesando..." disabled="disabled" />';
      procesar('p=comprar&v1='+idart+'&v2='+z+'','actbut');
   }
}

function confirmarhost(idart,z,opcion){
   if(document.getElementById('usuarioweb').value.length > 0){
      if(confirm('¡ATENCIÓN! Si aceptas estarás confirmando la compra del artícual, descontándose automáticamente los créditos de tu cuenta.')){
         //document.getElementById('comprarbut').innerHTML = '<input type="button" disabled value="Procesando Compra" name="comprarbut"/>';
         document.getElementById('actbut').innerHTML = '<input type="Button" value="Procesando..." disabled="disabled" />';
         procesar('p=comprar&v1='+idart+'&v2='+z+'&v3='+opcion+'&v4='+document.getElementById('usuarioweb').value+'','hostsms');
      }
   }else{
      alert('Error, el usuario web debe estar entre los 1 y 8 car&aacute;cteres.');
   }
}

