Langoor.ajax = new function() {
	
     this.ajaxGet = function (webService, getData, showLoading, loaderText, successCallback, errorCallback) {

		if (typeof successCallback != 'function') {
			successCallback = function () {}
		}
		
		if (typeof errorCallback != 'function') {
			errorCallback = function () {}
		}
        if (showLoading)
            showLoader("Loading..."); //showLoader will be a function which would display text in the loader..

        if (webService == "") {
            return 1; // Incorrect Parameters
        } else {
        	if (webService.indexOf('http://') != 0) {
        		//webService = Langoor.baseName + webService;
        	}
        }

        if (errorCallback == null)
            errorCallback = defaultErrorCallBack;

        if (typeof (getData) === "object")
            getData = $.param(getData);
        
        getData += '&type=json' + (Langoor.authToken ? '&token=' + escape(Langoor.authToken) : '') + (Langoor.domainName ? '&domain=' + escape(Langoor.domainName) : '');
        $.ajax({
            type: "GET",
            url: webService,
            data: getData,
            success: defaultSuccessCallBack,
            error: errorCallback,
            success_callback: successCallback
        });

        return 0; // Successful
    }

    this.ajaxPost = function (webService, jsonData, showLoading, loaderText, successCallback, errorCallback) {

		if (typeof successCallback != 'function') {
			successCallback = function () {}
		}
		
		if (typeof errorCallback != 'function') {
			errorCallback = function () {}
		} 
        if (showLoading)
            showLoader("Loading...");


        if (webService == "") {
            return 1; // Incorrect Parameters
        } else {
        	if (webService.indexOf('http://') != 0) {
        		//webService = Langoor.baseName + webService;
        	}
        }

        if (errorCallback == null)
            errorCallback = defaultErrorCallBack;

        if (successCallback == null)
        	successCallback = defaultSuccessCallBack;
        
        if (typeof(jsonData) === "object")
            jsonData = $.param(jsonData);

        jsonData += '&type=json' + (Langoor.authToken ? '&token=' + escape(Langoor.authToken) : '') + (Langoor.domainName ? '&domain=' + escape(Langoor.domainName) : '');
        $.ajax({
            type: "POST",
            url: webService,
            data: jsonData,
            //contentType: "application/x-www-form-urlencoded",
            success: defaultSuccessCallBack,
            error: errorCallback,
            success_callback: successCallback
        });

        /*function processResponseData(data, ) {
        	
        };*/
        return 0; // Successful
    };

    function showLoader(loaderText) {
        var loadingText = "Loading...";
        if (loaderText != null && loaderText != "") {
            loadingText = loaderText;
        }

        $("#divLoader").text(loadingText);
        $("#divLoader").fadeIn("fast");
    }

    function defaultErrorCallBack(data) {
    }

    function defaultSuccessCallBack(data) {
    	dataObj = jQuery.parseJSON(data);
    	if (dataObj.success == 0 && dataObj.error_msg != '' && Langoor.BlockUI) {
    		Langoor.BlockUI.createGrowl('Message', dataObj.error_msg);
    	} else {
			if (typeof dataObj.widget_data != 'undefined' && dataObj.widget_data) {
				Langoor.Editor.PageConstructor.updateWidget(dataObj.wdata);
			}
    		this.success_callback(data);
    	}
    }
    
    $(document).ready(function () {

        $("#divLoader").ajaxStop(function () {
            $(this).stop(true, true).fadeOut("fast");
        });

    });

	this.ajaxRequest = function (method, serviceName, functionName, instance_id, params, widget_data, successHandler, errorHandler) {
		if (typeof serviceName == 'undefined' || typeof functionName == 'undefined' || serviceName == null || functionName == null || instance_id == null) {
			return;
		}
		if (typeof widget_data == 'undefined') {
			widget_data = 1;
		}
		var data = {
			'c': 'widget',
			'm': 'usercall',
			'serviceName' : serviceName,
			'functionName': functionName,
			'widget_instance_id': instance_id,
			'widget_data': widget_data
		};
		if (params && typeof params == 'object') {
			data.params  = $.toJSON(params);
		}
		if (method == 'GET') {
			this.ajaxGet('/editor/ajax/index.php', data, false, null, successHandler, errorHandler);
		} else if (method == 'POST') {
			this.ajaxPost('/editor/ajax/index.php', data, false, null, successHandler, errorHandler);
		}
	};
};

