Cufon.replace('.menuNormal');
//Cufon.replace('#header');

jQuery.noConflict;

var sItem 				= "";
var lastUrl				= "";
var currentUrl			= "";
var visitedPages 		= new Array(window.location.pathname);
var	currentBackground 	= 1;
var postForm			= false;
var pageRendered		= false;

function goBack(){
	visitedPages.pop();
	if (visitedPages.length > 0) {
		loadPage(visitedPages.pop());
	}
}

if (jQuery.browser.msie) {
	if(jQuery.browser.version != 9.0) {
		var simple = true;
	}
}

function setHeight(customHeight) {
	//jQuery("div#overLayer").css('height', getClientDocumentHeight()+'px');
	//jQuery("div#underLayer").css('height', getClientDocumentHeight()+'px');

	if (!customHeight) {
		customHeight = 0;
	}

	jQuery("div#mainContentMiddleContainer").animate({
			height: jQuery("div#mainContent").height()-10+customHeight});


	if (pageRendered == true) {
		var height = Math.max(980,jQuery("div#mainContent").height()+251, jQuery("div#leftContentContainer").height()+390 );

		jQuery("div#overLayer").animate({height: (height+customHeight)+'px'}, 200);
		jQuery("div#underLayer").animate({height: (height+customHeight)+'px'}, 200);

	}

	activateLinks();


}

function setContentHeight(height){

	setHeight(height);

}

function renderPage(quick, skipInit) {

	if (quick) {
		var s100 = 0;
		var s200 = 0;
		var s300 = 0;
		var s400 = 0;
	} else {
//		var s100 = 100;
//		var s200 = 200;
//		var s300 = 300;
//		var s400 = 400;
//		var s500 = 500;
		var s100 = 300;
		var s200 = 400;
		var s300 = 500;
		var s400 = 600;

	}

//	setHeight();

	jQuery("div#mainContent").css('display', 'none');
	if(!simple) {
		jQuery("div#mainContentContainer").animate({ opacity: '1.0' }, s200, function() {
			jQuery("div#mainContentContainer").css('opacity','none');
		});
	} else {

	}


	if (jQuery("div#mainContent").height() > 400 && !quick ) {
		var speed = 900;
	} else {
		var speed = s400;
	}

	jQuery("div#mainContentMiddleContainer").animate({
			height: jQuery("div#mainContent").height()-10
		}, speed,  function() {
			if(!simple) {
				jQuery("div#mainContent").fadeIn(s300, function () {
					showMenu(skipInit, quick);
				});
			} else {
				jQuery("div#mainContent").css('display', 'block');
				showMenu(skipInit, quick);
			}

		var currentContentHeight = jQuery("div#mainContent").height();

		if (jQuery("div#Sidebar").length > 0){
			jQuery("div#leftContentTopContainer span.title").html(jQuery("div#Sidebar").attr('ref'));
			jQuery("div#sideBarContent").html(jQuery("div#Sidebar").html());

			if (simple) {
				jQuery("div#sideBarContainer").css('opacity','none');
				jQuery("div#sideBarContainer").fadeIn(0);

				jQuery("div#hiddenContainerSpacer").animate({ height: jQuery("div#sideBarElements").height()+100 }, s200);
			} else {
				jQuery("div#hiddenContainerSpacer").animate({ height: jQuery("div#sideBarElements").height()+100 }, s200, function() {
					jQuery("div#sideBarContainer").fadeTo(s200,1.0);
				});
			}
		} else {
			if (simple) {
				jQuery("div#hiddenContainerSpacer").animate({ height: 0 }, s200, function() {
					jQuery("div#sideBarContainer").fadeOut(0);
					jQuery("div#sideBarContent").html('');

				});
			} else {
				jQuery("div#sideBarContainer").fadeTo(s200, 0.0, function() {
					jQuery("div#hiddenContainerSpacer").animate({ height: 0 }, s200, function() {
						jQuery("div#sideBarContent").html('');
					});
				});
			}
		}

		/*
		if (jQuery("div#sideBarElements").height()+80+jQuery("ul#twitter_update_list").height()+600 > currentContentHeight) {

		}
		*/

		if (quick) {
			setHeight();
		} else {
			setTimeout("setHeight()", 300);
		}

	});

	var cItem = jQuery("span#pageID").attr('ref');
	jQuery("div#hover_"+cItem).css('display', 'block');
	jQuery("div#default_"+cItem).css('display', 'none');


	/*
	if (jQuery("div#Sidebar").length && jQuery("div#menuItems"+jQuery("div#Sidebar").attr('ref')+" > .submenuNormal").size() > 0) {
		var timeOut = 75;
		var item 	= 1;
		var total	= jQuery(".menuNormal").size();
		var cItem	= jQuery("div#Sidebar").attr('ref');
		var tHeight	= -10;
		var iFound	= 0;
		if (sItem != cItem) {
			jQuery(".menuNormal").each(function() {
				setTimeout("hideMenuItem('"+this.id+"', '"+total+"', '"+item+"', '"+cItem+"')", timeOut);
				if (this.id != cItem) {
					timeOut =timeOut+75;
					item++;
					if (iFound == 0) {
						tHeight = tHeight + jQuery("#"+this.id).height();
					}
				} else {
					iFound = 1;
					item++;
				}
			});

			jQuery("#"+cItem).animate({ top:'-='+tHeight }, s300);
			jQuery("#"+cItem).css( 'background-position','right 50px' );
			jQuery("#sub"+cItem).css('display', 'block');
			jQuery("div#hover_"+cItem).css('display', 'none');
			jQuery("div#default_"+cItem).css('display', 'block');

		}

		sItem = cItem;

	} else {
		if (sItem) {
			hideSubmenu(sItem);
		}

	}
	*/

//	activateLinks();

	if (jQuery("#mainContent h1").html() == null) {
		document.title = 'Sandy Dane';
		if (jQuery("#mainContent h2").html() != null) {
			document.title = jQuery("#mainContent h2").html()+' .:. Sandy Dane';
		}
	} else {
		document.title = jQuery("#mainContent h1").html()+' .:. Sandy Dane';
	}

}


function showMenu(skipInit, quick){
	if (quick) {
		jQuery("div#menuItems div.menuNormal").fadeTo(0,1.0);
	} else {
			var timeOut = 75;
			var item 	= 1;
			var total	= jQuery(".menuNormal").size();
			jQuery(".menuNormal").each(function() {
				setTimeout("showMenuItem('"+this.id+"', '"+total+"', '"+item+"','"+skipInit+"')", timeOut);
				timeOut =timeOut+75;
				item++;
			});
	}
}

function showSubmenu(cItem) {
	if(!simple) {
		jQuery("#menu"+cItem).fadeIn(400);
	} else {
		jQuery("#menu"+cItem).slideDown(400);
	}

	jQuery("span#menuBackButton").animate({ left: '5' }, 300);

	var aHeight = 13;
	if (jQuery("#menuItems"+cItem+" > .submenuNormal").size() == 1 ) {
		var aHeight = aHeight + 13;
	}

	if (jQuery("div#menuContainer").height() < jQuery("div#menuItems"+cItem).height()+aHeight+200) {

		jQuery("div#menuContainer").animate({
			height: jQuery("div#menuItems"+cItem).height()+aHeight+200
		},200);

		jQuery("div.submenuContainer").animate({
			height: jQuery("div#menuItems"+cItem).height()+aHeight+200
		},200);


	}

	jQuery("div#menuMiddleContainer").animate({
		height: jQuery("div#menuItems"+cItem).height()+aHeight
	},200);

	jQuery("div#menuMiddleContainer"+cItem).animate({
			height: jQuery("div#menuItems"+cItem).height()-65
		}, 400,  function() {
			var timeOut = 75;
			var item 	= 1;
			var total	= jQuery("#menuItems"+cItem+" > .submenuNormal").size();
			jQuery("#menuItems"+cItem+" > .submenuNormal").each(function() {
				setTimeout("showsubMenuItem('"+this.id+"', '"+total+"', '"+item+"')", timeOut);
				timeOut =timeOut+75;
				item++;
		});
	});
}

function hideSubmenu(cItem) {
	sItem 		= "";
	currenItem  = "";
	var timeOut = 75;
	var item 	= 1;
	var total	= jQuery("#menuItems"+cItem+" > .submenuNormal").size();

	jQuery("span#menuBackButton").animate({ left: '-20' }, 300);

	jQuery("#menuItems"+cItem+" > .submenuNormal").each(function() {
		setTimeout("hidesubMenuItem('"+this.id+"', '"+total+"', '"+item+"')", timeOut);
		timeOut =timeOut+75;
		item++;
	});

	if(!simple) {
		jQuery("#menu"+cItem).fadeOut(400, function() {
			jQuery("#sub"+cItem).css('display', 'none');
			jQuery("div#menuMiddleContainer"+cItem).css('height', '0px');
		});
	} else {
		jQuery("#menu"+cItem).slideUp(400, function() {
			jQuery("#sub"+cItem).css('display', 'none');
			jQuery("div#menuMiddleContainer"+cItem).css('height', '0px');

		});
	}
	jQuery("#"+cItem).animate({ left: '-=200' }, 300, function() {
		jQuery("#"+cItem).css('top', '0px');
		jQuery("#"+cItem).css( 'background-position','right 35px' );
	});

}

function locationIsHashtag(){

	url = window.location.hash;

	if (url.search("#!") == -1 ) {
		return false;
	} else {
		return true;
	}
}


function loadPageFromHistory(url) {
	if (url != lastUrl) {
		loadPage(url);
	}
}

function loadPageFromHashTag(){

	url = window.location.hash;

	if (url.search("#!") == -1 ) {
		return false;
	}

	url = url.replace('#!', '');
	if (url != '') {
		 loadPage(url);
	} else {
		return false;
	}
}

function loadPage(url) {

	if (url != currentUrl) {
		currentUrl = url;
	} else {
		return false;
	}

	if (url == "/") {
		var url = "/home/ajax/";
	}

	if (url == "/home/") {
		var url = "/home/ajax/";
	}


	visitedPages.push(url);

	if(!simple) {
		jQuery("div#mainContent").fadeOut(100, function () {
			loadContent(url);
		});
	} else {
		jQuery("div#mainContent").css('display', 'none');
		loadContent(url);
	}

	lastUrl = url;
}


function showMenuItem(item, total, current, skipInit) {
	jQuery("#"+item).fadeTo("fast", 1.0);
	/*
	if(current == total && skipInit == 0) {
		setTimeout("renderPage()",300);
	}
	*/
}

function hideMenuItem(item, total, current, cItem) {
	if (item != cItem) {
		jQuery("#"+item).animate({ left: '-200' }, 300);
	}
	if(current == total) {
		showSubmenu(cItem);
	}
}

function showsubMenuItem(item, total, current) {
	if(!simple) {
		jQuery("#"+item).animate({ opacity: '1.0' }, 300);
	} else {
		jQuery("#"+item).css('opacity','none' );
	}
	/*if(current == total) {
		setTimeout("renderPage()",300);
	}*/

}

function hidesubMenuItem(item, total, current) {
	if(!simple) {
		jQuery("#"+item).animate({ opacity: '0.0' }, 300);
	} else {
		jQuery("#"+item).css('display', 'none' );
	}
	if(current == total) {
		showMenu(1);
	}

}

function togglePostForm() {

	if (postForm) {
		jQuery("div#commentForm").animate({height: 0}, function(){
			setContentHeight(0);
		});
		postForm = false;
	} else {
		setContentHeight(330);
		jQuery("div#commentForm").animate({height: 330});
		postForm = true;
	}

}

function changeBackground(nr){


	if (nr) {

		if (nr == currentBackground) {
			return false;
		}
		currentBackground = nr;

	} else {

		if (currentBackground == 4) {
			currentBackground = 1;
		} else {
			currentBackground++;
		}

	}

	jQuery('div#underLayerPhoto'+currentBackground).animate({ opacity: '1.0' }, 800);
	jQuery('div.background[id!=underLayerPhoto'+currentBackground+']').animate({ opacity: '0.0' }, 800);

}

function updateTwitter() {

	jQuery.ajax({
		type: "GET",
		url: '/sandydane/javascript/feed.php?id=twitter&noCallback=1',
		dataType: 'json',
		cache: false,
		success: function(msg) {
			twitterStatusHTML = [];
			twitterCallback(msg);
			jQuery('#twitter_update_list').html( twitterStatusHTML.join('') );
		},
		error: function(msg){

		}

	});

	setTimeout("updateTwitter()", 60000);

}


function activateLinks() {

	jQuery('.videoLink').fancybox({
		'transitionIn'		: 'elastic',
		'transitionOut'		: 'none',
		'titlePosition'		: 'outside',
		'overlayColor'		: '#000',
		'overlayOpacity'	: 0.7,
		'autoDimensions'	: false,
		'autoScale'			: false,
		'padding'			: 1,
		'height'			: 360,
		'width'				: 640,
		'type'				: 'iframe'
	});

	/*
	jQuery('a.facebook').fancybox({
		'transitionIn'		: 'elastic',
		'transitionOut'		: 'none',
		'titlePosition'		: 'outside',
		'overlayColor'		: '#000',
		'overlayOpacity'	: 0.7,
		'autoDimensions'	: false,
		'autoScale'			: false,
		'padding'			: 1,
		'height'			: 500,
		'width'				: 640,
		'type'				: 'iframe',
	});
	*/

	jQuery("a[rel=gallery]").fancybox({
		'transitionIn'		: 'elastic',
		'transitionOut'		: 'none',
		'titlePosition'		: 'outside',
		'overlayColor'		: '#000',
		'overlayOpacity'	: 0.7,
		'autoDimensions'	: false,
		'autoScale'			: false,
		'padding'			: 1,
		'height'			: 500,
		'titleFormat'		: function(title, currentArray, currentIndex, currentOpts) {
			return '<span id="fancybox-title-over">Image ' + (currentIndex + 1) + ' / ' + currentArray.length + (title.length ? ' &nbsp; ' + title : '') + '</span>';
		}
	});


	jQuery('.videoContainer').bind("mouseenter",function(){
		doHover(this.id);
	}).bind("mouseleave",function(){
		undoHover(this.id);
	});


	PageCommentInterface.applyTo("#PageComments_holder");

	jQuery("a").click(function () {

		var url = jQuery(this).attr('href')

		if (jQuery(this).attr('id').substr(0,8) != 'ViewLink') {

			if (jQuery(this).attr('target') == '') {

				if (url.substr(0,7) == 'http://' ||
					url.substr(0,1) == '#' ||
					url.substr(0,6) == 'mailto'  ||
					url.substr(0,3) == 'www' ||
					url.substr(0,10) == 'javascript' ||
					url.search("#") != -1 ||
					url.search("rss") != -1 ||
					url.search("\/post\/") != -1 ||
					url.search("admin\/") != -1 ||
					url.search("Security\/") != -1 ||
					url.search("\/unpublishPost") != -1) {
					//Just continue
				} else {
					//Use internal AJAX loader
					if (url.search("commentStart") != -1 && url.search("\/ajax\/") == -1) {
						var url = url.replace("?commentStart", "ajax/?commentStart")
					}
					loadPage(url);
					return false;
				}
			}
		}

	});

}

function loadContent(url) {

	jQuery("div#ajax-loader").fadeIn("slow");

	if (url == '/guestbook/') {
		parent.location = '/guestbook/';
		return false;
	}

	jQuery.ajax({
		type: "GET",
		url: url,
		cache: true,
		success: function(msg) {

			frames.ajaxHistory.location = '/sandydane/javascript/ajaxHistory.php?u='+url;

			jQuery("div#mainContent").html(msg);

			setTimeout("renderPage()",150);

			var cMenuId = jQuery('#menuContainer [href='+url+']').attr("ID");

			jQuery("div.submenuDefault").css('display', 'block');
			jQuery("div.submenuHover").css('display', 'none');
			jQuery("div.menuDefault").css('display', 'block');
			jQuery("div.menuHover").css('display', 'none');
			jQuery("div#hover_"+cMenuId).css('display', 'block');
 			jQuery("div#default_"+cMenuId).css('display', 'none');

			if (url == "/contact/") {
				changeBackground(2);
			} else {
				changeBackground(1);
			}

			window.location = '#!'+url;

			/*
			jQuery("div#finalcontent").fadeIn("slow");
			jQuery("div.menuActive").fadeOut("fast");
			jQuery("div#active_"+currenItem).fadeIn("fast");
			*/
			//activateLinks();
			//lightwindowInit();

		},
		error: function(msg){
			jQuery("div#mainContent").html('<h1>Fout tijdens laden pagina</h1><p>Er ging iets fout bij het laden van de pagina. Probeer het later nog eens.<br><br>Excuses voor het ongemak.</p>');
			jQuery("div#underLayerPhoto2").fadeIn(400);
			setTimeout("renderPage()",150);
			jQuery("div#ajax-loader").fadeOut("slow");
			jQuery("div.menuActive").fadeOut("fast");
			jQuery("div#active_"+currenItem).fadeIn("fast");

		}

	});


}

function doHover(layer) {
	jQuery("#Hover"+layer).fadeIn('fast');
}

function undoHover(layer) {
	jQuery("#Hover"+layer).fadeOut('fast');
	jQuery("#Default"+layer).fadeIn('fast');
}


function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}

jQuery.fn.disableSelection = function() {
	$(this).attr('unselectable', 'on')
		.css('-moz-user-select', 'none')
		.each(function() {
				this.onselectstart = function() { return false; };
			});
};


function getClientDocumentHeight() {
	var D = document;
	return Math.max(
		Math.max(D.body.scrollHeight, D.documentElement.scrollHeight),
		Math.max(D.body.offsetHeight, D.documentElement.offsetHeight),
		Math.max(D.body.clientHeight, D.documentElement.clientHeight)
	)-111;
}

function doResize(){
	setHeight();
}


jQuery(document).ready(function(){

	if (locationIsHashtag()) {

		loadPageFromHashTag();

	} else {

		if (readCookie('pageLoaded') == 'yes') {
			renderPage(1,0);
			jQuery("div#underLayer").css('display', 'block');
			jQuery("div#header").css('display', 'block');
		} else {

			renderPage(0,0);

			if(simple) {
				jQuery("div#underLayer").css('display', 'block');
				jQuery("div#header").css('display', 'block');
			} else {
				jQuery("div#mainContentContainer").css('opacity','0.0' );
				jQuery("div#underLayer").fadeIn(500, function() {
					jQuery("div#header").fadeIn(1000);
				});
			}
		}

	}


	if (simple) {
		jQuery(".menuShadow").css("margin-top", "20px");
	}

	createCookie('pageLoaded','yes');
	pageRendered = true;

	currenItem = "s";

	jQuery("div.menuNormal").bind("mouseenter",function(){
		if (currenItem != this.id) {
			if(!simple) {
				jQuery("div#hover_"+this.id).fadeIn("fast");
				jQuery("div#default_"+this.id).fadeOut("fast");
			} else {
				jQuery("div#hover_"+this.id).css('display', 'block');
				jQuery("div#default_"+this.id).css('display', 'none');
			}
		}
	}).bind("mouseleave",function(){
		if (currenItem != this.id) {
			if(!simple) {
				jQuery("div#default_"+this.id).fadeIn("fast");
				jQuery("div#hover_"+this.id).fadeOut("fast");
			} else {
				jQuery("div#default_"+this.id).css('display', 'block');
				jQuery("div#hover_"+this.id).css('display', 'none');
			}
		}
	});


	jQuery("div.menuNormal").click(function () {

		var url = jQuery(this).attr('href')

		loadPage(url);

		currenItem = this.id;

	});

	jQuery("div.submenuNormal").bind("mouseenter",function(){
		if (currenItem != this.id) {
			if(!simple) {
				jQuery("div#subhover_"+this.id).fadeIn("fast");
				jQuery("div#subdefault_"+this.id).fadeOut("fast");
			} else {
				jQuery("div#subhover_"+this.id).css('display', 'block');
				jQuery("div#subdefault_"+this.id).css('display', 'none');
			}
		}
	}).bind("mouseleave",function(){
		if (currenItem != this.id) {
			if(!simple) {
				jQuery("div#subdefault_"+this.id).fadeIn("fast");
				jQuery("div#subhover_"+this.id).fadeOut("fast");
			} else {
				jQuery("div#subdefault_"+this.id).css('display', 'block');
				jQuery("div#subhover_"+this.id).css('display', 'none');
			}
		}
	});

	jQuery("div.youtubeContainer").bind("mouseenter",function(){
		var title = jQuery(this).attr("title");
		jQuery("span#youTitle").fadeOut("fast", function(){
			jQuery("span#youTitle").html(title);
			jQuery("span#youTitle").fadeIn("fast");
		 });
	}).bind("mouseleave",function(){
		jQuery("span#youTitle").fadeOut("fast");

	});

	jQuery("div.submenuNormal").click(function () {

		var url = jQuery(this).attr('href')

		loadPage(url);

		jQuery("div#ajax-loader").fadeIn("slow");

		currenItem = this.id;

	});

	jQuery("span#youTitle").fadeOut(0);

	setTimeout("updateTwitter()", 60000);

	window.onresize = doResize;
	doResize();

	//setTimeout("setHeight()",700);


});
