/* Paul Raeside JavaScript */
/* Common functions */
/* Author www.pumkin.co.uk */


var openNewID;
function openDropDown(target) {
	//
	clearTimeout(openNewID);
	//
	// switch off anything to the right (next sibling) if it belongs to a different menu
	var openNew = function() {
		// on item click, open menu matching this one's rel value
		$('#'+id).css('display', 'inline-block');
		$('#'+id).fadeTo(600, 1, function() { $(this).removeClass('hidden').addClass('active'); });
		target.addClass('current');
	}
	// is a next sibling is visible, and does the id differ from the trigger's rel value?
	// if yes, close it
	var id = target.attr('rel');
	var nextItems = target.parents('.nav-item').first().nextAll('.nav-item.active');
	var currentNavHandle = target.parent().siblings('li').children('.current');
	currentNavHandle.removeClass('current');
	var timeout = 0;
	if (nextItems.length>0) {	
		$(nextItems).each(function() { 
			if ($(this).attr('id') != id) {
				$(this).fadeOut(100, function() { 
					$(this).removeClass('active').addClass('hidden');
					$(this).children('.current').removeClass('.current');
				});
			}
		});	
		timeout = 400;
	}
	openNewID = setTimeout(openNew, timeout);
}


function showAll(cls, spd) {
	//
	//var hiddenItems = new Array();
	var offset = 1;
	$(cls).each(function(){
		$(this).delay(offset*spd).fadeTo(600, 1);				 
		offset++;
	});
}


/* folio layout */
var outerMargins = new Array(90, 80, 140, 80);

function resizeFolio(doImages) {
	//
	//var topMargin = Math.round($(window).height()/8);
	var folioHeight = $(window).height() - (parseInt($('#image-area').offset().top) + outerMargins[2]);
	var folioWidth = $(window).width() - (outerMargins[3] + outerMargins[1]);

	$('#image-area').height(folioHeight);
	//$('#image-container').height(folioHeight);
	if ($('#thumb-holder').length) {
		//$('#thumb-holder').width = 	
	}
	$('.slide').each(function() { $(this).height(folioHeight).width($(window).width()); });
	//	
	if (doImages) {
		//fitAllImages('.left-image', folioWidth, folioHeight, 10);
		$('.left-image').each(function() { resizeImage($(this).children('img').first()); });
	}
}

function resizeOverview(api) {

	$('#image-area').height($(window).height() - (parseInt($('#image-area').offset().top) + outerMargins[2]));
	if ($('#thumb-container').hasClass('overview')) {
		spreadThumbs();
	}
	if (typeof api=="object") {
		api.reinitialise();
	}
}

function resizeImage(target) {
	//	
	fitArea(target, "fit", false, target.attr('width'), target.attr('height'), target.parents('.slide').first().width()/2, target.parents('.slide').first().height(), [40,0,40,120]);
}

function fitAllImages(imgClass, availWidth, availHeight, gap) {
	//
	var counter = 0;
	//
	$('#image-container').find(imgClass).each(function() {
	  //
	  var left = $(this).children('img');
	  var right = $(this).next().children('img');
	  //
	  if ($(left).length) {
	  	var leftOldWid = cssToInt($(left).css("width")); //parseInt(imageArray[counter]['left-width']); // $(left).outerWidth(); //
	  	var leftOldHei = cssToInt($(left).css("height")); //parseInt(imageArray[counter]['left-height']); // $(left).outerHeight(); 	//
	  }
	  if ($(right).length) {
	  	  var rightOldWid = cssToInt($(right).css("width")); //parseInt(imageArray[counter]['right-width']); // $(right).outerWidth(); //
	  	  var rightOldHei = cssToInt($(right).css("height")); //parseInt(imageArray[counter]['right-height']); // $(right).outerHeight(); //
	  }
	  //
	  if ($(right).length) {
		  var leftProportion = leftOldWid / (leftOldWid+rightOldWid);
		  var leftWid = Math.round((availWidth)*leftProportion);
	  } else {
		  var leftWid = availWidth-gap;
      }
	  //
	  var scaleAmt = Math.min((availHeight/leftOldHei), (availWidth/leftOldWid));
	  //
	  var offset = 0; //var offset = imageArray[counter]['left-offset'] ? Math.round(parseInt(imageArray[counter]['left-offset'])*scaleAmt) : 0;
	  setDimensionsTofitArea($(left), leftWid, availHeight, leftOldWid, leftOldHei, new Array(offset,offset,offset,offset));
	  if ($(right).length) {
		  //alert(imageArray[counter]['right-offset']);
		  //var offset = imageArray[counter]['right-offset'] ? Math.round(parseInt(imageArray[counter]['right-offset'])*scaleAmt) : 0;
		  var offset = 0;
		  setDimensionsTofitArea($(right), availWidth-leftWid, availHeight, rightOldWid, rightOldHei, new Array(offset,offset,offset,offset));
		  $(this).next().css("marginLeft", cssToInt($(left).css("width"))+gap);
		  //$(this).next().css("marginLeft", gap);
	  }								   
	  counter++;						   
	});
}

var opts;
var startingSlide = window.location.hash ? window.location.hash.replace("#", "") : 0;

function startCycle(target) {
	//alert(startingSlide);
	// start cycle options
	//
    opts = $(target)
	.cycle({
    fx:     'fade',
	sync:	false,
    speedIn:  400,
	speedOut:	200,
	//easeOut: 'easeOutQuad',
    timeout: 0,
    next:   '.hit-right',
    prev:   '.hit-left',
	slideResize: 0,
	//containerResize: 0,
	//before: resizeImage,
    startingSlide: startingSlide
    }).data('cycle.opts');
	
	try {
		if (opts.slideCount) {
			// fade in next/prev buttons
			//
			$('.next').fadeIn('slow');
			$('.prev').fadeIn('slow');
		}
	} catch(err) {
		//doReveal = true;
	}
}

$(document).ready(function() {
	//
	$('.drop-down-handle').click(function() {
		openDropDown($(this));
	});
	
	// if we're not on a pictures page and pictures is clicked
	// move the nav leftwards on click
	$('#pictures-button').bind('click', function() {
		//
		if ($('#nav-left').hasClass('closed')) {
			$('#pictures').css("display", "inline-block");
			$('#nav-left').switchClass('closed', 'open', 800);
			$('#nav-right .nav-item').fadeIn(800, function() { $(this).removeClass('hidden'); });
		}
	});
});
