
var
	ko = require('ko'),

	AppStore = require('Stores/User/App'),
	ContactStore = require('Stores/User/Contact'),

	Remote = require('Remote/User/Ajax');

/**
 * @constructor
 */
function ContactsUserSettings()
{
	this.contactsAutosave = AppStore.contactsAutosave;

	this.allowContactsSync = ContactStore.allowContactsSync;
	this.enableContactsSync = ContactStore.enableContactsSync;
	this.contactsSyncUrl = ContactStore.contactsSyncUrl;
	this.contactsSyncUser = ContactStore.contactsSyncUser;
	this.contactsSyncPass = ContactStore.contactsSyncPass;

	this.saveTrigger = ko.computed(function() {
		return [
			this.enableContactsSync() ? '1' : '0',
			this.contactsSyncUrl(),
			this.contactsSyncUser(),
			this.contactsSyncPass()
		].join('|');
	}, this).extend({'throttle': 500});
}

ContactsUserSettings.prototype.onBuild = function()
{
	this.contactsAutosave.subscribe(function(bValue) {
		Remote.saveSettings(null, {
			'ContactsAutosave': bValue ? '1' : '0'
		});
	});

	this.saveTrigger.subscribe(function() {
		Remote.saveContactsSyncData(null,
			this.enableContactsSync(),
			this.contactsSyncUrl(),
			this.contactsSyncUser(),
			this.contactsSyncPass()
		);
	}, this);
};

export {ContactsUserSettings, ContactsUserSettings as default};
