/* Usage:

<div _ds_highlight="true" _ds_timer="5" _ds_highlight_increment="20" _ds_highlight_decrement="2" _ds_minval="60" _ds_maxval="99" />

*/

var _ds_timer = 5;
var _ds_highlight_increment = 20;
var _ds_highlight_decrement = 2;
var _ds_minval = 60;
var _ds_maxval = 99;



function highlightElement(evt){
	var evt = (evt) ? evt : event; //ensure that we have the correct event object on FF and IE
	var targetNode = (evt.target) ? evt.target : evt.srcElement; //get the element that fired the event
	while(!targetNode._ds_brightness){
		targetNode = targetNode.parentNode;
	}
	targetNode._ds_backgroundStart = targetNode.style.backgroundColor;
	clearInterval(targetNode.timer);
	//Set interval. Use closure so that we can pass an Object variable through
	targetNode.timer = setInterval(function(){highlightIncremental(targetNode)}, _ds_timer);
}

function highlightIncremental(target){
	if(target._ds_brightness < _ds_maxval){
		target._ds_brightness = target._ds_brightness + _ds_highlight_increment;
		changeStyle(target, target._ds_brightness);
	} else {
		clearInterval(target.timer);
	}
}

function unhighlightElement(evt){
	var evt = (evt) ? evt : event; //ensure that we have the correct event object on FF and IE
	var targetNode = (evt.target) ? evt.target : evt.srcElement; //get the element that fired the event
	while(!targetNode._ds_brightness){
		targetNode = targetNode.parentNode;
	}
	clearInterval(targetNode.timer);
	//Set interval. Use closure so that we can pass an Object variable through
	targetNode.timer = setInterval(function(){unhighlightIncremental(targetNode)}, _ds_timer);
}

function unhighlightIncremental(target){
	if(target._ds_brightness > _ds_minval){
		target._ds_brightness = target._ds_brightness - _ds_highlight_decrement;
		changeStyle(target, target._ds_brightness);
	} else {
		clearInterval(target.timer);
	}
}

function changeStyle(element, value){
	switch(element._ds_highlighttype){
		case "bgcolor":
			
			break;
		case "opacity":
		default:
			if(value > _ds_maxval){value = _ds_maxval;}
			if(value < _ds_minval){value = _ds_minval;}
			element.style.opacity = value / 100;
			element.style.filter= 'alpha(opacity='+value+');';
	}
}
