window.onerror = function(msg, err_url, line) {
    //alert('an error occured on line: ' + line + '\nurl: '+err_url+'\nerror message: '+msg);
	//MM_displayStatusMsg('error on line: ' + line + '\nurl: '+err_url+'\nerror message: '+msg);
	return true;
}

/**
* Will add an onload event to a queue of onload events.  Allows multiple onload events to be triggered.
**/
function addLoadEvent(func) {
	if(document.getElementById) {
		var oldonload = window.onload;
		if (typeof window.onload != 'function') {
			window.onload = func;
		} else {
			window.onload = function() {
			  if (oldonload) {
				oldonload();
			  }
			  func();
			}
		}
	}
}

function MM_displayStatusMsg(msgStr) { //v1.0
  window.status=msgStr;
  document.MM_returnValue = true;
}

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_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;
}

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 openDemoWin(){
// this is the 'see it in action' link to open the demo.
// temporarily directing users to the gallery instead:
  //window.open('/virtualearth/demo.aspx','demo','resizable=yes,width=1000,height=560');
//  window.location.href="/virtualearth/platform/gallery.aspx";
            newwindow=window.open('/virtualearth/platform/videoplayer/videoplayer.html','veVideo','width=520,height=390,toolbar=0,resizable=0,status=0,menubar=0,scrollbars=0,location=0,directories=0');
//            self.parent.location='/virtualearth/platform/gallery.aspx';
//            if (window.focus) {newwindow.focus()}
//            return false;
}

function terms(){
// terms of service popup
  window.open('/virtualearth/product/terms.html','terms','resizable=yes,width=600,height=560,scrollbars=yes');
}

function veVideoPlayer() {
            newwindow=window.open('/virtualearth/platform/videoplayer/videoplayer.html','veVideo','width=520,height=390,toolbar=0,resizable=0,status=0,menubar=0,scrollbars=0,location=0,directories=0');
            self.parent.location='/virtualearth/platform/gallery.aspx';
            if (window.focus) {newwindow.focus()}
            return false;
        }

function veVideoPlayerGallery() {
            newwindow=window.open('/virtualearth/platform/videoplayer/videoplayer.html','veVideo','width=520,height=390,toolbar=0,resizable=0,status=0,menubar=0,scrollbars=0,location=0,directories=0');
            if (window.focus) {newwindow.focus()}
            return false;
        }
        
function search_onBlurSearch(searchbox){
            if(searchbox.value=="Search Microsoft"){
                searchbox.className="msviLSBSearchInactive";
            } else if (searchbox.value==""){
                searchbox.value="Search Microsoft";
                searchbox.className="msviLSBSearchInactive";
            }
            searchbox.style.border="1px solid #999999";
        }
        
function search_onFocusSearch(searchbox){
            if(searchbox.value=="Search Microsoft"){
                searchbox.className="msviLSBSearchActive";
                searchbox.value="";
            }
            searchbox.style.border="1px solid #000000";
        }

/*	Image Cross Fade Redux	Version 1.0	Last revision: 02.15.2006	steve@slayeroffice.com	Rewrite of old code found here: http://slayeroffice.com/code/imageCrossFade/index.html*/window.addEventListener?window.addEventListener('load',so_init,false):window.attachEvent('onload',so_init);var d=document, imgs = new Array(), zInterval = null, current=0, pause=false;function so_init(){	if(!d.getElementById || !d.createElement)return;	css = d.createElement('link');	css.setAttribute('href','slideshow2.css');	css.setAttribute('rel','stylesheet');	css.setAttribute('type','text/css');	d.getElementsByTagName('head')[0].appendChild(css);	imgs = d.getElementById('slideshow').getElementsByTagName('img');	for(i=1;i<imgs.length;i++) imgs[i].xOpacity = 0;	imgs[0].style.display = 'block';	imgs[0].xOpacity = .99;	setTimeout(so_xfade,3000);}function so_xfade(){	cOpacity = imgs[current].xOpacity;	nIndex = imgs[current+1]?current+1:0;	nOpacity = imgs[nIndex].xOpacity;	cOpacity-=.05;	nOpacity+=.05;	imgs[nIndex].style.display = 'block';	imgs[current].xOpacity = cOpacity;	imgs[nIndex].xOpacity = nOpacity;	setOpacity(imgs[current]);	setOpacity(imgs[nIndex]);	if(cOpacity<=0)	{		imgs[current].style.display = 'none';		current = nIndex;		setTimeout(so_xfade,3000);	}	else	{		setTimeout(so_xfade,50);	}	function setOpacity(obj)	{		if(obj.xOpacity>.99)		{			obj.xOpacity = .99;			return;		}		obj.style.opacity = obj.xOpacity;		obj.style.MozOpacity = obj.xOpacity;		obj.style.filter = 'alpha(opacity=' + (obj.xOpacity*100) + ')';	}}
