<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>Login</title>
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
  <link rel="stylesheet" type="text/css" href="fonts/stylesheet.css">
  <link rel="stylesheet" type="text/css" href="css/normalize.css">
  <link rel="stylesheet" type="text/css" href="css/framework.css">
  <link rel="stylesheet" type="text/css" href="css/axa.min.css">
  <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
  <script type="text/javascript" src="js/index.js"></script>
  <script type="text/javascript" src="js/lib/aes.js"></script>
  <script type="text/javascript" src="js/lib/pbkdf2.js"></script>
  <script type="text/javascript" charset="UTF-8" src="Commondata.js"></script>
  <script type="text/javascript" charset="UTF-8" src="Apiservice.js"></script>
  <script type="text/javascript" charset="UTF-8" src="js/axa-popup.js"></script>
  <style>
  .login-input-form:-moz-placeholder,
  .axa-select:-moz-placeholder {
    color: #fff;
  }
  .login-input-form::-moz-placeholder,
  .axa-select::-moz-placeholder {
    color: #fff;
    opacity: 1;
  }
  .login-input-form:-ms-input-placeholder,
  .axa-select:-ms-input-placeholder {
    color: #fff;
  }
  .login-input-form::-webkit-input-placeholder,
  .axa-select::-webkit-input-placeholder {
    color: #fff;
  }
  </style>
  <script>
  //web font loading
  window.onload = function what()
  {
    $('.loading-mask').addClass('stop-loading');
  cordova.plugins.diagnostic.isDeviceRooted(function(rooted){
    if(rooted)
   {
     //rooted Device-->
     showAlertRoot("Warning: This application is not supported on rooted/jailbroken devices.",false)
   }
   else{
      //Non Rooted Device
      checkDeviceSecurity();
      }
 });
};


  if (window.MobileAccessibility) {
    window.MobileAccessibility.usePreferredTextZoom(false);
  }
  var atpos;
  var dotpos;
  var devicemodel;
  var osversion;
  var registereddeviceid;

    //signin function
    function signin() {

    if(checkOnline()){
    registereddeviceid = device.uuid;
    devicemodel =device.model;
    osversion = device.version;
    setItem("osversion",osversion);
    console.log("osversion-----"+osversion);
    var username = document.getElementById("email-field").value;
	var usernameSpceTrim = username.replace(/\s/g, '');
    var userName = usernameSpceTrim.toLowerCase();
    var passWord = document.getElementById("password-field").value;
    var passwordspacetrim = passWord.replace(/\s/g, '');
    atpos = userName.indexOf("@");
    dotpos = userName.lastIndexOf(".");
    if (isEmpty(userName)) {
      showAlert("Please enter your Email ID", false);
    }
    else if (atpos < 1 || dotpos < atpos + 2 || dotpos + 2 >= userName.length) {
      showAlert("Please enter a valid Email ID in the correct format, eg. abc@gmi.com",false);
    }
    else if (isEmpty(passwordspacetrim)) {
      showAlert("Please enter your Password", false);
    }
    else {
      var request = { emailid: userName, password: passEncrypt(passWord), registerdeviceid:registereddeviceid, devicemodel:devicemodel, osversion:osversion};
      loginautenticationcommon(request);
    }
  }
  }
  //empty field
  function isEmpty(value) {
    return typeof value == 'string' && !value.trim() || typeof value == 'undefined' || value === null;
  }
  //dissmiss popup
  function onDismiss(issuccess) {
    if (issuccess) {
      hide('showpop');
      window.location.href = 'dashboard.html';
    }
    else {
      hide('showpop');
    }
  }
  //piamcode isEmpty
  function piamalert(message) {
    $('#showpop').empty();
    $('#showpop').append("<h5>Message</h5><p id='para_messageid'>" + message + "</p><button class='popup-btn' id='comm-dismiss' onclick='onDismiss();'>OK</button>");
    show('showpop');
  }

  //default popup
  function showpasret() {
    var message = getItem("passExpired");
    $('#showpop').empty();
    $('#showpop').append("<div class='big-div'><h5>Message</h5><b><p id='para_messageid'>" + message + "</p></b><form onsubmit='return false'><input class='axa-input input-form' placeholder='Enter your Email id' id='accountlockemail' type='text' name='email' maxlength='50' onkeyup='handlespace(this)' required><input class='axa-input input-form' placeholder='Enter your PIAM code' id='piam-code' type='text' name='piamcode' maxlength='10' onkeyup='handlespace(this)' required><button class='popup-btn' id ='btn_expiredpassword' onclick='reqForgotpassword(1)'>OK</button><button class='popup-btn' id='comm-dismiss' onclick='onDismiss(" + false + ")'>CANCEL</button></form></div>");
    show('showpop');
  }

  //default popup
  function showAlert(message, issuccess) {
    $('#showpop').empty();
    $('#showpop').append("<h5>Message</h5><p id='para_messageid'>" + message + "</p><button class='popup-btn' id='comm-dismiss' onclick='onDismiss(" + issuccess + ")'>OK</button>");
    show('showpop');
  }
  //popup for marketlocation
  function showAlertnewapplication(message, issuccess){
    $('#showpop').empty();
    $('#showpop').append("<h5>Message</h5><p>" + message + "</p><button class='popup-btn' onclick='appstorecall()'>OK</button>");
    show('showpop');
  }

  function appstorecall(appurl){
   var applicationURL=getItem("applicationURL");
   if(applicationURL !== null && applicationURL !== '')
    {
      console.log(applicationURL);
      window.open(getItem("applicationURL"));
   }
   else
   {
       deviceRooted();
   }
  }
  //popup for forgotpassword function
  function getRes(message, issuccess) {
    $('#showpop').empty();
    $('#showpop').append("<h5>Message</h5><p>" + message + "</p><button class='popup-btn' onclick='reqForgotpassword(2)'>OK</button><button class='popup-btn' onclick='onDismiss(" + issuccess + ")'>CANCEL</button>");
    show('showpop');
  }
  //root popup
  function showAlertRoot(message){
    $('#showpop').empty();
    $('#showpop').append("<h5>Message</h5><p>" + message + "</p><button class='popup-btn' onclick='deviceRooted()'>OK</button>");
    show('showpop');
  }

  function deviceRooted() {
      navigator.app.exitApp();
  }
  // popup for forgot password error response for loginprocess
  function geterrorResponse(message) {
    $('#showpop').empty();
    $('#showpop').append("<h5>Message</h5><p>" + message + "</p><button class='popup-btn' onclick='showpasret()'>OK</button><button class='popup-btn' onclick='onDismiss(" + false + ")'>CANCEL</button>");
    show('showpop');
  }

  // popup for forgot password error response
  function geterrorRes(message, issuccess) {
    $('#showpop').empty();
    $('#showpop').append("<h5>Message</h5><p>" + message + "</p><button class='popup-btn' onclick='forgotpassword(2)'>OK</button><button class='popup-btn' onclick='onDismiss(" + issuccess + ")'>CANCEL</button>");
    show('showpop');
  }
  //forgot password invalid popup
  function showVaildAlert(message) {
    $('#showpop').empty();
    $('#showpop').append("<h5>Message</h5><p>" + message + "</p><button class='popup-btn' onclick='onvalidalertDismiss()'>OK</button>");
    show('showpop');
  }

  //forgot password invalid popup for change passWord
  //forgot password invalid popup
  function showEmailAlert(message) {
    $('#showpop').empty();
    $('#showpop').append("<h5>Message</h5><p>" + message + "</p><button class='popup-btn' onclick='showpasret()'>OK</button>");
    show('showpop');
  }
  //firstuserloginpopup
  function firstloginuser() {
    $('#showpop').empty();
    $('#showpop').append("<h5>Message</h5><p>Welcome to AXA! Please change your default password before logging in.</p><button class='popup-btn' onclick='forgotpassword(2)'>OK</button>");
    show('showpop');
  }
  //dismiss popup
  function onvalidalertDismiss() {
    hide('showpop');
    forgotpassword(2);
  }
  //forgot password popup
  function forgotpassword(id) {
  if(checkOnline()){
    var message ="Reset Password / Unlock Account";
    var message2 = "First Time Login";
    $('#showpop').empty();
    $('#showpop').append("<div class='big-div'><form onsubmit='return false'><h5 class='text-center'>" + message + "<br />"+ message2 +"</h5><input class='axa-input input-form' placeholder='Enter your Email id' id='accountlockemail' type='text' name='email' maxlength='50' onkeyup='handlespace(this)'  required><input class='axa-input input-form' placeholder='Enter your PIAM code' id='piam-code' type='text' name='piamcode' maxlength='10' onkeyup='handlespace(this)' required><button class='popup-btn' onclick='reqForgotpassword(" + id + ")'>OK</button><button class='popup-btn' onclick='onDismiss(" + false + ")'>CANCEL</button></form></div>");
    show('showpop');
  }
  }
  //forgot password functiion
  function reqForgotpassword(id) {
    var roleid=0;
    try{
      var accountlockemail = document.getElementById("accountlockemail").value;
      var piamcode = document.getElementById("piam-code").value;
    }catch(err){
      var accountlockemail = getItem("accountlockemail");
      var piamcode = getItem("piam-code");
      roleid=5;
    }
	var acclockspceTrim = accountlockemail.replace(/\s/g, '');
    var atpos = acclockspceTrim.indexOf("@");
    var dotpos = acclockspceTrim.lastIndexOf(".");
    if (isEmpty(acclockspceTrim)) {
    }
    else if (atpos < 1 || dotpos < atpos + 2 || dotpos + 2 >= acclockspceTrim.length) {
      if(id == 1) {
        showEmailAlert("Please enter a valid Email ID in the correct format, eg. abc@axa.com")
        }
    else{
        showVaildAlert("Please enter a valid Email ID in the correct format, eg. abc@axa.com");
        }
    }
    else if (isEmpty(piamcode)) {
    }
    else {
      hide('showpop');
      var accountlockEmail = acclockspceTrim.toLowerCase();
      var request = { emailid: accountlockEmail, piamcode: piamcode, resendMailInd: roleid };
      Apiservicecall(function(result)
      {
        if(result.status==1)
        {
          var response=result.response;
          if (response.status == 1 || response.status == 4  || response.status == 6 || response.status == 7) {
            showAlert(response.message, false);
          }
          else if(response.status == "S01"){
            setItem("accountlockemail", accountlockEmail);
            setItem("piam-code", piamcode);
            getRes(response.message, false);
          }
          else if(id == 1) {
             geterrorResponse(response.message, false);
          }
          else{
            geterrorRes(response.message, false);
          }
        }
        else {
          if(id == 1) {
             geterrorResponse(response.message, false);
          }
          else{
            geterrorRes(response.message, false);
          }
        }
      },forgotpass,request);
    }
  }

  //root detection
  function showRootcheckAlert(message) {
    $('#showpop').empty();
    $('#showpop').append("<h5>Message</h5><p>" + message + "</p><button class='popup-btn' onclick='exit()'>OK</button>");
    show('showpop');
  }

  function exit()
  {
    // navigator.app.exitApp();
    cordova.plugins.exit();
  }

  function appversionChk()
  {
    cordova.getAppVersion.getVersionNumber(function (version) {
         var versionrequest =  { "androindrelversion": version, "iosrelversion":"" };
            Apiversioncheck(function(result)
            {
              if(result.status==1)
              {
                if(result.response.status == 1){
                  console.log(result);
                  setItem("applicationURL",result.response.androidredirecturl);
                  showAlertnewapplication(result.response.message, false);
                }
                else
                {
                  showAlert(response.message, false);
                }
              }
                else {
                  console.log("failure");
                  //showAlert("failure");
                   //showAlert(response.message, false);
                }
            },versioncheck,versionrequest);
      });
    $('.loading-mask').addClass('stop-loading');
  }

  function checkDeviceSecurity() {
    Promise.all([
        checkRoot(),
        checkEmulator(),
        checkUSBDebugging(),
        checkAppSignature()
    ]).then(([rootResult, emulatorResult, usbResult,signatureresult]) => {
        if (rootResult === 0) {
            showRootcheckAlert("Warning: This application is not supported on rooted/jailbroken devices.");
        } else if (emulatorResult === 0) {
          showRootcheckAlert("Warning: This application is not supported on rooted/jailbroken devices.");
        } else if (usbResult === 0) {
          showRootcheckAlert("Warning: This application is not supported on rooted/jailbroken devices.");
        }
        else if (signatureresult === 0) {
          showRootcheckAlert("Warning: This application is not supported on rooted/jailbroken devices.");
        }
        else
        {
          checkRootdetection();
        }
    });
}
function checkRoot() {
  console.log("checkRoot");
    return new Promise((resolve) => {
        cordova.exec(
            (result) => resolve(result),
            (error) => {
                console.error("Root check failed:", error);
                resolve(1);
            },
            "RootDetection",
            "isDeviceRooted",
            []
        );
    });
}

function checkEmulator() {
    return new Promise((resolve) => {
        cordova.exec(
            (result) => resolve(result),
            (error) => {
                console.error("Emulator check failed:", error);
                resolve(1);
            },
            "RootDetection",
            "isEmulator",
            []
        );
    });
}

function checkUSBDebugging() {
    return new Promise((resolve) => {
        cordova.exec(
            (result) => resolve(result),
            (error) => {
                console.error("USB debugging check failed:", error);
                resolve(1);
            },
            "RootDetection",
            "isUSBDebuggingEnabled",
            []
        );
    });
}

function checkAppSignature() {
    return new Promise((resolve) => {
        cordova.exec(
            (result) => resolve(result),
            (error) => {
                console.error("USB debugging check failed:", error);
                resolve(1);
            },
            "RootDetection",
            "checkAppSignature",
            []
        );
    });
}

  function checkRootdetection()
  {
    IRoot.isRooted(
        function (isRooted) {
            if (isRooted) {
                console.log("Device is rooted/jailbroken.");
                showRootcheckAlert("Warning: This application is not supported on rooted/jailbroken devices.");
            } else {
                console.log("Warning: This application is not supported on rooted/jailbroken devices.");
                sslchecker();
            }
        },
        function (error) {
            console.error("Error checking root status:", error);
        }
    );

  }

  function sslchecker()
  {
      var server = "https://smartpolicy.generali.com.my/";
      var fingerprint = "43 08 e7 e7 60 18 b7 5f 41 5e fc d7 8c 56 b2 a2 e0 6c a8 7c 84 8f f1 72 08 95 30 76 6b a1 b4 da";
      window.plugins.sslCertificateChecker.check(
            successCallback,
            errorCallback,
            server,
            fingerprint);
   }
  function successCallback(message) {
      appversionChk();
    //  alert(message);
     // Message is always: CONNECTION_SECURE.
     // Now do something with the trusted server.
   }
 
   function errorCallback(message) {
     showRootcheckAlert("Warning: This application is not supported on rooted/jailbroken devices.");
   }

  //backbutton function
  document.addEventListener("backbutton", onBackKeyDown, false);
  function onBackKeyDown() {
      navigator.app.exitApp();
  }
  //window event listener keypress
  window.addEventListener('keypress', function (e) {
    console.log("keycode========"+e.keyCode);
    if (e.keyCode == 13) {
      signin();
    }
  });
  </script>
  <script src="js/webfont.js"></script>
  <script>
  WebFont.load({
    google: {
      families: ["Montserrat:400,700"]
    }
  });
  </script>
  <script type="text/javascript" src="js/modernizr.js"></script>
  <link rel="shortcut icon" type="image/x-icon" href="images/logoStandford32.ico">
  <link rel="apple-touch-icon" href="images/logoStandford32.ico">
  <link href="css/ionicons.min.css" rel="stylesheet" type="text/css" />
</head>
<body>
  <section class="axa-section mobile-wrapper login-bg">
    <div class="page-content" id="main-stack" data-scroll="0">
      <div class="bottom-section padding">
        <div class="logo-login"></div>
        <div class="axa-form">
          <form>
            <div>
              <input class="axa-input login-input-form" placeholder="Email Id" id="email-field" type="username" name="username" onkeyup='handlespace(this)'  maxlength="50">
              <div class="separator-fields"></div>
            </div>
            <div>
              <div class="axa-clearfix block-input-combined">
                <input class="axa-input login-input-form left" placeholder="Password" id="password-field"   onpaste="return false"  type="password" name="password" maxlength="25" onkeyup='handlespace(this)'>
                <span id="icon_eye" toggle="#password-field" class="icon ion-eye field-icon toggle-password"></span>
              </div>
            </div>
            <input class="axa-button action-button" type="button" id="btn_login" onclick="signin();" value="SIGN IN"><br />
            <div class="separator-button"></div><a class="link-upper b-link" onclick="forgotpassword(2);"> Reset Password / Unlock Account <br/> First Time Login</a>
          </form>
          <div class="axa-form-done">
            <p>Thank you! Your submission has been received!</p>
          </div>
          <div class="axa-form-fail">
            <p>Oops! Something went wrong while submitting the form</p>
          </div>
        </div>
      </div>
    </div>
    <div class="page-content loading-mask stop-loading" id="new-stack">
      <div class="loading-icon">
        <div class="navbar-button-icon icon ion-load-d"></div>
      </div>
    </div>
    <div class="shadow-layer"></div>
    <div id="showpop" class="popup"></div>
  </section>
  <script type="text/javascript" src="js/jquery.min.js"></script>
  <script type="text/javascript" src="js/framework.js"></script>
  <script>
  //password field eye changing function
  $(document).ready(function(){
    $(".toggle-password").click(function() {
      $(this).toggleClass("ion-eye ion-eye-disabled");
      var input = $($(this).attr("toggle"));
      if (input.attr("type") == "password") {
        input.attr("type", "showpassword");
      } else {
        input.attr("type", "password");
      }
    });
  });
  </script>
</body>
</html>
