// Copyright 2003 Digital Kreasi. All rights reserved.
	

/**
	class PropertiesUI
*/


function PropertiesUI(owner) {
	this.owner = owner;
	
	var name = owner.name;
	var tooperate = '';
	
	//this.a = 'Properties_a_' + name;
	this.none = 'Properties_none_' + name;
	this.td = 'Properties_td_' + name;
	this.tr = 'Properties_tr_' + name;
	this.table = 'Properties_table_' + name;
	this.img = 'Properties_img_' + name;
	/*
	this.a_name = "Properties_a_name_"+name;
	this.a_href = "Properties_a_href_"+name;
	this.a_target = "Properties_a_target_"+name;
	*/
	this.td_width = "Properties_td_width_"+name;
	this.td_height = "Properties_td_height_"+name;
	this.td_align = "Properties_td_align_"+name;
	this.td_valign = "Properties_td_valign_"+name;
	this.td_bgcolor = "Properties_td_bgcolor_"+name;
	this.td_brdcolor = "Properties_td_brdcolor_"+name;
	this.td_nowrap = "Properties_td_nowrap_"+name;

	this.tr_align = "Properties_tr_align_"+name;
	this.tr_valign = "Properties_tr_valign_"+name;
	this.tr_bgcolor = "Properties_tr_bgcolor_"+name;
	this.tr_brdcolor = "Properties_tr_brdcolor_"+name;
	
	this.table_width = "Properties_table_width_"+name;
	this.table_height = "Properties_table_height_"+name;
	this.table_cellpadding = "Properties_table_cellpadding_"+name;
	this.table_cellspacing = "Properties_table_cellspacing_"+name;
	this.table_border = "Properties_table_border_"+name;
	this.table_align = "Properties_table_align_"+name;
	this.table_brdcolor = "Properties_table_brdcolor_"+name;
	this.table_valign = "Properties_table_valign_"+name;
	this.table_bgcolor = "Properties_table_bgcolor_"+name;
	
	this.img_width = "Properties_img_width_"+name;
	this.img_hspace = "Properties_img_hspace_"+name;
	this.img_align = "Properties_img_align_"+name;
	this.img_border = "Properties_img_border_"+name;
	this.img_height = "Properties_img_height_"+name;
	this.img_vspace = "Properties_img_vspace_"+name;
	this.img_alt = "Properties_img_alt_"+name;
		
}


// public methods
PropertiesUI.prototype.update = PropertiesUI_update;
PropertiesUI.prototype.prop_changed = PropertiesUI_prop_changed;
PropertiesUI.prototype.chooseBgColor = PropertiesUI_chooseBgColor;
PropertiesUI.prototype.chooseBrdColor = PropertiesUI_chooseBrdColor;
PropertiesUI.prototype.selectOption = PropertiesUI_selectOption;
PropertiesUI.prototype.clear = PropertiesUI_clear;

function PropertiesUI_clear() {
	//document.getElementById(this.a).style.display='none';
	document.getElementById(this.td).style.display='none';
	document.getElementById(this.tr).style.display='none';
	document.getElementById(this.table).style.display='none';
	document.getElementById(this.img).style.display='none';
}
/**
* update properties for a specific tag in property editor
*
* @param
*	obj - ktml object
*/
function PropertiesUI_update(){
	this.clear();
	if (this.owner.selectableNodes && this.owner.selectableNodes[0]) {
		try {
			if (   this.owner.selectableNodes[0].tagName == 'TD' 
					|| this.owner.selectableNodes[0].tagName == 'TR' 
					|| this.owner.selectableNodes[0].tagName == 'TABLE' 
					|| this.owner.selectableNodes[0].tagName == 'IMG' 
					|| this.owner.selectableNodes[0].tagName == 'A' 
				) {
					tooperate = this.owner.selectableNodes[0];
				} else {
					tooperate = null;
					var i=1;
					while (this.owner.selectableNodes[i].tagName != 'TD' && i < this.owner.selectableNodes.length) {
						i++;
					}
					if(i<this.owner.selectableNodes.length) {
						tooperate = this.owner.selectableNodes[i];
					}
				}
		} catch (e) {
		}
		
		this.owner.inspectedNode = tooperate;
		
		if (!tooperate) 
			return;
			
		if (tooperate.tagName == 'TD') {
			document.getElementById(this.td).style.display='block';
			if (tooperate.style.width) {
				tooperate.width = tooperate.style.pixelWidth;
				tooperate.style.width = '';
			}
			if (tooperate.style.height) {
				tooperate.height = tooperate.style.pixelHeight;
				tooperate.style.height = '';
			}
			util_setInput(document.getElementById(this.td_width), tooperate.getAttribute("width"));
			util_setInput(document.getElementById(this.td_height), tooperate.getAttribute("height"));
			this.selectOption(document.getElementById(this.td_align), tooperate.getAttribute("align"));
			this.selectOption(document.getElementById(this.td_valign), tooperate.getAttribute("vAlign"));
			util_setInput(document.getElementById(this.td_bgcolor), tooperate.getAttribute("bgColor"));
			util_setInput(document.getElementById(this.td_brdcolor), tooperate.getAttribute("borderColor"));
			if (tooperate.noWrap) {
				document.getElementById(this.td_nowrap).checked = true;
			} else {
				document.getElementById(this.td_nowrap).checked = false;
			}
		}

		if (tooperate.tagName == 'TR') {
			document.getElementById(this.tr).style.display='block';
			this.selectOption(document.getElementById(this.tr_align), tooperate.getAttribute("align"));
			this.selectOption(document.getElementById(this.tr_valign), tooperate.getAttribute("vAlign"));
			util_setInput(document.getElementById(this.tr_bgcolor), tooperate.getAttribute("bgColor"));
			util_setInput(document.getElementById(this.tr_brdcolor), tooperate.getAttribute("borderColor"));
		}

		if (tooperate.tagName == 'TABLE') {
			document.getElementById(this.table).style.display='block';
			if (tooperate.style.width) {
				tooperate.width = tooperate.style.pixelWidth;
				tooperate.style.width = '';
			}
			if (tooperate.style.height) {
				tooperate.height = tooperate.style.pixelHeight;
				tooperate.style.height = '';
			}
			
			util_setInput(document.getElementById(this.table_width), tooperate.getAttribute("width"));
			util_setInput(document.getElementById(this.table_height), tooperate.getAttribute("height"));
			util_setInput(document.getElementById(this.table_cellpadding), tooperate.getAttribute("cellPadding"));
			util_setInput(document.getElementById(this.table_cellspacing), tooperate.getAttribute("cellSpacing"));
			util_setInput(document.getElementById(this.table_border), tooperate.getAttribute("border"));
			this.selectOption(document.getElementById(this.table_align), tooperate.getAttribute("align"));
			util_setInput(document.getElementById(this.table_brdcolor), tooperate.getAttribute("borderColor"));
			util_setInput(document.getElementById(this.table_bgcolor), tooperate.getAttribute("bgColor"));

		}

		if (tooperate.tagName == 'IMG') {
			document.getElementById(this.img).style.display='block';
			if (tooperate.style.width) {
				tooperate.width = tooperate.style.pixelWidth;
				tooperate.style.width = '';
			}
			if (tooperate.style.height) {
				tooperate.height = tooperate.style.pixelHeight;
				tooperate.style.height = '';
			}

			util_setInput(document.getElementById(this.img_width), tooperate.getAttribute("width"));
			util_setInput(document.getElementById(this.img_hspace), tooperate.getAttribute("hspace"));
			document.getElementById(this.img_align).selectedIndex = tooperate.getAttribute("align");
			this.selectOption(document.getElementById(this.img_align), tooperate.getAttribute("align"));			
			util_setInput(document.getElementById(this.img_border), tooperate.getAttribute("border"));
			util_setInput(document.getElementById(this.img_height), tooperate.getAttribute("height"));
			util_setInput(document.getElementById(this.img_vspace), tooperate.getAttribute("vspace"));
			util_setInput(document.getElementById(this.img_alt), tooperate.getAttribute("alt"));

		}
		/*	
		if (tooperate.tagName == 'A') {
			document.getElementById(this.a).style.display='block';

			util_setInput(document.getElementById(this.a_name), tooperate.getAttribute("name"));
			util_setInput(document.getElementById(this.a_href), tooperate.getAttribute("href"));
			this.selectOption(document.getElementById(this.a_target), tooperate.getAttribute("target"));
		}
		*/
	}
}

/**
* change a tag property
*
* @param
*	propName - property name
*	propValue - property value
*/
function PropertiesUI_prop_changed(propName, propValue){
	if (this.owner.selectableNodes && this.owner.selectableNodes[0]) {
		/*if (this.owner.selectableNodes[0].tagName == 'TD' 
				|| this.owner.selectableNodes[0].tagName == 'TR' 
				|| this.owner.selectableNodes[0].tagName == 'TABLE' 
				|| this.owner.selectableNodes[0].tagName == 'IMG' 
				|| this.owner.selectableNodes[0].tagName == 'A' 
			) {
				var tooperate = this.owner.selectableNodes[0];
		}*/
		if (propValue != '' && propValue != 'false') {
			propValue = String(propValue);
			propValue = propValue.replace(/'/g, "\\'");
			tooperate.setAttribute(propName, propValue);
		} else {
			if (this.owner.selectableNodes[0].tagName == 'IMG' && (propName=="width" || propName=="height")) {
				tooperate.removeAttribute("width");
				tooperate.removeAttribute("height");
				util_setInput(document.getElementById(this.img_width), "");
				util_setInput(document.getElementById(this.img_height), "");
			} else {
			tooperate.removeAttribute(propName);
		}
		}
		/*
		if (this.owner.svdSelection) {
			this.owner.util_restoreSelection();
		} else {
			this.owner.cw.focus();
		}
		*/
		if (
			tooperate.tagName == 'TABLE' && 
			propName == 'border'
		) {
			if (this.owner.viewinvisibles == true) {
				if (propValue == '' || propValue == 0) {
					Ktml_utils_makeTableOutline(tooperate);
				} else {
					Ktml_utils_unmakeTableOutline(tooperate);
				}
			} else {
				
			}
		}
		if(this.owner.undo) {
			this.owner.undo.addEdit();
		}
	}
}

function PropertiesUI_chooseBgColor(element, idu) {
	if (this.owner.cpalette.isVisible) {
		this.owner.cpalette.setVisible(false);
	} else {
		var p = lay_getAbsolutePos(element);
		this.owner.cpalette.setAction("util_setInput(document.getElementById('"+idu+"'), selectedColor);this.owner.properties.prop_changed('bgColor', document.getElementById('"+idu+"').value);");
		this.owner.cpalette.setSelected(document.getElementById(idu).value);
		this.owner.cpalette.showAt(p.x, p.y + element.offsetHeight - 271);
		this.owner.cpalette.setVisible(true);
		//this.owner.cpalette.setSelected();
	}
	return false;
}

function PropertiesUI_chooseBrdColor(element, idu) {
	if (this.owner.cpalette.isVisible) {
		this.owner.cpalette.setVisible(false);
	} else {
		var p = lay_getAbsolutePos(element);
		this.owner.cpalette.setAction("util_setInput(document.getElementById('"+idu+"'), selectedColor);this.owner.properties.prop_changed('borderColor', document.getElementById('"+idu+"').value);");
		this.owner.cpalette.setSelected(document.getElementById(idu).value);
		this.owner.cpalette.showAt(p.x, p.y + element.offsetHeight - 271);
		this.owner.cpalette.setVisible(true);
	}
	return false;	
}


/**
* selects an option in a html dropdown
*
* @param
*	select - dropdown object
*	option - the value to be selected
*/
function PropertiesUI_selectOption(select, option) {
	for (i=0; i<select.options.length; i++) {
		if(select.options[i].value==option) {
			select.options[i].selected = true;
			return;
		}
	}
	// select default option
	select.options[0].selected = true;
}
