//Navigation Glide State
function initNavigationGlide(){
	var $nav = "nav";
    var $el, leftPos, newWidth, $mainNav = $("."+$nav);
    $mainNav.append("<li id='magic-line'></li>");
    var $magicLine = $("#magic-line");
    
    $magicLine
        .width($(".active").width())
        .css("left", $(".active a").position().left)
        .data("origLeft", $magicLine.position().left)
        .data("origWidth", $magicLine.width());
     
    $("."+$nav+" li").find("a").hover(function() {
        $el = $(this);
        leftPos = $el.position().left;
        newWidth = $el.parent().width();
        
        $magicLine.stop().animate({
            left: leftPos,
            width: newWidth
        });
    }, function() {
        $magicLine.stop().animate({
            left: $magicLine.data("origLeft"),
            width: $magicLine.data("origWidth")
        });    
    });
	 $magicLine
        .width($(".active").width())
}

var checksStatus = 0;
var lastCheck = "";

function toggleTable(e){
	
	if (checksStatus%2 == 0){ checksStatus++; $('.checks').css('color','#7e969b');

		$('.checks').css('background','url(http://188.65.112.252/~rosepart/_assets/_images/_general/check-off.png) no-repeat left center'); //Clear check boxes
		var original = e; //Store original element

		if ($(e).attr('class') == 'toggle'){ //If 'toggle' button used...
			
			e = ($(e).parent()).parent(); //Get Div > 'table' object
			($(e).children('.table-open')).toggle('blind',700, function() { checksStatus++; $('.checks').css('color','#108099'); }); //Toggle table open/close
			(($(e).children('.table-closed'))).children('.toggle').toggle(400); //Toggle top 'toggle' button
			lastCheck = ''; //Reset lastCheck
			
		} else if ($(e).attr('class') == 'checks') { //Else if 'checks' button used...
		
			
			
			e = ((($(e).parent()).parent()).parent()).parent(); //Get Div > 'table' object
			
			if ( lastCheck != $(original).attr('id') ){ //If the last check box is NOT the same as the one just clicked...
				if ( lastCheck == ''){ //If no previous box checked...
					$('.practices-content').css('display','none');
					$('#div_'+($(original).attr('id'))).css('display','block');
					($(e).children('.table-open')).toggle('blind',700, function() { checksStatus++; $('.checks').css('color','#108099'); }); //Toggle table open
				} else { //Else - don't toggle anything - just change content
					checksStatus++; $('.checks').css('color','#108099');
					$('.practices-content').css('display','none');
					$('#div_'+($(original).attr('id'))).css('display','block');
				}
				$(original).css('background','url(http://188.65.112.252/~rosepart/_assets/_images/_general/check-on.png) no-repeat left center'); //Change background - check box
				lastCheck = $(original).attr('id'); //Store current check box for future use as 'lastCheck'
			} else { //Else - if same checkbox had been clicked...
				lastCheck = ''; //Reset 'lastCheck'
				($(e).children('.table-open')).toggle('blind',700, function() { checksStatus++; $('.checks').css('color','#108099'); }); //Toggle table closed
				$(original).css('background','url(http://188.65.112.252/~rosepart/_assets/_images/_general/check-off.png) no-repeat left center'); //Change background - de-check box
			}
		}
	} 
}

var memberArray= new Array();
var practiceArray = new Array();
var dataGrid = new Array();
var currentCheck = '';

function initGrids(){
	
	$(".people-grid").children('div').map(function() { //For each..
		var child = $(this);
		if ( child.attr('class') != "clear" ) { 										   
			memberArray.push(child.attr('id')); //Add member to array
			practiceArray.push('['+child.attr('class')+']'); //Add member's practices to array
			dataGrid.push(child);
		}
    });
	
	for ( var i = 0; i < memberArray.length; i++ ){
		
		($(dataGrid[i]).append('<img src="http://188.65.112.252/~rosepart/_assets/_images/_general/grid-background.png" alt="overlay" style="width:100%; height:100%; display:none;" />'));
		($(dataGrid[i])).children('img').css('filter', 'alpha(opacity=60)');
	}

}

var activeMembers = new Array();
var pastActiveMembers = new Array();

function findMembers(practice, check){

	if ( currentCheck != practice){
	
		currentCheck = practice;
		$('.grid-checks').css('background','url(http://188.65.112.252/~rosepart/_assets/_images/_general/check-off.png) no-repeat left center'); //Clear check boxes
		$(check).css('background','url(http://188.65.112.252/~rosepart/_assets/_images/_general/check-on.png) no-repeat left center'); //Change background - check box
		$('.grid-checks > div').css('cursor','default');
		
		activeMembers=[];
		
		for ( var i = 0; i < memberArray.length; i++ ){ //For each member...
			var tempPracticeArray = ((practiceArray[i]).replace(/\[|\]/g, '')).split(','); //Store their practices in a tempoary array
			for ( var x = 0; x < tempPracticeArray.length; x++ ) { //For each of their practices...
				if (tempPracticeArray[x] == practice){ //If one matches the pratice in question
					activeMembers.push(i); //Store the member into array 'activeMembers'
				}
			}
		}
		
		for ( var i = 0; i < memberArray.length; i++ ){ //For all members
		
			($(dataGrid[i]).children('p')).css('display','none'); //Clear their name tag

			if ( ($.inArray(i, activeMembers)) == -1 ){ //If member isn't associated with practice...
			
				if ( pastActiveMembers == "" ){
					($(dataGrid[i]).children('img')).toggle('fade',300); //Darken
					($(dataGrid[i])).css('cursor','default');
				} else {
					if ( ($.inArray(i, pastActiveMembers)) != -1 ){
						($(dataGrid[i]).children('img')).toggle('fade',300);
						($(dataGrid[i])).css('cursor','default');
						
					}
				}
			} else { //Else...

				if ( pastActiveMembers != "" ){
					if ( ($.inArray(i, pastActiveMembers)) == -1 ){
						($(dataGrid[i]).children('img')).toggle('fade',300);
						($(dataGrid[i]).children('p')).css('display','block');
						($(dataGrid[i])).css('cursor','pointer');
					} else {
						($(dataGrid[i]).children('p')).css('display','block');
					}
				} else {
					($(dataGrid[i]).children('p')).css('display','block');	
				}
			}
		}

		pastActiveMembers = activeMembers; //Copy activeMembers
	
	} else {
		pastActiveMembers=[];
		currentCheck = ''; $('.grid-checks').css('background','url(http://188.65.112.252/~rosepart/_assets/_images/_general/check-off.png) no-repeat left center'); //Clear check boxes
		for ( var i = 0; i < memberArray.length; i++ ){
			if ( ($.inArray(i, activeMembers)) == -1 ){
			($(dataGrid[i]).children('img')).toggle('fade',200);
			}
			($(dataGrid[i]).children('p')).css('display','none');
			($(dataGrid[i])).css('cursor','pointer');
		}
		activeMembers=[];
	}
}

function toggleName(e){
	if (currentCheck == ""){
		$(e).children('p').toggle();
	}
}

jQuery.fn.exists = function(){return jQuery(this).length>0;}

function toggleMemberBio (e){
	
	if ( $(e).children('p').css('display') == 'block' ){
		var table = $('.table-open');
		var member = $(e).attr('id');
		if ($('.'+member).exists()) { //If bio exists...
			table.children('.member').css('display','none');
			table.children('.'+member).css('display','block');
			table.toggle('blind',500);
		}	
	}
}

function initTimeline(){
	
	$(".timeline").children('p').each(function() {
		(($(this).parent('.timeline')).children('.fill')).css('height', (210-$(this).height()));
  	});
	var scroll = $("#scroll");
	$(":range").rangeinput({
		onSlide: function(ev, step)  { scroll.css({left: -step}); $(".tooltip").css('display','none'); },
		progress: true,
		value: 1,
		change: function(e, i) {
			scroll.animate({left: -i}, "fast");
		},
		speed: 0
	});
}

this.randomQuote = function(){
	
	if ($('#quotes').length != 0){
	
	//var pause = 6000; // define the pause for each tip (in milliseconds) 
	var length = $("#quotes li").length; 
	var temp = -1;		
	this.getRan = function(){ var ran = Math.floor(Math.random()*length) + 1; return ran; };
	this.show = function(){
		var ran = getRan();
		while (ran == temp){ ran = getRan(); }; temp = ran;
		$("#quotes li").hide(50);	
		$("#quotes li:nth-child(" + ran + ")").slideDown(500);		
	};
	show(); setInterval(show,pause);
	
	}
};

$(document).ready(function(){
	
	initNavigationGlide();
	Cufon.replace('h1', { fontFamily: 'Georgia' });

	$(".checks").click(function() { toggleTable(this); });
	$(".toggle").click(function() { toggleTable(this); $("#content").css('height','auto'); });
	$(".grid-checks").click(function() { findMembers(this.id, this); });
	$(".people-grid > div").mouseover(function(){ toggleName(this); });
	$(".people-grid > div").mouseout(function(){ toggleName(this); });
	$(".people-grid > div").click(function(){ toggleMemberBio(this); });

	initGrids();
	$(".rangeInput").attr('max',((((($("#scroll").children('div')).length)/2) * ((($("#scroll").children('div')).width())+20))-510));
	initTimeline(); 
	$(".handle").attr('title','Drag to move timeline'); $(".handle").tooltip();
	
	if (window.location.hash){ $("#"+(window.location.hash).substring(1)).click(); 
	$("."+(window.location.hash).substring(1)).css('display','block'); $('.table-open').css('display','block');
	}
	
	randomQuote();
	
	$(".scrollable").scrollable({ vertical: true, mousewheel: true, next: '.next-btn', prev: '.prev-btn'});
	
	$(".people-grid > div").click(function(){
		var tableH = (($("."+[this.id]).offset()).top) + $("."+[this.id]).outerHeight();
		if ( tableH > (($("#footer").offset()).top) ){
			$("#content").css('height',(tableH-80)+'px');
		}
	});
	

});
