// filename: stober.js
// functions for the main navigation and other pages
// version 1.2 -  07/01/04
// Distributed under the terms of the GNU Library General Public License
// author: martin dot krause at gpm dot de 

window.onerror = null


/////////////////////////
// page initialization //
/////////////////////////

function ac_validate(){
	/*
	 * typ
	 * n : normales feld mit ansprache ueber value
	 * s : select feld
	 * c : checkbox
	 */
	
  var feld, bedingung, bezeichnung, typ, feldvalue;
  alertText = "Folgende(s) Feld(er) müssen ausgefüllt sein:\n"
	errors    = "";

  for (i=0; i<(ac_validate.arguments.length-2); i+=4) { 
		feld = ac_validate.arguments[i]; 
  	bedingung = ac_validate.arguments[i+1]; 
  	bezeichnung = ac_validate.arguments[i+2];
  	typ = ac_validate.arguments[i+3];
    //alert("bedingung: " + bedingung + "\n"
    //    + "bezeichnung: " + bezeichnung + "\n"
    //    + "typ: " + typ + "\n"
    //    + "feld: " + feld);

    // behandelt alle 'normalen' felder
    if (typ == "n") {
			// den Inhalt des aktuellen Feldes in der Variable feldvalue speichern
    	feldvalue = eval(feld).value;
    	if (feldvalue != "") {

        // test ob isEmail
        if (bedingung.indexOf('isEmail')!=-1) {
      		add=feldvalue.indexOf('@');                  // Test ob ein '@' enthalten ist
        	if (add == -1){
        		errors+='- '+bezeichnung+' muss eine e-mail Adresse enthalten.\n';
          }
        }
        
        //if (bedingung.indexOf('isNum')!=-1) {
        if (bedingung.indexOf('isNum')!=-1 || bedingung.indexOf('inRange')!=-1) {
          num = parseFloat(feldvalue);                 // Test ob der Wert eine Zahl ist
          // falls das erste Zeichen eine 0 ist aber die Zeichenkette länger als 1 ist, wird die führende 0 abgeschnitten
          while((feldvalue.substring(0,1) == "0") && (feldvalue.length > 1)){
              feldvalue = feldvalue.substring(1);
          	}
        	if (feldvalue!=''+num)
            errors+='- '+bezeichnung+' muss einen numerischen Wert enthalten.\n';
        }

        // test ob inRange
        if (bedingung.indexOf('inRange')!=-1) {
          doppelpunkt = bedingung.indexOf(':');
          num = parseFloat(feldvalue);                 // Test ob der Wert eine Zahl ist
          minRange=bedingung.substring(8,doppelpunkt); // Auslesen des Maximums -> ab Pos 8 bis Pos des Zeichen ':'
          maxRange=bedingung.substring(doppelpunkt+1); // Auslesen des Minimums -> ab Pos des Zeichen ':' bis zum ende
          if (num<minRange || maxRange<num) {
            // bei daten eher unschöne fehlermeldung
            //errors+='- '+bezeichnung+' muss eine Zahl zwischen '+minRange+' und '+maxRange+' enthalten.\n';
            errors+='- '+bezeichnung+' muss einen gültigen Wert enthalten.\n';
          }
        }

      } else {
    		if (bedingung.charAt(0) == 'R') 
    			errors += '- '+bezeichnung+' \n';
      }
    }

    // behandelt alle 'select' felder
    if (typ == "s") {
      //falls die erste option ausgewählt ist
    	if(eval(feld).options[0].selected)
       errors+='- '+bezeichnung+' bitte auswählen.\n';
    }

    // behandelt alle 'radios'
    if (typ == "r") {
      //anzahl der radiobuttons muss als bedingung übergeben werden,
      //in der Form R[Anzahl Radios]
      countOfRadios = bedingung.substring(1)
			radioChecked = false;

      //über alle Radio Buttons drüber gehen und schauen ob einer ausgewählt ist
      for(counter = 0; counter < countOfRadios; counter++){
        if(eval(feld)[counter].checked) radioChecked = true;
      }
      
    	if(!radioChecked)
       errors+='- '+bezeichnung+' bitte auswählen.\n';
    }
    if (typ == "c") {
      if(eval(feld).checked != true) errors+='- '+bezeichnung+' bitte auswählen.\n';
    	
    }
    

  }
  if (errors) {
    alert(alertText + "\n" + errors);
    return false;
    } else {
    return true;
  }
} 

function pageInit(){
	// initialize browsercheck library
	is = new BrowserCheck();
	
	// enable scrollbars of mainContent-layer OR resize bg subnav
	if (is.dom) {
		var visHeight;
		var contentHeight = (is.ie5up) ? document.getElementById('mainContent').offsetHeight : parseInt(getComputedStyle(document.getElementById('mainContent'), null).getPropertyValue('height'));
		var subnavbgHeight = (is.ie5up) ? document.getElementById('bgFac').offsetHeight : parseInt(getComputedStyle(document.getElementById('bgFac'), null).getPropertyValue('height'));
		
		// resize bg subnav	
		if (contentHeight > subnavbgHeight) document.getElementById('bgFac').style.height = contentHeight+82+'px';
		
		//if (contentHeight > subnavbgHeight) document.getElementById('bgFacTableId').style.height = contentHeight+82+'px';
		
		// OR init scrollbars for mainContent
		/*
		// get visible height
		if (window.innerHeight) {var visHeight = window.innerHeight;}
		else if (document.body && document.body.clientHeight) {var visHeight = document.body.clientHeight;}
		
		// set scrollbars
		document.getElementById('mainContent').style.width = "570px";
		document.getElementById('mainContent').style.height = (visHeight - 82 - 15) + "px";
		document.getElementById('mainContent').style.overflow = "auto";
		*/
	}
	
	// change left pos of bg subnav in NN4.7
	if(is.ns4) document.layers.bgFac.left = -3;
}

// show whole layer after resizing the window //

function regenerate()
{
	window.location.reload();
}

if (window.document.layers) {
	window.document.captureEvents(Event.RESIZE);
	window.onresize = regenerate;
}

// rollover / subnavigation //

function subover(navlayer, which) {
	if (is.ns4) {document[navlayer].document.images[navlayer + "_" + which].src = subimgover[which].src;}
	else document.images[navlayer + "_" + which].src = subimgover[which].src;
}

function subout(navlayer, which) {
	if (is.ns4) {document[navlayer].document.images[navlayer + "_" + which].src = subimgnormal[which].src;}
	else document.images[navlayer + "_" + which].src = subimgnormal[which].src;

}


// rollover / mainnavigation //

function mainover(navlayer, which) {
	if (is.ns4) 
	{
	navlayername = new String;
	navlayername = "mainNav";
	document[navlayername].document.images[navlayer + "_" + which].src = mainimgover[which].src; 
	document[navlayername].document.images[navlayer + "_select_" + which].src = mainimgover_select[which].src; 
	}

	else 
	{
	document.images[navlayer + "_" + which].src = mainimgover[which].src; 
	document.images[navlayer + "_select_" + which].src = mainimgover_select[which].src; 
	}
}

function mainout(navlayer, which) {
	if (is.ns4) 
	{
	navlayername = new String;
	navlayername = "mainNav";
	document[navlayername].document.images[navlayer + "_" + which].src = mainimgnormal[which].src; 
	document[navlayername].document.images[navlayer + "_select_" + which].src = mainimgnormal_select[which].src; 
	}

	else 
	{
	document.images[navlayer + "_" + which].src = mainimgnormal[which].src; 
	document.images[navlayer + "_select_" + which].src = mainimgnormal_select[which].src; 
	}

}



// preload images used for the navigation //


// mainnavigation //
mainimgnormal = new Array();
mainimgnormal_select = new Array();

mainimgnormal[1] = new Image(); mainimgnormal[1].src = "/img/mainNav_home.gif";
mainimgnormal_select[1] = new Image(); mainimgnormal_select[1].src = "/img/mainNav_home_select.gif";
mainimgnormal[2] = new Image(); mainimgnormal[2].src = "/img/mainNav_untern.gif";
mainimgnormal_select[2] = new Image(); mainimgnormal_select[2].src = "/img/mainNav_unter_select.gif";
mainimgnormal[3] = new Image(); mainimgnormal[3].src = "/img/mainNav_sortiment.gif";
mainimgnormal_select[3] = new Image(); mainimgnormal_select[3].src = "/img/mainNav_sortiment_select.gif";
mainimgnormal[4] = new Image(); mainimgnormal[4].src = "/img/mainNav_shop.gif";
mainimgnormal_select[4] = new Image(); mainimgnormal_select[4].src = "/img/mainNav_shop_select.gif";
mainimgnormal[5] = new Image(); mainimgnormal[5].src = "/img/mainNav_kontakt.gif";
mainimgnormal_select[5] = new Image(); mainimgnormal_select[5].src = "/img/mainNav_kontakt_select.gif";
mainimgnormal[6] = new Image(); mainimgnormal[6].src = "/img/mainNav_impressum.gif";
mainimgnormal_select[6] = new Image(); mainimgnormal_select[6].src = "/img/mainNav_impressum_select.gif";


// mainnavigation - selector //
mainimgover = new Array();
mainimgover_select = new Array();

mainimgover[1] = new Image(); mainimgover[1].src = "/img/mainNav_home-over.gif";
mainimgover_select[1] = new Image(); mainimgover_select[1].src = "/img/mainNav_home_select-mainNav.gif";
mainimgover[2] = new Image(); mainimgover[2].src = "/img/mainNav_untern-over.gif";
mainimgover_select[2] = new Image(); mainimgover_select[2].src = "/img/mainNav_unter_select-over.gif";
mainimgover[3] = new Image(); mainimgover[3].src = "/img/mainNav_sortiment-over.gif";
mainimgover_select[3] = new Image(); mainimgover_select[3].src = "/img/mainNav_sortiment_select-over.gif";
mainimgover[4] = new Image(); mainimgover[4].src = "/img/mainNav_shop-over.gif";
mainimgover_select[4] = new Image(); mainimgover_select[4].src = "/img/mainNav_shop_select-over.gif";
mainimgover[5] = new Image(); mainimgover[5].src = "/img/mainNav_kontakt-over.gif";
mainimgover_select[5] = new Image(); mainimgover_select[5].src = "/img/mainNav_kontakt_select-over.gif";
mainimgover[6] = new Image(); mainimgover[6].src = "/img/mainNav_impressum-over.gif";
mainimgover_select[6] = new Image(); mainimgover_select[6].src = "/img/mainNav_impressum_select-over.gif";


// subnavigation //
subimgnormal = new Array();
subimgover = new Array();

subimgnormal[1] = new Image(); subimgnormal[1].src = "/img/subNav_1_sb.gif"; 
subimgnormal[2] = new Image(); subimgnormal[2].src = "/img/subNav_2_sb.gif";
subimgnormal[3] = new Image(); subimgnormal[3].src = "/img/subNav_3_sb.gif";
subimgnormal[4] = new Image(); subimgnormal[4].src = "/img/subNav_4_sb.gif";
subimgnormal[5] = new Image(); subimgnormal[5].src = "/img/subNav_5_sb.gif";
subimgnormal[6] = new Image(); subimgnormal[6].src = "/img/subNav_6_sb.gif";
subimgnormal[7] = new Image(); subimgnormal[7].src = "/img/subNav_7_sb.gif";
subimgnormal[11] = new Image(); subimgnormal[11].src = "/img/subNav_1_un.gif";
subimgnormal[12] = new Image(); subimgnormal[12].src = "/img/subNav_2_un.gif";
subimgnormal[13] = new Image(); subimgnormal[13].src = "/img/subNav_3_un.gif";
subimgnormal[21] = new Image(); subimgnormal[21].src = "/img/subNav_1_ko.gif";

subimgover[1] = new Image(); subimgover[1].src = "/img/subNav_1_sb-over.gif";
subimgover[2] = new Image(); subimgover[2].src = "/img/subNav_2_sb-over.gif";
subimgover[3] = new Image(); subimgover[3].src = "/img/subNav_3_sb-over.gif";
subimgover[4] = new Image(); subimgover[4].src = "/img/subNav_4_sb-over.gif";
subimgover[5] = new Image(); subimgover[5].src = "/img/subNav_5_sb-over.gif";
subimgover[6] = new Image(); subimgover[6].src = "/img/subNav_6_sb-over.gif";
subimgover[7] = new Image(); subimgover[7].src = "/img/subNav_7_sb-over.gif";
subimgover[11] = new Image(); subimgover[11].src = "/img/subNav_1_un-over.gif";
subimgover[12] = new Image(); subimgover[12].src = "/img/subNav_2_un-over.gif";
subimgover[13] = new Image(); subimgover[13].src = "/img/subNav_3_un-over.gif";
subimgover[21] = new Image(); subimgover[21].src = "/img/subNav_1_ko-over.gif";

