var videolist = new Array();
var removelist = new Array();
var playlistItems = 0;
var isQuickList = false;

function clearWatchQueue() {
	hideDiv("playlistDiv");
	clearElement(_gel("playlistRows"));
	_gel("playlistVideoCount").innerHTML = "";
	videolist = new Array();
	removelist = new Array();
	playlistItems = 0;

	for (var i = 0; i < quickAddDoneList.length; i++) {
		quickAddDoneList[i].src = 'http://yobitches.com/yourspace/youtube/img/icn_add.gif';
	}
	quickAddDoneList = new Array();
	
	if (isQuickList) {
		postUrlXMLResponse("", "&action_clear_queue", queueCleared);
	}
}

function remove_from_watch_queue(video_id) {
	removelist.push(video_id);
	delete_videos_from_server();
	return false;
}

function set_pop_status(pop_status) {
	postUrlXMLResponse("", "action_set_pop_status&pop_videos="+pop_status, self.popStatusSet)
}

function popStatusSet() {
}

function post_videos_to_server() {
	if (videolist.length>0) {
		postUrlXMLResponse("", "&action_add_to_queue&video_id=" + videolist[videolist.length-1], self.videoQueued);
		videolist.pop();
	}
}

function delete_videos_from_server() {
	if (removelist.length>0) {
		postUrlXMLResponse("", "&action_remove_from_queue&video_id=" + removelist[removelist.length-1], self.videoRemoved);
		removelist.pop();
	}
}

function clearElement(el) {
	while(el.firstChild) {
		el.removeChild(el.firstChild);
	}
}

function queueCleared(xmlHttpRequest) {
}

function queueClearedReloadPage(xmlHttpRequest) {
	window.location="watch_queue?all";
}

function videoQueued(xmlHttpRequest) {
	post_videos_to_server();
}

function videoRemoved(xmlHttpRequest) {
	delete_videos_from_server();
}

function clicked_add_icon(video_ID, fromRelated) {
	if (fromRelated == 1) {
		showQuickList_first_add();
		_gel('play_all_numb').innerHTML=quicklist_count+'&nbsp;';
		if (_gel('show_all_video_number')) {
			_gel('show_all_video_number').innerHTML = quicklist_count;
		}
	}
	_gel(button_name).blur();
}

function play_all_start_new() {
	tempURL = first_video_id + '&playnext=1';
	window.location=tempURL;
	_gel('play_all_buttton').blur();
}


function jumpToNowPlaying(endOfList) {
	if ( navigator.appName == 'Microsoft Internet Explorer') {
		pixelsFromTop=document.documentElement.scrollTop;
	}
	else {
		pixelsFromTop=window.pageYOffset;
	}
	if (navigator.userAgent.indexOf('Safari') == -1) {
		if(endOfList==1) {
			if (_gel('now_playing_end')) {
				location.href='#now_playing_end';
			}
		}
		else {
			if (_gel('now_playing')) {
				location.href='#now_playing';
			}
		}
		window.scrollTo(0,pixelsFromTop);
	}
}

// document me
function clickedQuickAdd(img, vid, videoImgSrc, title, username, duration) {
	if (!isQuickList) {
		clearWatchQueue();
		hideDiv('playlistTitleTitled');
		showDiv('playlistTitleUntitled');
		showDiv('playlistActions');
		isQuickList = true;
	}

	videolist.push(vid);

	img.src='http://yobitches.com/yourspace/youtube/img/icn_add_done.gif';

	// if we're being given extra data, we'll assume we're on the watch page
	// and update the UI
	if (typeof(videoImgSrc) != 'undefined') {
		_gel("playlistDiv").style.display = "block";
		_gel("playlistRows").appendChild(createPlaylistRow(videoImgSrc, title, username, vid, duration, true, false));
		_gel("playlistVideoCount").innerHTML = playlistItems;;
	}

	post_videos_to_server();
}


//
var quickAddDoneList = new Array();
function mouseOverQuickAdd(img) {
	if (!img.src.match('done')) {
		quickAddDoneList[quickAddDoneList.length] = img;
		img.src='http://yobitches.com/yourspace/youtube/img/icn_add_over.gif';
	}
}


//
function mouseOutQuickAdd(img) {
	if (!img.src.match('done')){
		img.src='http://yobitches.com/yourspace/youtube/img/icn_add.gif';
	}
}


//
function removeVideo(rowId, vid) {
	var playlistRow = _gel("playlistRow_" + rowId);
	var playlistRows = _gel("playlistRows");
	playlistRows.removeChild(playlistRow);
	
	var newIndex = 1;
	for (var i = 0; i < nextvideoRow; i++) {
		var index = _gel("playlistIndex_" + i);
		if (index) {
			index.innerHTML = newIndex;
			newIndex++;
		}
	}
	playlistItems--;
	_gel("playlistVideoCount").innerHTML = playlistItems;

	remove_from_watch_queue(vid);
}

function createVideoThumb(imgSrc, href, size) {
	var outer = createDiv("v" + size + "WrapperOuter");
	var inner = createDiv("v" + size + "WrapperInner");

	var img = document.createElement("img");
	img.className = "vimg" + size;
	img.src = imgSrc;

	var a = null;
	if (href) {
		a = document.createElement("a");
		a.href = href;
	}
	if (a) {
		a.appendChild(img);
		inner.appendChild(a);
	} else {
		inner.appendChild(img);
	}

	outer.appendChild(inner);
	return outer;
}


function createDiv(class_) {
	var div = document.createElement("div");
	if (class_) {
		div.className = class_;
	}
	return div;
}

function getCenteredVertiacally(el) {
	var table = document.createElement("table");
	var tr = document.createElement("tr");
	var td = document.createElement("td");
	td.appendChild(el);
	tr.appendChild(td);
	table.appendChild(tr);
	table.style.height = "100%";
	tr.style.verticalAlign =  "middle";
	td.style.verticalAlign =  "middle";
	return table;
}

var currentVideoDivId = "";
function scrollPlaylistToCurrentVideo() {
	var v = _gel(currentVideoDivId);
	if (v) {
		_gel("playlistContainer").scrollTop = v.offsetTop;
	}
}


var nextvideoRow = 0;
function createPlaylistRow(imgSrc, title, username, vid, duration, deletable, nowPlaying) {
	playlistItems++;
	var watchUrl = vid;

	var index = document.createTextNode(playlistItems);
	var indexSpan = document.createElement('span');
	indexSpan.id ="playlistIndex_" + nextvideoRow;
	indexSpan.appendChild(index);
	var indexDiv = createDiv("playlistIndex");
	indexDiv.appendChild(getCenteredVertiacally(indexSpan));

	var leftDiv = createDiv("playlistRowLeft");
	var thumb = createVideoThumb(imgSrc, watchUrl, 50);
	leftDiv.appendChild(thumb);

	var midDiv = createDiv("playlistRowMiddle");
	var titleDiv = createDiv("vtitle")
	var usernameDiv = createDiv("vfacet");
	var titleLink = document.createElement("a");
	titleLink.innerHTML = title;
	titleLink.href = watchUrl;
	titleDiv.appendChild(titleLink);
	usernameDiv.innerHTML = username;
	midDiv.appendChild(titleDiv);
	midDiv.appendChild(usernameDiv);

	var rightDiv = createDiv("playlistRowRight");
	var durationSpan = document.createElement("span");
	durationSpan.className = "playlistItemDuration";
	durationSpan.appendChild(document.createTextNode(duration));
	rightDiv.appendChild(durationSpan);

	var x  = document.createElement('img');
	x.className = "playlistRowDeleter";
	if (!deletable) {
		x.style.visibility = "hidden";
	}
	x.src = "http://yobitches.com/yourspace/youtube/img/delete.gif";
	x.onclick = removeVideoLater(nextvideoRow, vid); 
	
	rightDiv.appendChild(x);
	

	var row;
	var rowId = "playlistRow_" + nextvideoRow;
	if (nowPlaying) {
	  row = createDiv("playlistRowPlaying");
		currentVideoDivId = rowId;
	} else {
	  row = createDiv("playlistRow");
	}
	row.id = rowId;
	row.appendChild(indexDiv);
	row.appendChild(leftDiv);
	row.appendChild(midDiv);
	row.appendChild(rightDiv);
	
	nextvideoRow++;

	return row;
}

function removeVideoLater(rowId, vid) {
	return function() { removeVideo(rowId, vid) };
}
