/*===================================================================
    GLOBALS
====================================================================*/

var currentPanel;
var currentHighlight;
var currentGallery;
var galleryTop;
var currentImage = null;

var m			= new Object();
m.curImage		= 0;
m.slideshow		= 0;
m.intro			= 1;
m.scrolling		= new Array(0,0,0);
m.scr_real		= new Array(0,0,0);
m.current		= -1;
m.current_thumb	= null;

var dd			= new Object();

/*===================================================================
    INITIALISE
====================================================================*/

function initialise(){

	var c = getCookie('current_page');

	c=(c==null)?1:c;

	currentPanel                = $.id( 'main_text_'+c );
    currentPanel.style.display  = 'block';
    
    currentHighlight            = $.id( "hp_main_menu_item_1" );
    currentHighlight.className  = 'highlight';
    
    currentGallery              = $.id( "gallery_main" );

	moveHighlight( c );
}

/*===================================================================
    PAGE NAVIGATION
====================================================================*/

function switchPanel( index )
{
    currentPanel.style.display  = 'none';
    currentPanel                = $.id( 'main_text_' + index );
    currentPanel.style.display  = 'block';
    
    moveHighlight( index );
	setCookie( 'current_page', index, 0.1 );
}

function moveHighlight( index )
{
	currentHighlight.className = '';
    currentHighlight           = $.id( 'hp_main_menu_item_' + index );
 //   currentHighlight.className = 'highlight';
}

/*===================================================================
    GALLERY
====================================================================*/

function showImage( img ){
    
    var image = $.id(img);
    if ( image == currentImage )
    {
        return;        
    }
	image.style.display = 'block';

    $.id( "main_image_title" ).innerHTML = image.title;

	if( currentImage != null )
	{
        currentImage.style.display = 'none';
	}
    currentImage = image;

	m.current_thumb=img;
}

function closeGallery(){
	
	fader( 'greyout', -0.3, 0, 70 );
	fader( 'gallery_container', -0.2, 0, 100 );
	
	if( isIE )
	{
        $.id( 'greyout' ).style.height = $.id( 'greyout' ).style._height;	    
	}
    $.id( 'gallery_container' ).style.top = $.id( 'gallery_container' ).style._top + 'px';
	$.id( 'scroll_bar' ).style.visibility = "hidden";
}

function showGallery( gallery, img ){

	showImage( img );

	fader( 'greyout', 0.3, 70, 0 );
	
	currentGallery.style.display                   = 'none'; 
    currentGallery                                 = $.id( gallery );

    if( !isIE )
    {
        $.id( 'greyout' ).style._height = $.id( 'greyout' ).style.height;
        $.id( 'greyout' ).style.height = parseInt( DomUtils.getStyle( 'greyout', 'height' ) ) 
        + parseInt( DomUtils.getScroll().t ) + 'px';
    }
    var top = parseInt( DomUtils.getStyle( 'gallery_container', 'top') );
    $.id( 'gallery_container' ).style._top = top;
	$.id( 'gallery_container' ).style.top = top + parseInt( DomUtils.getScroll().t ) + 'px';	

    currentGallery.style.display                   = 'block';   

    var inner = $.id( gallery + '_inner' );
    var taglist = inner.getElementsByTagName( 'a' );
//    inner.style.width = ( taglist.length ) * taglist[0].offsetWidth + 'px';

	fader( 'gallery_container', 0.2, 100, 0 );
    $.id( "main_image_title" ).innerHTML = $.id(img).title;
//	initScrollBar( gallery );
}

/*===================================================================
    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=$.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);
}

/*===================================================================
    SCROLL BAR
====================================================================*/

function drag(box,container,scale) {

	dd[box] = new DragDrop(box, {onMouseMove:

		function(left,top) {

			if(!this.scrollStyle) this.scrollStyle = $.id(container).style;
			this.scrollStyle.left = - left*scale + 'px';
	
		}
	});

	var b=$.id(box);
	var scroller=$.id('scroll_bar');

	dd[box].holdY();
	dd[box].limit({left: 0, right: (scroller.offsetWidth-b.offsetWidth)});
	dd[box].useRelative();
}

function click_scroll(pos,evt){
	
	var box=$.id('scroll_box');
	var container=currentGallery;
	var inner=$.id(container.id+'_inner');
	var scroller=$.id('scroll_bar');

	var targ=EventUtils.targetElement(evt);

	if(targ.id!='scroll_box' && pos==false)
		{
		H=inner.offsetWidth-container.offsetWidth;
	
		if(pos==false)
			{
			var offset=parseInt($.id( 'gallery_container' ).style.left)+25;
	
			mouse=EventUtils.mouse(evt);
			var y=mouse.y-offset;
			}
		else
			{
			var scale=scroller.offsetWidth/(scroller.offsetWidth-box.offsetWidth)
	
			var y=(pos+box.offsetLeft)*scale;
			var m=scroller.offsetWidth;
	
			if(y<0)
				y=0;
	
			if(y>m)
				y=m;
			}
		
		var factor=y/scroller.offsetWidth;
	
		var p=-H*factor;
	
		inner.style.left=p+'px';
	
		box.style.left=(y/scroller.offsetWidth)*(scroller.offsetWidth-box.offsetWidth)+'px';
	
		dd['scroll_box'].onMouseDown(evt);
	}
}

function initScrollBar( gallery ){

	var container=$.id(gallery);
	var box=$.id('scroll_box');
	var inner=$.id(gallery+'_inner');
	var scroller=$.id('scroll_bar');
	if(container.offsetWidth<inner.offsetWidth)
		{
		scroller.style.visibility='visible';
		
		var box_width=(container.offsetWidth/inner.offsetWidth)*scroller.offsetWidth;
		box.style.width=box_width+'px';

		drag('scroll_box',gallery+'_inner',(inner.offsetWidth-container.offsetWidth)/(scroller.offsetWidth-(box_width+4)));
		}
	else
		scroller.style.visibility='hidden';
}

/*===================================================================
    COOKIES
====================================================================*/

function getCookie(name) {

	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function setCookie(name,value,days) {

	if(days)
		{
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
		}
	else
		var expires = "";

	document.cookie = name+"="+value+expires+"; path=/";
}
