// -----------------------------------------------------------------------------------
//
// Sophie Casson
// Page developed by Ara Yazedjian
// -----------------------------------------------------------------------------------
/*--------------------------------------------------------------------------*/
// Additional methods for Element
Object.extend(Element, {
	getWidth: function(element) {
   	element = $(element);
   	return element.offsetWidth; 
	},	
	setWidth: function(element,w) {
   	element = $(element);
    	element.style.width = w +"px";
	},
	setHeight: function(element,h) {
   	element = $(element);
    	element.style.height = h +"px";
	},
	
	
	
	
	setSrc: function(element,src) {
    	element = $(element);
    	element.src = src; 
	},
	setHref: function(element,href) {
    	element = $(element);
    	element.href = href; 
	},	
	getHref: function(element) {
    	element = $(element);
    	return element.href; 
	},
	getRlink: function(element) {
    	element = $(element);
    	return element.linkto; 
	},	
	setInnerHTML: function(element,content) {
		element = $(element);
		element.innerHTML = content;
	}
});


// Additional methods for Element
Object.extend(Effect, {
//new addition for centering a div on a page
	Center: function(element) {
	    try
    	{
    	    element = $(element);
    	}
    	catch(e)
    	{
    	    return;
    	}

    var my_width  = 0;
    var my_height = 0;

    if ( typeof( window.innerWidth ) == 'number' )
    {
        my_width  = window.innerWidth;
        my_height = window.innerHeight;
        
    }
    else if ( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) )
    
    {

        my_width  = document.documentElement.clientWidth;
        my_height = document.documentElement.clientHeight;
        
    }
    else if ( document.body && ( document.body.clientWidth || document.body.clientHeight ) )
    {

        my_width  = document.body.clientWidth;
        my_height = document.body.clientHeight;
        
    }
    element.style.position = 'absolute';
    element.style.display  = 'block';
    element.style.zIndex   = 99;
    var scrollY = 0;
    if ( document.documentElement && document.documentElement.scrollTop )
    {
        scrollY = document.documentElement.scrollTop;
    }
    else if ( document.body && document.body.scrollTop )
    {
        scrollY = document.body.scrollTop;
    }
    else if ( window.pageYOffset )
    {
        scrollY = window.pageYOffset;
    }
    else if ( window.scrollY )
    {
        scrollY = window.scrollY;
    }
    var elementDimensions = null 
    

    elementDimensions = Element.getDimensions(element);
    var setX = ( my_width  - elementDimensions.width  ) / 2;
    var setY = ( my_height - elementDimensions.height ) / 2 + scrollY;
    setX = ( setX < 0 ) ? 0 : setX;
    setY = ( setY < 0 ) ? 0 : setY;
    element.style.left = setX + "px";
    element.style.top  = setY + "px";
	}


});
Effect.Transitions.slowstop = function(pos) {
  return 1-Math.pow(0.5,10*pos);
}


/*--------------------------------------------------------------------------*/
// Mouseover functions 

var imagepath = 'img/';
var oversuffix = '_over';
var mouseOvers = new Array();
var mouseOuts = new Array();
var imouseovers = 0;
//the functions
function setMouseOver(el) {

	//set image type from extension
	var imagetype = el.src.substring(el.src.lastIndexOf('.'));		
	mouseOuts[imouseovers] = new Image();
	mouseOuts[imouseovers].src = el.src;
	//Create and set new source string
	mouseOvers[imouseovers] = new Image();
	mouseOvers[imouseovers].src = el.src.substring(0,el.src.lastIndexOf('.')) + oversuffix + imagetype;
	el.number = imouseovers;

	imouseovers++
};
function mouseGoesOver(el) {
	el.src = mouseOvers[el.number].src;
};
function mouseGoesOut(el) {
	el.src = mouseOuts[el.number].src;
};
// End mouse over code

/*--------------------------------------------------------------------------*/
// Scroll code
function scrollDown(cropBoxId, contentBoxId, speed) {

		var cropHeight = Element.getHeight(cropBoxId);
		var textHeight = Element.getHeight(contentBoxId);
		var maxScroll = -(textHeight - cropHeight);
		var yPos = parseFloat(Element.getStyle(contentBoxId, 'top')  || 0);
    	var xPos = parseFloat(Element.getStyle(contentBoxId, 'left')  || 0);		
		if (yPos>=maxScroll) {		
			new Effect.Move (contentBoxId,{ x: 0, y: -speed, mode: 'relative', duration: 2.0, queue: {position: 'front', scope: 'textscroll', limit: 1}, transition: Effect.Transitions.slowstop});
			};
		};
function scrollUp(cropBoxId, contentBoxId, speed) {
		var yPos = parseFloat(Element.getStyle(contentBoxId, 'top')  || 0);
		var contentBox =  document.getElementById(contentBoxId);
		if (yPos != 0) {
			new Effect.Move (contentBox,{ x: 0, y: speed, mode: 'relative', duration: 2.0, queue: {position: 'front', scope: 'textscroll', limit: 1}, transition: Effect.Transitions.slowstop});
			};	
		};
function scrollBack(cropBoxId, contentBoxId, speed) {
    	var xPos = parseFloat(Element.getStyle(contentBoxId, 'left')  || 0);		
		if (xPos != 0) {		
			new Effect.Move (contentBoxId,{ x: speed, y: 0, mode: 'relative', duration: 2, queue: {position: 'front', scope: 'objectscroll', limit: 1}, transition: Effect.Transitions.slowstop});
			};
		};
function scrollForward(cropBoxId, contentBoxId, speed, page) {
		var cropWidth = Element.getWidth(cropBoxId);
		var contentWidth = Element.getWidth(contentBoxId);
		var maxScroll = -(contentWidth - cropWidth);
    	var xPos = parseFloat(Element.getStyle(contentBoxId, 'left')  || 0);
    	//alert('crop width: '+cropWidth+', content width: '+contentWidth+', Max scroll: '+maxScroll+',X pos: '+xPos);		
		var contentBox =  document.getElementById(contentBoxId);
		if (xPos>maxScroll) {
			var deltaX=speed*(page)
			new Effect.Move (contentBox,{ x: -deltaX, y: 0, mode: 'relative', duration: 2, queue: {position: 'front', scope: 'objectscroll', limit: 1}, transition: Effect.Transitions.slowstop});
			};	
		};		
				
function stopScroll() {
		var queue = Effect.Queues.get('objectscroll');
		queue.each(function(e) { e.cancel() });
		};
/*--------------------------------------------------------------------------*/




/*--------------------------------------------------------------------------*/
// Utility functions 




/*--------------------------------------------------------------------------*/

