<!--

/************** Slideshow Object **************/
function oSlideShow(id, url, width, height, style, originalimage) {
	this.id = id;
	this.url = location.pathname.slice(0,location.pathname.lastIndexOf('/')+1)+url;
	this.originalimage=originalimage;
	this.width = width.toString().replace(/px/g,'');
	this.height = height.toString().replace(/px/g,'');
	this.style = style;
	this.slides = new Array();
	this.buttons = new Array();
	this.timerId= null;
	xmlDoc = false;
	currentSlide=0;
	
	this.init = function () {
		//Setup html
		var divSlideShow=document.getElementById(this.id);
		var html='<div id="'+this.id+'_slide" style="position:absolute; width:'+this.width+'px; height:'+this.height+'px;'+this.style+'" >';
		if(this.originalimage!='') { html+='<img src="'+this.originalimage+'" border="0"/>'}
		html+='</div>';
		if(divSlideShow) {
			divSlideShow.style.cssText='width:'+this.width+'px; height:'+this.height+'px;';
			divSlideShow.innerHTML=html;
		} else {
			document.writeln(html);
		}
		//Write out buttons
		if(divSlideShow) {
			var originx = getAbsLeft(divSlideShow)+(document.all?1:0);
			var originy = getAbsTop(divSlideShow)+(document.all?1:0);
		}
		
		for (var i=0;i<this.buttons.length;i++) {
			if(divSlideShow) {
				divSlideShow.innerHTML+=this.buttons[i].draw(originx, originy);
			} else {
				document.writeln(html);
			}
		}
		xmlDoc = requestFile(xmlDoc, this.url, new Function(this.id+'.loadSlides()'));
		if(xmlDoc.readyState==4) { this.loadSlides(); };
	}
	
	this.loadSlides = function () {
		var request=xmlDoc;
	    if (request.readyState == 4) {
			if (request.status == 200) {
				var xmlSlides=request.responseXML.getElementsByTagName('slide');
				for(var i=0;i<xmlSlides.length;i++) {
					var xmlSlide = xmlSlides[i];
					this.slides[i]=new oSlide(xmlSlides[i].getAttribute('filename'), 
						xmlSlides[i].getAttribute('displaytime'));
					if(i==(xmlSlides.length-1)) {
						var callback = new Function(this.id+'.slides['+i+'].loadHTML();if('+this.id+'.timerId==null) '+this.id+'.play()');
					} else {
						var callback = new Function(this.id+'.slides['+i+'].loadHTML();');
					}				
					this.slides[i].xmlDoc=requestFile(this.slides[i].xmlDoc, this.slides[i].url, callback);
					if(this.slides[i].xmlDoc.readyState==4) { callback(); }
				}
	        } else {
	            alert("There was a problem retrieving the XML data:\n" +
	                request.statusText);
	        }
	    }
	}
	
	this.display = function (instant) {
		var divslide=document.getElementById(this.id+'_slide');
		var slide=this.slides[currentSlide];
		if(slide.loaded) {
			//document.getElementById('info').innerHTML+=slide.url+'<br/>';
			if (window.usefilters && divslide.filters) {
//			if (true==false) {
				if (!instant) { divslide.filters[0].Apply(); }
				divslide.innerHTML=slide.html;
				if (!instant) { divslide.filters[0].Play(); }
			} else {
				var originx = getAbsLeft(divslide.parentNode)+(document.all?1:0);
				var originy = getAbsTop(divslide.parentNode)+(document.all?1:0);
				this.tempdiv=document.getElementById('tempdiv');
				var newdiv=false;
				if(!this.tempdiv || !document.all) {
					this.tempdiv=document.createElement('div');
					this.tempdiv.id='tempdiv';
					this.tempdiv.style.cssText='z-index: 1; position: absolute; overflow: hidden; width:'+this.width+'px; height:'+this.height+'px; top: '+originy+'px; left: '+originx+'px;';
					this.tempdiv.innerHTML=slide.html;
					this.tempdiv.style.clip = 'rect(0px,0px,0px,0px)';
					this.tempdiv.style.visibility='visible';
					newdiv=true;
				} else {
					this.tempdiv.style.visibility='hidden';
					for(var i=0;i<1000;i++) { }
					this.tempdiv.innerHTML=slide.html;
					this.tempdiv.style.clip = 'rect(0px,0px,0px,0px)';
					this.tempdiv.style.visibility='visible';
				}
				
				if(newdiv) { divslide.parentNode.appendChild(this.tempdiv); }
				this.wipesteps=200;
				this.wipeclock=setInterval(this.id+'.crosswipe()', 5);
			}
			return (true);
		} else {
			return (false);
		}
	}
	
	this.crosswipe = function() {
		this.wipesteps--;
		curwidth=Math.floor(eval(this.width.replace(/px/g,''))*(1-(this.wipesteps/200)));
		if(this.tempdiv) { this.tempdiv.style.clip = 'rect(0px, '+curwidth+'px,'+this.height+'px, 0px)'; }
		if(this.wipesteps<=0) {
			clearInterval(this.wipeclock);
			this.wipeclock = null;
			var divslide=document.getElementById(this.id+'_slide');
			divslide.innerHTML=this.tempdiv.innerHTML;
			//this.tempdiv.style.visibility='hidden';
			//divslide.parentNode.removeChild(this.tempdiv);
			//this.tempdiv=null;
		} 
	}
	
	this.play = function () {
		var displaytimeMS=eval(this.slides[currentSlide].displaytime*1000);
		var showinstantly = arguments.length>0 ? arguments[0] : false;
		if(this.display(showinstantly)) {
			this.timerId=window.setTimeout(this.id+'.play()', displaytimeMS);
			currentSlide++;
			if(currentSlide==this.slides.length) { currentSlide=0; };
		} else {
			this.timerId=window.setTimeout(this.id+'.play()',1*1000);
		}
	}

	this.stop = function () { 
		window.clearTimeout(this.timerId); 
		this.timerId=null;
		var btnpause=document.getElementById('btnpause');
		var btnplay=document.getElementById('btnplay');
		if (btnpause && btnplay) {
			btnpause.style.visibility='hidden';
			btnplay.style.visibility='visible';
		}
	}

	this.startplay = function() {
		var btnpause=document.getElementById('btnpause');
		var btnplay=document.getElementById('btnplay');
		if (btnpause && btnplay) {
			btnpause.style.visibility='visible';
			btnplay.style.visibility='hidden';
		}
		this.play();
	}
	
	this.back = function () {
		this.stop();
		currentSlide-=2;
		if(currentSlide<0) { currentSlide=this.slides.length+currentSlide; }
		this.startplay();
	}
	
	this.forward = function () {
		this.stop();
		this.startplay();
	}
	
	this.redrawbuttons = function() {
		var divSlideShow=document.getElementById(this.id);
		//Write out buttons
		if(divSlideShow) {
			var originx = getAbsLeft(divSlideShow)+(document.all?1:0);
			var originy = getAbsTop(divSlideShow)+(document.all?1:0);
			if(document.getElementById('tempdiv')) {
				document.getElementById('tempdiv').style.left=originx+'px';
				document.getElementById('tempdiv').style.top=originy+'px';
			}
		
		}
		for (var i=0;i<this.buttons.length;i++) {
			var button = document.getElementById(this.buttons[i].id);
			if(button) {
				button.style.left = originx+this.buttons[i].x+'px';
				button.style.top = originy+this.buttons[i].y+'px';
			}
		}		
	}
	
	this.setupcrosswipe = function() {
		
	}	
} /********* End of Slideshow Object ************/

/**************** Slide Object ****************/
function oSlide(url, displaytime) {
	this.url = url;
	this.displaytime=displaytime;
	this.loaded = false;
	this.images = new Array();
	if(arguments.length>oSlide.length) {
		for(var i=2; i<arguments.length;i++) {
			this.images.push(arguments[i]);
		}	
	}
	this.xmlDoc=false;
	
    // branch for native XMLHttpRequest object
	//this.xmlDoc = new Object;
	//this.xmlDoc = loadXMLDoc(this.xmlDoc, this.url, this.loadhtml);
	this.loadHTML = function () {
		var request=this.xmlDoc;
	    if (request.readyState == 4) {
			if (request.status == 200) {
				this.html=request.responseText;
				this.loaded=true;
	        } else {
	            alert("There was a problem retrieving the XML data:\n" +
	                request.statusText);
	        }
	    }
	}
}	/**************** Slide Object ****************/

/*************** Button  Object ***************/
function oButton (id, alt, normal, over, x, y, action) {
	this.normal=normal;
	this.over=over;
	this.alt=alt;
	this.x=x;
	this.y=y;
	this.action=action;
	this.id=id;
	this.visible=(arguments.length>oButton.length)?arguments[arguments.length-1] : 'visible';
	this.draw = function (originx, originy) {
		return ('<img id="'+this.id+'" alt="'+this.alt+'" src="'+this.normal+'" style="z-index: 5; position:absolute; left:'+(originx+this.x)+'px; top:'+(originy+this.y)+'px;visibility: '+this.visible+';" onclick="'+this.action+'" '
			+'onmouseover="this.src=\''+this.over+'\';" onmouseout="this.src=\''+this.normal+'\';"/>');
	}
}
/************ End of Button Object ************/

function requestFile(req, url, callback) {
	req=false;
	if(window.XMLHttpRequest) {
    	try {
			req = new XMLHttpRequest();
        } catch(e) {
			req = false;
        }
    // branch for IE/Windows ActiveX version
    } else if(window.ActiveXObject) {
       	try {
        	req = new ActiveXObject("Msxml2.XMLHTTP");
      	} catch(e) {
        	try {
          		req = new ActiveXObject("Microsoft.XMLHTTP");
        	} catch(e) {
          		req = false;
        	}
		}
    }
	if(req) {	
		req.onreadystatechange = callback;
		req.open("GET", url, true);
		req.send("");
	}
	return(req)
} 


//-->