var slideInUse = new Array();
var slideSpeed = 1600;

var RegionDivIdsArray = new Array();
RegionDivIdsArray.push('cm');
RegionDivIdsArray.push('vi');
RegionDivIdsArray.push('ok');
RegionDivIdsArray.push('nw');
RegionDivIdsArray.push('cc');
RegionDivIdsArray.push('ro');

function Slide(objId, options) {
	this.obj = document.getElementById(objId);
	this.duration = 1;
	this.height = parseInt(this.obj.style.height);

	if(typeof options != 'undefined') { this.options = options; } else { this.options = {}; }
	if(this.options.duration) { this.duration = this.options.duration; }
		
	this.up = function() {
		this.curHeight = this.height;
		this.newHeight = '1';
		if(slideInUse[objId] != true) {
			var finishTime = this.slide();
			window.setTimeout("Slide('"+objId+"').finishup("+this.height+");",finishTime);
		}
	}
	
	this.down = function() {
		this.newHeight = this.height;
		this.curHeight = '1';
		if(slideInUse[objId] != true) {
			this.obj.style.height = '1px';
			this.obj.style.display = 'block';
			this.slide();
		}
	}
	
	this.slide = function() 
	{
		slideInUse[objId] = true;
		var frames = 120 * duration; // Running at 30 fps

		var tIncrement = (duration*slideSpeed) / frames;
		tIncrement = Math.round(tIncrement);
		var sIncrement = (this.curHeight-this.newHeight) / frames;

		var frameSizes = new Array();
		for(var i=0; i < frames; i++) {
			if(i < frames/2) {
				frameSizes[i] = (sIncrement * (i/frames))*4;
			} else {
				frameSizes[i] = (sIncrement * (1-(i/frames)))*4;
			}
		}
		
		for(var i=0; i < frames; i++) {
			this.curHeight = this.curHeight - frameSizes[i];
			window.setTimeout("document.getElementById('"+objId+"').style.height='"+Math.round(this.curHeight)+"px';",tIncrement * i);
		}
		
		window.setTimeout("delete(slideInUse['"+objId+"']);",tIncrement * i);
		
		if(this.options.onComplete) {
			window.setTimeout(this.options.onComplete, tIncrement * (i-2));
		}
		return tIncrement * i;
	}
	
	this.finishup = function(height) {
		this.obj.style.display = 'none';
		this.obj.style.height = height + 'px';
	}
	return this;
}

function IsSlideOpen(SlideName)
{
	var varSlideOpen = document.getElementById("currSlideopen");
	if(varSlideOpen.value==SlideName)
		return true;
	else
		return false;
}

function SetCurrentOpenSlide(SlideName)
{
	var varSlideOpen = document.getElementById("currSlideopen");
	varSlideOpen.value = SlideName;
}

function SetCurrentHeader(HeaderName)
{
	//reset all h6 headers
	if(RegionDivIdsArray!=null && RegionDivIdsArray.length>0)
	{
		for (i=0;i<RegionDivIdsArray.length; i++)
		{
			var varHeader = RegionDivIdsArray[i]+"Header";
			document.getElementById(varHeader).className = "";
		}
	}
	document.getElementById(HeaderName).className = "on";
}

function SlideRegion(RegionDivID)
{
	if(!IsSlideOpen(RegionDivID))
	{
		Slide(RegionDivID).down();
		if(RegionDivIdsArray!=null && RegionDivIdsArray.length>0)
		{
			for (i=0;i<RegionDivIdsArray.length; i++)
			{
				if(RegionDivIdsArray[i]!=RegionDivID)
					Slide(RegionDivIdsArray[i]).up();
			}
		}
		SetCurrentOpenSlide(RegionDivID);
		SetCurrentHeader(RegionDivID+'Header');
	}
}

