/*
CSS class ::
.buttonImage {
filter: { alpha(opacity=100); progid:DXImageTransform.Microsoft.Shadow ( color=#555588,  direction=133, strength=4); }
}
*/


function addRollOver ( elementID, overOp, outOp ) {

var overOp = 70
var clickOp = 50
var outOp =100;

	if ( isDOM ) {
		setDOMRollOverImpl ( elementID, overOp, outOp, clickOp );
	}

}



function setDOMRollOverImpl ( elementID, overOp, outOp, clickOp ) {
	var d = document.getElementById( elementID);
	generateBasicLinkRollOverEvent ( d, overOp, outOp, clickOp);

	// for moving around screen later...
	d.style.position = "relative";


	//  MATTi generic static method assignment
	if (isIE ) {
	d.getLeft = getRealLeft;
	d.getTop = getRealTop;
	}

	// bind this as a built in method
	else if ( isMOZILLA ) {
		HTMLInputElement.prototype.getLeft = getRealLeft;
		HTMLInputElement.prototype.getTop = getRealTop;
	// netscape 7 must be less than 1
	d.style.MozOpacity = 1.0 - 0.001;
	}

}


function generateBasicLinkRollOverEvent ( DOM, overOpacity, outOpacity, clickOpacity ) {
if ( !DOM||!isDOM) return;

var offX = 2, offY = 2;

	// Exploder TRiX -- Matt
        if ( isIE ) {

    DOM.attachEvent( "onmouseover", function() {
	var x = event.srcElement;
	x.filters.alpha.opacity= overOpacity  } );

    DOM.attachEvent( "onmouseout", function() {

	var x = event.srcElement;
	x.filters.alpha.opacity= outOpacity 

 } );



    DOM.attachEvent( "onmousedown", function() {

var x = event.srcElement;
 x.style.left = offX;
 x.style.top = offY;
 x.filters.alpha.opacity= clickOpacity  } );



    DOM.attachEvent( "onmouseup", function() {

var x = event.srcElement;
 x.style.left = 0;
 x.style.top = 0;
 x.filters.alpha.opacity= outOpacity 
 } );


        }


        else if ( isMOZILLA ) {


	DOM.addEventListener ("mouseover", function() { this.style.MozOpacity = overOpacity / 100; }, false);

	// netscape 7 fucks up if equal to 1.0
	DOM.addEventListener ("mouseout", function() { this.style.MozOpacity =  parseFloat(outOpacity / 100) -.001; }, false);

	DOM.addEventListener ("mousedown", function() {
		var s = this.style;
		s.MozOpacity =  parseFloat(clickOpacity / 100) -.001; 
		s.left = offX;
		s.top = offY;
	}, false);


	DOM.addEventListener ("mouseup", function() {
		var s = this.style;
		s.left = 0;
		s.top = 0;
		s.MozOpacity =  parseFloat(outOpacity / 100) -.001; 
	}, false);





         }
}


// calculate element absolute positions
function getRealLeft() {
    xPos = this.offsetLeft;
    tempEl = this.offsetParent;
    while (tempEl != null) {
        xPos += tempEl.offsetLeft;
        tempEl = tempEl.offsetParent;
    }
    return xPos;
}


function getRealTop() {
    yPos = this.offsetTop;
    tempEl = this.offsetParent;
    while (tempEl != null) {
        yPos += tempEl.offsetTop;
        tempEl = tempEl.offsetParent;
    }
    return yPos;
}
