// ultimate browser sniffer from netscape
// see http://www.mozilla.org/docs/web-developer/sniffer/browser_type.html for docs

// convert all characters to lowercase to simplify testing 
var agt=navigator.userAgent.toLowerCase(); 


    // *** BROWSER VERSION ***
    // Note: On IE5, these return 4, so use is_ie5up to detect IE5.
    var is_major = parseInt(navigator.appVersion);
    var is_minor = parseFloat(navigator.appVersion);

    // Note: Opera and WebTV spoof Navigator.  We do strict client detection.
    // If you want to allow spoofing, take out the tests for opera and webtv.
    var is_nav  = ((agt.indexOf('mozilla')!=-1) && (agt.indexOf('spoofer')==-1)
                && (agt.indexOf('compatible') == -1) && (agt.indexOf('opera')==-1)
                && (agt.indexOf('webtv')==-1) && (agt.indexOf('hotjava')==-1));
    var is_nav2 = (is_nav && (is_major == 2));
    var is_nav3 = (is_nav && (is_major == 3));
    var is_nav4 = (is_nav && (is_major == 4));
    var is_nav4up = (is_nav && (is_major >= 4));
    var is_navonly      = (is_nav && ((agt.indexOf(";nav") != -1) ||
                          (agt.indexOf("; nav") != -1)) );
    var is_nav6 = (is_nav && (is_major == 5));
    var is_nav6up = (is_nav && (is_major >= 5));
    var is_gecko = (agt.indexOf('gecko') != -1);


    var is_ie     = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
    var is_ie3    = (is_ie && (is_major < 4));
    var is_ie4    = (is_ie && (is_major == 4) && (agt.indexOf("msie 4")!=-1) );
    var is_ie4up  = (is_ie && (is_major >= 4));
    var is_ie5    = (is_ie && (is_major == 4) && (agt.indexOf("msie 5.0")!=-1) );
    var is_ie5_5  = (is_ie && (is_major == 4) && (agt.indexOf("msie 5.5") !=-1));
    var is_ie5up  = (is_ie && !is_ie3 && !is_ie4);
    var is_ie5_5up =(is_ie && !is_ie3 && !is_ie4 && !is_ie5);
    var is_ie6    = (is_ie && (is_major == 4) && (agt.indexOf("msie 6.")!=-1) );
    var is_ie6up  = (is_ie && !is_ie3 && !is_ie4 && !is_ie5 && !is_ie5_5);

    // KNOWN BUG: On AOL4, returns false if IE3 is embedded browser
    // or if this is the first browser window opened.  Thus the
    // variables is_aol, is_aol3, and is_aol4 aren't 100% reliable.
    var is_aol   = (agt.indexOf("aol") != -1);
    var is_aol3  = (is_aol && is_ie3);
    var is_aol4  = (is_aol && is_ie4);
    var is_aol5  = (agt.indexOf("aol 5") != -1);
    var is_aol6  = (agt.indexOf("aol 6") != -1);

    var is_opera = (agt.indexOf("opera") != -1);
    var is_opera2 = (agt.indexOf("opera 2") != -1 || agt.indexOf("opera/2") != -1);
    var is_opera3 = (agt.indexOf("opera 3") != -1 || agt.indexOf("opera/3") != -1);
    var is_opera4 = (agt.indexOf("opera 4") != -1 || agt.indexOf("opera/4") != -1);
    var is_opera5 = (agt.indexOf("opera 5") != -1 || agt.indexOf("opera/5") != -1);
    var is_opera5up = (is_opera && !is_opera2 && !is_opera3 && !is_opera4);

    var is_webtv = (agt.indexOf("webtv") != -1); 

    var is_TVNavigator = ((agt.indexOf("navio") != -1) || (agt.indexOf("navio_aoltv") != -1)); 
    var is_AOLTV = is_TVNavigator;

    var is_hotjava = (agt.indexOf("hotjava") != -1);
    var is_hotjava3 = (is_hotjava && (is_major == 3));
    var is_hotjava3up = (is_hotjava && (is_major >= 3));
				//var is_safari = (agt.indexOf("safari") != -1);
				var is_safari = (agt.indexOf("applewebkit") != -1);
    // *** JAVASCRIPT VERSION CHECK ***
    var is_js;
    if (is_nav2 || is_ie3) is_js = 1.0;
    else if (is_nav3) is_js = 1.1;
    else if (is_opera5up) is_js = 1.3;
    else if (is_opera) is_js = 1.1;
    else if ((is_nav4 && (is_minor <= 4.05)) || is_ie4) is_js = 1.2;
    else if ((is_nav4 && (is_minor > 4.05)) || is_ie5) is_js = 1.3;
    else if (is_hotjava3up) is_js = 1.4;
    else if (is_nav6 || is_gecko) is_js = 1.5;
    // NOTE: In the future, update this code when newer versions of JS
    // are released. For now, we try to provide some upward compatibility
    // so that future versions of Nav and IE will show they are at
    // *least* JS 1.x capable. Always check for JS version compatibility
    // with > or >=.
    else if (is_nav6up) is_js = 1.5;
    // NOTE: ie5up on mac is 1.4
    else if (is_ie5up) is_js = 1.3

    // HACK: no idea for other browsers; always check for JS version with > or >=
    else is_js = 0.0;
 

// *** PLATFORM ***
var is_win   = ( (agt.indexOf("win")!=-1) || (agt.indexOf("16bit")!=-1) );
// NOTE: On Opera 3.0, the userAgent string includes "Windows 95/NT4" on all
//        Win32, so you can't distinguish between Win95 and WinNT.
var is_win95 = ((agt.indexOf("win95")!=-1) || (agt.indexOf("windows 95")!=-1));

// is this a 16 bit compiled version?
var is_win16 = ((agt.indexOf("win16")!=-1) || 
           (agt.indexOf("16bit")!=-1) || (agt.indexOf("windows 3.1")!=-1) || 
           (agt.indexOf("windows 16-bit")!=-1) );  

var is_win31 = ((agt.indexOf("windows 3.1")!=-1) || (agt.indexOf("win16")!=-1) ||
                (agt.indexOf("windows 16-bit")!=-1));

// NOTE: Reliable detection of Win98 may not be possible. It appears that:
//       - On Nav 4.x and before you'll get plain "Windows" in userAgent.
//       - On Mercury client, the 32-bit version will return "Win98", but
//         the 16-bit version running on Win98 will still return "Win95".
var is_win98 = ((agt.indexOf("win98")!=-1) || (agt.indexOf("windows 98")!=-1));
var is_winnt = ((agt.indexOf("winnt")!=-1) || (agt.indexOf("windows nt")!=-1));
var is_win32 = (is_win95 || is_winnt || is_win98 || 
                ((is_major >= 4) && (navigator.platform == "Win32")) ||
                (agt.indexOf("win32")!=-1) || (agt.indexOf("32bit")!=-1));

var is_os2   = ((agt.indexOf("os/2")!=-1) || 
                (navigator.appVersion.indexOf("OS/2")!=-1) ||   
                (agt.indexOf("ibm-webexplorer")!=-1));

var is_mac    = (agt.indexOf("mac")!=-1);
var is_mac68k = (is_mac && ((agt.indexOf("68k")!=-1) || 
                           (agt.indexOf("68000")!=-1)));
var is_macppc = (is_mac && ((agt.indexOf("ppc")!=-1) || 
                            (agt.indexOf("powerpc")!=-1)));


/**********************************************************************
// pick stylesheet based on browser
**********************************************************************/

// if windows + nav 6
if (is_win && is_nav6up) {
	document.write('<link rel="stylesheet" type="text/css" href="/themes/css/win_ie.css" title="master">');
	}
// windows + navigator
else if (is_win && is_nav) {
	document.write('<link rel="stylesheet" type="text/css" href="/themes/css/win_ns4.css" title="master">');
	}
// windows + opera
else if (is_win && is_opera) {
	document.write('<link rel="stylesheet" type="text/css" href="/themes/css/win_ie.css" title="master">');
	}
// windows + ie
else if (is_win && is_ie5_5up) {
	document.write('<link rel="stylesheet" type="text/css" href="/themes/css/win_ie.css" title="master">');
	}
	// windows + ie (hopefully ie 6)
else if (is_win && is_ie5) {
	document.write('<link rel="stylesheet" type="text/css" href="/themes/css/win_ie.css" title="master">');
	}
// mac + safari
else if (is_mac && is_safari) {
	document.write('<link rel="stylesheet" type="text/css" href="/themes/css/mac_safari.css" title="master">');
}
// mac + nav6 
else if (is_mac && is_nav6up) {
	document.write('<link rel="stylesheet" type="text/css" href="/themes/css/win_ie.css" title="master">');
	}
// mac + navigator
else if (is_mac && is_nav) {
	document.write('<link rel="stylesheet" type="text/css" href="/themes/css/win_ns4.css" title="master">');
	}
// mac + ie
else if (is_mac && is_ie) {
	document.write('<link rel="stylesheet" type="text/css" href="/themes/css/win_ie.css" title="master">');
	}
// everybody else
else {
	document.write('<link rel="stylesheet" type="text/css" href="/themes/css/win_ie.css" title="master">');
	}

// popup an error window if agent is less than 5.0 
//  if ((is_mac && is_ie4) || (is_mac && is_nav4) || (is_win && is_ie4) || (is_win && is_nav4) && (getCookie("hide_upgrade_window") != "true")) {
//	createWindow("/upgrade_your_browser.html","upgrade_me","statusbar,menubar,height=400,width=470,resizable");
//  }



	
// **************** Netscape Resize bug ********************	
	
/* function used in the forums so form elements have an onClick associated with them */

function changeUrl(url)
{
	window.location.assign(url);
}



/**********************************************************************
// Flash-Abfrage
**********************************************************************/
var hasFlash = false;


 if( is_nav || is_opera ) {
	if( navigator.plugins["Shockwave Flash"] ) {
		hasFlash=true;
	}
} else if( is_ie ) {
	if( is_win32 ) {
		action = "ie_exec";
		document.write('<SCRIPT LANGUAGE="VBScript">\n');
		document.write('on error resume next\n');
		document.write('If action = "ie_exec" then\n');
		document.write('  FlashInstalled = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.3")))\n');
		document.write('End If\n');
		document.write('If FlashInstalled then\n');
		document.write('  hasFlash = "yes"\n');
		document.write('End If\n');
		document.write('</SCR'+'IPT>\n');
	}
}
  
if (navigator.userAgent.indexOf("Mac") != -1){
	if( navigator.plugins["Shockwave Flash"] ) {
		hasFlash=true;
	}
}


///////////////////////////////////////////////////////////////////////////
//-------- POPUP  -----------------------------------
// this variable names the current window (for using the popUp as a remote)
///////////////////////////////////////////////////////////////////////////
window.name = "currentWindow";
// this function opens the pop-up window
var newWin;

function popUp(page,name,w,h) {
	pref='width='+w+',height='+h+',left=100,top=100,scrollbars=no,location=no,menubar=no,resizable=yes,toolbar=no,status=no'
	window.open(page,name,pref);
	return false;
}


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_findObj(n, d) { //v4.0
  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 && document.getElementById) x=document.getElementById(n); return x;
  }

  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];}
  }
  
  
  //Functions for the order plugin
  //For the showclose function in orders.xsl
  
  var globalIdName = 0;
  function showclose(idName) {
      if(document.getElementById(idName).style.display == 'none') {
          show(idName);
      } else {
          close(idName);
      }
  }
  
  function show(idName) {
      document.getElementById(idName).style.display = '';
      if(globalIdName) {
          close(globalIdName);
      }
      globalIdName = idName;
  }
  
  function close(idName) {
      document.getElementById(idName).style.display = 'none';
      if(idName == globalIdName) {
          globalIdName = 0;
      }
  }
  
  function submitForm() {
      errorFound = false;
      if(document.getElementById('name').value == "") {
          alert('Geben Sie bitte einen Ausstellername / Username an!');
          document.getElementById('name').style.border = "solid rgb(255,0,0) 1px";
          errorFound = true;
      }
  }
  
  function submitForm() {
      errorFound = false;
      
      if(document.getElementById('name').value == "") {
          alert('Geben Sie bitte einen Ausstellername / Username an!');
          document.getElementById('name').style.border = "solid rgb(255,0,0) 1px";
          errorFound = true;
      }
      
      if(document.getElementById('passwort').value == "") {
          alert('Geben Sie bitte einen Passwort an!');
          document.getElementById('passwort').style.border = "solid rgb(255,0,0) 1px";
          errorFound = true;
      }
      
      if(document.getElementById('passwort_again').value == "") {
          alert('Bitte bestätigen Sie ihr Passwort!');
          document.getElementById('passwort_again').style.border = "solid rgb(255,0,0) 1px";
          errorFound = true;
      }
      
      if(document.getElementById('passwort').value != document.getElementById('passwort_again').value) {
          alert('Das Passwort wurde nicht korrekt bestätigt!');
          document.getElementById('passwort').style.border = "solid rgb(255,0,0) 1px";
          document.getElementById('passwort_again').style.border = "solid rgb(255,0,0) 1px";
          errorFound = true;
      }
      
      if(document.getElementById('tele').value == "") {
          alert('Geben Sie bitte eine Telefon Nummer an!');
          document.getElementById('tele').style.border = "solid rgb(255,0,0) 1px";
          errorFound = true;
      }
      
      if(document.getElementById('sachbearbeiterin').value == "") {
          alert('Geben Sie bitte einen Sachbearbeiterin an!');
          document.getElementById('sachbearbeiterin').style.border = "solid rgb(255,0,0) 1px";
          errorFound = true;
      }
      
      if(document.getElementById('ort').value == "") {
          alert('Geben Sie bitte einen Ort an!');
          document.getElementById('ort').style.border = "solid rgb(255,0,0) 1px";
          errorFound = true;
      }
      
      if(document.getElementById('strasse').value == "") {
          alert('Geben Sie bitte einen Strasse an!');
          document.getElementById('strasse').style.border = "solid rgb(255,0,0) 1px";
          errorFound = true;
      }
      
      if(document.getElementById('mail').value == "") {
          alert('Bitte geben Sie eine gültige Email Adresse an!');
          document.getElementById('mail').style.border = "solid rgb(255,0,0) 1px";
          errorFound = true;
      }
      
      if(errorFound == true) {
          return false;
      } else {
          return true;
      }
      
  }
