/*
+--------------------------------------
|   Wiccle v1.00
|   ==================================
|   by Markus Loponen & Keith Killilea
|   (c) 2009-2010 Wiccle Ltd.
|   http://www.www.wiccle.com
|   Email: info@wiccle.com
|   ==================================
|   Time: 2010-04-16 | File version: 1.00
+-------------------------------------
|  	Please read the Wiccle license 
|   Available at docs/license.txt
+-------------------------------------
*/




/* Special effects department */

/* Many of these functions feature loops that have not been optimized cross-browser, and may perform sluggishly with IE's javascript parser. They are not in use in our stable releases. Use at your own risk. */


function fadeShow(divId, divTime)
{				

	fadeOpacity(0, divId);
	justShow(divId);
	var thisTime = 0;
	var thisOpa = 0;
	var opaIncr = 2;
	var opaTime = 10;
	var opaSteps = 50;
	
	if (IE) 
	{
		var opaSteps = 25;
		var opaIncr = 4;
	}
	
	
	/* for (i=1; i < 50; i=i+2)
	{
		setTimeout('fadeOpacity('+i+', \''+divId+'\')', (thisTime+divTime) );
		thisTime = thisTime + divTime;
	} */
	
	
	for (i=1; i <= opaSteps; i++)
	{
		thisOpa = thisOpa + opaIncr;
		thisTime = thisTime + opaTime;
	
		if (IE)
		{
			setTimeout('document.getElementById(\''+divId+'\').style.filter=\'alpha(opacity='+thisOpa+')\'', (thisTime+opaTime) );
		}
		else
		{
			var fadeOpa = thisOpa / 100;
			setTimeout('document.getElementById(\''+divId+'\').style.opacity=\''+fadeOpa+'\'', (thisTime+opaTime) );
		}
		
		
	}
	
	if (IE)
	{
		setTimeout('document.getElementById(\''+divId+'\').style.filter=\'alpha(opacity=100)\'', (thisTime+opaTime) );
	}
	else
	{
		setTimeout('document.getElementById(\''+divId+'\').style.opacity=\'1\'', (thisTime+opaTime) );
	}
	
}

function fadeHide(divId, divTime)
{				
	var thisTime = 0;
	
	for (i=100; i >= 0; i--)
	{
		setTimeout('fadeOpacity('+i+', \''+divId+'\')', (thisTime+divTime) );
		thisTime = thisTime + divTime;
	}
	setTimeout('justHide(\''+divId+'\')', thisTime);
}


function fadeOutDiv(divId, divTime, divSteps, divIncr, divOpaStop)
{				
	if (!divSteps) var divSteps = 100;
	if (!divIncr) var divIncr = 1;
	if (!divOpaStop) var divOpaStop = 0;
	
	var thisTime = 0;
	
	for (i=divSteps; i >= 0; i=i-divIncr)
	{
		if (i <= divOpaStop) break;
		setTimeout('fadeOpacity('+i+', \''+divId+'\')', (thisTime+divTime) );
		thisTime = thisTime + divTime;
	}
	setTimeout('fadeOpacity('+divOpaStop+', \''+divId+'\')', (thisTime+divTime) );
}


function fadeOpacity(fade, objId)
{
	if (!fade_obj) var fade_obj = document.getElementById(objId);
	var fadeOpa = fade / 100;
	
	if (IE)
	{
		fade_obj.style.filter = "alpha(opacity=" + fade +")";
	}
	else
	{
		fade_obj.style.opacity = fadeOpa;
	}
}




function slideInDiv(divId)
{

	var divObj = document.getElementById(divId);
	divObj.style.height='';
	justShow(divId);
	
	var divHeight = divObj.offsetHeight;
	divObj.style.height='1px';
	divObj.style.overflow='hidden';
		
	var thisTime = 100;
	
	var divIncr = 10;
	var divTime = 20;
	
	//var opaIncr = Math.round( (divHeight / divIncr * 1000) / 1000 ) / 100;
	var opaIncr = Math.round((100 / (divHeight / divIncr)) * 1000 ) / 1000;
	
	if (opaIncr < 1.5) opaIncr = 1.5;
	
	var thisOpa = 0;
	
	var divResHeight = divHeight;
	
	if (divHeight > 1000) divResHeight = 1000;
	
	for (i=1; i < divResHeight; i=i+divIncr)
	{
		setTimeout('changeDivHeight(\''+divId+'\', '+i+')', (thisTime+divTime) );
		thisTime = thisTime + divTime;
	}
	
	var thisOpa = 0;
	
	var opaTime = 0;
	
	for (i=1; i<50; i++)
	{
		thisOpa = thisOpa + 2;
		
		setTimeout('fadeOpacity('+thisOpa+', \''+divId+'\')', (opaTime+divTime) );
		opaTime = opaTime + divTime;
	}
	setTimeout('fadeOpacity('+thisOpa+', \''+divId+'\')', opaTime );
	
	setTimeout('changeDivHeight(\''+divId+'\', '+divHeight+', 100)', (thisTime+divTime) );
	
}


function fadeSlideDivHoriz(divId, divHeight, divOpa)
{
	var divObj = document.getElementById(divId);
	var divHeightPx = divHeight + 'px';
	divObj.style.height = divHeightPx;
	
	
	if (divOpa < 100)
	{
		if (IE)
		{
			divObj.style.filter = 'alpha(opacity='+divOpa+')';
		}
		else
		{
			var fadeOpa = divOpa / 100;
			divObj.style.opacity = fadeOpa;
		}
	}
}




function slideIn(divId, divHeight, divIncr, divTime)
{
	justShow(divId);
		
	if (window.currentSlide)
	{
		document.getElementById(window.currentSlide).style.zIndex=2;
		
		if (window.previousSlide)
			document.getElementById(window.previousSlide).style.zIndex=1;
			
		window.previousSlide = window.currentSlide;
	}
	window.currentSlide = divId;

	document.getElementById(divId).style.zIndex=3;
	
	
	var slideDiv = document.getElementById(divId);
	
	slideDiv.style.height = '1px';
	
	var thisTime = 0;
	
	for (i=1; i < divHeight; i=i+divIncr)
	{
		setTimeout('increaseDivHeight(\''+divId+'\', '+i+')', (thisTime+divTime) );
		thisTime = thisTime + divTime;
	}
	
}



function slideInLeft(divId, divWidth, divIncr, divTime, opaSteps, opaTime)
{

	if (!opaSteps) var opaSteps = 50;
	if (!opaTime) var opaTime = divTime;
	
	justShow(divId);
		
	if (window.currentSlide)
	{
		document.getElementById(window.currentSlide).style.zIndex=2;
		
		if (window.previousSlide)
			document.getElementById(window.previousSlide).style.zIndex=1;
			
		window.previousSlide = window.currentSlide;
	}
	window.currentSlide = divId;

	var slideDiv = document.getElementById(divId);
	slideDiv.style.width = '1px';
	slideDiv.style.zIndex = '3';
	
	var thisTime = 0;
	
	for (i=1; i < divWidth; i=i+divIncr)
	{
		setTimeout('document.getElementById(\''+divId+'\').style.width=\''+i+'px\'', (thisTime+divTime) );
		thisTime = thisTime + divTime;
	}
	setTimeout('document.getElementById(\''+divId+'\').style.width=\''+divWidth+'px\'', (thisTime+divTime) );
	
	/* Opacity processor */
	
	var thisOpa = 0;
	var thisTime = 0;
	var opaIncr = (100 / opaSteps);
	
	for (i=1; i < opaSteps; i++)
	{
		thisOpa = thisOpa + opaIncr;
	
		if (IE)
		{
			setTimeout('document.getElementById(\''+divId+'\').style.filter=\'alpha(opacity='+thisOpa+')\'', (thisTime+opaTime) );
		}
		else
		{
			var fadeOpa = thisOpa / 100;
			setTimeout('document.getElementById(\''+divId+'\').style.opacity=\''+fadeOpa+'\'', (thisTime+opaTime) );
		}
		
		setTimeout('fadeOpacity('+thisOpa+', \''+divId+'\')', (thisTime+opaTime) );
		thisTime = thisTime + opaTime;
	}
	
	if (IE)
	{
		setTimeout('document.getElementById(\''+divId+'\').style.filter=\'alpha(opacity=100)\'', (thisTime+opaTime) );
	}
	else
	{
		setTimeout('document.getElementById(\''+divId+'\').style.opacity=\'1\'', (thisTime+opaTime) );
	}
	
	
	
}

