window.focus();
window.defaultStatus = '';

var ActualIsIe = false;
if (document.all)
{
	ActualIsIe = true;
}

/**
 * ---------------------------------------------------------------------------------------
 * Allgemeine Element Funktionen
 * ---------------------------------------------------------------------------------------
 */
function submitForm(formName, aktivateDisabled, aktivateReadonly) 
{
    for(i=0; i<document.forms[formName].length; i++) 
    {
        try {
            if (document.forms[formName].elements[i].disabled && aktivateDisabled) 
            {
                document.forms[formName].elements[i].disabled = false;
            }
        } catch(e) {/*ignore*/}
        
        try {
            if (document.forms[formName].elements[i].readonly && aktivateReadonly) 
            {
                document.forms[formName].elements[i].readonly = false;
            }
        } catch(e) {/*ignore*/}
    }

    document.forms[formName].submit();
}

function resetForm(formName, ignoreDisabled) 
{
	for(i=0;i<document.forms[formName].length;i++) 
	{
		if (document.forms[formName].elements[i].disabled && ignoreDisabled) 
		{
		    continue;
		}
		
		switch (document.forms[formName].elements[i].type) 
		{
			case "text":
			case "textarea":
				document.forms[formName].elements[i].value = "";
				break;
			//case "radio":
			case "checkbox":
				document.forms[formName].elements[i].checked = false;
				break;
			case "select-one":
				document.forms[formName].elements[i].options[0].selected=true;
				break;
			default: //ignore
		}
	}
}


/**
 * Setzt Key Field Focus der Maske.
 * 
 * @param doc Document
 * @param field focusierendes Feld
 */
function setKeyFocus(doc, field, selAlways) 
{
	if (doc.all[field]) 
	{
		if (doc.all[field].value == "") 
		{
			window.focus();
			doc.all[field].focus();
		}
		
		if (typeof selAlways != "undefined" && selAlways) 
		{
      		doc.all[field].focus();
		}
	}
}

/**
 * Setzt feld aktiv.
 * 
 * @param formName
 * @param name
 */
function setFieldEnabled(formName, name) 
{
    if (document.forms[formName].elements[name])
    {
        document.forms[formName].elements[name].disabled = false;
    }
}

/**
 * Return field Value.
 * 
 * @param formName
 * @param name
 */
function getFieldValue(formName, name) 
{
    if (document.forms[formName].elements[name])
    {
        return document.forms[formName].elements[name].value;
    }
}

/**
 * Return field empty.
 * 
 * @param formName
 * @param name
 */
function isFieldEmpty(formName, name) 
{
    if (document.forms[formName].elements[name])
    {
    	var _val = document.forms[formName].elements[name].value;
        return (_val == "" || _val == null);
    }
    
    return true;
}



/**
 * ---------------------------------------------------------------------------------------
 * Methoden für coookie handling
 * ---------------------------------------------------------------------------------------
 */
function getCookieVal(offset) 
{
	var endstr = document.cookie.indexOf (";", offset);
	if (endstr == -1) endstr = document.cookie.length;
	return unescape(document.cookie.substring(offset, endstr));
}

function GetCookie(name) 
{
	var arg = name + "=";
  	var alen = arg.length;
  	var clen = document.cookie.length;
  	var i = 0;
  	while (i < clen) {
    	var j = i + alen;
    	if (document.cookie.substring(i, j) == arg) return getCookieVal (j);
    	i = document.cookie.indexOf(" ", i) + 1;
    	if (i == 0) break;
  	}
  	return null;
}	

/**
 * ---------------------------------------------------------------------------------------
 * Allgemeine Objekt Funktionen
 * ---------------------------------------------------------------------------------------
 */


/** 
 * Liefert String der nur characters entsprechend 'validChars' 
 * beinhaltet. 
 * 
 * @param value prüf String 
 * @param validChars gültige Zeichen 
 */ 
function getValidString(value, validChars)
{ 
    var validValue = ""; 
    var z = ""; 
    var zComp = false; 

    for (i=1; i<= value.length; i++) 
    { 
        z = value.substring(i, i+1); 
        zComp = validChars.toLowerCase().indexOf(z.toLowerCase())>0; 
        if (zComp) 
        {
            validValue += z; 
        }
    } 
    return validValue; 
} 

/** 
 * Liefert aktuelle url + context.
 */ 
function getUrlPath() 
{ 
	// relative Angaben explizit wiederherstellen
	var actPath = window.location.pathname.substring(1, window.location.pathname.length);
	var firstSlash = actPath.indexOf("/");
	
	if (firstSlash >=0 )
	{
		actPath = "/" + actPath.substring(0, firstSlash);
	}
	else
	{
		actPath = "";
	}
	
	if (actPath == "/web")
	{
		actPath = "";
	}
	
	return "http://" + window.location.host + actPath + "/";
} 

/** 
 * ---------------------------------------------------------------------------------------------------- 
 * JavaScript StringBuffer 
 * ----------------------------------------------------------------------------------------------------
 */ 
function StringBuffer() 
{ 
     this.buffer = []; 
} 

StringBuffer.prototype.append = function (string) 
{ 
     this.buffer.push(string); 
     return this; 
}; 

StringBuffer.prototype.toString = function () 
{ 
     return this.buffer.join(""); 
}; 

StringBuffer.prototype.isEmpty = function () 
{ 
     return !(this.buffer.length>0); 
}; 


//----------------------------------------------------------------------------------------------------------------------------
//Ajax
//----------------------------------------------------------------------------------------------------------------------------

function AjaxConnection() {

    var xmlHttp = false;
    //Mozilla, Opera, Safari sowie Internet Explorer 7
    if (typeof(XMLHttpRequest) != 'undefined') 
    {
       xmlHttp = new XMLHttpRequest();
    }
    
    if (!xmlHttp) 
    {
       // Internet Explorer 6 und älter
       try {
           xmlHttp  = new ActiveXObject("Msxml2.XMLHTTP");
       } catch(e) {
           try {
               xmlHttp  = new ActiveXObject("Microsoft.XMLHTTP");
           } catch(e) {
               xmlHttp  = false;
           }
       }
    }
    
    return xmlHttp;
}

function AjaxConnect(url) 
{
    var xmlHttp = AjaxConnection();
    if (xmlHttp) {
       xmlHttp.open('GET', url, true);
       xmlHttp.onreadystatechange = function() {
           if (xmlHttp.readyState == 4) {
               alert(xmlHttp.responseText);
               return xmlHttp.responseText;
           }
       };
       xmlHttp.send(null);
    }
}