// Main
//init(window, "load", build);

// Init article display
function init(obj, evType, fn){
  if (obj.addEventListener){
    obj.addEventListener(evType, fn, true);
    return true;
  } else if (obj.attachEvent){
        var r = obj.attachEvent("on"+evType, fn);
    return r;
  } else {
        return false;
  }
}

// Article navigation :: Assign behaviours, Reset Menu, Hide h2 element
function build(){
	var current  = get_current_document();
	var articles = document.getElementById("articles");
	var pages    = articles.childNodes;
	var last     = '';
	var locked   = 0;

	for(mitem=0; mitem < pages.length; mitem++){
		switch(pages[mitem].tagName){
			case "H1":
				//alert("First Level Tag, register it.");
				bind_event(pages[mitem], 'click', display);
				if(!locked) last=pages[mitem];
			break;

			case "H2":
				// alert("Second Level Tag");
				// alert(pages[mitem].firstChild.href.substring(pages[item].firstChild.href.lastIndexOf('/')+1));
				pages[mitem].style.display = 'none';
				if(pages[mitem].firstChild.href.substring(pages[mitem].firstChild.href.lastIndexOf('/')+1) == current){
					locked=1;
				}
			break;
		}
	}

	// Deploy last menu's element clicked
	if(locked){
		last.init = display;
		if(document.all){
			last.init(last.innerText);
		}else{
			last.init();
		}
	}
}

// Article Navigation :: Assign element behaviour
function bind_event(object, event, action){
	if(document.all){
		event = 'on'+event;
		object.setAttribute(event,action);
	}else{
		object.addEventListener(event, action, false);
	}
}

// Article Navigation :: Switch element display
function display(content){
	if(document.all){
		if(content){
			var fcaller = content;
		}else{
			var fcaller = window.event.srcElement.innerText;
		}
	}else{
		var fcaller = this.textContent;
	}

	var child  = "H2";
	var start  = 0;
	var stop   = "H1";
	var style  = "none";

	var articles = document.getElementById("articles").childNodes;

	for(article=0; article < articles.length; article++){
		if(document.all){
			articleContent = articles[article].innerText;
		}else{
			articleContent = articles[article].textContent;
		}

		if(start && articles[article].tagName == child){
			status = articles[article].style.display;
			if(status == style){
				articles[article].style.display = 'block';
			}else{
				articles[article].style.display = 'none';
			}
		}else{
			if(articleContent == fcaller) start=1;
			if(start && articles[article].tagName == stop && articleContent != fcaller) return;
		}
	}
}

// Return the current document filename
function get_current_document(){
	return location.pathname.substring(location.pathname.lastIndexOf('/')+1);
}
