// Baut die Bilderleiste aus dem mit PHP erstellten Array (Pfad, Breite, Höhe)

var usedIndex = new Array();
var indexUsedArray = new Array();
var index;

buildImgBar();

function buildImgBar() {

	index = getIndex();
	var thisWindowWidth = getInnerWidth();
	var countImgBarWidth = 0;
	var imgBarPadding = 0;
	var thisColDef;
	
	var trCount = 0;
	//var tdTypeTableArray = createTrueFalseArray(maxTd*maxTr);  //automatisch: innere Tabelle ja/nein
	var tdTypeTableArray = new Array(true, false, false, false, false, false, true, false, true, false, false, false); //vorggeben: innere Tabelle ja/nein
	var i = 0;
	
	while (trCount < maxTr){
		document.write("\t<tr>\n");
		
		var tdCount = 0;
		while (tdCount < maxTd){
			thisColDef = getRandomIndex(colDefTxtArray);
			
			if (i == maxTr*maxTd-1){
				drawArrowFieldTd(colDefTxtArray[thisColDef]);
			} else {
				if (tdTypeTableArray[i]){
					drawLogoFieldTd(colDefTxtArray[thisColDef]);
				} else {
					drawImgFieldTd(colDefTxtArray[thisColDef]);
				}
			}			
			i++;
			tdCount++;
		}
		
		document.write("\t</tr>\n");
		trCount++;
	}
	
}


// *************************************************************
// Funktionen
// *************************************************************

function drawArrowFieldTd(colTxt){
	document.write("\t\t<td id='TD_pfeil_"+colTxt+"'>&nbsp;</td>\n");
}

function drawLogoFieldTd(colTxt){
	document.write("\t\t<td id='TD_logo_"+colTxt+"'>&nbsp;</td>\n");
}

function drawImgFieldTd(colTxt){
	document.write("\t\t<td id='TD_"+colTxt+"'>\n");
	
	document.write("\t\t\t<table id='TAB_start_img' border='0' cellpadding='0' cellspacing='0'>\n")
	var innerTrCount = 0;
	var innerTdTypeTableArray = createTrueFalseArray(innerMaxTd*innerMaxTr);
	var n = 0;
	while (innerTrCount < innerMaxTr){
		document.write("\t\t\t\t<tr>\n");
		
		var innerTdCount = 0;
		while (innerTdCount < innerMaxTd){
			if (innerTdTypeTableArray[n] && index < pictArr.length-1){
				document.write('\t\t\t\t\t<td id="TAB-start_TD_img"><img src="'+ pictArr[index][0] +'" width="'+ pictArr[index][1] +'" height="'+ pictArr[index][2] +'"></td>\n');
				index = getIndex();
			} else {
				document.write("\t\t\t\t\t<td id='TAB-start_TD_img'>&nbsp;</td>\n");
			}
			n++;
			
			innerTdCount++;
		}
		
		document.write("\t\t\t\t</tr>\n");
		innerTrCount++;
	}
	
	document.write("\t\t\t</table>\n");
	
	document.write("\t\t</td>\n");
}



// gibt ein Array mit der Länge (thisLength) mit 'true' und 'false' zurück
function createTrueFalseArray(thisLength){
	var returnArray = new Array();
	var i = 0;
	while (i < thisLength){
		if (Math.random() > 0.5){
			returnArray.push(false);
		} else {
			returnArray.push(true);
		}
		i++;
	}
	return returnArray;
}



function getRandomIndex(valueArray){
	var index = (valueArray.length)*Math.random();
	index = Math.round(index);
	if (index >= valueArray.length){index = valueArray.length-1;}	
	if (checkRandomIndex(index)){
		indexUsedArray.push(index);
		return index;
	} else {
		return getRandomIndex(valueArray);
	}
}

function checkRandomIndex(indexToBeChecked){
	var checkOk = false;
	if (indexUsedArray.length > 0){
		// keine gleichen Felder neben einander
		if (indexToBeChecked == indexUsedArray[indexUsedArray.length-1]){
			checkOk = false;
		} else {
			// keine gleichen Felder übereinander
			if (indexUsedArray.length < maxTd){
				checkOk = true;
			} else {
				if (indexToBeChecked == indexUsedArray[indexUsedArray.length-maxTd]){
					checkOk = false;
				} else {
					checkOk = true;
				}
			}
		}
	} else {
		checkOk = true;
	}
	
	return checkOk;
}


function getInnerWidth(){
	if (window.innerWidth) {
    return window.innerWidth;
  } else if (document.body && document.body.offsetWidth) {
    return document.body.offsetWidth;
  } else {
    return 800;
  }
}


function getIndex(){
	if (usedIndex.length < pictArr.length){ 
		var newIndex = Math.round((Math.random()*(pictArr.length-1)));
		var check = checkIndex(newIndex);
		if (check){
			usedIndex.push(newIndex);
			return newIndex;
		} else {
			return getIndex();
		}
	} else {
		return -1;
	}
}


function checkIndex(index){
	var a = 0;
	var indexOk = true;
	while (a < usedIndex.length){
		if (usedIndex[a] == index){
			indexOk = false;
			a = usedIndex.length;
		} else {
			a++;
		}
	}
	
	return indexOk;
}
