// myFotohome - pimp my fotocommunity v1.1
// (c) 2006-2009 by michael strassburger
// contact: m(@t)de(d0t)org
var fh;
function myFotohome() {
	fh = this;
	this.size = {x:470,y:160};
	this.loadingBlingBling();
	this.screen = {x:(document.all?(document.documentElement.clientWidth?document.documentElement.clientWidth:document.body.clientWidth):window.innerWidth),y:(document.all?(document.documentElement.clientHeight?document.documentElement.clientHeight:document.body.clientHeight):window.innerHeight)};
	var loading = this.getObj("loading");
	loading.style.left = this.screen.x/2-this.size.x/2+10;
	loading.style.top = this.screen.y/2-this.size.y/2+10;
	loading.style.width = this.size.x;
	loading.style.height = this.size.y;
	loading.style.display = "block";
	
	this.log("myFotohome wird initialisiert...");
	
	this.mausStatus = 0;
	this.xmlSpool = new Array();

	this.log("Fotohome-Ordner werden ermittelt...");
	var urlBild = /href="([^"]+)".+src="([^"]+)".+width=(\d+).+height=(\d+)/;
	var ordnerName = />([^<]+)</;
	var ordner = new Array();
	var ordnerFelder = document.getElementsByTagName("textarea");
	this.userName = ordnerFelder[0].value;
	for( var i=1; i<ordnerFelder.length; i++ ) {
		if( ordnerFelder[i].value.search(/spacer/) != -1 )
			break;
		var data = this.parse( ordnerFelder[i].value )[0];
		var parsed = new Array();
		urlBild.exec( data.preview );
		var parsed = {url:RegExp.$1,img:RegExp.$2,x:RegExp.$3,y:RegExp.$4,text:data.text};
		ordnerName.exec( data.nameKurz );
		parsed["nameKurz"] = RegExp.$1;
		ordnerName.exec( data.nameLang );
		parsed["nameLang"] = RegExp.$1;
		ordner[ordner.length] = parsed;
	}
	this.quickPic = {scroll:0};
	this.naviScroll = {scrolled:0,scroll:0,scrollSpeed:10,interval:0};
	this.ordner = ordner;
	this.bild = {obj:this.getObj("bild"),inited:0,load:0};
	this.bilderIDs = new Array();
	this.bilderMap = new Array();
	this.loaded = 0;
	this.running = 0;
	this.loadEm();
}
myFotohome.prototype = {
	log : function( what ) {
		this.getObj("loadingLog").innerHTML = what+"<br/>"+this.getObj("loadingLog").innerHTML;
	},
	loadingBlingBling : function() {
		if( !this.blingbling ) {
			this.blingbling = 1;
			this.blingblingInterval = window.setInterval( "fh.loadingBlingBling()", 500 );
		} else
			this.blingbling++;
		var allBlings = this.getObj("loadingHead").getElementsByTagName("div");
		var blings = new Array();
		for( var i=0; i<allBlings.length; i++ )
			if( allBlings[i].id == "point" )
				blings[blings.length] = allBlings[i];
		var bling = this.blingbling%blings.length;
		
		blings[bling].style.backgroundColor = "#888";
		blings[bling?bling-1:blings.length-1].style.backgroundColor = "#666";
	},
	loadEm : function() {
		if( this.loaded < this.ordner.length ) {
			this.loadOrdner = this.loaded++;
			var load = this.ordner[this.loadOrdner];
			this.log("<b>Lade Fotohome-Ordner \"<i>"+load.nameKurz+"</i>\"...</b>");
			this.xml( load.url );
		} else {
			this.loaded = 1;
			this.log("<b style=\"color:#66a;\">Ladevorgang abgeschlossen, "+this.bilderIDs.length+" Bilder geladen... Oberfl&auml;che wird aufgebaut...</b>");
			this.bilderIDs = this.numSort( this.bilderIDs );
			this.bilderIDs.reverse();
			var sel = this.getObj("quickSelect");
			sel.options[sel.length] = new Option( "direkt zum Bild...", -1, true, true );
			for( var i=0; i<this.bilderIDs.length; i++ ) {
				var t = document.createElement("div");
				t.innerHTML = this.bilderMap[this.bilderIDs[i]].titel;
				sel.options[sel.length] = new Option( t.innerHTML, this.bilderIDs[i], false, false );
			}
			
			this.letsGo();
		}
	},
	data : function(data,raw) {
		if( !this.bild.load ) {
			if( raw.substr( 0, 7 ) == "preview" ) {
				var linkImgTitel = /href="([^"]+)".+src="([^"]+)".+width=(\d+).+height=(\d+).+alt="([^"]+)"/;
				var userBild = /id=(\d+)&d=(\d+)/;
				var bilder = new Array();
				for( i=0; i<data.length; i++ ) {
					if( data[i].preview.search(/spacer/) != -1 )
						break;
					var d = linkImgTitel.exec( data[i].preview );
					var bildId = bilder.length;
					bilder[bildId] = {url:RegExp.$1,img:RegExp.$2,x:RegExp.$3,y:RegExp.$4,titel:RegExp.$5,ordner:this.loadOrdner};
					userBild.exec( RegExp.$1 );
					this.userId = RegExp.$1;
					this.bilderMap[RegExp.$2] = bilder[bildId];
					bilder[bildId]["id"] = RegExp.$2;
					this.bilderIDs[this.bilderIDs.length] = RegExp.$2;
				}
				this.log("es wurden "+bilder.length+" Bilder geladen.");
			} else {
				var bilder = new Array();
			}
			this.ordner[this.loadOrdner]["bilder"] = bilder;
			this.loadEm();
		} else {
			var rComments = />([^<]+)</;
			var rSrcWidthHeight = /src="([^"]+)".+width="(\d+)".+height="(\d+)"/;
			var rBildId = /display\/(\d+)\//;
			var rBildUrl = /src="([^"]+)"/;
			var rFcUrl = /href="([^"]+)"/;
			data = data[0];
			
			rBildUrl.exec( data.pic );
			var bildUrl = RegExp.$1;
			rFcUrl.exec( data.discuss );
			var fcUrl = RegExp.$1;
			rBildId.exec( fcUrl );
			var bildId = RegExp.$1;
			
			rSrcWidthHeight.exec( data.pic );
			var big = {img:RegExp.$1,size:{x:RegExp.$2,y:RegExp.$3},text:data.text,url:fcUrl};
			if( rComments.exec( data.discuss ) )
				big.comments = RegExp.$1;
			else
				big.comments = 0;
			this.bilderMap[bildId].big = big;
			this.bildShow( bildId );
		}
	},
	letsGo : function(status) {
		this.getObj("userLink").innerHTML = "<span style='color:white'>Alle Bildrechte &copy; by <a href=\"http://www.fotocommunity.de/pc/account/myprofile/"+this.userId+"\">"+this.userName+"</a>";
		this.getObj("derMichi").innerHTML = "<i>myFotohome</i> is done and &copy; 2009 by <a href=\"mailto:m@d"+"e.org\">Michael Stra&szlig;burger</a>";
		this.log("passe Darstellung an...");
		this.getObj("loadingWaiting").style.display = "none";
		this.mainResize();
	},
	mainResize : function() {
		var target = {x:this.screen.x*0.9,y:this.screen.y*0.9};
		if( this.size.x > target.x*0.99 && this.size.y > target.y*0.99 ) {
			this.resizeContent( target.x, target.y );
			this.naviBastler(1);
		} else {
			this.resizeContent( this.size.x+(target.x-this.size.x)/6, this.size.y+(target.y-this.size.y)/6 );
			window.setTimeout( "fh.mainResize()", 50 );
		}
	},
	naviBastler : function(first) {
		if( first ) {
			this.log("generiere Navigation...");
			this.naviBastlerBastelt = 0;
			var p = this.getPos( this.getObj("content") );
			this.navi = {obj:this.getObj("navigation"),pos:{x:p.x+20,y:p.y+20},size:{x:80,y:this.size.y-40}};
			with( this.navi ) {
				obj.style.display = "block";
				obj.style.left = this.navi.pos.x+"px";
				obj.style.top = this.navi.pos.y+"px";
				obj.style.height = this.navi.size.y;
			}
		} else
			this.naviBastlerBastelt+=8;
		this.navi.obj.style.width = this.naviBastlerBastelt+"px";
		if( this.naviBastlerBastelt < 140 )
			window.setTimeout( "fh.naviBastler()", 10 );
		else {
			this.navi.size.x = this.naviBastlerBastelt;
			this.naviInit();
		}
	},
	naviInit : function() {
		
		var p = this.getPos( this.getObj("content") );
		var s = this.getObj("quickSelect");
		s.style.display = "block";
		s.style.left = (p.x+195)+"px";
		s.style.top = (p.y+30)+"px";
	
		this.getObj("navigationContent").style.display = "block";
		var ul = this.getObj("navigationList");
		var ordnerDargestellt = new Array();
		for( var i=0; i<this.ordner.length; i++ ) {
			if( this.ordner[i].bilder.length == 0 )
				continue;
			var div = document.createElement("div");
			div.className = "navigationListBild";
			div.innerHTML = "<img style=\"cursor:pointer\" width=\""+this.ordner[i].x+"\" height=\""+this.ordner[i].y+"\" onclick=\"fh.ordnerShow("+i+")\" onmousedown=\"\" onmouseover=\"fh.naviMaus("+i+",event,1)\" onmouseout=\"fh.naviMaus("+i+",event,0)\" src="+this.ordner[i].img+"><br/>"+this.ordner[i].nameKurz;
			ul.appendChild( div );
			this.ordner[i].navi = {obj:div};
			ordnerDargestellt[ordnerDargestellt.length] = i;
		}
		
		var lastUsabale = this.ordner
		this.navi["contentHeight"] = this.getPos(this.ordner[ordnerDargestellt[ordnerDargestellt.length-1]].navi.obj).y;
		this.naviScroller( true );
		this.statusInit();
		
		this.log("baue Bilderleiste...");
		this.quickPicsInit();
		this.log("<b style=\"color:#66a;\">Oberfl&auml;che wurde aufgebaut! myFotohome ist bereit und wartet auf Befehle.</b>");
	},
	naviScroller : function(first) {
		if( first )
			this.naviScroll.interval = window.setInterval("fh.naviScroller()", 20);
		var n = this.naviScroll;
		if( n.scroll != 0 ) {
			var scrollMax = this.navi.contentHeight-this.navi.size.y+100;
			if( n.scrolled+n.scroll < 0 || n.scrolled+n.scroll > scrollMax )
				n.scroll = 0;
			else
				n.scrolled += n.scroll;
			this.getObj("navigationContent").style.marginTop = -n.scrolled+"px";
		}
	},
	naviMaus : function( id, event, mode ) {
		if( id == -1 ) {
			var w = window.event;
			var maus = {x:w?w.clientX:event.pageX,y:w?w.clientY:event.pageY};
			var mausOver = {x:maus.x-this.navi.pos.x,y:maus.y-this.navi.pos.y};
			this.naviScroll.scroll = (mausOver.y/this.navi.size.y-0.5)*this.naviScroll.scrollSpeed;
		} else {
			this.ordner[id].navi.obj.className = mode ? "navigationListBildOver" : "navigationListBild";
			this.statusSet( mode?this.ordner[id].nameLang + " ("+this.ordner[id].bilder.length+" Bilder)":"" );
		}
	},
	ordnerShow : function( id ) {
		var o = this.getObj("bilderList");
		var p = this.getPos( this.getObj("content") );
		var pos = {x:p.x+180,y:p.y+90};
		var ordner = this.ordner[id];
		var target = {x:this.size.x-200,y:this.size.y-125};
		o.style.left = pos.x;
		o.style.top = pos.y;
		o.style.width = target.x;
		o.style.height = target.y;
		this.getObj("bilderListTitel").innerHTML = ordner.nameKurz;
		this.getObj("bilderListInfo").innerHTML = "<i>"+ordner.text+"</i>";

		var listContent = this.getObj("bilderListContent");
		var old = listContent.getElementsByTagName("div");
		for( var i=old.length; i>0; i-- )
			listContent.removeChild( old[i-1] );

		var point = {x:0,y:0};
		var size = {x:140,y:130};
		for( var i=0; i<ordner.bilder.length; i++ ) {
			var bild = ordner.bilder[i];
			var div = document.createElement("div");
			div.style.left = point.x;
			div.style.top = point.y;
			div.style.width = size.x;
			div.style.height = size.y;
			div.innerHTML = "<table width="+size.x+" height="+size.y+"><tr><td align=center valign=center><img onmouseover=\"fh.thumbMaus("+bild.id+",1)\" onmouseout=\"fh.thumbMaus("+bild.id+",0)\" onclick=\"fh.giveItToMeBaBy_Eh_Eh("+bild.id+")\" src=\""+bild.img+"\" width=\""+bild.x+"\" height=\""+bild.y+"\"></td></tr><tr><td align=center valign=top height=30>"+bild.titel+"</td></tr></table>";
			listContent.appendChild( div );

			point.x += size.x;
			if( point.x+size.x+30 > target.x ) {
				point.x = 0;
				point.y += size.y;
			}
		}
		this.getObj("loading").style.display = "none";	
		o.display = "block";
		if( this.bild.inited )
			this.bildClose();
	},
	statusInit : function() {
		var o = this.getObj("infoLine");
		var p = this.getPos( this.getObj("content") );
		o.style.display = "block";
		o.style.width = (this.size.x-200)+"px";
		o.style.top = (p.y+this.size.y-30)+"px";
		o.style.left = (p.x+180)+"px";
		this.statusObj = o;
	},
	quickPicsInit : function() {
		var o = this.getObj("quickPics");
		var p = this.getPos( this.getObj("content") );
		var m = this.getPos( o );
		var abstandLinks = 360;
		this.quickPic = {obj:o,pos:{x:p.x+abstandLinks,y:p.y+20},size:{x:this.size.x-abstandLinks-20,y:70},max:20};
		o.style.display = "block";
		o.style.left = this.quickPic.pos.x+"px";
		o.style.top = this.quickPic.pos.y+"px";
		o.style.width = this.quickPic.size.x;
		this.quickPics = new Array();
		for( var i=0; i<this.bilderIDs.length; i++ ) {
			this.quickPicsLoad( this.bilderIDs[i] );
			if( this.quickPic.max > this.quickPic.size.x )
				break;
		}
		this.quickPicsScroller(true);
	},
	quickPicsLoad : function(id) {
		var targetY = 45;
		var quickId = this.quickPics.length;
		var bild = this.bilderMap[id];
		var q = bild.x/bild.y;
		var newSize = {x:q*targetY,y:targetY};
		var newPos = {x:this.quickPic.max,y:this.quickPic.size.y/2-newSize.y/2};
		var newPic = document.createElement("div");
		newPic.id = this.quickId;
		newPic.src = bild.img;
		newPic.style.left = newPos.x;
		newPic.style.top = newPos.y;
		newPic.style.width = newSize.x+"px";
		newPic.style.height = newSize.y+"px";
		newPic.innerHTML = "<img onclick=\"fh.giveItToMeBaBy_Eh_Eh("+bild.id+")\" onmouseover=\"fh.quickPicsMaus("+quickId+",event,1)\" onmouseout=\"fh.quickPicsMaus("+quickId+",event,0)\" src=\""+bild.img+"\">";
		this.getObj("quickPicsContainer").appendChild( newPic );
		this.quickPics[quickId] = {pumped:0,direction:0,timer:0,obj:newPic,size:newSize,bild:bild,pos:newPos};
		this.quickPic.max += newSize.x;
	},
	quickPicsScroller : function(first) {
		var qp = this.quickPic;
		if( first ) {
			qp.scrolled = 0;
			qp.scroll = 0;
			qp.scrollSpeed = 10;
			qp.interval = window.setInterval("fh.quickPicsScroller()", 20);
		}
		if( qp.scroll != 0 ) {
			var scrollMax = qp.max-qp.size.x;
			if( qp.scrolled+qp.scroll < 0 ) {
				qp.scrolled = 0;
				qp.scroll = 0;
			} else if( qp.scroll > 0 && qp.scrolled+qp.scroll > scrollMax ) {
				if( this.quickPics.length != this.bilderIDs.length ) {
					this.quickPicsLoad( this.bilderIDs[this.quickPics.length] );
					qp.scrolled += qp.scroll;
				} else {
					qp.scrolled = scrollMax;
					qp.scroll = 0;
				}
			} else
				qp.scrolled += qp.scroll;
			this.getObj("quickPicsScroll").style.marginLeft = -qp.scrolled; 
		}
	},
	quickPicsMaus : function( id, event, mode ) {
		if( id == -1 ) {
			var w = window.event;
			var maus = {x:w?w.clientX:event.pageX,y:w?w.clientY:event.pageY};
			var mausOver = {x:maus.x-this.quickPic.pos.x,y:maus.y-this.quickPic.pos.y};
			this.quickPic.scroll = (mausOver.x/this.quickPic.size.x-0.5)*this.quickPic.scrollSpeed;
			return;
		}
		this.getObj("quickPicsContainer").style.left = "-100px";
		var p = this.quickPics[id];
		this.thumbMaus( p.bild.id, mode );
		p.direction = mode;
		if( p.timer == 0 )
			p.timer = window.setInterval("fh.quickPicsPump("+id+")", 10 );
		
	},
	quickPicsPump : function( id ) {
		var p = this.quickPics[id];
		var pumps = 5;
		var maxY = 70;
		var target = {x:maxY*p.size.x/p.size.y,y:maxY};
		var newSize = { x:(p.size.x+(target.x-p.size.x)*(p.pumped/pumps)), y:p.size.y+(target.y-p.size.y)*(p.pumped/pumps) };
		p.obj.style.zIndex = p.direction?3:1;
		p.obj.style.top = (p.pos.y-(newSize.y-p.size.y)/2)+"px";
		p.obj.style.left = (p.pos.x-(newSize.x-p.size.x)/2)+"px";
		p.obj.style.width = newSize.x+"px";
		p.obj.style.height = newSize.y+"px";
	
		if( p.direction && p.pumped < pumps )
			p.pumped++;
		else if( !p.direction && p.pumped > 0 )
			p.pumped--;
		else {
			window.clearInterval( p.timer );
			p.timer = 0;
		}
	},
	thumbMaus : function( bildId, mode ) {
		this.statusSet( mode ? "\"<i><b>"+this.bilderMap[bildId].titel+"</b></i>\" (in Kategorie "+this.ordner[this.bilderMap[bildId].ordner].nameKurz+")" : "" );
	},
	statusSet : function(text) {
		this.statusObj.innerHTML = text;
	},
	resizeContent : function(x,y) {
		var c = this.getObj("content");
		c.style.width = x+"px";
		c.style.height = y+"px";
		this.size = {x:x,y:y};
	},
	giveItToMeBaBy_Eh_Eh : function(id) {
		var bild = this.bilderMap[id];
		this.statusSet("Bitte warten... Bild \"<b>"+bild.titel+"</b>\" wird angefordert...");
		this.bild.load = id;
		this.xml( bild.url );
	},
	bildAufbau : function(first) {
		var o = this.getObj("bild");
		var p = this.getPos(this.getObj("content"));
		var steps = 20;
		var target = {x:this.size.x-200,y:this.size.y-125};
		if( first ) {
			this.bildPos = {x:p.x+180,y:p.y+90};
			o.style.display = "block";
			this.bildSize = {x:0,y:0};
			this.bildSizeSteps = 0;
			
			var old = o.getElementsByTagName("div");
			if( old.length )
				o.removeChild( old[0] );
		}
		var q = this.size.x/this.size.y;
		this.bildSize.x = target.x*this.bildSizeSteps/steps;
		this.bildSize.y = target.y*this.bildSizeSteps/steps;
		o.style.left = this.bildPos.x+target.x/2-this.bildSize.x/2;
		o.style.top = this.bildPos.y+target.y/2-this.bildSize.y/2;
		o.style.width = this.bildSize.x;
		o.style.height = this.bildSize.y;
		this.bildSizeSteps++;
		if( this.bildSizeSteps <= steps )
			window.setTimeout( "fh.bildAufbau()", 10 );
		else
			this.bildInit();
	},
	bildInit : function() {
		this.bild.inited = 1;
		this.bildShow( this.bild.load );
	},
	bildShow : function( id ) {
		if( !this.bild.inited )
			return this.bildAufbau(true);
		var max = {x:this.bildSize.x-30,y:this.bildSize.y-35};
		var bild = this.bilderMap[id];
		this.getObj("bildTitel").innerHTML = bild.titel;
		this.getObj("bildLink").innerHTML = "<a target=\"_new\" href=\""+bild.big.url+"\">Beschreibung und Kommentare ("+bild.big.comments+")</a>";
		this.getObj("bildZurueck").style.display = "block";
		this.getObj("bildCopy").style.display = "block";
		this.statusSet("Bild \"<b><i>"+bild.titel+"</i></b>\" wird geladen...");
		var q = bild.big.size.x/bild.big.size.y;
		var size = bild.big.size;
		while( size.x > max.x || size.y > max.y ) {
			if( size.x > max.x )
				size = {x:max.x,y:max.x/q};
			else if( size.y > max.y )
				size = {x:max.y*q,y:max.y};
			else
				break;
		}
		var k = this.bild.obj.getElementsByTagName("div");
		for( var i=0; i<k.length; k++ )
			this.bild.obj.removeChild( k[i] );
		
		var div = document.createElement("div");
		div.innerHTML = "<img onclick=\"fh.bildBig("+id+")\" src=\""+bild.img+"\" width=\""+size.x+"\" height=\""+size.y+"\">";
		div.style.left = this.bildSize.x/2-size.x/2;
		div.style.top = this.bildSize.y/2-size.y/2;
		div.style.width = size.x;
		div.style.height = size.y;
		this.bild.obj.appendChild( div );
		div.getElementsByTagName("img")[0].src = bild.big.img;
	},
	bildClose : function() {
		this.bild.inited = 0;
		this.getObj("bildTitel").innerHTML = "";
		this.getObj("bildLink").innerHTML = "";
		this.getObj("bildCopy").style.display = "none";
		this.getObj("bildZurueck").style.display = "none";
		this.bild.obj.style.display = "none";
	},
	bildBig : function( id ) {
		var o = this.getObj("bildBig");
		var op = this.bild.obj.getElementsByTagName("div")[0];
		this.getObj("quickSelect").style.display = id?"none":"block";
		if( !id ) {
			op.style.display = "block";
			o.style.display = "none";
			return;
		}
		var bild = this.bilderMap[id].big;
		var pos = {x:this.screen.x/2-bild.size.x/2,y:this.screen.y/2-bild.size.y/2};
		o.style.width = bild.size.x;
		o.style.height = bild.size.y;
		o.style.left = pos.x;
		o.style.top = pos.y>0?pos.y:0;
		o.style.border = "1px solid #000";
		o.innerHTML = "<img onclick=\"fh.bildBig(0)\" src=\""+bild.img+"\" width=\""+bild.size.x+"\" height=\""+bild.size.y+"\">";
		o.style.display = "block";
		op.style.display = "none";
	},
	bodyMaus : function(event) {
		var w = window.event;
		var maus = {x:w?w.clientX:event.pageX,y:w?w.clientY:event.pageY};
		if( this.naviScroll.scroll!=0 && (maus.x < this.navi.pos.x || maus.x > this.navi.pos.x+this.navi.size.x) ) {
			this.naviScroll.scroll *= 0.9;
			if( Math.abs(this.naviScroll.scroll)<0.1 )
				this.naviScroll.scroll = 0;
		}
		if( this.quickPic.scroll!=0 && (maus.y < this.quickPic.pos.y || maus.y > this.quickPic.pos.y+this.quickPic.size.y) ) {
			this.quickPic.scroll *= 0.9;
			if( Math.abs(this.quickPic.scroll)<0.1 )
				this.quickPic.scroll = 0;
		}
	},
	parse : function( freshData ) {
		var parsed = new Array();
		var objs = freshData.split("||||||");
		for( var i=0; i<objs.length; i++ ) {
			var hashy = new Array();
			var elem = objs[i].split("|||");
			for( var j=0; j<elem.length; j++ )
				hashy[elem[j].substr(0,elem[j].indexOf(":"))]=elem[j].substr(elem[j].indexOf(":")+1);
			parsed[parsed.length] = hashy;
		}
		
		return parsed;
	},
	getPos : function(obj) {
		var curleft=0, curtop=0;
		if (obj.offsetParent) {
			while (obj.offsetParent) {
				curleft += obj.offsetLeft
				curtop += obj.offsetTop;
				obj = obj.offsetParent;
			}
		}
		else if (obj.x) {
			curtop += obj.y;
			curleft += obj.x;
		}
		return {x:curleft,y:curtop};
	},
	numSort : function(arr) {
		return arr.sort(
			function(a,b){
				// modification published by UL:
				// UL: dirty hack to correct a problem due to strange image ID during a certain time frame
				var x = a;
				var y = b;
				if ((a>=1132063443) && (a<=1132453043)) a=11408002; 
				if ((b>=1132063443) && (b<=1132453043)) b=11408002; 
				if ((a==11408002) && (b==11408002)) { a=x; b=y; }
				return a-b;
			}
		);
	},
	getObj : function( obj ) {
		return document.getElementById( obj );
	},
	xml : function(url) {
		var o;
		try {
			o = new XMLHttpRequest();
		} catch(e) {
			var MSXML_XMLHTTP_PROGIDS = new Array(
				'MSXML2.XMLHTTP.5.0',  
				'MSXML2.XMLHTTP.4.0',
				'MSXML2.XMLHTTP.3.0',
				'MSXML2.XMLHTTP',
				'Microsoft.XMLHTTP'
			);
			var ok = false;
			for (var i=0;i < MSXML_XMLHTTP_PROGIDS.length && !ok; i++)
				try {
					o = new ActiveXObject(MSXML_XMLHTTP_PROGIDS[i]);
					ok = true;
				} catch (e) {}
			if( !ok )
				return alert("FEHLER:\n\nmyFotohome konnte wegen einer nicht kompatiblen Browserversion nicht initialisiert werden.\n\nProblem: xmlHttpObj konnte nicht kreiert werden.");
		}
		this.xmlSpool[this.xmlSpool.length] = {obj:o,state:0};
		try {
			o.onreadystatechange = function(){fh.xmlEvent();};
			o.open("GET", url, true);
			o.send("");
		} catch(e) {
			return alert("FEHLER:\n\nmyFotohome konnte wegen einer nicht kompatiblen Browserversion nicht initialisiert werden.\n\nProblem: xmlHttpObj konte nicht genutzt werden.");
		}
	},
	xmlEvent : function() {
		for( var i=0; i<this.xmlSpool.length; i++ ) {
			var o = this.xmlSpool[i];
			if( o.obj.readyState != o.state ) {
				o.state = o.obj.readyState;
				if( o.state != 4 || o.obj.status != 200 )
					continue;
				this.data(this.parse(o.obj.responseText), o.obj.responseText);
			}
		}
	}
}
