window.addEvent('domready', function() {
	adjustView();
});

window.addEvent('resize', function() { 
	adjustView(); 
});
	

function adjustView()
{
	var containerObj = null;
	if( window.Browser.Engine.trident4  )
		containerObj = document.html;
	else if( ( navigator.userAgent.indexOf("MSIE 7.0") > 0 ) )
		containerObj = document.getElementById( "container" );
	
	if( containerObj )
	{
		if( containerObj && ( window.document.body.clientWidth < 990 ) ) 
			containerObj.style.overflowX = "scroll";
		else 
			containerObj.style.overflowX = "hidden";
	}
	
}

function setHeight( value )
{
	if( $('menuswf') )
	{
		if (value == "close") {
			$('menuswf').className = "menuClose";
			$('menu').className = "menuClose";
			$('breadcrumb').className = "breadcrumb";
		}
		else
		{
			$('menuswf').className = "menuOpen";
			$('menu').className = "menuOpen";
			$('breadcrumb').className = "breadcrumb breadcrumbClose";
		} 
	}
}



var App = {
		
	init: function() {
		this.fixIE6();
		this.fixDispositions();
		this.mediaPagination();
		this.usSateCheck();
		this.initlightboximages();
		this.initAccordion();
		
		/* Init video player links */
        var gallery = $("gallery_image");
        var gallery_title = $('gallery_title');
        function play_gallery_video() {
            gallery_title.innerHTML = this.getProperty("title");
            var div = document.createElement("div");
            div.id = "gallery_video";
            gallery.innerHTML = "";
            gallery.appendChild(div);
            load_video(window.media_url, this.getProperty("href"), 533, 300, "gallery_video")
        }
        $$(".gallery_video.first").each(function(elem) {
            play_gallery_video.apply(elem);
        });
        $$(".gallery_video").addEvent("click", function (e) {
            e.stop();
                    play_gallery_video.apply(this);
        });
        $$(".gallery_image").addEvent("click", function (e) {
            e.stop();
            gallery_title.innerHTML = this.getProperty("title");
            var div = document.createElement("img");
            div.setProperty("src", this.getProperty("href"));
            gallery.innerHTML = "";
            gallery.appendChild(div);
        });
		
		/* Init Slider for monarke pages */
		$$(".slider").each(function (slider) {
		    var visible = slider.getElements(".slider_visible")[0].offsetWidth;
		    var content = slider.getElements(".slider_content")[0];
		    var elems = content.getElements(".slider_element");
		    var pos = 0;
		    var runningfx = new Fx.Tween(content, {
		        transition: Fx.Transitions.Quad.easeOut,
		        duration: 1000
		    });
            
            var prev = 0;
            
            // Place everthing on 1 row
            content.setStyle("width", visible+'px')
            for (var i=0; i < elems.length; i++) {
                if (elems[i].offsetLeft < prev) {
                    content.setStyle("width", (content.getStyle("width").toInt()+visible)+'px');
                }
                prev = elems[i].offsetLeft;
            }
            
            // Check fully visible elements
            for (var i=0; i < elems.length; i++) {
                if (elems[i].offsetWidth + elems[i].offsetLeft > visible) {
                    visible = i; // Nr of visible elements
                    break;
                }
            }
            
            slider.getElements(".slider_right").each(function (elem) {
                elem.addEvent('click', function(e) {
                    e.stop();
                    if ((pos+visible) < elems.length) {
                        pos += visible;
                        var ref = pos;
                        if (ref >= elems.length) {
                            ref = elems.length - 1
                        }
                        runningfx.cancel();
                        runningfx.start('left', -(elems[ref].offsetLeft - elems[0].offsetLeft))
                    }
                });
            });
            slider.getElements(".slider_left").each(function (elem) {
                elem.addEvent('click', function(e) {
                    e.stop();
                    if ((pos-visible) >= 0) {
                        pos -= visible;
                        var ref = pos;
                        if (ref < 0) {
                            ref = 0
                        }
                        runningfx.cancel();
                        runningfx.start('left', -(elems[ref].offsetLeft - elems[0].offsetLeft))
                    }
                });
            });
		});
	},
	
	initAccordion: function () {
        new Fx.Accordion('#accordion h2', '#accordion .content', {
         onActive: function (toggler, element) { toggler.addClass("active"); element.fireEvent('accordion_display', [], 500); },
      	 onBackground: function(toggler, element) { toggler.removeClass("active"); element.fireEvent('accordion_hide'); },
      	 alwaysHide: true,
      	 display: -1
        });
	},
	
	initlightboximages: function() {
        $$("a.lightboximage.lb_link").mediabox({
                overlayOpacity: 0.5,
                showCaption: false,
                showCounter: false,
                text: ''
            }, function (el) {
            return [el.href, el.title, 'inline']
        } );
	},
	
	fixIE6: function() {
		if ( Browser.Engine.trident4 ) {
			this.fixLanguageMenu();
		}
	},
	
	fixLanguageMenu: function() {
		var language = $$('#language');
		var select = language.getElement(':first-child')
		
		select.addEvent('mouseenter', function() {
			language.getElement('ul').setStyle('display', 'block');			
		});
		
		select.addEvent('mouseleave', function() {
			language.getElement('ul').setStyle('display', 'none');
		});		
	},
	fixDispositions: function(){
		$each($$('table.disposition tr.head td'), function(obj){
			if(obj.get('html') == '&nbsp;' || obj.get('html') == ''){
				obj.setStyle('border', 'none');
			}
		});
	},
	
	usSateCheck: function(){
		if(!$chk($('id_state')) || !$chk($('id_country'))) return null;
		
		var state = $('id_state').getParent();
		var country = $('id_country');
		
		//init
		if(country.get('value') != 'US') state.setStyle('display', 'none');
		
		country.addEvent('change', function(e){
			if(country.get('value') == 'US') state.setStyle('display', 'block');
			else state.setStyle('display', 'none');
		});
	},
	
	mediaPagination: function(){
		if(!$chk($('mediaPagesVideo')) && !$chk($('mediaPagesAudio')) && !$chk($('mediaPagesSheetmusic'))) return null;
		
		$each([$('mediaPagesVideo'), $('mediaPagesAudio'), $('mediaPagesSheetmusic')], function(mediaPagesItem){
			var mediaPagesItemId = mediaPagesItem.get('id');
			
			if($chk($(mediaPagesItemId))){
				var activePage = 0;
				var pages = $$('div#'+mediaPagesItemId+' div.mediaPage');
				$each(pages, function(obj,index){
					if(obj.getChildren('div').length == 0) {
						obj.destroy();
					}
				})
				pages = $$('div#'+mediaPagesItemId+' div.mediaPage');
				
				var numPages = pages.length;
				
				
				var pageNums = $$('div#'+mediaPagesItemId+'Pagination div.pages ul')[0];
				var previous = $$('div#'+mediaPagesItemId+'Pagination div.previous')[0];
				var next = $$('div#'+mediaPagesItemId+'Pagination div.next')[0];

				var setPage = function(i){
					$each(pages, function(hideobj){
						hideobj.setStyle('display', 'none');
						pages[i].setStyle('display', 'block');
					});
					$each($$('div#'+mediaPagesItemId+'Pagination div.pages ul li a'), function(removeclassobj){
						removeclassobj.removeClass('active')
					});
					$$('div#'+mediaPagesItemId+'Pagination div.pages ul li a')[i].addClass('active');
				
					if(i != 0) previous.setStyle('visibility', 'visible');
					else previous.setStyle('visibility', 'hidden');
					
					if(i != numPages-1) next.setStyle('visibility', 'visible');
					else  next.setStyle('visibility', 'hidden');
					activePage = i;					
				}
			
				$each(pages, function(obj, index){
					var li = new Element('li');
					var a = new Element('a');
					a.set('html', index+1);
					a.set('href', 'javascript:void(0)');

					a.addEvent('click', function(e){
						setPage(index);
					});
				
					li.appendChild(a);
					pageNums.appendChild(li);
				
					if(index == 0) a.addClass('active');
					if(numPages > 1 ) next.setStyle('visibility', 'visible');
				});
				next.addEvent('click', function(e){
					setPage(activePage+1)
				});
				previous.addEvent('click', function(e){
					setPage(activePage-1)
				})
			}
		});
	}
}

window.addEvent( "domready", App.init.bind( App ) );
