<%-- 
    Document   : signMobileCA
    Created on : Sep 20, 2016, 11:35:36 AM
    Author     : khanhdn1
--%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@ taglib uri="http://displaytag.sf.net" prefix="display"%>
<%@ taglib uri="http://ajaxtags.org/tags/ajax" prefix="ajax" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>
<%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles" %>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<%@ taglib tagdir="/WEB-INF/tags/common/" prefix="tags" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ page import="com.guhesan.querycrypt.QueryCrypt" %>

<link href="<html:rewrite page='/share/upload-file/uploadfile.css'/>" rel="stylesheet">
<!--<script type="text/javascript"  src="<html:rewrite page='/share/upload-file/jquery.min.js'/>"></script>-->
<script type="text/javascript"  src="<html:rewrite page='/share/upload-file/jquery.uploadfile.min.js'/>"></script>
<script type="text/javascript"  src="<html:rewrite page='/share/upload-file/jquery.form.js'/>"></script>
<script type="text/javascript" language="javascript" src="<html:rewrite page='/share/js/base64.js'/>"></script>
<script type="text/javascript" language="javascript" src="<html:rewrite page='/share/js/ViettelCAPlugin.js'/>"></script>

<div class="box box-module box-in-tab-nav">
    <div class="col-lg-12">        
        <div class="box-module-title">            
            <!--<hr>-->
            <h2 class="intro-text text-center">
                <strong>
                    <%=utils.ResourceBundleUtils.getApplicationResource("signMobileCA.title")%>
                </strong>
            </h2>

            <hr>
        </div>
        <div class="box-module-content">
            <div id="createCustForm">
                <html:form styleId="signMobileCAForm" styleClass="form-horizontal" action="/uploadFile.do" method="POST" 
                           acceptCharset="UTF-8" enctype="multipart/form-data: charset=utf-8" onsubmit="event.preventDefault(); signMobileCA();">
                    <div class="col-lg-12">
                        <div class="form-group">
                            <label for="filePdf" class="col-sm-3 control-label"><%=utils.ResourceBundleUtils.getApplicationResource("select.filePDF")%><span style="color: red;"> (*)</span></label>
                            <div class="col-sm-9">      
                                <div id="fileuploader">Upload</div>
                                <div style="font-style: italic; margin-top: 10px;">Lưu ý: Chỉ cho phép upload file .pdf</div>
                            </div>
                        </div>
                    </div>
                    <div class="col-lg-12">
                        <div class="form-group">
                            <label for="filePdf" class="col-sm-3 control-label"><%=utils.ResourceBundleUtils.getApplicationResource("phoneNumber.lable")%><span style="color: red;"> (*)</span></label>
                            <div class="col-sm-9">      
                                <input type="text" id="phoneNumber" name="phoneNumber" value="" class="form-control" maxlength="15" style="width: 425px;"/>
                            </div>
                        </div>
                    </div>
                    <div class="col-lg-12">
                        <object id="plugin0" type="application/x-viettelcasigner" width="0" height="0">

                        </object>
                    </div>
                    <div class="col-lg-12">
                        <div id="errorMessageSignUSB" class="bg-danger" style="padding: 10px; color: red; display: none; text-align: center;"></div>
                    </div>

                    <div class="col-lg-12">
                        <button type="submit" class="btn btn-primary" style="margin-left: 45%; margin-top: 20px;">Sign</button>
                    </div>
                </html:form>
            </div>
        </div>
    </div>
</div>
<div id="resultUpload" style="display: none;"></div>
<div id="resultHashFile" style="display: none;"></div>
<div id="resultSignMobileCA" style="display: none;"></div>

<script>
    var uploadObj;
    jQuery(document).ready(function ()
    {
        jQuery("#menu-signMobileCA-li").addClass("active");
        uploadObj = jQuery("#fileuploader").uploadFile({
            url: "<%=request.getContextPath()%>/uploadFile.do",
            fileName: "filePdf",
            //            autoSubmit: false,
            multiple: false,
            maxFileCount: 1,
            allowedTypes: "pdf",
            onSubmit: function (files)
            {
//                showProgressing();
                //return false;
            },
            onSuccess: function (files, data, xhr, pd)
            {
                //files: list of files
                //data: response from server
                //xhr : jquer xhr object
                jQuery("#resultUpload").html(data);
                if (jQuery("#resultUpload input[name=statusResultUpload]").length == 0) {
                    alert("Chưa chọn file PDF để ký");
                } else if (jQuery("#resultUpload input[name=statusResultUpload]").val() != "success"
                        || jQuery("#resultUpload input[name=fileName]").val() == undefined
                        || jQuery("#resultUpload input[name=fileName]").val().indexOf(".pdf") == -1) {
                    if (jQuery("#resultUpload input[name=descErrorDownloadFile]").val() != undefined
                            && jQuery("#resultUpload input[name=descErrorDownloadFile]").val().length != 0) {
                        alert("Upload file PDF chưa thành công, vui lòng chọn lại file PDF. " + jQuery("#resultUpload input[name=descErrorDownloadFile]").val().trim());
                    } else {
                        alert("Upload file PDF chưa thành công, vui lòng chọn lại file PDF");
                    }
                }
                hideAllPopup();
            },
            onError: function (files, status, errMsg, pd)
            {
                hideAllPopup();
                jQuery("#resultUpload").html("");
                alert("Upload file PDF chưa thành công, vui lòng chọn lại file PDF");
            }
        });
    });


    function isInteger(s)
    {
        var i;
        for (i = 0; i < s.length; i++)
        {
            // Check that current character is number.
            var c = s.charAt(i);
            if (((c < "0") || (c > "9")))
                return false;
        }
        // All characters are numbers.
        return true;
    }
    function isMobileNumber(obj) {
        var phoneNumber = obj.value;
        if (phoneNumber != null && trim(phoneNumber).length > 0) {
            var fCheck = phoneNumber.substring(0, 1);
            if (isInteger(trim(phoneNumber))) {
                var strMsg = "";
                if ((parseInt(fCheck, 10) == 0)) {
                    strMsg = "Số điện thoại không được bắt đầu là số 0!";
                    alert(strMsg);
                    obj.value = "";
                    setTimeout(function () {
                        obj.focus();
                        obj.select();
                    }, 0);
                } else
                if (trim(phoneNumber).length > 11) {
                    strMsg = "Chiều dài phải nhỏ hơn 12 số!";
                    alert(strMsg);
                    obj.value = "";
                    setTimeout(function () {
                        obj.focus();
                        obj.select();
                    }, 0);
                }
            } else {
                alert("Số điện thoại phải là số!");
                obj.value = "";
                setTimeout(function () {
                    obj.focus();
                    obj.select();
                }, 0);
            }
        }
    }

    function validate() {
        if (jQuery("#resultUpload input[name=statusResultUpload]").length == 0) {
            alert("Chưa chọn file PDF để ký");
            return false;
        }
        if (jQuery("#resultUpload input[name=statusResultUpload]").val() != "success"
                || jQuery("#resultUpload input[name=fileName]").val() == undefined
                || jQuery("#resultUpload input[name=fileName]").val().indexOf(".pdf") == -1) {
            if (jQuery("#resultUpload input[name=descErrorDownloadFile]").val() != undefined
                    && jQuery("#resultUpload input[name=descErrorDownloadFile]").val().length != 0) {
                alert("Upload file PDF chưa thành công, vui lòng chọn lại file PDF. " + jQuery("#resultUpload input[name=descErrorDownloadFile]").val().trim());
            } else {
                alert("Upload file PDF chưa thành công, vui lòng chọn lại file PDF");
            }
            return false;
        }

        if (jQuery("input[name=phoneNumber]").length == 0 || jQuery("input[name=phoneNumber]").val() == undefined
                || jQuery("input[name=phoneNumber]").val().trim().length == 0) {
            alert("Chưa nhập Số điện thoại");
            return false;
        }


        var phoneNumber = jQuery("input[name=phoneNumber]").val();
        var fCheck = phoneNumber.substring(0, 1);
        if (isInteger(trim(phoneNumber))) {
            if ((parseInt(fCheck, 10) == 0)) {
                alert("Số điện thoại không được bắt đầu là số 0!");
                jQuery("input[name=phoneNumber]").focus();
                return false;
            } else
            if (trim(phoneNumber).length > 12) {
                alert("Chiều dài phải nhỏ hơn bằng 12 số!");
                jQuery("input[name=phoneNumber]").focus();
                return false;
            }
            if (trim(phoneNumber).substring(0, 2) != "84") {
                alert("Số điện thoại phải có định dạng 84xxxxxxxxxx!");
                jQuery("input[name=phoneNumber]").focus();
                return false;
            }
        } else {
            alert("Số điện thoại phải là số!");
            jQuery("input[name=phoneNumber]").focus();
            return false;
        }
        return true;
    }

    function signMobileCA() {
        if (!validate()) {
            return;
        }
        var fileName = jQuery("#resultUpload input[name=fileName]").val();
        var phoneNumber = jQuery("input[name=phoneNumber]").val();
        showProgressing();

        areaId = "resultSignMobileCA";
        jQuery("#resultSignMobileCA").html("");
        var actionUrl = '<%=request.getContextPath()%>/signMobileCA.do?'
                + "phoneNumber=" + encodeURIComponent(phoneNumber)
                + "&fileName=" + encodeURIComponent(fileName);
        new Ajax.Updater(areaId, actionUrl, {
            asynchronous: false
        });


        if (jQuery("#resultSignMobileCA input[name=statusResultSignMobileCA]").length == 0) {
            hideAllPopup();
            alert("Ký không thành công");
            return false;
        }
        if (jQuery("#resultSignMobileCA input[name=statusResultSignMobileCA]").val() != "success"
                || jQuery("#resultSignMobileCA input[name=signedFileName]").val() == undefined
                || jQuery("#resultSignMobileCA input[name=signedFileName]").val().length == 0) {
            hideAllPopup();
            if (jQuery("#resultSignMobileCA input[name=descErrorSignMobileCA]").val() != undefined
                    && jQuery("#resultSignMobileCA input[name=descErrorSignMobileCA]").val().length != 0) {
                alert("Ký không thành công. " + jQuery("#resultSignMobileCA input[name=descErrorSignMobileCA]").val().trim());
            } else {
                alert("Ký không thành công");
            }
            return false;
        }

        var signedFileName = jQuery("#resultSignMobileCA input[name=signedFileName]").val();

        //Download file
        var actionUrl = '<%=request.getContextPath()%>/downloadFile.do?'
                + "fileName=" + encodeURIComponent(signedFileName);
        jQuery.fileDownload(actionUrl)
                .done(function () {
                    hideAllPopup();
                    alert("Download signed file success");
                })
                .fail(function () {
                    hideAllPopup();
                    alert("Download signed filefail");
                });

        hideAllPopup();
    }
</script>