function filter(form) {
	var params = montaParams(form);
	populateUrlParams(params, window.location.search, "vo.", "dto.","page", "id", "params", "operators");
	window.location = montaURL(params);
}

function filterPopin(form) {
	var params = montaParams(form);
	var url = messageObj.url.indexOf("?") < 0 ? messageObj.url + "?": messageObj.url.substr(0, (messageObj.url.indexOf("?") + 1));
	populateUrlParams(params, url, "vo.", "dto.", "page", "id");
	url = montaURL(params, url);
	displayMessage(url, messageObj.width, messageObj.height)
}

function filterDiv(form, divName) {
	var params = montaParams(form);
	var url = dynamicContent_url[divName];
	if (!url) {
		url = form.action + '?';
	}
	populateUrlParams(params, url, "vo.", "dto.", "page", "params", "operators");
	url = montaURL(params, url.indexOf('?') > 0 ? url.substr(0, url.indexOf('?') + 1) : url);

	loadPage(divName, url);
}

function filterRel(form, url) {
	if(validation.validate(form)){	
		var params = montaParams(form);
		populateUrlParams(params, window.location.search, getFilterExclude());
		window.open( montaURL(params, url), 'PDF', 'STATUS=NO, TOOLBAR=NO, LOCATION=NO, DIRECTORIES=NO, RESISABLE=NO, SCROLLBARS=YES, TOP=10, LEFT=10, WIDTH=770, HEIGHT=400');
	}
}

function getFilterExclude() {
	var excludes = new Array();
	excludes.push("vo.");
	excludes.push("dto.");
	excludes.push("page");
	excludes.push("id");
	excludes.push("params");
	excludes.push("operators");
	
	return additionalExclude(excludes);
}

function additionalExclude(excludes) {
	return excludes;
}

function goto(page) {
	var params = new Array;

	populateUrlParams(params, window.location.search,"page", "pesquisar");
	
	params["page"] = page;
	
	var url = montaURL(params);
	window.location = url;
}

function gotoPopin(page) {
	var params = new Array();
	var url = messageObj.url.indexOf("?") < 0 ? messageObj.url + "?" : messageObj.url.substr(0, (messageObj.url.indexOf("?") + 1));
	populateUrlParams(params, messageObj.url,"page", "pesquisar");
	params["page"] = page;
	displayMessage(montaURL(params, url), messageObj.width, messageObj.height)
}

function gotoDiv(page, divName) {
	var params = new Array;
	var url = dynamicContent_url[divName];
	if (url.indexOf('?') < 0) {
		url += "?";
	}
	populateUrlParams(params, url,"page", "pesquisar", "grupo", "aba");
	
	params["page"] = page;
	
	url = montaURL(params, url.substr(0, url.indexOf('?') + 1));
	loadPage(divName, url)
}

function montaParams(form) {
	var params = new Array();
	for(i = 0; i < form.elements.length; i ++) {
		var el = form.elements[i];
		if (!el.disabled && el.name !== "" && (el.value !== "" && (el.type !== "radio" || el.checked))) {
			params[el.name] = el.value;
		}
	}
	
	params["pesquisar"] = true;
	return params;
}

function montaURL(params, url) {
	if (url == null) {
		url = window.location.pathname + "?";
	}
	
	url = url.replace("delete","list").replace("internalDelete","divList");
	
	if (url.indexOf('?') < 0) {
		url = url + '?';
	}

	var amper = "";
	for(var key in params) {
		if (key !== "" && params[key] !== null && (params[key]+ "").trim() != "" && key != "order" && key != "sorting") {
			url = url + amper + key + "=" + escape(unescape(params[key]));
			if (amper === "") {
				amper = "&";
			}
		}
	}
	var order = document.getElementsByName('order');
	var sorting = document.getElementsByName('sorting');
	for(i = 0; i < order.length; i ++) {
		
		if(order[i].value != "") {
			url += "&order=" + order[i].value;
			if(sorting[i].value != "") {
				url += "&sorting=" + sorting[i].value;
			}
		}
	}
	return url;
}

function populateUrlParams(params, search) {
	var excludes = arguments;
	var qm = search.indexOf('?'); 
	if (qm >= 0) {
		search = search.substr(qm);
	}
	if(search !== "") {
		var paramsTmp = search.substr(1).split('&');
		for(var i in paramsTmp) {
			var paramArray = paramsTmp[i].split('=');
			if ((excludes == null || !isExclude(paramArray[0], excludes)) && paramArray[0] !== "" && paramArray[1] !== "") {
				params[paramArray[0]] = paramArray[1];
			}
		}
	}
}

function isExclude(param, excludes) {
	for (i = 2; i < excludes.length; i ++) {
		if (param.indexOf(excludes[i]) >= 0) {
			return true;
		}
	}
	return false;
}

function toggleFilter(buttom, div) {
	var table = document.getElementById(div + "FilterTable");
	var close = table.style.display == "" ? true : false;
	if (close) {
		table.style.display = "none";
//		buttom.value = ">>";
		buttom.className = "bt03_max";
	} else {
		table.style.display = "";
//		buttom.value = "<<";
		buttom.className = "bt03_min";
	}
}

function orderFilter() {
	var tr = document.getElementById("orderTr");
	if (tr.style.display  == "none") {
		tr.style.display = "block";
	} else {
		tr.style.display = "none";
	}
}

function listDependency(fieldName, propertyName, propertyValue, childName, childValue) {
	var listaProxy = function(lista) {
		callbackListDependent(lista, childName, childValue);
	}
	utilAjax.listDependency(fieldName, propertyName, propertyValue, listaProxy);
}

function callbackListDependent(lista, childName, childValue) {
	dwr.util.removeAllOptions(childName);
	if (lista.length > 0) {
		dwr.util.addOptions(childName, [" "]);
		dwr.util.addOptions(childName, lista, "idValue", "nome");
		if (childValue) {
			dwr.util.setValue(childName, childValue);
		}
	}
}