Ext.ns('component.gvd');

component.gvd.companytag = new function() {
	
	this.addTag = function() {
		var loading = Ext.get('tag-loading');
		var id = Ext.get('company-id').getValue();
		var tagname = Ext.get('tag-name').getValue();
		
		if(tagname != '') {
			loading.setOpacity(0);
			loading.setDisplayed('block');
			loading.setOpacity(.7, {
					duration: .4
			});
			
			Ext.Ajax.request({
				url: 'ajax.php',
				success: component.gvd.companytag.tagSaved,
				params: {
					comp: 'com_gvd_showcompany',
					action: 'saveTag',
					id: id,
					tag: tagname
				}
			});
		}
	};
	
	this.tagSaved = function(response) {
		response = Ext.decode(response.responseText);
		
		if(response != null) {
			var loading = Ext.get('tag-loading');
			var container = Ext.get('company-tags');
			
			container.update();
			
			for(var i = 0; i < response.length; i++) {
				container.insertHtml('beforeEnd', '<div class="tag" onclick="component.gvd.companytag.reportTag(\'' + response[i].id + '\', this);">' + response[i].tag + '</div>');
			}
			
			container.insertHtml('beforeEnd', '<div class="clear"></div>');
			
			loading.setOpacity(0, {
					duration: .4,
					callback: function() {
						loading.setDisplayed('none');
					}
			});
		}
	};
	
	this.reportTag = function(id, companyId, tag) {
		var tag = Ext.get(tag);
		
		if(tag.hasClass('tag-report')) {
			Ext.Ajax.request({
				url: 'ajax.php',
				success: component.gvd.companytag.tagReported,
				params: {
					comp: 'com_gvd_showcompany',
					action: 'reportTag',
					id: id,
					companyId: companyId
				}
			});
		}
	};
	
	this.tagReported = function(response) {
		response = Ext.decode(response.responseText);
		var container = Ext.get('message-container');
		
		if(response.state != null) {
			container.update('Das Tag wurde gemeldet.');
		} else {
			container.update('Das Tag konnte nicht gemeldet werden.');
		}
		
		component.gvd.companytag.reportTags();
	};
	
	this.reportTags = function() {
		var tags = Ext.query('.tag');
		
		for(var i = 0; i < tags.length; i++) {
			var tag = Ext.get(tags[i]);
			
			if(tag.hasClass('tag-report')) {
				tag.removeClass('tag-report');
			} else {
				tag.addClass('tag-report');
			}
		}
	};
	
};
