﻿var myDebugger;
var fields;
var Content;
var TabContent;
var sortKey = "";
var sortDir = "asc";
var buf;
var a = 0;
var b = 0;
var validGeoQualities = new Array("1","2","4","8","z9");
var order;
var citySelectList = new Array();
var oActiveCity = new Object();
var adidasStores = new Array();
var noAdidasStores = new Array();


String.prototype.trim = function()
{
	return this.replace(/^\s+|\s+$/g,"");
}


function showResult()
{
	cleanUpForm();
	Content = [];
	adidasStores = [];
	noAdidasStores = [];
	var aVisibleTabs = new Array();	
	
	try
	{
		var response = searcher;
		var iTotalCount = 0;
		inProgress = false;
		
		showError(false, false);			
		//alert("response: " +response.error_code)
		
		if(response.error_code)
		{
			showOverlay(0);
			if(response.error_code == "MM_GEOCODE_MULTIPLE_MATCHES")
			{	
				bRefinedSearch = true;
				var aTmpCityArr = new Array();
				citySelectList = new Array();
				
				/*
				var tmpSortKey = sortKey;
				sortKey = "address.display_name";
				response.result_set.sort(usort);
				sortKey = tmpSortKey;				
				*/
				//citySelectList = response.result_set;

				var sValue = "";
				var citySelect = new Element('select', {id:'select_cities', tabindex:3, onchange:"performSearch();"}).addClassName("select-long required");
					citySelect.appendChild(new Element('option', {value:sValue}).update(messages['confirmCity']));
				for(var a = 0; a < response.result_set.length; a++)
				{
					var region = !(response.result_set[a].address.region) ? "" : ", " + response.result_set[a].address.region;
					var fieldName = response.result_set[a].address.display_name + region;				
					// ASK: sollen doppelte Treffer hier rausgefiltert werden?
					//if(!aTmpCityArr.indexOf(fieldName) > -1)
					{
						sValue = response.result_set[a]["coords"]["lat"]+"|"+response.result_set[a]["coords"]["lon"];
						aTmpCityArr.push(fieldName);
						citySelectList.push(response.result_set[a]);
						citySelect.appendChild(new Element('option', {value:sValue}).update(fieldName));
					}	
				}
				$('MultipleMatchesContainer').removeClassName('inactive');
				$('MultipleMatchesContainer').addClassName('active');				
				$('MultipleMatchesContainer').innerHTML = "";
				$('MultipleMatchesContainer').appendChild(citySelect);
				$('select_cities').onchange = performSearch; //ie fix
				//showError(true, labels["refineRequired"]);				
			}
			else if(response.error_code == "MM_GEOCODE_NO_MATCHES")
			{
				showError(true, messages['noMatches']);
			}
			else
			{
				showError(true, messages['noMatches']);
			}
		}
		else if(response.record_sets[0].error)
		{
			showError(true, response.record_sets[0].error.error_explanation);
			showOverlay(0);
		}
		else if(response.record_sets[0].total_record_count == 0)
		{
			showError(true, messages['noMatches']);
			showOverlay(0);
		}		
		else
		{
			setStartQS();
			for(var i = 0; i < response.record_sets.length; i++)
			{
				iTotalCount = response.record_sets[i].totalRecordCount;
				
				if(iTotalCount > 0)
				{
					if(isAllMiadidasStores)
					{
						aVisibleTabs.push("tabMiadidasStores");
						Content = response.record_sets[i].records;
					}
					else
					{
						var aRecords = response.record_sets[i].records;
						aVisibleTabs.push("tabAllStores");
						
						var c = 0;
						var sZip = "";
						while(c < aRecords.length)
						{
							if(oSearchObject.filters.length == 0 || (oSearchObject.filters.length > 0 && getFilterMatch(aRecords[c]) ))
							{
								sZip = aRecords[c].pc;
								if(sZip && sZip != "")
								{
									if (sZip.length==4)
									{
										if ($('countryList'))
										{
											if($F('countryList').toLowerCase()=='de')
											{
												aRecords[c].pc = "0"+sZip;
											}
										} 
									}
								}							
								
								if(parseInt(aRecords[c].feature5) > 0)
								{
									aVisibleTabs.push("tabOutletStores");
								}
								if(parseInt(aRecords[c].feature6) > 0)
								{
									aVisibleTabs.push("tabAdidasStores");
									adidasStores.push(aRecords[c]);
								}
								else
								{
									noAdidasStores.push(aRecords[c]);
								}
								if (parseInt(aRecords[c].feature7) > 0)
								{
									aVisibleTabs.push("tabMiadidasStores");
								}
								Content.push(aRecords[c]);
							}
							c++;
						}
					}	
				}
				if(Content.length > 0)
				{
					getSearchResultFrame(aVisibleTabs);
				}
				else
				{
					showError(true, messages['noMatches']);
					showOverlay(0);					
				}
			}	
		} 
	}
	catch(E)
	{
		showSperre(false);
		//showOverlay(-1);
		var msg = '';
		if (this.error_code)
		{
			msg = "\n\n"+this.error_code;
		}
	}
}


function getFilterMatch(poObj)
{
	var i=0;
	while (i < oSearchObject.filters.length) 
	{
		if(parseInt(poObj[oSearchObject.filters[i]]) > 0)
		{
			return true;
		}
		i++;
	}	
	return false;
}


function getSearchResultFrame(paVisibleTabs)
{
	var bShowDistance = 0;
	if(Content && Content.length > 0)
	{
		if(getDistance(Content[0]).length > 0)
		{
			bShowDistance = 1;
		}
	}
	
	var url = 'service.asp';
	var ajax = new Ajax.Request
		(
			url,
			{
				method: 'get', 
				parameters: 
				{ 
					store_locator_country: store_locator_country, 
					store_locator_language: store_locator_language,
					showDistance: bShowDistance,
					sortBy: "",
					resultsPerPage: recordsPerPage,
					cmd: 'getSearchResultFrame', 
					countryCode: countryCode,
					tabs: paVisibleTabs.join(",")
				}, 
				onSuccess: setResultArea, 
				onFailure: reportError
			}
		);
}


function displayOnlineTab()
{
	isAllOnlineStores = 1;
	isAllMiadidasStores = 0;
	Content = [];
	countryCode = store_locator_country;
	//changeCountry(countryCode);
	getSearchResultFrame(new Array());
}


function setContentStatus(poContainer, piStatus)
{
	if(poContainer)
	{
		if(piStatus)
		{
			poContainer.className = "active";
		}
		else
		{
			poContainer.className = "inactive";
		}
	}
}


function setTabStatus(psTab, piStatus)
{
	if($(psTab))
	{
		if(piStatus == 1)
		{
			$(psTab).className = "active";		
		}
		else
		{
			$(psTab).removeClassName('active');
			if(psTab == "tabOnlineStores")
			{
				$(psTab).addClassName('onlinestores');
			}
			if(psTab == "tabStoreInfo")
			{
				$(psTab).addClassName('storeinfo');
			}			
		}
	}
	else
	{
		$("content-navigation").firstDescendant().firstDescendant().className = "active";
	}
}

function setResultArea(response) 
{
	bIsInitDisplay = true;
	var data = getJsonData(response.responseText);
	var sContent = data.content + data.onlinestores;
	
	if(sContent.length > 0)
	{	
		var tmp;
		
		if($('content-contenthome')) {
			tmp = $('content-contenthome').innerHTML;
		}
		
		$("content-inner").update(sContent);
		$("content-inner").appendChild(new Element('div', {id:'content-contenthome'}).update(tmp));
		$("content-inner").appendChild(new Element('div', {id:'content-bottom'}));
		showOverlay(1);
		
		var sStartTab = "tabAllStores"
		if(isAllMiadidasStores)
		{
			sStartTab = "tabMiadidasStores";
		}
		else if(isAllOnlineStores)
		{
			sStartTab = "tabOnlineStores";
		}
		
		lastActiveTab = sStartTab
		switchTab(sStartTab);
	}
	else
	{
		showOverlay(-1);
	}	
}


function switchTab(psTab)
{
	if(bIsInitDisplay || psTab !=lastActiveTab)
	{
		switch(psTab)
		{
			case 'tabStoreInfo':
				hitbox("StoreFinderShopInformation", new Date().getTime());
				break;
			case 'tabAllStores':
				hitbox("StoreFinderAllResults", new Date().getTime());
				break;
			case 'tabAdidasStores':
				hitbox("StoreFinderAdidasStores", new Date().getTime());
				break;
			case 'tabOutletStores':
				hitbox("StoreFinderFactoryOutlets", new Date().getTime());
				break;
			case 'tabMiadidasStores':
				hitbox("StoreFinderMiadidas", new Date().getTime());
				break;
			case 'tabOnlineStores':
				hitbox("StoreFinderOnlineStores", new Date().getTime());
				break;				
		}
	
		setTabStatus(lastActiveTab, 0);
		setTabStatus(psTab, 1);
		lastActiveTab = psTab;	
		
		if(psTab == "tabOnlineStores")
		{
			setContentStatus($('content-content'), 0);
			setContentStatus($('content-contentstore'), 1);
			setContentStatus($('content-contenthome'), 0);
			showOverlay(-1);
		}
		else if(psTab == "tabStoreInfo")
		{
			setContentStatus($('content-content'), 0);
			setContentStatus($('content-contentstore'), 0);
			setContentStatus($('content-contenthome'), 1);
			showOverlay(-1);			
		}
		else
		{
			setContentStatus($('content-content'), 1);
			setContentStatus($('content-contentstore'), 0);
			setContentStatus($('content-contenthome'), 0);
			getResultList(psTab)
		}
	}
}


function getResultList(psTab) 
{
	TabContent = new Array();	
	if(!psTab || psTab == "tabAllStores" || isAllMiadidasStores)
	{
		TabContent = Content;
	}
	else
	{
		var feature = "feature6";
		//alert("feature: " +feature)
		switch(psTab)
		{
			case "tabOutletStores":
				feature = "feature5";
			break;
			case "tabAdidasStores":
				feature = "feature6";
			break;
			case "tabMiadidasStores":
				feature = "feature7";
			break;						
		}
	
		var iCount = Content.length;
		for(var i = 0; i < iCount; i++)
		{
			if(Content[i][feature] > 0)
			{
				TabContent.push(Content[i]);
			}	
		}
	}

	var sStoreLabel = (TabContent.length == 1) ? labels["storeLabel"] : labels["storesLabel"];
	var aMatches = new Array();
		aMatches.push(TabContent.length);
		aMatches.push(sStoreLabel);
		aMatches.push(labels["storesFoundLabel"]);

	$("search-result-matches").update(aMatches.join(" "));
	sortResultList();
}


function sortResultList()
{
	//showOverlay(-1);
	//alert('sortResultList')
	if (TabContent.length > 0) {
		if ($("SortBy")) {
			sortKey = $F("SortBy");
		}
		if ((lastActiveTab == "tabAllStores" || lastActiveTab == "") && sortKey.length == 0) {
			// die sortierung ist fuer die darstellung der adidas-stores ganz oben in der ergebnisliste noetig
			if (TabContent[0]["distance"] != undefined) {
				sortKey = "feature6";
				sortDir = (store_locator_brand == 'heritage') ? 'desc' : 'asc';
				adidasStores.sort(usort);
				sortKey = "distance";
				sortDir = "asc";
				noAdidasStores.sort(usort);
			}
			TabContent = adidasStores.concat(noAdidasStores);
		} else if (lastActiveTab == "tabAdidasStores" && sortKey.length == 0) {
			sortKey = "feature6";
			sortDir = (store_locator_brand == 'heritage') ? 'desc' : 'asc';
			TabContent.sort(usort);
			sortDir = "asc";
		} else if (sortKey && sortKey.length > 0 && TabContent[0][sortKey] != undefined && TabContent[0][sortKey] != "") {
			TabContent.sort(usort);
		}
	}
	setSearchResults(null);
}


function setSearchResults(psPage)
{
	//alert("setSearchResult");
	$("content-searchresult").innerHTML = "";
	
	if ($('resultsPerPage')) {
		recordsPerPage = $F('resultsPerPage');
		var iLastPage = Math.ceil(TabContent.length / recordsPerPage);
	}
	
	var sLangLayerType; 
	
	switch (psPage)
	{
		case "printPage":
			currentPage = 1;
			sLangLayerType = "both";
			recordsPerPage = TabContent.length;
		break;
		case "nextPage":
			currentPage = Math.min((currentPage+1), iLastPage);
		break;
		case "previousPage":
			currentPage = Math.max((currentPage-1), 1);
		break;
		case "lastPage":
			currentPage = iLastPage;
		break;
		case "firstPage":
		default:
			currentPage = 1;
		break;
	}
	
	currentPage = (TabContent.length > 0) ? currentPage : 0;

	var iStart = (currentPage-1)*recordsPerPage;
	var iEnd = Math.min(Number(iStart)+Number(recordsPerPage), TabContent.length);

	if($("pageofpage"))
	{
		var sPageInfo = labels["pagesLabel"] + " " + currentPage + " " +labels["pagesOfLabel"] + " " + iLastPage;
		$("pageofpage").update(sPageInfo);
	}
	
	for (var i = iStart; i < iEnd; i++)
	{
		$("content-searchresult").appendChild(setResultLine(TabContent[i], i, psPage, sLangLayerType));
	}
	$("content-searchresult").appendChild(new Element('div').addClassName("clear-div"));
	$("content-searchresult").scrollTop = 0
	showOverlay(-1);
	window.setTimeout('showOverlay(-1)',50);
}

function setResultLine(poObj, i, psPage, sLangLayerType)
{
	var sAddress = labels['Address'] + " " + getAddress(poObj, sLangLayerType);
	var sDistance = getDistance(poObj);
		
	var wrap = new Element('div').addClassName("searchresult-block");
	var href = new Element('a', {href:'javascript:getDetails('+i+')', id:'resultline'+i});
	if(poObj['visited'])
	{
		href.className = 'visited';
	}

	var headline = 	new Element('p').addClassName("search-result-block-headline").update('<span>'+getLangLayer(poObj, 'bizname', sLangLayerType)+'</span>');

	var leftBlock = new Element('div').addClassName("searchresult-block-left");
	var address = 	new Element('p').addClassName("searchresult-block-address").update(sAddress);
		
	var rightBlock=	new Element('div').addClassName("searchresult-block-right");
	var distance =	new Element('p').addClassName("text-icon-distance").update(sDistance);
	var clear = 	new Element('div').addClassName("clear-div").update("&nbsp;");
		
	leftBlock.appendChild(headline);
	leftBlock.appendChild(address);
	rightBlock.appendChild(distance);

	if(psPage != "printPage" && psPage != "printMap")
	{
		href.appendChild(headline);
		href.appendChild(leftBlock);
		href.appendChild(rightBlock);
		wrap.appendChild(href);
	}
	else
	{
		wrap.appendChild(headline);
		wrap.appendChild(leftBlock);
		wrap.appendChild(rightBlock);
	}
	if(psPage != "printMap")
	{ 
		var sIcons = "";
		for (var key in oCountryFilters) 
		{
			if(parseInt(poObj[key]) > 0)
			{
				sIcons += '<img src="img/filtericons/icon_'+ key +'.jpg" alt="'+ oCountryFilters[key] +'" title="'+ oCountryFilters[key] +'"/>';
			}
		}	
		var icons = new Element('div').addClassName("filter-iconline").update(sIcons);	
		wrap.appendChild(icons);	
	}
	wrap.appendChild(clear);	
	return wrap;
}


function getAddress(poObj, sLangLayerType)
{
	var aAddress = new Array();
	if (poObj.street && poObj.street != "") {
		aAddress.push(getLangLayer(poObj, 'street', sLangLayerType));
	}
	if (poObj.pc && poObj.pc != "") {
		var cZip = poObj.pc;
		if ($('countryList')) {
			if ($F('countryList').toLowerCase()=='de' && cZip.length == 4) {
				cZip = "0"+cZip;
			}
		}			
		aAddress.push(cZip);
	}
	if (poObj.town && poObj.town != "") {
		aAddress.push(getLangLayer(poObj, 'town', sLangLayerType));
	}
	return aAddress.join(", ");
}


function getLangLayer(poObj, sField, sLangLayerType)
{
	var sReturn = poObj[sField];	
	var sSuffix = (store_locator_country == countryCode) ? store_locator_language : "en";
	var sFieldName = sField + '_' + sSuffix;
	var bLangLayer = (aAdditionalReturnFields.length > 0) ? true : false;
	if (bLangLayer && aAdditionalReturnFields.indexOf(sFieldName) != -1 && poObj[sFieldName] != "" && poObj[sFieldName] != undefined) {
		if (sLangLayerType == 'both') {
			sReturn += ' (' + poObj[sFieldName] + ')';
		} else {
			sReturn = poObj[sFieldName]
		}
	}
	return sReturn;
}


function getStoreImage(psId, psName, psImage, psStoreType)
{
 	var pattern = psName;
 	var psName = pattern.replace(/'/,"");
	
	var url = 'service.asp';
	var ajax = new Ajax.Request
				(
					url,
					{
						method: 'get', 
						parameters: 
						{ 
							store_locator_country: store_locator_country, 
							store_locator_language: store_locator_language, 
							cmd: 'getStorePicture', 
							storeid: psId,
							storename: psName,
							storeimage: psImage,
							storetype: psStoreType							
						}, 
						onSuccess: setStoreImage, 
						onFailure: reportError
					}
				);
}


function setStoreImage(response)
{
	var data = getJsonData(response.responseText);
	var img = $('storeimg');
	
	if(img)
	{
		img.appendChild(new Element('div', {id:'storeimg-bordertop'}).update('<img src="img/storeimg_bordertop.gif" alt="Border" />'));
		img.appendChild(new Element('div', {id:'storeimg-bordermain'})).update(data.html);
		img.appendChild(new Element('div', {id:'storeimg-borderbottom'}).update('<img src="img/storeimg_borderbottom.gif" alt="Border" />'));		
	}
}


function getDistance(poObj)
{
	var sDistance = "";
	if(poObj["distance"] && oSearchObject)
	{
		if(oSearchObject.address)
		{		
			if(oSearchObject.searchType == "advancedsearch")
			{
				if(oSearchObject.address.street || oSearchObject.address.postal_code)
				{
					sDistance = labels['distance'] + " " + poObj["distance"][distance_unit] +" "+distance_unit
				}
			}
			else if(oSearchObject.searchType == "quicksearch")
			{
				var qs = oSearchObject.address.qs;
				if(qs && qs.length > 0)
				{
					if(qs.split(",").length > 1)
					{
						sDistance = labels['distance'] + " " + poObj["distance"][distance_unit] +" "+distance_unit
					}
				}
			}		
		}
	}
	return sDistance;
}


function getDetails(piId) 
{
	if (!$('overlay-pattern-'+pathBrand)) {
		TabContent[piId]['visited'] = true;
		poObj = TabContent[piId];
		showSelectLists(false);
		showResultList(false);
		oActiveStoreObject = poObj;
		
		if (poObj.client_id) {
			hitboxLink('SFStoreDetailLink', 'StoreDetail_'+poObj.client_id);
		}
		
		if ($('resultline'+piId)) {
			$('resultline'+piId).className = 'visited';
		}
		
		var sDistance = getDistance(poObj);		
		
		var wrap = new Element('div', {id:'overlay-pattern-'+pathBrand});
			wrap.appendChild(new Element('div', {id:'disable_background'}));
			wrap.appendChild(new Element('div', {id:'overlay-pattern-bordertop-'+pathBrand}));
			var content = new Element('div', {id:'overlay-pattern-content-'+pathBrand});
				
				var contentLeft = new Element('div', {id:'searchmap-leftcontent'});
			
				var contentLeftTop = new Element('div', {id:'searchmap-leftcontent-tabtop'});
					var headline = new Element('h1').addClassName("class-h1-storelabel").update(getLangLayer(poObj, 'bizname'));
					contentLeftTop.appendChild(headline);
				
				var contentLeftContent = new Element('div', {id:'searchmap-leftcontent-content'});
					var img = new Element('div', {id:'storeimg'});
					var storeinfos = new Element('div', {id:'storeinformation'});
						storeinfos.appendChild(new Element('p', {id:'storeaddress-head'}).update(labels["Address"]));
						storeinfos.appendChild(new Element('p', {id:'storeaddress'}).update(getAddress(poObj)));
						if (poObj.mallname && poObj.mallname!="") {
							storeinfos.appendChild(new Element('p', {id:'mall'}).update(labels["mall"]+" "+poObj.mallname));
						}
						if (bShowDistance) {
							storeinfos.appendChild(new Element('p', {id:'storedistance'}).update(sDistance));
						}	
					var contactinfos = new Element('div', {id:'storecontactinformation'});
						contactinfos.appendChild(new Element('p', {id:'storeaddress-head'}).update(labels["contactInformation"]));
						var bShowContactInfos = false;
						if (poObj.phone && poObj.phone!="") {
							bShowContactInfos = true;
							contactinfos.appendChild(new Element('p', {id:'storephone'}).update(poObj.phone));
						}	
						if (poObj.fax && poObj.fax!="") {
							bShowContactInfos = true;
							contactinfos.appendChild(new Element('p', {id:'storefax'}).update(poObj.fax));
						}	
						if (poObj.email && poObj.email!="") {
							bShowContactInfos = true;
							contactinfos.appendChild(new Element('p', {id:'storemail'}).update('<a href="mailto:'+poObj.email+'" onclick="hitboxLink(\'SFEMailAddress\', \'EMailAddress_'+poObj.client_id+'\');" class="textlink">'+poObj.email+'</a>'));
						}	
						if (poObj.adidascom_url && poObj.adidascom_url!="") {
							bShowContactInfos = true;
							poObj.adidascom_url = 'http://' + poObj.adidascom_url.replace('http://', '');
							contactinfos.appendChild(new Element('p', {id:'storelink'}).update('<a href="'+poObj.adidascom_url+'" onclick="hitboxLink(\'SFConceptStoresDetails\', \'SFConceptStoresDetails_'+poObj.client_id+'\');" class="textlink" target="_blank">'+labels["csSite"]+'</a>'));
						}
						if (poObj.url && poObj.url!="") {
							bShowContactInfos = true;
							var url = 'http://' + poObj.url.replace('http://', '');
							contactinfos.appendChild(new Element('p', {id:'urllink'}).update('<a href="'+url+'" onclick="hitboxLink(\'SFHomepageAddress\', \'SFHomepageAddress_'+poObj.client_id+'\');" class="textlink" target="_blank">'+poObj.url+'</a>'));
						}
						
					var notes = new Element('div', {id:'detail-notes'});
						if (labels["detailNote"] && labels["detailNote"] != "") {
							notes.appendChild(new Element('span').update(labels["detailNote"]));
						}
						
					contentLeftContent.appendChild(img);
					contentLeftContent.appendChild(storeinfos);
					if (bShowContactInfos) {
						contentLeftContent.appendChild(contactinfos);
					}	
					contentLeftContent.appendChild(notes);					
				
				var contentRight = new Element('div', {id:'searchmap-rightcontent'});
	
				contentLeft.appendChild(contentLeftTop);
				contentLeft.appendChild(contentLeftContent);
				content.appendChild(contentLeft);
				content.appendChild(contentRight);
			
			wrap.appendChild(content);
			wrap.appendChild(new Element('div', {id:'overlay-pattern-borderbottom-'+pathBrand}));
			
			$('contentWrap').insertBefore(wrap, $('contentWrap').firstChild);
			
			lastActiveDetailTab = "";
			switchDetailTab('map');
			
			var sStoreType = "retail";
			switch (parseInt(poObj['feature6'])) 
			{
				case 1:
					sStoreType = "performance";
				break
				case 2:
					sStoreType = "originals"
				break;
			}
			var imgName = (poObj.image_name) ? poObj.image_name : "";
			getStoreImage(poObj.client_id, getLangLayer(poObj, 'bizname'), imgName, sStoreType);
	}
}


function switchDetailTab(psTab)
{
	if(psTab != lastActiveDetailTab)
	{
		lastActiveDetailTab = psTab;
		var content = $('searchmap-rightcontent');
	
		if(content)
		{
			content.innerHTML = "";
	
			var metaBtn, mapContent;		
			var navi = new Element('div', {id:'searchmap-rightcontent-navigation'});
			var navilist = new Element('ul', {id:'searchmap-rightcontent-navigation-list'});
			var sAction = 'Map';
			
			//ie6 fix fuer minimale tabbreite
			var cssWidthMap = (labels["map"].length < 10) ? 'style="width:expression(\'100px\');"' : '';
			var cssWidthRoute = (labels["routeBtn"].length < 10) ? 'style="width:expression(\'100px\');"' : '';
			
			switch (psTab)
			{
				case 'map':
					hitbox("StoreFinderMap", new Date().getTime());
					navilist.appendChild(new Element('li').update('<a href="javascript:switchDetailTab(\'map\');" class="list-active" '+cssWidthMap+'>'+ labels["map"] +'</a>'));
					
					var isValidGeo = isValidGeoQuality();
					if(isValidGeo && aDisabledRoutingCountries.indexOf($F('countryList')) == -1) {
						navilist.appendChild(new Element('li').update('<img src="img/searchmap_rightcontent_inactive_leftborder.gif" alt="Border" />'));
						navilist.appendChild(new Element('li').update('<a href="javascript:switchDetailTab(\'route\');" class="list-inactive" '+cssWidthRoute+'>'+ labels["routeBtn"] +'</a>'));
						navilist.appendChild(new Element('li').update('<img src="img/searchmap_rightcontent_inactive_rightborder.gif" alt="Border" />'));
						navilist.appendChild(new Element('li').update('<img src="img/searchmap_rightcontent_tabborder.gif" alt="Border" />'));
					} else {
						navilist.appendChild(new Element('li').update('<img src="img/searchmap_rightcontent_tabborder.gif" alt="Border" />'));
					}
					
					metaBtn = new Element('div', {id:'searchmap-rightcontent-option'}).update('&nbsp;');
					if(bMap2Mobile && aMap2MobileCountries.indexOf(store_locator_country) > -1 && isValidGeo) {
						metaBtn.appendChild(new Element('a', {href:'javascript:showMap2Mobile("' + store_locator_country + '");', onclick:'hitboxLink(\'SFMap2MobileButton\', \'map2Mobile\');'}).addClassName("link-getonmobile").update(labels["mobileBtn"]));	
					}

					mapContent = new Element('div', {id:'searchmap-rightcontent-map'});
					mapContent.appendChild(new Element('div', {id:'searchmapmain'}).addClassName("searchmapmain"));		
				break;
				case 'route':
					hitbox("StoreFinderDirections", new Date().getTime());
					navilist.appendChild(new Element('li').update('<a href="javascript:switchDetailTab(\'map\');" class="list-inactivefirst" '+cssWidthMap+'>'+ labels["map"] +'</a>'));
					navilist.appendChild(new Element('li').update('<img src="img/searchmap_rightcontent_inactive_rightborder.gif"" alt="Border" />'));
					navilist.appendChild(new Element('li').update('<a href="javascript:switchDetailTab(\'route\');" class="list-active" '+cssWidthRoute+'>'+ labels["routeBtn"] +'</a>'));
					navilist.appendChild(new Element('li').update('<img src="img/searchmap_rightcontent_tabborder.gif" alt="Border" />'));
					metaBtn = new Element('div');
					sAction = 'Directions';
					
					mapContent = new Element('div', {id:'searchdirections-whole'});
					var sAddressClass = (iRouteType > 0) ? 'searchdirections-address-route' : 'searchdirections-address-normal';
						var address = new Element('div', {id:'searchdirections-address'}).addClassName(sAddressClass);
							address.appendChild(new Element('p', {id:'sdir-starttext'}).update(labels["routeHeadline"]));
							address.appendChild(new Element('div', {id:'address-list'}));
							address.appendChild(new Element('input', {type:'text', id:'routeSearchAddress', value:labels["routeSearchAddress"], tabindex:'2'}).addClassName('input-text-searchaddress'));
							address.appendChild(new Element('a', {href: "javascript:searchRoute();", onclick:'hitboxLink(\'SFCalculateDirectionsButton\', \'CalculateDirections\');'}).addClassName("btn").update('<span><span>'+labels["searchRoute"]+'</span></span>'));
						var map = new Element('div', {id:'searchdirections-map'});
							map.appendChild(new Element('div', {id:'searchdirections-mapmain'}));
						var infos = new Element('div', {id:'searchdirections-extrainfo'});
						
					
						if (iRouteType > 0) {
							var routeMode = new Element('div', {id:'route-mode'});
									var routeModeDriving = new Element('label', {'for':'route-mode-driving'});
										routeModeDriving.appendChild(new Element('input', {id:'route-mode-driving', type:'radio', value:'driving', name:'route-mode'}));
										routeModeDriving.appendChild(new Element('span').update(labels["driving"]));
									var routeModeWalking = new Element('label', {'for':'route-mode-walking'});
										routeModeWalking.appendChild(new Element('input', {id:'route-mode-walking', type:'radio', value:'walking', name:'route-mode'}));
										routeModeWalking.appendChild(new Element('span').update(labels["walking"]));								
								
								routeMode.appendChild(routeModeDriving);
								routeMode.appendChild(routeModeWalking);
					
						address.appendChild(routeMode);
						}
						
					mapContent.appendChild(address);
					mapContent.appendChild(map);
					mapContent.appendChild(infos);
				break;
			}
			
			var optionBtn = new Element('div').addClassName("optionlist-right");				
				optionBtn.appendChild(new Element('div').update('<a href="javascript:openPrintPage(\''+ sAction +'\');" class="btn"><span><span>'+labels["printDialog"]+'</span></span></a>'));
				optionBtn.appendChild(new Element('div').update('<a href="javascript:closeDetails(\''+sAction+'\');" class="btn"><span><span>'+labels["close"]+'</span></span></a>'));
			
			navi.appendChild(navilist);
			navi.appendChild(optionBtn);
	
			content.appendChild(navi);
			content.appendChild(metaBtn);
			content.appendChild(mapContent);
		}
		if (psTab == 'route') {
			showRoute();
			if ($("route-mode-driving")) {
				$("route-mode-driving").checked = true;
			}
		} else {
			showMap();
		}
	}
}


function closeDetails(psAction)
{
	hitboxLink('SFCloseLayerButton', psAction);	
	var container = $('overlay-pattern-'+pathBrand);
	if(container)
	{
		$('contentWrap').removeChild(container);
	}	
	showSelectLists(true);
	showResultList(true);
}


// for ie6
function showSelectLists(pbStatus)
{
	var status = (pbStatus == true) ? '' : 'none';
	/*
	var selectLists = document.getElementsByTagName('select');
	// HIDE UNDERLYING SELECT LISTS
	for (var counter=0; counter < selectLists.length; counter++) {
		selectLists[counter].style.visibility = status;   
	}
	*/
	if (Prototype.Browser.IE && parseInt(navigator.userAgent.substring(navigator.userAgent.indexOf("MSIE")+5)) == 6) {
		$$(".mmselect").each(function(trigger, x) {
			trigger.style.display = status; 
		});
	}
}

function showResultList(pbStatus)
{
	var status = (pbStatus == true) ? 1 : 0;
	var container = $('content-searchresult');
	if (container) {
		setContentStatus(container, status);
		//$('content-searchresult').style.visibility = status;  
	}
}


function getStoreType(currData)
{
	return parseInt(currData['feature6']);
}


function setStartQS()
{
	startQS = "countryCode="+$F('countryList');
	if(searchLatLon.length > 0)
	{
		startQS += "&lat=" + searchLatLon.split("|")[1] + "&lon=" + searchLatLon.split("|")[2];
	}
	else
	{
		if ($('street') && $F('street').length>0 && $F('street') != labels['street'])
		{
			startQS += "&street=" + $F('street');
		}
		if ($('zip') && $F('zip').length>0 && $F('zip') != labels['zip'])
		{
			startQS += "&postalCode=" + $F('zip');
		}

		if ($("select_cities"))
		{
			var tmp = $F("select_cities").split("|");
			if (tmp[0].length>0)
			{
				startQS += "&city=" + tmp[0];
			}
			if (tmp[1].length>0)
			{
				startQS += "&region=" + tmp[1];
			}
		} 
		else if ($('city') && $F('city').length>0 && $F('city') != labels['city'])
		{
			startQS += "&city=" + $F('city');
		}
	}
}


function isMiadidasStore()
{
	var isMiadidas = false;

	if (fields['feature7'] == 1)
	{
		isMiadidas = true;
	}

	return isMiadidas;
}


function isValidGeoQuality()
{
	var isQuality = false;	
	if(oActiveStoreObject)
	{
		var currQuality = parseInt(oActiveStoreObject["GeoQuality"]);
		
		if (isNaN(currQuality))
		{
			currQuality = oActiveStoreObject["GeoQuality"];
		}
		
		if(validGeoQualities.indexOf(currQuality) > -1)
		{
			isQuality = true;
			if(currQuality == 4) 
			{
				if (document.getElementById("countryList")) 
				{
					if(document.getElementById("countryList").value.toLowerCase() != "uk")
					{
						isQuality = false;
					}
				} 
				else if(opener.document.getElementById("countryList") && opener.document.getElementById("countryList").value.toLowerCase() == 'uk')
				{
					isQuality = true;
				}
				else
				{
					isQuality = false;
				}			
			}
		}
		//alert(oActiveStoreObject["GeoQuality"]+"->"+currQuality+"  cc: " +$F('countryList') + " = " + isQuality );
	}
	return isQuality;
}