function hideLogin()
{
	document.getElementById('loginBox').style.display = "none";
	if (document.getElementById('loginBoxLink')) { document.getElementById('loginBoxLink').innerHTML = '<a href="javascript:showLogin();">login</a>'; };
}
function showLogin()
{
	document.getElementById('loginBox').style.display = "block";
	document.getElementById('loginForm').style.display = "block";
	document.getElementById('registerBox').style.display = "none";
	document.getElementById('loggedForm').style.display = "none";
	if (document.getElementById('loginBoxLink')) { document.getElementById('loginBoxLink').innerHTML = '<a href="javascript:hideLogin();">login</a>'; };
	if (document.getElementById('registerBoxLink')) { document.getElementById('registerBoxLink').innerHTML = '<a href="javascript:showRegister();">register</a>'; };
}

function hideRegister()
{
	document.getElementById('registerBox').style.display = "none";
	if (document.getElementById('registerBoxLink')) { document.getElementById('registerBoxLink').innerHTML = '<a href="javascript:showRegister();">register</a>'; };
}
function showRegister()
{
	document.getElementById('registerBox').style.display = "block";
	document.getElementById('loginBox').style.display = "none";
	if (document.getElementById('registerBoxLink')) { document.getElementById('registerBoxLink').innerHTML = '<a href="javascript:hideRegister();">register</a>'; };
	if (document.getElementById('loginBoxLink')) { document.getElementById('loginBoxLink').innerHTML = '<a href="javascript:showLogin();">login</a>'; };
}

function CheckLogin()
{
	document.getElementById('working').style.visibility = "visible";
    var username = document.getElementById("username").value;
    var password = document.getElementById("password").value;
    
    url = "login.php?method=aProcessLogin";
    what = 'loginResponse(req.responseXML);';

    DoCallback("username="+username+"&password="+password);
}

function loginResponse(responseXML)
{
	var statusmessage = document.getElementById('statusmessage');
	var welcomemessage = document.getElementById('welcome');

	document.getElementById('working').style.visibility = "hidden";
	statusmessage.style.display = "block";
	
	if (responseXML.getElementsByTagName('true')[0].firstChild.data == 0)
    {
    	statusmessage.innerHTML = '<br/>Login Failed! Please try again!';
    }
    else
    {
    	document.getElementById('loggedForm').style.display = "block";
    	document.getElementById('loginForm').style.display = "none";
    	statusmessage.style.display = "none";
    	statusmessage.style.marginTop = "0px";
    	var myresponse = responseXML.getElementsByTagName('username')[0].firstChild.data;
    	welcomemessage.innerHTML = 'Welcome <b>' + myresponse + '</b>! Would you like to <a href="javascript:generatePage(\'login.php?method=aLogout\');">logout</a>?';
    	document.getElementById('mmNavigation').style.display = "block";
    	document.getElementById('mmExtend').style.display = "block";
    }
}

function processRegister()
{
	document.getElementById('working2').style.visibility = "visible";
	
	var fname = document.getElementById('reg_fname').value;
	var lname = document.getElementById('reg_lname').value;
	var username = document.getElementById('reg_username').value;
	var email = document.getElementById('reg_email').value;
	var password1 = document.getElementById('reg_password1').value;
	var password2 = document.getElementById('reg_password2').value;
	
	url = 'register.php?method=aProcessRegister';
	what = 'registerResponse(req.responseXML);';
	
	DoCallback('fname=' + fname + '&lname=' + lname + '&username=' + username + '&email=' + email + '&password1=' + password1 + '&password2=' + password2);
}

function registerResponse(responseXML)
{
	var statusmessage = document.getElementById('statusMessage2');
	document.getElementById('working2').style.visibility = "hidden";
	//statusmessage.style.display = "block";
	
	if (responseXML.getElementsByTagName('true')[0].firstChild.data == 0)
	{
		statusmessage.innerHTML = '<br/><b>Registration Failed!</b><br/><br/>';
		
		var errorcount = responseXML.getElementsByTagName('errorcount')[0].firstChild.data;
		
		for (var e = 0; e < errorcount; e++)
		{
			statusmessage.innerHTML += '&bull;&nbsp;' + responseXML.getElementsByTagName('error' + e)[0].firstChild.data + '<br/>';
		}
	}
	else
	{
		var registrationarea = document.getElementById('registrationarea');
		registrationarea.innerHTML = "<h1>Registration Processed!</h1>";
		registrationarea.innerHTML += 'Your account has been successfully created. Please check your email address (<b>' + responseXML.getElementsByTagName('email')[0].firstChild.data + '</b>) and confirm your registration with a link inside this email. Thank you for registering at Tribulant.';
		registrationarea.innerHTML += '<br/><br/>';
		registrationarea.innerHTML += '<b>Confirm your Tribulant account :</b><br/><br/>';
		registrationarea.innerHTML += 'Use the form below to confirm your Tribulant account. Use the <b>confirmation code</b> in the email which was just sent to you and fill it into the field below.<br/><br/>';
		registrationarea.innerHTML += '<input type="text" class="input_text" size="15" id="confirmationCode" name="confirmationCode" /><br/><br/>';
		registrationarea.innerHTML += '<input type="button" name="submit" value="Confirm Now" onclick="processRegConfirm();" />';
		registrationarea.innerHTML += '<span id="confirmWorking" style="display:none;"><br/><img src="templates/images/working.gif" border="0" alt="Working..." />&nbsp;&nbsp;&nbsp;Working...</span>';
		registrationarea.innerHTML += '<div id="confirmStatusMessage" class="red"></div>';
	}
}

function processContact()
{
	document.getElementById('contactWorking').style.visibility = "visible";
	document.getElementById('contactStatus').innerHTML = '';
	
	var fname = document.getElementById('conFname').value;
	var lname = document.getElementById('conLname').value;
	var email = document.getElementById('conEmail').value;
	var subject = document.getElementById('conSubject').value;
	var message = document.getElementById('conMessage').value;
	
	url = "contact.php?method=aContactProcess";
	what = "contactResponse(req.responseXML);";
	
	DoCallback('fname=' + fname + '&lname=' + lname + '&email=' + email + '&subject=' + subject + '&message=' + message);
}

function contactResponse(responseXML)
{
	var statusmessage = document.getElementById('contactStatus');
	
	if (responseXML.getElementsByTagName('true')[0].firstChild.data == 0)
	{
		document.getElementById('contactWorking').style.visibility = "hidden";
		statusmessage.innerHTML = '<br/><b>Contact Procedure Failed!</b><br/><br/>';
		
		var errorcount = responseXML.getElementsByTagName('errorcount')[0].firstChild.data;
		
		for (var e = 0; e < errorcount; e++)
		{
			statusmessage.innerHTML += '&bull;&nbsp;' + responseXML.getElementsByTagName('error' + e)[0].firstChild.data + '<br/>';
		}
	}
	else
	{
		var maincontent = document.getElementById('maincontent');
		maincontent.innerHTML = '<h1>Successfully Processed!</h1>';
		maincontent.innerHTML += 'You have successfully submitted a support ticket to the Tribulant support department.';
		maincontent.innerHTML += 'Your ticket will be attended and responded to as soon as possible.<br/><br/>';
		maincontent.innerHTML += 'Thank you for contacting Tribulant!';
	}
}

function processRegConfirm()
{
	document.getElementById('confirmWorking').style.display = "block";
	document.getElementById('confirmStatusMessage').innerHTML = '';
	var confirmationCode = document.getElementById('confirmationCode').value;
	
	url = "register.php?method=aConfirmReg";
	what = "confirmResponse(req.responseXML);";
	
	DoCallback('confirmationCode=' + confirmationCode);
}

function confirmResponse(responseXML)
{
	url = "register.php?method=aConfirmReg";
	what = "confirmResponse(req.responseXML);";
	
	var statusmessage = document.getElementById('confirmStatusMessage');
	document.getElementById('confirmWorking').style.display = "none";
	
	if (responseXML.getElementsByTagName('true')[0].firstChild.data == 0)
	{
		statusmessage.innerHTML = '<br/><b>Confirmation Failed!</b><br/><br/>';
		
		var errorcount = responseXML.getElementsByTagName('errorcount')[0].firstChild.data;
		
		for (var e = 0; e < errorcount; e++)
		{
			statusmessage.innerHTML += '&bull;&nbsp;' + responseXML.getElementsByTagName('error' + e)[0].firstChild.data + '<br/>';
		}
	}
	else
	{
		var regArea = document.getElementById('registrationarea');
		
		regArea.innerHTML = '<h1>Confirmation Successful!</h1>';
		regArea.innerHTML += 'You have successfully confirmed your registered email address!<br/>Please click the button below to login.<br/><br/>';
		regArea.innerHTML += '<input type="button" name="login" onclick="showLogin();" value="Login Now" />';
	}
}

function generatePage(pagelink)
{
	var maincontent = document.getElementById('maincontent');
	
	maincontent.innerHTML = '';
	maincontent.innerHTML = '<div align="center" style="padding:50px;"><br/><h1>Working...</h1><br/><img src="templates/images/loading.gif" border="" alt="" /></div>';

	url = pagelink;
	what = 'processPage(req.responseXML);';
	
	DoCallback('url=' + url);
}

function processPage(responseXML)
{
	//alert (req.responseText);
	
	document.getElementById('exConOut').style.display = "none";
	var maincontent = document.getElementById('maincontent');
	var pageContent = responseXML.getElementsByTagName('pageContent')[0].firstChild.data;
	maincontent.innerHTML = pageContent;
	
	var type = responseXML.getElementsByTagName('type')[0].firstChild.data;
	var welcomemessage = document.getElementById('welcome');
	
	if (responseXML.getElementsByTagName('pageTitle')[0])
	{
		var pageTitle = responseXML.getElementsByTagName('pageTitle')[0].firstChild.data;
		document.title = pageTitle;
	}
	else
	{
		document.title = "Tribulant.com";
	}
	
	if (type == "logout")
	{
		//document.getElementById('maincontent').style.paddingTop = "10px";
		document.getElementById('welcome').style.height = "20px";
		welcomemessage.innerHTML = 'Welcome <b>Guest</b>! Would you like to <span id="loginBoxLink"><a href="javascript:showLogin();">login</a></span> or <span id="registerBoxLink"><a href="javascript:showRegister();">register</a></span>?';
		document.getElementById('mmNavigation').style.display = "none";
		document.getElementById('mmExtend').style.display = "none";
	}
	else if (type == "aScriptView")
	{
		//alert (responseXML.getElementsByTagName('extraContent')[0].firstChild.data);
		document.getElementById('exConOut').style.display = "block";
		var extraTitle = document.getElementById('extraTitle');
		extraTitle.innerHTML = '<h1 style="margin-bottom:5px;">' + responseXML.getElementsByTagName('extraTitle')[0].firstChild.data + '</h1>';
		var extraContent = document.getElementById('extraContent');
		extraContent.innerHTML = responseXML.getElementsByTagName('extraContent')[0].firstChild.data;
		document.getElementById('belowExtra').style.height = "10px";
	}
	else if (type == "aDownloadProcess")
	{
		downId = responseXML.getElementsByTagName('downId')[0].firstChild.data;
		fileName = responseXML.getElementsByTagName('fileName')[0].firstChild.data;
		//alert (downId + "\n" + fileName);
		window.open('http://www.tribulant.com/downloads.php?method=aDown&downId=' + downId + '&fileName=' + fileName + '', 'name', 'width=200px, height=100px, scrollbars=0, resizable=0');
	}
	else if (type == "aViewArticle")
	{
		
	}
}

function hideDiv(wdiv)
{
	document.getElementById(wdiv).style.display = "none";
}
function showDiv(wdiv)
{
	document.getElementById(wdiv).style.display = "block";
}

function valDownloadDef()
{
	criteria = document.getElementById('critSelect').value;
	scriptDomain = document.getElementById('downDomain').value;
	
	//alert (criteria + "\n" + scriptDomain);
	
	generatePage('downloads.php?method=aDownloadProcess&scriptDomain=' + scriptDomain + '&criteria=' + criteria);
}

function processPasswdForgot()
{
	document.getElementById('passwdFStatus').innerHTML = '';
	document.getElementById('passwdFWorking').style.visibility = "visible";
	var passwdEmail = document.getElementById('passwdEmail').value;
	url = "login.php?method=aPasswdForgot";
	what = "passwdForgotResponse(req.responseXML);";
	DoCallback('passwdEmail=' + passwdEmail);
}

function passwdForgotResponse(responseXML)
{
	document.getElementById('passwdFWorking').style.visibility = "hidden";
	var statusmessage = document.getElementById('passwdFStatus');
	statusmessage.style.display = "block";
	
	if (responseXML.getElementsByTagName('true')[0].firstChild.data == 0)
	{
		statusmessage.innerHTML = '<br/><b>Password Request Failed!</b><br/><br/>';
		
		var errorcount = responseXML.getElementsByTagName('errorcount')[0].firstChild.data;
		
		for (var e = 0; e < errorcount; e++)
		{
			statusmessage.innerHTML += '&bull;&nbsp;' + responseXML.getElementsByTagName('error' + e)[0].firstChild.data + '<br/>';
		}
	}
	else
	{
		statusmessage.innerHTML = '<br/><b>Request Success!</b><br/><br/>';
		statusmessage.innerHTML += 'You have successfully reset your account password.<br/>Please check your email inbox.';
		setTimeout("darkHide('passwdForgot');", 2000);
	}
}

function imgLayerShow(filename, imgWidth)
{
	var sw = screen.width - 10;
	var sh = screen.height;
	document.getElementById('imgLayer').style.width = sw + 'px';
	document.getElementById('imgLayer').style.display = "block";
	document.getElementById('imgLayerContent').style.display = "block";
	document.getElementById('imgLayerContent').innerHTML = '<img id="imgLayerImage" src="' + filename + '" border="0" />';
	var arrayPageScroll = getPageScrollTop();
	document.getElementById('imgLayer').style.top = arrayPageScroll[1] + 'px';
	var arrayPageSize = getPageSize();
	darkSize();
	document.getElementById('imgLayerOuterDiv').style.width = imgWidth + 'px';
	document.getElementById('dark').style.display = "block";
	slow.fadein('dark');
}
function imgLayerHide()
{
	document.getElementById('imgLayerContent').innerHTML = '';
	document.getElementById('imgLayer').style.display = "none";
	document.getElementById('imgLayerContent').style.display = "none";
	slowly.fade('dark');
}

function apermLayerShow(title, link)
{
	var sw = screen.width - 10;
	var sh = screen.height;
	document.getElementById('apermLayer').style.width = sw + 'px';
	document.getElementById('apermLayer').style.display = "block";
	document.getElementById('apermLayerContent').style.display = "block";
	document.getElementById('apermLayerContent').innerHTML = '<div style="text-align:left;"><h2>PermaLink : ' + title + '</h2>You can copy the link below as a permanent link to this resource if you would like to share it with other users. This permalink will not change ever.<br/><br/><b><a class="paddedLinks" href="' + link + '" target="_blank" title="' + title + '">' + link + '</a></b></div>';
	var arrayPageScroll = getPageScrollTop();
	document.getElementById('apermLayer').style.top = arrayPageScroll[1] + 'px';
	darkSize();
	document.getElementById('apermLayerOuterDiv').style.width = '450px';
	document.getElementById('dark').style.display = "block";
	slow.fadein('dark');
}
function apermLayerHide()
{
	document.getElementById('apermLayerContent').innerHTML = '';
	document.getElementById('apermLayer').style.display = "none";
	document.getElementById('apermLayerContent').style.display = "none";
	slowly.fade('dark');
}

function getPageScrollTop()
{
  var yScrolltop;
  var xScrollleft;
  if (self.pageYOffset || self.pageXOffset) {
    yScrolltop = self.pageYOffset;
    xScrollleft = self.pageXOffset;
  } else if (document.documentElement && document.documentElement.scrollTop || document.documentElement.scrollLeft ){   // Explorer 6 Strict
    yScrolltop = document.documentElement.scrollTop;
    xScrollleft = document.documentElement.scrollLeft;
  } else if (document.body) {// all other Explorers
    yScrolltop = document.body.scrollTop;
    xScrollleft = document.body.scrollLeft;
  }
  yScrolltop = yScrolltop + 25;
  arrayPageScroll = new Array(xScrollleft, yScrolltop) 
  return arrayPageScroll;
}
function getPageSize(){
  var de = document.documentElement;
  var w = window.innerWidth || self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth;
  var h = window.innerHeight || self.innerHeight || (de&&de.clientHeight) || document.body.clientHeight
  arrayPageSize = new Array(w, h) 
  return arrayPageSize;
}

function darkSize(){
  if (window.innerHeight && window.scrollMaxY || window.innerWidth && window.scrollMaxX) {  
    yScroll = window.innerHeight + window.scrollMaxY;
    xScroll = window.innerWidth + window.scrollMaxX;
    var deff = document.documentElement;
    var wff = (deff&&deff.clientWidth) || document.body.clientWidth || window.innerWidth || self.innerWidth;
    var hff = (deff&&deff.clientHeight) || document.body.clientHeight || window.innerHeight || self.innerHeight;
    xScroll -= (window.innerWidth - wff);
    yScroll -= (window.innerHeight - hff);
    
    document.getElementById('dark').style.height = yScroll + 'px';
  document.getElementById('dark').style.width = xScroll + 'px';
  } else if (document.body.scrollHeight > document.body.offsetHeight || document.body.scrollWidth > document.body.offsetWidth){ // all but Explorer Mac
    yScroll = document.body.scrollHeight;
    xScroll = document.body.scrollWidth;
    
    document.getElementById('dark').style.height = yScroll + 'px';
  document.getElementById('dark').style.width = xScroll + 'px';
  } else 
  {
  	document.getElementById('dark').style.height = yScroll + 'px';
  document.getElementById('dark').style.width = self.innerWidth + 'px';
  }
}

function darkShow(otherDiv)
{
	var sw = screen.width - 10;
	var sh = screen.height;
	
	document.getElementById(otherDiv).style.width = sw + 'px';
	document.getElementById(otherDiv).style.display = "block";
	document.getElementById(otherDiv + 'Content').style.display = "block";
	darkSize();
	document.getElementById('dark').style.display = "block";
	slow.fadein('dark');
}

function darkHide(otherDiv)
{
	document.getElementById(otherDiv).style.display = "none";
	document.getElementById(otherDiv + 'Content').style.display = "none";
	slowly.fade('dark');
}

//slow fade

var opac = 0;
var slow = 
{	
	fadein : function(id)
	{
		this.fadeloop(id, opac);	
	},	
	fadeloop : function(id, opac)
	{
		var layer = document.getElementById(id);
		
		if (opac < 75)
		{
			slow.setopac(layer, opac);
			opac += 8;
			window.setTimeout("slow.fadeloop('" + id + "', " + opac + ")", 10);
		}
		else
		{
			layer.style.display = "block";	
		}
	},
	setopac : function (layer, opac) 
	{
		layer.style.filter = "alpha(style=0,opacity:" + opac + ")";	// IE
		layer.style.filter = "progid:DXImageTransform.Microsoft.Alpha(opacity=" + opac + ")";
		layer.style.KHTMLOpacity = opac / 100;				// Konqueror
		layer.style.MozOpacity = opac / 100;				// Mozilla (old)
		layer.style.opacity = opac / 100;					// Mozilla (new)
	}
}

var opacity = 75; // Avoid starting at 100% due to Mozilla bug
var slowly = {
	fade : function (id) {
		this.fadeLoop(id, opacity);
	},
	fadeLoop : function (id, opacity) {
		var o = document.getElementById(id);
		if (opacity >= 0) {
			slowly.setOpacity(o, opacity);
			opacity -= 8;
			window.setTimeout("slowly.fadeLoop('" + id + "', " + opacity + ")", 10);
		} else {
			o.style.display = "none";
		}
	},
	setOpacity : function (o, opacity) {
		o.style.filter = "alpha(style=0,opacity:" + opacity + ")";	// IE
		o.style.filter = "progid:DXImageTransform.Microsoft.Alpha(opacity = " + opacity + ")";
		o.style.KHTMLOpacity = opacity / 100;				// Konqueror
		o.style.MozOpacity = opacity / 100;					// Mozilla (old)
		o.style.opacity = opacity / 100;					// Mozilla (new)
	}
}

//slow fade
