var htmlEscape = (function(){
  var map = {"<":"&lt;", ">":"&gt;", "&":"&amp;", "'":"&#39;", "\"":"&quot;", " ":"&nbsp;"};
  var replaceStr = function(s){ return map[s]; };
  return function(str) { return str.replace(/<|>|&|'|"|\s/g, replaceStr); };
})();

function smoothScroll() {
	var xScrollSpeed = 1;
	var yScrollSpeed = 1;

	var x1 = x2 = 0;
	var y1 = y2 = 0;
	if (document.documentElement) {
		x1 = document.documentElement.scrollLeft || 0;
		y1 = document.documentElement.scrollTop || 0;
	}
	if (document.body) {
		x2 = document.body.scrollLeft || 0;
		y2 = document.body.scrollTop || 0;
	}
	var x = Math.max(x1, x2);
	var y = Math.max(y1, y2);
	window.scrollTo(Math.floor(x/xScrollSpeed), Math.floor(y/yScrollSpeed));
	if (x>0 || y>0) {
		window.setTimeout("smoothScroll()", 10);
	}
}

function mysql_time(time_value){
	var d = new Date(time_value);
	var retValue = d.getFullYear()+"-";
	if(d.getMonth() < 10){
		var mon = d.getMonth() + 1;
		retValue += "0" + mon;
	}else{
		retValue += d.getMonth() + 1;
	}
	retValue += "-";
	if(d.getDate() < 10){
		retValue += "0" + d.getDate();
	}else{
		retValue += d.getDate();
	}
	retValue += " ";
	if(d.getHours() < 10){
		retValue += "0" + d.getHours();
	}else{
		retValue += d.getHours();
	}
	retValue += ":";
	if(d.getMinutes() < 10){
		retValue += "0" + d.getMinutes();
	}else{
		retValue += d.getMinutes();
	}
	retValue += ":";
	if(d.getSeconds() < 10){
		retValue += "0" + d.getSeconds();
	}else{
		retValue += d.getSeconds();
	}
	return retValue;
}

function relative_time(time_value){
	if(time_value.indexOf("UTC") < 0) time_value = time_value.replace("+","UTC+");
	var parsed_date = Date.parse(time_value);
	var relative_to = (arguments.length > 1) ? arguments[1] : new Date();
	var delta = parseInt((relative_to.getTime() - parsed_date) / 1000);

	if(delta < 60) {
		return sr['1minutes_ago'];
	} else if(delta < 120) {
		return sr['2minutes_ago'];
	} else if(delta < (45*60)) {
		return (parseInt(delta / 60)).toString() + sr['minutes_ago'];
	} else if(delta < (90*60)) {
		return sr['1hours_ago'];
	} else if(delta < (24*60*60)) {
		return (parseInt(delta / 3600)).toString() + sr['hours_ago'];
	} else if(delta < (48*60*60)) {
		return sr['1days_ago'];
	} else {
		return (parseInt(delta / 86400)).toString() + sr['days_ago'];
	}
}
function delta_time(time_value){
	var d = new Date();
	d.setFullYear(parseInt(time_value.substring(0,4)));
	d.setMonth(parseInt(time_value.substring(5,7))-1);
	d.setDate(parseInt(time_value.substring(8,10)));
	d.setHours(parseInt(time_value.substring(11,13)));
	d.setMinutes(parseInt(time_value.substring(14,16)));
	d.setSeconds(parseInt(time_value.substring(17,19)));

	var parsed_date = d.getTime();
	var relative_to = (arguments.length > 1) ? arguments[1] : new Date();
	var delta = parseInt((relative_to.getTime() - parsed_date) / 1000);

	return delta;
}

/**************************************************************************************************************************************/

