var checkOffUrl="";
var checkOnUrl="";
var selectionCount=-1;
var selectionCountDisplayID="";
var selectionCountHiddenID="";
var labelMsgID="";
var tblMainID="";
var imgItem;
var imgStyle = "";

function IrthListSearching()
{
    if (labelMsgID=="" || tblMainID=="")
        RetrieveHiddenData();
    
    if (labelMsgID=="" || tblMainID=="")
        return;
        
    //Set this so the timeout can find it.
    imgItem = document.getElementById("divLoadImg");
    if (imgItem)
    {
        imgStyle = imgItem.style.display;        
        imgItem.style.display="inline";    
    }
    
    var label = document.getElementById(labelMsgID);
    if (label)
        label.style.display="none"; 
    var table =  document.getElementById(tblMainID);
    if (table)
        table.style.display="none";
}
function IrthListHandleTimeOut()
{
    var label = document.getElementById(labelMsgID);
    if (label)
        label.style.display="inline"; 
    var table =  document.getElementById(tblMainID);
    if (table)
        table.style.display="inline";

    if (imgItem)
        imgItem.style.display = imgStyle;
}

function RetrieveHiddenData()
{
	if(selectionCount != -1)
		return;
		
	var frm=document.forms[0];
	if(frm == null)
		return;
		
	for (var i=0;i<frm.elements.length;i++) 
	{
		var e = frm.elements[i]; 
		if (e.type !="hidden") 
			continue;
		if(e.className=="irthListSelectionCountDisplayID")
			selectionCountDisplayID=e.value;	
		else if(e.className=="irthListSelectionCount")
		{
			selectionCountHiddenID=e.id;
			if(e.value=="")
			{
				selectionCount=0;
			}	
			else
			{
				selectionCount=parseInt(e.value);	
			}
		}
		else if (e.className=="irthListMainTableID")
		    tblMainID = e.value;
		else if (e.className=="LabelEmptyListMessageID")
		    labelMsgID = e.value;
		
	}
}
function DisplaySelectionCount()
{
	if(selectionCountDisplayID =="")
		return;
	var e=document.getElementById(selectionCountDisplayID);
	if(e==null)
		return;
	e.innerText="  Selected: "+selectionCount;
	
}
function StoreSelectionCount()
{
	if(selectionCountHiddenID=="")
		return;
	var e=document.getElementById(selectionCountHiddenID);
	if(e==null)
		return;
	e.value=selectionCount;
}
function GetParentTableId(E)
 {
	while ((E != null)&&(E.tagName !="TABLE") )
	{
		E=E.parentNode; 
	}
	if(E == null)
		return null;

	return E.id;
 }
 


function SetItemSelection(hiddenItem,selected)
{
	RetrieveHiddenData();

	var img=hiddenItem.parentNode;
	img=img.childNodes[0];	
	while(img.tagName !="IMG")
		img=img.nextSibling;
	

	if(selected && (hiddenItem.value=="N"))
		selectionCount++;
	if(!selected && (hiddenItem.value=="Y"))
		selectionCount--;

	DisplaySelectionCount();
	StoreSelectionCount();

	if(selected)
	{
		hiddenItem.value="Y";
		img.src=checkOnUrl;
	}
	else
	{
		hiddenItem.value="N";
		img.src=checkOffUrl;
	}
	
}
function SetHeaderSelection(hiddenItem,selected)
{
	var img=hiddenItem.parentNode;
	img=img.childNodes[0];	
	while(img.tagName !="IMG")
		img=img.nextSibling;
	
	if(selected)
	{
		hiddenItem.value="Y";
		img.src=checkOnUrl;
	}
	else
	{
		hiddenItem.value="N";
		img.src=checkOffUrl;
	}
}

 function ColorSelectRow(E,selected) 
 {
	while (E.tagName!="TR") 
		E=E.parentNode; 

	if(selected)
		E.className = "selected"; 
	else
		E.className = "unselected"; 

} 
 function ClickedHeaderImage(E)
 {
	SetImageUrl(E);
	var hiddenHeader = E.nextSibling;
	while (hiddenHeader.tagName != "INPUT")
		hiddenHeader = hiddenHeader.nextSibling;

	if(hiddenHeader.value == "Y")
	{
		hiddenHeader.value = "N";
		E.src=checkOffUrl;
	}
	else
	{
		hiddenHeader.value="Y";
		E.src=checkOnUrl;
	}
	var tableId=GetParentTableId(E);
	
	var frm=document.forms[0]; 

	for (var i=1;i<frm.elements.length;i++) 
	{ 
		var e = frm.elements[i]; 
		if (e.type !="hidden") 
			continue;
		if(e.id == hiddenHeader.id)
			continue;

		var parentTableId=GetParentTableId(e);
		if(parentTableId != tableId)
			continue;

		if(hiddenHeader.value=="Y")
		{
			SetItemSelection(e,true);
			ColorSelectRow(e,true); 
		}
		else
		{ 
			SetItemSelection(e,false);
			ColorSelectRow(e,false); 
		}
	} 
 } 


function ClickedItemImage(img)
{
	SetImageUrl(img);
	// get the hiddenItem
	hiddenItem = img;
	while (hiddenItem.tagName != "INPUT")
		hiddenItem = hiddenItem.nextSibling;

	if (hiddenItem.value == "Y") 
	{
		SetItemSelection(hiddenItem,false);	
		ColorSelectRow(img,false);
	}
	else 
	{
		SetItemSelection(hiddenItem,true);	
		ColorSelectRow(img,true);
	}
	var tableId=GetParentTableId(img);


	var hiddenHeader=GetHeaderHiddenInTable(tableId);
	var nNotSelectedCount=GetNotSelectedItemCount(tableId,hiddenHeader.id);
	
	if(	nNotSelectedCount > 0)
	{ 
		SetHeaderSelection(hiddenHeader,false);
	}
	else
	{ 
		SetHeaderSelection(hiddenHeader,true);
	}

}
function GetHeaderHiddenInTable(tableId)
{
	var frm=document.forms[0]; 
	for (var i=1;i<frm.elements.length;i++)
	{ 
		var e=frm.elements[i];
		if(e.type !="hidden")
			continue;
		var parentTableId=GetParentTableId(e);
		if(parentTableId==tableId)
			return e;
	}
	return null;
 }

function GetNotSelectedItemCount(tableId,hiddenHeader)
{
	var nCount=0; 
	var frm=document.forms[0]; 
	for(var i=1;i<frm.elements.length;i++) 
	{ 
		var e = frm.elements[i]; 
		if(e.type !='hidden')
			continue;

		if(e.value =="Y") 
			continue; 
		
		if(e.id==hiddenHeader)
			continue;

		var parentTableId=GetParentTableId(e);
		if(parentTableId != tableId)
			continue;

		nCount=nCount+1; 
	} 
	return nCount;
}
function SetImageUrl(img)
{
	if(checkOffUrl !="")
	 return;
	 var url=img.src;
	 var nIndex=url.lastIndexOf("/");

	 if(nIndex != -1)
		url=url.substr(0,nIndex+1);
	 else
		url="";

	 checkOffUrl=url+"check_off.gif";

	 checkOnUrl=url+"check_on.gif";
}
function Enter(e)
{
	e.className="highlighted";
}

function Leave(e)
{
	e.className="unselected";


	var temp=e; //temp is the <tr> element
	temp=temp.childNodes[0];
	if (temp == null)
		return;
	temp=temp.childNodes[0];
	if (temp == null)
		return;
	while(temp.type != "hidden") 
	{
		temp = temp.nextSibling;
		if (temp == null)
			return;
	}
	if(temp==null)
		return;
	
	if(temp.value=="Y")
		ColorSelectRow(e,true);	
	else
		ColorSelectRow(e,false);	
}

