function MM_openBrWindow(theURL,winName,features)	//v2.0
{
	window.open(theURL,winName,features);
}

function OpenNoScrollWindow( url, width, height, left, top, winname )
{
	var trails = "width=" + width + ",height=" + height + ",left=" + left +",top=" + top +",toolbar=no,directories=no,status=no,scrollbars=no,resizable=no,menubar=no";
	newWindow = window.open( url, winname, trails);
}

function MM_OpenWindow( url, width, height, left, top, winname )
{
	var trails = "width=" + width + ",height=" + height + ",left=" + left +",top=" + top +",toolbar=no,directories=no,status=no,scrollbars=yes,resizable=no,menubar=no";
	newWindow = window.open( url, winname, trails);
}

function MM_OpenWindowImageSort( url, width, height, left, top, winname )
{
	var trails = "width=" + width + ",height=" + height + ",left=" + left +",top=" + top +",toolbar=no,directories=no,status=no,scrollbars=yes,resizable=yes,menubar=no";
	newWindow = window.open( url, winname, trails);
}

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();
}
function MM_checkBrowser(NSvers,NSpass,NSnoPass,IEvers,IEpass,IEnoPass,OBpass,URL,altURL) { //v4.0
  var newURL='', verStr=navigator.appVersion, app=navigator.appName, version = parseFloat(verStr);
  if (app.indexOf('Netscape') != -1) {
    if (version >= NSvers) {if (NSpass>0) newURL=(NSpass==1)?URL:altURL;}
    else {if (NSnoPass>0) newURL=(NSnoPass==1)?URL:altURL;}
  } else if (app.indexOf('Microsoft') != -1) {
    if (version >= IEvers || verStr.indexOf(IEvers) != -1)
     {if (IEpass>0) newURL=(IEpass==1)?URL:altURL;}
    else {if (IEnoPass>0) newURL=(IEnoPass==1)?URL:altURL;}
  } else if (OBpass>0) newURL=(OBpass==1)?URL:altURL;
  if (newURL) { window.location=unescape(newURL); document.MM_returnValue=false; }
}
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_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_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 BW_centerLayers() { //v4.1.1
	if (document.layers || document.all || document.getElementById){
		var winWidth, winHeight, i, horz, vert, width, height, offsetX, offsetY, negX, negY, group, x, y, args;
		args = BW_centerLayers.arguments;

		onresize = BW_reload;

		winWidth = (document.all)?document.body.clientWidth:window.innerWidth;
		winHeight = (document.all)?document.body.clientHeight:window.innerHeight;

		for (i=0; i<(args.length-9); i+=10) {
			horz    = args[i+1];
			vert    = args[i+2];
			width   = parseInt(args[i+3]);
			height  = parseInt(args[i+4]);
			offsetX = parseInt(args[i+5]);
			offsetY = parseInt(args[i+6]);
			negX    = args[i+7];
			negY    = args[i+8];

			x = ((winWidth - width)/2) + offsetX;
			y = ((winHeight - height)/2) + offsetY;

			x = (negX=='false' && (x < 0))?0:x;
			y = (negY=='false' && (y < 0))?0:y;

			layerObj = (document.getElementById)?document.getElementById(args[i]):MM_findObj(args[i]);

			if (layerObj!=null) {
				layerObj = (layerObj.style)?layerObj.style:layerObj;
				layerObj.left = (horz=="true")?x:layerObj.left;
				layerObj.top = (vert=="true")?y:layerObj.top;
			}
		}
	}
}

function BW_reload() {location.reload();}

function OpenWindow(strZiel, strName, intWidth)
{
    Test = window.open(strZiel, strName, 'width='+intWidth+',height=150,scrollbars=no,resizablel');
    if (document.all)
	{
		var ClickX = window.event.x;
		var ClickY = window.event.y;
		if ((navigator.appName=="Microsoft Internet Explorer")&&(parseInt(navigator.appVersion.charAt(0))>=5) )
		{
			Test.moveTo(ClickX+window.screenLeft+5, ClickY+window.screenTop-100);
		}
	}
}

function IsMoney(field)
{
   var Wert=true;
   points=0;

   for(i=0;i<field.length;i++)
	{
       if(field.charAt(i) < "0"|| field.charAt(i) > "9")
		{
           if(!(field.charAt(i)=="-" && i==0))
			{
            	 if(field.charAt(i) == "," && points==0)
			{
				points++;
			}
                        else
			{
                            	Wert=false;
                            	break;
                        }
           	}
       	}
   }
   
   if (points > 0) {
   	var pos = field.indexOf(",");
   	if ((field.length != pos + 3) && (field.length != pos + 2)){
   		Wert = false;
   	}
   }
   return Wert;
}

function checkDateFormat(objField)
{
	var Datum;
	var Objekt;
	var Laenge;
	var RewriteFlag;
	
	Objekt = eval(objField);
	Datum = Objekt.value;
	Laenge=Datum.length;
	RewriteFlag = false;

    // Ist das Feld leer erfolgt keine Überprüfung
    if (Laenge ==0) {
        return true;
    }
		
	if (Laenge < 11 && Laenge > 5) {
	
        var anzahlPunkte = 0
		for(i=0;i<Laenge;++i) {
			if(Datum.charAt(i) < "0" || Datum.charAt(i) > "9")
			{
				if (Datum.charAt(i) != ".") {
					FehlermeldungDatum(Objekt, 'Datum darf nur Zahlen und den \".\" als Eingabe enthalten'); return false;	
				} else {
                    anzahlPunkte++;
                }
			}
		}

        if (anzahlPunkte != 2) {
            FehlermeldungDatum(Objekt, 'Datum hat kein gültiges Format.'); return false;	
        }

        var Werte = Datum.split(".");
		Tag = parseInt(Werte[0], 10);
		Monat=parseInt(Werte[1], 10);
		Jahr=parseInt(Werte[2], 10);
		JahrNotParsed = Werte[2];
		JahrLaenge = JahrNotParsed.length;
		
        if (JahrLaenge < 2) {
            FehlermeldungDatum(Objekt, 'Jahr hat kein gültiges Format.'); return false;    
        }

		if (JahrLaenge==2) {
		 	if (Jahr > 40) {
		 		Jahr = Jahr + 1900;
		 		RewriteFlag = true;
		 	} else {
		 		Jahr = Jahr + 2000;
		 		RewriteFlag = true;
		 	}
		}
	}
	else
	{
		FehlermeldungDatum(Objekt, 'Kein gueltiges Datum');return false;
	}
	
	if (Jahr < 1900 || Jahr > 2050) {
		FehlermeldungDatum(Objekt, 'Jahr ausserhalb des Gültigkeitsbereiches');return false;
	}
	if (Monat==4 || Monat==6 || Monat==9 || Monat==11)
	{
		tageMonat=30;
	}
	else if (Monat==1 || Monat==3 || Monat==5 || Monat==7 || Monat==8 || Monat==10 || Monat==12)
	{
		tageMonat=31;
	}
	else if(Monat==2 && Jahr%4==0 && Jahr%100!=0 || Jahr%400==0)
	{
		tageMonat=29;
	}
	else if(Monat==2 && Jahr%4!=0 || Jahr%100==0 && Jahr%400!=0)
	{
		tageMonat=28;
	} else {
		FehlermeldungDatum(Objekt, 'Monat ausserhalb des Gültigkeitsbereiches');return false;
	}
	 
	if (Tag<1 || Tag>tageMonat)
	{
		FehlermeldungDatum(Objekt, 'Tag ausserhalb des Gültigkeitsbereiches');return false;
	}
	if (Tag < 10 || Monat < 10) {
		RewriteFlag = true;	
	}
	
	if (RewriteFlag) {

		var TagString = "" + Tag;
		var MonatString = "" + Monat
		
		if (Tag < 10) {
			TagString = "0" + TagString;
		}
		if (Monat < 10) {
			MonatString = "0" + MonatString;
		}
		Objekt.value=TagString + "." + MonatString + "." + Jahr;
	}

}

function printWindow() {
	bV = parseInt(navigator.appVersion);
	if (bV >= 4) window.print();
}

function compareDates(objField1, operation, objField2) {

	// Voraussetzung: Datum durch checkDate geprüft!
	// operation kann sein <, =, >

	var Datum;
	var Objekt1;
	var Objekt2;

	Objekt1 = eval(objField1);
	Objekt2 = eval(objField2);
	Datum1 = Objekt1.value;
	Datum2 = Objekt2.value;
		
	Tag1=parseInt(Datum1.substring(0,2),10);
	Monat1=parseInt(Datum1.substring(3,5), 10);
	Jahr1=parseInt(Datum1.substring(6,10), 10);
	
	Tag2=parseInt(Datum2.substring(0,2),10);
	Monat2=parseInt(Datum2.substring(3,5), 10);
	Jahr2=parseInt(Datum2.substring(6,10), 10);

	if (operation == "=") {
		if (Jahr1 == Jahr2 && Monat1 == Monat2 && Tag1 == Tag2) {
			return true;
		}
		return false;
	} else {
		if (operation == ">") {
			tempTag = Tag1;
			tempMonat = Monat1;
			tempJahr = Jahr1;
			Tag1 = Tag2
			Monat1 = Monat2;
			Jahr1 = Jahr2;
			Tag2 = tempTag;
			Monat2 = tempMonat;
			Jahr2 = tempJahr
			
		}
	
		if (Jahr1 > Jahr2) {
			//alert("Jahr1 > Jahr2");
			return false;
			
		} else if (Jahr1 < Jahr2){
			//alert("Jahr1 < Jahr2");
			return true;	
		} 
		
		if (Monat1 > Monat2) {
			//alert("Monat1 > Monat2");
			return false;
		} else if (Monat1 < Monat2) { 
			//alert("Monat1 < Monat2");
			return true;
		} 
		
		if (Tag1 > Tag2) {
			//alert("Tag1 > Tag2");
			return false;
		} else if (Tag1 < Tag2) {
			//alert("Tag1 < Tag2");
			return true;
		} else { // Tage identisch = Fehler!
			return false;
		}
		
	}

	return true;
	
}

function IsDateBeforeToday(objField1) {

	// Voraussetzung: Datum durch checkDate geprüft!
	// operation kann sein <, =, >

	var Datum;
	var Objekt1;
	
	Objekt1 = eval(objField1);
	Datum1 = Objekt1.value;
	
	var jetzt = new Date();
	var Monat2 = jetzt.getMonth() + 1;
	var Jahr2 = jetzt.getYear();
	if(Jahr2 < 999) Jahr2+=1900;
	var Tag2 = jetzt.getDate();

	Tag1=parseInt(Datum1.substring(0,2),10);
	Monat1=parseInt(Datum1.substring(3,5), 10);
	Jahr1=parseInt(Datum1.substring(6,10), 10);
	
	if (Jahr1 > Jahr2) {
		//alert("Jahr1 > Jahr2");
		return false;

	} else if (Jahr1 < Jahr2){
		//alert("Jahr1 < Jahr2");
		return true;	
	} 

	if (Monat1 > Monat2) {
		//alert("Monat1 > Monat2");
		return false;
	} else if (Monat1 < Monat2) { 
		//alert("Monat1 < Monat2");
		return true;
	} 

	if (Tag1 > Tag2) {
		//alert("Tag1 > Tag2");
		return false;
	} else if (Tag1 < Tag2) {
		//alert("Tag1 < Tag2");
		return true;
	} else {
		//alert("Tage indentisch"); 
		return true; // Tage indentisch -> ok!
	}


	return true;
	
}

function FehlermeldungDatum(Objekt, Text)
{
	alert(Text + " in " + Objekt.name + " !\nBitte Datum in der Form: TT.MM.JJJJ oder TT.MM.JJ eingeben!");
	Objekt.focus();
	Objekt.select();
}

function trimLeft(s) {
	var whitespaces = " \t\n\r";
	for(n = 0; n < s.length; n++) { 
		if (whitespaces.indexOf(s.charAt(n)) == -1) 
			return (n > 0) ? s.substring(n, s.length) : s; 
	}
	return("");
}

function trimRight(s){
	var whitespaces = " \t\n\r";
	for(n = s.length - 1; n  > -1; n--) { 
		if (whitespaces.indexOf(s.charAt(n)) == -1) 
			return (n < (s.length - 1)) ? s.substring(0, n+1) : s; 
	}
	return("");
}

function trim(s) {
	return ((s == null) ? "" : trimRight(trimLeft(s))); 
}

function checkEmail(objField) {
	var emailAdress;
	var object;

	object = eval(objField);
	emailAdress = object.value;

	var chAt  = '@'; 
	var chDot = '.'; 
	var strEmailAddr = trim(emailAdress);
   if (strEmailAddr.length == 0) return true;
   if (strEmailAddr.indexOf(" ") == -1)
   {
       var iFirstAtPos = strEmailAddr.indexOf(chAt);
       var iLastAtPos = strEmailAddr.lastIndexOf(chAt);
       if (iFirstAtPos > 0 && iFirstAtPos < (strEmailAddr.length - 1) &&iFirstAtPos == iLastAtPos) {
	   // look for '.' there must be at least one char between '@' and '.'
	   var iDotPos = strEmailAddr.indexOf(chDot, iFirstAtPos + 1);
	   if (iDotPos > (iFirstAtPos + 1) && iDotPos < (strEmailAddr.length -1)) return true;
       }
   }
   alert("Ungültige Emailadresse. Bitte Adresse korrekt eingeben.");
   object.focus();
   return false;
}

function checkHTTPLink(objField) {
	var link;
	var object;

	object = eval(objField);
	link = object.value;

	var chDot = '.'; 
    var Domain = ["net", "com", "de", "org", "at"]; 
    var numberDomains = 6;

	var strHTTPAddr = new String(trim(link));
    if (strHTTPAddr.length == 0) return true;
    if (strHTTPAddr.indexOf(" ") == -1)
    {
        if (link.indexOf("http://")!=-1) {
            var iLastAtPos = strHTTPAddr.lastIndexOf(chDot);
            for(i=0;i<numberDomains;++i) {
                if (link.indexOf(Domain[i],iLastAtPos) > 0 && (link.length - iLastAtPos-1) == Domain[i].length) {
                    return true;
                }
            }
        }
   }
   alert("Ungültiger http Link. Bitte Adresse korrekt eingeben.");
   object.focus();
   return false;
}

function checkIP(objField) {
	var IPvalue;
	var object;
    var errorString = "";
    var theName = "IP Adresse";
    var error = false;

	object = eval(objField);
	IPvalue = object.value;

	var ipPattern = /^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/;
    var ipArray = IPvalue.match(ipPattern); 

    if (IPvalue == "0.0.0.0") {
        errorString = errorString + theName + ': '+IPvalue+' ist eine spezielle IP Adresse und kann hier nicht benutzt werden.'; 
        error = true;
    } else if (IPvalue == "255.255.255.255") {
        errorString = errorString + theName + ': '+IPvalue+' ist eine spezielle IP Adresse und kann hier nicht benutzt werden.';
        error = true;
    }

    if (ipArray == null) {
        errorString = errorString + theName + ': '+IPvalue+' ist keine gültige IP Adresse.';
        error = true;
    } else {
        for (i = 0; i < 5; ++i) {
            thisSegment = ipArray[i];
            if (thisSegment > 255) {
                errorString = errorString + theName + ': '+IPvalue+' ist keine gültige IP Adresse.';
                error = true;
                i = 4;
            }
            if ((i == 0) && (thisSegment > 255)) {
                errorString = errorString + theName + ': '+IPvalue+' ist eine spezielle IP Adresse und kann hier nicht benutzt werden.';
                error = true;
                i = 4;
            }
        }
    }

   if (error == true) {
        alert (errorString);
        object.focus();
        return false;
   } else  {
        return true;
   }
}

function checkPhoneNumber(objField) {

    var phoneNumber;
    var object;

    object = eval(objField);
    phoneNumber = trim(object.value);

    var chSlash  = '/'; 
    var chDash = '-'; 
    var slashes = 0;
    var dashes = 0;

    if (phoneNumber.length == 0) return true;
	if (phoneNumber.indexOf(" ") == -1)
	{
        for(i=0;i<phoneNumber.length;++i) {
			if(phoneNumber.charAt(i) < "0" || phoneNumber.charAt(i) > "9")
			{
				if (phoneNumber.charAt(i) == chDash) {
                    dashes++;
				} else if (phoneNumber.charAt(i) == chSlash) {
                    slashes++;
                } else {
                    alert('Telefonnummer darf nur Zahlen sowie  \'-\' oder \'/\' als Trennzeichen enthalten.');
                    object.focus();
                    return false;
                }
			}
		}
        if (dashes > 0 && slashes > 0) {
            alert('Telefonnummer darf nur einen Trennzeichentyp enthalten.\nBitte verwenden Sie ausschliesslich \'-\' oder \'/\' als Trennzeichen ohne diese untereinander zu  mischen.');	
            object.focus();
            return false;
        }
    } //else { 
        //alert("Ungültige Telefonnummer. Bitte verwenden Sie keine Leerzeichen als Trennzeichen.");
	    //object.focus();
	    //return false;
   // }
}


//Eingefügt von Wenzke am 19.2.2004 -- Ueberprueft ob das Passwort eine Mindestlaenge hat
function checkKennwort (objField) {
	var object;
	object = eval(objField);
	Kennwort = object.value;
	zahlen = 0;
    var strKennwort = trim(Kennwort);
	  
    if (strKennwort.length <= 7){
			alert("Das Passwort muss eine Mindestlänge von 8 Zeichen haben.");	
            object.focus();
			return false;
	}
	else
	{		// Abfrage, ob mindestens eine Zahl im Kennwort vorhanden ist
			for (i = 0; i < strKennwort.length; ++i) 
			{
				z = Kennwort.charAt(i);
				if (z == "0" || z == "1" || z == "2" || z == "3" || z == "4" || z == "5" || z == "6" || z == "7" || z == "8" || z == "9")
				{
					zahlen = 1;			
				}
			}
			if (zahlen != 1){
			alert("Das Passwort muss mindestens eine Zahl enthalten.");
            object.focus();
			return false;
			}
	 }
	}


function ChangeCursor()
{
	window.event.srcElement.style.cursor ="hand";
}

function MM_displayStatusMsg(msgStr) { //v1.0
  status=msgStr;
  document.MM_returnValue = true;
}

function LoadCss(virtualWebPath) {

	var CSSLink, CSSFile;
	if ((navigator.appName=="Microsoft Internet Explorer")&&(parseInt(navigator.appVersion.charAt(0))>=4))
	{
		CSSFile=virtualWebPath + "Css/FZGBoerse.css";
	}
	
	if ((navigator.appName=="Netscape")&&(parseInt(navigator.appVersion.charAt(0))>=4))
	{
		CSSFile=virtualWebPath + "Css/FZGBoerse_ns4.css";
	}
	
	if ((navigator.appName=="Netscape")&&(parseInt(navigator.appVersion.charAt(0))>=5))
		{
			CSSFile=virtualWebPath + "Css/FZGBoerse_ns.css";
	}
	
	CSSLink="<LINK REL=\"STYLESHEET\" HREF=\""+CSSFile+"\" TYPE=\"text/css\">";
	document.write(CSSLink);
}
function OpenPictureWindowFever(imageName,imageWidth,imageHeight,alt,posLeft,posTop) {
	newWindow = window.open("","newWindow","width="+imageWidth+",height="+imageHeight+",left="+posLeft+",top="+posTop);
	newWindow.document.open();
	newWindow.document.write('<html><title>'+alt+'</title><body bgcolor="#FFFFFF" leftmargin="0" topmargin="0" marginheight="0" marginwidth="0" onBlur="self.close()">');
	newWindow.document.write('<img src='+imageName+' width='+imageWidth+' height='+imageHeight+' alt='+alt+'>');
	newWindow.document.write('</body></html>');
	newWindow.document.close();
	newWindow.focus();
}

function IgnoreEvents(e)
{
	return false
}

function doModalSetupImport(virtualWebPath)
{
if (window.showModalDialog)
	{
		var myReturnValue=showModalDialog(virtualWebPath + "Fahrzeuge/Import/assImport.asp",0,"dialogHeight: 407px; dialogWidth: 504px; dialogTop: ; dialogLeft: px; center: Yes; help: No; resizable: No; scroll: No; status: No;");

		if (myReturnValue != 1)
		{
			//document.write("Das Setup wurde abgebrochen");
		}
		else
		{
			//document.write("Das Setup wurde erfolgreich durchgeführt");
			document.location.href=virtualWebPath + "Fahrzeuge/Auto/Liste_Auto.asp?Funktion=Uebernehmen"
		}
	}
else
	{
		window.top.captureEvents(Event.CLICK|Event.FOCUS)
		window.top.onclick=IgnoreEvents
		window.top.onfocus=HandleFocus
		winModalWindow = window.open(virtualWebPath + "Fahrzeuge/Import/assImport.asp","ModalChild","dependent=yes,width=504,height=407")
		winModalWindow.focus()
	}
}

function HandleFocus()
{
	if (winModalWindow)
	{
		if (!winModalWindow.closed)
		{
			winModalWindow.focus()
		}
		else
		{
			window.top.releaseEvents(Event.CLICK|Event.FOCUS)
		}
	}

	return false
}

function starteImport(virtualWebPath)
{
	doModalSetupImport(virtualWebPath);
}
