vgEvents = {

	infoLines: {
		showAll: false,
	    element: $('#infolines'),
	    activeEvent: 0,
	    updateTimer: null,
	    interval: 10,
	    eventIds: [0],
	    eventGroupId: 0
	},

	event: {
		element: $('#eventMain')
	},

	schedule: {
		element: $('#eventList'),
		offset: 0
	},

	// Start requesting updates
	startInfoLinesUpdateTimer: function() {
		window.clearTimeout(vgEvents.infoLines.updateTimer);
		vgEvents.infoLines.updateTimer = window.setTimeout(vgEvents.queryForUpdates, vgEvents.infoLines.interval * 1000);
	},


    checkIphoneId: function(eventId) {
        var iphoneId = liveConfig.iphoneId;

        if (iphoneId != '') {
            $.getJSON(liveConfig.checkIphoneUrl + '?iphoneId=' + iphoneId + '&filterId=' + eventId + '&filterType=' + vgEvents.infoLines.filterType, function(d) {
                if (d.valid) {
                    $('#pushSelect').removeClass('hidden');
                    $('#pushSelectHeader').removeClass('on');

                    if (d.enabled) {
                        $('#pushSelectHeader').addClass('on');
                    }
                } else {
                    $('#pushSelect').addClass('hidden');
                }
            });
        } else {
            $('#pushSelect').addClass('hidden');
        }
    },

	checkHash: function() {
		var hash = window.location.hash;
		var id = parseInt(hash.substr(hash.indexOf('#')+1), 10);

		if(id > 0) vgEvents.showEvent(id);
	},

	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;

		// Check for iphonePush
		vgEvents.checkIphoneId(id);
	},

	parseEvent: function(d) {
		if(!d.id) return;

		if(d.event_follow) {
			$('#textLive').show();
			vgEvents.updateInfoLines();
			$('#eventTitle').text(d.event_sport + ': ' + d.event_name);

			$('#scheduleHeader').addClass('open');
			$('#scheduleContainer').addClass('hidden');

		} else {
			$('#textLive').hide();
			$('dl.program').html('<dd>Denne LIVE-begivenheten kan dessverre ikke vises p&aring; mobiltelefon.</dd>');
		}

        // Empty data
        vgEvents.event.element.empty();


		// Iframe support
		if(d.type == 'iframe') {
			$('#header .sub').html(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="500" allowtransparency="true"></iframe>')
			vgEvents.event.element.append(html);
		}
	}

}

