function MM_preloadImages() {
  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 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_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;
}
/* What Browser is being used? */
var isOp7Up,
	isOp6Dn,
	isIE4Up,
	isIE4,
	isIE5,
	isNN4,
	isFF,
	isUA=navigator.userAgent.toLowerCase();

if(window.opera){
	var i=isUA.indexOf('opera');
	if(i!=-1){
		var v=parseInt(isUA.charAt(i+6));
		isOp7Up=v>=7;
		isOp6Dn=v<7;
	}
} else if(navigator.vendor!='KDE' && document.all && isUA.indexOf('msie')!=-1){
	isIE4Up=parseFloat(navigator.appVersion)>=4;
	isIE4=isUA.indexOf('msie 4')!=-1;
	isIE5=isUA.indexOf('msie 5')!=-1;
}else if(document.layers){
	isNN4=true;
}else if(isUA.indexOf('firefox')!=-1){
	isFF=isUA.indexOf('firefox')!=-1;
}
isMac=isUA.indexOf('mac')!=-1;

function redirect(url) {
	window.location.href = url;
}

/* Check to see if string */
function aStr(s){
	for(var i=0; i<arguments.length; ++i){
		if(typeof(arguments[i])!='string') return false;
	}
	return true;
}

/* Check to see if number */
function aNum(){
	for(var i=0; i<arguments.length; ++i){
		if(isNaN(arguments[i]) || typeof(arguments[i])!='number') return false;
	}
	return true;
}

/* Check to see if Valid CSS for Browser */
function isValid(){
	for(var i=0; i<arguments.length; ++i){
		if(typeof(arguments[i])=='undefined') return false;
	}
	return true;
}

/* Return element for a given tag ID */
function getElement(myTag){
	if(!aStr(myTag)) return myTag;
	if(document.getElementById) myTag=document.getElementById(myTag);
	else if(document.all) myTag=document.all[myTag];
	else myTag=null;
	return myTag;
}

/* Return current Property of a given element Style  */
function getCurrentStyle(myTag, myProp, anInt){
	var cStyle, cPropVal = 'undefined';
	var defView = document.defaultView;
	if(defView && defView.getComputedStyle){
		cStyle = defView.getComputedStyle(myTag,'');
		if (cStyle) cPropVal = cStyle.getPropertyValue(myProp);
	}else if(myTag.currentStyle) {
		var firstChar, pArray = myProp.split('-');
		myProp = pArray[0];
		for (var i=1; i<pArray.length; ++i) {
			firstChar = pArray[i].charAt(0);
			myProp += pArray[i].replace(firstChar, firstChar.toUpperCase());
		}   
		cPropVal = myTag.currentStyle[myProp];
	}else return null;
	return anInt ? (parseInt(cPropVal) || 0) : cPropVal;
}

/* Return/Set element height */
function Height(myTag,height){
	if(!(myTag=getElement(myTag))) return 0;
	if (aNum(height)) {
		if (height<0) height = 0;
		else height=Math.round(height);
	} else height=-1;
	var css=isValid(myTag.style);
	if (myTag == document || myTag.tagName.toLowerCase() == 'html' || myTag.tagName.toLowerCase() == 'body') {
		height = getScreenHeight();
	}else if(css && isValid(myTag.offsetHeight) && aStr(myTag.style.height)) {
		if(height>=0) {
			var padTop=0,padBottom=0,borderTop=0,borderBottom=0;
			if (document.compatMode=='CSS1Compat') {
				var cStyle = getCurrentStyle;
				padTop=cStyle(myTag,'padding-top',1);
				if (padTop !== null) { 
					padBottom=cStyle(myTag,'padding-bottom',1);
					borderTop=cStyle(myTag,'border-top-width',1);
					borderBottom=cStyle(myTag,'border-bottom-width',1);
				}else if(isValid(myTag.offsetHeight,myTag.style.height)){ 		
					myTag.style.height=height+'px';
					padTop=myTag.offsetHeight-height;
				}
			}
			height-=(padTop+padBottom+borderTop+borderBottom);
			if(isNaN(height)||height<0) return;
			else myTag.style.height=height+'px';
		}
		height=myTag.offsetHeight;
	}else if(css && isValid(myTag.style.pixelHeight)) {
		if(height>=0) myTag.style.pixelHeight=height;
		height=myTag.style.pixelHeight;
	}return height;
}

