function str_replace (search, replace, subject, count) {
    var i = 0,
        j = 0,
        temp = '',
        repl = '',
        sl = 0,
        fl = 0,
        f = [].concat(search),
        r = [].concat(replace),
        s = subject,
        ra = Object.prototype.toString.call(r) === '[object Array]',
        sa = Object.prototype.toString.call(s) === '[object Array]';
    s = [].concat(s);
    if (count) {
        this.window[count] = 0;
    }
 
    for (i = 0, sl = s.length; i < sl; i++) {
        if (s[i] === '') {
            continue;
        }
        for (j = 0, fl = f.length; j < fl; j++) {
            temp = s[i] + '';
            repl = ra ? (r[j] !== undefined ? r[j] : '') : r[0];
            s[i] = (temp).split(f[j]).join(repl);
            if (count && s[i] !== temp) {
                this.window[count] += (temp.length - s[i].length) / f[j].length;
            }
        }
    }
    return sa ? s : s[0];
}

function numberWithCommas(x) {
    return x.toString().replace(/\B(?=(?:\d{3})+(?!\d))/g, ",");
}

var timer;


function startCount()
{
	timer = setInterval(pop_counter,410);
	timer2 = setInterval(pop_counter2,410);
}

function pop_counter()
{
	
/*
	var el = document.getElementById('home_et_world_pop_count');
	var rawNumber = el.innerHTML;
*/
	var rawNumber = jQuery('#home_et_world_pop_count').text();
	var readyNumber = str_replace(',', '', rawNumber);
	var currentNumber =	parseInt(readyNumber);
	var updatedNumber = numberWithCommas(currentNumber+1);
	jQuery('#home_et_world_pop_count').text(updatedNumber);

}
function pop_counter2()
{
	
/*
	var el = document.getElementById('home_et_world_pop_count');
	var rawNumber = el.innerHTML;
*/
	var rawNumber = jQuery('#population_pop_clock_hero_count').text();
	if(rawNumber==''){
		var rawNumber = jQuery('#population_pop_clock_sidebar_count').text();
	}
	var readyNumber = str_replace(',', '', rawNumber);
	var currentNumber =	parseInt(readyNumber);
	var updatedNumber = numberWithCommas(currentNumber+1);
	jQuery('#population_pop_clock_hero_count').text(updatedNumber);
	jQuery('#population_pop_clock_sidebar_count').text(updatedNumber);
	

}

jQuery(document).ready(function() {
	startCount();
	
	
	jQuery('.l2-cat-menu').find('li').hover(
		  function () {
		    jQuery(this).parents('li').removeClass('hovered');
		    jQuery(this).addClass('hovered');
		    jQuery(this).children('a').addClass('hovered');
/* 		    jQuery(this).css({'backgroundColor':'#00afb0'}); */
		  }, 
		  function () {
/*   		    jQuery(this).css({'backgroundColor':'#00999A'}); */
		    jQuery(this).removeClass('hovered');
		    jQuery(this).children('a').removeClass('hovered');
		  }
		);


/*
	jQuery('.l2-cat-menu > ul > li > ul > li').hover(
		  function () {
		  	
		    $(this).addClass('hovered');
		    $(this).parents('li').removeClass('hovered');
		  }, 
		  function () {

		    $(this).removeClass('hovered');
		  }
		);
*/
	
	
	jQuery('.ihover').hover(
		  function () {
		    $(this).find("img.over").fadeIn('fast');
		    $(this).find("img.reg").fadeOut('fast');
		  }, 
		  function () {
		    $(this).find("img.reg").fadeIn('fast');
		    $(this).find("img.over").fadeOut('fast');
		  }
		);	
	function setLeftColHeight()
	{
		sub_height = parseInt( jQuery('#cat-header').outerHeight() );
		main_height = parseInt( jQuery('#main').height() );
		left_col_height = main_height - sub_height;
		jQuery('#left-nav').height(left_col_height);
	}
	window.onload = setLeftColHeight;
});

(function(d){d.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor","borderTopColor","color","outlineColor"],function(f,e){d.fx.step[e]=function(g){if(!g.colorInit){g.start=c(g.elem,e);g.end=b(g.end);g.colorInit=true}g.elem.style[e]="rgb("+[Math.max(Math.min(parseInt((g.pos*(g.end[0]-g.start[0]))+g.start[0]),255),0),Math.max(Math.min(parseInt((g.pos*(g.end[1]-g.start[1]))+g.start[1]),255),0),Math.max(Math.min(parseInt((g.pos*(g.end[2]-g.start[2]))+g.start[2]),255),0)].join(",")+")"}});function b(f){var e;if(f&&f.constructor==Array&&f.length==3){return f}if(e=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(f)){return[parseInt(e[1]),parseInt(e[2]),parseInt(e[3])]}if(e=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(f)){return[parseFloat(e[1])*2.55,parseFloat(e[2])*2.55,parseFloat(e[3])*2.55]}if(e=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(f)){return[parseInt(e[1],16),parseInt(e[2],16),parseInt(e[3],16)]}if(e=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(f)){return[parseInt(e[1]+e[1],16),parseInt(e[2]+e[2],16),parseInt(e[3]+e[3],16)]}if(e=/rgba\(0, 0, 0, 0\)/.exec(f)){return a.transparent}return a[d.trim(f).toLowerCase()]}function c(g,e){var f;do{f=d.curCSS(g,e);if(f!=""&&f!="transparent"||d.nodeName(g,"body")){break}e="backgroundColor"}while(g=g.parentNode);return b(f)}var a={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0],transparent:[255,255,255]}})(jQuery);




jQuery.fn.truncateLines = function(options) {
	options = jQuery.extend(jQuery.fn.truncateLines.defaults, options);

	return this.each(function(index, container) {
		container = jQuery(container);
		var containerLineHeight = Math.ceil(parseFloat(container.css('line-height')));
		console.log(containerLineHeight);
		var maxHeight = options.lines * containerLineHeight;
		
		var truncated = false;
		var truncatedText = jQuery.trim(container.text());
		var overflowRatio = container.height() / maxHeight;
		if (overflowRatio > 2) {
			truncatedText = truncatedText.substr(0, parseInt(truncatedText.length / (overflowRatio - 1), 10) + 1); // slice string based on how much text is overflowing
			container.text(truncatedText);
			truncated = true;
		}
		var oldTruncatedText; // verify that the text has been truncated, otherwise you'll get an endless loop
		while (container.height() > maxHeight && oldTruncatedText != truncatedText) {
			oldTruncatedText = truncatedText;
			truncatedText = truncatedText.replace(/\s.[^\s]*\s?jQuery/, ''); // remove last word
			container.text(truncatedText);
			truncated = true;
		}
		if (truncated) {
			truncatedText = options.ellipsis ? truncatedText + ' ' + options.ellipsis : truncatedText;
			container.text(truncatedText);
			if (container.height() > maxHeight) {
				truncatedText = truncatedText.replace(/\s.[^\s]*\s?...jQuery/, ''); // remove last word and ellipsis
				truncatedText = options.ellipsis ? truncatedText + ' ' + options.ellipsis : truncatedText;
				container.text(truncatedText);
			}
		}
	});
};
jQuery.fn.truncateLines.defaults = {
	lines: 8,
	ellipsis: '...'
};

/*
(function($) {
$.fn.truncateLines = function(options) {
	options = $.extend($.fn.truncateLines.defaults, options);

	return this.each(function(index, container) {
		container = $(container);
		var containerLineHeight = Math.ceil(parseFloat(container.css('line-height')));
		console.log(containerLineHeight);
		var maxHeight = options.lines * containerLineHeight;
		var truncated = false;
		var truncatedText = $.trim(container.text());
		var overflowRatio = container.height() / maxHeight;
		if (overflowRatio > 2) {
			truncatedText = truncatedText.substr(0, parseInt(truncatedText.length / (overflowRatio - 1), 10) + 1); // slice string based on how much text is overflowing
			container.text(truncatedText);
			truncated = true;
		}
		var oldTruncatedText; // verify that the text has been truncated, otherwise you'll get an endless loop
		while (container.height() > maxHeight && oldTruncatedText != truncatedText) {
			oldTruncatedText = truncatedText;
			truncatedText = truncatedText.replace(/\s.[^\s]*\s?$/, ''); // remove last word
			container.text(truncatedText);
			truncated = true;
		}
		if (truncated) {
			truncatedText = options.ellipsis ? truncatedText + ' ' + options.ellipsis : truncatedText;
			container.text(truncatedText);
			if (container.height() > maxHeight) {
				truncatedText = truncatedText.replace(/\s.[^\s]*\s?...$/, ''); // remove last word and ellipsis
				truncatedText = options.ellipsis ? truncatedText + ' ' + options.ellipsis : truncatedText;
				container.text(truncatedText);
			}
		}
	});
};
$.fn.truncateLines.defaults = {
	lines: 8,
	ellipsis: '...'
};
})(jQuery);
*/
