/**
 * JS scripts for 2ngry.com
 *
 * @package WordPress
 * @subpackage Starkers
 * @author Miguel Cabanzo
 */


/*
*  |||||||| HOME ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
*/

/* Randomize header */
function gimmeHeader(dir) {
	jQuery(document).ready(function($){
		/* arrays for letters and images */
		var name='2 n g r y';	
		var letter=name.split(' ');
		var image = new Array();
		for(i=0;i<=11;i++){
			if(i>=9){
				image[i]='line'+(i+1);
			} else {
				image[i]='line0'+(i+1);
			}
		}
		var sel=0,txt=4,img=11,ctrI=0,ctrT=0,start=0;
		for(i=0;i<=8;i++){
			/* avoid more than 2 of the same */
			if(ctrT>1){
				sel=1;
				ctrT=0;
			}
			if(ctrI>0||letter.length<=1){
				sel=0;
				ctrI=0;
			}
			/* have fun */
			if(sel==0&&txt>=0&&txt<=4){
				var rtxt=Math.round(Math.random(0,txt));
				var pick=letter[rtxt];
				if(pick==undefined){	
					i=i-1;
				} else {
					/* print */
					var theID = '.c'+i;
					$(theID).append('<span>'+pick+'</span>');
					/* pull */
					letter.splice(rtxt,1);
					txt=txt-1;
					ctrT=ctrT+1;
				}
			} else {
				var rimg=Math.round(Math.random(0,img));
				var pick=image[rimg];
				/* if empty element */			
				if(pick==undefined){	
					i=i-1;
				} else {
					var theID = '.c'+i;
					var thePos = $(theID).position();
					$(theID).css({'left':thePos.left-36,'top':thePos.top-36,/*'opacity':.3*/});
					$(theID).append('<img src="'+dir+'/images/'+pick+'.png" />');
					image.splice(rimg,1);
					img=img-1;
					ctrI=ctrI+1;
				}			
			}
			sel=Math.round(Math.random(0,1));
		} 
	});
}

/* Manage divs' position */

function arrangeIndex(){
	preload('aedo.png','agenda.jpg','destate.png','experientia.jpg','humanflows.png','ktc.png','migropolis.jpg','nodo.jpg','odio.png','private.jpg');
	callMasonry('#container','.post-block',25); /* 275 */
	catchWidth();
	callHovers();
}
function callMasonry(container,selector,width){
	jQuery(document).ready(function($){
		$(container).masonry({
			itemSelector: selector,
		  	columnWidth: width,
		  	isResizable: false,
		  	isAnimated: !Modernizr.csstransitions
	  	});
	});
}
function catchWidth(){
	jQuery(document).ready(function($){
		var calcW = self.innerWidth - $('#main_header').offsetWidth - 30; /*avoid scrollbar*/
		$('#container').css('width',calcW);
		setTimeout("placeFooter('#container')",wait*13);
	});
}
var finalHeight, passID;
function randomH(element){
	jQuery(document).ready(function($){	
		finalHeight = Math.floor(Math.random()*(405-255+1))+255;
		$('#post-'+element).css('height',finalHeight);
		$('#thumb-'+element).css('top',-(405-finalHeight)/2);
		$('#excerpt-'+element).css('top',0);
	});
}

/* Tweens on hover */

var postH, titleH, theImg;
function callHovers(){
	jQuery(document).ready(function($){
		$('.post-block').hover(function(){
			/* check if the div has bg image - if no add it */
			if ($('.index-thumbnail',this).hasClass('classy')){
			}
			else {
				$('.index-thumbnail',this).addClass('classy');
				var passX = $('.index-thumbnail img',this).width();
				$('.index-thumbnail',this).width(passX);
				var passY = $('.index-thumbnail img',this).height();
				$('.index-thumbnail',this).height(passY);
				theImg = $('.index-thumbnail img',this).attr('src').split('/');			
				var theLast = theImg.length;
			//	theImg = 'wp-content/uploads/2011/03/gr'+theImg[theLast-1];		// local
				theImg = 'wp-content/uploads/cover/gr'+theImg[theLast-1];		// server
				var backPos = $('.classy',this).position().top;
				$('.index-thumbnail',this).parent().css('background','url("'+theImg+'") 50% '+backPos+'px no-repeat');
			}
			
			/* fade in */
			postH = $(this).height();
			titleH = $('.index-title',this).height();
			$('.index-excerpt',this).css('top',titleH+4);
			$('.index-excerpt',this).stop(true,true).fadeIn(75);
			$('.index-thumbnail img',this).stop(true,true).animate({opacity: 0},75);
		},
		function(){
			postH = $(this).height();
			$('.index-excerpt',this).fadeOut(75);
			$('.index-thumbnail img',this).stop(true,true).animate({opacity: 1},825);
		});
	});
}

/* Image preloader */

var images = new Array();
function preload() {
	if(preload.arguments.length == 1){
	images[0] = new Image();
		images[0].src = preload.arguments[0];
	} else {
		for (i = 0; i < preload.arguments.length; i++) {
			images[i] = new Image();
			images[i].src = 'wp-content/uploads/cover/grth_'+preload.arguments[i];
		}
	}
}

/* Resize container */

function checkContainer(element){
	jQuery(document).ready(function($){
		if($(window).width() >= 640){
			$(element).css('width',$(window).width()-180);
		}
		$(window).resize(function(){
			if($(window).width() >= 640){
				$(element).css('width',$(window).width()-180);
			}
		});
	});
}
/*
*  |||||||| SINGLE ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
*/

/* Arrange gallery */

var wait = 30;
function arrangeGallery(){
	jQuery(document).ready(function($){
		if($('.gallery') != null){
			// i = 16;
			callMasonry('div.gallery','.alignnone',5); /* 25 */
			setTimeout("placeFooter('article.post')",wait*13);
			$('.alignnone').click(function(){
				scrollTo($(this));
				setTimeout("callMasonry('div.gallery','.alignnone',5)",wait);
				setTimeout("placeFooter('article.post')",wait*13);
			});
		}
	});
}

/* Pos for clicked images */
var checkStart;
var elementStart;
function scrollTo(element) {
	jQuery(document).ready(function($){		
		if($(element).parent().attr('class') == 'mouseover'){
			elementStart = window.pageYOffset;
			checkStart = 1;
		}
		if($(element).parent().attr('class') == 'mouseover selected'){
			checkStart = 0;
		}
		setTimeout(function(){
			var portY = window.pageYOffset;
			var elementEnd = element.offset().top;
			var windowH = $(window).height();			
			if(checkStart == 1){
				$('html, body').animate({
				    scrollTop: elementEnd-((windowH-$(element).height())/2)
				}, 200);
			} 
			if(checkStart == 0) {
				$('html, body').animate({
				    scrollTop: elementStart
				}, 200);
			}
		}, wait*10);
	});
}

/* Carousel */

function rollAnim(imgWidth,imgHeight,num,imgName,imgType,speed){
	jQuery(document).ready(function($){
		var imgPath = '../../wp-content/uploads/projects/'
		/* create array, fill it with images, append images to divs*/
		var img = new Array;
		for(i=0;i<=(num-1);i++){
			if(i<=9){
				img[i]=imgName+'0'+i+'.'+imgType;
				$('.carousel').append('<div class="theimg num0'+i+'"><img src="'+imgPath+img[i]+'" /></div>');
			} else {
				img[i]=imgName+i+'.'+imgType;
				$('.carousel').append('<div class="theimg num'+i+'"><img src="'+imgPath+img[i]+'" /></div>');
			}
		}
		/* assign width to divs, x pos images */
		var divWidth = Math.round(imgWidth/num);
		$('.carousel .theimg').css({'width': divWidth,'height': imgHeight});
		/* correct width on last object */
		if((divWidth*num)>imgWidth){
			if(num<=9){
				$('.carousel .num0'+(num-1)).css('width', divWidth-(divWidth*num-imgWidth));
			} else {
				$('.carousel .num'+(num-1)).css('width', divWidth-(divWidth*num-imgWidth));
			}
		} else if((divWidth*num)<imgWidth){
			if(num<=9){
				$('.carousel .num0'+(num-1)).css('width', divWidth+(imgWidth-(divWidth*num)));
			} else {
				$('.carousel .num'+(num-1)).css('width', divWidth+(imgWidth-(divWidth*num)));
			}
		}		
		for(i=0;i<=(num-1);i++){
			if(i<=9){
				$('.num0'+i+' img').css({'left' : -((Math.round(imgWidth/num))*i)});
			} else {
				$('.num'+i+' img').css({'left' : -((Math.round(imgWidth/num))*i)});
			}
		}
		/* rollover/out actions*/
		var lastSel,num1,num2;
		$('.carousel .theimg').mouseover(function(){
				clearInterval(animVar);
				resetImg();
				$(this).addClass('show');
				$('.carousel').css('background-color','#fafafa');
				/* remember last div selected */
				lastSel = $(this).attr('class').split(' ');
				lastSel = lastSel[1];
				num1 = parseInt(lastSel.slice(3,4));
				num2 = parseInt(lastSel.slice(4,5));
				if(num1+num2 == num2){
					lastSel = num2;
				}
				if(num1+num2 != num2){
					lastSel = parseInt(lastSel.slice(3,5));
				}
				/* check for duplicates */
				if($('.show').length>1){
					clearClass();
					$(this).addClass('show');
				}
			}).mouseout(function(){
				$('.carousel').css('background','#fafafa url("'+imgPath+imgName+num1+num2+'.'+imgType+'") 0 0 no-repeat');
				startAnim(lastSel+1);
				$(this).removeClass('show');
		});
		/* animation function */
		var last, animVar;
		function startAnim(count){	
			if(count == null){ /* if first time */
				count = 0;
				$('.num0'+count).addClass('show');
				count = 1;
			}
			animVar = setInterval(function(){
				if(count == img.length){
					count = 0;
				}
				if(count<=9){
					$('.num0'+count).addClass('show');
				} else {
					$('.num'+count).addClass('show');
				}			
				last = count-1;
				if (last==-1){
					last = img.length-1;
				}
				if(last<=9){
					$('.num0'+last).removeClass('show');
				} else {
					$('.num'+last).removeClass('show');
				}
				count += 1;
			}, speed);
		}
		/* reset z-indexes */
		function resetImg(){
			$('.carousel').css('background','none');
			if(i<=9){
				$('.carousel .num0'+i).css('z-index',90+i);
			} else {
				$('.carousel .num'+i).css('z-index',90+i);
			}
		}
		/* clear duplicates*/
		function clearClass(){
			for(c=0;c<=(num-1);c++){
				$('.carousel .num0'+c).removeClass('show');
			}
		}
    	/* have fun */	    	
    	startAnim();
	});
}

/* Fade back2home */

var yScroll, posAlpha;

function getYScroll() {
	if (self.pageYOffset) {
		yScroll = self.pageYOffset;
	} else if (document.documentElement && document.documentElement.scrollTop) {
		yScroll = document.documentElement.scrollTop;
	} else if (document.body) {
		yScroll = document.body.scrollTop;
	}
	/* scrollbar pos */
	return yScroll;
}


/*
*  |||||||| FOOTER ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
*/

/* Pos footer */

var containerH;
function placeFooter(element){
	jQuery(document).ready(function($){
		containerH = $(element).height();
		if(element == 'article.page'){	
			window.onresize = function(event){placeFooter(element)}
			window.onscroll = function(event){placeFooter(element)}				
			if($('#main_header').height() <= (containerH+$('#footer').height()+16)){
				$('#footer').css({'top':containerH+15,'bottom':'auto'});
			} else {
				$('#footer').css({'position':'absolute','bottom':'0','top':'auto'});
			}			
		} 
		$('#main_header').height(containerH);
	});	
}

/*  Select & Display */

function displayFooter(page) {

	jQuery(document).ready(function($){
	
		var newH,newAlpha,safe=40,footerH;
		
		var show;
		if (page == 'home') {
			show = '.1st-footer';
			window.onresize = function(event) {
				catchWidth();
			}
		}
		else if (page == 'copyright') {
			calcScroll();
			show = '.3rd-footer';
		}
		else if (page == 'other') {
			calcScroll();		
			show = '.2nd-footer';			
		}
		
		/* add masonry class to img */
		if ($('.gallery').length > 0){
			$('.gallery a img').addClass('transition');
		}
		
		/* display elements*/
		$(show).css({'display': 'block'});
		
		/* give appropriate height */
		footerH = $('footer').height();
		$('footer ul li .textwidget').height(footerH);
		$('footer').height(footerH);
		
		/* back home */
		function calcScroll(){
				/* alpha change back2home */
				$(window).scroll(function () { 
					calcAlpha();
					window.onresize = function(event) {
						calcAlpha();
					}
			    	getYScroll();
			    	if (yScroll < safe){
			    		posAlpha = 0;
			    	}
			    	if (yScroll >= safe+1 && yScroll <= newH){
			    		posAlpha = (yScroll)*newAlpha; 
			    	}
			    	if (yScroll > newH-(safe+1)){
			    		posAlpha = 1;
			    	}
			    	$('.header_bottom').css({'opacity':posAlpha})
			    });
		}		
		function calcAlpha(){
			newH = document.documentElement.scrollHeight-window.innerHeight+safe; /* must be + */
			newAlpha = 1/newH;
		}
	});
}
