
	var noActive = true;
	var http  = getHTTPObject();
	var http2  = getHTTPObject();

	function getElementLeft(Elem) {
			var elem;
			if(document.getElementById) {
				var elem = document.getElementById(Elem);
			} else if (document.all){
				var elem = document.all[Elem];
			}
			xPos = elem.offsetLeft;
			tempEl = elem.offsetParent;
	  		while (tempEl != null) {
	  			xPos += tempEl.offsetLeft;
		  		tempEl = tempEl.offsetParent;
	  		}
			return xPos;
	}

	function getElementTop(Elem) {
			if(document.getElementById) {
				var elem = document.getElementById(Elem);
			} else if (document.all) {
				var elem = document.all[Elem];
			}
			yPos = elem.offsetTop;
			tempEl = elem.offsetParent;
			while (tempEl != null) {
	  			yPos += tempEl.offsetTop;
		  		tempEl = tempEl.offsetParent;
	  		}
			return yPos;
	}

	function getElementHeight(Elem) {
			if(document.getElementById) {
				var elem = document.getElementById(Elem);
			} else if (document.all){
				var elem = document.all[Elem];
			}
			xPos = elem.offsetHeight;
			return xPos;
	}

	function getElementWidth(Elem) {
			if(document.getElementById) {
				var elem = document.getElementById(Elem);
			} else if (document.all){
				var elem = document.all[Elem];
			}
			xPos = elem.offsetWidth;
			return xPos;
	}

	function toggleSub(parent_id, sublevel)
	{
		/*alertStr = "";
		for(i=0; i<=openLevels.length; i++)
		{
			alertStr += "\n" + i + ": " + openLevels[i];
		}
		alert(alertStr);*/

		// Make sure no other animation is in progress
		if(noActive)
		{
			// Does this category have any subcategories?
			if(subtbl = $('sub' + parent_id + 'row'))
			{
				noActive = false;

				// If subchildren are hidden, slide em out
				if(subtbl.style.display == 'none')
				{
					openLevel = sublevel;

					// If a category is open on the same level, close it before opening this one
					if(openLevels[sublevel] > 0 && openLevels[sublevel] != parent_id)
					{
						openCat = parent_id;

						Effect.SlideUp('sub' + openLevels[sublevel], {afterFinish:openNewCat, duration:.1});
					}
					// If no others open, just slide out
					else
					{
						openCat = parent_id;
						openNewCat();
					}

				}
				// If the subcategories are already showing, hide em
				else
				{
					Effect.SlideUp('sub' + parent_id, {afterFinish:finishHide});
				}
			}
			// If no subchildren and no videos in the category, pulsate the category name (just for the heck of it)
			else if($('vids' + parent_id).innerHTML == "0")
			{
				//Effect.Pulsate('main' + parent_id, {duration:.6});
			}

			// Get the videos in the category clicked
			getVideos(parent_id);
		}
	}

	function openNewCat()
	{
		// Make sure previous category on this level is fully hidden
		if(openLevels[openLevel] > 0)
		{
			$('sub' + openLevels[openLevel] + 'row').style.display = 'none';
		}

		openLevels[openLevel] = openCat;

		subtbl.style.display = '';
		Effect.SlideDown('sub' + openCat, {afterFinish:finishShow});
	}

	function finishShow()
	{
		noActive = true;
	}

	function finishHide()
	{
		subtbl.style.display = 'none';
		noActive = true;
		openCat = false;
	}

	function getVideos(category, search)
	{
		if(!search)
			search = "";

		if(document.getElementById('main' + lastOpen))
			document.getElementById('main' + lastOpen).className = "";
		lastOpen = category;

		document.getElementById('main' + category).className = "category_on";

		document.getElementById('load_container').style.top = getElementTop('listing');
		document.getElementById('load_container').style.left = getElementLeft('listing');
		document.getElementById('load_container').style.display = '';

		dt = new Date();
		http.open("GET", 'library_server.php?stamp='+dt+'&category='+category+'&keyword='+search, true);
		http.onreadystatechange = function() {
			if(http.readyState == 4)
			{
				document.getElementById('listing').innerHTML = http.responseText;
				document.getElementById('load_container').style.display = 'none';

				// Get new banner ads
				http2.open("GET", 'library_banners.php?stamp='+dt+'&category='+category, true);
				http2.onreadystatechange = function() {
					if(http2.readyState == 4)
					{
						bannerdata = http2.responseText.split("<!--!>");

						if(bannerdata[0] != "") {
							document.getElementById('banner_slot1').innerHTML = bannerdata[0];
						}

						if(bannerdata[1] != "") {
							document.getElementById('banner_slot2').innerHTML = bannerdata[1];
						}

						if(bannerdata[2] != "") {
							document.getElementById('banner_slot3').innerHTML = bannerdata[2];
						}

						/*bannerslots = bannerdata[0].split("<!-- BANNER SEP -->");
						bannerlinks = bannerdata[1].split("<!-- BANNER SEP -->");

						if(bannerslots[0] == document.getElementById('bannerslot1').src)
							bannerslots[0] = false;

						if(bannerslots[1] == document.getElementById('bannerslot2').src)
							bannerslots[1] = null;

						if(bannerslots[2] == document.getElementById('bannerslot3').src)
							bannerslots[2] = null;

						// Change banner slot 1?
						if(bannerslots[0])
						{
							document.getElementById('bannerslot1').src = bannerslots[0];
							document.getElementById('bannerslot1_link').href = bannerlinks[0];
						}

						// Change banner slot 2?
						if(bannerslots[1])
						{
							document.getElementById('bannerslot2').src = bannerslots[1];
							document.getElementById('bannerslot2_link').href = bannerlinks[1];
						}

						// Change banner slot 3?
						if(bannerslots[2])
						{
							document.getElementById('bannerslot3').src = bannerslots[2];
							document.getElementById('bannerslot3_link').href = bannerlinks[2];
						}*/
					}
				};
				http2.send(null);
			}
		};
		http.send(null);
	}

	function loadVideo(video_id, external, filesize, detail)
	{
		GenerateFlash('player.swf', 477, 322, 'videoplayer', 'file=video.php?id=' + video_id + '&loc=' + external + '&fileSize=' + filesize + '&autoplay=true', 'vid_embed');
		document.getElementById('video_detail').innerHTML = detail;
	}

	function loadVideoS3(video_id, external, filesize, detail)
	{
		stopLoad();
		nocache = escape(new Date());
		/*GenerateFlash('player_s3.swf?vid=' + external + '&nocache=' + nocache, 477, 322, 'videoplayer', 'file=' + video_id + '&loc=' + external + '&fileSize=' + filesize + '&autoplay=true', 'vid_embed');*/
		GenerateFlash('player-licensed.swf', 477, 322, 'videoplayer', 'file=' + video_id + '&loc=' + external + '&autostart=true', 'vid_embed');
		document.getElementById('video_detail').innerHTML = unescape(detail);
	}

	function stopLoad()
	{
		window.document['videoplayer'].SetVariable("stopLoad", 1);
	}

	function openLightbox()
	{
		document.getElementById('signin_tab').className = "unsel_tab";
		document.getElementById('premium_tab').className = "unsel_tab";
		document.getElementById('basic_tab').className = "unsel_tab";

		document.getElementById('signin').style.display = "none";
		document.getElementById('signup').style.display = "";
		document.getElementById('signupform').style.display = "none";

		document.getElementById('fade').style.display = '';
		document.getElementById('light').style.display = '';
	}

	function closeLightbox(innerLayer)
	{
		document.getElementById('fade').style.display = 'none';
		document.getElementById(innerLayer).style.display = 'none';
	}

	function doSearch(objForm)
	{
		getVideos('search',objForm.keyword.value);

		return false;
	}

	function sendToFriend(video_id)
	{
		if(video_id > 0)
		{
			document.getElementById('send_title').innerHTML = 'Email this video to a friend';
			document.getElementById('send_message').innerHTML = 'Enjoyed this video? Share it with your friends!';
			document.getElementById('send_subject').innerHTML = 'Video from Gun Talk TV';
			document.getElementById('send_video_id').value = video_id;
		}
		else
		{
			document.getElementById('send_title').innerHTML = 'Email this page to a friend';
			document.getElementById('send_message').innerHTML = 'Enjoy what you see? Tell your friends and family about our site!';
			document.getElementById('send_subject').innerHTML = 'Gun Talk TV - Check it Out';
			document.getElementById('send_video_id').value = 0;
		}

		document.getElementById('sendform').style.display = '';
		document.getElementById('scriptmessage').style.display = 'none';

		document.getElementById('fade').style.display = '';
		document.getElementById('sendfriend').style.display = '';
	}

	function processSendtoFriend()
	{
		sendForm = document.forms.sendtofriend;

		fields  = '&emailto=' + escape(sendForm.to.value);
		fields += '&emailfrom=' + escape(sendForm.from.value);
		fields += '&video_id=' + escape(sendForm.video_id.value);
		fields += '&message=' + escape(sendForm.message.value);
		//fields += '&userstring=' + escape(sendForm.userstring.value);
		fields += '&email=' + escape(sendForm.email.value);

		dt = new Date();
		http.open("GET", 'sendfriend.php?stamp='+dt+fields, true);
		http.onreadystatechange = function() {
			if(http.readyState == 4)
			{
				results = http.responseText.split("|");

				whichClass = "errors";
				if(results[0] == "SUCCESS")
				{
					document.getElementById('sendform').style.display = 'none';
					whichClass = "success";
					results[1] = 'Your message was sent to ' + sendForm.to.value + '! Thanks for spreading the word!';

					sendForm.to.value = "";
					sendForm.from.value = "";
					sendForm.video_id.value = "";
					sendForm.message.value = "";
					sendForm.email.value = "";
				}

				document.getElementById('scriptmessage').innerHTML = results[1];
				document.getElementById('scriptmessage').className = whichClass;
				document.getElementById('scriptmessage').style.display = '';
			}
		};
		http.send(null);

		return false;
	}

	function loadSubscribe()
	{
		window.opener.location = '/gtv/subscribe.php';
		window.close();
	}