// JavaScript Document
/*
Title:		MCM Javascripts page
Author:		Matt McCloskey, Kemso, LLC
Date:		2008
*/

/* CONFIG  --------------------------------------------------------------------------------------------
use these variables to configure the scripts											   			 */

/* Variables */
var paths = {
	root: '/',
	assets: '/assets/',
	scripts: '/assets/js/'
};

/* Images to preload */
var imagesToPreload = '';

/* Options for AJAX interaction */
var ajaxOpts = {
	method: 'post'											// get or post
};

/* URLS for AJAX interaction */ 
var ajaxURLs = {
};

/* Other URLs */
var urls = {
};

/* Verbage */
var verbage = {
};

/* Show trace HUD */
var show_trace_hud = false;
var trace_hud_levels = ['debug'];

/* END CONFIG  ------------------------------------------------------------------------------------- */


/* Required Libraries
-----------------------------------------------------------------------------------------------------*/
// moo tools
loadJavascript(paths.scripts+'lib/mootools-core.js');
// Libraries
// general
loadJavascript(paths.scripts+'general.js');

/* Optional Libraries
-----------------------------------------------------------------------------------------------------*/


/* Functions
----------------------------------------------------------------------------------------------------- */
function getQueryVariable(variable) {
  var query = window.location.search.substring(1);
  var vars = query.split("&");
  for (var i=0;i<vars.length;i++) {
    var pair = vars[i].split("=");
    if (pair[0] == variable) {
      return pair[1];
    }
  }
  return false;
}
function loadCSS(url){
	var headID = document.getElementsByTagName("head")[0];         
	var cssNode = document.createElement('link');
	cssNode.type = 'text/css';
	cssNode.rel = 'stylesheet';
	cssNode.href = url;
	cssNode.media = 'screen';
	headID.appendChild(cssNode);
}
function loadJavascript(url){
	if( ! window.loaded_scripts) window.loaded_scripts = new Array();
	var is_loaded = false;
	for(var i = 0; i<window.loaded_scripts.length; i++){
		if(window.loaded_scripts[i] == url){
			is_loaded = true;
		}
	}
	if( ! is_loaded){
		document.write('<script type="text/javascript" src="'+url+'"></script>');
		window.loaded_scripts.push(url);
	}
}

// preload image
function preloadImages() {
  	var d=document;
  	if(d.images){
  		if(!d.MM_p) d.MM_p=new Array();
		var i,j=d.MM_p.length,a=preloadImages.arguments;
		for(i=0; i<a.length; i++){
			if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}
		}
    }
}


// Trace heads up display
function trace(level, str){
	if(show_trace_hud){
		if(typeof(str) == 'undefined')
		{
			str = level;
		}
		else
		{
			if( ! trace_hud_levels.contains(level.toLocaleLowerCase())) return false;
			str = level.toUpperCase()+' --> '+str;
		}
		var hud = false;
		if( ! $('trace_hud')){
			hud = new Element('div', {
				'id': 'trace_hud',
				'styles': {
					'position': 'fixed',
					'z-index': '40',
					'top': '10px',
					'right': '10px',
					'width': 400,
					'padding': '10px',
					'background-color': '#000',
					'color': '#FFF',
					'font-size': '11px',
					'opacity': .9
				}
			}).inject($(document.body), 'bottom');
			new Element('a', {'href': '#', 'class': 'hud_close', 'text': 'close'}).inject(hud).addEvent('click', function(e){
				e.stop();
				$('trace_hud').fade(0);
			});
			hud.appendText(' | ');
			new Element('a', {'href': '#', 'class': 'hud_close', 'text': 'off'}).inject(hud).addEvent('click', function(e){
				e.stop();
				window.show_trace_hud = false;
				$('trace_hud').fade(0);
			});
			new Element('div', {'class': 'hud_content', 'styles': {'position': 'static', 'max-height': 200, 'overflow-y': 'auto'}}).inject(hud);
		}else{
			hud = $('trace_hud');
		}
		var new_item = new Element('div', {'text': str, 'styles': {'border-bottom': '1px dotted #333'}}).inject(hud.getElement('.hud_content'));
		$('trace_hud').set('styles', {'display': 'block', 'visibility': 'visible', 'opacity': .9});
		hud.getElement('.hud_content').scrollTo(0, new_item.getPosition().y);
		//new Fx.Scroll(hud.getElement('.hud_content')).toBottom();
	}
}

