var pSelectedItem;
var CurrentDocumentObjectId = -1;
var CurrentObjectId = HomeObjectId;
var nPages, nCurrentPage, nRecords;
var tab_home, tab_home_content, tab_newfolder, tab_newfolder_content, tab_newdocument, tab_newdocument_content, tab_document, tab_document_content;
var tab_fileupload, tab_fileupload_content;

function AuthorHomeAtom_Init(){

	tab_home = document.getElementById("tab_home");
	tab_home_content = document.getElementById("tab_home_content");
	tab_newfolder = document.getElementById("tab_newfolder");
	tab_newfolder_content = document.getElementById("tab_newfolder_content");
	tab_newdocument = document.getElementById("tab_newdocument");
	tab_newdocument_content = document.getElementById("tab_newdocument_content");
	tab_document = document.getElementById("tab_document");
	tab_document_content = document.getElementById("tab_document_content");
	tab_fileupload = document.getElementById("tab_fileupload");
	tab_fileupload_content = document.getElementById("tab_fileupload_content");
	
	AuthorHomeAtom_BuildObjectList(HomeObjectId);
}

function AuthorHomeAtom_ShowAjaxLoader(bShow){
	if(bShow){
		document.getElementById("ajaxicon").style.display = "block";
	}else{
		document.getElementById("ajaxicon").style.display = "none";
	}
}

function AuthorHomeAtom_BuildObjectList(ObjectId, GetParent, PageId){

	CurrentObjectId = ObjectId;
	AuthorHomeAtom_ShowAjaxLoader(true);
	
	AuthorHomeAtom_ClearCurrentList();
	var Url = "/idocument/authorhome/atom/authorhome_getdocs.aspx?objectid="+ObjectId;
	Url += "&page=" + PageId;
	if(GetParent){Url += "&type=p";}
	
	Ajax_GetXmlPage(Url, AuthorHomeAtom_BuildObjectList_Response);
	
}
function AuthorHomeAtom_BuildObjectList_Response(){
	if (!Ajax_XmlHttp_IsReady()){return;}
	
	var XmlDoc = Ajax_XmlHttp.responseXML;
	var nodes;
	var objectid, typeid, name, icon, bpmstage;
	
	//get page numbers etc
	nodes = XmlDoc.getElementsByTagName("children")
	nPages = nodes[0].getAttribute("pages");
	nCurrentPage = nodes[0].getAttribute("currentpage");
	nRecords = nodes[0].getAttribute("count");
	
	document.getElementById("AuthorHomeAtom_ObjectCount").innerHTML = "Containing " + nRecords + " items. Page " + nCurrentPage + " of " + nPages + ".";
	
	if(nRecords > 0){		
		//get the child objects
		nodes = XmlDoc.getElementsByTagName("object")
		if(nodes.length<=0){
			//LibraryAtom_AddNoContent();
		}else{	
			for(var i = 0; i < nodes.length; i++){
				objectid = nodes[i].getAttribute("id");
				typeid =  nodes[i].getAttribute("typeid");
				name = nodes[i].getElementsByTagName("name")[0].firstChild.data;
				icon = nodes[i].getElementsByTagName("icon")[0].firstChild.data;
				bpmstage = nodes[i].getElementsByTagName("bpmstages")[0].firstChild.data;
				AuthorHomeAtom_AddObject(objectid, typeid, name, icon, bpmstage);
			}
		}
	}
	AuthorHomeAtom_ShowAjaxLoader(false);
}
function AuthorHomeAtom_ClearCurrentList(){
	var t = document.getElementById("AuthorHome_DocumentList_tbody");
	var rows = t.getElementsByTagName("tr");
	var count = rows.length-4;
	for(var i = 0; i < count; i++){
		try{t.deleteRow(2);}catch(ex){}
	}
}
function AuthorHomeAtom_AddObject(objectid, typeid, name, icon, bpmstage){
	var t = document.getElementById("AuthorHome_DocumentList_tbody");
	var rows = t.getElementsByTagName("tr");
	var tr, td;

	tr = t.insertRow(rows.length-2);
	
	tr.id = objectid;
	tr.typeid = typeid;
	tr.onclick = AuthorHomeAtom_ObjectClick;
	tr.ondblclick = AuthorHomeAtom_ObjectDblClick;
	tr.className = "Atom_ObjectList_Object";
	
	td = tr.insertCell(0);
  	td.innerHTML = "<img src='" + icon + "'/>";

	td = tr.insertCell(1);
	td.width = "100%";
  	td.innerHTML = name;
	
	td = tr.insertCell(2);
	td.innerHTML = bpmstage;
	
	td = tr.insertCell(3);
	td.innerHTML = "";

}
function AuthorHomeAtom_ObjectBack(){
	AuthorHomeAtom_BuildObjectList(CurrentObjectId,true);
}
function AuthorHomeAtom_ObjectClick(){
	if(pSelectedItem){pSelectedItem.className = "Atom_ObjectList_Object";}
	pSelectedItem = this;
	pSelectedItem.className = "Atom_ObjectList_Object_Highlight";
}
function AuthorHomeAtom_ObjectDblClick(){
	switch(parseInt(this.typeid)){
		case 2: //folder
			AuthorHomeAtom_BuildObjectList(this.id);
			break;
		case 40000: //document
			AuthorHomeAtom_ShowDocDetail(this.id);
			break;
	}
}
function AuthorHomeAtom_PageFirst(){
	if(nCurrentPage > 1){AuthorHomeAtom_BuildObjectList(CurrentObjectId, false, 1);}
}
function AuthorHomeAtom_PagePrevious(){
	var NewPage = (parseInt(nCurrentPage) - 1);
	if(NewPage >= 1){AuthorHomeAtom_BuildObjectList(CurrentObjectId, false, NewPage);}
}
function AuthorHomeAtom_PageNext(){
	var NewPage = (parseInt(nCurrentPage) + 1);
	if(NewPage <= nPages){AuthorHomeAtom_BuildObjectList(CurrentObjectId, false, NewPage);}
}
function AuthorHomeAtom_PageLast(){
	if(nCurrentPage < nPages){AuthorHomeAtom_BuildObjectList(CurrentObjectId, false, nPages);}
}

function AuthorHomeAtom_ShowHome(ReloadFolder){
	if(ReloadFolder){AuthorHomeAtom_BuildObjectList(CurrentObjectId, false, nCurrentPage);}
	AuthorHomeAtom_ShowTab("home");
}

function AuthorHomeAtom_ShowTab(tab){
	switch(tab){
		case "home":
			tab_home.className = "Atom_TabOver";	
			tab_home_content.style.display = "block";
			tab_newdocument.className = "Atom_Tab";
			tab_newdocument.style.display = "none";
			tab_newdocument_content.style.display = "none";
			tab_newfolder.className = "Atom_Tab";
			tab_newfolder.style.display = "none";
			tab_newfolder_content.style.display = "none";
			tab_document.className = "Atom_Tab";
			tab_document.style.display = "none";
			tab_document_content.style.display = "none";
			break;
		case "doc":
			tab_home.className = "Atom_Tab";	
			tab_home_content.style.display = "none";
			tab_newdocument.className = "Atom_TabOver";
			tab_newdocument.style.display = "block";
			tab_newdocument_content.style.display = "block";
			tab_newfolder.className = "Atom_Tab";
			tab_newfolder.style.display = "none";
			tab_newfolder_content.style.display = "none";
			tab_document.className = "Atom_Tab";
			tab_document.style.display = "none";
			tab_document_content.style.display = "none";
			tab_fileupload.style.display = "none";
			tab_fileupload_content.style.display = "none";
			break;
		case "folder":
			tab_home.className = "Atom_Tab";	
			tab_home_content.style.display = "none";
			tab_newdocument.className = "Atom_Tab";
			tab_newdocument.style.display = "none";
			tab_newdocument_content.style.display = "none";
			tab_newfolder.className = "Atom_TabOver";
			tab_newfolder.style.display = "block";
			tab_newfolder_content.style.display = "block";
			tab_document.className = "Atom_Tab";
			tab_document.style.display = "none";
			tab_document_content.style.display = "none";
			tab_fileupload.style.display = "none";
			tab_fileupload_content.style.display = "none";
			break;
		case "docdetail":
			tab_home.className = "Atom_Tab";	
			tab_home_content.style.display = "none";
			tab_document.className = "Atom_TabOver";
			tab_document.style.display = "block";
			tab_document_content.style.display = "block";
			tab_newdocument.className = "Atom_Tab";
			tab_newdocument.style.display = "none";
			tab_newdocument_content.style.display = "none";
			tab_newfolder.className = "Atom_Tab";
			tab_newfolder.style.display = "none";
			tab_newfolder_content.style.display = "none";
			tab_fileupload.style.display = "none";
			tab_fileupload_content.style.display = "none";
			break;
		case "fileup":
			tab_fileupload.className = "Atom_TabOver";
			tab_fileupload.style.display = "block";
			tab_fileupload_content.style.display = "block";
			tab_home.className = "Atom_Tab";
			tab_home_content.style.display = "none";
			tab_document.className = "Atom_Tab";
			//tab_document.style.display = "none";
			tab_document_content.style.display = "none";
			tab_newdocument.className = "Atom_Tab";
			tab_newdocument.style.display = "none";
			tab_newdocument_content.style.display = "none";
			tab_newfolder.className = "Atom_Tab";
			tab_newfolder.style.display = "none";
			tab_newfolder_content.style.display = "none";
			break;
	}
}

/* NEW FOLDER */

function AuthorHomeAtom_NewFolder(){
	AuthorHomeAtom_ShowTab("folder");
	document.getElementById("txtNewFolder").value = "";
	document.getElementById("txtNewFolder").focus();
}
function AuthorHomeAtom_CreateNewFolder(){
	AuthorHomeAtom_ShowAjaxLoader(true);
	var url = "/idocument/authorhome/atom/authorhome_cmd.aspx?cmd=992";
	url += "&parentobjectid=" + CurrentObjectId;
	url += "&name=" + document.getElementById("txtNewFolder").value;
	Ajax_GetXmlPage(url, AuthorHomeAtom_CreateNewFolder_Response);
}
function AuthorHomeAtom_CreateNewFolder_Response(){
	if (!Ajax_XmlHttp_IsReady()){return;}
	AuthorHomeAtom_ShowHome(true);
	AuthorHomeAtom_ShowAjaxLoader(false);
}

/* DELETE OBJECT */

function AuthorHome_DeleteObject(){
	if(!pSelectedItem){alert("You must select (highlight) an item to delete.");return;}
	if(confirm("Are you sure you want to permanently delete this item?")){
		AuthorHomeAtom_ShowAjaxLoader(true);
		var url = "/idocument/authorhome/atom/authorhome_cmd.aspx?cmd=556";
		url += "&objectid=" + pSelectedItem.id;
		Ajax_GetXmlPage(url, AuthorHome_DeleteObject_Response);	
	}
}
function AuthorHome_DeleteObject_Response(){
	if (!Ajax_XmlHttp_IsReady()){return;}
	AuthorHomeAtom_ShowHome(true);
	AuthorHomeAtom_ShowAjaxLoader(false);
}

/* NEW DOCUMENT */

function AuthorHome_NewDocument(){
	document.getElementById("iframe_newdoc").src = "/idocument/authorhome/atom/authorhome_uploader.aspx?parentobjectid=" + CurrentObjectId;
	AuthorHomeAtom_ShowTab("doc");
}

/* DOCUMENT DETAILS */

function AuthorHomeAtom_ShowDocDetail(docid){
	AuthorHomeAtom_ShowAjaxLoader(true);
	CurrentDocumentObjectId = docid;
	var url = "/idocument/authorhome/atom/authorhome_getdocdetails.aspx?objectid=" + docid;
	url += "&subfolders=" + SubFolders;
	Ajax_GetXmlPage(url, AuthorHomeAtom_ShowDocDetail_Response);
}
function AuthorHomeAtom_ShowDocDetail_Response(){
	if (!Ajax_XmlHttp_IsReady()){return;}
	var XmlDoc = Ajax_XmlHttp.responseXML;
	var nodes = XmlDoc.getElementsByTagName("object")
	var name, ref, abstract, keywords;
	var componentNodes, phydocid, phydocname, phydocdate, phydocicon;
	var subfolderNodes, subFolderId, subFolderIsParent, subFolderSpan, subFolderOverallSpan;
	if(nodes.length<=0){
		//LibraryAtom_AddNoContent();
	}else{	
		name = nodes[0].getElementsByTagName("title")[0].firstChild.data;
		ref =  nodes[0].getElementsByTagName("ref")[0].firstChild.data;
		abstract = nodes[0].getElementsByTagName("abstract")[0].firstChild.data;
		keywords = nodes[0].getElementsByTagName("keywords")[0].firstChild.data;
		
		document.getElementById("AuthorHome_DocumentDetail_DocumentId").innerHTML = CurrentDocumentObjectId;
		document.getElementById("txtTitle").value = name;
		document.getElementById("txtRef").value = ref;
		document.getElementById("txtAbstract").value = abstract;
		document.getElementById("txtKeywords").value = keywords;
		
		//SUBMIT FOLDERS / BPM STAGES/STATUS
		
		subfolderNodes = XmlDoc.getElementsByTagName("submitfolder");
		if(subfolderNodes.length<=0){
			//no submission folder configured
		}else{
			for(var i = 0; i < subfolderNodes.length; i++){
				
				subFolderId = subfolderNodes[i].getAttribute("id");
				subFolderIsParent = subfolderNodes[i].getAttribute("ischild");
				
				subFolderSpan = document.getElementById("AuthorHome_Submission_CurrentStage_"+subFolderId);
				subFolderOverallSpan = document.getElementById("AuthorHome_Submission_OverallStatus_"+subFolderId);
				subFolderActionSpan = document.getElementById("AuthorHome_Submission_Action_"+subFolderId);
				
				if(subFolderIsParent == "true"){
					subFolderOverallSpan.innerHTML = "Submitted";
					subFolderSpan.innerHTML = "";
					subFolderActionSpan.innerHTML = "";
				}else{
					subFolderOverallSpan.innerHTML = "Not Submitted";
					subFolderSpan.innerHTML = "";
					//subFolderActionSpan.innerHTML = "<div class=\"Buttons_Right\"><ul class=\"Buttons\"><li><a href=\"javascript:AuthorHomeAtom_SubmitFor("+subFolderId+");\" class=\"Button\"><img  width=\"16\" height=\"16\" src=\"/icon/16/app/shadow/document_into.png\" alt=\"Submit\"/>Submit</a></li></ul></div>";
					subFolderActionSpan.innerHTML = "<ul class=\"Buttons_Right\"><li><a href=\"javascript:AuthorHomeAtom_SubmitFor("+subFolderId+");\" class=\"Button\"><img  width=\"16\" height=\"16\" src=\"/icon/16/app/shadow/document_into.png\" alt=\"Submit\"/>Submit</a></li></ul>";
				}
				
			}
		}
		
		//COMPONENTS
		
		componentNodes = XmlDoc.getElementsByTagName("component");
		var t = document.getElementById("AuthorHome_DocumentList_ComponentList");
		var rows = t.getElementsByTagName("tr");
		var tr, td;
		
		//delete any current rows
		for(var i = 0; i <= rows.length; i++){try{t.deleteRow(0);}catch(ex){}}
		
		if(componentNodes.length<=0){
			//no components
		}else{
	
			for(var i = 0; i < componentNodes.length; i++){
				
				phydocid = componentNodes[i].getAttribute("phydocid");
				phydocname = componentNodes[i].getElementsByTagName("name")[0].firstChild.data;
				phydocdate = componentNodes[i].getElementsByTagName("datepublished")[0].firstChild.data;
				phydocicon = componentNodes[i].getElementsByTagName("icon")[0].firstChild.data;
				
				tr = t.insertRow(rows.length);
				
				tr.id = "phydocid_" + phydocid;
				tr.onclick = AuthorHomeAtom_ObjectClick;
				
				td = tr.insertCell(0);
				td.innerHTML = "<img onload=\"png(this);\" src='/icons/media/" + phydocicon + "'/>";
		
				td = tr.insertCell(1);
				td.width = "100%";
				td.innerHTML = phydocname;
				
				td = tr.insertCell(2);
				td.innerHTML = "<ul class=\"Buttons_Right\"><li><a href=\"javascript:AuthorHome_DeleteComponent("+phydocid+");\" class=\"Button\"><img onload=\"png(this);\" width=\"16\" height=\"16\" src=\"/icon/16/app/shadow/delete2.png\">Delete</a></li></ul>";

			}
		}
		
	}
	AuthorHomeAtom_ShowTab("docdetail");
	AuthorHomeAtom_ShowAjaxLoader(false);
}
function AuthorHomeAtom_SaveDocDetail(){
	AuthorHomeAtom_ShowAjaxLoader(true);
	var url = "/idocument/authorhome/atom/authorhome_cmd.aspx?cmd=561";
	url += "&objectid=" + pSelectedItem.id;
	url += "&name=" + document.getElementById("txtTitle").value;
	url += "&ref=" + document.getElementById("txtRef").value;
	url += "&abstract=" + document.getElementById("txtAbstract").value;
	url += "&keywords=" + document.getElementById("txtKeywords").value;
	Ajax_GetXmlPage(url, AuthorHomeAtom_SaveDocDetail_Response);
}

function AuthorHomeAtom_SaveDocDetail_Response(){
	if (!Ajax_XmlHttp_IsReady()){return;}
	AuthorHomeAtom_ShowAjaxLoader(false);
	AuthorHomeAtom_ShowHome(true);
}
function AuthorHome_DeleteComponent(pyhdocid){
	if(confirm("Are you sure you want to permanently delete this component (file)?")){
		AuthorHomeAtom_ShowAjaxLoader(true);
		var url = "/idocument/authorhome/atom/authorhome_cmd.aspx?cmd=115";
		url += "&objectid=" + CurrentDocumentObjectId;
		url += "&phydocid=" + pyhdocid;
		Ajax_GetXmlPage(url, AuthorHome_DeleteComponent_Response);	
	}
}
function AuthorHome_DeleteComponent_Response(){
	if (!Ajax_XmlHttp_IsReady()){return;}
	AuthorHomeAtom_ShowAjaxLoader(false);
	AuthorHomeAtom_ShowDocDetail(CurrentDocumentObjectId);
}
function AuthorHome_UploadFile(){
	document.getElementById("iframe_comupload").src = "/idocument/authorhome/atom/authorhome_componentuploader.aspx?logdocid=" + CurrentDocumentObjectId;
	AuthorHomeAtom_ShowTab("fileup");
}

/* BPM STATUS */

function AuthorHomeAtom_SubmitFor(folderid){
	if(confirm("Do you want to submit this document (ref "+CurrentDocumentObjectId+"/"+folderid+")?")){
		AuthorHomeAtom_ShowAjaxLoader(true);
		var url = "/idocument/authorhome/atom/authorhome_cmd.aspx?cmd=443";
		url += "&objectid=" + CurrentDocumentObjectId;
		url += "&parentid=" + folderid;
		Ajax_GetXmlPage(url, AuthorHomeAtom_SubmitFor_Response);
	}
}
function AuthorHomeAtom_SubmitFor_Response(){
	if (!Ajax_XmlHttp_IsReady()){return;}
	AuthorHomeAtom_ShowAjaxLoader(false);
	AuthorHomeAtom_ShowDocDetail(CurrentDocumentObjectId);
}
