/* this file combines the rakeback.js, raketabs.js and cell-height.js. */
var disableScrollStop = false;

$(document).ready(function() {
	$("a.iframe").fancybox({
		'hideOnContentClick': false,
		'frameWidth': 1000,
		'frameHeight': 700
	});

	$("#createAccountLink").fancybox({
		'width': 800, 
		'height': 700
	});

	$('#language-holder').load('files/languages.php', function() {});

	$('#countrydt').load('files/countries.php', function() {
		$(".dropdown dt a").click(function() {
			$(".dropdown dd ul").toggle();
		});
			
		$(".dropdown dd ul li a").click(function() {
			var text = $(this).html();
			$(".dropdown dt a span").html(text);
			$(".dropdown dd ul").hide();
			document.location.href = 'http://' + getSelectedValue('countrydt') + '.rakeback.com';
		});
			
		function getSelectedValue(id) {
			return $("#" + id).find("dt a span.value").html();
		}

		$(document).bind('click', function(e) {
			var $clicked = $(e.target);
			if (! $clicked.parents().hasClass("dropdown"))
				$(".dropdown dd ul").hide();
		});

	});
	// raketabs.js
        $("#frontpage_teaser_right #tabs").everyTime(10000,'autoscroll',function(i){
                var act = $("#frontpage_teaser_right #tabs li.act");
                var n = act.next();
                if(n.length == 0){
                        n = $("#frontpage_teaser_right #tabs li:first");
                }
                var e = jQuery.Event("click");
                disableScrollStop = true;
                n.find('a').trigger(e);
        });

        $('#frontpage_teaser_right #tabs a').tabClick();
        $('#frontpage_teaser_right #tabs').show('slow');
        $('#frontpage_teaser_right #tabs li span').each(function(i,e){
                if($(e).height() < 20){
                        $(e).css("padding-top","24px");
                }
        });
        $("a.morelink").attr('target','_blank');

	// cell-height.js
	initPage();
	
/*	$('#thelink').fancybox({
		'modal': true,
		'showCloseButton': false,
		'frameWidth': 430,
		'frameHeight': 300,
		'hideOnContentClick': false,
		'hideOnOverlayClick': false
	});*/
});

function initPage(){
        var t_list = document.getElementsByTagName('div');
        var _list = [];
        for(var i = 0; i < t_list.length; i++){
                if(t_list[i].className.indexOf('row') != -1 && t_list[i].parentNode.className.indexOf('table-content') != -1) initBoxH(t_list[i]);
        }
        function initBoxH(_hold){
		var box_p = 1;
                if(_hold.className.indexOf('tbl-title') == -1){
                        var t_el = _hold.getElementsByTagName('div');
                        var _el;
                        for(var i = 0; i < t_el.length; i++){
                                if(t_el[i].parentNode == _hold){
                                        t_el[i].style.height = _hold.offsetHeight - box_p + 'px';
                                        _el = t_el[i].getElementsByTagName('span')[0];
                                        if(_el) _el.style.paddingTop = ((t_el[i].offsetHeight - box_p) - _el.offsetHeight)/2 + 'px';
                                }
                        }
                }
        }
}

jQuery.fn.tabClick = function(s) {
        var step = 350;
        return this.each(function(i,e)
        {
                var self = $(this);
                self.attr('rel',i);
                if(i == 0)
                {
                        self.addClass('act');
                        self.parent().addClass('act');
                }
                self.click(function (e)
                {
                        $('#frontpage_teaser_right #tabs a, #frontpage_teaser_right #tabs li').removeClass('act');
                        self.addClass('act');
                        self.parent().addClass('act');
                        var targetY = (parseInt(self.attr('rel')) * step) * -1;
                        $('#teasers').animate({marginTop:targetY},500,"swing");
                        e.preventDefault();

                        if(!disableScrollStop)
                        {
                                // remove the auto scrolling once user has clicked a link
                                $("#frontpage_teaser_right #tabs").stopTime('autoscroll');
                        }
                        disableScrollStop = false;

                        return false;
                })
        })

}

jQuery.fn.extend({
        everyTime: function(interval, label, fn, times, belay) {
                return this.each(function() {
                        jQuery.timer.add(this, interval, label, fn, times, belay);
                });
        },
        oneTime: function(interval, label, fn) {
                return this.each(function() {
                        jQuery.timer.add(this, interval, label, fn, 1);
                });
        },
        stopTime: function(label, fn) {
                return this.each(function() {
                        jQuery.timer.remove(this, label, fn);
                });
        }
});

jQuery.extend({
        timer: {
                guid: 1,
                global: {},
                regex: /^([0-9]+)\s*(.*s)?$/,
                powers: {
                        // Yeah this is major overkill...
                        'ms': 1,
                        'cs': 10,
                        'ds': 100,
                        's': 1000,
                        'das': 10000,
                        'hs': 100000,
                        'ks': 1000000
                },
                timeParse: function(value) {
                        if (value == undefined || value == null)
                                return null;
                        var result = this.regex.exec(jQuery.trim(value.toString()));
                        if (result[2]) {
                                var num = parseInt(result[1], 10);
                                var mult = this.powers[result[2]] || 1;
                                return num * mult;
                        } else {
                                return value;
                        }
                },
                add: function(element, interval, label, fn, times, belay) {
                        var counter = 0;

                        if (jQuery.isFunction(label)) {
                                if (!times)
                                        times = fn;
                                fn = label;
                                label = interval;
                        }

                        interval = jQuery.timer.timeParse(interval);

                        if (typeof interval != 'number' || isNaN(interval) || interval <= 0)
                                return;

                        if (times && times.constructor != Number) {
                                belay = !!times;
                                times = 0;
                        }

                        times = times || 0;
                        belay = belay || false;

                        if (!element.$timers)
                                element.$timers = {};

                        if (!element.$timers[label])
                                element.$timers[label] = {};

                        fn.$timerID = fn.$timerID || this.guid++;

                        var handler = function() {
                                if (belay && this.inProgress)
                                        return;
                                this.inProgress = true;
                                if ((++counter > times && times !== 0) || fn.call(element, counter) === false)
                                        jQuery.timer.remove(element, label, fn);
                                this.inProgress = false;
                        };

                        handler.$timerID = fn.$timerID;

                        if (!element.$timers[label][fn.$timerID])
                                element.$timers[label][fn.$timerID] = window.setInterval(handler,interval);

                        if ( !this.global[label] )
                                this.global[label] = [];
                        this.global[label].push( element );

                },
                remove: function(element, label, fn) {
                        var timers = element.$timers, ret;

                        if ( timers ) {

                                if (!label) {
                                        for ( label in timers )
                                                this.remove(element, label, fn);
                                } else if ( timers[label] ) {
                                        if ( fn ) {
                                                if ( fn.$timerID ) {
                                                        window.clearInterval(timers[label][fn.$timerID]);
                                                        delete timers[label][fn.$timerID];
                                                }
                                        } else {
                                                for ( var fn in timers[label] ) {
                                                        window.clearInterval(timers[label][fn]);
                                                        delete timers[label][fn];
                                                }
                                        }

                                        for ( ret in timers[label] ) break;
                                        if ( !ret ) {
                                                ret = null;
                                                delete timers[label];
                                        }
                                }

                                for ( ret in timers ) break;
                                if ( !ret )
                                        element.$timers = null;
                        }
                }
        }
});

if (jQuery.browser.msie)
        jQuery(window).one("unload", function() {
                var global = jQuery.timer.global;
                for ( var label in global ) {
                        var els = global[label], i = els.length;
                        while ( --i )
                                jQuery.timer.remove(els[i], label);
                }
        });


