/**
 * @author Rahul Malik
 */

/*
 * Global Variables
 */
var current_video;
var next_video;
var large_view = false;
var track_db = [];

var just_started = 1;

/*
 *  track database helper functions
 */

function add_artist_to_channel(artist_name){
	var artist = new Artist(artist_name);
	track_db[track_db.length] = artist.tracks;	
	add_artist_to_channels_list(artist);
}

function add_tag_to_channel(tag_name){
	var tag = new Tag(tag_name);
	track_db[track_db.length] = tag.tracks;
	add_tag_to_tags_list(tag);
}

function change_video(){
	if (!!current_video && !!next_video){
		reset_ratings();
		current_video = next_video;
		current_video.display_video();
		next_video = select_next_video();
	}
	else{
		current_video = select_next_video();
		current_video.display_video();		
		next_video = select_next_video();
	}
}

function select_next_video(){
	//loading gif
	var flatten_track_db = track_db.flatten();
	var size = flatten_track_db.size();
	if (size > 0){
		var index = Math.round(flatten_track_db.size()*Math.random())
		if (!!flatten_track_db[index].hasBeenPlayed){
			return select_next_video();
		}
		else{
			if(!!flatten_track_db[index].video_id){
				// end loading gif
				update_coming_up_info(flatten_track_db[index]);
				return flatten_track_db[index];	
			}
			else{
				flatten_track_db[index].hasBeenPlayed = true;
				return select_next_video();
			}
		}
	}

}


/*
 * Display Helper Functions
 */

 function add_artist_to_channels_list(artist){
	$('mychannels').innerHTML += '<li>' + artist.artist_name + '</li>';
 }
 function add_tag_to_tags_list(tag){
 	$('mytags').innerHTML += '<li>' + tag.name + '</li>';
 }
 
 function update_coming_up_info(track){
	 	$('nextthumb').innerHTML = '<img src="' + track.image_url + '" id="nextthumbimg" />';
		var markup = '<p>Artist: '+ track.artist_name + '</p>';
		    markup += '<p>Track: ' + track.title + '</p>';
		$("nextinfo").innerHTML = markup;
		if(large_view){
			$('nextthumbbig').innerHTML = '<img src="' + track.image_url + '" id="nextthumbbig" />';
			var markup = '<p>Artist: '+ track.artist_name + '</p>';
		    markup += '<p>Track: ' + track.title + '</p>';
			$("nextinfobig").innerHTML = markup;
		}
 }
 
 function update_now_playing_info(track){
 		$('nowplayingartist').innerHTML = 'Artist: ' + track.artist_name;
		$('nowplayingtrack').innerHTML = 'Track: ' + track.title;
		for(var i = 1; i <= 5; i++){
			var id = 'tag' + i + '_title';
			var list_elt_id = 'tag' + i;
			var tag_img_id = 'tag' + i + 'pop';
			if(!!track.tags[i-1]){
				$(id).innerHTML = track.tags[i-1];
				$(list_elt_id).style.display = 'block';	
				//var start_markup = '<a onclick="javascript:add_tag_to_channel(\'"' + track.tags[i-1] + '\'")';
				$(tag_img_id).href = "javascript:add_tag_to_channel('" + track.tags[i-1] + "')";		
			}
			else{
				$(list_elt_id).style.display = 'none';
			}

		}
		if (large_view){
			$('nowplayingartistbig').innerHTML = 'Artist: <br/>' + track.artist_name;
			$('nowplayingtrackbig').innerHTML = 'Track: <br/>' + track.title;
		}
		
 }
 
 function update_sign_in_status(){
 	
 }
 
 function reset_ratings(){
	if (large_view){
	 	$('rateswfbig').innerHTML = '<param name="movie" value="rate3.swf">  <embed src="rate3.swf" height="100" width="100">';	
	}
	else{
	 	$('rateswf').innerHTML = '<param name="movie" value="rate3.swf">  <embed src="rate3.swf" height="100" width="100">';		
	}

 }
 
 function reset_player(){
 	var	video_markup = '<embed src="http://www.youtube.com/v/' + current_video.video_id + '&rel=0&color1=0x006699&color2=0x54abd6" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed>';
	$('video').innerHTML = video_markup;		
 }
 
function open_large_view(){
	reset_player();
 	Modalbox.show('server/largeview.php', {title: current_video.artist_name + ' - ' + current_video.title , width: document.viewport.getWidth()-40, 
		params: {
			video_id: current_video.video_id,
			height: document.viewport.getHeight(),
			width: document.viewport.getWidth()
	}});
}

function submitTag(tag){
	var tag = $('tagsearch').value;
	$('tagcontainer').innerHTML = '<img src="images/spinner.gif" style="margin-left:auto;margin-right:auto;"></img>';
	add_tag_to_channel(tag);
	if(isExtendedLeft==0){
		slideSideBarL();		
	}
}

function submitChannel(){
	var artist = $('channelsearch').value;
	$('channelcontainer').innerHTML = '<img src="images/spinner.gif" style="margin-left:134px; margin-top:50px;"></img>';
	add_artist_to_channel(artist);
	
	Modalbox.activate();
	Modalbox.hide();
	if(isExtendedLeft==0){
		slideSideBarL();		
	}	
}

function submitFirstChannel(){
	var artist = $('channelsearch').value;
	$('spinnerfirst').innerHTML = '<img src="images/spinner.gif" style="margin-left:134px; margin-top:50px;"></img>';
	add_artist_to_channel(artist);
	
	Modalbox.activate();
	Modalbox.hide();
	if(isExtendedLeft==0){
		slideSideBarL();		
	}	
}


/*
 * user session functions
 */
function loginUser(){
	var name = $('username').value;
    $('loginlink').innerHTML = '<p class="login_text"></p><a style="margin-top:-18px;">Welcome ' + name + '!</a> | <input type="button" value="Logout" onclick="javascript:signOutUser()" class="button"/>';
	Modalbox.hide();
}

function signOutUser(){
      	var markup = "<input type=\"button\" value=\"Sign Up\" onclick=\"Modalbox.show('register2.html', {title: 'VidEcho - Register', width: 400});\" class=\"button\"/> ";
			markup += "<input type=\"button\" value=\"Login\" onclick=\"Modalbox.show('login.html', {title: 'VidEcho - Login', width: 250});\" class=\"button\"/>";
		$('loginlink').innerHTML = markup;
}