/**
 * Handles loading of all geodirectory javascripts and its dependencies.
 *
 * @since 1.0.0
 * @package GeoDirectory
 */
function geodir_templates_scripts()
{
    $is_detail_page = false;
    if (is_single() && geodir_is_geodir_page() || is_page() && geodir_is_page('preview')) {
        $is_detail_page = true;
    }
    wp_enqueue_script('jquery');
    wp_register_script('geodirectory-script', geodir_plugin_url() . '/geodirectory-assets/js/geodirectory.min.js#asyncload', array(), GEODIRECTORY_VERSION);
    wp_enqueue_script('geodirectory-script');
    $geodir_vars_data = array('siteurl' => get_option('siteurl'), 'geodir_plugin_url' => geodir_plugin_url(), 'geodir_ajax_url' => geodir_get_ajax_url(), 'geodir_gd_modal' => (int) get_option('geodir_disable_gb_modal'), 'is_rtl' => is_rtl() ? 1 : 0);
    /**
     * Filter the `geodir_var` data array that outputs the  wp_localize_script() translations and variables.
     *
     * This is used by addons to add JS translatable variables.
     *
     * @since 1.4.4
     * @param array $geodir_vars_data {
     *    geodir var data used by addons to add JS translatable variables.
     *
     *    @type string $siteurl Site url.
     *    @type string $geodir_plugin_url Geodirectory core plugin url.
     *    @type string $geodir_ajax_url Geodirectory plugin ajax url.
     *    @type int $geodir_gd_modal Disable GD modal that displays slideshow images in popup?.
     *    @type int $is_rtl Checks if current locale is RTL.
     *
     * }
     */
    $geodir_vars_data = apply_filters('geodir_vars_data', $geodir_vars_data);
    wp_localize_script('geodirectory-script', 'geodir_var', $geodir_vars_data);
    wp_register_script('geodirectory-jquery-flexslider-js', geodir_plugin_url() . '/geodirectory-assets/js/jquery.flexslider.min.js', array(), GEODIRECTORY_VERSION, true);
    if ($is_detail_page) {
        wp_enqueue_script('geodirectory-jquery-flexslider-js');
    }
    wp_register_script('geodirectory-lightbox-jquery', geodir_plugin_url() . '/geodirectory-assets/js/jquery.lightbox-0.5.min.js', array(), GEODIRECTORY_VERSION, true);
    wp_enqueue_script('geodirectory-lightbox-jquery');
    wp_register_script('geodirectory-jquery-simplemodal', geodir_plugin_url() . '/geodirectory-assets/js/jquery.simplemodal.min.js', array(), GEODIRECTORY_VERSION, true);
    if ($is_detail_page) {
        wp_enqueue_script('geodirectory-jquery-simplemodal');
    }
    //if( get_option('geodir_enqueue_google_api_script')==1)
    $map_lang = "&language=" . geodir_get_map_default_language();
    /**
     * Filter the variables that are added to the end of the google maps script call.
     *
     * This i used to change things like google maps language etc.
     *
     * @since 1.0.0
     * @param string $var The string to filter, default is empty string.
     */
    $map_extra = apply_filters('geodir_googlemap_script_extra', '');
    wp_enqueue_script('geodirectory-googlemap-script', '//maps.google.com/maps/api/js?' . $map_lang . $map_extra, '', NULL);
    /*	{
           wp_register_script( 'geodirectory-googlemap-script', "//maps.google.com/maps/api/js?sensor=false&language=en" );
           wp_enqueue_script( 'geodirectory-googlemap-script' );
          }
       */
    wp_register_script('geodirectory-goMap-script', geodir_plugin_url() . '/geodirectory-assets/js/goMap.min.js', array(), GEODIRECTORY_VERSION, true);
    wp_enqueue_script('geodirectory-goMap-script');
    wp_register_script('chosen', geodir_plugin_url() . '/geodirectory-assets/js/chosen.jquery.min.js', array(), GEODIRECTORY_VERSION);
    wp_enqueue_script('chosen');
    wp_register_script('geodirectory-choose-ajax', geodir_plugin_url() . '/geodirectory-assets/js/ajax-chosen.min.js', array(), GEODIRECTORY_VERSION);
    wp_enqueue_script('geodirectory-choose-ajax');
    wp_enqueue_script('geodirectory-jquery-ui-timepicker-js', geodir_plugin_url() . '/geodirectory-assets/js/jquery.ui.timepicker.min.js#asyncload', array('jquery-ui-datepicker', 'jquery-ui-slider', 'jquery-effects-core', 'jquery-effects-slide'), '', true);
    if (is_page() && geodir_is_page('add-listing')) {
        // SCRIPT FOR UPLOAD
        wp_enqueue_script('plupload-all');
        wp_enqueue_script('jquery-ui-sortable');
        wp_register_script('geodirectory-plupload-script', geodir_plugin_url() . '/geodirectory-assets/js/geodirectory-plupload.min.js#asyncload', array(), GEODIRECTORY_VERSION, true);
        wp_enqueue_script('geodirectory-plupload-script');
        // SCRIPT FOR UPLOAD END
        // check_ajax_referer function is used to make sure no files are uplaoded remotly but it will fail if used between https and non https so we do the check below of the urls
        if (str_replace("https", "http", admin_url('admin-ajax.php')) && !empty($_SERVER['HTTPS'])) {
            $ajax_url = admin_url('admin-ajax.php');
        } elseif (!str_replace("https", "http", admin_url('admin-ajax.php')) && empty($_SERVER['HTTPS'])) {
            $ajax_url = admin_url('admin-ajax.php');
        } elseif (str_replace("https", "http", admin_url('admin-ajax.php')) && empty($_SERVER['HTTPS'])) {
            $ajax_url = str_replace("https", "http", admin_url('admin-ajax.php'));
        } elseif (!str_replace("https", "http", admin_url('admin-ajax.php')) && !empty($_SERVER['HTTPS'])) {
            $ajax_url = str_replace("http", "https", admin_url('admin-ajax.php'));
        }
        // place js config array for plupload
        $plupload_init = array('runtimes' => 'html5,silverlight,flash,browserplus,gears,html4', 'browse_button' => 'plupload-browse-button', 'container' => 'plupload-upload-ui', 'drop_element' => 'dropbox', 'file_data_name' => 'async-upload', 'multiple_queues' => true, 'max_file_size' => geodir_max_upload_size(), 'url' => $ajax_url, 'flash_swf_url' => includes_url('js/plupload/plupload.flash.swf'), 'silverlight_xap_url' => includes_url('js/plupload/plupload.silverlight.xap'), 'filters' => array(array('title' => __('Allowed Files', 'geodirectory'), 'extensions' => '*')), 'multipart' => true, 'urlstream_upload' => true, 'multi_selection' => false, 'multipart_params' => array('_ajax_nonce' => "", 'action' => 'plupload_action', 'imgid' => 0));
        $base_plupload_config = json_encode($plupload_init);
        $gd_plupload_init = array('base_plupload_config' => $base_plupload_config, 'upload_img_size' => geodir_max_upload_size());
        wp_localize_script('geodirectory-plupload-script', 'gd_plupload', $gd_plupload_init);
        wp_enqueue_script('geodirectory-listing-validation-script', geodir_plugin_url() . '/geodirectory-assets/js/listing_validation.min.js#asyncload');
    }
    // End if for add place page
    wp_register_script('geodirectory-post-custom-js', geodir_plugin_url() . '/geodirectory-assets/js/post.custom.min.js#asyncload', array(), GEODIRECTORY_VERSION, true);
    if ($is_detail_page) {
        wp_enqueue_script('geodirectory-post-custom-js');
    }
    wp_register_script('geodir-jRating-js', geodir_plugin_url() . '/geodirectory-assets/js/jRating.jquery.min.js', array(), GEODIRECTORY_VERSION, true);
    wp_enqueue_script('geodir-jRating-js');
    wp_register_script('geodir-on-document-load', geodir_plugin_url() . '/geodirectory-assets/js/on_document_load.js#asyncload', array(), GEODIRECTORY_VERSION, true);
    wp_enqueue_script('geodir-on-document-load');
    wp_register_script('google-geometa', geodir_plugin_url() . '/geodirectory-assets/js/geometa.min.js#asyncload', array(), GEODIRECTORY_VERSION, true);
    wp_enqueue_script('google-geometa');
}
 /**
  * Enqueue Admin Scripts.
  *
  * @since 1.0.0
  * @package GeoDirectory
  */
 function geodir_admin_scripts()
 {
     wp_enqueue_script('jquery');
     /*wp_enqueue_script( 'jquery-ui-core' );
       wp_enqueue_script( 'jquery-ui-datepicker' );
       wp_enqueue_script('jquery-ui-slider'); */
     wp_enqueue_script('geodirectory-jquery-ui-timepicker-js', geodir_plugin_url() . '/geodirectory-assets/js/jquery.ui.timepicker.js', array('jquery-ui-datepicker', 'jquery-ui-slider'), '', true);
     wp_register_script('chosen', geodir_plugin_url() . '/geodirectory-assets/js/chosen.jquery.js', array(), GEODIRECTORY_VERSION);
     wp_enqueue_script('chosen');
     wp_register_script('geodirectory-choose-ajax', geodir_plugin_url() . '/geodirectory-assets/js/ajax-chosen.js', array(), GEODIRECTORY_VERSION);
     wp_enqueue_script('geodirectory-choose-ajax');
     if (isset($_REQUEST['listing_type'])) {
         wp_register_script('geodirectory-custom-fields-script', geodir_plugin_url() . '/geodirectory-assets/js/custom_fields.js', array(), GEODIRECTORY_VERSION);
     }
     wp_enqueue_script('geodirectory-custom-fields-script');
     $plugin_path = geodir_plugin_url() . '/geodirectory-functions/cat-meta-functions';
     wp_enqueue_script('tax-meta-clss', $plugin_path . '/js/tax-meta-clss.js', array('jquery'), null, true);
     $map_lang = "&language=" . geodir_get_map_default_language();
     /** This filter is documented in geodirectory_template_tags.php */
     $map_extra = apply_filters('geodir_googlemap_script_extra', '');
     wp_enqueue_script('geodirectory-googlemap-script', '//maps.google.com/maps/api/js?sensor=false' . $map_lang . $map_extra, '', NULL);
     wp_register_script('geodirectory-goMap-script', geodir_plugin_url() . '/geodirectory-assets/js/goMap.js', array(), GEODIRECTORY_VERSION);
     wp_enqueue_script('geodirectory-goMap-script');
     wp_register_script('geodir-jRating-js', geodir_plugin_url() . '/geodirectory-assets/js/jRating.jquery.js', array(), GEODIRECTORY_VERSION);
     wp_enqueue_script('geodir-jRating-js');
     wp_register_script('geodir-on-document-load', geodir_plugin_url() . '/geodirectory-assets/js/on_document_load.js', array(), GEODIRECTORY_VERSION);
     wp_enqueue_script('geodir-on-document-load');
     // SCRIPT FOR UPLOAD
     wp_enqueue_script('plupload-all');
     wp_enqueue_script('jquery-ui-sortable');
     wp_register_script('geodirectory-plupload-script', geodir_plugin_url() . '/geodirectory-assets/js/geodirectory-plupload.js', array(), GEODIRECTORY_VERSION);
     wp_enqueue_script('geodirectory-plupload-script');
     // SCRIPT FOR UPLOAD END
     // place js config array for plupload
     $plupload_init = array('runtimes' => 'html5,silverlight,flash,html4', 'browse_button' => 'plupload-browse-button', 'container' => 'plupload-upload-ui', 'drop_element' => 'dropbox', 'file_data_name' => 'async-upload', 'multiple_queues' => true, 'max_file_size' => geodir_max_upload_size(), 'url' => admin_url('admin-ajax.php'), 'flash_swf_url' => includes_url('js/plupload/plupload.flash.swf'), 'silverlight_xap_url' => includes_url('js/plupload/plupload.silverlight.xap'), 'filters' => array(array('title' => __('Allowed Files', GEODIRECTORY_TEXTDOMAIN), 'extensions' => '*')), 'multipart' => true, 'urlstream_upload' => true, 'multi_selection' => false, 'multipart_params' => array('_ajax_nonce' => "", 'action' => 'plupload_action', 'imgid' => 0));
     $base_plupload_config = json_encode($plupload_init);
     $thumb_img_arr = array();
     if (isset($_REQUEST['pid']) && $_REQUEST['pid'] != '') {
         $thumb_img_arr = geodir_get_images($_REQUEST['pid']);
     }
     $totImg = '';
     $image_limit = '';
     if (!empty($thumb_img_arr)) {
         foreach ($thumb_img_arr as $img) {
             $curImages = $img->src . ",";
         }
         $totImg = count($thumb_img_arr);
     }
     $gd_plupload_init = array('base_plupload_config' => $base_plupload_config, 'totalImg' => $totImg, 'image_limit' => $image_limit, 'upload_img_size' => geodir_max_upload_size());
     wp_localize_script('geodirectory-plupload-script', 'gd_plupload', $gd_plupload_init);
     $ajax_cons_data = array('url' => __(admin_url('admin-ajax.php')));
     wp_localize_script('geodirectory-custom-fields-script', 'geodir_admin_ajax', $ajax_cons_data);
     wp_register_script('geodirectory-admin-script', geodir_plugin_url() . '/geodirectory-assets/js/admin.js', array(), GEODIRECTORY_VERSION);
     wp_enqueue_script('geodirectory-admin-script');
     wp_enqueue_style('farbtastic');
     wp_enqueue_script('farbtastic');
     $screen = get_current_screen();
     if ($screen->base == 'post' && in_array($screen->post_type, geodir_get_posttypes())) {
         wp_enqueue_script('geodirectory-listing-validation-script', geodir_plugin_url() . '/geodirectory-assets/js/listing_validation_admin.js');
     }
     $ajax_cons_data = array('url' => __(get_option('siteurl') . '?geodir_ajax=true'));
     wp_localize_script('geodirectory-admin-script', 'geodir_ajax', $ajax_cons_data);
 }