/*******************************************************************************

	@version: $Id: subMenu002.js,v 1.0 2006/04/24 03:44:31 rkv Exp $

	свитчер для меню.
	добавляет открытие подменю при нажатии на соответствующую ссылку.
	Сохраняет состояние вложенности в куках (подоменно, кука имеет вид sw_open_\d ==(1|0), где:
		\d = число,  порядковый номер переключателя, начиная с нуля.
    1 = меню открыто.
    0 = меню закрыто.
		)
	каждый переключатель (ссылка) имеет уникальный id вида menuSwitch\d, где \d -
	порядковый номер переключателя, начиная с нуля

  (c) Kostia Romanov (aka Kildor), 2006, скрипт предназначен для использования только в системе сайтов e-Gloryon.

*******************************************************************************/


function setGlobalOnLoad(f) {
	var root = window.addEventListener || window.attachEvent ? window : document.addEventListener ? document : null
	if (root){
		if(root.addEventListener) root.addEventListener("load", f, false)
		else if(root.attachEvent) root.attachEvent("onload", f)
		}
	else {
		if(typeof window.onload == 'function') {
			var existing = window.onload
			window.onload = function() {
				existing()
				f()
				}
			}
		else {
			window.onload = f
			}
		}
	}
function addHandler(object, event, handler) {
	if (typeof object.addEventListener != 'undefined')
	  object.addEventListener(event, handler, false);
	else if (typeof object.attachEvent != 'undefined')
		object.attachEvent('on' + event, handler);
	else {
		var handlersProp = '_handlerStack_' + event;
		var eventProp = 'on' + event;
		if (typeof object[handlersProp] == 'undefined') {
  		object[handlersProp] = [];
		  if (typeof object[eventProp] != 'undefined')
    		object[handlersProp].push(object[eventProp]);
  		object[eventProp] = function(e) {
    		var ret = true;
    		for (var i = 0; ret != false && i < object[handlersProp].length; i++)
      		ret = object[handlersProp][i](e);
    		return ret;
  			}
			}
		object[handlersProp].push(handler);
		}
	}

setGlobalOnLoad(function(){
  var pM = document.getElementById('pageMenu');
  r='';
  var j = 0;
  startSubExpand(pM, j);
	window.startSubExpand='';
	});
function startSubExpand (pM, id__ ) {
	for (var i=0; i<pM.childNodes.length; i++) {
		if (pM.childNodes[i].nodeType==1 && pM.childNodes[i].tagName.toLowerCase()=='a'&&
			pM.childNodes[i+2]&&pM.childNodes[i+2].tagName && pM.childNodes[i+2].tagName.toLowerCase()=='div'&&
			pM.childNodes[i+2].className=='submenu' ) {
				plus = document.createElement('span');
				if (1== get_cookie('sw_'+pM.childNodes[i].id) ) {
					pM.childNodes[i].setAttribute('expand', 'true');
					plus.appendChild (document.createTextNode('- '));
					pM.childNodes[i+2].style.display='block';
					}
				else {
				pM.childNodes[i].setAttribute('expand', 'false');
					plus.appendChild (document.createTextNode('+ '));
					pM.childNodes[i+2].style.display='none';
					}
				pM.childNodes[i].insertBefore(plus,pM.childNodes[i].firstChild);
				//addHandler(plus, 'click', function(){return false;});
				addHandler(pM.childNodes[i], 'click', show____);
				i++;
			}
		else if (pM.childNodes[i].nodeType==1 && pM.childNodes[i].tagName.toLowerCase()=='div'&&
			pM.childNodes[i].className=='submenu'
			) {
				startSubExpand(pM.childNodes[i],id__);
				}
		}
	}
function  show____ (e) {
	if ( e.target ) {
		target = e.target; // catch
		}
	else {
		target= e.srcElement;
		}
	if ( target.tagName.toLowerCase()=='span' ) {
		target = target.parentNode;
		}
	if ( target.getAttribute('expand')=='false' ) {
		target.setAttribute('expand', 'true');
		target.expand='true';
		target.firstChild.innerHTML = '- ';
		subMenu = target.nextSibling.nextSibling;
		if ( subMenu.className == 'submenu' ) {
			set_cookie('sw_'+target.id,'1');
			subMenu.style.display = 'block';
			if ( e.preventDefault ) {
				e.preventDefault();
				}
			return false;
			}
		}
	else {
		target.setAttribute('expand', 'false');
		target.firstChild.innerHTML = '+ ';
		subMenu = target.nextSibling.nextSibling;
		if ( subMenu.className == 'submenu' ) {
			subMenu.style.display = 'none';
			set_cookie('sw_'+target.id,'0');
			if ( e.preventDefault ) {
				e.preventDefault();
				}
			return false;
			}

		}
	}

