﻿//=================================================================================================
function getMessage( request )
{
	var
		HTTP;
	
	if ( typeof( messages[request] ) != "undefined")
		return messages[request];
	
	try
	{
		HTTP = new XMLHttpRequest();
		
		HTTP.open("POST", "misc/getMessage.aspx", false );
		HTTP.setRequestHeader("snakeware-ajax", "true");
		HTTP.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		HTTP.send("<message ID=\"" + request + "\" />");
		
		if ( HTTP.status == 200 )
		{
			var
				element = HTTP.responseXML.documentElement, 
				ID      = parseInt( element.getAttribute("ID") ), 
				name    = element.getElementsByTagName("name")[0].firstChild.data, 
				text    = element.getElementsByTagName("text")[0], 
				isMail  = parseBool( element.getAttribute("isMail") );
			
			if ( text && text.firstChild )
				text = text.firstChild.data;
			else
				return null;
			
			if ( isNaN( ID ) )
				ID = request;
			
			messages[ID] = new TMessage( ID, name, text, isMail );
			
			return messages[ID];
		}
		else
		{
			var
				win = window.open();
			
			if ( win )
			{
				win.document.open();
				win.document.write( HTTP.responseText );
				win.document.close();
			}
			
			return null;
		}
	}
	catch ( error )
	{
		if ( error.description )
			alert( error.description );
		else if ( error.message )
			alert( error.message );
		else
			alert( error );
		
		return null;
	}
}
//=================================================================================================
var
	messages = [];
//=================================================================================================
TMessage = function( ID, name, text, isMail )
{
	this.Class  = "TMessage";
	this.ID     = ID;
	this.name   = name;
	this.text   = text;
	this.isMail = isMail;
}
//-------------------------------------------------------------------------------------------------
TMessage.prototype.toString = function()
{
	return this.text;
}
//=================================================================================================
var Languages = 
{
	dutch     : 0, 
	english   : 1, 
	german    : 2, 
	french    : 3, 
	spanisch  : 4, 
	italian   : 5, 
	letvian   : 6, 
	chinese   : 7, 
	russian   : 8, 
	swahili   : 9, 
	arabic    : 10, 
	bulgarian : 11, 
	current   : language, 
	abbr      : ["nl", "en", "de", "fr", "es", "it", "lv", "ch", "ru", "sw", "ar", "bg"]
}
//-------------------------------------------------------------------------------------------------
var Language = 
{
	abbr : Languages.abbr[language] 
}
//-------------------------------------------------------------------------------------------------
var Days = 
{
	monday    : 0, 
	tuesday   : 1, 
	wednesday : 2, 
	thursday  : 3, 
	friday    : 4, 
	saturday  : 5, 
	sunday    : 6 
}
//-------------------------------------------------------------------------------------------------
var Months = 
{
	january   : 0, 
	february  : 1, 
	march     : 2, 
	april     : 3, 
	may       : 4, 
	june      : 5, 
	july      : 6, 
	august    : 7, 
	september : 8, 
	october   : 9, 
	november  : 10, 
	december  : 11 
}
//-------------------------------------------------------------------------------------------------
var
	lngMonths            = [
			["januari", "februari", "maart", "april", "mei", "juni", "juli",    "augustus", "september", "oktober", "november", "december"], 
			["january", "february", "march", "april", "may", "june", "july",    "august",   "september", "october", "november", "december"], 
			["januar",  "februar",  "märz",  "april", "mai", "june", "juli",    "august",   "september", "october", "november", "dezember"], 
			["janvier", "février",  "mars",  "avril", "mai", "juin", "juillet", "août",     "septembre", "octobre", "novembre", "décembre"]], 
	lngDays              = [
			["zondag",   "maandag", "dinsdag",  "woensdag",  "donderdag",  "vrijdag",  "zaterdag"], 
			["sunday",   "monday",  "tuesday",  "wednesday", "thursday",   "friday",   "saturday"], 
			["Sonntag",  "Monntag", "Dienstag", "Mittwoch",  "Donnerstag", "Freitag",  "Samstag"], 
			["dimanche", "lundi",   "mardi",    "mercredi",  "jeudi",      "vendredi", "samedi"]];
	months               = lngMonths[Languages.current],
	days                 = lngDays[Languages.current],
	newPassword          = [
			"Weet u zeker dat u een nieuw wachtwoord wil opvragen?",
			"Are you sure you want to request a new password?", 
			"Sind Sie sicher das Sie um eines neues Kennwort bitten wolt?", 
			"Êtes-vous sûr vous voulez-vous demander un nouveau mot de passe?"], 
	noUsername           = [
			"U heeft uw gebruikersnaam nog niet ingevoerd.", 
			"You did not enter your username.", 
			"Sie haben Ihrem Anwendername nicht ausgefüllt.", 
			"Vous n'avez pas écrit votre nom d'utilisateur."], 
	noNewPassword1       = [
			"U heeft uw nieuwe wachtwoord nog niet ingevuld.", 
			"You did not enter your new password.", 
			"Sie haben Ihre neue Stichwort nicht eingetrugen.", 
			"Vous n'avez pas entré votre nouveau mot de passe."], 
	noNewPassword2       = [
			"U heeft de bevestiging van het nieuwe wachtwoord nog niet ingevuld.", 
			"You did not enter the confirmation of your new password.", 
			"Sie haben die Bestätigung Ihres neuen Stichwortes nicht eingetrugen.", 
			"Vous n'avez pas écrit la confirmation de votre nouveau mot de passe."], 
	noOldPassword        = [
			"U heeft uw huidige wachtwoord nog niet ingevuld.", 
			"You did not enter your current password.", 
			"Sie haben Ihre gegenwärtiges Stichwort nicht eingetrugen.", 
			"Vous n'avez pas entré votre mot de passe courant."], 
	noPassword           = [
			"U heeft uw wachtwoord nog niet ingevoerd.", 
			"You left the password field empty.", 
			"Sie haben Ihrem Kennwort nicht ausgefüllt.", 
			"Vous n'avez pas écrit votre mot de passe."], 
	noSearchText         = [
			"U heeft nog geen zoekwoorden ingevuld.", 
			"You did not enter any keywords to search for.", 
			"Sie trugen keine Schlüsselwörter ein, um nach zu suchen.", 
			"Vous n'avez écrit aucun mot-clé pour rechercher."], 
	illegalSearchWords   = [
			"U heeft alleen zoekwoorden ingevuld die te kort of niet relevant zijn.", 
			"You have entered keywords that too short or not relevant only.", 
			"Sie haben nur Stichworte eingegeben, die zu kurz oder nicht relevant sein.", 
			"Vous avez seulement entré des mots clés trop court ou pas trait."], 
	minDateMessage       = [
			"De ingevoerde datum is te klein. De datum moet op of na \"[MINDATE]\" liggen.", 
			"The entered date is to small. The date should lie on or after \"[MINDATE]\".", 
			"Das ausgefüllte Datum ist zu klein. Das Datum sollte auf oder nach \"[MINDATE]\" liegen", 
			"La date écrite est à petit. La date devrait se trouver ou après \"[MINDATE]\"."], 
	maxDateMessage       = [
			"De ingevoerde datum is te groot. De datum moet voor \"[MAXDATE]\" liggen.", 
			"The entered date is to large. The date should lie before \"[MAXDATE]\".", 
			"Das ausgefüllte Datum ist zu groß. Das Datum sollte vor \"[MAXDATE]\" liegen.", 
			"La date écrite est à grand. La date devrait se trouver devant \"[MAXDATE]\"."], 
	blockedMessage       = [
			"De ingevoerde datum is niet toegestaan.", 
			"The entered date is not allowed.", 
			"Das erreichte Datum wird nicht gewährt.", 
			"La date écrite n'est pas accordée."], 
	nameEmpty            = [
			"U heeft uw naam nog niet ingevuld.", 
			"You left your name empty.", 
			"Sie ließen Ihren Namen leer.", 
			"Vous avez laissé votre nom vide."], 
	eMailEmpty           = [
			"U heeft het e-mailadres nog niet ingevuld.", 
			"You left the e-mail address empty.", 
			"Sie ließen die E-mail Adresse leer.", 
			"Vous avez laissé l'adresse du E-mail vide"], 
	eMailInvalid         = [
			"U heeft een incorrect e-mailadres ingevuld.", 
			"The entered e-mail address is invalid.", 
			"Die eingetragene E-mail Adresse ist unzulässig.", 
			"L'adresse écrite de E-mail est inadmissible."], 
	mandatory            = [
			"Dit veld is verplicht en moet worden ingevuld.", 
			"This field is mandatory and must be completed.", 
			"Dieses Feld ist obligatorisch und muss darum ausgefüllt werden.", 
			"Ce champ est obligatoire et doit être complété."], 
	wrongValue           = [
			"U heeft een niet correcte waarde ingevuld.", 
			"You have entered an incorrect value.", 
			"Sie haben einen falschen Wert ausgefüllt.", 
			"Vous avez entré une valeur incorrecte."], 
	maxAnswers           = [
			"U heeft teveel vinkjes gezet. U mag maximaal [MAXANSWERS] vinkjes zetten.", 
			"You have checked too many checkmarks. You can check up to [MAXANSWERS] checkmarks.", 
			"Sie haben zu viele Markierungen geklickt. Sie können bis zu [MAXANSWERS] Markierungen klicken.", 
			"Vous avez coché trop de checkmarks. Vous pouvez consulter jusqu'à [MAXANSWERS] checkmarks."], 
	noUserSelected       = [
			"U heeft nog geen gebruiker geselecteerd.", 
			"You did not select a user yet.", 
			"Sie haben noch nicht einen Anwender gewählt.", 
			"Vous n'avez pas choisi un utilisateur encore."], 
	subjectEmpty         = [
			"U heeft nog geen onderwerp ingevuld.",
			"You left the subject empty.",
			"Sie ließen das Thema leer.",
			"Vous avez laissé le sujet vide."],
	textEmpty            = [
			"U heeft nog geen tekst ingevuld.",
			"You did not enter any text.",
			"Sie trugen keinen Text ein.",
			"Vous n'avez écrit aucun texte."],
	commentsEmpty        = [
			"U heeft nog geen opmerkingen ingevuld.",
			"You did not enter any comments yet.",
			"Sie trugen noch keine Anmerkungen ein.",
			"Vous n'avez écrit aucun commentaire encore."],
	noMailingChecked     = [
			"U heeft nog geen enkele nieuwsbrief aangevinkt.",
			"You did not select any newsletter yet.",
			"Sie haben schon noch keine Newsletter gewählt.",
			"Vous n'avez choisi aucun bulletin encore."], 
	webAddresInvalid     = [
			"U heeft een incorrect web adres ingevuld.", 
			"You entered an invalid webaddress.", 
			"Sie trugen eine unzulässige Verbindung ein.", 
			"Vous avez écrit un lien inadmissible."], 
	titleEmpty           = [
			"U heeft nog geen titel ingevuld.", 
			"You left the title empty.", 
			"Sie trugen keinen Titel ein.", // TODO: vertalingen
			"Vous avez laissé le title vide."], 
	trueText             = [
			"waar", 
			"true", 
			"wahr", 
			"vrai"], 
	falseText            = [
			"onwaar", 
			"false", 
			"falsch", 
			"faux"];
//=================================================================================================
