﻿var utils = {
	log: function (s) {
		try { console.log(s); } catch (e) { }
	},
	padleft: function (str, len, pad) {
		return utils.pad(str, len, pad, 1);
	},
	padright: function (str, len, pad) {
		return utils.pad(str, len, pad, 2);
	},
	pad: function pad(str, len, pad, dir) {

		if (typeof (len) == "undefined") { var len = 0; }
		if (typeof (pad) == "undefined") { var pad = ' '; }
		if (typeof (dir) == "undefined") { var dir = 2; }

		if (len + 1 >= str.length) {
			switch (dir) {
				case 1: // left
					str = Array(len + 1 - str.length).join(pad) + str;
					break;

				case 3: // both
					var right = Math.ceil((padlen = len - str.length) / 2);
					var left = padlen - right;
					str = Array(left + 1).join(pad) + str + Array(right + 1).join(pad);
					break;

				default: // right
					str = str + Array(len + 1 - str.length).join(pad);
					break;
			} // switch
		}
		return str;
	},
	parseDate: function (str) {
		var s = str.split(' ');
		var d = s[0].split('/');
		var t = s[1].split(':');
		var date = new Date(parseInt(d[0]), (parseInt(d[1]) - 1), parseInt(d[2]), parseInt(t[0]), parseInt(t[1]), parseInt(t[2]));
		return date;
	},
	prettyDate: function (date) {
		var diff = (((new Date()).getTime() - date.getTime()) / 1000);
		var day_diff = Math.floor(diff / 86400);

		if (isNaN(day_diff) || day_diff < 0 || day_diff >= 31)
			return;

		return day_diff == 0 && (
			diff < 60 && "just now" ||
			diff < 120 && "1 minute ago" ||
			diff < 3600 && Math.floor(diff / 60) + " minutes ago" ||
			diff < 7200 && "1 hour ago" ||
			diff < 86400 && Math.floor(diff / 3600) + " hours ago") ||
		day_diff == 1 && "Yesterday" ||
		day_diff < 7 && day_diff + " days ago" ||
		day_diff < 31 && Math.ceil(day_diff / 7) + " weeks ago";
	},

	jsReplaceQueryString: function (url, param, value) {
	var preURL = "";
	var postURL = "";
	var newURL = "";

	var start = url.indexOf(param + "=");
	if (start > -1) {
		var end = url.indexOf("=", start);
		preURL = url.substring(0, end) + "=" + value;

		var startRest = url.indexOf("&", start);
		postURL = "";
		if (startRest > -1) {
			postURL = url.substring(startRest);
		}
	} else {
		var delimeter = "";
		preURL = url;
		if (url.indexOf("?") > 0)
			delimeter = '&';
		else
			delimeter = '?';

		postURL = delimeter + param + "=" + value;
	}

	newURL = preURL + postURL;
	return newURL;
}


};

Date.prototype.toDisplayString = function () {
	return this.getFullYear()
		+ '/' + utils.padleft((this.getMonth() + 1), 2, '0')
		+ '/' + utils.padleft(this.getDate().toString(), 2, '0')
		+ ' ' + utils.padleft(this.getHours().toString(), 2, '0') 
		+ ':' + utils.padleft(this.getMinutes().toString(), 2, '0') 
		+ ':' + utils.padleft(this.getSeconds().toString(), 2, '0');
}

String.prototype.trim = function () {
	return this.replace(/^\s*/, "").replace(/\s*$/, "");
}
