/*
	(c) by MulchProductions | Idler IT-Services
        http://www.mulchprod.de
*/


var arrDivContainers = new Array();
var intActiveIndex = 0;

//0: img left
//1: img right
//2: text left
//3: text right
//4: start slide
//5: start at left = true
var arrDivConfigs = new Array();


function hidePrevNext() {
    document.getElementById("nextDiv").style.visibility= "hidden";
    document.getElementById("prevDiv").style.visibility= "hidden";

}

function setUpFirstSlide(intStartSlide) {
    if(intStartSlide != null && intStartSlide != undefined) {
        intActiveIndex = intStartSlide;
    }
    else {
        for(var i=0; i<arrDivConfigs.length; i++) {
            if(arrDivConfigs[i][4] == "true")
                intActiveIndex = i;
        }
    }

    document.getElementById("slideWrapper").scrollLeft=getScrollPosForIndex(intActiveIndex);

    YAHOO.util.Dom.setStyle(document.getElementById(arrDivContainers[intActiveIndex]), 'opacity', '0.0');
    YAHOO.util.Dom.setStyle(document.getElementById(arrDivContainers[intActiveIndex]), 'visibility', 'visible');

    var attributes = {
            opacity: { to: 1.0 }
    };

    var animObject = new YAHOO.util.Motion(document.getElementById(arrDivContainers[intActiveIndex]), attributes, 0.5, YAHOO.util.Easing.easeIn);
    animObject.animate();

    //TODO
    /*
    var objWrapperObj = YAHOO.util.Dom.get("slideWrapper");
    var intCurrentX = YAHOO.util.Dom.getRegion(objWrapperObj).x;
    var intCurrentY = YAHOO.util.Dom.getRegion(objWrapperObj).y;
    //YAHOO.util.Dom.setXY(document.getElementById(arrDivContainers[intActiveIndex]), new Array(intCurrentX, intCurrentY));

    YAHOO.util.Dom.setStyle(document.getElementById(arrDivContainers[intActiveIndex]), 'opacity', '0.0');
    YAHOO.util.Dom.setStyle(document.getElementById(arrDivContainers[intActiveIndex]), 'visibility', 'visible');

    var attributes = {
            opacity: { to: 1.0 }
    };
    
    var animObject = new YAHOO.util.Motion(document.getElementById(arrDivContainers[intActiveIndex]), attributes, 0.5, YAHOO.util.Easing.easeIn);
    animObject.animate();
    */
}

function setUpPrevNext() {

    var arrConfig = arrDivConfigs[intActiveIndex];

    if(arrDivContainers.length > 0 && intActiveIndex < arrDivContainers.length-1) {
        var objNextDiv = document.getElementById("nextDiv");
        var strContentNext = "<table><tr><td style=\"vertical-align:middle;  \"><a href=\"javascript:showNext();\">"+arrConfig[3]+"</a></td><td style=\"vertical-align:middle; \"><a href=\"javascript:showNext();\"><img onclick=\"\" src=\""+arrConfig[1]+"\" /></a></td></tr></table>";

        objNextDiv.innerHTML = strContentNext;
        objNextDiv.style.visibility= "visible";
    }
    else
        document.getElementById("nextDiv").style.visibility= "hidden";

    if(arrDivContainers.length > 0 && intActiveIndex > 0) {
        var objPrevDiv = document.getElementById("prevDiv");
        var strContentPrev = "<table><tr><td style=\"vertical-align:middle; \"><a href=\"javascript:showPrev();\"><img onclick=\"\" src=\""+arrConfig[0]+"\" /></a></td><td style=\"vertical-align:middle; \"><a href=\"javascript:showPrev();\">"+arrConfig[2]+"</a></td></tr></table>";

        objPrevDiv.innerHTML = strContentPrev;
        objPrevDiv.style.visibility= "visible";
    }
    else
        document.getElementById("prevDiv").style.visibility= "hidden";
}

function registerDiv(strDivId, arrDivConfig) {
    arrDivContainers.push(strDivId);
    arrDivConfigs.push(arrDivConfig);

    //YAHOO.util.Dom.setStyle(document.getElementById(strDivId), 'visibility', 'hidden');

}

function showPrev() {
    if(intActiveIndex > 0) {
        hidePrevNext();

        var attributes = {
	        scroll: { to: [getScrollPosForIndex(--intActiveIndex), 0] }
	    };

        var objWrapperDom = YAHOO.util.Dom.get("slideWrapper");
	    var objScrollAnim = new YAHOO.util.Scroll(objWrapperDom, attributes);
        objScrollAnim.onComplete.subscribe(function() {  setUpPrevNext(); });
        objScrollAnim.animate();

    }
}


function getScrollPosForIndex(intIndex) {
    var intTotal = 0;
    for(var intI=0; intI<intActiveIndex-1; intI++) {
        intTotal += YAHOO.util.Dom.getRegion(YAHOO.util.Dom.get(arrDivContainers[intI])).width;
    }

    var objWrapperDom = YAHOO.util.Dom.get("slideWrapper");
    var intWrapperWidth = YAHOO.util.Dom.getRegion(objWrapperDom).width;


    var objPrevDomObj = YAHOO.util.Dom.get(arrDivContainers[intIndex-1]);
    var objTargetDomObj = YAHOO.util.Dom.get(arrDivContainers[intIndex]);
    var intTargetWidth = YAHOO.util.Dom.getRegion(objTargetDomObj).width;
    var intPrevWidth = YAHOO.util.Dom.getRegion(objPrevDomObj).width;


    var intScrollAmount = 0;
    if(intPrevWidth != undefined)
        intScrollAmount = intPrevWidth;

    //plus diff of
    if(intWrapperWidth-intTargetWidth > 0 && arrDivConfigs[intIndex][5] != true)
        intScrollAmount -= ( (intWrapperWidth-intTargetWidth) / 2 );

    return intTotal+intScrollAmount;
}

function showNext() {
    if(intActiveIndex < arrDivContainers.length-1) {
        hidePrevNext();


        var attributes = {
	        scroll: { to: [getScrollPosForIndex(++intActiveIndex), 0] }
	    };

        var objWrapperDom = YAHOO.util.Dom.get("slideWrapper");
	    var objScrollAnim = new YAHOO.util.Scroll(objWrapperDom, attributes);
        objScrollAnim.onComplete.subscribe(function() {  setUpPrevNext(); });
        objScrollAnim.animate();

        
    }
}

