/*function LibraryAtom_ShowHideCategory(id){
	var d_header = document.getElementById("cat"+id);
	var d_content = document.getElementById("catcontent"+id);
	if(d_content.style.display == "none"){
		Effect.BlindDown(d_content.id);
		LibraryAtom_BuildDocList(id);
	}else{
		Effect.BlindUp(d_content.id);
	}
}
*/

var CatsLoaded = false;


function LibraryAtom_ShowMainAjaxLoader(bShow){
	if(bShow){
		document.getElementById("ajaxicon").style.display = "block";
	}else{
		document.getElementById("ajaxicon").style.display = "none";
	}
}
function LibraryAtom_ShowHideCategory(id){
	var d = document.getElementById(id);
	if(d.style.display == "none"){
		Effect.BlindDown(d.id);
	}else{
		Effect.BlindUp(d.id);
	}
}
function LibraryAtom_BuildDocList(CatId){
	LibraryAtom_ShowMainAjaxLoader(true);
	Ajax_GetXmlPage("/idocument/library/atom/library_getdocs.aspx?categoryid="+CatId+'&associationtypeid='+DocAssociationTypeId+'&catobjtypeid='+CategoryObjectTypeId, LibraryAtom_BuildDocList_Response);
}
function LibraryAtom_BuildDocList_Response(){
	if (Ajax_XmlHttp.readyState != 4){return;}
	if (Ajax_XmlHttp.status != 200){return;}
	document.getElementById("docs").innerHTML = ""; //clear current list
	var XmlDoc = Ajax_XmlHttp.responseXML;
	var nodes = XmlDoc.getElementsByTagName("object")
	var objectid, t, a, u;
	
	if(nodes.length<=0){
		LibraryAtom_AddNoContent();
	}else{	
		for(var i = 0; i < nodes.length; i++){
			objectid = nodes[i].getAttribute("id");
			t = nodes[i].getElementsByTagName("title")[0].firstChild.data;
			a = nodes[i].getElementsByTagName("abstract")[0].firstChild.data;
			u = nodes[i].getElementsByTagName("url")[0].firstChild.data;
			LibraryAtom_AddNewDoc(objectid,t,a,u);
		}
	}
	LibraryAtom_ShowMainAjaxLoader(false);
}
function LibraryAtom_AddNoContent(){
	document.getElementById("docs").innerHTML = ""; //clear current list
	var d = document.createElement("div");
	d.innerHTML = "There are no documents available to you in this category.";
	document.getElementById("docs").appendChild(d);
}
function LibraryAtom_AddNewDoc(nId, sTitle, sAbstract, sUrl){
	var p = document.getElementById("docs");
	var d = document.createElement("div");
	var d_title = document.createElement("div");
	var d_abstract = document.createElement("div");
	
	d.id = "doc" + nId;
	d.className = "LibraryAtom_DocumentListItem";
	
	d_title.innerHTML = "<a href=\""+sUrl+"\">" + sTitle + "</a>"
	d_title.className = "LibraryAtom_DocumentListItem_Title";
	d_abstract.innerHTML = sAbstract;
	
	d.appendChild(d_title);
	d.appendChild(d_abstract);
	p.appendChild(d);	

}


function LibraryAtom_ShowTab(tab){
	var tab_home = document.getElementById("tab_home");
	var tab_home_content = document.getElementById("tab_home_content");
	var tab_search = document.getElementById("tab_search");
	var tab_search_content = document.getElementById("tab_search_content");
	
	switch(tab){
		case "tab_home":
			tab_search.className = "Atom_Tab";
			tab_search_content.style.display = "none";
			tab_home.className = "Atom_TabOver";
			tab_home_content.style.display = "block";
			LibraryAtom_ListCatChildren(CategoryRootObjectId);
			break;
			
		case "tab_search":
			tab_home.className = "Atom_Tab";
			tab_home_content.style.display = "none";
			tab_search.className = "Atom_TabOver";
			tab_search_content.style.display = "block";
			break;
	}
}

/* SEARCH */

var LibraryAtom_CurrentPage = 1;
var LibraryAtom_TotalPages = 1;
var LibraryAtom_PageSize = 10;
var LibraryAtom_OrderBy = "publisheddate desc";

function LibraryAtom_ClearResults(){
	var t = document.getElementById("tbSearchResults");
	var rows = t.getElementsByTagName("tr");
	var count = rows.length;
	for(var i = 0; i < count; i++){
		try{t.deleteRow(0);}catch(ex){}
	}
}


function LibraryAtom_ShowAjaxLoader(bShow){
	if(bShow){
		//document.getElementById("LibraryAtom_SearchResults").style.display = "none";
		document.getElementById("LibraryAtom_SearchResults").style.visibility = "hidden";
		document.getElementById("LibraryAtom_AjaxLoader").style.display = "block";
	}else{
		document.getElementById("LibraryAtom_AjaxLoader").style.display = "none";
		//document.getElementById("LibraryAtom_SearchResults").style.display = "block";
		document.getElementById("LibraryAtom_SearchResults").style.visibility = "visible";
	}
}
function LibraryAtom_DoSearch(){

	LibraryAtom_ShowAjaxLoader(true);

	LibraryAtom_ClearResults();

	var opt = 0;
	var Url = "/idocument/library/atom/library_search.aspx?st=";
	Url += document.getElementById("LibraryAtom_SearchText").value;
	
	//search options
	if(document.getElementById("LibraryAtom_chkTitle").checked == true){opt = opt | 1;}
	if(document.getElementById("LibraryAtom_chkKeywords").checked == true){opt = opt | 2;}
	if(document.getElementById("LibraryAtom_chkAbstract").checked == true){opt = opt | 4;}
	if(document.getElementById("LibraryAtom_chkDeepSearch").checked == true){opt = opt | 8;}	
	Url += "&opt=" + opt;
	
	if(document.getElementById("LibraryAtom_SearchType").checked){
		Url += "&op=and";}else{Url += "&op=or";}
		
	Url += "&p=" + LibraryAtom_CurrentPage;
	Url += "&ps=" + LibraryAtom_PageSize;
	Url += "&ob=" + LibraryAtom_OrderBy;
	Url += "&rc=" + CategoryRootObjectId;
	
//	document.getElementById("urltest").innerHTML = Url;
	
//	document.write(Url)
	
	Ajax_GetXmlPage(Url, LibraryAtom_DoSearch_Response);
}
function LibraryAtom_DoSearch_Response(){
	if (!Ajax_XmlHttp_IsReady()){return;}
	
	var XmlDoc = Ajax_XmlHttp.responseXML;
	var nodes, count, time, resultid;
	
	nodes = XmlDoc.getElementsByTagName("results")
	count = nodes[0].getAttribute("count");
	time = nodes[0].getAttribute("time");
	LibraryAtom_TotalPages = nodes[0].getAttribute("pages");
	LibraryAtom_CurrentPage = nodes[0].getAttribute("currentpage");

	if(parseInt(LibraryAtom_TotalPages) < 0){LibraryAtom_TotalPages = 1;}

	document.getElementById("LibraryAtom_ResultInfo").innerHTML = "Found "+count+" result(s) in "+time+" seconds, page " + LibraryAtom_CurrentPage + " of " + LibraryAtom_TotalPages + ".";
	document.getElementById("LibraryAtom_PageInfo1").innerHTML = "Page " + LibraryAtom_CurrentPage + " of " + LibraryAtom_TotalPages + ".";

	var objectid, title, abstract, url, t, tr, td, rows, rankbar;
	rankbar = "";
	t = document.getElementById("tbSearchResults");
	rows = t.getElementsByTagName("tr");
	nodes = XmlDoc.getElementsByTagName("document")
	
	if(nodes.length<=0){
	
		tr = t.insertRow(rows.length);
		tr.className = "Search_ResultEnd";
		td = tr.insertCell(0);
		td.align = "left";
		td.innerHTML = "<div class=\"Search_ResultText\" align=\"center\">Your search returned 0 results.</div>";

	}else{
		for(var i = 0; i < nodes.length; i++){
		
			objectid = nodes[i].getAttribute("id");
			resultid = nodes[i].getAttribute("resultid");
			title = nodes[i].getElementsByTagName("title")[0].firstChild.data;
			abstract = nodes[i].getElementsByTagName("abstract")[0].firstChild.data;
			url = nodes[i].getElementsByTagName("url")[0].firstChild.data;
			
			//rank out of 5. inner div width 12px per rank.
			//if(document.getElementById("LibraryAtom_chkDeepSearch").checked){
			//	rankbar = "<div style=\"width:62px;height:5px;border:1px solid #008200;padding:1px;\">File Rank: <div style=\"width:12px;height:5px;background-color:#008200;\"></div></div>";
			//	}else{rankbar = "";}
						
			tr = t.insertRow(rows.length);
			tr.id = objectid;
			//tr.onclick = AuthorHomeAtom_ObjectClick;
			//tr.ondblclick = AuthorHomeAtom_ObjectDblClick;
			if(i == (nodes.length-1)){
				tr.className = "Search_ResultEnd";
			}else{
				tr.className = "Search_Result";
			}
						
			td = tr.insertCell(0);
			td.align = "left";
			
			td.innerHTML += "<div class=\"Search_ResultTitle\"><a href=\""+url+"\">"+title+"</a></div>";
			td.innerHTML += "<div class=\"Search_ResultText\">"+abstract+"</div>";
			td.innerHTML += "<div class=\"Search_ResultUrl\">"+url+rankbar+"</div>";			

		}		
	}
	
	LibraryAtom_ShowAjaxLoader(false);
	
}

function LibraryAtom_PageFirst(){
	if(parseInt(LibraryAtom_CurrentPage) > 1){
		LibraryAtom_CurrentPage = 1;
		LibraryAtom_DoSearch();
	}
}
function LibraryAtom_PagePrevious(){
	if(parseInt(LibraryAtom_CurrentPage) > 1){
		LibraryAtom_CurrentPage = (parseInt(LibraryAtom_CurrentPage) - 1);
		LibraryAtom_DoSearch();
	}
}
function LibraryAtom_PageNext(){
	if(parseInt(LibraryAtom_CurrentPage) < parseInt(LibraryAtom_TotalPages)){
		LibraryAtom_CurrentPage = (parseInt(LibraryAtom_CurrentPage) + 1);
		LibraryAtom_DoSearch();
	}
}
function LibraryAtom_PageLast(){
	if(parseInt(LibraryAtom_CurrentPage) < parseInt(LibraryAtom_TotalPages)){
		LibraryAtom_CurrentPage = LibraryAtom_TotalPages;
		LibraryAtom_DoSearch();
	}
}
function LibraryAtom_SetSearchPageSize(size){
	LibraryAtom_PageSize = size;
	LibraryAtom_DoSearch();
}
function LibraryAtom_SetOrderBy(orderby){
	LibraryAtom_OrderBy = orderby;
	LibraryAtom_DoSearch();
}






















var ParentCat = "";
var CatIndent = -1;
var LoadedCats = "";
function LibraryAtom_ListCatChildren(CatId){

	if(CatsLoaded == true && CatId == CategoryRootObjectId){return;}

	LibraryAtom_ShowMainAjaxLoader(true);

	if(LoadedCats.indexOf((CatId+",")) >= 0){
	
		//the cat has been loaded. show (or hide) its div
		LibraryAtom_ShowHideCategory("parent_"+CatId);
		LibraryAtom_ShowMainAjaxLoader(false);
	
	}else{

		//cat not loaded, get it...
		LoadedCats += CatId + ",";
		CatIndent += 1;
		if(ParentCat == ""){ParentCat = "x";}else{ParentCat = CatId;}
		Ajax_GetXmlPage("/idocument/library/atom/library_cmd.aspx?cmd=112&objectid="+CatId, LibraryAtom_ListCatChildren_Response);
		
	}
	
	CatsLoaded = true;
	
}
function LibraryAtom_ListCatChildren_Response(){
	
	if (Ajax_XmlHttp.readyState != 4){return;}
	if (Ajax_XmlHttp.status != 200){return;}
	//document.getElementById("docs").innerHTML = ""; //clear current list

	var XmlDoc = Ajax_XmlHttp.responseXML;
	var nodes = XmlDoc.getElementsByTagName("Child")
	var objectid, objectname, objecticon, objecttypeid;
	var p, d, pd, html;
	var onepad = 5;
	
	if(nodes.length<=0){
		//no children (do nothing)
	}else{	
		
		p = document.getElementById("cat_"+ParentCat);
		pd = document.createElement("div");
		pd.id = "parent_" + ParentCat;
		pd.style.display = "none";
		
		for(var i = 0; i < nodes.length; i++){
			html = "";
			pad = 0;
			objectid = nodes[i].getAttribute("id");
			objectname = nodes[i].getAttribute("name");
			objecticon = nodes[i].getAttribute("icon");
			objecttypeid = nodes[i].getAttribute("typeid");

			d = document.createElement("div");
			html = "<img onload=\"png(this);\" src=\""+objecticon+"\" class=\"LibraryAtom_Img\">&nbsp;";
			switch(parseInt(objecttypeid)){
				case 3: //category object type
					html += "<a href=\"javascript:LibraryAtom_ListCatChildren("+objectid+");\">" + objectname + "</a>";
					break;
				case parseInt(CategoryObjectTypeId):
					html += "<a href=\"javascript:LibraryAtom_BuildDocList("+objectid+");\">" + objectname + "</a>"
					break;
				default:
					html += objectname;
					break;
			}
			d.id = "cat_" + objectid;
			d.className = "LibraryAtom_CategoryContent";
			d.innerHTML = html
			pad = (onepad * CatIndent);
			d.style.paddingLeft = (pad + "px");
			d.style.paddingTop = "4px";
			p.appendChild(d);
			
			pd.appendChild(d);
		}
		
		p.appendChild(pd);
		
	//	alert("here1");
		
		LibraryAtom_ShowHideCategory(pd.id);
		
	}
	
	LibraryAtom_ShowMainAjaxLoader(false);
}

function LibraryAtom_InitWithSearch(SearchText){

	document.getElementById("LibraryAtom_SearchText").value = SearchText;

	LibraryAtom_ShowTab("tab_search");
	
	LibraryAtom_DoSearch();
	
	LibraryAtom_ShowMainAjaxLoader(false);

}