//________________________________--
var cPGLA_ModNm = "Rako_PGL_Client_Ajax.js";
var cPGLA_cpyra = "©2011 Rako DP Enterprises";
//
/*jsl:ignoreall*/
//________________________________--

function fRPGLAp_PolyGlot_Get_Next_Texts () {
	if (vRPLGm_Request_Cnt == 0) {
		return; }
	var wParam_Array = vRPLGm_Wait_Stack_Params.shift();
	vRPLGm_LangSelect_Obj = wParam_Array[cRPGL_Param_LangSelect_Obj_Ix];
	var wParent_Lang =  wParam_Array[cRPGL_Param_Parent_Lang_Ix];
	var wCurr_Lang =  wParam_Array[cRPGL_Param_Curr_Lang_Ix];
	var wLanguagePriorityArray = new Array ("","",""); 
	if (typeof(vRPLGm_LangSelect_Obj) == "object") {
        vRPLGm_LangSelect_Obj_Exists = true; }
	var wCurr_Application_Code = wParam_Array[cRPGL_Param_Applic_Id_Ix];
	if ( (typeof(wParam_Array[cRPGL_Param_Applic_Name_Ix]) != "undefined") && (wParam_Array[cRPGL_Param_Applic_Name_Ix] != "") ) {wParam_Array[cRPGL_Param_Applic_Name_Ix]
        vRPLGm_Application_Name = wParam_Array[cRPGL_Param_Applic_Name_Ix]; }
	vRPLGm_Cookie_Name = cRPGL_Cookie_Name_Mask .replace("xx", wCurr_Application_Code);
	var wCookieStr = fRPRIp_REU_Get_Cookie_Info (vRPLGm_Cookie_Name);
	if (wCookieStr != "") {
		var wLanguagePriorityArray = wCookieStr.split("|");
		if (wParent_Lang != "") {
			wLanguagePriorityArray[cRPGL_ParentSelLanguage_Ix] = wParent_Lang;
			if (wLanguagePriorityArray[cRPGL_CurrSelectedUILanguage_Ix] == "") {
				wLanguagePriorityArray[cRPGL_CurrSelectedUILanguage_Ix] = wParent_Lang; }
			}
		}
	if (wCurr_Lang != "") {
		wLanguagePriorityArray[cRPGL_CurrSelectedUILanguage_Ix] = wCurr_Lang; }
	var wDomainName = window.location.hostname;
	vRPLGm_ServerProgToCall = cRPGL_ServerProgsPath .replace("xx", wDomainName);
	aRPGL_ReqParams_Array = new Array (cRPGL_Req_MAX_ReqArray_Size);
	var i;
	for ( i = 0; i < cRPGL_Req_MAX_ReqArray_Size; i++) {
		aRPGL_ReqParams_Array[i] = ""; }
	var wBrowserLang = fRPLGg_Get_Language_From_Browser();
	wLanguagePriorityArray[cRPGL_BrowserSelLanguage_Ix] = wBrowserLang;
	aRPGL_ReqParams_Array[cRPGL_CMN_ReqApplicCd_Ix] = wCurr_Application_Code;
	var wReqLanguage;
	for (i = 0; i < cRPGL_LanguagePrioritiesSize; i++) {
		wReqLanguage = wLanguagePriorityArray[i];
		if (wReqLanguage != "") {
			break; }
		}
	var wAreaLang;
	var wLangLng;
	var wCurrArea_Obj;
	aRPGL_ReqParams_Array[cRPGL_CMN_ReqLanguage_Id_Ix] = wReqLanguage;
	aRPGL_ReqParams_Array[cRPGL_CMN_DefaultLanguage_Id_Ix] = wBrowserLang;
	aRPGL_ReqParams_Array[cRPGL_CMN_ReqTextCntlURL_Ix] = wParam_Array[cRPGL_Param_Applic_TextCntl_Url_Ix];
	aRPGL_ReqParams_Array[cRPGL_CMN_Applic_Name_Ix] = wParam_Array[cRPGL_Param_Applic_Name_Ix];
	aRPGL_ReqParams_Array[cRPGL_CMN_IndexedArray_Size_Ix] = wParam_Array[cRPGL_Param_IndexedArray_Size_Ix];
	aRPGL_ReqParams_Array[cRPGL_CMN_UnusedSlot_Ix] = wParam_Array[cRPGL_Param_UnusedSlot_Ix];
	aRPGL_ReqParams_Array[cRPGL_CMN_ReqFuncCd_Ix] = cRPGL_ReqFuncCd_GetAvailLanguageList;
    vRPLGm_CurrUILanguage = wReqLanguage;
	fRPLGAm_SendThisRequestToHost();
    vRPGL_Initialised = true;

}  // ________________ end of function:  fRPGLp_PolyGlot_Get_Texts
/*
function fRPGLp_GetLanguageTexts (pLang_Id, pApplic_Id, pApplicTextCntlUrl) {
	if ( (typeof(pApplicTextCntlUrl) != "undefined") && (pApplicTextCntlUrl != "") ) {
		aRPGL_ReqParams_Array[cRPGL_CMN_ReqTextCntlURL_Ix] = pApplicTextCntlUrl; }
	if ( (typeof(pApplic_Id) != "undefined") && (pApplic_Id != "") ) {
		aRPGL_ReqParams_Array[cRPGL_CMN_ReqApplicCd_Ix] = pApplic_Id; }
	if (gRPGL_LanguagePriorityArray[cRPGL_CurrSelectedUILanguage_Ix] != pLang_Id) {
		gRPGL_LanguagePriorityArray[cRPGL_CurrSelectedUILanguage_Ix] = pLang_Id;
		aRPGL_ReqParams_Array[cRPGL_CMN_ReqApplicSubCd_Ix] = "";
		aRPGL_ReqParams_Array[cRPGL_CMN_ReqFuncCd_Ix] = cRPGL_ReqFuncCd_GetStdLanguageTexts;
		aRPGL_ReqParams_Array[cRPGL_CMN_ReqLanguage_Id_Ix] = pLang_Id;
        vRPLGm_CurrUILanguage = pLang_Id;
		fRPLGAm_SendThisRequestToHost(); 
		}
}  // ________________ end of function:  fRPLGp_GetLanguageTexts
*/


function fRPLGAm_SendThisRequestToHost() {
	vRPLGm_MsgNr = vRPLGm_MsgNr + 1;
	aRPGL_ReqParams_Array[cRPGL_CMN_ReqMsgNr_Ix] = "RPGL_" + vRPLGm_MsgNr;
	vRPLGm_RequestToPost = aRPGL_ReqParams_Array.join ("¤");
	vRPLGm_RequestToPost = "RPGLAjaxReq=" + vRPLGm_RequestToPost;
	vRPLGm_TimeOutRepeat_Cnt = 0;
	fRPLGAm_SendCurrRequestToHost() ;
}  // ________________ end of function:  fRPLGAm_SendThisRequestToHost

function fRPLGAm_SendCurrRequestToHost() {
//	if (typeof(vRPLGm_XMLHTTpObject) != "object") {
		if (window.XMLHttpRequest) {	//  branch for native XMLHttpRequest object
			vRPLGm_XMLHTTpObject = new XMLHttpRequest(); 	}
		else		{//  branch for IE/Windows ActiveX version
			if (window.ActiveX_Object) {
				vRPLGm_XMLHTTpObject = new ActiveX_Object ('Microsoft.XMLHTTP')  ; 	}
			}
//		}

	if (vRPLGm_XMLHTTpObject) {
		vRPLGm_TimeOut_Obj = window.setTimeout("fRPLGAm_TimedOut()", 10000);
		vRPLGm_XMLHTTpObject.open ('POST', vRPLGm_ServerProgToCall, true); //   false
		vRPLGm_XMLHTTpObject.setRequestHeader ('content-type', 'application/x-www-form-urlencoded; charset=utf-8');
		vRPLGm_XMLHTTpObject.onreadystatechange = fRPLGAm_HostAjaxAnswer;
		vRPGLg_WaitingFor_Answer = true;
		vRPLGm_XMLHTTpObject.send (vRPLGm_RequestToPost);
		if ((vRPLGm_Answer_Cnt > 0) && (!vRPGLg_Processing_Answer)) {
			vRPGLg_Processing_Answer = true;
			var wAnswer_Array = vRPLGm_Answer_Stack.shift();
			vRPLGm_Answer_Cnt = vRPLGm_Answer_Stack.length;
			fRPLGg_ReturnDataFromServer(wAnswer_Array);
			vRPGLg_Processing_Answer = false;
			}
		}
	else {
		fRPRIp_GEM_ErrorMsgOut ("RPGL:  no XMLHTTP _Object","","",cRPLG_Own_Application_Name); }
}  // ________________ end of function:  fRPLGAm_SendCurrRequestToHost

function fRPLGAm_TimedOut() {
	if ( (typeof(vRPLGm_XMLHTTpObject) == "object")  && (vRPLGm_XMLHTTpObject != null) ) {
		vRPLGm_XMLHTTpObject.abort();
		if (vRPLGm_XMLHTTpObject) {
			vRPLGm_XMLHTTpObject = null; }
		vRPLGm_TimeOutRepeat_Cnt = vRPLGm_TimeOutRepeat_Cnt + 1;
		if (vRPLGm_TimeOutRepeat_Cnt > 2 ) {
			vRPLGm_Request_Cnt = vRPLGm_Wait_Stack_Params.length;
			fRPRIp_GEM_ErrorMsgOut ("RPGL:  Server-request timed out‰ ","","",cRPLG_Own_Application_Name); }
			vRPGLg_WaitingFor_Answer = false;
			if (vRPLGm_Request_Cnt > 0) {
				fRPGLAp_PolyGlot_Get_Next_Texts();
				}
		else {
			fRPLGAm_SendCurrRequestToHost(); }
		}
}  // ________________ end of function:  fRPLGAm_TimedOut

//+++++++++++++++++++++++++++++++++++++++

function fRPLGAm_HostAjaxAnswer() {
	if (vRPLGm_XMLHTTpObject) {
		if (vRPLGm_XMLHTTpObject.readyState == 4) {		//  only if vRPLGm_XMLHTTpObject shows 'loaded'
			vRPGLg_WaitingFor_Answer = false;
			vRPLGm_Request_Cnt = vRPLGm_Wait_Stack_Params.length;
			window.clearTimeout(vRPLGm_TimeOut_Obj);
			var wServerResponseText = "";
			switch (vRPLGm_XMLHTTpObject.status) {
				case 0:
					vRPLGm_XMLHTTpObject.abort();
					break;
				case 200:	//  only if 'OK'
					wServerResponseText = vRPLGm_XMLHTTpObject.responseText;
					break;
				default:
					fRPRIp_GEM_ErrorMsgOut ('RPGL: There was a problem retrieving the data: ‰ Status:' + vRPLGm_XMLHTTpObject.status  + "=" + vRPLGm_XMLHTTpObject.statusText + " ‰  data=" + vRPLGm_XMLHTTpObject.responseText, "","Ajax: Technical problem!");
					break;
				}
			if (vRPLGm_XMLHTTpObject) {
				vRPLGm_XMLHTTpObject = null; }
			var wAbendError = false;
			if (wServerResponseText != "") {
				var wFirstChar = wServerResponseText.charAt(0);
				if ( (wFirstChar == "<") || (wFirstChar == "!") ){
					wAbendError = true;
					fRPRIp_GEM_ErrorMsgOut (wServerResponseText, "","RPGL: Unidentifiable return from server",cRPLG_Own_Application_Name);
					}
				else {
					var wAnswerFromHost = wServerResponseText.split("¤");
					var wRetCode = wAnswerFromHost[cRPGL_CMN_RetCd_Ix];
					var wRetOK = ((wRetCode == "") || (wRetCode == " ") || (wRetCode == "OK") )
					if (!wRetOK) {
						wAbendError = (wRetCode.charAt(0) == "!");
						fRPRIp_GEM_ErrorMsgOut ("RPGL Error-Cd: " + wRetCode + " ‰  Abend-Error:" + wAbendError, "","Ajax: Error return from server",vRPLGm_Application_Name);
						}
					}
				}
			else {
				wAbendError = true; }
			if (!wAbendError) {
				vRPLGm_Answer_Cnt = vRPLGm_Answer_Stack.push (wServerResponseText);
				if (vRPLGm_Request_Cnt > 0) {
					fRPGLAp_PolyGlot_Get_Next_Texts();
					}
				else {
					fRPLGAm_Process_Answer();
					}
				}
			}
		}
}  // ________________ end of function:  fRPLGAm_HostAjaxAnswer

function  fRPLGAm_Process_Answer() {
//console.time("timing fRPLGAm_Process_Answer");
	while (vRPLGm_Answer_Cnt > 0) {
		if (vRPGLg_Processing_Answer) {
			vRPGLg_WaitForCurr_Timer = window.setTimeout("fRPLGAm_Process_Answer()",100);
			break;
			}
		vRPGLg_Processing_Answer = true;
		var wAnswer_Array = vRPLGm_Answer_Stack.shift();
		vRPLGm_Answer_Cnt = vRPLGm_Answer_Stack.length;
		fRPLGg_ReturnDataFromServer(wAnswer_Array);
		vRPGLg_Processing_Answer = false;
		}
//console.timeEnd("timing fRPLGAm_Process_Answer");
}  // ________________ end of function:  fRPLGAm_Process_Answer

//+++++++++++++++++++++++++++++++++++++++


