/* funkcjonalność usuwania niepotrzebnych pustych znaków */
function trim(str, chars) {	var strr = new String(str); return ltrim(rtrim(strr, chars), chars); }
function ltrim(str, chars) { chars = chars || "\\s"; return str.replace(new RegExp("^[" + chars + "]+", "g"), ""); }
function rtrim(str, chars) { chars = chars || "\\s"; return str.replace(new RegExp("[" + chars + "]+$", "g"), ""); }

window.addEvent('domready', function(){
	/* hack kontaktowy */
//	$$('dl#related dt').each(function(el) {
//		if(String(el.getText()).match(/Kontakt/)) {
//			el.getNext().setStyle('display', 'none');
//			el.setStyle('display', 'none');
//		}
//	});
	
	/* IE6 menu hack #1 */
	if(window.ie6) {
		var bg = new Element('div');
		bg.setAttribute('id', 'belkaBgIe');
		bg.injectInside($('belka'));
	}
	
	/* IE6 header hack, zunifikowany na wszystko - wpisanie SWFObjecta */
	if($$('#flashHeader').length > 0 && bottom_so) {
		bottom_so.write("flashHeader");
	}
	
	/* IE6 float hack */
	if(window.ie6) {
		function repairFloat() {
			var winWidth = window.getWidth();
			
			if(winWidth < 1045) {
				$$('html').each(function (el) { el.setStyle('overflow-x', 'scroll')});
				window.scrollTo(1000, 0);
				$$('#content').each(function (el) { el.setStyle('width', 1045)});
				$$('#footer').each(function (el) { el.setStyle('width', 1045)});
			}
			else {
				$$('#content').each(function (el) { el.setStyle('width', '100%')});
				$$('#footer').each(function (el) { el.setStyle('width', '100%')});
				$$('html').each(function (el) { el.setStyle('overflow-x', 'hidden')});
			}
		}
		window.onresize = repairFloat;
		repairFloat();
		repairFloat();
	}
	
 	/* obsługa rozwijalnego lewego menu */
	if($defined($E('#sidemenu'))) {
		// utwórz efekt slajdu
		var mySlide = new Fx.Slide('sidemenucontent');
	 	$$('.dropper').each(function(item) {
	 		item.addEvent('click', function(e){
				e = new Event(e);
				mySlide.toggle();
				$E('a#sideMenuArrow').toggleClass('dropdown');
				e.stop();
			});
	 	});
		window.menuLeft = mySlide;

		function trimMenu() {
			// rozciągnięcie aktywnego fragmentu lewego menu w pionie
			var sideMenuContent = $$('#sidemenucontent > li');
			var sizeall = 434 - (sideMenuContent.length-1)*26;
			sideMenuContent.removeProperty('style');
			sideMenuContent.each(function (el) {
				var ul = el.getElement('ul');
				if($defined(ul) && ul.getStyle('display') == 'block') {
					el.setStyle('height', sizeall);
				}
			});
		}
		trimMenu();
		
		// rozciąganie innych elementów
		$$('#sidemenucontent strong').each(function(strong) {
			strong.addEvent('click', function(e) {
				if(strong.getNext().getStyle('display') == 'block') {
					strong.getNext().setStyle('display', 'none');
				}
				else {
					strong.getParent().getParent().getElements('li ul').setStyle('display', 'none');
					strong.getNext().setStyle('display', 'block');
					if(strong.getParent().hasClass('special')) {
						strong.setStyle('display', 'none');
						strong.getNext().getElement('li > ul').setStyle('display', 'block');
					}
					else {
						if(!strong.getParent().getParent().getParent().hasClass('special'))
							$E('#sidemenucontent li.special strong').setStyle('display', 'block');
					}
				}
				trimMenu();
			});
		});	
		
		// ustawienie ostatniego elementu
		$$('#sidemenucontent li').getLast().addClass('last-child');
		
		// ukrycie elementu special jeśli rozwinięte coś pod spodem
		var special = $E('#sidemenucontent li.special ul');
		if($defined(special) && special.hasClass('selected')) special.getPrevious().setStyle('display', 'none');

	
		// inicjalne rozwinięcie / schowanie menu
		if($E('div#sidemenu').hasClass('menuInitClosed')) {
			menuLeft.hide();
			$E('a#sideMenuArrow').toggleClass('dropdown');
		}
		else {
			menuLeft.show(); 
		}
		
		// pokazanie menu w całej okazałości ;)
		$('sidemenu').setStyle('visibility', 'visible');
	}
	/* koniec obsługi menu lewego */
	

	/* obsługa wyświetlania przykładowych kalkulacji */
	$$('#infoCalculations').each(function(calc) {
		calc.getElements('#box dd > a').each(function(a) {
			var href = String(a.getProperty('href')).split('#id_')[1];
			
			a.addEvent('click', function(e) {
				var e = new Event(e); e.stop();
				
				var req = new Ajax('/tools/getter.php', {
					method:'post',
					data: {
						'model_id': href
					},
					onSuccess: function(data) {
						var stub = new Element('div');
						stub.innerHTML = data;
						$$('#calculation').each(function(el) {
							el.remove();
						});
						stub.getElement('div').injectAfter($E('#infoCalculations #box'));
						$$('#calculation').each(function(el) {
							el.getElement('a.close').addEvent('click', function (ev) {
								var ev = new Event(ev); ev.stop();
								el.remove();
							});
							el.setStyle('display', 'block');
						});
					}
				}).request();
			});		
		});
	});
	
	/* obsługa stronicowanych elementów */
	pageSystem = $$('.page');
	pageSystem.each(function(page, index) {
		var next, prev;
		
		page.setProperty('id', 'page-'+(index+1));

		if($defined(pageSystem[index-1])) {
			prev = new Element('a');
			prev.addClass('arrow');
			prev.setProperty('href', '#page-'+(index));
			prev.setText('Wstecz: '+pageSystem[index-1].getProperty('title'));
			prev.injectInside(page);
		}		
		
		if($defined(pageSystem[index+1])) {
			next = new Element('a');
			next.addClass('arrow');
			next.setProperty('href', '#page-'+(index+2));
			next.setText('Dalej: '+pageSystem[index+1].getProperty('title'));
			next.injectInside(page);
		}
		
		page.getElements('a.arrow').each(function (a) {
			a.addEvent('click', function(e) {
				var e = new Event(e); e.stop();
				var href = String(a.getProperty('href')).split('#')[1];

				pageSystem.each(function(p) {
					p.setStyle('display', 'none');
				});

				var destElem = $E('#'+href);
				if($defined(destElem)) {
					destElem.setStyle('display', 'block');
				}				
			});

		});
	});
	// pokazanie pierwszego
	if(pageSystem.length > 0) {	pageSystem[0].setStyle('display', 'block'); }
	/* koniec stronicowania */
	
	
	/* obsługa drukowania */
	$$('#printIcon').addEvent('click', function(e) {
		print();
	});
		
	/* dodanie window.open dla klasy openNew */
	$$('a.openNew').each(function(el) {
		el.addEvent('click', function(e) {
			var e = new Event(e); e.stop();
			var newWin = window.open(el.getProperty('href'));
		});
	});
});