
function SetValue(nombre, valor)
{
   var element = GetElement(nombre);
   if (element)
   {
      if (element.value != undefined)
         element.value = valor;
      else
      {
         if (element.textContent)
            element.textContent = valor;
         else
            element.innerText = valor;
      }
   }
}

function GetValue(nombre)
{   
   var element = GetElement(nombre);
   if (element)
   {
      if (element.value != undefined)
         return element.value;
      else
      {
         if (element.textContent)
            return element.textContent;
         else
            return element.innerText;
      }
   }
   return;
}

function GetElement(nombre)
{
  if (document.getElementById(nombre))
     return document.getElementById(nombre);

  if (document.all(nombre))
     return document.all(nombre);
 
  return null;
}

function ShowLoginAjaxWindow()
{
   if (!token || token == '')
   {
   $.ajax({
      type: "GET",      
      url: "LoginAjax.htm",
      success: ShowLoginWindow
   });
   }
   else
   {
      document.location.href = "tienda-comprar.html";
   }
}

function ShowLoginWindow(html)
{
   ShowMessage(html, 330, 460);
}

function ShowNewUserWindow(html)
{
   ShowMessage(html, 460, 430);
}

function CrearUsuario()
{
   CloseMessage();
   $.ajax({
      type: "GET",      
      url: "AltaUsuario.htm",
      success: ShowNewUserWindow
   });
}

function Login(user, password)
{
   if (user == undefined)
      user = $("#Usuario").val();
   if (password == undefined)
      password = $("#Password").val();
      
   if (user == null || user == '' || user.search("@") <= 0)
   {
      GetElement('mensajeLogin').innerHTML = "Correo electronico no valido, escriba una dirección de correo electronico valida";
      return false;      
   }  
   if (password == null || password == '')
   {
      GetElement('mensajeLogin').innerHTML = "La contraseña no debe de ser vacia.";
      return false;
   }
   
   var crossDomainUrl = "https://webservice.quantyca.com/Login/?user=" + user + "&password=" + password;   
   $.ajax({
      type: "POST",      
      url: "proxy.php?action=" + escape(crossDomainUrl) + "&method=POST",
      success: LoginResult
   });
   $('#btnLogin').attr("disabled", true);   
   GetElement('mensajeLogin').innerHTML = "Validando por favor espere...";
} 

function ResetearPassword(user, password)
{
   if (user == undefined)
      user = $("#Usuario").val();
      
   if (user == null || user == '' || user.search("@") <= 0)
   {
      GetElement('mensajeLogin').innerHTML = "Correo electronico no valido, escriba una dirección de correo electronico valida";
      return false;      
   }  
   
   var crossDomainUrl = "https://webservice.quantyca.com/Login/?user=" + user;
   $.ajax({
      type: "PUT",      
      url: "proxy.php?action=" + escape(crossDomainUrl),
      success: LoginResetResult
   });
   
   GetElement('mensajeLogin').innerHTML = "Estamos enviandole un email con la nueva contraseña";         
}

function AltaUsuario()
{    
   var Nombre = $("#Nombre").val();
   var Apellidos = $("#Apellidos").val();
   var Email = $("#Email").val();
   var Password = $("#Password0").val();
   var Password1  = $("#Password1").val();
    
   if (Nombre == null || Nombre == '')
   {
      GetElement('mensajeAlta').innerHTML = "El nombre es un campo obligatorio";
      return false;
   }
   if (Apellidos == null || Apellidos == '')
   {
      GetElement('mensajeAlta').innerHTML = "Los apellidos es un campo obligatorio";
      return false;
   }    
    
   if (Email == null || Email == '' || Email.search("@") <= 0)
   {
      GetElement('mensajeAlta').innerHTML = "Correo electronico no valido, escriba una dirección de correo electronico valida";
      return false;      
   }  
   if (Password == null || Password == '')
   {
      GetElement('mensajeAlta').innerHTML = "La contraseña no debe de ser vacia.";
      return false;
   }
   if (Password.length < 8)
   {
      GetElement('mensajeAlta').innerHTML = "La contraseña debe tener como minimo 8 caracteres.";
      return false;
   }      
   if (Password != Password1)
   {
      GetElement('mensajeAlta').innerHTML = "Las contraseñas son diferentes.";
      return false;
   }
           
   var crossDomainUrl = "https://webservice.quantyca.com/ActivacionApp/?user=" + Email + "&password=" + Password + "&Nombre=" + Nombre + "&Apellidos=" + Apellidos;
   $.ajax({
      type: "POST",      
      url: "proxy.php?action=" + escape(crossDomainUrl) + "&method=POST",
      success: NewUserResult
   });
   
   GetElement('mensajeAlta').innerHTML = "Creando registro por favor espere...";
   
}

function LoginResult(xmlResult)
{
   $('#btnLogin').attr("disabled", false);    
   
   var objXmlDom = readXML(xmlResult);
   try
   {
      var session = objXmlDom.getElementsByTagName("SESSION")[0].attributes;
      
      var logado = NodeToText(session.getNamedItem('ResultadoLogin'));
      token = NodeToText(session.getNamedItem('Token'));
      var mensaje = NodeToText(session.getNamedItem('Mensaje'));
      
      if (logado == "0")
      {
         GetElement('mensajeLogin').innerHTML = mensaje;
      }
      else
      {
         if (GetElement('mensajeLogin'))
            GetElement('mensajeLogin').innerHTML = "";         
         CloseMessage();
         document.location.href = "Store.php?token=" + token + "&movimientoSaldo=" + creditos;                     
      }
   }
   catch(e)
   {
      if (token)
      {
         document.location.href = "tienda-comprar.html?token=" + token;
      }
   }   
}

function LoginResetResult(xmlResult)
{
   var objXmlDom = readXML(xmlResult);
   try
   {
      var session = objXmlDom.getElementsByTagName("SESSION")[0].attributes;
      
      var reset = NodeToText(session.getNamedItem('PasswordReset'));
      var mensaje = NodeToText(session.getNamedItem('Mensaje'));
      
      if (reset == "0")
      {
         GetElement('mensajeLogin').innerHTML = mensaje;
      }
      else
      {
         GetElement('mensajeLogin').innerHTML = "Le hemos enviado un email con la nueva contraseña";         
      }
   }
   catch(e)
   {
   }
}

function NewUserResult(xmlResult)
{
   var objXmlDom = readXML(xmlResult);
   try
   {      
      var activate = objXmlDom.getElementsByTagName("ACTIVATIONSERVER")
      if (activate && activate.length > 0)
      {
        activate = objXmlDom.getElementsByTagName("ACTIVATIONSERVER")[0].attributes;      
        var valido = NodeToText(activate.getNamedItem('valido')); 
        if (valido == "0")
        {
           var mensaje = NodeToText(activate.getNamedItem('Mensaje'));
           GetElement('mensajeAlta').innerHTML = mensaje;
        }
      }
      else
      {
         LoginResult(xmlResult);
      }
   }
   catch(e)
   {
   }   
}

function readXML(text)
{   
   if (window.DOMParser)
   {
      parser=new DOMParser();
      xmlDoc=parser.parseFromString(text,"text/xml");
   }
   else // Internet Explorer
   {
      xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
      xmlDoc.async="false";
      xmlDoc.loadXML(text);
   }   
   return xmlDoc;
}

function NodeToText(node)
{
   if (!node)
      return null;
      
   if (node[0])
      node = node[0];
      
   if (node.text)
      return node.text;
   if (node.textContent)
      return node.textContent;
   return null;
}

function Decimales(Numero) 
{   
   return number_format(Numero, 2, ',', '.');
}

function number_format (number, decimals, dec_point, thousands_sep) {
    // Formats a number with grouped thousands
    //
    // version: 906.1806
    // discuss at: http://phpjs.org/functions/number_format
    // +   original by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +     bugfix by: Michael White (http://getsprink.com)
    // +     bugfix by: Benjamin Lupton
    // +     bugfix by: Allan Jensen (http://www.winternet.no)
    // +    revised by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
    // +     bugfix by: Howard Yeend
    // +    revised by: Luke Smith (http://lucassmith.name)
    // +     bugfix by: Diogo Resende
    // +     bugfix by: Rival
    // +     input by: Kheang Hok Chin (http://www.distantia.ca/)
    // +     improved by: davook
    // +     improved by: Brett Zamir (http://brett-zamir.me)
    // +     input by: Jay Klehr
    // +     improved by: Brett Zamir (http://brett-zamir.me)
    // +     input by: Amir Habibi (http://www.residence-mixte.com/)
    // +     bugfix by: Brett Zamir (http://brett-zamir.me)
    // *     example 1: number_format(1234.56);
    // *     returns 1: '1,235'
    // *     example 2: number_format(1234.56, 2, ',', ' ');
    // *     returns 2: '1 234,56'
    // *     example 3: number_format(1234.5678, 2, '.', '');
    // *     returns 3: '1234.57'
    // *     example 4: number_format(67, 2, ',', '.');
    // *     returns 4: '67,00'
    // *     example 5: number_format(1000);
    // *     returns 5: '1,000'
    // *     example 6: number_format(67.311, 2);
    // *     returns 6: '67.31'
    // *     example 7: number_format(1000.55, 1);
    // *     returns 7: '1,000.6'
    // *     example 8: number_format(67000, 5, ',', '.');
    // *     returns 8: '67.000,00000'
    // *     example 9: number_format(0.9, 0);
    // *     returns 9: '1'
    // *     example 10: number_format('1.20', 2);
    // *     returns 10: '1.20'
    // *     example 11: number_format('1.20', 4);
    // *     returns 11: '1.2000'
    // *     example 12: number_format('1.2000', 3);
    // *     returns 12: '1.200'
    var n = number, prec = decimals;
 
    var toFixedFix = function (n,prec) {
        var k = Math.pow(10,prec);
        return (Math.round(n*k)/k).toString();
    };
 
    n = !isFinite(+n) ? 0 : +n;
    prec = !isFinite(+prec) ? 0 : Math.abs(prec);
    var sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep;
    var dec = (typeof dec_point === 'undefined') ? '.' : dec_point;
 
    var s = (prec > 0) ? toFixedFix(n, prec) : toFixedFix(Math.round(n), prec); //fix for IE parseFloat(0.55).toFixed(0) = 0;
 
    var abs = toFixedFix(Math.abs(n), prec);
    var _, i;
 
    if (abs >= 1000) {
        _ = abs.split(/\D/);
        i = _[0].length % 3 || 3;
 
        _[0] = s.slice(0,i + (n < 0)) +
              _[0].slice(i).replace(/(\d{3})/g, sep+'$1');
        s = _.join(dec);
    } else {
        s = s.replace('.', dec);
    }
 
    var decPos = s.indexOf(dec);
    if (prec >= 1 && decPos !== -1 && (s.length-decPos-1) < prec) {
        s += new Array(prec-(s.length-decPos-1)).join(0)+'0';
    }
    else if (prec >= 1 && decPos === -1) {
        s += dec+new Array(prec).join(0)+'0';
    }
    return s;
}
