if(typeof sublime=="undefined"){var sublime=new Object();}
if(typeof sublime.slideshow=="undefined"){sublime.slideshow=new Object();}
if(typeof sublime.slideshowThumbnail=="undefined"){sublime.slideshowThumbnail=new Object();}

sublime.slideshowThumbnail = function(src, srchl, aid)
{
    this.thumb = new Image();
    this.thumb.src = src;
    this.thumbHl = new Image();
    this.thumbHl.src = srchl;
    this.anchor = document.getElementById(aid);
};


sublime.slideshow = function(containerid)
{
    this.supported = document.getElementById!=null;
    if(!this.supported)
        return;
    this.containerId = containerid;
    this.container = document.getElementById(containerid);
    this.previousBtn = document.getElementById(containerid + "ControlsPrev");
    this.nextBtn = document.getElementById(containerid + "ControlsNext");
	this.slideContainer = document.getElementById(containerid + 'Content');
	this.viewport = document.getElementById(containerid + 'ContentInner');
    this.numericControls = document.getElementById(containerid + 'ControlsNum');
    this.headings = new Array();
    this.controls = new Array();
    this.slidePorts = new Array();
    this.thumbnails = new Array();
    
    this.slidePortsHeight = new Array();
	this.slideSpeed = 5;
	this.slideSteps = 2;
	this.slideIdx = 0;

    if(this.container==null)
        alert("Container \"" + containerid + "\" not found.");    
    if(this.slideContainer==null)
        alert("Slides container element \"" + containerid + "Content" + "\" not found.");
    if(this.viewport==null)
        alert("Slides viewport element \"" + containerid + "ContentInner" + "\" not found.");
    if(this.previousBtn==null)
        alert("Previous button element \"" + containerid + "ControlsPrev" + "\" not found.");    
    if(this.nextBtn==null)
        alert("Next button element \"" + containerid + "ControlsNext" + "\" not found.");    

	var x = this.viewport.childNodes; // ('DIV');
	var y = document.getElementById(containerid + "Heading").getElementsByTagName('SPAN');
	
	for(var i=0; i<y.length; i++)
	{
	    this.headings.push(y[i]);
	}
	
	var left = 0;
	this.targetSlide = 0;
	this.slideCount = 0;
    this.totalWidth = 0;
    this.leftPosition = 0;
    
    this.slideWidth = 0;
	this.viewableWidth = this.slideContainer.offsetWidth;
	this.viewport.style.left = '0px';
	
	for(var i=1; i<5; i++)
	    this.controls.push(document.getElementById(containerid + 'Controls' + i));
	
	for(var i=0; i<this.controls.length; i++)
	{
	    this.controls[i].style.display='none';
    }
	
	for(var i=0; i<x.length; i++)
	{
	    if(x[i].className=='slide')
	    {
	        if(this.slideWidth==0)
	            this.slideWidth = x[i].offsetWidth;

	        this.totalWidth += this.slideWidth;
	        this.controls[this.slideCount].style.display='inline';
            this.controls[this.slideCount].style.cursor = 'pointer';
	        this.controls[this.slideCount].slideshow = this;
	        this.controls[this.slideCount].onclick = this.moveTo;
	        this.slideCount++;
	    }
	}
	this.slideSteps = this.slideWidth/8;
    this.nextBtn.slideshow = this;
    this.previousBtn.slideshow = this;
    this.nextBtn.style.cursor = this.previousBtn.style.cursor = 'pointer';
    this.nextBtn.onclick = this.moveNext;
    this.previousBtn.onclick = this.movePrevious;
    
    this.previousBtn.src=this.previousBtn.src.replace('btn.gif', 'btnx.gif');
    this.nextBtn.src=this.nextBtn.src.replace('btn.gif', 'btnx.gif');
    if(this.slideCount>1)
    {
        this.nextBtn.src=this.nextBtn.src.replace('btnx.gif', 'btn.gif');
    }
    else
    {
        this.previousBtn.style.display = 'none';
        this.nextBtn.style.display = 'none';
	    for(var i=0; i<this.controls.length; i++)
	    {
	        this.controls[i].style.display='none';
        }
    }
    

    var _self = this;

    if (window.addEventListener)
    {
	    window.addEventListener('load', function(){_self.documentOnLoad(this);}, false);
    }
    else if (window.attachEvent)
    {
	    window.attachEvent('onload', function(){_self.documentOnLoad(this);});
    }


    this.currentSlidePort = 0;
    this.containerHeight = 50;

    var xy = document.getElementById(containerid + "Display");
    if(xy)
    {
        var tempidx = 0;
        for(var i=0; i<xy.childNodes.length; i++)
        {
	        if(xy.childNodes[i].className=='slide')
	        {
	        
                this.slidePortsHeight.push(xy.childNodes[i].offsetHeight);
                
                if(xy.childNodes[i].offsetHeight>this.containerHeight)
                {
                    this.containerHeight = xy.childNodes[i].offsetHeight;
                    this.container.style.height = this.containerHeight + 'px';
                }
	            this.slidePorts.push(xy.childNodes[i]);
	            if(this.slidePorts.length>1)
	            {
	                xy.childNodes[i].style.display='none';
                }
	        }
        }
    }
};



sublime.slideshow.prototype={
    thumbOver:function(idx)
    {
        if(this.slidePortInProgress)
            return;
        if(idx==this.currentSlidePort)
            return;
        this.thumbnails[idx].anchor.childNodes[0].src = this.thumbnails[idx].thumbHl.src;
    },
    thumbOut:function(idx)
    {
        if(this.slidePortInProgress)
            return;
        if(idx==this.currentSlidePort)
            return;
        this.thumbnails[idx].anchor.childNodes[0].src = this.thumbnails[idx].thumb.src;
    },
    documentOnLoad:function()
    {
        for(var i=0; i<this.thumbnails.length; i++)
        {
            var x = this.thumbnails[i];
            if(x.anchor)
                x.anchor.childNodes[0].style.marginTop = x.anchor.parentNode.offsetHeight/2 - x.thumb.height/2 + 'px';
        }
    
        var xy = document.getElementById(this.containerId + "Display");
        if(xy)
        {
            var realidx = 0;
            for(var i=0; i<xy.childNodes.length; i++)
            {
	            if(xy.childNodes[i].className=='slide')
	            {
                    xy.childNodes[i].style.display='block';
                    this.slidePortsHeight[realidx] = xy.childNodes[i].offsetHeight;
                    if(xy.childNodes[i].offsetHeight>this.containerHeight)
                    {
                        this.containerHeight = xy.childNodes[i].offsetHeight;
                        this.container.style.height = this.containerHeight + 'px';
                    }
	                if(realidx!=this.currentSlidePort)
	                {
	                    xy.childNodes[i].style.display='none';
                    }
                    realidx++;
	            }
            }
        }
    },
    registerThumbnail:function(src, src_hl, aid)
    {
        var x = new sublime.slideshowThumbnail(src, src_hl, aid);
        
        if(x.anchor!=null)
        {
            var _self = this;
            x.anchor.childNodes[0].style.marginTop = x.anchor.parentNode.offsetHeight/2 - x.thumb.height/2 + 'px';
        }
        this.thumbnails.push(x);
    },
    openSlideTimeout:function(slideidx,h,ms)
    {
        var _self = this;
        setTimeout(function(ms){_self.openSlideX(slideidx,h);},ms);
    },
    openSlideX:function(slideidx, height)
    {
        var slide = this.slidePorts[slideidx];
        if(!height)
        {
            slide.style.display='block';
            height = 0;
        }

        var nheight = height+50>this.slidePortsHeight[slideidx] ? this.slidePortsHeight[slideidx] : height+50;

        slide.style.height = nheight + 'px';
        if(nheight<this.slidePortsHeight[slideidx])
        {
            this.openSlideTimeout(slideidx, nheight, 10);
        }
        else
        {
            this.currentSlidePort = slideidx;
            this.slidePortInProgress = false;
        }
    },
    closeSlideTimeout:function(slideidx,h,ms)
    {
        var _self = this;
        setTimeout(function(ms){_self.closeSlideX(slideidx,h);},ms);
    },
    openSlide:function(slideidx)
    {
        if(this.slidePortInProgress)
            return;
        this.slidePortInProgress = true;
        
        for(var i=0; i<this.thumbnails.length; i++)
        {
            if(this.thumbnails[i].anchor!=null)
                this.thumbnails[i].anchor.childNodes[0].src = this.thumbnails[i].thumb.src;
        }
        if(this.thumbnails[slideidx].anchor!=null)
            this.thumbnails[slideidx].anchor.childNodes[0].src = this.thumbnails[slideidx].thumbHl.src;
        
        this.closeSlideX(slideidx);
    },
    closeSlideX:function(slideidx, height)
    {
        var slide = this.slidePorts[this.currentSlidePort];
        if(slide==null)
        {
            this.slidePortInProgress = false;
            return;
        }
        if(height==null)
        {
            height = this.slidePortsHeight[this.currentSlidePort];
            if(height==null)
                height=0;
        }
        var nheight = height-50<0 ? 0 : height-50;
        slide.style.height = nheight + 'px';
        if(nheight>1)
        {
            this.closeSlideTimeout(slideidx, nheight, 10);
        }
        else
        {
            slide.style.display='none';
            this.openSlideX(slideidx);
        }
    },
    moveTo:function()
    {
        var slideshow = this.slideshow;
        if(slideshow.slideInProgress) return;
        slideshow.slideInProgress=true;
        for(var i=0; i<slideshow.controls.length; i++)
        {
            if(this==slideshow.controls[i])
            {
                if(i==slideshow.slideIdx)
                    break;
                    
                var targetPos = slideshow.slideWidth * i;
                /*
	            for(var x=0; x<slideshow.headings.length; x++)
                    slideshow.headings[x].style.display='none';
                slideshow.headings[i].style.display='block';
                */
                for(var x=0; x<slideshow.controls.length; x++)
                    slideshow.controls[x].src = slideshow.controls[x].src.replace('a.gif', '.gif');
                slideshow.controls[i].src = slideshow.controls[i].src.replace('.gif', 'a.gif');
                slideshow.previousBtn.src=slideshow.previousBtn.src.replace('btn.gif', 'btnx.gif');
                slideshow.nextBtn.src=slideshow.nextBtn.src.replace('btn.gif', 'btnx.gif');
                if(i>0)
                    slideshow.previousBtn.src=slideshow.previousBtn.src.replace('btnx.gif', 'btn.gif');
                if(i<slideshow.slideCount-1)
                    slideshow.nextBtn.src=slideshow.nextBtn.src.replace('btnx.gif', 'btn.gif');
                if(slideshow.slideIdx<i)
                {
                    slideshow.slideIdx = i;
                    
                    
                    
		            slideshow.slideTo(targetPos, slideshow.slideSteps*-1, Math.abs(slideshow.leftPosition));
                    return;
                }
                else
                {
                    slideshow.slideIdx = i;
		            slideshow.slideTo(Math.abs(slideshow.leftPosition), slideshow.slideSteps, targetPos);
                    return;
                }
            }
        }
        slideshow.slideInProgress=false;
    },
    movePrevious:function()
    {
        var slideshow = this.slideshow;
        if(slideshow.slideInProgress) return;
        slideshow.slideInProgress=true;
        if(slideshow.slideIdx<=0)
		{
			slideshow.slideInProgress = false;
			return;
		}
		slideshow.movePreviousX();
    },
    movePreviousX:function()
    {
		this.slideIdx--;
		/*
		for(var i=0; i<this.headings.length; i++)
	        this.headings[i].style.display='none';
        this.headings[this.slideIdx].style.display='block';
        */
 	    for(var i=0; i<this.controls.length; i++)
	        this.controls[i].src = this.controls[i].src.replace('a.gif', '.gif');
        this.controls[this.slideIdx].src = this.controls[this.slideIdx].src.replace('.gif', 'a.gif');

        this.previousBtn.src=this.previousBtn.src.replace('btn.gif', 'btnx.gif');
        this.nextBtn.src=this.nextBtn.src.replace('btn.gif', 'btnx.gif');
        if(this.slideIdx>0)
            this.previousBtn.src=this.previousBtn.src.replace('btnx.gif', 'btn.gif');
        if(this.slideIdx<this.slideCount-1)
            this.nextBtn.src=this.nextBtn.src.replace('btnx.gif', 'btn.gif');
        
		this.slide(this.slideSteps,0);
    },
    moveNext:function()
    {
        var slideshow = this.slideshow;
        if(slideshow.slideInProgress) return;
        slideshow.slideInProgress=true;
        if(slideshow.slideIdx+1>=slideshow.slideCount)
        {
			slideshow.slideInProgress = false;
            return;
        }
        slideshow.moveNextX();
    },
    moveNextX:function()
    {
        this.slideIdx++;
        /*
		for(var i=0; i<this.headings.length; i++)
	        this.headings[i].style.display='none';
        this.headings[this.slideIdx].style.display='block';
        */
	    for(var i=0; i<this.controls.length; i++)
	        this.controls[i].src = this.controls[i].src.replace('a.gif', '.gif');
        this.controls[this.slideIdx].src = this.controls[this.slideIdx].src.replace('.gif', 'a.gif');
        this.previousBtn.src=this.previousBtn.src.replace('btn.gif', 'btnx.gif');
        this.nextBtn.src=this.nextBtn.src.replace('btn.gif', 'btnx.gif');
        if(this.slideIdx>0)
            this.previousBtn.src=this.previousBtn.src.replace('btnx.gif', 'btn.gif');
        if(this.slideIdx<this.slideCount-1)
            this.nextBtn.src=this.nextBtn.src.replace('btnx.gif', 'btn.gif');

		this.slide((this.slideSteps*-1),0);
    },
    slideTimeout:function(s,p,ms)
    {
        var _self = this;
        setTimeout(function(ms){_self.slide(s,p);},ms);
    },
    slideToTimeout:function(target,speed,pos,ms)
    {
        var _self = this;
        setTimeout(function(ms){_self.slideTo(target,speed,pos);},ms);
    },
    slideTo:function(target, speed, pos)
    {
        var currentPos = pos + Math.abs(speed);
        this.leftPosition = this.leftPosition + speed;
		this.viewport.style.left = this.leftPosition + 'px';
		
		if(currentPos<target)
		{
            this.slideToTimeout(target, speed, currentPos, this.slideSpeed);
		}
		else
		{
			this.slideInProgress = false;
		}
    },
    slide:function(speed, pos)
    {
		var leftPos;
		var currentPos = pos;
		if(this.leftPosition)
		{
			leftPos = this.leftPosition;
		}
		else
		{
			leftPos = this.viewport.style.left.replace('px','')/1;
			this.leftPosition = leftPos;
		}
		
		currentPos = currentPos + Math.abs(speed);

		var tmpLeftPos = leftPos;
		leftPos = leftPos + speed;
		this.leftPosition = leftPos;

		this.viewport.style.left = leftPos + 'px';
		
		if(currentPos<this.slideWidth)
		{
            this.slideTimeout(speed, currentPos, this.slideSpeed);
	    }
	    else
	    {
	        /*
			if(tmpLeftPos>=0 || (columnsOfThumbnails && thumbsColIndex==1))
			{
				document.getElementById('DHTMLgoodies_leftArrow').style.visibility='hidden';
			}	
			^*/
			var left = tmpLeftPos;		
			var showArrow = true;
			if(this.totalWidth + left - this.slideWidth <= this.viewableWidth)
			{
			    showArrow=false;
		    }
		    /*
			if(columnsOfThumbnails){
				if((thumbsColIndex+1)<columnsOfThumbnails)showArrow=true; else showArrow = false;				
			}			
			if(!showArrow){
				document.getElementById('DHTMLgoodies_rightArrow').style.visibility='hidden';
			}					
			*/
			this.slideInProgress = false;
		}
	
	}
	
};





	/************************************************************************************************************
	(C) www.dhtmlgoodies.com, June 2006
	
	This is a script from www.dhtmlgoodies.com. You will find this and a lot of other scripts at our website.	
	
	Terms of use:
	You are free to use this script as long as the copyright message is kept intact. However, you may not
	redistribute, sell or repost it without our permission.
	
	Thank you!
	
	www.dhtmlgoodies.com
	Alf Magne Kalleland
	
	************************************************************************************************************/	

	
	/*
	
	var opacitySpeed = 2;	// Speed of opacity - switching between large images - Lower = faster
	var opacitySteps = 10; 	// Also speed of opacity - Higher = faster
	var slideSpeed = 5;	// Speed of thumbnail slide - Lower = faster
	var slideSteps = 8;	// Also speed of thumbnail slide - Higher = faster
	var columnsOfThumbnails = 4;	// Hardcoded number of thumbnail columns, use false if you want the script to figure it out dynamically.
	
	var DHTMLgoodies_largeImage = false;
	var DHTMLgoodies_imageToShow = false;
	var DHTMLgoodies_currentOpacity = 100;
	var DHTMLgoodies_slideWidth = false;
	var DHTMLgoodies_thumbTotalWidth = false;
	var DHTMLgoodies_viewableWidth = false;
	
	var currentUnqiueOpacityId = false;
	var DHTMLgoodies_currentActiveImage = false;
	var DHTMLgoodies_thumbDiv = false;
	var DHTMLgoodies_thumbSlideInProgress = false;
	
	var browserIsOpera = navigator.userAgent.indexOf('Opera')>=0?true:false;
	var leftArrowObj;
	var rightArrowObj;
	var thumbsColIndex = 1;
	var thumbsLeftPos = false;
	
	function initGalleryScript()
	{
		leftArrowObj = document.getElementById('DHTMLgoodies_leftArrow');		
		leftArrowObj.style.visibility='hidden';
		rightArrowObj = document.getElementById('DHTMLgoodies_rightArrow');	
		leftArrowObj.style.cursor = 'pointer';	
		rightArrowObj.style.cursor = 'pointer';	
		leftArrowObj.onclick = moveThumbnails;
		rightArrowObj.onclick = moveThumbnails;
		DHTMLgoodies_largeImage = document.getElementById('DHTMLgoodies_largeImage').getElementsByTagName('IMG')[0];
		var innerDiv = document.getElementById('DHTMLgoodies_thumbs_inner');
		DHTMLgoodies_slideWidth = innerDiv.getElementsByTagName('DIV')[0].offsetWidth;
		DHTMLgoodies_thumbDiv = document.getElementById('DHTMLgoodies_thumbs_inner');
		DHTMLgoodies_thumbDiv.style.left = '0px';
		
		var subDivs = DHTMLgoodies_thumbDiv.getElementsByTagName('DIV');
		DHTMLgoodies_thumbTotalWidth = 0;
		var tmpLeft = 0;
		for(var no=0;no<subDivs.length;no++){
			if(subDivs[no].className=='strip_of_thumbnails'){
				DHTMLgoodies_thumbTotalWidth = DHTMLgoodies_thumbTotalWidth + DHTMLgoodies_slideWidth;
				subDivs[no].style.left = tmpLeft + 'px';
				subDivs[no].style.top = '0px';
				tmpLeft = tmpLeft + subDivs[no].offsetWidth;
			}
		}

		DHTMLgoodies_viewableWidth = document.getElementById('DHTMLgoodies_thumbs').offsetWidth;
		
		
		DHTMLgoodies_currentActiveImage = DHTMLgoodies_thumbDiv.getElementsByTagName('A')[0].getElementsByTagName('IMG')[0];
		DHTMLgoodies_currentActiveImage.className='activeImage';
	}
	
	function moveThumbnails()
	{
		if(DHTMLgoodies_thumbSlideInProgress)return;
		DHTMLgoodies_thumbSlideInProgress = true;
		if(this.id=='DHTMLgoodies_leftArrow'){
			thumbsColIndex--;
			rightArrowObj.style.visibility='visible';
			if(DHTMLgoodies_thumbDiv.style.left.replace('px','')/1>=0){
				leftArrowObj.style.visibility='hidden';
				DHTMLgoodies_thumbSlideInProgress = false;
				return;
			}
			
			slideThumbs(slideSteps,0);
			
		}else{
			thumbsColIndex++;
			leftArrowObj.style.visibility='visible';
			var left = DHTMLgoodies_thumbDiv.style.left.replace('px','')/1;	
			var showArrow = true;
			if(DHTMLgoodies_thumbTotalWidth + left - DHTMLgoodies_slideWidth <= DHTMLgoodies_viewableWidth)showArrow = false;
			if(columnsOfThumbnails)showArrow = true;
				
			if(!showArrow)	
			{
				rightArrowObj.style.visibility='hidden';
				DHTMLgoodies_thumbSlideInProgress = false;
				return;
			}	
			
			slideThumbs((slideSteps*-1),0);
		}	
		
	}
	
	function slideThumbs(speed,currentPos)
	{
		var leftPos;
		if(thumbsLeftPos){
			leftPos= thumbsLeftPos;
		}else{
			var leftPos = DHTMLgoodies_thumbDiv.style.left.replace('px','')/1;
			thumbsLeftPos = leftPos;
		}
		currentPos = currentPos + Math.abs(speed);		
		var tmpLeftPos = leftPos;
		leftPos = leftPos + speed;
		thumbsLeftPos = leftPos;
		DHTMLgoodies_thumbDiv.style.left = leftPos + 'px';
		if(currentPos<DHTMLgoodies_slideWidth)setTimeout('slideThumbs(' + speed + ',' + currentPos + ')',slideSpeed);else{
			if(tmpLeftPos>=0 || (columnsOfThumbnails && thumbsColIndex==1)){
				document.getElementById('DHTMLgoodies_leftArrow').style.visibility='hidden';
			}	
			var left = tmpLeftPos;		
			var showArrow = true;
			if(DHTMLgoodies_thumbTotalWidth + left - DHTMLgoodies_slideWidth <= DHTMLgoodies_viewableWidth)showArrow=false;
			if(columnsOfThumbnails){
				if((thumbsColIndex+1)<columnsOfThumbnails)showArrow=true; else showArrow = false;				
			}			
			if(!showArrow){
				document.getElementById('DHTMLgoodies_rightArrow').style.visibility='hidden';
			}					
			DHTMLgoodies_thumbSlideInProgress = false;
		}
	
	}
	
	function showPreview(imagePath,inputObj)
	{		
		if(DHTMLgoodies_currentActiveImage){
			if(DHTMLgoodies_currentActiveImage==inputObj.getElementsByTagName('IMG')[0])return;
			DHTMLgoodies_currentActiveImage.className='';
		}
		DHTMLgoodies_currentActiveImage = inputObj.getElementsByTagName('IMG')[0];
		DHTMLgoodies_currentActiveImage.className='activeImage';
		
		DHTMLgoodies_imageToShow = imagePath;
		var tmpImage = new Image();
		tmpImage.src = imagePath;
		currentUnqiueOpacityId = Math.random();
		moveOpacity(opacitySteps*-1,currentUnqiueOpacityId);
	}
	
	function setOpacity()
	{
		if(document.all)
		{
			DHTMLgoodies_largeImage.style.filter = 'alpha(opacity=' + DHTMLgoodies_currentOpacity + ')';
		}else{
			DHTMLgoodies_largeImage.style.opacity = DHTMLgoodies_currentOpacity/100;
		}		
	}
	function moveOpacity(speed,uniqueId)
	{
		
		if(browserIsOpera){
			DHTMLgoodies_largeImage.src = DHTMLgoodies_imageToShow;
			return;
		}
		
		DHTMLgoodies_currentOpacity = DHTMLgoodies_currentOpacity + speed;
		if(DHTMLgoodies_currentOpacity<=5 && speed<0){
		
			var tmpParent = DHTMLgoodies_largeImage.parentNode; 
			DHTMLgoodies_largeImage.parentNode.removeChild(DHTMLgoodies_largeImage);
			DHTMLgoodies_largeImage = document.createElement('IMG');
			tmpParent.appendChild(DHTMLgoodies_largeImage);
			setOpacity();
			DHTMLgoodies_largeImage.src = DHTMLgoodies_imageToShow;
		
			speed=opacitySteps;
		}
		if(DHTMLgoodies_currentOpacity>=99 && speed>0)DHTMLgoodies_currentOpacity=99;		
		setOpacity();	
		if(DHTMLgoodies_currentOpacity>=99 && speed>0)return;		
		if(uniqueId==currentUnqiueOpacityId)setTimeout('moveOpacity(' + speed + ',' + uniqueId + ')',opacitySpeed);		
	}
	
	*/