/*�*/

var PageObj = 'undefined';
var SiteObj = 'undefined';
var SlideContent;
var SlideLeft;
var editor;
var highlighter;
var highlightBlocked = false;
var isSlidingDown = false;
var blinking = false;
var blinkState = false;

function fVoid(id)
{
	return false;
}

function blink(id)
{
	elem = $('#'+id);
	if(!blinkState)
	{
		test = 1000;
		elem.show();
		blinkState = true;
	}
	else
	{
		test = 300;
		elem.hide();
		blinkState = false;
	}
	blinking = setTimeout('blink(\''+id+'\');', test);
}

function cloneCategorySelect(elem)
{
	tmp = $(elem).siblings().filter('select');
	clone = $(tmp[0]).clone(true);
	clone.attr('class', 'categoriesSelect');

	clone.insertBefore(elem);
}

function formQuery(request, id)
{
	var objId;
	$('form#'+id+' input').each(function() {
		if(this.checked == 'checked' || this.checked == true)
		{
			objId = this.value;
		}
	});

	objId = parseInt(objId);
	if(!isNaN(objId))
		window.location.href = PageObj.addr+PageObj.site+'/'+request+'/'+objId+'.html';
}

/********************	  MouseWheelScroller		**********************/

$.event.wheel = function(event)
{
	var delta = 0;
	if (!event)
		event = window.event;
	if (event.wheelDelta)
	{
		delta = event.wheelDelta/120;
		//if (window.opera)
		//	delta = -delta;
	}
	else if (event.detail)
	{
		delta = -event.detail/3;
	}
	if (delta)
	{
		if (delta<0)
		{
			$('div#content div.strzalek.downSt').trigger("click");
			if (event.target.events && event.target.events.mousewheeldown)
				var stopEvent = true;
		}
		else
		{
			$('div#content div.strzalek.upSt').trigger("click");
			if (event.target.events && event.target.events.mousewheelup)
				var stopEvent = true;
		}
		if (stopEvent)
		{
			if (event.preventDefault)
				event.preventDefault();
			event.returnValue = false;
		}
		else
		{
			event.returnValue = true;
		}
	}
}

/********************	  Liner	**********************/

function Liner() {

	var parent = this;
	var selector;
	var line;
	var newsHeight;
	var sliderHeight;
	var maxSliderPadding;
	var sliderPadding;
	var boxId;
	var parentObjName;

	this.init = function(boxId, parentObjName)
	{
		var scrollerHeight;
		var scrollHeight;
		var newsBoxes;

		parent.boxId = boxId;
		parent.parentObjName = parentObjName;
		scrollHeight = $('div'+parent.boxId+' div.scroll').css('margin-top');
		/*
		alert('div#'+parent.boxId+' div.scroll');
		tmp = '';
		for(i in scrollHeight)
		{
			tmp += i+':\t'+scrollHeight[i]+'\n';
		}
		$('body').append('<pre>'+tmp+'</pre>');
		return;
		*/
		scrollHeight = scrollHeight.substr(0, scrollHeight.length - 2);
		parent.sliderPadding = scrollHeight;
		scrollerHeight = $('div'+parent.boxId+' div.scroller').css('height');
		scrollerHeight = scrollerHeight.substr(0, scrollerHeight.length - 2);
		scrollHeight = $('div'+parent.boxId+' div.scroll').css('height');
		scrollHeight = scrollHeight.substr(0, scrollHeight.length - 2);
		parent.maxSliderPadding = (scrollerHeight - scrollHeight) - 5;
		parent.selector = new Array('', '');
		parent.line = 200;
		/*
		newsBoxes = $('div'+parent.boxId).children();
		parent.newsHeight = 0;
		for(i = 0; i < newsBoxes.length; i++)
		{
			parent.newsHeight += $(newsBoxes[i]).height();
			parent.line = 200;
			//parent.line = $(newsBoxes[i]).height();
		}
		parent.newsHeight += 2000;
		*/
		elemsheight = 0;
		children = $('#inside').children();
		for(i = 0; i < children.length; i++)
		{
			elemsheight = elemsheight + children.get(i).offsetHeight;
		}
		parent.newsHeight = elemsheight + 500;
		$('div'+parent.boxId+' div.strzalek.upSt').bind('click', function(e){
			//news.up();
			eval(parent.parentObjName+'.up()');
		});
		$('div'+parent.boxId+' div.strzalek.downSt').bind('click', function(e){
			//news.down();
			eval(parent.parentObjName+'.down()');
		});
	}

	this.lineUp = function()
	{
		var currentPadding;
		var percentage;
		var padding;

		currentPadding = $($('div'+parent.boxId+' div.scrolled').children().get(0)).css('margin-top');
		if(typeof(currentPadding) == 'undefined' || currentPadding == 'auto')
			currentPadding = 0;
		else
			currentPadding = parseInt(currentPadding.substr(0, currentPadding.length - 2));
		currentPadding += parent.line;
		if(currentPadding > 0)
		{
			currentPadding = 0;
		}
		$($('div'+parent.boxId+' div.scrolled').children().get(0)).css('margin-top', currentPadding+'px');
		//$('div'+parent.boxId+' div.scrolled').children().css('float', 'left');
		percentage = (currentPadding/parent.newsHeight);
		padding = Math.round(percentage*parent.maxSliderPadding*(-1));
		if(padding < 0)
		{
			padding = 0;
		}
		$('div'+parent.boxId+' div.scroll').css('margin-top', padding+'px');
	}

	this.lineDown = function()
	{
		var currentPadding;
		var percentage;
		var padding;

		currentPadding = $($('div'+parent.boxId+' div.scrolled').children().get(0)).css('margin-top');
		if(typeof(currentPadding) == 'undefined' || currentPadding == 'auto')
			currentPadding = 0;
		else
			currentPadding = parseInt(currentPadding.substr(0, currentPadding.length - 2));

		currentPadding -= parent.line;
		if((currentPadding*(-1)) > parent.newsHeight)
		{
			currentPadding = parent.newsHeight*(-1);
		}
		$($('div'+parent.boxId+' div.scrolled').children().get(0)).css('margin-top', currentPadding+'px');

		percentage = (currentPadding/parent.newsHeight);
		padding = Math.round(percentage*parent.maxSliderPadding*(-1));
		/*
		alert('currentPadding: '+currentPadding+
				'\nnewsHeight: '+parent.newsHeight+
				'\npadding: '+padding+
				'\nmaxSliderPadding: '+parent.maxSliderPadding+
				'\npercentage: '+percentage+'%');
		*/
		if(padding > parent.maxSliderPadding)
		{
			padding = parent.maxSliderPadding;
		}

		$('div'+parent.boxId+' div.scroll').css('margin-top', padding+'px');
		// tmp = 'slider: '+(percentage*parent.maxSliderPadding)+'px\n'+
			  // 'page: '+ currentPadding + 'px';
		//$('body > div:last').get(0).innerHTML += '<pre>'+tmp+'</pre>';
	}

	this.unregister = function()
	{
		$('div'+parent.boxId+' div.strzalek.upSt').unbind('click');
		$('div'+parent.boxId+' div.strzalek.downSt').unbind('click');
	}
}

/********************	Scroller	**********************/

function Scroller(initMPos) {

	var initialMPos;
	var mPosY;
	var newsHeight;
	var maxSliderPadding;
	var newsPadding;
	var sliderPadding;
	var line;
	var selector;
	var boxId;
	var parent = this;
	var parentObjName;

	this.init = function (initMPos, boxId, parentObjName) {
		var scrollerHeight;
		var scrollHeight;
		var newsBoxes;

		parent.boxId = boxId;
		parent.parentObjName = parentObjName;
		parent.initialMPos = initMPos;
		//parent.sliderPadding = 0;
		scrollHeight = $('div'+parent.boxId+' div.scroll').css('margin-top');
		/*
		tmp = '';
		for(i in scrollHeight)
		{
			tmp += i+':\t'+scrollHeight+'\n';
		}
		$('body').append('<pre>'+tmp+'</pre>');
		return;
		*/
		scrollHeight = scrollHeight.substr(0, scrollHeight.length - 2);
		parent.sliderPadding = scrollHeight;
		scrollerHeight = $('div'+parent.boxId+' div.scroller').css('height');
		scrollerHeight = scrollerHeight.substr(0, scrollerHeight.length - 2);
		scrollHeight = $('div'+parent.boxId+' div.scroll').css('height');
		scrollHeight = scrollHeight.substr(0, scrollHeight.length - 2);
		parent.maxSliderPadding = (scrollerHeight - scrollHeight) - 5;

		parent.selector = new Array('', '');
		parent.line = 200;
		/*
		newsBoxes = $(boxId).children();
		parent.newsHeight = 0;
		//$('body > div:last').get(0).innerHTML += '<pre>'+print_r(newsBoxes[0], '', 0, 1)+'px</pre>';
		for(i = 0; i < newsBoxes.length; i++)
		{
			parent.newsHeight += $(newsBoxes[i]).height();
			parent.line = 100;
			//parent.line = $(newsBoxes[i]).height();
		}
		parent.newsHeight += 2000;
		*/
		elemsheight = 0;
		children = $('#inside').children();
		for(i = 0; i < children.length; i++)
		{
			elemsheight = elemsheight + children.get(i).offsetHeight;
		}
		parent.newsHeight = elemsheight + 500;
		$('body').bind('mousemove', function(e){
			//news.move(e.pageY);
			eval(parent.parentObjName+'.move(e.pageY)');
		});
	}

	this.move = function (newMPos)
	{
		var padding;
		var percentage;
		// var tmp;
		/*
		temp = '';
		for(i in parent)
		{
			temp += i+': '+parent[i]+'\n';
		}
		alert(temp);
		*/
		parent.mPosY = newMPos;
		padding = (parseInt((parent.mPosY - parent.initialMPos)) + parseInt(parent.sliderPadding));
		// tmp = 'mPosY: '+parent.mPosY+'\n'+
			  // 'initialMPos: '+parent.initialMPos+'\n'+
			  // 'diff: '+(parent.mPosY - parent.initialMPos)+'\n'+
			  // 'sliderPos: '+parent.sliderPadding+'\n'+
			  // 'padding: '+padding;
		// tmp = 'newsHeight: '+parent.newsHeight;
		if(padding > parent.maxSliderPadding)
		{
			padding = parent.maxSliderPadding;
		}
		if(padding < 0)
		{
			padding = 0;
		}
		if(isNaN(padding))
		{
			padding = parent.sliderPadding;
		}
		percentage = (padding / parent.maxSliderPadding);
		$('div'+parent.boxId+' div.scroll').css('margin-top', padding+'px');
		padding = Math.round(parent.newsHeight*percentage)*(-1);
		//alert('damn');
		//alert(parent.boxId);
		//$(parent.boxId+' div.scrolled').children().css('margin', '400px');
		$($('div'+parent.boxId+' div.scrolled ').children().get(0)).css('margin-top', padding+'px');
			// tmp += '\nPadded: '+'-'+Math.round(parent.newsHeight*percentage);
		  // $('body > div:last').get(0).innerHTML += '<pre>'+padding+'px'+'</pre>';
	}

	this.unregister = function ()
	{
		$('body').unbind('mousemove');
	}
}

/********************	Init    	**********************/

function Sliders()
{
	var liner;
	var scrolling;
	var boxId;
	var objName;
	var parent = this;

	this.init = function(boxId, objName) {
		//parent.scrolling = 0;
		/*
		alert('starting: '+boxId);
		tmp = '';
		for(i in y)
		{
			tmp += i+': '+y[i]+'\n';
		}
		alert(tmp);
		*/
		if($(boxId+' div.scroll').length > 0)
		{
			//alert('length: '+$(boxId+' div.scroll').length);
			parent.boxId = boxId;
			parent.objName = objName;
			$(boxId+' div.scroll').bind('mousedown', function (e) {
				delete(parent.scrolling);
				parent.scrolling = new Scroller();
				parent.scrolling.init(e.pageY, parent.boxId, parent.objName);
			});
			$(document).bind('mouseup', function (e) {
					if(typeof(parent.scrolling) != 'undefined')
					{
						parent.scrolling.unregister();
					}
			});
			//$('div#scroll').trigger('click', 0);
			parent.liner = new Liner();
			parent.liner.init(boxId, objName);
			if (window.addEventListener)
				window.addEventListener('DOMMouseScroll', $.event.wheel, false);
			window.onmousewheel = document.onmousewheel = $.event.wheel;
		}
	}

	this.foreignMoveUp = function (moveParam)
	{
		//alert(PageObj.addr+PageObj.site);
		window.location.href = PageObj.addr+PageObj.site;
		//$(parent.boxId+' div.scroll').trigger('mousedown');
		//parent.scrolling = new Scroller();
		//parent.scrolling.init(0, parent.boxId, parent.objName);
		//parent.liner.lineUp();
		//parent.liner.lineUp();
		//parent.liner.lineUp();
		//parent.move(moveParam);
		//$(parent.boxId+' div.scroll').trigger('mouseup');
	}
	
	this.move = function (moveParam) {
		parent.scrolling.move(moveParam);
	}

	this.up = function () {
		parent.liner.lineUp();
	}

	this.down = function () {
		parent.liner.lineDown();
	}

	this.unregister = function() {
		if(typeof(parent.liner) != 'undefined')
			parent.liner.unregister();
		$(parent.boxId+' div.scroll').unbind('mousedown');
		$(document).unbind('mouseup');
		$(parent.boxId+' div.strzalek.upSt').unbind('click');
	}
}

/********************	Init    	**********************/

function init()
{
	PageObj = new Page();
	PageObj.init(0);

	highlighter = new CategoryHighlighter();
	highlighter.init();

	tmp = $('#startHighliteBox').length;
	if(tmp > 0)
	{
		if($('#startHighliteBox div.erste').length > 0)
		{
			$('#errorBox').css('padding-left', '180px');
			$('#msgBox').css('padding-left', '180px');
			$('#inside').css('width', '274px');
			$('#inside').css('padding-left', '180px');
		}
		else
		{
			$('#errorBox').css('padding-left', $('#startContent').css('padding-left'));
			$('#msgBox').css('padding-left', $('#startContent').css('padding-left'));
		}
	}

	temp = $('div#inside').children();
	childrenLength = 0;
	for(i = 0; i < temp.length; i++)
	{
		currChild = $(temp[i]).height();
		if(currChild == 0)
		{
			child = $(temp[i]).children();
			for(k = 0; k < child.length; k++)
			{
				childrenLength += $(child[k]).height();
			}
		}
		else
		{
			childrenLength += currChild;
		}
	}
	if(childrenLength > $('div#inside').height())
	{
		$('div#inside').parent().append('<div class="scrollHolder"><div class="strzalek upSt"></div><div class="scroller"><div class="scroll"></div></div><div class="strzalek downSt"></div></div>');
		$('div#inside').attr('class', 'scrolled');
		SlideContent = new Sliders();
		SlideContent.init('#content', 'SlideContent');
	}
	else
	{
		width = $('div#inside').css('width');
		width = parseInt(width.match(/[0-9]+/));
		$('div#inside').css('width', (width+10)+'px');
	}

	//SlideLeft = new Sliders();
	//SlideLeft.init('left');
	blink('blinkering');
	switch(PageObj.site)
	{
		case 'artykuly':
					SiteObj = new Articles();
					SiteObj.init();
					break;
		case 'zamowienia':

					break;
		default:
			//alert(PageObj.site);
	}

	$(window).unload(function() {
		if(PageObj != 'undefined')
		{
			PageObj.unregister();
			PageObj = 'undefined';
		}
		if(SiteObj != 'undefined')
		{
			SiteObj.unregister();
			SiteObj = 'undefined';
		}
		/*
		if(SlideLeft != 'undefined')
		{
			SlideLeft.unregister();
			SlideLeft = 'undefined';
		}
		*/
		if(SlideContent != null && typeof(SlideContent) == 'object')
		{
			SlideContent.unregister();
			SlideContent = 'undefined';
		}
		highlighter.unregister();
		clearTimeout(blinking);
	});
}

function Articles()
{
	var _this = this;

	_this.init = function() {
		$(document).ready(function() {
			if ( typeof console != 'undefined' )
				console.log();
		});
	}

	_this.unregister = function() {
		//alert('unregistering Awaiting Object');
		return true;
	}
}

function Page()
{
	var _this = this;
	var addr;
	var site;
	var params;
/*
	_this.init = function(baseAdresParts) {

		tmp = window.location.href.match(/\/\/([^\/]+\/)*([^\/]+)+\.html#* /);

		temp = '';
		for(i = 1; i <= baseAdresParts; i++)
		{
			temp += tmp[i];
		}
		_this.addr = window.location.href.replace(temp+'.html', '', 'i');
		_this.site = tmp[1].replace('/', '', 'i');
		_this.params = '';
		for(i = 2; i < tmp.length; i++)
		{
			_this.params += tmp[i].replace('/', '', 'i');
		}
	}
*/

	_this.init = function(baseAdresParts) {
		tmp = window.location.href.replace(/\/\//, '/');
		tmp = tmp.split('/');
		temp = 'http://';
		for(i = 1; i <= (baseAdresParts+1); i++)
		{
			temp += tmp[i]+'/';
		}
		_this.addr = temp;
		_this.site = tmp[baseAdresParts+2].replace(/(#.+)*$/, '', i);//tmp[1].replace('/', '', 'i');
		_this.params = new Array();
		for(i = (baseAdresParts+3); i < (tmp.length-1); i++)
		{
			_this.params[_this.params.length] = tmp[i];
		}
		_this.params[_this.params.length] = tmp[tmp.length-1].replace('.html', '', 'i');
	}

	this.gr2zl = function(inVal)
	{
		if(inVal == '' || parseInt(inVal) == NaN)
			return '0,00';
		tmp = ''+(inVal / 100);
		if(tmp == tmp.replace(/\./, ''))
			return tmp+',00';
		return tmp.replace(/\./, ',');
	}

	this.zl2gr = function(inVal)
	{
		if(inVal === '')
			return 0;
		tmp = inVal.replace(/\s/, '');
		inVal = tmp.replace(/,/, '.');
		tmp = parseFloat(inVal);
		if(tmp == NaN)
		{
			tmp = parseInt(inVal);
			if(tmp == NaN)
				return 0;
		}
		return parseInt(tmp*100);
	}

	_this.unregister = function() {

	}
}

$(document).ready(function() {
	init();
});

/********************	CATEGORIES HIGHLIGHTING    	**********************/

function CategoryHighlighter()
{
	var _this = this;
	this.bindings;

	this.init = function()
	{
		_this.bindings = new Array();

		_this.binder();
	}

	this.binder = function()
	{
		for(i in JSONCategories.parental)
		{
			cat = new CatHolder();
			cat.init(i, 1);
			if(cat.elem.length > 0)
			{
				cat.binder();
				_this.bindings.push(cat);
			}
		}
		$('#left > ul > li').each(function(){
			cat = new CatHolder();
			cat.init($(this).attr('id').replace(/cat[0-9]+_/, ''), 2);
			if(cat.elem.length > 0)
			{
				cat.binder();
				_this.bindings.push(cat);
			}
		});
		/*
		for(i in JSONCategories.children)
		{
			cat = new CatHolder();
			cat.init(i, 2);
			if(cat.elem.length > 0)
			{
				cat.binder();
				_this.bindings.push(cat);
			}
		}
		*/
	}

	this.unregister = function()
	{
		for(i in _this.bindings)
		{
			_this.bindings[i].unregister();
		}
	}
}

function CatHolder() {

	var _this = this;
	this.elem;
	this.type;
	this.id;

	this.init = function(id, type)
	{
		_this.id = parseInt(id);
		_this.type = parseInt(type);
		_this.elem = $('#cat'+_this.type+'_'+id);
	}

	this.binder = function()
	{
		if(_this.elem.length > 0)
		{
			switch(_this.type)
			{
				case 1:
					_this.elem.bind('mouseenter', function(){
						_this.highlight();
					});
					_this.elem.bind('mouseleave', function(){
						_this.unhighlight();
					});
					_this.elem.bind('click', function(){
						_this.blockHighlight();
					});
					break;
				case 2:
					_this.elem.bind('click', function(){
						if(isSlidingDown === false)
						{
							isSlidingDown = _this.id;
							_this.slideUp();
							if(_this.slideDown() === false)
							{
								isSlidingDown = false;
							}
						}
						else if(isSlidingDown = _this.id)
						{
							_this.slideUp();
							isSlidingDown = false;
						}
					});
					/*
					_this.elem.bind('mouseleave', function(){
						if(isSlidingDown === _this.id)
						{
							_this.slideUp();
							isSlidingDown = false;
						}
					});
					*/
					break;
			}
		}
	}

	this.slideDown = function()
	{
		if(isSlidingDown === _this.id)
		{
			if(_this.type == 2 && _this.elem.length > 0 && _this.elem.attr('class').match(/selected/i))
			{
				$(_this.elem.children().filter('ul').get(0)).slideDown('fast');
				_this.slideUp();
				//alert('displaying subCategories of '+_this.id);
				return true;
			}
		}

		return false;
	}

	this.slideUp = function()
	{
		if(_this.type == 2 && _this.elem.length > 0)
		{
			$('ul.rozwinMenu').css('display', 'none');
			//alert('hiding subCategories of '+_this.id);
		}
	}

	this.highlight = function()
	{
		if(_this.type == 1 && _this.elem.length > 0)
		{
			if(highlightBlocked === false)
			{
				if(_this.unhighlight())
				{
					_this.elem.attr('class', _this.elem.attr('class').replace(/selected/, '', 'ig')+' selected');
					$('div#left > ul > li').attr('class', '');
					for(i in JSONCategories.parental[_this.id])
					{
						elem = $('#cat2_'+JSONCategories.parental[_this.id][i].idCategory);
						if(elem.length > 0)
						{
							elem.attr('class', elem.attr('class').replace(/selected/, '', 'ig')+' selected');
						}
					}
					for(i in JSONCategories.children[_this.id])
					{
						elem = $('#cat3_'+JSONCategories.children[_this.id][i])
						if(elem.length > 0)
						{
							if(!$(elem.get(0)).attr('class').match(/selected/i))
								elem.each(function() {
									$(this).attr('class', elem.attr('class')+' selected');
								});
						}
					}
				}
				//alert('highlighting subCategories of '+_this.id);
			}
		}
	}

	this.blockHighlight = function()
	{
		if(highlightBlocked === false)
		{
			//alert('switching block state for '+_this.id);
			highlightBlocked = _this.id;
			$.post(PageObj.addr+'saveAsMain/'+_this.id+'.html', {}, function(){}, 'html');
		}
		else if(_this.id === highlightBlocked)
		{
			//alert('switching block state for '+_this.id);
			highlightBlocked = false;
			$.post(PageObj.addr+'unSaveAsMain/'+_this.id+'.html', {}, function(){}, 'html');
		}
		else
		{
			highlightBlocked = false;
			_this.elem.trigger('mouseenter');
			highlightBlocked = _this.id;
		}
	}

	this.unhighlight = function()
	{
		if(_this.type == 1 && _this.elem.length > 0)
		{
			if(highlightBlocked === false)
			{
				$('#left > ul > li').each(function(){
					$(this).attr('class', $(this).attr('class').replace(/selected/, '')+' selected');
				});
				$('#left ul.rozwinMenu > li').each(function(){
					$(this).attr('class', $(this).attr('class').replace(/selected/, '')+' selected');
				});
				$('#right > ul > li').each(function(){
					$(this).attr('class', $(this).attr('class').replace(/selected/, ''));
				});
				//alert('highlighting subCategories of '+_this.id);
			}
		}
		return true;
	}

	this.unregister = function()
	{
		_this.elem.unbind();
	}
}

function showImages(imageId)
{
	$.get(PageObj.addr+'ajax/images/'+imageId+'.html', {}, function(data) {displayImg(data);});
}


function switchLang(to)
{
	site = false;
	switch(to)
	{
		case '#o_nas_Polish':
			  site = 'o_nas';
			  break;
		case '#o_nas_English':
			  site = 'o_nas_en';
			  break;
		case '#o_nas_Deutch':
			  site = 'o_nas_de';
			  break;
	}
	if(site === false)
		return false;
	if($(to).length <= 0)
	{
		$('#inside > div').append('<div id="'+to.replace(/\#/, '')+'"></div>');
		$(to).load(PageObj.addr+site+'.html '+to);
	}
	try {
		$('#o_nas_Polish').css('display', 'none');
	} catch(e) { site = false; }
	try {
		$('#o_nas_English').css('display', 'none');
	} catch(e) { site = false; }
	try {
		$('#o_nas_Deutch').css('display', 'none');
	} catch(e) { site = false; }
	$(to).css('display', 'block');
}

function displayImg(data)
{
	$.modal(data, {opacity:50, overlayCss: {backgroundColor:"#000"}, containerCss: {height: 680, width: 640}});
}