/**
* Setzt und übermittelt Werte für nicht ausgewählte Checkbox-/Radiobutton-Felder
* formName => Formularname
* val => zu setzender Wert
* type => checkbox oder radio
**/
function setCheckableValues(formName, val, type)
{
	doc = (formName == null) ? eval("document") : eval("document.forms['" + formName + "']");
	
	if(typeof(doc) == "undefined") doc = eval("document");
	
	if(type == null) type = "checkbox";

	var field = doc.getElementsByTagName('input');

	for(i=0; i < field.length; i++)
	{
		var isChecked = 0;
		
		if(field[i].getAttribute("type", "false") == type)
		{
			if(type == "radio")
			{
				var fields = doc.getElementsByName(field[i].name);
				
				for(j = 0; j < fields.length; j++)
				{
					if(fields[j].checked == true) var isChecked = 1;
				}
			}
			
			if(field[i].checked != true && isChecked == 0)
			{
				var hiddenChkboxElement = doc.createElement("input");

				var hCE_name	= doc.createAttribute("name");
				var hCE_type 	= doc.createAttribute("type");
				var hCE_value	= doc.createAttribute("value");

				hCE_type.nodeValue 	= "hidden";
				hCE_name.nodeValue 	= field[i].name;
				hCE_value.nodeValue = val;

				hiddenChkboxElement.setAttributeNode(hCE_name);
				hiddenChkboxElement.setAttributeNode(hCE_type);
				hiddenChkboxElement.setAttributeNode(hCE_value);

				field[i].parentNode.appendChild(hiddenChkboxElement);
			}
		}
	}
}

/**
* Setzt aktiven Tab bei Formularen mit TabMenu
* tabId => Id des aktiven Tabs
**/
function setActiveTab(tabId)
{
	var tabMenu = document.getElementById("tabmenu");
	var tabs = tabMenu.getElementsByTagName("li");
	var tabCount = tabs.length;
	
	for(var i = 0; i < tabCount; i++)
	{
		var formTab = document.getElementById("formTab" + tabs[i].id.charAt(tabs[i].id.length-1)); 
			
		if(tabs[i].id.indexOf(tabId) < 0)
		{
			tabs[i].className = "";
			formTab.style.display = "none";
		}
		else
		{
			tabs[i].className = "active";
			formTab.style.display = "block";
		}
	}	
}

/**
* Setzt eine Checkbox bei Auswahl von Text etc.
* checkboxId => Id der Checkbox
**/
function setCheckbox(checkboxId)
{
	var checkbox = document.getElementById(checkboxId);

	if(checkbox.checked == true)
	{
		checkbox.checked = false;
	}
	else
	{
		checkbox.checked = true;
	}
}

/**
* Setzt den Standard-Fokus eines Formulars anhand einer Id
* focusFieldId => Id des Fokus-Felds
**/
function setDefaultFocus(focusFieldId)
{
	if(focusFieldId == null) focusFieldId = "default_focus";
	
	try
	{
		document.getElementById(focusFieldId).focus();
	}
	catch(e) {};
}

/**
* Entfernt Leerzeichen am Anfang und Ende eines Strings
* str => String
**/
function trimString(str)
{
	return str.replace(/^\s*/, '').replace(/\s*$/, '');
}

function formIsModified()
{
	var oForm = document.forms[0];
	var el, opt, hasDefault, i = 0, j;
	while (el = oForm.elements[i++]) {
		switch (el.type) {
					case 'text' :
					case 'textarea' :
                   	case 'file' :
                   	case 'hidden' :
                   	case 'password' :
                         	//if (!/^\s*$/.test(el.value) && el.value != el.defaultValue) return true;
                         	if (el.value != el.defaultValue) return true;
                         	break;
                   	case 'checkbox' :
                   	case 'radio' :
                         	if (el.checked != el.defaultChecked) return true;
                         	break;
                   	case 'select-one' :
                   	case 'select-multiple' :
                         	j = 0, hasDefault = false;
                         	while (opt = el.options[j++])
                                	if (opt.defaultSelected) hasDefault = true;
                         	j = hasDefault ? 0 : 1;
                         	while (opt = el.options[j++]) 
                                	if (opt.selected != opt.defaultSelected) return true;
                         	break;
		}
	}
	return false;
}

function cancelEvent(e)
{
	if (window.event) window.event.cancelBubble = true;
    else e.cancelBubble = true;
}

