// Variables

var distance = 0;

var toChange=new Array("blog","about","events","links","book","articles","cpotter");

var base=new Array();
base['width']=60;
base['everything']=880;
base['blog-x']=640;
base['blog-y']=50;
base['about-x']=170;
base['about-y']=290;
base['events-x']=760;
base['events-y']=170;
base['links-x']=760;
base['links-y']=310;
base['book-x']=30;
base['book-y']=230;
base['articles-x']=480;
base['articles-y']=90;
base['cpotter-x']=30;
base['cpotter-y']=30;
base['text']=2;

var stages = new Array(0,0.2,0.4,0.6,0.9,1);

var articles_sizes = events_sizes = cpotter_sizes = about_sizes = blog_sizes=new Array(base['width'],base['width']*2,base['width']*8);
var book_sizes = links_sizes = new Array(base['width']*2,base['width']*4,base['width']*16);

var everything_sizes=new Array(base['everything'],base['everything']*2,base['everything']*8);
var proportions=new Array(new Array(1,2,8),new Array(0.5,1,4),new Array(0.125,0.25,1));

var blog_x=new Array(base['blog-x'],base['blog-x']*2,base['blog-x']*8);
var about_x=new Array(base['about-x'],base['about-x']*2,base['about-x']*8);
var events_x=new Array(base['events-x'],base['events-x']*2,base['events-x']*8);
var links_x=new Array(base['links-x'],base['links-x']*2,base['links-x']*8);
var book_x=new Array(base['book-x'],base['book-x']*2,base['book-x']*8);
var articles_x=new Array(base['articles-x'],base['articles-x']*2,base['articles-x']*8);
var cpotter_x=new Array(base['cpotter-x'],base['cpotter-x']*2,base['cpotter-x']*8);

var blog_y=new Array(base['blog-y'],base['blog-y']*2,base['blog-y']*8);
var about_y=new Array(base['about-y'],base['about-y']*2,base['about-y']*8);
var events_y=new Array(base['events-y'],base['events-y']*2,base['events-y']*8);
var links_y=new Array(base['links-y'],base['links-y']*2,base['links-y']*8);
var book_y=new Array(base['book-y'],base['book-y']*2,base['book-y']*8);
var articles_y=new Array(base['articles-y'],base['articles-y']*2,base['articles-y']*8);
var cpotter_y=new Array(base['cpotter-y'],base['cpotter-y']*2,base['cpotter-y']*8);

var text_sizes=new Array(base['text'],base['text']*2,base['text']*8);

var TIMER;
var milisec=1;
var seconds=4;

var currentStage = 0;

// zooming variables

var text_DIFF = 0;

var everything_sizes_DIFF = 0;

var cpotter_sizes_DIFF = 0;
var book_sizes_DIFF = 0;
var about_sizes_DIFF = 0;
var events_sizes_DIFF = 0;
var articles_sizes_DIFF = 0;
var blog_sizes_DIFF = 0;
var links_sizes_DIFF = 0;

var cpotter_x_DIFF = 0;
var book_x_DIFF = 0;
var about_x_DIFF = 0;
var events_x_DIFF = 0;
var blog_x_DIFF = 0;
var articles_x_DIFF = 0;
var links_x_DIFF = 0;

var cpotter_y_DIFF = 0;
var book_y_DIFF = 0;
var about_y_DIFF = 0;
var events_y_DIFF = 0;
var articles_y_DIFF = 0;
var blog_y_DIFF = 0;
var links_y_DIFF = 0;

var window_x_DIFF = 0;
var window_y_DIFF = 0;
var XA = 0;
var XB = 0;
var YA = 0;
var YB = 0;

var to;
var objID;


// Functions

function findPos(objID) {
	var curleft = curtop = 0;
	var obj = document.getElementById(objID);
	if (obj.offsetParent) {
	do {
		curleft += obj.offsetLeft;
		curtop += obj.offsetTop;
	} while (obj = obj.offsetParent);
	return [curleft,curtop];
	}
}

function zoomIn(zoomstage){
	var X;
	var Y;
	
	var before = text_sizes[currentStage];
	changeValue(currentStage,zoomstage);
	var after = getSizes();
	
	var change = (((after - before) / stages[zoomstage]) + before) / after;
	
	if (objID){
		obj_position = findPos(objID);
		XB = Math.round(obj_position[0] * change) - 100;
		YB = Math.round(obj_position[1] * change) - 100;
	} else {
	}
	
	window_x_DIFF = XB - XA;
	window_y_DIFF = YB - YA;
	
	X = XA + Math.round(window_x_DIFF * stages[zoomstage]);
	Y = YA + Math.round(window_y_DIFF * stages[zoomstage]);
	
	window.scrollTo(X,Y);
	
	//alert(change);
	//alert(X + "," + Y);
	//alert("to = "+to+", objID = "+objID);
}

function display(){
	if (milisec==0){
		if (seconds==4){
			zoomIn(1);
		} if (seconds==3){
			zoomIn(2);
		} if (seconds==2){
			zoomIn(3);
		} if (seconds==1){
			zoomIn(4);
		} if (seconds==0){
			zoomIn(5);
			milisec=2;
			seconds=4;
			clearTimeout(TIMER);
			if (to == 0){
			
				setLinks("on","on");
				
				// old version - only headings are clickable if zoomed out
				//setLinks("on","off");
			} else if (to == 1){
				setLinks("off","on"); 
			} else if (to == 2){
				setLinks("off","off"); 
			}
			return;
		}
	}
	if (milisec<=0){ 
		milisec=2 ;
		seconds-=1 ;
	}
	if (seconds<=-1){ 
		milisec=0 ;
		seconds+=1;
	}
	
	else
		milisec-=1;
		TIMER = setTimeout("display()",1);
}

function changeValue(value,zoomstage){
	for (i=0; i<(toChange.length); i++){
		var a = document.getElementById(toChange[i]);
		var newWidth = Math.round( eval(""+toChange[i]+"_sizes"+"["+value+"]") + (eval(""+toChange[i]+"_sizes_DIFF") * stages[zoomstage]) );
		var newX = Math.round( eval(""+toChange[i]+"_x"+"["+value+"]") + (eval(""+toChange[i]+"_x_DIFF") * stages[zoomstage]) );
		var newY = Math.round( eval(""+toChange[i]+"_y"+"["+value+"]") + (eval(""+toChange[i]+"_y_DIFF") * stages[zoomstage]) );
		//alert(newWidth + "," + newX + "," + newY);
		document.getElementById(toChange[i]).style.width = newWidth + "px";
		document.getElementById(toChange[i]).style.top = newY + "px";
		document.getElementById(toChange[i]).style.left = newX + "px";
	}
	
	a = document.getElementById("everything");
	newWidth = Math.round( eval("everything_sizes"+"["+value+"]") + eval(everything_sizes_DIFF * stages[zoomstage]) );
	document.getElementById("everything").style.fontSize = text_sizes[value] + (text_DIFF * stages[zoomstage])  + "px"; 
	
	document.getElementById("everything").style.width = newWidth + "px"; 
	
	newWidth = Math.round( eval("blog_sizes"+"["+value+"]") + (eval("blog_sizes_DIFF") * stages[zoomstage]) );
	var allTags = document.getElementsByTagName('img');
	for (i=0; i<(allTags.length); i++) {
			allTags[i].style.width = newWidth + "px";
	}
	
	var ukJacket = document.getElementById('uk-jacket');
	ukJacket.style.width = (newWidth * 2) + "px";
	
	var usJacket = document.getElementById('us-jacket');
	usJacket.style.width = (newWidth * 2) + "px";
	
}

function f_clientWidth() {
	return f_filterResults (
		window.innerWidth ? window.innerWidth : 0,
		document.documentElement ? document.documentElement.clientWidth : 0,
		document.body ? document.body.clientWidth : 0
	);
}
function f_clientHeight() {
	return f_filterResults (
		window.innerHeight ? window.innerHeight : 0,
		document.documentElement ? document.documentElement.clientHeight : 0,
		document.body ? document.body.clientHeight : 0
	);
}
function f_scrollLeft() {
	return f_filterResults (
		window.pageXOffset ? window.pageXOffset : 0,
		document.documentElement ? document.documentElement.scrollLeft : 0,
		document.body ? document.body.scrollLeft : 0
	);
}
function f_scrollTop() {
	return f_filterResults (
		window.pageYOffset ? window.pageYOffset : 0,
		document.documentElement ? document.documentElement.scrollTop : 0,
		document.body ? document.body.scrollTop : 0
	);
}
function f_filterResults(n_win, n_docel, n_body) {
	var n_result = n_win ? n_win : 0;
	if (n_docel && (!n_result || (n_result > n_docel)))
		n_result = n_docel;
	return n_body && (!n_result || (n_result > n_body)) ? n_body : n_result;
}

function setupStages(){

	var before = getSizes();
	
	var b = 0;
	
	if (before == 2){
		b = 0;
	} else if (before == 4){
		b = 1;
	} else if (before == 16){
		b = 2;
	}
	
	currentStage = b;
	
	var a = to;
	
	text_DIFF = text_sizes[a] - text_sizes[b];
	
	everything_sizes_DIFF = everything_sizes[a] - everything_sizes[b];
	
	cpotter_sizes_DIFF = cpotter_sizes[a] - cpotter_sizes[b];
	book_sizes_DIFF = book_sizes[a] - book_sizes[b];
	about_sizes_DIFF = about_sizes[a] - about_sizes[b];
	events_sizes_DIFF = events_sizes[a] - events_sizes[b];
	articles_sizes_DIFF = articles_sizes[a] - articles_sizes[b];
	blog_sizes_DIFF = blog_sizes[a] - blog_sizes[b];
	links_sizes_DIFF = links_sizes[a] - links_sizes[b];
	
	cpotter_x_DIFF = cpotter_x[a] - cpotter_x[b];
	book_x_DIFF = book_x[a] - book_x[b];
	about_x_DIFF = about_x[a] - about_x[b];
	events_x_DIFF = events_x[a] - events_x[b];
	articles_x_DIFF = articles_x[a] - articles_x[b];
	blog_x_DIFF = blog_x[a] - blog_x[b];
	links_x_DIFF = links_x[a] - links_x[b];
	
	cpotter_y_DIFF = cpotter_y[a] - cpotter_y[b];
	book_y_DIFF = book_y[a] - book_y[b];
	about_y_DIFF = about_y[a] - about_y[b];
	events_y_DIFF = events_y[a] - events_y[b];
	articles_y_DIFF = articles_y[a] - articles_y[b];
	blog_y_DIFF = blog_y[a] - blog_y[b];
	links_y_DIFF = links_y[a] - links_y[b];
	
	XA = f_scrollLeft();
	YA = f_scrollTop();
	YB = XB = 0;
	
	var after = text_sizes[to];
	var change = after / before;
	
	//changeValue(a,0);
	
	if (to == 0){
		///window_x_DIFF = 0;
		//window_y_DIFF = 0;
	} else {
		if (objID){
			obj_position = findPos(objID);
			XB = Math.round(obj_position[0] * change) - 100;
			YB = Math.round(obj_position[1] * change) - 100;
		} else {
			//XB = Math.round(XA * change) - 100;
			//YB = Math.round(YA * change) - 100;
		}
	}
	
	window_x_DIFF = XB - XA;
	window_y_DIFF = YB - YA;
	
	//changeValue(b,0);
	
	giveMargin(1);

}

function zoom(Xto,XobjID) {
	to = Xto;
	objID = XobjID;
	setupStages();
	display();
	
}

function getSizes(){
	if (document.getElementById("everything").style.fontSize){
		var sizes = document.getElementById("everything").style.fontSize;
		var sizes = sizes.replace("px", "");
		return sizes;
	} else {
		return 2;
	}
}

function giveMargin(to){
	if (navigator.appName == "Microsoft Internet Explorer"){
	} else {
		document.getElementById("everything").style.paddingRight = (f_clientWidth() - 200) + "px";
		document.getElementById("about").style.paddingBottom = (f_clientHeight() - 200) + "px";
		document.getElementById("articles").style.paddingBottom = (f_clientHeight() - 200) + "px";
		document.getElementById("blog").style.paddingBottom = (f_clientHeight() - 200) + "px";
	}
}

function changeMapText(text){
	if (!text){
		text = "Navigation";
		var out = true;
		var colour = "#AAAAAA";
	} else {
		var out = false;
		var colour = "#000000";
	}
	document.getElementById("map-hilight").innerHTML = text;
	document.getElementById("map-hilight").style.color = colour;

}

function setLinks(heading_links,item_links){
	
	if (heading_links == "off"){
		var allTags = document.getElementsByTagName('span');
		for (i=0; i<(allTags.length); i++) {
			if (allTags[i].className == "zoom"){
				allTags[i].style.display = "inline";
			}
		}
		var allTags = document.getElementsByTagName('a');
		for (i=0; i<(allTags.length); i++) {
			if (allTags[i].className == "zoom"){
				allTags[i].style.display = "none";
			}
		}
	} else if (heading_links == "on"){
		var allTags = document.getElementsByTagName('span');
		for (i=0; i<(allTags.length); i++) {
			if (allTags[i].className == "zoom"){
				allTags[i].style.display = "none";
			}
		}
		var allTags = document.getElementsByTagName('a');
		for (i=0; i<(allTags.length); i++) {
			if (allTags[i].className == "zoom"){
				allTags[i].style.display = "inline";
			}
		}
	}
	
	if (item_links == "off"){
		var allTags = document.getElementsByTagName('span');
		for (i=0; i<(allTags.length); i++) {
			if (allTags[i].className == "zoom2"){
				allTags[i].style.display = "inline";
			}
		}
		var allTags = document.getElementsByTagName('a');
		for (i=0; i<(allTags.length); i++) {
			if (allTags[i].className == "zoom2"){
				allTags[i].style.display = "none";
			}
		}
	} else if (item_links == "on"){
		var allTags = document.getElementsByTagName('span');
		for (i=0; i<(allTags.length); i++) {
			if (allTags[i].className == "zoom2"){
				allTags[i].style.display = "none";
			}
		}
		var allTags = document.getElementsByTagName('a');
		for (i=0; i<(allTags.length); i++) {
			if (allTags[i].className == "zoom2"){
				allTags[i].style.display = "inline";
			}
		}
	}
	
	if (heading_links == "on" && item_links == "on"){ // Home
		document.getElementById('map-position').style.display = 'none';
		document.getElementById('off-map-position').style.display = 'block';
	} else {
		document.getElementById('map-position').style.display = 'block';
		document.getElementById('off-map-position').style.display = 'none';
	}
	
}

function contact(){
	var contactform = document.getElementById("contact-form").style.display;
	if (contactform == "none" || contactform == "" || contactform == undefined || contactform == null){
		document.getElementById("contact-form").style.display = "block";
	} else {
		document.getElementById("contact-form").style.display = "none";
	}
}

$(document).ready(function(){
	$('.medialoader img, .medialoader div').bind('click',function(){
		$("#medialoading").fadeIn('fast');
		$("#mediaclose").fadeIn('fast');
		$("#mediabackground").fadeIn('fast');
		$("#mediadisplay").fadeIn('fast');
		$("#everything").css("position","fixed");
		var id = $(this).parent().attr('id');
		$.get("/wp-content/themes/Potter/media.php", { 'video_audio_id': id }, function(data){
				$("#mediacontent").html(data);
				$("#medialoading").hide();
		});
	});
	$('#mediaclose .button').bind('click',function(){
		$("#medialoading").stop(true).hide();
		$("#mediaclose").stop(true).hide();
		$("#mediacontent").stop(true).empty();
		$("#mediadisplay").stop(true).fadeOut('fast');
		$("#mediabackground").stop(true).fadeOut('fast');
		$("#everything").css("position","absolute");
	});
	
});
