(function() {

    // Imports
    var Event = YAHOO.util.Event;
    var Dom = YAHOO.util.Dom;

    Sweepstake = function(cfg) {
    	Event.addListener(window, "load", this._initialize, this, true);
        for(var i in cfg)
        {
            this[i] = cfg[i];
        }
        
        var closeLayerButtons = Dom.getElementsByClassName('sweepstake-layer-close');
        for(var i = 0; i < closeLayerButtons.length; i++)
        {
        	Event.addListener(closeLayerButtons[i], 'click', this.hideLayer, this, true);
        }
    };
    
    Sweepstake.prototype = {
        _initialize : function() 
        {
            var preloader = new NB.ImagePreloader();
            var that = this;
            
            preloader.onComplete = function() 
            {
                
                //that.setPage(null, 'swp2010_sporttyp-result');
                that.setPage(null, that.startPage);
            };
            
            preloader.preload(this.images, this.relPath + "images/");
        },
        isSending : false,
        curPage : sweepstakeCfg.id + "-loading",
        startPage : sweepstakeCfg.id + "-start",
        hideLayer : function(e) {
        	Event.stopEvent(e);
        	var closeBtn = Event.getTarget(e);
        	closeBtn.parentNode.style.visibility = 'hidden';
        },
        showLayer : function(e, layerId) {
        	Event.stopEvent(e);
        	Dom.setStyle(this.id + layerId, 'visibility', 'visible');
        },
        setPage : function(pageName) {
    	    if(typeof arguments[0] == "object")
            {
                pageName = arguments[1];
            }
            
            this.stopEvent();
            
            Dom.setStyle(this.curPage, "display", "none");
            this.curPage = pageName;
    		Dom.setStyle(this.curPage, "display", "block");            
        },
        stopEvent : function() {
    		try
            {
                var e = Event.getEvent();
    		    Event.stopEvent(e);
            } 
            catch(e) 
            {}						
    	}
    };
})();
