﻿/// <reference path="jquery-1.4.1-vsdoc.js" />

// *** Generic Service Proxy class that can be used to 
// *** call JSON Services generically using jQuery
function serviceProxy(serviceUrl, async) {
    var _I = this;
    this.serviceUrl = serviceUrl;

    // *** Call a wrapped object
    this.invoke = function(method, data, callback) {
        /*, error, bare*/
        // *** Convert input data into JSON - REQUIRES Json2.js
        var jsonData = JSON.stringify(data);
        // *** The service endpoint URL        
        var url = _I.serviceUrl + method;
        //var url = "../MsAjax/MsAjaxStockService.svc/" + method;

        $.ajax({
            url: url,
            data: jsonData,
            type: "POST",
            processData: false,
            contentType: "application/json",
            timeout: 30000,
            cache: false,
            async: async,
            dataType: "text",  // not "json" we'll parse
            success:
                    function(res) {
                        if (!callback) return;

                        // *** Use json library so we can fix up MS AJAX dates
                        var result = JSON.parse(res);

                        if (result.ExceptionDetail) {
                            OnPageError(result.Message);
                            return;
                        }

                        callback(result.d);
                        return;
                    },
            error: OnPageError
        });
    }
}
///when an error occurs ths function is fired
function OnPageError(xhr, errorMsg, thrown) {
//if progress exists then remove it
    RemoveProgress();
    //if (errorMsg && errorMsg != "error")
    alert("errormsg: " + errorMsg);

  /*  else if (typeof (xhr.responseText) == "string" && xhr.responseText != "") {
        var err = JSON.parse(xhr.responseText);
        if (typeof (err) == "object")
            alert(err.Message);
        else
            alert("Unknown server error.");
    }
    else
        alert("Unknown error occurred in callback.");*/
}
// *** Create a static instance of the region webservice
var serviceUrl = root+"webservices/";
var regionproxy = new serviceProxy(serviceUrl+"Region.svc/",true);
var regionproxySync = new serviceProxy(serviceUrl+"Region.svc/",false);
var kommuneproxy = new serviceProxy(serviceUrl + "Kommune.svc/", true);
var kommuneproxySync = new serviceProxy(serviceUrl + "Kommune.svc/", false);
var retskredsproxy = new serviceProxy(serviceUrl + "Retskreds.svc/", true);
var retskredsproxySync = new serviceProxy(serviceUrl + "Retskreds.svc/", false);
var categoryproxy = new serviceProxy(serviceUrl + "Category.svc/", true);
var categoryproxySync = new serviceProxy(serviceUrl + "Category.svc/", false);
var zipcodeproxy = new serviceProxy(serviceUrl + "ZipCode.svc/", true);
zipcodeproxySync = new serviceProxy(serviceUrl + "ZipCode.svc/", false);
var auctionproxy = new serviceProxy(serviceUrl + "Auction.svc/", true);
var auctionproxySync = new serviceProxy(serviceUrl + "Auction.svc/", false);
var userproxySync = new serviceProxy(serviceUrl + "User.svc/", false);