/*
 * Translated default messages for the jQuery validation plugin.
 * Locale: FA
 */
jQuery.extend(jQuery.validator.messages, {
       required: "تکمیل این فیلد اجباری است.",
       remote: "مقدار وارد شده تکراری است.",
       email: ".لطفا یک ایمیل صحیح وارد کنید",
       url: "لطفا آدرس صحیح وارد کنید.",
       date: "لطفا یک تاریخ صحیح وارد کنید",
       dateISO: "لطفا تاریخ صحیح وارد کنید (ISO).",
       number: "لطفا عدد صحیح وارد کنید.",
       digits: "لطفا تنها رقم وارد کنید",
       creditcard: "لطفا کریدیت کارت صحیح وارد کنید.",
       equalTo: "لطفا مقدار برابری وارد کنید",
       accept: "فایل وارد شده دارای پسوند معتبر نیست",
       maxlength: jQuery.validator.format("لطفا بیشتر از {0} حرف وارد نکنید."),
       minlength: jQuery.validator.format("لطفا کمتر از {0} حرف وارد نکنید."),
       rangelength: jQuery.validator.format("لطفا مقداری بین {0} تا {1} حرف وارد کنید."),
       range: jQuery.validator.format("لطفا مقداری بین {0} تا {1} حرف وارد کنید."),
       max: jQuery.validator.format("لطفا مقداری کمتر از {0} حرف وارد کنید."),
       min: jQuery.validator.format("لطفا مقداری بیشتر از {0} حرف وارد کنید.")
   });
   $.validator.addMethod("regex",
   function(value, el, params) {
       var res = true;
       if (value) {
           if (value != '') {
               try {
                   res = value.match(params);
               } catch (e) { }
           };
       };
       return res;
   }, "مقدار وارد شده صحیح نیست");

   $.validator.addMethod("pki",
   function(value, el, params) {
       try {
           if (!pki) {
               pki = new PKIClass();
           };
           var id = params.id;
           var username = params.username;
           var pass = params.pass;
           var captcha = params.captcha;

           if (pki.IsInstalled) {
               pass = $("#" + pass).val();
               username = $("#" + username).val();
               captcha = $("#" + captcha).val();
               if (pass && username && captcha) {
                   pass = pki.HashData(pass);
                   var data = "<login><Password>" + pass + "</Password><UserName>" + username +
            "</UserName><Captcha>" + captcha + "</Captcha></login>";
                   var hasdata = false;
                   if (pki.HasCertificate()) {
                       $.ajax({
                           url: '/Public/GetDate',
                           type: 'GET',
                           async: false,
                           cache: false,
                           success: function(data) {
                               hasdata = data;
                           }
                       });
                       if (hasdata) {
                           var res = pki.Sign(data, hasdata);
                           if (res.IsSuccess) {
                               var thumbprint = pki.Certificate.Thumbprint;
                               var signData = res.Data;

                               $("#" + id + "_thumbprint").val(thumbprint);
                               $("#" + id + "_sing").val(signData);

                           } else {
                               alert('فرآیند امضای دیجیتال موفقیت آمیز نبود!');
                           };
                       } else {
                           alert('عدم امکان برقراری ارتباط با سرور');
                       };
                   };
               };
           };
       } catch (e) {
       }
       return true;
   }, "");
   
   var DPMSRegex = {
       Date: /(\d{4})[\\\/\-](\d{1,2})[\\\/\-](\d{1,2})/,
       DateTime: /(\d{4})[\\\/\-](\d{1,2})[\\\/\-](\d{1,2})\s(\d{1,2}):(\d{1,2}):(\d{1,2})/,
       Time: /(\d{1,2}):(\d{1,2}):(\d{1,2})/,
       LatinCharAndNum: /^[\sa-zA-Z0-9]*$/,
       LatinChar: /^[\sa-zA-Z]*$/,
       FarsiChar: /^[\sگوکذىىلآدءٍفإجژچپشذزیثبلاهتنمئدخحضقسفعرصطغظ]*$/
   };
   var ErrorPlacement = function(error, element) {
       if (!element.is(":hidden"))
           error.insertAfter(element);
   };
   var InvalidHandler = function(e, validator) {
       var numarr = ["٠", "١", "٢", "٣", "٤", "٥", "٦", "٧", "٨", "٩"];
       var errors = validator.numberOfInvalids();
       if (errors) {
           var perr = "";
           errors = errors + "";
           for (var i = 0; i < errors.length; i++) {
               perr += numarr[eval(errors.charAt(i))];
           };
           alert("فرم دارای " + perr + " اشکال است آنها را تصحیح کنید");
       }
   };
   $(document).ready(function() {
       if ($("form").length > 0) {
           $("form").each(function() {
               $(this).validate({
                   errorPlacement: ErrorPlacement,
                   invalidHandler: InvalidHandler
               });
           });
       };
   });

