/**
 * @author michal
 */
function CollapsedWindow(me){

	var added = false;
	var title_status = me.title_status;
	
	var thumbnail = new Ext.Element(document.createElement('div'));
	thumbnail.update(getContent(me.url));
	thumbnail.on('click', me.onMaximize);
	thumbnail.addClass('x-thumbnail');
	thumbnail.applyStyles({
		width: '120px',
		height: '90px',
		overflow: 'hidden'
	})
	
	var short_title = new Ext.Element(document.createElement('div'));
	short_title.update('<small>' + getTitle(me.title) + '</small>');
	short_title.on('click', titleEdit);
	short_title.addClass('x-bookmark-bbar x-toolbar');
	short_title.applyStyles({
		cursor: 'pointer',
		overflow: 'hidden'
	});
	
	var full_title = new Ext.form.TextArea({
		value: me.title,
		cls: 'x-title-area',
		width: '100%',
		height: '100%',
		enableKeyEvents: true,
		hidden: (title_status == 1) ? false : true,
		key_count: 0
	});
	full_title.on('keyup', function(){
		full_title.key_count++;
		var count = full_title.key_count;
		setTimeout(function(){
			if (count == full_title.key_count) {
				var title = full_title.getValue();
				if (title) {
					me.onTitleChange(title);
				}
			}
		}, 3000);
	});
	
	var switch_element = new Ext.Element(document.createElement('div'));
	switch_element.addClass('x-collapsed-switch');
	switch_element.on('click', function(){
		if (title_status == 1) {
			title_status = 0;
			full_title.hide();
		}
		else {
			title_status = 1;
			full_title.show();
		}
		me.onTitleStatusChange(title_status);
	});
	
	var el = new Ext.Window({
		iconCls: me.icon ? 'icon' : 'frame_tab',
		headerStyle: 'background-image: url(' + me.icon + ')',
		width: 132,
		height: 141,
		manager: me.manager,
		resizable: false,
		maximizable: false,
		border: false,
		items: [full_title, thumbnail, short_title, switch_element],
		tools: [{
			id: 'plus',
			handler: me.onExpand
		}, {
			id: 'gear',
			handler: me.onGear
		}, {
			id: 'maximize',
			handler: me.onMaximize
		}]
	});
	el.on('activate', me.onActivate);
	el.on('close', me.onClose);
	el.on('move', me.onMove);
	
	function getTitle(title){
	
		var trim_title = title.substring(18, 0);
		if (title != trim_title) {
			trim_title += '…';
		}
		return trim_title;
	}
	
	function getContent(url){
		return '<a href="' + url + '" onclick="return false;"><img class="thumbnail" src="http://open.thumbshots.org/image.aspx?url=' + url + '" alt="' + msg.thumbnailAlt + '" /></a>'
	}
	
	function setMaximize(){
		window.maximize();
	}
	
	function setClose(){
		me.onDelete(me.id);
	}
	
	function titleEdit(){
		full_title.show();
		title_status = 1;
		me.onTitleStatusChange(title_status);
	}
	
	this.show = function(x, y){
		if (added == false) {
			el.render('desktop');
			added = true;
		}
		el.show();
		el.setPosition(x, y)
	}
	
	this.hide = function(){
		el.hide();
	}
	
	this.setUrl = function(url){
		thumbnail.update(getContent(url));
	}
	
	this.setTitle = function(title){
		short_title.update('<small>' + getTitle(title) + '</small>');
		full_title.setValue(title);
	}
	
	this.setTitleStatus = function(value){
		if (title_status != value) {
			title_status = value;
			if (!added) {
				full_title.hidden = (title_status == 1) ? false : true;
			}
			else if (title_status == 1) {
				full_title.show();
			}
			else if (title_status == 0) {
				full_title.hide();
			}
		}
	}
	
	this.setIcon = function(icon){
		if (added) {
			var header = Ext.get(Ext.get(el.el).query('.x-window-header'));
			if (icon) {
				header.setStyle('background-image', 'url(' + icon + ')');
				header.removeClass('frame_tab');
				header.addClass('favicon');
			}
			else {
				header.setStyle('background-image');
				header.removeClass('favicon');
				header.addClass('frame_tab');
			}
		}
		else {
			el.iconCls = icon ? 'icon' : 'frame_tab';
			el.headerStyle = 'background-image: url(' + icon + ')';
		}
	}
	
	this.destroy = function(){
		if (added) {
			el.destroy();
		}
	}
}

