var intMaxCompare = 3;
var intCurrentCompare = 0;

var pOldOnLoadFader = null;
var pOldOnResizeFader = null;

var strOldDivName="DfaderDIV3";
var strDivName="DfaderDIV0";

function DfaderInit()
{
  DfaderAlign();
  //setTimeout("DfaderNextClicked();", 100);
  if (pOldOnLoadFader != null) {
    pOldOnLoadFader();
  }
}

function DfaderAlign()
{
        xMoveTo("DfaderDIV0", xPageX("placeholder"), xPageY("placeholder"));
        xMoveTo("DfaderDIV1", xPageX("placeholder"), xPageY("placeholder"));
        xMoveTo("DfaderDIV2", xPageX("placeholder"), xPageY("placeholder"));
        xMoveTo("DfaderDIV3", xPageX("placeholder"), xPageY("placeholder"));
        
        xMoveTo(strDivName, xPageX("placeholder"), xPageY("placeholder"));
        xShow(strDivName);

        if (pOldOnResizeFader != null) {
          pOldOnResizeFader();
        }

        return ;
}
function DfaderNextClicked()
{
        strOldDivName = "DfaderDIV" + intCurrentCompare;
        if (intCurrentCompare >= intMaxCompare)
                intCurrentCompare = 0;
        else
                intCurrentCompare = intCurrentCompare + 1;
        strDivName = "DfaderDIV" + intCurrentCompare;
        Dfade();
	return void(0);
}
function DfaderPrevClicked()
{
        strOldDivName = "DfaderDIV" + intCurrentCompare;
        if (intCurrentCompare <= 0)
                intCurrentCompare = intMaxCompare;
        else
                intCurrentCompare = intCurrentCompare - 1;
        strDivName = "DfaderDIV" + intCurrentCompare;
        Dfade();
        return void(0);
}

function Dfade()
{	
    xMoveTo(strDivName, xPageX("placeholder"), xPageY("placeholder"));
	var vFrom = 'DisolveFromSW';
	var vTo = 'DisolveToNE';
	var vFromDirection;
	var vToDirection;
	//vFrom = document.DfaderController.DfaderFrom.value;
	//vTo = document.DfaderController.DfaderTo.value;
	vFromDirection=vFrom.substr(vFrom.indexOf("From")+4);
	vToDirection=vTo.substr(vTo.indexOf("To")+2);
	var vToMethod = (vTo.indexOf("Disolve")>= 0) ? "Disolve" : "Appear";
	var vFromMethod = (vFrom.indexOf("Disolve")>= 0) ? "Disolve" : "Appear";
	//alert("FROM=" + vFromDirection);
	//alert("TO=" + vToDirection);
	var e = null;
	if (!(e=xGetElementById(strDivName))) return;
	if ((e.appearing) || (e.desolving)) return;
	if (!(e=xGetElementById(strOldDivName))) return;
	if ((e.appearing) || (e.desolving)) return;
 	xHide(strDivName);
        xMoveTo(strDivName, xPageX("placeholder"), xPageY("placeholder"));
        xZIndex(strDivName, 40);
        xZIndex(strOldDivName, 30);

	if (vToMethod == "Appear") {
		xDisappearTo(strOldDivName, vToDirection.toLowerCase(), 1300);
	}
	if (vToMethod == "Disolve") {
		var t = xClipValues(strDivName, "t");
		var r = xClipValues(strDivName, "r");
		var b = xClipValues(strDivName, "b");
		var l = xClipValues(strDivName, "l");
		switch(vToDirection) {
		case 'N':
			xDisolveTo(strOldDivName, t, r, t, l, 1300);
			break;
		case 'W':
			xDisolveTo(strOldDivName, t, l, b, l, 1300);
			break;
		case 'E':
			xDisolveTo(strOldDivName, t, r, b, r, 1300);
			break;
		case 'S':
			xDisolveTo(strOldDivName, b, r, b, l, 1300);
			break;
		case 'NW':
			xDisolveTo(strOldDivName, t, l, t, l, 1300);
			break;
		case 'NE':
			xDisolveTo(strOldDivName, t, r, t, r, 1300);
			break;
		case 'SW':
			xDisolveTo(strOldDivName, b, l, b, l, 1300);
			break;
		case 'SE':
			xDisolveTo(strOldDivName, b, r, b, r, 1300);
			break;
		case 'C':
			xDisolveTo(strOldDivName, Math.round((t+b)/2), Math.round((r+l)/2), Math.round((t+b)/2), Math.round((r+l)/2), 1300);
			break;
		case 'R':
			Math.random();
			var intTempX = Math.round(Math.random() * (r-l)) + l;
			var intTempY = Math.round(Math.random() * (b-t)) + t;
			xDisolveTo(strOldDivName, intTempY, intTempX, intTempY, intTempX, 1300);
			break;


		}
		var strCommand = "xHide('" + strOldDivName + "'); xClip('" + strOldDivName + "'," + t + "," + r + "," + b + "," + l + ");";
		//alert(strCommand);
		setTimeout( strCommand , 1500);

	}


	if (vFromMethod == "Appear") {
		xAppearFrom(strDivName, vFromDirection.toLowerCase(), 1300);
		//setTimeout("xAppearFrom('" + strDivName + "', 'e', 1300);",1300);
	}
	if (vFromMethod == "Disolve") {

		var t = xClipValues(strDivName, "t");
		var r = xClipValues(strDivName, "r");
		var b = xClipValues(strDivName, "b");
		var l = xClipValues(strDivName, "l");
		switch(vFromDirection) {
			case 'N':
				xClip(strDivName,t,r,t,l);
				break;
			case 'W':
				xClip(strDivName,t,l,b,l);
				break;
			case 'E':
				xClip(strDivName,t,r,b,r);
				break;
			case 'S':
				xClip(strDivName,b,r,b,l);
				break;
			case 'NW':
				xClip(strDivName,t,l,t,l);
				break;
			case 'NE':
				xClip(strDivName,t,r,t,r);
				break;
			case 'SW':
				xClip(strDivName,b,l,b,l);
				break;
			case 'SE':
				xClip(strDivName,b,r,b,r);
				break;
			case 'C':
				xClip(strDivName,Math.round((t+b)/2),Math.round((r+l)/2),Math.round((t+b)/2),Math.round((r+l)/2));
				break;
			case 'R':
				var junk = Math.random();
				junk = junk + Math.random();
 				var intTempX = Math.round(Math.random() * (r-l)) + l;
				var intTempY = Math.round(Math.random() * (b-t)) + t;
				xClip(strDivName, intTempY, intTempX, intTempY, intTempX);
				xDisolveTo(strOldDivName, intTempY, intTempX, intTempY, intTempX, 1300);
				break;

		}
		xShow(strDivName);
	    xDisolveTo(strDivName, t, r, b, l, 1300);
	
	}

        //setTimeout("xZIndex(" + strOldDivName + ", 20)" , 1001);
        return ;
}

if (window.onload != null) {
	pOldOnLoadFader = window.onload;
}
if (window.onresize != null) {
	pOldOnResizeFader = window.onresize;
}

window.onload=DfaderInit;
window.onresize=DfaderAlign;
window.setInterval("DfaderNextClicked()", 8000);

