document.write('<script type="text/javascript" src="js/ui/flash.min.js"></script>');

var Common = {
    init: function (){
        var self = this;
        var ext = ['pdf', 'doc', 'docx'];

        for (var i = 0; i < ext.length; i++)
        {
            $('#content a[href$=".'+ ext[i] +'"]').addClass(ext[i]).attr('target', '_blank');
        }

        $('a[rel=ext]').attr('target', '_blank');

        self.initTabs($('#centerCol'));
        self.initBanner($('#homeBanner'));
        self.initPrint($('.print'));
        self.initSearch($('input#searchInput'));
        self.initFilters();
        self.initTeasers();
        self.initExpander($('dl.accord'));
        self.initSitemap();
        self.initSidebarsToggle();
        self.initPopup();
        self.initSocials($('.socialNetworks'));
        self.initTable($('table.zebra'));
        
        $('.tooltip').reverse().each(function(i, elem){
            $(this).css('z-index', 20 + i);
            $(this).find('span').css('z-index', 10 + i);
        });
    },

    initTabs: function($obj){
        var self = this;
        var $targets = $('.tab', $obj);

        if (!$targets.length) return false;

        /*$targets
            .filter(':first')
            .before('<ul class="tabs clearfix"></ul>')
            .end()
            .each(function(){
                var $this = $(this);
                var title = $this.find('.tabTitle').text();

                $('#centerCol .tabs').append('<li><span>'+ title +'</span></li>');
            });*/

        var $triggers = $('.tabs li', $obj);

        var activateTab = function(index){
            $targets.addClass('hide').eq(index).removeClass('hide');
            $triggers.eq(index).addClass('active').siblings().removeClass('active');
        };

        $triggers.live('click', function(){
            activateTab($(this).index());
        });

        activateTab(0);
    },

    initBanner: function($homeBanner){
        var self = this;

        if (!$homeBanner.length) return;

        $homeBanner.bannersSlider();
    },

    initPrint: function($obj){
        var self = this;

        $obj.click(function(){
            switchToPrint();
            return false;
        });
    },

    initSearch: function($obj){
        var self = this;

        $obj.focus(function ()
        {
            if ($(this).val() == 'Paieška' || $(this).val() == 'Search') $(this).val('');
        });

        $obj.blur(function ()
        {
            if ($(this).val() == '') {
                var lang = $('body').attr('class');

                if (lang == 'lt') {
                    $(this).val('Paieška');
                } else {
                    $(this).val('Search');
                }
            }
        });
    },

    initFilters: function(){
        var self = this;

        // funds filter
        if ($('input#FilterTypeProgram').size() && $('input#FilterTypeFund').size()) {
            filterType();
            $('input[type="radio"].typeRadio').bind('click', filterType);
        }

        // show / hide graph
        $('#graph').show();
        $('#showGraph').show().click(function() {
            if ($(this).hasClass('show')) {
                $('#graph').show();
                $(this).html(hideGraph).removeClass('show');
            } else {
                $('#graph').hide();
                $(this).html(showGraph).addClass('show');
            }
            return false;
        });

        // show / hide values
        $('#unitPrice').hide();
        $('#showValues').parent('p').show();
        $('#showValues').click(function() {
            if ($(this).hasClass('showing')) {
                $('#unitPrice').hide();
                $(this).html(showValues).removeClass('showing');
            } else {
                $('#unitPrice').show();
                $(this).html(hideValues).addClass('showing');
            }
            return false;
        });

        $("#FilterProgramId").change(function(){
            if ($(this).val() == '6')
            {
                $(this).parent().next().removeClass('hidden');
            }
            else
            {
                $(this).parent().next().addClass('hidden');
            }
        }).trigger('change');

        $("#fundsForm").submit(function(){
            var valid = true;
            var total = 100;
            if (!$(".funds-list").hasClass('hidden') && $(".funds-list").length > 0)
            {
                total = 0;
                $(".funds-list input").each(function(){
                    v    = $(this).val();
                    vInt = parseInt(v);
                    if (v.trim() != '' && isNaN(vInt))
                    {
                        valid = false;
                    }
                    else if (vInt < 10)
                    {
                        valid = false;
                    }
                    else if (!isNaN(vInt))
                    {
                        total = total + vInt;
                    }

                });
            }
            if (!valid || total != 100)
            {
                alert('Bendra procentų investuojamų į kryptis suma turi būti 100');
                return false;
            }
            else
            {
                return true;
            }
        });

        $('#resultsList li').click(function(){
            var url = $(this).find('.resultTitle a').attr('href');

            if (url != '')
            {
                window.location = url;
            }
        });
    },

    initTeasers: function(){
        var self = this;

        $('#leftCol .teaser .title, #rightCol .teaser .title').click(function () {
            $(this)
                .toggleClass('closed')
                .next('.info')
                .slideToggle('fast');
        });

        $('#centerCol .teaser .title').click(function () {
            $(this)
                .toggleClass('opened')
                .next('.info')
                .slideToggle('fast');
        });
    },

    initExpander: function($obj){
        var self = this;

        $('dt', $obj).each(function(){
            if (!$(this).hasClass('single')) {
                $(this).addClass('expand');
            }
        });

        $('dd', $obj).hide();

        $('dt.expand', $obj).click(function(){
            $(this).toggleClass('collapse');
            $(this).next('dd').toggle();
        });
    },

    initSitemap: function(){
        var self = this;

        if (!$('#sitemapList').length) return;

        $('#sitemapList li ul').hide();
        $('#sitemapList li:has(ul)').each(function(){
            $(this).prepend('<span class="expand"></span>');
        });

        $('span.expand').bind('click', function(){
            if ($(this).hasClass('show')) {
                $('ul:first', this.parentNode).hide();
                $(this).removeClass('show');
            } else {
                $('ul:first', this.parentNode).show();
                $(this).addClass('show');
            }
        });

        var lang = $('body').attr('class');

        var expand = new Array();
            expand['lt'] = 'Išskleisti viską';
            expand['en'] = 'Expand all';

        var collapse = new Array();
            collapse['lt'] = 'Suskleisti viską';
            collapse['en'] = 'Collapse all';

        var expandCollapse = '<a id="expandCollapse" href="">'+expand[lang]+'</a>';

        $('p#additional').prepend(expandCollapse);

        $('a#expandCollapse').click(function(){
            if ($(this).hasClass('collapse')) {
                $('span.expand').each(function(){
                    $('ul:first', this.parentNode).hide();
                    $(this).removeClass('show');
                });
                $(this).removeClass('collapse');
                $(this).html(expand[lang]);
            } else {
                $('span.expand').each(function(){
                    $('ul:first', this.parentNode).show();
                    $(this).addClass('show');
                });
                $(this).addClass('collapse');
                $(this).html(collapse[lang]);
            }
            return false;
			
        });
		$('#sitemapList dd>ul>li>ul').show();$('#sitemapList dd>ul>li>span').addClass('show');
    },

    initSidebarsToggle: function(){
        var self = this;
        var $toggleL = $('#toggleL');
        var $toggleR = $('#toggleR');

        if (!$toggleL.is(':visible') || !$toggleR.is(':visible')) return false;

        var $leftCol = $('#leftCol');
        var $rightCol = $('#rightCol');
        var $centerCol = $('#centerCol');
        var duration = 300;

        var slideOut = function(target){
            if(target)
                switch(target.toLowerCase())
                {
                    case 'left':
                        $leftCol.animate({'margin-left': '-194'}, duration);
                        $toggleL.addClass('out');
                        $centerCol.animate({'width': '+=194'}, duration);
                        $.cookie('ErgoLeft', 'off',{expires: 1, path: '/'});
                    break;

                    case 'right':
                        $rightCol.animate({'margin-right': '-198'}, duration);
                        $toggleR.addClass('out');
                        $centerCol.animate({'width': '+=198'}, duration);
                        $.cookie('ErgoRight', 'off',{expires: 1, path: '/'});
                    break;

                    default:
                    break;
                }
        }

        var slideIn = function(target){
            if(target)
                switch(target.toLowerCase())
                {
                    case 'left':
                        $centerCol.animate({'width': '-=194'}, duration);
                        $leftCol.animate({'margin-left': '0'}, duration);
                        $toggleL.removeClass('out');
                        $.cookie('ErgoLeft', 'on',{expires: 1, path: '/'});
                    break;

                    case 'right':
                        $centerCol.animate({'width': '-=198'}, duration);
                        $rightCol.animate({'margin-right': '0'}, duration);
                        $toggleR.removeClass('out');
                        $.cookie('ErgoRight', 'on',{expires: 1, path: '/'});
                    break;

                    default:
                    break;
                }
        }

        $toggleL.click(function(){
            if($(this).hasClass('out'))
            {
                slideIn('left');
            }
            else
            {
                slideOut('left');
            }
        });

        $toggleR.click(function(){
            if($(this).hasClass('out'))
            {
                slideIn('right');
            }
            else
            {
                slideOut('right');
            }
        });

        if($.cookie('ErgoLeft') == 'off')
        {
            slideOut('left');
        }

        if($.cookie('ErgoRight') == 'off')
        {
            slideOut('right');
        }
    },

    initPopup: function(){
        var self = this;

        var getFormData = function($form){
            var data = {};

            $('input, select, textarea', $form).each(function(){
                var $this = $(this);
                var value = $this.attr('value');

                if ('checkbox' == $this.attr('type') && !$this.is(':checked'))
                {
                    value = 0;
                }

                if ('radio' == $this.attr('type'))
                {
                    var radioValue = $("input[name='"+$this.attr("name")+"']:checked").val();
                    value = (typeof radioValue != 'undefined')? radioValue : 0;
                }

                data[$this.attr('name')] = value;
            });

            return data;
        };

        var handleResponse = function(response){
            if (response.redirect)
            {
                window.location = response.redirect;
            }

            return response;
        };

        $('.popup').fancybox({
            'autoScale'         : false,
            'scrolling'         : 'no',
            'transitionIn'      : 'none',
            'transitionOut'     : 'none',
            'overlayColor'      : '#000',
            'overlayOpacity'    : '0.6',
            'padding'           : '10',
            'titleShow'         : false,
            'width'             : 'auto',
            'height'            : 'auto',
            'onComplete'        : function(){},
            'onStart'           : function(){},
            'onCleanup'         : function(){}
        });

        $("#popup button").live('click', function(e)
        {
            e.preventDefault();

            var $this  = $(this).parents('form'),
                $url   = $this.attr('action'),
                params = getFormData($this),
                symbol = ($url.indexOf('?') != -1)? '&' : '?';

            $.post(
                $url += symbol + "random=" + (new Date().getTime()),
                params,
                function(response)
                {
                    $("#popup").replaceWith(handleResponse(response));
                    $.fancybox.resize();
                }
            );
        });

        $("#popup a.popup").live('click', function(e)
        {
            e.preventDefault();

            var $this = $(this),
                url   = $this.attr('href'),
                symbol = (url.indexOf('?') != -1)? '&' : '?';

            url += symbol + "random=" + (new Date().getTime());

            $.get(url, function(response)
            {
                $("#popup").replaceWith(response);
                $.fancybox.resize();
            });
        });
    },

    initSocials: function($obj){
        var self = this;

        $obj.click(function(e){
            e.preventDefault();

            $(this).next('.bookmarks').toggle();
        });
    },

    initTable: function($obj){
        var self = this;

        $obj.each(function(){
            $('tbody tr:nth-child(odd)', $(this)).addClass('odd');
            $('tbody tr:nth-child(even)', $(this)).addClass('even');
        });
    }
};

$(function() {
    window.Common.init();
});

function switchToPrint() {

	var lang = $('body').attr('class');

    var btnPrint = new Array();
    	btnPrint['lt'] = 'Spausdinti';
    	btnPrint['en'] = 'Print';

    var btnClose = new Array();
    	btnClose['lt'] = 'Uždaryti';
    	btnClose['en'] = 'Close';

	$('link[rel*=stylesheet]').each(function() {
		if (this.media == 'print') {
			var clone = this.cloneNode(false);
			clone.media = 'screen';
			clone.title = 'printVersion';
			$('head')[0].insertBefore(clone, this);
			this.disabled = false;
		} else if (this.media != 'all') {
			this.disabled = true;
		}
	});

	$('body').prepend('<div id="printButtons"><button onclick="window.print();">' + btnPrint[lang] + '</button>&nbsp;<button id="printClose">' + btnClose[lang] + '</button></div>');
	$('#printClose').bind('click', switchToDefault);

	//var url = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
	//$('<p>URL: '+url+'</p>').insertBefore("#logo");

	return false;
}

function switchToDefault() {
	$('link[rel*=stylesheet]').each(function() {
		this.disabled = false;
		if (this.title == 'printVersion') {
			this.disabled = true;
            $('head')[0].removeChild(this);
		}
	});
	$('#printButtons').remove();
}

function filterType() {
    var selected = $('input[type="radio"].typeRadio:checked').val();
    if (selected == 'program') {
        $('div#fundDiv').hide();
        $('div#programDiv').show();
        $('select#FilterProgramId').prop('disabled', false);
        $('select#FilterFundId').prop('disabled', true);
    } else if (selected == 'fund') {
        $('div#programDiv').hide();
        $('div#fundDiv').show();
        $('select#FilterFundId').prop('disabled', false);
        $('select#FilterProgramId').prop('disabled', true);
    }
}

// banners slider plugin
(function($){
    $.fn.bannersSlider = function(options) {
        var settings = {
            speed: 400,
            interval: 10
        };

        if (options)
        {
            $.extend(settings, options);
        }

        return this.each(function() {
            var $this = $(this);
            var width = $this.width();
            var $slider = $this.find('.slider ul');
            var $items = $slider.find('li');
            var $navigation = $this.find('.navigation');
            var $buttons = $navigation.find('.item');
            var started = false;
            var currentIndex = 0;
            var intervalId = null;

            if ($items.size() < 2) return false;

            $slider.width($items.size() * width);
            $buttons.not(':first').css('opacity', 0.6);
            $navigation.show();

            function gotoItem(index)
            {
                if (started === false)
                {
                    $buttons
                        .fadeTo('fast', 0.6)
                        .eq(index)
                        .fadeTo('fast', 1.0);

                    started = true;
                    currentIndex = index;

                    $slider.animate({ 'marginLeft': -1 * width * index + 'px' }, settings.speed, function() {
                        started = false;
                    });
                }
            }

            function resetInterval()
            {
                if (intervalId)
                {
                    clearInterval(intervalId);
                }

                if (settings.interval > 0)
                {
                    intervalId = setInterval(function() {
                        gotoItem(currentIndex < $buttons.length - 1 ? currentIndex + 1 : 0);
                    }, settings.interval * 1000);
                }
            }

            $buttons.click(function(){
                resetInterval()
                gotoItem($(this).index());
            });

            resetInterval();
        });
    };
})(jQuery);

// marquee plugin
(function($){
    $.fn.marquee = function(options) {
        var defaults = {
            pixelSpeed: 4,
            delaySpeed: 100
        };

        var options = $.extend(defaults, options);

        var marquee    = $('#marqueeText'),
            width      = marquee.width(),
            interval   = null,
            pixelSpeed = options.pixelSpeed;

        return this.each(function() {
            marquee.hover(function() {
                pixelSpeed = 0;
            }, function() {
                pixelSpeed = options.pixelSpeed;
            });
            function marqueeText() {
                if (parseInt(marquee.css('left')) >= width*(-1)) {
                    marquee.css('left', parseInt(marquee.css('left')) - pixelSpeed + 'px');
                } else {
                    marquee.css('left', '942px');
                }

                if (interval != null) {
                    clearInterval(interval);
                }

                interval = setInterval(marqueeText, options.delaySpeed);
            };
            marqueeText();
        });
    };
})(jQuery);

// Disable form elements in block
(function($){
    $.fn.disable = function(options){
        var defaults={
            objects: 'all',
            action: 'disable'
        }

        var options = $.extend(defaults, options);

        return this.each(function(){
            switch(options['action']){
                case 'disable':
                    $('input[type="text"],input[type="checkbox"], input[type="radio"],select, textarea ',this).prop('disabled', true);
                    break;
                case 'enable':
                    $('input[type="text"],input[type="checkbox"], input[type="radio"],select, textarea',this).removeProp('disabled');
            }

        });
    }
})(jQuery);

(function($){
    $.fn.reverse = [].reverse;
})(jQuery);
