/**************************************************************

	Script	: Image Menu
	Version	: 2.2
	Authors	: Samuel Birch
	Desc	: 
	Licence	: Open Source MIT Licence

**************************************************************/

var ImageMenu = new Class({
	
	getOptions: function(){
		return {
			onOpen: false,
			onClose: Class.empty,
			openWidth: 200,
			transition: Fx.Transitions.quadOut,
			duration: 400,
			open: null,
			border: 0
		};
	},

	initialize: function(elements, options){
		this.setOptions(this.getOptions(), options);
		
		this.elements = $$(elements);
		
		this.widths = {};
		this.widths.closed = this.elements[0].getStyle('width').toInt();
		this.widths.openSelected = this.options.openWidth;
		this.widths.openOthers = Math.round(((this.widths.closed*this.elements.length) - (this.widths.openSelected+this.options.border)) / (this.elements.length-1))
		
		
		this.fx = new Fx.Elements(this.elements, {wait: false, duration: this.options.duration, transition: this.options.transition});
		
		this.elements.each(function(el,i){
			el.addEvent('mouseenter', function(e){
				new Event(e).stop();
				this.reset(i);
				
			}.bind(this));
			
			el.addEvent('mouseleave', function(e){
				new Event(e).stop();
				this.reset(this.options.open);
				
			}.bind(this));
			
			var obj = this;
			
			el.addEvent('click', function(e){

				if(obj.options.onOpen){
					new Event(e).stop();
					if(obj.options.open == i){
						obj.options.open = null;
//						document.getElementById('frame').innerHTML = '<'+'iframe id="buffer" style="width:100%"  name="buffer" src="'+this.href+'"><\/iframe>';
//                        window.frames['buffer'].location = this.href;
//                        dw_loadExternal('aaaa.htm');
//                        dw_displayExternal();
//dw_loadExternal(this.href);
//dw_displayExternal()
window.location = this.href;


                       
                       
                       
                       
                        
//						window.location = this.href;
					}else{
						obj.options.open = i;
                        //var myDiv = document.getElementById('imageMenu');
                        //myDiv.innerHtml = 
//					    document.getElementById('frame').innerHTML = '<'+'object id="foo" name="foo" type="text/html" style="width:100%;height:auto;" data="'+this.href+'"><\/object>';
//					    document.getElementById('frame').innerHTML = '<'+'iframe id="buffer" style="width:100%"  name="buffer" src="'+this.href+'" onload="dw_displayExternal()"><\/iframe>';
                                                                            
//						var ic = document.getElementById('imageMenu').innerHTML;
//                        var dis = document.getElementById('ASPxRoundPanel1');
//                        window.frames['buffer'].location = this.href;
                        //dw_loadExternal(this.href);
//                        dw_displayExternal();
						
						window.location = this.href;
					}
					
					
				}
				
			})
			
		}.bind(this));
		
		if(this.options.open){
			if($type(this.options.open) == 'number'){
				this.reset(this.options.open);
			}else{
				this.elements.each(function(el,i){
					if(el.id == this.options.open){
						this.reset(i);
					}
				},this);
			}
		}
		
	},
	
	reset: function(num){
		if($type(num) == 'number'){
			var width = this.widths.openOthers;
			if(num+1 == this.elements.length){
				width += this.options.border;
			}
		}else{
			var width = this.widths.closed;
		}
		
		var obj = {};
		this.elements.each(function(el,i){
			var w = width;
			if(i == this.elements.length-1){
				w = width+5
			}
			obj[i] = {'width': w};
		}.bind(this));
		
		if($type(num) == 'number'){
			obj[num] = {'width': this.widths.openSelected};
		}
				
		this.fx.start(obj);
	}
	
});

ImageMenu.implement(new Options);
ImageMenu.implement(new Events);


/*************************************************************/
/*************************************************************************
    This code is from dyn-web.com
    free for all uses as long as this notice retained
*************************************************************************/

/*  dw_loader.js      version date: July 2008
    loads url in iframe, transfers body content into div
    provides defaults for iframe and display div ID's 
    also supports use with multiple iframes and divs
    optional message for loading in display div 
    supports functions to be called once the div has been populated with new content 
    function in iframed document can be invoked should some operations need to be performed from there 
*/

//function dw_loadExternal(url, ifrmId, divId, bLoadMsg) {
//    // defaults for iframe, display div
//    ifrmId = ifrmId || 'buffer'; divId = divId || 'imageMenu'; 
//    if ( window.frames[ifrmId] ) {
//        // Could use location.replace method if you do not want back button to load previous iframe url 
//        //window.frames[ifrmId].location.replace(url);
//        window.frames[ifrmId].location = url;
//        // If you want the whole page to scroll to the top when new content is loaded 
//        //window.scrollTo(0,0);
//        var lyr = document.getElementById? document.getElementById(divId): null;
//        if ( lyr && bLoadMsg ) { // Option to display message while retrieving data 
//            lyr.innerHTML = '<p>Retrieving data. Please wait ...</p>';
//            lyr.style.display = 'block'; 
//        }
//        return false;
//    } 
//    return true; // other browsers follow link
//}


//// called onload of iframe 
//// displays body content of iframed doc in div
//// checks for and invokes optional functions in both current document and iframed document 
//function dw_displayExternal(ifrmId, divId, fp) {
//    // defaults for iframe, display div
//    ifrmId = ifrmId || 'buffer'; divId = divId || 'imageMenu'; 
//    
//    var lyr = document.getElementById? document.getElementById(divId): null;
//    if ( window.frames[ifrmId] && lyr ) {
//        lyr.innerHTML = window.frames[ifrmId].document.body.innerHTML;
//        lyr.style.display = 'block'; 

//        // when using with script, may have some operations to coordinate
//        // function in current doc or iframed doc (doOnIframedLoad)
//        if ( typeof fp == 'function' ) {
//            fp();
//        }
//        
//        // Demonstrated in tooltip demo
//        if ( typeof window.frames[ifrmId].doOnIframedLoad == 'function' ) {
//            window.frames[ifrmId].doOnIframedLoad();
//        }
//    }
//}
