var skynetShowContestOverlay = function() {
    var cookieName = 'skynetcontestoverlay';
    var cookieValue = '';
    var cookieDomain = '.skynet.be';
    var cookieLifeTimeInSeconds = 2592000;
    var activeContestId = null;
    var bottomoverlayId = 'contestRequestBottom';
    var overlayBlock = 'hello';
    var countMax = 3;

    var init = function(result) {
        storeOverlayInMemory(result);
        checkIfCookieExist();
        if(mayDisplayContest() && $j('#setAsHomePageRequestBottom').length === 0) {
            displayBottomOverlay();
        }
    };

    var mayDisplayContest = function() {
        return ( getCountForThisWeek()<countMax );
    };

    var storeOverlayInMemory = function(result) {
        if(result !== '') {
            overlayBlock = result;
            var div = $j(result);
            activeContestId = $j(div[4]).attr('rel');
            if(activeContestId === undefined) {
                activeContestId = $j(div[1]).attr('rel');
            }
        }
    };

    var setCookieForContest = function(count) {
        var date = new Date();
        var weekNumber = date.getWeek();
        if ( (typeof count) == 'undefined' ) {
            count = getCountForThisWeek();
            count++;
        }
        setCookie(JSON.stringify({contestId: activeContestId, weekNumber: weekNumber, count: count}));
    };

    var displayBottomOverlay = function() {
        $j('body').append(overlayBlock);
        setupUserActionsBottom();
        setCookieForContest();
    };    

    var checkIfCookieExist = function() {
        cookieValue = getCookie();
        if(cookieValue === '') {
            return false;
        } else {
            return true;
        }
    };

    var setCookie = function(val) {
        cookieValue = val;
        $j.cookie(cookieName, cookieValue, cookieLifeTimeInSeconds, '/', cookieDomain);
    };

    var getCookie = function() {
        return $j.cookie(cookieName);
    };

    var getJSONFromCookieValue = function(cookieValue) {
	    try {
	        value = JSON.parse(cookieValue);
	    } catch ( SyntaxError ) {
	        var date = new Date();
	        value = {contestId: activeContestId, weekNumber: date.getWeek(), count: 0};
	    }
	    return value;
    };

    var checkAcceptCookies = function() {
        $j.cookie('test', 'value');
        return ($j.cookie('test')=='value');
    };

    var getCountForThisWeek = function() {
	    if ( !checkAcceptCookies() ) {
	        return countMax;
	    }
	
	    var value = getCookie();
	    value = getJSONFromCookieValue(value);
	
	    var date = new Date();
	    var thisWeekNumber = date.getWeek();
	
	    if ( value.contestId===activeContestId && value.weekNumber==thisWeekNumber ) {
	        return value.count;
	    } else {
	        return 0;
	    }
    };

    var setupUserActionsBottom = function() {
        $j('#'+bottomoverlayId).click(userActionAcceptBottom);
        $j('#'+bottomoverlayId).css('cursor', 'pointer');
        $j('#'+bottomoverlayId).find('.shpClose').click(userActionDenyBottom);
    };

    var userActionAcceptBottom = function() {
	    url = $j('#'+bottomoverlayId).find('.submitBtn').attr('href');
	    $j('#'+bottomoverlayId).find('.submitBtn').trigger('click');
        removeOverlay();
	    setCookieForContest(countMax);
        skynet_event('contestbottomoverlay', 'click', 'yes');
	    window.location.href = url;
    };


   var userActionDenyBottom = function() {
	    removeOverlay();
	    setCookieForContest(countMax);
        skynet_event('contestbottomoverlay', 'click', 'no');
    };

   var removeOverlay = function() {
        $j("#"+bottomoverlayId).remove();
    };

    $j.get('/ajax/showContestOverlayBottom', {}, init);
};

$j(document).ready(function() {
	var dateStart = Date.UTC(2009,9,28);
	var dateEnd = Date.UTC(2009,9,30);
	var dateToday = new Date();	
	if (window.showBottomOverlay == undefined && (dateToday.getTime() < dateStart || dateToday.getTime() > dateEnd)) {
		var skynetShowContestOverlayObject = new skynetShowContestOverlay();
	}
});
