

function moveFadeMenu(domArray_index, finY, currY, currOpacity){

	currY -= 1
	document.getElementById(kidNodes[domArray_index].id).style.top = currY + 'px'
	

	try {
		testBrawser = new ActiveXObject ("Microsoft.XMLHTTP")
		currOpacity += 4
		document.getElementById(kidNodes[domArray_index].id).style.filter = "progid:DXImageTransform.Microsoft.Alpha(Opacity=" + currOpacity + ")";
	}
	catch(err) {
		//alert(err)
		currOpacity += 0.04
		document.getElementById(kidNodes[domArray_index].id).style.opacity = currOpacity
	}


	var h = setTimeout("moveFadeMenu(" + domArray_index + "," + finY + "," + currY + "," + currOpacity + ")", 25)
	if (currY < finY){
		clearTimeout(h)
		try {
			document.getElementById(kidNodes[domArray_index].id).style.filter = "";
		}
		catch(err){}
	}

	if (currY == -6){
		domArray_index++
		if (domArray_index < kidNodes.length)
			h = setTimeout("moveFadeMenu(" + domArray_index + ", -20, 0, 0)", 25)
	}	
}


function menuInit(){
	//posKids(popup_type, globus)	
	points_w = new Array()
	w = 0
	
	domMenuBox = document.getElementById('id_0_kids')
	kidNodes = new Array()
	for (i=0; i<domMenuBox.childNodes.length; i++)
		if (domMenuBox.childNodes[i].nodeType == 1)
			kidNodes.push(domMenuBox.childNodes[i])

	/* Count half of summ of points width*/	
	for (i=0; i<kidNodes.length; i++)
		w += kidNodes[i].offsetWidth
	half_w = Math.ceil(w/2)
	/* */
	
	/* search point - first of second line (var k)*/
	w = 0
	for (i=0; i<kidNodes.length; i++){
		points_w[i] = Math.abs(half_w - w)
		w += kidNodes[i].offsetWidth
	}
	
	tmp_min = half_w
	for (key in points_w)
		if (points_w[key] < tmp_min){
			k = key
			tmp_min = points_w[key]
		}
	k *= 1	

	

	
	function intervalPoints(domsArray, addCSS){
		var w = 0
		var last_idx = domsArray.length - 1
		for (var i=0; i<=last_idx; i++){
			w += domsArray[i].offsetWidth
			domsArray[i].className += ' ' + addCSS
		}
		
		/* ***	Left-Right padding	*** */
		/*
		var padd_float = (domsArray[0].parentNode.offsetWidth - w) / (last_idx * 2)
		padd = Math.round(padd_float)
		domsArray[0].style.paddingRight = padd + 'px'
		d = padd_float - padd

		for (i=1; i<last_idx; i++){
			padd = Math.round(padd_float + d)
			domsArray[i].style.paddingLeft = padd + 'px'
			d = padd_float - padd
			
			padd = Math.round(padd_float + d)
			domsArray[i].style.paddingRight = padd + 'px'
			d = padd_float - padd
		}		
		
		// this code-string can be use for "Right padding variant too"
		domsArray[last_idx].style.paddingLeft = domsArray[0].parentNode.offsetWidth - domsArray[last_idx].offsetLeft - domsArray[last_idx].offsetWidth - 1 + 'px'
		*/
		/* *** */
		
		
		/* Right padding */
		var padd_float = ((domsArray[0].parentNode.offsetWidth - w) / last_idx) - 1
		padd = Math.round(padd_float)
		
		domsArray[0].style.paddingRight = padd + 'px'
		d = padd_float - padd

		for (i=1; i<last_idx; i++){
			padd = Math.round(padd_float + d)
			
			domsArray[i].style.paddingRight = padd + 'px'
			d = padd_float - padd
		}
		/* *** */
		
	}
	
	line_1_array = kidNodes.slice(0, k)
	line_2_array = kidNodes.slice(k)
	
	intervalPoints(line_1_array)
	intervalPoints(line_2_array, 'second_line')
	
	domMenuBox.parentNode.style.visibility = 'visible'
	
	moveFadeMenu(0, -20, 0, 0)
	
	
	topMenu = new classMenu('id_0', 'topMenu', globus)
	botleftMenu = new classMenu('id_A', 'botleftMenu', globus_bot_left)
	botrightMenu = new classMenu('id_B', 'botrightMenu', globus_bot_right)
}


function classMenu(menu_id, objName, idsArray){

	this.dom = domRecent = document.getElementById(menu_id)
	var recentID = domRecent.id 	
	
	this.dom.onmouseover = function(event){
		
		if (self.hT) clearTimeout(hT)

		_event  = event || window.event
		_target = _event.target || _event.srcElement

		
		while(!_target.id) 
			_target = _target.parentNode 
		
		
		targetID = _target.id

		if (targetID.indexOf('kids')!=-1 || _target == domRecent || _target == this)
			return false
        
        // set correct z-index for `old` branch `0` and for current (actual) branch - `1`
		for (var key in idsArray[recentID]) document.getElementById(idsArray[recentID][key]).style.zIndex = 0			
		for (var key in idsArray[targetID]) document.getElementById(idsArray[targetID][key]).style.zIndex = 1

		remStyle(domRecent, 'point_hover')
		addStyle(_target, 'point_hover')

		if (hide_branch = arrayDiff(idsArray[recentID], idsArray[targetID])){
			for (i=0; i<hide_branch.length; i++)	
				if (kids = document.getElementById(hide_branch[i] + '_kids'))
					kids.style.visibility = 'hidden'
		}

		if (kids = document.getElementById(targetID + '_kids'))
			kids.style.visibility = 'visible'

		domRecent = _target
		recentID  = targetID // or `recentID=domRecent.id`
	}		
	
	this.dom.onmousedown = function(event){
		remStyle(_target, 'point_hover')
		addStyle(_target, 'point_active')
		
		if (self.external_links[targetID])
			self.location = external_links[targetID]
		else
			self.location = 'index.php?active=' + targetID
	} 

	this.hideRecentGen = function (recent_id, domThis){
		for (var key in idsArray[recent_id])
			if (kids = document.getElementById(idsArray[recent_id][key] + '_kids'))
				kids.style.visibility = 'hidden'

		for (i=0; i<idsArray[recentID].length; i++)
			document.getElementById(idsArray[recentID][i]).style.zIndex = 0
		
		remStyle(domRecent, 'point_hover')
		
		//domRecent = domMenu
		//domRecent = topMenu.dom
		domRecent = this.dom
	}
	
	
	var menu_type = 1 

	this.dom.onmouseout = function(event){
		if (menu_type){ 
			hT = setTimeout(objName + '.hideRecentGen("' + recentID + '")', 300)
		}
	} 	
	
}
