var tai = {}
// set Homepage
tai.homePage = function(domAnachor)
{
	if(jso.js)
	{
		domAnachor.style.behavior='url(#default#homepage)';
		domAnachor.setHomePage(domAnachor.href);
	}
	else if(window.opera && window.print)
		alert('Twoja przeglądarka nie pozwala na zmianę strony domowej. By zrobić to ręcznie, kliknij w menu przeglądarki "Narzędzia" > "Preferencje" > "Użyj bieżącej"');
	else
		alert('Twoja przeglądarka nie pozwala na zmianę strony domowej. By zrobić to ręcznie, przeciągnij link "Ustaw jako stronę domową" na przycisk "Strona domowa" w pasku nawigacji przeglądarki.');
	return false;
}
// set Favorite
tai.favorites = function(domAnachor)
{
	if(window.sidebar)
		window.sidebar.addPanel(domAnachor.title,domAnachor.href,'');
	else if(window.external)
		window.external.AddFavorite(domAnachor.href,domAnachor.title);
	else if(window.opera && window.print)
	{
		domAnachor.rel = 'sidebar';
		return true;
	}
	return false;
}
// callendar
tai.callendar = function()
{
	var T = this
	this.domRegiony = jso.gI('kalendarz_regiony');
	this.domRegiony.onchange = function()
	{
		var link = T.domCurrent.href
		link = link.replace(/(\/index\/[^\/]*\/[^\/]*\/)[^\/]*/i,'$1'+T.domRegiony.options[T.domRegiony.selectedIndex].value)
		T.load.call(T,link)
	}
	this.domWydarzenia = jso.gI('kalendarz_wydarzenia');
	this.domWydarzenia.onchange = function()
	{
		var link = jso.gT('a',jso.gI('actual'))[0].href
		link = link.replace(/(\/index\/[^\/]*\/)[^\/]*/i,'$1'+T.domWydarzenia.options[T.domWydarzenia.selectedIndex].value).replace('/list', '');
		T.load.call(T,link)
	}
	this.start();
}
tai.callendar.prototype.start = function()
{
	var T = this
	this.domKalendarz = jso.gI('kalendarz');
	this.domCurrent = jso.gI('kalendarz_current')
	var anachors = jso.gT('a',this.domKalendarz)
	for(var i in anachors)
	{
		var anachor = anachors[i]
		if(anachor.href.indexOf('/index/') > -1)
		{
			if (anachor.parentNode.parentNode.parentNode.id == 'mounth')
				anachor.onclick = function(){
					return T.load.call(T,this.href)}
			else
				anachor.onclick = function(){
					return T.load.call(T,this.href, 1)}
		}
	}
	var divs = jso.gT('div',jso.gAV('table',this.domKalendarz,'className','calendar')[0])
	for(var i in divs)
	{
		var ol = jso.gT('ol',divs[i])[0]
		if(ol)
		{
			divs[i].ol = ol
			ol.style.visibility = 'hidden'
			divs[i].onmouseover = function()
			{
				if(!this.time)
				{
					this.className='active'
					if(this.ol.style.visibility)
					{
						var T = this
						setTimeout
						(
							function()
							{
								T.ol.style.bottom = -(T.ol.offsetHeight/2 - T.offsetHeight/2) +'px'
								T.ol.style.visibility = ''
							},
							500
						)
					}
				}
			}
			divs[i].onmouseout = function()
			{
				this.className=''
			}
		}
	}
}
tai.callendar.prototype.load = function(link, list)
{
	var data = link.split('/index/')[1].split('/')
	link = link.replace(/\/index\//i,'/ajax/calendar/')

	if(!this.ajax)
	{
		var T = this
		this.ajax = new jso.ajax(
			{
				uri:link,
				postData:'date=' + data[0] +'&category=' + data[1] + '&region=' + (data[2]?data[2]:'') ,
				method:'POST',
				onend:function()
				{
					var tmpDiv = jso.cE('div')
					tmpDiv.innerHTML = T.ajax.ajax.responseText;
					if (typeof(list) != 'undefined')
					{
						jso.gI('calendarlist').innerHTML = tmpDiv.innerHTML;
					}
					else
					{
						T.domKalendarz.parentNode.replaceChild(tmpDiv.firstChild,T.domKalendarz)
					}
					T.ajax = false;
					T.start.call(T)
				}
			}
		)
	}
	return false;
}
// penetrator
tai.penetrator = function(params)
{
	var T = this
	for(var i in params)
		this[i]=params[i];
	this.domRegion.onchange = function(){T.change.call(T)}
	this.domSection.onchange = function(){T.change.call(T)}
}
tai.penetrator.prototype.change = function()
{
	var T = this
	new jso.ajax
	(
		{
			uri: '/pl/ajax/penetrator/' + this.domSection.options[this.domSection.selectedIndex].value + '/' + this.domRegion.options[this.domRegion.selectedIndex].value,
			postData:'category=' + this.domSection.options[this.domSection.selectedIndex].value + '&region=' + this.domRegion.options[this.domRegion.selectedIndex].value,
			method:'POST',
			onend: function(ajax)
			{
				var tmpDiv = jso.cE('div')
				tmpDiv.innerHTML = ajax.responseText;
				var domConteiner = jso.gAV('div',tmpDiv,'id','penetrator_replace')[0]
				T.domConteiner.parentNode.replaceChild(domConteiner,T.domConteiner)
				T.domConteiner = domConteiner
			}
		}
	)
}
// upload
tai.upload = function(params)
{
	var T = this
	for(var i in params)
		this[i]=params[i];
	this.items = 0;
	this.type = this.domInput.name;
	this.domInput.onchange = function(){return T.add.call(T)}
	this.name = 'upload_' + this.domInput.name;
	this.domIframe=jso.cE('iframe',{
		name:this.name,
		id:this.name,
		upload:this,
		width:0,
		height:0,
		frameborder:0,
		className:'auraltext'
	},0,document.body);
	if(self.frames[this.name].name!=this.name)
		self.frames[this.name].name=this.name;
	this.domForm=jso.cE
	(
		'form',
		{
			action:'/news/',
			method:'post',
			target:this.name,
			className:'auraltext'
		},
		[
			this.domFormList = jso.cE('ol',0,
			[
				jso.cE('li',0,
				[
					jso.cE('input',{'type':'hidden','name':'type','value':this.domInput.name})
				])
			])
		],
		document.body
	);
	this.domForm.enctype = 'multipart/form-data';
	this.domForm.encoding = 'multipart/form-data';
	this.getItems()
}
tai.upload.prototype.getItems=function()
{
	var T=this
	var lis = jso.gT('li',this.domList)
	for(var i = 0 ;i < lis.length; i++)
	{
		var inputs = jso.gT('input',lis[i])
		for(var j in inputs)
		{
			inputs[j].name = inputs[j].name.replace(/\[[0-2]?\]/i,'[' + i + ']')
			if(inputs[j].type == 'submit')
			{
				inputs[j].onclick = function(){return T.remove.call(T,this)}
			}
		}
	}
	this.items = lis.length;
	this.domInput.disabled = this.items > 2;
}
tai.upload.prototype.add=function()
{
	var T=this
	if(this.items<3 && !this.oldInput)
	{
		this.oldInput = this.domInput
		this.domInput = jso.cE('input',{type:'file',id:this.oldInput.id,name:this.oldInput.name,className:this.oldInput.className,size:23});
		this.domInput.onchange = function(){return T.add.call(T)}
		this.oldInput.parentNode.replaceChild(this.domInput,this.oldInput)
		this.domFormList.appendChild
		(
			this.oldInput = jso.cE('li',0,[
				this.oldInput
			])
		)
		window.setTimeout(function(){T.domForm.submit()},500)
	}
	return false;
}
tai.upload.prototype.end = function(sourceDocument)
{
	var p = jso.gT('p',sourceDocument)[0]
	if(p)
	{
		alert(p.firstChild.nodeValue)
	}
	else
	{
		if(document.importNode)
		{
			var items=jso.gT('li',sourceDocument)
			for(var i=0;i<items.length;i++)
				this.domList.appendChild(document.importNode(items[i],1));
		}
		else
		{
			var fuckIE=jso.cE('ol')
			var items=jso.gT('ol',sourceDocument)[0]
			fuckIE.innerHTML=items.innerHTML;
			var items=jso.gT('li',fuckIE)
			for(var i=0;i<items.length;i++)
				this.domList.appendChild(items[i]);
		}
	}
	this.domFormList.removeChild(this.oldInput)
	this.oldInput = false;
	this.getItems()
}
tai.upload.prototype.remove=function(input)
{
	input = jso.gAV('input',input.parentNode,'type','checkbox')[0]
	new jso.ajax(
	{
		uri:'/news/?type='+this.type+'&action=delete&hash='+input.value,
		method:'get'
	})
	this.domList.removeChild(input.parentNode);
	this.getItems();
	return false;
}
// preview
tai.preview = function(params)
{
	var T = this
	for(var i in params)
		this[i]=params[i];
	this.domButton.onclick = function(){return T.get.call(T)}
}
tai.preview.prototype.get = function()
{
	var T = this
	var uri = '/news/?preview=1'
	var postData = 'preview=1'
	for(var i=0;i<this.domForm.elements.length;i++)
	{
		var element = this.domForm.elements[i]
		if(element.name && (element.type != 'checkbox' || element.checked))
		{
			if(element.id == 'add_region')
			{

				for(var j=0;j<element.options.length;j++)
				{
					if(element.options[j].selected)
						postData += '&'+element.name+'='+element.options[j].value;
				}
			}
			else
			{
				postData += '&'+element.name+'='+element.value;
			}
		}
	}
	new jso.ajax
	(
		{
			uri:uri,
			postData:postData,
			method:'POST',
			onend:function(ajax)
			{
				T.domPreview.innerHTML = ajax.responseText;
			}
		}
	);
	return false;
}
// checkForm
tai.checkForm = function(params)
{
	var T = this
	for(var i in params)
		this[i]=params[i];
	this.domForm.onsubmit = function(){return T.check.call(T)}
}
tai.checkForm.prototype.check = function()
{
	var ok = true
	for(var i in this.requiedFields)
	{
		var field = this.domForm.elements[this.requiedFields[i]]
		if(!field || (field.nodeName.toLowerCase() == 'select' && field.selectedIndex == 0) || (field.value.replace(/ */gi,'') == ''))
		{
			field.className = 'error';
			ok = false;
		}
	}
	if(!ok)
		alert('Wypełnij wymagane pola!');
	return ok;
}
// advsearch
tai.advsearch = function(params)
{
	var T = this
	for(var i in params)
		this[i]=params[i];
	this.domSelect.onchange = function()
	{
		T.change.call(T)
	}
	this.currentValue = false
	this.change()
}
tai.advsearch.prototype.change = function()
{
	if(this.currentValue !== false)
	{
		var select = jso.gI('advsearch_subsection_' + this.currentValue)
		select.disabled = true
		select.className = 'auraltext'
	}
	this.currentValue = this.domSelect.options[this.domSelect.selectedIndex].value
	var select = jso.gI('advsearch_subsection_' + this.currentValue)
	select.disabled = false
	select.className = ''
	if(!this.domLabel)
	{
		this.domLabel = jso.gT('label',select.parentNode)[0]
	}
	this.domLabel.htmlFor = select.id
}
// scroll
tai.scroll = function(params)
{
	var T = this
	for(var i in params)
		this[i]=params[i];
	if(!this.domList)
		return false;
	this.width = 0
	this.margin = 0
	var items = this.domList.getElementsByTagName('li')
	if(items.length == 0)
		return false;
	for(var i = 0;i<items.length;i++)
	{
		this.width += items[i].offsetWidth
		if(!this.activeItem)
			this.activeItem = items[i];
	}
	if(this.width > this.domList.offsetWidth)
	{
		this.active = true
		this.domList.onmouseover = function(){T.active = false}
		this.domList.onmouseout = function(){T.active = true}
		this.domList.style.width=this.width+2000+'px';
		setInterval
		(
			function()
			{
				if(T.active)
				{
					if(T.activeItem.offsetWidth > T.margin)
					{
						T.margin++;
					}
					else
					{
						T.margin = 0;
						T.domList.appendChild(T.activeItem)
						T.activeItem = T.domList.getElementsByTagName('li')[0]
					}
					T.domList.style.left = -T.margin + 'px'
				}
			},25
		)
	}
	else
		return;
}

// drop&down
tai.dropAndDown = function(params)
{
	var T = this
	for(var i in params)
		this[i]=params[i];
	this.items = []
	for(var i in this.domCol.childNodes)
	{
		var item = this.domCol.childNodes[i]
		if(item.nodeType == 1)
			this.items.push(new this.item({domConteiner:item,col:this}));
	}
	this.active = false;
	this.toActive = false;
	jso.aE(document.body,'mouseup',function(e){T.toActive = false;if(T.active)T.stop.call(T,e||window.event);})
	jso.aE(document.body,'mousemove',function(e){if(T.active)T.move.call(T,e||window.event);})
}

tai.dropAndDown.prototype.stop = function(e)
{
	if(this.active)
	{
		jso.sE(e)
		this.active.domConteiner.style.left = "";
		this.active.domConteiner.style.top = "";
		if(!jso.ie)
		{
			this.active.domConteiner.style.width = "";
			this.active.domConteiner.style.height = "";
		}
		this.active.domConteiner.className = this.active.domConteiner.className.replace('move','')
		if(jso.ie)
			this.active.domConteiner.removeChild(this.active.domIframe);
		this.domCol.replaceChild(this.active.domConteiner,this.active.domReplacer);
		this.active = false;
		var cooke = []
		for(var  i in this.domCol.childNodes)
		{
			if(this.domCol.childNodes[i].id)
				cooke.push(this.domCol.childNodes[i].id);
		}
		jso.cooC(this.domCol.id,cooke.join(','),14);
	}
}
tai.dropAndDown.prototype.move = function(e)
{
	if(this.active)
	{
		if(this.toActive)
		{
			this.toActive = false;
			this.active.active.call(this.active,e)
		}
		else
		{
			jso.sE(e)
			var X = ( e.pageX == undefined ? e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft : e.pageX );
			var Y = ( e.pageY == undefined ? e.clientY + document.body.scrollTop + document.documentElement.scrollTop :  e.pageY );
			if(Y - document.body.scrollTop - document.documentElement.scrollTop + this.active.mouseY < 10)
				document.documentElement.scrollTop -= 5;
			else if(document.body.scrollTop + document.documentElement.scrollTop + document.documentElement.clientHeight - Y + this.active.mouseY < 10)
				document.documentElement.scrollTop += 5;
			this.active.domConteiner.style.left = (X + this.active.mouseX) + 'px'
			this.active.domConteiner.style.top = (Y + this.active.mouseY) + 'px'
			for(var i in this.items)
			{
				var item = this.items[i]
				if(item != this.active &&  item.offset)
				{
					if(Y > item.offset.Y && Y < item.offset.Y + item.height)
					{
						if(Y < item.offset.Y + item.height / 2)
						{
							this.domCol.insertBefore(this.active.domReplacer,item.domConteiner);
							this.active.getValues.call(this.active)
							item.getValues.call(item)
						}
						else
						{
							this.domCol.insertBefore(this.active.domReplacer,item.domConteiner.nextSibling);
							this.active.getValues.call(this.active)
							item.getValues.call(item)
						}
						break;
					}
				}
			}
		}
	}
}
tai.dropAndDown.prototype.getOffset = function(element)
{
	var X = 0, Y = 0;
	do
	{
		X += element.offsetLeft;
		Y += element.offsetTop;
	}
	while (element = element.offsetParent);
	return {X:X,Y:Y};
}
tai.dropAndDown.prototype.getValues = function()
{
	for(var i in this.items)
	{
		this.items[i].getValues.call(this.items[i])
	}
	this.offset = this.getOffset(this.domCol)
}
tai.dropAndDown.prototype.item = function(params)
{
	var T = this
	for(var i in params)
		this[i]=params[i];
	if(this.domConteiner.className != 'banner')
	{
		this.domHeader = jso.gAV('div',this.domConteiner,'className','cat-header')[0]
		if(this.domHeader)
		{
			this.domHeader.onmousedown = function(e){T.toActive.call(T,e||window.event)};
			this.domHeader.onmousemove = jso.sE
		}
		else
			return;
	}
}
tai.dropAndDown.prototype.item.prototype.getValues = function()
{
	this.offset = this.col.getOffset(this.domConteiner)
	this.width = this.domConteiner.offsetWidth;
	this.height = this.domConteiner.offsetHeight;
}
tai.dropAndDown.prototype.item.prototype.toActive = function(e)
{
	var T = this, e = e;
	this.col.toActive = this
	this.getValues()
	this.mouseX = this.offset.X - ( e.pageX == undefined ? e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft : e.pageX );
	this.mouseY = this.offset.Y - ( e.pageY == undefined ? e.clientY + document.body.scrollTop + document.documentElement.scrollTop :  e.pageY );
	window.setTimeout
	(
		function()
		{
			if(T.col.toActive == T)
				T.col.active = T;
		},
		250
	)
	return jso.sE(e);
}
tai.dropAndDown.prototype.item.prototype.active = function(e)
{
	jso.sE(e)
	this.col.getValues.call(this.col)
	this.domReplacer = jso.cE('div',{className:'replacer'})
	this.domReplacer.style.width = (this.width - 4) + 'px'
	this.domReplacer.style.height = (this.height- 4) + 'px'
	this.domConteiner.style.width = this.width + 'px'
	this.domConteiner.style.height = this.height + 'px'
	this.col.domCol.replaceChild(this.domReplacer,this.domConteiner)
	if(jso.ie)
		this.domIframe = jso.cE('iframe',0,0,this.domConteiner);

	this.domConteiner.className += ' move'
	document.body.appendChild(this.domConteiner)
	this.col.active = this;
	this.col.move.call(this.col,e)
}
// captcha
tai.captcha = function(params)
{
	for(var i in params)
		this[i]=params[i];
	this.addReload();
}
tai.captcha.prototype.addReload = function()
{
	var T = this
	this.domReload = jso.cE(
		'img',
		{
			src:'/images/reload.png',
			alt:'Zmień obrazek',
			title:'Zmień obrazek',
			onclick:function(){T.newCaptcha.call(T)}
		},0,this.domConteiner
	)
}
tai.captcha.prototype.newCaptcha = function()
{
	var T = this
	new jso.ajax
	(
		{
			uri:'/pl/ajax/captcha',
			onend:function(ajax)
			{
				var tmpDiv = jso.cE('div')
				tmpDiv.innerHTML = ajax.responseText
				var domConteiner = jso.gT('span',tmpDiv)[0]
				T.domConteiner.parentNode.replaceChild(domConteiner,T.domConteiner)
				T.domConteiner = domConteiner
				T.addReload.call(T)
			}
		}
	)
}

// start
tai.start = function()
{
	// inputy z podpowiadaniem
	jso.submitForm();
	var inputs = ['search_field'];
	for(var i in inputs)
		new jso.inputEdit(inputs[i]);
	// kalendarzyk na stronie głównej
	if(jso.gI('kalendarz'))
		new tai.callendar();
	// kalendarzyki
	var callendars = ['add_start_date','add_stop_date','advsearch_from_date','advsearch_to_date','advsearch_start_date','advsearch_stop_date']
	for(var i in callendars)
	{
		var domInput = jso.gI(callendars[i])
		if(domInput)
		{
			var callendar = new jso.calendar({domInput:domInput});
			var domImage = jso.gI(callendars[i]+'_image')
			if(domImage)
			{
				domImage.callendar = callendar
				domImage.onclick = function(e){this.callendar.showCalendar.call(this.callendar,e||event)};
			}
		}
	}
	// dodwanie obrazków
	var domInput = jso.gI('add_image'), domList = jso.gI('add_image_list');
	if(domInput && domList)
		new tai.upload({domInput:domInput,domList:domList});
	// dodawanie plików
	var domInput = jso.gI('add_file'), domList = jso.gI('add_file_list');
	if(domInput && domList)
		new tai.upload({domInput:domInput,domList:domList});
	// formularz dodawania newsa
	var domForm = jso.gI('formular'), domPreview = jso.gI('podglad'), domButton = jso.gI('zobacz_podglad');
	if(domForm && domPreview && domButton)
	{
		new tai.preview({domForm:domForm,domPreview:domPreview,domButton:domButton});
		new tai.checkForm({domForm:domForm,requiedFields:['captcha','title','section','region','brief','author_name','author_phone','author_address','start_date','start_hour','stop_date','stop_hour']})
	}
	// formularz rejestracji
	var domForm = jso.gI('register_form')
	if(domForm)
		new tai.checkForm({domForm:domForm,requiedFields:['name','address','phone','email','login','password','password_repeat','regulations']})
	// zmiana kategorii w wyszukiwaniu zaawansowanym
	var domSelect = jso.gI('advsearch_mainsection')
	if(domSelect)
		new tai.advsearch({domSelect:domSelect,prefix:'advsearch_subsection_'});
	// scroll
	if(jso.gI('scroll'))
		new tai.scroll({domList:jso.gT('ul',jso.gI('scroll'))[0]});
	// obługa kolumn
	var cols = ['right-sidebar','left-sidebar','inner-sidebar']
	for(var i in cols)
	{
		var domCol = jso.gI(cols[i])
		if(domCol)
			new tai.dropAndDown({domCol:domCol});
	}
	// penetrator
	var domRegion = jso.gI('penetrator_region'), domSection = jso.gI('penetrator_temat'), domConteiner = jso.gI('penetrator_replace');
	if(domRegion && domSection && domConteiner)
		new tai.penetrator({domRegion:domRegion,domSection:domSection,domConteiner:domConteiner});
	// captcha
	var domConteiner = jso.gI('captcha_image')
	if(domConteiner)
		new tai.captcha({domConteiner:domConteiner});
}
jso.aE(window,'load',tai.start)

// pozostałe
function manipulate_div(id, flag) {
	var obj = document.getElementById(id);
	if(obj) {
		obj.style.visibility = flag? 'visible': 'hidden';
		obj.style.display = flag? 'block': 'none';
	}
}
function show_div(id) {
	manipulate_div(id, true);
}
function hide_div(id) {
	manipulate_div(id, false);
}
