/* k4youtube.js
 * how does this work again?
 */

var k4youtubeWatching = '';
var k4youtubePreview;
var k4youtubePlayer;

function k4youtube_openPreview(yid)
{
	k4youtubePreview = document.getElementById('k4youtubePreview');
	k4youtubePlayer  = document.getElementById('k4youtubePlayer');
	var previewImage = document.getElementById('k4youtubePreviewImage');

	if (k4youtubeWatching != '')
	{
		var left  = parseInt(getStyle(k4youtubePlayer, 'left'));
		var width = 
			(typeof window.innerWidth != 'undefined') ? window.innerWidth :
			(typeof document.documentElement != 'undefined' &&
			 typeof document.documentElement.clientWidth != 'undefined' &&
					document.documentElement.clientWidth != 0) ?
					document.documentElement.clientWidth :
					document.getElementsByTagName('body')[0].clientWidth;
		
		if (left + 213 > (width / 2))
		{
			k4youtubePreview.style.left = ((left - 155) - 10) + 'px';
		}
		else
		{
			k4youtubePreview.style.left = ((left + 425) + 10) + 'px';
		}

		k4youtubePreview.style.top = parseInt(getStyle(k4youtubePlayer, 'top')) + 'px';
	}
	else
	{
		k4youtubePreview.style.left = '10px';
		k4youtubePreview.style.top  = '10px'
	}
	
	k4youtubePreview.style.display = 'inline';
	previewImage.src = 'http://img.youtube.com/vi/' + yid + '/2.jpg';
}

function k4youtube_closePreview()
{
	k4youtubePreview.style.display = 'none';
}

function k4youtube_closePlayer()
{
	document.getElementById('k4youtubeObject').innerHTML = ''; // shut up IE
	k4youtubePlayer.style.display = 'none';
	k4youtubeWatching = '';
}

function k4youtube_secjunk(time)
{
	var start = 0;

	if (time.length > 0 && time.indexOf('m') == -1 && time.indexOf('s') == -1)
	{
		sec = parseInt(time);

		if (sec != 'NaN')
			start += sec;
	}

	if (time.indexOf('m') > 0)
	{
		var min = time.split('').reverse().join('');
		min = min.substr(min.indexOf('m') + 1);
		min = parseInt(min);

		if (min != 'NaN')
		{
			min = min.toString().split('').reverse().join('');
			start = parseInt(min) * 60;
		}
	}

	if (time.indexOf('s') > 0)
	{
		var sec = time.split('').reverse().join('');
		sec = sec.substr(sec.indexOf('s') + 1);
		sec = parseInt(sec);

		if (sec != 'NaN')
		{
			sec = sec.toString().split('').reverse().join('');
			start += parseInt(sec);
		}
	}

	return start;
}

function k4youtube_openPlayer(yid, time)
{
	var start = 0;

	if (time)
		start = k4youtube_secjunk(time);

	if ( ! k4youtubeWatching)
	{
		new k4draggable(document.getElementById('k4youtubePlayer'));
		var el = document.getElementById('k4youtubePlayerTitle');
		el.onmouseover = function() { this.style.cursor = 'move'; }
		el.onmouseout  = function() { this.style.cursor = 'default'; }
	}
	
	k4youtubeWatching = yid;
	
	k4youtube_closePreview();
	k4youtubePlayer.style.display = 'inline';

	// oh for fuck sake...
	document.getElementById('k4youtubeObject').style.display = 'none';
	document.getElementById('k4youtubeObject').innerHTML = 
		'<object style="width:425px;height:350px;">' +
		'<param name="movie" value="http://www.youtube.com/v/' + yid + '&start=' + start + '"></param>' +
		'<param name="wmode" value="transparent"></param>' +
		'<embed src="http://www.youtube.com/v/' + yid +'&start=' + start +'"' +
		'type="application/x-shockwave-flash" wmode="transparent" width="425" height="350">' +
		'</embed></object>'
	setTimeout("document.getElementById('k4youtubeObject').style.display='inline'", 1);
}

function getStyle(oElm, strCssRule)
{
	var strValue = "";

	if (document.defaultView && document.defaultView.getComputedStyle)
	{
		var css = document.defaultView.getComputedStyle(oElm, null);
		strValue = css ? css.getPropertyValue(strCssRule) : null;
	}
	else if (oElm.currentStyle)
	{
		strCssRule = strCssRule.replace(/\-(\w)/g, function (strMatch, p1)
		{
			return p1.toUpperCase();
		});

		strValue = oElm.currentStyle[strCssRule];
	}

	return strValue;
}

function k4draggable(el)
{
	var xDelta = 0;
	var yDelta = 0;
	var xStart = 0;
	var yStart = 0;

	function enddrag()
	{
		document.onmouseup = null;
		document.onmousemove = null;
	}

	function drag(e)
	{
		e = e || window.event;
		xDelta = xStart - parseInt(e.clientX);
		yDelta = yStart - parseInt(e.clientY);
		xStart = parseInt(e.clientX);
		yStart = parseInt(e.clientY);
		el.style.top = (parseInt(el.style.top) - yDelta) + 'px';
		el.style.left = (parseInt(el.style.left) - xDelta) + 'px';
	}

	function md(e)
	{
		if (document.getElementById('k4youtubePlayerTitle').style.cursor != 'move')
			return;

		e = e || window.event;
		xStart = parseInt(e.clientX);
		yStart = parseInt(e.clientY);
		el.style.top = parseInt(getStyle(el,'top')) + 'px';
		el.style.left = parseInt(getStyle(el,'left')) + 'px';
		document.onmouseup = enddrag;
		document.onmousemove = drag;
		return false;
	}

	el.onmousedown = md;
}
