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.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];}
}

// getPageSize()
// Returns array with page width, height and window width, height
// Core code from - quirksmode.org
function getPageSize() {
	var xScroll, yScroll;
	
	if (window.innerHeight && window.scrollMaxY) {	
		xScroll = document.body.scrollWidth;
		yScroll = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}
	
	var windowWidth, windowHeight;
	if (self.innerHeight) {	// all except Explorer
		windowWidth = self.innerWidth;
		windowHeight = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} else if (document.body) { // other Explorers
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}	
	
	// for small pages with total height less then height of the viewport
	if (yScroll < windowHeight) {
		pageHeight = windowHeight;
	} else { 
		pageHeight = yScroll;
	}

	// for small pages with total width less then width of the viewport
	if (xScroll < windowWidth) {	
		pageWidth = windowWidth;
	} else {
		pageWidth = xScroll;
	}

	arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight,xScroll,yScroll) 
	return arrayPageSize;
}

function fullImageBox(elm, state, w, h, offset_x, offset_y){
	if (((obj = MM_findObj(elm)) != null) && ((cover_obj = MM_findObj("cover")) != null)){
		if (state){
			w = Number(w);
			h = Number(h);
			if (offset_x == null) var offset_x = 0;
			if (offset_y == null) var offset_y = 0;
			var arr = getPageSize();
			obj.style.left = Math.max(0, (arr[2]/2 - (w+24)/2 + offset_x/2)) + "px";
			obj.style.top = Math.max(0, (arr[3]/2 - (h+24)/2 + offset_y/2)) + "px";
			obj.style.display = "block";
			cover_obj.style.height = arr[1] + "px";
			cover_obj.style.display = "block";
		}
		else{
			obj.style.display = "none";
			cover_obj.style.display = "none";
		}
	}
	else{
		return true;
	}
}

// A workaround for XSL-to-XHTML systems that don't
//  implement XSL 'disable-output-escaping="yes"'.
//
// sburke@cpan.org, Sean M. Burke.
//  - I hereby release this JavaScript code into the public domain.
function xsl2xhtml(){
	var is_converted;
	if (document.getElementById && document.getElementsByName){
		var obj = document.getElementById('xsl2xhtml_test');
		if (obj != null && ('textContent' in obj)){
			var amp = obj.textContent;
			if (amp == undefined || amp == '')	return;
			else if (amp == "\x26")				is_converted = true;
			else if (amp == "\x26amp;")			is_converted = false;
			else								return;
		}
		else{
			return;
		}
	}
	else{
		return;
	}
	if (!is_converted){
		var elms = document.getElementsByName('xsl2xhtml_elm');
		if (!(elms && elms.length)){
			return;
		}
		var s;
		for (var i = elms.length-1; i >= 0; i--){ 
			s = elms[i].textContent;
			if (!(s == undefined || (s.indexOf('&') == -1 && s.indexOf('<') == -1))) elms[i].innerHTML = s;
		}
	}
	return;
}
