
function ReviewAjaxDataReceiver(responserURL, parameters, review_id) {

    var req;
    var reqTimeout;
    var sectionId;
    var readyToProcessResponse = 0;
    var dataRequestType = '';

    this.loadXMLDoc = function (url) {
        req = null;
        if (window.XMLHttpRequest) {
            try {
                req = new XMLHttpRequest();
            } catch (e){}
        } else if (window.ActiveXObject) {
            try {
                req = new ActiveXObject('Msxml2.XMLHTTP');
            } catch (e){
                try {
                    req = new ActiveXObject('Microsoft.XMLHTTP');
                } catch (e){}
            }
        }

        if (req.overrideMimeType) {
            req.overrideMimeType('text/html');
        }
        if (req) {
            /* Third parameter of open method set type of request: false - sync, true - async. */
            req.open("POST", url, false);
            req.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");

            req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
            req.setRequestHeader("Content-length", parameters.length);
            req.setRequestHeader("Connection", "close");

            req.send(parameters);


            if(req.status == 200) {
                var operation_result;
                switch (dataRequestType) {
                    case 'SAVE_COMMENT':
                         var save_comment_res_hash = {};
                         save_comment_res_hash = eval(req.responseText);
                         operation_result = save_comment_res_hash;
                         break;
                    case 'CHECK_IS_CUSTOMER_LOGGED_IN':
                         var check_is_customer_logged_in_res_hash = {};
                         check_is_customer_logged_in_res_hash = eval(req.responseText);
                         //alert (req.responseText);
                         operation_result = check_is_customer_logged_in_res_hash['customer_is_logged_in'];
                         break;
                    case 'GET_CUSTOMER_INFO':
                         var check_is_customer_logged_in_res_hash = {};
                         check_is_customer_logged_in_res_hash = eval(req.responseText);
                         //alert (req.responseText);
                         operation_result = check_is_customer_logged_in_res_hash['customer_is_logged_in'];
                         break;
                    case 'EVALUATE_REVIEW':
                         var evaluate_review_res_hash = {};
                         evaluate_review_res_hash = eval(req.responseText);
                         //alert (req.responseText);
                         operation_result = evaluate_review_res_hash;
                         break;
                    case 'CHECK_IS_CUSTOMER_ALREADY_EVALUATE_REVIEW':
                         var evaluation_check_res_hash = {};
                         evaluation_check_res_hash = eval(req.responseText);
                         //alert (req.responseText);
                         operation_result = evaluation_check_res_hash;
                         break;

                    case 'REMOVE_REVIEW_COMMENT':
                         var remove_review_res_hash = {};
                         remove_review_res_hash = eval(req.responseText);
                         //alert (req.responseText);
                         operation_result = remove_review_res_hash;
                         break;

                    case 'CHECK_IS_CUSTOMER_ALREADY_EVALUATE_COMMENT':
                         var comment_evaluation_check_res_hash = {};
                         comment_evaluation_check_res_hash = eval(req.responseText);
                         //alert (req.responseText);
                         operation_result = comment_evaluation_check_res_hash;
                         break;

                    case 'EVALUATE_COMMENT':
                         var evaluate_comment_res_hash = {};
                         evaluate_comment_res_hash = eval(req.responseText);
                         //alert (req.responseText);
                         operation_result = evaluate_comment_res_hash;
                         break;


                    default:
                        break;
                }
                //clearTimeout(reqTimeout);
                return operation_result;
            }
        }
        else {
            alert("Browser doesn't support AJAX");
        }
    }


    this.getMyReqStatus = function() {
        return readyToProcessResponse;
    }


    this.getData = function(essence) {
        dataRequestType = essence;
        return this.loadXMLDoc(responserURL);
    }
}
