//G.Z. 29.08.2005
// wird aufgerufen in der anmeldung s4_1 - s4_11 falls
// noch nicht alle bereiche durchlaufen sind

function fehler_udl()
{
	alert ("Um eine vollständige Umzugsauktion starten zu können müssen Sie alle 11 Bereiche (Zimmer etc.) in der Umzugsdatenliste durchgehen!");
}

if (((navigator.platform.indexOf('Mac')) != -1) && (navigator.appName == 'Microsoft Internet Explorer'))
{
	var subNavilayer1 = "<div id='subnavi1' style='position:absolute; visibility:hidden; width:650px; height:27px; z-index:3; border: 0px none #000000; overflow: visible; left: 200px; top: 0px;'>";
	var subNavilayer2 = "<div id='subnavi2' style='position:absolute; visibility:hidden; width:650px; height:27px; z-index:3; border: 0px none #000000; overflow: visible; left: 200px; top: 0px;'>";
	var subNavilayer3 = "<div id='subnavi3' style='position:absolute; visibility:hidden; width:650px; height:27px; z-index:3; border: 0px none #000000; overflow: visible; left: 200px; top: 0px;'>";
	var subNavilayer4 = "<div id='subnavi4' style='position:absolute; visibility:hidden; width:650px; height:27px; z-index:3; border: 0px none #000000; overflow: visible; left: 200px; top: 0px;'>";
}

else
{
	var subNavilayer1 = "<div id='subnavi1' style='position:absolute; visibility:hidden; width:650px; height:27px; z-index:3; border: 0px none #000000; overflow: visible; left: 200px; top: 81px;'>";
	var subNavilayer2 = "<div id='subnavi2' style='position:absolute; visibility:hidden; width:650px; height:27px; z-index:3; border: 0px none #000000; overflow: visible; left: 200px; top:81px;'>";
	var subNavilayer3 = "<div id='subnavi3' style='position:absolute; visibility:hidden; width:650px; height:27px; z-index:3; border: 0px none #000000; overflow: visible; left: 200px; top: 81px;'>";
	var subNavilayer4 = "<div id='subnavi4' style='position:absolute; visibility:hidden; width:650px; height:27px; z-index:3; border: 0px none #000000; overflow: visible; left: 200px; top: 81px;'>";
}


function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_showHideLayers() { //v6.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}


// Beck
//  Plus -Minus Eingabefelder
function countz(whichfield,the_action){
alert(document.forms.form1.elements.length);
//alert(document.form1.anbauwand.value);
}


function count(whichfield,the_action){
var num; 
num=document.thisform.elements.length;
for(i=0;i<num;i++){
	if (whichfield == document.thisform.elements[i].name)
	{
	//alert(document.thisform.elements[i].name);
	/*momentane Zahl behalten*/
	offset=document.forms.thisform.elements[i].value;
	a=eval(offset);
	  if(the_action==1) {
			countvalue=1;
		} else {
     countvalue=(-1);
     	}
	result=(a + countvalue);
	if (result < 0) {result = 0;}
/* Feld saubermachen */
	document.forms.thisform.elements[i].value=result;
    }
  }
}

//
//  Verschaltung der Imagebuttons auf jeder Seite
//
function settargetvalue(myvalue) {
                document.thisform.target.value=myvalue;
                document.thisform.action=myvalue;
                //return true;
}

//
// Dreamweaverscripts zur Formularvalidierung
 // 1. object reference for the field in netscape
 // 2. object reference for the field in ie/other browsers
 // 3. one of the following
   // 'isEmail'
   // 'inRange1:1000' check for numbers within stated range
   // '' check for numbers
   // 'R' can be included at beginning of field to indicate field is required
function MM_validateForm() // mf 13.8.5 erweitert um Checkboxen zu prüfen
{ 
//show("<br />Formularprüfung");
  // Tests: Name, Regel, Aktion, ...
  var errmsg_1 = false; var errmsg_2 = false; // für doppelte Fehlertexte
  var i, p, q, nm, test, num, min, max, errors='', tmp, val; 
  args = MM_validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3) 
  { 
  	test = args[i+2]; 
    el = MM_findObj(args[i]);   // findet Radiobuttons nicht 
    if (el) // falls Element gefunden wurde - (nicht wirklich)
    {
      if(typeof(el.type) == "undefined") // Workaround wegen schlecht funktionierender Dreamweaverfunktion
      {
        el = document.getElementsByName(args[i])[0];
      }      
      nm = el.name;
//show(">>> " + nm);       
      empty = true;          
      switch(el.type)
      {
        case "radio" : tmp = get_radio_value(nm);
        	empty =(typeof(tmp) != "string");
//        el.value = tmp; // Zuweisung konvertiert tmp zu string                 		
        break;       
				case "checkbox" : empty = !el.checked; break;
        case "select-one" :
        case "text" :	empty = (el.value == ""); break;        	
      }       
      val = el.value;      
      if(empty)
      {   
        if (test.charAt(0) == 'R') // Eingabe notwendig und kein Wert
      	{
//show("mecker");        
        	errors += '- '+nm+' wurde von Ihnen nicht eingetragen .\n';
        }        
      }
      else
      {         	
        if(el.type == "text")
        {          
          if (test.indexOf('isEmail')!=-1) // Email
          { 
//show("Test Email");          
          	p = val.indexOf('@');
////show(val);
////show(val.length);  
            if (p < 1 || p == (val.length-1))
            {
            	errors+='- '+nm+' must contain an e-mail address.\n';
            }
          }
          else
          {           
          	if (test!='R')
          	{ 
//show("Test Zahl");            
            	num = parseFloat(val);
            	if (isNaN(val)) 
              {
              	errors+='- '+nm+' must contain a number.\n';
              }
            	if (test.indexOf('inRange') != -1) 
              { 
//show("Test Bereich");              
              	p=test.indexOf(':');
              	min=test.substring(8,p); 
                max=test.substring(p+1);
              	if (num<min || max<num) 
                {
                	errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
                }
        			}
            }             
					}       
        }        
      }          
    }
    
    
		switch(nm) // Feldspezifische Prüfung
    {
      case "email_chk" :
      	if(val != document.getElementsByName("email")[0].value){errors += '- '+nm+' muss gleich der Email sein.\n';}
      	break;
        
      case "email2" :
      	if(val != document.getElementsByName("email")[0].value){errors += '- '+nm+' muss gleich der Email sein.\n';}
      	break;     
               
			case "beladeVomJahr" :
			case "beladeVomMonat" :
			case "beladeVomTag" :                  
				switch(val)
        {
          case "Jahr wählen": errors += '- '+nm+' muss ein Jahr sein.\n'; break;
          case "0": errors += '- '+nm+' muss ein Monat sein.\n'; break;
          case "0": errors += '- '+nm+' muss ein Tag sein.\n'; break;        
          break;
          default:    
		        var date = new Date(document.getElementsByName("beladeVomJahr")[0].value, document.getElementsByName("beladeVomMonat")[0].selectedIndex - 1, document.getElementsByName("beladeVomTag")[0].selectedIndex);
            if(new Date() >= date) // Prüfung auf Datum in der Zukunft
            {
							if(errmsg_1 == false) // ob entsprechende Fehlermeldung schon erstellt wurde
              {
            		errors += 'Das Umzugsdatum muss in der Zukunft liegen.\n';
                errmsg_1 = true;
              }                       
            }else{
              errmsg_1 = false;
            }                       
        }
      break; 

			case "entladeBisJahr" :
			case "entladeBisMonat" :
			case "entladeBisTag" :
      tmp = get_radio_value("Zeitraum_Termin_Einlagerung");         
      if(typeof(tmp) == "string")
      {    
        if(tmp != "genau")
        {
  				switch(val)
          {
            case "Jahr wählen": errors += '- '+nm+' muss ein Jahr sein.\n'; break;
            case "0": errors += '- '+nm+' muss ein Monat sein.\n'; break;
            case "0": errors += '- '+nm+' muss ein Tag sein.\n'; break;
            break;
            default:    
  		        var date = new Date(document.getElementsByName("entladeBisJahr")[0].value, document.getElementsByName("entladeBisMonat")[0].selectedIndex - 1, document.getElementsByName("entladeBisTag")[0].selectedIndex);
              if(new Date() >= date) // Prüfung auf Datum in der Zukunft
              {
  							if(errmsg_2 == false) // ob entsprechende Fehlermeldung schon erstellt wurde
                {
              		errors += 'Das zweite Umzugsdatum muss in der Zukunft liegen.\n';
                  errmsg_2 = true;
                }                       
              }else{
                errmsg_2 = false;
              }                       
          }
        }
      }
      break;       
    }    
	} 
  if (errors) 
  {
  	alert('Sie haben das Formular nicht richtig ausgefüllt\n Folgende Fehler traten auf:\n'+errors);
  }
  document.MM_returnValue = (errors == '');
}

// Welcher Wert haben Radiobuttons des ausgewählten Namens 
function get_radio_value(name)  
{
//show("<br />get_radio_value(name)");
  var r = document.getElementsByName(name);
  for (i = 0; i < r.length; i++) 
  {
    if (r[i].checked) 
    {    
      return r[i].value;
    }  
  } 
  return null;
}

// Aufgaben, die beim Laden der Seite ausgeführt werden
function init(page) // Seitenname
{
//show("<br />init");
  switch(page) // Aktualisierung auslösen durch Aufruf von change 
  {
    case "anmeldung_s2":
      change(document.getElementsByName("Zeitraum_Termin_Einlagerung")[0]);
//      change(document.getElementsByName("AuktionDauer")[0]);      
    break;
    case "anmeldung_s3":
      change(document.getElementsByName("beladeFahrstuhl")[0]);
      change(document.getElementsByName("beladeHalteverbot")[0]);
      change(document.getElementsByName("entladeFahrstuhl")[0]);
      change(document.getElementsByName("entladeHalteverbot")[0]);                   
    break;    
  }
}

// Änderung von Formularelementen verarbeiten 
function change(el)
{

//show("<br />change");
	var tmp, i;
  switch(el.name)
  {      
    case "AuktionDauer":  // Berechnen vom Auktionsende
			var val = get_radio_value(el.name);  
      var days = parseInt(val.substring(0, val.length - 5));
      var now = new Date();
      var end = new Date();
      end.setDate(now.getDate() + days);      
      val = end.getFullYear() + "-" + (end.getMonth() + 1) + "-" + end.getDate();             
    	document.getElementsByName('dateAuktionEnde')[0].value = val;
      val = end.getDate() + "." + (end.getMonth() + 1) + "." + end.getFullYear() + " 19:00 Uhr";      
    	document.getElementsByName('dateAuktionEnde_display')[0].value = val;      
		break;	
    
    // Ein- und Ausblenden abhängiger Formularteile
    case "beladeFahrstuhl": 		// "nicht vorhanden"
    case "entladeFahrstuhl":
    case "beladeHalteverbot":		// "0"
    case "entladeHalteverbot":   
    case "Zeitraum_Termin_Einlagerung":  // "genau"   
      var myval = get_radio_value(el.name);        
      if(typeof(myval) == "string")
      {  
        if((myval == "nicht vorhanden")||(myval == "0")||(myval == "genau"))
        {      
  				tmp = "hidden"; // class zum Aus-
        }else{     
   				tmp = "show"; // oder Einblenden
        }
        react(el.name, "set_class", tmp); // Aktion bei allen abhängigen Elementen durchführen
			}
    break;          
  }  
}

// auf Benutzereingaben reagieren
function react(src, action, arg) // Auslöser, auszuführende Aktion, Parameter
{
//show("<br />react (src, action, arg) ", src + " : " + action + " : " + arg);
  switch(action)
  {
    case "set_class":
//show("set_class");   
      var i, el; var found = true;
      for(i = 0; found; i++)
      {

//show("Name " + src + "_" + i);
              
        el = document.getElementById(src + "_" + i); // Namen abhängiger Elemente mit angehängter Nummerierung                
        if(el == null)
        {
//show("nicht gefunden");        
          found = false;        
        }else{        
//show("A typ " + typeof(el) + " c " + el.className);        
	        el.className = arg;
//show("B typ " + typeof(el) + " c " + el.className);          
        }
      }
    break;
  }
}


// mf 13.8.5 wird vermutlich nicht benutzt
function checkagb(){
if(!(thisform.agb_akzeptiert.checked)) {alert('Ohne, dass Sie die Allgemeinen Geschäftsbedingungen\n' +
'akzeptieren, können wir für Sie keine Leistungen erbringen.\n' +
'Bitte lesen Sie die AGB und geben Sie anschließend Ihre \n' +
'Zustimmung durch Anklicken des entsprechenden Formularfeldes.\n');
return false;}
}

// 22.08. gz validierung beim kartonrechner auf nur ziffern...
// kann eventuell auch noch bei anderen forms sinnvoll eingesetzt werden..

  //--- Prüft, ob der Text für ein Feld zu lang ist.

  function IstZuLang(Feld, AnzZeichen)
  {  // Erstellt von Ralf Pfeifer (www.arstechnica.de)
     var FehlerMeldung = "Fehler beim Ausfüllen des Formulars\n\n"
     var FeldLaenge = Feld.value.length
     var OK = FeldLaenge <= AnzZeichen

     if (!OK) {
        FehlerMeldung += "Dieses Feld darf max. " + AnzZeichen
        FehlerMeldung += " enthalten.\nSie haben " + FeldLaenge + " Zeichen eingegeben"
        alert(FehlerMeldung)
        Feld.focus() }
     return OK
  }


  //--- Prüft, ob nur Ziffern eingegeben wurden
  function NurZiffern(Feld)
  {  PruefeZeichen(Feld, "0123456789", "Bitte prüfen Sie die Zahl") }



  //--- Prüft, ob nur Zeichen eingegeben wurden,
  //--- die für eine Telefonnummer üblich sind
  function NurTelefon(Feld)
  {  PruefeZeichen(Feld, "0123456789 /-+()", "Bitte prüfen Sie die Telefonnummer") }



  //--- Prüft, ob eine eMail-Adresse korrekt aufgebaut ist
  function eMailAdresseOK(eMail)
  {  // Erstellt von Ralf Pfeifer (www.arstechnica.de)

     // Falls das Feld leer ist, ohne Prüfung aussteigen
     if (eMail.value.length==0) { return true }


     // Text für die Fehlermeldung
     var FehlerMeldung = new String("Fehler in der eMail-Adresse\n\n")

     // Position des @ herausfinden
     var PosEt = eMail.value.indexOf("@")
     if (PosEt == -1) {
       alert(FehlerMeldung + "Es fehlt ein @")
       return eMail.focus() }
     if (PosEt == 0) {
       alert(FehlerMeldung + "Es fehlt der Empfänger")
       return eMail.focus() }
     if (eMail.value.indexOf("@", PosEt + 1) > PosEt) {
       alert(FehlerMeldung + "Es darf nur ein @ enthalten sein")
       return eMail.focus() }

     // Position des ersten . nach dem @ herausfinden
     var PosPt = eMail.value.indexOf(".", PosEt)

     if ((PosPt == -1) || (PosPt - PosEt < 2) || (eMail.value.length - PosPt < 3)) {
       FehlerMeldung += "Eine eMail-Adresse muß so aufgebaut sein: x@x.xx "
       FehlerMeldung += "Jedes x steht für mindestens ein Zeichen"
       alert(FehlerMeldung)
       return eMail.focus() }

     // Zulässige Zeichen für eMails definieren
     var ZugelasseneZeichen = new String("abcdefghijklmnopqrstuvwxyz")
     ZugelasseneZeichen += ZugelasseneZeichen.toUpperCase() + "0123456789.-_@"

     // eMail-Adresse auf zulässige Zeichen überprüfen
     return PruefeZeichen(eMail, ZugelasseneZeichen, FehlerMeldung)
    }



    //--- Unterprogramm, welches die Zeichen prüft
    function PruefeZeichen(Feld, ZugelasseneZeichen, FehlerMeldung)
    {  // Erstellt von Ralf Pfeifer (www.arstechnica.de)
       for (var Pos = 0; Pos < Feld.value.length; Pos++)
       {
          if (ZugelasseneZeichen.indexOf(Feld.value.charAt(Pos)) == -1)
          { FehlerMeldung += "\n\nIhre Eingabe enthält das Zeichen '"
            FehlerMeldung += Feld.value.charAt(Pos)
            FehlerMeldung += "'. Sie dürfen nur diese Zeichen verwenden:\n"
            FehlerMeldung += ZugelasseneZeichen
            if (ZugelasseneZeichen.indexOf(" ") == -1)
               { FehlerMeldung += "\nLeerzeichen sind nicht erlaubt" }
            else
               { FehlerMeldung += "\nund das Leerzeichen" }
            alert(FehlerMeldung)
            Feld.focus()
            return
          }
       }
    }

  // -->

function montagecheck(){
	if (document.thisform.mont_keine_montage.checked == false && document.thisform.mont_ergaenzungen.value == "")
	{
		alert('Um genaue Festpreisangebote für Ihren Umzug abgeben zu können benötigen die Umzugsunternehmen noch die Angaben der Montagearbeiten.'); 
	}
	else
	{
		if (document.thisform.mont_keine_montage.checked == true && document.thisform.mont_ergaenzungen.value != "")
		{
			alert('Sie können hier nur eine Möglichkeit auswählen.'); 
		}
		else
		{
				settargetvalue('anmeldung_s5.php');
		}
	}
//alert(document.getElementById('mont_keine_montage').value);
}

// mf 24.6.2006
function check(el_name)
{
	switch(el_name)
  {
  	case 's4_10': // Formular Kartons 11.9.2006
			if(get_radio_value('kart_ergaenzungen') == null)
      {
      	alert('Sie müssen entweder eigene Umzugskartons verwenden oder von der Umzugsfirma liefern lassen. Den Bedarf an Umzugskartons ermitteln Sie über den Kartonrechner.');
      	return false;
			}else{      
  			if(get_radio_value('kart_ergaenzungen') == 'Bereitstellung der Kartons durch die Umzugsfirma')
        {
        	if((document.forms[0].kart_standard.value == 0)&&
          	(document.forms[0].kart_buecher.value == 0)&&
            (document.forms[0].kart_kleider.value == 0)&&
            (document.forms[0].kart_geschirr.value== 0))
          {
          	alert('Bitte geben Sie an, wieviele Kartons Sie benötigen. ');
          	return false;
          }          
        }      
      }       
    break;
      
  	case 'kart_ergaenzungen':
			if(get_radio_value(el_name) == null)
      {
      	if((document.forms[0].kart_standard.value != 0)||
        	(document.forms[0].kart_buecher.value != 0)||
          (document.forms[0].kart_kleider.value != 0)||
          (document.forms[0].kart_geschirr.value!= 0))
        {
        	alert('Bitte geben Sie an ob die Kartons im Preis enthalten sein sollen oder nicht.');
        	return false;
        }
			}       
    break;
  }
	return true;
}
