var addthis_config = {
	data_track_clickback: true
}

try {
	var playlistReady = playerReady;
} catch (err){
}

playerReady = function(obj) {
	setTimeout(function(){checkPlaylistLoaded(obj)}, 1);
	try {
		playlistReady(obj);
	} catch (err){
	}
}

function itemHandler(obj) {
	var item = obj['index'];
	var playlist = $("#"+obj['id']).next();
	var currentItem = 0;
	playlist.children().each(function(){
		if (currentItem == item) {
			$(this).addClass("playing");
		} else {
			$(this).removeClass("playing");
		}
		currentItem++;
	});
}

function checkPlaylistLoaded(obj) {
	var player = document.getElementById(obj['id']);
	var jsPlaylist = player.getPlaylist();
	if (jsPlaylist.length > 0) {
		var playlist = createPlaylist(obj);
		populatePlaylist(player, jsPlaylist, playlist);
		player.addControllerListener("PLAYLIST","playlistHandler");
		player.addControllerListener("ITEM","itemHandler");
	} else {
		setTimeout(function(){checkPlaylistLoaded(obj)}, 150);
	}
}

function createPlaylist(obj){
	var playerDiv = $("#"+obj['id']);
	playerDiv.after("<div class='jw_playlist_playlist'></div><a href='http://viewer.zmags.com/publication/3aa5fb2d#/3aa5fb2d/1'><img class='digital_mag_ad' src='../images/worship/digital_mag_banner.gif' /></a>");
	return playerDiv.next();
}

function playlistHandler(obj){
	var player = document.getElementById(obj['id']);
	var jsPlaylist = player.getPlaylist();
	var playerDiv = $("#"+obj['id']);
	var playlist = playerDiv.next();
	populatePlaylist(player, jsPlaylist, playlist);
}

function populatePlaylist(player, jsPlaylist, playlist){
	playlist.empty();
	for (var i=0;i<jsPlaylist.length;i++) {
		var jsItem = jsPlaylist[i];
		var alternate = "even";
		if (i % 2) {
			alternate = "odd";
		}
		playlist.append("<div class='jw_playlist_item "+alternate+"'>"+dump(jsItem)+"</div>");
	}
	var playlistItem = 0;
	playlist.children().each(function(){
		var currentItem = playlistItem;
		$(this).click(function () {
			player.sendEvent("ITEM", currentItem);
		});
		playlistItem++;
	});
}

function dump(arr) {
	var output = "<div class='jw_playlist_image_div'><img src='${thumb}' class='jw_playlist_image' /></div><div class='jw_playlist_title'><h4 class='white'>${title}</h4></div><div class='jw_playlist_description'>${description}</div><div class='clear'></div>";
	var variables = getVars(output);
	for (var j=0; j<variables.length; j++) {
		var variable = variables[j];
		var varName = variable.replace('${','').replace('}','');
		var value = arr[varName];
		if (!value) {
			value = '';
		}
		output = output.replace(variable, value);
	}
	output = output.replace("<div class='jw_playlist_image_div'><img src='' class='jw_playlist_image' /></div>","");
	return output;
}

function dumpText(arr) {
	var dumped_text = "";
	if(typeof(arr) == 'object') {
		for(var item in arr) {
			var value = arr[item];		
			if(typeof(value) == 'object') {
				dumped_text += "<div class='"+item+"'>";
				dumped_text += dump(value);
				dumped_text += "</div>";
			} else {
				dumped_text += "<div class='"+item+"'>"+ value + "</div>";
			}
		}
	} else {
		dumped_text += arr+" ("+typeof(arr)+")";
	}
	return dumped_text;
}

function getVars(str){
	return str.match(/\$\{(.*?)\}/g);
}

var player     = null;
var playlist   = null;
var playItem   = null;
var id         = null;
var shareLink  = 'http://www.creationfest.com/worship/index.php?v=';
var file			 = null;
var shareid		 = swfobject.getQueryParamValue('v');

if(!(file = swfobject.getQueryParamValue('p')))
{
  // use default playlist
  file = 'artists';
}

if(!(playItem = swfobject.getQueryParamValue('v'))) {
  //...default is first item (array counting starts at 0)
  playItem = 0;
}

if(!(id = swfobject.getQueryParamValue('id'))) {
  //...default is first item
  id = null;
} else {
	playAway();
}

function playerReady(obj) {
  player = document.getElementById(obj.id);
  playAway();
  addListeners();
};

function addListeners() {
  playlist = player.getPlaylist();

  // find out if link matches a video in the playlist
  for(var j in playlist) {
		// magic
		// if it does - then play the video specified in the link
		if(shareid == playlist[j].shareid) {
			playItem = j;
		}
  }

  if(playlist.length > 0) {
    player.addControllerListener('ITEM', 'itemMonitor');
    itemMonitor({index:0});
  } else {
		alert('Try Again!');
    setTimeout("addListeners();", 100);
  }
};

function itemMonitor(obj) {
  
	// change the title next to the button
  gid('share_title').innerHTML = playlist[obj.index]['title'];
  gid('share_title_2').innerHTML = playlist[obj.index]['title'];
	// change out the URL being shared based on the video playing
  gid('video_url').setAttribute('value', shareLink + playlist[obj.index]['shareid']);
  gid('addthis_email').setAttribute('href', 'http://api.addthis.com/oexchange/0.8/forward/email/offer?url=' + shareLink + playlist[obj.index]['shareid'] + '&amp;username=creationfestival');
  gid('addthis_facebook').setAttribute('href', 'http://api.addthis.com/oexchange/0.8/forward/facebook/offer?url=' + shareLink + playlist[obj.index]['shareid'] + '&amp;username=creationfestival');
  gid('addthis_twitter').setAttribute('href', 'http://api.addthis.com/oexchange/0.8/forward/twitter/offer?url=' + shareLink + playlist[obj.index]['shareid'] + '&amp;username=creationfestival');
  gid('addthis_digg').setAttribute('href', 'http://api.addthis.com/oexchange/0.8/forward/digg/offer?url=' + shareLink + playlist[obj.index]['shareid'] + '&amp;username=creationfestival');
  gid('addthis_stumble').setAttribute('href', 'http://api.addthis.com/oexchange/0.8/forward/stumbleupon/offer?url=' + shareLink + playlist[obj.index]['shareid'] + '&amp;username=creationfestival');
  gid('addthis_myspace').setAttribute('href', 'http://api.addthis.com/oexchange/0.8/forward/myspace/offer?url=' + shareLink + playlist[obj.index]['shareid'] + '&amp;username=creationfestival');
  
  // change artist bio to current artists bio
  gid('artist_bio').innerHTML = playlist[obj.index]['bio'];
  gid('artist_photo').setAttribute('src', playlist[obj.index]['photo']);
  gid('artist_twitter').setAttribute('href', playlist[obj.index]['twitter']);
  gid('artist_facebook').setAttribute('href', playlist[obj.index]['facebook']);
  gid('artist_myspace').setAttribute('href', playlist[obj.index]['myspace']);
  gid('artist_album').setAttribute('href', playlist[obj.index]['album']);

  gid('toolbox').setAttribute('addthis:url', shareLink + playlist[obj.index]['shareid']);
  //gid('toolbox').setAttribute('addthis:title', playlist[obj.index]['title']);
};

function gid(name) {
  return document.getElementById(name);
};

//...start the player on the query parameter item
function playAway() {
  if(id == null) {
		//alert('playAway:\nplayAway - playItem:' + playItem);
    setTimeout("player.sendEvent('ITEM', playItem)", 200);
    setTimeout("player.sendEvent('PLAY', 'false')", 400);
  } else {
    playIt(id);
  //setTimeout("playAway()", 200);
  }
};

//...start the player on the play item by Title
function playIt(id) {
  var title    = unescape(id);
  var playlist = player.getPlaylist();
  
  for(var j in playlist) {
    if(title == playlist[j].title) {
			//alert('playIt:\nTitle:' + title + '\nPlaylist Title: ' + playlist[j].title + '\nIndex: ' + j);
      player.sendEvent('ITEM', j);
      break;
    }
  }
};

var flashvars =
{
  file:                         file + '.xml',
  autostart:                    'false',
  shuffle:                      'false',
  playlist:                     'false',
  playlistsize:                 '270',
  frontcolor:                   'ffffff',
  lightcolor:                   '073042',
  backcolor:                    '08354a',
  repeat:                       'list'
  //skin:													'beelden.zip'
};

var params =
{
  allowfullscreen:              'true', 
  allowscriptaccess:            'always'
};

var attributes =
{
  id:                           'player1', 
  name:                         'player1'
};

swfobject.embedSWF('../swf/player.swf', 'video_player', '680', '374', '9.0.124', false, flashvars, params, attributes);
