var j = jQuery.noConflict();

j(document).ready(function(){
	/*---------- hello cufon =)     ************/
    Cufon.set('fontFamily', 'Titillium').replace('h1.introText')('h2.yellowTitle')('h2.greyTitle');
    /*    BLOG SECTION- to be inserted into line above when activated
    ('h1.blogTitle')('h3.postTitle')('h3.blog_featureTitle')('h1.folio_heading')('span.folio_explore')*/
    
	/*
     SYNTAX FOR STYLING     
     Cufon.replace('.content_heading', { fontWeight: 'normal'});
     Cufon.replace('.nav a');*/
    
    
    
	/*j("#video_trigger").colorbox({transition:'none', inline:true, href:"#video"});*/
	
	 j(".video_trigger")
        .click(function () {
            j('#video').html('<iframe src="http://player.vimeo.com/video/28291817?title=0&amp;byline=0&amp;portrait=0&amp;color=ffffff&amp;autoplay=1" width="800" height="450" frameborder="0"></iframe>');
        })
        .colorbox({transition:'none', inline:true, href:"#video"});

	
	// Removes SEO text in navItems
	j(".clearText").html("");
	j(".clearText").removeClass("clearText");
	

	// WHAT WE DO Slider ------------------------------------------
	var doIsSliding;
	var itemNumber;
	var itemHeight = 190;
	var holderLength = j("#whatWeDoSlider .mainContentItem");
	var holderHeight = 200 * holderLength;
	var animSpeed = 600;
	var currentWhatWeDo, currentWhatWeDoLink;

	// init
	j("#whatWeDoSlider .mainContent").css("height",itemHeight+"px");
	j("#whatWeDoSlider .mainContentItem").css({"display":"none","position":"absolute"});
	j("#whatWeDoSlider .mainContentItem:first").css("display","block").addClass("active");
	j("#whatWeDoSlider .mainMenu ul a:first").addClass("active");
	
	j("#whatWeDoSlider .mainMenu ul a").bind("click", function() {
		if (doIsSliding != true) {
			itemNumber = j(this).attr("rel");
			currentWhatWeDo = j("#whatWeDoSlider #contentItem"+itemNumber);
			// if not current item
			if (!currentWhatWeDo.hasClass("active")) {
				doIsSliding = true;
				// clear prev
				j("#whatWeDoSlider .mainMenu ul a").removeClass("active");
				// slide down current
				currentWhatWeDoLink = j(this);
				currentWhatWeDoLink.addClass("active");
				currentWhatWeDo.css({"opacity":"0","top":itemHeight+"px","display":"block"})
					.animate({
						top: '0',
						opacity: 1
					},animSpeed,function(){
						currentWhatWeDo.addClass("active");
						j("#whatWeDoSlider .mainContentItem").css("display","none");
						j("#whatWeDoSlider .mainContent .active").css("display","block");
						doIsSliding = false;
				});
				j("#whatWeDoSlider .mainContent .active").css({"opacity":"1","top":"0px","display":"block"}).addClass("last-active")
					.animate({
						top: '-'+itemHeight,
						opacity: 0
					},animSpeed,function(){
						j("#whatWeDoSlider .mainContent .last-active.active").css("display","none").removeClass("last-active").removeClass("active");
						doIsSliding = false;
				});
			}
		}
	});
	
	
	// TEAM Slider ------------------------------------------
	var currentPerson, lastPerson;
	var currentHeight;
	var teamIsSliding;
	
	// init
	j(".teamList li p").css({'display':'none',overflow:'hidden'});
	
	// function
	j(".teamList li a").bind("click", function() {
		currentPerson = j(this).parent().next("p");
		lastPerson = j(".teamList li.active");
			
		if (!currentPerson.parent().hasClass("active") && teamIsSliding!=true) {
			teamIsSliding = true;
			currentHeight = currentPerson.outerHeight();
			currentPerson.parent().addClass("active");
			lastPerson.removeClass("active");
			j(".teamList li p").slideUp("slow");
			currentPerson.css({height:0,opacity:0}).animate({
					height: (currentHeight)+'px',
					opacity: 1
				},600,function(){
					teamIsSliding = false;
			});
		} else {
			j(".teamList li.active p").slideUp("slow",function(){
				j(".teamList li.active").removeClass("active");
				teamIsSliding = false;
			});
		};
		
	});
	
	
	
	
	
	// HOME PAGE BANNER Slider ------------------------------------------
	var bannerPause = 7000;
	var bannerTimer;
	
	var bannerIsSliding;
	var bannerNumber;
	var bannerWidth = 1600;
	var bannerHolderLength = j(".bannerSlider .banner");
	var bannerHolderHeight = 200 * bannerHolderLength;
	var animationSpeed = 300;
	var currentBanner, currentBannerLink;

	// init
	j(".bannerSlider .banner").css({"display":"none", "position":"absolute", "width":"100%", "opacity":"0"});
	j(".bannerSlider .banner:first").css({"display":"block", "opacity":"1"}).addClass("active");
	j(".bannerNum ul a:first").addClass("active");
	j(".bannerNum ul a:last").addClass("last");

	// initialise
	if (j(".bannerSlider .banner").length > 0) { 
			bannerTimer = setTimeout(function() {
				autoBannerSlide();
			},bannerPause);
	}

	// auto select the next button
	function autoBannerSlide() {
		var button;
		if (j(".bannerSlider .banner:animated").length == 0) {
			if ( j(".bannerNum ul a.active").hasClass("last") ) {
				button = j(".bannerNum ul a:first");
			} else {
				button = j(".bannerNum ul a.active").parent().next().find("a");
			}
			
			doBannerSlide(button);
		}
	}

	// do on click
	j(".bannerNum ul a").bind("click", function() {
		var button;
		if (j(".bannerSlider .banner:animated").length == 0) {
			if ( j(".bannerNum ul a.active").hasClass("last") ) {
				button = j(".bannerNum ul a:first");
			} else {
				button = j(".bannerNum ul a.active").parent().next().find("a");
			}
		doBannerSlide(j(this));	
		}
	});
	
	// main function - slides and reset slider
	function doBannerSlide(clickedButton) {
			clearTimeout(bannerTimer);
			
			var previousBanner = j(".bannerSlider #bannerContainer .active");
			bannerNumber = clickedButton.attr("rel");
			currentBanner = j(".bannerSlider #banner"+bannerNumber);
			currentBannerLink = clickedButton;
			// if it's not current item
			if ( !currentBanner.hasClass("active") && j(".bannerSlider .banner:animated").length==0) {
				// clear all buttons
				j(".bannerNum ul a").removeClass("active");
				
				// fade previous slide out
				previousBanner.css({"display":"block"})
					.animate({
						opacity: 0
					},animationSpeed,'easeInExpo',function(){
						previousBanner.css("display","none").removeClass("active");
						
						// fade current slide in
						currentBannerLink.addClass("active");
						currentBanner.css({"display":"block"})
							.animate({
								opacity: 1
							},animationSpeed,'easeOutExpo', function(){
								currentBanner.addClass("active");

								// reset timer
								bannerTimer = setTimeout(function() {
									autoBannerSlide();
								},bannerPause);
						});
						
				});
					
			}
	}



	// CAREERS Slider ------------------------------------------
	var jobIsSliding;
	var jobNumber;
	var jobWidth = 780;
	var jobHolderLength = j(".careerDetails .career");
	var jobHolderHeight = 200 * jobHolderLength;
	var jobAnimationSpeed = 600;
	var currentJob, currentJobLink;

	// init
	j(".careerDetails .career").css({"display":"none", "position":"absolute", "background":"#fff"});
	j(".careerDetails .career:first").css("display","block").addClass("active");
	j("ul.careerListing a:first").addClass("active");
	
	j("ul.careerListing a").bind("click", function() {
		if (jobIsSliding != true) {
			jobNumber = j(this).attr("rel");
			currentJob = j(".careerDetails #career"+jobNumber);
			// if not current item
			if (!currentJob.hasClass("active")) {
				jobIsSliding = true;
				// clear prev
				j("ul.careerListing a").removeClass("active");
				// slide left current
				currentJobLink = j(this);
				currentJobLink.addClass("active");
				currentJob.css({"left":jobWidth+"px", "top":"0px", "display":"block"})
					.animate({
						left: '0',
						opacity: 1
					},jobAnimationSpeed,function(){
						currentJob.addClass("active");
						j(".careerDetails .career").css("display","none");
						j(".careerDetails #careerContainer .active").css("display","block");
						jobIsSliding = false;
				});
				j(".careerDetails #careerContainer .active").css({"left":"0px", "top":"0px","display":"block"}).addClass("last-active")
					.animate({
						left: '-'+jobWidth,
						opacity: 0
					},jobAnimationSpeed,function(){
						j(".careerDetails #careerContainer .last-active.active").css("display","none").removeClass("last-active").removeClass("active");
						jobIsSliding = false;
				});/**/
			}
		}
	});
	
	//---------------------- loading in more content
	//template of content to be loaded in
	var project_list = "<div class=\"folio_projects {folioLast}\"><a href=\"{folioLink}\" class=\"project_link\">{folioNew}<div class=\"folio_overlay\"></div><div class=\"folio_projectsBg\"><img src=\"{folioImage}\" width=\"450px\" height=\"279px\" alt=\"{folioTitle}\" title=\"{folioTitle}\" /><div class=\"folio_textBlocks clear\"><span class=\"folio_desc\">{folioTitle}</span><span class=\"folio_explore\">EXPLORE &gt;</span></div></div></a></div>";
	var portfolio_data = null;
	
	function scroll_load(event){
		var display_newData = function(){

			//insert new portfolio data
			var elementCount = j('.folio_projects').length;
			var i;
			var max = Math.min(elementCount+4, portfolio_data.length);
			
			for (i=elementCount; i<max; i++){
				if (i%2) {
					portfolio_data[i].folioLast = "folio_projectsLast";
				} else {
					portfolio_data[i].folioLast = "";
				}
				
				if (portfolio_data[i].newTag) {
					portfolio_data[i].folioNew = "<img class=\"new_featureTag transparent\" src=\"bliss2010/images/img/new_blogFeature.png\" width=\"76px\" height=\"76px\" alt=\"new\" title=\"new\" /><!--[if lt IE 7.]><img src=\"<?=$constRootFolder?>/images/blank.gif\" style=\"filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='bliss2010/images/img/new_blogFeature.png', sizingMethod='scale');\" width=\"76px\" height=\"76px\" class=\"new_featureTag\" /><![endif]-->";
				} else {
					portfolio_data[i].folioNew = "";
				}

				var $newElement = j(project_list.template(portfolio_data[i]));
				//$newElement.appendTo('.folio_projectsWrapper').hide().delay((i - elementCount)*200).fadeIn('slow');
				$newElement.children().hide();
				$newElement.appendTo('.folio_projectsWrapper').delay((i - elementCount)*300)
					.css({
						height:20,
						width:400,
						marginTop:150,
						marginLeft:10,
						opacity:0
					}).animate({
						height:320,
						width:450,
						marginTop:0,
						marginLeft:0,
						opacity:1
					},300,(function(newElem){
								return function(){
										  newElem.children().hide().fadeIn(700);
										  
										  //sifr replace for explore text
										  sIFR.replace(Titillium800wt, {
											  wmode: 'transparent',
											  selector: 'span.folio_explore',
											  css: '.sIFR-root { color: #ffae00; font-size: 13px; font-weight: normal; }'
										  });
								}
					 })($newElement)
					);
				
				$newElement.find('.folio_overlay').fadeTo(1, 0.0);

			}

		};
		if(portfolio_data === null) {
			j.getJSON('bliss2010/code/portfolio.js',{},function(data, textStatus, jqXHR){
				portfolio_data = data;
				display_newData();
			});	
		} else {
			display_newData();
		}

	};
	
	//initial loading of projects
	var container_check = j('folio_projectsWrapper').html();
		if(container_check === null){
			scroll_load();
		}
	
	//if page scrolled to end of page, call function
	j(window).scroll(function(){
	        if  (j(window).scrollTop() >= j(document).height() - j(window).height()-300){
			scroll_load();
        }
	
});
	
});

String.prototype.template = function (replaces) {
	var orig = this.toString();
	for (var i in replaces) {
		orig = orig.replace(new RegExp("{"+ i +"}", "g"), replaces[i]);
	}
	return orig;
}

