/**
 * Wechselt das Image bei "*over" Events
 */
function FP_swapImg() {
	var doc=document,args=arguments,elm,n;
	doc.$imgSwaps=new Array();

	for(n=2; n<args.length; n+=2) {
		elm=FP_getObjectByID(args[n]);
		if(elm) {
			doc.$imgSwaps[doc.$imgSwaps.length] = elm;
			elm.$src = elm.src;
			elm.src=args[n+1];
		}
	}

}

/**
 * Lädt alle Images als Img-Objekte
 */
function FP_preloadImgs() {
	var d=document,a=arguments;

	if(!d.FP_imgs) {
		d.FP_imgs = new Array();
	}

	for(var i=0; i<a.length; i++) {
		d.FP_imgs[i] = new Image;
		d.FP_imgs[i].src=a[i];
	}
}

/**
 * Liefert das Objekt aufgrund der ID.
 */
function FP_getObjectByID(id,o) {
	var c,el,els,f,m,n;

	if(!o) {
	 o = document;
  }

	if(o.getElementById) {
		el=o.getElementById(id);
	} else if(o.layers) {
		c=o.layers;
	} else if(o.all) {
		el=o.all[id];
	}

	if(el) {
		return el;
	}

	if(o.id==id || o.name==id) {
		return o;
	}

	if(o.childNodes) {
		c=o.childNodes;
	}

	if(c) {
		for(n=0; n<c.length; n++) {
			el=FP_getObjectByID(id,c[n]);
			if(el) return el;
		}

		f=o.forms;

		if(f) {
			for(n=0; n<f.length; n++) {
				els=f[n].elements;
				for(m=0; m<els.length; m++) {
					el=FP_getObjectByID(id,els[n]);
					if(el) return el;
				}
			}
		}

	}
	return null;
}

/**
 *
 */
function FP_swapImgRestore() {
	var doc=document,i;

	if(doc.$imgSwaps) {
		for(i=0;i<doc.$imgSwaps.length;i++) {
			var elm=doc.$imgSwaps[i];
			if(elm) {
				elm.src=elm.$src;
				elm.$src=null;
			}
		}

		doc.$imgSwaps=null;
	}

}

