/**************************************************************
	DO NOT MODIFY THIS FILE
	File is create automatically by
	Hivext WSDL2JS XSL Transformation Utility
**************************************************************/

HNamespace.Define("Data", {

	BaseService : HClass.Define("Data.BaseService", { extend : HWebService.Provider, props : {

		construct : function() {},

		ConstructClient : function() {
			var oClient = new this.BasePortType;
			oClient.oServiceBind = new this.BaseBinding;
			return oClient;
		},

		BasePort : HClass.Define("BasePort", { extend : HRest.Client, props : {
			sNamespace : "http://api.hivext.ru/1.0/data/base/cross/",
			sLocation : "http://api.hivext.ru/1.0/data/base/cross/",
			construct : function() {}
		}}),

		BaseBinding : HClass.Define("BaseBinding", { extend : BasePort, props : {
			aOperationLocation : {
				DefineType : "definetype",
				UndefineType : "undefinetype",
				RenameType : "renametype",
				AddField : "addfield",
				RemoveField : "removefield",
				RenameField : "renamefield",
				GetType : "gettype",
				GetTypes : "gettypes",
				GetTypesCount : "gettypescount",
				SetUniqueFields : "setuniquefields",
				GetUniqueFields : "getuniquefields",
				CreateObject : "createobject",
				CreateObjects : "createobjects",
				DeleteObject : "deleteobject",
				DeleteObjectsByCriteria : "deleteobjectsbycriteria",
				GetObject : "getobject",
				GetObjects : "getobjects",
				GetObjectsByCriteria : "getobjectsbycriteria",
				GetObjectsCount : "getobjectscount",
				SetObject : "setobject",
				SetObjects : "setobjects",
				SetProperty : "setproperty",
				GetProperty : "getproperty"
			},

			construct : function() {}

		}}),

		BasePortType : HClass.Define("BasePortType", { props : {
			oServiceBind : null,

			construct : function() {},

			DefineTypeInput : {
				appid : "string",
				session : "string",
				type : "string",
				fields : "string",
				unique : "string"
			},

			DefineTypeOutput : {
				result : "int",
				error : "string"
			},

			UndefineTypeInput : {
				appid : "string",
				session : "string",
				type : "string"
			},

			UndefineTypeOutput : {
				result : "int",
				error : "string"
			},

			RenameTypeInput : {
				appid : "string",
				session : "string",
				oldType : "string",
				newType : "string"
			},

			RenameTypeOutput : {
				result : "int",
				error : "string"
			},

			AddFieldInput : {
				appid : "string",
				session : "string",
				type : "string",
				field : "string",
				fieldType : "string"
			},

			AddFieldOutput : {
				result : "int",
				error : "string"
			},

			RemoveFieldInput : {
				appid : "string",
				session : "string",
				type : "string",
				field : "string"
			},

			RemoveFieldOutput : {
				result : "int",
				error : "string"
			},

			RenameFieldInput : {
				appid : "string",
				session : "string",
				type : "string",
				oldField : "string",
				newField : "string"
			},

			RenameFieldOutput : {
				result : "int",
				error : "string"
			},

			SetUniqueFieldsInput : {
				appid : "string",
				session : "string",
				type : "string",
				unique : "string"
			},

			SetUniqueFieldsOutput : {
				result : "int",
				error : "string"
			},

			GetUniqueFieldsInput : {
				appid : "string",
				session : "string",
				type : "string"
			},

			GetUniqueFieldsOutput : {
				result : "int",
				error : "string",
				unique : "string"
			},

			GetTypesInput : {
				appid : "string",
				session : "string",
				from : "int",
				count : "int"
			},

			GetTypesOutput : {
				result : "int",
				error : "string",
				types : "string"
			},

			GetTypesCountInput : {
				appid : "string",
				session : "string"
			},

			GetTypesCountOutput : {
				result : "int",
				error : "string",
				count : "int"
			},

			GetTypeInput : {
				appid : "string",
				session : "string",
				type : "string"
			},

			GetTypeOutput : {
				result : "int",
				error : "string",
				type : "string"
			},

			CreateObjectInput : {
				appid : "string",
				session : "string",
				type : "string",
				data : "string"
			},

			CreateObjectOutput : {
				result : "int",
				error : "string",
				id : "int"
			},

			CreateObjectsInput : {
				appid : "string",
				session : "string",
				type : "string",
				data : "string"
			},

			CreateObjectsOutput : {
				result : "int",
				error : "string"
			},

			DeleteObjectInput : {
				appid : "string",
				session : "string",
				type : "string",
				id : "int"
			},

			DeleteObjectOutput : {
				result : "int",
				error : "string"
			},

			GetObjectInput : {
				appid : "string",
				session : "string",
				type : "string",
				id : "int",
				join : "string"
			},

			GetObjectOutput : {
				result : "int",
				error : "string",
				object : "string"
			},

			GetObjectsInput : {
				appid : "string",
				session : "string",
				type : "string",
				from : "int",
				count : "int",
				join : "string"
			},

			GetObjectsOutput : {
				result : "int",
				error : "string",
				objects : "string"
			},

			GetObjectsByCriteriaInput : {
				appid : "string",
				session : "string",
				type : "string",
				criteria : "string",
				from : "int",
				count : "int",
				join : "string",
				projection : "string"
			},

			GetObjectsByCriteriaOutput : {
				result : "int",
				error : "string",
				objects : "string"
			},

			SetPropertyInput : {
				appid : "string",
				session : "string",
				type : "string",
				id : "int",
				property : "string",
				value : "string"
			},

			SetPropertyOutput : {
				result : "int",
				error : "string"
			},

			GetPropertyInput : {
				appid : "string",
				session : "string",
				type : "string",
				id : "int",
				property : "string",
				join : "string"
			},

			GetPropertyOutput : {
				result : "int",
				error : "string",
				value : "string"
			},

			GetObjectsCountInput : {
				appid : "string",
				session : "string",
				type : "string",
				criteria : "string"
			},

			GetObjectsCountOutput : {
				result : "int",
				error : "string",
				count : "int"
			},

			SetObjectInput : {
				appid : "string",
				session : "string",
				type : "string",
				id : "string",
				data : "string"
			},

			SetObjectOutput : {
				result : "int",
				error : "string"
			},

			SetObjectsInput : {
				appid : "string",
				session : "string",
				type : "string",
				data : "string"
			},

			SetObjectsOutput : {
				result : "int",
				error : "string"
			},

			DeleteObjectsByCriteriaInput : {
				appid : "string",
				session : "string",
				type : "string",
				criteria : "string"
			},

			DeleteObjectsByCriteriaOutput : {
				result : "int",
				error : "string",
				count : "int"
			},

			DefineType : function() {
				var oServiceBind = this.oServiceBind;
				if(!oServiceBind) { throw Error("Method name : DefineType : binding not found"); }
				var sUrl = oServiceBind.ConstructUrl("DefineType");
				var fnCallback = HWebService.Client.FindCallback(arguments);

				// Construct request.
				sUrl += "?" + oServiceBind.ConstructRequest(arguments, this.DefineTypeInput);	

				// Send request.
				var DefineTypeOutput = this.DefineTypeOutput;
				(new HNet.ScriptRequest()).Get(sUrl, function(oResponse) {
					if(fnCallback) fnCallback(oResponse);
				});
			},

			UndefineType : function() {
				var oServiceBind = this.oServiceBind;
				if(!oServiceBind) { throw Error("Method name : UndefineType : binding not found"); }
				var sUrl = oServiceBind.ConstructUrl("UndefineType");
				var fnCallback = HWebService.Client.FindCallback(arguments);

				// Construct request.
				sUrl += "?" + oServiceBind.ConstructRequest(arguments, this.UndefineTypeInput);	

				// Send request.
				var UndefineTypeOutput = this.UndefineTypeOutput;
				(new HNet.ScriptRequest()).Get(sUrl, function(oResponse) {
					if(fnCallback) fnCallback(oResponse);
				});
			},

			RenameType : function() {
				var oServiceBind = this.oServiceBind;
				if(!oServiceBind) { throw Error("Method name : RenameType : binding not found"); }
				var sUrl = oServiceBind.ConstructUrl("RenameType");
				var fnCallback = HWebService.Client.FindCallback(arguments);

				// Construct request.
				sUrl += "?" + oServiceBind.ConstructRequest(arguments, this.RenameTypeInput);	

				// Send request.
				var RenameTypeOutput = this.RenameTypeOutput;
				(new HNet.ScriptRequest()).Get(sUrl, function(oResponse) {
					if(fnCallback) fnCallback(oResponse);
				});
			},

			AddField : function() {
				var oServiceBind = this.oServiceBind;
				if(!oServiceBind) { throw Error("Method name : AddField : binding not found"); }
				var sUrl = oServiceBind.ConstructUrl("AddField");
				var fnCallback = HWebService.Client.FindCallback(arguments);

				// Construct request.
				sUrl += "?" + oServiceBind.ConstructRequest(arguments, this.AddFieldInput);	

				// Send request.
				var AddFieldOutput = this.AddFieldOutput;
				(new HNet.ScriptRequest()).Get(sUrl, function(oResponse) {
					if(fnCallback) fnCallback(oResponse);
				});
			},

			RemoveField : function() {
				var oServiceBind = this.oServiceBind;
				if(!oServiceBind) { throw Error("Method name : RemoveField : binding not found"); }
				var sUrl = oServiceBind.ConstructUrl("RemoveField");
				var fnCallback = HWebService.Client.FindCallback(arguments);

				// Construct request.
				sUrl += "?" + oServiceBind.ConstructRequest(arguments, this.RemoveFieldInput);	

				// Send request.
				var RemoveFieldOutput = this.RemoveFieldOutput;
				(new HNet.ScriptRequest()).Get(sUrl, function(oResponse) {
					if(fnCallback) fnCallback(oResponse);
				});
			},

			SetUniqueFields : function() {
				var oServiceBind = this.oServiceBind;
				if(!oServiceBind) { throw Error("Method name : SetUniqueFields : binding not found"); }
				var sUrl = oServiceBind.ConstructUrl("SetUniqueFields");
				var fnCallback = HWebService.Client.FindCallback(arguments);

				// Construct request.
				sUrl += "?" + oServiceBind.ConstructRequest(arguments, this.SetUniqueFieldsInput);	

				// Send request.
				var SetUniqueFieldsOutput = this.SetUniqueFieldsOutput;
				(new HNet.ScriptRequest()).Get(sUrl, function(oResponse) {
					if(fnCallback) fnCallback(oResponse);
				});
			},

			GetUniqueFields : function() {
				var oServiceBind = this.oServiceBind;
				if(!oServiceBind) { throw Error("Method name : GetUniqueFields : binding not found"); }
				var sUrl = oServiceBind.ConstructUrl("GetUniqueFields");
				var fnCallback = HWebService.Client.FindCallback(arguments);

				// Construct request.
				sUrl += "?" + oServiceBind.ConstructRequest(arguments, this.GetUniqueFieldsInput);	

				// Send request.
				var GetUniqueFieldsOutput = this.GetUniqueFieldsOutput;
				(new HNet.ScriptRequest()).Get(sUrl, function(oResponse) {
					if(fnCallback) fnCallback(oResponse);
				});
			},

			GetTypes : function() {
				var oServiceBind = this.oServiceBind;
				if(!oServiceBind) { throw Error("Method name : GetTypes : binding not found"); }
				var sUrl = oServiceBind.ConstructUrl("GetTypes");
				var fnCallback = HWebService.Client.FindCallback(arguments);

				// Construct request.
				sUrl += "?" + oServiceBind.ConstructRequest(arguments, this.GetTypesInput);	

				// Send request.
				var GetTypesOutput = this.GetTypesOutput;
				(new HNet.ScriptRequest()).Get(sUrl, function(oResponse) {
					if(fnCallback) fnCallback(oResponse);
				});
			},

			GetTypesCount : function() {
				var oServiceBind = this.oServiceBind;
				if(!oServiceBind) { throw Error("Method name : GetTypesCount : binding not found"); }
				var sUrl = oServiceBind.ConstructUrl("GetTypesCount");
				var fnCallback = HWebService.Client.FindCallback(arguments);

				// Construct request.
				sUrl += "?" + oServiceBind.ConstructRequest(arguments, this.GetTypesCountInput);	

				// Send request.
				var GetTypesCountOutput = this.GetTypesCountOutput;
				(new HNet.ScriptRequest()).Get(sUrl, function(oResponse) {
					if(fnCallback) fnCallback(oResponse);
				});
			},

			GetType : function() {
				var oServiceBind = this.oServiceBind;
				if(!oServiceBind) { throw Error("Method name : GetType : binding not found"); }
				var sUrl = oServiceBind.ConstructUrl("GetType");
				var fnCallback = HWebService.Client.FindCallback(arguments);

				// Construct request.
				sUrl += "?" + oServiceBind.ConstructRequest(arguments, this.GetTypeInput);	

				// Send request.
				var GetTypeOutput = this.GetTypeOutput;
				(new HNet.ScriptRequest()).Get(sUrl, function(oResponse) {
					if(fnCallback) fnCallback(oResponse);
				});
			},

			CreateObject : function() {
				var oServiceBind = this.oServiceBind;
				if(!oServiceBind) { throw Error("Method name : CreateObject : binding not found"); }
				var sUrl = oServiceBind.ConstructUrl("CreateObject");
				var fnCallback = HWebService.Client.FindCallback(arguments);

				// Construct request.
				sUrl += "?" + oServiceBind.ConstructRequest(arguments, this.CreateObjectInput);
				// Send request.
				var CreateObjectOutput = this.CreateObjectOutput;
				(new HNet.ScriptRequest()).Get(sUrl, function(oResponse) {
					if(fnCallback) fnCallback(oResponse);
				});

				/*
				// Construct request.
				var oParams = oServiceBind.ConstructParams(arguments, this.CreateObjectInput);
				var CreateObjectOutput = this.CreateObjectOutput;
				// Send request.
				(new HNet.WNTransport()).Post(sUrl, oParams, function(sResponse) {
					var oResponse = oServiceBind.ConstructResponse(sResponse, CreateObjectOutput);
					if(fnCallback) fnCallback(oResponse);
				});
				*/				
			},

			CreateObjects : function() {
				var oServiceBind = this.oServiceBind;
				if(!oServiceBind) { throw Error("Method name : CreateObjects : binding not found"); }
				var sUrl = oServiceBind.ConstructUrl("CreateObjects");
				var fnCallback = HWebService.Client.FindCallback(arguments);

				/*
				// Construct request.
				sUrl += "?" + oServiceBind.ConstructRequest(arguments, this.CreateObjectsInput);
				// Send request.
				var CreateObjectsOutput = this.CreateObjectsOutput;
				(new HNet.ScriptRequest()).Get(sUrl, function(oResponse) {
					if(fnCallback) fnCallback(oResponse);
				});
				*/

				// Construct request.
				var oParams = oServiceBind.ConstructParams(arguments, this.CreateObjectsInput);
				var CreateObjectsOutput = this.CreateObjectsOutput;
				// Send request.
				(new HNet.WNTransport()).Post(sUrl, oParams, function(sResponse) {
					var oResponse = oServiceBind.ConstructResponse(sResponse, CreateObjectsOutput);
					if(fnCallback) fnCallback(oResponse);
				});

			},						

			DeleteObject : function() {
				var oServiceBind = this.oServiceBind;
				if(!oServiceBind) { throw Error("Method name : DeleteObject : binding not found"); }
				var sUrl = oServiceBind.ConstructUrl("DeleteObject");
				var fnCallback = HWebService.Client.FindCallback(arguments);

				// Construct request.
				sUrl += "?" + oServiceBind.ConstructRequest(arguments, this.DeleteObjectInput);	

				// Send request.
				var DeleteObjectOutput = this.DeleteObjectOutput;
				(new HNet.ScriptRequest()).Get(sUrl, function(oResponse) {
					if(fnCallback) fnCallback(oResponse);
				});
			},

			GetObject : function() {
				var oServiceBind = this.oServiceBind;
				if(!oServiceBind) { throw Error("Method name : GetObject : binding not found"); }
				var sUrl = oServiceBind.ConstructUrl("GetObject");
				var fnCallback = HWebService.Client.FindCallback(arguments);

				// Construct request.
				sUrl += "?" + oServiceBind.ConstructRequest(arguments, this.GetObjectInput);	

				// Send request.
				var GetObjectOutput = this.GetObjectOutput;
				(new HNet.ScriptRequest()).Get(sUrl, function(oResponse) {
					if(fnCallback) fnCallback(oResponse);
				});
			},

			GetObjects : function() {
				var oServiceBind = this.oServiceBind;
				if(!oServiceBind) { throw Error("Method name : GetObjects : binding not found"); }
				var sUrl = oServiceBind.ConstructUrl("GetObjects");
				var fnCallback = HWebService.Client.FindCallback(arguments);

				// Construct request.
				sUrl += "?" + oServiceBind.ConstructRequest(arguments, this.GetObjectsInput);	

				// Send request.
				var GetObjectsOutput = this.GetObjectsOutput;
				(new HNet.ScriptRequest()).Get(sUrl, function(oResponse) {
					if(fnCallback) fnCallback(oResponse);
				});
			},

			SetProperty : function() {
				var oServiceBind = this.oServiceBind;
				if(!oServiceBind) { throw Error("Method name : SetProperty : binding not found"); }
				var sUrl = oServiceBind.ConstructUrl("SetProperty");
				var fnCallback = HWebService.Client.FindCallback(arguments);

/*				// Construct request.
				sUrl += "?" + oServiceBind.ConstructRequest(arguments, this.SetPropertyInput);
				// Send request.
				var SetPropertyOutput = this.SetPropertyOutput;
				(new HNet.ScriptRequest()).Get(sUrl, function(oResponse) {
					if(fnCallback) fnCallback(oResponse);
				});
*/

				// Construct request.
				var oParams = oServiceBind.ConstructParams(arguments, this.SetPropertyInput);			
				var SetPropertyOutput = this.SetPropertyOutput;
				// Send request.
				(new HNet.WNTransport()).Post(sUrl, oParams, function(sResponse) {
					var oResponse = oServiceBind.ConstructResponse(sResponse, SetPropertyOutput);
					if(fnCallback) fnCallback(oResponse);
				});
				
			},

			GetProperty : function() {
				var oServiceBind = this.oServiceBind;
				if(!oServiceBind) { throw Error("Method name : GetProperty : binding not found"); }
				var sUrl = oServiceBind.ConstructUrl("GetProperty");
				var fnCallback = HWebService.Client.FindCallback(arguments);

				// Construct request.
				sUrl += "?" + oServiceBind.ConstructRequest(arguments, this.GetPropertyInput);	

				// Send request.
				var GetPropertyOutput = this.GetPropertyOutput;
				(new HNet.ScriptRequest()).Get(sUrl, function(oResponse) {
					if(fnCallback) fnCallback(oResponse);
				});
			},

			GetObjectsCount : function() {
				var oServiceBind = this.oServiceBind;
				if(!oServiceBind) { throw Error("Method name : GetObjectsCount : binding not found"); }
				var sUrl = oServiceBind.ConstructUrl("GetObjectsCount");
				var fnCallback = HWebService.Client.FindCallback(arguments);

				// Construct request.
				sUrl += "?" + oServiceBind.ConstructRequest(arguments, this.GetObjectsCountInput);	

				// Send request.
				var GetObjectsCountOutput = this.GetObjectsCountOutput;
				(new HNet.ScriptRequest()).Get(sUrl, function(oResponse) {
					if(fnCallback) fnCallback(oResponse);
				});
			},

			SetObject : function() {
				var oServiceBind = this.oServiceBind;
				if(!oServiceBind) { throw Error("Method name : SetObject : binding not found"); }
				var sUrl = oServiceBind.ConstructUrl("SetObject");
				var fnCallback = HWebService.Client.FindCallback(arguments);

				/*
				// Construct request.
				sUrl += "?" + oServiceBind.ConstructRequest(arguments, this.SetObjectInput);
				// Send request.
				var SetObjectOutput = this.SetObjectOutput;
				(new HNet.ScriptRequest()).Get(sUrl, function(oResponse) {
					if(fnCallback) fnCallback(oResponse);
				});
				*/

				// Construct request.
				var oParams = oServiceBind.ConstructParams(arguments, this.SetObjectInput);
				var SetObjectOutput = this.SetObjectOutput;
				// Send request.
				(new HNet.WNTransport()).Post(sUrl, oParams, function(sResponse) {
					var oResponse = oServiceBind.ConstructResponse(sResponse, SetObjectOutput);
					if(fnCallback) fnCallback(oResponse);
				});

			},						

			SetObjects : function() {
				var oServiceBind = this.oServiceBind;
				if(!oServiceBind) { throw Error("Method name : SetObjects : binding not found"); }
				var sUrl = oServiceBind.ConstructUrl("SetObjects");
				var fnCallback = HWebService.Client.FindCallback(arguments);

				/*
				// Construct request.
				sUrl += "?" + oServiceBind.ConstructRequest(arguments, this.SetObjectInput);
				// Send request.
				var SetObjectOutput = this.SetObjectOutput;
				(new HNet.ScriptRequest()).Get(sUrl, function(oResponse) {
					if(fnCallback) fnCallback(oResponse);
				});
				*/

				// Construct request.
				var oParams = oServiceBind.ConstructParams(arguments, this.SetObjectsInput);
				var SetObjectsOutput = this.SetObjectsOutput;
				// Send request.
				(new HNet.WNTransport()).Post(sUrl, oParams, function(sResponse) {
					var oResponse = oServiceBind.ConstructResponse(sResponse, SetObjectsOutput);
					if(fnCallback) fnCallback(oResponse);
				});

			},						

			GetObjectsByCriteria : function() {
				var oServiceBind = this.oServiceBind;
				if(!oServiceBind) { throw Error("Method name : GetObjectsByCriteria : binding not found"); }
				var sUrl = oServiceBind.ConstructUrl("GetObjectsByCriteria");
				var fnCallback = HWebService.Client.FindCallback(arguments);

				// Construct request.
				sUrl += "?" + oServiceBind.ConstructRequest(arguments, this.GetObjectsByCriteriaInput);	

				// Send request.
				var GetObjectsByCriteriaOutput = this.GetObjectsByCriteriaOutput;
				(new HNet.ScriptRequest()).Get(sUrl, function(oResponse) {
					if(fnCallback) fnCallback(oResponse);
				});
			},

			RenameField : function() {
				var oServiceBind = this.oServiceBind;
				if(!oServiceBind) { throw Error("Method name : RenameField : binding not found"); }
				var sUrl = oServiceBind.ConstructUrl("RenameField");
				var fnCallback = HWebService.Client.FindCallback(arguments);

				// Construct request.
				sUrl += "?" + oServiceBind.ConstructRequest(arguments, this.RenameFieldInput);	

				// Send request.
				var RenameFieldOutput = this.RenameFieldOutput;
				(new HNet.ScriptRequest()).Get(sUrl, function(oResponse) {
					if(fnCallback) fnCallback(oResponse);
				});
			},						

			DeleteObjectsByCriteria : function() {
				var oServiceBind = this.oServiceBind;
				if(!oServiceBind) { throw Error("Method name : DeleteObjectsByCriteria : binding not found"); }
				var sUrl = oServiceBind.ConstructUrl("DeleteObjectsByCriteria");
				var fnCallback = HWebService.Client.FindCallback(arguments);

				// Construct request.
				sUrl += "?" + oServiceBind.ConstructRequest(arguments, this.DeleteObjectsByCriteriaInput);	

				// Send request.
				var DeleteObjectsByCriteriaOutput = this.DeleteObjectsByCriteriaOutput;
				(new HNet.ScriptRequest()).Get(sUrl, function(oResponse) {
					if(fnCallback) fnCallback(oResponse);
				});
			}						

		}})

	}})

});

// !!! STATIC LINK !!!
Data.Base = (new Data.BaseService).ConstructClient();
// !!! STATIC LINK !!!
