window.addEvent('domready', function(){
    $('browserNote').setOpacity(.4);
    
    slideMenu();
    
    var images = new Array();
    photos.each(function(photoData){
        var path = 'img/' + photoData[0];
        new Asset.image(path, {
            'onload': function(image){
                loaded[path] = image;
            }
        });
    });
});

window.addEvent('load', resizeShadow);

var overlayIndex = 0;

var loaded = new Hash();

var photos = new Array(
    new Array('group09.jpg',
              '',
              '',
              '' ),
    new Array('gStace.jpg',
              'Brian Bruchman',
              '',
              ''),
    new Array('gildonPopped.jpg',
              'Jessica McGinley',
              'http://www.popwreckoning.com',
              'PopWreckoning'
             ),
    new Array('joshPopped.jpg',
              'Jessica McGinley',
              'http://www.popwreckoning.com',
              'PopWreckoning'
             ),
    
    new Array('Gildon_20090109a.jpg',
              'Kate Bracaglia',
              'http://www.phrequency.com/East_Hundred__Johnny_Brendas.html?next=1&index=18#photo',
              'Phrequency'
             ),
    
    new Array('Gildon_20090109b.jpg',
              'Kate Bracaglia',
              'http://www.phrequency.com/East_Hundred__Johnny_Brendas.html?next=1&index=20#photo',
              'Phrequency'
             ),
    new Array('band_20081121_1.jpg',
              'John Covert',
              '',
              ''
             ),
    new Array('band_20081121_2.jpg',
              'John Covert',
              '',
              ''
             ),
    new Array('daveStacey.jpg',
              'John Covert',
              '',
              ''
             ),
    new Array('girard_20081121.jpg',
              'John Covert',
              '',
              ''
             ),
    new Array('joshCodyMatt_20081121.jpg',
              'John Covert',
              '',
              ''
             ),
    new Array(
        'singing_20081121.jpg',
        'John Covert',
        '',
        ''
    ),
    new Array(
        'staceyDave_bw.jpg',
        'John Covert',
        '',
        ''
    )
);
var photoIndex = 0;                          


function slideMenu(){
    var menu = $('topMenu');
    var logo = $('logo');

    logo.setOpacity(0);
    var fx = new Fx.Morph(logo, {'duration': 2000})
    fx.start({ 'opacity': .7 });

    var w = window.getWidth();
    var h = window.getHeight();

    var left = Math.floor((w - menu.getWidth()) / 2);
    menu.setStyles({'left': left})
        .setOpacity(.7);

    if (menu){
	fx = new Fx.Morph(menu, {'duration': 2000
                                     });
	fx.start({'top': '0px'
                 });
    }

    var divs = new Array();

    var blueMax = 150;
    var blueMin = 50;
    
    var h = window.getScrollHeight();

    while (divs.length < 18){
        var blue = Math.max(blueMin, Math.floor(Math.random() * blueMax));
        var green = Math.floor(blue - Math.random() * blueMax); // always less than blue
        var red = Math.floor(green / 2);
        var color = new Color([red, green, blue]);

        var width = Math.floor(Math.max(50, Math.random() * w / 3));

        var left = Math.min(Math.random() * w, w - width);

        var overlay = new Element('div')
            .setOpacity( Math.random() / 1.7)
            .setStyles({width: width,
                        left: left,
                        zIndex: 2,
                        // backgroundColor fucks IE8                                                                             
                        'background-color': color,
                        height: h,
                        position: 'absolute',
                        top: 0
                       });

        $(document.body).adopt(overlay);
        divs.push(overlay);
    }


    (function(){
        var h = window.getScrollHeight();

        var blue = Math.max(blueMin, Math.floor(Math.random() * blueMax));
        var green = Math.floor(blue - Math.random() * blueMax); // always less than blue
        var red = Math.floor(green / 2);
        var color = new Color([red, green, blue]);

        var width = Math.floor(Math.max(50, Math.random() * w / 3));
        var left = Math.min(Math.random() * w, w - width);

        var overlay = divs[overlayIndex];
        overlayIndex = (++overlayIndex % divs.length);
        
        fx = new Fx.Morph(overlay, {'duration': 10000
                                   });
        fx.start({'opacity': Math.random() / 1.7,
                  left: left,
                  width: width,
                  'background-color': color,
                  height: h
                 });
        
    }).periodical(2500);
    

/*    (function() {
	var index = Math.ceil(Math.random() * 6);
	if (index == 0) return;

	// skip main image
	var count = 0;
	for(var id in imgs){
	    if (count == index){
		var img = $(id);
	    }
	    count++;
	}
	
	var width = img.getStyle('width');
	var size = (1 + (Math.random() * .4) - .2) * width.substring(0, width.length - 2);
	var op = (size / 600) * .4;
	var maxX = window.getSize().x - size;
	var maxY = window.getSize().y - size;

	var x = Math.random() * maxX;
	var y = Math.random() * maxY;

	img.setStyle('visibility', 'visible');

	var fx2 = new Fx.Morph(img, {'duration': 5000});
	fx2.start({'width': size,
		       'height': size,
		       'top': y,
		       'left': x,
		       'opacity': op
		       });

    }).periodical(6000);
*/

}

function loadContent(name){
    var content = $('contentContent');
    var content2 = $('content2');
    var contentShadow = $('contentShadow');

    var url2 = null;
    slideShow(false);

    switch(name){
    default:
    case 'video':
	var url = 'video.php';
	var w = 410;
	var h = 400;
	break;
    case 'songs':
	var w = 410;
        var h = 380;

	var url = 'songs.php';
	break;
    case 'band':
	var w = 400;

	var url = 'band.php';
	break;
    case 'shows':
	var w = 400;

	var url = 'shows.php';
	break;
    case 'photos':
	var w = 500;
        var h = 400;

	// var url = 'photos.php';
//	var url2 = 'photos2.php';

        content.empty();
        content.adopt(new Element('div')
                      .setStyle('margin-bottom', 150)
                      .adopt(new Element('img', {'id': 'photoImage'}))
                     );

        slideShow(true);

	break;
    case 'news':
	var url = 'news.php';
	break;
    case 'friends':
        var h = 500;

	var url = 'friends.php';
	break;
    case 'contact':
        var h = 500;
        var url = 'contact.php';
        break;
    }

    resizeShadow(w, h);

    if (url){
        url += '?c=1';
        var req = new Request({'url': url,
			       'onComplete': function(response){
	                           content.set('html', response);
	                           

                               }
                              });
    req.get();
    }

    if (url2){
	url2 += '?c=1';
	var req2 = new Request({'url': url2,
				    'onComplete': function(response){
	    content2.set('html', response);
	}
	});
	req2.get();
    }
    else {
	content2.empty();
    }

	
}

function resizeShadow(w, h){
    var content = $('contentContent');
    var content2 = $('content2');
    var contentShadow = $('contentShadow');

    /*    if (Browser.Engine.trident){
	contentShadow.setStyle('display', 'none');
	return;
	}*/

    contentShadow.setOpacity(.6);
    
    if (!w){
	contentShadow.morph({
	    'width': content.offsetWidth
	});
    }
    else {
	contentShadow.morph({
	    'width': w
	});
    }

    if(!h){
	contentShadow.morph({'height': content.offsetHeight });
    }
    else {
	contentShadow.morph({'height': h });
    }

}


var slider = function(){
    var image = $('photoImage');

    image.setStyle('width', 500);

    var fx = new Fx.Morph(image, {duration: 1000});
    var fx2 = new Fx.Morph(image);
    fx.start({'opacity': 0})
        .chain(function(){
            image.removeEvents('load');
            var path = 'img/' + photos[photoIndex][0];

            if (loaded.has(path)){
                image.src = path;
                
                var loadedImage = loaded.get(path);
                var width = 500;
                var height = loadedImage.height * 500 / loadedImage.width;

                resizeShadow(width, height + 50);
                photoIndex = (photoIndex + 1) % photos.length;
                fx2.start({'opacity': 1});

            }
            else {
                image.addEvent('load', function(){
                    
                    var width = 500;
                    var height = image.height * 500 / image.width;

                    resizeShadow(image.width, image.height + 50);
                    fx2.start({'opacity': 1});
                });

                image.src = 'img/' + photos[photoIndex][0];
                photoIndex = (photoIndex + 1) % photos.length;                
            }

        });
    
}

var sliderPeriod;


function slideShow(doStart){
    if (!doStart){
        if (sliderPeriod){
            $clear(sliderPeriod);
        }
        return;
    }

    photoIndex = 0;

    slider();
    sliderPeriod = slider.periodical(5000);
}