var apikey = '';
var test = false;
var ajax_url = '/ajax.txt';
var updateTimer;
var refreshTime = 150000;  //mili seconds

// extend jquery
(function($) {
    // jQuery function to set a maximum length or characters for a page element it can handle mutiple elements
        $.fn.createExcerpts = function(elems,length,more_txt) {
        $.each($(elems), function() {
            var item_html = $(this).html(); //
            item_html = item_html.replace(/<\/?[^>]+>/gi, ''); //replace html tags
            item_html = jQuery.trim(item_html);  //trim whitespace
            $(this).html(item_html.substring(0,length)+more_txt);  //update the html on page
        });
        return this; //allow jQuery chaining
    }
})(jQuery);

/*
	$('#page-header').append(
		$('<img/>')
			.attr('id', 'header-logo-hover')
			.fadeTo(0,0)
			.attr('src', $('#header-logo').attr('src').replace(/\/[^\/]+$/, '/top-logo-hover.png'))
	)
	$('#header-logo, #header-logo-hover')
			.hover(
				function(){
					$('#header-logo-hover').stop(true, false).fadeTo(150,1)
				}, 
				function(){
					$('#header-logo-hover').stop(true, false).fadeTo(150,0)
				}
			)
*/		
function updateMediaCaroussel()
{
	$('#gallery-photos-slider').jcarousel();
	$('#gallery-videos-slider').jcarousel();
	
	   $("a[rel=gig_gallery],a#gig-main-photo").fancybox({
	       'transitionIn'        : 'fade',
	       'transitionOut'        : 'fade',
	       'titlePosition'    : 'over',
	       'titleFormat'        : function(title, currentArray, currentIndex, currentOpts) {
	           return '<span id="fancybox-title-over">Image ' + (currentIndex + 1) + ' / ' + currentArray.length + (title.length ? ' &nbsp; ' + title : '') + '</span>';
	       }
	   });
}	
			
function updateRatings()
{
	$('ul.rate').each(function(){
		stars = $(this).find('li')
		if($(this).is('[rating]')){
			r = parseInt($(this).attr('rating'))
			if(r>0){
				for(i=0;i<r;i++){
					$(stars[i]).addClass('active')
				}
			}
		}
		/*
		stars.find('a').click(function(e){
			e.preventDefault()
			stars = $(this).parent().parent().children('li')
			r = $(this).parent().index()
			stars.each(function(){
				if($(this).index()<=r){
					$(this).addClass('active')
				}
				else{
					$(this).removeClass('active')
				}
			})
			ratingAction(stars.parent(), r+1)
		})
		*/
	})
}

function updateNbOfGigs(user_id)
{
	console.log("updateNbOfGigs");
	 getNumberOfLockedGigs(function(result)
	 {
			console.log("updateNbOfGigs: " + result.nbOfLockedGigs);
			$('#nbOfLockedGigs').empty();
			$('#nbOfLockedGigsTmpl').tmpl(result).appendTo('#nbOfLockedGigs');
	 }, 
	 apikey, user_id
	);
}

function updateGigLibrary(user_id, filter)
{
	 getLibrary(function(gigs)
	 {
		if(gigs.status == '0')
		{
			console.log("Error getLibrary " + gigs.message);
		}
		else
		{
			console.log("updateGigLibrary updating list");
			$('#userGigList div').remove();
			$('#userGigsTmpl').tmpl(gigs).appendTo('#userGigList');
			
		}
	 }, 
	 apikey, user_id, filter
	);
	
}

function updateRecentlyLockedGigs(user_id)
{
	 filter = Array();
	 filter['limit'] = 6;

     getRecentlyLockedGigs(function(gigs)
	 {
		if(gigs.status == '0')
		{
			console.log("Error updateRecentlyLockedGigs " + gigs.message);
		}
		else
		{
			console.log("updateRecentlyLockedGigsList updating list");
			$('#rlockedGigs div').remove();
	    	$('#rlockedGigItemTmpl').tmpl(gigs).appendTo('#rlockedGigs');
		}
	 }, 
	 apikey, filter
	);
	console.log("setting timer");
	updateRatings();
	$().updateLastFmImages('.artist_image');
	updateTimer=setTimeout("updateRecentlyLockedGigs()",refreshTime);
}

function updateUserGig(audience_id)
{
	console.log("updateUserGig with audience id " + audience_id);
	gig_id = '';
     getGigDetails(function(gigDetails)
	 {
		if(gigDetails.status == '0')
		{
			console.log("Error updateUserGig " + gigDetails.message);
		}
		else
		{
			console.log("updateUserGig updating div");
			$('#userGig div').empty();
	    	$('#userGigTmpl').tmpl(gigDetails).appendTo('#userGig');
		}
	 }, 
	 apikey, gig_id, audience_id
	);
}

function updateArtistDetails(artist_id)
{
	getArtistDetails(function(artist)
	 {
		$('#artistDetails').empty();
		$('#artistDetailsTmpl').tmpl(artist).appendTo('#artistDetails');
	 },
	 apikey, 
	 artist_id
	);
}

function updateVenue(venue_id)
{
	getVenue(function(venue)
	{
		$('#venueDetails').empty();
		$('#venueDetailsTmpl').tmpl(venue).appendTo('#venueDetails');
		$('#stageList li').remove();
		$('#stageListItemTmpl').tmpl(venue['stages']).appendTo('#stageList');
	}, 
    venue_id
	);
}

function updateMostVisitedVenues(user_id)
{
	 audience_id = '';
     getVisitedVenues(function(venues)
	 {
		if(venues.status == '0')
		{
			console.log("Error updateMostVisitedVenues " + venues.message);
		}
		else
		{
			/*
			console.log("Updating gigAudienceList");
			$('#gigAudienceList').empty();
			$('#gigAudienceListItemTmpl').tmpl(gigAudience.audience).appendTo('#gigAudienceList');

			$('#gigAudienceListTest').empty();
			$('#gigAudienceListTmpl').tmpl(gigAudience).appendTo('#gigAudienceListTest');
		   */
		}
	 }, 
	 apikey, user_id, audience_id
	);
}


function updateUserGigMedia(audience_id)
{
	 console.log("updateUserGigMedia with audience_id " + audience_id);
	 filter = Array();
	 filter['limit'] = 6;
	 type = '';	// or 'video' of all if left empty
	
     getGigMedia(function(media)
	 {
		if(media.status == '0')
		{
			console.log("Error updateUserGigPhotos " + media.message);
		}
		else
		{
			console.log("Number of photos: " + media.photos.length);
			console.log("Number of videos: " + media.videos.length);

	    	if(media.photos.length > 0)
			{
				$('#gigPhotos').empty();
				$('#gig-photosTmpl').tmpl(media).appendTo('#gigPhotos');
				$('#gallery-photos-slider li').remove();
				$('#userGigPhotosTmpl').tmpl(media.photos).appendTo('#gallery-photos-slider');
			}
		
			if(media.videos.length > 0)
			{
				$('#gigVideos').empty();
				$('#gig-videosTmpl').tmpl(media).appendTo('#gigVideos');
				$('#gallery-videos-slider li').remove();
				$('#userGigVideosTmpl').tmpl(media.videos).appendTo('#gallery-videos-slider');
			}
			//console.log("One photo: " + photos.toSource());	
			
			/*
			console.log("updateUserGigPhotos updating div " + media);
			$('#gallery-photos-slider li').remove();  // remove all list items
	    	$('#userGigPhotosTmpl').tmpl(media['photos']).appendTo('#gallery-photos-slider');
			*/
		}
	 }, 
	 apikey, audience_id, type, user_id
	);
}

function updateGigAudience(audience_id)
{
     getAudience(function(gigAudience)
	 {
		if(gigAudience.status == '0')
		{
			console.log("Error updateGigAudience " + gigAudience.message);
		}
		else
		{
			console.log("Updating gigAudienceList");
			$('#gigAudienceList').empty();
			$('#gigAudienceListItemTmpl').tmpl(gigAudience.audience).appendTo('#gigAudienceList');

			$('#gigAudienceListTest').empty();
			$('#gigAudienceListTmpl').tmpl(gigAudience).appendTo('#gigAudienceListTest');
		}
	 }, 
	 apikey, audience_id
	);
}

function updateOtherGigsFromUser(user_id, filter)
{
	console.log("getLibrary for user_id " + user_id);
	 getLibrary(function(gigs)
	 {
		if(gigs.status == '0')
		{
			console.log("Error updateOtherGigsFromUser " + gigs.message);
		}
		else
		{
			if(gigs.length > 0)
			{
				console.log("updateOtherGigsFromUser updating list");
				$('#userGigMore').empty();
				$('#userMoreLockedGigsTmpl').tmpl({nbOfGigs: gigs.length}).appendTo('#userGigMore');
				$('#userOtherGigs').empty();
				$('#userGigMoreTmpl').tmpl(gigs).appendTo('#userOtherGigs');
			}
		}
	 }, 
	 apikey, user_id, filter
	);
	
}


