		function doHashString(data) {
			if(data['assortmentProductId'] > 0 && data['shopGroupId'] > 0) {
				/* product page for sg */
				doProductId(data['assortmentProductId'], data['shopGroupId']);
			} else if(data['assortmentProductId']) {
				/* product page */
				doProductId(data['assortmentProductId']);
			} else if(data['shopGroupId']) {
				/* sg page */
				doShopGroupId(data['shopGroupId']);
			} else if(data['searchphrase'] && data['searchType']) {
				/* search page */
				doAjaxShopBrowserSearch(data['searchphrase'], data['searchType']);
				if(document.searchForm) {
					document.searchForm.searchphrase.value = decodeURIComponent(data['searchphrase']);
					setRadioValueChecked(document.searchForm.searchType, data['searchType']);
				}
			} else {
				/* default root page */
				doShopGroupId();
			}
		}

		function doShopGroupId(id) {
			if(document.deviceForm) {
				document.deviceForm.shopGroupId.value = id;
				document.deviceForm.assortmentProductId.value = '';
				doAjaxShopBrowserUpdate();
				addHistoryEntry('shopGroupId', id);
				return false;
			} else {
				return true;
			}
		}

		function doProductId(id, shopGroupId) {
			if(document.deviceForm) {
				document.deviceForm.assortmentProductId.value = id;
				document.deviceForm.shopGroupId.value = shopGroupId;
				addHistoryEntry('assortmentProductId', id, 'shopGroupId', shopGroupId);
				doAjaxShopBrowserUpdate();
				return false;
			} else {
				return true;
			}
		}

		function doAjaxShopBrowserUpdate(disableTopScroll) {
			if(!disableTopScroll){
				$('html,body').animate({
					scrollTop: $("#shopBrowserTopPlaceholder").offset().top
				}, 200);
			}
			ajax_do('shopBrowserContent', 'doShopBrowserContent', convertFormValuesIntoString('deviceForm'), '', 'shopBrowserWaiting', true);
		}

		function doAjaxShopBrowserSearch(searchphrase, searchType, searchWithinMainCategory){
			if(typeof searchWithinMainCategory=='undefined'){
				searchWithinMainCategory='';
			}
			$('html,body').animate({
				scrollTop: $("#shopBrowserTopPlaceholder").offset().top
			}, 200);
			addHistoryEntry('searchphrase', searchphrase, 'searchType', searchType, 'searchWithinMainCategory', searchWithinMainCategory);
			ajax_do('shopBrowserContent', 'doShopBrowserSearch', 'searchphrase='+searchphrase+'&searchType='+searchType+'&searchWithinMainCategory='+searchWithinMainCategory , '', 'shopBrowserWaiting', true);
		}

		function doShopGroupSelect(id,name,startLevel,updateElement){
			document.shopGroupForm.shopGroupId.value=id;
			document.shopGroupForm.selectName.value=name;
			document.shopGroupForm.startLevel.value=startLevel;

			if(updateElement){
				ajax_do_ssl(updateElement,'getShopGroupSelects',convertFormValuesIntoString('shopGroupForm'));
			} else {
				ajax_do_ssl(name,'getShopGroupSelects',convertFormValuesIntoString('shopGroupForm'));
			}
		};
