var szLoadingText = "<table width='100%'><tr><td align='center'><img src='images/loading.gif'></td></tr></table>";
var szEmailPattern = "/^([a-zA-Z0-9])+([\\.a-zA-Z0-9_-])*@([a-zA-Z0-9])+(\\.[a-zA-Z0-9_-]+)+$/";
var szAlphanumericPattern = "/^[a-zA-Z0-9\'\.\, ]+$/";
var szAddressPattern = /^[a-zA-Z0-9\'\.\-\(\)\/\,? ]+$/;
var szContactnoPattern = "/^[0-9\-\(\)\, ]+$/";

function loadRegisterPage()
{
	var szTestDriveValue;
	var iTestDrive = 0;
	var iTestDriveCnt =  document.aftekLabForm.testDriveOption.length;
	for (iTestDrive = 0; iTestDrive < iTestDriveCnt; iTestDrive++)
	{
		if (document.aftekLabForm.testDriveOption[iTestDrive].checked == true)
		{
			szTestDriveValue = document.aftekLabForm.testDriveOption[iTestDrive].value;
			break;
		}
	}
	if (iTestDrive == iTestDriveCnt)
	{
		alert("Please select one test drive");
		return;
	}
	document.getElementById("middleRightDiv").innerHTML = szLoadingText;
	var oAJAXRequest = new AjaxRequest("registertestdrive.shtml", null, 'loadRegisterPageCallback', "middleRightDiv");
	oAJAXRequest.call();
}

function registerUser()
{
	var szTestDriveCode = document.getElementById("testDriveCode").value;
	var szTestDriveName = document.getElementById("testDriveName").innerHTML;
	var szParam = null;
	var oUserName = document.getElementById("userName");
	var oCompanyName = document.getElementById("companyName");
	var oAddress = document.getElementById("address");
	var oContactNo = document.getElementById("contactNo");
	var oEmailId = document.getElementById("emailId");
	var oComments = document.getElementById("comments");
	
	if (checkEmpty())
	{
		return;
	}
	
	if (!isValidContent(oUserName.value, oUserName, szAlphanumericPattern))
	{
		document.getElementById("errorMsg").style.display = "";
		document.getElementById("errorMsg").innerHTML = "Please enter valid name";
		oUserName.focus();
		return;
	}
	
	if (!isValidContent(oCompanyName.value, oCompanyName, szAlphanumericPattern))
	{
		document.getElementById("errorMsg").style.display = "";
		document.getElementById("errorMsg").innerHTML = "Please enter valid company name";
		oCompanyName.focus();
		return;
	}
	
	if (!isValidContent(oAddress.value, oAddress, szAddressPattern))
	{
		document.getElementById("errorMsg").style.display = "";
		document.getElementById("errorMsg").innerHTML = "Please enter valid address";
		oAddress.focus();
		return;
	}
	
	if (!isValidContent(oContactNo.value, oContactNo, szContactnoPattern))
	{
		document.getElementById("errorMsg").style.display = "";
		document.getElementById("errorMsg").innerHTML = "Please enter valid contact number";
		oContactNo.focus();
		return;
	}
	
	if (!isValidContent(oEmailId.value, oEmailId, szEmailPattern))
	{
		document.getElementById("errorMsg").style.display = "";
		document.getElementById("errorMsg").innerHTML = "Please enter valid email id";
		oEmailId.focus();
		return;
	}
	
	szParam = "userName="+oUserName.value;
	szParam += "&companyName="+oCompanyName.value;
	szParam += "&address="+oAddress.value;
	szParam += "&contactNo="+oContactNo.value;
	szParam += "&emailId="+oEmailId.value;
	szParam += "&comments="+oComments.value;
	szParam += "&testDriveCode="+szTestDriveCode;
	szParam += "&testDriveName="+szTestDriveName;
	document.getElementById("registerFormDiv").style.display = "none";
	document.getElementById("errorMsg").innerHTML = "";
	document.getElementById("errorMsg").style.display = "none";
	document.getElementById("loadingDiv").style.display = "";
	var oAJAXRequest = new AjaxRequest("/afteklab/servlet/RegisterUserServlet", szParam, 'registerUserCallback', "middleRightDiv");
	if(szParam != null)
	{
		oAJAXRequest.setParams(szParam);
	}
	oAJAXRequest.call();
	
}

function checkEmpty()
{
	var oUserName = document.getElementById("userName");
	var oCompanyName = document.getElementById("companyName");
	var oAddress = document.getElementById("address");
	var oContactNo = document.getElementById("contactNo");
	var oEmailId = document.getElementById("emailId");
	if (oUserName.value == "")
	{
		document.getElementById("errorMsg").style.display = "";
		document.getElementById("errorMsg").innerHTML = "Please enter name";
		oUserName.focus();
		return true;
	}
	else if (oCompanyName.value == "")
	{
		document.getElementById("errorMsg").style.display = "";
		document.getElementById("errorMsg").innerHTML = "Please enter company name";
		oCompanyName.focus();
		return true;
	}
	else if (oAddress.value == "")
	{
		document.getElementById("errorMsg").style.display = "";
		document.getElementById("errorMsg").innerHTML = "Please enter address";
		oAddress.focus();
		return true;
	}
	else if (oContactNo.value == "")
	{
		document.getElementById("errorMsg").style.display = "";
		document.getElementById("errorMsg").innerHTML = "Please enter contact number";
		oContactNo.focus();
		return true;
	}
	else if (oEmailId.value == "")
	{
		document.getElementById("errorMsg").style.display = "";
		document.getElementById("errorMsg").innerHTML = "Please enter email id";
		oEmailId.focus();
		return true;
	}
	return false;
}

function loadRegisterPageCallback(xmlHttpRequest, szDivId)
{
	var szResponse=xmlHttpRequest.responseText;
	document.getElementById(szDivId).innerHTML = szResponse;
	var szTestDriveValue;
	var iTestDrive = 0;
	var iTestDriveCnt =  document.aftekLabForm.testDriveOption.length;
	for (iTestDrive = 0; iTestDrive < iTestDriveCnt; iTestDrive++)
	{
		if (document.aftekLabForm.testDriveOption[iTestDrive].checked == true)
		{
			szTestDriveValue = document.aftekLabForm.testDriveOption[iTestDrive].value;
			break;
		}
	}
	document.getElementById("testDriveName").innerHTML = szTestDriveValue;
	document.getElementById("testDriveCode").value = document.getElementById("testDriveOption_"+iTestDrive).value;
}

function registerUserCallback(xmlHttpRequest, szDivId)
{
	var oResponse=xmlHttpRequest.responseXML;
	var szCode = oResponse.childNodes[0].getAttribute("code");

	if (szCode == "success")
	{
		document.getElementById("registerFormDiv").style.display = "none";
		document.getElementById("loadingDiv").style.display = "none";
		document.getElementById("registerSuccessDiv").style.display = "";
		document.getElementById("registerSuccessDiv").innerHTML = "Thank you for registration. We will get back to you at the earliest with further details.";
	}
	else if (szCode == "duplicateUser")
	{
		document.getElementById("registerFormDiv").style.display = "none";
		document.getElementById("loadingDiv").style.display = "none";
		document.getElementById("registerSuccessDiv").style.display = "";
		document.getElementById("registerSuccessDiv").innerHTML = "You have already registered. We will get back to you at the earliest with further details."
	}
	else if (szCode == "error")
	{
		document.getElementById("registerFormDiv").style.display = "";
		document.getElementById("loadingDiv").style.display = "none";
		document.getElementById("errorMsg").style.display = "";
		document.getElementById("errorMsg").innerHTML = "Some internal error occured. Try after some time."
	}
}

function loadDownloadPage()
{
	var szTestDriveValue;
	var iTestDrive = 0;
	var iTestDriveCnt =  document.aftekLabForm.testDriveOption.length;
	for (iTestDrive = 0; iTestDrive < iTestDriveCnt; iTestDrive++)
	{
		if (document.aftekLabForm.testDriveOption[iTestDrive].checked == true)
		{
			szTestDriveValue = document.aftekLabForm.testDriveOption[iTestDrive].value;
			break;
		}
	}
	if (iTestDrive == iTestDriveCnt)
	{
		alert("Please select one test drive");
		return;
	}
	document.getElementById("middleRightDiv").innerHTML = szLoadingText;
	var oAJAXRequest = new AjaxRequest("downloadtestdrive.shtml", null, 'loadDownloadTestDriveCallback', "middleRightDiv");
	oAJAXRequest.call();
}

function loadDownloadTestDriveCallback(xmlHttpRequest, szDivId)
{
	var szResponse=xmlHttpRequest.responseText;
	document.getElementById(szDivId).innerHTML = szResponse;
	var szTestDriveValue;
	var iTestDrive = 0;
	var iTestDriveCnt =  document.aftekLabForm.testDriveOption.length;
	for (iTestDrive = 0; iTestDrive < iTestDriveCnt; iTestDrive++)
	{
		if (document.aftekLabForm.testDriveOption[iTestDrive].checked == true)
		{
			szTestDriveValue = document.aftekLabForm.testDriveOption[iTestDrive].value;
			break;
		}
	}
	document.getElementById("testDriveName").innerHTML = szTestDriveValue;
	document.getElementById("testDriveCode").value = document.getElementById("testDriveOption_"+iTestDrive).value;
}

function checkAlreadyRegister()
{
	var szTestDriveCode = document.getElementById("testDriveCode").value;
	var szTestDriveName = document.getElementById("testDriveName").innerHTML;
	var szParam = null;
	var oEmailId = document.getElementById("emailId");
	
	if (oEmailId.value == "")
	{
		document.getElementById("errorMsg").style.display = "";
		document.getElementById("errorMsg").innerHTML = "Please enter email id";
		oEmailId.focus();
		return true;
	}
	
	if (!isValidContent(oEmailId.value, oEmailId, szEmailPattern))
	{
		document.getElementById("errorMsg").style.display = "";
		document.getElementById("errorMsg").innerHTML = "Please enter valid email id";
		oEmailId.focus();
		return;
	}
	
	szParam = "emailId="+oEmailId.value;
	szParam += "&testDriveCode="+szTestDriveCode;
	szParam += "&testDriveName="+szTestDriveName;
	document.getElementById("downloadFormDiv").style.display = "none";
	document.getElementById("errorMsg").innerHTML = "";
	document.getElementById("errorMsg").style.display = "none";
	document.getElementById("loadingDiv").style.display = "";
	var oAJAXRequest = new AjaxRequest("/afteklab/servlet/RegisteredDownloadServlet", szParam, 'registeredDownloadCallback', "middleRightDiv");
	if(szParam != null)
	{
		oAJAXRequest.setParams(szParam);
	}
	oAJAXRequest.call();
}

function registeredDownloadCallback(xmlHttpRequest, szDivId)
{
	var oResponse=xmlHttpRequest.responseXML;
	var szCode = oResponse.childNodes[0].getAttribute("code");

	if (szCode == "success")
	{
		document.getElementById("downloadFormDiv").style.display = "none";
		document.getElementById("loadingDiv").style.display = "none";
		document.getElementById("downloadSuccessDiv").style.display = "";
		document.getElementById("downloadSuccessDiv").innerHTML = "Thank you for visiting again. We will get back to you at the earliest with further details."
	}
	else if (szCode == "userNotExists")
	{
		document.getElementById("downloadFormDiv").style.display = "";
		document.getElementById("loadingDiv").style.display = "none";
		document.getElementById("errorMsg").style.display = "";
		document.getElementById("errorMsg").innerHTML = "You have not registered. Please click <a href='javascript:loadRegisterPage()'>here</a> for registration."
	}
	else if (szCode == "error")
	{
		document.getElementById("downloadFormDiv").style.display = "";
		document.getElementById("loadingDiv").style.display = "none";
		document.getElementById("errorMsg").style.display = "";
		document.getElementById("errorMsg").innerHTML = "Some internal error occured. Please try after some time."
	}
}

function loadFeedbackPage()
{
	document.getElementById("middleRightDiv").innerHTML = szLoadingText;
	var oAJAXRequest = new AjaxRequest("feedback.shtml", null, 'loadFeedbackPageCallback', "middleRightDiv");
	oAJAXRequest.call();
}

function loadFeedbackPageCallback(xmlHttpRequest, szDivId)
{
	var szResponse=xmlHttpRequest.responseText;
	//This is used to  evaluate the script tag.
	updateElement(document.getElementById(szDivId), szResponse);
	//document.getElementById(szDivId).innerHTML = szResponse;
}

function saveFeedback()
{
	var szParam = null;
	var oUserName = document.getElementById("userName");
	var oEmailId = document.getElementById("emailId");
	var oComments = document.getElementById("comments");
	
	if (oUserName.value == "")
	{
		document.getElementById("errorMsg").style.display = "";
		document.getElementById("errorMsg").innerHTML = "Please enter name";
		oUserName.focus();
		return;
	}
	else if (oEmailId.value == "")
	{
		document.getElementById("errorMsg").style.display = "";
		document.getElementById("errorMsg").innerHTML = "Please enter email id";
		oEmailId.focus();
		return;
	}
	else if (oComments.value == "")
	{
		document.getElementById("errorMsg").style.display = "";
		document.getElementById("errorMsg").innerHTML = "Please enter comments";
		oComments.focus();
		return;
	}
	
	if (!isValidContent(oUserName.value, oUserName, szAlphanumericPattern))
	{
		document.getElementById("errorMsg").style.display = "";
		document.getElementById("errorMsg").innerHTML = "Please enter valid name";
		oUserName.focus();
		return;
	}
	if (!isValidContent(oEmailId.value, oEmailId, szEmailPattern))
	{
		document.getElementById("errorMsg").style.display = "";
		document.getElementById("errorMsg").innerHTML = "Please enter valid email id";
		oEmailId.focus();
		return;
	}
	if (!isValidContent(oComments.value, oComments, szAddressPattern))
	{
		document.getElementById("errorMsg").style.display = "";
		document.getElementById("errorMsg").innerHTML = "Special characters except ' . - / ? , are not allowed";
		oComments.focus();
		return;
	}
	
	szParam = "userName="+oUserName.value;
	szParam += "&emailId="+oEmailId.value;
	szParam += "&feedbackCategory="+document.getElementById("feedbackCategory").value;
	szParam += "&comments="+oComments.value;
	document.getElementById("feedbackFormDiv").style.display = "none";
	document.getElementById("errorMsg").innerHTML = "";
	document.getElementById("errorMsg").style.display = "none";
	document.getElementById("loadingDiv").style.display = "";
	var oAJAXRequest = new AjaxRequest("/afteklab/servlet/SaveFeedbackServlet", szParam, 'saveFeedbackCallback', "middleRightDiv");
	if(szParam != null)
	{
		oAJAXRequest.setParams(szParam);
	}
	oAJAXRequest.call();
}

function saveFeedbackCallback(xmlHttpRequest, szDivId)
{
	var oResponse=xmlHttpRequest.responseXML;
	var szCode = oResponse.childNodes[0].getAttribute("code");

	if (szCode == "success")
	{
		document.getElementById("feedbackSuccessDiv").style.display = "";
		document.getElementById("feedbackSuccessDiv").innerHTML = "Thank you for your valuable feedback.";
		document.getElementById("feedbackFormDiv").style.display = "none";
		document.getElementById("loadingDiv").style.display = "none";
	}
	else if (szCode == "error")
	{
		document.getElementById("feedbackSuccessDiv").style.display = "none";
		document.getElementById("loadingDiv").style.display = "none";
		document.getElementById("errorMsg").style.display = "";
		document.getElementById("errorMsg").innerHTML = "Some internal error occured. Please try after some time."
	}
}

function displayRoadmap(szTestDriveOption)
{
	var iTestDriveCnt =  document.aftekLabForm.testDriveOption.length;
	for (var iTestDrive = 0; iTestDrive < iTestDriveCnt; iTestDrive++)
	{
		document.getElementById("rm_testDriveOption_"+iTestDrive).style.display = "none";
	}
	document.getElementById("rm_testDriveOption_"+szTestDriveOption).style.display = "";
	var iTestDriveCnt =  document.aftekLabForm.testDriveOption.length;
	var szTestDriveValue;
	for (iTestDrive = 0; iTestDrive < iTestDriveCnt; iTestDrive++)
	{
		if (document.aftekLabForm.testDriveOption[iTestDrive].checked == true)
		{
			szTestDriveValue = document.aftekLabForm.testDriveOption[iTestDrive].value;
			break;
		}
	}
	document.getElementById("testDriveRoadMap").innerHTML = szTestDriveValue;
}

function cancelFeedback()
{
	window.location = "/afteklab";
}

function loadFeedbackCategory()
{
	var oAJAXRequest = new AjaxRequest("/afteklab/servlet/GetFeedbackCategoryServlet", null, 'loadFeedbackCategoryCallback', null);
	oAJAXRequest.call();
}

function loadFeedbackCategoryCallback(xmlHttpRequest, szDivId)
{
	var oResponse=xmlHttpRequest.responseXML;
	var szCode = oResponse.childNodes[0].getAttribute("code");

	if (szCode == "success")
	{
		var szFeedbackCategories = oResponse.childNodes[0].getAttribute("message");
		var oCatArray = szFeedbackCategories.split(",");
		for (var iToken =0 ; iToken < oCatArray.length; iToken++)
		{
			var oOption = document.createElement("option");
			document.getElementById("feedbackCategory").options.add(oOption);
			oOption.innerHTML = oCatArray[iToken];
			oOption.value = oCatArray[iToken];
		}
	}
	else if (szCode == "error")
	{
		document.getElementById("feedbackSuccessDiv").style.display = "";
		document.getElementById("loadingDiv").style.display = "none";
		document.getElementById("errorMsg").style.display = "";
		document.getElementById("errorMsg").innerHTML = "Some internal error occured. Please try after some time."
	}
}
