

//


// Init ajax content toggler
//



uzContentToggler = {

    debug: 0,

    objectsBoxType: "div",   // div|span

    objectsProp: "class",   // class|name

    objectsPropVal: "uz_toggle_content",



    defaultShort: true,

    textSplitMode: "units",    // units|marker

    shortTextUnits: "div",    // div|br

    shortTextLength: 2,

    shortTextMarker: "--",      //marker string for split the description



    expandHtml: "<img src='_img/opop.gif' width=20 height=20 />",

    shortHtml: "<img src='_img/clcl.gif' width=20 height=20 />",



    init: function(opt){



        // Set options

        if(typeof(uzContentTogglerOptions) != 'undefined'){

            opt = uzContentTogglerOptions;

        }



		// Set options

        if(typeof(opt) != 'undefined'){

            this.setOptions(opt);

        }



        // Enable debug by ip

        if(typeof(DEBUG_BY_IP) != 'undefined'){

            if(DEBUG_BY_IP == 1){

                this.debug = 1;

            }

        }



        // Attach cnt controls to objects

        this.attachControls();

    },



    setOptions: function(opt){

        for(var key in opt){

            this[key] = opt[key];

        }

    },



    

    attachControls: function(opt){

        var selector = ""

        switch(this.objectsProp){

            case "name":

                selector = this.objectsBoxType+"[name='" + this.objectsPropVal + "']";

                break;

            case "class":

                selector = this.objectsBoxType+"." + this.objectsPropVal;

                break;

            default:

                break;

        }

        if(selector != ""){

            $(selector).each(function(index) {

                // Markup object

                $(this).attr("uz_toggler_index", index);



                // Apply short/expand divs

                uzContentToggler.attachControl(this, index);

            });

        }

    },



    attachControl: function(obj, index){

        obj = $(obj);

    

        var fullText = this.prepareFullText(obj);

        //alert(fullText);

        var shortText = this.prepareShortText(obj);

        //alert(shortText);



        // Replace original content

        obj.html(shortText+fullText);



        // Show container    

        if(this.defaultShort){

            $("#uz_toggle_part_short_"+index).css("display", "inline");

        } else {

            $("#uz_toggle_part_full_"+index).css("display", "inline");

        }



        obj.show();



    },



    prepareFullText: function(obj){

        var index = obj.attr("uz_toggler_index");

        var res = obj.html();

        if(this.textSplitMode == "marker"){

            var aTmp = res.split(this.shortTextMarker);

            res = aTmp.join("");

        }

        res += "<div class='uz_toggler_link'><a class=\"uz_toggler_link\" href=\"javascript:void(0);\" onClick=\"uzContentToggler.toggle("+index+")\">"+this.shortHtml+"</a></div>";

        res = "<span id=\"uz_toggle_part_full_"+index+"\" style=\"display: none;\">"+res+"</span>";

        return res;

    },



    prepareShortText: function(obj){

        var index = obj.attr("uz_toggler_index");

        var str = obj.html();

        var res = "";

        switch(this.textSplitMode){

            case "units":

                switch(this.shortTextUnits){

                    case "div":

                        var pos = 0;

                        for(var i = 0; i < this.shortTextLength; i++){

                            //alert("search pos = "+pos+", i = "+i);

                            pos = str.indexOf('</div>', pos);

                            if(pos == -1){

                                break;

                            }

                            pos += 6;   // Length of '</div>'

                        }

                        if(pos == -1){

                            res = str;

                        } else {

                            res = str.substr(0, pos);

                            res += "<div class='uz_toggler_link'><a class=\"uz_toggler_link\" href=\"javascript:void(0);\" onClick=\"uzContentToggler.toggle("+index+")\">"+this.expandHtml+"</a></div>";

                        }

                        break;

                    case "br":

                        var pos = 0;

                        for(var i = 0; i < this.shortTextLength; i++){

                            //alert("search pos = "+pos+", i = "+i);

                            pos = str.indexOf('<br>', pos);

                            if(pos == -1){

                                break;

                            }

                            pos += 4;   // Length of '<br>'

                        }

                        if(pos == -1){

                            res = str;

                        } else {

                            res = str.substr(0, pos);

                            res += "<div class='uz_toggler_link'><a class=\"uz_toggler_link\" href=\"javascript:void(0);\" onClick=\"uzContentToggler.toggle("+index+")\">"+this.expandHtml+"</a></div>";

                        }

                        break;

                    default:

                        res = str;

                        break;

                    /*

                    }

                    pos += 6;   // Length of '</div>'

                    if(pos == -1){

                        res = str;

                    } else {

                        res = str.substr(0, pos);

                        res += "<div class='uz_toggler_link'><a class=\"uz_toggler_link\" href=\"javascript:void(0);\" onClick=\"uzContentToggler.toggle("+index+")\">"+this.expandHtml+"</a></div>";

                    }

                    //*/

                }

                break;

            case "marker":

/*

                var pos = 0;

                for(var i = 0; i < this.shortTextLength; i++){

                    //alert("search pos = "+pos+", i = "+i);

                    pos = str.indexOf('<br>', pos);

                    if(pos == -1){

                        break;

                    }

                    pos += 4;   // Length of '<br>'

                }

                if(pos == -1){

                    res = str;

                } else {

                    res = str.substr(0, pos);

//*/

                var aTmp = str.split(this.shortTextMarker);

                res = aTmp[0];



                if(aTmp.length > 1){

                    res += "<div class='uz_toggler_link'><a class=\"uz_toggler_link\" href=\"javascript:void(0);\" onClick=\"uzContentToggler.toggle("+index+")\">"+this.expandHtml+"</a></div>";

                }

                //*/

                break;

            default:

                /*

                res = str;

                //*/

                break;

        }

        res = "<span id=\"uz_toggle_part_short_"+index+"\" style=\"display: none;\">"+res+"</span>";

        return res;

    },



    toggle: function(index){

        if($("#uz_toggle_part_short_"+index).css("display") == "none"){

            $("#uz_toggle_part_short_"+index).css("display", "inline");

        } else {

            $("#uz_toggle_part_short_"+index).css("display", "none");

        }

        if($("#uz_toggle_part_full_"+index).css("display") == "none"){

            $("#uz_toggle_part_full_"+index).css("display", "inline");

        } else {

            $("#uz_toggle_part_full_"+index).css("display", "none");

        }

    },



    endvar: 1

}



//

// Init

//



$(document).ready(function(){

    uzContentToggler.init();

});


