function setDisplay(sId, sValue)
{
  if(document.getElementById(sId))
   document.getElementById(sId).style.display = sValue;
}

function clear_form_field(field)
{
 if(field && (field.type == "text"))
  if((field.style.color != "rgb(0, 0, 0)") && (field.style.color != "#000000") )
  {
    field.value="";
    field.style.color="#000000";
  }
}

function set_form_fields()
{
 form = document.forms[0];
 if(form != null)
  if(form.elements != null)
   for(nIndex=0; nIndex < form.elements.length; nIndex++)
   {
    field = form.elements[nIndex];
    set_fields(field);
   }
}

function set_fields(field)
{
    if(("" == field.value) || (field.style.color = "" && ((field.name == "sName" && field.value=="(Name)") ||
       (field.name == "sVorname" && field.value=="(Vorname)") ||
       (field.name == "sStrasse" && field.value=="(Strasse)") ||
       (field.name == "sOrtPLZ" && field.value == "(Ort/PLZ)") )))
    {
      field.style.color = "#666666";
      if(field.name == "sName")
        field.value="(Name)";
      if(field.name == "sVorname")
        field.value="(Vorname)";
      if(field.name == "sStrasse")
         field.value="(Strasse)";
      if(field.name == "sOrtPLZ")
        field.value="(Ort/PLZ)";
    }
    else
    {
      field.style.color = "#000000";
    }
}

function clear_form_field_senden()
{
 form = document.forms[0];
 for(nIndex=0;nIndex < form.elements.length;nIndex++){
  field = form.elements[nIndex];
  clear_form_field(field);
 }
}

function check_new_bewertung()
{
 form = document.forms[0];
 bOk = true;
 bCheckEmail = false;
 bCheckSelfEmail = false;
 bNoteChecked = false;
 checkBewertung = true;
 for(nIndex=0;nIndex < form.elements.length;nIndex++)
 {

  field = form.elements[nIndex];
  if(field)
  {
   if(bOk && field.name == "nNewDescription")
   {
     checkBewertung = (field.value == "3");
   }
   if(bOk && field.name == "rbSaveMode" && field.checked && field.value != "nothing")
   {
     bCheckEmail = true;
   }
   if(bOk && field.name == "rbSaveMode" && field.checked && field.value == "self")
   {
     bCheckSelfEmail = true;
   }
   if(bOk && field.name == "sEmail" && (bCheckEmail || field.value != "") && checkBewertung)
   {
     bOk = checkEmail(field.value);
   }
   if(bOk && field.name == "sSelfEmail" && bCheckSelfEmail && checkBewertung)
   {
     bOk = checkEmail(field.value);
   }
   if(bOk && field.name == "sStrasse" && field.value == "")
   {
     bOk = false;
     alert("Strasse darf nicht leer sein.");
   }
   if(bOk && field.name == "sName" && field.value == "")
   {
     bOk = false;
     alert("Name darf nicht leer sein.");
   }
   if(bOk && field.name == "nPLZ" && field.value == "")
   {
     bOk = false;
     alert("PLZ darf nicht leer sein.");
   }
   if(bOk && field.name == "rbNote" && field.checked)
   {
     bNoteChecked = true;
   }
   if(bOk && field.name == "sBewertung" && field.value == "")
   {
     bOk = false;
     alert("Bewertung darf nicht leer sein.");
   }
   if(bOk && field.name == "cmbAnrede" && field.value == "0")
   {
     bOk = false;
     alert("Anrede darf nicht leer sein.");
   }
  }
 }
 if(bOk && !bNoteChecked && checkBewertung)
 {
 	 bOk = false;
 	 alert("Note darf nicht leer sein.");
 }
 if(bOk)
   form.submit();
}

function check_new_description()
{
 form = document.forms[0];
 bOk = true;
 bCheckEmail = false;
 bCheckSelfEmail = false;
 bNoteChecked = false;
 checkBewertung = true;
 for(nIndex=0;nIndex < form.elements.length;nIndex++)
 {

  field = form.elements[nIndex];
  if(field)
  {
   if(bOk && field.name == "nNewDescription")
   {
     checkBewertung = (field.value == "3");
   }
   if(bOk && field.name == "rbSaveMode" && field.checked && field.value != "nothing")
   {
     bCheckEmail = true;
   }
   if(bOk && field.name == "rbSaveMode" && field.checked && field.value == "self")
   {
     bCheckSelfEmail = true;
   }
   if(bOk && field.name == "sEmail" && bCheckEmail && checkBewertung)
   {
     bOk = checkEmail(field.value);
   }
   if(bOk && field.name == "sSelfEmail" && bCheckSelfEmail && checkBewertung)
   {
     bOk = checkEmail(field.value);
   }
   if(bOk && field.name == "rbNote" && field.checked)
   {
     bNoteChecked = true;
   }
/*   if(bOk && field.name == "sBewertung" && field.value == "")
   {
     bOk = false;
     alert("Bewertung darf nicht leer sein.");
   } */
  }
 }
 if(bOk && !bNoteChecked && checkBewertung)
 {
   bOk = false;
   alert("Note darf nicht leer sein.");
 }
 if(bOk)
   form.submit();
}

function checkEmail(sEmail)
{
  sErrorMessage = "";
  bOk = true;
  nPosPoint = 0;
  sEmail = trim(sEmail);
  nPosAt = sEmail.indexOf('@');
  nLastPosAt = sEmail.lastIndexOf('@');
  if(sEmail == "")
  {
    bOk = false;
    sErrorMessage = "Email darf nicht leer sein.";
  }
  if(bOk && nPosAt < 0)
  {
    bOk = false;
    sErrorMessage = "@ wurde nicht gefunden.";
  }
  if(bOk && nPosAt == 0)
  {
    bOk = false;
    sErrorMessage = "@ darf nicht erstes Zeichen sein.";
  }
  if(bOk && nPosAt != nLastPosAt)
  {
    bOk = false;
    sErrorMessage = "@ darf nur ein mal in Email sein.";
  }
  if(bOk && (sEmail.charAt(nPosAt - 1) == '.'))
  {
    bOk = false;
    sErrorMessage = "Punkt darf nicht direkt vor @ Zeichen sein.";
  }
  if(bOk && (sEmail.charAt(0) == '.'))
  {
    bOk = false;
    sErrorMessage = "Punkt darf nicht erstes Zeichen sein.";
  }
  if(bOk)
  {
    nPosPoint = sEmail.indexOf('.', nPosAt);
    nPosDoublePoint = sEmail.indexOf('..');
    if(bOk && nPosDoublePoint >= 0)
    {
      bOk = false;
      sErrorMessage = "Es darf keine Doppelpunkt in Email sein.";
    }
    if(bOk && nPosPoint - nPosAt == 1)
    {
      bOk = false;
      sErrorMessage = "Punkt darf nicht direkt hinter @ stehen.";
    }
    if(bOk && nPosPoint - nPosAt < 1)
    {
      bOk = false;
      sErrorMessage = "Server Teil wurde nicht gefunden.";
    }

    if(bOk && sEmail.charAt(sEmail.length - 1) == '.')
    {
      bOk = false;
      sErrorMessage = "Punkt darf nicht als letzter in Email sein.";
    }
    if(bOk)
    {
      for(Index = 0; Index < sEmail.length; ++Index)
      {
        sChar = sEmail.charAt(Index);
        if(!(sChar == '_' || sChar == '.' || sChar == '@' || (sChar >= 'a' && sChar <= 'z') || (sChar >= 'A' && sChar <= 'Z') || (sChar >= '0' && sChar <= '9')))
        {
          bOk = false;
          sErrorMessage = "Es dürfen keine Sonderzeichen in Email sein";
          break;
        }
      }
    }
  }
  if(!bOk)
    alert(sErrorMessage);
  return bOk;
}


function trim(str)
{
	str = str.replace(/^\s+/, '');
	for(var i = str.length - 1; i >= 0; i--)
	{
		if (/\S/.test(str.charAt(i)))
		{
			str = str.substring(0, i + 1);
			break;
		}
	}
	return str;
}

function insert_tag(field_id, tag, example)
{
  var start_tag = '[' + tag + ']';
  var end_tag = '[/' + tag + ']';
  if(!document.getElementById(field_id))
    exit;
  var field = document.getElementById(field_id);
  field.focus();
  if(document.selection)
  {
    var range = document.selection.createRange();
    if (range.text != '')
      example = range.text;
    range.text = start_tag + example + end_tag;
  }
  else if(field.selectionStart || (field.selectionStart == 0))
  {
    if(field.value.substring(field.selectionStart, field.selectionEnd) != '')
      example = field.value.substring(field.selectionStart, field.selectionEnd);
    field.value = field.value.substring(0, field.selectionStart) +
             start_tag + example +
             end_tag   + field.value.substring(field.selectionEnd, field.value.length);
  }
  else
    field.value = field.value + start_tag + example + end_tag;
  field.focus();
}

var show_aktive_hint_timer = 0;

function show_hint(field, width, help_id)
{
  var Parent_offsetY = 0;
  var Parent_offsetX = 0;
  var element = field;
  while(element.offsetParent)
  {
    element = element.offsetParent;
    Parent_offsetX = Parent_offsetX + element.offsetLeft;
    Parent_offsetY = Parent_offsetY + element.offsetTop;
  }

  var new_param = 'left=' + String(field.offsetLeft + Parent_offsetX) + '&top=' + String(- 50 + field.offsetTop + Parent_offsetY);
  new_param = new_param + '&width=' + String(width) + '&help_id=' + help_id;
  show_aktive_hint_timer = window.setTimeout("macheRequest('help.php', '" + new_param + "')", 1000);
}

function clear_hint_timer()
{
  window.clearTimeout(show_aktive_hint_timer);
}

function show_big_help(width, help_id)
{
  ar_bounds = get_bounds();
  var left = (ar_bounds[2] - width) / 2;
  var new_param = 'with_header=1&top=' + String(50 + ar_bounds[1]) + '&left=' + String(left) + '&width=' + String(width) + '&help_id=' + help_id;

  macheRequest('help.php', new_param);
}

var http_request = false;

function macheRequest(url, param)
{
  http_request = false;
  if (window.XMLHttpRequest)
  { // Mozilla, Safari,...
    http_request = new XMLHttpRequest();
    if (http_request.overrideMimeType)
    {
      http_request.overrideMimeType('text/xml');
    }
  }
  else if (window.ActiveXObject)
  { // IE
    try
    {
      http_request = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (e)
    {
      http_request = new ActiveXObject("Microsoft.XMLHTTP");
    }
  }
  if (http_request)
  {
    http_request.onreadystatechange = alertInhalt;
    http_request.open('POST', url+'?' + param, true);
    http_request.setRequestHeader('content-length',param.length);
    http_request.send(param);
  }
}

function alertInhalt()
{
  if (http_request.readyState == 4)
  {
    var st=http_request.responseText;
    if(st != '')
      show_box(st);
  }
}

function show_box(sBox)
{
  var bodyWindow = document.getElementById('for_help');
  if(bodyWindow)
  {
    bodyWindow.innerHTML = sBox;
  }
}

function close_help()
{
  document.getElementById('for_help').innerHTML='';
}

function get_bounds()
{
  var result_top = 0;
  var result_left = 0;
  var result_width = 0;
  var result_height = 0;
  if( typeof( window.pageYOffset ) == 'number' ) {
    //Netscape compliant
    result_top = window.pageYOffset;
    result_left = window.pageXOffset;
  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
    //DOM compliant
    result_top = document.body.scrollTop;
    result_left = document.body.scrollLeft;
  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
    //IE6 standards compliant mode
    result_top = document.documentElement.scrollTop;
    result_left = document.documentElement.scrollLeft;
  }
  if(typeof(window.innerHeight) == 'number')
  {
    //Non-IE
    result_height = window.innerHeight;
    result_width = window.innerWidth;
  }
  else if(document.documentElement && document.documentElement.clientHeight )
  {
    //IE 6+ in 'standards compliant mode'
    result_height = document.documentElement.clientHeight;
    result_width = document.documentElement.clientWidth;
  }
  else if(document.body && document.body.clientHeight )
  {
    //IE 4 compatible
    result_height = document.body.clientHeight;
    result_width = document.body.clientWidth;
  }
  return [result_left, result_top, result_width, result_height];
}

function show_bewertung_page($nPage, $nPageStart, $nPageEnd)
{
  for($nPageIndex = $nPageStart; $nPageIndex <= $nPageEnd; ++$nPageIndex)
  {
    document.getElementById('bewertung_' + String($nPageIndex)).style.display = 'none';
    document.getElementsByName('link_' + String($nPageIndex))[0].className = 'link';
    document.getElementsByName('link_' + String($nPageIndex))[1].className = 'link';
  }
  document.getElementById('bewertung_' + String($nPage)).style.display = '';
  document.getElementsByName('link_' + String($nPage))[0].className = 'link_selected';
  document.getElementsByName('link_' + String($nPage))[1].className = 'link_selected';
}