debug_array = new Array();
debugmode = false;
loading_attempts = 0;
max_attempts = 10;
window.onload = function() {
    page_index = 0;
    ini_gallery();
}

function ini_gallery() {
    if (document.getElementById('IMG_ID_0')) {
	 debug_msg(g_start +" | "+ g_show);
	 //alert(g_start +" | "+ g_show);
     if (g_show == "-1"){
	  	  g_show = bild_id[0];
		 }
		  loadMainImageSimple(g_show);
       // reloadimages(g_start + g_range);
    } else {
       // loadMainImageSimple(g_start + g_show);
    }
	 imageID = g_show;
	 add_printfunction();
	 /*
	debug_msg("2n reload (cleaner)");
	setTimeout("reloadimages("+g_start + g_show+")",1000);

	*/
	bid = g_start + g_show;
	//setTimeout("loadMainImage("+bid+")",3000);
	
}

//////////////////////////////////////////////////////////////////////////////////////////////////
// Ladevorgang 1: bereits fertige Bilder in Platzhalter laden bzw Warteschleifenbilder ODER Nummern
//////////////////////////////////////////////////////////////////////////////////////////////////

function reloadimages(t) {
    debug_msg("reload images: "+t);
    if (icons) {

        for (x = g_start; x <= t; x++) {
            //bereits fertige Bilder in Platzhalter laden bzw Warteschleifenbilder
				if (document.getElementById('IMG_ID_' + eval(x - g_start)) != null){
            document.getElementById('IMG_ID_' + eval(x - g_start)).alt = "Bild " + eval(x + 1) + " von " + max_icons;
            document.getElementById('IMG_ID_' + eval(x - g_start)).title = "Bild " + eval(x + 1) + " von " + max_icons;
				}
            //++++
				 if (debugmode){
				debug_msg("Platzhalter oder Cache (LIME): "+x);
				
            document.getElementById('IMG_ID_' + eval(x - g_start)).style.border = "solid lime 2px";
}
            document.getElementById('IMG_ID_' + eval(x - g_start)).src = bild[x];
            //alert(x+" -> "+bild[x]);
            }
        		x_reloadimages(g_start);
    }
	 

    if (!icons) {  // vorschau quadrate nummern
      
        for (x = g_start; x <= t; x++) {

            document.getElementById('IMG_ID_' + eval(x - g_start)).style.padding = "4px;";
            document.getElementById('IMG_ID_' + eval(x - g_start)).style.width = "12px";
            document.getElementById('IMG_ID_' + eval(x - g_start)).style.height = "12px";

            if (x == g_show) {
                document.getElementById('IMG_ID_' + eval(x - g_start)).className = "bttn_normal";
            } else {
                document.getElementById('IMG_ID_' + eval(x - g_start)).className = "bttn_active";
            }

            if (eval(x + 1) < 10) {
                button_nr = "&nbsp;" + eval(x + 1);
                document.getElementById('IMG_ID_' + eval(x - g_start)).innerHTML = button_nr;
            } else {
                button_nr = eval(x + 1);
            }
            document.getElementById('IMG_ID_' + eval(x - g_start)).innerHTML = button_nr;
            //document.getElementById('IMG_ID_'+eval(x-g_start)).style.color = "black";
            }
    }
}

/////////////////////////////////////////////////////////////////////////////////////
//Ladevorgang 2 (Ersetzen von Ajax-Nachladesymbol) ->RED DASHED ->GRAY DASHED
/////////////////////////////////////////////////////////////////////////////////////
function x_reloadimages(t) {

    if (t <= (g_start + g_range)) {//+1?
  
		//alert("-!->"+t);
		   //falls Bild in Load-Array Bild generieren ansonsten aus Cache ziehen
        if (load_array.find(t) != false) {
         //alert("Generieren! -> " + t);
            // ICON generieren
          
            if (document.getElementById('IMG_ID_' + eval(t - g_start))) {
                //++++
					  if (debugmode){
                document.getElementById('IMG_ID_' + eval(t - g_start)).style.border = "dashed red 3px";
					 }
					 //////////////////////BILD BERECHNEN//////////////////////////////////////////
					  debug_msg("Bildberechnen (RED): "+t);
					  
					  /* hoehe = 8; breite = 8; */
               //setRequest('id=51&breite=' + breite + '&hoehe=' + hoehe, t);
					 bid =  bild_id[t];
					   debug_msg("Bild-------->: "+bid);
					 setRequest('id=' +bid+ '&breite=' + breite + '&hoehe=' + hoehe, t);
                ////////////////////////////////////////////////////////////////
					 
					 //alert(document.getElementById('IMG_ID_' + eval(t - g_start)).src+"-->"+t);
                } else {
                //zu Testen--->
					 debug_msg("NV: "+eval(t-g_start));
                }
					 
					 
					 
     } else {
		    // ICON aus cache ziehen // ICON Link aus Array "bild[]" laden
       // alert(" aus Cache-> " + t);
         
           
            if (document.getElementById('IMG_ID_' + eval(t - g_start))) {
                //zu Testen--->alert("NV: "+eval(t-g_start));
                document.getElementById('IMG_ID_' + eval(t - g_start)).alt = "Bild " + eval(t + 1) + " von " + max_icons;
                document.getElementById('IMG_ID_' + eval(t - g_start)).title = "Bild " + eval(t + 1) + " von " + max_icons;

                if (document.getElementById('IMG_ID_' + eval(t - g_start)).src != bild[t]) {
                    document.getElementById('IMG_ID_' + eval(t - g_start)).src = bild[t];
                    //++++
                    debug_msg("Cache --> "+t); 
						  if (debugmode){
						  document.getElementById('IMG_ID_' + eval(t - g_start)).style.border = "dashed Gray 3px";
						  }
                }
            }
          
            }
}else{

	//alert("Gallery finished!");
	if (startvar) {
		  //setTimeout("loadMainImage("+g_show+")",500);
            //loadMainImage(g_show);
            startvar = false;
        }
				
}


 //
        
if (t <= (g_start + g_range)) {
//alert(t +" <= "+g_start +"+"+ g_range);
 x_reloadimages(t+1);
    		} else {
			//setTimeout("x_reloadimages("+g_start + g_show+")",1000);
			setTimeout("correct_images()", 2500);
			}

}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


function loadMainImage(nr) { // mit nummertasten
//alert(document.getElementById('IMG_ID_'+nr).src);

//nr--;
document.getElementById('ajax_content').src = "";
debug_msg("loadMainImage: "+nr);
    page_index = nr;
    nr += g_start;

    if (!icons) {
        for (x = 0; x <= g_range; x++) {
            document.getElementById('IMG_ID_' + x).className = "bttn_active";
        }
        document.getElementById('IMG_ID_' + eval(nr - g_start)).className = "bttn_normal";
    } else {
        for (x = 0; x <= g_range; x++) {
            document.getElementById('IMG_ID_' + x).style.border = "solid white 2px";
        }
        //alert("nr: "+nr+" /g_start: "+g_start);
        if (document.getElementById('IMG_ID_' + eval(nr - g_start))) {
            //select frame
            document.getElementById('IMG_ID_' + eval(nr - g_start)).style.border = "solid silver 2px";
        }
    }

    g_show = nr;
/**/
    mainWidth = bild_breite[nr];
    mainHeight = bild_hoehe[nr];
    img_id = bild_id[nr];
    imageID = bild_id[nr];
    if (document.getElementById('comment')) {
        document.getElementById('comment').innerHTML = '';
    }

    main_setRequest('id=' + eval(img_id) + '&breite=' + main_breite + '&hoehe=' + main_hoehe);
    if (document.getElementById('ajax_content')) {
        document.getElementById('ajax_content').className = "centerimg";
        document.getElementById('ajax_content').src = dpath + "mmsgallery/images/ajax-loader.gif";
    }
    add_printfunction();

}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**/
function loadMainImageSimple(nr) { //ohne nummertasten
   /*
	 page_index = nr;
    nr += g_start;
    g_show = nr;
	 */
    mainWidth = bild_breite[nr];
    mainHeight = bild_hoehe[nr];
   /* img_id = bild_id[nr];*/
	
	
    imageID = bild_id[nr];
    if (document.getElementById('comment')) {
        document.getElementById('comment').innerHTML = '';
    }
    main_setRequest('id=' + nr + '&breite=' + main_breite + '&hoehe=' + main_hoehe);

    if (document.getElementById('ajax_content')) {
        document.getElementById('ajax_content').className = "centerimg";
        document.getElementById('ajax_content').src = dpath + "mmsgallery/images/ajax-loader.gif";
    }

}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////
function correct_images() {
debug_msg("correct images");
    if (icons) {
        unloaded_image = false;
        for (t = g_start; t < g_start + (g_range + 1); t++) {
            if (document.getElementById('IMG_ID_' + eval(t - g_start))) {
				img_src = document.getElementById('IMG_ID_'+eval(t-g_start)).src;
				img = document.getElementById('IMG_ID_'+eval(t-g_start));
				
				// || (img_src.indexOf("error2") != -1)
                if ((img_src == loading_image) || (img_src == "")) {
                    unloaded_image = true;
						bid =  bild_id[t];
					   debug_msg("Bild-------->: "+bid);
					 setRequest('id=' +bid+ '&breite=' + breite + '&hoehe=' + hoehe, t);
						  
//
  //                  setRequest('id=' + eval(t + 1) + '&breite=' + breite + '&hoehe=' + hoehe, t);
                   
						  if(debugmode){
						   //++++
						  img.style.border = "dashed yellow 5px";
						
						  }
						  if (img_src.indexOf("error") != -1){
						 // img.style.border = "dashed blue 5px";
						  document.getElementById('IMG_ID_'+eval(t-g_start)).src = loading_image;
						  }
						  
                    }else{
						   if(debugmode){
				
						  img.style.border = "solid yellow 5px";
						   }
						  	 if (img_src.indexOf("error") != -1){
							// img.style.border = "dashed blue 5px";
							 document.getElementById('IMG_ID_'+eval(t-g_start)).src = loading_image;
							 }
						 
						  }
            }
        }
        if (document.getElementById('ajax_content').src == loading_image) {
            //alert("Mainimage!");
            main_setRequest('id=' + eval(img_id) + '&breite=' + main_breite + '&hoehe=' + main_hoehe);
        }

        if ((unloaded_image)&&(loading_attempts < max_attempts)) {
		 //alert("Unloaded Images!");
		 // setTimeout("correct_images()", 1500)
		  // setTimeout("x_reloadimages("+g_start+")", 1500);
        
        }else{
		//alert("NO Unloaded Images!");
		  }

    }
}
/////////////////////////////////////////////////////////////////////////////////////

function abc() {
    load_array.splice(2, 3);
}

var img_nr = 0;
var request = false;

///////////////////////////////////////////////////////////////////////////////////////////////////////////
function warten(prmSec) {
    prmSec *= 1000;
    var eDate = null;
    var eMsec = 0;
    var sDate = new Date();
    var sMsec = sDate.getTime();

    do {
        eDate = new Date();
        eMsec = eDate.getTime();

    }
    while ((eMsec - sMsec) < prmSec);
}

///////////////////////////////////////////////////////////////////////////////////////////////////////////
function indexInArray(theArray, theValue) {
    var arLength = theArray.length;
    for (var i = 0; i < arLength; i++) {
        if (theArray[i] == theValue) {
            return i;
        }
    }
    return - 1;
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////
function GetRandom(min, max) {
    if (min > max) {
        return ( - 1);
    }
    if (min == max) {
        return (min);
    }

    var r = parseInt(Math.random() * (max + 1));
    return (r + min <= max ? r + min: r);
}

function set_location(loc) {
    location.href = loc;

}

///////////////////////////////////////////////////////////////////////////////////////////////////////////
Array.prototype.find = function(searchStr) {
    var returnArray = false;
    for (i = 0; i < this.length; i++) {

        if (this[i] === searchStr) {
            returnArray = true;
        }
    }
    return returnArray;
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////
function showarray() {
//alert("Show Data!");
    var str = "";
   xarray = bild;
    //xarray = load_array;
 // xarray = debug_array;
//xarray = bild_id;
    for (i = 0; i < xarray.length; i++) {
        str += i + ". " + xarray[i] + "<br />";
    }
    document.getElementById('ajax_text').innerHTML = '->' + str + '<-';
}

///////////////////////////////////////////////////////////////////////////////////////////////////////////
function GetRandom(min, max) {
    if (min > max) {
        return ( - 1);
    }
    if (min == max) {
        return (min);
    }
    var r = parseInt(Math.random() * (max + 1));
    return (r + min <= max ? r + min: r);
}

//////////////////////////////////////////////////////////////////////////////////////////////////////////
function randomShow(speed) {
    img = GetRandom(0, max_icons - 1);
    loadMainImageSimple(img);
    setTimeout("randomShow(" + speed + ")", speed);
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////
function slideShow(speed) {
    nxt_img(true);
    setTimeout("slideShow(" + speed + ")", speed);
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////
function add_printfunction() {
//alert("PRiNT");
    document.getElementById('bttn_print').href = "mmsgallery/print.php?id=" + imageID;
    document.getElementById('bttn_print').target = "_blank";

}
/////////////////////////////////////////////////////////////////////////////////////
function forward_images() {

//alert("abc");
loading_attempts = 0;
 debug_msg(">> forward button: ");
    if ((g_start + g_step) >= max_icons - g_range) {
        g_start = max_icons - g_step;
    } else {
        g_start += g_step;
    }
	reloadimages(g_start + g_range);
	  //x_reloadimages(0);
    
}

/////////////////////////////////////////////////////////////////////////////////////
function back_images() {
loading_attempts = 0;
debug_msg("<< back button: ");
    if (g_start >= g_step) {
        g_start -= g_step;
    } else {
        g_start = 0;
    }
    reloadimages(g_start + g_range);
	// x_reloadimages(0);
}

/////////////////////////////////////////////////////////////////////////////////////
function nxt_img(s) {
    s = true;
  
    if (page_index <= g_range) {} else {
        page_index = 0;
        if (s) {
            g_start += g_step;
        } else {
            forward_images();
        }
    }
/*  */
    //forward_images();
    if ((g_start + g_step) >= 9) {
       
		  g_start = 0;
        g_show = 0;
        page_index = 0;
    }else{
	
    //alert(page_index);
    if (s) {
        loadMainImageSimple(page_index);
    } else {
        loadMainImage(page_index);
    }
	 
    page_index++;
	 }
    //????????setTimeout("correct_images()", 2500);
		
}
/////////////////////////////////////////////////////////////////////////////////////
function first_view() {
    g_start = 0;
    g_show = 0;
    page_index = 0;
    reloadimages(0);
}

/////////////////////////////////////////////////////////////////////////////////////
function lst_img(s) {
    //back_images();
    /**/
    if (page_index > 0) {
        page_index--;
    } else {
        page_index = g_range;
        if (s) {
            g_start -= g_step;
        } else {
            back_images();
        }
    }

    if (s) {
        loadMainImageSimple(page_index);
    } else {
        loadMainImage(page_index);
    }

}
///////////////////////////////////////////////////////////////////////////////////////////////////////////
/*
function preloader()
{ 
    var img = new Array();
    for(var i = 0; i < arr.length;i++)
    {
        img[i] = new Image();
        img[i].src = arr[i];
    }
}
*/
///////////////////////////////////////////////////////////////////////////////////////////////////////////
function warten(prmSec)
  {
  prmSec *= 1000;
  var eDate = null;
  var eMsec = 0;
  var sDate = new Date();
  var sMsec = sDate.getTime();

  do {
      eDate = new Date();
      eMsec = eDate.getTime();

  } while ((eMsec-sMsec)<prmSec);
}

///////////////////////////////////////////////////////////////////////////////////////
 function debug_msg(msg){
 if(debugmode){
  debug_array.push(msg);
  }
 }
