var xmlFeed = null;
var currentSlide = 0;
var nextSlide = 0;
var maxSlides = 0;
var transitioning = false;
var currentCategory = null;

var slideDuration = 5000;

var timer = {

  setup: function() {
    this.cancel();
    var self = this;
    this.timeoutID = window.setTimeout(function() {
    	if(nextSlide + 1 < maxSlides){
			$(".next").trigger("click");
		} else {
			currentCategory.parent().next().find('a').trigger("click");
		}
	}, slideDuration);
  },

  cancel: function() {
    if(typeof this.timeoutID == "number") {
      window.clearTimeout(this.timeoutID);
      delete this.timeoutID;
    }
  }
};


function getCurrentGallery(currentPage){
	
	$(xmlFeed).find('page[name="'+ currentPage +'"]').each(function(){
		
		currentSlide = 0;
		nextSlide = 0;
		var images = $(this).find('images');
		var imageSet = "";
		maxSlides = images.find('img').length;
		images.find('img').each(function(i){
			imageSet += "<div class='slide' index='"+i+"'><img src='"+$(this).attr("src")+"'></div>";
		});

		$(".slideshow").hide().html('<div class="slides">' + imageSet + '</div>').fadeIn();
		$('.slides').find('.slide:first').addClass('current');
		updateCounter();
		
		updateCaption($(this));
		
		timer.setup();	
		
	});
}

function updateCounter(){
	
	$('body').find('.counter').html("Image " + ( nextSlide + 1 ) + " of " + ( maxSlides  ) );
	updateHref();
}

function updateCaption(page){

	$('body').find('.caption').empty();
	if(page.find('title').text() && page.find('text').text()){
	    var title   = '<h4>'+ page.find('title').text() + '</h4>';
	    var caption = '<p>'+ page.find('text').text() + '</p>';
		$('body').find('.caption').html( title + caption ).fadeIn();
	}
}

function updateHref() {
	
	$('body').find('.link').empty();
	var src =$('.slides').find('.slide:eq('+nextSlide+')').find('img').attr('src');
	var suffix = src.search("\.(com|org|net|mil|edu|COM|ORG|NET|MIL|EDU)+\.");
	if( suffix > 0 ){
		var path = src.split('/');
		var link =  path[path.length-1].split('_');
		suffix = link[1].search("\.(com|org|net|mil|edu|COM|ORG|NET|MIL|EDU)+\.");
		if(suffix > 0) {
			var href = link[1].substring(0, suffix + 4); 
			$('body').find('.link').html( '<a href="http://' + href + '" target="_blank">'+ href +'</a>');
		}
	}
}

function updateDrawer(){
	timer.cancel();
	if(nextSlide < currentSlide ){
		$('.slides').find('.slide:eq('+nextSlide+')').css({"left":-452}).animate({"left":0}, 500, function(){ $(this).addClass('current'); });
		$('.slides').find('.slide:eq('+currentSlide+')').animate({"left":452}, 500, function(){ 
			$(this).removeClass('current'); 
			currentSlide = nextSlide; 
			transitioning = false; 
			timer.setup(); 
		});
	} else {
		$('.slides').find('.slide:eq('+nextSlide+')').css({"left":452}).animate({"left":0}, 500, function(){ $(this).addClass('current');  });
		$('.slides').find('.slide:eq('+currentSlide+')').animate({"left":-452}, 500, function(){ 
			$(this).removeClass('current'); 
			currentSlide = nextSlide; 
			transitioning = false; 
			timer.setup(); 
		});	
	}
	updateCounter();
}

$(document).ready(function() {
   
   var adamBioShowing = false;
   var joyceBioShowing = false;
   $("#aboutUs").fadeIn("slow");
  
    $("#joycesHitState").click(function() {
  	  if( joyceBioShowing ){
     
     	 joyceBioShowing = false;
     	 $("#joycesBio").fadeOut("slow");
     	
      } else {
      
     	joyceBioShowing = true;
  	    $("#joycesBio").fadeIn("slow");
	    $("#adamsBio").fadeOut("slow");
	  }
   });
  
   
   $("#adamsHitState").click(function() {
     
     if( adamBioShowing ){
     
     	 adamBioShowing = false;
     	 $("#adamsBio").fadeOut("slow");
     	
     } else {
     	adamBioShowing = true;
	    $("#adamsBio").fadeIn("slow");
    	$("#joycesBio").fadeOut("slow");
     }
     
   });
  
   
   $("#aboutUs").find("p").each(function(i) {
   
   		$(this).mouseover(function() { 
    		$("#joycesBio").fadeOut("slow");
    		$("#adamsBio").fadeOut("slow");
		});
		
   });
   
 
   $("#joycesBio").click(function() {
   
     $("#joycesBio").fadeOut("slow");

   });
   
   $("#adamsBio").click(function() {
   
     $("#adamsBio").fadeOut("slow");

   });
 
   //clear footer sign up box on focus
   $("#sign_up_fld").focus(function(){
   	 $(this).attr({"value":""});
   });
   
   
   //init nav slide marker positioning for rollovers
   $("#navigation").find("img[name]").each(function(i) {
    
    $(this).mouseover(function() {
     	$("#marker").stop( );
     	var newX = $(this).offset().left - $("#container").offset().left + Math.floor( ( $(this).width() - $("#marker").width() ) / 2 ) ;
     	$("#marker").animate({ left: newX }, 'fast');
     	
     });
   });
   
   
  //init gallery on portfolio pages 
  $('body').find("#gallery").each(function(){
  	
  	//get XML feed
  	$.ajax({
        type: "GET",
		url: "xml_work.php",
		dataType: "xml",
		success: function(xml) {
			xmlFeed = $(xml).find('site').find('section[id="PORTFOLIO"]');
			//set first item (CATEGORIES_Advertising)
			$("#main").find('a[href="#/CATEGORIES_Advertising"]').trigger('click');
		}
	});
	
	//next button click handler
	$('.next').click(function(){
		
		if(!transitioning){
			transitioning = true;
			nextSlide = currentSlide + 1 < maxSlides ? currentSlide + 1 : 0;
			updateDrawer();
		}
		return false;
	});
    
    //back button click handler
    $('.prev').click(function(){
    	if(!transitioning){
			transitioning = true;
			nextSlide = currentSlide - 1 > -1 ? currentSlide - 1 : maxSlides - 1;
			updateDrawer();
		}		
		return false;
	});
	
  }); 
  
  //init portfolio category lists
  $(".workList").find('a').each(function(){
   	 $(this).click(function(){
   	    
   	    currentCategory = $(this);
   	    $('#content').find('.selected').removeClass('selected');
   	 	$(this).parent().addClass('selected');
   	 	
   	 	//on click, init corresponding gallery 
	   	getCurrentGallery($(this).attr('href').replace("#/", ""));
     });
  });
   
  
  //ipod/ipad slide gestures
  var slider = document.getElementById("gallery");
  var startingXPos = 0;
  var endingXPos = 0;
  var distance = 0;
  slider.ontouchstart = function(e){
	  //e.preventDefault();
	  //only do something when touching w/ 1 finger
	  if(e.touches.length == 1){
		  var touch=e.touches[0];
		  startingXPos = touch.pageX;
	  }
  }
  
  slider.ontouchmove = function(e){
	  e.preventDefault();
	  //only do something when touching w/ 1 finger
	  timer.cancel();
	  if(e.touches.length == 1){
		  var touch=e.touches[0];
		  endingXPos = touch.pageX;
		  distance = endingXPos - startingXPos;
		  
	  }
  }
  
  slider.ontouchend = function(e){
	  
	  
	  if(distance < 0){
		  
		 $(".next").trigger("click");
		  
	  } else if(distance > 0){
		  
		$(".prev").trigger("click");
		  
	  } else {
		  //no change		
	  }
	  
	  startingXPos = 0;
	  endingXPos = 0;
	  distance = 0;
  }
   

 });

if( document.images )
{
	preload_bg = new Image(978,628); 
	preload_bg.src = "images/_global/background.png";
	
	preload_nav1 = new Image(59,36); 
	preload_nav1.src = "images/_global/nav-about-us.png";
	
	preload_nav2 = new Image(62,36); 
	preload_nav2.src = "images/_global/nav-services.png";
	
	preload_nav3 = new Image(63,36); 
	preload_nav3.src = "images/_global/nav-portfolio.png";
	
	
	preload_nav4 = new Image(48,36); 
	preload_nav4.src = "images/_global/nav-kudos.png";
	
	preload_nav5 = new Image(56,36); 
	preload_nav5.src = "images/_global/nav-about-it.png";
	
	preload_nav6 = new Image(33,36); 
	preload_nav6.src = "images/_global/nav-link.png";
	
	preload_nav7 = new Image(53,36); 
	preload_nav7.src = "images/_global/nav-contact.png";
	
	preload_nav8 = new Image(36,36); 
	preload_nav8.src = "images/_global/nav-now.png";
	
	preload_nav9 = new Image(10,36); 
	preload_nav9.src = "images/_global/nav-end.png";
	
	preload_nav10 = new Image(12,31); 
	preload_nav10.src = "images/_global/nav-begin.png";
	
	preload_nav11 = new Image(49,31); 
	preload_nav11.src = "images/_global/nav_marker.png";
	
	
	
}
			
