/* 
	Derived from a script by Dziudek. 
	Author: GavickPro <support@gavick.com>     
	version: 2.6 - dev
*/

window.addEvent("load", function(){
	
	/*
		Ilość user-position na stronie
	*/
	
	var GA = 5;
	
	/*
		Maksymalna  ilość kolumn w każdym user-position
	*/
	
	var GMA = [3,3,3,3,3,3];
	
	/*
		Tablica marginesów - każda komórka tablicy to kolumna w user-position
		Pierwszy element komórki to lewy margines, a drugi element komórki to
		prawy margines
	*/
	
	var margin_tab = [
		false,
		[0,0],[10,0],[10,0],
		[0,0],[10,0],[10,0],
		[0,0],[10,0],[10,0],
		[0,0],[10,0],[10,0],
		[0,0],[10,0],[10,0],
		[0,0],[10,0],[10,0]
	];
	
	/*
		Bazowe przesunięcie dla pętli
	*/
	
	var base = 1;
	
	/*
		Indeksowanie dla sum marginesów
	*/
	
	var k = 1; 
	
	var sum = [false];
	
	/*
		Uzupełnienie tablicy marginesów
	*/
	
	margin_tab.each(function(el,i){
		sum[i] = (!!el) ? (el[0] + el[1]) : false;
	});

	/*
		Pętla wykonywana dla każdego user-position
	*/
	
	for(var j=0;j<GA;j++){
		/*
			Jeżeli dany user-position jest zdefiniowany
		*/
		
		if($("user_position-"+(j+1))){ 
			
			/*
				Pobranie szerokości user-position
			*/
			
			var parent_width = ($("user_position-"+(j+1)).getSize().size.x) - 1; 
			
			/*
				Obramowanie modułów
			*/
			
			var border = 0;
			
			/*
				Tablica modułów
			*/
			
			var gk_array = [false];
			
			/*
				Ilość aktywnych [widocznych na stronie] kolumn
			*/
			
			var a = 0;
			
			/*
				Suma marginesów do odjęcia od długości bloku user-position
			*/
			
			var sum_t = 0;			
			
			/*
				Jeżeli jest zdefiniowana kolumna lewa
			*/
			
			if($E("div.us_"+(j+1)+"-left")){
				
				/*
					Dodaj w tablicy na pozycji base+1
				*/
				
				gk_array[base+1] = $E("div.us_"+(j+1)+"-left");
				
				/*
					Zwiększ sumę marginesów o marginesy tego bloku
				*/
				
				sum_t = sum_t + sum[base+1];
				
				/*
					Zwiększenie ilości aktywnych kolumn [potrzebne przy obliczaniu szerokości każej kolumny]
				*/
				
				a++;
			}else{
				gk_array[base+1] = false;
			}
			
			/*
				Jeżeli są zdefiniowane kolumny środkowe
			*/
			
			if($E("div.us_"+(j+1)+"-center")){
				
				for(var k = 2;k < GMA[j];k++){
					
					if($ES("div.us_"+(j+1)+"-center")[k-2]){
						if($E("div.us_"+(j+1)+"-center") && !$E("div.us_"+(j+1)+"-left")){
							gk_array[base+k-2] = $E("div.us_"+(j+1)+"-center");
							
							gk_array[base+k] = false;
							
							sum_t = sum_t + sum[base+k-2];
							
							a++;
						}else{
							gk_array[base+k] = $ES("div.us_"+(j+1)+"-center")[k-2];
						
							sum_t = sum_t + sum[base+k];
						
							a++;
						}
					}else{
						gk_array[base+k] = false;
					}
				}
			}
			
			/*
				Jeżeli jest zdefiniowana kolumna prawa
			*/
			
			if($E("div.us_"+(j+1)+"-right")){
				
				/*
					Dodaj w tablicy na pozycji base+GMA
				*/
				
				gk_array[base+GMA[j]] = $E("div.us_"+(j+1)+"-right");
				
				/*
					Zwiększ sumę marginesów o marginesy tego bloku
				*/

				sum_t = sum_t + sum[base+GMA[j]];
				
				/*
					Zwiększenie ilości aktywnych kolumn [potrzebne przy obliczaniu szerokości każej kolumny]
				*/
				
				a++;
			}else{
				gk_array[base+GMA[j]] = false;
			}
			
			
			/*
				Obliczanie szerokości pojedyńczego modułu:
				od szerkości user-position odejmujemy sumę marginesów
				dzielimy to przez ilość widocznych kolumn
			*/
			
			var width = Math.floor((parent_width - sum_t) / a);
			
			var ix = 0;
			var str = '';
			
			/*
				Poprawka dla IE - usuwanie pól "undefined" z tablicy
			*/
			
			if(window.ie){
				var gk_array_n = [];
				var i = 0;
				gk_array.forEach(function(el){
					if($defined(el)){
						gk_array_n[i] = el;
						i++;
					}
				});
				
				gk_array = gk_array_n;
			}
			
			/*
				Nadanie szerokości i marginesów elementom - kolumnom
			*/
			
			gk_array.forEach(function(el){
				if(el != false){
					el.setStyles({"width":(width-(2*border)) + "px"});
				
					el.setStyles({
						"margin-right" : margin_tab[base+ix-1][1] + "px",
						"margin-left" : margin_tab[base+ix-1][0] + "px"
					});
				}

				ix++;
			});
			
			/*
				Zwiększenie indeksu bazowego o ilość elementów w danym user-position
			*/
			
			base = base + GMA[j];
		}
	}
	
	$$("#jwscroller-inner img").setStyle("border","none");
});