function getCols() {

	var windowSize = getSize();

	var window_width = windowSize[0];
	var nav = 0;
	if($("#magazin").length > 0){
		nav = window_width/4;
	}
	return ((window_width-nav)/2/270 | 0)

} 

function getRowSum(myx,myy,heights){
	var sum = 0;	
		for(yi=0; yi<myy ;yi++){
			sum = sum + heights[myx][yi];
		}

	return sum;	
}


function isBigEntry(elem){
	
	images = elem.getElementsByTagName('img');
	
	for (var i = 0; i < images.length; i++){
		if(300 < images[i].offsetWidth){
			if(images[i].offsetWidth!=520){  //Dies basier auf einem Fehler in FF ist eher eine Notlösung
				return false;			
			}
			return true;
		}	
	}
	return false;
	
} 

function getHeights(){
	//Generiuert ein Arry mit der gesammthöhe der einzelnen Spalte. Daraus wird dann das margin berechnet.
	//Die x und y variablen ist die x/y zuordnung im Array und auch im in der Front
	var cols = getCols();
	if(cols>3){cols=3;}

	var elem = $("#content").find(".entry");
	var heights = new Array();
	var y=0;
	var x = 0;
	var oldx = 0;
	var umbruch=false;
	var offset = 0;
	var yoffset = 0;

	var marginTop = 0;
	var myTop = 0;
	var lastTop = 0;
	
	//Gibt es eine Subnavi?
	var xoffset = 0;	
	var margin = new Array();
	if(cols>1){
		//Create empty array
		for(ii = 0; ii<cols; ii++){
			heights[ii] = new Array();
		}
		
		
		
		for(i=0; i< elem.length;i++){
			yoffset=0;
			oldx = (i-1+offset) % cols;
			x = (i+offset) % cols;
			elem[i].style.left = xoffset+x*(250+20)+"px";
			//Big Div Handler
			//alert(heights);
			if(isBigEntry(elem[i])){
				if(y==0){	//erste reihe
						if(x==0){
							myTop = 0;
							lastTop =  0;
							
							offset = offset + 1;
							
							heights[0][0] = elem[i].offsetHeight;
							heights[1][0] = elem[i].offsetHeight;
							elem[i].style.left = xoffset+"px";
							elem[i].style.left = xoffset+"px";
														
						}else{
							if(x  == cols-1 ){
								//kein Eintrag mehr platz
								//aktuelles Feld ist gleich hoch wie das links nebendran
								heights[x][y] = heights[oldx][0];
	
								//schiebe grosses div eine Reihe nach oben und fülle 2 Felder
								heights[0][y+1] = elem[i].offsetHeight + heights[0][0];
								heights[1][y+1] = elem[i].offsetHeight + heights[1][0];
								elem[i].style.left = xoffset+"px";
								
								//Offset ist +2 ein leeres plus ein zusätzliches feld durch das grosse feld
								//Offset ist +2 ein leeres plus ein zusätzliches feld durch das grosse feld
								offset = offset + 2;
								
								if(heights[0][0]>heights[1][0]){
									myTop	= heights[0][0];
								}else{
									myTop	= heights[1][0];
								}
								lastTop =  heights[oldx][0];
								lastTop =  heights[oldx][y];
								myTop =  heights[0][y];
	
							}else{
								//Eintrag hat platz
								// grosses div => fülle 2 Felder
								heights[x][y] = elem[i].offsetHeight;
								heights[x+1][y] = elem[i].offsetHeight;
								//Offset ist +1 ein zusätzliches feld durch das grosse feld
								offset = offset + 1;
								lastTop =  heights[oldx][0];
								myTop =  0;
							}
						}
				}else{		
					//Ab 2ter Reihe
					//incrementiere y, falls kein eintrag mehr am ende platz hat
					if(x  == cols-1){

						//kein Eintrag mehr platz
												//aktuelles Feld ist gleich hoch wie das links nebendran
						heights[x][y] = heights[oldx][y];
						
						if(heights[0][y]>heights[1][y]){
							maxheight =heights[0][y];
						}else{
							maxheight =heights[1][y];
						}
						
						//schiebe grosses div eine Reihe nach oben und fülle 2 Felder
						heights[0][y+1] = elem[i].offsetHeight + maxheight;
						heights[1][y+1] = elem[i].offsetHeight + maxheight;
						//Offset ist +2 ein leeres plus ein zusätzliches feld durch das grosse feld
						elem[i].style.left = xoffset+"px";
						offset = offset + 2;
						
						//lastTop =  heights[oldx][y];
						//myTop =  heights[x][y];
						
						lastTop =  heights[oldx][y];
						myTop =  heights[0][y];
						
					}else{
						//Eintrag hat platz
						// grosses div => fülle 2 Felder
						if(heights[x][y-1]< heights[x+1][y-1]){
							maxheight =heights[x+1][y-1];
						}else{
							maxheight =heights[x][y-1];
						}
							heights[x][y] = elem[i].offsetHeight +maxheight ;
							heights[x+1][y] = elem[i].offsetHeight+ maxheight;
							
						
								lastTop =  heights[oldx][y-1];
							
							
						
						
						myTop =  maxheight;
	
						//Offset ist +1 ein zusätzliches feld durch das grosse feld
						offset = offset + 1;
					}
				}
				//DIVS sind relativ angeordnet 
				//-> pos der letzen Reihe minus Pos der aktuellen Reihe ergibt das margin
				marginTop = lastTop - myTop; 
				
				if(x==0){
							yoffset = 20;
						}
				
				margin[i] = -marginTop+yoffset;
				
				
				//incrementiere y, falls kein eintrag mehr am ende platz hat
	
				if(x >= cols-2){
					//kein Eintrag mehr platz
					umbruch = true;
					y++;	
				}else{
					umbruch = false;
				}
				elem[i].style.width = 520+"px";
	
				
			}else{
	//************** KLEINER EINTRAG ********************************************************************************************
	
				if(y==0){	//erste reihe
						heights[x][y] = elem[i].offsetHeight;

						if(x==0){
							myTop = 0;
							lastTop =  0;
							elem[i].style.left = xoffset+"px";

							
						}else{
							myTop = 0;
							lastTop =  heights[oldx][0];
						}
						
		
				}else{	
	
						//Addiere immer letzen spaltenwert dazu
						heights[x][y] = elem[i].offsetHeight + heights[x][y-1];
	
						//Bereche margin: 
						
						if(x==0){
							
							myTop = heights[x][y-1];
							lastTop = heights[oldx][y-1];
						}else{
							myTop = heights[x][y-1];
							lastTop = heights[oldx][y];
						}
						
						//alert(myTop+" -- l "+lastTop);
	
						
				}
				//DIVS sind relativ angeordnet 
				//-> pos der letzen Reihe minus Pos der aktuellen Reihe ergibt das margin
						marginTop = lastTop - myTop ; 
						if(x==0){
							yoffset = 20;
						}
						margin[i] = -marginTop+yoffset;
	
				
				//incrementiere y, falls kein eintrag mehr am ende platz hat
				if(x  >= cols-1){
					//kein Eintrag mehr platz
					umbruch = true;
					y++;	
				}else{
					umbruch = false;
				}
			}		
	
			
	
		}
	}else{
		for(i=0; i<elem.length;i++){
			if(isBigEntry(elem[i])){
				elem[i].style.width = 500+"px";
			}
		}
	}
	
	//PAGER
	if(x==0){
		//alert("x==0");
	}
		//var temp = elem[i].style.pixelHeight+0+'px';
		//elem[i].style.margin = margin[i]+ 0+"px 0 0 0";
		
	///
	//alert(heights);
	return margin;
}






