﻿(function($) {

	$.escapeHtml = function(html) {
		return $('<div/>').text(html).html();
	};

	// NOTE: requires json2.js
	$.jsonService = function(service, method, data, callback, error) {

		var serviceUrl = "/handlers/" + service + ".axd/" + method;

		// convert input to JSON
		var json = JSON2.stringify(data);

		$.ajax({
			url: serviceUrl,
			data: json,
			type: "POST",
			processData: false,
			contentType: "application/json",
			timeout: 20000,
			dataType: "text",  // not "json" we'll parse manually
			success:
                function(res) {
                	if (!callback) return;
                	var result = JSON2.parse(res); // (json2 lib fixes up MS Ajax dates)
                	callback(result);
                	return;
                },
			error: function(err) {
				if (!error) {
					alert("An error occured: " + err.statusText);
					return;
				}

				if (err) {
					if (err.responseText) {
						var errorObject = JSON2.parse(err.responseText);
						error(errorObject);
					}
					else {
						error("Unknown server error.");
					}
				}
				return;
			}
		});
	};

	$.isIE6OrBelow = function() {
		if (jQuery.browser.msie && jQuery.browser.version < 7)
			return true;

		return false;
	}

})(jQuery);