Liferay.Service.Reports = {
	servicePackage: "com.ext.portlet.reports.service.http."
};

Liferay.Service.Schilling = {
	servicePackage: "dk.schilling.portlet.schilling.service.http."
};

Liferay.Service.Schilling.Settings = {
	serviceClassName: Liferay.Service.Schilling.servicePackage + "Settings" + Liferay.Service.classNameSuffix,

	getSettings: function(params, callback) {
		params.serviceClassName = this.serviceClassName;
		params.serviceMethodName = "getSettings";

		return Liferay.Service.ajax(params, callback);
	}
};

Liferay.Service.Schilling.LookupEntry = {
	serviceClassName: Liferay.Service.Schilling.servicePackage + "LookupEntry" + Liferay.Service.classNameSuffix,

	lookup: function(params, callback) {
		params.serviceClassName = this.serviceClassName;
		params.serviceMethodName = "lookup";

		return Liferay.Service.ajax(params, callback);
	},

	lookupString: function(params, callback) {
		params.serviceClassName = this.serviceClassName;
		params.serviceMethodName = "lookupString";

		return Liferay.Service.ajax(params, callback);
	}
};

Liferay.Service.Schilling.Product = {
	serviceClassName: Liferay.Service.Schilling.servicePackage + "Product" + Liferay.Service.classNameSuffix,

	getProducts: function(params, callback) {
		params.serviceClassName = this.serviceClassName;
		params.serviceMethodName = "getProducts";

		return Liferay.Service.ajax(params, callback);
	},

	getProduct: function(params, callback) {
		params.serviceClassName = this.serviceClassName;
		params.serviceMethodName = "getProduct";

		return Liferay.Service.ajax(params, callback);
	},

	getAllProducts: function(params, callback) {
		params.serviceClassName = this.serviceClassName;
		params.serviceMethodName = "getAllProducts";

		return Liferay.Service.ajax(params, callback);
	},

	getProductsFromCategory: function(params, callback) {
		params.serviceClassName = this.serviceClassName;
		params.serviceMethodName = "getProductsFromCategory";

		return Liferay.Service.ajax(params, callback);
	},

	refreshProducts: function(params, callback) {
		params.serviceClassName = this.serviceClassName;
		params.serviceMethodName = "refreshProducts";

		return Liferay.Service.ajax(params, callback);
	},

	refreshProductsFromCategory: function(params, callback) {
		params.serviceClassName = this.serviceClassName;
		params.serviceMethodName = "refreshProductsFromCategory";

		return Liferay.Service.ajax(params, callback);
	},

	removeProduct: function(params, callback) {
		params.serviceClassName = this.serviceClassName;
		params.serviceMethodName = "removeProduct";

		return Liferay.Service.ajax(params, callback);
	},

	refreshProduct: function(params, callback) {
		params.serviceClassName = this.serviceClassName;
		params.serviceMethodName = "refreshProduct";

		return Liferay.Service.ajax(params, callback);
	},

	findAll: function(params, callback) {
		params.serviceClassName = this.serviceClassName;
		params.serviceMethodName = "findAll";

		return Liferay.Service.ajax(params, callback);
	},

	search: function(params, callback) {
		params.serviceClassName = this.serviceClassName;
		params.serviceMethodName = "search";

		return Liferay.Service.ajax(params, callback);
	}
};

Liferay.Service.Schilling.Category = {
	serviceClassName: Liferay.Service.Schilling.servicePackage + "Category" + Liferay.Service.classNameSuffix,

	getCategory: function(params, callback) {
		params.serviceClassName = this.serviceClassName;
		params.serviceMethodName = "getCategory";

		return Liferay.Service.ajax(params, callback);
	},

	_getCategory: function(params, callback) {
		params.serviceClassName = this.serviceClassName;
		params.serviceMethodName = "_getCategory";

		return Liferay.Service.ajax(params, callback);
	},

	getByCategoryItemId: function(params, callback) {
		params.serviceClassName = this.serviceClassName;
		params.serviceMethodName = "getByCategoryItemId";

		return Liferay.Service.ajax(params, callback);
	},

	getAllCategories: function(params, callback) {
		params.serviceClassName = this.serviceClassName;
		params.serviceMethodName = "getAllCategories";

		return Liferay.Service.ajax(params, callback);
	},

	getCategories: function(params, callback) {
		params.serviceClassName = this.serviceClassName;
		params.serviceMethodName = "getCategories";

		return Liferay.Service.ajax(params, callback);
	},

	findAllCategories: function(params, callback) {
		params.serviceClassName = this.serviceClassName;
		params.serviceMethodName = "findAllCategories";

		return Liferay.Service.ajax(params, callback);
	},

	getByParentCategoryIdAndType: function(params, callback) {
		params.serviceClassName = this.serviceClassName;
		params.serviceMethodName = "getByParentCategoryIdAndType";

		return Liferay.Service.ajax(params, callback);
	},

	refreshCategories: function(params, callback) {
		params.serviceClassName = this.serviceClassName;
		params.serviceMethodName = "refreshCategories";

		return Liferay.Service.ajax(params, callback);
	},

	removeCategory: function(params, callback) {
		params.serviceClassName = this.serviceClassName;
		params.serviceMethodName = "removeCategory";

		return Liferay.Service.ajax(params, callback);
	},

	buildCategoryHolderTree: function(params, callback) {
		params.serviceClassName = this.serviceClassName;
		params.serviceMethodName = "buildCategoryHolderTree";

		return Liferay.Service.ajax(params, callback);
	}
};

Liferay.Service.Schilling.CategoryText = {
	serviceClassName: Liferay.Service.Schilling.servicePackage + "CategoryText" + Liferay.Service.classNameSuffix,

	getTexts: function(params, callback) {
		params.serviceClassName = this.serviceClassName;
		params.serviceMethodName = "getTexts";

		return Liferay.Service.ajax(params, callback);
	},

	getCategoryText: function(params, callback) {
		params.serviceClassName = this.serviceClassName;
		params.serviceMethodName = "getCategoryText";

		return Liferay.Service.ajax(params, callback);
	},

	fetchCategoryText: function(params, callback) {
		params.serviceClassName = this.serviceClassName;
		params.serviceMethodName = "fetchCategoryText";

		return Liferay.Service.ajax(params, callback);
	}
};

Liferay.Service.Schilling.FavoriteProduct = {
	serviceClassName: Liferay.Service.Schilling.servicePackage + "FavoriteProduct" + Liferay.Service.classNameSuffix,

	getFavoriteProducts: function(params, callback) {
		params.serviceClassName = this.serviceClassName;
		params.serviceMethodName = "getFavoriteProducts";

		return Liferay.Service.ajax(params, callback);
	},

	setFavoriteProducts: function(params, callback) {
		params.serviceClassName = this.serviceClassName;
		params.serviceMethodName = "setFavoriteProducts";

		return Liferay.Service.ajax(params, callback);
	},

	updateFavoriteProductQuantity: function(params, callback) {
		params.serviceClassName = this.serviceClassName;
		params.serviceMethodName = "updateFavoriteProductQuantity";

		return Liferay.Service.ajax(params, callback);
	},

	addFavoriteProduct: function(params, callback) {
		params.serviceClassName = this.serviceClassName;
		params.serviceMethodName = "addFavoriteProduct";

		return Liferay.Service.ajax(params, callback);
	},

	removeFavoriteProduct: function(params, callback) {
		params.serviceClassName = this.serviceClassName;
		params.serviceMethodName = "removeFavoriteProduct";

		return Liferay.Service.ajax(params, callback);
	}
};

Liferay.Service.Schilling.Order = {
	serviceClassName: Liferay.Service.Schilling.servicePackage + "Order" + Liferay.Service.classNameSuffix,

	createPseudoOrder: function(params, callback) {
		params.serviceClassName = this.serviceClassName;
		params.serviceMethodName = "createPseudoOrder";

		return Liferay.Service.ajax(params, callback);
	},

	saveOrder: function(params, callback) {
		params.serviceClassName = this.serviceClassName;
		params.serviceMethodName = "saveOrder";

		return Liferay.Service.ajax(params, callback);
	},

	sendEmail: function(params, callback) {
		params.serviceClassName = this.serviceClassName;
		params.serviceMethodName = "sendEmail";

		return Liferay.Service.ajax(params, callback);
	},

	getNewOrderNumber: function(params, callback) {
		params.serviceClassName = this.serviceClassName;
		params.serviceMethodName = "getNewOrderNumber";

		return Liferay.Service.ajax(params, callback);
	}
};

Liferay.Service.Schilling.OrderLine = {
	serviceClassName: Liferay.Service.Schilling.servicePackage + "OrderLine" + Liferay.Service.classNameSuffix,

	addOl: function(params, callback) {
		params.serviceClassName = this.serviceClassName;
		params.serviceMethodName = "addOl";

		return Liferay.Service.ajax(params, callback);
	}
};

Liferay.Service.Schilling.LanguageMapping = {
	serviceClassName: Liferay.Service.Schilling.servicePackage + "LanguageMapping" + Liferay.Service.classNameSuffix,

	saveLanguageMapping: function(params, callback) {
		params.serviceClassName = this.serviceClassName;
		params.serviceMethodName = "saveLanguageMapping";

		return Liferay.Service.ajax(params, callback);
	},

	getLanguageMapping: function(params, callback) {
		params.serviceClassName = this.serviceClassName;
		params.serviceMethodName = "getLanguageMapping";

		return Liferay.Service.ajax(params, callback);
	},

	fetchLanguageMapping: function(params, callback) {
		params.serviceClassName = this.serviceClassName;
		params.serviceMethodName = "fetchLanguageMapping";

		return Liferay.Service.ajax(params, callback);
	},

	getLanguageMappings: function(params, callback) {
		params.serviceClassName = this.serviceClassName;
		params.serviceMethodName = "getLanguageMappings";

		return Liferay.Service.ajax(params, callback);
	},

	getLanguageMappingBySchillingLanguage: function(params, callback) {
		params.serviceClassName = this.serviceClassName;
		params.serviceMethodName = "getLanguageMappingBySchillingLanguage";

		return Liferay.Service.ajax(params, callback);
	},

	removeLanguageMapping: function(params, callback) {
		params.serviceClassName = this.serviceClassName;
		params.serviceMethodName = "removeLanguageMapping";

		return Liferay.Service.ajax(params, callback);
	}
};

Liferay.Service.Schilling.User = {
	serviceClassName: Liferay.Service.Schilling.servicePackage + "User" + Liferay.Service.classNameSuffix,

	getInvoicingDebtorId: function(params, callback) {
		params.serviceClassName = this.serviceClassName;
		params.serviceMethodName = "getInvoicingDebtorId";

		return Liferay.Service.ajax(params, callback);
	},

	getSchillingStandardUser: function(params, callback) {
		params.serviceClassName = this.serviceClassName;
		params.serviceMethodName = "getSchillingStandardUser";

		return Liferay.Service.ajax(params, callback);
	},

	getSchillingUser: function(params, callback) {
		params.serviceClassName = this.serviceClassName;
		params.serviceMethodName = "getSchillingUser";

		return Liferay.Service.ajax(params, callback);
	},

	getPricesDebtorId: function(params, callback) {
		params.serviceClassName = this.serviceClassName;
		params.serviceMethodName = "getPricesDebtorId";

		return Liferay.Service.ajax(params, callback);
	},

	getSchillingDebtorsByEmailDomain: function(params, callback) {
		params.serviceClassName = this.serviceClassName;
		params.serviceMethodName = "getSchillingDebtorsByEmailDomain";

		return Liferay.Service.ajax(params, callback);
	},

	getLrUser: function(params, callback) {
		params.serviceClassName = this.serviceClassName;
		params.serviceMethodName = "getLrUser";

		return Liferay.Service.ajax(params, callback);
	},

	getUserIdByEmailAddress: function(params, callback) {
		params.serviceClassName = this.serviceClassName;
		params.serviceMethodName = "getUserIdByEmailAddress";

		return Liferay.Service.ajax(params, callback);
	},

	connectLiferayUserToSchilling: function(params, callback) {
		params.serviceClassName = this.serviceClassName;
		params.serviceMethodName = "connectLiferayUserToSchilling";

		return Liferay.Service.ajax(params, callback);
	},

	getCountryIdFromIsoCountryCode: function(params, callback) {
		params.serviceClassName = this.serviceClassName;
		params.serviceMethodName = "getCountryIdFromIsoCountryCode";

		return Liferay.Service.ajax(params, callback);
	},

	getNullPointer: function(params, callback) {
		params.serviceClassName = this.serviceClassName;
		params.serviceMethodName = "getNullPointer";

		return Liferay.Service.ajax(params, callback);
	},

	getNoSuchUserException: function(params, callback) {
		params.serviceClassName = this.serviceClassName;
		params.serviceMethodName = "getNoSuchUserException";

		return Liferay.Service.ajax(params, callback);
	}
};

Liferay.Service.Schilling.SiteProperty = {
	serviceClassName: Liferay.Service.Schilling.servicePackage + "SiteProperty" + Liferay.Service.classNameSuffix,

	saveSiteProperty: function(params, callback) {
		params.serviceClassName = this.serviceClassName;
		params.serviceMethodName = "saveSiteProperty";

		return Liferay.Service.ajax(params, callback);
	},

	getSiteProperties: function(params, callback) {
		params.serviceClassName = this.serviceClassName;
		params.serviceMethodName = "getSiteProperties";

		return Liferay.Service.ajax(params, callback);
	},

	getSiteProperty: function(params, callback) {
		params.serviceClassName = this.serviceClassName;
		params.serviceMethodName = "getSiteProperty";

		return Liferay.Service.ajax(params, callback);
	},

	fetchSiteProperty: function(params, callback) {
		params.serviceClassName = this.serviceClassName;
		params.serviceMethodName = "fetchSiteProperty";

		return Liferay.Service.ajax(params, callback);
	},

	getSitePropertyString: function(params, callback) {
		params.serviceClassName = this.serviceClassName;
		params.serviceMethodName = "getSitePropertyString";

		return Liferay.Service.ajax(params, callback);
	},

	getSitePropertyStringNull: function(params, callback) {
		params.serviceClassName = this.serviceClassName;
		params.serviceMethodName = "getSitePropertyStringNull";

		return Liferay.Service.ajax(params, callback);
	}
};

Liferay.Service.Schilling.LanguageProperty = {
	serviceClassName: Liferay.Service.Schilling.servicePackage + "LanguageProperty" + Liferay.Service.classNameSuffix,

	saveLanguageProperty: function(params, callback) {
		params.serviceClassName = this.serviceClassName;
		params.serviceMethodName = "saveLanguageProperty";

		return Liferay.Service.ajax(params, callback);
	},

	getLanguageProperty: function(params, callback) {
		params.serviceClassName = this.serviceClassName;
		params.serviceMethodName = "getLanguageProperty";

		return Liferay.Service.ajax(params, callback);
	},

	fetchLanguageProperty: function(params, callback) {
		params.serviceClassName = this.serviceClassName;
		params.serviceMethodName = "fetchLanguageProperty";

		return Liferay.Service.ajax(params, callback);
	},

	getLanguageProperties: function(params, callback) {
		params.serviceClassName = this.serviceClassName;
		params.serviceMethodName = "getLanguageProperties";

		return Liferay.Service.ajax(params, callback);
	}
};

Liferay.Service.register("Liferay.Service.Schilling", "dk.schilling.portlet.schilling.service.http");

Liferay.Service.registerClass(
	Liferay.Service.Schilling, "Settings",
	{
		getSettings: true
	}
);

Liferay.Service.registerClass(
	Liferay.Service.Schilling, "LookupEntry",
	{
		lookup: true,
		lookupString: true
	}
);

Liferay.Service.registerClass(
	Liferay.Service.Schilling, "Product",
	{
		getAllProducts: true,
		getProducts: true,
		refreshProducts: true,
		refreshAllProducts: true,
		refreshProductsFromCategory: true,
		removeProduct: true,
		refreshProduct: true,
		findAll: true,
		search: true
	}
);

Liferay.Service.registerClass(
	Liferay.Service.Schilling, "CategoryText",
	{
		getTexts: true,
		getCategoryText: true,
		fetchCategoryText: true
	}
);

Liferay.Service.registerClass(
	Liferay.Service.Schilling, "Category",
	{
		getCategory: true,
		_getCategory: true,
		getByCategoryItemId: true,
		getCategoryTypes: true,
		getAllCategories: true,
		getCategories: true,
		findAllCategories: true,
		getByParentCategoryIdAndType: true,
		refreshCategories: true,
		removeCategory: true,
		buildCategoryHolderTree: true
	}
);

Liferay.Service.registerClass(
	Liferay.Service.Schilling, "FavoriteProduct",
	{
		getFavoriteProducts: true,
		setFavoriteProducts: true,
		updateFavoriteProductQuantity: true,
		addFavoriteProduct: true,
		removeFavoriteProduct: true
	}
);

Liferay.Service.registerClass(
	Liferay.Service.Schilling, "Order",
	{
		createPseudoOrder: true,
		sendEmail: true,
		getNewOrderNumber: true
	}
);

Liferay.Service.registerClass(
	Liferay.Service.Schilling, "OrderLine",
	{
		addOl: true
	}
);

Liferay.Service.registerClass(
	Liferay.Service.Schilling, "SchillingSession",
	{
		doTipAFriend: true
	}
);

Liferay.Service.registerClass(
	Liferay.Service.Schilling, "LanguageMapping",
	{
		saveLanguageMapping: true,
		getLanguageMapping: true,
		fetchLanguageMapping: true,
		getLanguageMappings: true,
		getLanguageMappingBySchillingLanguage: true,
		removeLanguageMapping: true
	}
);

Liferay.Service.registerClass(
	Liferay.Service.Schilling, "User",
	{
		getInvoicingDebtorId: true,
		getDebtorNumber: true,
		getDebtorOrganization: true,
		getSchillingStandardUser: true,
		getSchillingUser: true,
		getPricesDebtorId: true,
		getSchillingDebtorsByEmailDomain: true,
		getLrUser: true,
		getSchillingDebtorsWithAttention: true,
		saveAttention: true,
		getUserIdByEmailAddress: true,
		getCountryIdFromIsoCountryCode: true,
		getNullPointer: true,
		getNoSuchUserException: true,
		signupForNewsLetter: true
	}
);

Liferay.Service.registerClass(
	Liferay.Service.Schilling, "SiteProperty",
	{
		saveSiteProperty: true,
		getSiteProperties: true,
		getSiteProperty: true,
		fetchSiteProperty: true,
		getSitePropertyString: true,
		getSitePropertyStringDefault: true,
		getSitePropertyStringNull: true
	}
);

Liferay.Service.registerClass(
	Liferay.Service.Schilling, "LanguageProperty",
	{
		saveLanguageProperty: true,
		getLanguageProperty: true,
		fetchLanguageProperty: true,
		getLanguageProperties: true
	}
);

Liferay.Service.registerClass(
	Liferay.Service.Schilling, "CourseParticipant",
	{
		getCourseParticipants: true,
		countCourseParticipants: true,
		countCourseParticipantsNotCancelled: true,
		isAttentionAlreadySignedUp: true
	}
);

Liferay.Service.registerClass(
	Liferay.Service.Schilling, "CoursePeriod",
	{
		getFirstCoursePeriodPerItemId: true,
		getLastCoursePeriodPerItemId: true
	}
);

Liferay.Service.registerClass(
	Liferay.Service.Schilling, "CourseService_",
	{
		getAllCourseServices: true,
		getCourseServices: true,
		getCourseServicesByProductNumbers: true
	}
);

Liferay.Service.registerClass(
	Liferay.Service.Schilling, "Course",
	{
		getCourse: true,
		getNextCourseEvent: true
	}
);

Liferay.Service.registerClass(
	Liferay.Service.Schilling, "Resource",
	{
		getResources: true,
		saveResources: true
	}
);

Liferay.Service.registerClass(
	Liferay.Service.Schilling, "ReleaseNote",
	{
		refreshReleaseNotesFromSchilling: true,
		getArticleId: true
	}
);

Liferay.Service.registerClass(
	Liferay.Service.Schilling, "SchillingDeliveryMethod",
	{
		getAllowedDeliveryMethods: true,
		getDeliveryMethod: true,
		refreshDeliveryMethod: true
	}
);
