﻿var myPortfolioExtent = [];
var myPortfolioPoints;
var thePortResizeConnect;
var myPortfolioGraphicsLayer = null;

function clickPortfolioTab()
{
    turnOffMapGraphics();
    	
    if(expanded=="right" || prevTab=="Details") 
    {    
        thePortResizeConnect = dojo.connect(jsMap,"onResize",function(){
            blnResizing = false;
		    loadPortfolio();
		    dojo.disconnect(thePortResizeConnect);
		    });
		
		restorePanes();
	    RepositionMap();
	    ResizeMap();
        selectRadTab('Map');
    }
    else 
    {
        selectRadTab("Map");
        //disableRadTab("Property");
        resizeRightPaneControls();
        resizeLeftPaneControls();
        loadPortfolio();
    }
    
    
}
function resizePortfolioControl()
{
    var arrSize;
	arrSize = ResizeInPane('paneLeftBody', 'divPortfolioGrid',			345, 200, 60, 16);
	if (m_radgridPortfolioCompressed_MTV) ResizePortfolioGrid(arrSize,m_radgridPortfolioCompressed_MTV);
	arrSize = ResizeInPane('paneLeftBody', 'divPortfolioWideGrid',		700, 200, 28, 0);
	if (m_radgridPortfolioWide_MTV) ResizePortfolioGrid(arrSize,m_radgridPortfolioWide_MTV);
	
}
function ResizePortfolioGrid(arrSize,grid)
{
	if (arrSize == null)	return;

	var intWidth  = arrSize[0];

	if (grid == null)
        var tableGrid = m_radgridPortfolioWide_MTV.Control;
	else
	    var tableGrid = grid.Control;
	if (tableGrid)
	{
		tableGrid.style.width = (intWidth - 20) + "px";
		tableGrid.width =		(intWidth - 20) + "px";
	}
}
function expandPortfolio(expand)
{
    swapDIV('divPage_Portfolio',	 expand);
	
}
function loadPortfolio()
{
    if(myPortfolioExtent.length>0)
    {
        resetmyPortfolioMap();
    }
    else 
        gotoPortfolio();
        
    
}	

function setmyPortfolioMap(resultset,showMap,xmin,ymin,xmax,ymax,points)
{
    var graphicID = resultset+'Graphics';
    var rlayer = jsMap.getLayer(graphicID);
    if (rlayer != null) jsMap.removeLayer(rlayer);
    
    myPortfolioGraphicsLayer = new esri.layers.GraphicsLayer({id: 'myPortfolioGraphics'});
    jsMap.addLayer(myPortfolioGraphicsLayer);
    dojo.connect(myPortfolioGraphicsLayer, "onClick", clickLocGraphic);
    jsMap.reorderLayer(myPortfolioGraphicsLayer,jsMap.layerIds.length+jsMap.graphicsLayerIds.length-1);
    
    if(xmin == xmax)
    {
        xmin -= 30000;
        xmax += 30000;
        ymin -= 30000;
        ymax += 30000;
    }
    myPortfolioExtent = [];
    myPortfolioExtent.push(xmin);
    myPortfolioExtent.push(ymin);
    myPortfolioExtent.push(xmax);
    myPortfolioExtent.push(ymax);
    myPortfolioPoints = points;
    
    if(showMap && mapisvisible)
    {
        setMapPoints(resultset,myPortfolioExtent,points);
    }
    else
        buildPointsGraphicsLayer(resultset,points,false);
    
}

function resetmyPortfolioMap()
{
    mapResultsExtent = myPortfolioExtent;
    mapPoints = myPortfolioPoints;
    turnOffMapGraphics();
	turnOnMapGraphics("myPortfolioGraphics");
	setExtent(myPortfolioExtent[0],myPortfolioExtent[1],myPortfolioExtent[2],myPortfolioExtent[3]);
}

function expandPortfolioDetails()
{
    expandLeftPane();
    var selPortfolioList = document.getElementById('bbusPortfolio_dropdownPortfolios1');
    var strPortfolioName	= selPortfolioList.options[selPortfolioList.selectedIndex].text;
    GACTTrackEvent("Portfolio","Detail View",strPortfolioName);
}

function collapsePortfolioDetails()
{
    restorePanes();
    var selPortfolioList = document.getElementById('bbusPortfolio_dropdownPortfolios1');
    var strPortfolioName	= selPortfolioList.options[selPortfolioList.selectedIndex].text;
    GACTTrackEvent("Portfolio","Map View",strPortfolioName);
}


function switchPortfolio(selPortfolioList)
{
	if (!selPortfolioList)	return;
	
	// show "loading..." display
	showLoadingPortfolio()
	
	var resetMap;
	if (mapisvisible) resetMap = "true"
	else resetMap = "false"
    
	var strPortfolioId	= selPortfolioList.options[selPortfolioList.selectedIndex].value;
	var strPortfolioName	= selPortfolioList.options[selPortfolioList.selectedIndex].text;
	
		// refresh the Portfolio grids
    __doPostBack('bbusPortfolio$updatePortfolioGrid', 'Event=ShowPortfolio&Portfolio=' + strPortfolioId+ '&ResetMap='+resetMap);
    GACTTrack("Portfolio");
    GACTTrackEvent("Portfolio",(mapisvisible)?"Map View":"Detail View",strPortfolioName);
    
}

function gotoPortfolio()
{
	refreshPortfolio();

	// go to Portfolio page
	//selectRadTab('Portfolio');
	var selPortfolioList = document.getElementById('bbusPortfolio_dropdownPortfolios1');
    var strPortfolioName	= selPortfolioList.options[selPortfolioList.selectedIndex].text;
    GACTTrackEvent("Portfolio",(mapisvisible)?"Map View":"Detail View",strPortfolioName);
}

function showLoadingPortfolio()
{
	var panelNoResults	= document.getElementById('bbusPortfolio_panelEmptyPortfolio');
	var panelPortfolio	= document.getElementById('bbusPortfolio_panelPortfolio');
	if (panelNoResults && panelPortfolio)
	{
	    panelNoResults.style.display = 'none';
	    panelPortfolio.style.display = '';
	}
	
	var divGridPortfolioCompressed	= document.getElementById('divGridPortfolioCompressed');
	var divLoadingPortfolio			= document.getElementById('divLoadingPortfolio');

	if (divGridPortfolioCompressed && divLoadingPortfolio)
	{
		divGridPortfolioCompressed.style.display = 'none';
		divLoadingPortfolio.style.display = '';
	}
	
	var divLoadingPortfolioWide			= document.getElementById('divLoadingPortfolioWide');

	if (divLoadingPortfolioWide)
	{
		divLoadingPortfolioWide.style.display = '';
	}
}


function refreshPortfolio()
{
	// show "loading..." display
	showLoadingPortfolio()
	
	// refresh the Portfolio grids
    var postevent;
	if (mapisvisible) postevent = "PortfolioDisplay"
	else postevent = "PortfolioTable"
    __doPostBack('bbusPortfolio$updatePortfolioGrid', 'Event='+postevent);
    GACTTrack("Portfolio");
    
}
function refreshPortfolioTable()
{
	// show "loading..." display
    showLoadingPortfolio()
	
	// refresh the Portfolio grids
    __doPostBack('bbusPortfolio$updatePortfolioGrid', 'Event=PortfolioTable');
    GACTTrack("Portfolio");
}
function refreshPortfolioList()
{
	// show "loading..." display
    showLoadingPortfolio()
	
	// refresh the Portfolio grids
    __doPostBack('bbusPortfolio$updatePortfolioGrid', 'Event=PortfolioRefreshList');
    GACTTrack("Portfolio");
}

function selectPRow(imgImage, blnSelect)
{
	selectRow(imgImage, blnSelect, m_radgridPortfolioCompressed_MTV);
}

function P_gotoPropertyOnMap(lnkLink,x,y,id)
{
	currPropId = id;
    currPropX = x;
    currPropY = y;
	if (lnkLink)
	{
		selectPRow(lnkLink,true);
		showGlow(0,0);
		window.setTimeout('gotoPropertyOnMap(currPropX,currPropY,currPropId);',50);
	}
	else
	{
		thePortResizeConnect = dojo.connect(jsMap,"onResize",function(){
		    blnResizing = false;
		    gotoPropertyOnMap(currPropX,currPropY,currPropId);
		    dojo.disconnect(thePortResizeConnect);
		    });
		restorePanes();
	    RepositionMap();
	    ResizeMap();
        selectRadTab('Map');
	}

	//gotoPropertyOnMap(x,y,id);
	//window.setTimeout('gotoPropertyOnMap('+x+','+y+','+id+');',50);
}

function P_gotoPropertyDetails(lnkLink,id, x, y)
{
    currPropId = id;
    currPropX = x;
    currPropY = y;
	if (lnkLink)
	{
		selectPRow(lnkLink,true);
		showGlow(0,0);
		window.setTimeout('gotoPropertyDetails(currPropId,currPropX,currPropY);',1);
	}
	else
	{
		theResizeConnect = dojo.connect(jsMap,"onResize",function(){
		    blnResizing = false;
		    gotoPropertyDetails(currPropId,currPropX,currPropY);
		    dojo.disconnect(theResizeConnect);
		    });
		restorePanes();
	    RepositionMap();
	    ResizeMap();
        selectRadTab('Map');
	}

	//gotoPropertyDetails(id, x, y);
	//window.setTimeout('gotoPropertyDetails('+id+','+x+','+y+');',50);
}

function P_getPopUp(objElement,id)
{
	//ZoomResultSet('myPortfolio','portfolioPage');
	if (objElement)
	{
		selectPRow(objElement,true);
		showGlow(0,0);
	}
	selectRadTab('Map');
	//disableRadTab('Property');
    getPopUp(id, true);
    
}

function addPropertyToPortfolio(strPropertyId, strWhichGrid)
{
	var strSelectedProperties	= (strPropertyId != '')	? strPropertyId
														: GetSelectedProperties(strWhichGrid);
	var d = new Date();
	var strDialogURL			= 'dialogs/portfolio_addProperty.aspx?t="+d.getTime()+"&props=' + strSelectedProperties;
    
    var arrProps = strSelectedProperties.split(",");
    for (p in arrProps)
    {
        var thePropGraphic = getGraphicById(arrProps[p]);
        var propname = thePropGraphic.getTitle();
        GACTTrackEvent("Portfolio","Add Property to Portfolio","Property - "+propname);
    }
	radDialog(strDialogURL, 300, 300, 'Add Property to Portfolio', refreshPortfolioTable);
}
function addPropertyToNewPortfolio(strPropertyId, strWhichGrid)
{
	var strSelectedProperties	= (strPropertyId != '')	? strPropertyId
														: GetSelectedProperties(strWhichGrid);
	var d = new Date();
	var strDialogURL			= 'dialogs/portfolio_addProperty.aspx?t="+d.getTime()+"&port=new&props=' + strSelectedProperties;

    var arrProps = strSelectedProperties.split(",");
    for (p in arrProps)
    {
        var thePropGraphic = getGraphicById(arrProps[p]);
        var propname = thePropGraphic.getTitle();
        GACTTrackEvent("Portfolio","Add Property to Portfolio","Property - "+propname);
    }
	radDialog(strDialogURL, 300, 300, 'Add Property to New Portfolio', refreshPortfolio);
}

function removePropertyFromPortfolio(strPropertyId, strWhichGrid)
{
	var strSelectedProperties	= (strPropertyId != '')	? strPropertyId
														: GetSelectedProperties(strWhichGrid);
	var d = new Date();
	var strDialogURL			= "dialogs/portfolio_removeProperty.aspx?t="+d.getTime()+"&props=" + strSelectedProperties;

    var arrProps = strSelectedProperties.split(",");
    for (p in arrProps)
    {
        var thePropGraphic = getGraphicById(arrProps[p]);
        var propname = thePropGraphic.getTitle();
        GACTTrackEvent("Portfolio","Remove Property from Portfolio","Property - "+propname);
    }
	radDialog(strDialogURL, 300, 250, 'Remove Property from Portfolio', refreshPortfolio);
}

function viewModifyPortfolio()
{
	var d = new Date();
	var strDialogURL	= "dialogs/portfolio_manage.aspx?t="+d.getTime()+"&cmd=COMMENTS";

	radDialog(strDialogURL, 300, 250, 'View / Modify Portfolio', refreshPortfolioTable);
}


function createPortfolio()
{
	var d = new Date();
	var strDialogURL	= "dialogs/portfolio_create.aspx?t="+d.getTime();

	radDialog(strDialogURL, 300, 250, 'Create Portfolio', refreshPortfolioTable);
}

function deletePortfolio(strPropertyId, strWhichGrid)
{
	var d = new Date();
	var strDialogURL	= "dialogs/portfolio_delete.aspx?t="+d.getTime();

	radDialog(strDialogURL, 300, 250, 'Delete Portfolio', refreshPortfolioTable);
}

function lockPortfolio()
{
	var d = new Date();
	var strDialogURL	= "dialogs/portfolio_lock.aspx?t="+d.getTime();

	radDialog(strDialogURL, 300, 250, 'Lock / Unlock Portfolio', refreshPortfolioTable);
}

function archivePortfolio()
{
	var d = new Date();
	var strDialogURL	= "dialogs/portfolio_archive.aspx?t="+d.getTime();

	radDialog(strDialogURL, 300, 250, 'Archive Portfolio', refreshPortfolioTable);
}

function copyPortfolio()
{
	var d = new Date();
	var strDialogURL	= "dialogs/portfolio_copy.aspx?t="+d.getTime();

	radDialog(strDialogURL, 300, 300, 'Copy Portfolio', refreshPortfolioTable);
}

function emailPortfolio()
{
	var d = new Date();
	var strDialogURL	= "dialogs/portfolio_email.aspx?t="+d.getTime();

	radDialog(strDialogURL, 300, 400, 'Email Portfolio', null);

}

function viewPortfolioArchive()
{
	var d = new Date();
	var strDialogURL	= "dialogs/portfolio_viewArchive.aspx?t="+d.getTime();

	radDialog(strDialogURL, 300, 250, 'View Archived Portfolios', null);
}

function viewPortfolioHistory()
{
	bbusAlert('This will show the VIEW PORTFOLIO HISTORY dialog', 'View Portfolio History');
}


function GetSelectedProperties(strWhichGrid,showall)
{
	var radGrid_MTV	= null;

	switch (strWhichGrid)
	{
	case 'search':
	case 'results':
		radGrid_MTV = m_radgridSearchResultsWide_MTV;
		break;
	case 'portfolio':
		radGrid_MTV = m_radgridPortfolioWide_MTV;
		break;
	}
	
	if (radGrid_MTV == null)
		return '';
		
	var strSelected = '';
	var rows;
	rows = radGrid_MTV.SelectedRows;
	if (showall)
	    rows = radGrid_MTV.Rows;
	else
    {
    	if (rows.length == 0) 
	    {    
	        var all = confirm("No properties are selected.\nDo you wish to continue with all the properties?");
	        if (all) rows = radGrid_MTV.Rows;
	    }
	} 
	for (var ix=0; ix < rows.length; ix++)
    {
	    var cellPropertyId	= radGrid_MTV.GetCellByColumnUniqueName( rows[ix], "LINK_ID" );
	    if (cellPropertyId != null)
	    {
		    var strPropertyId	= Trim(cellPropertyId.innerHTML);
		
		    if (strSelected.length == 0)
			    strSelected = strPropertyId;
		    else
			    strSelected += ',' + strPropertyId;
	    }
    }
	
	
	// return the list
	return strSelected;
}

	function Trim(strValue)
	{
		return strValue.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
	}



var m_radgridPortfolioWide_MTV = null;
var m_radgridPortfolioCompressed_MTV = null;

function radgridPortfolioWide_MasterTableViewCreated()
{
	m_radgridPortfolioWide_MTV = this.MasterTableView;

	arrSize = ResizeInPane('paneLeftBody', 'divPortfolioWideGrid',	700, 200, 0, 0);
	ResizePortfolioGrid(arrSize,m_radgridPortfolioWide_MTV);
		var divReadingPortfolio = document.getElementById('divReadingPortfolio');
	if (divReadingPortfolio)
		divReadingPortfolio.style.display = 'none';
	SetInPortfolio();
}

function radgridPorftolioCompressed_MasterTableViewCreated()
{
	m_radgridPortfolioCompressed_MTV = this.MasterTableView;

	arrSize = ResizeInPane('paneLeftBody', 'divPortfolioGrid',	345, 200, 60, 16);
	ResizePortfolioGrid(arrSize,m_radgridPortfolioCompressed_MTV);
}


function radDialog(strDialogURL, intWidth, intHeight, strTitle, funcOnClientClose)
{
    var objWinMgr = GetRadWindowManager();
    top.winDialog = objWinMgr.Open('dialogs/_blank.htm', 'radWindow');

    top.winDialog.SetModal(true);
    top.winDialog.SetWidth(intWidth);
    top.winDialog.SetHeight(intHeight);
    top.winDialog.SetTitle(strTitle);
    top.winDialog.Center();

    if (funcOnClientClose != null)
	    top.winDialog.OnClientClose = funcOnClientClose;

	// show a blank page
	//top.winDialog.SetContent('<html><body><div>Loading....</div></body></html>');
	top.winDialog.Show();

	// show the real page
	top.winDialog.SetUrl(strDialogURL);
}

function printPortfolio(blnPropDetails)
{
    var rows;
	rows = m_radgridPortfolioWide_MTV.SelectedRows;
	var strSelectedProperties = "";
	strSelectedProperties	= GetSelectedProperties('portfolio',true);
    var d = new Date();
	
	var srid = jsSR.wkid;
    var mapurl;
    for (var j=0, jl=jsMap.layerIds.length; j<jl; j++) {
      var layer = jsMap.getLayer(jsMap.layerIds[j]);
      if (currentMapView == layer.id) {
        mapurl = layer.url;
      }
    }
    var srExtent = new esri.geometry.Extent(myPortfolioExtent[0], myPortfolioExtent[1], myPortfolioExtent[2], myPortfolioExtent[3], jsSR) 
    var newExtent = srExtent.expand(2);
    
    var mapw = jsMap.width;
    var maph = jsMap.height;
    var mapname = currentMapView;
    var mapNames = document.getElementById("bbusMap_mapServiceMapNames").value;
    if (mapNames!= "")
    {
        var arrMapNames = mapNames.split(",");
	    var arrMapServices = document.getElementById("bbusMap_mapServices").value.split(",");
	    for (var am in arrMapServices)
	    {
	        if(arrMapServices[am]==currentMapView)
	            mapname = arrMapNames[am];
	    }
	}
    
    //__doPostBack('', 'MapEvent=PrintMap&MapURL='+mapurl+'&MapName='+currentMapView+'&MinX='+mapminx+'&MinY='+mapminy+'&MaxX='+mapmaxx+'&MaxY='+mapmaxy);
    var url = '&MapURL='+mapurl+'&MapName='+mapname+'&MinX='+newExtent.xmin+'&MinY='+newExtent.ymin+'&MaxX='+newExtent.xmax+'&MaxY='+newExtent.ymax+'&MapW='+mapw+'&MapH='+maph+'&SRID='+srid;
    
    var strDialogURL;
    if (blnPropDetails) 
        strDialogURL	= "dialogs/print_map.aspx?t="+d.getTime()+"&type=myPortfolioPropertyDetails&props="+strSelectedProperties+url;
    else
        strDialogURL	= "dialogs/print_map.aspx?t="+d.getTime()+"&type=Portfolio&props="+strSelectedProperties+url;
    
        
    var pFrame = document.getElementById('iframePrintMap');
    pFrame.src = strDialogURL;
    //__doPostBack('updatePortfolioWideGrid', 'Event=PrintPortfolioToPDF');
    GACTTrack("Print Portfolio");
    var selPortfolioList = document.getElementById('bbusPortfolio_dropdownPortfolios1');
    var strPortfolioName	= selPortfolioList.options[selPortfolioList.selectedIndex].text;
    GACTTrackEvent("Portfolio","Print",strPortfolioName);
}

function exportPortfolio()
{
    var strSelectedProperties	= GetSelectedProperties('portfolio');
	__doPostBack('updatePortfolioWideGrid', 'Event=ExportPortfolioToExcel');
    GACTTrack("Export Portfolio");
    var selPortfolioList = document.getElementById('bbusPortfolio_dropdownPortfolios1');
    var strPortfolioName	= selPortfolioList.options[selPortfolioList.selectedIndex].text;
    GACTTrackEvent("Portfolio","Export",strPortfolioName);
}

