/* *************************************
*
*  UMI REQUEST
*
************************************ */

var umiRequest = new Class({
	initialize: function (){

		},
	send: function (request){
			this.cook = document.cookie;//получаем все куки
			request.setHeader('Cookie', this.cook);
			request.send();
		}
});

var umi = new umiRequest();



var date55 = new Class({
	
	initialize: function (){
		this.month = false;
		this.year = false;
	},
	getMonth: function(){
		return this.month;
	},
	getYear: function(){
		return this.year;
	},
	setMonth: function(month){
		if(month > 12){
			this.month = 1;
			this.year = this.year + 1;
		}
		else if(month < 1){
			this.month = 12;
			this.year = this.year - 1;
		}
		else this.month = month;
		
	},
	setYear: function(year){
		this.year = year;
	}

});

var date = new date55();

var ru_months = new Array("Декабрь","Январь", "Февраль", "Март", "Апрель", "Май", "Июнь",
                            "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь","Декабрь");
var en_months = new Array("December","January", "February", "March", "April", "May", "June",
                            "July", "August", "September", "October", "November","December");
var months = new Array();
months['ru'] = ru_months;
months['en'] = en_months;

function init()
{
	if($('top_img_index'))
	{
		$('sbs_cont').setOpacity(0);
		$('sbs_cont').style.display = 'block';

		$('top_img_index').getParent().setProperty('href',pic_array[0].href);
		fade_sbs();
	}
	//$('change_container').addEvent('click', function(){$('change_container').style.display = 'none';});
	/*
	if($$('img.close_button'))
	{
		var close = $$('img.close_button');
		for(i = 0; close.length; i++)
		{
			alert($(close[i]).tagName + ' ' + i);
			//$(close[i]).addEvent('click', function(){getRounded(this);})
		}
	}*/
	
	if($('new_v_calendar')){//это внутренняя страница новой версии?
		
		var pos = $('new_v_calendar').getPosition();
		var calendar = $('calendar_container');
		calendar.setStyles({
			top: pos.y + 50,
			left: pos.x + 50
		});
		draggy = new Drag(calendar);
		
		$('cal_date_text').set('text', months[lang][date.getMonth()] + ' ' + date.getYear());
		
		/*
		$$('.toggle_calendar').each(function(item){
			//item.addEvent('click', function(){
				//toggle_calendar();
				
			//});
			//item.setStyle('cursor', 'pointer');
		});
		*/
	}
	
	addPlacement();
	
	//ищем пустые description
	$('text').getElements('.description').each(function(item){
		if(item.get('text').trim() == '') item.destroy();
	});
	
	$('text').getElements('.description p font').each(function(item){
		if(item.getProperty('size') == 1) item.getParent('p').setStyle('font-size', '8px');
	});
	arrow_hide();
}



//хак для ие6. в стилях писать class="png"
function fixPNG(element)
{
	if (/MSIE (5\.5|6).+Win/.test(navigator.userAgent))
	{
		var src;
		
		if (element.tagName=='IMG')
		{
			if (/\.png$/.test(element.src))
			{
				src = element.src;
				element.src = "/blank.gif";
			}
		}
		else
		{
			src = element.currentStyle.backgroundImage.match(/url\("(.+\.png)"\)/i)
			if (src)
			{
				src = src[1];
				element.runtimeStyle.backgroundImage="none";
			}
		}
		
		if (src) element.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "',sizingMethod='scale')";
	}
}

	total_load_img = 0;
animation_ready = false;
//считаем загруженные картинки
function count_img()
{
	total_load_img = total_load_img + 1;
	if(total_load_img >= (pic_array.length * 2)) 
	{
		animation_ready = true;
		fade_sbs();
	}
}
	


/*
* перетекание картинок в шапке на главной
*/
delay = 500;
i97 = 1;
i99 = 1;
duration = 4200;


function fade_sbs()
{
	//if(!animation_ready) return;
	var myFx = new Fx.Style('sbs_cont', 'opacity', {
			duration: duration, 
			wait: true, 
			onComplete: function(){
				wait();
			}
		}).start(0,1);
}

function wait()
{
	fade_sbs_dsc.delay(1800);
}

function fade_sbs_dsc()
{
	var myFx = new Fx.Style('sbs_cont', 'opacity', {
			duration: duration, 
			wait: true, 
			onComplete: function(){
				fade_img();
			}
		}).start(1,0);
}

function fade_img()
{
	var myFx = new Fx.Style('img_f', 'opacity', {
			duration: duration, 
			wait: true, 
			onComplete: function(){
				restore();
			}
		}).start(1,0);
}

function restore()
{
	$('img_f').style.backgroundImage = 'url(' + pic_array[i99].src + ')';
	$('top_img_index').getParent().setProperty('href',pic_array[i99].href);
	
	$('sbs_img').src = sbs_url[i99].src;
	$('sbs_div').style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + sbs_url[i99].src + "')";

	$('img_f').setOpacity(1);
	
	i99 = i99 + 1;
	if(i99 >= pic_array.length) i99 = 0;
	$('img_b').setOpacity(0);
	
	wait_bg.delay(500);//эта фигня с задержкой нужна для мозилы
}
function wait_bg()
{
	$('img_b').style.backgroundImage = 'url(' + pic_array[i99].src + ')';
	$('img_b').setOpacity(1);
	fade_sbs();
}

function title(obj)
{
	alert(obj.href);
}
/*
* конец перетекания картинок
*/

/* ***********************************************
*
*	 CALENDAR
*
************************************************* */
var draggy;


function toggle_calendar2(){ return false;}

function toggle_calendar(){

	arrow_hide();
	
	var month = date.getMonth();
	var year = date.getYear();
	
	var url = '/data/uCalendar2/?month=' + month + ' &year=' + year + '&lang=' + lang;
	var calendar = $('calendar_container');
	//calendar.style.display = 'block';
	
	if(calendar.style.display == 'block') {
		calendar.style.display = 'none';
	}
	else {
		calendar.style.display = 'block';

		$('js_calendar_container').empty();
		$('js_calendar_container').set('html','<img src="/gif/wait/loading-small.gif" style="position: absolute; left: 90px; top: 140px;">');
					
		var myRequest = new Request({
								url: url, 
								method: 'get', 
								//update: $('js_calendar_container'),
								onSuccess: function(html){
									
									$('js_calendar_container').empty();
									$('js_calendar_container').set('html',html);
									
									
								}
								
							});
		umi.send(myRequest);
	}
	return false;
}

function arrow_hide(){
	if (document.getElementById('cal_left')== null || document.getElementById('cal_right')== null){return;}

	if((date.getYear()==CurYear) && (date.getMonth()==CurMonth)){

	document.getElementById('cal_left').style.visibility = 'hidden';
	}else if((date.getYear()<CurYear) || (date.getYear()==CurYear && (date.getMonth()<CurMonth))){
		date.setMonth(CurMonth);
		date.setYear(CurYear);
		$('cal_date_text').set('text', months[lang][date.getMonth()] + ' ' + date.getYear());
		if($('calendar_container').style.visibility == 'block') {
			var s = '?year=' + date.getYear() + '&month=' + date.getMonth() + '&lang=' + lang;
			calendar(s);
		}
		document.getElementById('cal_left').style.visibility = 'hidden';
	}else{
		document.getElementById('cal_left').style.visibility = 'visible';
	}
	
	if((date.getYear()==max_possible_year) && (date.getMonth()==max_possible_month)){
		document.getElementById('cal_right').style.visibility = 'hidden';
	}else if((date.getYear()>max_possible_year) || ((date.getYear()==max_possible_year) && (date.getMonth()>max_possible_month))){
		date.setMonth(max_possible_month);
		date.setYear(max_possible_year);
		$('cal_date_text').set('text', months[lang][date.getMonth()] + ' ' + date.getYear());
		if($('calendar_container').style.visibility == 'block') {
			var s = '?year=' + date.getYear() + '&month=' + date.getMonth() + '&lang=' + lang;
			calendar(s);
		}
		document.getElementById('cal_right').style.visibility = 'hidden';
	}else{
		document.getElementById('cal_right').style.visibility = 'visible';
	
	}
}
function calendar(s)
{
	//var url = '/tpls/js_calendar.new.php' + s;
	var url = '/data/uCalendar2/' + s;
	
	var js_calendar = $('js_calendar_container');
	var div_calendar = $('calendar');
	var h = div_calendar.getSize().y;
	div_calendar.empty();
	div_calendar.setStyle('height', h.toInt() - 10);
	div_calendar.set('html','<img src="/gif/wait/loading-small.gif" style="position: absolute; left: 90px; top: 50px;">');
	//document.cookie = "calendar=" + s;
	var myRequest = new Request({
							url: url, 
							method: 'get', 
							//update: $('js_calendar_container'),
							onSuccess: function(html){
								addPlacement();
								js_calendar.empty();
								div_calendar.setStyle('height', 'auto');
								js_calendar.set('html',html);
								
							}
							
						});
	//alert(s);
	umi.send(myRequest);
	return false;
}



function cal_left2(){
	var month = date.getMonth();
	month = month - 1;
	date.setMonth(month);
	$('cal_date_text').set('text', months[lang][date.getMonth()] + ' ' + date.getYear());
	
	//alert(date.getMonth() + ' ' + date.getYear());
	
	//if(!month) month = 12;
	if($('calendar_container').style.display == 'block') {
		var s = '?year=' + date.getYear() + '&month=' + date.getMonth() + '&lang=' + lang;
		calendar(s);
	}
	arrow_hide();

	
}

function cal_right2(){
	var month = date.getMonth();
	month = month + 1;
	date.setMonth(month);
	$('cal_date_text').set('text', months[lang][date.getMonth()] + ' ' + date.getYear());
	
	//alert(date.getMonth() + ' ' + date.getYear());
	
	//if(month == 0) month = 12;
	if($('calendar_container').style.display == 'block') {
		var s = '?year=' + date.getYear() + '&month=' + date.getMonth() + '&lang=' + lang;
		
		calendar(s);
	}
	arrow_hide();

}





// запрашиваем след месяц
function select_afisha_month(id, tpl, lang)
{
	return true;
	var s = '?' + id + '&template=' + tpl + '&type=js&lang=' + lang;
	var url = '/data/getTextAfisha/' + s;
	
	var myAjax = new Ajax(url, {method: 'get', charset: 'utf-8', update: $('text')});
	var q = myAjax.request();
}

/*
*  выбираем площадки и тип спектакля
function select_afisha(qs)
{
	var QSC = parse_qs(qs);//парсим строку запроса
	var tr = new Array();
	var links = new Array();
	
	if(QSC.where == 'theatre') $('top_img').setStyle('background-image', 'url(' + pic_array[0].src +')');
	if(QSC.where == 'hall') $('top_img').setStyle('background-image', 'url(' + pic_array[1].src +')');
	if(QSC.where == 'all') $('top_img').setStyle('background-image', 'url(' + pic_array[2].src +')');

	//меняем стили у активных элементов
	if('where' in QSC)
	{
		links = $$('tr#select_where a');
		for(i=0;i<links.length;i++)
		{
			set_passive_style(links[i]);
		}
		var oid = $('where_' + QSC.where);
		set_active_style(oid);
		
		
	}
	
	if('what' in QSC)
	{
		links = $$('tr#select_what a');
		for(i=0;i<links.length;i++)
		{
			set_passive_style(links[i]);
		}
		var oid = $('what_' + QSC.what);
		set_active_style(oid);
	}
	
	tr = $('afisha').getElements('tr');//массив всех строк таблицы
	
	for(i=0;i<tr.length;i++)
	{
		if(tr[i].className != 'static') tr[i].style.display = 'none';//потому что урод ИЕ не понимает visibility: collapse (((((
	}
	
	if(('where' in QSC) && QSC.where != 'all') tr = tr.filterByClass('c_' + QSC.where);
	if(('what' in QSC) && QSC.what != 'all') tr = tr.filterByClass('c_' + QSC.what);
	
	for(i=0;i<tr.length;i++)
	{
		tr[i].style.display = '';//лучшие собаководы рекомендуют делать так, а  не 'block'
	}
}
*/

/*
*  выбираем площадки и тип спектакля
*/
function select_afisha(qs)
	{
		var bg_color = 0;
		var QSC = parse_qs(qs);//парсим строку запроса
		var tr = new Array();
		var tr_afisha = new Array();
		var td = new Array();
		var links = new Array();
		
		/*if(QSC.where == 'theatre') $('top_img').setStyle('background-image', 'url(' + pic_array[0].src +')');
		if(QSC.where == 'hall') $('top_img').setStyle('background-image', 'url(' + pic_array[1].src +')');
		if(QSC.where == 'all') $('top_img').setStyle('background-image', 'url(' + pic_array[2].src +')');*/

		tr = $$('tr.elem_tr');//массив всех строк таблиц table.this_day
		tr_afisha = $$('tr.tr_day');//массив всех строк таблицы afisha
		
		tr_count=tr.length;
		tr_afisha_count=tr_afisha.length;
		
		for(i=0;i<tr.length;i++){
			tr[i].style.display = 'none';//потому что урод ИЕ не понимает visibility: collapse (((((
		}
		
		for(i=0;i<tr_afisha.length;i++){
			tr_afisha[i].style.display = 'none';//потому что урод ИЕ не понимает visibility: collapse (((((
		}

		if(('where' in QSC) && QSC.where != 'all') tr=tr.filter('tr.c_' + QSC.where);
		if(('what' in QSC) && QSC.what != 'all') tr=tr.filter('tr.c_' + QSC.what); 
		
		if(('where' in QSC) && QSC.where != 'all') tr_afisha=tr_afisha.filter('tr.c_' + QSC.where);
		if(('what' in QSC) && QSC.what != 'all') tr_afisha=tr_afisha.filter('tr.c_' + QSC.what); 
	
			for ( var counter = 1 ; counter <= tr_afisha_count; counter++ ){
				tr3=tr.filter('tr.'+counter);
				if(tr3.length == 0){
					document.getElementById('day'+counter).style.display = 'none';
				}else{
					document.getElementById('day'+counter).style.display = '';
				}
			}

			for ( var counter = 1 ; counter <= tr_afisha_count; counter++ ){
				tr3=tr.filter('tr.'+counter);
				if(tr3.length == 0){
					document.getElementById('day'+counter).style.display = 'none';
				}else{
					document.getElementById('day'+counter).style.display = '';
					if(bg_color == 0){
						document.getElementById('day'+counter).bgColor = '#ffffff';
						for(i=0;i<tr3.length;i++)
						{
							if(i==0){
								td=tr3[i].getElements('td');
								for ( var j = 0; j < td.length; j++ ){
									td[j].style.border = '0'+'px';
								}
							}
							tr3[i].bgColor = '#ffffff';
							bg_color=1;	
						}
					}else{
						document.getElementById('day'+counter).bgColor = '#f7f7f7';
						for(i=0;i<tr3.length;i++)
						{	
							if(i==0){
								td = tr3[i].getElements('td');
								for ( var j =0; j < td.length; j++ ){
									td[j].style.border = '0'+'px';
								}	
							}
							tr3[i].bgColor = '#f7f7f7';
							bg_color=0;	
						}
					}
				}
			}
		for(i=0;i<tr.length;i++)
		{
			tr[i].style.display = '';//лучшие собаководы рекомендуют делать так, а  не 'block'
		}
	}
	
function ploshadka()
	{
		indexsel = document.getElementById('select1').selectedIndex;
		objSel = document.getElementById("select1");			
		select_afisha(objSel.options[indexsel].value);
	}
		
function predstavlenie()
	{
		indexsel = document.getElementById('select2').selectedIndex;
		objSel = document.getElementById("select2");			
		select_afisha(objSel.options[indexsel].value);
	}
function selectOptionSelect1(num)
	{
		var selObj = document.getElementById('select1');
		selObj.selectedIndex = num;
	}
function show_previous_month_list(elem)
	{
		var state = $('past_perfomance').getStyle('display');
		if(state == 'none') var state2 = 'block';
		if(state == 'block') var state2 = 'none';
		
			var w = $(elem).getCoordinates();
			var all = $('all').getCoordinates();
			var left = w.left;
			
			if (navigator.appName == 'Microsoft Internet Explorer')	left = w.left - all.left;
			var top = w.top + 30;
			var width = 150;
		$('past_perfomance').setStyles({
			width: width,
			top: top,
			left: left,
			display: state2
		});
	}
function show_muz_popup_descr(elem)
	{
		var state = $('muz_popup_descr').getStyle('display');
		if(state == 'none') var state2 = 'block';
		if(state == 'block') var state2 = 'none';
		
			var w = $(elem).getCoordinates();
			var all = $('all').getCoordinates();
			var content = $('content').getCoordinates();
			var left = w.left;
			var top = w.top;
			if (navigator.appName == 'Microsoft Internet Explorer'){			
				left = w.left - all.left;
				//alert(w.top +' '+all.top+' '+content.top);
			}
			var top = w.top + 30;
			var left = left + 40;
			var width = 300;
		$('muz_popup_descr').setStyles({
			width: width,
			top: top,
			left: left,
			display: state2
		});
	}
	
	function erg(obj) {
      var x = y = 0;
      while(obj) {
            x += obj.offsetLeft;
            y += obj.offsetTop;
            obj = obj.offsetParent;
      }
      alert(x +' '+ y);
} 
	
	
	
var Query = new Object();//храним пропарсенную строку запроса и не переписываем его больше чтобы добавлять значения

function parse_qs(qs)
{
	var c = new Array();
	c = qs.split("&");
	c = c[0].split("=");
	Query[c[0]] = c[1];
	return Query;
}
//просто смена стилей. setStyles({...}) почему-то не заработала, а разбираться времени не было. потом переделать
function set_active_style(elem)
{
	elem.style.fontWeight = 'bold'; elem.style.fontSize = '12px';
	elem.style.cursor = 'default'; elem.style.border = 'none';
}

function set_passive_style(elem)
{
	elem.style.fontWeight = 'normal'; elem.style.fontSize = '11px';
	elem.style.cursor = 'pointer'; elem.style.borderBottomWidth = '1px';
	elem.style.borderBottomStyle = 'dotted';
}

/*
*  конец выбора
*/

/*
* всплывающая картинка
*/
/* 
*****  возвращает путь к файлу и имя файла  ****
dir_name - путь от корня до файла не включая его
file_name - полное имя файла
ext - расширение с точкой
остальные для формата   имя_файла_нечто_состояние_язык.расширение
lang - язык
 state - состояние 
name - все что до двух предыдущих
*/
var File = new Class({

	initialize: function (path)
	{
		this.path = path; 
		this.dir_name='/';
		this.string_array=this.path.split('/');
		for(i=3;i<this.string_array.length-1;i++)
		{
			this.dir_name = this.dir_name + this.string_array[i] + '/';
		}
		this.file_name = this.string_array[this.string_array.length -1];
	
		//парсим имя файла
		this.tmp = new Array();
		this.tmp = this.file_name.split('.');//расширение по точке
		this.ext = '.' + this.tmp[1];
		this.tmp2 = new Array();
		this.tmp2 = this.tmp[0].split('_');//  _ - разделитель
		this.lang = '_' + this.tmp2[this.tmp2.length - 1];
		this.state = '_' + this.tmp2[this.tmp2.length - 2];
		this.name = this.tmp2[0];
		for(i=1;i<(this.tmp2.length - 2);i++)
		{
			this.name = this.name + '_' + this.tmp2[i];
		}
	}
});

var img_div;

function open_img(obj, w, h)
{
	if($('big_img')) {close_div(); return;}
	img_div = document.createElement("div");
	var src = $(obj).href;
	var img = new File(src);
	src = img.dir_name + img.file_name;

	var x, y;
	obj = $(obj).getFirst();
	var y = calcH(obj,h);
	var x = calcL(obj,w);

	$(img_div).setStyles({
		width: w,
		height: h,
		left: x + 'px',
		top: y + 'px'
	});
	
	$(img_div).setProperties({
		onclick: 'close_div()',
		id: 'big_img'
	});

	$(img_div).setHTML('<img src="' + src + '" onclick="close_div()">');
	$('all').appendChild(img_div);
}

function close_div()
{
	$('big_img').remove();
}

function calcL(obj, w)
{
	var x;
	var scrX = window.getWidth();
	var oLeft = (scrX - (0.85 * scrX)) / 2;
	oLeft = $(obj).getLeft() + oLeft;
	var oRight = oLeft + obj.offsetWidth;
	
	//определяем где больше места; пытаемся дать на 20 пх от края превьюшки; если не получается - даем 20пх от края окна
	var leftSpace = oLeft - 20;
	var rightSpace = scrX - oRight - 20;
	if(leftSpace > rightSpace)
	{
		if(leftSpace >= w) x = leftSpace - w;else x = 20;
	}
	else
	{
		if(rightSpace >= w) x = oRight + 20; else x = scrX - 20 - w;
	}
	return x;
}

function calcH(obj,h)
{
	var y;
	var oTop = $(obj).getTop();
	var scrTop = window.getScrollTop() + 20;
	var scrY = window.getHeight();
	if(scrY < h) {y = scrTop; return y;}
	y = oTop - 20;
	for(i=y;i>scrTop;i--)
	{
		if((i + h) < (scrTop + scrY - 40)) break;
	}
	return i;
}

/* ****************************************
*
* 	ИЗМЕНЕНИЯ В АФИШЕ 
*
*****************************************/
function getChange()
{
	$('change_container').setStyle('display', 'block');
}
/* *****
* прошлые месяцы
*/
function select_past(elem, url, lang)
{
	url = url + '&lang=' + lang;
	var myAjax = new Ajax(url, {
									method: 'get', 
									charset: 'utf-8', 
									update: $('past_perfomance_content'),
									onComplete: function(){show_past_month_list(elem)}
								});
	var q = myAjax.request();
}

function show_past_month_list(elem)
{
	var state = $('past_perfomance').getStyle('display');
	if(state == 'none') var state2 = 'block';
	if(state == 'block') var state2 = 'none';
	
		var w = $(elem).getCoordinates();
		var all = $('all').getCoordinates();
		
		var left = (window.getWidth() * 0.06) + w.left;
		if(window.ie) left = w.left - all.left;
		var top = w.top + 20;
		var width = 200;
	
	//сворачиваем
		var years = $$('#past_perfomance_content ul.past_year');
		for(i=0; i < years.length; i++)
		{
			years[i].style.display = 'none';
		}	
	
	$('past_perfomance').setStyles({
		width: width,
		top: top,
		left: left,
		display: state2
	});
	

}

function past_year_change_state(elem)
{
	
	var years = $$('#past_perfomance_content ul.past_months');
		for(i=0; i < years.length; i++)
		{
			years[i].style.display = 'none';
		}	
	
	elem = $(elem).getNext();
	var state = $(elem).getStyle('display');

	if(state == 'none') var state2 = 'block';
	if(state == 'block') var state2 = 'none';
	$(elem).setStyle('display', state2);
}

function getRounded(elem)
{
	while(($(elem).className != 'popup5') || ($(elem).tagName != 'body'))
	{
		elem = $(elem).getParent();
		if($(elem).className == 'popup5') 
		{
			$(elem).setStyle('display','none');
			return;
		}
		
	}
	
}

/* *****
*  для перехода в афишу с календаря. если js включен, дописываем признак from в конец строки запрос
*/
function addPlacement()
{
	var placement =  $$('#placement a');

	for(i=0;i<placement.length;i++)
	{
		var href = $(placement[i]).getProperty('href');
		href = href + '&from=true';
		$(placement[i]).setProperty("href", href);
		
	}
}
