cArrowDownImgP	= "/userfiles/Image/common/arrowDown_p.jpg";   // Указатель движения контента вниз
cArrowDownImgA	= "/userfiles/Image/common/arrowDown_a.jpg"; // Указатель движения контента вниз
cArrowUpImgP	  = "/userfiles/Image/common/arrowUp_p.jpg";   // Указатель движения контента вверх
cArrowUpImgA	  = "/userfiles/Image/common/arrowUp_a.jpg";	 // Указатель движения контента вверх
cScrollBarImgP  = "/userfiles/Image/common/scrollBar_p.jpg"; // Указатель бегунка скролла активный
cScrollBarImgA  = "/userfiles/Image/common/scrollBar_a.jpg"; // Указатель бегунка скролла пассивный

cAcclContent		= 50; 					 // Пикселы приращения прокрутки, px
cAcclTimeout 		= 0.5;					 // Таймаут вызова обработчика прокрутки, сек


	function onLoadFinished() {
		// Обработка событий меню - получаем єлементы меню
		xGetElementsByClassName('menuText', null , "div" , addHandlerMenu);

			// Ленг-бар фокус
		xAddEventListener('mi1000', 'mouseover', itemMenuOver, true);
		xAddEventListener('mi1000', 'mouseout',  itemMenuOut, true);

		// Управление галеркой фокус
		xAddEventListener('mi2000gt', 'mouseover', galleryMenuOver, true);
		xAddEventListener('mi2000gt', 'mouseout',  galleryMenuOut, true);
		xAddEventListener('mi2000lt', 'mouseover', galleryMenuOver, true);
		xAddEventListener('mi2000lt', 'mouseout',  galleryMenuOut, true);

		drawMenuLine();

		contentScroll = new objContentScrollAdv("content_cms_outer", "content_cms", "scrollBar",
										 {id:"arrowUpImg", idBkg:"arrowUpImgBkg", a:cArrowUpImgA,p:cArrowUpImgP},
										 {id:"arrowDownImg", idBkg:"arrowDownImgBkg" ,a:cArrowDownImgA,p:cArrowDownImgP},
										 {id:"scrollBarImg", idBkg:"scrollBarImgBkg", a:cScrollBarImgA, p:cScrollBarImgP});

	}


// Объект скроллинга
// Скроллинг контента
var objContentScroll = Class.create();
objContentScroll.prototype = {
	initialize: function(outerId, 	  // Внешн. область - просмотр
						 innerId,	  // Внутр. область - контент
						 scrollId,    // Указатель скрол-бара
						 arrowUpImg,  // Объект   {id:"Стрелка вверх(вниз) - img", a:"Активное состояние" ,
						 arrowDownImg, // d:"Не активное состояние" [idBkg]:"Стрелка вверх(вниз) - подложка "}
						 scrollBarImg  // -//- картинка скролла
						 )
	{
		/* Исходные переменные */
		this.outerId = outerId;
		this.innerId =  innerId;
		this.scrollId = scrollId;
		this.arrowUpImg = arrowUpImg;
		this.arrowDownImg = arrowDownImg;
		this.scrollBarImg = scrollBarImg;
		/* Высота областей - расчитывается в show */
		this.outerHeight = 0;
		this.innerHeight = 0;
		/* Неактивные стрелки */
		$(this.arrowUpImg.id).src = this.arrowUpImg.p;
		$(this.arrowDownImg.id).src = this.arrowDownImg.p;
		$(this.scrollBarImg.id).src = this.scrollBarImg.p;
		/* Назначить обработчики */
		this.setHandlers();
		/* Показывать (не показывать скроллинг) */
		this.show();
		/* Таймер повторения */
		this.scrollRepeatTimer = null;
		/* Ускорение пикселов - можно задать внешней константой */
		this.acclContent = (typeof cAcclContent != "undefined") ? cAcclContent : 5;
		/* Интерал между повторением, если удерживается нажатой клавиша - сек
		 * можно задать внешней константой
		 * */
		this.acclTimeout = (typeof cRepeatTimeOut != "undefined") ? cAcclTimeout : 0.1;
		/* Индикатор перемещения и положения мыши */
		this.barIsMoved = false;
		this.barIsMouseOver = false;

	},
	/* Показывать (не показывать скроллинг) */
	show : function() {
		/* Необходимость в стрелках и скролл-баре */
		/* Расчет высоты, параметров */
		$(this.arrowUpImg.id).show();
		$(this.arrowDownImg.id).show();
		(this.needScroll()) ? $(this.scrollId).show() : $(this.scrollId).hide	();
		/* Если заданы картинки - подложки (фона), активируем */
		if (typeof this.arrowUpImg.idBkg != "undefined") {
			$(this.arrowUpImg.idBkg).show();
			$(this.arrowUpImg.idBkg).src = this.arrowUpImg.p;
		}
		if (typeof this.arrowDownImg.idBkg != "undefined") {
			$(this.arrowDownImg.idBkg).show();
			$(this.arrowDownImg.idBkg).src = this.arrowDownImg.p;
		}
		if (typeof this.scrollBarImg.idBkg != "undefined") {
			$(this.scrollBarImg.idBkg).show();
			$(this.scrollBarImg.idBkg).src = this.scrollBarImg.p;
		}


	},
	needScroll: function() {
		/* Необходимость в стрелках и скролл-баре */
		/* Расчет высоты, параметров */
		this.outerHeight = $(this.outerId).getHeight();
		this.innerHeight = $(this.innerId).getHeight();
		return (this.innerHeight > this.outerHeight);
	},
	/* Обработчики */
	setHandlers: function() {
		var self = this;
		/* Подсветка */
		Event.observe(this.arrowUpImg.id, 'mouseover', function() {self.arrowActive(self.arrowUpImg)});
		Event.observe(this.arrowUpImg.id, 'mouseout', function() {self.arrowPassive(self.arrowUpImg)});
		Event.observe(this.arrowDownImg.id, 'mouseover', function() {self.arrowActive(self.arrowDownImg)});
		Event.observe(this.arrowDownImg.id, 'mouseout', function() {self.arrowPassive(self.arrowDownImg)});

		Event.observe(this.scrollBarImg.id, 'mouseover', function() {this.barIsMouseOver = true; if(!self.barIsMoved) self.barActive()});
		Event.observe(this.scrollBarImg.id, 'mouseout', function() {this.barIsMouseOver = false;  if(!self.barIsMoved) self.barPassive()});

		/* Нажатие клавиш */
		Event.observe(this.arrowUpImg.id, 'mousedown', function() {self.scrollUp()});
		Event.observe(this.arrowUpImg.id, 'mouseup', function() {clearInterval(self.scrollRepeatTimer)});
		Event.observe(this.arrowDownImg.id, 'mousedown', function() {self.scrollDown()});
		Event.observe(this.arrowDownImg.id, 'mouseup', function() {clearInterval(self.scrollRepeatTimer)});
		/* Обработчик указателя скролл-бара */
		xEnableDrag(this.scrollBarImg.id, function() {self.barIsMoved = true;},
										  function(ele, dx, dy) {self.scrollBarChange(dy)},
										  function() {self.barIsMoved = false; if(!this.barIsMouseOver) self.barPassive();});
	},
	/* Изменение положение указателя скролл-бара */
	scrollBarChange: function(dy) {
		var newTop = xTop(this.scrollBarImg.id)+dy;
		var maxPos = xHeight(xParent(this.scrollBarImg.id)) - xHeight(this.scrollBarImg.id);

		newTop = (newTop < 0) ? 0 : newTop;
		newTop = (newTop > maxPos) ? newTop = maxPos : newTop ;
//		xMoveTo(this.scrollBarImg.id,xLeft(this.scrollBarImg.id),newTop);

		this.scrollBarPos(newTop / maxPos);
		this.contentOffset(newTop / maxPos);
	},
	/* Сдвинуть, установить указатель скролл-бара */
	scrollBarPos: function(pos) {
		var maxPos = xHeight(xParent(this.scrollBarImg.id)) - xHeight(this.scrollBarImg.id);
		xMoveTo(this.scrollBarImg.id,xLeft(this.scrollBarImg.id),Math.round(pos*maxPos));
		if (typeof this.scrollBarImg.idBkg != "undefined") {
			xMoveTo(this.scrollBarImg.idBkg,xLeft(this.scrollBarImg.idBkg),Math.round(pos*maxPos));
		}
	},
	/* Сдвинуть, установить просмотр контента */
	contentOffset: function(offset) {
		var maxOffset = Math.abs(this.innerHeight - this.outerHeight);
		xTop(this.innerId, -Math.round(offset*maxOffset));
	},
	/* Значение верхн. координаты внутр. элемента для расчета сдвига  */
	getInnerTop: function() {
		return xTop(this.innerId);
	},
	/* Подсветка стрелок - активный элемент или нет */
	arrowActive: function(arrow) {
		if (!this.canScrolling(arrow))
			return;
		$(arrow.id).src = arrow.a;
		$(arrow.id).setStyle({cursor:"pointer"});
	},
	/* Можем выполнять скроллинг или нет */
	canScrolling : function(arrow) {
		if (this.isBottom() && arrow == this.arrowDownImg ) {
			return false;
		}
		if (this.isTop() && arrow == this.arrowUpImg ) {
			return false;
		}
		return true;
	},
	/* Подсветка стрелок - пассивный элемент */
	arrowPassive: function(arrow) {
		if(!this.needScroll()) return;
		$(arrow.id).src = arrow.p;
		$(arrow.id).setStyle({cursor:"default"});
	},
	/* Подсветка скролл-бара - активный элемент */
	barActive: function() {
		if(!this.needScroll()) return;
		$(this.scrollBarImg.id).src = this.scrollBarImg.a;
	},
    /* Подсветка скролл-бара - пассивный элемент */
	barPassive: function() {
		$(this.scrollBarImg.id).src = this.scrollBarImg.p;
	},
	/* Прокрутка вниз */
	scrollDown: function() {
		if(!this.needScroll()) return;
		clearInterval(this.scrollRepeatTimer);
		if (this.isBottom())
			return;
		var innerTop = this.getInnerTop() - this.acclContent;
		(Math.abs(innerTop) + this.outerHeight > this.innerHeight) ? innerTop = -(this.innerHeight - this.outerHeight) : false;
		xTop(this.innerId, innerTop);
		this.scrollBarPos(Math.abs(innerTop/ (this.innerHeight - this.outerHeight)));

		if (this.isBottom()) {
			this.arrowPassive(this.arrowDownImg);
		}
		else {
			var self = this;
			this.scrollRepeatTimer = setTimeout(function() {self.scrollDown();} , this.acclTimeout*1000);
		}
	},
	/* Прокрутка вверх */
	scrollUp: function() {
		if(!this.needScroll()) return;
		clearInterval(this.scrollRepeatTimer);
		if (this.isTop())
			return;
		var innerTop = this.getInnerTop() + this.acclContent ;
		(innerTop > 0) ? innerTop = 0 : false;
		xTop(this.innerId, innerTop);
		this.scrollBarPos(Math.abs(innerTop/ (this.innerHeight - this.outerHeight)));
		if (this.isTop()) {
			this.arrowPassive(this.arrowUpImg);
		}
		else {
			var self = this;
			this.scrollRepeatTimer = setTimeout(function() {self.scrollUp();} , this.acclTimeout*1000);
		}
	},
	/* Нижняя граница достигнута */
	isBottom : function() {
		return (Math.abs(this.getInnerTop()) == (this.innerHeight - this.outerHeight));
	},
	/* Верхняя граница достигнута */
	isTop: function() {
		return (this.getInnerTop() == 0);
	}
};

var objContentScrollAdv = Class.create();
Object.extend(Object.extend(objContentScrollAdv.prototype, objContentScroll.prototype), {
	/* Подсветка стрелок - активный элемент или нет */
	arrowActive: function(arrow) {
		if( !this.needScroll() || !this.canScrolling(arrow))
			return;
		$(arrow.id).setStyle({cursor:"pointer"});
		$(arrow.id).setStyle({opacity:0});
		$(arrow.id).src = arrow.a;
		if(typeof $(arrow.id).effect != "undefined" && $(arrow.id).effect.cancel)
			$(arrow.id).effect.cancel();
		$(arrow.id).effect = new Effect.Appear($(arrow.id), {to:1.0});
	},
	/* Подсветка стрелок - пассивный элемент или нет */
	arrowPassive: function(arrow) {

		$(arrow.id).setStyle({cursor:"default"});
		if(typeof $(arrow.id).effect != "undefined" && $(arrow.id).effect.cancel) {
			$(arrow.id).effect.cancel();
		}
		$(arrow.id).effect = new Effect.Fade($(arrow.id), {to:0.01});
	},
	/* Подсветка скролл-бара - активный элемент */
	barActive: function() {
		$(this.scrollBarImg.id).setStyle({opacity:0});
		$(this.scrollBarImg.id).src = this.scrollBarImg.a;
		if(typeof $(this.scrollBarImg.id).effect != "undefined" && $(this.scrollBarImg.id).effect.cancel) {
			$(this.scrollBarImg.id).effect.cancel();
		}
		$(this.scrollBarImg.id).effect = new Effect.Appear($(this.scrollBarImg.id), {to:1.0});
	},
    /* Подсветка скролл-бара - пассивный элемент */
	barPassive: function() {
		if(typeof $(this.scrollBarImg.id).effect != "undefined" && $(this.scrollBarImg.id).effect.cancel) {
			$(this.scrollBarImg.id).effect.cancel();
		}
		$(this.scrollBarImg.id).effect = new Effect.Fade($(this.scrollBarImg.id), {to:0.01});
	}
});

function xPngTrueColor(divId, imgId, srcImg)
{
	//  if (set && o == 1) o = .9999; // FF1.0.2 but not needed in 1.5
	if(!(img=xGetElementById(imgId))) return 2; // error
	if(!(div=xGetElementById(divId))) return 2; // error
	if (xDef(div.filters)) { // IE5.5+
		div.style.filter += "progid:DXImageTransform.Microsoft.AlphaImageLoader";
		div.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = srcImg;
		xHide(img);
	} else {
		if (xDef(img.src)) {
			img.src = srcImg;
			xShow(img);
		}
		else return 2; // Error
	}

	return 1;
}

function itemMenuOver(event) {
	var e = event || window.event;
	var elem = e.target || e.srcElement;
	var elemId = elem.id;
	if (elemId) {
		var res = elemId.match(/(mi\d+)/);
		if (res[0]) {
			var elemBkgImg = xGetElementById(res[0] + "BkgImg");
			if (elemBkgImg && elemBkgImg.src) {
				elemBkgImg.src = elemBkgImg.src.replace("_a.","_f.");
			}
		}
	}
}

function itemMenuOut(event) {
	var e = event || window.event;
	var elem = e.target || e.srcElement;
	var elemId = elem.id;
	if (elemId) {
		var res = elemId.match(/^(mi\d+)/);
		if (res[0]) {
			var elemBkgImg = xGetElementById(res[0] + "BkgImg");
			if (elemBkgImg && elemBkgImg.src) {
				elemBkgImg.src = elemBkgImg.src.replace("_f.","_a.");
			}
		}
	}
}

function galleryMenuOver(event) {
	var e = event || window.event;
	var elem = e.target || e.srcElement;
	var elemId = elem.id;
	if (elemId) {
		var res = elemId.match(/(mi\d+)/);
		if (res[0]) {
			var elem = xGetElementById(elemId);
				elem.src = elem.src.replace("_p.","_a.");
		}
	}
}

function galleryMenuOut(event) {
	var e = event || window.event;
	var elem = e.target || e.srcElement;
	var elemId = elem.id;
	if (elemId) {
		var res = elemId.match(/(mi\d+)/);
		if (res[0]) {
			var elem = xGetElementById(elemId);
			elem.src = elem.src.replace("_a.","_p.");
		}
	}
}

	// Риcуем линии
	function drawMenuLine() {
		// ай-ди первого уровня
		var menuIdL1 = ($params.pid && $params.id) ? $params.pid : $params.id ;
		if (menuIdL1) {
			var menuImgL1 = xGetElementById("mi" + menuIdL1 + "Bkg");
			if (menuImgL1) {
				var topMenuItem =  xTop(menuImgL1) + Math.round(xHeight(menuImgL1)/ 2);
				var topLine1 = xTop("menuLine1");
				xHeight("menuLine1", topMenuItem -  topLine1)
				xShow("menuLine1");
				// Воркараунд с вісотой
				xTop("menuLine2",(topMenuItem > 115) ? 115  : topMenuItem );
				xShow("menuLine2");
				xTop("menuLine4", topMenuItem);
				xShow("menuLine4");
			}
		}
		// cделать второй уровень
		var menuIdL2 = ($params.pid && $params.id) ? $params.id : null ;
		if (menuIdL2) {

			var menuImgL2 = xGetElementById("mi" + menuIdL2 + "Bkg");
			if(menuImgL2) {

				xShow("menuLine5");
				xTop("menuLine5", topMenuItem);
				var topMenuItem2 =  xTop(menuImgL2) + Math.round(xHeight(menuImgL2)/ 2);
				if (topMenuItem2 - topMenuItem != 0) {
					xTop("menuLine6", topMenuItem);
					xHeight("menuLine6", topMenuItem2 - topMenuItem);
					xShow("menuLine6");
				}
				xTop("menuLine7", topMenuItem2);
				xShow("menuLine7");

			}
		}
	}

	// Окно с дополнительной информацией
	function infoWindow(tag) {
		var left = xPageX("content");
		var top =  xPageY("content");
	//	alert(left);
		winInfo = new xWindow(
							  'Info',   // target name
							  400, 500, // size: width, height
							  left, top,	 // position: left, top
							  0,        // location field
							  0,        // menubar
							  0,        // resizable
							  1,        // scrollbars
							  0,        // statusbar
							  0);       // toolbar

		winInfo.load('content.php?lang='+ $params.lang + '&tag=' + tag );

		return;
	}

	// Окно с дополнительной информацией для Новостей
  function infoWindow(tag) {
		var left = xPageX("content_img_outer");
		var top =  xPageY("content_img_outer");
	//	alert(left);
		winInfo = new xWindow(
							  'Info',   // target name
							  400, 500, // size: width, height
							  left, top,	 // position: left, top
							  0,        // location field
							  0,        // menubar
							  0,        // resizable
							  1,        // scrollbars
							  0,        // statusbar
							  0);       // toolbar

		winInfo.load('content.php?lang='+ $params.lang + '&tag=' + tag );

		return;
	}

	// Окно с дополнительной информацией для Новостей
  function showNews(id) {
		var left = xPageX("content_news");
		var top =  xPageY("content_news");
	//	alert(left);
		winInfo = new xWindow(
							  'Info',   // target name
							  400, 500, // size: width, height
							  left, top,	 // position: left, top
							  0,        // location field
							  0,        // menubar
							  0,        // resizable
							  1,        // scrollbars
							  0,        // statusbar
							  0);       // toolbar

		winInfo.load('content.php?lang='+ $params.lang + '&id=' + id );

		return;
	}

statusmsg=""
function hidestatus(){
	window.status=statusmsg;
	return true;
}

// Назначаем обработчики
	function addHandlerMenu(elem) {

		if (elem) {
		    // Элемент который обслуживает обработку
			var elemId = elem.id;
			if (xGetElementById(elemId)) {
				xAddEventListener(elemId, 'mouseover', itemMenuOver, true);
				xAddEventListener(elemId, 'mouseout',  itemMenuOut, true);
			}
		}
	}
