self.name = "towncraft";

var gMediaPlayerWindow = null;
var gSelectedImageIndex = null;
var gSelectedImageCat = null;

function js_tc_go(url)
{
	window.location = url;
}

function js_tc_playAudio(id)
{
	var url = k_prepath + "/player.html" + ( (id != undefined) ? ("?id=" + id) : ("") );
	if (gMediaPlayerWindow != null && !gMediaPlayerWindow.closed)
	{
		if (id != undefined)
		{	
			gMediaPlayerWindow.js_tc_player_play(id);
			gMediaPlayerWindow. js_tc_player_checkNav(id);
			//gMediaPlayerWindow.location = url;
		}
		gMediaPlayerWindow.focus();
	}
	else
	{
		var features = "width=300,height=450,resizable=1";
		gMediaPlayerWindow = window.open(url,"Jukebox",features);
	}
}

function _js_cat(cat)
{
	gSelectedImageCat = cat;
	switch (gSelectedImageCat)
	{
		case 0: // main
		{
			return (gMedia_0);
			break;
		}
		case 1: // related
		{
			return (gMedia_1);			
			break;
		}
		default:
		{
			return (null);
			break;
		}
	}
}

function js_tc_showImage(cat,index)
{
	gSelectedImageIndex = index;
	var images = _js_cat(cat);
	var image = images[gSelectedImageIndex];
	var image_description = image[0];
	var image_src = image[1];
	_js_showImage(image_src,image_description);
}

function _js_updateMediaNav()
{
	var controller = dojo.byId("media_header");
	if (controller)
	{
		var images = _js_cat(gSelectedImageCat);
		if (images && (images.length > 1))
		{
			var content = "",title;
			content += "<div>";			
			if (gSelectedImageIndex > 0)
			{
				title = images[gSelectedImageIndex-1][0];
				content += "<a href='javascript:js_tc_showImage(" + gSelectedImageCat + "," + (gSelectedImageIndex-1) + ");'><img align=absmiddle src='" + k_imageDir + "btn-previous.gif' /></a>";
			}
			else
			{
				content += "<img class='hidden_inline' align=absmiddle src='" + k_imageDir + "btn-previous.gif' />";
			}
			content += "&nbsp;&nbsp;(" + (gSelectedImageIndex+1) + " of " + images.length + ")&nbsp;&nbsp;";
			if (gSelectedImageIndex < (images.length-1))
			{
				title = images[gSelectedImageIndex+1][0];
				content += "<a href='javascript:js_tc_showImage(" + gSelectedImageCat + "," + (gSelectedImageIndex+1) + ");'><img align=absmiddle src='" + k_imageDir + "btn-next.gif' /></a>";
			}
			else
			{
				content += "<img class='hidden_inline' align=absmiddle src='" + k_imageDir + "btn-next.gif' />";
			}

			content += "</div>";
			controller.appendChild(dojo.html.createNodesFromText(content)[0]);
		}
	}		
}

function _js_showImage(image_src,image_description)
{
	urchinTracker("/image/" + image_src);
	var container;
	if (container = dojo.byId("page_overlay_media"))
	{
		scroll(0,0);
		_js_showOverlay();
		_js_hide(container);
		dojo.dom.removeChildren(container);
		var temp_image_node = document.createElement("img");
		temp_image_node.setAttribute("id","image_spinner");
		temp_image_node.src = k_imageDir + "spinner.gif";
		temp_image_node.style.textAlign = "center";
		temp_image_node.style.padding = "70px 200px 100px 200px";
	
		var nav_node_top = document.createElement("div");
		nav_node_top.setAttribute("id","media_nav_top");
		nav_node_top.innerHTML = image_description + " <a href='javascript:js_tc_closeMedia();'>[Close]</a>";
		var header_node = document.createElement("div");
		header_node.setAttribute("id","media_header");
		header_node.appendChild(nav_node_top);

		var nav_node_bottom = document.createElement("div");
		nav_node_bottom.setAttribute("id","media_nav_bottom");
		var footer_node = document.createElement("div");
		footer_node.setAttribute("id","media_footer");
		footer_node.appendChild(nav_node_bottom);
	
		var nav_node_bottom = document.createElement("div");
		nav_node_bottom.setAttribute("id","media_nav_bottom");

		var image_node = document.createElement("img");
		image_node.style.display = "none";
		image_node.onload = function() {  
			var node = dojo.byId("image_spinner");
			if (node)
			{
				dojo.dom.removeNode(node);
			}	
			image_node.style.visibility = "hidden";
			image_node.style.display = "block";

			var w = this.width;
			var h = this.height;
			var maxWidth = 800;
			if (w > maxWidth)
			{
				var percent = maxWidth / image_node.width;
				w = maxWidth;
				h = Math.round(percent * h);
			}
			container.style.width = w + "px" ;//"auto";
			container.style.height = "auto";
			container.style.marginLeft = ((870 - w)/2) + "px";
			
			image_node.style.width = w + "px";			
			image_node.style.height = h + "px";			
			image_node.style.visibility = "visible";

			var nav_node_bottom = dojo.byId("media_nav_bottom");
			nav_node_bottom.innerHTML = image_description + " <a href='javascript:js_tc_closeMedia();'>[Close]</a>";
			_js_updateMediaNav();
			_js_resizeOverlay(h+150);
		};

		container.appendChild(header_node);
		container.appendChild(temp_image_node);
		container.appendChild(image_node);		
		container.appendChild(footer_node);

		var w = 400;
		container.style.width = w + "px";
		container.style.marginLeft = ((870-w)/2) + "px";	
		_js_show(container);
		
		image_node.src = k_imageStillsDir + image_src;
		//alert(image_node.src);
	}
}

function js_tc_showSingleImage(image_src,image_description)
{
	gSelectedImageIndex = null;
	gSelectedImageCat = null;
	_js_showImage(image_src,image_description);
}

function js_tc_showVideo(src,w,h)
{
	urchinTracker("/video/" + src);
	var container;
	if (container = dojo.byId("page_overlay_media"))
	{
		scroll(0,0);
		_js_showOverlay();
		_js_hide(container);
		dojo.dom.removeChildren(container);

		h = parseInt(h) + 16;
		container.style.width = w + "px";
		container.style.height = "auto";
		container.style.marginLeft = ((870 - w)/2) + "px";
		src = k_videoDir + src;

		var content = "";
		content += "<object classid='clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B' codebase='http://www.apple.com/qtactivex/qtplugin.cab' width='" + w + "' height='" + h + "' id='qt'>";
		content += "<param name='EnableJavaScript' value='true'><param name='autoplay' value='true'><param  name='controller' value='true'><param name='type' value='video/quicktime'><param name='src' value='" + src + "'><param name='target' value='myself'><param name='pluginspage' value='http://www.apple.com/quicktime/download/indext.html'>";
		content += "<embed EnableJavaScript='true' width='" + w + "' height='" + h + "' target='myself' controller='true' autoplay='true' type='video/quicktime' src='" + src + "' pluginspage='http://www.apple.com/quicktime/download/indext.html'></embed>";
		content += "</object>";
		content += "<div id='media_controller'><a href='javascript:js_tc_closeMedia(true);'>(Close)</a></div>";
		container.innerHTML = content;
		_js_show(container);
		// fix weird refresh/start issue in Safari that conflicts with IE
		if (!_js_isIE())
		{
			container.innerHTML += "<!-- hello -->";
		}
	}
}

function _js_resizeOverlay(h)
{
	var container = dojo.byId("page_overlay");
	if (container)
	{
		var image_node = dojo.byId("overlay_image");
		if (h > _js_getHeight())
		{
			container.style.height = h + "px";
			image_node.style.height = h + "px";
		}
	}
}

function _js_showOverlay()
{
	var container = dojo.byId("page_overlay");
	if (container)
	{
//		container.style.display = "block";
		container.style.width = "100%"; //w + "px";
		var h = _js_getHeight();	
		container.style.height = (h+30) + "px";
		container.innerHTML = "<img id='overlay_image' src='" + k_imageDir + "overlay.gif' width='100%' height='100%' />";
		_js_show(container,0.8);
	}
}

function js_tc_closeMedia(reload)
{
	var container;
	if (container = dojo.byId("page_overlay_media"))
	{
		// problems with Safari
		if (true == reload && _js_isSafari())
		{
			document.qt.Stop();
		}
		container.style.visibility = "hidden";
		container.innerHTML = "<div><!-- --></div>";
		// clone/add/remove media node ... all for Safari
		var node = document.createElement("div");
		dojo.dom.insertAfter(node,container,true);
		dojo.dom.removeNode(container);
		node.setAttribute("id","page_overlay_media");
	}
	js_tc_hide("page_overlay");
 	scroll(0,0);
}

function js_tc_hide(name)
{
	var node = document.getElementById(name);
	if (node)
	{
		_js_hide(node);
		node.style.display = "none"; 
	}
}

function js_tc_show(name,inline)
{
	var node = document.getElementById(name);
	if (node)
	{
		_js_show(node);
		if (inline != undefined)
		{
			node.style.display = "inline"; 
		}
	}
}

function js_tc_updateUI()
{
	var container = dojo.byId("nav_events");
	if (container)
	{
		var nodes = dojo.html.getElementsByClass("event_img",container);
		for (var j=0; j<nodes.length; j++)
		{
			var node = nodes[j];
			Reflection.add(node,{height: 1/3, opacity: 2/3});
		}
	}
}

function js_tc_updateNav()
{
	var node = dojo.byId("nav_events");
	if (node)
	{
		var table = document.createElement("table");
		var table_inner = document.createElement("tbody");
		var table_row = document.createElement("tr");

		for (var j=0; j<gEvents.length; j++)
		{	
			var event = gEvents[j];
			var title = event[0];
			var link = event[1];
			var thumbnail = event[2];
			
			var table_cell = document.createElement("td");
			table_cell.className = (j == gEventIndex) ? ("thumbnail selected") : ("thumbnail");
			var div_node = document.createElement("div");
		
			var link_node = document.createElement("a");
			link_node.href = link;
			var image_node = document.createElement("img");
			image_node.src = k_imageSmallThumbsDir + thumbnail;
			image_node.className = "event_img";
			link_node.appendChild(image_node);
			div_node.appendChild(link_node);
			table_cell.appendChild(div_node);
			table_row.appendChild(table_cell);
			
			table_cell = document.createElement("td");
			table_cell.className = (j == gEventIndex) ? ("txt selected") : ("txt");
			
			if (j == gEventIndex)
			{
				dojo.html.textContent(table_cell,title);
			}
			else
			{
				var link_node = document.createElement("a");
				link_node.href = link;
				dojo.html.textContent(link_node,title);
				table_cell.appendChild(link_node);
			}
			table_row.appendChild(table_cell);
		}
		table_inner.appendChild(table_row);
		table.appendChild(table_inner);			
		node.appendChild(table);
		node.style.width = (gEvents.length * 160) + "px";
		node.style.left = "0px";
		_js_tc_scrollTo();	
		_js_tc_checkScroll();		
	}
	// requires a delay because of timing issues
	setTimeout("js_tc_updateUI()",500);
}

function _js_getCookie(name) 
{
	var index=document.cookie.indexOf(name+"=");
	if(index==-1) return null;
	index=document.cookie.indexOf("=",index)+1;
	var endstr=document.cookie.indexOf(";", index);
	if(endstr==-1) endstr=document.cookie.length;
	return unescape(document.cookie.substring(index,endstr));
}

function _js_getCookieValue(nmvalstr,name) 
{
	var cookie_array=nmvalstr.split("&");
	var nmvalpos=0;
	while(nmvalpos<cookie_array.length)
	{
		if(cookie_array[nmvalpos].indexOf(name+"=")>=0)
		{
			var sns_name_pos = cookie_array[nmvalpos].indexOf("=")+1;
			var nmval = cookie_array[nmvalpos].substring(sns_name_pos,cookie_array[nmvalpos].length);
			return nmval;
		}
		nmvalpos++;
	}
	return null;
}

function _js_isIE()
{
	var agt = navigator.userAgent.toLowerCase();
	return ((agt.indexOf("msie") != -1))
}

function _js_isSafari()
{
	var agt = navigator.userAgent.toLowerCase();
	return ((agt.indexOf("safari") != -1))
}

function _js_show(node,amt)
{
	if (node)
	{
//		dojo.html.show(n);
		var v = (undefined != amt) ? (amt) : (1);
		dojo.html.setOpacity(node,v);
		dojo.html.setDisplay(node,"block");
	}
}

function _js_hide(node)
{
	if (node)
	{
		dojo.html.hide(node);
	}
}

function _js_getHeight()
{
	var h;
	// catchall
	var h1 = document.documentElement.clientHeight;
	var h2 = document.body.offsetHeight;
	var h3 = window.innerHeight;
	//alert(h1+":"+h2+":"+h3);
	if (_js_isIE())
	{
		h = Math.max(h1,h2);
	}
	else
	{
		h = Math.max(h1,h2);
		h = Math.max(h,h3);
	}
	return (h);
}

function _js_focus(n)
{
	var node = dojo.byId(n);
	if (node)
	{
		node.focus();
	}
}

// deprecated?
function js_tc_trim(s)
{
   return (s.replace(/^\s*|\s*$/g,""));
}
