var sldownElement = false;

// инициализация событий для элементов
var initialization = function(){
	$('sidebar2')
		.select('ul li')
		.each( function(menuElm){
			if( !menuElm.hasClassName('slup') &&! menuElm.hasClassName('sldown') ) return;
			if( menuElm.hasClassName('slup') ) sldownElement = menuElm;
			menuElm
				.firstDescendant()
				.observe('mouseover', function(){ menuElm.addClassName('hover')})
				.observe('mouseout', function(){ menuElm.removeClassName('hover')})
				.observe('click', slClick);
		});
}

// открываем или закрываем меню
var slClick = function slClick(e){
	e.stop();
	if(mBlocker) return;
	mBlockerSet()
	var hElm = e.element();
	if(hElm.tagName.toLowerCase()!='h2') hElm=hElm.up();
	var menuElm = hElm.up();
	var slaider = menuElm.select('.slaider')[0];
	if( menuElm.hasClassName('sldown') )
	{
		menuElm
			.removeClassName('sldown')
			.addClassName('slup');
		if(sldownElement!==0){
			sldownElement
				.removeClassName('slup')
				.addClassName('sldown');
			var blindUpElement = sldownElement.select('.slaider')[0];
			sldownElement = menuElm;
			new Effect.Parallel([
				new Effect.BlindUp(blindUpElement, { sync: true}), 
				new Effect.BlindDown(slaider, { sync: true }) 
			], { 
				ransition: Effect.Transitions.linear,
				duration: eDuration,
				fps: eFps,
				afterFinish: mBlockerUnSet
			});
		}
		else
		{
			sldownElement=menuElm;
			var efDown = new Effect.BlindDown(slaider, {
				ransition: Effect.Transitions.linear,
				duration: eDuration,
				fps: eFps,
				afterFinish: mBlockerUnSet
			});
		}
	}
	else
	{
		sldownElement=0;
		menuElm
			.removeClassName('slup')
			.addClassName('sldown');
		var efUp = new Effect.BlindUp(slaider,{
			transition: Effect.Transitions.linear,
			duration: eDuration,
			fps: eFps,
			afterFinish: mBlockerUnSet
		});
	}
}

function mBlockerSet(){
	 mBlocker = true;
	$('sidebar2')
		.select('ul li')
		.each( function(menuElm){
			if( !menuElm.hasClassName('slup') &&! menuElm.hasClassName('sldown') ) return;
			menuElm.addClassName('blocker');
		});
}
function mBlockerUnSet(){
	 mBlocker = false;
	$('sidebar2')
		.select('ul li')
		.each( function(menuElm){
			if( !menuElm.hasClassName('slup') &&! menuElm.hasClassName('sldown') ) return;
			menuElm.removeClassName('blocker');
		});
}

// setup
var eDuration = .5;
var eFps  = 30;
var mBlocker = false;

//zzzzzzzzzzzzzz
// Service
function trim(str)
{
    var re = /^\s*(\S*(\s+\S+)*)\s*$/;
    var newstr = str.replace(re, "$1");
    return newstr;
}

// Submit Form (ASP Style)
function cWebForm_PostBackOptions(eventTarget, eventArgument, validation, validationGroup, actionUrl, trackFocus, clientSubmit) {
    this.eventTarget = eventTarget;
    this.eventArgument = eventArgument;
    this.validation = validation;
    this.validationGroup = validationGroup;
    this.actionUrl = actionUrl;
    this.trackFocus = trackFocus;
    this.clientSubmit = clientSubmit;
}

function cWebForm_DoPostBackWithOptions(options) {
    var validationResult = true;
    if (options.validation) {
        if (typeof(Page_ClientValidate) == 'function')
            validationResult = Page_ClientValidate(options.validationGroup);
    }
    if (validationResult)
    {
        if ((typeof(options.actionUrl) != "undefined") && (options.actionUrl != null) && (options.actionUrl.length > 0))
        {
            theForm.action = options.actionUrl;
        }
    }
    if (options.clientSubmit)
        __doPostBack(options.eventTarget, options.eventArgument);
}

