/*////////////////////////////////////////////////////////////////////////////////////////////////////
/// JAVASCRIPT FOR mcgills.ca ////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////*/

/*/ VARIABLES //////////////////////////////////////////////////////////////////////////////////////*/

/*/ END VARIABLES //////////////////////////////////////////////////////////////////////////////////*/

/*/ CLASSES ////////////////////////////////////////////////////////////////////////////////////////*/

/*/ END CLASSES ////////////////////////////////////////////////////////////////////////////////////*/

/*/ OPERATIONS /////////////////////////////////////////////////////////////////////////////////////*/
(function($) {
  var cache = [];
  // Arguments are image paths relative to the current page.
  $.preLoadImages = function() {
    var args_len = arguments.length;
    for (var i = args_len; i--;) {
      var cacheImage = document.createElement('img');
      cacheImage.src = arguments[i];
      cache.push(cacheImage);
    }
  }
})(jQuery);
/*/ END OPERATIONS /////////////////////////////////////////////////////////////////////////////////*/

/*/ DOMREADY  //////////////////////////////////////////////////////////////////////////////////////*/
$(function(){
	
	jQuery.preLoadImages('http://www.mcgills.ca/_new/nav/home_over.jpg', 'http://www.mcgills.ca/_new/nav/services_over.jpg', 'http://www.mcgills.ca/_new/nav/equipment_over.jpg', 'http://www.mcgills.ca/_new/nav/staff_over.jpg', 'http://www.mcgills.ca/_new/nav/contact_over.jpg');

	/*** NAVIGATION ***/
	$.each($('.nav img'), function(index, el){
		$(el).mouseover(function(){
			var source = $(el).attr('src');
			var arr = source.split('.');
			arr[arr.length - 2] = arr[arr.length - 2] + '_over';
			
			if($('body').attr('id') != $(el).attr('alt').toLowerCase()){
				var newSource = arr.join('.');
				$(el).attr('src', newSource);
			}
		});
		
		$(el).mouseout(function(){
			var source = $(el).attr('src');
			var arr = source.split('.');
			arr[arr.length - 2] = arr[arr.length - 2].replace('_over', '');
			
			if($('body').attr('id') != $(el).attr('alt').toLowerCase()){
				var newSource = arr.join('.');
				$(el).attr('src', newSource);
			}
		});
	});
	/*** /NAVIGATION ***/
	
	/*** CONTACT FORM ***/
	
	var submitContact = function(name, email, message){
		var dataString = 'name=' + name + '&email=' + email + '&message=' + message;
		var URL = $('#contact form').attr('action');
		var errors = '';
		
		$.post(URL, dataString, function(data){
			if(data.error){
				var ii = 0;
				var fadeErrors = function(){
					$('#contact-error').css('color', '#b00101');
					$('#contact-error').empty();
					$('#contact-error').css({'display':'inline', 'opacity': 0});
					$('#contact-error').append('&bull; ' + data.messages[ii]);
					$('#contact-error').fadeTo(500, 1).fadeTo(2000, 1).fadeTo(500, 0, function(){
						if(ii < data.messages.length){
							fadeErrors();
						}else{
							$('#contact-error').css({'display':'none', 'opacity':0}).empty();
						}
					});
					
					ii++;
				}
				
				fadeErrors();
				
			}else if(!data.error){
				$('#contact-error').css('color', '#2a4e09');
				$('#contact-error').empty();
				$('#contact-error').css({'display':'inline', 'opacity': 0});
				$('#contact textarea').css('color', '#828282');
				$('#contact textarea').val($('#contact textarea').attr('name'));
				$('#contact input[type=text]').css('color', '#828282');
				$('#contact input[type=text]').val($('#contact input[type=text]').attr('name'));
				$('#contact-error').append('&bull; Thank you, your message has been received.');
				$('#contact-error').fadeTo(500, 1).fadeTo(2000, 1).fadeTo(500, 0, function(){
					$('#contact-error').css({'display':'none', 'opacity':0}).empty();
				});
			}
			
		}, 'json');
	}
	
	$.ajaxSetup({
		cache:false
	});
	
	$('#goButton').mouseover(function(){
		var source = $(this).attr('src');
		var arr = source.split('.');
		arr[arr.length - 2] = arr[arr.length - 2] + '_over';
		
		var newSource = arr.join('.');
		$(this).attr('src', newSource);
	});
	
	$('#goButton').mouseout(function(){
		var source = $(this).attr('src');
		var arr = source.split('.');
		arr[arr.length - 2] = arr[arr.length - 2].replace('_over', '');
		
		var newSource = arr.join('.');
		$(this).attr('src', newSource);
	});
	
	$('#goButton').click(function(){
		submitContact($('input#contactName').val(), $('input#contactEmail').val(), $('textarea#contactMessage').val());
		return false;
	});
	
	$('#contact input[type=text]').focus(function(){		
		if($(this).val() == $(this).attr('name')){
			$(this).css('color', '#404040');
			$(this).val('');
		}
	});
	
	$('#contact input[type=text]').blur(function(){
		if($(this).val() == ''){
			$(this).css('color', '#828282');
			$(this).val($(this).attr('name'));
		}
	});
	
	$('#contact textarea').focus(function(){
		if($(this).val() == $(this).attr('name')){
			$(this).css('color', '#404040');
			$(this).val('');
		}
	});
	
	$('#contact textarea').blur(function(){
		if($(this).val() == ''){
			$(this).css('color', '#828282');
			$(this).val($(this).attr('name'));
		}
	});
	
	$('#contact-button').click(function(){
		$.scrollTo('max', 500);
		return false;
	});
	/*** /CONTACT FORM ***/
	
	/*** SLIDER ***/
	var setDots = function(){
		/*
$('#dots').empty();
		$('.slide').each(function(index){
			if(index == ($.currentSlide - 1)){
				var dot = '<img src="img/dot_full.jpg" class="dots" />';
			}else{
				var dot = '<img src="img/dot_empty.jpg" class="dots" />';
			}
			$('#dots').append(dot);
		});
*/
	}
	
	$.currentSlide = 1;
	
	$('#rightarrow').click(function(){
		if($.currentSlide < $('.slide').length){
			$('#slides').scrollTo($('#slide-' + ($.currentSlide + 1)), 1000, {axis:'x', easing:'easeOutSine', onAfter:setDots});
			$.currentSlide++;
		}else{
			$('#slides').scrollTo($('#slide-1'), 1000, {axis:'x', easing:'easeOutSine', onAfter:setDots});
			$.currentSlide = 1;
		}
		
		$('.slide-description').each(function(index, el){
			if($(el).attr('id') != ('slide-description-' + $.currentSlide)){
				$(el).fadeOut(1000);				
			}
		});
		
		/*
$('#slide-description-' + $.currentSlide).css({
			'display':'block',
			'opacity':0
		});
*/
		$('#slide-description-' + $.currentSlide).fadeIn(1000);
		
		return false;
	});
	
	$('#leftarrow').click(function(){
		if($.currentSlide > 1){
			$('#slides').scrollTo($('#slide-' + ($.currentSlide - 1)), 1000, {axis:'x', easing:'easeOutSine', onAfter:setDots});
			$.currentSlide--;
		}else{
			$('#slides').scrollTo($('#slide-' + $('.slide').length), 1000, {axis:'x', easing:'easeOutSine', onAfter:setDots});
			$.currentSlide = $('.slide').length;
		}
		
		$('.slide-description').each(function(index, el){
			if($(el).attr('id') != ('slide-description-' + $.currentSlide)){
				$(el).fadeOut(1000);				
			}
		});
		
		/*
$('#slide-description-' + $.currentSlide).css({
			'display':'block',
			'opacity':0
		});
*/
		$('#slide-description-' + $.currentSlide).fadeIn(1000);
		
		return false;
	});
	
	$('.slide-description').each(function(index, el){
		if($(el).attr('id') != 'slide-description-1'){
			$(el).fadeOut(1);
			/* $(el).css({'display':'none', 'opacity': 0}); */
		}/*
else{
			$(el).css('display', 'block');
		}
*/
	});
	
	//setDots();
	
	/*** /SLIDER ***/
	
	/*** SERVICE ***/
	$('.service-icon').click(function(){
		var iCon = $(this);
		iCon.parents('.service').children('.service-image').children('img').fadeOut(500, function(){
			iCon.parents('.service').children('.service-image').empty();
			iCon.parents('.service').children('.service-image').append('<img src="' + iCon.children('img').attr('src') + '" alt="" width="284" height="185" />');
			iCon.parents('.service').children('.service-image').children('img').fadeOut(0).delay(500).fadeIn(500);
		});
		
			//$('<img src="' + $(this).children('img').attr('src') + '" alt="" width="284" height="185" />').insertAfter($(this).parents('.service').children('.service-image').children('img')).fadeOut(0).delay(500).fadeIn(1000);
			//$(this).parents('.service').children('.service-image').attr('src', $(this).children('img').attr('src'));
			
			return false;
	});
	/*** /SERVICE ***/
});
/*/ END DOMREADY  //////////////////////////////////////////////////////////////////////////////////*/
