/**
 * @author alessandro
 * @version beta, no version number
 */

var firstTime = true;

jQuery(document).ready(function(){
jQuery(".typeface-hover").hover(hover, reset);
jQuery(".typeface-parent-hover").hover(parentHover, parentReset);
});


function hover(event){
	if (firstTime) {		
		var anchor = jQuery(this).children().eq(0);
		setTimeout(function(){
		e = (jQuery(anchor)[0]).childNodes[0];
		replaceText((jQuery(anchor)[0]), "hover");
		}, 1);	
		firstTime = false;
	}	
}

function reset(event){

	var anchor = jQuery(this).children().eq(0);	
	setTimeout(function(){
		replaceText((jQuery(anchor)[0]), "out");
	}, 1);
	
	firstTime = true;
}

function parentHover(event){
	if (firstTime) {		
		var anchor = jQuery(this).children().eq(0);	
		setTimeout(function(){
		e = (jQuery(anchor)[0]).childNodes[0];		
		parentReplaceText((jQuery(anchor)[0]).parentNode, "hover");
		}, 1);	
		firstTime = false;
	}	
}

function parentReset(event){
	var anchor = jQuery(this).children().eq(0);
	setTimeout(function(){
		parentReplaceText((jQuery(anchor)[0]).parentNode, "out");
	}, 1);	
	firstTime = true;
}


var replaceText = function(e, action){
	if (jQuery.browser.msie) { //IE
		//	e = e.parentNode;		
		if (action == "hover") {
			e.hoverTimer = setTimeout(function(){
				for (var i = 0; i < e.childNodes.length; i++) {				
					var vectorElement = e.childNodes[i];
					vectorElement.fillColor = (jQuery(e.parentNode)).css('color');//parentNode.currentStyle.color;
				}
			}, 5);
		}
		else 
			if (action == "out") {
				e.resetTimer = setTimeout(function(){				
					for (var i = 0; i < e.childNodes.length; i++) {
						var vectorElement = e.childNodes[i];
						vectorElement.fillColor = (jQuery(e.parentNode)).css('color');//parentNode.currentStyle.color;
					}
				}, 5);
			}
		
	}
	else { //FIREFOX/ 
//		if (jQuery(e).is("canvas"))
//			e = e.parentNode;		
		if (action == "hover") {
			e.hoverTimer = setTimeout(function(){
			
				for (var i = 0; i < e.childNodes.length; i++) {
				try
				{
					var vectorElement = e.childNodes[i];
					var ctx = vectorElement.getContext('2d');	
							
					var y = document.defaultView.getComputedStyle(e.parentNode,hover).getPropertyValue('color');
					if (ctx.fillStyle.toUpperCase() != y) {			
						ctx.fillStyle = y;
						ctx.clearRect(0, 0, 1000, 1000);
						ctx.fill();			
						}
					}catch(err){}
				}
				
			}, 5);
		}
		else 
			if (action == "out") {
				e.resetTimer = setTimeout(function(){
					for (var i = 0; i < e.childNodes.length; i++) {
						var vectorElement = e.childNodes[i];
						try
						{
						var ctx = vectorElement.getContext('2d');
						if (window.getComputedStyle)
						{
							var y = document.defaultView.getComputedStyle(e.parentNode,null).getPropertyValue('color');
							var bg = document.defaultView.getComputedStyle(e.parentNode,null).getPropertyValue('background-color');
							//var y = (jQuery(e.parentNode)).css('color');
						}
						if (ctx.fillStyle.toUpperCase() != y) {				
							ctx.clearRect( -10000, -3000, 50000000, 50000000);
							ctx.fillStyle = y;
							ctx.fill();								
						}
						}catch(err1){}
					}		
					
				}, 5);
			}
	}

};

var parentReplaceText = function(e, action){
	if (jQuery.browser.msie) { //IE
		if (action == "hover") {	
			e.hoverTimer = setTimeout(function(){
				var children = jQuery(e).children(".typeface-child-hover");		
				for (var i = 0; i < children.length; i++)
				{
					var vshapeParent = children[i].childNodes[0];
					for (var j = 0; j < vshapeParent.childNodes.length; j++) 
					{		
						var vectorElement = vshapeParent.childNodes[j];
						vectorElement.fillColor = (jQuery(vshapeParent.parentNode)).css('color');//parentNode.currentStyle.color;
					}
				}
			}, 5);
		}
		else 
			if (action == "out") {
				e.resetTimer = setTimeout(function(){		
				var children = jQuery(e).children(".typeface-child-hover");		
				for (var i = 0; i < children.length; i++)
				{
					var vshapeParent = children[i].childNodes[0];
					for (var j = 0; j < vshapeParent.childNodes.length; j++) 
					{		
						var vectorElement = vshapeParent.childNodes[j];
						vectorElement.fillColor = (jQuery(vshapeParent.parentNode)).css('color');//parentNode.currentStyle.color;
					}
				}
			}, 5);
			}
		
	}
	else { //FIREFOX/ 	
		if (action == "hover") {
			e.hoverTimer = setTimeout(function(){		
			var children = (jQuery(e)).children(".typeface-child-hover");	
			for (var i = 0; i < children.length; i++)		
			{	
				var container = children[i].childNodes[0];
				for (var j = 0; j < container.childNodes.length; j++) 
				{
					//alert((jQuery(container.parentNode)).attr('class'));
					//alert(i + " " + (jQuery(container.childNodes[i])).attr('class'));
					try
					{
						var vectorElement = container.childNodes[j];
						var ctx = vectorElement.getContext('2d');								
						var y = (jQuery(container.parentNode)).css('color');
						//alert((jQuery(container.parentNode)).attr('class'));
						if (ctx.fillStyle.toUpperCase() != y) 
						{			
							ctx.fillStyle = y;
							ctx.clearRect(0, 0, 1000, 1000);
							ctx.fill();			
						}
					}catch(err){}
				}
			}
			}, 5);
		}
		else 
			if (action == "out") {			
				e.resetTimer = setTimeout(function(){
				var children = (jQuery(e)).children(".typeface-child-hover");				
				for (var i = 0; i < children.length; i++)		
				{	
					var container = children[i].childNodes[0];
					for (var j = 0; j < container.childNodes.length; j++) 
					{
						try
						{
							var vectorElement = container.childNodes[j];
							var ctx = vectorElement.getContext('2d');
							if (window.getComputedStyle)
								var y = (jQuery(container.parentNode)).css('color');
							if (ctx.fillStyle.toUpperCase() != y) {				
								ctx.clearRect( -10000, -3000, 50000000, 50000000);
								ctx.fillStyle = y;
								ctx.fill();								
							}
						}catch(err1){}
					}		
				}
				}, 5);
			}
	}

};





