var isIE = navigator.appName == 'Microsoft Internet Explorer';

/**
 * The button tag renders a call to this method if the button is a submit button and javscript is on.
 */
function  submitEvent (formname, event, doSubmit) {
	var form = document.getElementById(formname);
	doSubmit = doSubmit != false;  // default value: true
	var eventField = form["$event"];
	eventField.value = event;
//	alert("Set $event to " + eventField.value);
//	eventField.name = '$event';
	if (typeof form.onsubmit == 'function')  doSubmit = form.onsubmit() && doSubmit;
    /* If necessary: Enable all fields to submit also empty values of disabled fields.
    if (window.Form) Form.enable(form);
    */
    if (doSubmit)  form.submit ();
    /* Disable button after click, to disable all form elements the prototype's Form.disable(form) method can be used.
    try {
        // if (window.Form) Form.disable(form);
        // or only button
        // if (button) button.disabled = true;
    } catch (ex) {}
    */
};

/**
 * The button tag renders a call to this method if the event is sent without submiting a form.
 */
function  sendEvent (event, button) {
	/* Disable button after click
    try {
        if (button) button.disabled = true;
    } catch(ex) {}
    */
    location.href=event;
};

function  Form_hookup (formname) 
{
  document.getElementById(formname)._event = function (event, doSubmit) {
    return submitEvent(formname, event, doSubmit);
  }
}

window.popup = 
function  Window_popup (url, name, args) 
{
	var w = args.width ? args.width : 333;
	var h = args.height ? args.height : 444;
	var x = (screen.availWidth - w)/2;
	var y = (screen.availHeight - h)/2;

	var features = 'resizable' 
		+  (isIE ? ',left=' : ',screenX=') + x
		+  (isIE ? ',top=' : ',screenY=') + y
		+  ',width=' + w
		+  ',height=' + h;

	if (args.features)  features += ","+args.features;

	var popup = window.open (url, name, features);
	popup.focus ();
	return popup;
};

function toggleAll(name, control) {
	var f = control.form;
	for(var i = 0; i < f.length; i++) {
		if(f[i].name == name) {
			f[i].checked = control.checked;
		}
	}
}


function validate(descriptor) {
	var url = 'validate';
	var params = "aspect=" + escape(descriptor.aspect) + "&value=" + escape(descriptor.value) + "&id=" + escape(descriptor.elementId) + "&part=" + escape(descriptor.part);
	var ajaxRequest = new Ajax.Request(url, {method: "get", parameters: params, onComplete: handleValidationResponse});
}
function handleValidationResponse(originalRequest) {
	var doc = originalRequest.responseXML;
	var elements = doc.getElementsByTagName("aspect");
	for(var i = 0; i < elements.length; i++) {
		var elementId = elements[i].getAttribute("id");
		var errorId = elementId + "-error";
		var labelId = elementId + "-label";
		if(elements[i].hasChildNodes()) {
			var error = '';
			var tooltip = '';
			for(var errorIndex = 0; errorIndex < elements[i].childNodes.length; errorIndex++) {
				error += "<span>" + elements[i].childNodes[errorIndex].firstChild.data + "</span>";
				tooltip += elements[i].childNodes[errorIndex].firstChild.data;
			}
			if($(errorId) != null) {
				$(errorId).innerHTML = error;
				Element.show(errorId);
			}
			if($(labelId) != null) {
				Element.addClassName(elementId + "-label", "aspect-error");
				$(labelId).title = tooltip;
				$(labelId).style.cursor = 'help';
			}
			if($(elementId) != null) {
				Element.addClassName(elementId, "aspect-error");
				$(elementId).title = tooltip;
			}
		}
		else {
			if($(errorId) != null)
				Element.hide(errorId);
			if($(labelId) != null) {
				Element.removeClassName(labelId, "aspect-error");
				$(labelId).title = '';
				$(labelId).style.cursor = '';
			}
			if($(elementId) != null) {
				Element.removeClassName(elementId, "aspect-error");
				$(elementId).title = '';
			}
		}
	}
}
function navigateTable(formId, gotoPageParameter, page, tableActionParameter, tableAction) {
	var theForm = document.getElementById(formId);
 	if(tableActionParameter != null) {
	 	document.getElementById(formId)[tableActionParameter].value = tableAction;
 	}
 	if(gotoPageParameter != null) {
	 	document.getElementById(formId)[gotoPageParameter].value = page;
 	}
	theForm.submit();
}

function concatURL(baseURL, params) {
	var url = baseURL;
	if(params) {
		url += (url.indexOf("?") == -1 ? "?" : "&") + params;
	}
	return url;
}