﻿var globals = {
	siteLanguage: "hu",
	loadedContent: "init",
	scrollValue: 0,
	imageHashPattern: new RegExp("image=.+(;|$)", "")
}

//liteDown patterns
var patternListContent = [
	{
		"regexp": 		new RegExp('==R>', ""),
		"replacement":	'<p style="text-align:right">'
	},
	{
		"regexp": 		new RegExp('==C>',""),
		"replacement":	'<p style="text-align:center">'	
	},
	{
		"regexp": 		new RegExp('==L>',""),
		"replacement":	'<p style="text-align:left">'
	},
	{
		"regexp": 		new RegExp('==>',""),
		"replacement":	'<p>'
	},
	{
		"regexp": 		new RegExp('<==',""),
		"replacement":	'</p>'
	},
	{
		"regexp": 		new RegExp('\\[\\[',""),
		"replacement":	'<table>'
	},
	{
		"regexp": 		new RegExp('\\]\\]',""),
		"replacement":	'</table>'
	},	
	{
		"regexp": 		new RegExp("~",""),
		"replacement":	"&shy;"
	},
	{
		"regexp": 		new RegExp("__",""),
		"replacement":	"<br/>"
	},
	{
		"regexp": 		new RegExp('(>|\\s|\\(|^)\\*([^\\*]+)\\*(<|\\s|$)',""),
		"replacement":	'$1<em>$2</em>$3'
	},	
	{
		"regexp": 		new RegExp("(>|\\s|\\(|^)_([^_]+)_(<|\\s|$)",""),
		"replacement":	"$1<cite>$2</cite>$3"
	},
	{	
		"regexp": 		new RegExp('\\(image_?([^\\s_]*)\\)\\(([^\\s\\)]*)\\)',""),
		"replacement":	'<img class="$1" src="$2" />'
	},
	{	
		"regexp": 		new RegExp('\\(labelled_image_?([^\\s]*)\\)\\(([^\\s\\)]*)\\)\\(([^\\)]*)\\)',""),
		"replacement":	'<div class="labelled $1"><img class="labelled_$1" src="$2" />$3</div>'
	},
	{	
		"regexp": 		new RegExp("\\(flag_(.{2})\\)\\->\\(([^\\s\\(\\)]+)\\)",""),
		"replacement":	'<a href="$2"><img src="images/flag_$1_small.gif" /></a>'
	},	
	{	
		"regexp": 		new RegExp("\\(([^\\(\\)]+)\\)\\->\\(([^\\s\\(\\)]+)\\)",""),
		"replacement":	'<a href="$2">$1</a>'
	},
	{	
		"regexp": 		new RegExp("\\(([^\\(\\)]+)\\)\\^\\(([^\\s\\(\\)]+)\\)",""),
		"replacement":	'<a href="$2" target="_blank">$1</a>'
	},
	{	
		"regexp": 		new RegExp("^(\\s*)(=){1}([^=].*[^=])(=){1}(\\s*)$", "m"),
		"replacement":	"<h1>$3</h1>"
	},
	{	
		"regexp": 		new RegExp("^(\\s*)(=){2}([^=].*[^=])(=){2}(\\s*)$", "m"),
		"replacement":	"<h2>$3</h2>"
	},
	{	
		"regexp": 		new RegExp("^(\\s*)(=){3}([^=].*[^=])(=){3}(\\s*)$", "m"),
		"replacement":	"<h3>$3</h3>"
	},
	{	
		"regexp": 		new RegExp("^(\\s*)(=){4}([^=].*[^=])(=){4}(\\s*)$", "m"),
		"replacement":	"<h4>$3</h4>"
	}
];

//----------------------------------------------------------------------------
function removeImageFromHash()
{
	location.hash = location.hash.replace(globals.imageHashPattern, '');
}

//----------------------------------------------------------------------------
function showOverflowGallery(image)
{
	simpleUtils.getDOMElement("overflowGalleryBackground").style.display = "block";
	var galleryFrame =
		'<!-- ImageGallery -->\
		<div class="imageWrapper1" id="imageWrapper1">\
			<div class="imageWrapper2" id="imageWrapper2">\
				<img id="overflowImage" alt="click_to_close" class="overflowImage" src="' + image + '" onClick="removeImageFromHash();">\
			</div>\
		</div>\
		<!-- End of ImageGallery -->';

	// getting scroll position of the page
	scrollValue = document.body.scrollTop;

	// hide overflow
	document.body.style.overflow="hidden";

	var gallery = simpleUtils.getDOMElement("overflowGallery");
	gallery.innerHTML = galleryFrame;
	gallery.style.top = document.body.scrollTop;
	gallery.style.display = "block";
}

//----------------------------------------------------------------------------
function closeOverflowGallery()
{   
	simpleUtils.getDOMElement("overflowGallery").innerHTML = '';
	simpleUtils.getDOMElement("overflowGallery").style.display = "none";
	simpleUtils.getDOMElement("overflowGalleryBackground").style.display = "none";
	document.body.style.overflow="auto";    
	// scroll back to starting point
	window.scroll(0, globals.scrollValue);
	globals.scrollValue = 0;
}

function init()
{
	//-----------------------------------------------------------------------------
	// Init ConSense
	conSense.init(conSense.hide, 20, 20);

	//-----------------------------------------------------------------------------
	// Multilingual UI text arrays
	var uiHU = [
	    {id: "kezdolap",      text: "Kezdőlap"}, 
		{id: "rolunk",      text:   "Rólunk"}, 
		{id: "tagok",       text:   "Tagok"}, 
		{id: "esemenyek",   text:   "Események"},
		{id: "kepcsarnok",  text:   "Galéria"},
		{id: "videok",  text:   "Videók"},
		{id: "barataink",   text:   "Barátaink"},
		{id: "kapcsolat",   text:   "Kapcsolat"},
		{id: "belepes",   text:     "Lépjen be a csapatba!"},
		{id: "fellepes",   text:    "Bemutatót vállalunk!"},
		{id: "en",          text:   "<img src='images/flag_en.gif'>"},
		{id: "hu",          text:   "<img src='images/flag_hu.gif'>"},                    
		{id: "de",          text:   "<img src='images/flag_de.gif'>"},
		{id: "ru",          text:   "<img src='images/flag_ru.gif'>"}
	];

	var uiDE = [
	    {id: "kezdolap",    text:   "Startseite"}, 	
		{id: "rolunk",      text:   "Über uns"}, 
		{id: "tagok",       text:   "Mitglieder"}, 
		{id: "esemenyek",   text:   "Ereignisse"},
		{id: "kepcsarnok",  text:   "Gallerie"},
		{id: "videok",  text:   "Videos"},
		{id: "barataink",   text:   "Freunde"},
		{id: "kapcsolat",   text:   "Kontakt"},
		{id: "belepes",   text:   "Treten Sie bei!"},
		{id: "fellepes",   text:   "Bestellen Sie uns!"},
		{id: "en",          text:   "<img src='images/flag_en.gif'>"},
		{id: "hu",          text:   "<img src='images/flag_hu.gif'>"},                    
		{id: "de",          text:   "<img src='images/flag_de.gif'>"},
		{id: "ru",          text:   "<img src='images/flag_ru.gif'>"}
	];

	var uiEN = [
	    {id: "kezdolap",    text:   "Home"}, 		
		{id: "rolunk",      text:   "About us"}, 
		{id: "tagok",       text:   "Members"}, 
		{id: "esemenyek",   text:   "Events"},
		{id: "kepcsarnok",  text:   "Gallery"},
		{id: "videok",  text:   "Videos"},
		{id: "barataink",   text:   "Our friends"},
		{id: "kapcsolat",   text:   "Contact"},
		{id: "belepes",   text:   "Join us!"},
		{id: "fellepes",   text:   "Hire us!"},
		{id: "en",          text:   "<img src='images/flag_en.gif'>"},
		{id: "hu",          text:   "<img src='images/flag_hu.gif'>"},                    
		{id: "de",          text:   "<img src='images/flag_de.gif'>"},
		{id: "ru",          text:   "<img src='images/flag_ru.gif'>"}
	];

	uiHU = redSandUITextManager.initTextTable(uiHU);
	uiDE = redSandUITextManager.initTextTable(uiDE);
	uiEN = redSandUITextManager.initTextTable(uiEN);

	// Default language
	redSandUITextManager.setTextTable(uiHU);


	//-----------------------------------------------------------------------------
	// Menus
	
	// languageMenu - language selector

	var languageSwitches = new Array();

	languageSwitches.push(new RedSandNode('IMG_flag_hu', "hu", "languageFlag", "languageFlagActive", "#setlang=hu;"));
	languageSwitches.push(new RedSandNode('IMG_flag_de', "de", "languageFlag", "languageFlagActive", "#setlang=de;"));
	languageSwitches.push(new RedSandNode('IMG_flag_en', "en", "languageFlag", "languageFlagActive", "#setlang=en;"));

	var languageMenu = new RedSandMenu("languageMenu", languageSwitches, "languageSwitchContainer");
	redSandRegistry.addMenu(languageMenu);
	languageMenu.render();

	// menu1
	var mainMenuItems = new Array();

	mainMenuItems.push(new RedSandNode("kezdolap", "kezdolap", "mainMenuItem", "mainMenuItem active", "#content=kezdo;"));
	
	mainMenuItems.push(new RedSandNode("esemenyek", "esemenyek", "mainMenuItem separator", "mainMenuItem active", "#content=esemenyek;"));
	mainMenuItems.push(new RedSandNode("kepcsarnok", "kepcsarnok", "mainMenuItem", "mainMenuItem active", "#content=kepcsarnok;"));	
	mainMenuItems.push(new RedSandNode("videok", "videok", "mainMenuItem", "mainMenuItem active", "#content=videok;"));	
	
	mainMenuItems.push(new RedSandNode("rolunk", "rolunk", "mainMenuItem separator", "mainMenuItem active", "#content=rolunk;"));
	mainMenuItems.push(new RedSandNode("tagok", "tagok", "mainMenuItem", "mainMenuItem active", "#content=tagok;"));
	mainMenuItems.push(new RedSandNode("barataink", "barataink", "mainMenuItem", "mainMenuItem active", "#content=barataink;"));
	mainMenuItems.push(new RedSandNode("kapcsolat", "kapcsolat", "mainMenuItem", "mainMenuItem active", "#content=kapcsolat;"));
	
	mainMenuItems.push(new RedSandNode("fellepes", "fellepes", "mainMenuItem separator", "mainMenuItem active", "#content=fellepes;"));
	mainMenuItems.push(new RedSandNode("belepes", "belepes", "mainMenuItem separator", "mainMenuItem active", "#content=tagfelvetel;"));
	
	var mainMenu = new RedSandMenu("mainMenu", mainMenuItems, "mainMenuContainer");
	redSandRegistry.addMenu(mainMenu);
	mainMenu.render();

	//-----------------------------------------------------------------------------
	// Hash event handlers

	// Events
	redSandHashHandler.addEvent("setlang", handleEventSetlang);
	redSandHashHandler.addEvent("content", handleEventContent);

	
	var callback = function (content) {
		simpleUtils.getDOMElement("contentContainer").innerHTML = simpleUtils.liteDown(content, patternListContent);
	}           
	
	function handleEventSetlang(params)
	{
		if (params.setlang == "hu") {
			redSandUITextManager.setTextTable(uiHU);
		}                
		else if (params.setlang == "de") {
			redSandUITextManager.setTextTable(uiDE);
		}
		else if (params.setlang == "en") {
			redSandUITextManager.setTextTable(uiEN);
		}
		else if (params.setlang == "ru") {
			redSandUITextManager.setTextTable(uiRU);
		}
		globals.siteLanguage = params.setlang;                  
		if (!params.content) {
			load("tartalom/" + loadedContent + "/" + globals.siteLanguage + ".txt", callback);
		}
	}

	function handleEventContent(params)
	{				
		load("tartalom/" + params.content + "/" + globals.siteLanguage + ".txt", callback);
		if (params.image) {
			showOverflowGallery("tartalom/" + params.content + "/images/" + params.image);
		}
		else {
			closeOverflowGallery();
		}
		loadedContent = params.content;                 
	}    
	
	// Default hash 
	redSandHashHandler.setDefaultHash("#content=kezdo;setlang=hu;");
}
