/* functions for characters.html */

var Characters = {
	image_base_path_sm: 'images/char_sm_',
	image_suff: '.jpg',
	image_suff_over: '_over.jpg',
	preloaded_imgs: {},

	// run on load
	onload_handler: function() {
		//alert('running onload_handler');
		// run our init to be sure
		Characters.char_init();
		// call master/global init function, too:
		init();
	},

	char_init: function() {
		//alert('running char_init');
		// only run this once:
		if (arguments.callee.done) return;
		arguments.callee.done = true;

		//alert('running init');

		// kill the Safari timer, if any
		if (Characters._timer) {
			clearInterval(Characters._timer);
			Characters._timer = null;
		}

		Characters.init_links();
		Characters.init_txt();
	},

	init_txt: function() {
		if (! document.getElementById)
			return;
		this.show_txt('intro');
	},

	init_links: function() {
		// set up picture links
		if (! document.getElementById)
			return;

		//alert('calling init_links');
		var char_links = document.getElementById('char_nav').getElementsByTagName('a');
		for (var i = 0; i < char_links.length; i++) {
			var link = char_links[i]; // a_welliot
			//alert('init_links: ' + link.id);
			//link.onclick = function() { Characters.char_click(this, Characters); return false; };
			//link.onclick = function() { Characters.show_txt('txt_welliot'); return false; };
			link.onclick = function() { Characters.show_txt(this.id); return false; };
			link.onmouseover = function(){ Characters.char_over(this); };
			link.onmouseout = function(){ Characters.char_out(this); };
			var basename = link.id;
			//basename.replace(/^a_/, "");
			if (basename.match(/^a_/)) {
				basename = basename.substring(2, basename.length);
			}
			// preload over state:
			this.preloaded_imgs[basename] = new Image();
			this.preloaded_imgs[basename].src = this.image_base_path_sm + basename + this.image_suff_over;
		}
	},

	show_txt: function(txt_name) {
		// hide all txt but given:
		var new_name = txt_name;
		if (txt_name.match(/^a_/)) {
			new_name = txt_name.substring(2, txt_name.length);
			//alert('show_txt |' + new_name + '|');
		}
		var txt_divs = document.getElementById('char_text_container').getElementsByTagName('div');
		for (var i = 0; i < txt_divs.length; i++) {
			var this_div = txt_divs[i];
			//alert('i = ' + i);
			//if (this_div.className == 'char_txt' && this_div.id != 'txt_' + txt_name) {
			if (this_div.id == 'txt_' + new_name) {
				this_div.style.display = 'block';
			} else {
				this_div.style.display = 'none';
			}
		}
	},

	char_over: function(link) {
		//alert('over ' + link.id);
		var basename = link.id;
		//basename.replace(/^a_/, "");
		if (basename.match(/^a_/)) {
			basename = basename.substring(2, basename.length);
		}
		var img = document.getElementById(link.id).getElementsByTagName('img')[0];
		//alert("img src was " + img.src);
		img.src = this.image_base_path_sm + basename + this.image_suff_over;
		//alert("img src is " + img.src);
	},

	char_out: function(link) {
		//alert('out ' + link.id);
		var basename = link.id;
		//basename.replace(/^a_/, "");
		if (basename.match(/^a_/)) {
			basename = basename.substring(2, basename.length);
		}
		var img = document.getElementById(link.id).getElementsByTagName('img')[0];
		img.src = this.image_base_path_sm + basename + this.image_suff;
	}

};





// thanks dean.edwards.name

if (document.addEventListener) {
  document.addEventListener("DOMContentLoaded", Characters.char_init, false);
}

// for Internet Explorer (using conditional comments)
/*@cc_on @*/
/*@if (@_win32)
document.write("<script id=__ie_onload defer src=javascript:void(0)><\/script>");
var script = document.getElementById("__ie_onload");
script.onreadystatechange = function() {
  if (this.readyState == "complete") {
    Characters.char_init(); // call the onload handler
  }
};
/*@end @*/

if (/WebKit/i.test(navigator.userAgent)) { // sniff
  Characters._timer = setInterval(function() {
    if (/loaded|complete/.test(document.readyState)) {
      clearInterval(Characters._timer);
      Characters.char_init(); // call the onload handler
    }
  }, 10);
}

window.onload = Characters.onload_handler;
