var base = (window.opener&&window.opener.base)?window.opener.base:(window.opener?window.opener:window);

function focusFormField(f, e) {
	if(document.forms[f] && document.forms[f].elements[e]) {
		document.forms[f].elements[e].focus();
		document.forms[f].elements[e].click();
	}
}

function silentSubmit(f) {
	f.elements['silent'].value = 1;
	f.submit();
}

function createTableRow(f, _, c) {
	var tr = document.createElement('TR');
	if(c)
		tr.className = c;
	for(var i=0;i<_.length;i++) {
		var td = document.createElement('TD');
		if(_[i][0]=='text') {
			td.style.fontWeight = 'bold';
			td.innerHTML = _[i][1];
			if(_[i][2])
				td.colspan = _[i][2];
			if(_[i+1] && _[i+1][0]=='textarea')
				td.style.verticalAlign = 'top';
		}
		else if(_[i][0]=='input') {
			var input = document.createElement('INPUT');
			input.type = 'text';
			input.name = _[i][1];
			input.style.width = _[i][2];
			td.appendChild(input);
		}
		else if(_[i][0]=='textarea') {
			var input = document.createElement('TEXTAREA');
			input.name = _[i][1];
			input.style.width = _[i][2];
			input.style.height = _[i][3];
			td.appendChild(input);
		}
		else if(_[i][0]=='select') {
			var input = document.createElement('SELECT');
			input.name = _[i][1];
			input.style.width = _[i][2];
			var opts = f.elements[_[i][3]].value.split(',');
			for(var j=0;j<opts.length;j++) {
				var option = document.createElement('OPTION');
				option.value = opts[j];
				option.text = opts[j];
				input.options[input.options.length] = option;
			}
			td.appendChild(input);
		}
		tr.appendChild(td);
	}
	return tr;
}

function owningTableRow(e) {
	return owningElement(e, 'TR');
}

function owningTableBody(e) {
	return owningElement(e, 'TBODY');
}

function owningElement(e, t) {
	return e.tagName==t?e:owningElement(e.parentNode, t);
}

function toClip(str) {
	if(window && window.clipboardData && window.clipboardData.setData)
	    window.clipboardData.setData('Text', str);
	else {
		var s = document.getElementById('displayClipData');
		if(str) {
			s.style.borderStyle = 'dashed';
			s.style.borderWidth = '1px';
			s.style.borderColor = '#c0c0c0';
			s.style.marginRight = '3px';
			s.style.padding = '2px';
		}
		else
			s.style.borderWidth = '0px';
		s.innerHTML = str;
	}
}

function openWindow(a, width, height, noscroll, noresize) {
	var r;
	if(base!=window)
		r = base.openWindow(a, width, height, noscroll, noresize);
	else {
		var w = 0;
		var wtyycemc = document.cookie.split(';');
		for(var i in wtyycemc) {
			var c = wtyycemc[i].split('=');
			if(trim(c[0])=='open_windows')
				w = c[1];
		}
		r = window.open((typeof a)=='string'?a:a.href, 'Window'+(w++), (width?'width='+width+',':'')+(height?'height='+height+',':'')+'address=no,status=no,scrollbars='+(noscroll?'no':'yes')+',resizable='+(noresize?'no':'yes'));
		document.cookie = 'open_windows='+w+'; path=/';
	}
	return r;
}

function trim(_) {
	return _.replace(/^\s*|\s*$/g, '');
}

function elementPos(o) {
	var r = {x:o.offsetLeft,y:o.offsetTop};
	if(o.offsetParent) {
		var t = elementPos(o.offsetParent);
		r.x+=t.x;
		r.y+=t.y;
	}
	return r;
}
