var external_refresh_marquee = null;
var external_refresh_side_marketing = null;

$(document).ready(function() {
    var side_marketing = null;
    var marquee = null;
    var back_button = null;
    var pause_button = null;
    var forward_button = null;

    function map_selectors() {
	side_marketing = $('#side_marketing');
	marquee = $('#marquee');
	back_button = $('#back_button');
	forward_button = $('#forward_button');
	pause_button = $('#pause_button');
    }
    map_selectors();

    var pause = false;
    var url = '';

    function refresh_side_marketing() {
	side_marketing.load('/advertisements/get_advertisements/',
            function() {
		var label = get_side_ad_info(this);
		$('#side_marketing a.ad').each(function() {
		    if (typeof pageTracker != 'undefined') {
			pageTracker._trackEvent("Ads", "view", label);
		    }
                }).click(function() {
		    var label = get_side_ad_info(this);
		    url = $(this).attr('href');
		    if (typeof pageTracker != 'undefined') {
			pageTracker._trackEvent("Ads", "click", label);
		    }
		    setTimeout(go_to_url, 500);
		});
            }
        );
    }
    external_refresh_side_marketing = refresh_side_marketing;

    function refresh_marquee(operation) {
	var marquee_id = get_marquee_id();
        marquee.load('/advertisements/get_marquee/?id=' + marquee_id + '&operation=' + operation, 
            function() {
		var label = get_ad_info();
		if (typeof pageTracker != "undefined") {
		    pageTracker._trackEvent("Ads", "view", label);
		}
                $('#marquee a').click(function() {
                    var label = get_ad_info();
                    url = $(this).attr("href");
		    if (typeof pageTracker != "undefined") {
                        pageTracker._trackEvent("Ads", "click", label);
		    }
                    setTimeout(go_to_url, 500);
                    return false;
                });
            }
	);
    }
    external_refresh_marquee = refresh_marquee;
        
    if (side_marketing.length > 0) {
	refresh_side_marketing();
    }
    if (marquee.length > 0) { 
        marquee.load('/advertisements/get_marquee/', null, function() {
            rotate()
            $('#marquee a').click(function() {
                var label = get_ad_info();
                url = $(this).attr("href");

                if (typeof pageTracker != "undefined") {
                    pageTracker._trackEvent("Ads", "click", label);
                }
                setTimeout(go_to_url, 500);
                return false;
            })
        });
    }

    function go_to_url() {
        window.open(url);
    }
    var get_ad_info = function() {
	var marquee_input = $('#marquee input');
        var marquee_img = $('#marquee a img');
        var marquee_img_src = marquee_img.attr("src");
        var label = marquee_input.attr("name") + " " +
                marquee_input.val() + " " +
                marquee_img_src;
        return label;
    }
    
    var get_side_ad_info = function(el) {
        var id = $(el).attr("id").split("side_ad_")[1];
        var label = $(el).attr("title") + " " +
                    id + " " + $(el).children("img").attr("src");
        return label;
    }
    
    var get_marquee_id = function() {
        var ad = $('#marquee_id');
	if (ad.length > 0) { 
            return ad.val().trim(); 
	} else {
	    return null;
	}
    }
    var get_marquee = function(operation) {
        if (pause === false) {  
            if (operation !== 'forward' || operation !== 'back') { 
                operation = 'forward'; 
            }
            var marquee_id = get_marquee_id();
	    refresh_marquee(operation);
        }
    }
    
    /* Control Events */
    back_button.click(function() {
        get_marquee('back');
    });
    
    pause_button.click(function() {
        if (pause === false) {
            pause = true
            pause_button.css(
                'background', 
                'transparent ' +
                'url(/public/images/button_play_small.png) ' +
                'no-repeat scroll 0 0;'
            );
        } else {
            pause = false
            pause_button.attr('style', function() {
                return 'background: transparent url(/public/images/button_pause_small.png) no-repeat scroll 0 0;'
            });
        }
    });
    
    forward_button.click(function() {
        get_marquee('forward');
    });
    
    function rotate() {
        setInterval(get_marquee, 30000);
    }
});
