// JavaScript Document
$(document).ready(function(){
	//replaceJovers();
	
	showBoxesWhite(".project",0.8,500);
	showBoxes(".icons .nc_1",0.8,200);
	setupBoxes(".icons .nc_1",0.9,200);
		
	showBoxesWhite(".contact",0.8,500);
	showBoxesWhite(".about",0.8,500);	
	
		
	
});

var TEST = false;


function showIgloo(){

}

function randomiseArray(){
	return (Math.round(Math.random())-0.5);
}

function showBoxes(selector,time,speed){

	var boxes = $(selector);
	
	var total = boxes.length;

	boxes.sort( randomiseArray );

	var interval = time * 1000 / total;

	var delay = 250;

	boxes.each(function(index){
		var box = $(this);
		//if(index == 0) box.parent().show();
		unhide(box.parent());
		box.fadeTo(0,0);
		box.show();		
		window.setTimeout(function(){box.fadeTo(speed,1)}, index * interval + delay);
	});

}

function showBoxesWhite(selector,time,speed){

	var boxes = $(selector).children("div");
	
	var total = boxes.length;

	boxes.sort( randomiseArray );

	var interval = time * 1000 / total;

	var delay = 250;

	boxes.each(function(index){
		var box = $(this);
		uncover(box.parent());
		var w = box.width() + iQuery.px2int(box.css("paddingLeft")) + iQuery.px2int(box.css("paddingRight"));
		var h = box.height() + iQuery.px2int(box.css("paddingTop")) + iQuery.px2int(box.css("paddingBottom"));
		var p_t = iQuery.px2int(box.css("paddingTop"));
		var p_l = iQuery.px2int(box.css("paddingLeft"));
		box.prepend("<div class='cover'>&nbsp;</div>");
		var cover = box.find(".cover");
		cover.css("background-color",TEST ? "#00ffff" : "#ffffff").css("width",w+"px").css("height",h+"px").css("position","absolute");
		if(p_l) cover.css("marginLeft","-"+p_l+"px");
		if(p_t)	cover.css("marginTop","-"+p_t+"px");
		if(!TEST){
			var t = window.setTimeout(function(){cover.fadeOut(speed,function(){$(this).remove()})}, index * interval + delay);
			cover.data("timerID",t);			
		}

	});

}

function unhide(obj){
	obj.css("opacity",1);
	obj.css("filter","alpha(opacity=100)");	
	obj.css("filter","");		
}

function uncover(obj){
	obj.css("opacity",1);
	obj.css("filter","alpha(opacity=100)");	
	obj.css("filter","");	
	var cover = obj.children(".cover");
	if(cover.length){
		var t = cover.data("timerID");
		if(t) clearTimeout(t);
		cover.remove();
	}
}

function setupBoxes(selector,opacity,speed){

	var boxes = $(selector);
	
	boxes.each(function(index){
		var box = $(this);
		
		//Add elements for rollovers and background
		//box.wrapInner("<div class='content'>");
		//box.append("<div class='content_background'>&nbsp;</div>");
		
		//Assign variables to elements
		var content = box.find("div");
		//var content_background = box.find(".content_background");

		//var padding = box.css("padding");
		//box.css("padding","0");
		//content.css("padding",padding);
		//Set width of transparency

		//content_background.width(box.width());
		//content_background.height(box.height());

		//Css the content boxes
		//content.css({position:'absolute','z-index':1});
		//content_background.css({'background':'#089df9','position':'absolute'});
		
		//Set opacity to zero
		content.fadeTo(0,0);
		//content_background.fadeTo(0,0);
		
		//Hover over
		box.hover(function(){

		  	content.stop();
			//content_background.stop();
			
			content.fadeTo(0,opacity);
			//content_background.fadeTo(0,100);
			
			box.css('cursor','pointer');
			
		},function(){
		  	content.fadeTo(speed,0);
			//content_background.fadeTo(speed,0);
			
			box.css('cursor','default');
		});
		
		//On click
		box.click(function(){
			var a = box.find("a");
			window.location.href = a.attr("href");
		});
		
	});	
}


function replaceJovers(className,overClass,active){
	if(!overClass && overClass !== false) overClass = "over";
	var jovers = $(className ? '.'+className : '.jover');
	jovers.each(function(index){
		var jover = $(this);
		var over = jover.attr("data-jover");
		var out = jover.attr("data-joff");
		var href = jover.find("a").attr("href");
		if(active) href = jover.find("a."+active).attr("href");
		var anc = $(this).find('a.button');
		var active_anc = anc;
		if(active) active_anc = $(this).find('a.button.'+active);
		active_anc.wrap('<span class="button_span" />');
		var spa = $(this).find('span.button_span');
		if(active) spa = $(this).find('span.button_span');
		var p = $(this).find('p');
		jover.hover(function(){
			if(over) jover.css('backgroundImage',"url('"+over+"')");
			jover.css('cursor',"pointer");
			if(overClass) jover.addClass(overClass);
			//anc.addClass('button_over');
			if(overClass) spa.addClass('span_over');
			if(overClass) p.addClass('hover');
		},function(){
			if(out) jover.css('backgroundImage',"url('"+out+"')");
			jover.css('cursor',"auto");
			if(overClass) jover.removeClass(overClass);
			//anc.removeClass('button_hover');
			if(overClass) spa.removeClass('span_over');
			if(overClass) p.removeClass('hover');
		});
		jover.click(function(){
			window.location.href = href;
		})
		//Preload
		var img = new Image();
		img.src = over;
	});
	
}

//Gmap
//V1-01 - 01/02/2011
function Gmap(){
	this.map = false;
	
	this.init = function(_container,_lat,_long,_zoom){
		var d = document.getElementById(_container);
		if(!d) return false;
		
		var h = $(d).height();
		h = h > 40 ? h : 500;
		$(d).css("height",h);	
		

		var latlng = new google.maps.LatLng(_lat, _long);

	
		var myOptions = {
		  zoom: _zoom,
		  center: latlng,
		  mapTypeId: google.maps.MapTypeId.ROADMAP,
		  scrollwheel: true,
		  mapTypeControlOptions: {
			  mapTypeIds:[]
		  }
		};
		this.map = new google.maps.Map(d, myOptions);
		return this.map;
	};
	
	this.addMarker = function(_lat,_long,_title){
		if(!this.map) return false;
		var marker = new google.maps.Marker({
			position: new google.maps.LatLng(_lat, _long),
			map: this.map, 
			title:_title
		}); 
		return marker;
	}
	
this.init.apply(this,arguments);}

//iQuery - various jquery functions
//V001 - 01/03/2011 - Make
var iQuery = {init:function(){
	
	this.setMargin = function(object,margin){

		object	.css("marginTop",	margin && margin[0] ? margin[0] : 0)
				.css("marginRight",	margin && margin[1] ? margin[1] : 0)
				.css("marginBottom", margin && margin[2] ? margin[2] : 0)
				.css("marginLeft",	margin && margin[3] ? margin[3] : 0)
	}
	
	this.getMargin = function(object){
		var m = [this.px2int(object.css("marginTop")),this.px2int(object.css("marginRight")),this.px2int(object.css("marginBottom")),this.px2int(object.css("marginLeft"))];		
		return m;
	}
	
	this.px2int = function(px){
		var px = "" + px;
		var l = px.length;
		var e = px.substr(l-2,2);
		if(e == "px"){
			px = px.substr(0,l-2);
		}
		return px*1;
	}
}}; iQuery.init();
