//<![CDATA[
var xgetElementById;       // xgetElementById( id )
var xAddEventListener;     // xAddEventListener(obj, eventType, func)
var xsetAttribute;         // xsetAttribute(obj, eventType, func)
var xsetNamedItem;         // xsetNamedItem(obj, eventType)
var xremoveChild;          // xremoveChild( id )
var xgetSelectMultiple;    // xgetSelectMultiple( id )
var xis = new xIs();;
function xIs() {
this.xgecko = false;
this.xmsie  = false;
this.xopera = false;
var agent  = navigator.userAgent.toLowerCase();
this.major = parseInt(navigator.appVersion);
this.minor = parseFloat(navigator.appVersion);
this.nav     =((agent.indexOf('mozilla'   ) != -1)
&& (agent.indexOf('spoofer'   ) == -1)
&& (agent.indexOf('compatible') == -1)
&& (agent.indexOf('opera'     ) == -1)
&& (agent.indexOf('webtv'     ) == -1)
&& (agent.indexOf('hotjava'   ) == -1));
this.nav2    = (this.nav && (this.major == 2));
this.nav3    = (this.nav && (this.major == 3));
this.nav4    = (this.nav && (this.major == 4));
this.navonly = (this.nav && ((agent.indexOf(';nav') != -1) || (agent.indexOf('; nav') != -1)) );
this.nav6    = (this.nav && (this.major == 5));
this.nav6up  = (this.nav && (this.major >= 5));
this.gecko   = (agent.indexOf('gecko') != -1);
if (!document.all && document.getElementById) {
this.xgecko = this.gecko;
}
this.ie      = ((agent.indexOf('msie') != -1)  && (agent.indexOf('opera' ) == -1));
this.ie3     = (this.ie && (this.major <  4));
this.ie4     = (this.ie && (this.major == 4) && (agent.indexOf('msie 4'  ) != -1));
this.ie5     = (this.ie && (this.major == 4) && (agent.indexOf('msie 5.0') != -1));
this.ie5_5   = (this.ie && (this.major == 4) && (agent.indexOf('msie 5.5') != -1));
this.ie6     = (this.ie && (this.major == 4) && (agent.indexOf('msie 6.' ) != -1));
this.ie7     = (this.ie && (this.major == 4) && (agent.indexOf('msie 7.' ) != -1));
this.ie6up   = (this.ie && !this.ie3 && !this.ie4 && !this.ie5 && !this.ie5_5);
if (document.all && document.getElementById)  {
this.xmsie  = this.ie6up;
}
this.opera   = (agent.indexOf('opera') != -1);
this.opera2  = (agent.indexOf('opera 2') != -1 || agent.indexOf('opera/2') != -1);
this.opera3  = (agent.indexOf('opera 3') != -1 || agent.indexOf('opera/3') != -1);
this.opera4  = (agent.indexOf('opera 4') != -1 || agent.indexOf('opera/4') != -1);
this.opera5  = (agent.indexOf('opera 5') != -1 || agent.indexOf('opera/5') != -1);
this.opera6  = (agent.indexOf('opera 6') != -1 || agent.indexOf('opera/6') != -1);
this.opera7  = (agent.indexOf('opera 7') != -1 || agent.indexOf('opera/7') != -1);
this.opera8  = (agent.indexOf('opera 8') != -1 || agent.indexOf('opera/8') != -1);
this.opera9  = (agent.indexOf('opera 9') != -1 || agent.indexOf('opera/9') != -1);
this.opera8up= (this.opera && !this.opera2 && !this.opera3 && !this.opera4 && !this.opera5 && !this.opera6 && !this.opera7);
if (window.opera) {        
this.xopera = this.opera8up;
}
}
xremoveChild = function( id ) {
var xelement = xgetElementById( id );
while ( xelement.firstChild ) {
xelement.removeChild( xelement.firstChild );
}
}
xgetSelectMultiple = function( id ) {
var ret_ary = new Array();
var xelement = xgetElementById( id );
for ( i = 0; i < xelement.options.length; i++ ) {if ( xelement[i].selected ) {ret_ary[ ret_ary.length ] = xelement[i].value;}}
return ret_ary;
}
if ( xis.xgecko ) {
xgetElementById = function( id ) {
return document.getElementById( id );
}
xsetAttribute = function( obj, eventType, func ) {
eve = document.createAttribute( eventType );
obj.attributes.setNamedItem( eve );
obj.setAttribute( eventType, func );
}
xsetNamedItem = function( obj, eventType ) {
eve = document.createAttribute( eventType );
obj.attributes.setNamedItem( eve );
}
xAddEventListener = function( obj, eventType, func ) {
obj.addEventListener( eventType, func, false );
}
}
else if ( xis.xmsie ) {
xgetElementById = function( id ) {
return document.getElementById( id );
}
xsetAttribute = function( obj, eventType, func ) {
eve = document.createAttribute( eventType );
obj.attributes.setNamedItem( eve );
switch ( eventType ) {
case 'class':
obj.setAttribute( 'className', new Function( func ) );
break;
case 'multiple':
case 'align':
case 'size':
case 'id':
case 'type':
case 'value':
case 'selected':
case 'src':
obj.setAttribute( eventType, func );
break;
default:
obj.setAttribute( eventType, new Function( func ) );
}		
}
xsetNamedItem = function( obj, eventType ) {
eve = document.createAttribute( eventType );
obj.attributes.setNamedItem( eve );
}
xAddEventListener = function(obj, eventType, func) {
obj.attachEvent('on' + eventType, func );
}
}
else if ( xis.xopera ) {
xgetElementById = function( id ) {
return document.getElementById( id );
}
xsetAttribute = function( obj, eventType, func ) {
eve = document.createAttribute( eventType );
obj.attributes.setNamedItem( eve );
obj.setAttribute( eventType, func );
}
xsetNamedItem = function( obj, eventType ) {
eve = document.createAttribute( eventType );
obj.attributes.setNamedItem( eve );
}
xAddEventListener = function(obj, eventType, func) {
obj.addEventListener( eventType, func, false );
}
}
//]]>