var menus={};
var currentGallery = false;
var currentImage = 'a';

function init(){

	deal_with_pngs();
	add_sub_menus();

	var back=document.getElementById('container-shadow');
	var container=document.getElementById('container');

	if(back.offsetHeight<container.offsetHeight)
		back.style.height=container.offsetHeight+'px';
	
	back.style.backgroundImage="url(http://www.allsaints-stradbroke.com/images/background-shadow.gif)";

}

function deal_with_pngs(){

	if(BrowserDetect.browser=='Explorer' && BrowserDetect.version==6)
		{
		var imgs=document.getElementsByTagName('IMG');

		for(var i=0;i<imgs.length;i++)
			{
			var img=imgs[i];

			if(img.src.indexOf('.png')>-1)
				{			
				var cur=img.src;

				img.src='http://www.allsaints-stradbroke.com/images/s.gif';

                var m='';

                if(img.style.width)
                    m=", sizingMethod='scale'";                

				if(img.style.filter=='')
					img.style.filter='progid:DXImageTransform.Microsoft.AlphaImageLoader(src="'+cur+'"'+m+')';
				}
			}			
		}
}

function setHeight( id )
{
    var obj = document.getElementById( id );
    var height = window.frames[ id ].document.getElementById( 'side_bar' ).offsetHeight;
    
    obj.height = height + 'px';
}

/*===================================================================
    FADING
====================================================================*/

function fade(obj,d,target){
    
    lyr=document.getElementById(obj);
    lyr.fade+=(d*50);

    if((d>0 && lyr.fade>=target) || (d<0 && lyr.fade<=target))
        {
        lyr.fade=target*0.999999;
        clearInterval(lyr.fade_on);
        lyr.fade_on=0;
        }

    if(lyr.fade==0)
        lyr.style.visibility='hidden';
    else
        lyr.style.visibility='visible';

    lyr.style.opacity=lyr.fade/100;
    lyr.style.filter="Alpha(Opacity="+lyr.fade+")";
}

function fader(lyr,d,target,init){
    obj=GetElement.id(lyr);

    if(obj.fade_on==null)
        {
        obj.fade_on=0;
        obj.fade=init;
        }

    if(obj.fade_on!=0)
        {
        clearInterval(obj.fade_on);
        obj.fade_on=0;
        }
    
    obj.fade_on=setInterval("fade('"+lyr+"',"+d+","+target+")",20);
}

var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};

BrowserDetect.init();

function nospam( a, b, c )
{
	window.location = 'mailto:' + b + '@' + a + '?subject=' + c;
}

function show_hide_menu_m()
{
	var obj = document.getElementById( this._p );

	if( typeof obj._timeout != undefined && obj._timeout != false )
	{
		clearTimeout( obj._timeout );
		obj._timeout=false;
	}
	else
	{
		obj._timeout=setTimeout( 'show_hide_menu( "'+obj.id+'", true )', 500 );
	}
}

function show_hide_menu(obj,now){

	//menus is meant to be global

	if(this.id)
		obj=this;
	else
		obj=document.getElementById(obj);

	var menu_id=obj.id;
	
	if(menu_id.indexOf('menu-')==-1)
		menu_id='menu-'+menu_id;

	if(now!=true)
		{
		for(var layerId in menus)
			if(menus[layerId]!=obj.id)
				show_hide_menu(layerId,true);

		if(document.getElementById(menu_id))
			{
			if(!menus[obj.id])
				{
				menus[obj.id]=obj.id;
				document.getElementById(menu_id)._p=obj.id;
			
				document.getElementById(menu_id).style.left=(obj.offsetLeft+40)+'px';

				clearTimeout(obj._timeout);
			
				fader(menu_id,2.25,100,0,1);
				}
			else
				obj._timeout=setTimeout('show_hide_menu("'+obj.id+'",true)',500);				
			}
		}
	else
		{
		delete menus[obj.id];
		clearTimeout(obj._timeout);
		fader(menu_id,-3,0,100,1);
		}
}

function add_sub_menus(){

	var main_menu_items=document.getElementById('top_level_menu').getElementsByTagName('A');

	for(i=0;i<(main_menu_items.length);i++)
		{
		EventUtils.addEventListener(main_menu_items[i],'mouseover',show_hide_menu);
		EventUtils.addEventListener(main_menu_items[i],'mouseout',show_hide_menu);

		var menu=main_menu_items[i].id;
		menu='menu-'+menu.toLowerCase();

		if(document.getElementById(menu))
			{
			if(BrowserDetect.browser=='Explorer' && BrowserDetect.version==6)
                {
                document.getElementById(menu).firstChild.style.height=(document.getElementById(menu).offsetHeight-2)+'px';
                }
			
			EventUtils.addEventListener(menu,'mouseover',show_hide_menu_m);
			EventUtils.addEventListener(menu,'mouseout',show_hide_menu_m);
			}
		}
}

function closeGallery( gallery ){

    fader( 'greyout', -0.5, 0, 70 );
    fader( currentGallery.id, -0.5, 0, 100 );
    
    if( BrowserDetect.browser=='Explorer' )
    {
        GetElement.id( 'greyout' ).style.height = GetElement.id( 'greyout' ).style._height;       
    }
    GetElement.id( currentGallery ).style.top = GetElement.id( currentGallery ).style._top + 'px';
}

function showGallery( gallery ){
    
    fader( 'greyout', 0.3, 70, 0, 1 );
    
    currentGallery = GetElement.id( gallery );
    
    if( BrowserDetect.browser != 'Explorer' || ( BrowserDetect.browser == 'Explorer' && BrowserDetect.version != 6 ) )
    {
        GetElement.id( 'greyout' ).style._height = GetElement.id( 'greyout' ).style.height;
        GetElement.id( 'greyout' ).style.height = DomUtils.getDocXY().y + 'px';
    }
    var top = parseInt( DomUtils.getStyle( gallery, 'top') );
    GetElement.id( gallery ).style._top = top;
    GetElement.id( gallery ).style.top = top + parseInt( DomUtils.getScroll().t ) + 'px';    
    
    currentGallery.style.display = 'block';
    
    function fadeGallery( )
    {
        fader( gallery, 0.2, 100, 0, 1 );
    }
    
    setTimeout( fadeGallery, 200 );
    
    document.getElementById( gallery ).innerHTML =
        '<a href="javascript: closeGallery( ' + gallery + ' );" id="close_gallery_button">X</a>' +
        '<iframe overflow="hidden" width="100%" height="100%" padding="0px" margin="0px" background-color="#000000" name="' + gallery + '" src="' + gallery + '.html"></iframe>';
}

function showThumbs()
{
    GetElement.id( 'main_text' ).className = "visible";
}

function onThumbClick( gallery, src )
{
    showGallery( gallery );
}

function displayImage( image )
{
    if( currentImage )
    {
        document.getElementById( currentImage ).style.display = 'none';
    }
    
    document.getElementById( image ).style.display = 'block';

    currentImage = image;
}
