/**
 * Clase index.js
 * Descripcion: sirve para el login de los usuarios
 * Controla todos los eventos que ocurran, acorde a los datos ingresados
 */

var delayTime=300;
var delayTime1=0;
var delayEffec=1;
var opacyHesde=0;
var opacyHasta=1;
/**
 * @name liginCompras
 * @description Ingreso de datos de login
 */
function _lCominc()
{
    var RUC= $('txtRUCRecordatorio').value;
    var login= $('txtLogin').value;
    var Passw= $('txtPassword').value;

    /**
    * Decodifica cantraseña
    */
    /********************************************************************/
      Passw= base64_encode(Passw);
    /********************************************************************/

	if (RUC=='' || login =='' || Passw=='')
    {
        HideEffect($('index'));
        setTimeout("fncControlEventos('EERRL')",delayTime);
    }else
    {   HideEffect($('index'));
        setTimeout("fncControlEventos('CARGANDO')",delayTime1);
        var data='txtRUCRecordatorio='+RUC+'&txtLogin='+login+'&txtPassword='+Passw;
        var clazz = "Usuario";
        var action = "hacerLoginAjax";      
         ajax_call ( data, clazz, action, _cumpLog);
    }

}

function _cumpLog(result,resp)
{ 
    if(result != ""){
        
        if(result.a=='RDU')//Tiene session ya abierta en otro equipo o esplorador
            {
                HideEffect($('index'));
		$('txtVerifica').value=result.b;
                setTimeout("fncControlEventos('RDU')",delayTime1);
            }
        if(result.a =='RUU')//Registro unico en el sistema no hay sessiones activas
            {
		$('txtVerifica').value=result.b;
                fncAceptaCerrar();
            }
       if (result.a!='RDU' && result.a!='RUU')
             {
                 HideEffect($('index'));
                 setTimeout("fncControlEventos('EERRL')",delayTime1);
             }
    }
}


function pausecomp(millis)
{
var date = new Date();
var curDate = null;

do { curDate = new Date(); }
while(curDate-date < millis);
}

function fncDatosIncorrectos()
{
    var html='<div id="mensaje" class="capaPop" > ';
     html+=' <div id="contenidopopup" style="visibility: visible; opacity: 1; display: block;">';
	 html+='	<div id="titulopopup">';
	 html+='		<div id="cerrarpopup" class="cerrarpopup" onclick="cerrarpop()"></div>';
     html+='    </div><br><br>';
	 html+='		<div class="cuerpotextopopup" style="height: 120px;">';
	 html+='			<span class="textoarticulo">El Ruc, usuario y contraseña indicados no corresponden a ningun usuario registrado.</span>';
	 html+='			<p/>';
	 html+='			<div  class="textoarticulo">';
	 html+='				<ul class="listagen2">';
	 html+='				<li>Verifique que todos los campos esten llenos.</li>';
     html+='				<li>Revise que el RUC, usuario y contraseña sean los correctos.</li>';
     html+='				</ul>';
	 html+='			</div>';
	 html+='		</div>';
	 html+='</div></div>';
     return html;

}


function fncDobleUsuario()
{
    var html='<div id="mensaje" class="capaPop" > ';
     html+=' <div id="contenidopopup" style="visibility: visible; opacity: 1; display: block;">';
         html+='        <div id="titulopopup">';
         html+='                <div id="cerrarpopup" class="cerrarpopupnoticia" onclick="cerrarpop()"></div>';
     html+='    </div>';
         html+='                <div class="cuerpotextopopup" style="height: 120px;">';
         html+='                        <span class="textoarticulo">El usuario con el que esta intentando ingresar ya tiene una sesión activa.</span>';
         html+='                        <p/>';
         html+='                        <div class="textoarticulo">';
         html+='                                <ul class="listagen2">';
         html+='                                <li>Tenga presente que si cierra una sesión activa podría cancelar algún proceso que este manipulando.</li>';
         html+='                                </ul>';
     html+='                            <ul class="listagen2">';
         html+='                                <li>Desea de todos modos terminar la sesión que mantiene en el sistema?.</li>';
         html+='                                </ul>';
     html+="    <div id='titulopopup1' align='center'><br><input id='btnEntrar' type='submit' value='Aceptar' name='btnEntrar' onclick='fncAceptaCerrar()' />";
     html+='       <input id="btnCerrar" type="submit" value="Cancelar" name="btnEntrar" onclick="cerrarpop()" />';
     html+='    </div>';
         html+='                </div>';
         html+='</div></div>';
     return html;
}



function fncCargandoLog()
{
    var html='<div> <div id="mensaje" class="capaCargando" > <img width="90" height="90" src="/ProcesoContratacion/app/webroot/compras/img/cargandolog.gif" name"log"/> </div> ';
	 html+='<!--<div id ="capaMensajeCarga" class="capaMensajeCarga" >Cargando...</div>--></div>';
     return html;
}
/**
 * controla los diferentes tipos de mensajes
 */
    function fncDibujaMensaje(tipo)
    {
    if (tipo=='CARGANDO')
        {
           $('Contenedor').innerHTML=fncCargandoLog();
        }
    if (tipo=='EERRL')
        {
            $('Contenedor').innerHTML=fncDatosIncorrectos();
        }
    if (tipo=='RDU')
        {
           $('Contenedor').innerHTML=fncDobleUsuario();
        }
    
    }
/**
 * Controla los eventos del
 */
    function fncControlEventos(tipo)
    {
        fncDibujaMensaje(tipo);
        $('capapopup').style.visibility='visible';
        $('Contenedor').style.visibility='visible';
    }
    function fncAceptaCerrar()
    {
     $('frmIngreso').action='exe/login_exe.php';
     $('frmIngreso').method='POST';
     $('frmIngreso').submit();
   }

function funcStopLoad()
{
        $('capapopup').style.visibility='hidden';
        $('Contenedor').style.visibility='hidden';
        $('mensaje').style.visibility='hidden';
        $('contenidopopup').style.visibility='hidden';
        $('cerrarpopup').style.visibility='hidden';
         ShowEffect('index');
}


    function cerrarpop()
    {
        $('capapopup').style.visibility='hidden';
        $('Contenedor').style.visibility='hidden';
        $('mensaje').style.visibility='hidden';
        $('contenidopopup').style.visibility='hidden';
        $('cerrarpopup').style.visibility='hidden';
        ShowEffect('index');
	$('txtVerifica').value='';
        $('txtRUCRecordatorio').value='';
        $('txtLogin').value='';
        $('txtPassword').value='';
    }

    function ShowEffect(element)
    {
       new Effect.Opacity(element,{duration:0.6, from:0, to:5.0});//efecto transparencia

    }
    function HideEffect(element)
    {
       new Effect.Opacity(element,{duration:0.6, from:1.0, to:0.6});//Quitar efecto transparencia
    }
    function cambiarFocus()
    {
        $('btnEntrar').focus=true;
    }
function base64_encode (data) {
    // Encodes string using MIME base64 algorithm
    //
    // version: 1003.2411
    // discuss at: http://phpjs.org/functions/base64_encode    // +   original by: Tyler Akins (http://rumkin.com)
    // +   improved by: Bayron Guevara
    // +   improved by: Thunder.m
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   bugfixed by: Pellentesque Malesuada    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // -    depends on: utf8_encode
    // *     example 1: base64_encode('Kevin van Zonneveld');
    // *     returns 1: 'S2V2aW4gdmFuIFpvbm5ldmVsZA=='
    // mozilla has this native    // - but breaks in 2.0.0.12!
    //if (typeof this.window['atob'] == 'function') {
    //    return atob(data);
    //}
    var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
    var o1, o2, o3, h1, h2, h3, h4, bits, i = 0, ac = 0, enc="", tmp_arr = [];

    if (!data) {
        return data;    }

    data = this.utf8_encode(data+'');
    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
        tmp_arr[ac++] = b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4);
    } while (i < data.length);
        enc = tmp_arr.join('');

    switch (data.length % 3) {
        case 1:
            enc = enc.slice(0, -2) + '==';break;
        case 2:
            enc = enc.slice(0, -1) + '=';break;
    }
    enc=enc.replace('+','-');
    enc=enc.replace('==','__');
    return enc;
}
function utf8_encode (argString) {
    // Encodes an ISO-8859-1 string to UTF-8
    //
    // version: 1003.2411
    // discuss at: http://phpjs.org/functions/utf8_encode    // +   original by: Webtoolkit.info (http://www.webtoolkit.info/)
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: sowberry
    // +    tweaked by: Jack
    // +   bugfixed by: Onno Marsman    // +   improved by: Yves Sucaet
    // +   bugfixed by: Onno Marsman
    // +   bugfixed by: Ulrich
    // *     example 1: utf8_encode('Kevin van Zonneveld');
    // *     returns 1: 'Kevin van Zonneveld'

    var string = (argString+''); // .replace(/\r\n/g, "\n").replace(/\r/g, "\n");
    var utftext = "";
    var start, end;
    var stringl = 0;
    start = end = 0;
    stringl = string.length;
    for (var n = 0; n < stringl; n++) {
        var c1 = string.charCodeAt(n);
        var enc = null;
        if (c1 < 128)
        { end++; }
          else if (c1 > 127 && c1 < 2048) {            enc = String.fromCharCode((c1 >> 6) | 192) + String.fromCharCode((c1 & 63) | 128);  }
          else { enc = String.fromCharCode((c1 >> 12) | 224) + String.fromCharCode(((c1 >> 6) & 63) | 128) + String.fromCharCode((c1 & 63) | 128); }
        if (enc !== null) {
            if (end > start) {   utftext += string.substring(start, end);  }
            utftext += enc;
            start = end = n+1; }
    }

    if (end > start) {
        utftext += string.substring(start, string.length);    }

    return utftext;
}























