
function toDateDiffString(dateTimeString) {
	now = new Date();
	date2 = new Date(dateTimeString);
	diff = new Date();
	diff.setTime(Math.abs(now.getTime() - date2.getTime()));
	timediff = diff.getTime();
	weeks = Math.floor(timediff / (1000 * 60 * 60 * 24 * 7));
	timediff -= weeks * (1000 * 60 * 60 * 24 * 7);
	days = Math.floor(timediff / (1000 * 60 * 60 * 24));
	timediff -= days * (1000 * 60 * 60 * 24);
	hours = Math.floor(timediff / (1000 * 60 * 60));
	timediff -= hours * (1000 * 60 * 60);
	mins = Math.floor(timediff / (1000 * 60));
	timediff -= mins * (1000 * 60);
	secs = Math.floor(timediff / 1000);
	timediff -= secs * 1000;
	if (weeks > 0 || days > 0) {
		return "";
	} else {
		var result;
		if (hours > 0) {
			result = hours + " hours";
		}
		if (mins > 0) {
			result = result + " and " + mins + " minutes";
		}
		result = result + " ago";
		return result;
	}
}
function dateDiffWithToday(dateTimeString) {
	today = new Date();
	var p = new Date(dateTimeString);
	//Set 1 day in milliseconds
	var one_day = 1000 * 60 * 60 * 24;
	return Math.ceil((today.getTime() - p.getTime()) / (one_day));
}
function checkEnter(e) {
	if (getKeyCode(e) == 13) {
		return true;
	} else {
		return false;
	}
}
function checkSpace(e) {
	if (getKeyCode(e) == 32) {
		return true;
	} else {
		return false;
	}
}
function getKeyCode(e){
	var code;
	if (e && e.which) {
		e = e;
		code = e.which;
	} else {
		e = event;
		code = e.keyCode;
	}
	return code;
}
function get(el) {
	return document.getElementById(el);
}
function getElementsByClass(searchClass, node, tag) {
	var classElements = new Array();
	if (node == null) {
		node = document;
	}
	if (tag == null) {
		tag = "*";
	}
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp("(^|\\s)" + searchClass + "(\\s|$)");
	for (i = 0, j = 0; i < elsLen; i++) {
		if (pattern.test(els[i].className)) {
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}
function isSignIn() {
	if (typeof memberId == "undefined" || memberId == 0 || memberId == "") {
		if (waitingForScript("/js/alert.js", "clAlert")) {
			return;
		}
		clAlert.Dialog(Oops, please_sign_in_first, ok);
	} else {
		return true;
	}
}
function trim(stringToTrim) {
	return stringToTrim.replace(/^\s+|\s+$/g, "");
}
function filterXML(str) {
	var LT = new RegExp("&lt;", "g");
	var GT = new RegExp("&gt;", "g");
	var AMP = new RegExp("&amp;", "g");
	return str.replace(AMP, "&").replace(LT, "<").replace(GT, ">");
}
function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		do {
			curleft += obj.offsetLeft;
			curtop += obj.offsetTop;
		} while (obj = obj.offsetParent);
		return [curleft,curtop];
	}
}
var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{
			string: navigator.userAgent,
			subString: "Chrome",
			identity: "Chrome"
		},
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari",
			versionSearch: "Version"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			   string: navigator.userAgent,
			   subString: "iPhone",
			   identity: "iPhone/iPod"
	    },
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};
BrowserDetect.init();