AIM = {

    frame: function(c,src)
    {

        var n = 'f' + Math.floor(Math.random() * 99999);
        var d = document.createElement('DIV');
        d.innerHTML = '<iframe style="display:none" src="'+src+'" id="' + n + '" name="' + n + '" onload="AIM.loaded(\'' + n + '\')"></iframe>';
        document.body.appendChild(d);

        var i = document.getElementById(n);
        if (c && typeof (c.onComplete) == 'function')
        {
            i.onComplete = c.onComplete;
        }

        return n;
    },

    loaded: function(id)
    {
        var i = document.getElementById(id);
        if (i.contentDocument)
        {
            var d = i.contentDocument;
        } else if (i.contentWindow)
        {
            var d = i.contentWindow.document;
        } else
        {
            var d = window.frames[id].document;
        }
        if (d.location.href == "about:blank")
        {
            return;
        }

        if (typeof (i.onComplete) == 'function')
        {
            i.onComplete(d);
        }
    }

}

//-----------------------------------------------------------------
function ProcessRequest(urlAction, Params, Action, TargetObject)
{
    try
    {
         AjaxRequest.post(
         {
             'url':urlAction
             , 'async': true
             , 'queryString' : Params
             , 'onSuccess':function(req)
             { 
             
                var oXMLHttpCommonRequest = req;
                var oTargetObject = TargetObject;

                switch (Action)
                {
                    case "ADD_EDIT_STORE":
                    case "ADD_EDIT_RECIPE":
                    case "RENAME_CURRENT_LIST":
                    case "SHOW_ORIGINAL_IMAGE":
                    case "GET_ADDEDIT_FORM":
                    case "SHOW_MEMO":
                    case "SHOW_MESSAGE":
                    case "CLONE_LIST_DIALOG":
                    case "RENAME_CATEGORY_DIALOG":
                    case "RESET_LIST_DIALOG":
                    case "CONFIRM_DELETE_DIALOG":
                    case "SHOW_IDLE":
                    case "IMPORT_LIST_DIALOG":
                        {
                            if (oXMLHttpCommonRequest.responseText.indexOf("__expired__") != -1)
                            {
                                TryToLogin();
                                break;
                            }

                            ShowModalPopUp(oXMLHttpCommonRequest.responseText, false);
                        }
                        break;

                    case "ENTER_CURRENT_LIST_EDIT_MODE":
                    case "ENTER_MASTER_LIST_EDIT_MODE":
                    case "ADD_EDIT_RECIPE_ITEM":
                        {
                            if (oXMLHttpCommonRequest.responseText.indexOf("__expired__") != -1)
                            {
                                TryToLogin();
                                break;
                            }

                            ShowModalPopUp(oXMLHttpCommonRequest.responseText, false);
                            RotateCoupons();
                        }
                        break;

                    case "MOVE_RECORD_UP":
                    case "MOVE_RECORD_DOWN":
                        {
                            if (oXMLHttpCommonRequest.responseText.indexOf("__expired__") != -1)
                            {
                                TryToLogin();
                                break;
                            }

                            var arRet = oXMLHttpCommonRequest.responseText.split("|");

                            var strForm = arRet[0];

                            var strListID = arRet[1];

                            var strRecID = arRet[2];

                            var oTargetTD = GEBI("idMainBlockSource");

                            var strParamsString = "";

                            switch (strForm)
                            {
                                case "fCurrentList":
                                    {
                                        strParamsString = "PostAction=paGetCurrentList&ListID=" + strListID;
                                    }
                                    break;

                                case "fCurrentLists":
                                    {
                                        strParamsString = "PostAction=paGetCurrentLists";
                                    }
                                    break;
                            }

                            ProcessRequest("default.aspx", "action=DirectPOST&" + strParamsString, "REFRESH_MAIN_BLOCK", oTargetTD);
                        }
                        break;


                    case "REFRESH_MAIN_BLOCK":
                        {
                            if (oXMLHttpCommonRequest.responseText.indexOf("__expired__") != -1)
                            {
                                TryToLogin();
                                break;
                            }

                            oTargetObject.innerHTML = oXMLHttpCommonRequest.responseText;

                            if (PrevSelectedRowID)
                            {
                                var arrSplittedID = PrevSelectedRowID.split("_");

                                var strForm = "";

                                if (arrSplittedID[2] == "undefined" || arrSplittedID[2] == null)
                                {
                                    strForm = "fCurrentLists";
                                }
                                else if (arrSplittedID[2] == "ML")
                                {
                                    strForm = "fMasterList";
                                }
                                else
                                {
                                    strForm = "fCurrentList";
                                }

                                var event;

                                if (!event) event = window.event;

                                SelectRow(PrevSelectedRowID, strForm, true, event, "");
                            }

                        }
                        break;

                    case "REFRESH_PARAMS":
                        {
                            if (oXMLHttpCommonRequest.responseText.indexOf("__expired__") != -1)
                            {
                                TryToLogin();
                                break;
                            }

                            oTargetObject.innerHTML = oXMLHttpCommonRequest.responseText;

                            if (oTargetObject.innerHTML.length > 0)
                            {
                                oTargetObject.style.display = "block";
                            }
                            else
                            {
                                oTargetObject.style.display = "none";
                            }
                        }
                        break;

                    case "CHANGE_PASSWORD":
                        {
                            if (oXMLHttpCommonRequest.responseText.indexOf("__expired__") != -1)
                            {
                                TryToLogin();
                                break;
                            }

                            var oForm = GEBI("fChangePasscode");

                            var oInputsCol = oForm.getElementsByTagName("INPUT");

                            var oTargetElm = GEBI("tdPassSettingsMessage");

                            if (oTargetElm)
                            {
                                oTargetElm.innerHTML = "";
                            }

                            for (i = 0; i < oInputsCol.length; i++)
                            {
                                var oInput = oInputsCol[i];

                                oInput.style.borderColor = "";
                                oInput.style.borderWidth = "";
                                oInput.style.borderStyle = "";

                                // getting suffix
                                var strID = (oInput.name.length == 0) ? oInput.id : oInput.name;

                                var oSpan = GEBI("ErrorSpan_" + strID);

                                if (oSpan)
                                {
                                    try
                                    {
                                        oInput.parentNode.removeChild(oSpan);
                                    }
                                    catch (e)
                                    { }
                                }
                            }

                            var oRetMessage = oXMLHttpCommonRequest.responseText.split("_");

                            if (oRetMessage[0].length == 0)
                            {
                                var oTargetElm = GEBI("tdPassSettingsMessage");
                                if (oTargetElm)
                                {
                                    oTargetElm.innerHTML = "<b style=\"color:green;\">" + oRetMessage[1] + "</b>";

                                    for (i = 0; i < oInputsCol.length; i++)
                                    {
                                        var oInput = oInputsCol[i];

                                        if (oInput)
                                        {
                                            if (oInput.type == "text" || oInput.type == "edit" || oInput.type == "password")
                                            {
                                                oInput.value = "";
                                            }
                                        }
                                    }
                                }
                            }
                            else
                            {

                                // target input
                                var oErrorInput = GEBI(oRetMessage[0]);

                                oErrorInput.style.borderColor = "red";
                                oErrorInput.style.borderWidth = "1px";
                                oErrorInput.style.borderStyle = "solid";
                                oErrorInput.select();

                                var oNewSpan = document.createElement('Span');
                                oNewSpan.id = "ErrorSpan_" + oRetMessage[0];
                                oNewSpan.style.color = "red";
                                oErrorInput.parentNode.appendChild(oNewSpan);

                                // error message
                                oNewSpan.innerHTML = "<BR>" + oRetMessage[1];
                            }
                        }
                        break;

                    case "REG_USER":
                        {
                            var oForm = GEBI("fRegForm");

                            var oInputsCol = oForm.getElementsByTagName("INPUT");

                            for (i = 0; i < oInputsCol.length; i++)
                            {
                                var oInput = oInputsCol[i];

                                oInput.style.borderColor = "";
                                oInput.style.borderWidth = "";
                                oInput.style.borderStyle = "";

                                // getting suffix
                                var strID = (oInput.name.length == 0) ? oInput.id : oInput.name;

                                var oSpan = GEBI("ErrorSpan_" + strID);

                                if (oSpan)
                                {
                                    try
                                    {
                                        oInput.parentNode.removeChild(oSpan);
                                    }
                                    catch (e)
                            { }
                                }

                            }

                            var oRetMessage = oXMLHttpCommonRequest.responseText.split("_");

                            if (oRetMessage[0].length == 0)
                            {
                                strMenuElement = "aManageCurrentLists";
                                SwitchMenu(strMenuElement);
                            }
                            else
                            {
                                // target input
                                var oErrorInput = GEBI(oRetMessage[0]);

                                oErrorInput.style.borderColor = "red";
                                oErrorInput.style.borderWidth = "1px";
                                oErrorInput.style.borderStyle = "solid";
                                oErrorInput.select();

                                var oNewSpan = document.createElement('Span');
                                oNewSpan.id = "ErrorSpan_" + oRetMessage[0];
                                oNewSpan.style.color = "red";
                                oErrorInput.parentNode.appendChild(oNewSpan);

                                // error message
                                oNewSpan.innerHTML = "<BR>" + oRetMessage[1];
                            }
                        }
                        break;

                    case "LOGIN":
                        {
                            var oForm = GEBI("fLogin");

                            var oInputsCol = oForm.getElementsByTagName("INPUT");

                            for (i = 0; i < oInputsCol.length; i++)
                            {
                                var oInput = oInputsCol[i];

                                oInput.style.borderColor = "";
                                oInput.style.borderWidth = "";
                                oInput.style.borderStyle = "";

                                // getting suffix
                                var strID = (oInput.name.length == 0) ? oInput.id : oInput.name;

                                var oSpan = GEBI("ErrorSpan_" + strID);

                                if (oSpan)
                                {
                                    try
                                    {
                                        oInput.parentNode.removeChild(oSpan);
                                    }
                                    catch (e)
                            { }
                                }

                            }

                            var oRetMessage = oXMLHttpCommonRequest.responseText.split("_");

                            if (oRetMessage[0].length == 0)
                            {
                                strMenuElement = "aManageCurrentLists";
                                SwitchMenu (strMenuElement);
                            }
                            else
                            {
                                // target input
                                var oErrorInput = GEBI(oRetMessage[0]);

                                oErrorInput.style.borderColor = "red";
                                oErrorInput.style.borderWidth = "1px";
                                oErrorInput.style.borderStyle = "solid";
                                oErrorInput.select();

                                var oNewSpan = document.createElement('Span');
                                oNewSpan.id = "ErrorSpan_" + oRetMessage[0];
                                oNewSpan.style.color = "red";
                                oErrorInput.parentNode.appendChild(oNewSpan);

                                // error message
                                oNewSpan.innerHTML = "<BR>" + oRetMessage[1];
                            }
                        }
                        break;
                    case "SWITCH_PURCHASED_STATUS":
                        {
                            if (oXMLHttpCommonRequest.responseText.indexOf("__expired__") != -1)
                            {
                                TryToLogin();
                                break;
                            }

                            oTargetObject.innerHTML = oXMLHttpCommonRequest.responseText;

                            var oInput = oTargetObject.getElementsByTagName("INPUT")[0];
                            if (oInput)
                            {
                                if (oInput.type == "button")
                                {
                                    oInput.focus();
                                }
                            }

                        }
                        break;

                    case "ADD_STORE_AND_CLOSE":
                    case "ADD_RECIPE_AND_CLOSE":
                    case "ADD_RECIPE_ITEM_AND_CLOSE":
                    case "ADD_ITEM_AND_CLOSE":
                    case "RENAME_CATEGORY":
                    case "RESET_LIST":
                    case "DELETE_SEVERAL":
                    case "DELETE_RECIPE":
                    case "DELETE_STORE":
                        {
                            if (oXMLHttpCommonRequest.responseText.indexOf("__expired__") != -1)
                            {
                                TryToLogin();
                                break;
                            }
                            try
                            {
                                ClearVariables();
                                oTargetObject.innerHTML = oXMLHttpCommonRequest.responseText;
                                CloseModalPopUp();
                            }
                            catch (e)
                            {
                                CloseModalPopUp();
                            }
                        }
                        break;

                    case "UPDATE_ITEM":
                    case "RECIPE_EDIT":
                    case "RECIPE_ITEM_EDIT":
                    case "STORE_EDIT":
                        {
                            if (oXMLHttpCommonRequest.responseText.indexOf("__expired__") != -1)
                            {
                                TryToLogin();
                                break;
                            }
                            try
                            {
                                // update list
                                oTargetObject.innerHTML = oXMLHttpCommonRequest.responseText;
                                
                                // close idle
                                CloseModalPopUp();

                                var event;

                                if (!event) event = window.event;

                                SelectRow(PrevSelectedRowID, strEditingForm, bListInPrepareMode, event);
                            }
                            catch (e)
                            {
                                CloseModalPopUp();
                            }
                        }
                        break;
                        
                    case "ADD_ITEM":
                        {
                            if (oXMLHttpCommonRequest.responseText.indexOf("__expired__") != -1)
                            {
                                TryToLogin();
                                break;
                            }
                            try
                            {
                                oTargetObject.innerHTML = oXMLHttpCommonRequest.responseText;

                                var strActualForm = "";

                                InEditMode = false;

                                SubmitForm(strEditingForm, "bnAdd");
                            }
                            catch (e)
                            {
                                CloseModalPopUp();
                            }
                        }
                        break;
                    
                    // manage shopping lists action
                    case "CLONE_LIST":
                    case "MERGE_LIST":
                    case "LIST_ADD":
                    case "IMPORT_LIST":
                        {
                            if (oXMLHttpCommonRequest.responseText.indexOf("__expired__") != -1)
                            {
                                TryToLogin();
                                break;
                            }

                            CloseModalPopUp();
                            ShowPopupMessage(oXMLHttpCommonRequest.responseText, false);
                        }
                        break;

                    case "LIST_ADD_AND_CLOSE":
                        {
                            if (oXMLHttpCommonRequest.responseText.indexOf("__expired__") != -1)
                            {
                                TryToLogin();
                                break;
                            }

                            if (oXMLHttpCommonRequest.responseText.indexOf("Unable") == -1 && oXMLHttpCommonRequest.responseText.indexOf("already exists") == -1)
                            {
                                SwitchTab(strCurrentTab);

                                setTimeout("ShowPopupMessage(\"" + oXMLHttpCommonRequest.responseText + "\", false);", 2000);
                            }
                            else
                            {
                                ShowPopupMessage(oXMLHttpCommonRequest.responseText, false);
                            }
                            
                        }
                        break;
                        

                    case "DELETE_LIST":
                    case "LIST_EDIT":
                        {
                            if (oXMLHttpCommonRequest.responseText.indexOf("__expired__") != -1)
                            {
                                TryToLogin();
                                break;
                            }
                            
                            SwitchTab(strCurrentTab);

                            setTimeout("ShowPopupMessage(\"" + oXMLHttpCommonRequest.responseText + "\", false);", 2000);
                        }
                        break;

                    case "STORE_ADD":
                        {
                            if (oXMLHttpCommonRequest.responseText.indexOf("__expired__") != -1)
                            {
                                TryToLogin();
                                break;
                            }
                            try
                            {
                                oTargetObject.innerHTML = oXMLHttpCommonRequest.responseText;

                                var strActualForm = "";

                                InEditMode = false;

                                SubmitForm(strEditingForm, "bnAddStore");
                            }
                            catch (e)
                            {
                                CloseModalPopUp();
                            }
                        }
                        break;

                    case "RECIPE_ADD":
                        {
                            if (oXMLHttpCommonRequest.responseText.indexOf("__expired__") != -1)
                            {
                                TryToLogin();
                                break;
                            }
                            try
                            {
                                oTargetObject.innerHTML = oXMLHttpCommonRequest.responseText;

                                var strActualForm = "";

                                InEditMode = false;

                                SubmitForm(strEditingForm, "bnAddRecipe");
                            }
                            catch (e)
                            {
                                CloseModalPopUp();
                            }
                        }
                        break;

                    case "RECIPE_ITEM_ADD":
                        {
                            if (oXMLHttpCommonRequest.responseText.indexOf("__expired__") != -1)
                            {
                                TryToLogin();
                                break;
                            }
                            try
                            {
                                oTargetObject.innerHTML = oXMLHttpCommonRequest.responseText;

                                var strActualForm = "";

                                InEditMode = false;

                                SubmitForm(strEditingForm, "bnAddRecipeItem");
                            }
                            catch (e)
                            {
                                CloseModalPopUp();
                            }
                        }
                        break;

                    case "RELOAD_MASTERLIST_POPUP":
                        {
                            if (oXMLHttpCommonRequest.responseText.indexOf("__expired__") != -1)
                            {
                                TryToLogin();
                                break;
                            }

                            ShowModalPopUp(oXMLHttpCommonRequest.responseText, true);
                        }
                        break;


                    case "SEND_FEEDBACK":
                        {
                            if (oXMLHttpCommonRequest.responseText.indexOf("__expired__") != -1)
                            {
                                TryToLogin();
                                break;
                            }

                            var strOutMessage = oXMLHttpCommonRequest.responseText;

                            var oForm = GEBI("fFeedback");

                            var oInputsCol = oForm.getElementsByTagName("INPUT");

                            for (i = 0; i < oInputsCol.length; i++)
                            {
                                var oInput = oInputsCol[i];

                                oInput.style.borderColor = "";
                                oInput.style.borderWidth = "";
                                oInput.style.borderStyle = "";

                                // getting suffix
                                var strID = (oInput.name.length == 0) ? oInput.id : oInput.name;

                                var oSpan = GEBI("ErrorSpan_" + strID);

                                if (oSpan)
                                {
                                    try
                                    {
                                        oInput.parentNode.removeChild(oSpan);
                                    }
                                    catch (e)
                            { }
                                }

                            }

                            var oElm = GEBI("spFeedbackUserMessage");

                            if (strOutMessage.length == 0)
                            {
                                var oCompany = GEBI("faCompany");
                                if (oCompany)
                                {
                                    oCompany.value = "";
                                }
                                var oName = GEBI("faName");
                                if (oName)
                                {
                                    oName.value = "";
                                }
                                var oPhone = GEBI("faPhone");
                                if (oPhone)
                                {
                                    oPhone.value = "";
                                }
                                var oMail = GEBI("faMail");
                                if (oMail)
                                {
                                    oMail.value = "";
                                }
                                var oOrder = GEBI("faOrder");
                                if (oOrder)
                                {
                                    oOrder.value = "";
                                }

                                strOutMessage = "<b style=\"font-size:18px;\" class=\"bNoErrors\">Thanks for your feedback, we will get back to you shortly.</b>";
                                oElm.innerHTML = strOutMessage;
                            }
                            else
                            {
                                var arrSplittedElm = strOutMessage.split("_");

                                if (arrSplittedElm[0] == "Error")
                                {
                                    var oElm = GEBI("spFeedbackUserMessage");
                                    var oCompany = GEBI("faCompany");
                                    if (oCompany)
                                    {
                                        oCompany.value = "";
                                    }
                                    var oName = GEBI("faName");
                                    if (oName)
                                    {
                                        oName.value = "";
                                    }
                                    var oPhone = GEBI("faPhone");
                                    if (oPhone)
                                    {
                                        oPhone.value = "";
                                    }
                                    var oMail = GEBI("faMail");
                                    if (oMail)
                                    {
                                        oMail.value = "";
                                    }
                                    var oOrder = GEBI("faOrder");
                                    if (oOrder)
                                    {
                                        oOrder.value = "";
                                    }

                                    strOutMessage = "<b style=\"font-size:18px;\" class=\"bError\">" + arrSplittedElm[1] + "</b>";
                                    oElm.innerHTML = strOutMessage;
                                }
                                else
                                {
                                    if (arrSplittedElm[1].length > 0)
                                    {
                                        // target input
                                        var oErrorInput = GEBI(arrSplittedElm[0]);

                                        oErrorInput.style.borderColor = "red";
                                        oErrorInput.style.borderWidth = "1px";
                                        oErrorInput.style.borderStyle = "solid";
                                        oErrorInput.select();

                                        var oNewSpan = document.createElement('Span');
                                        oNewSpan.id = "ErrorSpan_" + arrSplittedElm[0];
                                        oNewSpan.style.color = "red";
                                        oErrorInput.parentNode.appendChild(oNewSpan);

                                        // error message
                                        oNewSpan.innerHTML = "<BR>" + arrSplittedElm[1];

                                    }
                                    else
                                    {
                                        oElm.innerHTML = strOutMessage;
                                    }
                                }
                            }
                        }
                        break;
                    case "COPY_TO":
                        {
                            if (oXMLHttpCommonRequest.responseText.indexOf("__expired__") != -1)
                            {
                                TryToLogin();
                                break;
                            }

                            oTargetObject.innerHTML = oXMLHttpCommonRequest.responseText;

                            ShowPopupMessage("Item(s) has been copied", false);
                        }
                        break;

                    case "ADD_SEVERAL":
                        {
                            if (oXMLHttpCommonRequest.responseText.indexOf("__expired__") != -1)
                            {
                                TryToLogin();
                                break;
                            }

                            oTargetObject.innerHTML = oXMLHttpCommonRequest.responseText;

                            ShowPopupMessage("Item(s) has been added", false);
                        }
                        break;

                    case "GEN_SHOPPING_LIST":
                        {
                            if (oXMLHttpCommonRequest.responseText.indexOf("__expired__") != -1)
                            {
                                TryToLogin();
                                break;
                            }

                            ShowPopupMessage(oXMLHttpCommonRequest.responseText, false);
                        }
                        break;

                    case "MOVE_TO":
                        {
                            if (oXMLHttpCommonRequest.responseText.indexOf("__expired__") != -1)
                            {
                                TryToLogin();
                                break;
                            }

                            oTargetObject.innerHTML = oXMLHttpCommonRequest.responseText;

                            ShowPopupMessage("Item(s) has been moved", false);
                        }
                        break;

                    case "RELOAD_MASTERLIST_PARAMS":
                        {
                            if (oXMLHttpCommonRequest.responseText.indexOf("__expired__") != -1)
                            {
                                TryToLogin();
                                break;
                            }

                            oTargetObject.innerHTML = oXMLHttpCommonRequest.responseText;

                            var oTax1Flag = GEBI("UseTax1");
                            var ocbTax1 = GEBI("cbTax1");
                            if (oTax1Flag && ocbTax1)
                            {
                                oTax1Flag.value = ocbTax1.checked;
                            }

                            var oTax2Flag = GEBI("UseTax2");
                            var ocbTax2 = GEBI("cbTax2");
                            if (oTax2Flag && ocbTax2)
                            {
                                oTax2Flag.value = ocbTax2.checked;
                            }

                            CreateUploadComponent();
                        }
                        break;

                    case "APPLY_ALTER_MASTER_LIST":
                    
                        {
                            if (oXMLHttpCommonRequest.responseText.indexOf("__expired__") != -1)
                            {
                                TryToLogin();
                                break;
                            }

                            CloseModalPopUp();

                            ShowPopupMessage(oXMLHttpCommonRequest.responseText, false);

                            setTimeout("SwitchTab('" + strCurrentTab + "');", 2000);
                        }
                        break;
                    case "REMIND_PASSWORD":
                        {
                            if (oXMLHttpCommonRequest.responseText.indexOf("__expired__") != -1)
                            {
                                TryToLogin();
                                break;
                            }
                            
                            var arrSplittedElm = oXMLHttpCommonRequest.responseText.split("_");


                            if (arrSplittedElm[0] == "error")
                            {
                                ShowPopupMessage(arrSplittedElm[1], false);
                            }
                            else
                            {
                                strMenuElement = "aLoginForm";
                                SwitchMenu(strMenuElement);

                                setTimeout("ShowPopupMessage(\"" + arrSplittedElm[1] + "\", false);", 2000); 
                            }
                            
                        }
                        break;

                    case "PRINT_VERSION_CL":
                    case "PRINT_VERSION_RC":
                        {
                            if (oXMLHttpCommonRequest.responseText.indexOf("__expired__") != -1)
                            {
                                TryToLogin();
                                break;
                            }

                            oPrintGlobalObject = oTargetObject;
                            strPrintPageOutput = oXMLHttpCommonRequest.responseText;

                            setTimeout("oPrintGlobalObject.document.body.innerHTML = strPrintPageOutput", 5000);
                        }
                        break;

                    case "APPLY_PRINT_OPTIONS":
                        {
                            if (oXMLHttpCommonRequest.responseText.indexOf("__expired__") != -1)
                            {
                                TryToLogin();
                                break;
                            }

                            oTargetObject.document.body.innerHTML = oXMLHttpCommonRequest.responseText;
                        }
                        break;

                    case "SWITCH_TABS":
                        {
                            oTargetObject.innerHTML = oXMLHttpCommonRequest.responseText;

                            var oTargetTD = GEBI("idMainBlockSource");

                            ProcessRequest("default.aspx", "action=DirectPOST&PostAction=paMainContent&PostParam=" + encodeURIComponent ( strCurrentTab ) + "&Option=href&Params=" + encodeURIComponent ( strQueryParams ), "LOAD_MAIN_CONTENT", oTargetTD);
                        }
                        break;

                    case "SWITCH_MENU":
                        {
                            oTargetObject.innerHTML = oXMLHttpCommonRequest.responseText;

                            SwitchTab(strCurrentTab);
                        }
                        break;

                    case "GET_POPUP_COUPON":
                        {
                            if (oXMLHttpCommonRequest.responseText.indexOf("__expired__") != -1)
                            {
                                TryToLogin();
                                break;
                            }

                            oTargetObject.innerHTML = oXMLHttpCommonRequest.responseText;
                        }
                        break;


                    case "LOAD_MAIN_CONTENT":
                        {
                            oTargetObject.innerHTML = oXMLHttpCommonRequest.responseText;

                            HideLoadingMessage();
                            
                            FocusInput (1, 0, false);
                            FocusInput (1, 0, false);
                        }
                        break;

                    case "LOGOUT":
                        {
                            if (oXMLHttpCommonRequest.responseText.length > 0)
                            {
                                ShowPopupMessage(oXMLHttpCommonRequest.responseText, false);
                            }
                            else
                            {
                                strCurrentTab = "";
                                strMenuElement = "";
                                SwitchMenu(strMenuElement);
                            }
                        }
                        break;

                    case "TRY_TO_LOGIN":
                        {

                            CloseModalPopUp();
                            strCurrentTab = "";
                            strMenuElement = "";
                            SwitchMenu(strMenuElement);
                        }
                        break;

                    case "SEND_PUSH":
                        {
                            if (oXMLHttpCommonRequest.responseText.indexOf("__expired__") != -1)
                            {
                                TryToLogin();
                                break;
                            }

                            ShowPopupMessage("Notification has been sent.", false);
                        }
                        break;

                    case "REC_PER_PAGE_SHOPPINGLIST":
                        {
                            if (oXMLHttpCommonRequest.responseText.indexOf("__expired__") != -1)
                            {
                                TryToLogin();
                                break;
                            }

                            ReloadCurrentList(oXMLHttpCommonRequest.responseText);
                        }
                        break;

                    case "FIND_ITEM_BY_BARCODE":
                        {
                            if (oXMLHttpCommonRequest.responseText.indexOf("__expired__") != -1)
                            {
                                TryToLogin();
                                break;
                            }

                            CloseSpanMessage();
                            
                            var arrSplittedElm = oXMLHttpCommonRequest.responseText.split("_");

                            if (arrSplittedElm[0] == "error")
                            {
                                var idForm = arrSplittedElm[1];
                                var strMessage = arrSplittedElm[2];

                                var oInput = GetFormFieldByPartName(idForm, "faBarcode_input");

                                if (oInput)
                                {
                                    // getting suffix
                                    var strID = (oInput.name.length == 0) ? oInput.id : oInput.name;

                                    var oSpan = GEBI("ErrorSpan_" + strID);

                                    if (oSpan)
                                    {
                                        try
                                        {
                                            oInput.parentNode.removeChild(oSpan);
                                        }
                                        catch (e)
                                        { }
                                    }

                                    CreateErrorSpan(oInput, "ErrorSpan_" + strID, strMessage);
                                }

                            }
                            else
                            {
                                var oDiv = GEBI("idForm");
                                var oDivFg = GEBI("idForeground");

                                if (oDiv && oDivFg)
                                {
                                    var bPopupIsShown = (oDivFg.style.display == "block" && oDiv.style.display == "block") ? true : false;
                                    
                                    if ( bPopupIsShown )
                                    {
                                        oDivFg.innerHTML = oXMLHttpCommonRequest.responseText;
                                        RotateCoupons();
 
                                    } 
                                }
                            }
                        }
                        break;


                    case "ADD_LIST_AND_CLOSE":
                        {
                            if (oXMLHttpCommonRequest.responseText.indexOf("__expired__") != -1)
                            {
                                TryToLogin();
                                break;
                            }
                            try
                            {
                                ClearVariables();
                                CloseModalPopUp();

                                SwitchTab(strCurrentTab);
                            }
                            catch (e)
                            {
                                CloseModalPopUp();
                            }
                        }
                        break;

                    case "GET_CURRENT_LISTS_FOR_COMBOBOX":
                        {
                            if (oXMLHttpCommonRequest.responseText.indexOf("__expired__") != -1)
                            {
                                TryToLogin();
                                break;
                            }

                            oTargetObject.innerHTML = oXMLHttpCommonRequest.responseText;
                        }
                       break;

                    default:
                        {
                            if (oXMLHttpCommonRequest.responseText.indexOf("__expired__") != -1)
                            {
                                TryToLogin();
                                break;
                            }
                            HideLoadingMessage();

                            oTargetObject.innerHTML = oXMLHttpCommonRequest.responseText;
                        }
                        break;
                }//switch

                CallEvalGeneratedJS(oTargetObject, oXMLHttpCommonRequest.responseText);
            }//Onsuccess
         });
    }
    catch (e)
    {
    }
}
//-----------------------------------------------------------------
function ProcessRequestGET(urlAction, Action, TargetObject)
{
    try
    {
         AjaxRequest.post(
         {
             'url':urlAction
             , 'async': true
             , 'queryString' : Params
             , 'onSuccess':function(req)
             { 
             }
         });
    }
    catch (e)
    {
    }
}
//-----------------------------------------------------------------
function CallEvalGeneratedJS ( oObj, strResponse )
{
    try
    {
         if ( strResponse.indexOf( '<script' ) != -1 || strResponse.indexOf( '<SCRIPT' ) != -1 )
         {
             if (!oObj)
             {
                var oDiv = GEBI("idForm");
                var oDivFg = GEBI("idForeground");

                var bPopupIsShown = (oDivFg.style.display == "block" && oDiv.style.display == "block") ? true : false;
             
                if ( bPopupIsShown )

                oObj = oDivFg;
            }
             
             var oScriptsCol = oObj.getElementsByTagName("SCRIPT");

             var iLen = oScriptsCol.length;
             
             for (var i = 0; i < iLen; i++)
             {
                 var oScript = oScriptsCol[i];

                 if (oScript)
                 {
                     if (oScript.innerHTML.length > 0)
                     {
                        eval(oScript.innerHTML);
                     }
                 }
             }
         }
    }
    catch ( e ) {}
}
//-----------------------------------------------------------------
function TryToLogin ()
{
    try
    {
        ProcessRequest("default.aspx", "action=DirectPOST&PostAction=paTryToLogin", "TRY_TO_LOGIN", "");
    }
    catch (e) { }
}
//-----------------------------------------------------------------
