// Browser Detection
var ie5   = ( document.getElementById && document.all ); 
var moz   = ( document.getElementById &&! document.all );
var opera    = ( navigator.userAgent.indexOf( 'Opera' ) != -1 );
if ( opera ) ie5 = false;



// Global pageinit function
function pageinit() {
	if (MM_findObj('fadingphotos')) {
		FadingPhotosInit();
	}
}



// Standard MM functions
function MM_findObj(n, d) { //v4.0
	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 && document.getElementById)
		x=document.getElementById(n); return x;
}
	
function MM_showHideLayers() { //v3.0
	var i,p,v,obj,args=MM_showHideLayers.arguments;
	for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) {
		v=args[i+2];
		if (obj.style) {
			obj=obj.style;
			v=(v=='show')?'visible':(v='hide')?'hidden':v;
		}
		obj.visibility=v;
		obj.display=(v=='visible' ? 'block' : 'none');
	}
}

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_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_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];}}
}



// Centered popup window
function CenteredPopup(url, width, height) {
	var left = Math.floor(screen.availWidth/2 - width/2);
	var top = Math.floor(screen.availHeight/2 - height/2);
	var w = window.open(url, 'GWMpopup', 'width='+width+',height='+height+',left='+left+',top='+top+',toolbar=no,menubar=no,locationbar=no,scrollbars=yes,resizable=yes');
	w.focus();
	return false;
}



// Popup functions
var NextTooltipHide = 0;

function ShowTooltip(img, above) {
	if (NextTooltipHide) {
		clearTimeout(NextTooltipHide);
		NextTooltipHide = 0;
	}
	var o = MM_findObj('tooltip');
	var html = '<img width=300 height=420 src="'+img+'" border=0>';
	if (o.innerHTML != html) {
		var e = window.event;
		o.style.left = ((e.pageX ? e.pageX : e.clientX) + 15) + 'px';
		if (above) {
			o.style.bottom = ((e.pageY ? e.pageY : e.clientY) + 15) + 'px';
		} else {
			o.style.top = ((e.pageY ? e.pageY : e.clientY) + 15) + 'px';
		}
		MM_showHideLayers('tooltip', '', 'show');
		o.innerHTML = html;
	}
}

function HideTooltip() {
	NextTooltipHide = setTimeout("DoHideTooltip()", 200);
}

function DoHideTooltip() {
	MM_showHideLayers('tooltip', '', 'hide');
	NextTooltipHide = 0;
}



// Set object opacity
function SetOpacity(opa, obj, zid) {
	var o = MM_findObj(obj);
	if (o) {
		o.style.opacity = (opa / 100);
		o.style.MozOpacity = (opa / 100);
		if (o.filters) {
			if (o.filters.alpha) {
				o.filters.alpha.opacity = opa;
			}
		}
		o.style.display = 'inline';
		o.style.visibility = 'visible';
		if (zid) { o.style.zIndex = zid; }
	}
}



// Fading Photo Options
var FadingPhotosDelay = 4000;
var FadingPhotosZoneDelay = 100;
var FadingPhotosStepOpacity = 4;
var FadingPhotosStepTime = 20;
var FadingPhotosNextTransition = 0;
var FadingPhotosImmediateCancel = 0;
var FadingPhotosBusy = 0;

function FadingPhotosInit() {
	var z;
	for (z=0; z<9; z++) {
		if (MM_findObj('photozone'+z)) {
			if (MM_findObj('fadingphoto_'+z+'_1')) {
				if (MM_findObj('fadingphoto_'+z+'_bg')) {
					MM_showHideLayers('fadingphoto_'+z+'_bg', '', 'show');
				}
				FadingPhotosFade(z, 1, 1, 0);
				if (window.FadingPhotoPreloads) {
					for (i in window.FadingPhotoPreloads) {
						o = MM_findObj('fadingphotoimg_'+i);
						if (o) {
							o.src = window.FadingPhotoPreloads[i];
						}
					}
				}
				if (MM_findObj('fadingphoto_'+z+'_2')) {
					FadingPhotosNextTransition = setTimeout('FadingPhotosTransition('+z+',1,2)', FadingPhotosDelay + (z*FadingPhotosZoneDelay));
				}
			}
		}
	}
}

function FadingPhotosTransition(z, a, b) {
	FadingPhotosNextTransition = 0;
	
	// set layering for fadingphoto containers
	var oa = MM_findObj('fadingphoto_'+z+'_'+a);
	var ob = MM_findObj('fadingphoto_'+z+'_'+b);
	oa.style.zIndex = 50+a;
	ob.style.zIndex = 60+b;

	FadingPhotosFade(z, a, 0, b);
	if (MM_findObj('fadingphoto_'+z+'_'+(b+1))) {
		FadingPhotosNextTransition = setTimeout('FadingPhotosTransition('+z+','+b+','+(b+1)+')', FadingPhotosDelay);
	} else {
		FadingPhotosNextTransition = setTimeout('FadingPhotosTransition('+z+','+b+',1)', FadingPhotosDelay);
	}
}

function FadingPhotosFade(z, id, fadein, nextin) {
	FadingPhotosBusy = 1;
	if (fadein) {
		FadingPhotosSetOpacity(0, 'fadingphoto_'+z+'_'+id, 0);
		FadingPhotosSetOpacity(0, 'fadingphoto_'+z+'_'+id+'a', 1);
		FadingPhotosSetOpacity(0, 'fadingphoto_'+z+'_'+id+'b', 3);
		FadingPhotosSetOpacity(100, 'fadingphoto_'+z+'_'+id+'mid', 2);
		setTimeout('FadingPhotosFadeStep('+z+','+id+','+fadein+','+FadingPhotosStepOpacity+','+nextin+')', 0);
		setTimeout('FadingPhotosCallback('+z+','+id+')',0);
	} else {
		setTimeout('FadingPhotosFadeStep('+z+','+id+','+fadein+','+(100-FadingPhotosStepOpacity)+','+nextin+')', 0);
	}
}

function FadingPhotosFadeStep(z, id, fadein, opa, nextin) {
	if (FadingPhotosImmediateCancel) {
		FadingPhotosImmediateCancel = 0;
		opa = 0;
		nextin = 0;
	}
	if (opa > 100) { opa = 100; }
	if (opa < 0) { opa = 0; }

	// set opacity of master container and sub-containers
	FadingPhotosSetOpacity(opa, 'fadingphoto_'+z+'_'+id, 0);
	FadingPhotosSetOpacity(opa, 'fadingphoto_'+z+'_'+id+'a', 1);
	FadingPhotosSetOpacity(opa, 'fadingphoto_'+z+'_'+id+'b', 3);
	
	if (opa > 0 && opa < 100) {
		setTimeout('FadingPhotosFadeStep('+z+','+id+','+fadein+','+(fadein ? opa+FadingPhotosStepOpacity : opa-FadingPhotosStepOpacity)+','+nextin+')', FadingPhotosStepTime);
	} else if (nextin) {
		FadingPhotosFade(z, nextin, 1, 0);
	} else {
		FadingPhotosBusy = 0;
	}
}

function FadingPhotosSetOpacity(opa, obj, zid) {
	var o = MM_findObj(obj);
	if (o) {
		o.style.opacity = (opa / 100);
		o.style.MozOpacity = (opa / 100);
		if (o.filters) {
			if (o.filters.alpha) {
				o.filters.alpha.opacity = opa;
			}
		}
		o.style.display = 'inline';
		if (zid) { o.style.zIndex = zid; }
	}
}
