/*
	============================================================
	Video Defunct Player
	============================================================
	Design and code by Keith Deverell
	Wordpress integration and JSON Object creation by David Wolf
	============================================================
*/

$.Category;
$.CategoryList;
$.CurrTags;
$.CurrMoviesA;
$.CurrMoviesB;
$.Tags;
$.MovA;
$.MovB;

////////////////////////////////////////////////////////////////////////////////////////////////

var menuToggles = new Array();
	menuToggles = ["t","t","t"];
	
////////////////////////////////////////////////////////////////////////////////////////////////

$(document).ready(function()
{
	//	Add in the styles to stop scrolling on the page
		$('html').css ({width:'100%',height:'100%',overflow:'hidden'});
		$('body').css ({width:'100%',height:'100%',overflow:'hidden'});
		//	Set all checkers to false
		$.Tags = $.MovA = $.MovB = false;
		//	Make object for resizing
		var setCH_Obj = new Object();
			setCH_Obj.sh = $('html').height();
			setCH_Obj.of = 20;
		//	Set the new size of the content boxes
		$.setContentHeight(setCH_Obj);
		$.setScrollPaneHeight();
	//debug.debugBox();
	$.CategoryList = new Array()
	$.CategoryList = CleanArray.combine(defunctDB.data);
	$.CategoryList.sort();
	$.makeCategoryMenu();
});

$(window).resize(function(){
	//	Make object for resizing
	var sh = $('html').height()-172;
	var setCH_Obj = new Object();
		setCH_Obj.sh = $('html').height();
		setCH_Obj.of = 20;	
	//$.setFooterToggle();
	$.setContentHeight(setCH_Obj);
	$.setScrollPaneHeight();	
	$('#gs_startMenu').css ({
		position:'absolute',
		left:'0px',
		top:'54px',
		padding:'50px',
		width: $('html').width()-100,
		height:sh,
		overflow:'none',
		opacity:'0.9'
	});
});

jQuery.makeStartMenu = function()
{
	var sh = $('html').height()-172;
	$('#gs_startMenu').css ({
		position:'absolute',
		left:'0px',
		top:'54px',
		padding:'50px',
		width: $('html').width()-100,
		height:sh,
		overflow:'none',
		opacity:'0.9'
	});
	
	$('#gs_startMenu').find('a').bind('click', function()
	{
		$.Category = $(this).text();
		$.makeCategoryList();
		$('#gs_startMenu').addClass('gs_hide');
		$('#gs_movTitle').find('h1').empty().append($(this).text());
		$('#pageTitle').append($(this).text());
		$('#m1').removeClass('gs_darkGreyText').addClass('gs_whiteText');
		$('#newCatergory').hover(
		      function () { $(this).addClass('gs_lightBlueText'); },
		      function () {	$(this).removeClass('gs_lightBlueText');});
		$('#newCatergory').bind('click',function()
		{
			$('#gs_startMenu').removeClass('gs_hide');
			$('#mp0').empty();
			$('#mp1').empty();
			$('#mp2').empty();
			$('#m0').empty().append('&nbsp;');
			$('#m1').empty().append('&nbsp;');
			$('#m2').empty().append('&nbsp;');
			$('#t0').empty().append('&nbsp;');
			$('#t1').empty().append('&nbsp;');
			$('#t2').empty().append('&nbsp;');
			$('#gs_scrollPane0').empty().jScrollPane();
			$('#gs_scrollPane1').empty().jScrollPane();
			$('#gs_scrollPane2').empty().jScrollPane();
			$.makeStartMenu();
		})
	});

}

////////////////////////////////////////////////////////////////////////////////////////////////

jQuery.setScrollPaneHeight = function()
{
	var psp = {}; 
	var pft = {};
	// 	
	$('#gs_scrollPane1').position(psp);
	$('#gs_playerfooter').position(pft);
	//
	var nsh = pft.top-psp.top-50;
	// 	//
	$('#gs_scrollPane0').height(nsh);
	$('#gs_scrollPane1').height(nsh);
	$('#gs_scrollPane2').height(nsh);
	$('#gs_scrollPane0').jScrollPane();
	$('#gs_scrollPane1').jScrollPane();
	$('#gs_scrollPane2').jScrollPane();
}

////////////////////////////////////////////////////////////////////////////////////////////////

jQuery.makeCategoryMenu = function(id)
{
	//	Empty the container
	$('#gs_scrollPane1').empty();
	var l = '<ul>';	//	Create the unorded list
	var pre = '<span class="gs_tinyText gs_midGreyText">[cat] </span>';
	
	for(var i=0;i<$.CategoryList.length;i++)
	{
			l += '<li class="gs_smallFont gs_uppercase gs_darkGreyText gs_midGreyBorderBottom gs_fontPadding10 gs_pointer"';
			l += 'id="'+$.CategoryList[i]+'">'+pre+$.CategoryList[i]+'</li>';				
	}
	//	Close off the Unordered list
	l += '</ul>';
	//	Append the unordered list to the div
	$('#gs_scrollPane1').append(l)
		.jScrollPane()
		.find('li').bind('click', function(){
			$.Category = $(this).attr('id');
			jQuery.makeCategoryList();
		});
}

////////////////////////////////////////////////////////////////////////////////////////////////

jQuery.makeCategoryList = function()
{
	var n = '#gs_scrollPane1';	// Container div for the list
	var h = new Number(); // Height of scrollpane
	var y = new Number(); // Y position of scrollpane
	//	Loop through json object
	
	$(n).empty()
	
	for(var i=0;i<defunctDB.data.length;i++)
	{
		//	Evaluate the array of categories
		var a = eval(defunctDB.data[i].categories);
		//	Loop through categories	
		for(var ii=0;ii<a.length;ii++)
		{
			//	If category matches selected category
			if(a[ii] == $.Category)
			{
				//	Make the img
				var l = '<img width="66" height="49" src="'+defunctDB.data[i].posterurl+'" id="'+defunctDB.data[i].post_id+'" title="'+defunctDB.data[i].title+'" />';
				//	Apppend to the relevant div
				$(n).append(l);
			}
		}
	}
	$(n).find('img').css ({
		width:'64px',
		height:'48px',
		padding:'4px',
	});
	$(n).find('img').addClass('gs_midGreyBorder gs_fontMargin2 gs_pointer');
	$.addMovieEvents(1);
	$(n).jScrollPane();
}

jQuery.addMovieEvents = function (arg)
{
	$('#gs_scrollPane'+arg).find('img').hover(
	      function () { $(this).addClass('gs_black'); },
	      function () {	$(this).removeClass('gs_black'); });
	
	$('#gs_scrollPane'+arg).find('img').bind('click', function()
	{
		$(this).siblings().removeClass('gs_watermark');//gs_watermark1
		$(this).addClass('gs_watermark');
		
		if(arg==1)
		{
			$(this).addClass('gs_whiteText');
			if($.CurrTags)
			{
				var c = $.CurrTags;
				$('#'+c).removeClass('gs_whiteText');
			}
			$.CurrTags = this.id;
			$('#gs_scrollPane0').empty();
			$('#gs_scrollPane2').empty();
			$.setTagList(this.id,0);
			$.setTagList(this.id,2);
			$("#t0").removeClass('gs_darkGreyText').addClass('gs_whiteText');	
			$("#t2").removeClass('gs_darkGreyText').addClass('gs_whiteText');
			$('#m'+arg).bind('click',function(){$.makeCategoryMenu()});
		} else {
			$("#t0").removeClass('gs_whiteText').addClass('gs_darkGreyText');	
			$("#t2").removeClass('gs_whiteText').addClass('gs_darkGreyText');	
		}
		$.loadMovie(arg,this.id);
		$('#m'+arg).empty().append(this.title);
	});
}

////////////////////////////////////////////////////////////////////////////////////////////////

jQuery.setTagList = function(id,list)
{	
	var l = '<ul>';	//	Create the unorded list
	var pre = '<span class="gs_tinyText gs_midGreyText">[tag] </span>';
	
	for(var i=0;i<defunctDB.data.length;i++)
	{
		if(id == defunctDB.data[i].post_id)
		{
			var a = eval(defunctDB.data[i].tags);
			
			for(var ii=0;ii<a.length;ii++)
			{
				l += '<li class="gs_smallFont gs_darkGreyText gs_midGreyBorderBottom gs_fontPadding10">';				
				var pre = '<span class="gs_tinyTextR gs_midGreyText">[tag] </span>';
					l += '<a href="#" id="'+a[ii]+'">'+a[ii]+pre+'</a></li>';
			}
			break;
		}
	}
	//	Close off the Unordered list
	l += '</ul>';
	//	Append the unordered list to the div
	$('#gs_scrollPane'+list).append(l);
	//$('#gs_scrollPane2').append(l);
	//	Add events for tag list
	$.addTagEvents(list);
	//$.addTagEvents(2);
	//	Set Tage menu styles/events
	if(!$.Tags)
	{
		$.setMenuEvents("#t0");	
		$.setMenuEvents("#t2");
		$.Tags = true;
	}
	$('#gs_scrollPane'+list).jScrollPane();
}

jQuery.addTagEvents = function (arg)
{
	$('#gs_scrollPane'+arg).find('li a').bind('click', function()
	{
		$(this).siblings().removeClass('gs_watermark');
		$(this).addClass('gs_watermark');
		$('#gs_scrollPane'+arg).empty();
		$.setMovieList(this.id,arg);
		$('#t'+arg).empty().append(this.id)		
	});
}

////////////////////////////////////////////////////////////////////////////////////////////////

jQuery.setMovieList = function(id,list)
{
	var pre = '<span class="gs_tinyText gs_midGreyText">[clip] </span>';
	
	for(var i=0;i<defunctDB.data.length;i++)
	{
		var a = eval(defunctDB.data[i].tags);
							
		for(var ii=0;ii<a.length;ii++)
		{
			if(a[ii] == id)
			{	
				if(a[ii] != defunctDB.data[i].post_id)
				{
					var l = '<img width="66" height="49" src="'+defunctDB.data[i].posterurl+'" id="'+defunctDB.data[i].post_id+'" title="'+defunctDB.data[i].title+'" />';
					$('#gs_scrollPane'+list).append(l);
				}
			}
		}
	}
	$('#gs_scrollPane'+list).find('img').css ({ padding:'4px' });
	$('#gs_scrollPane'+list).find('img').addClass('gs_midGreyBorder gs_fontMargin2 gs_pointer');
	//	Set the current movie for the corrosponding channel
	if (list == 0) 
	{ 
		$.CurrMoviesA = id; 
	} else { 
		$.CurrMoviesB = id; 
	}
	//	Add events for tag list
	$.addMovieEvents(list);
	//	Set menu events and styles
	switch(list)
	{
		case 0:
			var c = $.MovA;
					$.MovA = true;
			break;
		case 2:
			var c = $.MovB;
					$.MovB = true;
			break;
	}
	
	if(!c)
	{
		$.setMenuEvents("#m"+list);	
		$.MovA = true;
	}
	
	$("#m"+list).removeClass('gs_darkGreyText').addClass('gs_whiteText');
	$("#t"+list).removeClass('gs_whiteText').addClass('gs_darkGreyText');
	$('#gs_scrollPane'+list).jScrollPane();
}

jQuery.setMenuEvents = function(arg)
{		
	$(arg).bind('click', function()
	{	
		var t = $(this).text();
		var i = this.id;
		var	n = parseInt(i.charAt(1));
		var l = i.charAt(0);
		var s = '#gs_spHolder'+n;
		var m = $(this).parent().parent().find(s);
		var p = '#gs_scrollPane'+n;
		
		//	Change my styling
		$(this).removeClass('gs_darkGreyText').addClass('gs_whiteText');
		//
		//	Clear list of channel (x);
		//	Is it movies or tags?
		switch(l)
		{
			case "m":
			// Its movies
				if(n==0) { var f = $.CurrMoviesA; } else { var f = $.CurrMoviesB; }
				if(f!=undefined)
				{
					$("#t"+n).removeClass('gs_whiteText').addClass('gs_darkGreyText');
					$('#gs_scrollPane'+n).empty();
					$.setMovieList(f,n);
				}
			break;
			case "t":
			// Its tags
				debug.trace(p)
				if($.CurrTags!=undefined)
				{
					$('#gs_scrollPane'+n).empty();
					$("#m"+n).removeClass('gs_whiteText').addClass('gs_darkGreyText');
					$.setTagList($.CurrTags,n);
				}
			break;
		}
	});
}

////////////////////////////////////////////////////////////////////////////////////////////////

jQuery.loadMovie = function(player,id)
{
	$('#mp'+player).empty();
	
	for(var i=0;i<defunctDB.data.length;i++)
	{
		if(defunctDB.data[i].post_id == id)
		{	
			var src = defunctDB.data[i].movieurl;
			break;
		}
	}
	//
	var qName = 'qt'+player;
	debug.trace(qName);
	
	var e = QTControl.embed(qName,src,320,240,10);
	
	$('#mp'+player).append(e);
		
	$('#mp'+player).mouseover(function () 
	{ 
		QTControl.volume(qName,256);
	})
	.mouseout(function () 
	{ 
		QTControl.volume(qName,25.6);
	})
	.dblclick(function () 
	{
		QTControl.volume(qName,100);
	});
}

////////////////////////////////////////////////////////////////////////////////////////////////

jQuery.setContentHeight = function(arg)
{	
	var h = $('#gs_header').height();
	var f = arg.of;
	var s = arg.sh;
	
	$('#coreContent').height(s-h-f-10);
}

jQuery.setFooterToggle = function ()
{
	$("#gs_playerfooter").toggle(function()
	{
	  	var setCH_Obj = new Object();
			setCH_Obj.sh = $('html').height();
			setCH_Obj.of = $(this).height();
			for(var i=0;i<3;i++)
			{
				var m = '#gs_spHolder'+i;
					$(m).removeClass("gs_show");
					$(m).addClass("gs_hide");
			}
			
			//	Set new y pos
			$.setContentHeight(setCH_Obj);
	},function()
	{
	  	var setCH_Obj = new Object();
			setCH_Obj.sh = $('html').height();
			setCH_Obj.of = 20;
			for(var i=0;i<3;i++)
			{
				var m = '#gs_spHolder'+i;
					$(m).removeClass("gs_hide");
					$(m).addClass("gs_show");
			}
			//	Set new y pos
			$.setContentHeight(setCH_Obj);
	});
}


