// vars
var default_swap_time = '';
var default_swap_quote = '';
var default_blurb = '';
var default_nav_id = '';
var default_nav_src = '';

function initTimelineIndexNav() {
	if (!document.getElementsByTagName || !document.getElementById('year_nav')) return;
	var anchors = document.getElementById('year_nav').getElementsByTagName('a');
	for (var i = 0; i < anchors.length; i++) {
		var anchor = anchors[i];
		if (anchor.getAttribute('href')){  // ignores named anchors
			anchor.onmouseover = function(){
				try{
					//swapImg('swap_quote', 'images/'+this.id+'_index_quote.gif');
					manClsNames( 'swap', document.getElementById('heart_'+this.firstChild.id.substr(5,6)), 'hide', 'show' );
				} catch(e) { /* catch exceptions */ }
			};
			anchor.onmouseout = function(){
				try{
					//swapImg('swap_quote', 'images/mainquote.gif');
					manClsNames( 'swap', document.getElementById('heart_'+this.firstChild.id.substr(5,6)), 'show', 'hide' );
				} catch(e) { /* catch exceptions */ }
			};
			anchor.onclick = function(){
				try{
					popWithSize(this.href, 'love_timeline', 635, 600); return false;
				} catch(e) { /* catch exceptions */ }
			};
		}
	}
}

/* ************************ */
// for preloading images and rollovers
var aryLoadImg = new Array();
var ncImgOver = '_over';
var ncClsRoll = 'roll';

function loadImg(imgFile, imgType){
	var i = aryLoadImg.length;
	aryLoadImg[i] = new Image();
	aryLoadImg[i].src = imgFile + '.' + imgType;
	return i;
}

function swapImg(imgId, imgSrc){ if(document.images){ document.images[imgId].src = imgSrc; } }

function initImages() {
	if (!document.getElementsByTagName) return;
	var aryImages = document.getElementsByTagName('img');
	var regex_roll = new RegExp('\\b'+ncClsRoll+'\\b');
	for (var i = 0; i < aryImages.length; i++) {
		var thisImg = aryImages[i];
		// this is used for single image roll overs
		if(thisImg.className.match(regex_roll)){
			var imgFile = thisImg.src.substr(0, thisImg.src.length-4);
			var imgType = thisImg.src.substr(thisImg.src.length-3, thisImg.src.length);
			var roll_idx = loadImg(imgFile+ncImgOver, imgType);
			thisImg.roll_idx = roll_idx;
			thisImg.onmouseover = function(){
				try {
					swapImg( this.id, aryLoadImg[this.roll_idx].src );
				} catch(e) { /*alert(e);*/ }
			};
			thisImg.onmouseout = function(){
				try {
					var regex_ncImgOver = new RegExp(ncImgOver+'\.');
					swapImg( this.id, this.src.replace(regex_ncImgOver, '.') );
				} catch(e) { /*alert(e);*/ }
			};
		}
		if(thisImg.src.substr(thisImg.src.length-3, thisImg.src.length) == 'png'){
			fix_ie_png(thisImg.id);
		}
	}
}

function fix_ie_png(imgId){
	/*@cc_on @*/
	/*@if (@_jscript)
		var thisImg = document.images[imgId];
		thisImg.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' + thisImg.src + '", sizingMethod="image")';
		thisImg.style.background = 'transparent';
		thisImg.src = "images/clear.gif";
	/*@end @*/
	return;
}

function initNavMaps() {
	if (!document.getElementsByTagName || !document.getElementById ) return;
	// index page
	if( document.getElementById('year_main_image_Map') ){
		var areas = document.getElementById('year_main_image_Map').getElementsByTagName('area');
		for (var i = 0; i < areas.length; i++) {
			try {
				areas[i].swapId = 'year_' + areas[i].id.substr(areas[i].id.length-1, areas[i].id.length);
				areas[i].swapOverId = document.getElementById(areas[i].swapId).roll_idx;
				// assign area actions
				areas[i].onmouseover = function(){
					try {
						swapImg( this.swapId, aryLoadImg[this.swapOverId].src );
					} catch(e){ /* catch exceptions */ }
				};
				areas[i].onmouseout = function(){
					try {
						var regex_ncImgOver = new RegExp(ncImgOver+'\.');
						swapImg( this.swapId, document.getElementById(this.swapId).src.replace(regex_ncImgOver, '.') );
					} catch(e){ /* catch exceptions */ }
				};
				areas[i].onclick = function(){
					try {
						popWithSize(this.href, 'love_timeline', 635, 600); return false;
					} catch(e){ /* catch exceptions */ }
				};
			} catch(e){ /* catch exceptions */ }
		}
	}
	if( document.getElementById('titlebar_Map') ){
		var areas = document.getElementById('titlebar_Map').getElementsByTagName('area');
		for (var i = 0; i < areas.length; i++) {
			try {
				areas[i].swapId = 'year_' + areas[i].id.substr(areas[i].id.length-1, areas[i].id.length);
				areas[i].swapOverId = document.getElementById(areas[i].swapId).roll_idx;
//alert(areas[i].swapOverId);
				if( areas[i].swapOverId != undefined ){
					// assign area actions
					areas[i].onmouseover = function(){
						try {
							swapImg( this.swapId, aryLoadImg[this.swapOverId].src );
						} catch(e){ /* catch exceptions */ }
					};
					areas[i].onmouseout = function(){
						try {
							var regex_ncImgOver = new RegExp(ncImgOver+'\.');
							swapImg( this.swapId, document.getElementById(this.swapId).src.replace(regex_ncImgOver, '.') );
						} catch(e){ /* catch exceptions */ }
					};
				}
			} catch(e){ /* catch exceptions */ }
		}
	}
}

// utility function for safe class name managment
function manClsNames( action, obj, cls1, cls2 ){
	switch (action){
	case 'swap':
		obj.className = !manClsNames('check', obj, cls1) ? obj.className.replace( cls2, cls1 ) : obj.className.replace( cls1, cls2 );
		break;
	case 'add':
		if( !manClsNames('check', obj, cls1) ){ obj.className += obj.className ? ' '+cls1 : cls1; }
		break;
	case 'remove':
		var rep = obj.className.match(' '+cls1) ? ' '+cls1 : cls1;
		obj.className = obj.className.replace( rep, '' );
		break;
	case 'check':
		return new RegExp('\\b'+cls1+'\\b').test(obj.className)
		break;
	}
}


// function called when DOM is loaded
function initPage() {
	if (arguments.callee.done) return; // quit if this function has already been called
	arguments.callee.done = true; // flag this function so called only oce
	// do stuff
	initImages();
	initNavMaps();
	initTimelineIndexNav();
}

// for Mozilla based browsers
if (document.addEventListener) {
   document.addEventListener("DOMContentLoaded", initPage, null);
}

// for Internet Explorer
/*@cc_on @*/
/*@if (@_jscript)
   document.write('<script type="text/javascript" defer src=../js/ie_dom_loaded.js></script>');
/*@end @*/

/* for other browsers */
window.onload = initPage;