function findNodeByTag(el,tag){
	while((el.nodeName.toLowerCase()!=tag)&&(el=el.parentNode));
	return el;
}

function AWL_setTimeValue(obj,type) {

	var f = obj.parentNode.lastChild.getAttribute('format')||'';
	var s = obj.parentNode.lastChild.getAttribute('step')*1;
	var inp = obj.parentNode.lastChild;

	if (type == 1) {
		var min = obj.nextSibling.nextSibling;
		var hour = obj;
	} else if (type == 2) {
		var min = obj;
		var hour = obj.previousSibling.previousSibling;
	}

	if (f.match(/\[\d{4};\d{4}\]/)) {
		var hs = f.slice(1,3)*1;
		var ms = f.slice(3,5)*1;
		var he = f.slice(6,8)*1;
		var me = f.slice(8,10)*1;
		var m = 0;

		if (hour.value == hs) {
			redraw(min,ms,59,s);
		} else if (hour.value == he) {
			redraw(min,0,me,s);
		} else {
			redraw(min,0,59,s);
		}
	}
	inp.value = hour.value+''+(min.value<10 ? '0'+min.value:min.value);

	function redraw(obj,start,end,step) {

		var mvalue = min.value;
		var newvalue = 0;
		var delta = 1000000;
		var p = obj.parentNode;
		while(obj.firstChild) obj.removeChild(obj.firstChild);
		p.removeChild(obj);
		var obj = document.createElement('select');
		obj.onchange = function () {AWL_setTimeValue(this,2)};
		p.insertBefore(obj,p.lastChild);

		for(var i=start;i<=end;i+=step) {
			var o = document.createElement('option');
			o.value = i;
			if (Math.abs(mvalue-i)<delta) {
				newvalue = i;
				delta = Math.abs(mvalue-i);
			}
			o.appendChild(document.createTextNode((i<10 ? '0'+i:i)));
			obj.appendChild(o);
		}

		obj.value = newvalue;
		return newvalue;
	}
}

function AWL_toogleEditability(obj) {

	var groupname = obj.name.replace('PST_CTRL_','');

	for(var i=0;i<obj.form.elements.length;i++) {
		var el = obj.form.elements[i];
		if (el.getAttribute('enabler') == groupname) {

			el.disabled = !obj.checked;
			if (el.disabled) {
				el.className+= ' AWL_formControlDisabled';
			} else {
				el.className = el.className.replace('AWL_formControlDisabled','');
			}
		}
	}
}

function hideHint() {
	var div = document.getElementById('AWL_hint')
	div.style.display = 'none';
	while(div.firstChild) div.removeChild(div.firstChild);
	this.title = this.getAttribute('tt');
}

function showHint(obj,e) {

	var x,y;

	if (e.pageY) {
		x=e.pageX;
		y=e.pageY;
	} else if (window.event && document.documentElement && document.documentElement.scrollTop) {
		x=event.clientX+document.documentElement.scrollLeft;
		y=event.clientY+document.documentElement.scrollTop;
	} else if (window.event && document.body) {
		x=event.clientX+document.body.scrollLeft;
		y=event.clientY+document.body.scrollTop;
	} else {
		x=800;
		y=600;
	}

	var div = document.getElementById('AWL_hint');

	if (!div) {
		div = document.createElement('DIV');
		div.setAttribute('id','AWL_hint');
		div.style.position = 'absolute';
		document.getElementsByTagName('body')[0].appendChild(div);
	}

	if (obj.previousSibling) {
		if (obj.previousSibling.title) {
			var span = document.createElement('SPAN');
			span.appendChild(document.createTextNode(obj.previousSibling.title));
			div.appendChild(span);
		}
	}

	div.style.display = 'block';
	if (typeof(obj.onmouseout)!='function') {
		obj.onmouseout = hideHint;
	}
	if (obj.title) {
		div.appendChild(document.createTextNode(obj.title));
	}
	obj.setAttribute('tt',obj.title);
	obj.title = '';
	div.style.top=(y)+'px'
	div.style.left=(x+20)+'px'
}