/*
 *  error trapping code
 *  
 */
	/*
		onerror=handleErr
		
		function handleErr(msg,url,l)
		{
		//Handle the error here
		return true or false
		}
	*/
	
		
	/*
	 * Console logger
	 * 
	 * Message variables
	 *  %s	String
	 *  %d, %i	Integer (numeric formatting is not yet supported)
	 *  %f	Floating point number (numeric formatting is not yet supported)
	 *  %o	Object hyperlink
	 * 
	 *  only logs if globalVars.log = true
	 */
	
	
	$.log = function() {
	  	if(window.console) {
			if($.browser.safari){
				// Safari console
				var args = arguments[0];
				window.console.log(args); // fix to show args, Safari doesn't like .apply
			}
			if ($.browser.mozilla) {
				// Firefox with firebug
				window.console.log.apply(this, arguments);
			}
	  	} else {
	  		// no Firebug
	    	//alert(message);
		}
	};
	
/* navigation animation */

	/* sidebar nav menu animation plugin
	 * depends on HoverIntent plugin
	 */
	jQuery.fn.AccordianMenu = function(){
		return $(this).each(function(i){
			var container = $(this);
			//$.log("Setting up accordian on %o",container);
			// set options
			var nav_prefix_group = "nav_";
			var nav_last_group = "";
			
			// setup mouse event if has children
			function bindEvents(){
				container.find("h3 a").each(function(){
					var hasChildren = $(this).parent().parent().find("ul");
					if (hasChildren.size()) {
						$(this).hoverIntent(function(){
							var sel;
							// get group id
							var gid = $(this).parent().parent().attr("id");
							gid = gid.replace(nav_prefix_group, "");
							//$.log("nav heading %o clicked",gid);
							// quit if same group as opened
							if (gid == nav_last_group) {
								$.log("last group same as this group %o", nav_last_group);
							}
							nav_select(gid);
						}, function(){
						});
					}
				});
			}
			// function to remove hover events
			function unbindEvents(){
				container.find("h3 a").unbind();
			}
			
			// enable mouse hover
			bindEvents();

			// function when menu selected			
			function nav_select(gid){
				//$.log("menu selected = %s",gid);

				// exit if empty or same as last group
				if(
					typeof gid == "undefined" || 
					gid == "" || 
					gid == nav_last_group
				) { return false; }

				// check if selected group exists
				sel = "#" + nav_prefix_group + gid;
				var grp = $(container).find(sel);
				if (!grp.size()){
					//$.log("id doesn't exist %o",sel);
					return false;
				} 

				// temporarily disable hover events
				unbindEvents();
				
				// close last group
				sel = "#" + nav_prefix_group + nav_last_group;
				if (nav_last_group != null) {
					$(container).find(sel + " ul").slideUp('fast');
					$(container).find(sel).removeClass("active").addClass("closed");
					//$.log("hiding group %o (%s)",nav_last_group,sel);
				}

				// open selected group
				sel = "#" + nav_prefix_group + gid;
				$(container).find(sel + " ul").slideDown('fast',function(){
					// enable hover events
					bindEvents();					
				});
				$(container).find(sel).addClass("active").removeClass("closed");
				//$.log("showing group %o (%s)",gid,sel);
				
				// set last group
				nav_last_group = gid;
				//$.log("last group = %o",nav_last_group);
			}
			
			// open current group
			if (typeof nav_current_group != "undefined"){
				nav_select(nav_current_group);
			} else {
				nav_current_group = null;
			}
			//$.log("nav_current_group = %o",nav_current_group);
		});
	};
	
/* minimum page width (needed instead of CSS for IE) */

	function setPageWidth(){
		var minimumWidth = 820;
		var w = $(window).width();
		$.log(w);
		if (w < minimumWidth) {
			$("#page_wrap").width(minimumWidth);
		}
		else {
			$("#page_wrap").width("");
		}
	}
	
// load jQuery when DOM is ready
$(document).ready(function(){

	/* set min page width */
		setPageWidth();

	/*
	 *  De-obfuscate email addresses
	 * 
	 *  replaces email address @ in "mailto" links and link text
	 * 
	 */
		function deobfuscate(x){
			return x.replace("--/@/--","@");
		}
		$("a").each(function (i){
			var h = this.href;
			if (h.indexOf("mailto")==0) {
				var t = deobfuscate($(this).html());
				this.href = deobfuscate(h);
				$(this).html(t);
			}
		});
		
	/*
	 *  PNG fixer for IE6
	 *  requires jquery.pngfix.js to be loaded before this script
	 */
		// $("img[src$=png]").pngFix();

	/*
	 *  rounded Nifty corners
	 *  docs: http://www.html.it/articoli/niftycube/index.html
	 */
		// $("#page_wrap").nifty("normal");
		
	/*
	 *  Innerfade slideshows
	 *  docs: http://medienfreunde.com/deutsch/weblog/aus_der_praxis.html?nid=162
	 *  in CSS set the following to prevent images from showing while page loads:
	 * 	 #container img { display: none; }
	 */ 
		$("#slideshow").innerfade({
		    animationtype: 'fade',
		    speed: 1500,
		    timeout: 6000,
		    type: 'sequence',
		    containerheight: '100px'
	    });

	/* search box animation */
	$("#search-text").click(function(){
		$(this).val("");
	});
	
			
	// clear signup form on focus
	/*
	$("#newsletter_signup_form #signup-email").focus(function(){
		$(this).attr("value","");
	});
	*/
	
	/* Google Search form */
	$("#GoogleSearch").submit(function(){
		// add site to search string
		var query = $(this).find("#search-query").attr("value") + " " + $(this).find("#search-text").attr("value");
		$(this).find("#search-query").attr("value",query);
	});

	/* Google Analytics delayed loader
	 *    loads GA tracking script after page loads
	 */
	
	$.log("loading GA script");
	$.getScript("http://www.google-analytics.com/ga.js",function(){
		// execute page tracker function when script loaded
		$.log("GA script loaded");
		var pageTracker = _gat._getTracker("UA-5475261-1");
		pageTracker._trackPageview();
			
	/*
	 *  external links
	 *  tags with class="external" target="_blank"
	 *  optional Google Analytics tracking code trigger
	 */
		// (add https and don't include urls that start with site domain
		var pre = "/LINK/";				// prefix to add to URL for GA tracking code
		$('a[href^="http://"]')
			.addClass('external')			// add CSS class for styling
			.attr('target', '_blank')		// open in popup window
			.click(function(){				// GA tracking code
				var href = $(this).attr("href");
				href = href.substr(7,9999);	// trim off http://
				var i = href.indexOf("www.");	// trim off www.
				if (i===0){
					href = href.substr(4,9999);
				}
				href = encodeURI(href);		// encode URL
				$.log(pre + href);			// log href to console
				pageTracker._trackPageview(pre + href)	// GA tracker code
				//return false;				// cancel link action
			})
		;
	});

	// create Flash video players on elements with class='video'
	var counter = 0;
	var videoDir = "/video/";
	$(".video").each(function(){
		// create video player id
			counter += 1;
			var playerId = "videoPlayer_" + counter;
			$(this).prepend("<div class='videoPlayer' id='" + playerId + "'></div>");
			//$.log(playerId);
		// get video filename from link
			var url = $(this).find("a").eq(0).attr("href");
			//$.log(url);
			var filename = url.substring(url.lastIndexOf('video/')+6);
			filename = filename.substring(0,filename.lastIndexOf('.'));
			$(this).children("a").remove();
			$.log(filename);
		// create flash object
			var s1 = new SWFObject("/js/player.swf","ply","100%","100%","9","#000000");
			s1.addParam("allowfullscreen","true");
			s1.addParam("allowscriptaccess","always");
			var flashvars = "file=" + videoDir + filename + ".flv";
			flashvars += "&image=" + videoDir + filename + "_thumbnail.jpg";
			//flashvars += "&logo=simplimation.jpg";
			//flashvars += "&skin=skins/stylish.swf";
			//flashvars += "&link=http://www.simplimation.com";	// add link button
			//flashvars += "&autostart=true";
			//flashvars += "&repeat=always";	// none|list|always|single
			flashvars += "&displayclick=play";	// play|link|fullscreen|mute|next|none
			flashvars += "&icons=true";	// show buffering indicator
			flashvars += "&quality=false";	// enable hi-quality video
			flashvars += "&controlbar=bottom";	// bottom|over|false
			flashvars += "&volume=50";	// player volume
			//flashvars += "&mute=true";
			//flashvars += "&resizing=true";	// resize to fill container
			//flashvars += "&id=player1";	// javascript id
			//flashvars += "&frontcolor=0000ff";	// control bar foreground
			flashvars += "&backcolor=e4dec5";	// control bar background
			//flashvars += "&lightcolor=ff0000";	// progress and volume bar
			//flashvars += "&screencolor=ff00ff";	// screen bg color
			s1.addParam("flashvars",flashvars);
			s1.write(playerId);
	});


	
		
});

$(window).resize(function(){
	/* set min page width */
		setPageWidth();	
});