

/**
 * jQuery jqGalScroll Plugin
 * Examples and documentation at: http://benjaminsterling.com/jquery-jqgalscroll-photo-gallery/
 *
 * @author: Benjamin Sterling
 * @version: 2.1
 * @copyright (c) 2007 Benjamin Sterling, KenzoMedia
 * @extendThanks Koesmanto Bong http://www.koesbong.com/
 *		Koes put a fire under my butt to improve this plugin
 *		and when I took too long he took what I had and added
 *		the horizontal scroll and in turn I ripped it from his
 *		hands and made it better :)
 *
 * Dual licensed under the MIT and GPL licenses:
 *   http://www.opensource.org/licenses/mit-license.php
 *   http://www.gnu.org/licenses/gpl.html
 *   
 * @requires jQuery v1.2.1 or later
 * @optional jQuery Easing v1.2
 *
 * @name jqGalScroll
 * @example $('ul').jqGalScroll();
 * 
 * @Semantic requirements:
 * 				The structure fairly simple; the structure should consist
 * 				of a ul > li > img structure.
 * 
 * 	<ul>
 *		<li><img src="common/img/dsc_0003.thumbnail.JPG"/></li>
 *		<li><img src="common/img/dsc_0012.thumbnail.JPG"/></li>
 *	</ul>
 *
 * @param String ease
 *					refer to http://gsgd.co.uk/sandbox/jquery.easing.php for values
 * 
 * @example $('#gallery').jqGalScroll({speed:1000});
 
 * @param String speed
 * 					fast, slow, 1000, ext..
 * 
 * @example $('#gallery').jqGalScroll({speed:1000});
 * 
 * @param String height
 * 					the default height of your wrapper
 * 
 * @example $('#gallery').jqGalScroll({height:490});
 * 
 * @param String titleOpacity
 * 					the opacity of your title bar (if present)
 * 
 * @example $('#gallery').jqGalScroll({titleOpacity:.70});
 * 
 * @param String direction 
 *					vertical horizontal diagonal
 * 
 * @example $('#gallery').jqGalScroll({direction:'vertical'});
 * 			
 */
(function($) {
	$.fn.jqGalScroll = function(options){
		return this.each(function(i){
			var el = this
			el.curImage = 0;
			el.jqthis = $(this).css({position:'relative'});
			el.jqchildren = el.jqthis.children();
			el.opts = $.extend({}, jqGalScroll, options);
			el.index = i;
			el.totalChildren = el.jqchildren.size();
			var width,height;
			
			switch(el.opts.direction){
				case 'horizontal':
					width = el.totalChildren *el.opts.width;
					height = el.opts.height;
					break;
				case 'vertical':
					width = el.opts.width;
					height = el.totalChildren *el.opts.height;
					break;
				default:
					width = el.totalChildren *el.opts.width;
					height = el.totalChildren *el.opts.height;
					break;
			};
			
			el.container = $('<div id="jqGS'+i+'" class="jqGSContainer">').css({position:'relative'});
			el.ImgContainer = $('<div class="jqGSImgContainer" style="height:'+el.opts.height+'px;position:relative;overflow:hidden">')
								.css({height:el.opts.height,width:el.opts.width,position:'relative',overflow:'hidden'});
			el.jqthis.css({height:height,width:width});
			
			el.jqthis.wrap(el.container);
			el.jqthis.wrap(el.ImgContainer);
			el.pagination = $('<div class="jqGSPagination">');
			el.jqthis.parent().parent().append(el.pagination);
			var jqul = $('<ul>').appendTo(el.pagination);
			var pos = {x:0,y:0};
			
			el.jqchildren
			.each(function(j){
				var selected = '';
				if(j == 0) selected = 'selected';
				
				var $a = $('<a href="#'+(j)+'" class="'+selected+'">'+(j+1)+'</a>').click(function(){
					var href = this.index;//href.replace(/^.*#/, '');
					el.pagination.find('.selected').removeClass('selected');
					$(this).addClass('selected');
					var params = {};
					if( el.opts.direction == 'diagonal'){
						params = {right:(el.opts.width*href),bottom:(el.opts.height*href)}
					}
					else if( el.opts.direction == 'vertical'){
						params = {bottom:(el.opts.height*href)}
					}
					else if( el.opts.direction == 'horizontal'){
						params = {right:(el.opts.width*href)}
					};
					
					el.jqthis.stop().animate(params,el.opts.speed, el.opts.ease);
					index = href;
					return false;
				});

				var n = $a.get(0);

				n.index = j;

				$('<li>').appendTo(jqul).append($a);

				if( el.opts.direction == 'diagonal'){
					pos.x = j * el.opts.width;
					pos.y = j * el.opts.height;
				}
				else if( el.opts.direction == 'horizontal'){
					pos.x = j * el.opts.width;
				}
				else if( el.opts.direction == 'vertical'){
					pos.y = j * el.opts.height;
				};

				var jqchild = $(this).css({height:el.opts.height,width:el.opts.width,position:'absolute',left:pos.x, top:pos.y});

				var jqimg = jqchild.find('img').hide()
				
				if(jqimg.parent().is('a')){
					var p = jqimg.parent();
					jqimg.get(0).linkHref = p.attr('href');
					p.remove();
					jqimg.appendTo(jqchild);
				};

				jqimg.click(function(){
					var next = n.index + 1;
					if((n.index + 1) == el.totalChildren ){
						el.pagination.find('[href$=#0]').click();
					}
					else{
						el.pagination.find('[href$=#'+next+']').click();
					}
				});

				var $loader = $('<div class="jqGSLoader">').appendTo(jqchild);
				var $titleHolder = $('<div class="jqGSTitle">').appendTo(jqchild).css({opacity:el.opts.titleOpacity}).hide();
				var image = new Image();
				image.onload = function(){
					image.onload = null;
					$loader.fadeOut();
					jqimg.css({marginLeft:-image.width*.5,marginTop:-image.height*.5,position:'absolute',left:'50%',top:'50%'}).fadeIn();
					var alt = jqimg.attr('alt');
					if(typeof alt != 'undefined'){
						$titleHolder.text(alt).fadeIn();
					}
				};
				image.src = jqimg.attr('src');
			});

			
		}); // end : this.each(function()
	};  // end : $.fn.jqGalScroll
	jqGalScroll = {
		ease: null,
		speed:300,
		height: 195,
		width: 450,
		titleOpacity : .60,
		direction : 'horizontal' // vertical horizontal diagonal
	};
})(jQuery);

// Javascripts - index page
$(document).ready(function(){

//------------------------------------------------------------------------------
// Function to check if a tab is open, indicating that the default is displayed

function CheckTabs()
{
  if ( $("#blocktext_wd").css("display") != "none" || $("#blocktext_ld").css("display") != "none" || $("#blocktext_cs").css("display") != "none" )
  {
    return true;
  } else {
    return false;
  }
}

//------------------------------------------------------------------------------
// Roll out Web Design

	$("#p1_menu_wd").click(function(){
	
	 // Hide the Nav bar and page title
	 
	 $("#page_title").hide(200);
	 $("#main_site_nav").fadeOut(200, function(){
      
     // First, change the underlying div to the new class setting, to simulate the crossfade
  	 $("#p1_c_displayblock").removeClass("p1_displayblock_wd p1_displayblock_ld p1_displayblock_cs");
  	 $("#p1_c_displayblock").addClass("p1_displayblock_wd");
  	
  	  $("#p1_displayblock").fadeOut(275, function(){
  	     $("#p1_displayblock").removeClass("p1_displayblock_ld p1_displayblock_cs");
         $("#p1_displayblock").addClass("p1_displayblock_wd");
         // Hide the irrelevant blurb and show the relevant one
         $("#blocktext_default").hide();
         $("#blocktext_ld").hide();
         $("#blocktext_cs").hide();
         $("#blocktext_wd").show();
         
      }
      );
      
      // Hide the selected tab
      $("#p1_menu_wd").hide();
      $("#p1_a_hidden").show();
      $("#p1_a_hidden").addClass("p1_a_hidden_active");
      
      // Unhide the other tabs
      $("#p1_menu_ld").show(); 
      $("#p1_b_hidden").hide();
      $("#p1_menu_cs").show(); 
      $("#p1_c_hidden").hide(); 
      
      // Fade the new background in
      $("#p1_displayblock").fadeIn(275);
  
      if($("#h_rightside").css("display") != "none") { 
        // It's visible, so let's roll it up
        $("#h_rightside").slideToggle(175, function(){
          $("#h_rightside").removeClass("p1_menu_top_wd p1_menu_top_ld p1_menu_top_cs");
          $("#h_rightside").addClass("p1_menu_top_wd");      
          $("#h_rightside").slideToggle(175);
        });
        
      } else {
      
        $("#h_rightside").removeClass("p1_menu_top_wd p1_menu_top_ld p1_menu_top_cs");
        $("#h_rightside").addClass("p1_menu_top_wd");
        $("#h_rightside").slideToggle(175);
    
      }
   
   });

	});

//------------------------------------------------------------------------------
// Roll out Logo Design

	$("#p1_menu_ld").click(function(){

  $("#page_title").hide(200);
	$("#main_site_nav").fadeOut(200, function(){
	 
      // First, change the underlying div to the new class setting, to simulate the crossfade
  	  $("#p1_c_displayblock").removeClass("p1_displayblock_wd p1_displayblock_ld p1_displayblock_cs");
  	  $("#p1_c_displayblock").addClass("p1_displayblock_ld");
  
      $("#p1_displayblock").fadeOut(275, function(){
  	     $("#p1_displayblock").removeClass("p1_displayblock_wd p1_displayblock_cs");
         $("#p1_displayblock").addClass("p1_displayblock_ld");
         // Hide the irrelevant blurb
         $("#blocktext_default").hide();
         $("#blocktext_wd").hide();
         $("#blocktext_cs").hide();
         // Display the relevant block of blurb
         $("#blocktext_ld").show();
      }
      );
      
      // Hide the selected tab
      $("#p1_menu_ld").hide();
      $("#p1_b_hidden").show();
      $("#p1_b_hidden").addClass("p1_b_hidden_active");
      
      // Unhide the other tabs
      $("#p1_menu_wd").show(); 
      $("#p1_a_hidden").hide();
      $("#p1_menu_cs").show(); 
      $("#p1_c_hidden").hide(); 
      
      // Fade the new background in
      $("#p1_displayblock").fadeIn(275);
      
      if($("#h_rightside").css("display") != "none") { 
        // It's visible, so let's roll it up
        $("#h_rightside").slideToggle(175, function(){
          $("#h_rightside").removeClass("p1_menu_top_wd p1_menu_top_ld p1_menu_top_cs");
          $("#h_rightside").addClass("p1_menu_top_ld");
          $("#h_rightside").slideToggle(175); 
        });
        
      } else {
        $("#h_rightside").removeClass("p1_menu_top_wd p1_menu_top_ld p1_menu_top_cs");
        $("#h_rightside").addClass("p1_menu_top_ld");
        $("#h_rightside").slideToggle(175);
         
      }  	 
	 
	 });
  
 
          
	});

//------------------------------------------------------------------------------
// Roll out Consulting
	
	$("#p1_menu_cs").click(function(){
	
	  $("#page_title").hide(200);
	  $("#main_site_nav").fadeOut(200, function(){
	  
  	  // First, change the underlying div to the new class setting, to simulate the crossfade
  	  $("#p1_c_displayblock").removeClass("p1_displayblock_wd p1_displayblock_ld p1_displayblock_cs");
  	  $("#p1_c_displayblock").addClass("p1_displayblock_cs");
  	
  	  $("#p1_displayblock").fadeOut(275, function(){
  	     $("#p1_displayblock").removeClass("p1_displayblock_wd p1_displayblock_ld");
         $("#p1_displayblock").addClass("p1_displayblock_cs");
         // Hide irrelevant blurb
         $("#blocktext_default").hide();
         $("#blocktext_wd").hide();
         $("#blocktext_ld").hide();
         // Display the relevant block of blurb
         $("#blocktext_cs").show();
      }
      );
      
      // Hide the selected tab
      $("#p1_menu_cs").hide();
      $("#p1_c_hidden").show();
      $("#p1_c_hidden").addClass("p1_c_hidden_active");
      
      // Unhide the other tabs
      $("#p1_menu_wd").show(); 
      $("#p1_a_hidden").hide();
      $("#p1_menu_ld").show(); 
      $("#p1_b_hidden").hide(); 
      
      $("#p1_displayblock").fadeIn(275);
      
      if($("#h_rightside").css("display") != "none") { 
        // It's visible, so let's roll it up
        $("#h_rightside").slideToggle(175, function(){
          $("#h_rightside").removeClass("p1_menu_top_wd p1_menu_top_ld p1_menu_top_cs");
          $("#h_rightside").addClass("p1_menu_top_cs");
          $("#h_rightside").slideToggle(175); 
                
        });
        
      } else {
      
        $("#h_rightside").removeClass("p1_menu_top_wd p1_menu_top_ld p1_menu_top_cs");
        $("#h_rightside").addClass("p1_menu_top_cs");
        $("#h_rightside").slideToggle(175); 
          
      }
	  
	  });
	
	  

	});

//------------------------------------------------------------------------------
// Collapse all services
  $("div#p1_h_menublock .invisible-tab").click(function() {
    // Clear the display block
    $("#p1_c_displayblock").removeClass("p1_displayblock_wd p1_displayblock_ld p1_displayblock_cs");
    $("#p1_c_displayblock").addClass("p1_displayblock");

    $("#h_rightside").slideToggle(175, function(){

      
      // Roll up the tail

      $("#p1_displayblock").fadeOut(275, function(){
    
        $("#p1_displayblock").removeClass("p1_displayblock_wd p1_displayblock_ld p1_displayblock_cs");
        $("#p1_displayblock").addClass("p1_displayblock");
        
        // Unhide all the tabs
        $("#p1_menu_wd").show(); 
        $("#p1_a_hidden").hide();
        $("#p1_menu_ld").show(); 
        $("#p1_b_hidden").hide(); 
        $("#p1_menu_cs").show(); 
        $("#p1_c_hidden").hide(); 
        // Hide all blurbs
        $("#blocktext_wd").hide();
        $("#blocktext_ld").hide();
        $("#blocktext_cs").hide();
        $("#blocktext_default").show();
      
        $("#page_title").show(200);
	      $("#main_site_nav").fadeIn(200);
	      $("#p1_displayblock").fadeIn(200, function(){ 
        
          $("#p1_c_displayblock").removeClass("p1_displayblock").addClass("p1_c_display");
        
        });
    
      });
    
    });
    
  });
  
	
});

//------------------------------------------------------------------------------
// Hack to make the portfolio box slide only down to the tab


$(document).ready(function(){

  $("#p1-portfolio-handle").click(function(){
    
    if ($("#p1-wd-text").css("display") == "none") {
      // The portfolio is up, so we need to scrolly down
      $("#p1-portfolio-handle").html('<img style="float:left;" src="tpl/default/gfx/icon-small-up.gif" width="15" height="15" alt="Toggle web design portfolio">&nbsp;&nbsp;&nbsp;PORTFOLIO');
      
      $(".p1-portfolio-thumb-c").fadeOut(200, function(){
      
        $("#p1-wd-text").slideDown(300);
        $("#p1-portfolio-c").slideUp(300, function() // We're closing the portfolio, so this slides up
        {
          $("#p1-packages-handle").fadeIn(200); // Bring the other tab back in
        });

      });

    } else {
      // The portfolio is down, so scroll the text up to make way
      var open_height = 195 + 'px';
      $("#p1-packages-handle").hide(); // Hide the other tab
      $("#p1-wd-text").slideUp(300);
      $("#p1-portfolio-c").slideDown(300, function(){
        $(".p1-portfolio-thumb-c").fadeIn(200);
      }); // By sliding down, this pushes the handle up. A little confusing, think of it like legs coming out
      $("#p1-portfolio-handle").html('<img style="float:left;" src="tpl/default/gfx/icon-small-down.gif" width="15" height="15" alt="Toggle web design portfolio">&nbsp;&nbsp;&nbsp;PORTFOLIO');
    }
  
  });

  $("#p1-packages-handle").click(function(){
    
    if ($("#p1-wd-text").css("display") == "none") {
      // The packages box is up, so we need to scrolly down
      $("#p1-packages-handle").html('<img style="float:left;" src="tpl/default/gfx/icon-small-up.gif" width="15" height="15" alt="Toggle products and packages">&nbsp;&nbsp;&nbsp;PACKAGES');
      $(".p1-web-packages-container").fadeOut(200, function(){ 
      
        $("#p1-wd-text").slideDown(300);
        $("#p1-packages-c").slideUp(300, function() // We're closing the packages box, so this slides up
        {
          $("#p1-portfolio-handle").fadeIn(200); // Bring the other tab back in
        }); 
      
      });

    } else {
      // The portfolio is down, so scroll the text up to make way
      var open_height = 195 + 'px';
      $("#p1-portfolio-handle").hide(); // Hide the other tab
      $("#p1-wd-text").slideUp(300);
      $("#p1-packages-c").slideDown(300, function(){ 
      
        $(".p1-web-packages-container").fadeIn(200);
        $("#p1-packages-handle").html('<img style="float:left;" src="tpl/default/gfx/icon-small-down.gif" width="15" height="15" alt="Toggle products and packages">&nbsp;&nbsp;&nbsp;PACKAGES');
      
      }); // By sliding down, this pushes the handle up. A little confusing, think of it like legs coming out
      
    }
  
  });
  
	$('#portfolio-scroller').jqGalScroll();

  var LivePackageItem = '0';
  var itemID = '';
  
	// This is a bespoke (hacked) accordion effect on the package items
 
 
	$(".package-item").each( function(){ 

    $(this).click( function() {
      itemID = $(this).attr("id");

      if (itemID == LivePackageItem){
        // Close the active package
        $("#" + LivePackageItem).removeClass("package-item-selected");
        $("#package-" + LivePackageItem).slideUp(200);
        $("#moredetails-" + LivePackageItem).html("click to expand");
        LivePackageItem = 0;

      } else {
        if (LivePackageItem != 0) {
          // Means there is an active package
          $("#" + LivePackageItem).removeClass("package-item-selected");
          $("#moredetails-" + LivePackageItem).html("click to expand");
          $("#" + itemID).addClass("package-item-selected");
          $("#package-" + LivePackageItem).slideUp(200, function(){ 

            $("#package-" + itemID).slideDown(200);
            LivePackageItem = itemID;
            $("#moredetails-" + LivePackageItem).html("x close");

          });
        } else {
          $("#" + itemID).addClass("package-item-selected");
          $("#package-" + itemID).slideDown(200);         
          LivePackageItem = itemID;
          $("#moredetails-" + LivePackageItem).html("x close");

        }
      }

    });
    
  });


});



