var treetable_rowstate = new Array();

var treetable_callbacks = new Array();

var closeTimer;

var reportInfoWindow

function reset()
{
	
	treetable_rowstate = null;
	treetable_rowstate = new Array();
}

function treetable_hideRow(rowId) {
  el = document.getElementById(rowId);
  el.style.display = "none";
}

function treetable_showRow(rowId) {
  el = document.getElementById(rowId);
  el.style.display = "";
}

function treetable_hasChildren(rowId) {
  res = document.getElementById(rowId + '_0');
  return (res != null);
}

function treetable_getRowChildren(rowId) {

	
  el = document.getElementById(rowId);
  var arr = new Array();
  i = 0;
  while (true) {
    childRowId = rowId + '_' + i;
    
    childEl = document.getElementById(childRowId);
    if (childEl) {
      arr[i] = childRowId;
    } else {
      break;
    }
    i++;
  }
  return (arr);
}

function treetable_toggleRow(rowId, state, force) {

	  var rowChildren;
	  var i;
	  // open or close all children rows depend on current state
	  force = (force == null) ? 1 : force; 
	
	  if (state == null) {
	    //row_state = ((treetable_rowstate[rowId]) ? (treetable_rowstate[rowId]) : 1) * -1;
	    row_state = treetable_rowstate[rowId];
	    if (row_state == -1)	{
	    	row_state = 1;
	  	} 
	  	else {
	    	row_state = -1;
	  	}
	  }
	  rowChildren = treetable_getRowChildren(rowId);
	  if (rowChildren.length == 0) return (false);
	  for (i = 0; i < rowChildren.length; i++) {
	    if (row_state == -1) {
	      treetable_hideRow(rowChildren[i]);
	      treetable_toggleRow(rowChildren[i], row_state, -1);
	    } else {
	      if (force == 1 || treetable_rowstate[rowId] != -1) {
	        treetable_showRow(rowChildren[i]);
	        treetable_toggleRow(rowChildren[i], row_state, -1);
	      }
	    }
	  }
	  if (force == 1) {
	    treetable_rowstate[rowId] = row_state;
	    treetable_fireEventRowStateChanged(rowId, row_state);
	  }  
  	//also flip the image
  	var row = document.getElementById(rowId); 
  	var images = row.getElementsByTagName("img"); 
	
	var current = images[0].getAttribute("src");
	
	var place = current.lastIndexOf('/');
	var imageName = current.substring(place+1, current.length);
	if (imageName == "plus.gif")
		images[0].setAttribute("src", base_context + 'images/minus.gif');	
	else
		images[0].setAttribute("src", base_context + 'images/plus.gif');	
		
	return (true);
}

	function treetable_fireEventRowStateChanged(rowId, state) 
	{
		if (treetable_callbacks['eventRowStateChanged']) {
	    	callback = treetable_callbacks['eventRowStateChanged'] + "('" + rowId + "', " + state + ");";
		    eval(callback);
	  	}
	}
   
	function startup()
    {
    	//remove off all layer level pushpins
	 	var layerRows = getElementsByName_BrowserInd("LayerRow");
	 	
	 	//j starts at one to satisfy the requirement that states that
	 	//the first layer should be expanded while the others are 
	 	//collapsed
	 	for (j = 1; j < layerRows.length; j++)
 		{
			parent.treetable_toggleRow(layerRows[j].getAttribute("id"));
	 	}
 	}

    function setInitialSuperSelection(element) {
        var inLayerRowId = "table1_0_0";

		/*
		Revert back to regular any superselectedrow
		*/
		var r = getElementsByName_BrowserInd("AttRow");
		var odd = 'false';
	 	var i;
	 	//this first for loop sets all the feature level icons to non-selected
 	 	for (i = 0; i < r.length; i++)
	 	{
	 		if (odd == 'true')
	 		{
		 		r[i].className = "featureRow2";
		 		odd = 'false';
		 	}
		 	else
		 	{
				r[i].className = "featureRow1";
		 		odd = 'true';
			}

		  	/*
 		  	now lets switch to the regular (non super selected row image
 		  	*/
		 	var images = r[i].getElementsByTagName("img"); 
		 	var current;
		 	//images.length == 3 then we got poi s with the edit and delete images
		 	if (images.length == 3)
		 		current = images[2].getAttribute("src");
		 	else //only the selection image 
		 		current = images[0].getAttribute("src");

		 	//find the name of the current image for each image (need to parse the url part off)
		 	//ie and firefox return different results
		 	var place = current.lastIndexOf("/");
		 	var imageName = current.substr(place+1, current.length);

		 	if (imageName == "row-sselect_s.gif")
		 	{
		 		//images.length == 3 then we got pois with the edit and delete images
				if (images.length == 3)
					images[2].setAttribute("src", base_context + 'images/row-sselect_n.gif');	
				else //only the selection image 
					images[0].setAttribute("src", base_context + 'images/row-sselect_n.gif');	
			}
	 	}

	 	//do feature stuff
	 	//switch to the selected row image
	 	var clickedElem = parent.document.getElementById(element);
		var images = clickedElem.getElementsByTagName("img"); 

		//images.length == 3 then we got pois with the edit and delete images
		if (images.length == 3)
			images[2].setAttribute("src", base_context + 'images/row-sselect_s.gif');	
		else //only the selection image
			images[0].setAttribute("src", base_context + 'images/row-sselect_s.gif');	

		//turn the one feature row to superSelectedRow class
		var current = images[0].getAttribute("src");
		clickedElem.className = "superSelectedRow";

		var layerRows = getElementsByName_BrowserInd("LayerRow");

		for (h = 0; h < layerRows.length; h++)
		{
			var layerRow = layerRows[h];
			var cells = layerRow.getElementsByTagName("td");
			var j = 0;
	 		for (j = 0; j < cells.length; j++)
	 		{
		 		if (cells[j].className == "superSelectedBlock")
		 			cells[j].className = "layerRowCell";
		 	}
		}

		//turn the one clicked to superselected
	 	var clickedElem = parent.document.getElementById(inLayerRowId);
	 	clickedElem.setAttribute("class", "superSelectedRow");
	 	var cells = clickedElem.getElementsByTagName("td");
	 	var k;
	 	for (k = 0; k < cells.length; k++)
	 	{
	 		if (cells[k].className == "layerRowCell")
		 		cells[k].className = "superSelectedBlock";
	 	}
    }

	function SuperSelection(element, isPoiSuperSel, inLayerRowId)
	{
		/*
		Revert back to regular any superselectedrow
		*/
		var r = getElementsByName_BrowserInd("AttRow");
		var odd = 'false';
	 	var i;
	 	//this first for loop sets all the feature level icons to non-selected
 	 	for (i = 0; i < r.length; i++)
	 	{
	 		if (odd == 'true')
	 		{
		 		r[i].className = "featureRow2";
		 		odd = 'false';
		 	}
		 	else
		 	{
				r[i].className = "featureRow1";
		 		odd = 'true';
			}
		  	/*
 		  	now lets switch to the regular (non super selected row image
 		  	*/
		 	var images = r[i].getElementsByTagName("img"); 
		 	var current;
		 	//images.length == 3 then we got poi s with the edit and delete images
		 	if (images.length == 3)
		 		current = images[2].getAttribute("src");
		 	else //only the selection image 
		 		current = images[0].getAttribute("src");
		 	
		 	
		 	//find the name of the current image for each image (need to parse the url part off)
		 	//ie and firefox return different results
		 	var place = current.lastIndexOf("/");
		 	var imageName = current.substr(place+1, current.length);
		 	
		 	if (imageName == "row-sselect_s.gif")
		 	{
		 		//images.length == 3 then we got pois with the edit and delete images
				if (images.length == 3)
					images[2].setAttribute("src", base_context + 'images/row-sselect_n.gif');	
				else //only the selection image 
					images[0].setAttribute("src", base_context + 'images/row-sselect_n.gif');	
			}
	 	}
	 	
	 	//do feature stuff
	 	//switch to the selected row image
	 	var clickedElem = document.getElementById(element);
		var images = clickedElem.getElementsByTagName("img"); 
		
		//images.length == 3 then we got pois with the edit and delete images
		if (images.length == 3)
			images[2].setAttribute("src", base_context + 'images/row-sselect_s.gif');	
		else //only the selection image
			images[0].setAttribute("src", base_context + 'images/row-sselect_s.gif');	
			
		//turn the one feature row to superSelectedRow class
		var current = images[0].getAttribute("src");
		clickedElem.className = "superSelectedRow";
		
		var layerRows = getElementsByName_BrowserInd("LayerRow");
		
		for (h = 0; h < layerRows.length; h++)
		{
			var layerRow = layerRows[h];
			var cells = layerRow.getElementsByTagName("td");
			var j = 0;
	 		for (j = 0; j < cells.length; j++)
	 		{
		 		if (cells[j].className == "superSelectedBlock")
		 			cells[j].className = "layerRowCell";
		 	}
		}
			
		//turn the one clicked to superselected
	 	var clickedElem = document.getElementById(inLayerRowId);
	 	clickedElem.setAttribute("class", "superSelectedRow");
	 	var cells = clickedElem.getElementsByTagName("td");
	 	var k;
	 	for (k = 0; k < cells.length; k++)
	 	{
	 		if (cells[k].className == "layerRowCell")
		 		cells[k].className = "superSelectedBlock";
	 	}
	 	
	 	//forward the information along
	 	var index = element.indexOf("*");
		var layerName =  element.substr(0, index);
		var featureId = element.substr(index+1, element.length);
		
		//DIDB40337 log the user action
		logUserAction("Public Module", "SuperSelection"); 
		
	 	if (isPoiSuperSel == false)
			callToServer(ctxPath + "/superSelectionAction.html?LayerName=" + layerName+ "&FeatureIndex=" + featureId, "mapIFrame");
		else	
			callToServer(ctxPath + "/superSelectionPOIAction.html?LayerName=" + layerName+ "&FeatureId=" + featureId, "mapIFrame");
	}   
	
    function exportPopupMenu(e, layerName)
    {
    	clearTimeout(closeTimer);
    	var xpos=0;
		var xpos=0;
		if (window.event) {
			xpos =  e.x;
			ypos = e.y;
			
		} else {
			xpos = e.pageX;
			ypos = e.pageY;
		}
		
		layerName = escape(layerName);
		
		var layerMenu = layerName+"exportMenu";
		var element = document.getElementById(layerMenu);
		
		element.style.left = parseInt(xpos) - parseInt(dataGridWin.style.left) + "px";
		element.style.top = parseInt(ypos) - parseInt(dataGridWin.style.top) + "px";
		element.style.visibility = "visible";
    }
    
    function exportPDF(layerName)
    {
    	callToServer(ctxPath + "/exportAttributes.html?layerName=" + layerName + "&exportType=pdf", "mapIFrame");
    	
    	var divTag = layerName+"exportMenu";
	    var element = document.getElementById(divTag);
    	element.style.visibility = "hidden";
	} 	    	
   
    function exportExcel(layerName)
    {
    	callToServer(ctxPath + "/exportAttributes.html?layerName=" + layerName + "&exportType=excel", "mapIFrame");	
    	var divTag = layerName+"exportMenu";
    	var element = document.getElementById(divTag);
    	element.style.visibility = "hidden"
    }

    function exportCSV(layerName)
    {
        callToServer(ctxPath + "/exportAttributes.html?layerName=" + layerName + "&exportType=csv", "mapIFrame");	
	    var divTag = layerName+"exportMenu";
   	  	var element = document.getElementById(divTag);
    	element.style.visibility = "hidden" 	
    }
	
	function exportXML(layerName)
    {
        callToServer(ctxPath + "/exportAttributes.html?layerName=" + layerName + "&exportType=xml", "mapIFrame");	
       	var divTag = layerName+"exportMenu";
    	var element = document.getElementById(divTag);
    	element.style.visibility = "hidden" 	
    }
     
    function mouseOverPDF(layerName)
    {
    	var id = layerName + "exportPDF";
    	var element = document.getElementById(id);
    	
    	setMyAttribute(element, "class", "exportMouseOver");

		//switch to NOT Over image
		var images = element.getElementsByTagName("img"); 
		images[0].setAttribute("src", base_context + 'images/save-pdf_o.gif');			
    }
    
    function mouseOutPDF(layerName)
    {	
	    var id = layerName + "exportPDF";
	   	var element = document.getElementById(id);
		setMyAttribute(element, "class", "exportRegular");
		
		//switch to NOT Over image
		var images = element.getElementsByTagName("img"); 
		images[0].setAttribute("src", base_context + 'images/save-pdf_n.gif');	
	}
    
    function mouseOverExcel(layerName)
    {
    	var id = layerName + "exportExcel";
    	var element = document.getElementById(id);
		setMyAttribute(element, "class", "exportMouseOver");
		
		//switch to NOT Over image
		var images = element.getElementsByTagName("img"); 
		images[0].setAttribute("src", base_context + 'images/save-xls_o.gif');			
    }
    
    function mouseOutExcel(layerName)
    {
	    var id = layerName + "exportExcel";
	   	var element = document.getElementById(id);
		setMyAttribute(element, "class", "exportRegular");
		
		//switch to NOT Over image
		var images = element.getElementsByTagName("img"); 
		images[0].setAttribute("src", base_context + 'images/save-xls_n.gif');		
    }
    
    function mouseOverCSV(layerName)
    {
		var id = layerName + "exportCSV";
    	var element = document.getElementById(id);
    	
    	setMyAttribute(element, "class", "exportMouseOver");
		
		//switch to NOT Over image
		var images = element.getElementsByTagName("img"); 
		images[0].setAttribute("src", base_context + 'images/save-csv_o.gif');		
    }
    
    function mouseOutCSV(layerName)
    {
	    var id = layerName + "exportCSV";
	   	var element = document.getElementById(id);
		setMyAttribute(element, "class", "exportRegular");
		
		//switch to NOT Over image
		var images = element.getElementsByTagName("img"); 
		images[0].setAttribute("src", base_context + 'images/save-csv_n.gif');		
    }
    
    function mouseOverXML(layerName)
    {
		var id = layerName + "exportXML";
    	var element = document.getElementById(id);
		setMyAttribute(element, "class", "exportMouseOver");
		
		//switch to NOT Over image
		var images = element.getElementsByTagName("img"); 
		images[0].setAttribute("src", base_context + 'images/save-xml_o.gif');		
    }
    
    function mouseOutXML(layerName)
    {
	    var id = layerName + "exportXML";
	   	var element = document.getElementById(id);
		setMyAttribute(element, "class", "exportRegular");
		
		//switch to NOT Over image
		var images = element.getElementsByTagName("img"); 
		images[0].setAttribute("src", base_context + 'images/save-xml_n.gif');		
    }
    
    function mouseOverReport(layerName)
    {
		var id = layerName + "exportReport";
    	var element = document.getElementById(id);
		setMyAttribute(element, "class", "exportMouseOver");
		
		//switch to NOT Over image
		var images = element.getElementsByTagName("img"); 
		images[0].setAttribute("src", base_context + 'images/save-rpt_o.gif');		
    }
    
    function mouseOutReport(layerName)
    {
	    var id = layerName + "exportReport";
	   	var element = document.getElementById(id);
		setMyAttribute(element, "class", "exportRegular");
		
		//switch to NOT Over image
		var images = element.getElementsByTagName("img"); 
		images[0].setAttribute("src", base_context + 'images/save-rpt_n.gif');		
    }
   
   //DIDB45592 - Report Dialog buttons don't change language.
   //DIDB4563 - Add message that system can't find reports.
   function createExportMenu(layerName, headerInfo, pdfStr, excelStr, csvStr, xmlStr,
       reportStr, createLayerButton, createLayerTitle, createLayerCancel,
       createLayerSelRepLabel, reportToolEnabled,
       createReportButton, cantFindReports)
   {	
   		layerName = escape(layerName);
		
	 	var divTag = layerName+"exportMenu";
	 	var pdfId =  layerName+"exportPDF";
	 	var excelId =  layerName+"exportExcel";
	 	var csvId =  layerName+"exportCSV";
		var xmlId =  layerName+"exportXML";
		var reportId =  layerName+"exportReport";
		
		var retStr = '';
   		retStr += "<DIV id= '" + divTag + "' class='exportMenuDiv'>";
	   	retStr += '<table class="exportLayerMenu">'; 
				retStr += '<tr>';
					retStr += "<td class='exportRegular' onmouseover='resetTimeout()' onmouseout='startClose(\"" + layerName + "\")'>";
					retStr += "<a style='color:#646463; text-align:left; display:block; font-size:8pt; font-family:Tahoma; font-weight:normal; text-decoration:none;' </a>";
						retStr += headerInfo;
					retStr += '</td>';
			    retStr += '</tr>';
			    retStr += '<tr>';
					retStr += "<td id = " +  pdfId + " class='exportRegular' onmouseover='mouseOverPDF(\"" + layerName + "\");resetTimeout()' onmouseOut='startClose(\"" + layerName + "\");mouseOutPDF(\"" + layerName + "\")'>";
					retStr += "<a style='padding:.05cm;text-align:bottom;width:100%;display:block;color: #646463;font-size:8pt;font-family:Tahoma;font-weight:normal;text-decoration:none;' href='#' onclick=";
						retStr += "exportPDF(\"" + layerName + "\");>"; 
						retStr += "<img src='";
						retStr += base_context + 'images/save-pdf_n.gif '; 
						retStr += "' onmouseover='mouseOverPDF(\"" + layerName + "\")' onmouseOut='mouseOutPDF(\"" + layerName + "\")' ";
						retStr += " class='button' alt='' align='top'>";
						retStr += "    " + pdfStr + "</a>";
					retStr += '</td>';
			    retStr += '</tr>';
			    
			    retStr += '<tr>';
					retStr += "<td id = " +  excelId + " class='exportRegular' onmouseover='mouseOverExcel(\"" + layerName + "\");resetTimeout()' onmouseOut='startClose(\"" + layerName + "\");mouseOutExcel(\"" + layerName + "\")'>";
				    	retStr += "<a style='padding:.05cm;text-align:bottom;width:100%;display:block;color: #646463;font-size:8pt;font-family:Tahoma;font-weight:normal;text-decoration:none;' href='#' onclick=";
						retStr += "exportExcel('" + layerName + "');>"; 
						retStr += "<img src='";
						retStr += base_context + 'images/save-xls_n.gif';
						retStr += "' onmouseover='mouseOverExcel(\"" + layerName + "\")' onmouseOut='mouseOutExcel(\"" + layerName + "\")' ";
						retStr += " class='button' alt='' align='top'>";
						retStr += "    " + excelStr + "</a>";
				    retStr += '</td>';
				retStr += '</tr>';    	
				retStr += '<tr>';
						retStr += "<td id = " +  csvId + " class='exportRegular' onmouseover='mouseOverCSV(\"" + layerName + "\");resetTimeout()' onmouseOut='startClose(\"" + layerName + "\");mouseOutCSV(\"" + layerName + "\")'>";
				    	retStr += "<a style='padding:.05cm;text-align:bottom;width:100%;display:block;color: #646463;font-size:8pt;font-family:Tahoma;font-weight:normal;text-decoration:none;' href='#' onclick=";
						retStr += "exportCSV('" + layerName + "');>"; 
						retStr += "<img src='";
						retStr += base_context + 'images/save-csv_n.gif';
						retStr += "' onmouseover='mouseOverCSV(\"" + layerName + "\")' onmouseOut='mouseOutCSV(\"" + layerName + "\")' ";
						retStr += " class='button' alt='' align='top'>";
						retStr += "    " + csvStr + "</a>";
					retStr += '</td>';
				retStr += '</tr>';
				retStr += '<tr>';
					retStr += "<td id = " +  xmlId + " class='exportRegular' onmouseover='mouseOverXML(\"" + layerName + "\");resetTimeout()' onmouseOut='startClose(\"" + layerName + "\");mouseOutXML(\"" + layerName + "\")'>";
				    	retStr += "<a style='padding:.05cm;text-align:bottom;width:100%;display:block;color: #646463;font-size:8pt;font-family:Tahoma;font-weight:normal;text-decoration:none;' href='#' onclick=";
						retStr += "exportXML('" + layerName + "');>"; 
						retStr += "<img src='";
						retStr += base_context + 'images/save-xml_n.gif';
						retStr += "' onmouseover='mouseOverXML(\"" + layerName + "\")' onmouseOut='mouseOutXML(\"" + layerName + "\")' ";
						retStr += " class='button' alt='' align='top'>";
						retStr += "    " + xmlStr + "</a>";
				    retStr += '</td>';
			    retStr += '</tr>';
			    if (reportToolEnabled == true) {
			        retStr += '<tr>';
					    retStr += "<td id = " +  reportId + " class='exportRegular' onmouseover='mouseOverReport(\"" + layerName + "\");resetTimeout()' onmouseOut='startClose(\"" + layerName + "\");mouseOutReport(\"" + layerName + "\")'>";
		    		    	retStr += "<a style='padding:.05cm;text-align:bottom;width:100%;display:block;color: #646463;font-size:8pt;font-family:Tahoma;font-weight:normal;text-decoration:none;' href='#' onclick=";
						    retStr += "'promptForReportInfo(\"" + layerName + "\",\"" + createReportButton + "\",\"" + createLayerTitle + "\",\"" + createLayerCancel + "\",\"" + createLayerSelRepLabel + "\",\"" + cantFindReports + "\")'>";
						    retStr += "<img src='";
						    retStr += base_context + 'images/save-rpt_n.gif';
						    retStr += "' onmouseover='mouseOverReport(\"" + layerName + "\")' onmouseOut='mouseOutReport(\"" + layerName + "\")' ";
						    retStr += " class='button' alt='' align='top'>";
						    retStr += "    " + reportStr + "</a>";
				        retStr += '</td>';
			        retStr += '</tr>';
			    }			    
			 retStr += '</table>';
	    retStr += "</DIV>";
	    return retStr;
	}
	    
	function getElementsByName_BrowserInd(name)
	{
		var returnArr = new Array();
		var found = parent.document.getElementsByTagName("tr");
		var foundCounter = 0;
		var i = 0;
		for (i = 0; i < found.length; i++)
		{
			var elementName = found[i].getAttribute("Name");
			if (elementName == name)
			{
				returnArr[foundCounter] = found[i];
				foundCounter++;
			}
		}
		return returnArr;
	}
	
	function startClose(layerName) {
		var divTag = layerName+"exportMenu";
		closeTimer = setTimeout("closeMenu('"+divTag+"')",500);
    }
    function resetTimeout() {
        clearTimeout(closeTimer);
    }

    function closeMenu(divTag) {
    	resetTimeout();
        document.getElementById(divTag).style.visibility="hidden";
    }
    
    function setMyAttribute(node, inAtt, inValue) {
		var i;
		for (i = 0; i < node.attributes.length; i++)
		{
			if (node.attributes[i].name == inAtt)
				node.attributes[i].value = inValue;
		}
	}	 
	
	function mouseOverSave(poi)
	{
		var element;
		if (poi == 1)
	   		element = document.getElementById("saveImagePOI");
	   	else
		   	element = document.getElementById("saveImage");
		
		var images = element.getElementsByTagName("img"); 
		images[0].setAttribute("src", base_context + 'images/save_o.gif');		
	}
	
	function mouseOutSave(poi)
	{
		var element;
		if (poi == 1)
	   		element = document.getElementById("saveImagePOI");
	   	else
		   	element = document.getElementById("saveImage");
	   	
		var images = element.getElementsByTagName("img"); 
		images[0].setAttribute("src", base_context + 'images/save_n.gif');		
	}
	
	function editPOIOver(idStr)
	{
		var element = document.getElementById(idStr);
		var images = element.getElementsByTagName("img"); 
		images[0].setAttribute("src", base_context + 'images/row-edit_o.gif');	
	}
	
	function editPOIOut(idStr)
	{
		var element = document.getElementById(idStr);
		var images = element.getElementsByTagName("img"); 
		images[0].setAttribute("src", base_context + 'images/row-edit_n.gif');	
	}
	
	function deletePOIOver(idStr)
	{
		var element = document.getElementById(idStr);
		var images = element.getElementsByTagName("img"); 
		images[0].setAttribute("src", base_context + 'images/row-delete_o.gif');	
	}
	
	function deletePOIOut(idStr)
	{
		var element = document.getElementById(idStr);
		var images = element.getElementsByTagName("img"); 
		images[0].setAttribute("src", base_context + 'images/row-delete_n.gif');	
	}
	
	function getReportNames(layerName)
	{
		callToServer(ctxPath + "/getReportNames.html?LayerName=" + layerName,
	       "ViewBirtReportIFrame");
	}
	
	
	//DIDB44024 Initialize the reportInfo window before open it.
	//DIDB45592 - Report dialog buttons don't change language.
	//DIDB45673 - Notify user when there are no reports to print.
	function promptForReportInfo(layerName, createReportButton, createLayerTitle, createLayerCancel,
	    createLayerSelRepLabel, cantFindReports)
	{
		getReportNames(layerName);
		var retStr = '';
		retStr = "<div id='reportListFromMapAction'></div>";

	    parent.reportHTML = '<div id="reportInfo" class="reportInfoDiv" style="overflow:scroll;width:100%;height:100%;">' + retStr + '</div>';
	    
	    dhtmlwindow.init('reportInfo');
	    reportInfoWindow = dhtmlwindow.open('reportInfo', 'inline', reportHTML,
                createLayerTitle, 'top=270px,left=10px,width=350px,height=150px,scrolling=0,resize=0','recal');
                
        // set a flag for the mouse click evaluation in the map.js page
        reportOpen = true;

	}
	
	function cancelDhtmlWindow() {
	    parent.reportInfoWindow.hide();
	    reportOpen = false;
	}
	
	onclose=function(){
		reportOpen = false;
	}

	//DIDB43256 fixed the problem of failing to generate birt reports.
	function submitReportInfo(layerName) {
	
	var sessionID;
	
	//Get the cookie and parse it.
	var cookie = unescape(document.cookie);
	var arrayElements = cookie.split(";");
	
	//Loop and check for JSESSIONID.
	for (i = 0; i < arrayElements.length; i++) {
		var arraySessionID;
		
		arraySessionID = arrayElements[i].split("=");
		if (trim(arraySessionID[0]) == "JSESSIONID") {
			sessionID = arraySessionID[1];
		}
	}
	
	//Retrieve the Report name.
	var element = document.getElementById("reportName");
	var opt = element.options[element.selectedIndex];
	var reportName = opt.value || opt.text;
	
	//Create URL to send to map action.
	callToServer(ctxPath + "/exportAttributes.html?&exportType=report&layerName=" + layerName + 
			"&reportName=" + reportName + "&sessionID=" + sessionID, "ViewBirtReportIFrame");

    }	

