var g_isver=0;
var g_agent=navigator.userAgent.toLowerCase();

var g_isns=navigator.appName=="Netscape" && (g_isver=parseInt(navigator.appVersion))>=4 && g_agent.indexOf("gecko")==-1;
var g_isie=document.all != null && document.fireEvent;

// Werte sind optimiert für maximale Fenstergröße bei 
// einer Auflösung von 1024x768 und Schriftgrad mittel, 
// wobei im Grid 10 Zeilen angezeigt werden.
var g_maxheightdiv = 500;
var g_maxwidthdiv = 80;
var g_maxheight = 320;
var g_maxwidth = 850;
	
if (g_isie && getVersion() < 7)
    // Ab IE7 nicht mehr notwendig, da gezoomt werden kann
	ResizeInputControls(); // TEDU

/* TEFM */
var LastElement = null;
function vappka_keydown()
{
    var isalt = window.event.altKey;
    var isshift = window.event.shiftKey;
    var isctrl = window.event.ctrlKey;
    var js = "LastElement.click();";

    switch (window.event.keyCode) 
    {
        case 13:
            if (isshift)
            {
                var atags = window.document.all.tags("A");
                if (null != atags)
                {
                    for (var idx = 0; idx < atags.length; idx ++)
                    {
                        var atag = atags[idx];
                        if (atag.id.toLowerCase().indexOf('save') >= 0)
                        {	
                            window.focus(); //Sonst reißen ImageButtons den Click-Event an sich
                            window.event.returnValue = false;
                            LastElement = atag;
                            setTimeout(js, 100);
                            break;
                        }
                    }

                }
            }
            else
            {
				window.event.returnValue = true;
                var atags = window.document.all.tags("A");
                if (null != atags)
                {
                    for (var idx = 0; idx < atags.length; idx ++)
                    {
                        var atag = atags[idx];
                        if (atag.type == 'Default' || atag.type == 'default')
                        {	
                            window.focus(); //Sonst reißen ImageButtons den Click-Event an sich
                            window.event.returnValue = false; 
                            LastElement = atag;
                            setTimeout(js, 100);
                            break;
                        }
                    }

                }
            }
        case 17: break;        
        case 27: 
			var atags = window.document.all.tags("A");
            if (null != atags)
            {
                for (var idx = 0; idx < atags.length; idx ++)
                {
                    var atag = atags[idx];
					//if (atag.parentElement.className == 'FscBranch' || atag.className == 'FscSubMenuLink')
                    //{
                    if (atag.type == 'Cancel' || atag.type == 'cancel')
                    {	
                        window.event.returnValue = false;
                        LastElement = atag;
                        setTimeout(js, 100);
                        break;
                    }
                    //}
                }

            }
	        break;
        case 9:  break;
        case 33: break;
        case 34: break;
        case 35: break;
        case 36: break;
        default:
            if (48 <= window.event.keyCode && window.event.keyCode <= 90) 
            { 
                var keystr = String.fromCharCode(window.event.keyCode);
                if (isalt) 
                {
                    var atags = window.document.all.tags("A");
                    if (null != atags) 
                    {
                        for (var idx = 0; idx < atags.length; idx ++) 
                        {
                            var atag = atags[idx];
                            //if (atag.parentElement.className == 'FscBranch')
                            //{
                            if (atag.accessKey == keystr) 
                            {
                                window.event.returnValue = false;
                                LastElement = atag;
                                setTimeout(js, 100);
                                break;
                            }
                            //}
                        }
                    }
                }
            }
    }
}
/* TEFM */

function vappinit()
{ 
  if (g_isie) {
    vappadjustlayout();

	/* TEFM */
	var toptag=window.document.all.tags("BODY")(0);
	toptag.onkeydown=vappka_keydown;
	/* TEFM */

    if (null!=window.vappbinfo) {
      var scrollpos=vappbinfo.split('#');
       
      var xy=scrollpos[0].split('x');
      window.scrollTo(xy[0],xy[1]);

      for(var idx=1; idx<scrollpos.length; idx++) {
        var token=scrollpos[idx].split(':');
        var divtag=document.getElementById('ScrollableList'+token[0]);
        if (divtag) {
          xy=token[1].split('x');
          divtag.scrollLeft=xy[0];
          divtag.scrollTop=xy[1];
        }
      }
    }

  }
  // Änderung TEDU: bei init zusätzlich adjustlayout aufrufen, weil Layout nach Laden
  // der Seite manchmal "verunstaltet" ist.
  // (z.B. wenn in einer offenen Page ein DataGrid mit Breite 100% und einem Zeilenanzahl-Anzeiger
  // vorhanden ist, wird nach dem Grid-Ende eine Leerzeile eingefügt)
  vappadjustlayout();
}

function vappadjustlayout()
{ 
  if (g_isie) {
    var bodytag=document.all.tags('body')[0];
    if (bodytag!=null) {
      // TEFM
      var maxheight=bodytag.offsetHeight - g_maxheightdiv;
      if (maxheight<g_maxheight) {
        maxheight=g_maxheight;
      }

      // TEFM
      var maxwidth=bodytag.offsetWidth - g_maxwidthdiv;
      if (maxwidth<g_maxwidth) {
        maxwidth=g_maxwidth;
      }

      var divtags=document.all.tags('div');
      if (divtags!=null) {
        for (var idx=0; idx<divtags.length; idx++) {
          var divtag=divtags[idx];
          // Scrollbar für DataGrids
          if (divtag.id.indexOf('ScrollableList')>=0) {
            // Änderung TEDU: divtagtable wegen .NET eingebaut
            
			var divtagtable = divtag.all.tags('table')[0];
            divtag.style.overflowY="visible";
            if (divtag.style.height) {
              divtag.style.height=divtagtable.clientHeight;
            }
            divtag.style.overflowX="visible";

            if (divtagtable.clientHeight>maxheight) {
              divtag.style.height=maxheight;
              divtag.style.overflowY="auto";
            }

            var optimized_maxwidth=maxwidth;
            for (var partag=divtag.parentElement; partag!=null; partag=partag.parentElement) {
              if ((partag.className!=null) && (partag.className=='FscPage')) {
                optimized_maxwidth-=70;
                break;
              }
            }

            if (divtagtable.clientWidth>optimized_maxwidth) {
              divtag.style.width=optimized_maxwidth;
              divtag.style.overflowX="auto";
              if (divtag.style.overflowY=="visible") {
                divtag.style.height=divtagtable.clientHeight+16;
              }
            }
          }        
        }
      }
      
      // Scrollbars für Scrollpanel
      maxheight=bodytag.scrollHeight;
      if (maxheight<320) {
        maxheight=320;
      }
      maxwidth=bodytag.scrollWidth;
      if (maxwidth<850) {
        maxwidth=850;
      }
      if (divtags!=null) {
        for (var idx=0; idx<divtags.length; idx++) {
		  var divtag=divtags[idx];
          // Scrollbar für Tab-Inhalte
          if (divtag.id.indexOf('ScrollableData')>=0) {
          
			var divtagtable = divtag.all.tags('table')[0];
            divtag.style.overflowY="visible";
            divtag.style.overflowX="visible";

            if (divtagtable.scrollHeight>bodytag.offsetHeight-(bodytag.scrollHeight - divtagtable.scrollHeight)-16) {
			  var height = (bodytag.offsetHeight - (bodytag.scrollHeight - divtagtable.scrollHeight))-16;
			  if (height<320) {
                 height=320;
              }
              divtag.style.height=height;
              divtag.style.overflowY="auto";
            }

            if (divtagtable.scrollWidth>bodytag.offsetWidth-(bodytag.scrollWidth - divtagtable.scrollWidth)-8) {
              var width = (bodytag.offsetWidth - (bodytag.scrollWidth - divtagtable.scrollWidth))-8;
              if (width<850) {
                 width=850;
              }
              divtag.style.width=width;
              divtag.style.overflowX="auto";
              if (divtag.style.overflowY=="visible") {
                divtag.style.width=width-16;
              }
            }
          }
        }
      }

      
      
      
    }
  }
}

function vappexit()
{
}

function vapptoggle(prefix)
{
  if (g_isns) {
    return;
  }
  
  prefix+='_';
  var tags=window.document.all.tags("INPUT");
  if (null!=tags) {
    for (var idx=0; idx<tags.length; idx++) {
      var tag=tags[idx];
      // Änderung TEDU: statt "name" "lang" abfragen
      // (wegen .NET: "name" wird von .NET verwendet und generiert
      if (0==tag.lang.indexOf(prefix)) {
        tag.click();
            }
        }
    }
}

//------------------------------------------------------------------------------
// menubar

var mbarHideflag;
var mbarOpenmenu;

function mbarHideSub(sItem)
{
  if(g_isie) {
    var evtsrc=document.all[sItem];		
    if(window && window.event) {
      for(var newdst=window.event.toElement;null!=newdst;newdst=newdst.parentElement) {
        if(newdst==evtsrc) {
          return;
        }
      }
    }									
    evtsrc.style.visibility='hidden';
    MsgBox_RestoreSelects();
  }
  else {
    mbarHideflag=setTimeout( 'document.getElementById(\''+sItem+'\').style.visibility=\'hidden\';mbarOpenmenu=\'\'',50 );  		
  }
}

function mbarShowSub(sItem)
{
  if(g_isie) {
    var item = document.all[sItem];
    if(item) {
      item.style.visibility='visible';
      MsgBox_HideSelects(sItem);
    }
  }
  else {
    if( window.mbarHideflag ) {
      clearTimeout(mbarHideflag);
    }
    var item = document.getElementById(sItem);
    if(item) {
      if(sItem!=mbarOpenmenu) {
        var openitem=document.getElementById(mbarOpenmenu);
        if(openitem) {
          openitem.style.visibility='hidden';
        }
        item.style.visibility='visible';
        mbarOpenmenu=sItem;
      }
    }
  }
}

function mbarFlipSub(sItem)
{
  if(g_isns) {
    var item=document.layers[sItem];
    var itemPos=document.layers[sItem+"Pos"];
    var show='show';
    if( item.visibility=='show' ) {
      show='hide';	
    }								
    for(var i=0;i<document.layers.length;i++) {
      document.layers[i].visibility='hide';
    }	
    item.visibility=show;
    item.pageX=itemPos.pageX;
    item.pageY=itemPos.pageY-2;
  }
}

// Functions to hide select-Tags (added by TEDU):
var arrSelects = document.getElementsByTagName('select'); 
function MsgBox_HideSelects(mbLayer) {
	for (var i=0; i<arrSelects.length; i++) {
		if (MsgBox_Overlapping(document.getElementById(mbLayer), arrSelects[i])) {
			arrSelects[i].style.display = 'none'; 
		};
	};
};
function MsgBox_RestoreSelects() {
	for (var i = 0; i < arrSelects.length; i++) {
		arrSelects[i].style.display = ''; 
	};
};	

function MsgBox_Overlapping(l, s) {

	// Wenn ein Scrollpanel vorhanden ist, so muss die Scrollposition bei 
	// Ermittlung der Position des Selects berücksichtigt werden.
	var ScrollOffsetX = 0;
	var ScrollOffsetY = 0;
	try {
		var ScrollPanelID = ScrollPanels[0];
		var ScrollPanel = document.getElementById(ScrollPanelID);
		ScrollOffsetX = ScrollPanel.XTracker.value;
		ScrollOffsetY = ScrollPanel.YTracker.value;
	} catch(Exception) {}

	var lLeft = MsgBox_pageX(l) - window.document.body.scrollLeft; 
	var lTop = MsgBox_pageY(l) - window.document.body.scrollTop; 
	var lRight = lLeft + l.offsetWidth; 
	var lBottom = lTop + l.offsetHeight;
	var sLeft = MsgBox_pageX(s) - window.document.body.scrollLeft - ScrollOffsetX; 
	var sTop = MsgBox_pageY(s) - window.document.body.scrollTop - ScrollOffsetY; 
	var sRight = sLeft + s.offsetWidth; 
	var sBottom = sTop + s.offsetHeight;
		
	if (lRight<=sLeft || lBottom<=sTop || lLeft>=sRight || lTop>=sBottom) {
		return false; 
	} else {
		return true;
	};
};
function MsgBox_pageX(o) {
	var i=0;
	do 
		i += o.offsetLeft;
	while ((o = o.offsetParent));
	return i; 
}
function MsgBox_pageY(o) {
	var i=0;
	do 
		i += o.offsetTop; 
	while ((o = o.offsetParent));
	return i; 
}

// Functions added by TEDU:

function popup(url, breite, hoehe, titel, params){
	var hwnd;
	wi=((screen.width)-breite)/2;
	he=((screen.height)-hoehe)/3;
	
	var _titel = '' + titel + '';
	if (_titel == 'undefined') {
		_titel = '';
	}
	var _params = '' + params + '';
	if (_params == 'undefined') {
		_params = ',locationbar=no,resizable=no,scrollbars=yes,status=no,menubar=no';
	}

	s="width="+breite+",height="+hoehe+",top="+he+",left="+wi+",screenX="+wi+",screenY="+he
		+ _params;
	hwnd=window.open(url, _titel, s);
	hwnd.focus();
	return hwnd;
}

function popApp(url){
	var hwnd;
	var _params = ',locationbar=no,resizable=yes,scrollbars=yes,status=yes,menubar=yes';
	var breite = screen.availWidth - 10; 
	var hoehe = screen.availHeight - 110; // Wegen Toolbar
	var s = "width="+breite+",height="+hoehe+",top=0,left=0,screenX=0,screenY=0" + _params;
	hwnd=window.open(url, '', s);
	hwnd.moveTo(0,0);
	//hwnd.resizeTo(breite,hoehe);
	hwnd.focus();
	return hwnd;
}

function DateKeyPress(ctrl, key) {
	if (key == 'h') {
		// heutiges Datum einfügen
		window.event.returnValue = false;
		window.event.returnValue = false;
		var pDate = new Date();
		var d = pDate.getDate();
		if (d < 10)
			d = "0" + d;
		var m = pDate.getMonth() + 1;
		if (m < 10)
			m = "0" + m;
		var y = pDate.getFullYear();
		ctrl.select();
		ctrl.value = d.toString() + "." + m.toString() + "." +	y.toString();
		ctrl.fireEvent("onchange", event);
	} else {
	    if (key == '>') {
			window.event.returnValue = false;
			AssignNextDate(ctrl);
			ctrl.fireEvent("onchange", event);
	    } else {
	    	if (key == '<') {
				window.event.returnValue = false;
				AssignPrevDate(ctrl);
				ctrl.fireEvent("onchange", event);
			}
		}
	}	
}
function FixDate(ctrl) {			
	var val = ctrl.value;
	if ((val.indexOf('.') < 0) && (val.indexOf('e') < 0) && (val.indexOf('+') < 0) && (val.indexOf('-') < 0) && (!isNaN(val))) {
		if (val.length == 6 || val.length == 8) {
			ctrl.value = val.substr(0,2) + '.' + val.substr(2,2) + '.' + val.substr(4);
			ctrl.fireEvent("onchange", event);
		} else {
			if (val.length == 4) {
				ctrl.value = val.substr(0,1) + '.' + val.substr(1,1) + '.' + val.substr(2);
				ctrl.fireEvent("onchange", event);
			} else {
				if (val.length == 5) {
					ctrl.value = val.substr(0,2) + '.' + val.substr(2,1) + '.' + val.substr(3);
					ctrl.fireEvent("onchange", event);
				}
			}
		}				
	}	
	return;
}	
function FixTime(ctrl) {			
	var val = ctrl.value;
	if ((val.indexOf('.') < 0) && (val.indexOf('e') < 0) && (val.indexOf('+') < 0) && (val.indexOf('-') < 0) && (!isNaN(val))) {
		if (val.length == 4) {
			ctrl.value = val.substr(0,2) + ':' + val.substr(2,2);
			ctrl.fireEvent("onchange", event);
		} else {
			if (val.length == 3) {
				ctrl.value =  '0' + val.substr(0,1) + ':' + val.substr(1,2);
				ctrl.fireEvent("onchange", event);
			} else {
				var valint = parseInt(val);
    			if ((valint >= 0) && (val <= 23)) {
    	            ctrl.value = val + ':00';
	                if (ctrl.value.length == 4)
	                    ctrl.value = '0' + ctrl.value;
	                ctrl.fireEvent("onchange", event);
	            }
			}
		}				
	} else {
	    if ((val.length == 4) && (val.substr(1,1) == ':') && (!isNaN(val.substr(0,1))) && (!isNaN(val.substr(2,2)))) {
	        ctrl.value = '0' + val;
	        ctrl.fireEvent("onchange", event);
	    } 
	}	
	return;
}	

function GetDateValue(ctrl)
{
   var vTextBoxFld = ctrl;;
   var vDateOrder = new Array();
   vDateOrder[0] = 'dd';
   vDateOrder[1] = 'MM';
   vDateOrder[2] = 'yyyy';
   if ((vTextBoxFld.value.length > 2) && (vTextBoxFld.value.indexOf('.') == -1))
     FixDate(ctrl);
   var vDate = null;
   var vToday = new Date();
   var vYear = 0;
   var vMonth = 0;
   var vDay = 0;
   var vOK = true;
   var vTextBoxParts = vTextBoxFld.value.split('.');
   if (vTextBoxParts.length == 1)   // only entered the date
   {
      vYear = vToday.getFullYear();
      vMonth = vToday.getMonth() + 1;
   }
   else if (vTextBoxParts.length == 2) // only entered month and date
   {
      vYear = vToday.getFullYear();
   }
   var vTextBoxCount = 0;
   for (var vI = 0; vOK && (vI < vDateOrder.length); vI++)
   {
      switch (vDateOrder[vI].charAt(0))
      {
         case 'd':
         case 'D':
            vDay = ParseDateElement(vTextBoxParts[vTextBoxCount]);
            if (!isNaN(vDay) && (vDay > 0))
               vTextBoxCount++;
            else
               vOK = false;
            break;

         case 'm':
         case 'M':
            if (vMonth == 0)
            {
               if (vTextBoxParts[vTextBoxCount] == '')
                  vMonth = vToday.getMonth() + 1;
               else
                  vMonth = ParseDateElement(vTextBoxParts[vTextBoxCount]);
               if (isNaN(vMonth))
               {
                  vMonth = vToday.getMonth() + 1;
                  vTextBoxCount++;
               }
               else if ((vMonth <= 12) && (vMonth > 0))
                  vTextBoxCount++;
               else
                  vOK = false;
            }
            break;

         case 'y':
         case 'Y':
            if (vYear == 0)
            {
               if (vTextBoxParts[vTextBoxCount] == '')
                  vYear = vToday.getFullYear();
               else
                  vYear = ParseDateElement(vTextBoxParts[vTextBoxCount]);
               if (isNaN(vYear))
               {
                  vYear = vToday.getFullYear();
                  vTextBoxCount++;
               }
               else if (vYear <= 9999)
               {
                  if (vYear < 100)
                  {
                    var vCenturyBreak = 30;
                    if ((vCenturyBreak == 0) || (vYear < vCenturyBreak))
                       vYear = vYear + 2000;
                    else
                       vYear = vYear + 1900;
                  }
                  vTextBoxCount++;
               }
               else
                  vOK = false;
            }
            break;

      }  // switch
   }  // for vI

   if (vOK)
   {
      vDate = new Date(vYear, vMonth - 1, vDay);
   }
   return vDate;
}
function ParseDateElement(pValue)
{
   if (pValue == '0')
      return 0;
   else 
      return parseInt(pValue.replace(/^0*/, ''));
}
function SetDateValue(ctrl, pDate)
{
   var vTextBoxFld = ctrl;
   var vDateSeparator = '.';
   var vResultString = '';
   
   if (pDate.getDate() >= 10)
      vResultString = vResultString + pDate.getDate().toString();
   else 
      vResultString = vResultString + '0' + pDate.getDate().toString();
   vResultString = vResultString + vDateSeparator;
   var vMonth = pDate.getMonth() + 1;
   if (vMonth >= 10)
      vResultString = vResultString + vMonth.toString();
   else
      vResultString = vResultString + '0' + vMonth.toString();
   vResultString = vResultString + vDateSeparator;
   var vYear = pDate.getFullYear();
   if (vYear >= 10)
      vResultString = vResultString + vYear.toString();
   else
      vResultString = vResultString + '0' + vYear.toString();  
      
   vTextBoxFld.value = vResultString;
}
function GetDaysInMonth(pMonth, pYear)
{  // pMonth is a month number between 1 and 12. pYear is 4 digits
   if (pMonth == 2)  // 28 or 29 (leap year)
   {
      var vDays = 28;
      if (pYear % 4 == 0)
      {
         vDays = 29;
         if ((pYear % 100 == 0) && (pYear % 400 != 0))
            vDays = 28;
      }
      return vDays;
   }
   else if ((pMonth == 4) || (pMonth == 6) || (pMonth == 9) || (pMonth == 11))
      return 30;
   else
      return 31;
}
function AssignNextDate(ctrl)
{
   var vDate = null;
   // if blank, assign today first
   if (ctrl.value == '')
      vDate = new Date();
   else
      vDate = GetDateValue(ctrl);

   if (vDate != null)
   {  // increment one date. May wrap around on the month or year
      var vDaysInMonth = GetDaysInMonth(vDate.getMonth() + 1, vDate.getFullYear());
      if (vDate.getDate() < vDaysInMonth)
         vDate.setDate(vDate.getDate() + 1);
      else  // roll over month
      {
         vDate.setDate(1); // day 1 of the next month
         // NOTE: getMonth and setMonth use January = 0
         if (vDate.getMonth() < 11) 
            vDate.setMonth(vDate.getMonth() + 1);
         else  // next year
         {
            vDate.setMonth(0);
            vDate.setFullYear(vDate.getFullYear() + 1);
         }
      }
      SetDateValue(ctrl, vDate);
   }

   else
      alert('Ungueltiges Datum');
}
function AssignPrevDate(ctrl)
{
   // if blank, assign today first
   if (ctrl.value == '')
      vDate = new Date();
   else
      vDate = GetDateValue(ctrl);

   if (vDate != null)
   {  // decrement one date. May wrap around on the month or year
      if (vDate.getDate() > 1)
         vDate.setDate(vDate.getDate() - 1);
      else  // roll over month
      {
         if (vDate.getMonth() > 0)
            vDate.setMonth(vDate.getMonth() - 1);
         else  // roll over year
         {
            vDate.setMonth(11);  // December
            vDate.setFullYear(vDate.getFullYear() - 1);
         }
         // last date of the month
         var vDaysInMonth = GetDaysInMonth(vDate.getMonth() + 1, vDate.getFullYear());
         vDate.setDate(vDaysInMonth); 
      }
      SetDateValue(ctrl, vDate);
   }

   else
      alert('Ungueltiges Datum');
}


function InitialToUpper(ctrl) {
	var val = ctrl.value;
	val = val.substr(0,1).toUpperCase() + val.substr(1);
	ctrl.value = val;
}


function getScroll() {
	if (document.all && typeof document.body.scrollTop != "undefined") {	// IE model
		var ieBox = document.compatMode != "CSS1Compat";
		var cont = ieBox ? document.body : document.documentElement;
		return {
			left:	cont.scrollLeft,
			top:	cont.scrollTop,
			width:	cont.clientWidth,
			height:	cont.clientHeight
		};
	}
	else {
		return {
			left:	window.pageXOffset,
			top:	window.pageYOffset,
			width:	window.innerWidth,
			height:	window.innerHeight
		};
	}
}

var g_WaitText = "<table id='WaitTable' border=0 width=100%><tr><td nowrap=nowrap><marquee behavior='alternate' vspace='3' scrollamount='2' scrolldelay='10'><b>&gt;&gt;&gt; BITTE WARTEN &lt;&lt;&lt;</b></marquee></td></tr></table>";
function DisplayWaitText() {
	var scroll = getScroll();
	var d = document.createElement("DIV");
		d.className = "FscWait";
		d.id = "DivWait";
		document.body.appendChild(d);
		d.style.top = (document.body.clientHeight / 2) + scroll.top - 5 + "px";	
		d.style.left = (document.body.clientWidth / 2) - (d.offsetWidth / 2) + scroll.left + "px";	
		d.innerHTML = g_WaitText;
	MsgBox_HideSelects("DivWait");
	// Beim 2. Mal postback + smartnavigation stürzt der IE ab => auskommentiert
	//window.document.body.style.cursor='wait';
}

function ResizeInputControls() {
    
	// Ändert dynamisch die Größe aller INPUT-Tags, abhängig von den Browser-
	// einstellungen.
	var a = document.createElement("a");
	a.id = "SizeTest";
	a.href = "dummy";
	a.innerText = "dummy";	
	// Änderung wegen VE: findet document.body nicht sondern 
	// window.document.body oder manchmal auch weder noch
	var s = 16;
	var doc = null;
	if (window.document.body != null) {
		doc = window.document;
	} else {
		if (document.body != null) {
			doc = document;
		}
	}
	if (doc != null) {
		doc.body.appendChild(a);
		s = document.all["SizeTest"].offsetHeight;
		doc.body.removeChild(a);

		if (s >= 28) { // largest
			doc.styleSheets(0).addRule("INPUT","font-size: 14pt;"); //larger
			doc.styleSheets(0).addRule("TEXTAREA","font-size: 14pt;");
		} else if (s >= 25 && s < 28) { // larger
			doc.styleSheets(0).addRule("INPUT","font-size: 12pt;"); //medium
			doc.styleSheets(0).addRule("TEXTAREA","font-size: 12pt;");
		} else if (s >= 20 && s < 25) { // medium
			doc.styleSheets(0).addRule("INPUT","font-size: 10pt;"); //small
			doc.styleSheets(0).addRule("TEXTAREA","font-size: 10pt;");
		} else if (s >= 18 && s < 20) { // smaller
			doc.styleSheets(0).addRule("INPUT","font-size: 9pt;"); //x-small
			doc.styleSheets(0).addRule("TEXTAREA","font-size: 9pt;");
		} else if (s < 18) { // smallest
			doc.styleSheets(0).addRule("INPUT","font-size: 8pt;"); //smaller
			doc.styleSheets(0).addRule("TEXTAREA","font-size: 8pt;");
		}
	}		
}

function getVersion() {
    if (g_isie) {
	    var versionStr = navigator.appVersion.toLowerCase();
	    var suchStr = "msie ";
	    var msiefound = versionStr.indexOf(suchStr);
        
	    if(msiefound >= 0) {
		    versionStr = versionStr.substring(msiefound + suchStr.length, versionStr.length);
        	
		    var semicolonfound = versionStr.indexOf(";");
		    if(semicolonfound >= 0) {
			    versionStr = versionStr.substr(0, semicolonfound);
			    return parseFloat(versionStr);
		    }
	    }
    }
    return 0;
}
