function $(t) {
	return document.getElementById(t);
}

function GetRandomID () {
	return (new Date().valueOf() + Math.round(Math.random() * 1000000));
}

//ex. formatSec
function TimeToStringViP (nSec, rustext) {
	var strSec = nSec.toString();
	var strSecR;
	var i;
	for (i = 0; i <= strSec.length; i++) {
    	strSecR = strSec.charAt (i) + strSecR;
	}
	if(nSec == 1 || strSecR.match(/^1[^1]/)) {
		return rustext[0];
	} else if((nSec < 10 || nSec > 20) && strSecR.match(/^[2-4]/)) {
		return rustext[1];
	} else {
		return rustext[2];
	}
}


function TimeToStringImP (value, wordArr) {
   if (!value) return 0
   mod = value % 10
   if ((value%100)>=10 && (value%100)<=19) return wordArr[2];
   if (mod == 1) return wordArr[0];
   if (mod >= 2 && mod <= 4) return wordArr[1];
   return wordArr[2];
}

function GetUnitTextEng(value, wordArr) {
	if (value == 1) return wordArr[0];
	return wordArr[1];
}

function formatFsize(bytecount, precision, limitDetLevel) {
	var isNeg = false;
	if (bytecount < 0) isNeg = true;
	if (!precision) precision = 1;
	if (!limitDetLevel) limitDetLevel = 5;
	bytecount = Math.abs(bytecount);
	var str = bytecount+' ' + t('UnitsByte');
	if (limitDetLevel == 1) return (isNeg ? "-" : "") + str;
	if (Number(bytecount) >= 1024) { str = (bytecount/1024).toFixed(precision)+' ' + t('UnitsKB'); }
	if (limitDetLevel == 2) return (isNeg ? "-" : "") + str;
	if (Number(bytecount) >= 1048576) { str = (bytecount/1048576).toFixed(precision)+' ' + t('UnitsMB'); }
	if (limitDetLevel == 3) return (isNeg ? "-" : "") + str;
	if (Number(bytecount) >= 1073741824) { str = (bytecount/1073741824).toFixed(precision)+' ' + t('UnitsGB'); }
	return (isNeg ? "-" : "") + str;
}

function LCvt(valueToConvert) {
	var code_base = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz*";
    var C, S = "", T = 0, CV = code_base, X = valueToConvert;
    if (!( isFinite(X) && X>=0 )) { return }
    if ( (B = +CV.length) < 2 ) { return }
    // Convert Number to Base :-
    do { C = X%B ; C = CV.charAt(C)
      S = C + S ; X = Math.floor(X/B) } while (X!=0)
    // Convert back to Number :-
    for (var J = 0 ; J < S.length ; J++)
      T = T*B + CV.indexOf(S.substr(J, 1))
    return S;
}

function Hash()
{
	this.length = 0;
	this.items = new Array();
	for (var i = 0; i < arguments.length; i += 2) {
		if (typeof(arguments[i + 1]) != 'undefined') {
			this.items[arguments[i]] = arguments[i + 1];
			this.length++;
		}
	}

	this.removeItem = function(in_key)
	{
		var tmp_value;
		if (typeof(this.items[in_key]) != 'undefined') {
			this.length--;
			var tmp_value = this.items[in_key];
			delete this.items[in_key];
		}
	   
		return tmp_value;
	}

	this.getItem = function(in_key) {
		return this.items[in_key];
	}

	this.setItem = function(in_key, in_value)
	{
		if (typeof(in_value) != 'undefined') {
			if (typeof(this.items[in_key]) == 'undefined') {
				this.length++;
			}

			this.items[in_key] = in_value;
		}
	   
		return in_value;
	}

	this.hasItem = function(in_key)
	{
		return typeof(this.items[in_key]) != 'undefined';
	}
}


Function.prototype.method = function (name, func) {
    this.prototype[name] = func;
    return this;
};

if(typeof window.jswarn_l != 'function') window.jswarn_l = function () {};

try {
	gJsReady({'name': 'common_ext'});
} catch (e) {};	