
/*		 ////////////////////////////////////////////         //                                        //         //  	  Keloid Media Element Fader       //
         //			2010 (c) Keloid Media		   //         //          www.keloidmedia.nl            //         //                                        //         //////////////////////////////////////////// 		*/
         
var fading_timers 		= new Object;
var fading_in_opacity 	= 0;
var fading_out_opacity 	= 100;
var rate 				= 30;	// 15 fps
var fading_elements;


function fade_htmlelement_in_interval( element_id, opacity, timer_id ){
	if( is_array( element_id ) ){
		//alert('0=' + element_id[0] + ' 1=' + element_id[1] );
		fading_elements = element_id;
	}else{
		// no array yet, so put it in an array
		fading_elements = new Array( element_id );
	}
	
	fading_timers[ timer_id ] = setInterval('fade_htmlelement_in("' + timer_id +'")', rate );	
	//alert( fading_elements[0] + ' | ' + fading_elements[1] );
}


function fade_htmlelement_in( timer_id ) {
	var increaseOpacityBy = 5;

	//var element = document.getElementById( element_id );
	//element.style.display = 'block';
	
	if (fading_in_opacity < 100) {
		fading_in_opacity += increaseOpacityBy;
		if (fading_in_opacity >= 100) {
			fading_in_opacity = 100;
		}
		
	
		for( var i=0; i<fading_elements.length; i++ ){
			//alert( fading_elements[i] );
			
			if( document.getElementById( fading_elements[i] ) ){
				var element = document.getElementById( fading_elements[i] );
				element.style.display = 'block';
	
				if (element.filters) {
					try {
						element.filters.item("DXImageTransform.Microsoft.Alpha").opacity = fading_in_opacity;
					} catch (e) {
						// If it is not set initially, the browser will throw an error.  This will set it if it is not set yet.
						element.style.filter = 'progid:DXImageTransform.Microsoft.Alpha(opacity=' + fading_in_opacity + ')';
					}
				} else {
					element.style.opacity = fading_in_opacity / 100;
				}
			}else{
				if( element != null ){
					//alert('kan ' + element.name + ' niet vinden');	
				}
			}
		}
	}

	// when opacity == 100, reset it for next loop sequence		
	if (fading_in_opacity == 100) {
		fading_in_opacity = 0;
		if( timer_id != '' ){
			clearInterval( fading_timers[ timer_id ] );	
		}
	}

}




function fade_htmlelement_out_interval( element_id, opacity, timer_id ){
	if( is_array( element_id ) ){
		fading_timers[ timer_id ] = setInterval('fade_htmlelement_out("' + element_id + '", "' + timer_id + '")', rate );	
		
	}else{
		// no array yet, so put it in a new array
		var element_array = new Array( element_id );
		fading_timers[ timer_id ] = setInterval('fade_htmlelement_out("' + element_array + '", "' + timer_id +'")', rate );	
	}
}
function fade_htmlelement_out(element_id, timer_id) {
	var reduceOpacityBy = 5;
	//var element = document.getElementById( element_id );
	
	if (fading_out_opacity > 0) {
		fading_out_opacity -= reduceOpacityBy;
		if (fading_out_opacity <= 0) {
			fading_out_opacity = 0;
		}

		for( var i=0; i<fading_elements.length; i++ ){
			
			if( document.getElementById( fading_elements[i] )){
				var element = document.getElementById( fading_elements[i] );
				
				if (element.filters) {
					try {
						element.filters.item("DXImageTransform.Microsoft.Alpha").opacity = fading_out_opacity;
					} catch (e) {
						// If it is not set initially, the browser will throw an error.  This will set it if it is not set yet.
						element.style.filter = 'progid:DXImageTransform.Microsoft.Alpha(opacity=' + fading_out_opacity + ')';
					}
				} else {
					element.style.opacity = fading_out_opacity / 100;
				}
			}
		}
	}
	
	
	
	if (fading_out_opacity == 0) {
		fading_out_opacity = 100;
		for( var i=0; i<fading_elements.length; i++ ){
			
			if( document.getElementById( fading_elements[i] )){
				var element = document.getElementById( fading_elements[i] );
				element.style.display = 'none';
			}
		}
		if( timer_id != '' ){
			clearInterval( fading_timers[ timer_id ] );	
		}
	}
}



function is_array( my_input )
{
	return typeof(my_input)=='object'&&(my_input instanceof Array);
}


