/* $Id: avw.js,v 1.18 2005/05/04 19:02:09 herb Exp $ */

var isIE = (navigator.appName.indexOf("Microsoft") != -1);

function openWin(url,toolbar) {
	if (toolbar != "") {
		popup = window.open("com.dec.avw.html.HTMLWorklistHandler.showPopup?url="+escape(url),"popup","directories=0," + toolbar + ",scrollbars=1,resizable=1,left=" + getLeft() + ",top=" + getTop());
	} else {
		var popup = window.open("com.dec.avw.html.HTMLWorklistHandler.showPopup?url="+escape(url),"popup","directories=0,toolbar=0,scrollbars=1,resizable=1,left=" + getLeft() + ",top=" + getTop());
	}
	popup.focus();
}

function cbToggle(form, id, togg) {
	boolval = togg.checked;
	var el = form.elements[id];
	if (el != null) { // if there a result line
		if (el.length > 1) {
			// more than one result line, array treatment
			for (i=0; i < el.length; i++) {
				el[i].checked = boolval;
			}
		} else {
			el.checked = boolval;
		}
	}
}

function setWinStatus(s){
	//alert(top.document.defaultView.status);
	if (isIE) {
		window.status = s;
		window.defaultStatus = s;
	} else {
		top.document.defaultView.defaultStatus = s;
		top.document.defaultView.status = s;
	}
}

function selectUser(title,field,noClass) {
	var userwin = window.open("../servlet.method/com.groiss.wf.html.HTMLUtils.selectList?classname=com.dec.avw.core.User&attribs=surname,firstName,id&searchAttrs=surname,id&title="+title+"&field="+field+
	(noClass ? "&noClass" : ""),
		"_blank",'width=500,height=500,directories=0,toolbar=0,scrollbars=1,resizable=1');
	userwin.focus();
}

function selectRole(title,field,noClass) {
	var rolewin = window.open("../servlet.method/com.groiss.wf.html.HTMLUtils.selectList?classname=com.dec.avw.core.Role&attribs=id,name&searchAttrs=id,name&title="+title+"&field="+field+
	(noClass ? "&noClass" : ""),
		"_blank",'width=500,height=500,directories=0,toolbar=0,scrollbars=1,resizable=1');
	rolewin.focus();
}

function selectDept(title,field,noClass) {
	var deptwin = window.open("../servlet.method/com.groiss.wf.html.HTMLUtils.selectList?classname=com.dec.avw.core.Dept&attribs=name,id&searchAttrs=name,id&title="+title+"&field="+field+
	(noClass ? "&noClass" : ""),
		"_blank",'width=500,height=500,directories=0,toolbar=0,scrollbars=1,resizable=1');
	deptwin.focus();
}

/**
* @param classname p.e. com.dec.avw.core.Dept
* @param title p.e. @@@dept@@
* @param field p.e. dept
*/
function openSelectWin(classname,title,field,noClass) {
	var url = "com.groiss.wf.html.HTMLUtils.selectList?classname=" + classname +
		"&title=" + title +
		"&field=" + field +
		(noClass ? "&noClass" : "");
	var win = window.open(url, "select", "width=500,height=500,directories=0,toolbar=0,scrollbars=1,resizable=1");
	win.focus();
}


function clearField(field) {
	field.value='';
	f2 = eval("document.forms[0]."+field.name + "_display");
	if (f2)
		f2.value = '';
}


function changeParam(search, values) {
	var result ="";
	if (search != "") {
		var arr = search.substring(1).split("&");
	} else {
		arr = new Array(0);
	}
	for (var i = 0; i < values.length; i++) {
		var e = values[i].indexOf("=");
		var key;
		if (e == -1)
			key = values[i];
		else
			key = values[i].substring(0,e);
		var found = false;
		for (var j = 0; j < arr.length; j++) {
			if (arr[j].indexOf(key+"=") == 0){
				found = true;
				arr[j] = values[i];
			}
		}
		if (!found)
			result += "&" + values[i];
	}
	return "?" + arr.join("&") + result;
}


function removeParam(search, name) {
	var result ="";
	if (search != "") {
		var arr = search.substring(1).split("&");
		for (var i = 0; i < arr.length; i++) {
			var e = arr[i].indexOf("=");
			var key;
			if (e == -1)
				key = arr[i];
			else
				key = arr[i].substring(0,e);
			if (key == name)
				arr[i] = null;
		}
	}
	return "?"+arr.join("&");
}


function getParam(name) {
	var search = document.location.search;
	search = "&"+search.substring(1);
	var i = search.indexOf("&"+name+"=");
	if (i == -1) return null;
	var rest = search.substring(i + name.length + 2);
	i = rest.indexOf("&");
	if (i== -1)
		return rest;
	else
		return rest.substring(0,i);
}

function getParamFrom(search, name) {
	search = "&"+search.substring(1);
	var i = search.indexOf("&"+name+"=");
	if (i == -1) return null;
	var rest = search.substring(i + name.length + 2);
	i = rest.indexOf("&");
	if (i== -1)
		return rest;
	else
		return rest.substring(0,i);
}



//determine the top-position of specified window
function getTop() {
	var top = 0;
	if (isIE) top = parent.screenTop;
	else
		top = window.screenY + 30;
	return top;
}

//determine the left-position of specified window
function getLeft() {
	var left = 0;
	if (isIE) left = parent.screenLeft;
	else left = window.screenX + 30;
	return left;
}


function getLabel(id) {
	var labels = document.forms[0].getElementsByTagName("LABEL");
	for (var i=0; i<labels.length; i++) {
		var label = labels[i];
		if (label.htmlFor == id) {
			return label;
		}
	}
	return null;
}



/** add event
* by Scott Andrew LePera
* http://www.scottandrew.com/weblog/articles/cbs-events
*/
function addEvent(obj, evType, fn){
	if (obj.addEventListener){
		obj.addEventListener(evType, fn, false);
		return true;
	} else if (obj.attachEvent){
		var r = obj.attachEvent("on"+evType, fn);
		return r;
	} else {
		return false;
	}
}

/** remove event
* by Scott Andrew LePera
* http://www.scottandrew.com/weblog/articles/cbs-events
*/
function removeEvent(obj, evType, fn){
	if (obj.removeEventListener){
		obj.removeEventListener(evType, fn, false);
		return true;
	} else if (obj.detachEvent){
		var r = obj.detachEvent("on"+evType, fn);
		return r;
	} else {
		return false;
	}
}