گرویتی فرم فارسی - Version 1.4.0

Version Description

  • compatible with version 1.9
  • compatible with noconflict mode
  • added plugin translation
  • update translation file
  • Fixed : wp_session fatal error
Download this release

Release Info

Developer hannanstd
Plugin Icon 128x128 گرویتی فرم فارسی
Version 1.4.0
Comparing to
See all releases

Code changes from version 1.3.2 to 1.4.0

Persian_Gravityforms_By_HANNANStd.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: Persian Gravity Forms
4
  Plugin URI: https://wordpress.org/plugins/persian-gravity-forms/
5
  Description: Gravity Forms for Iranian
6
- Version: 1.3.2
7
  Requires at least: 3.5
8
  Author: HANNAN Ebrahimi Setoode
9
  Author URI: http://www.gravityforms.ir/
@@ -22,12 +22,13 @@ class GravityFormsPersian {
22
  add_action('init', array( $this, 'init' ), 8 );
23
  add_action('gform_post_status_options', array( $this, 'Add_Private_Post_Status_By_HANNANStd'));
24
  add_action('activated_plugin', array( $this, 'Activated_Plugin_By_HANNANStd' ) );
 
25
  add_action('gform_admin_pre_render', array( $this, 'Add_Merge_Tags_To_List_By_HANNANStd'));
26
  add_action('wp_dashboard_setup', array( $this, 'Persian_GravityForms_Dashboard_By_HANNANStd'));
27
- add_action('admin_print_scripts', array( $this, 'GravityForms_Admin_CSS_By_HANNANStd' ));
28
- add_action('gform_field_standard_settings', array( $this, 'Add_Jalali_Active_Standard_Settings'), 10, 2);
29
  add_action('gform_editor_js', array( $this, 'Editor_Script_By_HANNANStd'));
30
- add_action('gform_enqueue_scripts', array( $this, 'Add_Jalali_Front_End_On_Off_Switch_By_HANNANStd'), 10 , 2 );
31
  add_action('gform_field_input', array( $this,'Add_Melli_Cart_Field_Input_By_HANNANStd'), 10, 5);
32
  add_action('gform_field_css_class', array( $this, 'Add_Melli_Cart_Field_Class_By_HANNANStd'), 10, 3);
33
  add_action('gform_field_advanced_settings', array( $this, 'Add_Melli_Cart_Field_Setting_By_HANNANStd'), 10, 2);
@@ -40,14 +41,15 @@ class GravityFormsPersian {
40
  add_filter('gform_address_types', array( $this, 'Gform_IRAN_By_HANNANStd' ) );
41
  add_filter('gform_replace_merge_tags', array( $this, 'GformReplaceMergeTags_By_HANNANStd'), 10, 7);
42
  add_filter('gform_print_styles', array( $this, 'Add_Styles_Print_By_HANNANStd'), 10, 2);
43
- add_filter('gform_predefined_choices', array( $this, 'Add_Iran_States_Predefined_Choice_By_HANNANStd' ),1);
44
- add_filter('gform_predefined_choices', array( $this, 'Add_Iran_Months_Predefined_Choice_By_HANNANStd' ),1);
45
  add_filter('gform_tooltips', array( $this, 'Add_Encryption_tooltips_By_HANNANStd'));
46
- add_filter('gform_add_field_buttons', array( $this, 'Add_Melli_Cart_Field_By_HANNANStd'));
47
- add_filter('gform_field_type_title', array( $this,'Add_Melli_Cart_Field_Title_By_HANNANStd'));
48
- add_filter('gform_editor_js_set_default_values', array( $this, 'Add_Melli_Cart_Field_Label_By_HANNANStd'));
49
  add_filter('gform_field_content', array( $this, 'Add_Melli_Cart_Field_JavaScript_Checker_By_HANNANStd'), 10, 5);
50
- add_filter('gform_field_validation', array( $this, 'Input_Valid_Checker_By_HANNANStd'), 10, 4);
 
 
51
  }
52
  public function Activated_Plugin_By_HANNANStd() {
53
  $path = str_replace( WP_PLUGIN_DIR . '/', '', $this->file );
@@ -78,7 +80,6 @@ class GravityFormsPersian {
78
  $this->is_persian = ( ICL_LANGUAGE_CODE == 'fa' );
79
  }
80
  load_plugin_textdomain( 'Persian_Gravityforms_By_HANNANStd', false, $rel_path );
81
- load_plugin_textdomain( 'gravityformsuserregistration', false, $rel_path );
82
  }
83
  protected static function get_base_path(){
84
  $folder = basename(dirname(__FILE__));
@@ -87,9 +88,6 @@ class GravityFormsPersian {
87
  public function Load_Textdomain_Mo_File_By_HANNANStd( $mo_file, $domain ) {
88
  if ( strpos( $mo_file, 'fa_IR.mo' ) !== false ) {
89
  $domains = array(
90
- 'gravityforms' => array(
91
- 'languages/gravityforms-fa_IR.mo' => 'gravityforms1.8/fa_IR.mo'
92
- ),
93
  'gravityformscoupons' => array(
94
  'languages/gravityformscoupons-fa_IR.mo' => 'gravityformscoupons/fa_IR.mo'
95
  ),
@@ -143,8 +141,34 @@ class GravityFormsPersian {
143
  ),
144
  'sticky-list' => array(
145
  'languages/sticky-list-fa_IR.mo' => 'gravityformsstickylist/fa_IR.mo'
 
 
 
 
 
 
146
  )
147
  );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
148
  if ( isset( $domains[$domain] ) ) {
149
  $paths = $domains[$domain];
150
  foreach ( $paths as $path => $file ) {
@@ -159,17 +183,30 @@ class GravityFormsPersian {
159
  }
160
  return $mo_file;
161
  }
162
- public function Add_Jalali_Active_Standard_Settings($position, $form_id){
163
  if($position == 25){
164
  ?>
165
  <li class="Jalali_setting field_setting">
166
  <input type="checkbox" id="check_jalali" onclick="SetFieldProperty('check_jalali', jQuery(this).is(':checked') ? 1 : 0);"/>
167
  <label class="inline gfield_value_label" for="field_admin_label">
168
- <?php _e( 'فعالسازی تاریخ شمسی', 'Persian_Gravityforms_By_HANNANStd' ); ?>
169
- <?php gform_tooltip("form_check_jalali") ?>
 
 
 
 
 
 
 
170
  </label>
 
 
 
 
 
171
  </li>
172
  <?php
 
173
  }
174
  }
175
  public function Editor_Script_By_HANNANStd(){
@@ -177,6 +214,7 @@ class GravityFormsPersian {
177
  <script type='text/javascript'>
178
  fieldSettings["date"] += ", .Jalali_setting";
179
  fieldSettings["mellicart"] = ".conditional_logic_field_setting, .label_setting, .admin_label_setting, .size_setting, .rules_setting, .visibility_setting, .duplicate_setting, .default_value_setting, .description_setting, .css_class_setting, .mellicart_setting";
 
180
  jQuery(document).bind("gform_load_field_settings", function(event, field, form){
181
  jQuery("#check_jalali").attr("checked", field["check_jalali"] == true);
182
  jQuery("#field_mellicart").attr("checked", field["field_mellicart"] == true);
@@ -193,14 +231,15 @@ class GravityFormsPersian {
193
  $tooltips["form_check_jalali"] = "<h6>فعالسازی تاریخ شمسی</h6>در صورتی که از چند فیلد تاریخ استفاده میکنید ، فعالسازی تاریخ شمسی یکی از فیلدها کفایت میکند .<br/>تذکر : با توجه به آزمایشی بودن این قسمت ممکن است تداخل توابع سبب ناسازگاری با برخی قالب ها شود.";
194
  $tooltips["form_field_mellicart"] = "<h6>نمایش لحظه ای شهر از روی کد ملی </h6>نمایش شهر و پیغام زیر فیلد کد ملی بعد از پر شدن فیلد . تذکر : در صورتی که این گزینه را فعال نمایید ،ممکن است فراخوانی شهر های ایران با توجه به زیاد بودن آنها سبب سنگین شدن صفحه گردد.";
195
  $tooltips["form_field_mellicart_sp"] = "<h6>جدا سازی ارقام</h6>در صورتی که این گزینه را فعال نمایید ، پس از پر شدن فیلد ، <strong>در صورتی که کد ملی وارد شده صحیح تشخصی داده شود</strong> ؛ کد ملی به صورت زیر در خواهد آمد :<br/>xxx-xxxxxx-x";
196
- $tooltips["form_field_mellicart_header"] = "<h6>پیغام خطا</h6>در صورتی که کاربر فیلد کد ملی را به صورت صحیح وارد نکند ؛ پیغام خطا را مشاهده میکند که میتوانید این پیغام ها را مدیریت نمایید . در صورتی که مقادیر زیر را خالی بگذارید پیغام پیشفرض نمایش داده خواهد شد.";
197
  $tooltips["form_field_mellicart_sp1"] = "<h6>پیغام پیشفرض</h6>با توجه به اینکه کد ملی فقط باید به صورت عدد باشد ، در صورتی که کاراکتری غیر از عدد وارد شده باشد پیغام خطا نمایش داده خواهد شد .<br/>پیغام پیشفرض : کد ملی فقط باید به صورت عدد وارد شود . ";
198
  $tooltips["form_field_mellicart_sp2"] = "<h6>پیغام پیشفرض</h6>با توجه به اینکه کد ملی می بایست 10 رقمی باشد اگر تعداد رقم وارد شده ، اشتباه باشد پیغام خطا نمایش داده خواهد شد .<br>پیغام پیشفرض : کد ملی می بایست 10 رقمی باشد . تنها در صورتی مجاز به استفاده از کد های 8 یا 9 رقمی هستید که ارقام سمت چپ 0 باشند . ";
199
  $tooltips["form_field_mellicart_sp3"] = "<h6>پیغام پیشفرض</h6>در صورتی که از تب وِیژگی تیک گزینه بدون تکرار را زده باشید ؛ بعد از پر شدن فرم و زدن دکمه ارسال پیغامی مبتنی بر تکراری بودن کد ملی نمایش داده خواهد شد . <br/>پیغام پیشفرض : این کد ملی توسط فرد دیگری ثبت شده است .";
200
  $tooltips["form_field_mellicart_sp4"] = "<h6>پیغام پیشفرض</h6>در صورتی که کد ملی وارد شده مطابق با الگوریتم کشور نباشد پیغام خطا نمایش داده خواهد شد .<br/>پیغام پیشفرض : کد ملی وارد شده مطابق با استانداردهای کشور نمی باشد .";
 
 
201
  return $tooltips;
202
  }
203
- function Add_Jalali_Front_End_On_Off_Switch_By_HANNANStd( $form, $ajax ) {
204
  foreach ( $form['fields'] as $field ) {
205
  if ( ( $field['type'] == 'date' ) ) {
206
  if(rgget("check_jalali", $field)){
@@ -214,6 +253,14 @@ class GravityFormsPersian {
214
  }
215
  }
216
  }
 
 
 
 
 
 
 
 
217
  }
218
  }
219
  public function Set_Min_Year_By_HANNANStd($min_year){
@@ -278,8 +325,8 @@ class GravityFormsPersian {
278
  );
279
  return $address_types;
280
  }
281
- public function Add_Iran_States_Predefined_Choice_By_HANNANStd($choices){
282
- $choices[__( 'استانهای ایران', 'Persian_Gravityforms_By_HANNANStd' )] = array(
283
  __( 'آذربایجان شرقی', 'Persian_Gravityforms_By_HANNANStd' ),
284
  __( 'آذربایجان غربی', 'Persian_Gravityforms_By_HANNANStd' ),
285
  __( 'اردبیل', 'Persian_Gravityforms_By_HANNANStd' ),
@@ -311,10 +358,9 @@ class GravityFormsPersian {
311
  __( 'هرمزگان', 'Persian_Gravityforms_By_HANNANStd' ),
312
  __( 'همدان', 'Persian_Gravityforms_By_HANNANStd' ),
313
  __( 'یزد', 'Persian_Gravityforms_By_HANNANStd' )
314
- ); return $choices;
315
- }
316
- public function Add_Iran_Months_Predefined_Choice_By_HANNANStd($choices){
317
- $choices[__( 'ماه های ایران', 'Persian_Gravityforms_By_HANNANStd' )] = array(__( 'فروردین', 'Persian_Gravityforms_By_HANNANStd' ),
318
  __( 'اردیبهشت', 'Persian_Gravityforms_By_HANNANStd' ),
319
  __( 'خرداد', 'Persian_Gravityforms_By_HANNANStd' ),
320
  __( 'تیر', 'Persian_Gravityforms_By_HANNANStd' ),
@@ -326,7 +372,8 @@ class GravityFormsPersian {
326
  __( 'دی', 'Persian_Gravityforms_By_HANNANStd' ),
327
  __( 'بهمن', 'Persian_Gravityforms_By_HANNANStd' ),
328
  __( 'اسفند', 'Persian_Gravityforms_By_HANNANStd' )
329
- ); return $choices;
 
330
  }
331
  public function Add_Merge_Tags_To_List_By_HANNANStd($form){ ?>
332
  <script type="text/javascript">
@@ -398,109 +445,133 @@ class GravityFormsPersian {
398
  return $lead;
399
  }
400
  public function GformReplaceMergeTags_By_HANNANStd($text, $form, $lead, $url_encode, $esc_html, $nl2br, $format){
401
- $gateway = gform_get_meta($lead['id'], 'payment_gateway');
402
- if ($lead['payment_status']=="Active" || $lead['payment_status']=="Paid")
403
- $payment_status = __("Paid", "Persian_Gravityforms_By_HANNANStd");
404
- if ($lead['payment_status']=="Failed")
405
- $payment_status = __("Failed", "Persian_Gravityforms_By_HANNANStd");
406
- if ($lead['payment_status']=="Cancelled")
407
- $payment_status = __("Cancelled", "Persian_Gravityforms_By_HANNANStd");
408
- $tags = array(
409
- '{payment_gateway}',
410
- '{transaction_id}',
411
- '{payment_status}',
412
- '{payment_gateway_css}',
413
- '{transaction_id_css}',
414
- '{payment_status_css}',
415
- '{payment_pack}',
416
- '{rtl_start}',
417
- '{rtl_end}',
418
- );
419
- $values = array (
420
- $gateway ? $gateway : '',
421
- isset($lead['transaction_id']) ? $lead['transaction_id'] : '',
422
- isset($lead['payment_status']) ? $payment_status : '',
423
- $gateway ? '
424
- <table width="99%" border="0" cellpadding="1" cellspacing="0" bgcolor="#EAEAEA" style="border:1px solid #e9e9e9!important;">
425
- <tr bgcolor="#EAF2FA">
426
- <td colspan="2" style="padding:5px !important">
427
- <font style="font-family:sans-serif;font-size:12px"><strong>'.__( 'Payment Gateway', 'Persian_Gravityforms_By_HANNANStd' ).'</strong></font>
428
- </td>
429
- </tr>
430
- <tr bgcolor="#FFFFFF">
431
- <td style="padding:5px !important"><font style="font-family:sans-serif;font-size:12px">'.$gateway.'</font>
432
- </td>
433
- </tr>
434
- </table>' : '',
435
- isset($lead['transaction_id']) ? '
436
- <table width="99%" border="0" cellpadding="1" cellspacing="0" bgcolor="#EAEAEA" style="border:1px solid #e9e9e9!important;">
437
- <tr bgcolor="#EAF2FA">
438
- <td colspan="2" style="padding:5px !important">
439
- <font style="font-family:sans-serif;font-size:12px"><strong>'.__( 'Transaction ID', 'Persian_Gravityforms_By_HANNANStd' ).'</strong></font>
440
- </td>
441
- </tr>
442
- <tr bgcolor="#FFFFFF">
443
- <td style="padding:5px !important">
444
- <font style="font-family:sans-serif;font-size:12px">'.$lead['transaction_id'].'</font>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
445
  </td>
446
  </tr>
447
- </table>' : '',
448
- isset($lead['payment_status']) ? '
449
- <table width="99%" border="0" cellpadding="1" cellspacing="0" bgcolor="#EAEAEA" style="border:1px solid #e9e9e9!important;">
450
- <tr bgcolor="#EAF2FA">
451
- <td colspan="2" style="padding:5px !important">
452
- <font style="font-family:sans-serif;font-size:12px"><strong>'.__( 'Payment Status', 'Persian_Gravityforms_By_HANNANStd' ).'</strong></font>
453
- </td>
454
- </tr>
455
- <tr bgcolor="#FFFFFF">
456
- <td style="padding:5px !important">
457
- <font style="font-family:sans-serif;font-size:12px">'.$payment_status.'</font>
458
- </td>
459
- </tr>
460
- </table>' : '',
461
- (isset($lead['transaction_id']) && $gateway && isset($lead['payment_status']) ) ? '
462
- <table width="99%" border="0" cellpadding="1" cellspacing="0" bgcolor="#EAEAEA" style="border:1px solid #e9e9e9!important;">
463
- <tr>
464
- <td style="font-size:14px;font-weight:bold;background-color:#eee;border-bottom:1px solid #dfdfdf;padding:7px 7px" colspan="2">
465
- '.__( 'Payment Information', 'Persian_Gravityforms_By_HANNANStd' ).'
466
- </td>
467
- </tr>
468
- <tr bgcolor="#EAF2FA">
469
- <td colspan="2" style="padding:5px !important">
470
- <font style="font-family:sans-serif;font-size:12px"><strong>'.__( 'Payment Gateway', 'Persian_Gravityforms_By_HANNANStd' ).'</strong></font>
471
- </td>
472
- </tr>
473
- <tr bgcolor="#FFFFFF">
474
- <td style="padding:5px !important">
475
- <font style="font-family:sans-serif;font-size:12px">'.$gateway.'</font>
476
- </td>
477
- </tr>
478
- <tr bgcolor="#EAF2FA">
479
- <td colspan="2" style="padding:5px !important">
480
- <font style="font-family:sans-serif;font-size:12px"><strong>'.__( 'Payment Status', 'Persian_Gravityforms_By_HANNANStd' ).'</strong></font>
481
- </td>
482
- </tr>
483
- <tr bgcolor="#FFFFFF">
484
- <td style="padding:5px !important">
485
- <font style="font-family:sans-serif;font-size:12px">'.$payment_status.'</font>
486
- </td>
487
- </tr>
488
- <tr bgcolor="#EAF2FA">
489
- <td colspan="2" style="padding:5px !important">
490
- <font style="font-family:sans-serif;font-size:12px"><strong>'.__( 'Transaction ID', 'Persian_Gravityforms_By_HANNANStd' ).'</strong></font>
491
- </td>
492
- </tr>
493
- <tr bgcolor="#FFFFFF">
494
- <td style="padding:5px !important"><font style="font-family:sans-serif;font-size:12px">'.$lead['transaction_id'].'</font>
495
- </td>
496
- </tr>
497
- </table>' : '',
498
 
499
- '<div style="text-align: right !important; direction: rtl !important;">',
500
- '</div>',
501
- );
502
- $text = str_replace($tags, $values, $text);
503
- return $text;
504
  }
505
  public function Add_Styles_Print_By_HANNANStd($value, $form){
506
  if( is_rtl() ) {
@@ -508,23 +579,34 @@ class GravityFormsPersian {
508
  return array('print_entry');
509
  }
510
  }
511
- public function GravityForms_Admin_CSS_By_HANNANStd() {
512
- if(!class_exists('GFForms')){
513
  return;
514
- }
515
  $current_page = trim(strtolower(RGForms::get("page")));
516
  $page_prefix = explode("_", $current_page);
517
- if (is_rtl() && ($page_prefix[0]=="gf" || $_SERVER['REQUEST_URI'] == '/wp-admin/' || $_SERVER['REQUEST_URI'] == '/wp-admin' || $_SERVER['REQUEST_URI'] == '/wp-admin/index.php' || $_SERVER['REQUEST_URI'] == '/wp-admin/index.php/')) {
 
 
 
518
  wp_enqueue_style('Persian_GravityForms', plugins_url ( '/assets/css/persiangravity.css', __FILE__, null, GFCommon::$version ) );
519
  wp_print_styles('gform_tooltip','Persian_GravityForms' );
520
  wp_dequeue_script('jquery-ui-datepicker');
521
- wp_enqueue_script(array("jquery-ui-datepicker"));
522
  wp_deregister_script('jquery-ui-datepicker');
523
  wp_deregister_script(array("jquery-ui-datepicker"));
524
  wp_deregister_script('gform_datepicker_init');
525
  wp_enqueue_script('gform_datepicker_init', plugins_url ( '/assets/js/wp-admin-datepicker.js', __FILE__), array( 'jquery', 'jquery-ui-core' ), true );
526
  }
527
  }
 
 
 
 
 
 
 
 
 
528
  public function Persian_GravityForms_Dashboard_By_HANNANStd() {
529
  if ( !current_user_can('manage_options') )
530
  return;
@@ -584,7 +666,7 @@ class GravityFormsPersian {
584
  echo "<a class='rsswidget a1' href='$link'>$title</a><div class='rssSummary'>$content</div><hr/>";
585
  else
586
  echo "<a class='rsswidget a2' href='$link'>$title</a>";
587
- echo "<li>";
588
  $i++;
589
  }
590
  echo "</ul>";
@@ -667,9 +749,9 @@ class GravityFormsPersian {
667
  return plugins_url( '', __FILE__ );
668
  }
669
  public function version(){
670
- return '1.3.2';
671
  }
672
- public function Add_Melli_Cart_Field_By_HANNANStd( $field_groups ) {
673
  foreach( $field_groups as &$group ){
674
  if( $group["name"] == "advanced_fields" ){
675
  $group["fields"][] = array(
@@ -677,22 +759,37 @@ class GravityFormsPersian {
677
  "value" => "کد ملی",
678
  "onclick" => "StartAddField('mellicart');"
679
  );
 
 
 
 
 
 
 
680
  break;
681
  }
682
  }
683
  return $field_groups;
684
  }
685
- public function Add_Melli_Cart_Field_Title_By_HANNANStd($type) {
686
  if ($type == 'mellicart') {
687
  return 'کد ملی';
688
  }
 
 
 
689
  }
690
- public function Add_Melli_Cart_Field_Label_By_HANNANStd(){
691
  ?>
692
  case "mellicart" :
693
  field.label = 'کد ملی';
694
  break;
 
 
 
 
695
  <?php
 
696
  }
697
  public function Add_Melli_Cart_Field_Input_By_HANNANStd($input, $field, $value, $lead_id, $form_id ){
698
  if ( $field["type"] == "mellicart" ) {
@@ -723,6 +820,23 @@ class GravityFormsPersian {
723
  $tabindex = GFCommon::get_tabindex();
724
  return sprintf("<div class='ginput_container'><input onblur='MelliCard_Checker_Javascript_By_HANNANStd_%d(this);' name='input_%d' id='%s' type='%s' value='%s' class='melli_cart %s' $max_length $tabindex $html5_attributes %s/></div><p class='city mellicart' id='city_%d'></p>", $id, $id, $field_id, $html_input_type, esc_attr($value), esc_attr($class), $disabled_text, $id);
725
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
726
  return $input;
727
  }
728
  public function Add_Melli_Cart_Field_Setting_By_HANNANStd( $position, $form_id ){
@@ -744,7 +858,7 @@ class GravityFormsPersian {
744
  <br/>
745
  <hr/>
746
  <label class="inline">
747
- متن پیغام خطا هنگامی که موارد زیر رخ دهد
748
  <?php gform_tooltip("form_field_mellicart_header"); ?>
749
  </label>
750
  <br/>
@@ -846,139 +960,140 @@ class GravityFormsPersian {
846
  {
847
  return false;
848
  }
849
- <?php
850
- if(rgget("field_mellicart_sp", $field)) { ?>
851
- meli_code.value = meli_code.value.replace("-", "").replace("-", "");
852
- <?php
853
- }
854
- if(rgget("field_mellicart", $field)) {?>
855
- if (isNaN(meli_code.value)) {
856
- <?php
857
- if ($pm1)
858
- {
859
- ?>
860
- var pm1 = "<?php echo $pm1 ?>";
861
- <?php
862
- }
863
- else
864
- { ?>
865
- var pm1 = "کد ملی فقط باید به صورت عدد وارد شود . ";
866
- <?php
867
- } ?>
868
- document.getElementById("city_<?php echo $field["id"]; ?>").innerHTML = pm1;
869
- return false;
870
- }
871
- if (meli_code.value == '0000000000' ||
872
- meli_code.value == '1111111111' ||
873
- meli_code.value == '2222222222' ||
874
- meli_code.value == '3333333333' ||
875
- meli_code.value == '4444444444' ||
876
- meli_code.value == '5555555555' ||
877
- meli_code.value == '6666666666' ||
878
- meli_code.value == '7777777777' ||
879
- meli_code.value == '8888888888' ||
880
- meli_code.value == '9999999999') {
881
- <?php
882
- if ($pm3)
883
- {
884
- ?>
885
- var pm3 = "<?php echo $pm3 ?>";
886
- <?php
887
- }
888
- else
889
- {
890
- ?>
891
- var pm3 = 'کد ملی وارد شده مطابق با استانداردهای کشور نمی باشد .';
892
- <?php
893
- }
894
- ?>
895
- document.getElementById("city_<?php echo $field["id"]; ?>").innerHTML = pm3;
896
- return false;
897
- }
898
- if (meli_code.value.length > 10 || meli_code.value.length < 8)
899
- {
900
  <?php
901
- if ($pm2)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
902
  {
903
  ?>
904
- var pm2 = "<?php echo $pm2 ?>";
905
  <?php
906
  }
907
  else
908
  {
909
  ?>
910
- var pm2 = 'کد ملی می بایست 10 رقمی باشد . تنها در صورتی مجاز به استفاده از کد های 8 یا 9 رقمی هستید که ارقام سمت چپ 0 باشند . ';
911
  <?php
912
  }
913
  ?>
914
- document.getElementById("city_<?php echo $field["id"]; ?>").innerHTML = pm2;
915
- return false;
916
- }
917
- <?php
918
- }
919
- ?>
920
- if (meli_code.value.length == 8) {
921
- meli_code.value = "00"+meli_code.value;
922
- }
923
- if (meli_code.value.length == 9) {
924
- meli_code.value = "0"+meli_code.value;
925
- }
926
- city = meli_code.value.substring(0,3);
927
- c = parseInt(meli_code.value.charAt(9));
928
- n = parseInt(meli_code.value.charAt(0)) * 10 +
929
- parseInt(meli_code.value.charAt(1)) * 9 +
930
- parseInt(meli_code.value.charAt(2)) * 8 +
931
- parseInt(meli_code.value.charAt(3)) * 7 +
932
- parseInt(meli_code.value.charAt(4)) * 6 +
933
- parseInt(meli_code.value.charAt(5)) * 5 +
934
- parseInt(meli_code.value.charAt(6)) * 4 +
935
- parseInt(meli_code.value.charAt(7)) * 3 +
936
- parseInt(meli_code.value.charAt(8)) * 2;
937
- r = n - parseInt(n / 11) * 11;
938
- if ((r == 0 && r == c) || (r == 1 && c == 1) || (r > 1 && c == 11 - r)) {
939
- <?php
940
- if(rgget("field_mellicart", $field))
941
- {
942
- ?>
943
- if(city=="169")cityN="استان آذربايجان شرقي - شهر آذر شهر";if(city=="170")cityN="استان آذربايجان شرقي - شهر اسکو";if(city=="149"||city=="150")cityN="استان آذربايجان شرقي - شهر اهر";if(city=="171")cityN="استان آذربايجان شرقي - شهر بستان آباد";if(city=="168")cityN="استان آذربايجان شرقي - شهر بناب";if(city=="136"||city=="137"||city=="138")cityN="استان آذربايجان شرقي - شهر تبريز";if(city=="545")cityN="استان آذربايجان شرقي - شهر ترکمانچاي";if(city=="505")cityN="استان آذربايجان شرقي - شهر جلفا";if(city=="636")cityN="استان آذربايجان شرقي - شهر چاروايماق";if(city=="164"||city=="165")cityN="استان آذربايجان شرقي - شهر سراب";if(city=="172")cityN="استان آذربايجان شرقي - شهر شبستر";if(city=="623")cityN="استان آذربايجان شرقي - شهر صوفيان";if(city=="506")cityN="استان آذربايجان شرقي - شهر عجب شير";if(city=="519")cityN="استان آذربايجان شرقي - شهر کليبر";if(city=="154"||city=="155")cityN="استان آذربايجان شرقي - شهر مراغه";if(city=="567")cityN="استان آذربايجان شرقي - شهر ورزقان";if(city=="173")cityN="استان آذربايجان شرقي - شهر هريس";if(city=="159"||city=="160")cityN="استان آذربايجان شرقي - شهر هشترود";if(city=="604")cityN="استان آذربايجان شرقي - شهر هوراند";if(city=="274"||city=="275")cityN="استان آذربايجان غربي - شهر اروميه";if(city=="295")cityN="استان آذربايجان غربي - شهر اشنويه";if(city=="637")cityN="استان آذربايجان غربي - شهر انزل";if(city=="292")cityN="استان آذربايجان غربي - شهر بوکان";if(city=="492")cityN="استان آذربايجان غربي - شهر پلدشت";if(city=="289")cityN="استان آذربايجان غربي - شهر پيرانشهر";if(city=="677")cityN="استان آذربايجان غربي - شهر تخت سليمان";if(city=="294")cityN="استان آذربايجان غربي - شهر تکاب";if(city=="493")cityN="استان آذربايجان غربي - شهر چايپاره";if(city=="279"||city=="280")cityN="استان آذربايجان غربي - شهر خوي";if(city=="288")cityN="استان آذربايجان غربي - شهر سردشت";if(city=="284"||city=="285")cityN="استان آذربايجان غربي - شهر سلماس";if(city=="638")cityN="استان آذربايجان غربي - شهر سيلوانه";if(city=="291")cityN="استان آذربايجان غربي - شهر سيه چشمه(چالدران)";if(city=="640")cityN="استان آذربايجان غربي - شهر شوط";if(city=="293")cityN="استان آذربايجان غربي - شهر شاهين دژ";if(city=="675")cityN="استان آذربايجان غربي - شهر کشاورز";if(city=="282"||city=="283")cityN="استان آذربايجان غربي - شهر ماکو";if(city=="286"||city=="287")cityN="استان آذربايجان غربي - شهر مهاباد";if(city=="296"||city=="297")cityN="استان آذربايجان غربي - شهر مياندوآب";if(city=="290")cityN="استان آذربايجان غربي - شهر نقده";if(city=="400"||city=="401")cityN="استان همدان - شهر اسدآباد";if(city=="404"||city=="405")cityN="استان همدان - شهر بهار";if(city=="397")cityN="استان همدان - شهر تويسرکان";if(city=="398"||city=="399")cityN="استان همدان - شهر رزن";if(city=="647")cityN="استان همدان - شهر شراء و پيشخوار";if(city=="502")cityN="استان همدان - شهر فامنين";if(city=="584")cityN="استان همدان - شهر قلقل رود";if(city=="402"||city=="403")cityN="استان همدان - شهر کبودرآهنگ";if(city=="392"||city=="393")cityN="استان همدان - شهر ملاير";if(city=="395"||city=="396")cityN="استان همدان - شهر نهاوند";if(city=="386"||city=="387")cityN="استان همدان - شهر همدان";if(city=="503")cityN="استان يزد - شهر ابرکوه";if(city=="444")cityN="استان يزد - شهر اردکان";if(city=="551")cityN="استان يزد - شهر اشکذر";if(city=="447")cityN="استان يزد - شهر بافق";if(city=="561")cityN="استان يزد - شهر بهاباد";if(city=="445")cityN="استان يزد - شهر تفت";if(city=="718")cityN="استان يزد - شهر دستگردان";if(city=="083")cityN="استان يزد - شهر طبس";if(city=="446")cityN="استان يزد - شهر مهريز";if(city=="448")cityN="استان يزد - شهر ميبد";if(city=="552")cityN="استان يزد - شهر نير";if(city=="543")cityN="استان يزد - شهر هرات و مروست";if(city=="442"||city=="443")cityN="استان يزد - شهر يزد";if(city=="051")cityN="استان مرکزي - شهر آشتيان";if(city=="052"||city=="053")cityN="استان مرکزي - شهر اراک";if(city=="058")cityN="استان مرکزي - شهر تفرش";if(city=="055")cityN="استان مرکزي - شهر خمين";if(city=="617")cityN="استان مرکزي - شهر خنداب";if(city=="057")cityN="استان مرکزي - شهر دليجان";if(city=="618")cityN="استان مرکزي - شهر زرند مرکزي";if(city=="059"||city=="060")cityN="استان مرکزي - شهر ساوه";if(city=="061"||city=="062")cityN="استان مرکزي - شهر سربند";if(city=="544")cityN="استان مرکزي - شهر فراهان";if(city=="056")cityN="استان مرکزي - شهر محلات";if(city=="571")cityN="استان مرکزي - شهر وفس";if(city=="593")cityN="استان مرکزي - شهر هندودر";if(city=="667")cityN="استان هرمزگان - شهر ابوموسي";if(city=="348")cityN="استان هرمزگان - شهر بستک";if(city=="586")cityN="استان هرمزگان - شهر بشاگرد";if(city=="338"||city=="339")cityN="استان هرمزگان - شهر بندرعباس";if(city=="343"||city=="344")cityN="استان هرمزگان - شهر بندرلنگه";if(city=="346")cityN="استان هرمزگان - شهر جاسک";if(city=="337")cityN="استان هرمزگان - شهر حاجي آباد";if(city=="554")cityN="استان هرمزگان - شهر خمير";if(city=="469")cityN="استان هرمزگان - شهر رودان";if(city=="537")cityN="استان هرمزگان - شهر فين";if(city=="345")cityN="استان هرمزگان - شهر قشم";if(city=="470")cityN="استان هرمزگان - شهر گاوبندي";if(city=="341"||city=="342")cityN="استان هرمزگان - شهر ميناب";if(city=="483"||city=="484")cityN="استان لرستان - شهر ازنا";if(city=="557")cityN="استان لرستان - شهر اشترينان";if(city=="418")cityN="استان لرستان - شهر الشتر";if(city=="416"||city=="417")cityN="استان لرستان - شهر اليگودرز";if(city=="412"||city=="413")cityN="استان لرستان - شهر بروجرد";if(city=="592")cityN="استان لرستان - شهر پاپي";if(city=="612")cityN="استان لرستان - شهر چغلوندي";if(city=="613")cityN="استان لرستان - شهر چگني";if(city=="406"||city=="407")cityN="استان لرستان - شهر خرم آباد";if(city=="421")cityN="استان لرستان - شهر دورود";if(city=="598")cityN="استان لرستان - شهر رومشکان";if(city=="419")cityN="استان لرستان - شهر کوهدشت";if(city=="385")cityN="استان لرستان - شهر ملاوي(پلدختر)";if(city=="420")cityN="استان لرستان - شهر نورآباد(دلفان)";if(city=="528")cityN="استان لرستان - شهر ويسيان";if(city=="213"||city=="214")cityN="استان مازندران - شهر آمل";if(city=="205"||city=="206")cityN="استان مازندران - شهر بابل";if(city=="498")cityN="استان مازندران - شهر بابل";if(city=="568")cityN="استان مازندران - شهر بندپي";if(city=="711")cityN="استان مازندران - شهر بندپي شرقي";if(city=="217"||city=="218")cityN="استان مازندران - شهر بهشهر";if(city=="221")cityN="استان مازندران - شهر تنکابن";if(city=="582")cityN="استان مازندران - شهر جويبار";if(city=="483")cityN="استان مازندران - شهر چالوس";if(city=="625")cityN="استان مازندران - شهر چمستان";if(city=="576")cityN="استان مازندران - شهر چهاردانگه";if(city=="578")cityN="استان مازندران - شهر دودانگه";if(city=="227")cityN="استان مازندران - شهر رامسر";if(city=="208"||city=="209")cityN="استان مازندران - شهر ساري";if(city=="225")cityN="استان مازندران - شهر سوادکوه";if(city=="577")cityN="استان مازندران - شهر شيرگاه";if(city=="712")cityN="استان مازندران - شهر عباس آباد";if(city=="215"||city=="216")cityN="استان مازندران - شهر قائمشهر";if(city=="626")cityN="استان مازندران - شهر کجور";if(city=="627")cityN="استان مازندران - شهر کلاردشت";if(city=="579")cityN="استان مازندران - شهر گلوگاه";if(city=="713")cityN="استان مازندران - شهر مياندورود";if(city=="499")cityN="استان مازندران - شهر نکاء";if(city=="222")cityN="استان مازندران - شهر نور";if(city=="219"||city=="220")cityN="استان مازندران - شهر نوشهر";if(city=="500"||city=="501")cityN="استان مازندران - شهر هراز و محمودآباد";if(city=="623")cityN="استان گلستان - شهر آزادشهر";if(city=="497")cityN="استان گلستان - شهر آق قلا";if(city=="223")cityN="استان گلستان - شهر بندرترکمن";if(city=="689")cityN="استان گلستان - شهر بندرگز";if(city=="487")cityN="استان گلستان - شهر راميان";if(city=="226")cityN="استان گلستان - شهر علي آباد";if(city=="224")cityN="استان گلستان - شهر کردکوي";if(city=="386")cityN="استان گلستان - شهر کلاله";if(city=="211"||city=="212")cityN="استان گلستان - شهر گرگان";if(city=="628")cityN="استان گلستان - شهر گميشان";if(city=="202"||city=="203")cityN="استان گلستان - شهر گنبد کاووس";if(city=="531")cityN="استان گلستان - شهر مراوه تپه";if(city=="288")cityN="استان گلستان - شهر مينودشت";if(city=="261")cityN="استان گيلان - شهر آستارا";if(city=="273")cityN="استان گيلان - شهر آستانه";if(city=="630")cityN="استان گيلان - شهر املش";if(city=="264")cityN="استان گيلان - شهر بندرانزلي";if(city=="518")cityN="استان گيلان - شهر خمام";if(city=="631")cityN="استان گيلان - شهر رحيم آباد";if(city=="258"||city=="259")cityN="استان گيلان - شهر رشت";if(city=="570")cityN="استان گيلان - شهر رضوانشهر";if(city=="265")cityN="استان گيلان - شهر رودبار";if(city=="268"||city=="269")cityN="استان گيلان - شهر رودسر";if(city=="653")cityN="استان گيلان - شهر سنگر";if(city=="517")cityN="استان گيلان - شهر سياهکل";if(city=="569")cityN="استان گيلان - شهر شفت";if(city=="267")cityN="استان گيلان - شهر صومعه سرا";if(city=="262"||city=="263")cityN="استان گيلان - شهر طالش";if(city=="593")cityN="استان گيلان - شهر عمارلو";if(city=="266")cityN="استان گيلان - شهر فومن";if(city=="693")cityN="استان گيلان - شهر کوچصفهان";if(city=="271"||city=="272")cityN="استان گيلان - شهر لاهيجان";if(city=="694")cityN="استان گيلان - شهر لشت نشاء";if(city=="270")cityN="استان گيلان - شهر لنگرود";if(city=="516")cityN="استان گيلان - شهر ماسال و شاندرمن";if(city=="333"||city=="334")cityN="استان کرمانشاه - شهر اسلام آباد";if(city=="691")cityN="استان کرمانشاه - شهر باينگان";if(city=="322"||city=="323")cityN="استان کرمانشاه - شهر پاوه";if(city=="595")cityN="استان کرمانشاه - شهر ثلاث باباجاني";if(city=="395")cityN="استان کرمانشاه - شهر جوانرود";if(city=="641")cityN="استان کرمانشاه - شهر حميل";if(city=="596")cityN="استان کرمانشاه - شهر روانسر";if(city=="336")cityN="استان کرمانشاه - شهر سرپل ذهاب";if(city=="335")cityN="استان کرمانشاه - شهر سنقر";if(city=="496")cityN="استان کرمانشاه - شهر صحنه";if(city=="337")cityN="استان کرمانشاه - شهر قصرشيرين";if(city=="324"||city=="325")cityN="استان کرمانشاه - شهر کرمانشاه";if(city=="394")cityN="استان کرمانشاه - شهر کرند";if(city=="330")cityN="استان کرمانشاه - شهر کنگاور";if(city=="332")cityN="استان کرمانشاه - شهر گيلانغرب";if(city=="331")cityN="استان کرمانشاه - شهر هرسين";if(city=="687")cityN="استان کهکيلويه و بويراحمد - شهر باشت";if(city=="422"||city=="423")cityN="استان کهکيلويه و بويراحمد - شهر بويراحمد(ياسوج)";if(city=="599")cityN="استان کهکيلويه و بويراحمد - شهر بهمني";if(city=="600")cityN="استان کهکيلويه و بويراحمد - شهر چاروسا";if(city=="688")cityN="استان کهکيلويه و بويراحمد - شهر دروهان";if(city=="424"||city=="425")cityN="استان کهکيلويه و بويراحمد - شهر کهکيلويه(دهدشت)";if(city=="426")cityN="استان کهکيلويه و بويراحمد - شهر گچساران(دوگنبدان)";if(city=="550")cityN="استان کهکيلويه و بويراحمد - شهر لنده";if(city=="697")cityN="استان کهکيلويه و بويراحمد - شهر مارگون";if(city=="384")cityN="استان کردستان - شهر بانه";if(city=="377"||city=="378")cityN="استان کردستان - شهر بيجار";if(city=="558")cityN="استان کردستان - شهر دهگلان";if(city=="385")cityN="استان کردستان - شهر ديواندره";if(city=="646")cityN="استان کردستان - شهر سروآباد";if(city=="375"||city=="376")cityN="استان کردستان - شهر سقز";if(city=="372"||city=="373")cityN="استان کردستان - شهر سنندج";if(city=="379"||city=="380")cityN="استان کردستان - شهر قروه";if(city=="383")cityN="استان کردستان - شهر کامياران";if(city=="674")cityN="استان کردستان - شهر کراني";if(city=="381"||city=="382")cityN="استان کردستان - شهر مريوان";if(city=="676")cityN="استان کردستان - شهر نمشير";if(city=="722")cityN="استان کرمان - شهر ارزونيه";if(city=="542")cityN="استان کرمان - شهر انار";if(city=="312"||city=="313")cityN="استان کرمان - شهر بافت";if(city=="317")cityN="استان کرمان - شهر بردسير";if(city=="310"||city=="311")cityN="استان کرمان - شهر بم";if(city=="302"||city=="303")cityN="استان کرمان - شهر جيرفت";if(city=="583")cityN="استان کرمان - شهر رابر";if(city=="321")cityN="استان کرمان - شهر راور";if(city=="382")cityN="استان کرمان - شهر راين";if(city=="304"||city=="305")cityN="استان کرمان - شهر رفسنجان";if(city=="536")cityN="استان کرمان - شهر رودبار کهنوج";if(city=="605")cityN="استان کرمان - شهر ريگان";if(city=="308"||city=="309")cityN="استان کرمان - شهر زرند";if(city=="306"||city=="307")cityN="استان کرمان - شهر سيرجان";if(city=="319")cityN="استان کرمان - شهر شهداد";if(city=="313"||city=="314")cityN="استان کرمان - شهر شهربابک";if(city=="606")cityN="استان کرمان - شهر عنبرآباد";if(city=="320")cityN="استان کرمان - شهر فهرج";if(city=="698")cityN="استان کرمان - شهر قلعه گنج";if(city=="298"||city=="299")cityN="استان کرمان - شهر کرمان";if(city=="535")cityN="استان کرمان - شهر کوهبنان";if(city=="315"||city=="316")cityN="استان کرمان - شهر کهنوج";if(city=="318")cityN="استان کرمان - شهر گلباف";if(city=="607")cityN="استان کرمان - شهر ماهان";if(city=="608")cityN="استان کرمان - شهر منوجان";if(city=="508")cityN="استان قزوين - شهر آبيک";if(city=="538")cityN="استان قزوين - شهر آوج";if(city=="728")cityN="استان قزوين - شهر البرز";if(city=="509")cityN="استان قزوين - شهر بوئين زهرا";if(city=="438"||city=="439")cityN="استان قزوين - شهر تاکستان";if(city=="580")cityN="استان قزوين - شهر رودبار الموت";if(city=="590")cityN="استان قزوين - شهر رودبار شهرستان";if(city=="559")cityN="استان قزوين - شهر ضياءآباد";if(city=="588")cityN="استان قزوين - شهر طارم سفلي";if(city=="431"||city=="432")cityN="استان قزوين - شهر قزوين";if(city=="037"||city=="038")cityN="استان قم - شهر قم";if(city=="702")cityN="استان قم - شهر کهک";if(city=="240"||city=="241")cityN="استان فارس - شهر آباده";if(city=="670")cityN="استان فارس - شهر آباده طشک";if(city=="648")cityN="استان فارس - شهر ارسنجان";if(city=="252")cityN="استان فارس - شهر استهبان";if(city=="678")cityN="استان فارس - شهر اشکنان";if(city=="253")cityN="استان فارس - شهر اقليد";if(city=="649")cityN="استان فارس - شهر اوز";if(city=="513")cityN="استان فارس - شهر بوانات";if(city=="546")cityN="استان فارس - شهر بيضا";if(city=="671")cityN="استان فارس - شهر جويم";if(city=="246"||city=="247")cityN="استان فارس - شهر جهرم";if(city=="654")cityN="استان فارس - شهر حاجي آباد(زرين دشت)";if(city=="548")cityN="استان فارس - شهر خرامه";if(city=="547")cityN="استان فارس - شهر خشت و کمارج";if(city=="655")cityN="استان فارس - شهر خفر";if(city=="248"||city=="249")cityN="استان فارس - شهر داراب";if(city=="253")cityN="استان فارس - شهر سپيدان";if(city=="514")cityN="استان فارس - شهر سروستان";if(city=="665")cityN="استان فارس - شهر سعادت آباد";if(city=="673")cityN="استان فارس - شهر شيبکوه";if(city=="228"||city=="229"||city=="230")cityN="استان فارس - شهر شيراز";if(city=="679")cityN="استان فارس - شهر فراشبند";if(city=="256"||city=="257")cityN="استان فارس - شهر فسا";if(city=="244"||city=="245")cityN="استان فارس - شهر فيروزآباد";if(city=="681")cityN="استان فارس - شهر قنقري(خرم بيد)";if(city=="723")cityN="استان فارس - شهر قيروکارزين";if(city=="236"||city=="237")cityN="استان فارس - شهر کازرون";if(city=="683")cityN="استان فارس - شهر کوار";if(city=="656")cityN="استان فارس - شهر کراش";if(city=="250"||city=="251")cityN="استان فارس - شهر لارستان";if(city=="515")cityN="استان فارس - شهر لامرد";if(city=="242"||city=="243")cityN="استان فارس - شهر مرودشت";if(city=="238"||city=="239")cityN="استان فارس - شهر ممسني";if(city=="657")cityN="استان فارس - شهر مهر";if(city=="255")cityN="استان فارس - شهر ني ريز";if(city=="684")cityN="استان سمنان - شهر ايوانکي";if(city=="700")cityN="استان سمنان - شهر بسطام";if(city=="642")cityN="استان سمنان - شهر بيارجمند";if(city=="457")cityN="استان سمنان - شهر دامغان";if(city=="456")cityN="استان سمنان - شهر سمنان";if(city=="458"||city=="459")cityN="استان سمنان - شهر شاهرود";if(city=="460")cityN="استان سمنان - شهر گرمسار";if(city=="530")cityN="استان سمنان - شهر مهديشهر";if(city=="520")cityN="استان سمنان - شهر ميامي";if(city=="358"||city=="359")cityN="استان سيستان و بلوچستان - شهر ايرانشهر";if(city=="682")cityN="استان سيستان و بلوچستان - شهر بزمان";if(city=="703")cityN="استان سيستان و بلوچستان - شهر بمپور";if(city=="364"||city=="365")cityN="استان سيستان و بلوچستان - شهر چابهار";if(city=="371")cityN="استان سيستان و بلوچستان - شهر خاش";if(city=="701")cityN="استان سيستان و بلوچستان - شهر دشتياري";if(city=="720")cityN="استان سيستان و بلوچستان - شهر راسک";if(city=="366"||city=="367")cityN="استان سيستان و بلوچستان - شهر زابل";if(city=="704")cityN="استان سيستان و بلوچستان - شهر زابلي";if(city=="361"||city=="362")cityN="استان سيستان و بلوچستان - شهر زاهدان";if(city=="369"||city=="370")cityN="استان سيستان و بلوچستان - شهر سراوان";if(city=="635")cityN="استان سيستان و بلوچستان - شهر سرباز";if(city=="668")cityN="استان سيستان و بلوچستان - شهر سيب و سوران";if(city=="533")cityN="استان سيستان و بلوچستان - شهر شهرکي و ناروئي(زهک)";if(city=="705")cityN="استان سيستان و بلوچستان - شهر شيب آب";if(city=="699")cityN="استان سيستان و بلوچستان - شهر فنوج";if(city=="669")cityN="استان سيستان و بلوچستان - شهر قصرقند";if(city=="725")cityN="استان سيستان و بلوچستان - شهر کنارک";if(city=="597")cityN="استان سيستان و بلوچستان - شهر لاشار(اسپکه)";if(city=="611")cityN="استان سيستان و بلوچستان - شهر ميرجاوه";if(city=="525")cityN="استان سيستان و بلوچستان - شهر نيک شهر";if(city=="181")cityN="استان خوزستان - شهر آبادان";if(city=="527")cityN="استان خوزستان - شهر آغاجاري";if(city=="585")cityN="استان خوزستان - شهر اروندکنار";if(city=="685")cityN="استان خوزستان - شهر اميديه";if(city=="663")cityN="استان خوزستان - شهر انديکا";if(city=="192"||city=="193")cityN="استان خوزستان - شهر انديمشک";if(city=="174"||city=="175")cityN="استان خوزستان - شهر اهواز";if(city=="183"||city=="184")cityN="استان خوزستان - شهر ايذه";if(city=="481")cityN="استان خوزستان - شهر باغ ملک";if(city=="706")cityN="استان خوزستان - شهر بندر امام خميني";if(city=="194"||city=="195")cityN="استان خوزستان - شهر بندرماهشهر";if(city=="185"||city=="186")cityN="استان خوزستان - شهر بهبهان";if(city=="182")cityN="استان خوزستان - شهر خرمشهر";if(city=="199"||city=="200")cityN="استان خوزستان - شهر دزفول";if(city=="198")cityN="استان خوزستان - شهر دشت آزادگان";if(city=="662")cityN="استان خوزستان - شهر رامشير";if(city=="190"||city=="191")cityN="استان خوزستان - شهر رامهرمز";if(city=="692")cityN="استان خوزستان - شهر سردشت";if(city=="189")cityN="استان خوزستان - شهر شادگان";if(city=="707")cityN="استان خوزستان - شهر شاوور";if(city=="526")cityN="استان خوزستان - شهر شوش";if(city=="187"||city=="188")cityN="استان خوزستان - شهر شوشتر";if(city=="729")cityN="استان خوزستان - شهر گتوند";if(city=="730")cityN="استان خوزستان - شهر لالي";if(city=="196"||city=="197")cityN="استان خوزستان - شهر مسجدسليمان";if(city=="661")cityN="استان خوزستان - شهر هنديجان";if(city=="680")cityN="استان خوزستان - شهر هويزه";if(city=="643")cityN="استان خراسان رضوي - شهر احمدآباد";if(city=="562")cityN="استان خراسان رضوي - شهر بجستان";if(city=="572")cityN="استان خراسان رضوي - شهر بردسکن";if(city=="074")cityN="استان خراسان رضوي - شهر تايباد";if(city=="644")cityN="استان خراسان رضوي - شهر تخت جلگه";if(city=="072"||city=="073")cityN="استان خراسان رضوي - شهر تربت جام";if(city=="069"||city=="070")cityN="استان خراسان رضوي - شهر تربت حيدريه";if(city=="521")cityN="استان خراسان رضوي - شهر جغتاي";if(city=="573")cityN="استان خراسان رضوي - شهر جوين";if(city=="522")cityN="استان خراسان رضوي - شهر چناران";if(city=="724")cityN="استان خراسان رضوي - شهر خليل آباد";if(city=="076")cityN="استان خراسان رضوي - شهر خواف";if(city=="077")cityN="استان خراسان رضوي - شهر درگز";if(city=="650")cityN="استان خراسان رضوي - شهر رشتخوار";if(city=="574")cityN="استان خراسان رضوي - شهر زبرخان";if(city=="078"||city=="079")cityN="استان خراسان رضوي - شهر سبزوار";if(city=="081")cityN="استان خراسان رضوي - شهر سرخس";if(city=="084")cityN="استان خراسان رضوي - شهر فريمان";if(city=="651")cityN="استان خراسان رضوي - شهر فيض آباد";if(city=="086"||city=="087")cityN="استان خراسان رضوي - شهر قوچان";if(city=="089"||city=="090")cityN="استان خراسان رضوي - شهر کاشمر";if(city=="553")cityN="استان خراسان رضوي - شهر کلات";if(city=="091")cityN="استان خراسان رضوي - شهر گناباد";if(city=="092"||city=="093"||city=="094")cityN="استان خراسان رضوي - شهر مشهد";if(city=="097")cityN="استان خراسان رضوي - شهر مشهد منطقه2";if(city=="098")cityN="استان خراسان رضوي - شهر مشهد منطقه3";if(city=="096")cityN="استان خراسان رضوي - شهر مشهد منطقه1";if(city=="105"||city=="106")cityN="استان خراسان رضوي - شهر نيشابور";if(city=="063")cityN="استان خراسان شمالي - شهر اسفراين";if(city=="067"||city=="068")cityN="استان خراسان شمالي - شهر بجنورد";if(city=="075")cityN="استان خراسان شمالي - شهر جاجرم";if(city=="591")cityN="استان خراسان شمالي - شهر رازوجرکلان";if(city=="082")cityN="استان خراسان شمالي - شهر شيروان";if(city=="635")cityN="استان خراسان شمالي - شهر فاروج";if(city=="524")cityN="استان خراسان شمالي - شهر مانه و سملقان";if(city=="468")cityN="استان چهارمحال و بختياري - شهر اردل";if(city=="465")cityN="استان چهارمحال و بختياري - شهر بروجن";if(city=="461"||city=="462")cityN="استان چهارمحال و بختياري - شهر شهرکرد";if(city=="467")cityN="استان چهارمحال و بختياري - شهر فارسان";if(city=="555")cityN="استان چهارمحال و بختياري - شهر کوهرنگ";if(city=="633")cityN="استان چهارمحال و بختياري - شهر کيار";if(city=="629")cityN="استان چهارمحال و بختياري - شهر گندمان";if(city=="466")cityN="استان چهارمحال و بختياري - شهر لردگان";if(city=="696")cityN="استان چهارمحال و بختياري - شهر ميانکوه";if(city=="721")cityN="استان خراسان جنوبي - شهر بشرويه";if(city=="064"||city=="065")cityN="استان خراسان جنوبي - شهر بيرجند";if(city=="523")cityN="استان خراسان جنوبي - شهر درميان";if(city=="652")cityN="استان خراسان جنوبي - شهر زيرکوه";if(city=="719")cityN="استان خراسان جنوبي - شهر سرايان";if(city=="716")cityN="استان خراسان جنوبي - شهر سربيشه";if(city=="085")cityN="استان خراسان جنوبي - شهر فردوس";if(city=="088")cityN="استان خراسان جنوبي - شهر قائنات";if(city=="563")cityN="استان خراسان جنوبي - شهر نهبندان";if(city=="529")cityN="استان بوشهر - شهر بندر ديلم";if(city=="353")cityN="استان بوشهر - شهر بندر گناوه";if(city=="349"||city=="350")cityN="استان بوشهر - شهر بوشهر";if(city=="355")cityN="استان بوشهر - شهر تنگستان";if(city=="609")cityN="استان بوشهر - شهر جم";if(city=="351"||city=="352")cityN="استان بوشهر - شهر دشتستان";if(city=="354")cityN="استان بوشهر - شهر دشتي";if(city=="732")cityN="استان بوشهر - شهر دلوار";if(city=="357")cityN="استان بوشهر - شهر دير";if(city=="532")cityN="استان بوشهر - شهر سعد آباد";if(city=="610")cityN="استان بوشهر - شهر شبانکاره";if(city=="356")cityN="استان بوشهر - شهر کنگان";if(city=="556")cityN="استان تهران - شهر اسلامشهر";if(city=="658")cityN="استان تهران - شهر پاکدشت";if(city=="001"||city=="002"||city=="003"||city=="004"||city=="005"||city=="006"||city=="007"||city=="008")cityN="استان تهران - شهر تهران مرکزي";if(city=="011")cityN="استان تهران - شهر تهران جنوب";if(city=="020")cityN="استان تهران - شهر تهران شرق";if(city=="025")cityN="استان تهران - شهر تهرانشمال";if(city=="015")cityN="استان تهران - شهر تهران غرب";if(city=="043")cityN="استان تهران - شهر دماوند";if(city=="666")cityN="استان تهران - شهر رباط کريم";if(city=="489")cityN="استان تهران - شهر ساوجبلاغ";if(city=="044"||city=="045")cityN="استان تهران - شهر شميران";if(city=="048"||city=="049")cityN="استان تهران - شهر شهرري";if(city=="490"||city=="491")cityN="استان تهران - شهر شهريار";if(city=="695")cityN="استان تهران - شهر طالقان";if(city=="659")cityN="استان تهران - شهر فيروزکوه";if(city=="031"||city=="032")cityN="استان تهران - شهر کرج";if(city=="664")cityN="استان تهران - شهر کهريزک";if(city=="717")cityN="استان تهران - شهر نظرآباد";if(city=="041"||city=="042")cityN="استان تهران - شهر ورامين";if(city=="471"||city=="472")cityN=" امور خارجه - امور خارجه";if(city=="454")cityN="استان ايلام - شهر آبدانان";if(city=="581")cityN="استان ايلام - شهر ارکوازي(ملکشاهي)";if(city=="449"||city=="450")cityN="استان ايلام - شهر ايلام";if(city=="616")cityN="استان ايلام - شهر ايوان";if(city=="534")cityN="استان ايلام - شهر بدره";if(city=="455")cityN="استان ايلام - شهر دره شهر";if(city=="451")cityN="استان ايلام - شهر دهلران";if(city=="726")cityN="استان ايلام - شهر زرين آباد";if(city=="634")cityN="استان ايلام - شهر شيروان لومار";if(city=="453")cityN="استان ايلام - شهر شيروان و چرداول";if(city=="727")cityN="استان ايلام - شهر موسيان";if(city=="452")cityN="استان ايلام - شهر مهران";if(city=="145"||city=="146")cityN="استان اردبيل - شهر اردبيل";if(city=="731")cityN="استان اردبيل - شهر ارشق";if(city=="690")cityN="استان اردبيل - شهر انگوت";if(city=="601")cityN="استان اردبيل - شهر بيله سوار";if(city=="504")cityN="استان اردبيل - شهر پارس آباد";if(city=="163")cityN="استان اردبيل - شهر خلخال";if(city=="714")cityN="استان اردبيل - شهر خورش رستم";if(city=="715")cityN="استان اردبيل - شهر سرعين";if(city=="566")cityN="استان اردبيل - شهر سنجبد(کوثر)";if(city=="166"||city=="167")cityN="استان اردبيل - شهر مشکين شهر";if(city=="161"||city=="162")cityN="استان اردبيل - شهر مغان";if(city=="686")cityN="استان اردبيل - شهر نمين";if(city=="603")cityN="استان اردبيل - شهر نير";if(city=="619")cityN="استان اصفهان - شهر آران و بيدگل";if(city=="118")cityN="استان اصفهان - شهر اردستان";if(city=="127"||city=="128"||city=="129")cityN="استان اصفهان - شهر اصفهان";if(city=="620")cityN="استان اصفهان - شهر باغ بهادران";if(city=="621")cityN="استان اصفهان - شهر بوئين و مياندشت";if(city=="549")cityN="استان اصفهان - شهر تيران و کرون";if(city=="564")cityN="استان اصفهان - شهر جرقويه";if(city=="575")cityN="استان اصفهان - شهر چادگان";if(city=="113"||city=="114")cityN="استان اصفهان - شهر خميني شهر";if(city=="122")cityN="استان اصفهان - شهر خوانسار";if(city=="540")cityN="استان اصفهان - شهر خور و بيابانک";if(city=="660")cityN="استان اصفهان - شهر دولت آباد";if(city=="120")cityN="استان اصفهان - شهر سميرم";if(city=="512")cityN="استان اصفهان - شهر سميرم سفلي (دهاقان)";if(city=="510"||city=="511")cityN="استان اصفهان - شهر شاهين شهر";if(city=="119")cityN="استان اصفهان - شهر شهرضا";if(city=="115")cityN="استان اصفهان - شهر فريدن";if(city=="112")cityN="استان اصفهان - شهر فريدونشهر";if(city=="110"||city=="111")cityN="استان اصفهان - شهر فلاورجان";if(city=="125"||city=="126")cityN="استان اصفهان - شهر کاشان";if(city=="565")cityN="استان اصفهان - شهر کوهپايه";if(city=="121")cityN="استان اصفهان - شهر گلپايگان";if(city=="116"||city=="117")cityN="استان اصفهان - شهر لنجان(زرينشهر)";if(city=="541")cityN="استان اصفهان - شهر مبارکه";if(city=="622")cityN="استان اصفهان - شهر ميمه";if(city=="124")cityN="استان اصفهان - شهر نائين";if(city=="108"||city=="109")cityN="استان اصفهان - شهر نجف آباد";if(city=="123")cityN="استان اصفهان - شهر نطنز";if(city=="427"||city=="428")cityN="استان زنجان - شهر زنجان";if(city=="507")cityN="استان آذربايجان شرقي - شهر ملکان";if(city=="158")cityN="استان آذربايجان شرقي - شهر مرند";if(city=="152"||city=="153")cityN="استان آذربايجان شرقي - شهر ميانه";if(city=="615")cityN="استان قزوين - شهر ابهر و خرمدره"
944
- document.getElementById("city_<?php echo $field["id"]; ?>").innerHTML = cityN;
945
- <?php
946
- }
947
- if(rgget("field_mellicart_sp", $field)) {
948
- ?>
949
- meli_code.value = meli_code.value.substring(0,3)+"-"+meli_code.value.substring(3,9)+"-"+meli_code.value.substring(9,10);
950
- <?php
951
- }
952
- ?>
953
- return true;
954
- }
955
- <?php
956
- if(rgget("field_mellicart", $field))
957
- {
958
- ?>
959
- else
960
- {
961
- <?php
962
- if ($pm3)
963
- {
964
- ?>
965
- var pm3 = "<?php echo $pm3 ?>";
966
- <?php
967
- }
968
- else
969
- {
970
- ?>
971
- var pm3 = 'کد ملی وارد شده مطابق با استانداردهای کشور نمی باشد .';
972
- <?php
973
- }
974
- ?>
975
- document.getElementById("city_<?php echo $field["id"]; ?>").innerHTML = pm3;
976
- return false;
977
- }
978
- <?php
979
- }
980
- ?>
981
- }
982
  </script>
983
  <?php
984
  }
@@ -997,7 +1112,6 @@ class GravityFormsPersian {
997
  {
998
  if(is_array($value) && rgempty(0, $value) && rgempty(1, $value)&& rgempty(2, $value))
999
  $value = null;
1000
-
1001
  if(!empty($value))
1002
  {
1003
  $format = empty($field["dateFormat"]) ? "mdy" : $field["dateFormat"];
@@ -1009,10 +1123,8 @@ class GravityFormsPersian {
1009
  $min = 1;
1010
  if ( intval($date["month"]) >= 1 && intval($date["month"]) <=6 )
1011
  $max = 31;
1012
-
1013
  if ( intval($date["month"]) >= 7 && intval($date["month"]) <=12 )
1014
  $max = 30;
1015
-
1016
  if ( intval($date["month"]) == 12 && intval($date["day"]) >= 1 && intval($date["day"]) <= 30 ) {
1017
  $j_g = GF_jalali_to_gregorian($date["year"],$date["month"],$date["day"]);
1018
  $day = $j_g[2];
@@ -1025,7 +1137,6 @@ class GravityFormsPersian {
1025
  if ( $leap_year != 1 )
1026
  $max = 29;
1027
  }
1028
-
1029
  if ( intval($date["day"]) >= $min && intval($date["day"]) <= $max ) {
1030
  $j_g = GF_jalali_to_gregorian($date["year"],$date["month"],$date["day"]);
1031
  $day = $j_g[2];
@@ -1041,7 +1152,6 @@ class GravityFormsPersian {
1041
  }
1042
  else
1043
  $result["is_valid"] = false;
1044
-
1045
  if(empty($date) || !$result["is_valid"] )
1046
  {
1047
  $format_name = "";
@@ -1069,7 +1179,6 @@ class GravityFormsPersian {
1069
  $format_name = "yyyy.mm.dd";
1070
  break;
1071
  }
1072
-
1073
  $result["is_valid"] = false;
1074
  $message = $field["dateType"] == "datepicker" ? sprintf(__("Please enter a valid date in the format (%s).", "gravityforms"), $format_name) : __("Please enter a valid date.", "gravityforms");
1075
  $result["message"] = empty($field["errorMessage"]) ? $message : $field["errorMessage"];
@@ -1123,7 +1232,7 @@ class GravityFormsPersian {
1123
  $result["message"] = 'این کد ملی توسط فرد دیگری ثبت شده است .';
1124
  }
1125
  }
1126
- //else returne results
1127
  return $result;
1128
  }
1129
  }
3
  Plugin Name: Persian Gravity Forms
4
  Plugin URI: https://wordpress.org/plugins/persian-gravity-forms/
5
  Description: Gravity Forms for Iranian
6
+ Version: 1.4.0
7
  Requires at least: 3.5
8
  Author: HANNAN Ebrahimi Setoode
9
  Author URI: http://www.gravityforms.ir/
22
  add_action('init', array( $this, 'init' ), 8 );
23
  add_action('gform_post_status_options', array( $this, 'Add_Private_Post_Status_By_HANNANStd'));
24
  add_action('activated_plugin', array( $this, 'Activated_Plugin_By_HANNANStd' ) );
25
+ add_action('wp_footer', array($this ,'Add_RTL_Style_To_Footer_By_HANNANStd'));
26
  add_action('gform_admin_pre_render', array( $this, 'Add_Merge_Tags_To_List_By_HANNANStd'));
27
  add_action('wp_dashboard_setup', array( $this, 'Persian_GravityForms_Dashboard_By_HANNANStd'));
28
+ add_action('admin_print_scripts', array( $this, 'GravityForms_Admin_Script_Css_By_HANNANStd' ));
29
+ add_action('gform_field_standard_settings', array( $this, 'Add_Field_Active_Standard_Settings'), 10, 2);
30
  add_action('gform_editor_js', array( $this, 'Editor_Script_By_HANNANStd'));
31
+ add_action('gform_enqueue_scripts', array( $this, 'Add_Script_Css_Front_End_By_HANNANStd'), 10 , 2 );
32
  add_action('gform_field_input', array( $this,'Add_Melli_Cart_Field_Input_By_HANNANStd'), 10, 5);
33
  add_action('gform_field_css_class', array( $this, 'Add_Melli_Cart_Field_Class_By_HANNANStd'), 10, 3);
34
  add_action('gform_field_advanced_settings', array( $this, 'Add_Melli_Cart_Field_Setting_By_HANNANStd'), 10, 2);
41
  add_filter('gform_address_types', array( $this, 'Gform_IRAN_By_HANNANStd' ) );
42
  add_filter('gform_replace_merge_tags', array( $this, 'GformReplaceMergeTags_By_HANNANStd'), 10, 7);
43
  add_filter('gform_print_styles', array( $this, 'Add_Styles_Print_By_HANNANStd'), 10, 2);
44
+ add_filter('gform_predefined_choices', array( $this, 'Add_Iran_Predefined_Choice_By_HANNANStd' ),1);
 
45
  add_filter('gform_tooltips', array( $this, 'Add_Encryption_tooltips_By_HANNANStd'));
46
+ add_filter('gform_add_field_buttons', array( $this, 'Add_HANNANStd_Field_By_HANNANStd'));
47
+ add_filter('gform_field_type_title', array( $this,'Add_HANNANStd_Field_Title_By_HANNANStd'));
48
+ add_filter('gform_editor_js_set_default_values', array( $this, 'Add_HANNANStd_Field_Label_By_HANNANStd'));
49
  add_filter('gform_field_content', array( $this, 'Add_Melli_Cart_Field_JavaScript_Checker_By_HANNANStd'), 10, 5);
50
+ add_filter('gform_field_validation', array( $this, 'Input_Valid_Checker_By_HANNANStd'), 10, 4);
51
+ add_filter('gform_noconflict_styles', array( $this, 'Register_Style_to_No_Conflict_By_HANNANStd'));
52
+ add_filter('gform_noconflict_scripts', array( $this, 'Register_Script_to_No_Conflict_By_HANNANStd'));
53
  }
54
  public function Activated_Plugin_By_HANNANStd() {
55
  $path = str_replace( WP_PLUGIN_DIR . '/', '', $this->file );
80
  $this->is_persian = ( ICL_LANGUAGE_CODE == 'fa' );
81
  }
82
  load_plugin_textdomain( 'Persian_Gravityforms_By_HANNANStd', false, $rel_path );
 
83
  }
84
  protected static function get_base_path(){
85
  $folder = basename(dirname(__FILE__));
88
  public function Load_Textdomain_Mo_File_By_HANNANStd( $mo_file, $domain ) {
89
  if ( strpos( $mo_file, 'fa_IR.mo' ) !== false ) {
90
  $domains = array(
 
 
 
91
  'gravityformscoupons' => array(
92
  'languages/gravityformscoupons-fa_IR.mo' => 'gravityformscoupons/fa_IR.mo'
93
  ),
141
  ),
142
  'sticky-list' => array(
143
  'languages/sticky-list-fa_IR.mo' => 'gravityformsstickylist/fa_IR.mo'
144
+ ),
145
+ 'gf-limit' => array(
146
+ 'gf-limit-fa_IR.mo' => 'gravityformsquantitylimits/fa_IR.mo'
147
+ ),
148
+ 'gf-limit' => array(
149
+ 'languages/gf-limit-fa_IR.mo' => 'gravityformsquantitylimits/fa_IR.mo'
150
  )
151
  );
152
+
153
+
154
+ if (version_compare( GFCommon::$version , '1.9.0') >= 0) {
155
+ $Gdomains = array(
156
+ 'gravityforms' => array(
157
+ 'languages/gravityforms-fa_IR.mo' => 'gravityforms1.9/fa_IR.mo'
158
+ )
159
+ );
160
+ }
161
+ else
162
+ {
163
+ $Gdomains = array(
164
+ 'gravityforms' => array(
165
+ 'languages/gravityforms-fa_IR.mo' => 'gravityforms1.8/fa_IR.mo'
166
+ )
167
+ );
168
+ }
169
+
170
+ $domains = array_merge($domains,$Gdomains);
171
+
172
  if ( isset( $domains[$domain] ) ) {
173
  $paths = $domains[$domain];
174
  foreach ( $paths as $path => $file ) {
183
  }
184
  return $mo_file;
185
  }
186
+ public function Add_Field_Active_Standard_Settings($position, $form_id){
187
  if($position == 25){
188
  ?>
189
  <li class="Jalali_setting field_setting">
190
  <input type="checkbox" id="check_jalali" onclick="SetFieldProperty('check_jalali', jQuery(this).is(':checked') ? 1 : 0);"/>
191
  <label class="inline gfield_value_label" for="field_admin_label">
192
+ <?php _e( 'فعالسازی تاریخ شمسی', 'Persian_Gravityforms_By_HANNANStd' ); ?>
193
+ <?php gform_tooltip("form_check_jalali") ?>
194
+ </label>
195
+ </li>
196
+ <?php /*
197
+ <li class="keyboard_setting field_setting">
198
+ <label class="inline gfield_value_label" for="field_admin_label">
199
+ <?php _e( 'نحوه استفاده از کیبورد', 'Persian_Gravityforms_By_HANNANStd' ); ?>
200
+ <?php gform_tooltip("form_field_keyboard_desc") ?>
201
  </label>
202
+ </br>
203
+ <p>
204
+ برای استفاده از کیبورد کافی است پس از افزودن فیلد "کیبورد" از قسمت فیلد های پیشرفته ، به هر کدام از فیلدهایی که میخواهید دارای کیبورد شوند کلاس keyb را اضافه نمایید .
205
+ البته برچسب این فیلد را نیز خالی بگذارید تا در فرم دیده نشود.
206
+ </p>
207
  </li>
208
  <?php
209
+ */
210
  }
211
  }
212
  public function Editor_Script_By_HANNANStd(){
214
  <script type='text/javascript'>
215
  fieldSettings["date"] += ", .Jalali_setting";
216
  fieldSettings["mellicart"] = ".conditional_logic_field_setting, .label_setting, .admin_label_setting, .size_setting, .rules_setting, .visibility_setting, .duplicate_setting, .default_value_setting, .description_setting, .css_class_setting, .mellicart_setting";
217
+ //fieldSettings["keyboard"] = ".label_setting, .keyboard_setting";
218
  jQuery(document).bind("gform_load_field_settings", function(event, field, form){
219
  jQuery("#check_jalali").attr("checked", field["check_jalali"] == true);
220
  jQuery("#field_mellicart").attr("checked", field["field_mellicart"] == true);
231
  $tooltips["form_check_jalali"] = "<h6>فعالسازی تاریخ شمسی</h6>در صورتی که از چند فیلد تاریخ استفاده میکنید ، فعالسازی تاریخ شمسی یکی از فیلدها کفایت میکند .<br/>تذکر : با توجه به آزمایشی بودن این قسمت ممکن است تداخل توابع سبب ناسازگاری با برخی قالب ها شود.";
232
  $tooltips["form_field_mellicart"] = "<h6>نمایش لحظه ای شهر از روی کد ملی </h6>نمایش شهر و پیغام زیر فیلد کد ملی بعد از پر شدن فیلد . تذکر : در صورتی که این گزینه را فعال نمایید ،ممکن است فراخوانی شهر های ایران با توجه به زیاد بودن آنها سبب سنگین شدن صفحه گردد.";
233
  $tooltips["form_field_mellicart_sp"] = "<h6>جدا سازی ارقام</h6>در صورتی که این گزینه را فعال نمایید ، پس از پر شدن فیلد ، <strong>در صورتی که کد ملی وارد شده صحیح تشخصی داده شود</strong> ؛ کد ملی به صورت زیر در خواهد آمد :<br/>xxx-xxxxxx-x";
 
234
  $tooltips["form_field_mellicart_sp1"] = "<h6>پیغام پیشفرض</h6>با توجه به اینکه کد ملی فقط باید به صورت عدد باشد ، در صورتی که کاراکتری غیر از عدد وارد شده باشد پیغام خطا نمایش داده خواهد شد .<br/>پیغام پیشفرض : کد ملی فقط باید به صورت عدد وارد شود . ";
235
  $tooltips["form_field_mellicart_sp2"] = "<h6>پیغام پیشفرض</h6>با توجه به اینکه کد ملی می بایست 10 رقمی باشد اگر تعداد رقم وارد شده ، اشتباه باشد پیغام خطا نمایش داده خواهد شد .<br>پیغام پیشفرض : کد ملی می بایست 10 رقمی باشد . تنها در صورتی مجاز به استفاده از کد های 8 یا 9 رقمی هستید که ارقام سمت چپ 0 باشند . ";
236
  $tooltips["form_field_mellicart_sp3"] = "<h6>پیغام پیشفرض</h6>در صورتی که از تب وِیژگی تیک گزینه بدون تکرار را زده باشید ؛ بعد از پر شدن فرم و زدن دکمه ارسال پیغامی مبتنی بر تکراری بودن کد ملی نمایش داده خواهد شد . <br/>پیغام پیشفرض : این کد ملی توسط فرد دیگری ثبت شده است .";
237
  $tooltips["form_field_mellicart_sp4"] = "<h6>پیغام پیشفرض</h6>در صورتی که کد ملی وارد شده مطابق با الگوریتم کشور نباشد پیغام خطا نمایش داده خواهد شد .<br/>پیغام پیشفرض : کد ملی وارد شده مطابق با استانداردهای کشور نمی باشد .";
238
+ $tooltips["form_field_mellicart_header"] = "<h6>پیغام خطا</h6>در صورتی که کاربر فیلد کد ملی را به صورت صحیح وارد نکند ؛ پیغام خطا را مشاهده میکند که میتوانید این پیغام ها را مدیریت نمایید . در صورتی که مقادیر زیر را خالی بگذارید پیغام پیشفرض نمایش داده خواهد شد.";
239
+ //$tooltips["form_field_keyboard_desc"] = "<h6>نحوه استفاده</h6>پس از اضافه کردن فیلد کیبورد به فرم ، کافیست به هر فیلدی که میخواهید کیبورد اضافه کنید ، کلاس keyb رو بیافزایید .";
240
  return $tooltips;
241
  }
242
+ function Add_Script_Css_Front_End_By_HANNANStd( $form, $ajax ) {
243
  foreach ( $form['fields'] as $field ) {
244
  if ( ( $field['type'] == 'date' ) ) {
245
  if(rgget("check_jalali", $field)){
253
  }
254
  }
255
  }
256
+
257
+ if ( ( $field['type'] == 'keyboard' ) ) {
258
+ if (!IS_ADMIN) {
259
+ wp_enqueue_script('Keyboard',plugins_url ( '/assets/js/keyboard.js', __FILE__), array(), true );
260
+ wp_enqueue_style('Keyboard', plugins_url ( '/assets/css/persian-gravity-form.css', __FILE__, null, GFCommon::$version ) );
261
+ }
262
+ }
263
+
264
  }
265
  }
266
  public function Set_Min_Year_By_HANNANStd($min_year){
325
  );
326
  return $address_types;
327
  }
328
+ public function Add_Iran_Predefined_Choice_By_HANNANStd($choices){
329
+ $states[__( 'استانهای ایران', 'Persian_Gravityforms_By_HANNANStd' )] = array(
330
  __( 'آذربایجان شرقی', 'Persian_Gravityforms_By_HANNANStd' ),
331
  __( 'آذربایجان غربی', 'Persian_Gravityforms_By_HANNANStd' ),
332
  __( 'اردبیل', 'Persian_Gravityforms_By_HANNANStd' ),
358
  __( 'هرمزگان', 'Persian_Gravityforms_By_HANNANStd' ),
359
  __( 'همدان', 'Persian_Gravityforms_By_HANNANStd' ),
360
  __( 'یزد', 'Persian_Gravityforms_By_HANNANStd' )
361
+ );
362
+ $month[__( 'ماه های ایران', 'Persian_Gravityforms_By_HANNANStd' )] = array(
363
+ __( 'فروردین', 'Persian_Gravityforms_By_HANNANStd' ),
 
364
  __( 'اردیبهشت', 'Persian_Gravityforms_By_HANNANStd' ),
365
  __( 'خرداد', 'Persian_Gravityforms_By_HANNANStd' ),
366
  __( 'تیر', 'Persian_Gravityforms_By_HANNANStd' ),
372
  __( 'دی', 'Persian_Gravityforms_By_HANNANStd' ),
373
  __( 'بهمن', 'Persian_Gravityforms_By_HANNANStd' ),
374
  __( 'اسفند', 'Persian_Gravityforms_By_HANNANStd' )
375
+ );
376
+ return $choices = array_merge($states, $month, $choices);
377
  }
378
  public function Add_Merge_Tags_To_List_By_HANNANStd($form){ ?>
379
  <script type="text/javascript">
445
  return $lead;
446
  }
447
  public function GformReplaceMergeTags_By_HANNANStd($text, $form, $lead, $url_encode, $esc_html, $nl2br, $format){
448
+ $gateway = gform_get_meta($lead['id'], 'payment_gateway');
449
+ if ($lead['payment_status']=="Active" || $lead['payment_status']=="Paid")
450
+ $payment_status = __("Paid", "Persian_Gravityforms_By_HANNANStd");
451
+ if ($lead['payment_status']=="Failed")
452
+ $payment_status = __("Failed", "Persian_Gravityforms_By_HANNANStd");
453
+ if ($lead['payment_status']=="Cancelled")
454
+ $payment_status = __("Cancelled", "Persian_Gravityforms_By_HANNANStd");
455
+ $tags = array(
456
+ '{payment_gateway}',
457
+ '{transaction_id}',
458
+ '{payment_status}',
459
+ '{payment_gateway_css}',
460
+ '{transaction_id_css}',
461
+ '{payment_status_css}',
462
+ '{payment_pack}',
463
+ '{rtl_start}',
464
+ '{rtl_end}',
465
+ );
466
+ $values = array (
467
+ $gateway ? $gateway : '',
468
+ isset($lead['transaction_id']) ? $lead['transaction_id'] : '',
469
+ isset($lead['payment_status']) ? $payment_status : '',
470
+ $gateway ? '
471
+ <table width="99%" border="0" cellpadding="1" cellspacing="0" bgcolor="#EAEAEA" style="border:1px solid #e9e9e9!important;">
472
+ <tr bgcolor="#EAF2FA">
473
+ <td colspan="2" style="padding:5px !important">
474
+ <font style="font-family:sans-serif;font-size:12px"><strong>'.__( 'Payment Gateway', 'Persian_Gravityforms_By_HANNANStd' ).'</strong></font>
475
+ </td>
476
+ </tr>
477
+ <tr bgcolor="#FFFFFF">
478
+ <td style="padding:5px !important"><font style="font-family:sans-serif;font-size:12px">'.$gateway.'</font>
479
+ </td>
480
+ </tr>
481
+ </table>' : '',
482
+ isset($lead['transaction_id']) ? '
483
+ <table width="99%" border="0" cellpadding="1" cellspacing="0" bgcolor="#EAEAEA" style="border:1px solid #e9e9e9!important;">
484
+ <tr bgcolor="#EAF2FA">
485
+ <td colspan="2" style="padding:5px !important">
486
+ <font style="font-family:sans-serif;font-size:12px"><strong>'.__( 'Transaction ID', 'Persian_Gravityforms_By_HANNANStd' ).'</strong></font>
487
+ </td>
488
+ </tr>
489
+ <tr bgcolor="#FFFFFF">
490
+ <td style="padding:5px !important">
491
+ <font style="font-family:sans-serif;font-size:12px">'.$lead['transaction_id'].'</font>
492
+ </td>
493
+ </tr>
494
+ </table>' : '',
495
+ isset($lead['payment_status']) ? '
496
+ <table width="99%" border="0" cellpadding="1" cellspacing="0" bgcolor="#EAEAEA" style="border:1px solid #e9e9e9!important;">
497
+ <tr bgcolor="#EAF2FA">
498
+ <td colspan="2" style="padding:5px !important">
499
+ <font style="font-family:sans-serif;font-size:12px"><strong>'.__( 'Payment Status', 'Persian_Gravityforms_By_HANNANStd' ).'</strong></font>
500
+ </td>
501
+ </tr>
502
+ <tr bgcolor="#FFFFFF">
503
+ <td style="padding:5px !important">
504
+ <font style="font-family:sans-serif;font-size:12px">'.$payment_status.'</font>
505
+ </td>
506
+ </tr>
507
+ </table>' : '',
508
+ (isset($lead['transaction_id']) && $gateway && isset($lead['payment_status']) ) ? '
509
+ <table width="99%" border="0" cellpadding="1" cellspacing="0" bgcolor="#EAEAEA" style="border:1px solid #e9e9e9!important;">
510
+ <tr>
511
+ <td style="font-size:14px;font-weight:bold;background-color:#eee;border-bottom:1px solid #dfdfdf;padding:7px 7px" colspan="2">
512
+ '.__( 'Payment Information', 'Persian_Gravityforms_By_HANNANStd' ).'
513
+ </td>
514
+ </tr>
515
+ <tr bgcolor="#EAF2FA">
516
+ <td colspan="2" style="padding:5px !important">
517
+ <font style="font-family:sans-serif;font-size:12px"><strong>'.__( 'Payment Gateway', 'Persian_Gravityforms_By_HANNANStd' ).'</strong></font>
518
+ </td>
519
+ </tr>
520
+ <tr bgcolor="#FFFFFF">
521
+ <td style="padding:5px !important">
522
+ <font style="font-family:sans-serif;font-size:12px">'.$gateway.'</font>
523
+ </td>
524
+ </tr>
525
+ <tr bgcolor="#EAF2FA">
526
+ <td colspan="2" style="padding:5px !important">
527
+ <font style="font-family:sans-serif;font-size:12px"><strong>'.__( 'Payment Status', 'Persian_Gravityforms_By_HANNANStd' ).'</strong></font>
528
+ </td>
529
+ </tr>
530
+ <tr bgcolor="#FFFFFF">
531
+ <td style="padding:5px !important">
532
+ <font style="font-family:sans-serif;font-size:12px">'.$payment_status.'</font>
533
+ </td>
534
+ </tr>
535
+ <tr bgcolor="#EAF2FA">
536
+ <td colspan="2" style="padding:5px !important">
537
+ <font style="font-family:sans-serif;font-size:12px"><strong>'.__( 'Transaction ID', 'Persian_Gravityforms_By_HANNANStd' ).'</strong></font>
538
+ </td>
539
+ </tr>
540
+ <tr bgcolor="#FFFFFF">
541
+ <td style="padding:5px !important"><font style="font-family:sans-serif;font-size:12px">'.$lead['transaction_id'].'</font>
542
  </td>
543
  </tr>
544
+ </table>' : '',
545
+
546
+ '<div style="text-align: right !important; direction: rtl !important;">',
547
+ '</div>',
548
+ );
549
+ $text = str_replace($tags, $values, $text);
550
+ return $text;
551
+ }
552
+ public function Add_RTL_Style_To_Footer_By_HANNANStd() {
553
+
554
+ echo '<style type="text/css">
555
+ .gright,.gform_wrapper form ,.gform_wrapper ul li:before, .gform_wrapper ul li:after, .gform_wrapper ul.gform_fields {
556
+ text-align: right !important;
557
+ direction:rtl !important;
558
+ }
559
+ .gleft,.gform_wrapper input[type="url"], .gform_wrapper input[type="email"],
560
+ .gform_wrapper input[type="tel"], .gform_wrapper input[type="number"],
561
+ .gform_wrapper input[type="password"],body.rtl .gform_wrapper input[type="email"], body.rtl .gform_wrapper input[type="password"],
562
+ body.rtl .gform_wrapper input[type="url"], body.rtl .gform_wrapper input[type="tel"],body .gform_wrapper.gf_rtl_wrapper input[type="email"],
563
+ body .gform_wrapper.gf_rtl_wrapper input[type="password"], body .gform_wrapper.gf_rtl_wrapper input[type="url"], body .gform_wrapper.gf_rtl_wrapper input[type="tel"] {
564
+ text-align:left !important;
565
+ direction:ltr !important;
566
+ }
567
+ .gform_wrapper .ginput_complex .ginput_left {
568
+ float: right !important;
569
+ }
570
+ .gform_wrapper .ginput_complex .ginput_right {
571
+ float: left !important;
572
+ }
573
+ </style>';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
574
 
 
 
 
 
 
575
  }
576
  public function Add_Styles_Print_By_HANNANStd($value, $form){
577
  if( is_rtl() ) {
579
  return array('print_entry');
580
  }
581
  }
582
+ public function GravityForms_Admin_Script_Css_By_HANNANStd() {
583
+ if(!class_exists('GFForms'))
584
  return;
 
585
  $current_page = trim(strtolower(RGForms::get("page")));
586
  $page_prefix = explode("_", $current_page);
587
+ if (is_rtl() && ($page_prefix[0]=="gf" || RGForms::is_gravity_page() ||
588
+ $_SERVER['REQUEST_URI'] == '/wp-admin/' || $_SERVER['REQUEST_URI'] == '/wp-admin' ||
589
+ $_SERVER['REQUEST_URI'] == '/wp-admin/index.php' || $_SERVER['REQUEST_URI'] == '/wp-admin/index.php/'))
590
+ {
591
  wp_enqueue_style('Persian_GravityForms', plugins_url ( '/assets/css/persiangravity.css', __FILE__, null, GFCommon::$version ) );
592
  wp_print_styles('gform_tooltip','Persian_GravityForms' );
593
  wp_dequeue_script('jquery-ui-datepicker');
594
+ wp_dequeue_script(array("jquery-ui-datepicker"));
595
  wp_deregister_script('jquery-ui-datepicker');
596
  wp_deregister_script(array("jquery-ui-datepicker"));
597
  wp_deregister_script('gform_datepicker_init');
598
  wp_enqueue_script('gform_datepicker_init', plugins_url ( '/assets/js/wp-admin-datepicker.js', __FILE__), array( 'jquery', 'jquery-ui-core' ), true );
599
  }
600
  }
601
+ public function Register_Script_to_No_Conflict_By_HANNANStd($scripts){
602
+ $scripts[] = "gform_datepicker_init";
603
+ return $scripts;
604
+ }
605
+ public function Register_Style_to_No_Conflict_By_HANNANStd($styles){
606
+ $styles[] = "Persian_GravityForms";
607
+ $styles[] = "print_entry";
608
+ return $styles;
609
+ }
610
  public function Persian_GravityForms_Dashboard_By_HANNANStd() {
611
  if ( !current_user_can('manage_options') )
612
  return;
666
  echo "<a class='rsswidget a1' href='$link'>$title</a><div class='rssSummary'>$content</div><hr/>";
667
  else
668
  echo "<a class='rsswidget a2' href='$link'>$title</a>";
669
+ echo "</li>";
670
  $i++;
671
  }
672
  echo "</ul>";
749
  return plugins_url( '', __FILE__ );
750
  }
751
  public function version(){
752
+ return '1.4.0';
753
  }
754
+ public function Add_HANNANStd_Field_By_HANNANStd( $field_groups ) {
755
  foreach( $field_groups as &$group ){
756
  if( $group["name"] == "advanced_fields" ){
757
  $group["fields"][] = array(
759
  "value" => "کد ملی",
760
  "onclick" => "StartAddField('mellicart');"
761
  );
762
+ /*
763
+ $group["fields"][] = array(
764
+ "class"=>"button",
765
+ "value" => "کیبورد",
766
+ "onclick" => "StartAddField('keyboard');"
767
+ );
768
+ */
769
  break;
770
  }
771
  }
772
  return $field_groups;
773
  }
774
+ public function Add_HANNANStd_Field_Title_By_HANNANStd($type) {
775
  if ($type == 'mellicart') {
776
  return 'کد ملی';
777
  }
778
+ // if ($type == 'keyboard') {
779
+ // return 'کیبورد';
780
+ // }
781
  }
782
+ public function Add_HANNANStd_Field_Label_By_HANNANStd(){
783
  ?>
784
  case "mellicart" :
785
  field.label = 'کد ملی';
786
  break;
787
+ <?php /*
788
+ case "keyboard" :
789
+ field.label = 'کیبورد';
790
+ break;
791
  <?php
792
+ */
793
  }
794
  public function Add_Melli_Cart_Field_Input_By_HANNANStd($input, $field, $value, $lead_id, $form_id ){
795
  if ( $field["type"] == "mellicart" ) {
820
  $tabindex = GFCommon::get_tabindex();
821
  return sprintf("<div class='ginput_container'><input onblur='MelliCard_Checker_Javascript_By_HANNANStd_%d(this);' name='input_%d' id='%s' type='%s' value='%s' class='melli_cart %s' $max_length $tabindex $html5_attributes %s/></div><p class='city mellicart' id='city_%d'></p>", $id, $id, $field_id, $html_input_type, esc_attr($value), esc_attr($class), $disabled_text, $id);
822
  }
823
+ if ( $field["type"] == "keyboard" ) {
824
+ $id = $field["id"];
825
+ $field_id = IS_ADMIN || $form_id == 0 ? "input_$id" : "input_" . $form_id . "_$id";
826
+ $form_id = IS_ADMIN && empty($form_id) ? rgget("id") : $form_id;
827
+
828
+ if(RG_CURRENT_VIEW == "entry")
829
+ {
830
+ $lead = RGFormsModel::get_lead($lead_id);
831
+ $post_id = $lead["post_id"];
832
+ $post_link = "";
833
+ if(is_numeric($post_id) && GFCommon::is_post_field($field))
834
+ {
835
+ $post_link = "You can <a href='post.php?action=edit&post=$post_id'>edit this post</a> from the post page.";
836
+ }
837
+ }
838
+ return sprintf("<input name='input_%d' id='%s' type='hidden' value=''/>", $id, $id);
839
+ }
840
  return $input;
841
  }
842
  public function Add_Melli_Cart_Field_Setting_By_HANNANStd( $position, $form_id ){
858
  <br/>
859
  <hr/>
860
  <label class="inline">
861
+ <?php _e("متن پیغام خطا هنگامی که موارد زیر رخ دهد", "Persian_Gravityforms_By_HANNANStd"); ?>
862
  <?php gform_tooltip("form_field_mellicart_header"); ?>
863
  </label>
864
  <br/>
960
  {
961
  return false;
962
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
963
  <?php
964
+ if(rgget("field_mellicart_sp", $field)) { ?>
965
+ meli_code.value = meli_code.value.replace("-", "").replace("-", "");
966
+ <?php
967
+ }
968
+ if(rgget("field_mellicart", $field)) {?>
969
+ if (isNaN(meli_code.value)) {
970
+ <?php
971
+ if ($pm1)
972
+ {
973
+ ?>
974
+ var pm1 = "<?php echo $pm1 ?>";
975
+ <?php
976
+ }
977
+ else
978
+ { ?>
979
+ var pm1 = "کد ملی فقط باید به صورت عدد وارد شود . ";
980
+ <?php
981
+ } ?>
982
+ document.getElementById("city_<?php echo $field["id"]; ?>").innerHTML = pm1;
983
+ return false;
984
+ }
985
+ if (meli_code.value == '0000000000' ||
986
+ meli_code.value == '1111111111' ||
987
+ meli_code.value == '2222222222' ||
988
+ meli_code.value == '3333333333' ||
989
+ meli_code.value == '4444444444' ||
990
+ meli_code.value == '5555555555' ||
991
+ meli_code.value == '6666666666' ||
992
+ meli_code.value == '7777777777' ||
993
+ meli_code.value == '8888888888' ||
994
+ meli_code.value == '9999999999') {
995
+ <?php
996
+ if ($pm3)
997
+ {
998
+ ?>
999
+ var pm3 = "<?php echo $pm3 ?>";
1000
+ <?php
1001
+ }
1002
+ else
1003
+ {
1004
+ ?>
1005
+ var pm3 = 'کد ملی وارد شده مطابق با استانداردهای کشور نمی باشد .';
1006
+ <?php
1007
+ }
1008
+ ?>
1009
+ document.getElementById("city_<?php echo $field["id"]; ?>").innerHTML = pm3;
1010
+ return false;
1011
+ }
1012
+ if (meli_code.value.length > 10 || meli_code.value.length < 8)
1013
+ {
1014
+ <?php
1015
+ if ($pm2)
1016
+ {
1017
+ ?>
1018
+ var pm2 = "<?php echo $pm2 ?>";
1019
+ <?php
1020
+ }
1021
+ else
1022
+ {
1023
+ ?>
1024
+ var pm2 = 'کد ملی می بایست 10 رقمی باشد . تنها در صورتی مجاز به استفاده از کد های 8 یا 9 رقمی هستید که ارقام سمت چپ 0 باشند . ';
1025
+ <?php
1026
+ }
1027
+ ?>
1028
+ document.getElementById("city_<?php echo $field["id"]; ?>").innerHTML = pm2;
1029
+ return false;
1030
+ }
1031
+ <?php
1032
+ }
1033
+ ?>
1034
+ if (meli_code.value.length == 8) {
1035
+ meli_code.value = "00"+meli_code.value;
1036
+ }
1037
+ if (meli_code.value.length == 9) {
1038
+ meli_code.value = "0"+meli_code.value;
1039
+ }
1040
+ city = meli_code.value.substring(0,3);
1041
+ c = parseInt(meli_code.value.charAt(9));
1042
+ n = parseInt(meli_code.value.charAt(0)) * 10 +
1043
+ parseInt(meli_code.value.charAt(1)) * 9 +
1044
+ parseInt(meli_code.value.charAt(2)) * 8 +
1045
+ parseInt(meli_code.value.charAt(3)) * 7 +
1046
+ parseInt(meli_code.value.charAt(4)) * 6 +
1047
+ parseInt(meli_code.value.charAt(5)) * 5 +
1048
+ parseInt(meli_code.value.charAt(6)) * 4 +
1049
+ parseInt(meli_code.value.charAt(7)) * 3 +
1050
+ parseInt(meli_code.value.charAt(8)) * 2;
1051
+ r = n - parseInt(n / 11) * 11;
1052
+ if ((r == 0 && r == c) || (r == 1 && c == 1) || (r > 1 && c == 11 - r))
1053
+ {
1054
+ <?php
1055
+ if(rgget("field_mellicart", $field))
1056
+ {
1057
+ ?>
1058
+ if(city=="169")cityN="استان آذربايجان شرقي - شهر آذر شهر";if(city=="170")cityN="استان آذربايجان شرقي - شهر اسکو";if(city=="149"||city=="150")cityN="استان آذربايجان شرقي - شهر اهر";if(city=="171")cityN="استان آذربايجان شرقي - شهر بستان آباد";if(city=="168")cityN="استان آذربايجان شرقي - شهر بناب";if(city=="136"||city=="137"||city=="138")cityN="استان آذربايجان شرقي - شهر تبريز";if(city=="545")cityN="استان آذربايجان شرقي - شهر ترکمانچاي";if(city=="505")cityN="استان آذربايجان شرقي - شهر جلفا";if(city=="636")cityN="استان آذربايجان شرقي - شهر چاروايماق";if(city=="164"||city=="165")cityN="استان آذربايجان شرقي - شهر سراب";if(city=="172")cityN="استان آذربايجان شرقي - شهر شبستر";if(city=="623")cityN="استان آذربايجان شرقي - شهر صوفيان";if(city=="506")cityN="استان آذربايجان شرقي - شهر عجب شير";if(city=="519")cityN="استان آذربايجان شرقي - شهر کليبر";if(city=="154"||city=="155")cityN="استان آذربايجان شرقي - شهر مراغه";if(city=="567")cityN="استان آذربايجان شرقي - شهر ورزقان";if(city=="173")cityN="استان آذربايجان شرقي - شهر هريس";if(city=="159"||city=="160")cityN="استان آذربايجان شرقي - شهر هشترود";if(city=="604")cityN="استان آذربايجان شرقي - شهر هوراند";if(city=="274"||city=="275")cityN="استان آذربايجان غربي - شهر اروميه";if(city=="295")cityN="استان آذربايجان غربي - شهر اشنويه";if(city=="637")cityN="استان آذربايجان غربي - شهر انزل";if(city=="292")cityN="استان آذربايجان غربي - شهر بوکان";if(city=="492")cityN="استان آذربايجان غربي - شهر پلدشت";if(city=="289")cityN="استان آذربايجان غربي - شهر پيرانشهر";if(city=="677")cityN="استان آذربايجان غربي - شهر تخت سليمان";if(city=="294")cityN="استان آذربايجان غربي - شهر تکاب";if(city=="493")cityN="استان آذربايجان غربي - شهر چايپاره";if(city=="279"||city=="280")cityN="استان آذربايجان غربي - شهر خوي";if(city=="288")cityN="استان آذربايجان غربي - شهر سردشت";if(city=="284"||city=="285")cityN="استان آذربايجان غربي - شهر سلماس";if(city=="638")cityN="استان آذربايجان غربي - شهر سيلوانه";if(city=="291")cityN="استان آذربايجان غربي - شهر سيه چشمه(چالدران)";if(city=="640")cityN="استان آذربايجان غربي - شهر شوط";if(city=="293")cityN="استان آذربايجان غربي - شهر شاهين دژ";if(city=="675")cityN="استان آذربايجان غربي - شهر کشاورز";if(city=="282"||city=="283")cityN="استان آذربايجان غربي - شهر ماکو";if(city=="286"||city=="287")cityN="استان آذربايجان غربي - شهر مهاباد";if(city=="296"||city=="297")cityN="استان آذربايجان غربي - شهر مياندوآب";if(city=="290")cityN="استان آذربايجان غربي - شهر نقده";if(city=="400"||city=="401")cityN="استان همدان - شهر اسدآباد";if(city=="404"||city=="405")cityN="استان همدان - شهر بهار";if(city=="397")cityN="استان همدان - شهر تويسرکان";if(city=="398"||city=="399")cityN="استان همدان - شهر رزن";if(city=="647")cityN="استان همدان - شهر شراء و پيشخوار";if(city=="502")cityN="استان همدان - شهر فامنين";if(city=="584")cityN="استان همدان - شهر قلقل رود";if(city=="402"||city=="403")cityN="استان همدان - شهر کبودرآهنگ";if(city=="392"||city=="393")cityN="استان همدان - شهر ملاير";if(city=="395"||city=="396")cityN="استان همدان - شهر نهاوند";if(city=="386"||city=="387")cityN="استان همدان - شهر همدان";if(city=="503")cityN="استان يزد - شهر ابرکوه";if(city=="444")cityN="استان يزد - شهر اردکان";if(city=="551")cityN="استان يزد - شهر اشکذر";if(city=="447")cityN="استان يزد - شهر بافق";if(city=="561")cityN="استان يزد - شهر بهاباد";if(city=="445")cityN="استان يزد - شهر تفت";if(city=="718")cityN="استان يزد - شهر دستگردان";if(city=="083")cityN="استان يزد - شهر طبس";if(city=="446")cityN="استان يزد - شهر مهريز";if(city=="448")cityN="استان يزد - شهر ميبد";if(city=="552")cityN="استان يزد - شهر نير";if(city=="543")cityN="استان يزد - شهر هرات و مروست";if(city=="442"||city=="443")cityN="استان يزد - شهر يزد";if(city=="051")cityN="استان مرکزي - شهر آشتيان";if(city=="052"||city=="053")cityN="استان مرکزي - شهر اراک";if(city=="058")cityN="استان مرکزي - شهر تفرش";if(city=="055")cityN="استان مرکزي - شهر خمين";if(city=="617")cityN="استان مرکزي - شهر خنداب";if(city=="057")cityN="استان مرکزي - شهر دليجان";if(city=="618")cityN="استان مرکزي - شهر زرند مرکزي";if(city=="059"||city=="060")cityN="استان مرکزي - شهر ساوه";if(city=="061"||city=="062")cityN="استان مرکزي - شهر سربند";if(city=="544")cityN="استان مرکزي - شهر فراهان";if(city=="056")cityN="استان مرکزي - شهر محلات";if(city=="571")cityN="استان مرکزي - شهر وفس";if(city=="593")cityN="استان مرکزي - شهر هندودر";if(city=="667")cityN="استان هرمزگان - شهر ابوموسي";if(city=="348")cityN="استان هرمزگان - شهر بستک";if(city=="586")cityN="استان هرمزگان - شهر بشاگرد";if(city=="338"||city=="339")cityN="استان هرمزگان - شهر بندرعباس";if(city=="343"||city=="344")cityN="استان هرمزگان - شهر بندرلنگه";if(city=="346")cityN="استان هرمزگان - شهر جاسک";if(city=="337")cityN="استان هرمزگان - شهر حاجي آباد";if(city=="554")cityN="استان هرمزگان - شهر خمير";if(city=="469")cityN="استان هرمزگان - شهر رودان";if(city=="537")cityN="استان هرمزگان - شهر فين";if(city=="345")cityN="استان هرمزگان - شهر قشم";if(city=="470")cityN="استان هرمزگان - شهر گاوبندي";if(city=="341"||city=="342")cityN="استان هرمزگان - شهر ميناب";if(city=="483"||city=="484")cityN="استان لرستان - شهر ازنا";if(city=="557")cityN="استان لرستان - شهر اشترينان";if(city=="418")cityN="استان لرستان - شهر الشتر";if(city=="416"||city=="417")cityN="استان لرستان - شهر اليگودرز";if(city=="412"||city=="413")cityN="استان لرستان - شهر بروجرد";if(city=="592")cityN="استان لرستان - شهر پاپي";if(city=="612")cityN="استان لرستان - شهر چغلوندي";if(city=="613")cityN="استان لرستان - شهر چگني";if(city=="406"||city=="407")cityN="استان لرستان - شهر خرم آباد";if(city=="421")cityN="استان لرستان - شهر دورود";if(city=="598")cityN="استان لرستان - شهر رومشکان";if(city=="419")cityN="استان لرستان - شهر کوهدشت";if(city=="385")cityN="استان لرستان - شهر ملاوي(پلدختر)";if(city=="420")cityN="استان لرستان - شهر نورآباد(دلفان)";if(city=="528")cityN="استان لرستان - شهر ويسيان";if(city=="213"||city=="214")cityN="استان مازندران - شهر آمل";if(city=="205"||city=="206")cityN="استان مازندران - شهر بابل";if(city=="498")cityN="استان مازندران - شهر بابل";if(city=="568")cityN="استان مازندران - شهر بندپي";if(city=="711")cityN="استان مازندران - شهر بندپي شرقي";if(city=="217"||city=="218")cityN="استان مازندران - شهر بهشهر";if(city=="221")cityN="استان مازندران - شهر تنکابن";if(city=="582")cityN="استان مازندران - شهر جويبار";if(city=="483")cityN="استان مازندران - شهر چالوس";if(city=="625")cityN="استان مازندران - شهر چمستان";if(city=="576")cityN="استان مازندران - شهر چهاردانگه";if(city=="578")cityN="استان مازندران - شهر دودانگه";if(city=="227")cityN="استان مازندران - شهر رامسر";if(city=="208"||city=="209")cityN="استان مازندران - شهر ساري";if(city=="225")cityN="استان مازندران - شهر سوادکوه";if(city=="577")cityN="استان مازندران - شهر شيرگاه";if(city=="712")cityN="استان مازندران - شهر عباس آباد";if(city=="215"||city=="216")cityN="استان مازندران - شهر قائمشهر";if(city=="626")cityN="استان مازندران - شهر کجور";if(city=="627")cityN="استان مازندران - شهر کلاردشت";if(city=="579")cityN="استان مازندران - شهر گلوگاه";if(city=="713")cityN="استان مازندران - شهر مياندورود";if(city=="499")cityN="استان مازندران - شهر نکاء";if(city=="222")cityN="استان مازندران - شهر نور";if(city=="219"||city=="220")cityN="استان مازندران - شهر نوشهر";if(city=="500"||city=="501")cityN="استان مازندران - شهر هراز و محمودآباد";if(city=="623")cityN="استان گلستان - شهر آزادشهر";if(city=="497")cityN="استان گلستان - شهر آق قلا";if(city=="223")cityN="استان گلستان - شهر بندرترکمن";if(city=="689")cityN="استان گلستان - شهر بندرگز";if(city=="487")cityN="استان گلستان - شهر راميان";if(city=="226")cityN="استان گلستان - شهر علي آباد";if(city=="224")cityN="استان گلستان - شهر کردکوي";if(city=="386")cityN="استان گلستان - شهر کلاله";if(city=="211"||city=="212")cityN="استان گلستان - شهر گرگان";if(city=="628")cityN="استان گلستان - شهر گميشان";if(city=="202"||city=="203")cityN="استان گلستان - شهر گنبد کاووس";if(city=="531")cityN="استان گلستان - شهر مراوه تپه";if(city=="288")cityN="استان گلستان - شهر مينودشت";if(city=="261")cityN="استان گيلان - شهر آستارا";if(city=="273")cityN="استان گيلان - شهر آستانه";if(city=="630")cityN="استان گيلان - شهر املش";if(city=="264")cityN="استان گيلان - شهر بندرانزلي";if(city=="518")cityN="استان گيلان - شهر خمام";if(city=="631")cityN="استان گيلان - شهر رحيم آباد";if(city=="258"||city=="259")cityN="استان گيلان - شهر رشت";if(city=="570")cityN="استان گيلان - شهر رضوانشهر";if(city=="265")cityN="استان گيلان - شهر رودبار";if(city=="268"||city=="269")cityN="استان گيلان - شهر رودسر";if(city=="653")cityN="استان گيلان - شهر سنگر";if(city=="517")cityN="استان گيلان - شهر سياهکل";if(city=="569")cityN="استان گيلان - شهر شفت";if(city=="267")cityN="استان گيلان - شهر صومعه سرا";if(city=="262"||city=="263")cityN="استان گيلان - شهر طالش";if(city=="593")cityN="استان گيلان - شهر عمارلو";if(city=="266")cityN="استان گيلان - شهر فومن";if(city=="693")cityN="استان گيلان - شهر کوچصفهان";if(city=="271"||city=="272")cityN="استان گيلان - شهر لاهيجان";if(city=="694")cityN="استان گيلان - شهر لشت نشاء";if(city=="270")cityN="استان گيلان - شهر لنگرود";if(city=="516")cityN="استان گيلان - شهر ماسال و شاندرمن";if(city=="333"||city=="334")cityN="استان کرمانشاه - شهر اسلام آباد";if(city=="691")cityN="استان کرمانشاه - شهر باينگان";if(city=="322"||city=="323")cityN="استان کرمانشاه - شهر پاوه";if(city=="595")cityN="استان کرمانشاه - شهر ثلاث باباجاني";if(city=="395")cityN="استان کرمانشاه - شهر جوانرود";if(city=="641")cityN="استان کرمانشاه - شهر حميل";if(city=="596")cityN="استان کرمانشاه - شهر روانسر";if(city=="336")cityN="استان کرمانشاه - شهر سرپل ذهاب";if(city=="335")cityN="استان کرمانشاه - شهر سنقر";if(city=="496")cityN="استان کرمانشاه - شهر صحنه";if(city=="337")cityN="استان کرمانشاه - شهر قصرشيرين";if(city=="324"||city=="325")cityN="استان کرمانشاه - شهر کرمانشاه";if(city=="394")cityN="استان کرمانشاه - شهر کرند";if(city=="330")cityN="استان کرمانشاه - شهر کنگاور";if(city=="332")cityN="استان کرمانشاه - شهر گيلانغرب";if(city=="331")cityN="استان کرمانشاه - شهر هرسين";if(city=="687")cityN="استان کهکيلويه و بويراحمد - شهر باشت";if(city=="422"||city=="423")cityN="استان کهکيلويه و بويراحمد - شهر بويراحمد(ياسوج)";if(city=="599")cityN="استان کهکيلويه و بويراحمد - شهر بهمني";if(city=="600")cityN="استان کهکيلويه و بويراحمد - شهر چاروسا";if(city=="688")cityN="استان کهکيلويه و بويراحمد - شهر دروهان";if(city=="424"||city=="425")cityN="استان کهکيلويه و بويراحمد - شهر کهکيلويه(دهدشت)";if(city=="426")cityN="استان کهکيلويه و بويراحمد - شهر گچساران(دوگنبدان)";if(city=="550")cityN="استان کهکيلويه و بويراحمد - شهر لنده";if(city=="697")cityN="استان کهکيلويه و بويراحمد - شهر مارگون";if(city=="384")cityN="استان کردستان - شهر بانه";if(city=="377"||city=="378")cityN="استان کردستان - شهر بيجار";if(city=="558")cityN="استان کردستان - شهر دهگلان";if(city=="385")cityN="استان کردستان - شهر ديواندره";if(city=="646")cityN="استان کردستان - شهر سروآباد";if(city=="375"||city=="376")cityN="استان کردستان - شهر سقز";if(city=="372"||city=="373")cityN="استان کردستان - شهر سنندج";if(city=="379"||city=="380")cityN="استان کردستان - شهر قروه";if(city=="383")cityN="استان کردستان - شهر کامياران";if(city=="674")cityN="استان کردستان - شهر کراني";if(city=="381"||city=="382")cityN="استان کردستان - شهر مريوان";if(city=="676")cityN="استان کردستان - شهر نمشير";if(city=="722")cityN="استان کرمان - شهر ارزونيه";if(city=="542")cityN="استان کرمان - شهر انار";if(city=="312"||city=="313")cityN="استان کرمان - شهر بافت";if(city=="317")cityN="استان کرمان - شهر بردسير";if(city=="310"||city=="311")cityN="استان کرمان - شهر بم";if(city=="302"||city=="303")cityN="استان کرمان - شهر جيرفت";if(city=="583")cityN="استان کرمان - شهر رابر";if(city=="321")cityN="استان کرمان - شهر راور";if(city=="382")cityN="استان کرمان - شهر راين";if(city=="304"||city=="305")cityN="استان کرمان - شهر رفسنجان";if(city=="536")cityN="استان کرمان - شهر رودبار کهنوج";if(city=="605")cityN="استان کرمان - شهر ريگان";if(city=="308"||city=="309")cityN="استان کرمان - شهر زرند";if(city=="306"||city=="307")cityN="استان کرمان - شهر سيرجان";if(city=="319")cityN="استان کرمان - شهر شهداد";if(city=="313"||city=="314")cityN="استان کرمان - شهر شهربابک";if(city=="606")cityN="استان کرمان - شهر عنبرآباد";if(city=="320")cityN="استان کرمان - شهر فهرج";if(city=="698")cityN="استان کرمان - شهر قلعه گنج";if(city=="298"||city=="299")cityN="استان کرمان - شهر کرمان";if(city=="535")cityN="استان کرمان - شهر کوهبنان";if(city=="315"||city=="316")cityN="استان کرمان - شهر کهنوج";if(city=="318")cityN="استان کرمان - شهر گلباف";if(city=="607")cityN="استان کرمان - شهر ماهان";if(city=="608")cityN="استان کرمان - شهر منوجان";if(city=="508")cityN="استان قزوين - شهر آبيک";if(city=="538")cityN="استان قزوين - شهر آوج";if(city=="728")cityN="استان قزوين - شهر البرز";if(city=="509")cityN="استان قزوين - شهر بوئين زهرا";if(city=="438"||city=="439")cityN="استان قزوين - شهر تاکستان";if(city=="580")cityN="استان قزوين - شهر رودبار الموت";if(city=="590")cityN="استان قزوين - شهر رودبار شهرستان";if(city=="559")cityN="استان قزوين - شهر ضياءآباد";if(city=="588")cityN="استان قزوين - شهر طارم سفلي";if(city=="431"||city=="432")cityN="استان قزوين - شهر قزوين";if(city=="037"||city=="038")cityN="استان قم - شهر قم";if(city=="702")cityN="استان قم - شهر کهک";if(city=="240"||city=="241")cityN="استان فارس - شهر آباده";if(city=="670")cityN="استان فارس - شهر آباده طشک";if(city=="648")cityN="استان فارس - شهر ارسنجان";if(city=="252")cityN="استان فارس - شهر استهبان";if(city=="678")cityN="استان فارس - شهر اشکنان";if(city=="253")cityN="استان فارس - شهر اقليد";if(city=="649")cityN="استان فارس - شهر اوز";if(city=="513")cityN="استان فارس - شهر بوانات";if(city=="546")cityN="استان فارس - شهر بيضا";if(city=="671")cityN="استان فارس - شهر جويم";if(city=="246"||city=="247")cityN="استان فارس - شهر جهرم";if(city=="654")cityN="استان فارس - شهر حاجي آباد(زرين دشت)";if(city=="548")cityN="استان فارس - شهر خرامه";if(city=="547")cityN="استان فارس - شهر خشت و کمارج";if(city=="655")cityN="استان فارس - شهر خفر";if(city=="248"||city=="249")cityN="استان فارس - شهر داراب";if(city=="253")cityN="استان فارس - شهر سپيدان";if(city=="514")cityN="استان فارس - شهر سروستان";if(city=="665")cityN="استان فارس - شهر سعادت آباد";if(city=="673")cityN="استان فارس - شهر شيبکوه";if(city=="228"||city=="229"||city=="230")cityN="استان فارس - شهر شيراز";if(city=="679")cityN="استان فارس - شهر فراشبند";if(city=="256"||city=="257")cityN="استان فارس - شهر فسا";if(city=="244"||city=="245")cityN="استان فارس - شهر فيروزآباد";if(city=="681")cityN="استان فارس - شهر قنقري(خرم بيد)";if(city=="723")cityN="استان فارس - شهر قيروکارزين";if(city=="236"||city=="237")cityN="استان فارس - شهر کازرون";if(city=="683")cityN="استان فارس - شهر کوار";if(city=="656")cityN="استان فارس - شهر کراش";if(city=="250"||city=="251")cityN="استان فارس - شهر لارستان";if(city=="515")cityN="استان فارس - شهر لامرد";if(city=="242"||city=="243")cityN="استان فارس - شهر مرودشت";if(city=="238"||city=="239")cityN="استان فارس - شهر ممسني";if(city=="657")cityN="استان فارس - شهر مهر";if(city=="255")cityN="استان فارس - شهر ني ريز";if(city=="684")cityN="استان سمنان - شهر ايوانکي";if(city=="700")cityN="استان سمنان - شهر بسطام";if(city=="642")cityN="استان سمنان - شهر بيارجمند";if(city=="457")cityN="استان سمنان - شهر دامغان";if(city=="456")cityN="استان سمنان - شهر سمنان";if(city=="458"||city=="459")cityN="استان سمنان - شهر شاهرود";if(city=="460")cityN="استان سمنان - شهر گرمسار";if(city=="530")cityN="استان سمنان - شهر مهديشهر";if(city=="520")cityN="استان سمنان - شهر ميامي";if(city=="358"||city=="359")cityN="استان سيستان و بلوچستان - شهر ايرانشهر";if(city=="682")cityN="استان سيستان و بلوچستان - شهر بزمان";if(city=="703")cityN="استان سيستان و بلوچستان - شهر بمپور";if(city=="364"||city=="365")cityN="استان سيستان و بلوچستان - شهر چابهار";if(city=="371")cityN="استان سيستان و بلوچستان - شهر خاش";if(city=="701")cityN="استان سيستان و بلوچستان - شهر دشتياري";if(city=="720")cityN="استان سيستان و بلوچستان - شهر راسک";if(city=="366"||city=="367")cityN="استان سيستان و بلوچستان - شهر زابل";if(city=="704")cityN="استان سيستان و بلوچستان - شهر زابلي";if(city=="361"||city=="362")cityN="استان سيستان و بلوچستان - شهر زاهدان";if(city=="369"||city=="370")cityN="استان سيستان و بلوچستان - شهر سراوان";if(city=="635")cityN="استان سيستان و بلوچستان - شهر سرباز";if(city=="668")cityN="استان سيستان و بلوچستان - شهر سيب و سوران";if(city=="533")cityN="استان سيستان و بلوچستان - شهر شهرکي و ناروئي(زهک)";if(city=="705")cityN="استان سيستان و بلوچستان - شهر شيب آب";if(city=="699")cityN="استان سيستان و بلوچستان - شهر فنوج";if(city=="669")cityN="استان سيستان و بلوچستان - شهر قصرقند";if(city=="725")cityN="استان سيستان و بلوچستان - شهر کنارک";if(city=="597")cityN="استان سيستان و بلوچستان - شهر لاشار(اسپکه)";if(city=="611")cityN="استان سيستان و بلوچستان - شهر ميرجاوه";if(city=="525")cityN="استان سيستان و بلوچستان - شهر نيک شهر";if(city=="181")cityN="استان خوزستان - شهر آبادان";if(city=="527")cityN="استان خوزستان - شهر آغاجاري";if(city=="585")cityN="استان خوزستان - شهر اروندکنار";if(city=="685")cityN="استان خوزستان - شهر اميديه";if(city=="663")cityN="استان خوزستان - شهر انديکا";if(city=="192"||city=="193")cityN="استان خوزستان - شهر انديمشک";if(city=="174"||city=="175")cityN="استان خوزستان - شهر اهواز";if(city=="183"||city=="184")cityN="استان خوزستان - شهر ايذه";if(city=="481")cityN="استان خوزستان - شهر باغ ملک";if(city=="706")cityN="استان خوزستان - شهر بندر امام خميني";if(city=="194"||city=="195")cityN="استان خوزستان - شهر بندرماهشهر";if(city=="185"||city=="186")cityN="استان خوزستان - شهر بهبهان";if(city=="182")cityN="استان خوزستان - شهر خرمشهر";if(city=="199"||city=="200")cityN="استان خوزستان - شهر دزفول";if(city=="198")cityN="استان خوزستان - شهر دشت آزادگان";if(city=="662")cityN="استان خوزستان - شهر رامشير";if(city=="190"||city=="191")cityN="استان خوزستان - شهر رامهرمز";if(city=="692")cityN="استان خوزستان - شهر سردشت";if(city=="189")cityN="استان خوزستان - شهر شادگان";if(city=="707")cityN="استان خوزستان - شهر شاوور";if(city=="526")cityN="استان خوزستان - شهر شوش";if(city=="187"||city=="188")cityN="استان خوزستان - شهر شوشتر";if(city=="729")cityN="استان خوزستان - شهر گتوند";if(city=="730")cityN="استان خوزستان - شهر لالي";if(city=="196"||city=="197")cityN="استان خوزستان - شهر مسجدسليمان";if(city=="661")cityN="استان خوزستان - شهر هنديجان";if(city=="680")cityN="استان خوزستان - شهر هويزه";if(city=="643")cityN="استان خراسان رضوي - شهر احمدآباد";if(city=="562")cityN="استان خراسان رضوي - شهر بجستان";if(city=="572")cityN="استان خراسان رضوي - شهر بردسکن";if(city=="074")cityN="استان خراسان رضوي - شهر تايباد";if(city=="644")cityN="استان خراسان رضوي - شهر تخت جلگه";if(city=="072"||city=="073")cityN="استان خراسان رضوي - شهر تربت جام";if(city=="069"||city=="070")cityN="استان خراسان رضوي - شهر تربت حيدريه";if(city=="521")cityN="استان خراسان رضوي - شهر جغتاي";if(city=="573")cityN="استان خراسان رضوي - شهر جوين";if(city=="522")cityN="استان خراسان رضوي - شهر چناران";if(city=="724")cityN="استان خراسان رضوي - شهر خليل آباد";if(city=="076")cityN="استان خراسان رضوي - شهر خواف";if(city=="077")cityN="استان خراسان رضوي - شهر درگز";if(city=="650")cityN="استان خراسان رضوي - شهر رشتخوار";if(city=="574")cityN="استان خراسان رضوي - شهر زبرخان";if(city=="078"||city=="079")cityN="استان خراسان رضوي - شهر سبزوار";if(city=="081")cityN="استان خراسان رضوي - شهر سرخس";if(city=="084")cityN="استان خراسان رضوي - شهر فريمان";if(city=="651")cityN="استان خراسان رضوي - شهر فيض آباد";if(city=="086"||city=="087")cityN="استان خراسان رضوي - شهر قوچان";if(city=="089"||city=="090")cityN="استان خراسان رضوي - شهر کاشمر";if(city=="553")cityN="استان خراسان رضوي - شهر کلات";if(city=="091")cityN="استان خراسان رضوي - شهر گناباد";if(city=="092"||city=="093"||city=="094")cityN="استان خراسان رضوي - شهر مشهد";if(city=="097")cityN="استان خراسان رضوي - شهر مشهد منطقه2";if(city=="098")cityN="استان خراسان رضوي - شهر مشهد منطقه3";if(city=="096")cityN="استان خراسان رضوي - شهر مشهد منطقه1";if(city=="105"||city=="106")cityN="استان خراسان رضوي - شهر نيشابور";if(city=="063")cityN="استان خراسان شمالي - شهر اسفراين";if(city=="067"||city=="068")cityN="استان خراسان شمالي - شهر بجنورد";if(city=="075")cityN="استان خراسان شمالي - شهر جاجرم";if(city=="591")cityN="استان خراسان شمالي - شهر رازوجرکلان";if(city=="082")cityN="استان خراسان شمالي - شهر شيروان";if(city=="635")cityN="استان خراسان شمالي - شهر فاروج";if(city=="524")cityN="استان خراسان شمالي - شهر مانه و سملقان";if(city=="468")cityN="استان چهارمحال و بختياري - شهر اردل";if(city=="465")cityN="استان چهارمحال و بختياري - شهر بروجن";if(city=="461"||city=="462")cityN="استان چهارمحال و بختياري - شهر شهرکرد";if(city=="467")cityN="استان چهارمحال و بختياري - شهر فارسان";if(city=="555")cityN="استان چهارمحال و بختياري - شهر کوهرنگ";if(city=="633")cityN="استان چهارمحال و بختياري - شهر کيار";if(city=="629")cityN="استان چهارمحال و بختياري - شهر گندمان";if(city=="466")cityN="استان چهارمحال و بختياري - شهر لردگان";if(city=="696")cityN="استان چهارمحال و بختياري - شهر ميانکوه";if(city=="721")cityN="استان خراسان جنوبي - شهر بشرويه";if(city=="064"||city=="065")cityN="استان خراسان جنوبي - شهر بيرجند";if(city=="523")cityN="استان خراسان جنوبي - شهر درميان";if(city=="652")cityN="استان خراسان جنوبي - شهر زيرکوه";if(city=="719")cityN="استان خراسان جنوبي - شهر سرايان";if(city=="716")cityN="استان خراسان جنوبي - شهر سربيشه";if(city=="085")cityN="استان خراسان جنوبي - شهر فردوس";if(city=="088")cityN="استان خراسان جنوبي - شهر قائنات";if(city=="563")cityN="استان خراسان جنوبي - شهر نهبندان";if(city=="529")cityN="استان بوشهر - شهر بندر ديلم";if(city=="353")cityN="استان بوشهر - شهر بندر گناوه";if(city=="349"||city=="350")cityN="استان بوشهر - شهر بوشهر";if(city=="355")cityN="استان بوشهر - شهر تنگستان";if(city=="609")cityN="استان بوشهر - شهر جم";if(city=="351"||city=="352")cityN="استان بوشهر - شهر دشتستان";if(city=="354")cityN="استان بوشهر - شهر دشتي";if(city=="732")cityN="استان بوشهر - شهر دلوار";if(city=="357")cityN="استان بوشهر - شهر دير";if(city=="532")cityN="استان بوشهر - شهر سعد آباد";if(city=="610")cityN="استان بوشهر - شهر شبانکاره";if(city=="356")cityN="استان بوشهر - شهر کنگان";if(city=="556")cityN="استان تهران - شهر اسلامشهر";if(city=="658")cityN="استان تهران - شهر پاکدشت";if(city=="001"||city=="002"||city=="003"||city=="004"||city=="005"||city=="006"||city=="007"||city=="008")cityN="استان تهران - شهر تهران مرکزي";if(city=="011")cityN="استان تهران - شهر تهران جنوب";if(city=="020")cityN="استان تهران - شهر تهران شرق";if(city=="025")cityN="استان تهران - شهر تهرانشمال";if(city=="015")cityN="استان تهران - شهر تهران غرب";if(city=="043")cityN="استان تهران - شهر دماوند";if(city=="666")cityN="استان تهران - شهر رباط کريم";if(city=="489")cityN="استان تهران - شهر ساوجبلاغ";if(city=="044"||city=="045")cityN="استان تهران - شهر شميران";if(city=="048"||city=="049")cityN="استان تهران - شهر شهرري";if(city=="490"||city=="491")cityN="استان تهران - شهر شهريار";if(city=="695")cityN="استان تهران - شهر طالقان";if(city=="659")cityN="استان تهران - شهر فيروزکوه";if(city=="031"||city=="032")cityN="استان تهران - شهر کرج";if(city=="664")cityN="استان تهران - شهر کهريزک";if(city=="717")cityN="استان تهران - شهر نظرآباد";if(city=="041"||city=="042")cityN="استان تهران - شهر ورامين";if(city=="471"||city=="472")cityN=" امور خارجه - امور خارجه";if(city=="454")cityN="استان ايلام - شهر آبدانان";if(city=="581")cityN="استان ايلام - شهر ارکوازي(ملکشاهي)";if(city=="449"||city=="450")cityN="استان ايلام - شهر ايلام";if(city=="616")cityN="استان ايلام - شهر ايوان";if(city=="534")cityN="استان ايلام - شهر بدره";if(city=="455")cityN="استان ايلام - شهر دره شهر";if(city=="451")cityN="استان ايلام - شهر دهلران";if(city=="726")cityN="استان ايلام - شهر زرين آباد";if(city=="634")cityN="استان ايلام - شهر شيروان لومار";if(city=="453")cityN="استان ايلام - شهر شيروان و چرداول";if(city=="727")cityN="استان ايلام - شهر موسيان";if(city=="452")cityN="استان ايلام - شهر مهران";if(city=="145"||city=="146")cityN="استان اردبيل - شهر اردبيل";if(city=="731")cityN="استان اردبيل - شهر ارشق";if(city=="690")cityN="استان اردبيل - شهر انگوت";if(city=="601")cityN="استان اردبيل - شهر بيله سوار";if(city=="504")cityN="استان اردبيل - شهر پارس آباد";if(city=="163")cityN="استان اردبيل - شهر خلخال";if(city=="714")cityN="استان اردبيل - شهر خورش رستم";if(city=="715")cityN="استان اردبيل - شهر سرعين";if(city=="566")cityN="استان اردبيل - شهر سنجبد(کوثر)";if(city=="166"||city=="167")cityN="استان اردبيل - شهر مشکين شهر";if(city=="161"||city=="162")cityN="استان اردبيل - شهر مغان";if(city=="686")cityN="استان اردبيل - شهر نمين";if(city=="603")cityN="استان اردبيل - شهر نير";if(city=="619")cityN="استان اصفهان - شهر آران و بيدگل";if(city=="118")cityN="استان اصفهان - شهر اردستان";if(city=="127"||city=="128"||city=="129")cityN="استان اصفهان - شهر اصفهان";if(city=="620")cityN="استان اصفهان - شهر باغ بهادران";if(city=="621")cityN="استان اصفهان - شهر بوئين و مياندشت";if(city=="549")cityN="استان اصفهان - شهر تيران و کرون";if(city=="564")cityN="استان اصفهان - شهر جرقويه";if(city=="575")cityN="استان اصفهان - شهر چادگان";if(city=="113"||city=="114")cityN="استان اصفهان - شهر خميني شهر";if(city=="122")cityN="استان اصفهان - شهر خوانسار";if(city=="540")cityN="استان اصفهان - شهر خور و بيابانک";if(city=="660")cityN="استان اصفهان - شهر دولت آباد";if(city=="120")cityN="استان اصفهان - شهر سميرم";if(city=="512")cityN="استان اصفهان - شهر سميرم سفلي (دهاقان)";if(city=="510"||city=="511")cityN="استان اصفهان - شهر شاهين شهر";if(city=="119")cityN="استان اصفهان - شهر شهرضا";if(city=="115")cityN="استان اصفهان - شهر فريدن";if(city=="112")cityN="استان اصفهان - شهر فريدونشهر";if(city=="110"||city=="111")cityN="استان اصفهان - شهر فلاورجان";if(city=="125"||city=="126")cityN="استان اصفهان - شهر کاشان";if(city=="565")cityN="استان اصفهان - شهر کوهپايه";if(city=="121")cityN="استان اصفهان - شهر گلپايگان";if(city=="116"||city=="117")cityN="استان اصفهان - شهر لنجان(زرينشهر)";if(city=="541")cityN="استان اصفهان - شهر مبارکه";if(city=="622")cityN="استان اصفهان - شهر ميمه";if(city=="124")cityN="استان اصفهان - شهر نائين";if(city=="108"||city=="109")cityN="استان اصفهان - شهر نجف آباد";if(city=="123")cityN="استان اصفهان - شهر نطنز";if(city=="427"||city=="428")cityN="استان زنجان - شهر زنجان";if(city=="507")cityN="استان آذربايجان شرقي - شهر ملکان";if(city=="158")cityN="استان آذربايجان شرقي - شهر مرند";if(city=="152"||city=="153")cityN="استان آذربايجان شرقي - شهر ميانه";if(city=="615")cityN="استان قزوين - شهر ابهر و خرمدره"
1059
+ document.getElementById("city_<?php echo $field["id"]; ?>").innerHTML = cityN;
1060
+ <?php
1061
+ }
1062
+ if(rgget("field_mellicart_sp", $field)) {
1063
+ ?>
1064
+ meli_code.value = meli_code.value.substring(0,3)+"-"+meli_code.value.substring(3,9)+"-"+meli_code.value.substring(9,10);
1065
+ <?php
1066
+ }
1067
+ ?>
1068
+ return true;
1069
+ }
1070
+ <?php
1071
+ if(rgget("field_mellicart", $field))
1072
+ {
1073
+ ?>
1074
+ else
1075
+ {
1076
+ <?php
1077
+ if ($pm3)
1078
  {
1079
  ?>
1080
+ var pm3 = "<?php echo $pm3 ?>";
1081
  <?php
1082
  }
1083
  else
1084
  {
1085
  ?>
1086
+ var pm3 = 'کد ملی وارد شده مطابق با استانداردهای کشور نمی باشد .';
1087
  <?php
1088
  }
1089
  ?>
1090
+ document.getElementById("city_<?php echo $field["id"]; ?>").innerHTML = pm3;
1091
+ return false;
1092
+ }
1093
+ <?php
1094
+ }
1095
+ ?>
1096
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1097
  </script>
1098
  <?php
1099
  }
1112
  {
1113
  if(is_array($value) && rgempty(0, $value) && rgempty(1, $value)&& rgempty(2, $value))
1114
  $value = null;
 
1115
  if(!empty($value))
1116
  {
1117
  $format = empty($field["dateFormat"]) ? "mdy" : $field["dateFormat"];
1123
  $min = 1;
1124
  if ( intval($date["month"]) >= 1 && intval($date["month"]) <=6 )
1125
  $max = 31;
 
1126
  if ( intval($date["month"]) >= 7 && intval($date["month"]) <=12 )
1127
  $max = 30;
 
1128
  if ( intval($date["month"]) == 12 && intval($date["day"]) >= 1 && intval($date["day"]) <= 30 ) {
1129
  $j_g = GF_jalali_to_gregorian($date["year"],$date["month"],$date["day"]);
1130
  $day = $j_g[2];
1137
  if ( $leap_year != 1 )
1138
  $max = 29;
1139
  }
 
1140
  if ( intval($date["day"]) >= $min && intval($date["day"]) <= $max ) {
1141
  $j_g = GF_jalali_to_gregorian($date["year"],$date["month"],$date["day"]);
1142
  $day = $j_g[2];
1152
  }
1153
  else
1154
  $result["is_valid"] = false;
 
1155
  if(empty($date) || !$result["is_valid"] )
1156
  {
1157
  $format_name = "";
1179
  $format_name = "yyyy.mm.dd";
1180
  break;
1181
  }
 
1182
  $result["is_valid"] = false;
1183
  $message = $field["dateType"] == "datepicker" ? sprintf(__("Please enter a valid date in the format (%s).", "gravityforms"), $format_name) : __("Please enter a valid date.", "gravityforms");
1184
  $result["message"] = empty($field["errorMessage"]) ? $message : $field["errorMessage"];
1232
  $result["message"] = 'این کد ملی توسط فرد دیگری ثبت شده است .';
1233
  }
1234
  }
1235
+ //else return result
1236
  return $result;
1237
  }
1238
  }
assets/css/persian-gravity-form.css ADDED
@@ -0,0 +1 @@
 
1
+ #keybMaster{background-color:#ddd;border-radius:6px 5px 12px 16px;box-shadow:0 2px 10px #444;cursor:default;height:auto;line-height:normal;margin:0;opacity:.95;padding:0;position:absolute;text-align:left;width:auto;z-index:1000000}#keybMaster thead tr th{border-radius:.6em .6em 0 0;font-family:tahoma;font-size:11px;font-style:normal;font-weight:400;padding:.3em 1.3em .1em;text-align:right;white-space:nowrap}#keybMaster thead tr th div{float:left;position:relative;z-index:1;cursor:pointer}#keybMaster thead tr th div ol{position:absolute;left:0;top:11px;list-style-type:none;padding:5px;overflow-y:auto;overflow-x:hidden;background-color:#f6f6f6;border:1px solid #999;display:none;text-align:right}#keybMaster thead tr th div ol li{padding:.2em .4em;cursor:pointer}#keybMaster thead tr th span{display:inline-block;padding:0 .4em;height:1.4em;line-height:1.4em;border-top:1px solid #e5e5e5;border-right:1px solid #5d5d5d;border-bottom:1px solid #5d5d5d;border-left:1px solid #e5e5e5;background-color:#ccc;cursor:pointer;margin:0 0 0 .3em;-webkit-border-radius:.3em;-moz-border-radius:.3em;border-radius:.3em;vertical-align:middle;-webkit-transition:background-color .15s ease-in-out;-o-transition:background-color .15s ease-in-out;transition:background-color .15s ease-in-out}#keybMaster thead tr th strong{font-weight:700;margin:0 -4px 0 6px}#keybMaster thead tr th small{-webkit-border-radius:.3em 0 0 .3em;-moz-border-radius:.3em 0 0 .3em;border-radius:.3em 0 0 .3em;border-right:1px solid #aaa;padding:0 .2em 0 .3em}#keybMaster thead tr th big{-webkit-border-radius:0 .3em .3em 0;-moz-border-radius:0 .3em .3em 0;border-radius:0 .3em .3em 0;border-left:0 none;margin:0;padding:0 .3em 0 .2em}#keybMaster thead tr th span:hover,#keybMaster thead tr th span.hover,#keybMaster thead tr th strong:hover,#keybMaster thead tr th strong.hover,#keybMaster thead tr th small:hover,#keybMaster thead tr th small.hover,#keybMaster thead tr th big:hover,#keybMaster thead tr th big.hover{background-color:#ddd}#keybMaster tbody tr td{text-align:left;padding:.2em .3em .3em;vertical-align:top}#keybMaster tbody tr td div{text-align:center;position:relative;zoom:1}#keybMaster tbody tr td table{white-space:nowrap;width:100%;border-collapse:separate;border-spacing:0}#keybMaster tbody tr td#keybNumpad table{margin-left:.2em;width:auto}#keybMaster tbody tr td table.keybCenter{width:auto;margin:0 auto}#keybMaster tbody tr td table tbody tr td{background-color:#333335;border-color:#e5e5e5 #5d5d5d #5d5d5d #e5e5e5;border-radius:.2em;border-style:solid;border-width:1px;color:#fff;cursor:default;font-family:tahoma;font-size:15px;height:1.8em;min-width:.75em;padding:0 .45em;transition:background-color .15s ease-in-out 0;vertical-align:middle;white-space:pre;-webkit-border-radius:.2em;-moz-border-radius:.2em;border-radius:.2em;-webkit-transition:background-color .15s ease-in-out;-o-transition:background-color .15s ease-in-out;transition:background-color .15s ease-in-out}#keybMaster tbody tr td table tbody tr td.last{width:99%}#keybMaster tbody tr td table tbody tr td.space{padding:0 4em}#keybMaster tbody tr td table tbody tr td.deadkey{background-color:#ccd}#keybMaster tbody tr td table tbody tr td.target{background-color:#ddc}#keybMaster tbody tr td table tbody tr td:hover,#keybMaster tbody tr td table tbody tr td.hover{border-top:1px solid #d5d5d5;border-right:1px solid #555;border-bottom:1px solid #555;border-left:1px solid #d5d5d5;background-color:#ccc}#keybMaster thead tr th span:active,#keybMaster thead tr th span.pressed,#keybMaster tbody tr td table tbody tr td:active,#keybMaster tbody tr td table tbody tr td.pressed{border-top:1px solid #555;border-right:1px solid #d5d5d5;border-bottom:1px solid #d5d5d5;border-left:1px solid #555;background-color:#ccc}#keybMaster tbody tr td table tbody tr td small{display:block;text-align:center;font-size:.6em;line-height:1.1em}#keybMaster tbody tr td div label{position:absolute;bottom:.2em;left:.3em}#keybMaster tbody tr td div label input{background-color:#f6f6f6;vertical-align:middle;font-size:inherit;width:1.1em;height:1.1em}#keybMaster tbody tr td div var{position:absolute;bottom:0;right:3px;font-weight:700;font-style:italic;color:#444}.keybInitiator{margin:0 3px;vertical-align:middle;cursor:pointer}.gright,.gform_wrapper form,.gform_wrapper ul li:before,.gform_wrapper ul li:after,.gform_wrapper ul.gform_fields{text-align:right!important;direction:rtl!important}.gleft,.gform_wrapper input[type="url"],.gform_wrapper input[type="email"],.gform_wrapper input[type="tel"],.gform_wrapper input[type="number"],.gform_wrapper input[type="password"],body.rtl .gform_wrapper input[type="email"],body.rtl .gform_wrapper input[type="password"],body.rtl .gform_wrapper input[type="url"],body.rtl .gform_wrapper input[type="tel"],body .gform_wrapper.gf_rtl_wrapper input[type="email"],body .gform_wrapper.gf_rtl_wrapper input[type="password"],body .gform_wrapper.gf_rtl_wrapper input[type="url"],body .gform_wrapper.gf_rtl_wrapper input[type="tel"]{text-align:left!important;direction:ltr!important}.gform_wrapper .ginput_complex .ginput_left{float:right!important}.gform_wrapper .ginput_complex .ginput_right{float:left!important}
assets/js/keyboard.js ADDED
@@ -0,0 +1,823 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ jQuery(document).ready(function(){
2
+ jQuery( document ).ready(function(){
3
+ jQuery(".keyb textarea").addClass("keyb");
4
+ jQuery(".keyb input").addClass("keyb");
5
+ });
6
+ });
7
+ var VKI_attach, VKI_close;
8
+ (function() {
9
+ var self = this;
10
+ this.VKI_version = "";
11
+ this.VKI_showVersion = false;
12
+ this.VKI_target = false;
13
+ this.VKI_shift = this.VKI_shiftlock = false;
14
+ this.VKI_altgr = this.VKI_altgrlock = false;
15
+ this.VKI_dead = false;
16
+ this.VKI_deadBox = false; // Show the dead keys checkbox
17
+ this.VKI_deadkeysOn = false; // Turn dead keys on by default
18
+ this.VKI_numberPad = true; // Allow user to open and close the number pad
19
+ this.VKI_numberPadOn = false; // Show number pad by default
20
+ this.VKI_kts = this.VKI_kt = "فارسی"; // Default keyboard layout
21
+ this.VKI_langAdapt = true; // Use lang attribute of input to select keyboard
22
+ this.VKI_size = 2; // Default keyboard size (1-5)
23
+ this.VKI_sizeAdj = false; // Allow user to adjust keyboard size
24
+ this.VKI_clearPasswords = false; // Clear password fields on focus
25
+ this.VKI_imageURI = ""; // If empty string, use imageless mode
26
+ this.VKI_clickless = 0; // 0 = disabled, > 0 = delay in ms
27
+ this.VKI_activeTab = 0; // Tab moves to next: 1 = element, 2 = keyboard enabled element
28
+ this.VKI_enterSubmit = true; // Submit forms when Enter is pressed
29
+ this.VKI_keyCenter = 3;
30
+
31
+ this.VKI_isIE = /*@cc_on!@*/false;
32
+ this.VKI_isIE6 = /*@if(@_jscript_version == 5.6)!@end@*/false;
33
+ this.VKI_isIElt8 = /*@if(@_jscript_version < 5.8)!@end@*/false;
34
+ this.VKI_isWebKit = RegExp("KHTML").test(navigator.userAgent);
35
+ this.VKI_isOpera = RegExp("Opera").test(navigator.userAgent);
36
+ this.VKI_isMoz = (!this.VKI_isWebKit && navigator.product == "Gecko");
37
+
38
+ /* ***** i18n text strings ************************************* */
39
+ this.VKI_i18n = {
40
+ '00': "نمایش صفحه کلید اعداد",
41
+ '01': "نمایش صفحه کلید مجازی",
42
+ '02': "انتخاب زبان صفحه کلید",
43
+ '03': "Dead keys",
44
+ '04': "روشن",
45
+ '05': "خاموش",
46
+ '06': "بستن صفحه کلید",
47
+ '07': "پاکسازی",
48
+ '08': "پاکسازی ورودی",
49
+ '09': "ورژن",
50
+ '10': "کاهش سایز صفحه کلید",
51
+ '11': "افزایش سایز صفحه کلید"
52
+ };
53
+
54
+
55
+ /* ***** Create keyboards ************************************** */
56
+ this.VKI_layout = {};
57
+
58
+ this.VKI_layout['فارسی'] = {
59
+ 'name': "فارسی", 'keys': [
60
+ [["\u067e", "\u0651 "], ["1", "!", "\u00a1", "\u00b9"], ["2", "@", "\u00b2"], ["3", "#", "\u00b3"], ["4", "$", "\u00a4", "\u00a3"], ["5", "%", "\u20ac"], ["6", "^", "\u00bc"], ["7", "&", "\u00bd"], ["8", "*", "\u00be"], ["9", "(", "\u2018"], ["0", ")", "\u2019"], ["-", "_", "\u00a5"], ["=", "+", "\u00d7", "\u00f7"], ["Bksp", "Bksp"]],
61
+ [["Tab", "Tab"], ["\u0636", "\u064e"], ["\u0635", "\u064b"], ["\u062b", "\u064f"], ["\u0642", "\u064c"], ["\u0641", "\u0644"], ["\u063a", "\u0625"], ["\u0639", "\u2018"], ["\u0647", "\u00f7"], ["\u062e", "\u00d7"], ["\u062d", "\u061b"], ["\u062c", "<"], ["\u0686", ">"], ["\u0698", "|"]],
62
+ [["Caps", "Caps"], ["\u0634", "\u0650"], ["\u0633", "\u064d"], ["\u064a", "]"], ["\u0628", "["], ["\u0644", "\u0644"], ["\u0627", "\u0623"], ["\u062a", "\u0640"], ["\u0646", "\u060c"], ["\u0645", "\\"], ["\u06af", ":"], ["\u0643", '"'], ["Enter", "Enter"]],
63
+ [["Shift", "Shift"], ["\u0638", "~"], ["\u0637", "\u0652"], ["\u0632", "}"], ["\u0631", "{"], ["\u0630", "\u0644"], ["\u062f", "\u0622"], ["\u0626", "\u0621"], ["\u0648", ","], [".", "."], ["/", "\u061f"], ["Shift", "Shift"]],
64
+ [[" ", " ", " ", " "], ["Alt", "Alt"]]
65
+ ], 'lang': ["fa"] };
66
+
67
+
68
+ this.VKI_layout['انگلیسی'] = {
69
+ 'name': "انگلیسی", 'keys': [
70
+ [["`", "~"], ["1", "!", "\u00a1", "\u00b9"], ["2", "@", "\u00b2"], ["3", "#", "\u00b3"], ["4", "$", "\u00a4", "\u00a3"], ["5", "%", "\u20ac"], ["6", "^", "\u00bc"], ["7", "&", "\u00bd"], ["8", "*", "\u00be"], ["9", "(", "\u2018"], ["0", ")", "\u2019"], ["-", "_", "\u00a5"], ["=", "+", "\u00d7", "\u00f7"], ["Bksp", "Bksp"]],
71
+ [["Tab", "Tab"], ["q", "Q", "\u00e4", "\u00c4"], ["w", "W", "\u00e5", "\u00c5"], ["e", "E", "\u00e9", "\u00c9"], ["r", "R", "\u00ae"], ["t", "T", "\u00fe", "\u00de"], ["y", "Y", "\u00fc", "\u00dc"], ["u", "U", "\u00fa", "\u00da"], ["i", "I", "\u00ed", "\u00cd"], ["o", "O", "\u00f3", "\u00d3"], ["p", "P", "\u00f6", "\u00d6"], ["[", "{", "\u00ab"], ["]", "}", "\u00bb"], ["\\", "|", "\u00ac", "\u00a6"]],
72
+ [["Caps", "Caps"], ["a", "A", "\u00e1", "\u00c1"], ["s", "S", "\u00df", "\u00a7"], ["d", "D", "\u00f0", "\u00d0"], ["f", "F"], ["g", "G"], ["h", "H"], ["j", "J"], ["k", "K"], ["l", "L", "\u00f8", "\u00d8"], [";", ":", "\u00b6", "\u00b0"], ["'", '"', "\u00b4", "\u00a8"], ["Enter", "Enter"]],
73
+ [["Shift", "Shift"], ["z", "Z", "\u00e6", "\u00c6"], ["x", "X"], ["c", "C", "\u00a9", "\u00a2"], ["v", "V"], ["b", "B"], ["n", "N", "\u00f1", "\u00d1"], ["m", "M", "\u00b5"], [",", "<", "\u00e7", "\u00c7"], [".", ">"], ["/", "?", "\u00bf"], ["Shift", "Shift"]],
74
+ [[" ", " ", " ", " "], ["Alt", "Alt"]]
75
+ ], 'lang': ["en"] };
76
+
77
+ /* ***** Define Dead Keys ************************************** */
78
+ this.VKI_deadkey = {};
79
+
80
+ this.VKI_deadkey['\u0385'] = { // Greek Dialytika + Tonos
81
+ '\u03b9': "\u0390", '\u03c5': "\u03b0"
82
+ };
83
+
84
+ /* ***** Define Symbols **************************************** */
85
+ this.VKI_symbol = {
86
+ '\u00a0': "NB\nSP", '\u200b': "ZW\nSP", '\u200c': "ZW\nNJ", '\u200d': "ZW\nJ"
87
+ };
88
+
89
+
90
+ /* ***** Layout Number Pad ************************************* */
91
+ this.VKI_numpad = [
92
+ [["$"], ["\u00a3"], ["\u20ac"], ["\u00a5"]],
93
+ [["7"], ["8"], ["9"], ["/"]],
94
+ [["4"], ["5"], ["6"], ["*"]],
95
+ [["1"], ["2"], ["3"], ["-"]],
96
+ [["0"], ["."], ["="], ["+"]]
97
+ ];
98
+
99
+
100
+ /* ****************************************************************
101
+ * Attach the keyboard to an element
102
+ *
103
+ */
104
+ VKI_attach = function(elem) {
105
+ if (elem.getAttribute("VKI_attached")) return false;
106
+ if (self.VKI_imageURI) {
107
+ var keybut = document.createElement('img');
108
+ keybut.src = self.VKI_imageURI;
109
+ keybut.alt = self.VKI_i18n['01'];
110
+ keybut.className = "keybInitiator";
111
+ keybut.title = self.VKI_i18n['01'];
112
+ keybut.elem = elem;
113
+ keybut.onclick = function(e) {
114
+ e = e || event;
115
+ if (e.stopPropagation) { e.stopPropagation(); } else e.cancelBubble = true;
116
+ self.VKI_show(this.elem);
117
+ };
118
+ elem.parentNode.insertBefore(keybut, (elem.dir == "rtl") ? elem : elem.nextSibling);
119
+ } else {
120
+ elem.onfocus = function() {
121
+ if (self.VKI_target != this) {
122
+ if (self.VKI_target) self.VKI_close();
123
+ self.VKI_show(this);
124
+ }
125
+ };
126
+ elem.onclick = function() {
127
+ if (!self.VKI_target) self.VKI_show(this);
128
+ }
129
+ }
130
+ elem.setAttribute("VKI_attached", 'true');
131
+ if (self.VKI_isIE) {
132
+ elem.onclick = elem.onselect = elem.onkeyup = function(e) {
133
+ if ((e || event).type != "keyup" || !this.readOnly)
134
+ this.range = document.selection.createRange();
135
+ };
136
+ }
137
+ VKI_addListener(elem, 'click', function(e) {
138
+ if (self.VKI_target == this) {
139
+ e = e || event;
140
+ if (e.stopPropagation) { e.stopPropagation(); } else e.cancelBubble = true;
141
+ } return false;
142
+ }, false);
143
+ if (self.VKI_isMoz)
144
+ elem.addEventListener('blur', function() { this.setAttribute('_scrollTop', this.scrollTop); }, false);
145
+ };
146
+
147
+
148
+ /* ***** Find tagged input & textarea elements ***************** */
149
+ function VKI_buildkeybs() {
150
+ var inputElems = [
151
+ document.getElementsByTagName('input'),
152
+ document.getElementsByTagName('textarea')
153
+ ];
154
+ for (var x = 0, elem; elem = inputElems[x++];)
155
+ for (var y = 0, ex; ex = elem[y++];)
156
+ if (ex.nodeName == "TEXTAREA" || ex.type == "text" || ex.type == "password")
157
+ if (ex.className.indexOf("keyb") > -1)
158
+ VKI_attach(ex);
159
+
160
+ VKI_addListener(document.documentElement, 'click', function(e) { self.VKI_close(); }, false);
161
+ }
162
+
163
+
164
+ /* ****************************************************************
165
+ * Common mouse event actions
166
+ *
167
+ */
168
+ function VKI_mouseEvents(elem) {
169
+ if (elem.nodeName == "TD") {
170
+ if (!elem.click) elem.click = function() {
171
+ var evt = this.ownerDocument.createEvent('MouseEvents');
172
+ evt.initMouseEvent('click', true, true, this.ownerDocument.defaultView, 1, 0, 0, 0, 0, false, false, false, false, 0, null);
173
+ this.dispatchEvent(evt);
174
+ };
175
+ elem.VKI_clickless = 0;
176
+ VKI_addListener(elem, 'dblclick', function() { return false; }, false);
177
+ }
178
+ VKI_addListener(elem, 'mouseover', function() {
179
+ if (this.nodeName == "TD" && self.VKI_clickless) {
180
+ var _self = this;
181
+ clearTimeout(this.VKI_clickless);
182
+ this.VKI_clickless = setTimeout(function() { _self.click(); }, self.VKI_clickless);
183
+ }
184
+ if (self.VKI_isIE) this.className += " hover";
185
+ }, false);
186
+ VKI_addListener(elem, 'mouseout', function() {
187
+ if (this.nodeName == "TD") clearTimeout(this.VKI_clickless);
188
+ if (self.VKI_isIE) this.className = this.className.replace(/ ?(hover|pressed) ?/g, "");
189
+ }, false);
190
+ VKI_addListener(elem, 'mousedown', function() {
191
+ if (this.nodeName == "TD") clearTimeout(this.VKI_clickless);
192
+ if (self.VKI_isIE) this.className += " pressed";
193
+ }, false);
194
+ VKI_addListener(elem, 'mouseup', function() {
195
+ if (this.nodeName == "TD") clearTimeout(this.VKI_clickless);
196
+ if (self.VKI_isIE) this.className = this.className.replace(/ ?pressed ?/g, "");
197
+ }, false);
198
+ }
199
+
200
+
201
+ /* ***** Build the keyboard interface ************************** */
202
+ this.VKI_keyboard = document.createElement('table');
203
+ this.VKI_keyboard.id = "keybMaster";
204
+ this.VKI_keyboard.dir = "ltr";
205
+ this.VKI_keyboard.cellSpacing = "0";
206
+ this.VKI_keyboard.reflow = function() {
207
+ this.style.width = "50px";
208
+ var foo = this.offsetWidth;
209
+ this.style.width = "";
210
+ };
211
+ VKI_addListener(this.VKI_keyboard, 'click', function(e) {
212
+ e = e || event;
213
+ if (e.stopPropagation) { e.stopPropagation(); } else e.cancelBubble = true;
214
+ return false;
215
+ }, false);
216
+
217
+ if (!this.VKI_layout[this.VKI_kt])
218
+ return alert('No keyboard named "' + this.VKI_kt + '"');
219
+
220
+ this.VKI_langCode = {};
221
+ var thead = document.createElement('thead');
222
+ var tr = document.createElement('tr');
223
+ var th = document.createElement('th');
224
+ th.colSpan = "2";
225
+
226
+ var kbSelect = document.createElement('div');
227
+ kbSelect.title = this.VKI_i18n['02'];
228
+ VKI_addListener(kbSelect, 'click', function() {
229
+ var ol = this.getElementsByTagName('ol')[0];
230
+ if (!ol.style.display) {
231
+ ol.style.display = "block";
232
+ var li = ol.getElementsByTagName('li');
233
+ for (var x = 0, scr = 0; x < li.length; x++) {
234
+ if (VKI_kt == li[x].firstChild.nodeValue) {
235
+ li[x].className = "selected";
236
+ scr = li[x].offsetTop - li[x].offsetHeight * 2;
237
+ } else li[x].className = "";
238
+ } setTimeout(function() { ol.scrollTop = scr; }, 0);
239
+ } else ol.style.display = "";
240
+ }, false);
241
+ kbSelect.appendChild(document.createTextNode(this.VKI_kt));
242
+ kbSelect.appendChild(document.createTextNode(this.VKI_isIElt8 ? " \u2193" : " \u25be"));
243
+ kbSelect.langCount = 0;
244
+ var ol = document.createElement('ol');
245
+ for (ktype in this.VKI_layout) {
246
+ if (typeof this.VKI_layout[ktype] == "object") {
247
+ if (!this.VKI_layout[ktype].lang) this.VKI_layout[ktype].lang = [];
248
+ for (var x = 0; x < this.VKI_layout[ktype].lang.length; x++)
249
+ this.VKI_langCode[this.VKI_layout[ktype].lang[x].toLowerCase().replace(/-/g, "_")] = ktype;
250
+ var li = document.createElement('li');
251
+ li.title = this.VKI_layout[ktype].name;
252
+ VKI_addListener(li, 'click', function(e) {
253
+ e = e || event;
254
+ if (e.stopPropagation) { e.stopPropagation(); } else e.cancelBubble = true;
255
+ this.parentNode.style.display = "";
256
+ self.VKI_kts = self.VKI_kt = kbSelect.firstChild.nodeValue = this.firstChild.nodeValue;
257
+ self.VKI_buildKeys();
258
+ self.VKI_position(true);
259
+ }, false);
260
+ VKI_mouseEvents(li);
261
+ li.appendChild(document.createTextNode(ktype));
262
+ ol.appendChild(li);
263
+ kbSelect.langCount++;
264
+ }
265
+ } kbSelect.appendChild(ol);
266
+ if (kbSelect.langCount > 1) th.appendChild(kbSelect);
267
+ this.VKI_langCode.index = [];
268
+ for (prop in this.VKI_langCode)
269
+ if (prop != "index" && typeof this.VKI_langCode[prop] == "string")
270
+ this.VKI_langCode.index.push(prop);
271
+ this.VKI_langCode.index.sort();
272
+ this.VKI_langCode.index.reverse();
273
+
274
+ if (this.VKI_numberPad) {
275
+ var span = document.createElement('span');
276
+ span.appendChild(document.createTextNode("اعداد"));
277
+ span.title = this.VKI_i18n['00'];
278
+ VKI_addListener(span, 'click', function() {
279
+ kbNumpad.style.display = (!kbNumpad.style.display) ? "none" : "";
280
+ self.VKI_position(true);
281
+ }, false);
282
+ VKI_mouseEvents(span);
283
+ th.appendChild(span);
284
+ }
285
+
286
+ this.VKI_kbsize = function(e) {
287
+ self.VKI_size = Math.min(5, Math.max(1, self.VKI_size));
288
+ self.VKI_keyboard.className = self.VKI_keyboard.className.replace(/ ?keybSize\d ?/, "");
289
+ if (self.VKI_size != 2) self.VKI_keyboard.className += " keybSize" + self.VKI_size;
290
+ self.VKI_position(true);
291
+ if (self.VKI_isOpera) self.VKI_keyboard.reflow();
292
+ };
293
+ if (this.VKI_sizeAdj) {
294
+ var small = document.createElement('small');
295
+ small.title = this.VKI_i18n['10'];
296
+ VKI_addListener(small, 'click', function() {
297
+ --self.VKI_size;
298
+ self.VKI_kbsize();
299
+ }, false);
300
+ VKI_mouseEvents(small);
301
+ small.appendChild(document.createTextNode(this.VKI_isIElt8 ? "\u2193" : "\u21d3"));
302
+ th.appendChild(small);
303
+ var big = document.createElement('big');
304
+ big.title = this.VKI_i18n['11'];
305
+ VKI_addListener(big, 'click', function() {
306
+ ++self.VKI_size;
307
+ self.VKI_kbsize();
308
+ }, false);
309
+ VKI_mouseEvents(big);
310
+ big.appendChild(document.createTextNode(this.VKI_isIElt8 ? "\u2191" : "\u21d1"));
311
+ th.appendChild(big);
312
+ }
313
+
314
+ var span = document.createElement('span');
315
+ span.appendChild(document.createTextNode(this.VKI_i18n['07']));
316
+ span.title = this.VKI_i18n['08'];
317
+ VKI_addListener(span, 'click', function() {
318
+ self.VKI_target.value = "";
319
+ self.VKI_target.focus();
320
+ return false;
321
+ }, false);
322
+ VKI_mouseEvents(span);
323
+ th.appendChild(span);
324
+
325
+ var strong = document.createElement('strong');
326
+ strong.appendChild(document.createTextNode('X'));
327
+ strong.title = this.VKI_i18n['06'];
328
+ VKI_addListener(strong, 'click', function() { self.VKI_close(); }, false);
329
+ VKI_mouseEvents(strong);
330
+ th.appendChild(strong);
331
+
332
+ tr.appendChild(th);
333
+ thead.appendChild(tr);
334
+ this.VKI_keyboard.appendChild(thead);
335
+
336
+ var tbody = document.createElement('tbody');
337
+ var tr = document.createElement('tr');
338
+ var td = document.createElement('td');
339
+ var div = document.createElement('div');
340
+
341
+ if (this.VKI_deadBox) {
342
+ var label = document.createElement('label');
343
+ var checkbox = document.createElement('input');
344
+ checkbox.type = "checkbox";
345
+ checkbox.title = this.VKI_i18n['03'] + ": " + ((this.VKI_deadkeysOn) ? this.VKI_i18n['04'] : this.VKI_i18n['05']);
346
+ checkbox.defaultChecked = this.VKI_deadkeysOn;
347
+ VKI_addListener(checkbox, 'click', function() {
348
+ this.title = self.VKI_i18n['03'] + ": " + ((this.checked) ? self.VKI_i18n['04'] : self.VKI_i18n['05']);
349
+ self.VKI_modify("");
350
+ return true;
351
+ }, false);
352
+ label.appendChild(checkbox);
353
+ checkbox.checked = this.VKI_deadkeysOn;
354
+ div.appendChild(label);
355
+ this.VKI_deadkeysOn = checkbox;
356
+ } else this.VKI_deadkeysOn.checked = this.VKI_deadkeysOn;
357
+
358
+ if (this.VKI_showVersion) {
359
+ var vr = document.createElement('var');
360
+ vr.title = this.VKI_i18n['09'] + " " + this.VKI_version;
361
+ vr.appendChild(document.createTextNode("" + this.VKI_version));
362
+ div.appendChild(vr);
363
+ } td.appendChild(div);
364
+ tr.appendChild(td);
365
+
366
+ var kbNumpad = document.createElement('td');
367
+ kbNumpad.id = "keybNumpad";
368
+ if (!this.VKI_numberPadOn) kbNumpad.style.display = "none";
369
+ var ntable = document.createElement('table');
370
+ ntable.cellSpacing = "0";
371
+ var ntbody = document.createElement('tbody');
372
+ for (var x = 0; x < this.VKI_numpad.length; x++) {
373
+ var ntr = document.createElement('tr');
374
+ for (var y = 0; y < this.VKI_numpad[x].length; y++) {
375
+ var ntd = document.createElement('td');
376
+ VKI_addListener(ntd, 'click', VKI_keyClick, false);
377
+ VKI_mouseEvents(ntd);
378
+ ntd.appendChild(document.createTextNode(this.VKI_numpad[x][y]));
379
+ ntr.appendChild(ntd);
380
+ } ntbody.appendChild(ntr);
381
+ } ntable.appendChild(ntbody);
382
+ kbNumpad.appendChild(ntable);
383
+ tr.appendChild(kbNumpad);
384
+ tbody.appendChild(tr);
385
+ this.VKI_keyboard.appendChild(tbody);
386
+
387
+ if (this.VKI_isIE6) {
388
+ this.VKI_iframe = document.createElement('iframe');
389
+ this.VKI_iframe.style.position = "absolute";
390
+ this.VKI_iframe.style.border = "0px none";
391
+ this.VKI_iframe.style.filter = "mask()";
392
+ this.VKI_iframe.style.zIndex = "999999";
393
+ this.VKI_iframe.src = this.VKI_imageURI;
394
+ }
395
+
396
+
397
+ /* ****************************************************************
398
+ * Private table cell attachment function for generic characters
399
+ *
400
+ */
401
+ function VKI_keyClick() {
402
+ var done = false, character = "\xa0";
403
+ if (this.firstChild.nodeName.toLowerCase() != "small") {
404
+ if ((character = this.firstChild.nodeValue) == "\xa0") return false;
405
+ } else character = this.firstChild.getAttribute('char');
406
+ if (self.VKI_deadkeysOn.checked && self.VKI_dead) {
407
+ if (self.VKI_dead != character) {
408
+ if (character != " ") {
409
+ if (self.VKI_deadkey[self.VKI_dead][character]) {
410
+ self.VKI_insert(self.VKI_deadkey[self.VKI_dead][character]);
411
+ done = true;
412
+ }
413
+ } else {
414
+ self.VKI_insert(self.VKI_dead);
415
+ done = true;
416
+ }
417
+ } else done = true;
418
+ } self.VKI_dead = false;
419
+
420
+ if (!done) {
421
+ if (self.VKI_deadkeysOn.checked && self.VKI_deadkey[character]) {
422
+ self.VKI_dead = character;
423
+ this.className += " dead";
424
+ if (self.VKI_shift) self.VKI_modify("Shift");
425
+ if (self.VKI_altgr) self.VKI_modify("AltGr");
426
+ } else self.VKI_insert(character);
427
+ } self.VKI_modify("");
428
+ return false;
429
+ }
430
+
431
+
432
+ /* ****************************************************************
433
+ * Build or rebuild the keyboard keys
434
+ *
435
+ */
436
+ this.VKI_buildKeys = function() {
437
+ this.VKI_shift = this.VKI_shiftlock = this.VKI_altgr = this.VKI_altgrlock = this.VKI_dead = false;
438
+ var container = this.VKI_keyboard.tBodies[0].getElementsByTagName('div')[0];
439
+ var tables = container.getElementsByTagName('table');
440
+ for (var x = tables.length - 1; x >= 0; x--) container.removeChild(tables[x]);
441
+
442
+ for (var x = 0, hasDeadKey = false, lyt; lyt = this.VKI_layout[this.VKI_kt].keys[x++];) {
443
+ var table = document.createElement('table');
444
+ table.cellSpacing = "0";
445
+ if (lyt.length <= this.VKI_keyCenter) table.className = "keybCenter";
446
+ var tbody = document.createElement('tbody');
447
+ var tr = document.createElement('tr');
448
+ for (var y = 0, lkey; lkey = lyt[y++];) {
449
+ var td = document.createElement('td');
450
+ if (this.VKI_symbol[lkey[0]]) {
451
+ var text = this.VKI_symbol[lkey[0]].split("\n");
452
+ var small = document.createElement('small');
453
+ small.setAttribute('char', lkey[0]);
454
+ for (var z = 0; z < text.length; z++) {
455
+ if (z) small.appendChild(document.createElement("br"));
456
+ small.appendChild(document.createTextNode(text[z]));
457
+ } td.appendChild(small);
458
+ } else td.appendChild(document.createTextNode(lkey[0] || "\xa0"));
459
+
460
+ var className = [];
461
+ if (this.VKI_deadkeysOn.checked)
462
+ for (key in this.VKI_deadkey)
463
+ if (key === lkey[0]) { className.push("deadkey"); break; }
464
+ if (lyt.length > this.VKI_keyCenter && y == lyt.length) className.push("last");
465
+ if (lkey[0] == " " || lkey[1] == " ") className.push("space");
466
+ td.className = className.join(" ");
467
+
468
+ switch (lkey[1]) {
469
+ case "Caps": case "Shift":
470
+ case "Alt": case "AltGr": case "AltLk":
471
+ VKI_addListener(td, 'click', (function(type) { return function() { self.VKI_modify(type); return false; }})(lkey[1]), false);
472
+ break;
473
+ case "Tab":
474
+ VKI_addListener(td, 'click', function() {
475
+ if (self.VKI_activeTab) {
476
+ if (self.VKI_target.form) {
477
+ var target = self.VKI_target, elems = target.form.elements;
478
+ self.VKI_close();
479
+ for (var z = 0, me = false, j = -1; z < elems.length; z++) {
480
+ if (j == -1 && elems[z].getAttribute("VKI_attached")) j = z;
481
+ if (me) {
482
+ if (self.VKI_activeTab == 1 && elems[z]) break;
483
+ if (elems[z].getAttribute("VKI_attached")) break;
484
+ } else if (elems[z] == target) me = true;
485
+ } if (z == elems.length) z = Math.max(j, 0);
486
+ if (elems[z].getAttribute("VKI_attached")) {
487
+ self.VKI_show(elems[z]);
488
+ } else elems[z].focus();
489
+ } else self.VKI_target.focus();
490
+ } else self.VKI_insert("\t");
491
+ return false;
492
+ }, false);
493
+ break;
494
+ case "Bksp":
495
+ VKI_addListener(td, 'click', function() {
496
+ self.VKI_target.focus();
497
+ if (self.VKI_target.setSelectionRange && !self.VKI_target.readOnly) {
498
+ var rng = [self.VKI_target.selectionStart, self.VKI_target.selectionEnd];
499
+ if (rng[0] < rng[1]) rng[0]++;
500
+ self.VKI_target.value = self.VKI_target.value.substr(0, rng[0] - 1) + self.VKI_target.value.substr(rng[1]);
501
+ self.VKI_target.setSelectionRange(rng[0] - 1, rng[0] - 1);
502
+ } else if (self.VKI_target.createTextRange && !self.VKI_target.readOnly) {
503
+ try {
504
+ self.VKI_target.range.select();
505
+ } catch(e) { self.VKI_target.range = document.selection.createRange(); }
506
+ if (!self.VKI_target.range.text.length) self.VKI_target.range.moveStart('character', -1);
507
+ self.VKI_target.range.text = "";
508
+ } else self.VKI_target.value = self.VKI_target.value.substr(0, self.VKI_target.value.length - 1);
509
+ if (self.VKI_shift) self.VKI_modify("Shift");
510
+ if (self.VKI_altgr) self.VKI_modify("AltGr");
511
+ self.VKI_target.focus();
512
+ return true;
513
+ }, false);
514
+ break;
515
+ case "Enter":
516
+ VKI_addListener(td, 'click', function() {
517
+ if (self.VKI_target.nodeName != "TEXTAREA") {
518
+ if (self.VKI_enterSubmit && self.VKI_target.form) {
519
+ for (var z = 0, subm = false; z < self.VKI_target.form.elements.length; z++)
520
+ if (self.VKI_target.form.elements[z].type == "submit") subm = true;
521
+ if (!subm) self.VKI_target.form.submit();
522
+ }
523
+ self.VKI_close();
524
+ } else self.VKI_insert("\n");
525
+ return true;
526
+ }, false);
527
+ break;
528
+ default:
529
+ VKI_addListener(td, 'click', VKI_keyClick, false);
530
+
531
+ } VKI_mouseEvents(td);
532
+ tr.appendChild(td);
533
+ for (var z = 0; z < 4; z++)
534
+ if (this.VKI_deadkey[lkey[z] = lkey[z] || ""]) hasDeadKey = true;
535
+ } tbody.appendChild(tr);
536
+ table.appendChild(tbody);
537
+ container.appendChild(table);
538
+ }
539
+ if (this.VKI_deadBox)
540
+ this.VKI_deadkeysOn.style.display = (hasDeadKey) ? "inline" : "none";
541
+ if (this.VKI_isIE6) {
542
+ this.VKI_iframe.style.width = this.VKI_keyboard.offsetWidth + "px";
543
+ this.VKI_iframe.style.height = this.VKI_keyboard.offsetHeight + "px";
544
+ }
545
+ };
546
+
547
+ this.VKI_buildKeys();
548
+ VKI_addListener(this.VKI_keyboard, 'selectstart', function() { return false; }, false);
549
+ this.VKI_keyboard.unselectable = "on";
550
+ if (this.VKI_isOpera)
551
+ VKI_addListener(this.VKI_keyboard, 'mousedown', function() { return false; }, false);
552
+
553
+
554
+ /* ****************************************************************
555
+ * Controls modifier keys
556
+ *
557
+ */
558
+ this.VKI_modify = function(type) {
559
+ switch (type) {
560
+ case "Alt":
561
+ case "AltGr": this.VKI_altgr = !this.VKI_altgr; break;
562
+ case "AltLk": this.VKI_altgr = 0; this.VKI_altgrlock = !this.VKI_altgrlock; break;
563
+ case "Caps": this.VKI_shift = 0; this.VKI_shiftlock = !this.VKI_shiftlock; break;
564
+ case "Shift": this.VKI_shift = !this.VKI_shift; break;
565
+ } var vchar = 0;
566
+ if (!this.VKI_shift != !this.VKI_shiftlock) vchar += 1;
567
+ if (!this.VKI_altgr != !this.VKI_altgrlock) vchar += 2;
568
+
569
+ var tables = this.VKI_keyboard.tBodies[0].getElementsByTagName('div')[0].getElementsByTagName('table');
570
+ for (var x = 0; x < tables.length; x++) {
571
+ var tds = tables[x].getElementsByTagName('td');
572
+ for (var y = 0; y < tds.length; y++) {
573
+ var className = [], lkey = this.VKI_layout[this.VKI_kt].keys[x][y];
574
+
575
+ switch (lkey[1]) {
576
+ case "Alt":
577
+ case "AltGr":
578
+ if (this.VKI_altgr) className.push("pressed");
579
+ break;
580
+ case "AltLk":
581
+ if (this.VKI_altgrlock) className.push("pressed");
582
+ break;
583
+ case "Shift":
584
+ if (this.VKI_shift) className.push("pressed");
585
+ break;
586
+ case "Caps":
587
+ if (this.VKI_shiftlock) className.push("pressed");
588
+ break;
589
+ case "Tab": case "Enter": case "Bksp": break;
590
+ default:
591
+ if (type) {
592
+ tds[y].removeChild(tds[y].firstChild);
593
+ if (this.VKI_symbol[lkey[vchar]]) {
594
+ var text = this.VKI_symbol[lkey[vchar]].split("\n");
595
+ var small = document.createElement('small');
596
+ small.setAttribute('char', lkey[vchar]);
597
+ for (var z = 0; z < text.length; z++) {
598
+ if (z) small.appendChild(document.createElement("br"));
599
+ small.appendChild(document.createTextNode(text[z]));
600
+ } tds[y].appendChild(small);
601
+ } else tds[y].appendChild(document.createTextNode(lkey[vchar] || "\xa0"));
602
+ }
603
+ if (this.VKI_deadkeysOn.checked) {
604
+ var character = tds[y].firstChild.nodeValue || tds[y].firstChild.className;
605
+ if (this.VKI_dead) {
606
+ if (character == this.VKI_dead) className.push("pressed");
607
+ if (this.VKI_deadkey[this.VKI_dead][character]) className.push("target");
608
+ }
609
+ if (this.VKI_deadkey[character]) className.push("deadkey");
610
+ }
611
+ }
612
+
613
+ if (y == tds.length - 1 && tds.length > this.VKI_keyCenter) className.push("last");
614
+ if (lkey[0] == " " || lkey[1] == " ") className.push("space");
615
+ tds[y].className = className.join(" ");
616
+ }
617
+ }
618
+ };
619
+
620
+
621
+ /* ****************************************************************
622
+ * Insert text at the cursor
623
+ *
624
+ */
625
+ this.VKI_insert = function(text) {
626
+ this.VKI_target.focus();
627
+ if (this.VKI_target.maxLength) this.VKI_target.maxlength = this.VKI_target.maxLength;
628
+ if (typeof this.VKI_target.maxlength == "undefined" ||
629
+ this.VKI_target.maxlength < 0 ||
630
+ this.VKI_target.value.length < this.VKI_target.maxlength) {
631
+ if (this.VKI_target.setSelectionRange && !this.VKI_target.readOnly && !this.VKI_isIE) {
632
+ var rng = [this.VKI_target.selectionStart, this.VKI_target.selectionEnd];
633
+ this.VKI_target.value = this.VKI_target.value.substr(0, rng[0]) + text + this.VKI_target.value.substr(rng[1]);
634
+ if (text == "\n" && this.VKI_isOpera) rng[0]++;
635
+ this.VKI_target.setSelectionRange(rng[0] + text.length, rng[0] + text.length);
636
+ } else if (this.VKI_target.createTextRange && !this.VKI_target.readOnly) {
637
+ try {
638
+ this.VKI_target.range.select();
639
+ } catch(e) { this.VKI_target.range = document.selection.createRange(); }
640
+ this.VKI_target.range.text = text;
641
+ this.VKI_target.range.collapse(true);
642
+ this.VKI_target.range.select();
643
+ } else this.VKI_target.value += text;
644
+ if (this.VKI_shift) this.VKI_modify("Shift");
645
+ if (this.VKI_altgr) this.VKI_modify("AltGr");
646
+ this.VKI_target.focus();
647
+ } else if (this.VKI_target.createTextRange && this.VKI_target.range)
648
+ this.VKI_target.range.select();
649
+ };
650
+
651
+
652
+ /* ****************************************************************
653
+ * Show the keyboard interface
654
+ *
655
+ */
656
+ this.VKI_show = function(elem) {
657
+ if (!this.VKI_target) {
658
+ this.VKI_target = elem;
659
+ if (this.VKI_langAdapt && this.VKI_target.lang) {
660
+ var chg = false, sub = [], lang = this.VKI_target.lang.toLowerCase().replace(/-/g, "_");
661
+ for (var x = 0, chg = false; !chg && x < this.VKI_langCode.index.length; x++)
662
+ if (lang.indexOf(this.VKI_langCode.index[x]) == 0)
663
+ chg = kbSelect.firstChild.nodeValue = this.VKI_kt = this.VKI_langCode[this.VKI_langCode.index[x]];
664
+ if (chg) this.VKI_buildKeys();
665
+ }
666
+ if (this.VKI_isIE) {
667
+ if (!this.VKI_target.range) {
668
+ this.VKI_target.range = this.VKI_target.createTextRange();
669
+ this.VKI_target.range.moveStart('character', this.VKI_target.value.length);
670
+ } this.VKI_target.range.select();
671
+ }
672
+ try { this.VKI_keyboard.parentNode.removeChild(this.VKI_keyboard); } catch (e) {}
673
+ if (this.VKI_clearPasswords && this.VKI_target.type == "password") this.VKI_target.value = "";
674
+
675
+ var elem = this.VKI_target;
676
+ this.VKI_target.keyboardPosition = "absolute";
677
+ do {
678
+ if (VKI_getStyle(elem, "position") == "fixed") {
679
+ this.VKI_target.keyboardPosition = "fixed";
680
+ break;
681
+ }
682
+ } while (elem = elem.offsetParent);
683
+
684
+ if (this.VKI_isIE6) document.body.appendChild(this.VKI_iframe);
685
+ document.body.appendChild(this.VKI_keyboard);
686
+ this.VKI_keyboard.style.position = this.VKI_target.keyboardPosition;
687
+ if (this.VKI_isOpera) this.VKI_keyboard.reflow();
688
+
689
+ this.VKI_position(true);
690
+ if (self.VKI_isMoz || self.VKI_isWebKit) this.VKI_position(true);
691
+ this.VKI_target.blur();
692
+ this.VKI_target.focus();
693
+ } else this.VKI_close();
694
+ };
695
+
696
+
697
+ /* ****************************************************************
698
+ * Position the keyboard
699
+ *
700
+ */
701
+ this.VKI_position = function(force) {
702
+ if (self.VKI_target) {
703
+ var kPos = VKI_findPos(self.VKI_keyboard), wDim = VKI_innerDimensions(), sDis = VKI_scrollDist();
704
+ var place = false, fudge = self.VKI_target.offsetHeight + 3;
705
+ if (force !== true) {
706
+ if (kPos[1] + self.VKI_keyboard.offsetHeight - sDis[1] - wDim[1] > 0) {
707
+ place = true;
708
+ fudge = -self.VKI_keyboard.offsetHeight - 3;
709
+ } else if (kPos[1] - sDis[1] < 0) place = true;
710
+ }
711
+ if (place || force === true) {
712
+ var iPos = VKI_findPos(self.VKI_target), scr = self.VKI_target;
713
+ while (scr = scr.parentNode) {
714
+ if (scr == document.body) break;
715
+ if (scr.scrollHeight > scr.offsetHeight || scr.scrollWidth > scr.offsetWidth) {
716
+ if (!scr.getAttribute("VKI_scrollListener")) {
717
+ scr.setAttribute("VKI_scrollListener", true);
718
+ VKI_addListener(scr, 'scroll', function() { self.VKI_position(true); }, false);
719
+ } // Check if the input is in view
720
+ var pPos = VKI_findPos(scr), oTop = iPos[1] - pPos[1], oLeft = iPos[0] - pPos[0];
721
+ var top = oTop + self.VKI_target.offsetHeight;
722
+ var left = oLeft + self.VKI_target.offsetWidth;
723
+ var bottom = scr.offsetHeight - oTop - self.VKI_target.offsetHeight;
724
+ var right = scr.offsetWidth - oLeft - self.VKI_target.offsetWidth;
725
+ self.VKI_keyboard.style.display = (top < 0 || left < 0 || bottom < 0 || right < 0) ? "none" : "";
726
+ if (self.VKI_isIE6) self.VKI_iframe.style.display = (top < 0 || left < 0 || bottom < 0 || right < 0) ? "none" : "";
727
+ }
728
+ }
729
+ self.VKI_keyboard.style.top = iPos[1] - ((self.VKI_target.keyboardPosition == "fixed" && !self.VKI_isIE && !self.VKI_isMoz) ? sDis[1] : 0) + fudge + "px";
730
+ self.VKI_keyboard.style.left = Math.max(10, Math.min(wDim[0] - self.VKI_keyboard.offsetWidth - 25, iPos[0])) + "px";
731
+ if (self.VKI_isIE6) {
732
+ self.VKI_iframe.style.width = self.VKI_keyboard.offsetWidth + "px";
733
+ self.VKI_iframe.style.height = self.VKI_keyboard.offsetHeight + "px";
734
+ self.VKI_iframe.style.top = self.VKI_keyboard.style.top;
735
+ self.VKI_iframe.style.left = self.VKI_keyboard.style.left;
736
+ }
737
+ }
738
+ if (force === true) self.VKI_position();
739
+ }
740
+ };
741
+
742
+
743
+ /* ****************************************************************
744
+ * Close the keyboard interface
745
+ *
746
+ */
747
+ this.VKI_close = VKI_close = function() {
748
+ if (this.VKI_target) {
749
+ try {
750
+ this.VKI_keyboard.parentNode.removeChild(this.VKI_keyboard);
751
+ if (this.VKI_isIE6) this.VKI_iframe.parentNode.removeChild(this.VKI_iframe);
752
+ } catch (e) {}
753
+ if (this.VKI_kt != this.VKI_kts) {
754
+ kbSelect.firstChild.nodeValue = this.VKI_kt = this.VKI_kts;
755
+ this.VKI_buildKeys();
756
+ } kbSelect.getElementsByTagName('ol')[0].style.display = "";;
757
+ this.VKI_target.focus();
758
+ if (this.VKI_isIE) {
759
+ setTimeout(function() { self.VKI_target = false; }, 0);
760
+ } else this.VKI_target = false;
761
+ }
762
+ };
763
+
764
+
765
+ /* ***** Private functions *************************************** */
766
+ function VKI_addListener(elem, type, func, cap) {
767
+ if (elem.addEventListener) {
768
+ elem.addEventListener(type, function(e) { func.call(elem, e); }, cap);
769
+ } else if (elem.attachEvent)
770
+ elem.attachEvent('on' + type, function() { func.call(elem); });
771
+ }
772
+
773
+ function VKI_findPos(obj) {
774
+ var curleft = curtop = 0, scr = obj;
775
+ while ((scr = scr.parentNode) && scr != document.body) {
776
+ curleft -= scr.scrollLeft || 0;
777
+ curtop -= scr.scrollTop || 0;
778
+ }
779
+ do {
780
+ curleft += obj.offsetLeft;
781
+ curtop += obj.offsetTop;
782
+ } while (obj = obj.offsetParent);
783
+ return [curleft, curtop];
784
+ }
785
+
786
+ function VKI_innerDimensions() {
787
+ if (self.innerHeight) {
788
+ return [self.innerWidth, self.innerHeight];
789
+ } else if (document.documentElement && document.documentElement.clientHeight) {
790
+ return [document.documentElement.clientWidth, document.documentElement.clientHeight];
791
+ } else if (document.body)
792
+ return [document.body.clientWidth, document.body.clientHeight];
793
+ return [0, 0];
794
+ }
795
+
796
+ function VKI_scrollDist() {
797
+ var html = document.getElementsByTagName('html')[0];
798
+ if (html.scrollTop && document.documentElement.scrollTop) {
799
+ return [html.scrollLeft, html.scrollTop];
800
+ } else if (html.scrollTop || document.documentElement.scrollTop) {
801
+ return [html.scrollLeft + document.documentElement.scrollLeft, html.scrollTop + document.documentElement.scrollTop];
802
+ } else if (document.body.scrollTop)
803
+ return [document.body.scrollLeft, document.body.scrollTop];
804
+ return [0, 0];
805
+ }
806
+
807
+ function VKI_getStyle(obj, styleProp) {
808
+ if (obj.currentStyle) {
809
+ var y = obj.currentStyle[styleProp];
810
+ } else if (window.getComputedStyle)
811
+ var y = window.getComputedStyle(obj, null)[styleProp];
812
+ return y;
813
+ }
814
+
815
+
816
+ VKI_addListener(window, 'resize', this.VKI_position, false);
817
+ VKI_addListener(window, 'scroll', this.VKI_position, false);
818
+ this.VKI_kbsize();
819
+ VKI_addListener(window, 'load', VKI_buildkeybs, false);
820
+ // VKI_addListener(window, 'load', function() {
821
+ // setTimeout(VKI_buildkeybs, 5);
822
+ // }, false);
823
+ })();
include/wp-session.php CHANGED
@@ -85,6 +85,7 @@ $this->exp_variant = time() + (int) apply_filters( 'wp_session_expiration_varian
85
  $this->expires = time() + (int) apply_filters( 'wp_session_expiration', 30 * 60 );
86
  }
87
  protected function set_cookie(){
 
88
  setcookie(WP_SESSION_COOKIE,$this->session_id.'||'.$this->expires.'||'.$this->exp_variant,$this->expires,COOKIEPATH,COOKIE_DOMAIN );
89
  }
90
  protected function generate_id() {
85
  $this->expires = time() + (int) apply_filters( 'wp_session_expiration', 30 * 60 );
86
  }
87
  protected function set_cookie(){
88
+ if( !headers_sent() )
89
  setcookie(WP_SESSION_COOKIE,$this->session_id.'||'.$this->expires.'||'.$this->exp_variant,$this->expires,COOKIEPATH,COOKIE_DOMAIN );
90
  }
91
  protected function generate_id() {
languages/gravityforms1.9/fa_IR.mo ADDED
Binary file
languages/gravityformsquantitylimits/fa_IR.mo ADDED
Binary file
languages/gravityformsstickylist/fa_IR.mo CHANGED
Binary file
languages/gravityformssurvey/fa_IR.mo CHANGED
Binary file
readme.txt CHANGED
@@ -4,7 +4,7 @@ Tags: gravityforms,gravity forms,persian gravity forms,persian gravityforms,grav
4
  Donate link: http://www.gravityforms.ir
5
  Requires at least: 3.5
6
  Tested up to: 4.1
7
- Stable tag: 1.3.2
8
  License: GPL 2
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
  This WordPress plugin extends the Gravity Forms plugin and its addons with the Persian language .
@@ -83,6 +83,12 @@ You can read complete documentations on the [GravityForms.ir](http://www.Gravity
83
  19. Iranian National Code field Advanced setting
84
 
85
  == Changelog ==
 
 
 
 
 
 
86
  = 1.3.2 =
87
  * Fixed : Some Minor bugs
88
  = 1.3.1 =
@@ -120,6 +126,12 @@ You can read complete documentations on the [GravityForms.ir](http://www.Gravity
120
  * First version
121
 
122
  == Upgrade Notice ==
 
 
 
 
 
 
123
  = 1.3.2 =
124
  * Fixed : Some Minor bugs
125
  = 1.3.1 =
4
  Donate link: http://www.gravityforms.ir
5
  Requires at least: 3.5
6
  Tested up to: 4.1
7
+ Stable tag: 1.4.0
8
  License: GPL 2
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
  This WordPress plugin extends the Gravity Forms plugin and its addons with the Persian language .
83
  19. Iranian National Code field Advanced setting
84
 
85
  == Changelog ==
86
+ = 1.4.0 =
87
+ * compatible with version 1.9
88
+ * compatible with noconflict mode
89
+ * added plugin translation
90
+ * update translation file
91
+ * Fixed : wp_session fatal error
92
  = 1.3.2 =
93
  * Fixed : Some Minor bugs
94
  = 1.3.1 =
126
  * First version
127
 
128
  == Upgrade Notice ==
129
+ = 1.4.0 =
130
+ * compatible with version 1.9
131
+ * compatible with noconflict mode
132
+ * added plugin translation
133
+ * update translation file
134
+ * Fixed : wp_session fatal error
135
  = 1.3.2 =
136
  * Fixed : Some Minor bugs
137
  = 1.3.1 =