//-----( @QueueDel )-------------------------------------------------
// DESCRIPTION: lets people delete shows from their queue using ajax
// URL: /sync/queue/
var QueueDel = {
	init: function()
		{
		if (!document.getElementById) return false;
		if (!document.getElementsByTagName) return false;
		if (!setTimeout) return false;
		if (!document.getElementById('queue-table')) return false;
		var ahrefs = document.getElementById('queue-table').getElementsByTagName('a');
		for (var i=0;i<ahrefs.length;i++)
			{
			if (/delete/.test(ahrefs[i].className))
				{
				addEventToObject(ahrefs[i],'onmouseover',QueueDel.hover);
				addEventToObject(ahrefs[i],'onclick',QueueDel.click);
				addEventToObject(ahrefs[i],'onmouseout',QueueDel.blur);
				}
			}
		var oDelAll = document.getElementById('delete-all');
		if (oDelAll)
			{
			addEventToObject(oDelAll,'onmouseover',QueueDel.hoverAll);
			addEventToObject(oDelAll,'onmouseout',QueueDel.blurAll);
			}
		},
	hover: function(ev)
		{
		if (!ev) ev = window.event;
		var eventElement = (window.event) ? window.event.srcElement : ev.target;    
		while (eventElement.nodeName.toLowerCase() != 'tr') {eventElement = eventElement.parentNode;}
		eventElement.classNameOrig = eventElement.className;
		eventElement.className = 'pre-deleting';
		},
	blur: function(ev)
		{
		if (!ev) ev = window.event;
		var eventElement = (window.event) ? window.event.srcElement : ev.target;    
		while (eventElement.nodeName.toLowerCase() != 'tr') {eventElement = eventElement.parentNode;}
		eventElement.className = eventElement.classNameOrig;
		},
	hoverAll: function()
		{
		var aTrs = document.getElementById('queue-table').getElementsByTagName('tr');
		for (var i=0;i<aTrs.length;i++)
			{
			aTrs[i].classNameOrig = aTrs[i].className;
			aTrs[i].className = 'pre-deleting';
			}
		},
	blurAll: function()
		{
		var aTrs = document.getElementById('queue-table').getElementsByTagName('tr');
		for (var i=0;i<aTrs.length;i++)
			{
			aTrs[i].className = aTrs[i].classNameOrig;
			}
		},
	click: function(ev)
		{
		if (!ev) ev = window.event;
		var eventElement = (window.event) ? window.event.srcElement : ev.target;    
		while (eventElement.nodeName.toLowerCase() != 'a') {eventElement = eventElement.parentNode;}
		var sShowId = eventElement.id.substring(1);
		var oShowTr = eventElement;
		while (oShowTr.nodeName.toLowerCase() != 'tr') {oShowTr = oShowTr.parentNode;}
		oShowTr.className = 'deleting';
		oShowTr.fadeCount = 110;
		var newDate = new Date();
		var uniqueId = newDate.getTime();
		QueueDel.fade(uniqueId,oShowTr);
		ajaxRequest('/show/'+sShowId+'/queue-remove/ajax/');
		stopDefaultAction(ev);
		return false;
		},
	fade: function(id,obj)
		{
		if (obj.fadeCount <= 0)
			{
			obj.style.display = 'none';
			obj.deleted = 1;
			clearTimeout(timeouts[id]);
			QueueDel.renumber();
			}
		else
			{
			obj.fadeCount -= 10;
			if (obj.fadeCount <= 100)
				{
				var opac = ((obj.fadeCount/100) > 0.999) ? 0.999 : (obj.fadeCount/100);
				obj.style.KHTMLOpacity = opac; // Safari<1.2, Konqueror
				obj.style.MozOpacity = opac; // Older Mozilla and Firefox
				obj.style.opacity = opac; // Safari 1.2, newer Firefox and Mozilla, CSS3
				obj.style.zoom = 1; // bizarre ie fix
				obj.style.filter = 'alpha(opacity:'+obj.fadeCount+')'; // IE/Win
				}
			var delay = (obj.fadeCount == 0.999) ? 1000 : 65;
			timeouts[id] = setTimeout(function(){QueueDel.fade(id,obj)},delay);
			}
		},
	renumber: function()
		{
		var aTbody = document.getElementById('queue-table').getElementsByTagName('tbody');
		var aTrs = aTbody[0].getElementsByTagName('tr');
		var iC = 1;
		for (var i=0;i<aTrs.length;i++)
			{
			if (aTrs[i].deleted != true)
				{
				aTrs[i].className = (iC % 2) ? '' : 'even';
				var aTds = aTrs[i].getElementsByTagName('td');
				aTds[0].innerHTML = iC+'.';
				iC++;
				}
			}
		}
	};
//-----( END )-------------------------------------------------
	

addEventToObject(window,'onload',QueueDel.init);