// Schiffner Consult GbR JavaScript Document

//function open window not used jet
function openNewWindow(URLtoOpen, windowName, windowFeatures)
{ newWindow=window.open (URLtoOpen, windowName, windowFeatures);}


// Standard rollovers

function newImage(arg) {
	if (document.images) {
		rslt = new Image();
		rslt.src = arg;
		return rslt;
	}
}

function changeImages() {
	if (document.images && (preloadFlag == true)) {
		for (var i=0; i<changeImages.arguments.length; i+=2) {
			document[changeImages.arguments[i]].src = changeImages.arguments[i+1];
		}
	}
}



var preloadFlag = false;
function preloadImages() {
	if (document.images) {
		test_o = newImage("../images/test_o.gif");
		augsburg_o = newImage("../images/kAugsburg.gif");
		baar_o = newImage("../images/kBaar.gif");
		eching_o = newImage("../images/kEching.gif");
		forsting_o = newImage("../images/kForsting.gif");
		grassau_o = newImage("../images/kGrassau.gif");
		hof_o = newImage("../images/kHof.gif");
		ingolstadt_o = newImage("../images/kIngolstadt.gif");
		landau_o = newImage("../images/kLandau.gif");
		landshut_o = newImage("../images/kLandshut.gif");
		miesach_o = newImage("../images/kMiesbach.gif");
		muenchen_o = newImage("../images/kMuenchen.gif");
		neuoetting_o = newImage("../images/kNeuoetting.gif");
		regensburg_o = newImage("../images/kRegensburg.gif");
		straubing_o = newImage("../images/kStraubing.gif");
		preloadFlag = true;
	}
}

	 function expandCollapse() {
	for (var i=0; i<expandCollapse.arguments.length; i++) {
		var element = document.getElementById(expandCollapse.arguments[i]);
		element.style.display = (element.style.display == "none") ? "block" : "none";
	
	}
}


function chkForm() {
 
	if(document.frm_anmeldung.Vorname.value=="")
	 {
	  alert("Bitte Ihren Vornamen eingeben");
	  document.frm_anmeldung.Vorname.focus();
	  return false;
	 }
	 if(document.frm_anmeldung.Nachname.value=="")
	 {
	  alert("Bitte Ihren Nachnamen eingeben");
	  document.frm_anmeldung.Nachname.focus();
	  return false;
	 }
	 if(document.frm_anmeldung.Geburtsdatum.value=="")
	 {
	  alert("Bitte Ihr Geburtsdatum eingeben");
	  document.frm_anmeldung.Geburtsdatum.focus();
	  return false;
	 }
	 if(document.frm_anmeldung.Geburtsort.value=="")
	 {
	  alert("Bitte Ihren Geburtsort eingeben");
	  document.frm_anmeldung.Geburtsort.focus();
	  return false;
	 }
	 
	 if(document.frm_anmeldung.Staatsangehoerigkeit.value=="")
	 {
	  alert("Bitte Ihre Staatsangehoerigkeit eingeben");
	  document.frm_anmeldung.Staatsangehoerigkeit.focus();
	  return false;
	 }
	if(document.frm_anmeldung.Strasse.value=="")
	 {
	  alert("Bitte Ihre Strasse und Hausnummer eingeben");
	  document.frm_anmeldung.Strasse.focus();
	  return false;
	 }
	 if(document.frm_anmeldung.Ort.value=="")
	 {
	  alert("Bitte Ihre Postleitzahl und den Ort eingeben");
	  document.frm_anmeldung.Ort.focus();
	  return false;
	 }
	 if(document.frm_anmeldung.Telefon.value=="")
	 {
	  alert("Bitte Ihre Telefon eingeben");
	  document.frm_anmeldung.Telefon.focus();
	  return false;
	 }
	 
	 if(document.frm_anmeldung.Email.value=="")
	 {
	  alert("Bitte Ihre E-Mail Adresse eingeben");
	  document.frm_anmeldung.Email.focus();
	  return false;
	 }
	if(document.frm_anmeldung.Email.value.indexOf('@')==-1)
	 {
	  alert("Ist Ihre E-Mail Adresse richtig?");
	  document.frm_anmeldung.Email.focus();
	  return false;
	 }

	 if(document.frm_anmeldung.RechnungBezahltArbeitgeber.checked == false && document.frm_anmeldung.RechnungBezahltTeilnehmer.checked == false)
	 {
	  alert("Bitte waehlen Sie Rechnung bezahlt Teilnehmer oder Arbeitgeber");
	  document.frm_anmeldung.RechnungBezahltArbeitgeber.focus();
	  return false;
	 }
	 
	 if(document.frm_anmeldung.RechnungBezahltArbeitgeber.checked == true)
	 {
		 if(document.frm_anmeldung.Firma.value=="")
		 {
	  		alert("Bitte geben Sie die Arbeitgeber an");
	 	 	document.frm_anmeldung.Firma.focus();
	  		return false;
		 }
		 if(document.frm_anmeldung.AnsprechpartnerFirma.value=="")
		 {
	  		alert("Bitte geben Sie den Ansprechpartner an");
	 	 	document.frm_anmeldung.AnsprechpartnerFirma.focus();
	  		return false;
		 }
		 if(document.frm_anmeldung.StrasseFirma.value=="")
		 {
	  		alert("Bitte geben Sie die Strasse der Firma an");
	 	 	document.frm_anmeldung.StrasseFirma.focus();
	  		return false;
		 }
		 if(document.frm_anmeldung.OrtFirma.value=="")
		 {
	  		alert("Bitte geben Sie den Ort der Firma an");
	 	 	document.frm_anmeldung.OrtFirma.focus();
	  		return false;
		 }
		 if(document.frm_anmeldung.TelefonFirma.value=="")
		 {
	  		alert("Bitte geben Sie die Telefonnummer der Firma an");
	 	 	document.frm_anmeldung.TelefonFirma.focus();
	  		return false;
		 }
		 if(document.frm_anmeldung.EmailFirma.value=="")
		 {
	  		alert("Bitte geben Sie die E-mail Adresse der Firma an");
	 	 	document.frm_anmeldung.EmailFirma.focus();
	  		return false;
		 }
		if(document.frm_anmeldung.EmailFirma.value.indexOf('@')==-1)
		 {
	 	 alert("Ist Ihre E-Mail Adresse richtig?");
	 	 document.frm_anmeldung.EmailFirma.focus();
		  return false;
		 }
	 } 
	 
	 
	if(document.frm_anmeldung.agb.checked == false) 
	 {
	  alert("Bitte die Geschäftsbedingungen lesen und akzeptieren");
	  document.frm_anmeldung.agb.focus();
	  return false;
	 }
	 
}

function chkForm2() {
	
	if(document.frm_anmeldung.Vorname.value=="")
	 {
	  alert("Bitte Ihren Vornamen eingeben");
	  document.frm_anmeldung.Vorname.focus();
	  return false;
	 }
	 if(document.frm_anmeldung.Nachname.value=="")
	 {
	  alert("Bitte Ihren Nachnamen eingeben");
	  document.frm_anmeldung.Nachname.focus();
	  return false;
	 }
	 if(document.frm_anmeldung.Geburtsdatum.value=="")
	 {
	  alert("Bitte Ihr Geburtsdatum eingeben");
	  document.frm_anmeldung.Geburtsdatum.focus();
	  return false;
	 }
	 if(document.frm_anmeldung.Geburtsort.value=="")
	 {
	  alert("Bitte Ihren Geburtsort eingeben");
	  document.frm_anmeldung.Geburtsort.focus();
	  return false;
	 }
	 if(document.frm_anmeldung.Geburtsland.value=="")
	 {
	  alert("Bitte Ihr Geburtsland eingeben");
	  document.frm_anmeldung.Geburtsland.focus();
	  return false;
	 }
	 if(document.frm_anmeldung.Staatsangehoerigkeit.value=="")
	 {
	  alert("Bitte Ihre Staatsangehoerigkeit eingeben");
	  document.frm_anmeldung.Staatsangehoerigkeit.focus();
	  return false;
	 }
	if(document.frm_anmeldung.Strasse.value=="")
	 {
	  alert("Bitte Ihre Strasse und Hausnummer eingeben");
	  document.frm_anmeldung.Strasse.focus();
	  return false;
	 }
	 if(document.frm_anmeldung.Ort.value=="")
	 {
	  alert("Bitte Ihre Postleitzahl und den Wohnort eingeben");
	  document.frm_anmeldung.Ort.focus();
	  return false;
	 }
	 if(document.frm_anmeldung.Telefon.value=="")
	 {
	  alert("Bitte Ihre Telefon eingeben");
	  document.frm_anmeldung.Telefon.focus();
	  return false;
	 }
	 
	 if(document.frm_anmeldung.Email.value=="")
	 {
	  alert("Bitte Ihre E-Mail Adresse eingeben");
	  document.frm_anmeldung.Email.focus();
	  return false;
	 }
	if(document.frm_anmeldung.Email.value.indexOf('@')==-1)
	 {
	  alert("Ist Ihre E-Mail Adresse richtig?");
	  document.frm_anmeldung.Email.focus();
	  return false;
	 }
	 
	 if(document.frm_anmeldung.RechnungBezahltArbeitgeber.checked == false && document.frm_anmeldung.RechnungBezahltTeilnehmer.checked == false)
	 {
	  alert("Bitte waehlen Sie Rechnung bezahlt Teilnehmer oder Arbeitgeber");
	  document.frm_anmeldung.RechnungBezahltArbeitgeber.focus();
	  return false;
	 }
	 
	 if(document.frm_anmeldung.RechnungBezahltArbeitgeber.checked == true)
	 {
		 if(document.frm_anmeldung.Firma.value=="")
		 {
	  		alert("Bitte geben Sie die Arbeitgeber an");
	 	 	document.frm_anmeldung.Firma.focus();
	  		return false;
		 }
		 if(document.frm_anmeldung.AnsprechpartnerFirma.value=="")
		 {
	  		alert("Bitte geben Sie den Ansprechpartner an");
	 	 	document.frm_anmeldung.AnsprechpartnerFirma.focus();
	  		return false;
		 }
		 if(document.frm_anmeldung.StrasseFirma.value=="")
		 {
	  		alert("Bitte geben Sie die Strasse der Firma an");
	 	 	document.frm_anmeldung.StrasseFirma.focus();
	  		return false;
		 }
		 if(document.frm_anmeldung.OrtFirma.value=="")
		 {
	  		alert("Bitte geben Sie den Ort der Firma an");
	 	 	document.frm_anmeldung.OrtFirma.focus();
	  		return false;
		 }
		 if(document.frm_anmeldung.TelefonFirma.value=="")
		 {
	  		alert("Bitte geben Sie die Telefonnummer der Firma an");
	 	 	document.frm_anmeldung.TelefonFirma.focus();
	  		return false;
		 }
		 if(document.frm_anmeldung.EmailFirma.value=="")
		 {
	  		alert("Bitte geben Sie die E-mail Adresse der Firma an");
	 	 	document.frm_anmeldung.EmailFirma.focus();
	  		return false;
		 }
		if(document.frm_anmeldung.EmailFirma.value.indexOf('@')==-1)
		 {
	 	 alert("Ist Ihre E-Mail Adresse richtig?");
	 	 document.frm_anmeldung.EmailFirma.focus();
		  return false;
		 }
	 } 
	 
	if(document.frm_anmeldung.agb.checked == false) 
	 {
	  alert("Bitte die Geschäftsbedingungen lesen und akzeptieren");
	  document.frm_anmeldung.agb.focus();
	  return false;
	 }
	 
}

function chkAnfrage() {
	
	 if(document.frm_anfrage.Firma.value=="")
	 {
	  alert("Bitte den Firmennamen eingeben");
	  document.frm_anfrage.Firma.focus();
	  return false;
	 }
	 if(document.frm_anfrage.Ansprechpartner.value=="")
	 {
	  alert("Bitte den Namen des Ansprechpartners eingeben");
	  document.frm_anfrage.Ansprechpartner.focus();
	  return false;
	 }
	if(document.frm_anfrage.Strasse.value=="")
	 {
	  alert("Bitte Ihre Strasse und Hausnummer eingeben");
	  document.frm_anfrage.Strasse.focus();
	  return false;
	 }
	 if(document.frm_anfrage.Ort.value=="")
	 {
	  alert("Bitte Ihre Postleitzahl und den Wohnort eingeben");
	  document.frm_anfrage.Ort.focus();
	  return false;
	 }
	 if(document.frm_anfrage.Telefon.value=="")
	 {
	  alert("Bitte Ihre Telefon eingeben");
	  document.frm_anfrage.Telefon.focus();
	  return false;
	 }
	 
	 if(document.frm_anfrage.Email.value=="")
	 {
	  alert("Bitte Ihre E-Mail Adresse eingeben");
	  document.frm_anfrage.Email.focus();
	  return false;
	 }
	if(document.frm_anfrage.Email.value.indexOf('@')==-1)
	 {
	  alert("Ist Ihre E-Mail Adresse richtig?");
	  document.frm_anfrage.Email.focus();
	  return false;
	 }

}

function chkAnfrageLG() {
	
	 if(document.frm_anfrageLG.Firma.value=="")
	 {
	  alert("Bitte den Firmennamen eingeben");
	  document.frm_anfrageLG.Firma.focus();
	  return false;
	 }
	 if(document.frm_anfrageLG.Ansprechpartner.value=="")
	 {
	  alert("Bitte den Namen des Ansprechpartners eingeben");
	  document.frm_anfrageLG.Ansprechpartner.focus();
	  return false;
	 }
	if(document.frm_anfrageLG.Strasse.value=="")
	 {
	  alert("Bitte Ihre Strasse und Hausnummer eingeben");
	  document.frm_anfrageLG.Strasse.focus();
	  return false;
	 }
	 if(document.frm_anfrageLG.Ort.value=="")
	 {
	  alert("Bitte Ihre Postleitzahl und den Wohnort eingeben");
	  document.frm_anfrageLG.Ort.focus();
	  return false;
	 }
	 if(document.frm_anfrageLG.Telefon.value=="")
	 {
	  alert("Bitte Ihre Telefon eingeben");
	  document.frm_anfrageLG.Telefon.focus();
	  return false;
	 }
	 
	 if(document.frm_anfrageLG.Email.value=="")
	 {
	  alert("Bitte Ihre E-Mail Adresse eingeben");
	  document.frm_anfrageLG.Email.focus();
	  return false;
	 }
	if(document.frm_anfrageLG.Email.value.indexOf('@')==-1)
	 {
	  alert("Ist Ihre E-Mail Adresse richtig?");
	  document.frm_anfrageLG.Email.focus();
	  return false;
	 }

}



// for flickerfree dropdown, since IE can only :hover on an <a> element; other elements not!
// So for IE we have to use onmouseover/onmouseout events
// start IE check with <body onLoad="init('droplist')">
// if there are more 'droplists', name them differently, else it won't work for those!

var g_bH = false;

  function init(p_strId) {
    g_bH = false;
    var l_E = document.getElementById(p_strId);
    if(l_E && document.defaultView) {
if(document.defaultView.getComputedStyle(l_E, 'hover')) {
  g_bH = true;
}
    }
    l_E = null;
  }

  
  //	Browsercheck (needed)
	function lib_bwcheck() {
		this.ver=navigator.appVersion;
		this.agent=navigator.userAgent;
		this.dom=document.getElementById?1:0;
		this.opera5=this.agent.indexOf("Opera 5")>-1;
		this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom && !this.opera5)?1:0; 
		this.ie6=(this.ver.indexOf("MSIE 6")>-1 && this.dom && !this.opera5)?1:0;
		this.ie4=(document.all && !this.dom && !this.opera5)?1:0;
		this.ie=this.ie4||this.ie5||this.ie6;
		this.mac=this.agent.indexOf("Mac")>-1;
		this.ns6=(this.dom && parseInt(this.ver) >= 5) ?1:0;
		this.ns4=(document.layers && !this.dom)?1:0;
		this.bw=(this.ie6 || this.ie5 || this.ie4 || this.ns4 || this.ns6 || this.opera5);
		return this;
	}
	
//	replace image
	var bw = new lib_bwcheck();
	
	function set_image(name, url) {
		var img = document.images[name];
		if(img){
		  img.src = url;
		}
	}
	


/* ***********************************************************
Example 4-3 (DHTMLAPI.js)
"Dynamic HTML:The Definitive Reference"
2nd Edition
by Danny Goodman
Published by O'Reilly & Associates  ISBN 1-56592-494-0
http://www.oreilly.com
Copyright 2002 Danny Goodman.  All Rights Reserved.
************************************************************ */
// DHTMLapi.js custom API for cross-platform
// object positioning by Danny Goodman (http://www.dannyg.com).
// Release 2.0. Supports NN4, IE, and W3C DOMs.
// safari fix by Barbara Voelk 10/05 
// Global variables
var isCSS, isW3C, isIE4, isNN4, isNN6, isIE6CSS, isSafari, isFireFox, isOpera;
// Initialize upon load to let all browsers establish content objects
function getNNVersionNumber () {
	if (navigator.appName == "Netscape") {
		var appVer = parseFloat(navigator.appVersion);
		if (appVer < 5) {
			return appVer;
		} else {
			if (typeof navigator.vendorSub != "undefinex") {
				return parseFloat(navigator.vendorSub);
			}
		}
	}
	return 0;
}

function initLibrary() {
    if (document.images) {
        isCSS = (document.body && document.body.style) ? true : false;
        isW3C = (isCSS && document.getElementById) ? true : false;
        isIE4 = (isCSS && document.all) ? true : false;
        isNN4 = (document.layers) ? true : false;
		isNN6 = getNNVersionNumber() >= 6;
        isIE6CSS = (document.compatMode && document.compatMode.indexOf("CSS1") >= 0) ? true : false;
		isSafari = (navigator.userAgent.indexOf("Safari") != -1);
		isFireFox = (navigator.userAgent.indexOf("Firefox") != -1);
		//cannot use Opera chec,k since IE 6 thinks he is Opera!!
		//isOpera = (navigator.userAgent.indexOf("Opera") != -1);
		//if(isOpera || isNN4 || isIE4) {
		//if(isNN4 || isIE4) {
		//alert("Die Seite kann in diesem Browser nicht richtig dargestellt werden! Korrekte Darstellung im IE ab Version 6, FireFox ab Version 2, Netscape ab Verson 6 oder Safari.");
		//}
    }
}

	
// Set event handler to initialize API
window.onload = initLibrary;

// Seek nested NN4 layer from string name
function seekLayer(doc, name) {
    var theObj;
    for (var i = 0; i < doc.layers.length; i++) {
        if (doc.layers[i].name == name) {
            theObj = doc.layers[i];
            break;
        }
        // dive into nested layers if necessary
        if (doc.layers[i].document.layers.length > 0) {
            theObj = seekLayer(document.layers[i].document, name);
        }
    }
    return theObj;
}

// Convert object name string or object reference
// into a valid element object reference
function getRawObject(obj) {
    var theObj;
    if (typeof obj == "string") {
        if (isW3C) {
            theObj = document.getElementById(obj);
        } else if (isIE4) {
            theObj = document.all(obj);
        } else if (isNN4) {
            theObj = seekLayer(document, obj);
        }
    } else {
        // pass through object reference
        theObj = obj;
    }
    return theObj;
}

// Convert object name string or object reference
// into a valid style (or NN4 layer) reference
function getObject(obj) {
    var theObj = getRawObject(obj);
    if (theObj && isCSS) {
        theObj = theObj.style;
    }
    return theObj;
}

// Position an object at a specific pixel coordinate
function shiftTo(obj, x, y) {
    var theObj = getObject(obj);
    if (theObj) {
        if (isCSS) {
            // equalize incorrect numeric value type
            var units = (typeof theObj.left == "string") ? "px" : 0 
            theObj.left = x + units;
            theObj.top = y + units;
        } else if (isNN4) {
            theObj.moveTo(x,y)
        }
    }
}

// Move an object by x and/or y pixels
function shiftBy(obj, deltaX, deltaY) {
    var theObj = getObject(obj);
    if (theObj) {
        if (isCSS) {
            // equalize incorrect numeric value type
            var units = (typeof theObj.left == "string") ? "px" : 0 
            theObj.left = getObjectLeft(obj) + deltaX + units;
            theObj.top = getObjectTop(obj) + deltaY + units;
        } else if (isNN4) {
            theObj.moveBy(deltaX, deltaY);
        }
    }
}

// Set the z-order of an object
function setZIndex(obj, zOrder) {
    var theObj = getObject(obj);
    if (theObj) {
        theObj.zIndex = zOrder;
    }
}

// Set the background color of an object
function setBGColor(obj, color) {
    var theObj = getObject(obj);
    if (theObj) {
        if (isNN4) {
            theObj.bgColor = color;
        } else if (isCSS) {
            theObj.backgroundColor = color;
        }
    }
}

// Set the visibility of an object to visible
function show(obj) {
    var theObj = getObject(obj);
    if (theObj) {
        theObj.visibility = "visible";
    }
}

// Set the visibility of an object to hidden
function hide(obj) {
    var theObj = getObject(obj);
    if (theObj) {
        theObj.visibility = "hidden";
    }
}

// Retrieve the x coordinate of a positionable object
function getObjectLeft(obj)  {
    var elem = getRawObject(obj);
    var result = 0;
    if (document.defaultView) {
        var style = document.defaultView;
        var cssDecl = style.getComputedStyle(elem, "");
        result = cssDecl.getPropertyValue("left");
    } else if (elem.currentStyle) {
        result = elem.currentStyle.left;
    } else if (elem.style) {
        result = elem.style.left;
    } else if (isNN4) {
        result = elem.left;
    }
    return parseInt(result);
}

// Retrieve the y coordinate of a positionable object
function getObjectTop(obj)  {
    var elem = getRawObject(obj);
    var result = 0;
    if (document.defaultView) {
        var style = document.defaultView;
        var cssDecl = style.getComputedStyle(elem, "");
        result = cssDecl.getPropertyValue("top");
    } else if (elem.currentStyle) {
        result = elem.currentStyle.top;
    } else if (elem.style) {
        result = elem.style.top;
    } else if (isNN4) {
        result = elem.top;
    }
    return parseInt(result);
}

// Retrieve the rendered width of an element
function getObjectWidth(obj)  {
    var elem = getRawObject(obj);
    var result = 0;
    if (elem.offsetWidth) {
        result = elem.offsetWidth;
    } else if (elem.clip && elem.clip.width) {
        result = elem.clip.width;
    } else if (elem.style && elem.style.pixelWidth) {
        result = elem.style.pixelWidth;
    }
    return parseInt(result);
}

// Retrieve the rendered height of an element
function getObjectHeight(obj)  {
    var elem = getRawObject(obj);
    var result = 0;
    if (elem.offsetHeight) {
        result = elem.offsetHeight;
    } else if (elem.clip && elem.clip.height) {
        result = elem.clip.height;
    } else if (elem.style && elem.style.pixelHeight) {
        result = elem.style.pixelHeight;
    }
    return parseInt(result);
}

// Return the available content width space in browser window
function getInsideWindowWidth() {
    if (window.innerWidth) {
        return window.innerWidth;
    } else if (isIE6CSS) {
        // measure the html element's clientWidth
        return document.body.parentElement.clientWidth
    } else if (document.body && document.body.clientWidth) {
        return document.body.clientWidth;
    }
    return 0;
}

// Return the available content height space in browser window
function getInsideWindowHeight() {
    if (window.innerHeight) {
        return window.innerHeight;
    } else if (isIE6CSS) {
        // measure the html element's clientHeight
        return document.body.parentElement.clientHeight
    } else if (document.body && document.body.clientHeight) {
        return document.body.clientHeight;
    }
    return 0;
}

// start script for scroll buttons
var scrollEngaged = false;
var scrollInterval;
var scrollBars = new Array();

function getElementStyle(elemID, IEStyleAttr, CSSStyleAttr) {
    var elem = document.getElementById(elemID);
    if (elem.currentStyle) {
        return elem.currentStyle[IEStyleAttr];
    } else if (window.getComputedStyle) {
        var compStyle = window.getComputedStyle(elem, "");
        return compStyle.getPropertyValue(CSSStyleAttr);
    }
    return "";
}

function scrollBar(ownerID, ownerContentID, upID, dnID) {
    this.ownerID = ownerID;
    this.ownerContentID = ownerContentID;
    this.index = scrollBars.length;
	//alert("scrollBars.length is" + scrollBars.length);
    this.upButton = document.getElementById(upID);
    this.dnButton = document.getElementById(dnID);
    this.upButton.index = this.index;
    this.dnButton.index = this.index;
    //problems with Safari, can't get getElementStyle properly
    this.ownerHeight = parseInt(getElementStyle(this.ownerID, "height", "height"));
	
    this.contentElem = document.getElementById(ownerContentID);
    this.contentFontSize = parseInt(getElementStyle(this.ownerContentID, 
        "fontSize", "font-size"));
    this.contentScrollHeight = (this.contentElem.scrollHeight) ? 
        this.contentElem.scrollHeight : this.contentElem.offsetHeight;
    this.initScroll = initScroll;
}


function initScroll() {
    this.upButton.onmousedown = handleScrollClick;
    this.upButton.onmouseup = handleScrollStop;
    this.upButton.oncontextmenu = blockEvent;

    this.dnButton.onmousedown = handleScrollClick;
    this.dnButton.onmouseup = handleScrollStop;
    this.dnButton.oncontextmenu = blockEvent;
    
    var isIEMac = (navigator.appName.indexOf("Explorer") != -1 && navigator.userAgent.indexOf("Mac") != -1);
    if (!isIEMac) {
        document.getElementById("innerWrapper0").style.overflow = "hidden";
        //alert("is not isIEMac");
    }
}

function handleScrollStop() {
    scrollEngaged = false;
}

function blockEvent(evt) {
    evt = (evt) ? evt : event;
    evt.cancelBubble = true;
    return false;
}

function handleScrollClick(evt) {
    var fontSize;
    evt = (evt) ? evt : event;
    var target = (evt.target) ? evt.target : evt.srcElement;
    var index = target.index;
    fontSize = scrollBars[index].contentFontSize;
    // here Safari fix: to fix what function scrollBar (which uses getElementStyle ()) couldn't do for Safari
    if(isSafari) {
    	scrollBars[index].contentFontSize = 11;
    	fontSize = scrollBars[index].contentFontSize;
		//alert("called function handleScrollClick, value safari scrollBars[index].contentFontSize:" + scrollBars[index].contentFontSize);
	}
    fontSize = (target.className == "lineup") ? fontSize : -fontSize;
    scrollEngaged = true;
    scrollBy(index, parseInt(fontSize));
    scrollInterval = setInterval("scrollBy(" + index + ", " + parseInt(fontSize) + ")", 30);
    evt.cancelBubble = true;
    return false;
}

function scrollBy(index, px) {
    var scroller = scrollBars[index];
    var elem = document.getElementById(scroller.ownerContentID);
    var top = parseInt(elem.style.top);
    var scrollHeight = parseInt(scroller.contentScrollHeight);
    var height = scroller.ownerHeight;
   // here we fix what function scrollBar (which uses getElementStyle ()) couldn't do for Safari
    if(isSafari) {
    	height = 190;
		//alert("called function scrollBy, value safari height:" + height);
	}
    //alert("called function scrollBy, value height for all:" + height);
    //alert("called function scrollBy, value scroller.contentFontSize for all:" + scroller.contentFontSize);
    if (scrollEngaged && top + px >= -scrollHeight + height && top + px <= 0) {
        shiftBy(elem, 0, px);
    } else {
    	//alert("called function scrollBy, else loop clearInterval");
        clearInterval(scrollInterval);
    }
}


function initScroller() {
    scrollBars[0] = new scrollBar("outerWrapper0", "innerWrapper0", "lineup0", 
        "linedown0");
    scrollBars[0].initScroll();
}
