var sopaSite = {

	pageWidth : 500,
	pages : ['cd1-24','cd1-23','cd1-22','cd1-21','cd1-20','cd1-19','cd1-18','cd1-17','cd1-16','cd1-15','cd1-14','cd1-13','cd1-12','cd1-11','cd1-10','cd1-09','cd1-08','cd1-07','cd1-06','cd1-05','cd1-04','cd1-03','cd1-02','cd1-01','Home','cd2-01','cd2-02','cd2-03','cd2-04','cd2-05','cd2-06','cd2-07','cd2-08','cd2-09','cd2-10','cd2-11','cd2-12','cd2-13','cd2-14','cd2-15','cd2-16','cd2-17','cd2-18','cd2-19','cd2-20'],
	
	elList : function ( parent )
	{
	    var string = [];
		var he = sopaSite.hiddenEls;
		
	    for (var i = 0, n = he.length; i < n; i++) {
	        string.push(parent + ' ' + he[i]);
	    }
	    return string.join(', ');
	},

    changePage : function()
    {		
		var nav = $(this).attr('title') == 'Home' ? $('#n-zero a') : $(this);
		var p = nav.attr('innerHTML');
		var Win = getSize();
		var pos = sopaSite.pages.indexOf(p);
		var slide = - (pos * 500 - (Win.width/2 - 250));		
		var cp = sopaSite.curpage;
		var tl = sopaSite.topLogo;
		
		
        if (cp != '') $('#' + cp.attr('innerHTML').toLowerCase() + ' .hiddenEl').hide();
		$('#' + p.toLowerCase() + ' .hiddenEl').show();

		if ( tl.css('display') == 'none' && p != 'Home')
		{
			tl.show();
		}
		else if ( p == 'Home' )
		{
			tl.show();			
		}
		
		$('#content').animate({left: slide}, 600);
		
		nav.addClass('cur');		
		if (cp != '' ) cp.removeClass('cur');
		sopaSite.curpage = nav;
		return false;
    },

	build : function()
	{
		$('#nav').show();
		$('#zero .hiddenEl').show();
		$('body, #schedule, #overview').css('overflow','hidden');

	    sopaSite.curpage = $('#n-zero a').addClass('cur');


		var Win = getSize();
		var pos = 0;
		var slide = - (pos * 500 - (Win.width/2 - 250));
		
		// Cache positions and DOM elements
		sopaSite.leftpos = slide;
		sopaSite.topLogo = $('#toplogo>a>img');
		
		// Where it slides to on OnLoad 
        $('#content').css({'left': (slide - 12000) + 'px'});
		sopaSite.curGallery = $('#imgnav li:first-child a').addClass('cur');
		$('#imgnav li:last-child').addClass('imgnavbot');

		// Event handlers:
		$('#toplogo a, #nav a').click(sopaSite.changePage);
		
	
		$('a.biopics').hover(
			function(){
				var instruct = $('#bio-instruct');
				if (instruct) instruct.hide();
				$('div.bio').hide();
				$('#bio-' + $(this).attr('id')).show();
			}, function(){
				$('div.bio').hide();
				$('#bio-instruct').show();
				
			}
		);
		$('a.biopics, #fellows a').click(
			function(){
				var href = $(this).attr('href');
				if(href != '#')
				{
					var opt = 'toolbar = yes, location = yes, directories = no, '+
					'status = yes, menubar = yes, scrollbars = yes, copyhistory = no, resizable = yes';

					var popped = window.open(href, 'popupwindow',opt);

					popped.focus();
					return false;
				}

			}
		);
		
		$('div.commentlist').innerfade({ speed: 750, timeout: 9000, containerHeight: '310px'});
		
		$('#wn-next').click(function(){
			sopaSite.scrollWeeks('next');
			return false;
		});
		$('#wn-back').click(function(){
			sopaSite.scrollWeeks('back');
			return false;
		});
		
		$('#comments-next').click(function(){
			$.innerfade.next(sopaSite.innerFadeElements, sopaSite.innerFadeSettings, sopaSite.innerFadeCurrent, sopaSite.innerFadeLast);
			return false;
		});
		
/*        function(){
		    var cur = sopaSite.curpage;
            var nav = $('#n-zero a');
            
            var navTxt = 'Home';

			var Win = getSize();
			var pos = sopaSite.pages.indexOf(navTxt);
			var slide = - (pos * 500 - (Win.width/2 - 250));

			nav.addClass('cur');
			if (cur != '' ) cur.removeClass('cur');

	        sopaSite.changePage(navTxt);
			sopaSite.curpage = nav;
			
	        $('#content').animate({left: slide}, 500);

		    return false;
        }*/
        $('#images a').click(function(){
            var cur = sopaSite.curGallery;
            var next = $(this);
            if(next != cur)
            {
                if (cur) cur.removeClass('cur');
                sopaSite.curGallery = next.addClass('cur');
            }
        });

		$('#links a').click(function(){

			var opt = 'toolbar = yes, location = yes, directories = no, '+
			'status = yes, menubar = yes, scrollbars = yes, copyhistory = no, resizable = yes';

			var popped = window.open($(this).attr('href'), 'popupwindow',opt);

			popped.focus();
			return false;
		});

		$(window).resize(function(){
			var Win = getSize();
			var pos = sopaSite.pages.indexOf(sopaSite.curpage.attr('innerHTML'));
			var slide = ((Win.width/2 - 250));
	        $('#content').animate({left: slide - pos * 500}, 100);
			$('body').css('background-position', slide + 'px 90px');

			sopaSite.leftpos = slide;

		});
	}
}





$.fn.innerfade = function(options) {
	return this.each(function(){ 	
		
		var settings = {
			speed: 'normal',
			timeout: 2000,
			type: 'sequence',
			containerheight: 'auto',
			autostart: 1
		}
		
		if(options)
			$.extend(settings, options);
		
		var elements = $(this).children().get();
	
		if (elements.length > 1) {
	
			$(this).css('height', settings.containerheight);
			
			for ( var i = 0, n = elements.length; i < n; i++ ) {
				$(elements[i]).css('z-index', n - i).css('position', 'absolute');
				$(elements[i]).hide();
			}
		
			if ( settings.type == 'sequence' ) {
			    if(settings.autostart)
			    {
			        sopaSite.innerFadeSettings = settings;
			        sopaSite.innerFadeElements = elements;
			        sopaSite.innerFadeCurrent = 1;
			        sopaSite.innerFadeLast = 0;
			        
    				$(elements[0]).show();
			    }
			}
			else if ( settings.type == 'random' ) {
				if(settings.autostart)
				{
				    setTimeout(function(){
    					do { current = Math.floor ( Math.random ( ) * ( elements.length ) ); } while ( current == 0 )
    					$.innerfade.next(elements, settings, current, 0);
    				}, settings.timeout);
				}
				$(elements[0]).show();
			}
			else {
				alert('type must either be \'sequence\' or \'random\'');
			}
		}		
	});
};


$.innerfade = function() {}
$.innerfade.next = function (elements, settings, current, last) {

	$(elements[last]).fadeOut(settings.speed);
	$(elements[current]).fadeIn(settings.speed);
	
	if ($.browser.safari && last != 0) setTimeout(function (){$('#comments div.block').css({overflow: 'visible'})}, settings.speed + 1);
	

	var currentimg = current;
	
	while ( currentimg > 6 )
	{
		currentimg = currentimg - 7;
	}

	sopaSite.currentComment = current;
	
	if(sopaSite.curpage.attr('innerHTML') == 'Comments')
	{
		$('body').css('background', 'transparent url(img/bgwc-' + currentimg + '.jpg) ' + sopaSite.leftpos  + 'px 90px no-repeat')
	}

	if ( settings.type == 'sequence' ) {
		if ( ( current + 1 ) < elements.length ) {
			current = current + 1;
			last = current - 1;
		}
		else {
			current = 0;
			last = elements.length - 1;
		}
	}
	else if ( settings.type == 'random' ) {
		last = current;
		while (	current == last ) {
			current = Math.floor ( Math.random ( ) * ( elements.length ) );
		}
	}
	else {
		alert('type must either be \'sequence\' or \'random\'');
	}
	sopaSite.innerFadeSettings = settings;
    sopaSite.innerFadeElements = elements;
    sopaSite.innerFadeCurrent = current;
    sopaSite.innerFadeLast = last;
}

$('a').click(function(){
	this.blur();
});

Array.prototype.indexOf = function( v, b, s ) {
	for( var i = +b || 0, l = this.length; i < l; i++ ) {
		if( this[i]===v || s && this[i]==v ) { return i; }
 	}
 	return -1;
};

function getSize() {
  var myWidth = 0, myHeight = 0;
  if( typeof( window.innerWidth ) == 'number' ) {
    //Non-IE
    myWidth = window.innerWidth;
    myHeight = window.innerHeight;
  } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
    //IE 6+ in 'standards compliant mode'
    myWidth = document.documentElement.clientWidth;
    myHeight = document.documentElement.clientHeight;
  } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
    //IE 4 compatible
    myWidth = document.body.clientWidth;
    myHeight = document.body.clientHeight;
  }
  return {width: myWidth, height: myHeight};
}

$(document).ready(function() {
	sopaSite.build();
});


var bgsleight	= function() {
	
	function addLoadEvent(func) {
		$(document).ready(function() {
			func();
		});
/*		var oldonload = window.onload;
		if (typeof window.onload != 'function') {
			window.onload = func;
		} else {
			window.onload = function() {
				if (oldonload) {
					oldonload();
				}
				func();
			}
		}*/
	}
	
	function fnLoadPngs() {
		var rslt = navigator.appVersion.match(/MSIE (\d+\.\d+)/, '');
		var itsAllGood = (rslt != null && Number(rslt[1]) >= 5.5);
		for (var i = document.all.length - 1, obj = null; (obj = document.all[i]); i--) {
			if (itsAllGood && obj.currentStyle.backgroundImage.match(/\.png/i) != null) {
				fnFixPng(obj);
				obj.attachEvent("onpropertychange", fnPropertyChanged);
			}
		}
	}

	function fnPropertyChanged() {
		if (window.event.propertyName == "style.backgroundImage") {
			var el = window.event.srcElement;
			if (!el.currentStyle.backgroundImage.match(/x\.gif/i)) {
				var bg	= el.currentStyle.backgroundImage;
				var src = bg.substring(5,bg.length-2);
				el.filters.item(0).src = src;
				el.style.backgroundImage = "url(x.gif)";
			}
		}
	}

	function fnFixPng(obj) {
		var bg	= obj.currentStyle.backgroundImage;
		var src = bg.substring(5,bg.length-2);
		obj.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "', sizingMethod='scale')";
		obj.style.backgroundImage = "url(x.gif)";
	}

	return {
		
		init: function() {
			
			if (navigator.platform == "Win32" && navigator.appName == "Microsoft Internet Explorer" && window.attachEvent) {
				addLoadEvent(fnLoadPngs);
			}
			
		}
	}
	
}();

bgsleight.init();