<?php
/**
 * Twenty Twelve functions and definitions
 *
 * Sets up the theme and provides some helper functions, which are used
 * in the theme as custom template tags. Others are attached to action and
 * filter hooks in WordPress to change core functionality.
 *
 * When using a child theme (see http://codex.wordpress.org/Theme_Development and
 * http://codex.wordpress.org/Child_Themes), you can override certain functions
 * (those wrapped in a function_exists() call) by defining them first in your child theme's
 * functions.php file. The child theme's functions.php file is included before the parent
 * theme's file, so the child theme functions would be used.
 *
 * Functions that are not pluggable (not wrapped in function_exists()) are instead attached
 * to a filter or action hook.
 *
 * For more information on hooks, actions, and filters, @link http://codex.wordpress.org/Plugin_API
 *
 * @package WordPress
 * @subpackage Twenty_Twelve
 * @since Twenty Twelve 1.0
 */

// Set up the content width value based on the theme's design and stylesheet.
if (!isset($content_width))
    $content_width = 625;

/**
 * Twenty Twelve setup.
 *
 * Sets up theme defaults and registers the various WordPress features that
 * Twenty Twelve supports.
 *
 * @uses load_theme_textdomain() For translation/localization support.
 * @uses add_editor_style() To add a Visual Editor stylesheet.
 * @uses add_theme_support() To add support for post thumbnails, automatic feed links,
 *    custom background, and post formats.
 * @uses register_nav_menu() To add support for navigation menus.
 * @uses set_post_thumbnail_size() To set a custom post thumbnail size.
 *
 * @since Twenty Twelve 1.0
 */
function twentytwelve_setup()
{
    /*
     * Makes Twenty Twelve available for translation.
     *
     * Translations can be added to the /languages/ directory.
     * If you're building a theme based on Twenty Twelve, use a find and replace
     * to change 'twentytwelve' to the name of your theme in all the template files.
     */
    load_theme_textdomain('twentytwelve', get_template_directory() . '/languages');

    // This theme styles the visual editor with editor-style.css to match the theme style.
    add_editor_style();

    // Adds RSS feed links to <head> for posts and comments.
    add_theme_support('automatic-feed-links');

    // This theme supports a variety of post formats.
    add_theme_support('post-formats', array('aside', 'image', 'link', 'quote', 'status'));

    // This theme uses wp_nav_menu() in one location.
    register_nav_menu('primary', __('Primary Menu', 'twentytwelve'));

    /*
     * This theme supports custom background color and image,
     * and here we also set up the default background color.
     */
    add_theme_support('custom-background', array(
        'default-color' => 'e6e6e6',
    ));

    // This theme uses a custom image size for featured images, displayed on "standard" posts.
    add_theme_support('post-thumbnails');
    set_post_thumbnail_size(624, 9999); // Unlimited height, soft crop
}

add_action('after_setup_theme', 'twentytwelve_setup');

/**
 * Add support for a custom header image.
 */
require(get_template_directory() . '/inc/custom-header.php');

/**
 * Return the Google font stylesheet URL if available.
 *
 * The use of Open Sans by default is localized. For languages that use
 * characters not supported by the font, the font can be disabled.
 *
 * @since Twenty Twelve 1.2
 *
 * @return string Font stylesheet or empty string if disabled.
 */
function twentytwelve_get_font_url()
{
    $font_url = '';

    /* translators: If there are characters in your language that are not supported
     * by Open Sans, translate this to 'off'. Do not translate into your own language.
     */
    if ('off' !== _x('on', 'Open Sans font: on or off', 'twentytwelve')) {
        $subsets = 'latin,latin-ext';

        /* translators: To add an additional Open Sans character subset specific to your language,
         * translate this to 'greek', 'cyrillic' or 'vietnamese'. Do not translate into your own language.
         */
        $subset = _x('no-subset', 'Open Sans font: add new subset (greek, cyrillic, vietnamese)', 'twentytwelve');

        if ('cyrillic' == $subset)
            $subsets .= ',cyrillic,cyrillic-ext';
        elseif ('greek' == $subset)
            $subsets .= ',greek,greek-ext';
        elseif ('vietnamese' == $subset)
            $subsets .= ',vietnamese';

        $protocol = is_ssl() ? 'https' : 'http';
        $query_args = array(
            'family' => 'Open+Sans:400italic,700italic,400,700',
            'subset' => $subsets,
        );
        $font_url = add_query_arg($query_args, "$protocol://fonts.googleapis.com/css");
    }

    return $font_url;
}

/**
 * Enqueue scripts and styles for front-end.
 *
 * @since Twenty Twelve 1.0
 */
function twentytwelve_scripts_styles()
{
    global $wp_styles;

    /*
     * Adds JavaScript to pages with the comment form to support
     * sites with threaded comments (when in use).
     */
    if (is_singular() && comments_open() && get_option('thread_comments'))
        wp_enqueue_script('comment-reply');

    // Adds JavaScript for handling the navigation menu hide-and-show behavior.
    wp_enqueue_script('twentytwelve-navigation', get_template_directory_uri() . '/js/navigation.js', array('jquery'), '20140318', true);

    $font_url = twentytwelve_get_font_url();
    if (!empty($font_url))
        wp_enqueue_style('twentytwelve-fonts', esc_url_raw($font_url), array(), null);

    // Loads our main stylesheet.
    wp_enqueue_style('twentytwelve-style', get_stylesheet_uri());

    // Loads the Internet Explorer specific stylesheet.
    wp_enqueue_style('twentytwelve-ie', get_template_directory_uri() . '/css/ie.css', array('twentytwelve-style'), '20121010');
    $wp_styles->add_data('twentytwelve-ie', 'conditional', 'lt IE 9');
}

add_action('wp_enqueue_scripts', 'twentytwelve_scripts_styles');

/**
 * Filter TinyMCE CSS path to include Google Fonts.
 *
 * Adds additional stylesheets to the TinyMCE editor if needed.
 *
 * @uses twentytwelve_get_font_url() To get the Google Font stylesheet URL.
 *
 * @since Twenty Twelve 1.2
 *
 * @param string $mce_css CSS path to load in TinyMCE.
 * @return string Filtered CSS path.
 */
function twentytwelve_mce_css($mce_css)
{
    $font_url = twentytwelve_get_font_url();

    if (empty($font_url))
        return $mce_css;

    if (!empty($mce_css))
        $mce_css .= ',';

    $mce_css .= esc_url_raw(str_replace(',', '%2C', $font_url));

    return $mce_css;
}

add_filter('mce_css', 'twentytwelve_mce_css');

/**
 * Filter the page title.
 *
 * Creates a nicely formatted and more specific title element text
 * for output in head of document, based on current view.
 *
 * @since Twenty Twelve 1.0
 *
 * @param string $title Default title text for current view.
 * @param string $sep Optional separator.
 * @return string Filtered title.
 */
function twentytwelve_wp_title($title, $sep)
{
    global $paged, $page, $wp_query;

    if (is_feed())
        return $title;

    if(isset($wp_query->query_vars['ch']) && !empty($wp_query->query_vars['ch'])){
        if(is_numeric($wp_query->query_vars['ch'])){
            $category = get_category_by_slug($wp_query->query_vars['category']);
            $title = $category->name . " Chapter " . $wp_query->query_vars['ch'] . " | ";
        }
    }

    // Add the site name.
    $title .= get_bloginfo('name', 'display');

    // Add the site description for the home/front page.
    $site_description = get_bloginfo('description', 'display');
    if ($site_description && (is_home() || is_front_page()))
        $title = "$title $sep $site_description";

    // Add a page number if necessary.
    if ($paged >= 2 || $page >= 2)
        $title = "$title $sep " . sprintf(__('Page %s', 'twentytwelve'), max($paged, $page));

    return $title;
}

add_filter('wp_title', 'twentytwelve_wp_title', 10, 2);

/**
 * Filter the page menu arguments.
 *
 * Makes our wp_nav_menu() fallback -- wp_page_menu() -- show a home link.
 *
 * @since Twenty Twelve 1.0
 */
function twentytwelve_page_menu_args($args)
{
    if (!isset($args['show_home']))
        $args['show_home'] = true;
    return $args;
}

add_filter('wp_page_menu_args', 'twentytwelve_page_menu_args');

/**
 * Register sidebars.
 *
 * Registers our main widget area and the front page widget areas.
 *
 * @since Twenty Twelve 1.0
 */
function twentytwelve_widgets_init()
{
    register_sidebar(array(
        'name' => __('Main Sidebar', 'twentytwelve'),
        'id' => 'sidebar-1',
        'description' => __('Appears on posts and pages except the optional Front Page template, which has its own widgets', 'twentytwelve'),
        'before_widget' => '<aside id="%1$s" class="widget %2$s">',
        'after_widget' => '</aside>',
        'before_title' => '<h3 class="widget-title">',
        'after_title' => '</h3>',
    ));

    register_sidebar(array(
        'name' => __('First Front Page Widget Area', 'twentytwelve'),
        'id' => 'sidebar-2',
        'description' => __('Appears when using the optional Front Page template with a page set as Static Front Page', 'twentytwelve'),
        'before_widget' => '<aside id="%1$s" class="widget %2$s">',
        'after_widget' => '</aside>',
        'before_title' => '<h3 class="widget-title">',
        'after_title' => '</h3>',
    ));

    register_sidebar(array(
        'name' => __('Second Front Page Widget Area', 'twentytwelve'),
        'id' => 'sidebar-3',
        'description' => __('Appears when using the optional Front Page template with a page set as Static Front Page', 'twentytwelve'),
        'before_widget' => '<aside id="%1$s" class="widget %2$s">',
        'after_widget' => '</aside>',
        'before_title' => '<h3 class="widget-title">',
        'after_title' => '</h3>',
    ));
}

add_action('widgets_init', 'twentytwelve_widgets_init');

if (!function_exists('twentytwelve_content_nav')) :
    /**
     * Displays navigation to next/previous pages when applicable.
     *
     * @since Twenty Twelve 1.0
     */
    function twentytwelve_content_nav($html_id)
    {
        global $wp_query;

        $html_id = esc_attr($html_id);

        if ($wp_query->max_num_pages > 1) : ?>
            <nav id="<?php echo $html_id; ?>" class="navigation" role="navigation">
                <h3 class="assistive-text"><?php _e('Post navigation', 'twentytwelve'); ?></h3>
                <div class="nav-previous"><?php next_posts_link(__('<span class="meta-nav">&larr;</span> Older posts', 'twentytwelve')); ?></div>
                <div class="nav-next"><?php previous_posts_link(__('Newer posts <span class="meta-nav">&rarr;</span>', 'twentytwelve')); ?></div>
            </nav><!-- #<?php echo $html_id; ?> .navigation -->
        <?php endif;
    }
endif;

if (!function_exists('twentytwelve_comment')) :
    /**
     * Template for comments and pingbacks.
     *
     * To override this walker in a child theme without modifying the comments template
     * simply create your own twentytwelve_comment(), and that function will be used instead.
     *
     * Used as a callback by wp_list_comments() for displaying the comments.
     *
     * @since Twenty Twelve 1.0
     */
    function twentytwelve_comment($comment, $args, $depth)
    {
        $GLOBALS['comment'] = $comment;
        switch ($comment->comment_type) :
            case 'pingback' :
            case 'trackback' :
                // Display trackbacks differently than normal comments.
                ?>
                <li <?php comment_class(); ?> id="comment-<?php comment_ID(); ?>">
                <p><?php _e('Pingback:', 'twentytwelve'); ?><?php comment_author_link(); ?><?php edit_comment_link(__('(Edit)', 'twentytwelve'), '<span class="edit-link">', '</span>'); ?></p>
                <?php
                break;
            default :
                // Proceed with normal comments.
                global $post;
                ?>
            <li <?php comment_class(); ?> id="li-comment-<?php comment_ID(); ?>">
                <article id="comment-<?php comment_ID(); ?>" class="comment">
                    <header class="comment-meta comment-author vcard">
                        <?php
                        echo get_avatar($comment, 44);
                        printf('<cite><b class="fn">%1$s</b> %2$s</cite>',
                            get_comment_author_link(),
                            // If current post author is also comment author, make it known visually.
                            ($comment->user_id === $post->post_author) ? '<span>' . __('Post author', 'twentytwelve') . '</span>' : ''
                        );
                        printf('<a href="%1$s"><time datetime="%2$s">%3$s</time></a>',
                            esc_url(get_comment_link($comment->comment_ID)),
                            get_comment_time('c'),
                            /* translators: 1: date, 2: time */
                            sprintf(__('%1$s at %2$s', 'twentytwelve'), get_comment_date(), get_comment_time())
                        );
                        ?>
                    </header><!-- .comment-meta -->

                    <?php if ('0' == $comment->comment_approved) : ?>
                        <p class="comment-awaiting-moderation"><?php _e('Your comment is awaiting moderation.', 'twentytwelve'); ?></p>
                    <?php endif; ?>

                    <section class="comment-content comment">
                        <?php comment_text(); ?>
                        <?php edit_comment_link(__('Edit', 'twentytwelve'), '<p class="edit-link">', '</p>'); ?>
                    </section><!-- .comment-content -->

                    <div class="reply">
                        <?php comment_reply_link(array_merge($args, array('reply_text' => __('Reply', 'twentytwelve'), 'after' => ' <span>&darr;</span>', 'depth' => $depth, 'max_depth' => $args['max_depth']))); ?>
                    </div><!-- .reply -->
                </article><!-- #comment-## -->
                <?php
                break;
        endswitch; // end comment_type check
    }
endif;

if (!function_exists('twentytwelve_entry_meta')) :
    /**
     * Set up post entry meta.
     *
     * Prints HTML with meta information for current post: categories, tags, permalink, author, and date.
     *
     * Create your own twentytwelve_entry_meta() to override in a child theme.
     *
     * @since Twenty Twelve 1.0
     */
    function twentytwelve_entry_meta()
    {
        // Translators: used between list items, there is a space after the comma.
        $categories_list = get_the_category_list(__(', ', 'twentytwelve'));

        // Translators: used between list items, there is a space after the comma.
        $tag_list = get_the_tag_list('', __(', ', 'twentytwelve'));

        $date = sprintf('<a href="%1$s" title="%2$s" rel="bookmark"><time class="entry-date" datetime="%3$s">%4$s</time></a>',
            esc_url(get_permalink()),
            esc_attr(get_the_time()),
            esc_attr(get_the_date('c')),
            esc_html(get_the_date())
        );

        $author = sprintf('<span class="author vcard"><a class="url fn n" href="%1$s" title="%2$s" rel="author">%3$s</a></span>',
            esc_url(get_author_posts_url(get_the_author_meta('ID'))),
            esc_attr(sprintf(__('View all posts by %s', 'twentytwelve'), get_the_author())),
            get_the_author()
        );

        // Translators: 1 is category, 2 is tag, 3 is the date and 4 is the author's name.
        if ($tag_list) {
            $utility_text = __('This entry was posted in %1$s and tagged %2$s on %3$s<span class="by-author"> by %4$s</span>.', 'twentytwelve');
        } elseif ($categories_list) {
            $utility_text = __('This entry was posted in %1$s on %3$s<span class="by-author"> by %4$s</span>.', 'twentytwelve');
        } else {
            $utility_text = __('This entry was posted on %3$s<span class="by-author"> by %4$s</span>.', 'twentytwelve');
        }

        printf(
            $utility_text,
            $categories_list,
            $tag_list,
            $date,
            $author
        );
    }
endif;

/**
 * Extend the default WordPress body classes.
 *
 * Extends the default WordPress body class to denote:
 * 1. Using a full-width layout, when no active widgets in the sidebar
 *    or full-width template.
 * 2. Front Page template: thumbnail in use and number of sidebars for
 *    widget areas.
 * 3. White or empty background color to change the layout and spacing.
 * 4. Custom fonts enabled.
 * 5. Single or multiple authors.
 *
 * @since Twenty Twelve 1.0
 *
 * @param array $classes Existing class values.
 * @return array Filtered class values.
 */
function twentytwelve_body_class($classes)
{
    $background_color = get_background_color();
    $background_image = get_background_image();

    if (!is_active_sidebar('sidebar-1') || is_page_template('page-templates/full-width.php'))
        $classes[] = 'full-width';

    if (is_page_template('page-templates/front-page.php')) {
        $classes[] = 'template-front-page';
        if (has_post_thumbnail())
            $classes[] = 'has-post-thumbnail';
        if (is_active_sidebar('sidebar-2') && is_active_sidebar('sidebar-3'))
            $classes[] = 'two-sidebars';
    }

    if (empty($background_image)) {
        if (empty($background_color))
            $classes[] = 'custom-background-empty';
        elseif (in_array($background_color, array('fff', 'ffffff')))
            $classes[] = 'custom-background-white';
    }

    // Enable custom font class only if the font CSS is queued to load.
    if (wp_style_is('twentytwelve-fonts', 'queue'))
        $classes[] = 'custom-font-enabled';

    if (!is_multi_author())
        $classes[] = 'single-author';

    return $classes;
}

add_filter('body_class', 'twentytwelve_body_class');

/**
 * Adjust content width in certain contexts.
 *
 * Adjusts content_width value for full-width and single image attachment
 * templates, and when there are no active widgets in the sidebar.
 *
 * @since Twenty Twelve 1.0
 */
function twentytwelve_content_width()
{
    if (is_page_template('page-templates/full-width.php') || is_attachment() || !is_active_sidebar('sidebar-1')) {
        global $content_width;
        $content_width = 960;
    }
}

add_action('template_redirect', 'twentytwelve_content_width');

/**
 * Register postMessage support.
 *
 * Add postMessage support for site title and description for the Customizer.
 *
 * @since Twenty Twelve 1.0
 *
 * @param WP_Customize_Manager $wp_customize Customizer object.
 */
function twentytwelve_customize_register($wp_customize)
{
    $wp_customize->get_setting('blogname')->transport = 'postMessage';
    $wp_customize->get_setting('blogdescription')->transport = 'postMessage';
    $wp_customize->get_setting('header_textcolor')->transport = 'postMessage';
}

add_action('customize_register', 'twentytwelve_customize_register');

/**
 * Enqueue Javascript postMessage handlers for the Customizer.
 *
 * Binds JS handlers to make the Customizer preview reload changes asynchronously.
 *
 * @since Twenty Twelve 1.0
 */
function twentytwelve_customize_preview_js()
{
    wp_enqueue_script('twentytwelve-customizer', get_template_directory_uri() . '/js/theme-customizer.js', array('customize-preview'), '20130301', true);
}

add_action('customize_preview_init', 'twentytwelve_customize_preview_js');


/**
 * Adds a box to the main column on the Post and Page edit screens.
 */
function bible_add_meta_box()
{

    $screens = array('post');

    foreach ($screens as $screen) {
        add_meta_box(
            'bible_sectionid',
            __('Chapters', 'bible_chapters'),
            'bible_meta_box_callback',
            $screen,
            'side'
        );
    }
}

add_action('add_meta_boxes', 'bible_add_meta_box');

/**
 * Prints the box content.
 *
 * @param WP_Post $post The object for the current post/page.
 */
function bible_meta_box_callback($post)
{

    // Add a nonce field so we can check for it later.
    wp_nonce_field('bible_save_meta_box_data', 'bible_meta_box_nonce');

    /*
     * Use get_post_meta() to retrieve an existing value
     * from the database and use the value for the form.
     */
    $bible_chapter = get_post_meta($post->ID, 'bible_chapter', true);
    $chapter_value = substr($bible_chapter, (strripos($bible_chapter, "-") + 1));
    echo '<label for="Chapters">';
    _e('Choose Chapter ', 'myplugin_textdomain');
    echo '</label> ';
    echo '<select name="bible_chapter" class="bible-chapter">';
    echo '<option value="">---</option>';
    for ($i = 1; $i < 151; $i++):
        $value = "chapter-" . $i;
        if ($chapter_value == $i):
            $selected = "selected";
        else:
            $selected = "";
        endif;
        echo '<option value="' . $value . '" ' . $selected . '>Chapter-' . $i . '</option>';
    endfor;
    echo '</select>';
}


/**
 * When the post is saved, saves our custom data.
 *
 * @param int $post_id The ID of the post being saved.
 */
function bible_save_meta_box_data($post_id)
{
    error_reporting(0);
    /*
     * We need to verify this came from our screen and with proper authorization,
     * because the save_post action can be triggered at other times.
     */

    // Check if our nonce is set.
    if (!isset($_POST['bible_meta_box_nonce'])) {
        return;
    }

    // Verify that the nonce is valid.
    if (!wp_verify_nonce($_POST['bible_meta_box_nonce'], 'bible_save_meta_box_data')) {
        return;
    }

    // If this is an autosave, our form has not been submitted, so we don't want to do anything.
    if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
        return;
    }

    // Check the user's permissions.
    if (isset($_POST['post_type']) && 'post' == $_POST['post_type']) {

        if (!current_user_can('edit_page', $post_id)) {
            return;
        }

    } else {

        if (!current_user_can('edit_post', $post_id)) {
            return;
        }
    }

    /* OK, it's safe for us to save the data now. */

    // Make sure that it is set.
    if (!isset($_POST['bible_chapter'])) {
        return;
    }

    // Sanitize user input.
    $my_data = sanitize_text_field($_POST['bible_chapter']);
    $post_categories = get_the_category($post_id);
    if ($post_categories[0]->category_parent == 4):
        $post_cat = $post_categories[0]->name;
        $post_catid = $post_categories[0]->term_id;
    else:
        $post_cat = $post_categories[1]->name;
        $post_catid = $post_categories[1]->term_id;
    endif;
    $result = str_replace(" ", "", $post_cat) . "-" . $my_data;
    // Update the meta field in the database.
    global $wpdb;
    $table = $wpdb->prefix . 'chapter';
    $cat = $post_catid;
    update_post_meta($post_id, 'bible_chapter', $result);
    $query = "select id from $table where chapter='" . $result . "'";
    $id_exists = $wpdb->get_var($query);
    if (empty($id_exists)):
        $wpdb->insert(
            $table,
            array(
                'category_id' => $cat,
                'chapter' => $result
            )
        );
    endif;
    wp_reset_query();
    update_post_meta($post_id, 'bible_chapter', $result);
}

add_action('save_post', 'bible_save_meta_box_data');

function get_bible_prev_post($cat, $post_id)
{
    global $wpdb, $arr_cats;
    $query_str = "SELECT object_id FROM $wpdb->term_relationships WHERE `term_taxonomy_id` = $cat AND object_id < $post_id";
    $results = $wpdb->get_results($query_str);
    $prev_id = end($results)->object_id;
    if (empty($prev_id)):
        $index = array_search($cat, $arr_cats);
        if ($index <= 0):
            $prev_id = 0;
        else:
            $prev_id = get_bible_prev_post($arr_cats[--$index], $post_id);
        endif;
    endif;
    wp_reset_query();
    return $prev_id;
}

function get_bible_next_post($cat, $post_id)
{
    global $wpdb, $arr_cats;
    $query_str = "SELECT object_id FROM $wpdb->term_relationships WHERE `term_taxonomy_id` = $cat AND object_id > $post_id";
    $results = $wpdb->get_results($query_str);
    $next_id = current($results)->object_id;
    if (empty($next_id)):
        $index = array_search($cat, $arr_cats);
        if ($index == (sizeof($arr_cats) - 1) || $index < 0):
            $next_id = 0;
        else:
            $next_id = get_bible_next_post($arr_cats[++$index], $post_id);
        endif;
    endif;
    wp_reset_query();
    return $next_id;
}

// function add_rewrite_rules($aRules) {
// $aNewRules = array('(falsehoods|dozen|truth)/([^/]+)/?$' => 'index.php?pagename=$matches[2]');
// $aRules = $aNewRules + $aRules;
// return $aRules;
// }

// add_filter('rewrite_rules_array', 'add_rewrite_rules');


function add_query_vars($aVars)
{
    $aVars[] = "ch";
    $aVars[] = "category";
    return $aVars;
}

// hook add_query_vars function into query_vars
add_filter('query_vars', 'add_query_vars');

flush_rewrite_rules();
function add_rewrite_rules1($aRules)
{
    $aNewRules = array(
        'word/([^/]+)/([^/]*)/?$' => 'index.php?pagename=word&category=$matches[1]&ch=$matches[2]',
        'word/([^/]+)/?$' => 'index.php?pagename=word&category=$matches[1]&ch=$matches[1]'
    );
    $aRules = $aNewRules + $aRules;

    //echo '<pre>';print_r($aRules);exit;
    return $aRules;
}

add_filter('rewrite_rules_array', 'add_rewrite_rules1');


function get_cat_slug($cat_id)
{
    $cat_id = (int)$cat_id;
    $category = &get_category($cat_id);
    return $category->slug;
}

function get_slug_catid($catname)
{
    $category = get_category_by_slug($catname);
    return $category->term_id;
}


function get_parent_bycatslug($catname)
{
    $category = get_category_by_slug($catname);
    return $category->parent;
}

function get_cat_parent($cat_id)
{
    $cat_id = (int)$cat_id;
    $category = &get_category($cat_id);
    return $category->parent;
}

/*
function add_rewrite_rules2($aRules) {

$aNewRules = array('falsehoods/([^/]+)?$' => 'index.php?pagename=falsehoods&category=$matches[1]');
$aRules = $aNewRules + $aRules;
return $aRules;
}
add_filter('rewrite_rules_array', 'add_rewrite_rules2');
function add_rewrite_rules3($aRules) {

$aNewRules = array('tribes/([^/]+)?$' => 'index.php?pagename=tribes&category=$matches[1]');
$aRules = $aNewRules + $aRules;
return $aRules;
}
add_filter('rewrite_rules_array', 'add_rewrite_rules3');
function add_rewrite_rules4($aRules) {

$aNewRules = array('truth/([^/]+)?$' => 'index.php?pagename=truth&category=$matches[1]');
$aRules = $aNewRules + $aRules;
return $aRules;
}
add_filter('rewrite_rules_array', 'add_rewrite_rules4');
*/

function get_post_title_by_slug($slug)
{
    global $wpdb;
    $query_str = "SELECT post_title FROM $wpdb->posts WHERE `post_name`= '" . $slug . "'";
    $title = $wpdb->get_var($query_str);
    wp_reset_query();
    return $title;
}

function get_post_idby_slug($slug)
{
    global $wpdb;
    $query_str = "SELECT ID FROM $wpdb->posts WHERE `post_name`= '" . $slug . "'";
    $post_id = $wpdb->get_var($query_str);
    wp_reset_query();
    return $post_id;
}

function fulltextsearch($search, $cond)
{
//$pattern = '/(\w+)(.?)(\d*)(.?)(\d*)/i';
//$replacement = '${1}%${3}${4}$5';

    global $wpdb;

    /*$searchTerm = $search;
preg_match('/[^\d]+/',$searchTerm, $textMatch);
preg_match('/\d+/', $searchTerm,$numMatch,PREG_OFFSET_CAPTURE,3);
if(count($textMatch) > 0 && count($numMatch) > 0)
{
    $searchTerm =  str_replace(" ","",strstr($searchTerm, $numMatch[0][0], true))." ".strstr($searchTerm, $numMatch[0][0]);
}

$sArr = preg_split("/[\s:]+/", $searchTerm);
$word = "xxxxx%";
$chapter = 1;
$verus = 1;


if(count($sArr) == 1)
{
$word = $sArr[0];
}
if(count($sArr) == 2)
{
$word = $sArr[0];
$chapter = $sArr[1];
}
if(count($sArr) == 3)
{
$word = $sArr[0];
$chapter = $sArr[1];
$verus = $sArr[2];
}



$word = preg_replace("/^(\d+)/", "$1.?", $word);

$regexp = "^".$word.".* ".$chapter.":".$verus."$";*/

    $word = "no_pattern_matched";
    if (preg_match('/([1-9])?[\s]?([a-zA-z]{1,})[\s]*(\d*)[:]?(\d*)/', $search, $matches)) ;
    {
        $word = (($matches[1] != "") ? $matches[1] . " " : "") . $matches[2];
        $chapter = ($matches[3] != "") ? $matches[3] : 1;
        $verus = ($matches[4] != "") ? $matches[4] : 1;
    }
    $regexp = "^" . $word . ".* " . $chapter . ":" . $verus . "$";

    return " post_title regexp '" . $regexp . "' ";
//return $cond." LIKE '".preg_replace($pattern, $replacement, $search)."'";
}

function get_like_string($search_arr, $cond)
{
    $cond = " replace(replace(" . $cond . ",'<span class=\"red\"','<xxx '),'</span>','</xxx>') ";

    $like_str = "";

    for ($i = 0; $i < count($search_arr); $i++):
        if ($i > 0):
            $like_str .= " AND ";
        endif;
        $like_str .= $cond . " LIKE '%" . $search_arr[$i] . "%'";
    endfor;

    return $like_str;
}

function symatic_single_post_title($title, $post){
    global $wp_query;

    if(isset($wp_query->query_vars['ch']) && !empty($wp_query->query_vars['ch'])){
        $title = get_post_title_by_slug($wp_query->query_vars['ch']);
    }

    return $title;
}
add_filter('single_post_title', 'symatic_single_post_title', 10, 2);