var gLoginControlScriptSource = (function()
{
    var scripts = document.getElementsByTagName('script'),script = scripts[scripts.length - 1];
    
    if (script.getAttribute.length !== undefined)
    {
    	return script.src;
    }
    return script.getAttribute('src', -1);
}());

var WelcomeHTML = "";

var gOnLoadThisJS = (function()
{
	var lUserName = GetValueFromCookie ("user","name");
	if (lUserName != null)
	{
		WelcomeHTML = "<div>Welkome "+lUserName+"</div>";
		
		var lStartTime = new Date();
		w84me (this,function (o,pStartTime,pImportHTML)
		{
			var lElapsed = new Date ();
			var lCurTime = new Date ();
			lElapsed.setTime(lCurTime.getTime() - pStartTime.getTime());
			var lSecs = lElapsed.getSeconds();
			
			var lLoginBlock = document.getElementById("LoginBlock");
			if (lLoginBlock)
			{
				lLoginBlock.innerHTML = pImportHTML;
				o.isBreak = true;
			}
				
			if (lSecs > 30 )
			{
				o.isBreak = true;
			}		
		},{isBreak:false},lStartTime,WelcomeHTML);
	}
}());

function GetLoginControlBaseURL()
{
	return gLoginControlScriptSource.replace ("/Gjs/logincontrol.js","");
}

function DoBind(pObj, pFunc, pArgs)
{
	return function()
	{
		var lObj = (pObj === true) ? this : pObj;
		return (pFunc === undefined || pFunc === null || typeof pFunc != 'function') ? null : pFunc.apply(lObj, Array.prototype.slice.call(pArgs || []).concat(Array.prototype.slice.call(arguments)));
	};
}

function DoLogin ()
{
	var lUserName = document.loginform.UserName.value;
	var lPassword = document.loginform.PassWord.value;
	
	var lBaseURI = GetLoginControlBaseURL();
	
	var lURI = lBaseURI+"/Gmodphp/dologin.php";
	var lParam = "LoginName=" + lUserName + "&Password="+lPassword;
	
	//DoAjax(lURI, CallBackOnLogin, null, "POST", lParam);
	var lSucceedLoginURI = lBaseURI+"/Gmodphp/account.php";
	var lParamObj = {SucceedLoginURI:lSucceedLoginURI};
	var lAjaxLoader = new net.ContentLoader(lURI, CallBackOnLogin, null, "POST", lParam, null,lParamObj);
}

function CallBackOnLogin ()
{
	var lResponse = this.req.responseText;
	if (lResponse == "Error")
	{
		var lLoginErrorEle = document.getElementById("loginalert");
		lLoginErrorEle.style.display = "block";
	}
	else
	{
		var lLoginBlock = document.getElementById("LoginBlock");
		var lData = eval('(' + lResponse + ')');
		WelcomeHTML = "<div>Welkome "+lData.name+"</div>";
		lLoginBlock.innerHTML = WelcomeHTML;
		var lForwardURI = this.parameter.SucceedLoginURI + "?UpdateUserID="+lData.userID;
		var lwindow = open(lForwardURI,'_self');
	}
}

function GetMyCookie(pCookieName)
{
	cookies = document.cookie;
	if (!pCookieName || !cookies) 
	{
		return null;
	}
	
	cookies = "; " + cookies.toLowerCase();
	var key = "; " + pCookieName.toLowerCase() + "=";
	var start = cookies.lastIndexOf(key);
	if (start >= 0) 
	{
		start = start + key.length;
		var end = cookies.indexOf(";", start);
		if (end == -1) 
		{
			end = cookies.length;
		}
		return unescape(cookies.substring(start, end));
	}
	return null;
}

function GetValueFromCookie(pCookieName, pKey)
{
	// "normalize" input parameters
	pCookieName = MyTrim(pCookieName);
	pKey = (pKey !== null) ? "#" + MyTrim(pKey).toLowerCase() + "~" : pKey;
	// extract catId associated with the specified key (pKey)
	var catCookie = GetMyCookie(pCookieName);
	if (catCookie !== null) 
	{
		var start = catCookie.indexOf(pKey);
		if (start >= 0) 
		{
			start = start + pKey.length;
			var end = catCookie.indexOf("#", start);
			if (end == -1) 
			{
				end = catCookie.length;
			}
			return catCookie.substring(start, end);
		}
		return null;
	}
	return null;
}

function MyTrim(pStr)
{
	if (pStr === null || typeof(pStr) != "string") 
	{
		return pStr;
	}
	return (pStr !== null) ? pStr.replace(/&nbsp;|\u00A0/gi, ' ').replace(/^\s+|\s+$/g, '') : null;
}

function w84me ()
{
    if (arguments.length < 3)
    {
        return;
    }
    var lArgs = Array.prototype.slice.call(arguments);
    var lThisObj = lArgs.shift();
    var lFunc = lArgs.shift();
    var lFlag = lArgs[0];

    lFunc.apply (lThisObj, lArgs);

    if (lFlag.isBreak === false)
    {
        setTimeout(DoBind(this,w84me,arguments), 100);
    }
}

