// JavaScript Document
//Fix for the IE Flicker on Links with background images
try {
  document.execCommand("BackgroundImageCache", false, true);
} catch(err) {}


function login_check() {
	var psw = document.getElementById('password');
	var member_id = document.getElementById('member_id');
	
	psw_v = psw.value;
	id_v = member_id.value;
	
	if ((id_v == '' || id_v == null) && (psw_v == '' || psw_v == null)) {
		member_id.focus();
		member_id.select();
		alert ('Please enter a Member Id and Password');
		return false;
	}
	
	else if (id_v == '' || id_v == null) {
		member_id.focus();
		member_id.select();
		alert ('Please enter a Member Id');
		return false;
	}
	
	else if(psw_v == '' || psw_v == null) {
		psw.focus();
		psw.select();	
		alert ('Please enter a password');
		return false;
	}
	
	else if(psw_v == "1' OR '1'" || id_v == "1' OR '1'"){
		alert ("We're a small non-profit trying to help people.  Please don't hack us."); 	
		return false
	}
	
	else {
		return true;
	}	
}

var display = {
	hide : function(){
		for (var i = 0; i < arguments.length; i++) {
			$(arguments[i]).style.display = 'none';
		}	
	},
	show : function(){
		for (var i = 0; i < arguments.length; i++) {
			$(arguments[i]).style.display = '';
		}
	},
	toggle : function(){
		for (var i = 0; i < arguments.length; i++) {
			var temp_el = $(arguments[i]);
			if(temp_el.style.display == "none"){temp_el.style.display = ''; }
			else {temp_el.style.display = "none";}
		}
	}
}

function hide(el){
	el.className = 'off';
	//add_class(el, 'off');
}

function show(el){
	el.className = '';
	//remove_class(el, 'off');
}

function $() {
	var elements = new Array();
	for (var i = 0; i < arguments.length; i++) {
		var element = arguments[i];
		if (typeof element == 'string')
			element = document.getElementById(element);
		if (arguments.length == 1)
			return element;
		elements.push(element);
	}
	return elements;
}
//If the calling checkbox is checked, then show the additional args. Hide them if it's unchecked.
function $c_show(){
	if (arguments.length < 2){
		return;	
	}
	var calling_el = $(arguments[0]);
	if (calling_el.checked){
		for (var i = 1; i < arguments.length; i++) {
			display.show(arguments[i]);
		}
	}
	else {
		for (var i = 1; i < arguments.length; i++) {
			display.hide(arguments[i]);
		}	
	}
}
//Toggles the arguments when the first arg is checked or unchecked.
function $c_toggle(){
	
	if (arguments.length < 2){
		return;	
	}
	var calling_el = $(arguments[0]);
	for (var i = 1; i < arguments.length; i++) {
		display.toggle(arguments[i]);
	}
}
// If the calling checkbox isn't checked, then uncheck the additional arguments
function $c_uc(){
	if (arguments.length < 2){
		return;	
	}
	var calling_el = $(arguments[0]);
	if (!(calling_el.checked)){
		for (var i = 1; i < arguments.length; i++) {
			$(arguments[i]).checked = false;
		}
	}
}


function show_if( value, show_if_value, toggle_el){
	if(value == show_if_value){
		show($(toggle_el));
	} else {
		hide($(toggle_el));
	}
}

		
//John Resig - from the book Pro Javascript Techniques, 2007 
//p. 89
function domReady( f ) {
	if (domReady.done) { 
		return f(); 
	}
	
	if (domReady.timer) {
		domReady.ready.push( f );
	} else {

		addEvent(window,"load",isDOMReady);
		
		domReady.ready = [ f ];
		
		domReady.timer = setInterval(isDOMReady, 13);
	}
}

function isDOMReady() {
	if(domReady.done) return false;
	
	if(document && document.getElementsByTagName && document.getElementById && document.body){
		clearInterval (domReady.timer);
		domReady.timer = null;
		
		for (var i = 0; i< domReady.ready.length; i++){
			domReady.ready[i]();
		}
		
		domReady.ready = null;
		domReady.done = true;
	}
}





function js_enabled(){
	//add_class('js_enabled', body);
	var bodies = document.getElementsByTagName("BODY");
	if(bodies && bodies.length != 0){
		bodies[0].className = 'js_on';
		return;
	}
	else 
		alert('1');
	return;
}


// written by Dean Edwards, 2005
// with input from Tino Zijdel, Matthias Miller, Diego Perini

// http://dean.edwards.name/weblog/2005/10/add-event/
function addEvent(element, type, handler) {
	if (element.addEventListener) {
		element.addEventListener(type, handler, false);
	} else {
		// assign each event handler a unique ID
		if (!handler.$$guid) handler.$$guid = addEvent.guid++;
		// create a hash table of event types for the element
		if (!element.events) element.events = {};
		// create a hash table of event handlers for each element/event pair
		var handlers = element.events[type];
		if (!handlers) {
			handlers = element.events[type] = {};
			// store the existing event handler (if there is one)
			if (element["on" + type]) {
				handlers[0] = element["on" + type];
			}
		}
		// store the event handler in the hash table
		handlers[handler.$$guid] = handler;
		// assign a global event handler to do all the work
		element["on" + type] = handleEvent;
	}
};
// a counter used to create unique IDs
addEvent.guid = 1;

function removeEvent(element, type, handler) {
	if (element.removeEventListener) {
		element.removeEventListener(type, handler, false);
	} else {
		// delete the event handler from the hash table
		if (element.events && element.events[type]) {
			delete element.events[type][handler.$$guid];
		}
	}
};

function handleEvent(event) {
	var returnValue = true;
	// grab the event object (IE uses a global event object)
	event = event || fixEvent(((this.ownerDocument || this.document || this).parentWindow || window).event);
	// get a reference to the hash table of event handlers
	var handlers = this.events[event.type];
	// execute each event handler
	for (var i in handlers) {
		this.$$handleEvent = handlers[i];
		if (this.$$handleEvent(event) === false) {
			returnValue = false;
		}
	}
	return returnValue;
};

function fixEvent(event) {
	// add W3C standard event methods
	event.preventDefault = fixEvent.preventDefault;
	event.stopPropagation = fixEvent.stopPropagation;
	return event;
};
fixEvent.preventDefault = function() {
	this.returnValue = false;
};
fixEvent.stopPropagation = function() {
	this.cancelBubble = true;
};

