
/**
 *
 */
function createAccount(anAccountType, anAccountID, aPassword, aFirstName, aLastName, 
					   anEmail, aGender, anAge, aCountry, aRegion, aMobileNumber) {
	//
	//
	var cmdXML = "<COMMANDS>";
		cmdXML += "<COMMAND CLASS_NAME=\"com.tenduke.usermanagement.CreateAccount\">";
		cmdXML += "<![CDATA[<ACCOUNT_CREATE_DATA><ACCOUNT_PARAMETERS>";
		cmdXML += "<ACCOUNT_PARAMETER NAME=\"ACCOUNT_TYPE\" VALUE=\"" + anAccountType + "\"/>";
		cmdXML += "<ACCOUNT_PARAMETER NAME=\"ACCOUNT_ID\" VALUE=\"" + anAccountID + "\"/>";
		cmdXML += "<ACCOUNT_PARAMETER NAME=\"PASSWORD\" VALUE=\"" + aPassword + "\"/>";
		cmdXML += "<ACCOUNT_PARAMETER NAME=\"PASSWORD_CONFIRMED\" VALUE=\"" + aPassword + "\"/>";
		cmdXML += "<ACCOUNT_PARAMETER NAME=\"FIRST_NAME\" VALUE=\"" + aFirstName + "\"/>";
		cmdXML += "<ACCOUNT_PARAMETER NAME=\"LAST_NAME\" VALUE=\"" + aLastName + "\"/>";
		cmdXML += "<ACCOUNT_PARAMETER NAME=\"EMAIL\" VALUE=\"" + anEmail + "\"/>";
		cmdXML += "<ACCOUNT_PARAMETER NAME=\"GENDER\" VALUE=\"" + aGender + "\"/>";
		cmdXML += "<ACCOUNT_PARAMETER NAME=\"AGE\" VALUE=\"" + anAge + "\"/>";
		cmdXML += "<ACCOUNT_PARAMETER NAME=\"COUNTRY\" VALUE=\"" + aCountry + "\"/>";
		cmdXML += "<ACCOUNT_PARAMETER NAME=\"REGION\" VALUE=\"" + aRegion + "\"/>";
		cmdXML += "<ACCOUNT_PARAMETER NAME=\"MOBILE_NUMBER\" VALUE=\"" + aMobileNumber + "\"/>";
		cmdXML += "</ACCOUNT_PARAMETERS></ACCOUNT_CREATE_DATA>]]></COMMAND>";
		cmdXML += "</COMMANDS>";
	//
	//
	//
	//
	var req = initRequest("/servlets/XMLCommandServlet", "POST");
    req.setRequestHeader("Content-Type", "text/xml; charset=\"UTF-8\"");
    //
    //
    try {
		req.send(cmdXML);
	}
	catch(cmdSendE) {
		req = null;
		cmdXML = null;
		return false;
	}
	//
	//
	if (req!=null && req!=undefined && req.readyState == 4) {
        if (req.status == 200 && req.responseXML!=null) {
			//
			//
			response  = req.responseXML.documentElement;
			var cmdElement = ((response!=null && response!=undefined) ? response.getElementsByTagName('COMMAND')[0]:null);
			var cmdMessageElement = ((response!=null && response!=undefined) ? response.getElementsByTagName('MESSAGE')[0]:null);
			var result = ((cmdElement!=null && cmdElement!=undefined) ? cmdElement.getAttribute('RESULT').toString():"FAILED");
			if(result=="OK") {
				alert("Sign up OK");
			}
			else if(cmdMessageElement!=null && cmdMessageElement!=undefined && cmdMessageElement.firstChild!=null) {
				alert("Sign up failed:" + cmdMessageElement.firstChild.data);
			}
        } 
        else {
			alert ( "Sorry, " + SERVICE_BRAND + " could not process your sign up request at this time. Please try later again!");
        }
    }
    //
    //
    cmdXML = null;
}

/**
 *
 */
function changeAccountPassword(password, passwordConfirmed) {

	var cmdXML = "<COMMANDS>";
		cmdXML += "<COMMAND CLASS_NAME=\"com.tenduke.usermanagement.UpdateAccount\">";
		cmdXML += "<![CDATA[<ACCOUNT_CREATE_DATA><ACCOUNT_PARAMETERS>";
		cmdXML += "<ACCOUNT_PARAMETER NAME=\"PASSWORD\" VALUE=\"" + password + "\"/>";
		cmdXML += "<ACCOUNT_PARAMETER NAME=\"PASSWORD_CONFIRMED\" VALUE=\"" + passwordConfirmed + "\"/>";
		cmdXML += "</ACCOUNT_PARAMETERS></ACCOUNT_CREATE_DATA>]]></COMMAND>";
		cmdXML += "</COMMANDS>";
	commandRequest(cmdXML, changeAccountParamsResult);
}

/**
 *
 */
function changeAccountParamsResult(req) {
	//
	//
	if (req!=null && req.readyState == 4) {
        if (req.status == 200 && req.responseXML!=null) {
			response  = req.responseXML.documentElement;
			var cmdElement = response.getElementsByTagName('COMMAND')[0];
			var cmdMessageElement = response.getElementsByTagName('MESSAGE')[0];
			var result = null;
			if(cmdElement!=null)
				result = cmdElement.getAttribute('RESULT').toString();
			if(result!=null && result=="OK") {
				alert("Account updated successfully!");
			}
			else {
				alert("Sorry, updating new settings for your account failed!");
				if(cmdMessageElement!=null && cmdMessageElement.firstChild!=null)
					alert(cmdMessageElement.firstChild.data);
			}
        } 
        else {
			alert("Sorry, updating new settings for your account failed!");
        }
    }
}

/**
 *
 */
function initAccountParamsInPage(dependecyListProcessor) {
	//
	//
	var xmlDoc = null;
	//
	// do the command XML
	var cmdXML = "<COMMANDS><COMMAND CLASS_NAME=\"com.tenduke.usermanagement.GetAccountParameters\">";
		cmdXML += "<![CDATA[<ACCOUNT_PARAMETERS>";
		cmdXML += "<ACCOUNT_PARAMETER NAME=\"FIRST_NAME\" />";
		cmdXML += "<ACCOUNT_PARAMETER NAME=\"LAST_NAME\" />";
		cmdXML += "<ACCOUNT_PARAMETER NAME=\"EMAIL\" />";
		cmdXML += "<ACCOUNT_PARAMETER NAME=\"REGION\" />";
		cmdXML += "<ACCOUNT_PARAMETER NAME=\"GENDER\" />";
		cmdXML += "<ACCOUNT_PARAMETER NAME=\"AGE\" />";
		cmdXML += "<ACCOUNT_PARAMETER NAME=\"MOBILE_NUMBER\" />";
		cmdXML += "</ACCOUNT_PARAMETERS>]]></COMMAND></COMMANDS>";
	//
	// send request
	var req = initRequest("/servlets/XMLCommandServlet", "POST");
    req.setRequestHeader("Content-Type", "text/xml; charset=\"UTF-8\"");
    try {
		req.send(cmdXML);
	}
	catch(connectionException) {
		req = null;
	}
	//
	//
	if (req!=null && req.readyState == 4) {
        if (req.status == 200 && req.responseXML!=null) {
			response  = req.responseXML;
			var cmdElement = response.getElementsByTagName('COMMAND')[0];
			if(cmdElement!=null && cmdElement!=undefined) {
				var result = cmdElement.getAttribute( 'RESULT' ).toString();
				if(result!=null && result!=undefined && result=="OK") {
					//
					//
					var dataElement = response.getElementsByTagName('ACCOUNT_PARAMETERS')[0];
					if(dataElement!=null && dataElement!=undefined) {
						//
						//
						var aParamList = dataElement.getElementsByTagName('ACCOUNT_PARAMETER');
						if(aParamList!=null && aParamList!=undefined) {
							//
							//
							for(var i=0; i<aParamList.length; i++) {
								var aParam = aParamList[i];
								if(aParam!=null) {
									//
									//
									var aName = aParam.getAttribute( 'NAME' ).toString();
									var aValue = aParam.getAttribute( 'VALUE' ).toString();
									var namedElement = document.getElementById(aName);
									if(namedElement!=null && namedElement!=undefined) {
										namedElement.value = aValue;
									}
									else if(aName!=null && aName!=undefined)
										alert("Sorry, could not get the value for: " + aName);
								}
							}
						}
						else
							alert("Sorry, could not get the account parameters from the server!");
					}
					else
						alert("Sorry, could not get the account parameters from the server!");
				}
				else {
					//
					//
					var cmdMessageElement = response.getElementsByTagName('MESSAGE')[0];
					if(cmdMessageElement!=null && cmdMessageElement!=undefined && cmdMessageElement.firstChild!=null) {
						//alert("Service error:" + cmdMessageElement.firstChild.data);
						alert("Service did not respond to request, your session has probably expired, please log in again!");
					}
					else {
						alert("Service did not respond to request, your session has probably expired, please log in again!");
					}
				}
			}
			else {
				alert("Service did not respond to request, your session has probably expired, please log in again!");
			}
        } 
        else {
			alert ( "Service did not respond to request, your session has probably expired, please log in again!" );
        }
    }
    //
    //
    if(dependecyListProcessor)
		dependecyListProcessor();
}

/**
 *
 */
function validateEmail(anEmail) {
    //
    //
    var retValue = true;
    //
    // index resolving for required chars
    var emailLastDotIndex = -2;
    var emailAtIndex = -1;
    var emailLen = -1;
    if(anEmail) { 
        emailAtIndex = anEmail.lastIndexOf('@');
        emailLastDotIndex = anEmail.lastIndexOf('.');
        emailLen = anEmail.length;
    }
    //
    // do validation
    if(emailAtIndex<=0 || emailLastDotIndex<=0 || emailAtIndex>emailLastDotIndex-2 || emailLastDotIndex>=emailLen-1 || emailLen<6) {
        retValue = false;
    }
    //
    //
    return retValue;
}