var currentIdDocument = '';
var baseServ = '';

function joly_docs_view_switchDisplayChilds(el_mixed, is_global_parent) {
	var el;
	var el_allowed_childs;

	if (is_global_parent == true) {
		el = document.getElementById(el_mixed);
	} else {
		el = el_mixed;
	}

	var el_allowed_childs = joly_docs_view_getChilds(el);
	var ji;
	for (ji = 0; ji < el_allowed_childs.length; ji++) {
		joly_docs_view_openDisplay(el_allowed_childs[ji][0]);
	}
	return true;
}

function joly_docs_view_getChilds(el) {
	var tmp = new Array(2);
	var el_allowed_childs_a = new Array();
	var el_allowed_childs_tmp;
	var el_allowed_childs_td;
	var i;

	var el_allowed_childs_tr = el.getElementsByTagName("tr");
	if (el_allowed_childs_tr) {
		for (i=0; i < el_allowed_childs_tr.length; i++) {
			el_allowed_childs_td = el_allowed_childs_tr[i].getElementsByTagName("td");
			if (el_allowed_childs_td != null) {
				if (el_allowed_childs_td.length <= 1) continue;
				el_allowed_childs_tmp = el_allowed_childs_td[1].getElementsByTagName("a");
				if (el_allowed_childs_tmp != null) {
					tmp = new Array(2);
					tmp[0] = el_allowed_childs_tmp[0];
					el_allowed_childs_tmp = el_allowed_childs_td[1].getElementsByTagName("table");
					tmp[1] = el_allowed_childs_tmp[0];
					if (tmp[1] != undefined)
						el_allowed_childs_a.push(tmp);
				}
			}
		}
	}
	return el_allowed_childs_a;
}
function joly_docs_view_openDisplay(el_current) {

	var el_hidden = joly_docs_view_getHiddenElement(el_current);
	if (el_hidden != undefined) {
		var el = el_hidden;
	} else {
		return false;
	}

	if (el.style == undefined) {
		el.style.display = "block";
	} else {
		if (el.style.display == "block") {
			return true;
		} else {
			el.style.display = "block";
		}
	}

	var img_childs = el_current.getElementsByTagName("img");
	if( img_childs != null ) {
		if (el.style.display == "block") {
			img_childs[0].src = "../assets/images/td_checkbox2.gif";
		} else {
			img_childs[0].src = "../assets/images/td_checkbox.gif";
		}
	}

	return true;
}
function joly_docs_view_switchDisplay(el_current, base) {
	baseServ = base;
	var el_hidden = joly_docs_view_getHiddenElement(el_current);
	if (el_hidden != undefined) {
		var el = el_hidden;
	} else {
		return false;
	}

	if (el.style == undefined) {
		el.style.display = "block";
	} else {
		if (el.style.display == "block") {
			el.style.display = "none";
		} else {
			el.style.display = "block";
		}
	}

	var img_childs = el_current.getElementsByTagName("img");
	if( img_childs != null ) {
		if (el.style.display == "block") {
			img_childs[0].src = "../assets/images/td_checkbox2.gif";
		} else {
			img_childs[0].src = "../assets/images/td_checkbox.gif";
		}
	}
	return true;
}

function joly_docs_view_getHiddenElement(el_current) {
	var tbl_childs = el_current.parentNode.getElementsByTagName("table");

	if( tbl_childs != null && tbl_childs != undefined) {
		return tbl_childs[0];
	} else {
		return undefined;
	}
}
function joly_docs_view_display(el_current) {

	var el_hidden = joly_docs_view_getHiddenElement(el_current);
	if (el_hidden != undefined) {
		var el = el_hidden;
	} else {
		return false;
	}

	if (el.style == undefined) {
		el.style.display = "block";
	} else {
		if (el.style.display == "block") {
			return true;
		} else {
			el.style.display = "block";
		}
	}

	var img_childs = el_current.getElementsByTagName("img");
	if( img_childs != null ) {
		img_childs[0].src = "../assets/images/td_checkbox2.gif";
	}

	return true;
}
function loadChild(base, obj, idNode) {
	var idToc = obj.getAttribute("tocId");
	var useCheckbox = obj.getAttribute("useCheckbox");
	var tocLevel = "INP";
	var title = obj.getAttribute("title");
	if (obj.getAttribute("tocLevel")){
		tocLevel = obj.getAttribute("tocLevel");
	}
	if(idToc != currentIdDocument )
		loadTheToc = false;
	var parent = obj.parentNode;
	if(parent.getElementsByTagName("table").length > 0){
		joly_docs_view_switchDisplay(obj, base);
		return;
	}
	if(idToc) {
		action = "/document/tocChildren";
		if(window.document.advancedSearchForm){
			action = "/document/tocChildren?from=advSearch";
		}
		jQuery.post(base + action,{idToc:idToc, useCheckbox:useCheckbox, tocLevel:tocLevel,title:title },
			function(data, textStatus, response) {
				parent.innerHTML += data;
				joly_docs_view_switchDisplay(parent.getElementsByTagName("a")[0],base);
	   			currentElement = window.document.getElementById(tocLevel);
	   			if (currentElement){
	   				propagateChildren( currentElement, 0, false );
	   			}
	   			if(idNode){
	   				var advs2 = document.getElementById("advs2");
	   				var advs1 = document.getElementById("advs1");
	   				isFormuleAndEtude = advs2.checked && advs1.checked;
	   				var fond = "E";
	   				if(isFormuleAndEtude) fond = "FE";
	   				else if(advs2.checked) fond = "F";
	   				tocTrDisplayLeafs(idNode, fond, isFormuleAndEtude);
	   			}
	   		}
	   	);
		
	} 	
}
		
function propagateParent( obj, idx )
{
	if( !window.document.advancedSearchForm.selectionTOC )
		return;

	// Id sans le "INP"
	shortId = obj.id.substr(3, obj.id.length-3);
	// Tableau des niveaux (sans le N)
	tab = shortId.split("N");
	var tocs = document.getElementsByName("selectionTOC");
	for(i=0;i<tocs.length;i++)
	{
		if(tocs[i].disabled == false)
		{
			currentId = tocs[i].id;
			if( currentId.length < obj.id.length )
			{
				id = "INP";
				for(j=1;j<tab.length;j++)
				{
					id += "N"+tab[j];
					if( id == currentId )
					{
						tocs[i].checked = false;
					}
				}
			}
		}
	}
}


		
function propagateChildren( obj, idx, recursive )
{
	var i;

	if( !window.document.advancedSearchForm.selectionTOC )
		return;
	var tocs = document.getElementsByName("selectionTOC");
	for(i=idx;i<tocs.length;i++)
	{
		if(tocs[i].disabled == false)
		{
			currentId = tocs[i].id;
			id = currentId.substr(0, obj.id.length+1);
			id2 = currentId.substr( obj.id.length, currentId.length);
			re1 = new RegExp( "N" );
			if( id2.match(re1)
				&& id==obj.id+"N" )
			{
					tocs[i].checked=obj.checked;
			}
			re2 = new RegExp( "\\d+$" );
			if( id.match(re2) > obj.id.match(re2) && recursive )
			{
				break;
			}
		}
	}
	return;
}
function doChildChecking(obj) {
	try {
	
		propagateChildren( obj, 0, false );
		propagateParent( obj, 0 );
	}
	catch(ex) {}
}

function unscroll(id) {
	var obj = document.getElementById(id)
	obj.scrollTop = 0;

}
function scrollTo(idObjScrolled, idSrollTo) {
	var objScrolled = document.getElementById(idObjScrolled)
	var objScrollTo = document.getElementById(idSrollTo)
	var posFrom = xPageY(objScrolled) ;
	var posTo = xPageY(objScrollTo) ;	
	var pos = posTo - posFrom;
	objScrolled.scrollTop = pos;
}
