﻿PAT.WorkTech = Class.create({
    selectedLayer: "",
    serverName: "",
    page: "Login.aspx",
    listWorkOrder: function(giskey)
    {
        var url = "http://" + this.serverName + "/" + this.page + "?mode=zoom&action=browse&layer=" + this.selectedLayer + "&id=" + giskey;
        window.open(url);
    },
    listWorkOrderMultiple: function()
    {
        if (report.domObj.gisKeys.length > 0)
        {
            var sessionID = PAT.sessionId;
            if (ivaultData != null)
            {
                if (ivaultData.sessionId != null)
                {
                    sessionID = ivaultData.sessionId;
                }
            }
            var gisKeys = report.domObj.gisKeys.toJSON();
            var parms = { "action": "write", "sessionId": sessionID, "mgSessionId": PAT.sessionId, "gisKeys": gisKeys, "selectedLayer": workTech.selectedLayer }
            new Ajax.Request(currLocation.getDirectory() + 'Mapguide/GetInterfaceParms.aspx', {
                method: 'post',
                parameters: parms,
                onSuccess: function(e)
                {
                    var url = "http://" + workTech.serverName + "/" + workTech.page + "?mode=zoom&action=browse&session=" + sessionID;
                    window.open(url);
                },
                onFailure: function(e)
                {
                    alert(getText("GetSelectionIvaultInterfaceFailed") + "\n" + e.responseText)
                },
                onComplete: function() { }
            });
        }
        else
            alert(getText("RecordRequired"));
    },
    viewWorkOrder: function(gisID)
    {

        var url = "http://" + this.serverName + "/" + this.page + "?mode=zoom&action=view&layer=" + this.selectedLayer + "&id=" + gisID;
        window.open(url);
    },
    editWorkOrder: function(gisID)
    {
        var url = "http://" + this.serverName + "/" + this.page + "?mode=zoom&action=edit&layer=" + this.selectedLayer + "&id=" + gisID;
        window.open(url);
    },
    addWorkOrder: function(icon)
    {
        if (this.selectedLayer.toLowerCase() == "workorders" || report.domObj.gisKeys.length == 0)
        {
            icon = arguments[1];
            report.domObj.fire("PAT.ResultPanel:editPoint", { "action": "workTech", "who": null });
        }
        else
            this.addWorkOrderWithAssets();
        //        if (report.domObj.gisKeys.length > 0)
        //        {
        //            this.addWorkOrderWithAssets();
        //        }
        //        else
        //        {
        //            icon = arguments[1];
        //            report.domObj.fire("PAT.ResultPanel:editPoint", { "action": "workTech", "who": null });
        //            //alert(getText("RecordRequired"));
        //        }
        //        if (this.selectedLayer.toLowerCase() != "workorders")
        //        {
        //            
        //        }
        //        else
        //        {
        //            
        //        }
        //        var selectionXML = mapguide.map.GetSelectionXML();
        //        //prompt for x and y position when there's no selection
        //        if (selectionXML == null || selectionXML == "")
        //            report.domObj.fire("PAT.ResultPanel:editPoint", { "action": "workTech", "who": icon });
        //        else
        //            this.addWorkOrderWithAssets();
    },
    addWorkOrderWithAssets: function(gisKey)
    {
        if (report.domObj.gisKeys.length > 0 || gisKey != null)
        {
            var gisKeys = null;
            if (gisKey != null)
            {
                gisKeys = [];
                gisKeys.push(gisKey);
                gisKeys = gisKeys.toJSON();
            }
            else
                gisKeys = report.domObj.gisKeys.toJSON();


            var parms = { "sessionID": PAT.sessionId, "gisKeys": gisKeys, "layerName": this.selectedLayer, "objectId": report.data.config.dbObjectId };
            new Ajax.Request(currLocation.getDirectory() + 'WorkTech/GetSelectionCenter.aspx', {
                method: 'post',
                parameters: parms,
                onSuccess: function(e)
                {
                    var data = eval('(' + e.responseText + ')');
                    var sessionID = PAT.sessionId;
                    if (ivaultData != null)
                    {
                        if (ivaultData.sessionId != null)
                        {
                            sessionID = ivaultData.sessionId;
                        }
                    }

                    var parms = { "action": "write", "sessionId": sessionID, "mgSessionId": PAT.sessionId, "gisKeys": gisKeys, "selectedLayer": workTech.selectedLayer }
                    new Ajax.Request(currLocation.getDirectory() + 'Mapguide/GetInterfaceParms.aspx', {
                        method: 'post',
                        parameters: parms,
                        onSuccess: function(e)
                        {
                            var url = "http://" + workTech.serverName + "/" + workTech.page + "?mode=zoom&action=new&layer=" + workTech.selectedLayer + "&x=" + data.x + "&y=" + data.y + "&session=" + sessionID;
                            window.open(url);
                        },
                        onFailure: function(e)
                        {
                            alert(getText("GetSelectionIvaultInterfaceFailed") + "\n" + e.responseText)
                        },
                        onComplete: function() { }
                    });

                },
                onFailure: function(e)
                {
                    alert(getText("GetSelectionCenterFailed" + "\n" + e.responseText));
                },
                onComplete: function()
                {
                    //alert("complete");
                }
            });
        }
    },
    addEmptyWorkOrder: function()
    {
        var x = arguments[1].value;
        var y = arguments[2].value;
        var container = arguments[3];
        if (container != null)
            container.hide();

        var url = "http://" + workTech.serverName + "/" + workTech.page + "?mode=zoom&action=new&layer=WorkOrders&x=" + x + "&y=" + y;
        window.open(url);
    }
});
