var globalTime = 0;


Array.prototype.contains = function (element)
{
    for (var i = 0; i < this.length; ++i) {
        if (this[i] == element) {
            return true;
        }
    }
    return false;
}

function function_exists (function_name) {
    // Checks if the function exists  
    // 
    // version: 909.322
    // discuss at: http://phpjs.org/functions/function_exists
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: Steve Clay
    // +   improved by: Legaev Andrey
    // *     example 1: function_exists('isFinite');
    // *     returns 1: true
    if (typeof function_name == 'string'){
        return (typeof this.window[function_name] == 'function');
    } else{
        return (function_name instanceof Function);
    }
}


function handleData(data,status) {
	if(status=="success") {
		//Fehlermeldung?
		if($("div.error",data).length>0) {
			$("#ajax_error").empty();
			$("#ajax_error").html($("div.error",data));
		}

		//Anzahl: Navigation für Anzahl
		var from = $("div.pos",data).html();
		var anz = $("div.anz",data).html();
		if((from)==null) {
			from = $(data).filter('div.pos').html();	
		} 
		if((anz)==null) {
			anz = $(data).filter('div.anz').html();	
		} 
		//Immer: Anzeige, wie viele Seiten es gibt
		$("div.ajax_navigate_pages div.ajax_navigate_anz").html("Seite "+($("div.pos",data).html()/20+(Math.ceil(anz/20)>0?1:0))+" von "+Math.ceil(anz/20));
		if(anz>20) {
		  //Anzeige der Navigation
		  var pages = new Array();
		  pages = [0];
		  for(i=Math.floor(from/20)-2;i<=Math.floor(from/20)+2;i++) {
			  if(!pages.contains(i) && i>0 && i<Math.floor(anz/20))
				  pages.push(i);
		  }
		  if(!pages.contains(Math.floor(anz/20))) {
			  pages.push(Math.floor(anz/20));
		  }
		  
		  $("div.ajax_navigate_nav").html("<ul class='scroll_navigation'></ul>");
		  for(var k=0;k<pages.length;k++) {
			if((k!=0)  && pages[k-1]+1 != pages[k]) {//3 Punkte?
				$("div.ajax_navigate_nav ul").append('<li class="points">...</li>');
			}
			if(from==pages[k]*20) {
				$("div.ajax_navigate_nav ul").append('<li class="self">'+(pages[k]+1)+"</li>");
			} else {
				$("div.ajax_navigate_nav ul").append('<li class="nav"><a href="javascript:navigate('+(pages[k]*20)+');">'+(pages[k]+1)+"</a></li>");
			}
		  }
		} else {
		  //Keine Anzeige der Navigation
		  $("div.ajax_navigate_nav").html("");
		}

		$("#ajax_table tbody").empty().append($("tr",data));
		$("span",$("#ajax_table tbody")).show();		
				
/*
		//Anzeige der Zeilen
		var tmp = $("tr:first",data);
		$("#ajax_table tbody tr").each(function(){
			if(tmp==false) {}
			else {
				if($(tmp).attr("id")==$(this).attr("id")) {	
					//Einfacher Fall: In alter und neuer Liste gleich
						//alert("Bleibt:"+$(tmp).attr("id"));
						if($(tmp).next().length==0) {
							tmp = false;
						} else {
							tmp = $(tmp).next();
						}
				} else if($(tmp).nextAll("#"+$(this).attr("id")).length>0) {
					//Dieses Objekt kommt in tmp-Liste vor, aber später
					//Also: dazwischen sind neue Objekte, diese jetzt hier einfügen
					while(tmp!=false && $(tmp).attr("id")!=$(this).attr("id")) {
						var x = $(tmp).clone();
						$(this).before($(x));
						$("span",x).show(globalTime);		
						
						//Weitergehen in Liste:
						if($(tmp).next().length==0) {
							tmp = false;
							//alert("Exit, Liste zuende");
						} else {
							tmp = $(tmp).next();
						}
					}
				} else if($(tmp).nextAll("#"+$(this).attr("id")).length == 0) {
					//In der tmp-Liste kommt dieses Objekt nicht vor
					//Also: Löschen
						//alert("Weg:"+$(this).attr("id"));
					$(this).remove();
				}
			}
		});

		//Was hinten kommt, anfügen
		if(tmp != false) {
			do {
				var x = $(tmp).clone();
				$("#ajax_table tbody").append($(x));
				$("span",x).show(globalTime);			
				tmp=$(tmp).next();
			} while ($(tmp).length>0);
		}

*/
		//Fehler-Feld leeren
		if($("div.error",data).length==0) {
			$("#ajax_error").empty();
		}

	if(function_exists("after_reload")) {
		after_reload();
	}
	
	$(document).ready(JT_init);	
	}

}
