// Fave Hovers
// Autor Nicolas Daniel Grecco nicolasgrecco@gmail.com
/* Obtener el object de una hoja de estilos por su nombre */
function getStyleSheet(name) {
	for (i=0; i < document.styleSheets.length; i++) {
		if(document.styleSheets[i].href.indexOf(name) > -1) {
			return (document.styleSheets[i]);
			break;
		}
	}
	return false;
}
/* Obtener un Rule de una hoja de estilos */
function getRule(sheet, name) {
	var rules;
	if (sheet.cssRules) rules = sheet.cssRules;
	else rules = sheet.rules;
	for (i=0; i < rules.length; i++) {
		if (rules[i].selectorText.indexOf(name) > -1 ) {
			return rules[i];
			break;
		}
	}
}
/* Detectar IE6 o menor*/
function isIE6OrBelow(){
	var browser=navigator.appName;
	var b_version=navigator.appVersion;
	var version=parseFloat(b_version);
	return (browser=="Microsoft Internet Explorer" && version < 7);
}
/* Si el explorador es IR6 o >, hacer fake del hover de la clase -siempre y cuando la clase sea para un determinado elemento- */
function fakeAllHovers() {
	if(isIE6OrBelow()) {
		for (i=0; i < document.styleSheets.length; i++) {
			fakeHover(document.styleSheets[i]);
		}
	}
}

function fakeHover(sheet) {
	if(isIE6OrBelow()) {
		var rules;
		if (sheet.cssRules) rules = sheet.cssRules;
		else rules = sheet.rules;
		// Clases con hover
		for (rule=0; rule < rules.length; rule++) {
			clase = rules[rule].selectorText;
			if ((clase.indexOf("hover") > -1 ) && (clase.substr(0,1) == "#")) {
				if (object = rules[rule].selectorText.substr(1).split(":")) {
					var original = $(object[0]);
					if (original) {
						var newRuleDeclaration = rules[rule].style.cssText;
						sheet.addRule("#"+object[0]+"__fakeHover", newRuleDeclaration);
						addEvent(original, "mouseover", function() {
							if (this.id.indexOf("__fakeHover") < 0) this.id = this.id+"__fakeHover";
						});
						addEvent(original, "mouseout", function() {
							var aux = this.id.split("__fakeHover");
							this.id = aux[0];
						});
					}
				}
			}
		}
	} else return false;
}
fakeAllHovers();