﻿var Homepage_TabId;
var PreLoad = true;
var LoadedTabs = "";
var bRefreshAH = false;
var bRefreshRH = false;
var bReloadHomepage = false;

/*========================================================================================================*/
/* OTHER / GENERIC */
/*========================================================================================================*/

function GetObj(id){
	return(document.getElementById(id));
}

function IE_ViewDoc(){ViewDoc(this.getAttribute("phydocid"));}
function ViewDoc(phydocid){
	window.frames.viewdoc.location.href="/idocument/atom/cview.aspx?phydocid="+phydocid;	
}

function InitHomepage(startpageId){

	SwitchTab(startpageId);
	Homepage_TabId = startpageId;
	
}

function InitTab(tabid){

	switch(tabid){
	
		case "AuthorHomepage":
			if(LoadedTabs.indexOf(tabid) == -1){InitAuthorHomepage();}
			if(bRefreshAH){AH_Refresh();bRefreshAH = false;}
			SwitchMainWindow("AuthorHomepage_DocumentList");
			break;
			
		case "RefereeHomepage":
			if(LoadedTabs.indexOf(tabid) == -1){InitRefereeHomepage();}
			if(bRefreshRH){RH_Refresh();bRefreshRH = false;}
			SwitchMainWindow("RefereeHomepage_DocumentList");
			break;
	
		case "EventLoginNewUser":
			InitRegistrationForms()
			break;
			
		case "ProgrammeHomepage":
			document.getElementById("TabMenu").style.display = "none";
			document.getElementById("EventLoginTabMenu").style.display = "none";
			PH_Init();
			break;
	
		case "PayToAttendHomepage":
			document.getElementById("TabMenu").style.display = "none";
			document.getElementById("EventLoginTabMenu").style.display = "none";
			if(LoadedTabs.indexOf(tabid) == -1){InitPayToAttendHomepage();}
			break;
			
		case "RefereeInvitationHomepage":
			document.getElementById("TabMenu").style.display = "none";
			document.getElementById("EventLoginTabMenu").style.display = "none";		
		    break;
		    
		case "ManageMyCateogriesHomepage":
			document.getElementById("TabMenu").style.display = "none";
			document.getElementById("EventLoginTabMenu").style.display = "none";
			MMC_Init();				
		    break;
	
	}
	
	LoadedTabs += tabid + ";";

}

var CurrentTab;
function SwitchTab(tabid,hideTabMenu){

	if(hideTabMenu){
		document.getElementById("TabMenu").style.display = "none";
	}else{
		document.getElementById("TabMenu").style.display = "block";
	}

	if(tabid == "EventLoginExistingUser" || tabid == "EventLoginNewUser"){
		document.getElementById("EventLoginTabMenu").style.display = "block";
	}else{
		try{
			document.getElementById("EventLoginTabMenu").style.display = "none";
		}catch(ex){}
	}
	if (CurrentTab) { CurrentTab.style.display = "none"; }
	CurrentTab = document.getElementById(tabid);
	CurrentTab.style.display = "block";
		
	InitTab(tabid);
	
}

function GoToPage(page) {

	ShowHome();
	if (page == "PayToAttendHomepage") {
		SwitchTab(page);
		PTAH_Home();
	}
}

function ShowHome(){

	if(bReloadHomepage){

		window.location.reload(true);
	}else{	
		SwitchTab("EventHomepage");
		document.getElementById("TabMenu").style.display = "none";
	}
}

function SwitchMainWindow(showid){

	try{
		document.getElementById("AuthorHomepage_DocumentList").style.display = "none";
		document.getElementById("AuthorHomepage_DocumentDetail").style.display = "none";
		document.getElementById("AuthorHomepage_NewSubmission").style.display = "none";
	}catch(ex){}
	
	try{
		document.getElementById("RefereeHomepage_DocumentList").style.display = "none";
		document.getElementById("RefereeHomepage_ReviewSheet").style.display = "none";
	}catch(ex){}

	document.getElementById(showid).style.display = "block";
	
}

function ShowWait(bShow){
	var w = document.getElementById("ControlBox_PleaseWait");
	if(!bShow){w.style.display = "none";}else{w.style.display = "block";}	
}
function DoWordCount(textarea,countLabelId,countlimit){

	try{
	
		var lbl = document.getElementById(countLabelId);
		var words = textarea.value.split(" ");
		var count = countlimit - words.length;
		
		if(textarea.value == ""){
			count = countlimit + " words remaining";
			lbl.innerHTML = count;
		}else{
			if(count <= 0){
				lbl.innerHTML = "<span style='color:#ff0000;'><strong>" + (count*-1) + "</strong> words over limit (approx.)</span>";
			}else{
				lbl.innerHTML = count + " words remaining (approx.)";
			}
		}
		
		return count;
		
	}catch(ex){
		
		return 0;
		
	}
	
}

//*********************************************************************************************
//LOGIN
//*********************************************************************************************

function TryLoginKeyPress(e){try{if(recordKeyStroke(e) == 'enter'){TryLogin();}}catch(ex){}}

function TryLogin(){

	ShowWait(true);
	
	var un = document.getElementById("txtEventManagement_Username").value;
	var pw = document.getElementById("txtEventManagement_Password").value;
	
	Ajax_GetXmlPage(ROOT_DIR+"Atom/Home_Cmd.aspx?cmd=654&u="+un+"&p="+pw, TryLogin_Response);

}

function TryLogin_Response(){
	if(Ajax_XmlHttp_IsReady()){
			
		var XmlDoc = Ajax_XmlHttp.responseXML;
		var nodes;
		var i;
				
		nodes = XmlDoc.getElementsByTagName("Login");
		
		if(nodes[0].getAttribute("status") == "ok"){
			window.location.reload(true);	
		}else{
			SetLoginMessage("<strong>Login Failed.</strong> Invalid username and/or password.","#ff0000");
			ShowWait(false);
		}		
		
	}
}

function CancelNewUser(){
	
	if(confirm("Are you sure you want to cancel, and return to the home screen?")){
	
		ShowHome();
	
	}

}

function TryQuickRegister(){

	document.getElementById("QuickRegisterMessage").innerHTML = "";

	var msg = "";
	var obj;
	var title,forenames,surname,email,pass1,pass2;
	
	obj = GetObj("txtQuickReg_Title");
	title = obj.value;
	if(obj.getAttribute("required") == "true" && title == ""){
		msg += " - Title\n";
	}

	obj = GetObj("txtQuickReg_Forenames");
	forenames = obj.value;
	if(obj.getAttribute("required") == "true" && fornames == ""){
		msg += " - Forename(s)\n";
	}

	obj = GetObj("txtQuickReg_Surname");
	surname = obj.value;
	if(obj.getAttribute("required") == "true" && surname == ""){
		msg += " - Surname\n";
	}

	obj = GetObj("txtQuickReg_Email");
	email = obj.value;
	if(obj.getAttribute("required") == "true" && email == ""){
		msg += " - Email Address\n";
	}

	obj = GetObj("txtQuickReg_Pass1");
	pass1 = obj.value;

	obj = GetObj("txtQuickReg_Pass2");
	pass2 = obj.value;

	if(pass1 == "" || pass2 == ""){
		msg += " - Invalid Password(s)\n";
	}else{
		if(pass1 != pass2){
			msg += " - Passwords do not match\n"
		}
	}
	
	if(msg != ""){
		alert("Please complete (or correct) the following fields:\n\n"+msg+"\n");
		
	}else{
	
		ShowWait(true);
			
		var url = ROOT_DIR+"Atom/Home_Cmd.aspx?cmd=658&t="+title+"&f="+forenames+"&s="+surname+"&e="+email+"&p="+pass1+"&poid="+REGISTERED_USER_BIN+"&oid="+CURRENT_REGISTERED_USEROBJECTID
		
		Ajax_GetXmlPage(url, TryQuickRegister_Response);
	
	}

}

function TryQuickRegister_Response(){
	if(Ajax_XmlHttp_IsReady()){
			
		var XmlDoc = Ajax_XmlHttp.responseXML;
		var nodes;
		var i;
				
		nodes = XmlDoc.getElementsByTagName("QuickRegister");
		
		
		if(nodes[0].getAttribute("status") == "ok"){
		
			//reg ok, user is logged in - reload app
			window.location.reload(true);	
			
		}else{
			
			CurrentRegistrationObjectId = nodes[0].getAttribute("objectid");
			
			document.getElementById("QuickRegisterMessage").innerHTML = "<span style=\"color:#ff0000;\"><strong>The email address provided is already registered.</strong></span><br/><br/>";	
			
			ShowWait(false);
						
		}		

	}
}

function TryRegister(){

	document.getElementById("RegisterMessage").innerHTML = "";

	var msg = "";
	var obj;
	var title,forenames,surname,email,pass1,pass2;
	var company,position,address1,address2,address3,city,county,postcode,countrycode;
	var tel,mobile,fax,website;
	
	obj = GetObj("txtReg_Title");
	title = obj.value;
	if(obj.getAttribute("required") == "true" && title == ""){
		msg += " - Title\n";
	}

	obj = GetObj("txtReg_Forenames");
	forenames = obj.value;
	if(obj.getAttribute("required") == "true" && fornames == ""){
		msg += " - Forename(s)\n";
	}

	obj = GetObj("txtReg_Surname");
	surname = obj.value;
	if(obj.getAttribute("required") == "true" && surname == ""){
		msg += " - Surname\n";
	}

	obj = GetObj("txtReg_Email");
	email = obj.value;
	if(obj.getAttribute("required") == "true" && email == ""){
		msg += " - Email Address\n";
	}
	
	obj = GetObj("txtReg_Company");
	company = obj.value;

	obj = GetObj("txtReg_Position");
	position = obj.value;
	
	obj = GetObj("txtReg_Address1");
	address1 = obj.value;

	obj = GetObj("txtReg_Address2");
	address2 = obj.value;

	obj = GetObj("txtReg_Address3");
	address3 = obj.value;

	obj = GetObj("txtReg_City");
	city = obj.value;

	obj = GetObj("txtReg_County");
	county = obj.value;
	
	obj = GetObj("txtReg_Postcode");
	postcode = obj.value;

	obj = GetObj("selReg_CountryCode");
	countrycode = obj.value;
	if(obj.getAttribute("required") == "true" && parseInt(countrycode) <= 0){
		msg += " - Country\n";
	}

	obj = GetObj("txtReg_Tel");
	tel = obj.value;
	if(obj.getAttribute("required") == "true" && tel == ""){
		msg += " - Telephone\n";
	}

	obj = GetObj("txtReg_Mobile");
	mobile = obj.value;

	obj = GetObj("txtReg_Fax");
	fax = obj.value;

	obj = GetObj("txtReg_Website");
	website = obj.value;

	obj = GetObj("txtReg_Pass1");
	pass1 = obj.value;

	obj = GetObj("txtReg_Pass2");
	pass2 = obj.value;

	if(pass1 == "" || pass2 == ""){
		msg += " - Invalid Password(s)\n";
	}else{
		if(pass1 != pass2){
			msg += " - Passwords do not match\n"
		}
	}
	
	if(msg != ""){
		alert("Please complete (or correct) the following fields:\n\n"+msg+"\n");
		
	}else{
	
		ShowWait(true);
			
		var url = ROOT_DIR+"Atom/Home_Cmd.aspx?cmd=737";
		url += "&t="+title
		url += "&f="+forenames
		url += "&s="+surname
		url += "&e="+email
		url += "&p="+pass1
		url += "&c="+company
		url += "&pos="+position
		url += "&a1="+address1
		url += "&a2="+address2
		url += "&a3="+address3
		url += "&city="+city
		url += "&cou="+county
		url += "&pc="+postcode
		url += "&cc="+countrycode
		url += "&tel="+tel
		url += "&fax="+fax
		url += "&w="+escape(website)
		url += "&mob="+mobile
		url += "&poid="+REGISTERED_USER_BIN
		url += "&oid="+CURRENT_REGISTERED_USEROBJECTID
		
		Ajax_GetXmlPage(url, TryRegister_Response);
	
	}

}

function TryRegister_Response(){
	if(Ajax_XmlHttp_IsReady()){
			
		var XmlDoc = Ajax_XmlHttp.responseXML;
		var nodes;
		var i;
				
		nodes = XmlDoc.getElementsByTagName("Register");
		
		var status = nodes[0].getAttribute("status");
		
		if(status == "ok"){
		
			//reg ok, user is logged in - reload app
			window.location.reload(true);	
			
		}else{
			
			var msg = "";
			
			switch(status){
			
				case "loginfailed":
					msg = "Incorrect login details.";
					break;
					
				case "badusername":
					msg = "The email address provided is already registered.";
					break;
			
			}
			
			CurrentRegistrationObjectId = nodes[0].getAttribute("objectid");
			
			document.getElementById("RegisterMessage").innerHTML = "<br/><span style=\"color:#ff0000;\"><strong>"+msg+"</strong></span><br/><br/>";	
			
			ShowWait(false);
						
		}		

	}
}

function SetLoginMessage(msg,textcolour){ 
	document.getElementById("LoginMessage").innerHTML = "<span style=\"color:"+textcolour+";\">"+msg+"</span><br/><br/>";	
}

function ClearLoginMessage(){
	document.getElementById("LoginMessage").innerHTML = "";
}

function ClearRegistrationForms(){

	GetObj("txtReg_Title").value = "";
	GetObj("txtReg_Forenames").value = "";
	GetObj("txtReg_Surname").value = "";
	GetObj("txtReg_Company").value = "";
	GetObj("txtReg_Position").value = "";

	GetObj("txtQuickReg_Title").value = "";
	GetObj("txtQuickReg_Forenames").value = "";
	GetObj("txtQuickReg_Surname").value = "";
	GetObj("txtReg_Pass1").value = "";
	GetObj("txtReg_Pass2").value = "";

	GetObj("txtReg_Address1").value = "";
	GetObj("txtReg_Address2").value = "";
	GetObj("txtReg_Address3").value = "";
	GetObj("txtReg_City").value = "";
	GetObj("txtReg_County").value = "";
//			GetObj("selReg_CountryCode").value = addressNodes[0].getElementsByTagName("Email")[0].firstChild.data	
	GetObj("txtReg_Postcode").value = "";
	GetObj("txtReg_Tel").value = "";
	GetObj("txtReg_Mobile").value = "";
	GetObj("txtReg_Fax").value = "";
	GetObj("txtReg_Website").value = "";
	GetObj("txtReg_Email").value = "";

	GetObj("txtQuickReg_Email").value = "";

}

function InitRegistrationForms(){

	//if(CURRENT_REGISTERED_USEROBJECTID > 0){
		ClearRegistrationForms();
		Ajax_GetXmlPage(ROOT_DIR+"Atom/Home_Cmd.aspx?cmd=591&oid="+CURRENT_REGISTERED_USEROBJECTID, InitRegistrationForms_Response);
	//}

}

function InitRegistrationForms_Response(){

	if(Ajax_XmlHttp_IsReady()){
			
		var XmlDoc = Ajax_XmlHttp.responseXML;
		var nodes,addressNodes;
		var i, selCountry, SelectedCountryCode;
				
		nodes = XmlDoc.getElementsByTagName("Contact");

		for(i = 0; i < nodes.length; i++){
		
			if(parseInt(nodes[i].getAttribute("objectid")) > 0){

				try{GetObj("txtReg_Title").value =  nodes[i].getElementsByTagName("Title")[0].firstChild.data}catch(ex){};
				try{GetObj("txtReg_Forenames").value = nodes[i].getElementsByTagName("Forenames")[0].firstChild.data}catch(ex){};
				try{GetObj("txtReg_Surname").value = nodes[i].getElementsByTagName("Surname")[0].firstChild.data}catch(ex){};
				try{GetObj("txtReg_Company").value = nodes[i].getElementsByTagName("Company")[0].firstChild.data}catch(ex){};
				try{GetObj("txtReg_Position").value = nodes[i].getElementsByTagName("Position")[0].firstChild.data}catch(ex){};
				
				GetObj("txtReg_Pass1").value = "";
				GetObj("txtReg_Pass2").value = "";

				try{GetObj("txtQuickReg_Title").value = nodes[i].getElementsByTagName("Title")[0].firstChild.data}catch(ex){};
				try{GetObj("txtQuickReg_Forenames").value = nodes[i].getElementsByTagName("Forenames")[0].firstChild.data}catch(ex){};
				try{GetObj("txtQuickReg_Surname").value = nodes[i].getElementsByTagName("Surname")[0].firstChild.data}catch(ex){};

				addressNodes = nodes[i].getElementsByTagName("Address");
	
				try{GetObj("txtReg_Address1").value = addressNodes[0].getElementsByTagName("Line1")[0].firstChild.data}catch(ex){};
				try{GetObj("txtReg_Address2").value = addressNodes[0].getElementsByTagName("Line2")[0].firstChild.data}catch(ex){};
				try{GetObj("txtReg_Address3").value = addressNodes[0].getElementsByTagName("Line3")[0].firstChild.data}catch(ex){};
				try{GetObj("txtReg_City").value = addressNodes[0].getElementsByTagName("City")[0].firstChild.data}catch(ex){};
				try{GetObj("txtReg_County").value = addressNodes[0].getElementsByTagName("County")[0].firstChild.data}catch(ex){};
				SelectedCountryCode = addressNodes[0].getElementsByTagName("Country")[0].getAttribute("code");	
				try{GetObj("txtReg_Postcode").value = addressNodes[0].getElementsByTagName("Postcode")[0].firstChild.data}catch(ex){};
				try{GetObj("txtReg_Tel").value = addressNodes[0].getElementsByTagName("Tel")[0].firstChild.data}catch(ex){};
				try{GetObj("txtReg_Mobile").value = addressNodes[0].getElementsByTagName("Mobile")[0].firstChild.data}catch(ex){};
				try{GetObj("txtReg_Fax").value = addressNodes[0].getElementsByTagName("Fax")[0].firstChild.data}catch(ex){};
				try{GetObj("txtReg_Website").value = addressNodes[0].getElementsByTagName("Website")[0].firstChild.data}catch(ex){};
				try{GetObj("txtReg_Email").value = addressNodes[0].getElementsByTagName("Email")[0].firstChild.data}catch(ex){};

				try{GetObj("txtQuickReg_Email").value = addressNodes[0].getElementsByTagName("Email")[0].firstChild.data}catch(ex){};				
				
			}

		}	
		
		nodes = XmlDoc.getElementsByTagName("Country");
		
		selCountry = GetObj("selReg_CountryCode");
		selCountry.options.length = 0;
		selCountry.options[selCountry.options.length] = new Option("Please select...",-1);		
	
		for(i = 0; i < nodes.length; i++){
			if(nodes[i].firstChild.data != "unknown")
			{
				selCountry.options[selCountry.options.length] = new Option(nodes[i].firstChild.data,nodes[i].getAttribute("code"));
				if(SelectedCountryCode == nodes[i].getAttribute("code")){
					selCountry.options[selCountry.options.length-1].selected = true;
				}
			}
		}	

	}

}

function StartPasswordReminder(){

	document.getElementById("divEventManagement_PasswordReminder").style.display = "block";
	try{document.getElementById("txtEventManagement_PasswordReminderEmail").value = "";}catch(ex){}
	try{document.getElementById("txtEventManagement_PasswordReminderEmail").focus();}catch(ex){}
	
}

function DoPasswordReminder(){

	var e_input = document.getElementById("txtEventManagement_PasswordReminderEmail");
	
	if(e_input.value == ""){
		alert("Please enter a valid email address.");
		try{e_input.focus();}catch(ex){}
	}else{
		Ajax_GetXmlPage(ROOT_DIR+"Atom/Home_Cmd.aspx?cmd=887&e="+escape(e_input.value), DoPasswordReminder_Response);
	}

}

function DoPasswordReminder_Response(){

	if(Ajax_XmlHttp_IsReady()){
			
		var XmlDoc = Ajax_XmlHttp.responseXML;
		var nodes = XmlDoc.getElementsByTagName("PasswordReminder");
		
		if(nodes[0].getAttribute("sent") == "true"){
		
			SetLoginMessage("A password reminder has been sent to "+document.getElementById("txtEventManagement_PasswordReminderEmail").value+".","#008000");
			CancelPasswordReminder();
			
		}else{
		
			SetLoginMessage("<strong>No password/account could be found for '"+document.getElementById("txtEventManagement_PasswordReminderEmail").value+"'.</strong>","#FF0000");
		
		}
	
	}

}

function CancelPasswordReminder(){

	document.getElementById("divEventManagement_PasswordReminder").style.display = "none";
	document.getElementById("txtEventManagement_PasswordReminderEmail").value = "";
	try{document.getElementById("txtEventManagement_Username").focus();}catch(ex){}

}
