var sYear = '2009'; 
var searchType = '';
var searchTypes = new Array('quicksearch', 'advancedsearch');
var countryType = 0;
var isCountryGeoCoded = 0;
var startQS = '';
var inProgress = false;
var searchLatLon = '';
var FormVars = new Array();
var currentPage = 1;
var isPrintWindow = 0;
var isAllMiadidasStores = 0;
var isAllOnlineStores = 0;
var isCheckStoreTypeError = 0;
var startIndex = 1;
var totalCount = 0;
var totalRecordCount = 0;
var recordsPerPage = 10;
var totalPages = 0;
var countryEnglishCompleteName = '';
var distance_unit = 'km';
var max_distance = 10;
var sLastCountryCode = '';
var countryCode = '';
var store_locator_country = '';
var store_locator_language = '';
var store_locator_brand = '';
var is_initial_search = false;
var labels = new Object();
var messages = new Object();
var oActiveStoreObject = new Object();
var oCountryFilters = new Object();
var oSearchObject = new Object();
var rightCaption = "";
var lastActiveTab = "tabAllStores";
var lastActiveDetailTab = "";
var bEnableIDSearchTracking = true;
var bInitApplication = true;
var bIdSearchEnabled = true;
var initStoreLocatorId = undefined;
var preview = 0;
var miadidas = 0;
var sSearchReturnFields =  "bizname,mallname,street,town,pc,phone,email,url,id,lat,lon,GeoQuality,feature5,feature6,feature7,adidascom_url,client_id";
var aAdditionalReturnFields = new Array();
var timeToRestore = 45000;
var bPreventFormReset = false;
var mapOrDriving = "mapPage";
var searcher = undefined;
var search = undefined;
var funcRef = undefined;
var pathBrand = "";
var bShowDistance = true;
var aMap2MobileCountries = new Array("de", "us");
var aDisabledRoutingCountries = new Array('cn');
var sSlFilter = "";
var aLoadStack;
var bRefinedSearch = false;
var browserError = false;
var hint = '';
var iCount = 0;
var iRouteType = 0;
var bMap2Mobile = false;
var iStateSelectorMandatory = 0;

var aPresetStaticFilter = new Array();
	aPresetStaticFilter['heritage'] = new Array('originals');
	aPresetStaticFilter['performance'] = new Array();
	
var aPreloadImages = new Array();
	aPreloadImages.push('img/paging_firstsite_o.gif');
	aPreloadImages.push('img/paging_previoussite_o.gif');
	aPreloadImages.push('img/paging_nextsite_o.gif');
	aPreloadImages.push('img/paging_lastsite_o.gif');
	aPreloadImages.push('images/mm_button-x.gif');
	aPreloadImages.push('images/mm_east.gif');
	aPreloadImages.push('images/mm_west.gif');
	aPreloadImages.push('images/mm_north.gif');
	aPreloadImages.push('images/mm_south.gif');
	aPreloadImages.push('images/mm_open_poi.gif');
	aPreloadImages.push('images/mm_close_poi.gif');
	aPreloadImages.push('images/mm_zoomin.gif');
	aPreloadImages.push('images/mm_zoomout.gif');

function initApplication(sLanguage, sCountry)
{
	if(store_locator_brand == "heritage") {
		pathBrand = "originals";
	} else {
		pathBrand = "performance";	
	}
	
	//showOverlay(1);
	hitbox("StoreFinderLandingPage", new Date().getTime());
	setupKeyListeners();
	
	isAllMiadidasStores = 0;
	isAllOnlineStores = 0;
	lastActiveTab = "tabAllStores";
	lastActiveDetailTab = "";
	countryCode = (sCountry) ? sCountry : store_locator_country;
	store_locator_language = sLanguage;
	bInitApplication = true;
	bIdSearchEnabled = true;
	oSearchObject = {};
	searcher = undefined;
	search = undefined;	
	bRefinedSearch = false;
	aAdditionalReturnFields = new Array();

	$("content-inner").innerHTML = "";
	$("search-area").innerHTML = "";

	var contenthome = new Element('div', {id:'content-contenthome'});
		contenthome.appendChild(new Element('div', {id:'stores'}));
		contenthome.appendChild(new Element('div', {id:'miadidas'}));
		contenthome.appendChild(new Element('div', {id:'landingPages'}));
	$("content-inner").appendChild(new Element('div', {id:'content-tabtop-home'}));		
	$("content-inner").appendChild(contenthome);
	$("content-inner").appendChild(new Element('div', {id:'content-bottom'}));
	searchType = (sSlFilter.length > 0) ? 'advancedsearch' : searchType;
	
	aLoadStack = new Array("getSearchBoxHeader()", "getStartTeaser('stores')", "getStartTeaser('miadidas')", "getStartTeaser('landingPages')");
	workOffLoadStack();
}

function workOffLoadStack()
{
	if (aLoadStack.length > 0) {
		var nextFunc = aLoadStack.shift();
		eval(nextFunc);
	} else {
		preloadImages();
	}
}


function getSearchBoxHeader() 
{
	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: 'getSearchBoxHeader',
							initSearchType: searchType
						}, 
						onSuccess: setSearchBoxHeader, 
						onFailure: reportError
					}
				);
}

function setSearchBoxHeader(response) 
{	
	var data = getJsonData(response.responseText);
	
	$('search-area').innerHTML = data.html;
		
	if (data.js) {
		//globales Labelobjekt setzen
		eval(data.js);
		$("search-tabtop").update(labels['leftCaption'] + hint);
		$("content-tabtop-home").update(labels['rightCaption']);
		document.title = 'adidas ' + labels['leftCaption'] + hint;
	}
	swapSearchBox(searchType, true);
}

function swapSearchBox(psSearchType, pbInit) 
{
	if(psSearchType != searchType || pbInit)
	{
		var sPage = "StoreFinderSimpleSearch";
		if(psSearchType == "advancedsearch")
		{
			sPage = "StoreFinderAdvanceSearch";
		}
		hitbox(sPage, new Date().getTime());
		//bPreventFormReset = true;
		var mySearchType = psSearchType;
		var myCountry, myCity;
		
		if($('countryList') && $('city'))
		{
			myCountry = $F('countryList');
			//myCity = $F('city') // uebername der stadt ist nicht mehr gewuenscht
		}
	
		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: 'getSearchBoxContent',
								searchType: mySearchType,
								countryCode: countryCode,
								city: myCity
							}, 
							onSuccess: performSwapSearchBox, 
							onFailure: reportError
						}
					);
	}
}

function performSwapSearchBox(response) 
{
	var data = getJsonData(response.responseText);
	var container;
	iStateSelectorMandatory =  parseInt(data.iStateSelectorMandatory);
	if (data.js) {
		eval(data.js);
	}	
	
	if (data.searchType != searchType) {
		$(searchType).removeClassName('search-tab-active');
		$(searchType).addClassName('search-tab-inactive');
	}
	
	searchType = data.searchType;
	$(searchType).removeClassName('search-tab-inactive');
	$(searchType).addClassName('search-tab-active');

	if ($("search-tab-content")) {
		$("search-tab-content").innerHTML = data.html;
		
		if ($('city')) {
			$('city').selectedIndex = 0;
		}
	}
	
	if (bIdSearchEnabled) {
		bIdSearchEnabled = false;
		if (initStoreLocatorId.length > 0) {
			//showOverlay(1);
			performIdSearch(initStoreLocatorId);
			bEnableIDSearchTracking = false;
		}		
	}
	
	if ($('language-selector').childElements()) {
		$('language-selector').removeClassName('inactive');
		$('language-selector').addClassName('active');
	}
	
	if (browserError) {
		showSelectLists(false);	
	}
	workOffLoadStack();	
	changeCountry($F('countryList'), true);	
}

function getStartTeaser(psTeaser) 
{
	workOffLoadStack();	
	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,
							store_locator_brand: store_locator_brand,
							cmd: 'getTeaser',
							teaser: psTeaser
						}, 
						onSuccess: performGetStartTeaser,
						onFailure: reportError
					}
				);
}

function performGetStartTeaser(response) 
{
	var data = getJsonData(response.responseText);
	var container = $(data.container);
	if (data.html.length > 0) {
		container.innerHTML = data.html;
	} else {
		container.className = "inactive";
	}
	iCount++;
	if (iCount == 2) {
		if (miadidas == 1) {
			miadidas = 0;
			callMiadidasByName(store_locator_country)
		}				
	}
}

function preloadImages()
{
	$("preload").innerHTML = "";
	for(var i = 0; i < aPreloadImages.length; i++) {
		$("preload").appendChild(new Element('img', {src:aPreloadImages[i]}));
	}
}