function getResponseText(transport) {
    if (transport && transport.responseText){
        try{
            response = eval('(' + transport.responseText + ')');
        }
        catch (e) {
            response = {};
        }
    }
    return response;
}

function submitAndReloadArea(area, url, callback) {
    if($(area)) {
        var fields = $(area).select('input', 'select', 'textarea');
        var data = Form.serializeElements(fields, true);
        url = url + (url.match(new RegExp('\\?')) ? '&isAjax=true' : '?isAjax=true');

        new Ajax.Request(url, {
            parameters: $H(data),
            loaderArea: area,
            onSuccess: function(transport) {
                try {
                    if (transport.responseText.isJSON()) {
                        var response = transport.responseText.evalJSON()
                        if (response.error) {
                            alert(response.message);
                        }
                        if(response.ajaxExpired && response.ajaxRedirect) {
                            setLocation(response.ajaxRedirect);
                        }
                    } else {
                        $(area).update(transport.responseText);
                    }
                    if (callback.onSuccess) {
                        callback.onSuccess.call(this);
                    }
                }
                catch (e) {
                    $(area).update(transport.responseText);
                }
            },
            onLoading: function(transport) {
                if (callback.onLoading) {
                    callback.onLoading.call(this);
                }
            }
        });
    }
}

function submitAndLoadToArea(form, url, callback,updatecontainer) {
    if($(form)) {
        var fields = $(form).select('input', 'select', 'textarea');
        var data = Form.serializeElements(fields, true);
        url = url + (url.match(new RegExp('\\?')) ? '&isAjax=true' : '?isAjax=true');

        var ajxHandler = new Ajax.Request(url, {
            parameters: $(form).serialize(),
            loaderArea: form,
            method: 'get',
            onSuccess: function(transport) {
                try {
                    if (transport.responseText.isJSON()) {
                        var response = transport.responseText.evalJSON()
                        if (response.error) {
                            alert(response.message);
                        }
                        if(response.ajaxExpired && response.ajaxRedirect) {
                            setLocation(response.ajaxRedirect);
                        }
                    } else {
                        $(updatecontainer).update(transport.responseText);
                    }
                    if (callback.onSuccess) {
                        callback.onSuccess.call(this);
                    }
                }
                catch (e) {
                    $(updatecontainer).update(transport.responseText);
                }
            },
            onLoading: function(transport) {
                if (callback.onLoading) {
                    callback.onLoading.call(this);
                }
            }
        });

        return ajxHandler;
    }
}
function submitUrl(url, param, callback) {
	new Ajax.Request(url, {
		parameters: $H(param),
		onSuccess: function(transport) {
			try {
				var response
				if (transport.responseText.isJSON()) {
					response = transport.responseText.evalJSON()
					if(response.ajaxExpired && response.ajaxRedirect) {
						setLocation(response.ajaxRedirect);
					}
				} else {
					response = transport.responseText;
				}
				if (callback.onSuccess) {
					callback.onSuccess.call(this,transport.responseText.isJSON(),response);
				}
			}
			catch (e) {
				alert('Error processing your request. Please try again later.');
			}
		},
		onLoading: function(transport) {
			if (callback.onLoading) {
				callback.onLoading.call(this,transport);
			}
		}
	});
}

