var AJAX_INDICATOR = '<img src="images/load.gif" style="border: none; margin: 13px 0 0 3px;" />';

var userLanguage = null;
var lastGalleryId = null;
var pages = {
	"news": { name: "news", title: "hírek", type: "div" },
	"bio": { name: "bio", title: "biográfia", type: "div" },    	
	"music": { name: "music", title: "zene", type: "div" },
	"concert": { name: "concert", title: "koncertek", type: "div" },
	"gallery": { name: "gallery", title: "galéria", type: "div", callback: showGallery },
	"contact": { name: "contact", title: "kapcsolat", type: "div" },
//	"forum": { name: "forum", src: "forums/index.php", title: "fórum", type: "iframe" }
	"forum": { name: "forum", type: "iframe", callback: redirectToFacebook }
}

$(function() {
	checkIEVersion();
    setLanguage();
	watchURL();
});

function checkIEVersion() {
	if ($.browser.msie && $.browser.version == "6.0") {
		$("body").empty();
		alert("For God's sake use an internet browser instead of this more than 10 years old, completely non-standard bugware! \n" +
			  "This page may render with errors because of the archaic browser you use, so please go and download FireFox from http://getfirefox.com.\n" +
			  "It'll be better for everyone, thank you!");
	}
}

function watchURL() {
	var target = window.location.href;
	var page = undefined;
	var newsItem = undefined;
	
	try {
		page = target.split("#")[1];
	} catch (e) {}
	
	try {
		newsItem = target.split("?news=")[1];
console.log(newsItem);	
	if (newsItem.indexOf("#") > -1) {
			newsItem = newsItem.split("#")[0];
		}
	} catch (e) {}
	
	if (window.location.hash && page) {		
		onMenuItemClicked(page);
	} else {
	
  		showNews(newsItem);
	}
                                  	
//	setTimeout("watchURL()", 1000);
}

function onMenuItemClicked(page, paragraph) {
    $(".menu-item").removeClass("selected");
    $("#menu-item-" + page).addClass("selected");

    var info = pages[page];
    if (!info) {
		info = pages["news"];
	}

	var selectedPage = "#page-" + userLanguage + "-" + info.name + "-div";
	window.location.hash = "#" + info.name;

	var contentDiv = $("#content-div");
    if (info.type == "div") {
    	var visiblePage = $(".page:visible")[0] || $(".page")[0];

		if (paragraph) {
			window.location.hash = paragraph;
		}

        $(visiblePage).fadeOut("normal", function() {
            $(selectedPage).fadeIn(fadeInCallback);
        });
    } else {
	    var frame = $("iframe")	
		var forumLanguage = (userLanguage == "en") ? "English" : "Hungarian";
		
	    if (!frame.length) {
  			frame = $("<iframe>").attr("width", "830").attr("frameborder", "0").attr("scrolling", "no")./*attr("id", "forum").*/attr("class", "page").html(AJAX_INDICATOR);
  			frame.attr("src", info.src + "?language=Hungarian");
  		} else {
  			var urlDelimiter = (window.frames[0].location.href.indexOf("?") == -1) ? "?" : "&";
  			frame.attr("src", window.frames[0].location.href + urlDelimiter + "language=" + forumLanguage);
  		}
  		
  		contentDiv.find("div.page:visible").fadeOut("normal", function() {
  			if (!$("iframe", contentDiv).length) {
  				contentDiv.append(frame);
  			}
  			frame.fadeIn();
  		});
  		
  		if ($.browser.msie) {
  			var frameElement = frame[0];
  			frameElement.allowTransparency = true;
  			frameElement.frameBorder = false;
  			frameElement.style.backgroundColor = "transparent";
  		}
    }

	if (info.callback) {
    	info.callback();
	}

    document.title = "Dreamgrave » " + info.title;
}

function fadeInCallback() {
	if ($.browser.opera) {
	    $("img").each(function() {
            $(this).fadeIn(750);
	    });
	}
}

function showNews(newsItem) { onMenuItemClicked("news", newsItem); }
function showContact() { onMenuItemClicked("contact"); }
function showMusic() { onMenuItemClicked("music"); }
function showGallery(id) { 
	lastGalleryId = id ? id : getFirstGalleryId();

	$(".menu-item").removeClass("selected");
    $("#menu-item-gallery").addClass("selected");
	
	var visiblePage = $(".page:visible")[0] || $(".page")[0];
    $(visiblePage).fadeOut("normal", function() {
        $("#cache-div").load("gallery/" + userLanguage + ".html", null, function() {
            $("#page-gallery-div").html($(this).html()).fadeIn(fadeInCallback);
			showAlbum(lastGalleryId);	
        });
    });
}

function showLyrics(id) {
	var container = $("#page-" + userLanguage + "-music-div");
	$("#lyrics div", container).hide();
	$("#demo-tracks", container).fadeOut(500, function() {
		$("#lyrics-" + id, container).fadeIn(500);
	});
}

function showCritique(id) {
	var container = $("#page-" + userLanguage + "-music-div");
	$("#demo-tracks", container).fadeOut(500, function() {
		$("#critique-" + id, container).fadeIn(500);
	});
}

function goBackToMusic() {
	var container = $("#page-" + userLanguage + "-music-div");
	$("#lyrics, #critiques", container).find("div:visible").fadeOut(500, function() {
		$("#demo-tracks", container).fadeIn(500);
	});
}

function setLanguage(preferred) {
	var language = (navigator.language) ? navigator.language : navigator.userLanguage;
	var previousLanguage = userLanguage;

	if (document.domain.toLowerCase().indexOf("hu") != -1) {
		language = "hu";
	}

	if (preferred != undefined) {
		userLanguage = preferred;
	} else if (userLanguage == null) {
		userLanguage = (language.substring(0, 2).toLowerCase() == "hu") ? "hu" : "en";
	}
	
	$("#menu-div").find("div").each(function() {
		$(this).removeClass("menu-item-" + previousLanguage).addClass("menu-item-" + userLanguage);
	});

	$("#footer-div").find("a").each(function() {
		$(this).removeClass("footer-item-" + previousLanguage).addClass("footer-item-" + userLanguage);
	});
	
	$("[title=" + previousLanguage + "]").css("font-weight", "normal");
	$("[title=" + userLanguage + "]").css("font-weight", "bold");
}

function switchLanguage(language) {
	setLanguage(language);
	onMenuItemClicked(window.location.hash.split("#")[1]);
}

function redirectToFacebook() {
    window.location.href = "http://www.facebook.com/pages/Dreamgrave/106743776064370";
}
