
window.focus();

var mipReferencedWindow;

function identifyPartnerWindow(_win){
	mipReferencedWindow = _win;
	mipReferencedWindow.setMipWindow(window);}
		
try{
	if(window.opener != null && window.opener != undefined && window.opener.closed == false && window.opener.top.setMipWindow != undefined){
		identifyPartnerWindow(window.opener.top);}
}catch(e){}



var syncInterval = window.setInterval(debugWindowReferenceLoss, 1000);
function debugWindowReferenceLoss(){
	try{
		if(mipReferencedWindow == null || mipReferencedWindow == undefined || mipReferencedWindow.closed == true || mipReferencedWindow.setMipWindow == undefined){
		}else{
			mipReferencedWindow.setMipWindow(window);
		}
	}catch(e){}
}
		
			
									

/*******************************************************/
/****************  BEHAVIOUR BASED CODE ****************/
/*******************************************************/
var preloadedImages = new Array();
var mipRules = {
	'.mipTrayController': function(image){
		var boxFooter = document.getElementById('mipBoxFooterImage');
		if(boxFooter.src.indexOf('NoTray') > -1){boxFooter.style.cursor = 'default';}
		image.onclick = toggleSlidingTray;				
	},
	
	'#backNextMap AREA': function(link){
		link.onclick = function(){
			try{
				if(window.opener.top != null && window.opener.top != undefined && window.opener.top.startWindowSync != undefined){
					window.opener.top.startWindowSync(window);
				}else if(mipReferencedWindow != null && mipReferencedWindow != undefined && mipReferencedWindow.startWindowSync != undefined){
					mipReferencedWindow.startWindowSync(window);}
			}catch(e){}
		};
	},
	
	'.mipTrayEntry': function(layer){
		var locationLink = null;
		var links = layer.getElementsByTagName('A');
		for(var i = 0; i < links.length; i++){
			if(isNaN(parseInt(links[i].name))){continue;}
			else{locationLink = links[i];break;}
		}
		if(locationLink == null){return;}
		
		locationLink.href = makeLocationLink(locationLink.href, locationLink.name);
		locationLink.onclick = function(){loadLocation(parseInt(this.name));handleLinkClick(locationLink);return false;};
		
		var omc = document.getSubElementsByClassName(layer, 'onMapCode');
		var mi = document.getSubElementsByClassName(layer, 'ddMapIndicatorHolder');
		if(omc.length > 0){
			
			omc[0].parentNode.onclick = function(){simulateLinkClick(locationLink);};
			mi[0].onclick = function(){simulateLinkClick(locationLink);};
			
			omc[0].parentNode.onmouseover = function(){
					locationLink.className = locationLink.className + 'Inverse';
					locationLink.getElementsByTagName('DIV')[0].className = locationLink.className;};
			omc[0].parentNode.onmouseout = function(){
					locationLink.className = locationLink.className.replace('Inverse', '');
					locationLink.getElementsByTagName('DIV')[0].className = locationLink.className;};
		}
	},
	
	'#adImage': function(ad){enforceProperLayoutForAdSize();},
		
	'#onMapSymbolLink': function(link){
		if(link.href.charAt(link.href.length - 1) == '='){
			document.getElementById('onMapSymbolHolder').style.display = 'none';
		}else{
			document.getElementById('listingLink').href = link.href;	
			document.getElementById('listingLink').style.display = 'block';
		}			
		
		link.onclick = handleLinkClick;
		
		if(link != null){
			if(document.attachEvent){
				link.attachEvent('onmouseover', showMapClickMessage.bindAsEventListener(this));
				link.attachEvent('onmouseout', hideMapClickMessage.bindAsEventListener(this));
			}else{
				link.addEventListener('mouseover', showMapClickMessage.bindAsEventListener(this), false);
				link.addEventListener('mouseout', hideMapClickMessage.bindAsEventListener(this), false);
			}
		}
	},
	
	'#listingLink': function(link){		
		link.onclick = handleLinkClick;
	},
	
	
	'#helpLink': function(link){
		link.onclick = handleLinkClick;
	},
	
	'.mapLink': function(link){
		link.onclick = handleLinkClick;
	},
	
	'#homeLink': function(link){
		link.onclick = handleLinkClick;
	},
	
	'#website': function(link){
		var originalLink = new String(link.getAttribute('href', 2));
		if(originalLink.indexOf('http://') > -1){
			link.target = '_blank';
		}else if(originalLink.substr(0, 3) == 'www'){
			link.target = '_blank';
			link.setAttribute('href', 'http://' + originalLink);
		}else if(originalLink.toLowerCase().indexOf('/moreinfo.aspx') > -1){
			link.target = '';
		}else if(originalLink.toLowerCase().indexOf('loopertrolley') > -1){
			link.target = '';
		}else{
			link.target = 'mainWindow';}	
	},
	
	'#mapIndicator': function(holder){
		holder.onclick = function(){
			var link = $('onMapSymbolLink');
			if(link.click != undefined){
				link.click();
			}
		}
	},
	
	'#categoryName': function(holder){
		if(holder.innerHTML.indexOf('\\') > -1){
			if(holder.innerHTML.indexOf('&nbsp;\\&nbsp;') < 0){
				holder.innerHTML = holder.innerHTML.replace('\\', '&nbsp;\\&nbsp;');		
			}
		}
	},
	
	'.onMapSymbolHolder': function(elem){
		var pageStyleRule = document.getStyleSheetRule('business.css', '.'+elem.getElementsByTagName('A')[0].className);
		if(pageStyleRule != null){elem.style.borderColor = pageStyleRule.style.color;}
	},	
	
	'.ddOnMapSymbolHolder': function(link){	
		var linkChild = link.firstChild;
		if(linkChild == null){return;}
		if(linkChild.nodeName == '#text'){linkChild = linkChild.nextSibling;}
		
		var omc;
		var elems = document.getSubElementsByClassName(linkChild, 'onMapCode');
		if(elems.length > 0){omc = elems[0];}
		
		var pageStyleRule = document.getStyleSheetRule('business.css', '.'+linkChild.className.replace('NoRollover', ''));
		if(pageStyleRule != null && omc != null){omc.style.borderColor = pageStyleRule.style.color;}
	},
	
	
	'xml': function(dataIsland){
		var images = dataIsland.getElementsByTagName('image');
		
		for(var i = 0; i < images.length; i++){
			preloadedImages[i] = new Image();
			preloadedImages[i].src = getXMLNodeValue(images[i], 'filePath');
		}
			
		preloadImages();
	}
};


var mipPrintRules = {	
	'#firstLineLink': function(printStarter){
		enforceProperLayoutForAdSize(380);
		prepareForPrint();
	}
};



try{
	if(document.location.search.indexOf('startPrint') > -1){
		Behaviour.register(mipPrintRules);
	}else{
		Behaviour.register(mipRules);}
}catch(e){
	//Happened because the behaviour script is not loaded yet
	//Attempt to register after the page finishes loading
	var loadRules = (document.location.search.indexOf('startPrint') > -1) ? 'mipPrintRules' : 'mipRules';
	if(document.attachEvent){
		document.attachEvent('onload', new Function('try{Behaviour.register('+loadRules+');}catch(e){}'));
	}else{
		document.addEventListener('load', new Function('try{Behaviour.register('+loadRules+');}catch(e){}'), true);
	}
}
	


/*******************************************************/
/*************  PAGE DISPLAY AND LAYOUT CODE ***********/
/*******************************************************/


	function enforceProperLayoutForAdSize(largestWidth){
		if(largestWidth == null){largestWidth = 570;}
		if(document.getElementById('adImage') == undefined){return;}
		document.getElementById('pageContent').className = (document.getElementById('adImage').width > largestWidth) ? 'largeAd' : 'smallAd';
	}
			


	function preloadImages(){		
		//window.status += '.';
		for(var i = 0; i < preloadedImages.length; i++){
			if(!preloadedImages[i].complete)	{
					//window.status += i;
				window.setTimeout(preloadImages, 1000);
				return;
			}else if(window.navigator.appName == 'Microsoft Internet Explorer'){
				if(parseInt(preloadedImages[i].fileSize) <= 10){
					//window.status += i;
					window.setTimeout(preloadImages, 1000);
					return;}
			}				
		}
	}
		

	function prepareForPrint(){
		var ad = document.getElementById('adImage');
			
		if(ad.height > 730 || ad.width > 740){
			ad.src = ad.src.substring(0, ad.src.lastIndexOf('.')) + '_printImage' + ad.src.substring(ad.src.lastIndexOf('.'), ad.src.length);}		
		
		//calibrateDropDownTray();
		
		if(document.location.search.indexOf('startPrint=true')>-1){window.print();}	
	}





	function showMapClickMessage(e){		
		var mapClickMessage = document.getElementById('mapClickMessage');
		mapClickMessage.style.display = 'block';
		mapClickMessage.style.left = (parseInt(e.clientX) + 10) + 'px';
		mapClickMessage.style.top = (parseInt(e.clientY) + 10) + 'px';
	}
	
	function hideMapClickMessage(e){
		var mapClickMessage = document.getElementById('mapClickMessage');
		mapClickMessage.style.display = 'none';
	}
	





	function simulateLinkClick(link){
		if(link.click != null){
			link.click();
		}else{
			var eventObject = document.createEvent('MouseEvents');
			eventObject.initEvent('click', true, true);
			link.dispatchEvent(eventObject);
		}
	}


	function handleLinkClick(link){
		if(this.href != undefined){link = this;}
		try{
			if(mipReferencedWindow != null && mipReferencedWindow != undefined && mipReferencedWindow.closed == false){
				mipReferencedWindow.focus();
				mipReferencedWindow.header.processNavigationRequest(link.href);
			}else{
				window.open(link.href, 'mainWindow');
				window.close();}
		}catch(e){
			window.open(link.href, 'mainWindow');
			window.close();
		}		
		return false;
	}




