

/*******************************************************/
/*************  SLIDING TRAY CONTROLLER CODE ***********/
/*******************************************************/	
	var isIE = (/MSIE/.test(navigator.userAgent));
	var trayAdjusted = false;
	
	function toggleSlidingTray(){
		var boxFooter = document.getElementById('mipBoxFooterImage');
		if(boxFooter.src.indexOf('NoTray') > -1){
			boxFooter.style.cursor = 'default';
			return;
		}else if(boxFooter.src.indexOf('Show') > -1){
			boxFooter.src = boxFooter.src.replace('Show', 'Hide');
			boxFooter.style.cursor = 'pointer';
			document.getElementById('mipTrayContainer').style.display = 'none';
			document.getElementById('mipTrayFooter').style.display = 'none';
		}else{
			boxFooter.src = boxFooter.src.replace('Hide', 'Show');
			boxFooter.style.cursor = 'default';
			document.getElementById('mipTrayContainer').style.display = 'block';
			document.getElementById('mipTrayFooter').style.display = 'block';
			
			calibrateDropDownTray();
		}
	}


	function calibrateDropDownTray(){
		window.status = 'ran it';
		if(!trayAdjusted){
			var trayEntries = document.getSubElementsByClassName(document.getElementById('mipTrayContainer'), 'mipTrayEntry');
			
			for(var i = 0; i < trayEntries.length; i++){
				var onMapContainer = document.getSubElementsByClassName(trayEntries[i], 'ddOnMapSymbolHolder')[0];
				
				if(isIE){
					if(trayEntries[i].offsetHeight <= 35){continue;}
				}else{
					var contentContainers = trayEntries[i].getElementsByTagName('SPAN');
					var colorContainer = trayEntries[i].getElementsByTagName('DIV');
					
					if(onMapContainer != null){
						onMapContainer.style.left = '-38px';
						onMapContainer.style.top = '-46px';
						onMapContainer.getElementsByTagName('DIV')[0].style.left = '0px';
					}
										
					if(contentContainers[0].offsetHeight != contentContainers[1].offsetHeight){
						var heightDifference = Math.abs(parseInt(contentContainers[0].offsetHeight) - parseInt(contentContainers[1].offsetHeight)) - 10;
						trayEntries[i].style.height = parseInt(trayEntries[i].offsetHeight) + heightDifference + 'px';					
						colorContainer[0].style.height = parseInt(trayEntries[i].offsetHeight) + heightDifference + 'px';
						trayEntries[i].style.marginBottom = '15px';
					}else{
						continue;
					}
				}						
				onMapContainer.style.marginTop = (isIE)?'-12px':'-17px';
			}			
			trayAdjusted = true;
		}
	}


/*******************************************************/
/*************  LOCATION DATA DISPLAYING CODE **********/
/*******************************************************/

	
	function loadLocation(locationID){
		var xmlNode = document.getElementById('locationXML');							
		var locations = xmlNode.getElementsByTagName('location');	
					
		var selectedLocation = determineSelectedLocation(locations, locationID);				
		bindLocationToListingFields(selectedLocation);
		bindLocationToImageFields(selectedLocation);
		
		document.getElementById('quickPrintLink').href = document.getElementById('quickPrintLink').href.substring(0, document.getElementById('quickPrintLink').href.lastIndexOf('=')+1) + locationID; 
		document.getElementById('openInANewWindowLink').href = document.getElementById('openInANewWindowLink').href.substring(0, document.getElementById('openInANewWindowLink').href.lastIndexOf('=')+1) + locationID;
		
		toggleSlidingTray();
	}
	
	
	function determineSelectedLocation(locations, locationID){
		for(var i = 0; i < locations.length; i++){
			if(locations[i].getAttribute('id') == locationID){
				return locations[i];}
		}
	}			
	
	function bindLocationToListingFields(selectedLocation){	
		var selectedTrayLocation = document.getElementsByName(selectedLocation.getAttribute('id'))[0];
				
		//Assign values from the selected location
		document.getElementById('businessName').innerHTML = selectedLocation.getAttribute('name');
		document.getElementById('phoneNumber').innerHTML = getXMLNodeValue(selectedLocation, 'phone');
		
		var addressCityText = getXMLNodeValue(selectedLocation, 'addressLine1');
		var addressLine2 = getXMLNodeValue(selectedLocation, 'addressLine2');
		var city = getXMLNodeValue(selectedLocation, 'city');
		if(addressCityText.length > 0 && addressLine2.length > 0){addressCityText += ', ' + addressLine2;}
		if(addressCityText.length > 0 && city.length > 0){addressCityText += ', ' + city;}
		
		document.getElementById('addressCity').innerHTML = addressCityText;
		document.getElementById('listingDescription').innerHTML = unescape(getXMLNodeValue(selectedLocation, 'description'));
		
		if(getXMLNodeValue(selectedLocation, 'showThirdLine') == 'True'){
			document.getElementById('mapDescriptionHolder').style.display = 'block';
			document.getElementById('mapDescriptionHolder').className = getXMLNodeValue(selectedLocation, 'color');
			document.getElementById('mapDescription').innerHTML = getXMLNodeValue(selectedLocation, 'mapName');
		}else{
			document.getElementById('mapDescriptionHolder').style.display = 'none';			
		}
		
		if(getXMLNodeValue(selectedLocation, 'website') == ''){
			document.getElementById('website').style.display = 'none';
		}else{
			document.getElementById('website').style.display = 'block';
			document.getElementById('website').href = getXMLNodeValue(selectedLocation, 'website');
			document.getElementById('website').innerHTML = getXMLNodeValue(selectedLocation, 'websiteLinkLabel');
		}
		
		if(document.getSubElementsByClassName(selectedTrayLocation.parentNode, 'ddOnMapSymbolHolder').length > 0){
			document.getElementById('onMapSymbolHolder').style.display = 'block';
			document.getElementById('onMapCode').innerHTML = getXMLNodeValue(selectedLocation, 'onMapCode');
			
			document.getElementById('onMapShapeImage').src = document.getSubElementsByClassName(selectedTrayLocation.parentNode, 'onMapShapeImage')[0].src;
			document.getElementById('onMapShapeColorContainer').className = getXMLNodeValue(selectedLocation, 'color') + 'Background';
			
			document.getElementById('mapIndicator').style.display = 'block';
			document.getElementById('mapIndicator').className = getXMLNodeValue(selectedLocation, 'color');
			document.getElementById('mapIndicator').innerHTML = 'Map ' + getXMLNodeValue(selectedLocation, 'mapIndicator');
			
			document.getElementById('onMapSymbolLink').href = '/interactiveMap/interactiveMap.aspx?np=5&nc=20&do=2&dr=' + getXMLNodeValue(selectedLocation, 'mapID') + '&businessLocationID=' + selectedLocation.getAttribute('id');
			document.getElementById('listingLink').href = document.getElementById('onMapSymbolLink').href;	
			document.getElementById('listingLink').style.display = 'block';
			
			var pageStyleRule = document.getStyleSheetRule('business.css', '.'+getXMLNodeValue(selectedLocation, 'color'));
			if(pageStyleRule != null){document.getElementById('onMapSymbolHolder').style.borderColor = pageStyleRule.style.color;}
		}else{
			document.getElementById('onMapSymbolHolder').style.display = 'none';
			document.getElementById('mapIndicator').style.display = 'none';
			document.getElementById('listingLink').style.display = 'none';
		}
	}			
	
	
	function getXMLNodeValue(parentNode, childNodeName){
		var returnText = '';
		if(navigator.userAgent.indexOf('MSIE') > -1){
			returnText = parentNode.getElementsByTagName(childNodeName)[0].text;
		}else{
			returnText = parentNode.getElementsByTagName(childNodeName)[0].innerHTML;}
		
		var textIsDirty = true;
		var cycles = 0;
		while(textIsDirty && cycles < 100){
			returnText = returnText.replace('&lt;br&gt;', '<br>');
			returnText = returnText.replace('&lt;br &gt;', '<br>');
			returnText = returnText.replace('&amp;nbsp;', '&nbsp;');
			returnText = returnText.replace('&amp;', '&');
			
			textIsDirty = ((returnText.indexOf('&lt;') > -1 && returnText.indexOf('&gt;') > -1) || returnText.indexOf('&amp;nbsp;') > -1 || returnText.indexOf('&amp;') > -1);
			cycles++;
		}
		
		return returnText;
	}
	
	
	function bindLocationToImageFields(selectedLocation){
		var imageTypes = selectedLocation.getElementsByTagName('type');
		var imagePaths = selectedLocation.getElementsByTagName('filePath');
		//var images = selectedLocation.getElementsByTagName( ((navigator.userAgent.indexOf('MSIE') > -1)?'image':'img') );
				
		//Remove the ad and all coupons
		displayAdImage('/moreInfo/images/pix.gif');
		var coupons = document.getElementsByClassName('coupon');
		for(var i = 0; i < coupons.length; i++){coupons[i].parentNode.removeChild(coupons[i]);}
		
		//Display the images	
		for(var i = 0; i < imagePaths.length; i++){
			var imageType = imageTypes[i].firstChild.nodeValue;
			var imageFilePath = imagePaths[i].firstChild.nodeValue;
			
			switch(imageType){
				case '1':
				case '3':
					displayAdImage(imageFilePath);
					break;
				case '2':
				case '4':
					displayCouponImage(imageFilePath);
					break;
			}
		}
		
		enforceProperLayoutForAdSize();				
	}
	
	
	function displayAdImage(filePath){
		try{
			document.getElementById('adImage').src = filePath;
			document.getElementById('adImage').onload = enforceProperLayoutForAdSize;
		}catch(e){}
	}
	
	function displayCouponImage(filePath){
		var couponHolder = document.createElement('DIV');
		document.getElementById('couponContainer').appendChild(couponHolder);
		couponHolder.className = 'coupon';
		
		var couponImage = document.createElement('IMG');
		couponHolder.appendChild(couponImage);
		couponImage.src = filePath;
	}	


	/***********************************************************************
	*********	NEW CODE FOR MAKING MAP LINKS IN MIP TRAY	****************
	***********************************************************************/
	
	function makeLocationLink(linkHREF, locationID){
		var xmlNode = document.getElementById('locationXML');							
		var locations = xmlNode.getElementsByTagName('location');	
					
		var selectedLocation = determineSelectedLocation(locations, locationID);			
		linkHREF += getXMLNodeValue(selectedLocation, 'mapID') + '&businessLocationID=' + selectedLocation.getAttribute('id');
		
		return linkHREF;
	}
	

