function getElementsByClass( searchClass, domNode, tagName) { 
  if (domNode == null) domNode = document;
  if (tagName == null) tagName = '*';
  var el = new Array();
  var tags = domNode.getElementsByTagName(tagName);
  var tcl = " "+searchClass+" ";
  for(i=0,j=0; i<tags.length; i++) { 
    var test = " " + tags[i].className + " ";
    if (test.indexOf(tcl) != -1) 
      el[j++] = tags[i];
  } 
  return el;
} 

function hideRegions() {
	var tabs = getElementsByClass('region');
	for(var i = 0; i < tabs.length; i++) 
		tabs[i].style.display = 'none';
}

function getSelectValue(selectElement) {
  var selectedIndex = selectElement.selectedIndex;
  return selectElement.options[selectedIndex].value;
}

function getForm() {
  return document.getElementById('regionsForm');
}

function getFormSubmit() {
  return document.getElementById('regionsFormSubmit');
}

function setFormAction(value) {
  getForm().action = value;
}

function selectRegion(selectElement, isProductPage) {
  var selectedValue = getSelectValue(selectElement);
  var selectedElement = document.getElementById(selectedValue);
  
  getFormSubmit().disabled = true;
  setFormAction('');
  //dbg(selectedElement);

  if (isProductPage && selectedElement) {
    var pathnameArray = location.pathname.split('/');
    var regions = getElementsByClass('region_href', selectedElement);
    var foundRegion = '';
    //dbg(regions);
    for (var i = 0; i < pathnameArray.length; i++) {
      var pathname = pathnameArray[i];
      if (pathname != '') {
        for (var j = 0; j < regions.length; j++) {
          var region = regions[j].innerHTML;
          //dbg(region);
          if (region.match(pathname)) {
            //dbg('Match, region: ' + region + ', pathname: ' + pathnameArray[i]);
            foundRegion = region;
            break;
          }
        }
        if (foundRegion != '')
          break;
      }
    }
    //dbg(foundRegion);
    if (foundRegion == '')
      dbg('Strona dystrybutora nie zostala znaleziona.');
    getFormSubmit().disabled = false;
    setFormAction(foundRegion);
  }
  else {
    hideRegions();
    
    if (selectedElement) {
      selectedElement.style.display = '';
    }
  }
}

function selectSubRegion(selectElement) {
  var selectedValue = getSelectValue(selectElement);
  setSubRegionValue(selectedValue);
}

function setSubRegionValue(value) {
  if (value != 'none') {
    getFormSubmit().disabled = false;
    setFormAction(value);
  }
  else {
    getFormSubmit().disabled = true;
    setFormAction('');
  }
}

function showMenuItem(currentMenuItem, index) {
	DusMenu.show(currentMenuItem, index);
}

function initMenuItem() {
	DusMenu.update();
}

$(function(){
	DusMenu.init([51418, 66509]);
});

DusMenu = {
	groupsData: {},
	initialized: false,
	
	init: function(groups) {
		for (var key in groups) {
			this.groupsData[groups[key]] = {
				chosen: false,
				wndo: false
			};
		}
		this.start();
		this.initialized = true;
	},
	
	start: function() {
		for (var gid in this.groupsData)
			this._start(gid);
	},
	
	_start: function(gid) {
		if (this.groupsData[gid].chosen !== false) {
			this._show(gid, this.groupsData[gid].chosen.currentMenuItem, this.groupsData[gid].chosen.index);
			return;
		}
		
		var groot = $('#unique_menu_id_' + gid);
		var menuItems = $('.menu_level2_picture', groot);
		
		for (var i = 0; i < menuItems.length; i++) {
			if (location.pathname.match( $('span', menuItems[i]).html() )) {
				this._show(gid, menuItems[i], i);
				return;
			}		    
		}
		
		if (typeof menuItems[0] != 'undefined')
			this._show(gid, menuItems[0], 0);
	},
	
	show: function(currentMenuItem, index) {
		if (!this.initialized)
			return;
		
		var gid = $(currentMenuItem).closest('ul.level1 > li.submenu').attr('id').replace('unique_menu_id_', '');
		this._show(gid, currentMenuItem, index);
	},
	
	_show: function(gid, currentMenuItem, index) {
		this.groupsData[gid].chosen = {
			currentMenuItem: currentMenuItem,
			index: index
		};
		var groot = $('#unique_menu_id_' + gid);
		var menuItems = $('.menu_level2_picture', groot);
		
		for (var i = 0; i < menuItems.length; i++) {
			menuItems[i].style.backgroundPosition = '100% 0%';
			menuItems[i].className = 'menu_level2_picture';
		}
		currentMenuItem.className += ' menu_level2_picture_current';
		currentMenuItem.style.backgroundPosition = '0% 100%';
		
		$('.level3_items', groot).hide();
		$('#level3_' +  $('.span_id', currentMenuItem).html() , groot).show();
		
		if (dw_scrollObj.isSupported) { 
			var scrollIndex = '_' + gid + '_' + (index + 1);
			this.groupsData[gid].wndo = new dw_scrollObj('x' + scrollIndex, 'y' + scrollIndex, 'z' + scrollIndex);
			this.groupsData[gid].wndo.setUpScrollControls('scrollLinks' + scrollIndex);
		}
	},
	
	update: function() {
		for (var gid in this.groupsData) {
			if (this.groupsData[gid].wndo !== false)
				this.groupsData[gid].wndo.updateDims();
		}
	}
};

