function getDec(hexChar)  
{  
    switch(hexChar)  
    {  
        case '0': return 0;  
        case '1': return 1;  
        case '2': return 2;  
        case '3': return 3;  
        case '4': return 4;  
        case '5': return 5;  
        case '6': return 6;  
        case '7': return 7;  
        case '8': return 8;  
        case '9': return 9;  
        case 'A': return 10;  
        case 'B': return 11;  
        case 'C': return 12;  
        case 'D': return 13;  
        case 'E': return 14;  
        case 'F': return 15;  
        case 'a': return 10;  
        case 'b': return 11;  
        case 'c': return 12;  
        case 'd': return 13;  
        case 'e': return 14;  
        case 'f': return 15;  
    };  
}  
  
function hexToDec(hex)   
{  
    var colorChars=hex.split('');              
    var dec = (getDec(colorChars[0]) * 16) + getDec(colorChars[1]); 
    return dec;  
}  

function typoColor (e) {
	if (e == "front") {
		$("div[class^='caption-']").each(function (index, domEle) {

			var rgbString = $(domEle).css('background-color');
			var $text = $(domEle);

			if (rgbString.indexOf('rgb') == -1) {
			    var selectedColor = rgbString;  
			
			    selectedColor = selectedColor.substring(selectedColor.indexOf('#') + 1);
			      
			    var r = hexToDec(selectedColor.substr(0, 2));  
			    var g = hexToDec(selectedColor.substr(2, 2));  
			    var b = hexToDec(selectedColor.substr(4, 2));  
			      
			    var value = r + g + b;
			} else {
				var parts = rgbString
				        .match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);
		
				var value = parseFloat(parts[1]) + parseFloat(parts[2]) + parseFloat(parts[3]);
			}
	
		    if (value < 386) {
				typoClass = "light";
			} else {
				typoClass = "dark";
		    };

			$text.find('h1').addClass(typoClass);
			$text.find('h2').addClass(typoClass);
			$text.find('h3').addClass(typoClass);
			$text.find('p').addClass(typoClass);
			$text.find('a').addClass(typoClass);
		});
	};
	if (e == "single") {
		$("div[class*='box']").each(function (index, domEle) {

			var rgbString = $(".entry > .box").css('background-color');
			var $text = $(domEle).parent().children().not("div[class*='nocolor']");
			$text.css('background-color', rgbString);
	
			if (rgbString.indexOf('rgb') == -1) {
			    var selectedColor = rgbString;  
			
			    selectedColor = selectedColor.substring(selectedColor.indexOf('#') + 1);
			      
			    var r = hexToDec(selectedColor.substr(0, 2));  
			    var g = hexToDec(selectedColor.substr(2, 2));  
			    var b = hexToDec(selectedColor.substr(4, 2));  
			      
			    var value = r + g + b;
			} else {
				var parts = rgbString
				        .match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);
		
				var value = parseFloat(parts[1]) + parseFloat(parts[2]) + parseFloat(parts[3]);
			}
	
		    if (value < 386) {
				typoClass = "light";
			} else {
				typoClass = "dark";
		    };

			$text.find('h1').addClass(typoClass);
			$text.find('h2').addClass(typoClass);
			$text.find('h3').addClass(typoClass);
			$text.find('p').addClass(typoClass);
			$text.find('a').addClass(typoClass);
//			}
		});
	};
	if (e == "body") {
		var rgbString = $(".entry > .box").css('background-color');
		$("body").css('background-color', rgbString);
		$(".entry > .box").css('background-color', 'white');
	};
};
