var sBrowserName = navigator.appName;		// Client browser brand
var sBrowserVer = navigator.appVersion;		// Client browser Version
var fBrowserVer;
var oPdfWindow;

var iScreenWidth = screen.availWidth;		// Client's screen width (in pixels)
var iScreenHeight = screen.availHeight;		// Client's screen height (in pixels, not including taskbar)

// Determine browser's version
switch (sBrowserName)
{
	case "Microsoft Internet Explorer":
		sBrowserVer = sBrowserVer.substring(sBrowserVer.indexOf("MSIE ")+5);
		fBrowserVer = parseFloat(sBrowserVer.substring(0,sBrowserVer.indexOf(";")));
		break;
	case "Netscape":
		fBrowserVer = parseFloat(sBrowserVer);
		break;
}

// Creates path of current location from root directory
if (typeof(sMainPath) == 'undefined')
{
	var sPathName = location.pathname;
	var sMainPath = sPathName.substring(sPathName.substring(1).indexOf("/")+2);
	var sDirsBack = "";
	var iSlashLoc = sMainPath.indexOf("/");
	while (iSlashLoc > -1)
	{
		sDirsBack += "../";
		sMainPath = sMainPath.substring(iSlashLoc+1);
		iSlashLoc = sMainPath.indexOf("/");
	}
}

// This function returns a string with the exact 
// X and Y positions to center the window on the screen,
// which will be passed into the window.open() string.
// (as well as the width and height)
// Example:
// width=250,height=100,top=200,left=350
// Pass in the window's height and width values
function createWinPos(piWindowWidth,piWindowHeight)
{	
	var iWinXLoc = (iScreenWidth - piWindowWidth) / 2;
	var iWinYLoc = (iScreenHeight - piWindowHeight) / 2;
	
	return "width=" + piWindowWidth.toString() + ",height=" + piWindowHeight.toString() + ",top=" + iWinYLoc.toString() + ",left=" + iWinXLoc.toString();
}

function createDialogWinPos(piWindowWidth,piWindowHeight)
{	
	var iWinXLoc = (iScreenWidth - piWindowWidth) / 2;
	var iWinYLoc = (iScreenHeight - piWindowHeight) / 2;
	
	return "dialogWidth:" + piWindowWidth.toString() + "; dialogHeight:" + piWindowHeight.toString() + "; dialogTop:" + iWinYLoc.toString() + "; dialogLeft:" + iWinXLoc.toString();
}

function noCopy()
// If user clicks on image, alert box shows up
{
	alert("This image is protected from copying, as per the photo restrictions listed in your subscription contract.");
}

// Creates pop-up window showing an image (psImageURL) and it's description (psTitle)
function imageWin(psImageURL,psTitle)
{	
	var oImageWindow;
	oImageWindow = window.open(sDirsBack + "imageviewer/EnlargeImage.aspx?psImgURL=" + escape(psImageURL) + "&psTitle=" + escape(unescape(psTitle)),"imgWin","top=0,left=0,scrollbars=1,resizable=1,width=" + (screen.availWidth-10).toString() + ",height=" + (screen.availHeight-28).toString());
}
//overloaded method to take two more parameters: imageid and propertyid
// Creates pop-up window showing an image (psImageURL) and it's description (psTitle)
function imageWin2(psImageURL,psTitle, psImageId, psPropertyId)
{	
	var oImageWindow;
	oImageWindow = window.open(sDirsBack + "imageviewer/EnlargeImage.aspx?psImgURL=" + escape(psImageURL) + "&psTitle=" + escape(unescape(psTitle)) + "&imageid=" +psImageId + "&propertyid=" + psPropertyId,"imgWin","top=0,left=0,scrollbars=1,resizable=1,width=" + (screen.availWidth-10).toString() + ",height=" + (screen.availHeight-28).toString());
}

//overloaded method to take two more parameters: imageid and propertyid
// Creates pop-up window showing an image (psImageURL) and it's description (psTitle)
function OpenAdWindow(psAdURL, piAdID)
{	
	var oAdWindow;
	oAdWindow = window.open('../Common/FullPageAd.aspx?psAdURL=' + escape(psAdURL) + '&piAdID=' + escape(unescape(piAdID)), "adWin","top=0,left=0,scrollbars=1,resizable=1,width=" + (screen.availWidth-10).toString() + ",height=" + (screen.availHeight-28).toString());
}

function OpenAdWindowByPropertyID(psAdURL, piPropertyID)
{	
	var oAdWindow;
	oAdWindow = window.open('../Common/FullPageAd.aspx?psAdURL=' + escape(psAdURL) + '&piPropertyID=' + escape(unescape(piPropertyID)), "adWin","top=0,left=0,scrollbars=1,resizable=1,width=" + (screen.availWidth-10).toString() + ",height=" + (screen.availHeight-28).toString());
}

// Creates a pop-up window for a PDF file (located at psPDFURL)
function pdfWin(psPDFURL)
{
//	oPDFWindow = window.showModalDialog(psPDFURL,"popPDFWin","dialogHeight:400px;dialogWidth:440px;status:no;scroll:no;resizable=yes");
	oPDFWindow = window.open(psPDFURL,"popPDFWin","resizable=1," + createWinPos(500,460));
}

// Creates a pop-up window for map
function mapWin(psMapURL)
{
	var oMapWindow;
	oMapWindow = window.open(psMapURL,"popMapWin",createWinPos(625,420));
}

// Creates a pop-up window for map of building set
function mapWinSet(psMapURL)
{
	var oMapWindow;
	oMapWindow = window.open(psMapURL,"popMapWin",createWinPos(625,395));
}

// Creates a generic pop-up window for displaying a web site (shows all toolbars)
function wwwWin(psURL)
{	
	var oWWWWindow;
	var iWinWidth;
	var iWinHeight;
	
	if (iScreenWidth < 1000)
	{
		iWinWidth = 640;
		iWinHeight = 480;
	}
	else
	{
		iWinWidth = 800;
		iWinHeight = 600;
	}
	oWWWWindow = window.open(psURL,"webWin","toolbar=1,location=1,directories=1,status=1,menubar=1,scrollbars=1,resizable=1," + createWinPos(iWinWidth,iWinHeight));
}

// Creates a generic pop-up window for displaying a web site (shows all toolbars)
function cpdPopupWin(psURL)
{	
	var oCPDWindow;
	var iWinWidth;
	var iWinHeight;
	
	iWinWidth = 800;
	iWinHeight = 600;
	oCPDWindow = window.open(psURL,"cpdWin","toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=1," + createWinPos(iWinWidth,iWinHeight));
}
// Create a window to show terms page.
function termsWin()
{	
	var cpModule = new LoadModule( 'ConnectPopups/Terms', 'Terms.ascx' );
		
	cpModule.ReturnForm = ElemPrefix;
	cpModule.Params = null;
	cpModule.WinSizeX = 500;
	cpModule.WinSizeY = 350;
	cpModule.ReturnFunction = null;
	cpModule.Title = 'Terms';
	cpModule.ScrollBars = true;
	cpModule.MenuBar = false;
	cpModule.Modal = false;
	cpModule.PostBack = false;
	cpModule.WaitPage = true;
	cpModule.WaitTitle = 'Processing Your Request';
	cpModule.Show();
}
// Creates a chrome-less pop-up window for showing disclaimer pages (i.e., terms of use, privacy policy, etc.)
function discWin(psURL)
{	
	var oDisclaimerWin;
	oDisclaimerWin = window.open(psURL,"popWindow","toolbar=1,scrollbars=1,resizable=1," + createWinPos(500,350));
	
}
// Creates a chrome-less pop-up window for showing disclaimer for Property
function mainDiscWin()
{	
	var oDisclaimerWin;
	var sURL = "http://property.costar.com/common/terms.aspx"
	oDisclaimerWin = window.open(sURL,"popMainDiscWindow","toolbar=1,scrollbars=1,resizable=1," + createWinPos(500,350));
}

// Creates pop-up window for entering server-side e-mail
function emailWin(psEmailAddress,psSubject,psExplanationEnum,psClientID,psCCEmailAddress)
{	
	var oEmailWindow;
	var sURL;
	sURL = sDirsBack + "Email/Email.aspx?expl=" + psExplanationEnum + "&ClientID=" + psClientID + "&addr=" + escape(psEmailAddress) + "&subj=" + escape(psSubject);
	if (psCCEmailAddress != "")
	{
		sURL += "&cc=" + escape(psCCEmailAddress);
	}
	oEmailWindow = window.open(sURL,"popWin",createWinPos(340,420));
}

// Creates pop-up window for exporting data
function exportWin(psSearchType)
{	
	var sURL = "../Export/ExportForm.aspx?SearchType=" + psSearchType;
	var oExportWindow;
	oExportWindow = window.open(sURL,"popExportWindow","scrollbars=0," + createWinPos(555,425));//555,425 for custom and 370,235 for Export
}

// Creates pop-up window for tour order
function slideShowWin(psContext)
{
	var sURL = "../SlideShow/SlideShow.aspx?context=" + psContext;
	//sURL = "../Results/WaitResults.aspx?sGoToURL=" + sURL;
	var oSlideShowWindow;
	//oSlideShowWindow = window.open(sURL, "popSlideShowWindow", "fullscreen = 1");
	oExportWindow = window.open(sURL, "popSlideShowWindow", "scrollbars=0, resizable = 1," + createWinPos(iScreenWidth, iScreenHeight));
}

// Creates pop-up window for tour order
function tourOrderWin(psContext)
{
	var sURL = "../TourOrder/TourOrderForm.aspx?context=" + psContext;
	var oTourOrderWindow;
	oTourOrderWindow = window.open(sURL, "popTourOrderWindow", "scrollbars = 0, resizable = 1," + createWinPos(750, 415));
}

// Creates a pop-up window for the Preferences page
function prefWin()
{
	var sURL = "../Preferences/Preferences.aspx";
	var oPrefWindow;
	oPrefWindow = window.open(sURL,"popPrefWindow","scrollbars=1," + createWinPos(735,440));
}

// Creates a pop-up window for the Help page
function helpWin()
{
	var sURL = "../Help/Main.htm";
	var oHelpWindow;
	oHelpWindow = window.open(sURL,"popHelpWindow","scrollbars=0," + createWinPos(750,440));
}

function viewImageWin(psImageURL)
{
	var oImageWindow;
	oImageWindow = window.open('','popImgWin','resizable=1,scrollbars=1,'+createWinPos(600,440));
	oImageWindow.document.open();
	oImageWindow.document.writeln("<html><body bgcolor=\"#FFFFFF\" topmargin=0 leftmargin=0 marginheight=0 marginwidth=0 onLoad=\"this.focus()\">");
	oImageWindow.document.writeln("<table border=0 cellpadding=0 cellspacing=0 width=100% height=100%><tr><td align=center>");
	oImageWindow.document.writeln("<img src=\"" + psImageURL + "\">");
	oImageWindow.document.writeln("</td></tr></table>");
	oImageWindow.document.writeln("</body></html>");
	oImageWindow.document.close();
}

// Creates a pop-up window for the Upload Attachment page
function uploadWin(piQueryID)
{
	var sURL = "../Attachment/AddAttachment.aspx?QueryID=" + piQueryID;
	var oUploadWindow;
	if (piQueryID == "")
		sURL = "../Attachment/AddAttachment.aspx?ShowDropDown='Yes'";
	oUploadWindow = window.open(sURL, "popUploadWindow", createWinPos(336,370));
}
//blockes the opener window while the popup one is active
function Block_Opener()
{
	try
	{
		if(opener.IsManaged)
		{
			if (opener) opener.blockEvents();
		}
	}
	catch(oEx)
	{ //Do Nothing
	}	
}
//unblockes parent window
function Unblock_Opener()
{	
	try
	{
		if(opener.IsManaged)
		{
			if (opener) opener.unblockEvents();
		}
	}
	catch(oEx)
	{ //Do Nothing
	}		
}
	function RefreshOpener()
	{
		try // Cannot guarantee that the opener is still around
		{
			var OpenerUrl = window.opener.document.location.href;
			var sChar = "&";
			if (window.opener.document.location.href.lastIndexOf("Reload=True") == -1)
			{  
				if (window.opener.document.location.href.lastIndexOf("?") == -1)
				{
					sChar = "?";
				}
				window.opener.document.location.href = OpenerUrl + sChar + "Reload=True";
			}
			else
			{
				window.opener.document.location.reload();
			}
		}
		catch(oEx)
		{
			// Do nothing
		}
	}

function saveSurveyWin(psSource)
{	
	try
	{
		dialogWin.win = window.open(sDirsBack + "Query/SaveSearch.aspx?Source=" + psSource,"popSaveSurveyWin",createWinPos(500,470));
	}
	catch(oEx)
	{
		window.open(sDirsBack + "Query/SaveSearch.aspx?Source=" + psSource,"popSaveSurveyWin",createWinPos(500,470));
	}

}

function openFeedback(url, winName, width, height)
{
	try
	{
		dialogWin.win = window.open(url, winName,
						'Toolbar=no,location=no,directories=no,status=no,menubar=no,'+
						'scrollbars=no,resizable=no,' + createWinPos(width, height));
	}
	catch(oEx)
	{
		window.open(url, winName,
						'Toolbar=no,location=no,directories=no,status=no,menubar=no,'+
						'scrollbars=no,resizable=no,' + createWinPos(width, height));
	}
}

function siteMapWin(psServerName)
{
	var oSiteMapWindow;
	var sSiteMapLink;
	
	if (psServerName == null)
	{
		psServerName = "";
	}
	
	sSiteMapLink = psServerName + "/sitemap/";
	oSiteMapWindow = window.open(sSiteMapLink,"sitemapWindow","scrollbars=1,width=350,height=500,top=0,left=0,screenX=0,screenY=0");
}

function WindowResizeTo(piNewWindowWidth ,piNewWindowHeight)
{
	var iWinXCntr = (iScreenWidth - piNewWindowWidth) / 2;  //Window center position
	var iWinYCntr = (iScreenHeight - piNewWindowHeight) / 2;
	window.resizeTo(piNewWindowWidth, piNewWindowHeight);
	window.moveBy( -(window.screenLeft - iWinXCntr) , -( window.screenTop - iWinYCntr)); 
}
