if (typeof(Ajax) != "undefined")
{
	// Register global responders that will occur on all AJAX requests
	Ajax.Responders.register({
		onCreate: function(request) {
			request['timeoutId'] = window.setTimeout(
				function() {
					// If we have hit the timeout and the AJAX request is active, abort it and let the user know
					if (callInProgress(request.transport)) {
						request.transport.abort();
						// Run the onFailure method if we set one up when creating the AJAX object
						if (request.options['onFailure']) {
							request.options['onFailure'](request.transport, request.json);
						}
					}
				},
				60000 // Five seconds
			);
		},
		onComplete: function(request) {
			// Clear the timeout, the request completed ok
			window.clearTimeout(request['timeoutId']);
		}
	});
}

function callInProgress (xmlhttp) {
	if (xmlhttp)
	{
		switch (xmlhttp.readyState) {
			case 1: case 2: case 3:
				return true;
				break;
			// Case 4 and 0
			default:
				return false;
			break;
		}
	}
	else
	{
		return false;
	}
}

function manualSelect()
{
    var manualVal = document.getElementById("selectlogin").value
    var manualSplit = manualVal.split(";")
    
    switch(manualSplit[0])
    {
        case "Win SA Hosting CP":
            document.getElementById("domainspan").style.display = "";
            break;
        case "Win US Hosting CP":
            document.getElementById("domainspan").style.display = "";
            break;
        default:
            document.getElementById("domainspan").style.display = "none";
    }
}

function CheckMarks(ArrIDs,IsIE6)
{
	if (ArrIDs && ArrIDs.length > 0)
	{
		for (i = 0; i < ArrIDs.length; i++)
		{
			if (IsIE6)
			{
				TextMarkMe($(ArrIDs[i]),false,false,$(ArrIDs[i]).title);
			}
			else
			{
				WaterMarkMe($(ArrIDs[i]),false,false);
			}
		}
	}
}

function WaterMarkMe(Obj, HasFocus, ClearValue)
{
	if (Obj)
	{
		if (ClearValue)
		{
			Obj.value = "";
		}
		if (Obj.value && Obj.value.length > 0 || HasFocus){
			Obj.className = "";
		}
		else{
			Obj.className = "Off";
		}
	}
}

function TextMarkMe(Obj, HasFocus, ClearValue, SetText, DefaultText)
{
	if (Obj)
	{
		if (ClearValue && Obj.value == DefaultText)
		{
			Obj.value = "";
		}
		else if (Obj.value.length <= 0){
			Obj.value = SetText;
		}
		if(!HasFocus && (Obj.value == "" || Obj.value == "undefined"))
		{
			Obj.value = DefaultText;
		}
	}
}

function checkForEnter(myfield, event)
{
	if (event.keyCode == 13) { // No need to do browser specific checks. It is always 13. 
		errCheck();
    }  
}

function CureSession(KillSession)
{
	var Spell = "cura.ashx";


	var xmlHttp, xmlHttp2;
	try
	{
		// Firefox, Opera 8.0+, Safari
		xmlHttp=new XMLHttpRequest();
		xmlHttp2=new XMLHttpRequest();
	}
	catch (e)
	{
		// Internet Explorer
		try
		{
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
			xmlHttp2=new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			try
			{
				xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
				xmlHttp2=new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e)
			{
				alert("Your browser does not support AJAX!");
				return false;
			}
		}
	}

	if (!KillSession || KillSession && KillSession != -1)
	{
	    xmlHttp.onreadystatechange=function()
	    {
			if(xmlHttp.readyState==4)
	        {
	            var St = (xmlHttp.responseText * 1);
				if (St != 1)
				{
				    xmlHttp2.open("GET", "/globallogin.ashx?ch=" + ReadCookie("Check") + "&ds=" + Number(new Date().getTime()), true);
					xmlHttp2.send(null);
				}
				else
				{
					setTimeout("CureSession();", 300000);
				}
			}
		}
	}
	if (KillSession == -1)
	{
		Spell = "globallogin.ashx?a=-1";
	}
    xmlHttp.open("GET", "/" + Spell + "?ds=" + new Date().getTime(), true);
	xmlHttp.send(null);
}

function CuraSession(IsASPX)
{
	var Spell = "cure.html";
	if (IsASPX)
	{
		Spell = "cura.ashx";
	}
	new Ajax.Request("/" + Spell + "?ds=" + Number(new Date().getTime()),{
		method:"get",
		onSuccess: function(data)
		{
			var St = (data.responseText * 1);
			if (!IsASPX && St != 1)
			{
				new Ajax.Request("/globallogin.ashx?a=-1&ds=" + Number(new Date().getTime()),{method:"get", onSuccess: function(data){window.location="index.html";}});
			}
		}
	});
	setTimeout("CureSession(" + IsASPX + ");", 300000);
}

function WaterMarkStart()
{
	WaterMarkMe($("globalusername"));
	WaterMarkMe($("globalpassword"));
}

function WaterMarkStart2()
{
	WaterMarkMe(document.getElementById("globalusername"));
	WaterMarkMe(document.getElementById("globalpassword"));
}

function errCheck()
{
    var go = true
    
    if((document.getElementById("globalusername").value == "") || (document.getElementById("globalpassword").value == ""))
    {
        go = false
    }
    
    if(document.getElementById("domainspan").style.display == "")
    {
        if(document.getElementById("globaldomain").value == "")
            go = false
    }
    
    if(!go)
    {
		HandleMessage("<div onclick=\"$('glResult').style.display='none'\">Please make sure you have<br>filled in all textboxes.<br>Click to retry.</div>", "glResult");
    }
    else
    {
		//doAuto();
        loginTypeCheck()
    }
    return false;
}

function loginTypeCheck()
{
    //if (document.getElementById("selectlogin").value != "0" && document.getElementById("manselectloginspan").style.display != "none")
	if (document.getElementById("selectlogin").value != "0")
	{
        doManual();
	}
    else
	{
        doAuto();
	}
}

function ShowHideDD()
{
	var DD = document.getElementById("manselectloginspan");
	if (DD)
	{
		if (DD.style.display == "")
		{
			DD.style.display = "none";
		}
		else
		{
			DD.style.display = "";
		}
	}
}

function doManual()
{
    var manualVal = document.getElementById("selectlogin").value
    var manualSplit = manualVal.split(";")
    var loginUrl;
    
    switch(manualSplit[0])
    {
        case "WebMail":
            var emailAddr = document.getElementById("globalusername").value;
            var emailSplit = emailAddr.split("@");
            loginUrl = manualSplit[1].replace(/<domain>/, emailSplit[1]);
            ProcessGoUrl(loginUrl);
            break;
        default:
            ProcessGoUrl(manualSplit[1]);
    }
}

function doAuto()
{
    //document.getElementById("manselectloginspan").style.display = "none";
    
    var username = document.getElementById("globalusername").value
    
    var dslConsoleRegex = /.+@wadsl[\..+]?/;
    var emailRegex = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    
    var IsMatchDSL = dslConsoleRegex.test(username)
    var IsMatchEmail = emailRegex.test(username)
    
    if(IsMatchDSL)
    {
        ProcessGoUrl("http://dsl.webafrica.co.za/?p=<password>&amp;u=<username>");
	}
    else if(IsMatchEmail)
    {
        var loginSplit = username.split("@");
        var domain = loginSplit[1];
        ProcessGoUrl("http://webmail." + domain + "/login.aspx?email=<username>&password=<password>");
    }
    else
    {
        getLoginArea()
	}
}

function HandleMessage(Message, ToTargetDomID)
{
	if (!ToTargetDomID)
	{
		alert(Message);
	}
	else
	{
		if (typeof($) == "undefined")
		{
			document.getElementById(ToTargetDomID).innerHTML = Message;
			document.getElementById(ToTargetDomID).style.display = "";
			document.getElementById("loginFormDiv").style.display = "none";
		}
		else
		{
			$(ToTargetDomID).update(Message);
			$(ToTargetDomID).style.display = "";
			document.getElementById("loginFormDiv").style.display = "none";
		}
	}
}

function getLoginArea()
  {
	var xmlHttp;
	try
	{
		// Firefox, Opera 8.0+, Safari
		xmlHttp=new XMLHttpRequest();
	}
	catch (e)
	{
		// Internet Explorer
		try
		{
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			try
			{
				xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e)
			{
				alert("Your browser does not support AJAX!");
				return false;
			}
		}
	}

    xmlHttp.onreadystatechange=function()
      {
      if(xmlHttp.readyState==4)
        {
            var loginArr = eval(xmlHttp.responseText)
            
            var numLogins = loginArr.length
            
            switch(numLogins)
            {
                case 0:
					HandleMessage("Invalid login details, please<br><a href=\"#\" onclick=\"javascript:document.getElementById('glResult').style.display='none';document.getElementById('loginFormDiv').style.display='';\">retry</a>... or did you<br><a href='client/defaultd77e.html?lostdetails=true'>forget your details?</a>", "glResult");
                    break
                case 1:
                    var loginurl = loginArr[0]["url"];
                    ProcessGoUrl(loginurl)
                    break
                default:
                    var selectloginspanHTML = "<select name='selectlogin' onchange='ProcessGoUrl(this.value)' style='background-color:White; width:163px'><option value='0' selected>Please Select...</option>"
                    
                    for(x = 0; x < loginArr.length; x=x+1)
                    {
                        selectloginspanHTML = selectloginspanHTML + "<option value='" + loginArr[x]["url"] + "'>" + loginArr[x]["loginAreaName"]
                    }
                    
                    selectloginspanHTML = selectloginspanHTML + "</select>";
                    
                    HandleMessage(selectloginspanHTML, "glResult");
            }
        }
        else
        {
        }
      }

    var url = "/globallogin.ashx"
    var param = "login=" + document.getElementById("globalusername").value + "&password=" + document.getElementById("globalpassword").value;
    
    xmlHttp.open("POST", url, true);
    xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    xmlHttp.send(param);
  }
  
  function ProcessGoUrl(url)
  {
    var loginurl = url.replace(/<username>/, document.getElementById("globalusername").value);
    loginurl = loginurl.replace(/<password>/, document.getElementById("globalpassword").value);
    
    var urlArr = loginurl.split("?")
                    
    var loginform = document.getElementById("globalloginform")
    var formparams = document.getElementById("formparams")
    
    formparams.innerHTML = "";
    loginform.action = urlArr[0];
    var urlParamArr = urlArr[1].split("&");
    
    var paramSplit;
    for(x in urlParamArr)
    {
		if (urlParamArr[x] && urlParamArr[x].split)
		{
			paramSplit = urlParamArr[x].split("=");
			formparams.innerHTML = formparams.innerHTML + "<input type='hidden' name='" + paramSplit[0] + "' value='" + paramSplit[1] + "'>"
		}
    }
	document.getElementById('selectlogin').value = "";
	var ele = loginform.elements;
	for(var i=0;i<ele.length;i++)
	{
		if (ele[i].value.indexOf("<username>") != -1)
		{
			ele[i].value = ele[i].value.replace("<username>","___");
		}
		if (ele[i].value.indexOf("<password>") != -1)
		{
			ele[i].value = ele[i].value.replace("<password>","___");
		}
	}
	//alert("Action: " + loginform.action + "\nParams: " + formparams.innerHTML);
    loginform.submit();
  }

	function LoadIE6Menu(e, ParentID, ChildId, zIndex)
	{
		$("mnu_" + ParentID + "_" + ChildId).style.visibility = "visible";
	}
  
	function HideIE6Menu(e, ParentID, ChildId)
	{
		$("mnu_" + ParentID + "_" + ChildId).style.visibility = "hidden";
	}