addEvent(window, "load", nav_animation_initialize);

function nav_animation_initialize(){
	var menu_row_holder_ref = document.getElementById("imgHolders");
	if(menu_row_holder_ref) var nav_img_holders_arr = menu_row_holder_ref.getElementsByTagName("div");
	var internal_counter = 0;
	if(nav_img_holders_arr){
		for(var m = 0; m < nav_img_holders_arr.length; m++){
			if(matchClass(nav_img_holders_arr[m],"img_container")){
				internal_counter++;
				new MenuImage(nav_img_holders_arr[m], document.getElementById("menu_chapter" + internal_counter));
			}
		}
	}
}

function MenuImage(nav_img_holder, anchors_container){
	this.alpha = 0;
	this.menu_item_holder = nav_img_holder;
	
	this.chapter_links_arr = anchors_container.getElementsByTagName("a");
	
	var span_img_holders_arr = nav_img_holder.getElementsByTagName("span");
	for(var t = 0; t < span_img_holders_arr.length; t++){
		if(matchClass(span_img_holders_arr[t],"over")){
			this.img_holder = span_img_holders_arr[t];
			this.setOpacity();
			this.attachEvents();
		}
	}
}

MenuImage.prototype.fade_in = function(){
	var _my = this;
	if(this.over_int) clearInterval(this.over_int);
	if(this.out_int) clearInterval(this.out_int);
	this.over_int = setInterval(function(){
									if(_my.alpha < 1){
										_my.alpha += 0.1;
										_my.setOpacity();
									}
									else{
										_my.alpha = 1;
										_my.setOpacity();
										clearInterval(_my.over_int);
									}
								}
								,20);
}

MenuImage.prototype.fade_out = function(){
	var _my = this;
	if(this.over_int) clearInterval(this.over_int);
	if(this.out_int) clearInterval(this.out_int);
	this.out_int = setInterval(function(){
									if(_my.alpha > 0){
										_my.alpha -= 0.1;
										_my.setOpacity();
									}
									else{
										_my.alpha = 0;
										_my.setOpacity();
										clearInterval(_my.out_int);
									}
								}
								,20);
}

MenuImage.prototype.attachEvents = function(){
	var _my = this;
	addEvent(this.menu_item_holder, "mouseover", function(){ _my.fade_in(); });
	addEvent(this.menu_item_holder, "mouseout", function(){ _my.fade_out(); });
	
	for(var e = 0; e < this.chapter_links_arr.length; e++){
		addEvent(this.chapter_links_arr[e], "mouseover", function(){ _my.fade_in(); });
		addEvent(this.chapter_links_arr[e], "mouseout", function(){ _my.fade_out(); });
	}
	
}

MenuImage.prototype.setOpacity = function(){
	if(!!document.body.runtimeStyle)this.img_holder.style.filter = "alpha(opacity=" + this.alpha*100 + ")";
	else this.img_holder.style.opacity = this.alpha;
}

function addEvent(objElement, strEventType, ptrEventFunc) {
	if (objElement.addEventListener)
		objElement.addEventListener(strEventType, ptrEventFunc, false);
	else if (objElement.attachEvent)
		objElement.attachEvent('on' + strEventType, ptrEventFunc);
}

function matchClass( objNode, strCurrClass ) {
	return ( objNode && objNode.className.length && objNode.className.match( new RegExp('(^|\\s+)(' + strCurrClass + ')($|\\s+)') ) );
}
