
function markAll(chkBox)
{
	var marklistDivs=document.getElementsBySelector("div.markItem");
	var elementCnt=marklistDivs.length;
	var markCnt=MARK_CNT;
	var pgCnt=PG_CNT;
	var totalMarked=markCnt-pgCnt+elementCnt;
	if(chkBox.checked==true)
	{
		if(totalMarked<=50)
		{
			updateMarkListCheckBoxes(chkBox);
			var markedURL=getMarkListURL();
			postRequest(markedURL);
		}
		else
		{
			alert(MARKLIST_ALL_ERR_MSG1+" "+MARKLIST_ALL_ERR_MSG2);
			chkBox.checked=false;
			return;
		}
	}
	else
	{
		updateMarkListCheckBoxes(chkBox);
		var markedURL=getMarkListURL();
		postRequest(markedURL);
	}
}

var inCheckAll=false;

function updateMarkListCheckBoxes(chkBox)
{
	inCheckAll=true;
	var marklistDivs=document.getElementsBySelector("div.markItem");
	for(var i=0; i<marklistDivs.length; i++)
	{
		var element=marklistDivs[i].getElementsByTagName("INPUT")[0];
		if(chkBox.checked==true)
		{
			element.checked=true;
			getElementById("globalTools-markedItems").className="";
			var totalMarked=getTotalMarkedCount();
			displayTotalMarkedCount(totalMarked);
			Toggle(element);
		}
		else
		{
			element.checked=false;
			if(MARK_CNT<=0)
			{
				getElementById("globalTools-markedItems").className="hide";
			}
			var totalMarked=getTotalMarkedCount();
			displayTotalMarkedCount(totalMarked);
			Toggle(element);
		}
	}
	inCheckAll=false;
}

function updateMarkListCount()
{
}

function getMarkListURL()
{
	var markedInfo=getMarkListString();
	return getMarkListURLForMarkedInfo(markedInfo);
}

function getMarkListString()
{
	var element;
	var markedInfo="";
	var marklistDivs=document.getElementsBySelector("div.markItem");
	for(var i=0; i<marklistDivs.length; i++)
	{
		var element=marklistDivs[i].getElementsByTagName("INPUT")[0];
		var markedString=element.value;
		if(element.checked==true)
		{
			markedInfo+=prepareMarkedString(markedString,"1");
		}
		else
		{
			markedInfo+=prepareMarkedString(markedString,"0");
		}
	}
	return markedInfo;
}

function getMarkListURLForMarkedInfo(markedInfo)
{
	var timeNow=new Date();
	var qrystring=UPDATE_MARKLIST_LINK+"&markedString="+markedInfo;
	qrystring+="&a="+timeNow.getTime();
	return qrystring;
}

function prepareMarkedString(dirtyMarkedString,updateStatus)
{
	var markedInfo="";
	markedInfo+=dirtyMarkedString.substring(0,dirtyMarkedString.indexOf('_'));
	dirtyMarkedString=dirtyMarkedString.substring(dirtyMarkedString.indexOf('_')+1);
	markedInfo+="_"+dirtyMarkedString.substring(0,dirtyMarkedString.indexOf('_'));
	dirtyMarkedString=dirtyMarkedString.substring(dirtyMarkedString.indexOf('_')+1);
	if(updateStatus=="1")
	{
		markedInfo+="_"+"1";
	}
	else
	{
		markedInfo+="_"+"0";
	}
	markedInfo+="_"+dirtyMarkedString;
	markedInfo+="^";
	return markedInfo;
}

function mark(chkbox)
{
	if(inCheckAll)return;
	var xmlhttp=getXmlHttpRequest();
	var isAllChecked=true;
	var marklistDivs=document.getElementsBySelector("div.markItem");

	if(!chkbox) chkbox = window.event;
	if(chkbox.currentTarget) chkbox = chkbox.currentTarget
	else if(chkbox.srcElement) chkbox = chkbox.srcElement;

	for(var i=0; i<marklistDivs.length; i++)
	{
		var element=marklistDivs[i].getElementsByTagName("INPUT")[0];
		if(element.checked==false)
		{
			isAllChecked=false;
			break;
		}
	}
	checkOrUncheckMarkAll(isAllChecked);
	var totalMarked=getTotalMarkedCount();
	var markedInfo="";
	if(chkbox.checked==true)
	{
		if(totalMarked<=50)
		{
			var markedURL=getMarkListURL();
			postRequest(markedURL);
		}
		else
		{
			alert(MARKLIST_ERR_MSG);
			chkbox.checked=false;
			checkOrUncheckMarkAll(false);
			return;
		}
	}
	else
	{
		var markedURL=getMarkListURL();
		postRequest(markedURL);
	}
	if(totalMarked>0)
	{
		getElementById("globalTools-markedItems").className="";
		displayTotalMarkedCount(totalMarked);
	}
	else
	{
		getElementById("globalTools-markedItems").className="hide";
	}
}

function markPageCheckBox()
{
	markPage(this);
}

function markPage(chkbox)
{
	var markCnt=MARK_CNT;
	var pgCnt=PG_CNT;
	var totalMarked=getTotalMarkedCount();
	var markedInfo="";
	if(chkbox.checked==true)
	{
		if(totalMarked<=50)
		{
			var markedInfo=prepareMarkedString(chkbox.value,"1");
			var qrystring=getMarkListURLForMarkedInfo(markedInfo);
			postRequest(qrystring);
		}
		else
		{
			alert("There are already 50 articles marked.");
			chkbox.checked=false;
			return;
		}
	}
	else
	{
		var markedInfo=prepareMarkedString(chkbox.value,"0");
		var qrystring=getMarkListURLForMarkedInfo(markedInfo);
		postRequest(qrystring);
	}
	if(totalMarked>0)
	{
		getElementById("globalTools-markedItems").className="";
		displayTotalMarkedCount(totalMarked);
	}
	else
	{
		getElementById("globalTools-markedItems").className="hide";
	}
}

function getTotalMarkedCount()
{
	var markCnt=MARK_CNT;
	var pgCnt=PG_CNT;
	var curCnt=getNoOfMarkedItem();
	var totalMarked=markCnt-pgCnt+curCnt;
	return totalMarked;
}

function getNoOfMarkedItem()
{
	var element;
	var curCnt=0;
	var marklistDivs=document.getElementsBySelector("div.markItem");
	for(var i=0; i<marklistDivs.length; i++)
	{
		var element=marklistDivs[i].getElementsByTagName("INPUT")[0];
		if(element.checked==true)
		{
			curCnt+=1;
		}
	}
	return curCnt;
}

function getMarkedItemCount()
{
	var totalNumber=0;
	var spanObj=getElementById('totalNoOfItems');
	if(spanObj!=null)
	{
		totalNumber=spanObj.innerHTML.replace(/<[^>]+>/g,'');
		totalNumber=totalNumber.replace("(","");
		totalNumber=trim(totalNumber.split("&nbsp;")[0]);
		totalNumber=totalNumber.replace(")","");
		if(isNaN(totalNumber))
		{
			totalNumber=0;
		}
	}
	return totalNumber;
}

function Toggle(whichRow)
{
	return;
	if(whichRow.checked)
	{
		Highlight(whichRow);
	}
	else
	{
		Unhighlight(whichRow);
	}
}

function Highlight(whichRow)
{
	return;
	var resultsRow=null;
	if(whichRow.parentNode&&whichRow.parentNode.parentNode)
	{
		resultsRow=whichRow.parentNode.parentNode;
	}
	if(resultsRow)
	{
		if(resultsRow.className=="resultsRow")
		{
			resultsRow.className="resultsRow highlight";
		}
	}
}

function Unhighlight(whichRow)
{
	return;
	var resultsRow=null;
	if(whichRow.parentNode&&whichRow.parentNode.parentNode)
	{
		resultsRow=whichRow.parentNode.parentNode;
	}
	if(resultsRow)
	{
		if(resultsRow.className=="resultsRow highlight")
		{
		resultsRow.className="resultsRow";
		}
	}
}

function addToggleEvent()
{
	var checkBoxElements=document.getElementsByTagName("input");
	for(var i=0; i<checkBoxElements.length; i++)
	{
		var chkBoxId=checkBoxElements[i].id;
		if(chkBoxId.match("resultsTable-markItem_"))
		{
			checkBoxElements[i].onclick=Toggle;
			checkBoxElements[i].onclick=mark;
		}
	}
}

function checkMarkedRecords()
{
	var currentCount=getMarkedItemCount();
	if(currentCount<=0)
	{
		alert(NO_RECORDS_MARKED_MSG);
		return false;
	}
	else
	{
		window.open(this.href,"galeChildWindow","toolbar=no, directories=no, status=no, location=no, resizable=yes, menubar=no, scrollbars=yes,screenX=50,screenY=50,top=50,left=50,width=750,height=550");
		return false;
	}
}

function printMarkedRecords()
{
var currentCount=getMarkedItemCount();
if(currentCount<=0)
{
alert(NO_RECORDS_MARKED_MSG);
return false;
}else
{
window.open(this.href,"galeChildWindow","toolbar=no, directories=no, status=no, location=no, resizable=yes, menubar=yes, scrollbars=yes,screenX=50,screenY=50,top=50,left=50,width=750,height=550");
return false;
}}
function downloadDocument()
{
var markedItems=getNoOfMarkedItemForTab(this.href);
if(markedItems<=0)
{
alert(NO_RECORDS_DOWNLOAD_MSG);
return false;
}else
{
window.open(this.href,"galeChildWindow",'toolbar=no,resizable=yes,scrollbars=yes,width=650,height=500');
return false;
}}
function getNoOfMarkedItemForTab(url){
var tabId=getParamValueInURL(url,"tabID");
var bucketId=getParamValueInURL(url,"bucketId");
var spanObj=getElementById(tabId+"_"+bucketId);
var totalNumber=spanObj.innerHTML.replace(/<[^>]+>/g,'');
totalNumber=totalNumber.replace("(","");
totalNumber=trim(totalNumber.split("&nbsp;")[0]);
totalNumber=totalNumber.replace(")","");
if(isNaN(totalNumber))
{
totalNumber=0;
}
return totalNumber;
}
function closeRow(row)
{
toClose=getElementById(row);
toClose.style.display="none";
}
function reduceCountByOne(spanId)
{
var spanObj=getElementById(spanId);
var totalNumber=spanObj.innerHTML.replace(/<[^>]+>/g,'');
totalNumber=totalNumber.replace("(","");
totalNumber=trim(totalNumber.split("&nbsp;")[0]);
totalNumber=totalNumber.replace(")","");
if(isNaN(totalNumber))
{
totalNumber=0;
}else
{
--totalNumber;
}
if(totalNumber==0)
{
getElementById("globalTools-markedItems").className="hide";
}else
{
getElementById("globalTools-markedItems").className="";
}
var parsedText=document.createTextNode(' '+totalNumber+' ');
spanObj.innerHTML="";
spanObj.appendChild(parsedText);
spanObj.innerHTML="("+spanObj.innerHTML+"&nbsp;saved item(s))";
displayTotalMarkedCount(totalNumber);
}

function displayTotalMarkedCount(totalMarkedCount)
{
	var spanObj=document.getElementsBySelector("span.noOfMarkedItems")[0];
	var parsedText=document.createTextNode('('+totalMarkedCount+')');
	if(spanObj != null && parsedText != null)
	{
		spanObj.innerHTML="";
		spanObj.appendChild(parsedText);
	}
	if(totalMarkedCount<=0)
	{
		getElementById("globalTools-markedItems").className="hide";
	}
	else
	{
		getElementById("globalTools-markedItems").className="";
	}
}

function removeItemFromMarkList()
{
var elementId=this.id;
var tempId=elementId.substring(elementId.indexOf("-")+1);
var markListId="markList"+tempId;
var tabListId=elementId.substring(elementId.indexOf("_")+1);
var markRowId="markRow"+tempId;
var hiddenObj=getElementById(markListId);
var markedString=prepareMarkedString(hiddenObj.value,"0");
var markedURL=getMarkListURLForMarkedInfo(markedString);
postRequest(markedURL);
reduceCountByOne(tabListId);
reduceCountByOne('totalNoOfItems');
var spanObj=getElementById('totalNoOfItems');
var totalNumber=spanObj.innerHTML.replace(/<[^>]+>/g,'');
if(isNaN(totalNumber))
{
totalNumber=0;
}
closeRow(markRowId);
adjustFollowingLabels(markRowId);
}
function adjustFollowingLabels(rowId)
{
var nextRowId=getNextRow(rowId);
var nextRow=getElementById(nextRowId);
while(nextRow!=null)
{
linkArray=nextRow.getElementsByTagName("STRONG");
for(i=0;
i<linkArray.length;
++i)
{
var newSequenceNumber=parseInt(linkArray[i].innerHTML)-1;
linkArray[i].innerHTML=newSequenceNumber+".";
}
nextRowId=getNextRow(nextRowId);
nextRow=getElementById(nextRowId);
}}
function getNextRow(rowId)
{
var rowParams=rowId.split("_");
var nextRowNum=parseInt(rowParams[0].substring(7))+1;
var nextRowId="markRow"+nextRowNum+"_"+rowParams[1]+"_"+rowParams[2];
return nextRowId;
}
function checkOrUncheckMarkAll(isChecked)
{
var markAll_1=getElementById("iteratorBar-selectAll_1");
if(markAll_1!=null)
{
markAll_1.checked=isChecked;
}}

function attachToolsForMarkList(id,func)
{
	var obj=getElementById(id);
	if(obj!=null)
	{
		var linkArray=obj.getElementsByTagName("a");
		if(linkArray.length>0)
		{
			linkArray[0].onclick=func;
		}
	}
}

function identifyIdOfRemoveItem()
{
	var elements=document.links;
	for(var i=0; i<elements.length; i++)
	{
		if(elements[i].id.match("remove-"))
		{
			elements[i].onclick=removeItemFromMarkList;
		}
	}
}

function addDownloadEvenForEachTab()
{
	var downloadTabs=document.links;
	for(var i=0;
	i<downloadTabs.length;
	i++)
	{
		if(downloadTabs[i].id.match("marklist_download")!=null)
		{
			downloadTabs[i].onclick=downloadDocument;
		}
	}
}

function attachEventsForCheckBox()
{
	var chkBox_1=getElementById("iteratorBar-markDocument_1");
	if(chkBox_1!=null)
	{
		chkBox_1.onclick=markPageCheckBox;
	}
}

var HAVE_TOPBAR = false;
function attachMarklistPageEvents()
{
	if(HAVE_TOPBAR)
	{
		attachToolsForMarkList("docTools-email",checkMarkedRecords);
		attachToolsForMarkList("docTools-print",printMarkedRecords);
		attachToolsForMarkList("globalTools-infomark",printMarkedRecords);
		attachToolsForMarkList("docTools-citation",checkMarkedRecords);
		attachPopupForSelector("li.howToCiteLink",openGaleChildWindow);
		attachPopupForSelector("ul.libraryLinks",openGaleChildWindow);
		var pdfLink=document.getElementsBySelector("li.pdfLink")[0];
		if(isValidObject(pdfLink))
		{
			attachPopupForSelector("li.pdfLink",retrievePDFFromResultList);
		}
		attachPopup("marklist-howToCite",checkMarkedRecords);
		attachEventsForCheckBox();
		addDownloadEvenForEachTab();
		addToggleEvent();
		identifyIdOfRemoveItem();
		var totalMarked=getTotalMarkedCount();
		displayTotalMarkedCount(totalMarked);
		if(BOOKMARK_URL == "")
		{
			getElementById("globalTools-bookmark").className="hide";
		}
	}
}

function checkforupdates()
{
	while(updatingmarklist && (xmlhttp.readyState != 4))
	{
		status="Still Updating Marklist " + xmlhttp.readyState;
	}
}

addWindowLoadEvent(attachMarklistPageEvents);
addWindowUnLoadEvent(checkforupdates);

