$.fn.dataTableExt.oApi.fnDisplayRow = function ( oSettings, nRow )
{
	var iPos = -1;
	for( var i=0, iLen=oSettings.aiDisplay.length ; i<iLen ; i++ )
	{
		if( oSettings.aoData[ oSettings.aiDisplay[i] ].nTr == nRow )
		{
			iPos = i;
			break;
		}
	}
	
	if( iPos >= 0 )
	{
		oSettings._iDisplayStart = ( Math.floor(i / oSettings._iDisplayLength) ) * oSettings._iDisplayLength;
		this.oApi._fnCalculateEnd( oSettings );
	}
	
	this.oApi._fnDraw( oSettings );
}

function resizeImg() {
	var nPics = 5;
	var itr = 0;
	var imgWidth = 0;
	var maxWidth = $("#imgframe").width();
	for(var i=1; i<=nPics; i++) {
		var imgid='img' + i;
		imgWidth += document.getElementById(imgid).width;
	};
	
	var factor = maxWidth/imgWidth;
	for(var i=1; i<=nPics; i++) {
		var imgid='img' + i;
		document.getElementById(imgid).height = factor * document.getElementById(imgid).height;
		document.getElementById(imgid).width  = factor * document.getElementById(imgid).width;
	}
}

function gotoDate() {
	var j, jLen;
	var col = 4;
	var _DTSettings = oDataTable.dataTableSettings[0];

	var sDate = document.getElementById('datepicker').value;
	var sDate = sDate.replace(/-/g,'/');
	var smSec = Date.parse(sDate);

	for ( j=0, jLen=_DTSettings.aiDisplay.length ; j<jLen ; j++ ) {
		var rmSec = _DTSettings.aoData[ _DTSettings.aiDisplay[j] ]._aData[ col ].replace(/\n/g,"");
		if(rmSec > smSec) {
			oDataTable.fnDisplayRow( oDataTable.fnGetNodes()[ _DTSettings.aiDisplay[j] ] );
			document.getElementById('datepicker').value = "";
			return;
		}
	}
}

function getDataFromServer(cPage) {
	var nPages;
	$.getJSON('http://ws.audioscrobbler.com/2.0/?method=geo.getevents&location=stockholm&page=' + cPage + '&api_key=435c44e57c35aecda17fe8a6d733c1fa&format=json&callback=?', 
		function(data){
			if (data.status) {
			}
			else {
				nPages = data.events["@attr"].totalPages;
				records = data.events["@attr"].total;
				insertData(cPage, data);
				while(cPage < nPages) {
					cPage++;
					$.getJSON('http://ws.audioscrobbler.com/2.0/?method=geo.getevents&location=stockholm&page=' + cPage + '&api_key=435c44e57c35aecda17fe8a6d733c1fa&format=json&callback=?', 
						function(data){
							insertData(cPage, data);
						}
					);
				}
			}
		}
	);
}

function insertData(cPage, data) {
	var eventObj = {"events": []};
	var timestamp;
	var monthname=new Array("Jan","Feb","Mar","Apr","Maj","Jun","Jul","Aug","Sep","Okt","Nov","Dec");
	var params;
	var itr = 0;
	var datasrc, len;
	if (data.events.event.constructor == Array) {
		len = data.events.event.length;
	} else {
		len = 1;
	}
	for (var i=0; i<len; i++) {
		if(len>1) {
			datasrc = data.events.event[i];
		} else {
			datasrc = data.events.event;
		}
		eventObj.events[i]={};
		eventObj.events[i].id = datasrc.id;
		eventObj.events[i].millisec = Date.parse(datasrc.startDate);
		timestamp = new Date (datasrc.startDate);
		eventObj.events[i].datestring = timestamp.getDate() + ' ' + monthname[timestamp.getMonth()] + ' ' + timestamp.getFullYear();
		eventObj.events[i].title = datasrc.title;
		eventObj.events[i].venue_id = datasrc.venue.id;
		eventObj.events[i].venue = datasrc.venue.name;
		if(datasrc.artists.artist != datasrc.artists.headliner) {
			for(var j=0; j<datasrc.artists.artist.length; j++) {
				if(j==0) {
					eventObj.events[i].artists = datasrc.artists.artist[j];
				} else {
					eventObj.events[i].artists += ', ' + datasrc.artists.artist[j];
				}
			}
		} else {
			eventObj.events[i].artists = datasrc.artists.artist;
		}				
		eventObj.events[i].image = datasrc.image[3]["#text"];
	}
	var params = JSON.stringify(eventObj);
	$.post('query.php?module=events&action=save_events',params,function(data) {
		itrRec+=len;
		if(itrRec == records) {					
			$.getJSON('query.php?module=events&action=set_update_time', function(data){});
			$.getJSON('query.php?module=events&action=delete_old_events', function(data){});
		}
	});
}

function _loadEvent(data) {
	var monthname=new Array("Jan","Feb","Mar","Apr","Maj","Jun","Jul","Aug","Sep","Okt","Nov","Dec");
	
	if (data.status) {
	}
	else {
		document.getElementById('title').innerHTML = data.event.title;
		if(data.event.image[3]["#text"] != "") {
			$("<img/>").attr("src", data.event.image[3]["#text"]).appendTo("#image");
		} else {
			var headliner = data.event.artists.headliner;
			$.getJSON('http://api.flickr.com/services/feeds/photos_public.gne?tags=' + headliner + '&tagmode=all&format=json&jsoncallback=?',
				function(data){
					if(data.items[0] && data.items[0].media.m != "" ) {
						$("<img/>").attr("src", data.items[0].media.m).appendTo("#image");
					}
				}
			);
		}
		var artists;
		if(data.event.artists.artist != data.event.artists.headliner) {
			for(var i=0; i<data.event.artists.artist.length; i++) {
				if(i==0) {
					artists = data.event.artists.artist[i];
				} else {
					artists += ', ' + data.event.artists.artist[i];
				}
			}
		} else {
			artists = data.event.artists.artist;
		}
		document.getElementById('artists').innerHTML = artists;
		var spotifystr = data.event.artists.headliner;
		spotifystr = spotifystr.replace(/ /g,'+');
		document.getElementById('spotify').innerHTML = '<a href="spotify:search:' + spotifystr + '">L&auml;nk</a>';					
		var timestamp = new Date (data.event.startDate);
		var startdate = timestamp.getDate() + ' ' + monthname[timestamp.getMonth()] + ' ' + timestamp.getFullYear();
		var starttime = ' kl: ' + timestamp.getHours() + ':' + ((timestamp.getMinutes() < 10) ? "0" : "") + timestamp.getMinutes();
		document.getElementById('date').innerHTML = startdate;
		document.getElementById('time').innerHTML = starttime;
		document.getElementById('venue').innerHTML = '<a href="venue.php?id=' + data.event.venue.id + '">' + data.event.venue.name + '</a>&nbsp;<a href="http://maps.google.com/maps?q=' + data.event.venue.location.street + ', ' + data.event.venue.location.postalcode + ' ' + data.event.venue.location.city + '" target="_blank"">(visa p&aring; karta)</a>';
		document.getElementById('adress').innerHTML = data.event.venue.location.street;	
		document.getElementById('website').innerHTML = '<a href="' + data.event.venue.website +  '" target="_blank">' + data.event.venue.website + '</a>';
		document.getElementById('tickets').innerHTML = data.event.tickets;	
		document.getElementById('descr').innerHTML = data.event.description;
	}
}

function loadEvents(data) {
	var timestamp;
	var monthname=new Array("Jan","Feb","Mar","Apr","Maj","Jun","Jul","Aug","Sep","Okt","Nov","Dec");
	var datasrc, len;
	events = [];
	if (data.events.event.constructor == Array) {
		len = data.events.event.length;
	} else {
		len = 1;
	}
	for (var i=0; i<len; i++) {
		events[i] = [];
		
		if(len>1) {
			datasrc = data.events.event[i];
		} else {
			datasrc = data.events.event;
		}
		events[i][0] = datasrc.id;
		events[i][1] = Date.parse(datasrc.startDate);
		timestamp = new Date (datasrc.startDate);
		events[i][2] = timestamp.getDate() + ' ' + monthname[timestamp.getMonth()] + ' ' + timestamp.getFullYear();
		events[i][3] = '<a href="event.php?id=' + datasrc.id + '">' + datasrc.title + '</a>';
		if(datasrc.artists.artist != datasrc.artists.headliner) {
			for(var j=0; j<datasrc.artists.artist.length; j++) {
				if(j==0) {
					events[i][4] = datasrc.artists.artist[j];
				} else {
					events[i][4] += ', ' + datasrc.artists.artist[j];
				}
			}
		} else {
			events[i][4] = datasrc.artists.artist;
		}
	}
}

function _drawTable(data) {
	if (data.status) {
	}
	else {					
		loadEvents(data);
		if (!oDataTable) {
			var datasrc;
			if (data.events.event.constructor == Array) {
				datasrc = data.events.event[0];
			} else {
				datasrc = data.events.event;
			}
			var venue = datasrc.venue.name;
			var header = 'Kommande spelningar p&aring; ' + venue;
			document.getElementById('headertext').innerHTML = header;
			var pic1 = datasrc.venue.image[2]["#text"];
			var pic2 = datasrc.image[2]["#text"];
			if(pic1 != "") {
				$("<img/>").attr("src", pic1).appendTo("#image");
			} else if(pic2 != "") {
				$("<img/>").attr("src", pic2).appendTo("#image");
			} else {
				var headliner = datasrc.artists.headliner;
				$.getJSON('http://api.flickr.com/services/feeds/photos_public.gne?tags=' + headliner + '&tagmode=all&format=json&jsoncallback=?',
					function(data){
						if(data.items[0] && data.items[0].media.m != "" ) {
						$("<img/>").attr("src", data.items[0].media.m).appendTo("#image");
						}
					}
				);	
			}
			document.getElementById('venue').innerHTML = datasrc.venue.name + '&nbsp;<a href="http://maps.google.com/maps?q=' + datasrc.venue.location.street + ', ' + datasrc.venue.location.postalcode + ' ' + datasrc.venue.location.city + '" target="_blank"">(visa p&aring; karta)</a>';
			document.getElementById('adress').innerHTML = datasrc.venue.location.street;
			document.getElementById('postaladress').innerHTML = datasrc.venue.location.postalcode + ' ' + datasrc.venue.location.city;
			document.getElementById('phone').innerHTML = datasrc.venue.phonenumber;
			var webstring = datasrc.venue.website;
			if(webstring.substring(0,4).toLowerCase() != 'http') {
				webstring = 'http://' + webstring;
			}
			document.getElementById('web').innerHTML = '<a href="' + webstring + '" target="_blank">' + webstring + '</a>';
			oDataTable = $('#dt_example_0').dataTable({
				"aaData": events,
				"aaSorting": [[ 1, "asc" ]],		
				"bJQueryUI": true,
				"sPaginationType": "full_numbers",
				"bPaginate": true,
				"bFilter": true,
				"bInfo": true,
				"bAutoWidth": false,	
				"aoColumns": [
					{ 'sTitle': 'id', bSortable: false, 'bVisible':	false, "sClass": "left", "sWidth": "50px"},
					{ 'sTitle': 'timestamp', bSortable: false, 'bVisible':	false, "sClass": "left", "sWidth": "50px"  },
					{ 'sTitle': 'Datum', bSortable: false, "sClass": "left", "sWidth": "50px"  },
					{ 'sTitle': 'Evenemang', bSortable: false, "sClass": "left", "sWidth": "150px"  },
					{ 'sTitle': 'Artister', bSortable: false, "sClass": "left", "sWidth": "150px"  }
				]
			});
		} else {
			oDataTable.fnClearTable();
			
			for (var i in events) {
				oDataTable.fnAddData(events[i]);
			}
		}
	}
}

function gotoStart() {
	window.location.href = 'index.php';
}

