  // *************** GOLI.AT ******************
  //
  //  Script (c) by DI Philipp Michael Metzler
  //
  //             http://www.goli.at
  //
  //       http://www.philippmetzler.com
  //
  // *************** GOLI.AT ******************

  myFilepath = 'fileadmin/images/';

  function ChangeOver(object)
  {
    tmp = document.getElementById(object);
    tmp.src = myFilepath + object + '_on.gif';
//    document[object].src = 'images/'+object+'_on.gif';
  }

  function ChangeOut(object)
  {
    tmp = document.getElementById(object);
    tmp.src = myFilepath + object + '_off.gif';
//    document[object].src = 'images/'+object+'_off.gif';
  }

  function ChangeObject(object, picture)
  {
    tmp = document.getElementById(object);
    tmp.src = myFilepath + picture;
//    document[object].src = 'images/'+picture;
  }

  function openWindow(theURL, winName, features)
  { //v2.0
    oldWin = window.open(theURL, winName, features);
    oldWin.focus();
  }

  function openDirection(toAddress)
  {
    openWindow('/fileadmin/scripts/routenplaner.php?toAddress=' + URLEncode(toAddress), 'GoogleDirections', 'width=800, height=600, toolbar=yes, location=no, directories=yes, status=yes, menubar=yes, scrollbars=yes, resizable=yes, copyhistory=yes');
//    openWindow('/fileadmin/scripts/routenplaner.php?toAddress=' + toAddress, 'GoogleDirections', 'width=800, height=600, toolbar=yes, location=no, directories=yes, status=yes, menubar=yes, scrollbars=yes, resizable=yes, copyhistory=yes');
  }

  function URLDecode (encodedString) {
    var output = encodedString;
    var binVal, thisString;
    var myregexp = /(%[^%]{2})/;
    while ((match = myregexp.exec(output)) != null
               && match.length > 1
               && match[1] != '') {
      binVal = parseInt(match[1].substr(1),16);
      thisString = String.fromCharCode(binVal);
      output = output.replace(match[1], thisString);
    }
    return output;
  }

  function URLEncode (clearString) {
    var output = '';
    var x = 0;
    clearString = clearString.toString();
    var regex = /(^[a-zA-Z0-9_.]*)/;
    while (x < clearString.length) {
      var match = regex.exec(clearString.substr(x));
      if (match != null && match.length > 1 && match[1] != '') {
      	output += match[1];
        x += match[1].length;
      } else {
        if (clearString[x] == ' ')
          output += '+';
        else {
          var charCode = clearString.charCodeAt(x);
          var hexVal = charCode.toString(16);
          output += '%' + ( hexVal.length < 2 ? '0' : '' ) + hexVal.toUpperCase();
        }
        x++;
      }
    }
    return output;
  }


  // Focus auf das erste aktive Formular-Element
  function FocusFirst()
  {
    // Based on http://www.codeproject.com/KB/scripting/FocusFirstInput.aspx
    var bFound = false;
    //for each form
    for (f=0; f < document.forms.length; f++)
    {
      //for each form element
      for (i=0; i < document.forms[f].length; i++)
      {
        el = document.forms[f][i]
        if (el.disabled != true)
        {
          if (el.type != undefined)
          {
            switch (el.type.toLowerCase())
            {
              case "text" : el.focus(); bFound = true; break;
              case "textarea" : el.focus(); bFound = true; break;
              case "checkbox" : el.focus(); bFound = true; break;
              case "radio" : el.focus(); bFound = true; break;
              case "file" : el.focus(); bFound = true; break;
              case "password" : el.focus(); bFound = true; break;
              case "select-one" : el.focus(); bFound = true; break;
              case "select-multiple" : el.focus(); bFound = true; break;
            } // switch el.type
          } //if (el.type != undefined)
        } //if (el.disabled != true)
        if (bFound == true) break;
      } //for each form element
      if (bFound == true) break;
    } //for each form
  }

    var myFormErrors = new Array();
    var myCountFormErrors = 0;
    var mySpecialCountFormErrors = 0;

    function chkFormular()
    {
        myCountFormErrors = 0 + mySpecialCountFormErrors;

/*
        elementFormSent = document.getElementById("FormSent");
        elementFormSent.style.display = 'none';
*/

        elementFormError = document.getElementById("FormError");

        for ( myKey in myFields )
        {
            myTmp = eval('document.' + myFormName + '.' + myKey + '.value');

            if (myTmp == '')
            {
                myFormErrors[myKey] = myLangPleaseFillOutThisField + ': "' + myFields[myKey] + '"';
                myCountFormErrors += 1;
            }
            else
            {
                myFormErrors[myKey] = null;
            }
        }

        if (myCountFormErrors > 0)
        {
//            elementFormErrorText = document.getElementById("FormErrorText");
//            elementFormErrorText.firstChild.nodeValue = myFormError;
//            elementFormErrorText.innerHTML = myFormError;
/*
                document.userData.street.focus();
                scrollBy(0, -20);
*/

            elementFormError.innerHTML = '';

            elementFormError.style.display = '';

            var myDisplayFormErrors = '<table cellpadding="0" cellspacing="0" border="0">';
            for ( myKey in myFormErrors )
            {
                if (myFormErrors[myKey] != null)
                {
                    myDisplayFormErrors += '<tr>' + "\n";
                    myDisplayFormErrors += '  <td valign="top" style="width : 5px; padding: 0px; margin: 0px;"><img src="/fileadmin/images/missing-fields.png" style="height : 16px; width : 16px; padding: 0px; margin: 0px;"></td>' + "\n";
                    myDisplayFormErrors += '  <td style="width : 5px; padding: 0px; margin: 0px;"></td>' + "\n";
                    myDisplayFormErrors += '  <td valign="bottom" align="left" style="height : 20px; padding: 0px; margin: 0px;">' + "\n";
                    myDisplayFormErrors += '    <span class="FormError">' + myFormErrors[myKey] + '</span>';
                    myDisplayFormErrors += '  </td>' + "\n";
                    myDisplayFormErrors += '</tr>' + "\n";
                }
            }
            myDisplayFormErrors += '</table>' + "\n";

            elementFormError.innerHTML = myDisplayFormErrors;

            return false;
        }
        else
        {
            elementFormError.style.display = 'none';
            return true;
        }
    }
