/* scripts to be used by all pages */

	function showSiteMap(o) {
		try {
			o.removeAttribute("href");		
		} catch(e) {}
		var url = "content/sitemap.htm?r=1";
		new Ajax.Request(url,{ method: 'get', onComplete: function(t) {					
			$('page_status').update("");
			$('page_status').insert("<div class='x'><span class='clickable' onclick='hideSiteMap();'><b>X</b></span</div>");
			$('page_status').insert(t.responseText);
			$('page_status').addClassName('popup_win');			
			Effect.toggle($('page_status') , 'blind',{duration: .2});
		}	});		
	}
	function hideSiteMap() {
		Effect.BlindUp($('page_status'),{duration: .2} );
	}
	
	function showContent(o) {
		try {
			o.removeAttribute("href");		
		} catch(e) {}
		$('page_body_content').removeClassName("min");
		$(o).hide();
	}

	function menuOn(o) {	
		if (typeof($(o).hovertext) !== 'undefined') {	// -- show hover text -- //
			var balloon = attachObj(o.hovertext + "_button","div",$('page_status'));
			var target = window.event.toElement;
			if (balloon.state == "closing") {	
				Effect.Queues.get('global').invoke('cancel');
				balloon.state = "open";
				$(balloon).setOpacity(1.0);
				afterBalloonOpen(balloon);				
			}
			if (balloon.state !== "open") {
				var url = "content/hover/" + o.hovertext + ".txt?i=2";			
				new Ajax.Request(url,{ method: 'get', onSuccess: function(t) {					
					balloon.update(t.responseText);
					balloon.addClassName("balloon");
					if ($(o).t_offset) {
						var pos = $(o).cumulativeOffset();					
						balloon.style.left = pos.left;
						balloon.style.top = pos.top + addOffset($(o));
					} else {
						balloon.addClassName("balloon2");
					}				
					balloon.state = "opening";
					Effect.Appear(balloon,{delay: .5,duration: .35, queue: 'font', afterFinish: function(i) { afterBalloonOpen(balloon); } });	
				}	});					
			}
		}
	}
	function addOffset(o) {
		var i = o.t_offset;
		if (!i) {
			r = 50;
		} else {
			r = parseInt(i);
		}
		return(r);		
	}
	
	function afterBalloonOpen(b) {		/* called after balloon open - makes sure no other balloons are open */
		b.state = "open"
		var ar = $$('div.balloon[state = "closing"]');
		$(ar).each( function(i) { $(i).state = "closed"; $(i).setOpacity(0.0);} );
	}
	
	function menuOff(o) {
		var target = window.event.toElement;
		if (!$(target).descendantOf($(o)) ) {   // ---   && ( $(target) !== $(o.hovertext + "_button")) ) {
			var balloon = $(o.hovertext + "_button");
			if (balloon.state == "opening") {			
				Effect.Queues.get('global').invoke('cancel');
			}
			if (balloon.visible()) {
				balloon.state = "closing";
				Effect.Fade(balloon,{delay: .3,duration: .35, queue: 'font' , afterFinish: function(i) { balloon.state = "closed"; } });			
			}
		}		
	}
	
	function createObj(tag,target) {
		var e = document.createElement(tag);
		target.appendChild(e);		
		return(e);
	}
	/* requires prototype.  tries to attach to a DOM object.  If it does not exists it creates it */
	function attachObj(id,tag,source) {	
		var o = $(id);	
		if (!o) {		
			var oCloneNode = $(source).cloneNode();
			oCloneNode.id = id;
			document.body.insertBefore(oCloneNode);
			o = oCloneNode;
			o.state = "new";
		}		
		return($(o));
	}
	
	function closeObj() { 
		var o = event.srcElement;
		$(o.parentNode.parentNode).hide();
	}
	
