var topNavSelection = {
	initialize : function() {
		var navElements = $$('#categorymenu li a');
		var selectedTopCategoryID = $('currentlySelectedTopCategoryId');
		var selectedCategoryID = $('currentlySelectedCategoryId');
		var selectedContentID = $('currentlySelectedContentId');
		var selectedContentFolderID = $('currentlySelectedContentFolderId');
		var selectedSpecialCategory = $('currentlySelectedSpecialCategory');
		var selectedPipeline = $('currentlySelectedPipeline');

		for (var i = 0; i < navElements.length; i++) {
			var element = navElements[i];
			var params = element.href.toQueryParams();
			// when cgid was not found as a parameter
			// try to parse it from the url
			if((!("cgid" in params) || params.cgid == "") && element.href.match(/([^/]*),[^,]*,sc\.html/)) {
				params.cgid = RegExp.$1;
			}
			// same for cid
			if((!("cid" in params) || params.cgid == "") && element.href.match(/([^/]*),[^,]*,pg\.html/)) {
				params.cid = RegExp.$1;
			}
			// same for fdid
			if((!("fdid" in params) || params.cgid == "") && element.href.match(/([^/]*),[^,]*,pg\.html/)) {
				params.fdid = RegExp.$1;
			}
			if (element.href.endsWith('#')) {
				params.cgid = null;
				params.cid = null;
				params.fdid = null;
				isByAttributeSearch = false;
			}

			// category
			if (params.cgid && selectedTopCategoryID && (selectedTopCategoryID.value == params.cgid || selectedCategoryID.value == params.cgid)) {
				if (!selectedSpecialCategory && (element.text !='SALE' && element.text != 'NEW')) {
					element.up().addClassName('active');
					
				}
			}
			if (params.cid && selectedContentID && selectedContentID.value == params.cid) {
				element.up().addClassName('active');
			}
			if (params.fdid && selectedContentFolderID && selectedContentFolderID.value == params.fdid) {
				element.up().addClassName('active');
			}
			
			// special category selection (NEW/SALE)
			if ((selectedSpecialCategory && element.href.indexOf(selectedSpecialCategory.value) != -1) && (element.innerHTML.match(/SALE\S{2}/) || element.innerHTML.match(/NEW\S{2}/))) {
				element.up().addClassName('active');
			}
			if( (selectedSpecialCategory && selectedSpecialCategory.value.match(/sale\S{2}/)) &&  element.innerHTML.match(/SALE\S{2}/)){
				element.up().addClassName('active');
			}
			if( (selectedSpecialCategory &&  selectedSpecialCategory.value.match(/new\S{2}/)) &&  element.innerHTML.match(/NEW\S{2}/)){
				element.up().addClassName('active');
			}
			
			if (selectedPipeline && element.href.indexOf(selectedPipeline.value) != -1) {
				element.up().addClassName('active');
			}
			
		}
	}
};
if ('observe' in document) {
	document.observe('dom:loaded', function() {
		topNavSelection.initialize();
	});
}
