function QuickAccessGo(selName,targ,restore){ 
  var selObj = MM_findObj(selName); if (selObj) QuickAccess(targ,selObj,restore);
}
function QuickAccess(targ,selObj,restore){
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}
function on(elementname){
 document.getElementById(elementname).style.display='block';
}

function off(elementname){
 document.getElementById(elementname).style.display='none';
}
function printThisPage(target){
target = "/xred/printPage.php?artikel=" + target;
applicationWindow = window.open(target, "task", "toolbar=0,resizable=2,status=0,scrollbars=2,width=700,height=650");
applicationWindow.focus();
}
function showLinkDetails(target){
target = "/xred/linktothissite.php?page=" + target;
applicationWindow = window.open(target, "task", "toolbar=0,resizable=0,status=0,scrollbars=0,width=500,height=650");
applicationWindow.focus();
}




function filled(item){
  document.getElementById(item).style.backgroundColor='#FFFFFF';  
}
function changePicture(target, pic){
  document.getElementById(target).style.backgroundImage = 'url(/xred/includes/images/' + pic + ')'; 
}
function makeAlert(item, msg){
  document.getElementById(item).style.backgroundColor='#FFFFCC';
	document.getElementById(item).focus();
  alert(msg);  
}
function checkZip(zipElement, zipValue){
  zipValue = zipValue.replace(/ /g, ""); 
  if(CheckFormValue(zipValue,".,1234567890") && zipValue.length == 5) {
    document.getElementById(zipElement).value = zipValue;  
  } else {
    alert("Bitte geben Sie die Postleitzahl fuenfstellig ein.");
    document.getElementById(zipElement).value = "";  
    document.getElementById(zipElement).focus();   
  }  
}
function CheckFormValue(eingabe,erlaubt){
	var korrekt = true;
	for (var i = 0; i < eingabe.length; i++)
	{ 	var zeichen = eingabe.charAt(i);
		if (erlaubt.indexOf(zeichen) == -1)
			korrekt = false;
	}
	return korrekt;
}


function repairDate(field, val) 
	{
  alert ("Das eingegebene Datum '" + val + "' ist nicht richtig. Bitte pruefen Sie Ihre Eingabe.");
  return "";
	}
function isArray(object) 
	{
	if (object != null && typeof object != "undefined")
		return (typeof(object.length)!="undefined" && typeof(object.type)=="undefined");
	else
		return false;
	}
function readField (name)
  {
  for (var i = 0; i < document.forms.length; i ++)
    {
    var elem = document.forms[i].elements[name];
    if (elem)
      return elem;
    }
  return null;
  }
function getFirstChars (name)
  {
	var elem = readField(name);
	if (isArray(elem))
		elem = elem[0];
	return elem;
	}
function twonumerics (num) 
	{
  var txt = "00" + num;
  return txt.substr (txt.length - 2, 2);
  }
function fournumerics (num) 
	{
  var txt = "0000" + num;
  return txt.substr (txt.length - 4, 4);
  }
function toDate (text) 
	{
	if (text.length < 1) 
		return "";

	var dd = 0;
	var mm = 0;
	var syy = "";
	var yy = 0;

	var da = text.split(".");
	if (da.length == 1)
	  {
	  var c = text.substr(0,1);
	  if (c == "+" || c == "-")
	    {
	    var diff = parseInt (text.substr(1), 10);
	    if (isNaN(diff))
	      diff = 0;
	    if (c == "-")
	      diff = - diff;
	    var date = new Date();
	    date.setTime (date.getTime() + diff * 24*60*60*1000);
	    dd = date.getDate();
	    mm = 1 + date.getMonth();
	    yy = date.getFullYear();
	    return "" + twonumerics(dd) + "." + twonumerics(mm) + "." + fournumerics(yy);
	    }
	  if (text.length >= 6)
	    {
	    text = text.substr(0,2) + "." + text.substr(2,2) + "." + text.substr(4);
	    da = text.split(".");
	    }
	  else if (text.length > 4)
	    {
	    text = text.substr(0,2) + "." + text.substr(2);
	    da = text.split(".");
	    }
	  else if (text.length == 4)
	    {
	    text = "01.01." + text;
	    da = text.split(".");
	    }
	  }
	if (da.length < 2 || da.length > 3)
	  return "";

  dd = parseInt (da[0], 10);
 	mm = parseInt (da[1], 10);
 	if (da.length == 3)
	  {
	  syy = da[2];
  	yy = parseInt (syy, 10);
  	if (syy.length == 2)
  	  {
  	  syy = '20' + syy;
  	  yy = parseInt (syy, 10);
  	  if (yy - (new Date()).getFullYear() > 20)
  	    yy -= 100;
  	  }
    else if (isNaN(yy))
      yy = (new Date()).getFullYear();
	  }
  else
	  {
    yy = (new Date()).getFullYear();
	  }
	if (isNaN(dd) || isNaN(mm) || isNaN(yy))
		return "";
	if (dd < 1 || dd > 31 || mm < 1 || mm > 12 || yy < 1850)
	  return "";
	if (dd > 30 && (mm == 4 || mm == 6 || mm == 9 || mm == 11))
	  return "";
	if (mm == 2 && (dd > 29 || dd == 29 && !isLeap(yy)))
	  return "";
	return "" + twonumerics(dd) + "." + twonumerics(mm) + "." + fournumerics(yy);
	}
function checkandrepair (name, pattern)
  {
 	var field = getFirstChars (name);
	if (field.className == "error")
	  field.className = "budgetrechner_l";
  if (pattern != "")
    reformat (field, pattern);
  }
function reformat (field, formtpattern)
  {
  var val = field.value;
  if (val == "")
    return;
  if (formtpattern.substr(0,1) == "^")
    reformatSpecial (field, val, formtpattern);
  else if (formtpattern != "")	  
    {
    var f = new Formatter (formtpattern);
    field.value = f.format (f.parse (val));
    }
  }
function reformatSpecial (field, val, formtpattern)
  {
 if (formtpattern.substr(0,2) == "^d")
  	{
  	var sepPos = formtpattern.indexOf (" H"); //separates date and time
  	if (sepPos != -1)
  	  {
  	  var formtpatternDate = formtpattern.substr (0, sepPos);
  	  var formtpatternTime = "^d" + formtpattern.substr (sepPos+1,formtpattern.length);
  	  sepPos = val.indexOf (" ");
  	  if (sepPos == -1)
  	    {
  	    alert( "Bitte geben Sie Datum und Uhrzeit in der Form " + formtpattern.substr (2, 99) + " ein." );
  	    return;
  	    }
  	  var valDate = val.substr (0, sepPos);
  	  var valTime = val.substr (sepPos+1,val.length);

      field.value = valDate;
      reformat (field, formtpatternDate);
      valDate = field.value;
      if (valDate != "")
        {
        field.value = valTime;
        reformat (field, formtpatternTime);
        valTime = field.value;
        if (valTime != "")
          field.value = valDate + " " + valTime;
        else
          field.value = "";
        }
      return;
  	  }  	  
    if (formtpattern.substring(2, formtpattern.length) == "MM.yyyy")
    	{
    	var tmpDate = toDate("01." + val);
    	if (tmpDate != "")
    		field.value = tmpDate.substring(3, tmpDate.length);
    	else
    		{
    		field.value = repairDate (field, "01." + val);
    		}
    	}
  	else
  		{
  		var tmpDate = toDate (val);
    	if (tmpDate != "")
    		field.value = tmpDate;
    	else
    		{
    		field.value = repairDate (field, val);
    		}
    	}
  	}  
  }  
