﻿/*
* 	Collapsible Subs  jQuery plugin
*	written by Rajesh Pandey for Coders4you CMS	
*	http://coders4you.com
*
*	Copyright (c) 2010 Coders4you (http://coders4you.com)
*	Built for jQuery library
*	http://jquery.com
*
*/

/*
*	markup example for $(this).collapsiblesub();
*	
*   <head>
*    <script src="/JS/jquery-1.3.2.min.js" type="text/javascript"></script>
*    <script src="jquery.js" type="text/javascript"></script>
*     <script src="jquery.url.js" type="text/javascript"></script>
*    <script src="../../../JS/CollapsibleSubs.js" type="text/javascript"></script> 
*     <script type="text/javascript">
*        $(document).ready(function() {
*            
*            $(this).collapsiblesub();
*        });
*    </script>
*   </head>
*
*/


(function($) {

    $.fn.collapsiblesub = function(options) {

        // default configuration properties
        var defaults = {
            colbodycssname: 'col_body', //css class name of column body
            subcolbodycssname: 'sub_col_body', //css class name sub column body
            subsecondcolbodycssname: 'sub_col_second_body', //css class name sub Second column body

            coltitledownname: 'col_titleDown',  //css class name of column title down name
            coltitlecssname: 'col_title',      // css class name of column title name

            subcoltitlecssname: 'sub_col_title', //css class name of sub column title name
            subcoltitledownclassname: 'col_second_body', //css class of sub column title down name

            subsecondcoltitlecssname: 'sub_col_second_title', //css class name of sub column title name
            subsecondcoltitledownclassname: 'sub_col_second_titleDown', //css class of sub column title down name

            menulinksdivid: 'menu_links',   //div id of menu links div
            menupanlastclassname: 'menuPanLast', //css class name of menu pan last
            querystringname: 'bookMark' //query string name for which the div needs to search and expand the div


        };

        var options = $.extend(defaults, options);

        $("." + options.colbodycssname).hide();
        $("." + options.subcolbodycssname).hide();
        $("." + options.subsecondcolbodycssname).hide();
        $("." + options.coltitlecssname).click(
            function() {
                if ($(this).next("." + options.colbodycssname).is(":visible")) {
                    $(this).next("." + options.colbodycssname).slideToggle(600);
                    $(this).removeClass(options.coltitledownname);
                    $("." + options.coltitlecssname).show();
                    
                    $("." + options.subcolbodycssname).hide();
                    $("." + options.subcoltitlecssname).show();
                    $("." + options.subcoltitlecssname).removeClass(options.subcoltitledownclassname);

                    $("." + options.subsecondcolbodycssname).hide();
                    $("." + options.subsecondcoltitlecssname).show();
                    $("." + options.subsecondcoltitlecssname).removeClass(options.subsecondcoltitledownclassname);
                    
                    
                }
                else {
                    $("." + options.colbodycssname).hide();
                    $(this).addClass(options.coltitledownname);
                    $(this).next("." + options.colbodycssname).slideToggle(600);
                    $("." + options.coltitlecssname).removeClass(options.coltitledownname);

                    $("." + options.subcolbodycssname).hide();
                    $("." + options.subcoltitlecssname).show();
                    $("." + options.subcoltitlecssname).removeClass(options.subcoltitledownclassname);

                    $("." + options.subsecondcolbodycssname).hide();
                    $("." + options.subsecondcoltitlecssname).show();
                    $("." + options.subsecondcoltitlecssname).removeClass(options.subsecondcoltitledownclassname);
                    
                }
            }
        );

        $("." + options.subcoltitlecssname).click(
            function() {
                if ($(this).next("." + options.subcolbodycssname).is(":visible")) {
                    $(this).next("." + options.subcolbodycssname).slideToggle(600);
                    $(this).removeClass(options.subcoltitledownclassname);
                    $("." + options.subcoltitlecssname).show();

                    $("." + options.subsecondcolbodycssname).hide();
                    $("." + options.subsecondcoltitlecssname).show();
                    $("." + options.subsecondcoltitlecssname).removeClass(options.subsecondcoltitledownclassname);
                }
                else {
                    $("." + options.subcolbodycssname).hide();
                    $(this).show();
                    $(this).next("." + options.subcolbodycssname).slideToggle(600);
                    $("." + options.subcoltitlecssname).removeClass(options.subcoltitledownclassname);
                    $(this).addClass(options.subcoltitledownclassname);

                    $("." + options.subsecondcolbodycssname).hide();
                    $("." + options.subsecondcoltitlecssname).show();
                    $("." + options.subsecondcoltitlecssname).removeClass(options.subsecondcoltitledownclassname);
                }
            }
        );

        $("." + options.subsecondcoltitlecssname).click(
            function() {
                if ($(this).next("." + options.subsecondcolbodycssname).is(":visible")) {
                    $(this).next("." + options.subsecondcolbodycssname).slideToggle(600);
                    $(this).removeClass(options.subsecondcoltitledownclassname);
                    $("." + options.subsecondcoltitlecssname).show();
                }
                else {
                    $("." + options.subsecondcolbodycssname).hide();
                    $(this).show();
                    $(this).next("." + options.subsecondcolbodycssname).slideToggle(600);
                    $("." + options.subsecondcoltitlecssname).removeClass(options.subsecondcoltitledownclassname);
                    $(this).addClass(options.subsecondcoltitledownclassname);
                }
            }
        );

        $("#" + options.menulinksdivid).addClass(options.menupanlastclassname);
        try {
            var bookMark = jQuery.url.param(options.querystringname);
        }
        catch (ex)
            { }
        $("div:contains('" + bookMark + "')").next("." + options.colbodycssname).slideToggle(600);



        //Fix div3 issue 
        //hide the separator if there is no content
        //Remove last pipe(menu separator: | ) from the menu list
        $(".inner li:last").addClass(options.menupanlastclassname);
        //Hide submenu only in homepage: 
        //Trick: homepage doesn't have the usercontrol inside submenu
    };
    //TODO: add a singleton manager
})(jQuery);




