var is_opera = navigator.userAgent.indexOf('Opera') > -1;
var is_safari = navigator.userAgent.indexOf('AppleWebKit/') > -1;
var is_chrome = navigator.userAgent.indexOf('Chrome') > -1;
var is_firefox = navigator.userAgent.indexOf('Firefox') > -1;
var is_mac = navigator.platform.toLowerCase().indexOf('mac') > -1;
var is_linux = navigator.platform.toLowerCase().indexOf('linux') > -1;
var browser_ie6 = false;
var browser_ie7 = false;
var browser_ie8 = false;

var table_rows = {
    items: [],

    setup: function() {

        if (!jQuery("#main-content")) return;
        this.items = jQuery("#main-content table");
        var il = this.items.length;

        for (var i = 0; i < il; i++) {
            var current_table = this.items[i];
            var trs = jQuery("tr", current_table);

            var jl = trs.length;
            for (var j = 0; j < jl; j++) {
                if (j % 2 == 0) {
                    jQuery(trs[j]).addClass('odd');
                } else {
                    jQuery(trs[j]).addClass('even');
                }
            }
        }

    }
}


var navigation_handler = {
    container: null,
    last: null,
    duration: 200,

    setup: function() {
        this.container = jQuery('#navigation_DEACTIVATED');
        if (!this.container) return;

        //collapse all
        this.collapseTree(jQuery('ul', this.container).first(), false);

        //default active - level 1
        var level_1_active = jQuery('li.active', this.container);

        jQuery(level_1_active).map(function() {
            var child_uls = jQuery(this).children('ul');
            jQuery(child_uls).slideDown(0);
        });

        //default active - level x, x > 1
        var level_x_active = jQuery('a.active', this.container);

        jQuery(level_x_active).map(function() {
            var parent_li = jQuery(this).parent();
            var child_uls = jQuery(parent_li).children('ul');
            jQuery(child_uls).slideDown(0);
        });


        //set last item on init
        var all_active_items = jQuery('.active', this.container);
        if (all_active_items.length > 0) {
            navigation_handler.setLast(all_active_items[all_active_items.length - 1]);
        }

        var all_links = jQuery('a', this.container);

        jQuery(all_links).bind('click', function(event) {

            var parent_li = jQuery(event.target).parent();
            var level = jQuery(event.target).parents('li').length;

            var has_subitems = jQuery(parent_li).children('ul').length > 0;

            //last item
            var last_level = jQuery('.active', navigation_handler.container).length;
            var is_active = jQuery(event.target).hasClass('active') || jQuery(event.target).parent().hasClass('active');

            if (!is_active && navigation_handler.last != null && navigation_handler.last != event.target) {

                var last_active_all_lis = jQuery('.active', navigation_handler.container);

                if (last_active_all_lis[level - 1]) {
                    var similar_level_parent_li = last_active_all_lis[level - 1];

                    if (similar_level_parent_li.nodeName.toLowerCase() == 'a') {
                        similar_level_parent_li = jQuery(similar_level_parent_li).parent();
                    }

                    jQuery(similar_level_parent_li).removeClass('active'); //1st level case
                    navigation_handler.collapseTree(similar_level_parent_li, true);
                }
            }


            //same or new item
            if (level == 1) {

                //level 1
                if (has_subitems) {
                    event.preventDefault();
                }

                if (jQuery(parent_li).hasClass('active')) {
                    navigation_handler.collapseTree(parent_li, true);
                    jQuery(parent_li).removeClass('active');
                } else {
                    var first_child_ul = jQuery(parent_li).children('ul');
                    jQuery(first_child_ul).slideDown(navigation_handler.duration);
                    jQuery(parent_li).addClass('active');
                }

            } else {

                //level x
                if (has_subitems) {
                    event.preventDefault();
                }

                if (jQuery(event.target).hasClass('active')) {
                    navigation_handler.collapseTree(parent_li, true);
                    jQuery(event.target).removeClass('active');
                } else {
                    var first_child_ul = jQuery(parent_li).children('ul');
                    jQuery(first_child_ul).slideDown(navigation_handler.duration);
                    jQuery(event.target).addClass('active');
                }

            }

            navigation_handler.setLast(event.target);
        });
    },

    collapseTree: function(node, remove_active) {
        var subnavs = jQuery('ul', node);

        var il = subnavs.length;
        for (var i = il - 1; i >= 0; i--) {
            jQuery(subnavs[i]).slideUp(navigation_handler.duration);
        }

        if (remove_active) {
            var all_active_items = jQuery('.active', node);
            all_active_items.map(function() {
                jQuery(this).removeClass('active');
            });
        }
    },

    setLast: function(item) {
        if (item.nodeName.toLowerCase() == 'li') {
            item = jQuery(item).children('a').first();
        }
        navigation_handler.last = item;
    }
}

var dropdown = {

    setup: function() {
        var navigation_el = jQuery('#navigation');
        var level_1_items = jQuery('li', navigation_el);

        var il = level_1_items.length;
        for (var i = 0; i < il; i++) {
            var current_el = level_1_items[i];

            var has_subitem = jQuery('ul', current_el).length > 0;
            if (!has_subitem) continue;

            if (current_el.nodeName.toLowerCase() == "li") {

                jQuery(current_el).bind('mouseover', function(event) {
                    if (jQuery(this).hasClass('active')) {
                        jQuery(this).addClass('active-over');
                    } else {
                        jQuery(this).addClass('over');
                    }

                    if (browser_ie6 && jQuery('#booking-container')) {
                        jQuery('#booking-container').addClass('hide-select');
                    }
                });

                jQuery(current_el).bind('mouseout', function(event) {
                    jQuery(this).removeClass('active-over over');

                    if (browser_ie6 && jQuery('#booking-container')) {
                        jQuery('#booking-container').addClass('hide-select');
                    }

                    if (browser_ie6 && jQuery('#booking-container')) {
                        jQuery('#booking-container').removeClass('hide-select');
                    }
                });

            }
        }
    }
}

var search_form = {
    container: null,

    setup: function() {
        this.container = jQuery('#search-container input')[0];

        jQuery(this.container).bind('focus', function() {
        if (this.value == elmPretraga) {
                this.value = '';
            }
        });

        jQuery(this.container).bind('blur', function() {
            if (this.value == '') {
                this.value = elmPretraga;
            }
        });
    }
}

var tools = {
setup: function() {

jQuery('#search-container input')[0].value = elmPretraga;

        var font_size_links = jQuery('#tools ul a');

        jQuery(font_size_links).bind('click', function(event) {
            event.preventDefault();
            var parent_li = jQuery(event.target).parent('li');
            setActiveStyleSheet(jQuery(parent_li).attr('class') + '-fonts');
        });

        var print_link = jQuery('#print-link a')[0];
        jQuery(print_link).bind('click', function(event) {
            event.preventDefault();
            window.print();
        });
    }
}

function init() {
    if (typeof table_rows == 'object') {
        table_rows.setup();
    }

    if (typeof search_form == 'object') {
        search_form.setup();
    }

    if (typeof tools == 'object') {
        tools.setup();
    }

    if (browser_ie6 || browser_ie7) {
        if (typeof dropdown == 'object') {
            dropdown.setup();
        }
    }

    if (typeof navigation_handler == 'object') {
        navigation_handler.setup();
    }

}
