vgEvents = {
    
    startupEvent: 0,
    
	infoLines: {
		showAll: false,
	    element: $('#infolines'),
	    activeEvent: 0,
	    updateTimer: null,
	    interval: 10,
	    eventIds: [0],
	    eventGroupId: 0
	},
	
	event: {
		element: $('#eventMain')
	},
	
	schedule: {
		element: $('#eventList'),
		offset: 0
	},
	
	discuss: {
	    element: $('#vgdThread'),
	},
	
	// Start requesting updates
	startInfoLinesUpdateTimer: function() {
		window.clearTimeout(vgEvents.infoLines.updateTimer);
		vgEvents.infoLines.updateTimer = window.setTimeout(vgEvents.queryForUpdates, vgEvents.infoLines.interval * 1000);
	},
	
	checkHash: function() {
		var hash = window.location.hash;
		var id = parseInt(hash.substr(hash.indexOf('#')+1), 10);
		
		if(id > 0) vgEvents.showEvent(id);
		// Fire up latest event
        else if(vgEvents.startupEvent > 0) vgEvents.showEvent(vgEvents.startupEvent);
	},
	
	updateInfoLines: function() {
	   var params;        
        /*if(vgEvents.infoLines.showAll || vgEvents.infoLines.activeEvent == 0) {
            params = '?eventGroupId=' + vgEvents.infoLines.eventGroupId;
        } else {
            params = '?eventId=' + vgEvents.infoLines.activeEvent;
        }*/
        params = '?eventId=' + vgEvents.infoLines.activeEvent;
        
        vgEvents.infoLines.element.load(liveConfig.infolinesURL + params);	
        vgEvents.startInfoLinesUpdateTimer();
	},
	
	// Requests new events
	queryForUpdates: function() {
        vgEvents.updateInfoLines();
	},
	
	showEvent: function(id) {
		
        // Don't process if we're already showing this event. This means any content
        // that hides the text live must also set vgEvents.infoLines.activeEvent to 0.
        if(vgEvents.infoLines.activeEvent == id) return false;		
        
        // Get event json
        $.getJSON(liveConfig.eventURL + '?id=' + id, vgEvents.parseEvent);

        // Set active id
		vgEvents.infoLines.activeEvent = id;
	},
	
	parseEvent: function(d) {
		if(!d.id) return;
		
		if(d.event_follow) {
			$('#textLive').show();
			vgEvents.updateInfoLines();
		} else {
		    $('#textLive').hide();
		}
		
        // Empty data
        vgEvents.event.element.empty();
		
		// Iframe support
		if(d.type == 'iframe') {
			$('#header .sub').html(d.event_sport + '. ' + d.event_name);
			var html = $('<h2>L&oslash;pende fakta</h2><iframe id="mainEventIframe" name="mainEventIframe" src="' + d.event_url + '" frameborder="0" width="100%" height="700" allowtransparency="true"></iframe>')
			vgEvents.event.element.append(html);
		}
		
		// VGD thread?
		if(d.vgd_id) {
		    vgEvents.getEventThread(d.vgd_id);
		} else {
		    vgEvents.discuss.element.addClass('hidden');
		}
	},
	
	// Discussions
	getEventThread: function(id) {
	    vgEvents.discuss.element
		var url = liveConfig.threadURL + id;
	    var iframe = $('#vgdThread iframe');
	    if(iframe.length) {
		    iframe.attr('src', url);
		} else {
		    iframe = $('<iframe />', { src: url }).attr('frameborder', 0).appendTo(vgEvents.discuss.element);
		}
		vgEvents.discuss.element.removeClass('hidden');
	}
		
}