function URLParameters(baseURL) {

	this._baseURL = baseURL;
	this._parameterList = new Array();
	this._useQuestionMark = true;
	
	this.getBaseURL = function() {
		return this._baseURL;
	}
	
	this.setBaseURL = function(baseURL) {
		this._baseURL = baseURL;
	}
	
	this.useQuestionMark = function(status) {
		this._useQuestionMark = status;
	}
	
	this.addParameter = function(key, value, keepDuplicate) {
		var parameter = key + "=" +value;
		if (!keepDuplicate)
			this.delParameter(key, value);
		this._parameterList.push(parameter);
	}

	this.delParameter = function(key) {
		var r = false;
		for (i=0;i<this._parameterList.length;i++)
			if (this._parameterList[i].indexOf(key+'=') != -1){
				this._parameterList.splice(i,1);
				i--;
				r = true;
			}
		return r;
	}
	
	this.setParameters = function(p) {
		this.clearParameters();
		for (var i=0;i<p.length;i++)
			this._parameterList.push(p[i]);
	}
		
	this.clearParameters = function() {
		this._parameterList.length = 0;
	}
	
	this.toString = function() {
		var result = this._baseURL;
		
		if(this._parameterList.length > 0) {
			if(this._useQuestionMark) {
				result += "?";
			}
			
			result += this._parameterList.join("&");
		}
		
		return result;
	}

	this.getParameters = function() {
		var result = new Array();

		for (var i=0;i<this._parameterList.length;i++) {
			result.push(this._parameterList[i]);
		}
		
		return result;
	}

	this.getParameter = function(key) {
		for (var i=0;i<this._parameterList.length;i++) {
			if (this._parameterList[i].indexOf(key+'=') != -1) {
				eval ("var pattern = /" + key + "=/");
				return this._parameterList[i].replace(pattern, "");
			}
		}
		return false;
	}

}

var legend_title = null;
var legend_url = null;



var lg = new Array();
lg[0] = new Array();
lg[0].title = "";
lg[0].la = new Array();
lg[0].la[0] = new Array();
lg[0].la[0].path = "nyc2/housenum";
lg[0].la[0].name = "House Address";
lg[0].la[0].z = 3;
lg[0].la[0].legend_title = null;
lg[0].la[0].legend_url = null;
lg[0].la[1] = new Array();
lg[0].la[1].path = "nyc2/neighborhood";
lg[0].la[1].name = "Neighborhood Areas";
lg[0].la[1].z = 3;
lg[0].la[1].legend_title = null;
lg[0].la[1].legend_url = null;
lg[0].la[2] = new Array();
lg[0].la[2].path = "nyc2/rezoning";
lg[0].la[2].name = "Rezoning Project Areas";
lg[0].la[2].z = 3;
lg[0].la[2].legend_title = "Rezoning Project Areas";
lg[0].la[2].legend_url = "ny/nyc_rezoning.png";
lg[0].la[3] = new Array();
lg[0].la[3].path = "nyc2/lotnumbers";
lg[0].la[3].name = "Tax Lot Numbers";
lg[0].la[3].z = 3;
lg[0].la[3].legend_title = null;
lg[0].la[3].legend_url = null;
lg[1] = new Array();
lg[1].title = "Community Areas";
lg[1].la = new Array();
lg[1].la[0] = new Array();
lg[1].la[0].path = "nyc2/censustract";
lg[1].la[0].name = "Census Tract with Blocks";
lg[1].la[0].z = 3;
lg[1].la[0].legend_title = null;
lg[1].la[0].legend_url = null;
lg[1].la[1] = new Array();
lg[1].la[1].path = "nyc2/schooldistrict";
lg[1].la[1].name = "School Districts";
lg[1].la[1].z = 3;
lg[1].la[1].legend_title = null;
lg[1].la[1].legend_url = null;
lg[1].la[2] = new Array();
lg[1].la[2].path = "nyc2/zip5";
lg[1].la[2].name = "Zip Code";
lg[1].la[2].z = 3;
lg[1].la[2].legend_title = null;
lg[1].la[2].legend_url = null;
lg[2] = new Array();
lg[2].title = "Community Features";
lg[2].la = new Array();
lg[2].la[0] = new Array();
lg[2].la[0].path = "nyc2/landmarks";
lg[2].la[0].name = "Landmark Points & Regions";
lg[2].la[0].z = 3;
lg[2].la[0].legend_title = "Landmark Points & Regions";
lg[2].la[0].legend_url = "ny/nyc_landmarks.png";
lg[2].la[1] = new Array();
lg[2].la[1].path = "nyc2/school";
lg[2].la[1].name = "Schools";
lg[2].la[1].z = 3;
lg[2].la[1].legend_title = "Schools";
lg[2].la[1].legend_url = "ny/nyc_school.gif";
lg[2].la[2] = new Array();
lg[2].la[2].path = "nyc2/toxic";
lg[2].la[2].name = "Toxic Sites";
lg[2].la[2].z = 3;
lg[2].la[2].legend_title = "Toxic Sites";
lg[2].la[2].legend_url = "ny/nyc_toxicsites.png";



var zl = new Array();
zl[0] = new Array();
zl[0].x_tiles = 4;
zl[0].y_tiles = 4;
zl[0].gc = new Array(0, 0, 100, 100);
zl[0].scale = 122030;
zl[0].x_tile_size = 300;
zl[0].y_tile_size = 300;
zl[0].folder = "zl0";
zl[0].click_action="/mason/Maps/mapclick.html";
zl[1] = new Array();
zl[1].x_tiles = 10;
zl[1].y_tiles = 10;
zl[1].gc = new Array(0, 0, 100, 100);
zl[1].scale = 48810;
zl[1].x_tile_size = 300;
zl[1].y_tile_size = 300;
zl[1].folder = "zl1";
zl[1].click_action="/mason/Maps/mapclick.html";
zl[2] = new Array();
zl[2].x_tiles = 25;
zl[2].y_tiles = 25;
zl[2].gc = new Array(0, 0, 100, 100);
zl[2].scale = 19530;
zl[2].x_tile_size = 300;
zl[2].y_tile_size = 300;
zl[2].folder = "zl2";
zl[2].click_action="/mason/Maps/mapclick.html";
zl[3] = new Array();
zl[3].x_tiles = 63;
zl[3].y_tiles = 63;
zl[3].gc = new Array(0, 0, 100, 100);
zl[3].scale = 7750;
zl[3].x_tile_size = 300;
zl[3].y_tile_size = 300;
zl[3].folder = "zl3";
zl[3].click_action="/mason/Maps/mapclick.html";
zl[4] = new Array();
zl[4].x_tiles = 163;
zl[4].y_tiles = 163;
zl[4].gc = new Array(0, 0, 100, 100);
zl[4].scale = 2990;
zl[4].x_tile_size = 300;
zl[4].y_tile_size = 300;
zl[4].folder = "zl4";
zl[4].click_action="/mason/Maps/mapclick.html";
zl[5] = new Array();
zl[5].x_tiles = 489;
zl[5].y_tiles = 489;
zl[5].gc = new Array(0, 0, 100, 100);
zl[5].scale = 1000;
zl[5].x_tile_size = 300;
zl[5].y_tile_size = 300;
zl[5].folder = "zl5";
zl[5].click_action="/mason/Maps/mapclick.html";



var bg = new Array();
bg[0] = new Array();
bg[0].title = "";
bg[0].bm = new Array();
bg[0].bm[0] = new Array();
bg[0].bm[0].path = "nyc2/buildclass";
bg[0].bm[0].name = "Building Classes";
bg[0].bm[0].legend_title = "Building Classes";
bg[0].bm[0].legend_url = "ny/nyc_buildclass.png";
bg[0].bm[0].scr = "2";
bg[0].bm[1] = new Array();
bg[0].bm[1].path = "nyc2/buildings";
bg[0].bm[1].name = "Building Outlines (Default) ";
bg[0].bm[1].legend_title = "Building Features";
bg[0].bm[1].legend_url = "ny/nyc_building-default.png";
bg[0].bm[1].scr = "0";
bg[0].bm[2] = new Array();
bg[0].bm[2].path = "nyc2/heatmap";
bg[0].bm[2].name = "Heat Map ($/sqft)";
bg[0].bm[2].legend_title = "Price Per Square Foot ($/sqft)";
bg[0].bm[2].legend_url = "pricesqft_heatmap.png";
bg[0].bm[2].scr = "2";
bg[0].bm[3] = new Array();
bg[0].bm[3].path = "nyc2/ownershipall";
bg[0].bm[3].name = "Ownership";
bg[0].bm[3].legend_title = "Ownership";
bg[0].bm[3].legend_url = "ny/nyc_ownership.png";
bg[0].bm[3].scr = "0";
bg[0].bm[4] = new Array();
bg[0].bm[4].path = "nyc2/pdfzoning";
bg[0].bm[4].name = "Zoning";
bg[0].bm[4].legend_title = "PDF Zoning";
bg[0].bm[4].legend_url = null;
bg[0].bm[4].scr = "1";
bg[1] = new Array();
bg[1].title = "Building Features";
bg[1].bm = new Array();
bg[1].bm[0] = new Array();
bg[1].bm[0].path = "nyc2/buildclassbybuilding";
bg[1].bm[0].name = "Building Classes by Building";
bg[1].bm[0].legend_title = "Building Classes";
bg[1].bm[0].legend_url = "ny/nyc_buildclass.png";
bg[1].bm[0].scr = "2";
bg[1].bm[1] = new Array();
bg[1].bm[1].path = "nyc2/storybybuilding";
bg[1].bm[1].name = "Building Stories (Building)";
bg[1].bm[1].legend_title = "Building Stories";
bg[1].bm[1].legend_url = "stories.png";
bg[1].bm[1].scr = "2";
bg[1].bm[2] = new Array();
bg[1].bm[2].path = "nyc2/subwayaccessbybuilding";
bg[1].bm[2].name = "Subway Accessibility by Building";
bg[1].bm[2].legend_title = "Subway Accessibility";
bg[1].bm[2].legend_url = "nyc_subway_access.png";
bg[1].bm[2].scr = "0";
bg[1].bm[3] = new Array();
bg[1].bm[3].path = "nyc2/yrbuiltbybuilding";
bg[1].bm[3].name = "Year Built (Building) ";
bg[1].bm[3].legend_title = "Year Built";
bg[1].bm[3].legend_url = "yrbuilt_lighter.png";
bg[1].bm[3].scr = "2";
bg[2] = new Array();
bg[2].title = "Parcel Features";
bg[2].bm = new Array();
bg[2].bm[0] = new Array();
bg[2].bm[0].path = "nyc2/story";
bg[2].bm[0].name = "Building Stories On Lot ";
bg[2].bm[0].legend_title = "Building Stories On Lot";
bg[2].bm[0].legend_url = "yrbuilt_lighter.png";
bg[2].bm[0].scr = "2";
bg[2].bm[1] = new Array();
bg[2].bm[1].path = "nyc2/default";
bg[2].bm[1].name = "Parcel Outlines";
bg[2].bm[1].legend_title = "General Features";
bg[2].bm[1].legend_url = "ny/nyc_parcel-default.png";
bg[2].bm[1].scr = "0";
bg[2].bm[2] = new Array();
bg[2].bm[2].path = "nyc2/satimage";
bg[2].bm[2].name = "Satellite Image";
bg[2].bm[2].legend_title = null;
bg[2].bm[2].legend_url = null;
bg[2].bm[2].scr = "1";
bg[2].bm[3] = new Array();
bg[2].bm[3].path = "nyc2/yrbuilt";
bg[2].bm[3].name = "Year Built ";
bg[2].bm[3].legend_title = "Year Built";
bg[2].bm[3].legend_url = "yrbuilt_lighter.png";
bg[2].bm[3].scr = "2";
bg[3] = new Array();
bg[3].title = "Market Trends";
bg[3].bm = new Array();
bg[3].bm[0] = new Array();
bg[3].bm[0].path = "nyc2/foreclosurerate";
bg[3].bm[0].name = "Foreclosure Rating by Zipcode";
bg[3].bm[0].legend_title = "Foreclosure Rating by Zipcode";
bg[3].bm[0].legend_url = "ny/nyc_zipcode-4closer.png";
bg[3].bm[0].scr = "0";
bg[3].bm[1] = new Array();
bg[3].bm[1].path = "nyc2/bubble3";
bg[3].bm[1].name = "Triple Bubble Trouble";
bg[3].bm[1].legend_title = "Triple Bubble Trouble (by Zip Code)";
bg[3].bm[1].legend_url = "bubble3_v2.png";
bg[3].bm[1].scr = "1";
bg[4] = new Array();
bg[4].title = "Hazards and Environment";
bg[4].bm = new Array();
bg[4].bm[0] = new Array();
bg[4].bm[0].path = "nyc2/femadfirm";
bg[4].bm[0].name = "FEMA Flood Zone";
bg[4].bm[0].legend_title = "FEMA Special Flood Hazard Area (or SFHA)";
bg[4].bm[0].legend_url = "usa/fema-base2.png";
bg[4].bm[0].scr = "1";
bg[5] = new Array();
bg[5].title = "Air Rights";
bg[5].bm = new Array();
bg[5].bm[0] = new Array();
bg[5].bm[0].path = "nyc2/fargap";
bg[5].bm[0].name = "Air Rights ";
bg[5].bm[0].legend_title = "Air Rights";
bg[5].bm[0].legend_url = "yrbuilt_lighter.png";
bg[5].bm[0].scr = "2";
bg[5].bm[1] = new Array();
bg[5].bm[1].path = "nyc2/farbyblock";
bg[5].bm[1].name = "Available Air Rights by Block";
bg[5].bm[1].legend_title = "Total Unused Floor Area (sqft)";
bg[5].bm[1].legend_url = "ny/nyc_block-sf.png";
bg[5].bm[1].scr = "1";
bg[5].bm[2] = new Array();
bg[5].bm[2].path = "nyc2/farbyparcel";
bg[5].bm[2].name = "Available Air Rights by Parcel";
bg[5].bm[2].legend_title = "Unused Floor Area (sqft)";
bg[5].bm[2].legend_url = "ny/nyc_parcel-sf.png";
bg[5].bm[2].scr = "1";
bg[6] = new Array();
bg[6].title = "Regulations";
bg[6].bm = new Array();
bg[6].bm[0] = new Array();
bg[6].bm[0].path = "nyc2/violations";
bg[6].bm[0].name = "HPD Violations";
bg[6].bm[0].legend_title = "HPD Violations";
bg[6].bm[0].legend_url = "ny/nyc_violations.png";
bg[6].bm[0].scr = "2";
bg[6].bm[1] = new Array();
bg[6].bm[1].path = "nyc2/restaurants";
bg[6].bm[1].name = "Restaurant Violations ";
bg[6].bm[1].legend_title = "Restaurants";
bg[6].bm[1].legend_url = "ny/nyc_restaurants.png";
bg[6].bm[1].scr = "0";
bg[7] = new Array();
bg[7].title = "Sales";
bg[7].bm = new Array();
bg[7].bm[0] = new Array();
bg[7].bm[0].path = "nyc2/annualsales";
bg[7].bm[0].name = "Manhattan Annual 2008 Sales Report";
bg[7].bm[0].legend_title = "Condo and Coops Sales Price sqft";
bg[7].bm[0].legend_url = "ny/nyc_corcoranreport.png";
bg[7].bm[0].scr = "0";
bg[7].bm[1] = new Array();
bg[7].bm[1].path = "nyc2/bkquarterlysales";
bg[7].bm[1].name = "Q3 2009 Brooklyn Sales Report";
bg[7].bm[1].legend_title = "Condo and Coops Sales Price sqft";
bg[7].bm[1].legend_url = "ny/nyc_corcoranreport.png";
bg[7].bm[1].scr = "0";
bg[7].bm[2] = new Array();
bg[7].bm[2].path = "nyc2/quarterlysales";
bg[7].bm[2].name = "Q3 2009 Manhattan Sales Report";
bg[7].bm[2].legend_title = "Condo and Coops Sales Price sqft";
bg[7].bm[2].legend_url = "ny/nyc_corcoranreport.png";
bg[7].bm[2].scr = "0";
bg[7].bm[3] = new Array();
bg[7].bm[3].path = "nyc2/saleage";
bg[7].bm[3].name = "Recent Sales";
bg[7].bm[3].legend_title = "Sale Range";
bg[7].bm[3].legend_url = "ny/nyc_saleage.png";
bg[7].bm[3].scr = "2";
bg[7].bm[4] = new Array();
bg[7].bm[4].path = "nyc2/buildclsaleage";
bg[7].bm[4].name = "Recent Sales by Building Classes";
bg[7].bm[4].legend_title = "Sale Range & Building Classes";
bg[7].bm[4].legend_url = "ny/nyc_buildclsaleage.png";
bg[7].bm[4].scr = "2";
bg[8] = new Array();
bg[8].title = "Taxes";
bg[8].bm = new Array();
bg[8].bm[0] = new Array();
bg[8].bm[0].path = "nyc2/propertytax";
bg[8].bm[0].name = "Assessment Increase";
bg[8].bm[0].legend_title = "Assessment Increase";
bg[8].bm[0].legend_url = "ny/nyc-change.png";
bg[8].bm[0].scr = "2";
bg[8].bm[1] = new Array();
bg[8].bm[1].path = "nyc2/taxsqft";
bg[8].bm[1].name = "Tax Value Per Square Foot";
bg[8].bm[1].legend_title = "Tax Value Per Square Foot";
bg[8].bm[1].legend_url = "taxsqft.png";
bg[8].bm[1].scr = "2";
bg[9] = new Array();
bg[9].title = "Special Classes";
bg[9].bm = new Array();
bg[9].bm[0] = new Array();
bg[9].bm[0].path = "nyc2/parking";
bg[9].bm[0].name = "Available Parking";
bg[9].bm[0].legend_title = "Parking Classes";
bg[9].bm[0].legend_url = "ny/nyc_parking.png";
bg[9].bm[0].scr = "2";
bg[9].bm[1] = new Array();
bg[9].bm[1].path = "nyc2/lotwphoto";
bg[9].bm[1].name = "Lots With Photos";
bg[9].bm[1].legend_title = "Lots with Photo";
bg[9].bm[1].legend_url = "ny/nyc_lotwphoto.png";
bg[9].bm[1].scr = "2";
bg[9].bm[2] = new Array();
bg[9].bm[2].path = "nyc2/crime";
bg[9].bm[2].name = "Precinct Crime Map ";
bg[9].bm[2].legend_title = "Police Precincts - Crime";
bg[9].bm[2].legend_url = "ny/nyc_crime.png";
bg[9].bm[2].scr = "0";
bg[9].bm[3] = new Array();
bg[9].bm[3].path = "nyc2/storefronts";
bg[9].bm[3].name = "Retail Store Fronts ";
bg[9].bm[3].legend_title = "Retail Store Fronts";
bg[9].bm[3].legend_url = "ny/nyc_storefronts.png";
bg[9].bm[3].scr = "2";
bg[10] = new Array();
bg[10].title = "Demographics by Block";
bg[10].bm = new Array();
bg[10].bm[0] = new Array();
bg[10].bm[0].path = "nyc2/popincome";
bg[10].bm[0].name = "Median Household Income";
bg[10].bm[0].legend_title = "Median Households Income";
bg[10].bm[0].legend_url = "usa/census_medianincome.png";
bg[10].bm[0].scr = "2";
bg[10].bm[1] = new Array();
bg[10].bm[1].path = "nyc2/popdensity";
bg[10].bm[1].name = "Population Density";
bg[10].bm[1].legend_title = "Population Density";
bg[10].bm[1].legend_url = "usa/census_popdensity2.png";
bg[10].bm[1].scr = "2";
bg[10].bm[2] = new Array();
bg[10].bm[2].path = "nyc2/popage";
bg[10].bm[2].name = "Population Median Age";
bg[10].bm[2].legend_title = "Population Median Age";
bg[10].bm[2].legend_url = "usa/census_medianage.png";
bg[10].bm[2].scr = "2";
bg[11] = new Array();
bg[11].title = "Demographic by Tract";
bg[11].bm = new Array();
bg[11].bm[0] = new Array();
bg[11].bm[0].path = "nyc2/age";
bg[11].bm[0].name = "Age";
bg[11].bm[0].legend_title = "Age";
bg[11].bm[0].legend_url = "usa/by_tract_age.png";
bg[11].bm[0].scr = "1";
bg[11].bm[1] = new Array();
bg[11].bm[1].path = "nyc2/citizenship";
bg[11].bm[1].name = "Citizenship";
bg[11].bm[1].legend_title = "Citizenship";
bg[11].bm[1].legend_url = "usa/by_tract_citizenship.png";
bg[11].bm[1].scr = "1";
bg[11].bm[2] = new Array();
bg[11].bm[2].path = "nyc2/disability";
bg[11].bm[2].name = "Disability";
bg[11].bm[2].legend_title = "Disability";
bg[11].bm[2].legend_url = "usa/by_tract_disability.png";
bg[11].bm[2].scr = "1";
bg[11].bm[3] = new Array();
bg[11].bm[3].path = "nyc2/education";
bg[11].bm[3].name = "Education";
bg[11].bm[3].legend_title = "Education";
bg[11].bm[3].legend_url = "usa/by_tract_education.png";
bg[11].bm[3].scr = "1";
bg[11].bm[4] = new Array();
bg[11].bm[4].path = "nyc2/employment";
bg[11].bm[4].name = "Employment";
bg[11].bm[4].legend_title = "Employment status";
bg[11].bm[4].legend_url = "usa/by_tract_employment.png";
bg[11].bm[4].scr = "0";
bg[11].bm[5] = new Array();
bg[11].bm[5].path = "nyc2/housevalue";
bg[11].bm[5].name = "House Value";
bg[11].bm[5].legend_title = "House value";
bg[11].bm[5].legend_url = "usa/by_tract_house_value.png";
bg[11].bm[5].scr = "1";
bg[11].bm[6] = new Array();
bg[11].bm[6].path = "nyc2/householdincome";
bg[11].bm[6].name = "Household Income";
bg[11].bm[6].legend_title = "Household Income";
bg[11].bm[6].legend_url = "usa/by_tract_household_income.png";
bg[11].bm[6].scr = "1";
bg[11].bm[7] = new Array();
bg[11].bm[7].path = "nyc2/incometype";
bg[11].bm[7].name = "Income Type";
bg[11].bm[7].legend_title = "Income Type";
bg[11].bm[7].legend_url = "usa/by_tract_income_type.png";
bg[11].bm[7].scr = "1";
bg[11].bm[8] = new Array();
bg[11].bm[8].path = "nyc2/ownerrenter";
bg[11].bm[8].name = "Living Ownership Type";
bg[11].bm[8].legend_title = "Occupied";
bg[11].bm[8].legend_url = "usa/by_tract_owner.png";
bg[11].bm[8].scr = "1";
bg[11].bm[9] = new Array();
bg[11].bm[9].path = "nyc2/occupation";
bg[11].bm[9].name = "Occupation";
bg[11].bm[9].legend_title = "Occupation";
bg[11].bm[9].legend_url = "usa/by_tract_occupation.png";
bg[11].bm[9].scr = "1";
bg[11].bm[10] = new Array();
bg[11].bm[10].path = "nyc2/ownerincome";
bg[11].bm[10].name = "Owner Income";
bg[11].bm[10].legend_title = "Owner  Income";
bg[11].bm[10].legend_url = "usa/by_tract_owner_income.png";
bg[11].bm[10].scr = "1";
bg[11].bm[11] = new Array();
bg[11].bm[11].path = "nyc2/poverty";
bg[11].bm[11].name = "Poverty";
bg[11].bm[11].legend_title = "Poverty";
bg[11].bm[11].legend_url = "usa/by_tract_poverty.png";
bg[11].bm[11].scr = "1";
bg[11].bm[12] = new Array();
bg[11].bm[12].path = "nyc2/race";
bg[11].bm[12].name = "Race";
bg[11].bm[12].legend_title = "Race";
bg[11].bm[12].legend_url = "usa/by_tract_race.png";
bg[11].bm[12].scr = "1";
bg[11].bm[13] = new Array();
bg[11].bm[13].path = "nyc2/renterincome";
bg[11].bm[13].name = "Renter Income";
bg[11].bm[13].legend_title = "Renter  Income";
bg[11].bm[13].legend_url = "usa/by_tract_renter_income.png";
bg[11].bm[13].scr = "1";
bg[11].bm[14] = new Array();
bg[11].bm[14].path = "nyc2/spokenlanguage";
bg[11].bm[14].name = "Spoken Language";
bg[11].bm[14].legend_title = "Spoken Language";
bg[11].bm[14].legend_url = "usa/by_tract_language.png";
bg[11].bm[14].scr = "1";
bg[11].bm[15] = new Array();
bg[11].bm[15].path = "nyc2/transporttowork";
bg[11].bm[15].name = "Transport to Work";
bg[11].bm[15].legend_title = "Transport to Work";
bg[11].bm[15].legend_url = "usa/by_tract_transport_work.png";
bg[11].bm[15].scr = "1";
bg[11].bm[16] = new Array();
bg[11].bm[16].path = "nyc2/timetraveltowork";
bg[11].bm[16].name = "Travel Time to Work";
bg[11].bm[16].legend_title = "Travel Time to Work";
bg[11].bm[16].legend_url = "usa/by_tract_time_travel_work.png";
bg[11].bm[16].scr = "1";
bg[11].bm[17] = new Array();
bg[11].bm[17].path = "nyc2/units";
bg[11].bm[17].name = "Units";
bg[11].bm[17].legend_title = "Units";
bg[11].bm[17].legend_url = "usa/by_tract_units.png";
bg[11].bm[17].scr = "1";
bg[11].bm[18] = new Array();
bg[11].bm[18].path = "nyc2/yearbuilt";
bg[11].bm[18].name = "Year Built";
bg[11].bm[18].legend_title = "Year Built";
bg[11].bm[18].legend_url = "usa/by_tract_year_built.png";
bg[11].bm[18].scr = "1";
bg[11].bm[19] = new Array();
bg[11].bm[19].path = "nyc2/yearmoved";
bg[11].bm[19].name = "Year Moved In";
bg[11].bm[19].legend_title = "Year Moved In";
bg[11].bm[19].legend_url = "usa/by_tract_year_moved.png";
bg[11].bm[19].scr = "1";





// Foreclosures AJAX version

debugMode = 0;

allowDataRequest = true;
	
newRegion = "";
newLocale = "";

queryStringData = new URLParameters('getData.html');

window.onload = function() {
	if (!document.getElementById('DataContainerAjax')) return;
	if (window.location.hash.length > 1)
		getDataFromStr(window.location.hash.substring(1, window.location.hash.length));
	else
		getData();
}

function loadingMsg(v){
	if (v==1){
		if (allowDataRequest)
			document.getElementById('DataContainerAjax').innerHTML = "";
		document.getElementById('DataContainerAjax').style.visibility = 'hidden';
		document.getElementById('Disclaimer').style.display	= 'none';
		document.getElementById('Loading').style.display = 'block';
	}
	if (v==0){
		document.getElementById('DataContainerAjax').style.visibility = 'visible';
		document.getElementById('Disclaimer').style.display	= 'block';
		document.getElementById('Loading').style.display = 'none';
	}
}

function handleResponse(r){
	var data = '';
	IdsToDisplay = [];

	try {
		ListDumper(r);

		var JSONresponse = eval("(" + r + ")");
		for (var i=0;i<JSONresponse.result.items.length; i++) {
			var current = JSONresponse.result.items[i];
			IdsToDisplay.push(current);
		}

		pager = (JSONresponse.result.pager) ? JSONresponse.result.pager : { pages:1, current:1 };
		records = (JSONresponse.result.records) ? JSONresponse.result.records.total_records : 0;
		query_box = JSONresponse.result.query_box;
		link_content = JSONresponse.result.link_content;
		product_name = JSONresponse.result.product_name;
		
		if (IdsToDisplay.length>0)
			data = "<table class='griddata selprint'>" +getContentToDisplay()+ "</table>";
		else
			data = "<div style='padding-top: 10px; font-size: 13px;'><center>No listings found.</center></div>";
		attachGridTable(data);

		// getSearch
		if (JSONresponse.result.getSearch){
			document.getElementById('SearchContainerAjax').innerHTML = JSONresponse.result.getSearch;
			
			//handle js scripts
			var pattern_s = /\<script\>([^\<]+)\<\/script\>/gi;
			var myArray;
			while ((myArray = pattern_s.exec(JSONresponse.result.getSearch)) != null){
				var pattern_d = /_UTIL_addDOMLoadEvent\(function\(\)\{([^}]+)\}/;
				var domLoad = myArray[1].match(pattern_d);
				if (domLoad){
					eval(domLoad[1]);
				}
			}
			
			var c = document.getElementById('criteria_div');
			var cs = document.getElementById('CriteriaContainerAjax');
			if (c && cs.innerHTML.length>0){
				c.innerHTML = cs.innerHTML;
				c.style.display = "block";
			}
			
			hideComplexCriteria();
		}

		// getTabs
		if (JSONresponse.result.getTabs){
			document.getElementById('TabContainerAjax').innerHTML = JSONresponse.result.getTabs;
		}
		
		loadingMsg(0);
	} catch(e) {
		loadingMsg(0);
		document.getElementById('DataContainerAjax').innerHTML = "<center><br>ERROR !<br>The server response was incorrect. Please try again later.</center>";
		ListDumper("JS Error: "+e);
	}
}

function attachGridTable(data){
	var pagerHTML = "";

	pager.pages = parseInt(pager.pages);
	pager.current = parseInt(pager.current);

	if (records > 0){
		var tmp = [];

		var product = product_name.product_n;
		
		for (var i = 1; i <= pager.pages; i++){
			if (pager.current == i)
				tmp.push("<b style='background-color:#eee; padding:2px'>" + i + "</b>");
			else
				if (product == 'Tax_Lien')
					tmp.push("<a class='pager_page' href=\"javascript:void(0)\" onClick=\"getData('product=Tax_Lien', 'page=" + i + "', 'dataOnly', 'forgetParams')\">" + i + "</a>");
				else 
					tmp.push("<a class='pager_page' href=\"javascript:void(0)\" onClick=\"getData('page=" + i + "', 'dataOnly', 'forgetParams')\">" + i + "</a>");
		}

		var maxPagerPages = 7;
		var pmin = pager.current - Math.floor(maxPagerPages/2);
		var pmax = pager.current + Math.floor(maxPagerPages/2);
		
		if (pmax < pager.pages)
			tmp.splice(pmax, pager.pages-pmax, "...");
		if (pmin > 1)
			tmp.splice(0, pmin-1, "...");

		if (pager.current < pager.pages)
			if (product == 'Tax_Lien')
				tmp.push("<a class='orange' href=\"javascript:void(0)\" onClick=\"getData('product=Tax_Lien', 'page=" + (pager.current+1) + "', 'dataOnly', 'forgetParams')\">Next &gt;</a>");
			else 
				tmp.push("<a class='orange' href=\"javascript:void(0)\" onClick=\"getData('page=" + (pager.current+1) + "', 'dataOnly', 'forgetParams')\">Next &gt;</a>");
		
		if (pager.current > 1)
			if (product == 'Tax_Lien')
				tmp.unshift("<a class='orange' href=\"javascript:void(0)\" onClick=\"getData('product=Tax_Lien', 'page=" + (pager.current-1) + "', 'dataOnly', 'forgetParams')\">&lt; Previous</a>");
			else 
				tmp.unshift("<a class='orange' href=\"javascript:void(0)\" onClick=\"getData('page=" + (pager.current-1) + "', 'dataOnly', 'forgetParams')\">&lt; Previous</a>");

		if (pager.pages > 1)
			if (product == 'Tax_Lien')
				tmp.push("&nbsp;<a class='orange' href=\"javascript:void(0)\" onClick=\"getData('product=Tax_Lien', 'offset=1000000', 'dataOnly', 'forgetParams')\">View All</a>");
			else
				tmp.push("&nbsp;<a class='orange' href=\"javascript:void(0)\" onClick=\"getData('offset=1000000', 'dataOnly', 'forgetParams')\">View All</a>");

		pagerHTML =  "<div style='float:left' class='noprint'><br>Pages: " +tmp.join(" ")+ "</div>";
		pagerHTML += "<div style='float:right' class='orange noprint'><br><b>" +records+ "</b> record(s) found</div>";
		pagerHTML += "<div class='cleaner'></div>";

	}
	
	if (link_content){
		document.getElementById('DataContainerAjax').innerHTML = pagerHTML + query_box.query + link_content.link_content + data + "<br>" + pagerHTML;
	} else {
		document.getElementById('DataContainerAjax').innerHTML = pagerHTML + query_box.query + data + "<br>" + pagerHTML;
	}
}

function getData(){
	allowDataRequest = true;
	loadingMsg(1);
	var data = '';
	
	if (currentPopup){
		var tmp = currentPopup;
		showPopupSimple(tmp);
		selectTab(tmp+"_tab", "advancedSearchHeaderPanel");
	}
	
	toggleElement("criteria_div", false);

	if (arguments[arguments.length-1] == 'forgetParams') {
		var forgetParams = 1;
		var queryStringDataParams = queryStringData.getParameters();
		var q = new URLParameters('getData.html');
		q.setParameters(queryStringDataParams);
	} else {
		var forgetParams = 0;
	}

	var args = [];	
	for (var i = 0; i < arguments.length; i++){
		args.push(arguments[i]);
		var keyname  = arguments[i].split('=')[0];
		var keyvalue = arguments[i].split('=')[1];
		if (keyname && keyvalue) {
			var keepDuplicate = (keyname == "nyc_neighborhood")?true:false; // HACK: keep it like this until new algorythm for refine/getData mechanism
			if (forgetParams==1)
				q.addParameter(keyname, keyvalue, keepDuplicate);
			else
				queryStringData.addParameter(keyname, keyvalue, keepDuplicate);
		}
	}

	if (forgetParams==1)
		var query = q.toString();
	else
		var query = queryStringData.toString();

	if (_UTIL_inArray(args,'dataOnly'))
		query += "&dataOnly=1";

	// back button
	if (query.indexOf("?")>-1)
		callReload(query.split("?")[1]);

	// main request
	var s = new AjaxService();
	s.setURL(query);
	s.setDelegate(handleResponse);
	s.callService();

	// criteria
	var sc = new AjaxService();
	sc.setURL(	query.replace('getData\.html', 'getCriteria\.html') );
	sc.setDelegate(processCriteria);
	sc.callService();
}

function getDataFromStr(s){
	loadingMsg(1);

	s = s.replace(/dataOnly=1/, "");

	var sd = new AjaxService();
	sd.setURL("getData.html?"+s);
	sd.setDelegate(handleResponse);
	sd.callService();

	var sc = new AjaxService();
	sc.setURL("getCriteria.html?"+s);
	sc.setDelegate(processCriteria);
	sc.callService();
}

function processCriteria(r){
	var criteriaDiv = document.getElementById("CriteriaContainerAjax");
	criteriaDiv.innerHTML = "";

	var JSONresponse = eval("(" + r + ")");
	var rok = JSONresponse.content;
	if (rok.length==0) return;

	var b = document.createElement("b");
	b.innerHTML = "Current search criteria";
	criteriaDiv.appendChild(b);

	var ul = document.createElement("ul");
	for (var i=0; i<rok.length; i++) {
		var li = document.createElement("li");
		li.innerHTML = rok[i].label;
		li.innerHTML += "&nbsp; (<a href='?"+rok[i].params+"' onclick=\"return removeCriteria(this)\">remove</a>)";
		ul.appendChild(li);
	}
	criteriaDiv.appendChild(ul);

	checkCriteria();
}

function checkCriteria(){
	var criteriaDiv = document.getElementById("criteria_div");
	if (criteriaDiv){
		criteriaDiv.innerHTML = document.getElementById("CriteriaContainerAjax").innerHTML;
		toggleElement("criteria_div", true);
	}
}

function getCalendar(){
	loadingMsg(1);

	var queryStringDataParams = queryStringData.getParameters();

	var q = new URLParameters('getData.html');
	q.setParameters(queryStringDataParams);
	q.addParameter('download', 'calendar');

	//alert(q.toString());
	var s = new AjaxService();
	s.setURL(q.toString());
	s.setDelegate(function(r){
		loadingMsg(0);
		document.getElementById('DataContainerAjax').innerHTML = r;
	});
	s.callService();
}

function changeTabs(product){
	//delete query string for index number search (not sticky among products)
	queryStringData.delParameter('num_index_number');
	queryStringData.delParameter('year_index_number');
	queryStringData.delParameter('num_index_number_all');
	queryStringData.delParameter('year_index_number_all');
	queryStringData.delParameter('num_index_number_doc');
	queryStringData.delParameter('year_index_number_doc');
	queryStringData.delParameter('num_index_number_westchester');
	queryStringData.delParameter('year_index_number_westchester');
	queryStringData.delParameter('type');
	getData("product="+product);
}

function getContentToDisplay(){
	var tmp="";
	for (var i=0; i<IdsToDisplay.length; i++)
		tmp += IdsToDisplay[i].html;
	return(tmp);
}

function ListDumper(txt){
	if (debugMode==0) return;
	
	var Dumper = window.open("", "Window_" + Math.floor(Math.random() * 10000000), "toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,width="+screen.availWidth+",height="+screen.availHeight);
	Dumper.document.write(txt);
	Dumper.blur();
}

function showQuery (status){
	var query_id = document.getElementById('queryId');
	var show_id = document.getElementById('showId');
	var hide_id = document.getElementById('hideId');

	if (status == 'hide'){
		show_id.style.display = "none";
		hide_id.style.display = "block";
		query_id.style.display = "block";
		query_id.style.backgroundColor = "#f1f1f1";
	}else{
		hide_id.style.display = "none";
		show_id.style.display = "block";
		query_id.style.display = "none";
	}
}

function refine(forgetParams){
	var form = document.refine_search;
	var a = [];
	for(var i=0; i<form.elements.length; i++){
		var elem = form.elements[i];

		if (elem.type=="checkbox" & elem.checked)
			a.push("\""+ elem.name+"="+elem.value +"\"");
		if (elem.type=="radio" & elem.checked)
			a.push("\""+ elem.name+"="+elem.value +"\"");
		if ( (elem.type=="select-one" || elem.type=="select") && elem.value!="" && elem.value!="\r" )
			a.push("\""+ elem.name+"="+elem.options[elem.selectedIndex].value +"\"");
		if ( (elem.type=="text" || elem.type=="hidden") && elem.value!="" )
			a.push("\""+ elem.name+"="+elem.value +"\"");
	}
	var extra = ", \"dataOnly\"";
	if (forgetParams)
		extra += ", \"forgetParams\"";

	eval( "getData(" + a.join(",") + extra + ")" );
	return false;
}

function getDownload(l){
	if (l.toString().indexOf('/mason/Subscribe') > -1) return;
	
	var download = l.toString().match(/download=([^&]+)/)[1];
	
	var f = document.refine_search;
	var s = "";
	for(var i=0; i<f.elements.length; i++){
		var elem = f.elements[i];

		if (elem.type=="checkbox" & elem.checked)
			s += "&"+elem.name+"="+elem.value;
		if (elem.type=="radio" & elem.checked)
			s += "&"+elem.name+"="+elem.value;
		if ( (elem.type=="select-one" || elem.type=="select") && elem.value!="" && elem.value!="\r" )
			s += "&"+elem.name+"="+elem.options[elem.selectedIndex].value;
		if ( (elem.type=="text" || elem.type=="hidden") && elem.value!="" )
			s += "&"+elem.name+"="+elem.value;
	}
	
	if (download == "pdf") {
		if (records > 50){
			var answer = confirm("PDF download is limited to 50 listings! Click 'OK' and download first 50 listings or 'Cancel' and refine your search to download only the listings you are interested in.");
		}	

		if ((records > 50) && (!answer)) {
			return false;
		} else {
		//	window.open(l+s); // display the html for now
	
		/* 	Method 1
			var product = s.toString().match(/product=([^&]+)/)[1];
			
			var request_url = new URLParameters("http://www.seven49.net/html2pdf/");
			request_url.addParameter('footer_text', 'blank');
			request_url.addParameter('orientation', 'portrait');
			request_url.addParameter('image_quality', 75);
			request_url.addParameter('file_name', 'PShark_' + product);
			request_url.addParameter('url_to_render', escape(l+s));
			
			window.open(request_url.toString());
		*/
				
	
		//	Method 2
			var region = l.toString().match(/region=([^&]+)/)[1];
			region = region.replace(/%20/g," ");
			s += "&region=" + region;
			postForm(s, "/mason/Export/data_collector.html?application=foreclosures");
		}

	} else {
		postForm(s, l);		
	}

	return false;
}

function toggleElement(id, status){
	var element = document.getElementById(id);
	if(element)
		element.style.display = (status)?"block":"none";
}

function removeCriteria(link){
	currentPopup = "";

	var ul = link.parentNode.parentNode;
	var li = link.parentNode;
	ul.removeChild(li);

	var str = link.search.replace("?","&");
	var tmp = str.split("&");
	for (var i=0;i<tmp.length;i++){
		var keyname = tmp[i].split("=")[0];
		var keyvalue = tmp[i].split("=")[1];
		if (!keyname || !keyvalue) continue;
		var r = queryStringData.delParameter(keyname);
		if (!r){
			var keyvalues = keyvalue.split(",");
			for (var i=0;i<keyvalues.length;i++){
				queryStringData.delParameter(keyname+"_"+keyvalues[i]);
			}
		}
	}
	getData();
	
	return false;	
}

function hideComplexCriteria(){
	var b = ["Manhattan", "Brooklyn", "Queens", "The Bronx", "Staten Island"];
	for (var i=0;i<b.length;i++){
		var ids = ["showNeighborhood", "showDistrict"];
		for (var j=0;j<ids.length;j++){
			var obj = document.getElementById(ids[j]+"_"+b[i]);
			if (obj){
				if (b[i] == forcsRegion){
					document.getElementById(ids[j]+"_"+b[i]+"_map").style.right = "auto";
					var clk = document.getElementById(ids[j]+"_"+b[i]).firstChild.getAttribute("onclick");
					var anonymous = function (){}; // IE fix
					eval(clk + "anonymous()");
				}else{
					obj.style.display = "none";
				}
			}
		}
	}
}

// Back button
var myhash = "";
if (!document.all) setInterval("checkhash()", 100);

function checkhash(){
	var h = (window.location.hash.length > 1) ? window.location.hash.substring(1, window.location.hash.length) : null;
	if (h && h != myhash){
		reload(h);
	}
}

function callReload(n){
	if (document.all){
		var ht = document.getElementById("historytracker");
		ht.contentWindow.document.open();
		ht.contentWindow.document.write("<script>window.parent.reload('" + n + "');<\/script>");
		ht.contentWindow.document.close();
	}else{
		reload(n);
	}
}

function reload(n){
	window.location.hash = n;
	myhash = n;

	var l = document.getElementById('Loading');
	if (l)
		if (l.style.display == "none")
			getDataFromStr(n);
}

function setValue(v){
	var val = v;	
	if (!document.getElementById("school").value.match(val)){
		if (document.getElementById("school").value){
			document.getElementById("school").value += ','+val;
		} else {
			document.getElementById("school").value = val;
		}
	}
}

function loadTown(obj){
	var element = document.getElementById("town");
	
	element.options.length = 0;
	for(var index = 0; index < items[obj.value].length; index++) {
		element.options[index] = new Option(items[obj.value][index]);
		element.options[index].value = items[obj.value][index];
	}

	setTableOption('');
}

function setTableOption(value){
	var element = document.getElementById("town");

	if (value == '') {
		element.selectedIndex = 0;
	} else {
		for(var index = 0; index < element.options.length; index++) {
			if(element.options[index].value == value) {
				element.selectedIndex = index;
				return;
			}
		}
	}
}

function delParam(id){
	queryStringData.delParameter(id);
}

function showSelect (id) {
	document.getElementById(id).style.display = 'block';
}

function removeQuickSearch() {
	var codes = ["Coopsasbuildingsnotasindividualunits", "C6", "C8", "D0", "D4", "R9", "WalkupCondosR", "R1", "R2", "R3", "R4", "R6", "C1", "C2", "B", "B1", "B2", "B3", "B9", "C0", "C3", "StoreBuildingsmostK", "CommercialCondoUnitsR", "CommerciallHLmostKsomeR", "H", "H1", "H2", "H3", "H5", "H6", "H7", "H8", "H9", "K1", "K2", "K3", "K5", "K6", "K7", "K9", "L", "L1", "L2", "L3", "L8", "L9", "O", "O1", "O2", "O3", "O4", "O5", "O6", "O7", "O8", "O9", "R5", "R7", "R8"];

	for (var i=0;i<codes.length;i++){
		queryStringData.delParameter("tree_nyc_building_class_selector_"+codes[i]);
	}

	queryStringData.delParameter("tree_nyc_building_class_selector");
}

// --------- NOTES ---------------------------
function Notes(propkey, user, counter) {
	this._propkey = propkey;
	this._user = user;
	this._counter = counter;
	
	this.addNote = function(note, type, button) {
		note = note.replace(/^(\s*)([\W\w]*)(\b\s*$)/, '$2');
		if (note=="") {
			alert("Please write a note.");
			return;
		}

		button.disabled = '1';
		button.value = 'Adding Note...';

		note = note.replace(/\n/g, "<br>");

		// parse links
		note = note.replace(/\b(www(\.[\w-]+){2,}(\/[\w-]+)*(\.[\w-]+)*)/g, "<a href='http://$1' target='_blank'>$1</a>");
		note = note.replace(/http:\/\/\<a href='([^']+)'/g, "<a href='$1'");
		// parse emails
		note = note.replace(/\b([\w-\.]+@[\w-]+(\.[\w-]+){1,})/g, "<a href='mailto:$1'>$1</a>");

		ajaxLoader("/mason/Accounts/My/Notes/notes_add.html?note="+escape(note)+"&type="+type+"&propkey="+this._propkey+"&counter="+this._counter, "notesDiv"+this._counter);
	}
	
	this.deleteNote = function(id) {
		if (!window.confirm("Are you sure you want to delete this note?"))
			return;
		ajaxLoader("/mason/Accounts/My/Notes/notes_delete.html?note_id="+id+"&propkey="+this._propkey+"&counter="+this._counter, "notesDiv"+this._counter);
	}
	
}

// --------- LISTS ---------------------------
var counter_handlePropertyToList = 0;

function handlePropertyToList(propkey, id, status, loadingDiv) {
	var w = document.getElementById(loadingDiv);
	w.style.display = "block";
	if (w){
		w.innerHTML = "Updating the lists ";
		if (counter_handlePropertyToList == 0)
			setTimeout("working('"+loadingDiv+"')", 200);
	}
	updateStats("list_click", propkey);
		
	if (status)	var file = "add_prop.html";
	else		var file = "delete_prop.html";

	var service = new AjaxService();
	service.setDelegate(workingDone);
	service._forwardParams = "loadingDiv="+loadingDiv;
	service.setURL("/mason/Accounts/My/Lists/"+file+"?propkey="+propkey+"&id="+id);
	service.callService();

	counter_handlePropertyToList++;
}

function working(loadingDiv) {
	if (counter_handlePropertyToList>0){
		setTimeout("working('"+loadingDiv+"')", 200);
	}else{
		return;
	}

	var w = document.getElementById(loadingDiv);
	if (w.innerHTML.length<28)
		w.innerHTML += ". ";
	else
		w.innerHTML = "Updating the lists ";
}

function workingDone(r, forwardParams) {
	var w = document.getElementById(forwardParams['loadingDiv']);
	if (!r.match(/OK/)){
		w.innerHTML = "Error updating the lists";
		counter_handlePropertyToList = 0;
		return;
	}
	counter_handlePropertyToList--;
	if (counter_handlePropertyToList == 0) {
		w.innerHTML = "The lists were updated";
	}
}

// --------- REPORT SECTIONS ---------------------------
function processReportSections(r, forwardParams){
	var JSON = eval("(" + r + ")");
	var result = "<div class='report_sections'><ul>";
	for (var i=0;i<JSON.content.length;i++) {
		var name = JSON.content[i].name;
		var section = JSON.content[i].section;
		if (name && name!='' && section && section!='')
			result += "<li><a href='javascript:void(0)' onClick=\"popupshow(this, '/mason/Reports2/ajax_sections.html?propkey=" + JSON.propkey + "&ajax_section=" + section + "', 'type=ajaxLoader', 'delegate=processReportSection', 'call_event=click', 'title="+escape(name)+"', 'align=center', 'valign=middle', 'stayopen', 'width=660', 'loc="+document.searchform.shortLocale.value+"')\">"+ name +"</a></li>";
	}
	result += "</ul></div>";
	return(result);
}

function processReportSection(r){
	var r = r;
	try {
		r = r.replace(/\<h4\>/g, "<h4 style='border-bottom: 1px solid #999; margin: 1em 0 0 0'>");
		r = r.replace(/\<div class="toggle"\>/g, "<div style='display:none'>");
		r = r.replace(/class="t"/g, "style='display:none'");
		r = r.replace(/class="section"/g, "class='section' style='background:none; border:none; margin-top: 8px'");
		r = r.replace(/\<a[^\>]+\>\<img src="\/img\/question\.gif"\>\<\/a\>/g, "");

		//handle maps	
		var draw = r.match(/(drawMap\([^\)]+\))/g, "''");
		if (draw) {
			for (var i=0;i<draw.length;i++) {
				eval("var map = "+draw[i]);
				r = r.replace(/\<script\>[^d]+document\.write\(drawMap[^\<]+\<\/script\>/, map);
			}
		}

		//handle maxwidgets requests
		var pattern = /\<script\>(HTTP.request[^\<]+)\<\/script\>/;
		var maxReq = r.match(pattern);
		if (maxReq) {
			eval(maxReq[1]);
			r = r.replace(pattern, "");
		}

		//handle other js scripts
		var pattern = /\<script\>([^\<]+)\<\/script\>/;
		var otherReq = r.match(pattern);
		if (otherReq){
			eval(otherReq[1]);
			r = r.replace(pattern, "");
		}

		//extract propertyAddress if available
		var propertyAddress = "";
		var pattern = /\<input type=hidden name=propertyAddress value="([^"]+)"\>/;
		var propertyAddress_array = r.match(pattern);
		if (propertyAddress_array){
			propertyAddress = propertyAddress_array[1];
		}

		if (r == "") throw("empty");
	} catch (e) {
		r = (e == "empty") ? "No content found." : "Error getting report section.<br>["+e+"]";
		r = "<center>" + r + "</center>";
	}

	return("<div class='reportmain' style='margin:0'>" + r + "</div>");
}

function processLists(r){
	include_css('/includes/myLists.css', 'myLists');
	var r = r;
	r = r.replace(/class="section navlinks"/, "");
	r = r.replace(/class="t"/, "class='hide'");
	return(r);
}

function processListsProperties(r){
	include_css('/includes/myLists.css', 'myLists');
	return(r);
}

function rotatePhoto(imgname,r){
	var id = "wb_"+imgname;
	var obj = document.getElementById(id);
	var url = "/mason/components/photo/pic_rotate.html?imgname="+imgname+"&rotate="+r;
    
	if (obj){
	
		_UTIL_simpleAJAX(url,id);

		var tm = new Array();
		for (var i=0; i<4;i++){
			tm[i] = document.getElementById("th"+i+"_"+imgname).href;
		}

		for (var i=0; i<4;i++){
			document.getElementById("th"+i+"_"+imgname).href = tm[(i+(4-r))%4];
		}
		instant_popuphide("pop"+imgname+"pop");
	} else{
	}
}

function flagPhoto(imgname,c){
	ajaxLoader("/mason/components/photo/save_photos_options.html?img_"+imgname+"=flag_"+c);
}

function setDefaultPhoto(imgname,sectionId,propkey){
	var element = document.getElementById(sectionId);
	ajaxLoader("/mason/components/photo/pic_default.html?imgname="+imgname+"&section="+sectionId.substring(0,5)+"&propkey="+propkey+"&set="+element.checked);
}

function setDefaultUserPhoto(imgname,type,propkey){
	ajaxLoader("/mason/components/photo/pic_default.html?imgname="+imgname+"&propkey="+propkey+"&type="+type);
}

function loadDefaultUserPhoto(imgname,type,imageId,linkId){
	// Used for reloading the "default user photo" in reports
	// when a user changes it
	var size = "preview";
	
	var imageLink = document.getElementById(linkId);
	imageLink.href = "/mason/Photos/view.html?photo="+ imgname +"&type="+ type;
	
	var imageObj = document.getElementById(imageId);
	imageObj.src = "/mason/components/photo/pic_view.html?imgname="+imgname+"&type="+type+"&size="+size;
}

function showPhoto(id,imgname,n,type,size){
	var obj = document.getElementById(id);
	var size = size || "thumb";
	if (obj){
		// Load selected photo
		obj.src = "/mason/components/photo/pic_view.html?imgname="+imgname+"&type="+type+"&size="+size;

		// Reset selected photo
		var tbody = obj.parentNode.parentNode.parentNode;
		var squares = tbody.getElementsByTagName("a");
		for (var i=0; i<squares.length; i++){
			squares[i].className = "";
		}

		// Mark selected photo box
		var photo = document.getElementById(id+"_"+window.current_photo);
		if (photo) photo.className = "";

		window.current_photo = n;

		var photo = document.getElementById(id+"_"+window.current_photo);
		if (photo) photo.className = "current";
	}
}

function showHint(popper, text) {
	var poppee = document.createElement("div");
	with (poppee){
		id = popper.id + "_hint";
		style.width = text.length*7 + "px";
		style.position = "absolute";
		style.fontSize = "10px";
		style.zIndex = "99999999";
		style.padding = "3px";
		style.border = "solid #5A7EA4 1px";
		style.backgroundColor = "#FFFFFF";
		style.color = "#000000";
		style.margin = "0px";
		innerHTML = text;
	}

	document.body.appendChild(poppee);
//	popper.appendChild(poppee);
//	_UTIL_setIFrameBackground(poppee.id);

	var left = _UTIL_getPosleft(popper);
	var top = _UTIL_getPostop(popper);
	var offsetheight = poppee.offsetHeight+22;
	var offsetwidth = poppee.offsetWidth;
	var leftOffset = popper.offsetWidth+2;
	var topOffset = 1;
	var availWidth = _UTIL_getAvailWidth();
	var availHeight = _UTIL_getAvailHeight();
	var scrOfX = _UTIL_getScrollLeft();
	var scrOfY = _UTIL_getScrollTop();
	
	if ((left+offsetwidth+leftOffset)<(availWidth+scrOfX)){
		poppee.style.left = (left + leftOffset) + "px";
	}else{
		poppee.style.left = Math.max(scrOfX,(left - offsetwidth-4)) + "px";
	}

	if ((top+offsetheight+topOffset)<(availHeight+scrOfY)){
		poppee.style.top = (top+topOffset) + "px";
	}else{
		poppee.style.top = Math.max(scrOfY,(availHeight+scrOfY+topOffset - offsetheight)) + "px";
	}
}

function hideHint(popper) {
	var poppee = document.getElementById(popper.id+"_hint");
//	popper.removeChild(poppee);
	document.body.removeChild(poppee);
}

function openPanoViewer(imgname) {
	var w = window.open("/mason/PanoViewer/?image="+imgname, "Panorama", "menubar=1, scrollbars=0, width=100, height=100, resizable=0, location=0");
	w.moveTo(0,0);
	w.resizeTo(screen.availWidth,screen.availHeight);
}

function addPictureField (maxPics) {
    var i = 2;
    for (i;i<=maxPics;i++) {
        var element = document.getElementById("block_" + i);
        if(element.style.display == 'none') {
            element.style.display = 'block';
            break;
        }
    }
}

function toggleVisibility(id) {
    var element = document.getElementById(id);
    if(element.style.display == 'none')
        element.style.display = 'block';
    else
        element.style.display = 'none';
}

function checkFiles() {
	var result = false;
	
	for (var index = 0; index < document.uploadFiles.elements.length; index++) {
		var currentElement = document.uploadFiles.elements[index];
		if (currentElement.type == "file") {
			result = (currentElement.value != "");
			if (result) break;
		}
	}
	
	if(!result) {
		alert("No files selected! Please use the 'Browse...' button to find photo files on your computer.");
	}
	return result;
}

function popupReposition(img){
	img.style.visibility = 'visible';
	var el = img;
	while (true){
		if (el.id.match(/^popup[0-9]+pop$/)){
			el.style.top = _UTIL_getScrollTop()+(_UTIL_getAvailHeight()-el.clientHeight)/2 + "px";
			break;
		}else{
			el = el.parentNode;
		}
	}
	_UTIL_setIFrameBackground(el.id);
}

function check_all(status){
	var checks = $("input.check_printing");
	var tbodys = $("table.selprint > tbody[class]");
	for (var j=0; j<tbodys.length; j++){
		if (status){
			tbodys[j].className = "page";
			checks[j].checked = "checked";				
		}else{
			tbodys[j].className = "noprint";
			checks[j].checked = "";

			var last_tr = tbodys[j].rows[tbodys[j].rows.length-1];
			last_tr.className = last_tr.className.replace(/page_break/,'');
		}
	}
}

function print_selected(listings, donotprint){
	var checks = $("input.check_printing");
	var tbodys = $("table.selprint > tbody[class]");
	var print_all = 1;
	for (var i=1;i<checks.length;i++){
		if (checks[i-1].checked != checks[i].checked){
			print_all = 0;
		}
	}
	if (print_all){
		tbodys.attr("class", "page");
	}else{
		for (var i=0;i<checks.length;i++){
			tbodys[i].className = (checks[i].checked) ? "page" : "noprint";
		}
	}

	var i = 0;
	var nr = 0;
	var vprint = 0;

	for (var j=0; j< tbodys.length; j++) {
		var trs = tbodys[j].rows;
		if (tbodys[j].className != "") {
			tbodys[j].className = (tbodys[j].className == "noprint" ? "noprint" : "page");
			trs[trs.length-1].className = trs[trs.length-1].className.replace(/page_break/,'');
		}
		if (tbodys[j].className == "page" || tbodys[j].className == "page_break"){
			vprint = 1;
			nr++;
			if (nr % listings == 0) {	
				trs[trs.length-1].className = trs[trs.length-1].className + " page_break";
				tbodys[j].className = "page_break";
			}
		} 
	}
	if (vprint == 0) {
		nr = 0;
		for (var j=0; j<tbodys.length; j++){
			if (tbodys[j].className == "noprint") {
				nr++;
				var trs = tbodys[j].rows;
				if (nr % listings == 0){
					tbodys[j].className = "page_break";
					trs[trs.length-1].className = trs[trs.length-1].className + " page_break";
				} else {
					tbodys[j].className = "page";
				}
			}
		}
	} 
	if (vprint == 0) {
		for(var j=0; j<tbodys.length; j++){
			if (tbodys[j].className == "page" || tbodys[j].className == "page_break"){
				tbodys[j].className = "noprint";
				var trs = tbodys[j].rows;
				trs[trs.length-1].className = trs[trs.length-1].className.replace(/page_break/,'');
			}
			var input_objs = tbodys[j].getElementsByTagName('input');
			for (var k=0; k<input_objs.length; k++){
				if (input_objs[k].className == "check_printing"){
					input_objs[k].checked = "";
				}
			}
		}
	}
	
	if (!donotprint) window.print();
}

/**
 * @param	source	the checkbox that was clicked
 * @param	up		whether the parent should be updated
 * @param	down		whether the children should be updated
 * @return			nothing
 */

function boxClicked( source, up, down ) {

	if( down ) { /* clicked */
		/* toggle all the children */
		var children = getChildren( source );
		var child;

		for( var i = 0; child = children[i]; i++ ) {
			child.checked = source.checked;
			boxClicked( child, false, true );
		}

	}

	if( up ) {
		var parent = tree_getParent( source );
		if( parent != null ) { // not the root node
			updateParent( parent );
		}
	}

	return true;
}

/**
 * @param	node	the parent node
 */

function updateParent( node ) {
	var children = getChildren( node );
	var allChecked = true;
	var child;

	for( var i = 0; child = children[i]; i++ ) {
		if( !child.checked ) {
			allChecked = false;
			break;
		}
	}

	if( node.checked != allChecked ) {
		node.checked = allChecked;
		boxClicked( node, true, false );
	}

}

/**
 * @param	node	the child node
 * @return	the parent of node
 */

function tree_getParent( node ) {

	if( node.parentNode.parentNode.className == "tree" ) {
		/* root node, no parent */
		return null;
	} else {
		return _firstChild( node.parentNode.parentNode.parentNode );
	}

}

/**
 * Get an array of all of node's children
 * @parem	node	the parent checkbox
 * @return	array of children
 */
function getChildren( node ) {
	var results = new Array();

	if( node.parentNode.className == "internal" ) {
		var childrenDiv = nextNode( node );
		/* all the children are inside of divs */
		if( childrenDiv.className == "branch" ) {
			var child = _firstChild( childrenDiv );
			do {
				results.push( _firstChild( child ) );
				child = nextNode( child );
			} while( child != null );
		} else {
			alert( "Error in getChildren()" );
		}
	}

	return results;
}

/**
 * @param	node	starting node
 * @return	first node text child
 */

function _firstChild( node ) {
	node = node.firstChild;
	while( node.nodeType == node.TEXT_NODE ) {
		node = node.nextSibling;
	}
	return node;
}

/**
 * @param	node	starting node
 * @param	cName	optional class name
 * @return	the previous div with branch, leaf, internal or the
 * 		specified class name
 */

function previousNode( node, cName ) {
	do {
		node = node.previousSibling;
	} while( node != null && !wanted( node, cName ) );
	alert( node.className + node.nodeName );
	return node;
}

/**
 * @param	node	starting node
 * @param	cName	optional class name
 * @return	the next div with branch, leaf, internal or the specified
 *		class name or null if there is no next sibling
 */

function nextNode( node, cName ) {
	do {
		node = node.nextSibling;
	} while( node != null && !wanted( node, cName ) );
	return node;
}

/**
 * check if this is a node we want
 * @param	node	node to check
 * @param	cName	optional class name to check
 * @return	true if it meets the criteria for nodes we want, otherwise
 *		false
 */

function wanted( node, cName ) {
	if(
		node.nodeName == "DIV" &&
		(
			(
				( cName != null ? node.className == cName : false ) ||
				node.className == "leaf" ||
				node.className == "internal" ||
				node.className == "branch"
			)
		)
	) {
		return true;
	} else {
		return false;
	}
}

/**
 *	Toggle visibility of a the branch
 * @param	source	span containing the toggle
 */

function toggleBranch( source ) {
	var branch;
	var label;

	if( source.nodeName == "A" ) {
		branch = nextNode( source.parentNode );
		label = source.firstChild;
	} else {
		branch = nextNode( source );
		label = _firstChild( source ).firstChild;
	}

	if( branch.style.display == "none" ) {
		branch.style.display = "block";
		label.nodeValue = "Collapse";
	} else {
		branch.style.display = "none";
		label.nodeValue ="Expand";
	}

}

/* SWFObject v2.1 <http://code.google.com/p/swfobject/>
	Copyright (c) 2007-2008 Geoff Stearns, Michael Williams, and Bobby van der Sluis
	This software is released under the MIT License <http://www.opensource.org/licenses/mit-license.php>
*/
var swfobject=function(){var b="undefined",Q="object",n="Shockwave Flash",p="ShockwaveFlash.ShockwaveFlash",P="application/x-shockwave-flash",m="SWFObjectExprInst",j=window,K=document,T=navigator,o=[],N=[],i=[],d=[],J,Z=null,M=null,l=null,e=false,A=false;var h=function(){var v=typeof K.getElementById!=b&&typeof K.getElementsByTagName!=b&&typeof K.createElement!=b,AC=[0,0,0],x=null;if(typeof T.plugins!=b&&typeof T.plugins[n]==Q){x=T.plugins[n].description;if(x&&!(typeof T.mimeTypes!=b&&T.mimeTypes[P]&&!T.mimeTypes[P].enabledPlugin)){x=x.replace(/^.*\s+(\S+\s+\S+$)/,"$1");AC[0]=parseInt(x.replace(/^(.*)\..*$/,"$1"),10);AC[1]=parseInt(x.replace(/^.*\.(.*)\s.*$/,"$1"),10);AC[2]=/r/.test(x)?parseInt(x.replace(/^.*r(.*)$/,"$1"),10):0}}else{if(typeof j.ActiveXObject!=b){var y=null,AB=false;try{y=new ActiveXObject(p+".7")}catch(t){try{y=new ActiveXObject(p+".6");AC=[6,0,21];y.AllowScriptAccess="always"}catch(t){if(AC[0]==6){AB=true}}if(!AB){try{y=new ActiveXObject(p)}catch(t){}}}if(!AB&&y){try{x=y.GetVariable("$version");if(x){x=x.split(" ")[1].split(",");AC=[parseInt(x[0],10),parseInt(x[1],10),parseInt(x[2],10)]}}catch(t){}}}}var AD=T.userAgent.toLowerCase(),r=T.platform.toLowerCase(),AA=/webkit/.test(AD)?parseFloat(AD.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,q=false,z=r?/win/.test(r):/win/.test(AD),w=r?/mac/.test(r):/mac/.test(AD);/*@cc_on q=true;@if(@_win32)z=true;@elif(@_mac)w=true;@end@*/return{w3cdom:v,pv:AC,webkit:AA,ie:q,win:z,mac:w}}();var L=function(){if(!h.w3cdom){return }f(H);if(h.ie&&h.win){try{K.write("<script id=__ie_ondomload defer=true src=//:><\/script>");J=C("__ie_ondomload");if(J){I(J,"onreadystatechange",S)}}catch(q){}}if(h.webkit&&typeof K.readyState!=b){Z=setInterval(function(){if(/loaded|complete/.test(K.readyState)){E()}},10)}if(typeof K.addEventListener!=b){K.addEventListener("DOMContentLoaded",E,null)}R(E)}();function S(){if(J.readyState=="complete"){if(J.parentNode)J.parentNode.removeChild(J);E()}}function E(){if(e){return }if(h.ie&&h.win){var v=a("span");try{var u=K.getElementsByTagName("body")[0].appendChild(v);u.parentNode.removeChild(u)}catch(w){return }}e=true;if(Z){clearInterval(Z);Z=null}var q=o.length;for(var r=0;r<q;r++){o[r]()}}function f(q){if(e){q()}else{o[o.length]=q}}function R(r){if(typeof j.addEventListener!=b){j.addEventListener("load",r,false)}else{if(typeof K.addEventListener!=b){K.addEventListener("load",r,false)}else{if(typeof j.attachEvent!=b){I(j,"onload",r)}else{if(typeof j.onload=="function"){var q=j.onload;j.onload=function(){q();r()}}else{j.onload=r}}}}}function H(){var t=N.length;for(var q=0;q<t;q++){var u=N[q].id;if(h.pv[0]>0){var r=C(u);if(r){N[q].width=r.getAttribute("width")?r.getAttribute("width"):"0";N[q].height=r.getAttribute("height")?r.getAttribute("height"):"0";if(c(N[q].swfVersion)){if(h.webkit&&h.webkit<312){Y(r)}W(u,true)}else{if(N[q].expressInstall&&!A&&c("6.0.65")&&(h.win||h.mac)){k(N[q])}else{O(r)}}}}else{W(u,true)}}}function Y(t){var q=t.getElementsByTagName(Q)[0];if(q){var w=a("embed"),y=q.attributes;if(y){var v=y.length;for(var u=0;u<v;u++){if(y[u].nodeName=="DATA"){w.setAttribute("src",y[u].nodeValue)}else{w.setAttribute(y[u].nodeName,y[u].nodeValue)}}}var x=q.childNodes;if(x){var z=x.length;for(var r=0;r<z;r++){if(x[r].nodeType==1&&x[r].nodeName=="PARAM"){w.setAttribute(x[r].getAttribute("name"),x[r].getAttribute("value"))}}}t.parentNode.replaceChild(w,t)}}function k(w){A=true;var u=C(w.id);if(u){if(w.altContentId){var y=C(w.altContentId);if(y){M=y;l=w.altContentId}}else{M=G(u)}if(!(/%$/.test(w.width))&&parseInt(w.width,10)<310){w.width="310"}if(!(/%$/.test(w.height))&&parseInt(w.height,10)<137){w.height="137"}K.title=K.title.slice(0,47)+" - Flash Player Installation";var z=h.ie&&h.win?"ActiveX":"PlugIn",q=K.title,r="MMredirectURL="+j.location+"&MMplayerType="+z+"&MMdoctitle="+q,x=w.id;if(h.ie&&h.win&&u.readyState!=4){var t=a("div");x+="SWFObjectNew";t.setAttribute("id",x);u.parentNode.insertBefore(t,u);u.style.display="none";var v=function(){u.parentNode.removeChild(u)};I(j,"onload",v)}U({data:w.expressInstall,id:m,width:w.width,height:w.height},{flashvars:r},x)}}function O(t){if(h.ie&&h.win&&t.readyState!=4){var r=a("div");t.parentNode.insertBefore(r,t);r.parentNode.replaceChild(G(t),r);t.style.display="none";var q=function(){t.parentNode.removeChild(t)};I(j,"onload",q)}else{t.parentNode.replaceChild(G(t),t)}}function G(v){var u=a("div");if(h.win&&h.ie){u.innerHTML=v.innerHTML}else{var r=v.getElementsByTagName(Q)[0];if(r){var w=r.childNodes;if(w){var q=w.length;for(var t=0;t<q;t++){if(!(w[t].nodeType==1&&w[t].nodeName=="PARAM")&&!(w[t].nodeType==8)){u.appendChild(w[t].cloneNode(true))}}}}}return u}function U(AG,AE,t){var q,v=C(t);if(v){if(typeof AG.id==b){AG.id=t}if(h.ie&&h.win){var AF="";for(var AB in AG){if(AG[AB]!=Object.prototype[AB]){if(AB.toLowerCase()=="data"){AE.movie=AG[AB]}else{if(AB.toLowerCase()=="styleclass"){AF+=' class="'+AG[AB]+'"'}else{if(AB.toLowerCase()!="classid"){AF+=" "+AB+'="'+AG[AB]+'"'}}}}}var AD="";for(var AA in AE){if(AE[AA]!=Object.prototype[AA]){AD+='<param name="'+AA+'" value="'+AE[AA]+'" />'}}v.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'+AF+">"+AD+"</object>";i[i.length]=AG.id;q=C(AG.id)}else{if(h.webkit&&h.webkit<312){var AC=a("embed");AC.setAttribute("type",P);for(var z in AG){if(AG[z]!=Object.prototype[z]){if(z.toLowerCase()=="data"){AC.setAttribute("src",AG[z])}else{if(z.toLowerCase()=="styleclass"){AC.setAttribute("class",AG[z])}else{if(z.toLowerCase()!="classid"){AC.setAttribute(z,AG[z])}}}}}for(var y in AE){if(AE[y]!=Object.prototype[y]){if(y.toLowerCase()!="movie"){AC.setAttribute(y,AE[y])}}}v.parentNode.replaceChild(AC,v);q=AC}else{var u=a(Q);u.setAttribute("type",P);for(var x in AG){if(AG[x]!=Object.prototype[x]){if(x.toLowerCase()=="styleclass"){u.setAttribute("class",AG[x])}else{if(x.toLowerCase()!="classid"){u.setAttribute(x,AG[x])}}}}for(var w in AE){if(AE[w]!=Object.prototype[w]&&w.toLowerCase()!="movie"){F(u,w,AE[w])}}v.parentNode.replaceChild(u,v);q=u}}}return q}function F(t,q,r){var u=a("param");u.setAttribute("name",q);u.setAttribute("value",r);t.appendChild(u)}function X(r){var q=C(r);if(q&&(q.nodeName=="OBJECT"||q.nodeName=="EMBED")){if(h.ie&&h.win){if(q.readyState==4){B(r)}else{j.attachEvent("onload",function(){B(r)})}}else{q.parentNode.removeChild(q)}}}function B(t){var r=C(t);if(r){for(var q in r){if(typeof r[q]=="function"){r[q]=null}}r.parentNode.removeChild(r)}}function C(t){var q=null;try{q=K.getElementById(t)}catch(r){}return q}function a(q){return K.createElement(q)}function I(t,q,r){t.attachEvent(q,r);d[d.length]=[t,q,r]}function c(t){var r=h.pv,q=t.split(".");q[0]=parseInt(q[0],10);q[1]=parseInt(q[1],10)||0;q[2]=parseInt(q[2],10)||0;return(r[0]>q[0]||(r[0]==q[0]&&r[1]>q[1])||(r[0]==q[0]&&r[1]==q[1]&&r[2]>=q[2]))?true:false}function V(v,r){if(h.ie&&h.mac){return }var u=K.getElementsByTagName("head")[0],t=a("style");t.setAttribute("type","text/css");t.setAttribute("media","screen");if(!(h.ie&&h.win)&&typeof K.createTextNode!=b){t.appendChild(K.createTextNode(v+" {"+r+"}"))}u.appendChild(t);if(h.ie&&h.win&&typeof K.styleSheets!=b&&K.styleSheets.length>0){var q=K.styleSheets[K.styleSheets.length-1];if(typeof q.addRule==Q){q.addRule(v,r)}}}function W(t,q){var r=q?"visible":"hidden";if(e&&C(t)){C(t).style.visibility=r}else{V("#"+t,"visibility:"+r)}}function g(s){var r=/[\\\"<>\.;]/;var q=r.exec(s)!=null;return q?encodeURIComponent(s):s}var D=function(){if(h.ie&&h.win){window.attachEvent("onunload",function(){var w=d.length;for(var v=0;v<w;v++){d[v][0].detachEvent(d[v][1],d[v][2])}var t=i.length;for(var u=0;u<t;u++){X(i[u])}for(var r in h){h[r]=null}h=null;for(var q in swfobject){swfobject[q]=null}swfobject=null})}}();return{registerObject:function(u,q,t){if(!h.w3cdom||!u||!q){return }var r={};r.id=u;r.swfVersion=q;r.expressInstall=t?t:false;N[N.length]=r;W(u,false)},getObjectById:function(v){var q=null;if(h.w3cdom){var t=C(v);if(t){var u=t.getElementsByTagName(Q)[0];if(!u||(u&&typeof t.SetVariable!=b)){q=t}else{if(typeof u.SetVariable!=b){q=u}}}}return q},embedSWF:function(x,AE,AB,AD,q,w,r,z,AC){if(!h.w3cdom||!x||!AE||!AB||!AD||!q){return }AB+="";AD+="";if(c(q)){W(AE,false);var AA={};if(AC&&typeof AC===Q){for(var v in AC){if(AC[v]!=Object.prototype[v]){AA[v]=AC[v]}}}AA.data=x;AA.width=AB;AA.height=AD;var y={};if(z&&typeof z===Q){for(var u in z){if(z[u]!=Object.prototype[u]){y[u]=z[u]}}}if(r&&typeof r===Q){for(var t in r){if(r[t]!=Object.prototype[t]){if(typeof y.flashvars!=b){y.flashvars+="&"+t+"="+r[t]}else{y.flashvars=t+"="+r[t]}}}}f(function(){U(AA,y,AE);if(AA.id==AE){W(AE,true)}})}else{if(w&&!A&&c("6.0.65")&&(h.win||h.mac)){A=true;W(AE,false);f(function(){var AF={};AF.id=AF.altContentId=AE;AF.width=AB;AF.height=AD;AF.expressInstall=w;k(AF)})}}},getFlashPlayerVersion:function(){return{major:h.pv[0],minor:h.pv[1],release:h.pv[2]}},hasFlashPlayerVersion:c,createSWF:function(t,r,q){if(h.w3cdom){return U(t,r,q)}else{return undefined}},removeSWF:function(q){if(h.w3cdom){X(q)}},createCSS:function(r,q){if(h.w3cdom){V(r,q)}},addDomLoadEvent:f,addLoadEvent:R,getQueryParamValue:function(v){var u=K.location.search||K.location.hash;if(v==null){return g(u)}if(u){var t=u.substring(1).split("&");for(var r=0;r<t.length;r++){if(t[r].substring(0,t[r].indexOf("="))==v){return g(t[r].substring((t[r].indexOf("=")+1)))}}}return""},expressInstallCallback:function(){if(A&&M){var q=C(m);if(q){q.parentNode.replaceChild(M,q);if(l){W(l,true);if(h.ie&&h.win){M.style.display="block"}}M=null;l=null;A=false}}}}}();