﻿/******************************************
Name:			base.js
Date:			29/05/2008
Author:			Andrei Vais
Description:	Base Javascript file
******************************************/

/****
Used for executing multiple functions on page load.
****/
function addLoadEvent(func)
{
	var oldonload = window.onload;

	if (typeof window.onload != 'function')
		window.onload = func;
	else
	{
		window.onload = function()
		{
			oldonload();
			func();
		}
	}
}

function addUnloadEvent(func)
{
	var oldonload = window.onunload;

	if (typeof window.onunload != 'function')
		window.onunload = func;
	else
	{
		window.onunload = function()
		{
			oldonunload();
			func();
		}
	}
}

/*
	Written by Jonathan Snook, http://www.snook.ca/jonathan
	Add-ons by Robert Nyman, http://www.robertnyman.com
*/

function getElementsByClassName(oElm, strTagName, oClassNames){
	var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
	var arrReturnElements = new Array();
	var arrRegExpClassNames = new Array();
	if(typeof oClassNames == "object"){
		for(var i=0; i<oClassNames.length; i++){
			arrRegExpClassNames.push(new RegExp("(^|\\s)" + oClassNames[i].replace(/\-/g, "\\-") + "(\\s|$)"));
		}
	}
	else{
		arrRegExpClassNames.push(new RegExp("(^|\\s)" + oClassNames.replace(/\-/g, "\\-") + "(\\s|$)"));
	}
	var oElement;
	var bMatchesAll;
	for(var j=0; j<arrElements.length; j++){
		oElement = arrElements[j];
		bMatchesAll = true;
		for(var k=0; k<arrRegExpClassNames.length; k++){
			if(!arrRegExpClassNames[k].test(oElement.className)){
				bMatchesAll = false;
				break;
			}
		}
		if(bMatchesAll){
			arrReturnElements.push(oElement);
		}
	}
	return (arrReturnElements)
}

function hideMessage()
{
    var overlayDiv = document.getElementById('Overlay');
    overlayDiv.style.visibility = 'hidden';
    overlayDiv.style.display = 'none';
    //console.log(overlayDiv);
    
    var messagePopup = document.getElementById('MessageContainer');
    messagePopup.style.visibility = 'hidden';
    messagePopup.style.display = 'none';
    //console.log(messagePopup);
}



//set up arrays for messages for validating forms
//Date:			27/10/2009
//Author:		Andrei Vais
if(document.getElementById && document.getElementById("LanguageSelect"))
{
    //alert('yes');

	var FormMessages = new Array(document.getElementById("LanguageSelect").length);     //matches the number of languages
    //alert(FormMessages.length);
    
    //English
	FormMessages[0] = new Array(
	                                    "This is a required field.",
	                                    "Please enter a valid number in this field.",
	                                    "Please use numbers only in this field. Please avoid spaces or other characters such as dots or commas.",
	                                    "Please use letters only (a-z) in this field.",
	                                    "Please use only letters (a-z) or numbers (0-9) only in this field. No spaces or other characters are allowed.",
	                                    "Please enter a valid date.",
	                                    "Please enter a valid email address. For example fred@domain.com.",
	                                    "Please enter a valid URL.",
	                                    "Please use this date format: dd/mm/yyyy. For example 17/03/2006 for the 17th of March, 2006.",
	                                    "Please enter a valid &#163; amount. For example &#163;100.00.",
	                                    "Please make a selection.",
	                                    "Please select one of the above options."
	                                );

	//French
	FormMessages[1] = new Array(
	                                    "Il s&#8217;agit d&#8217;un domaine obligatoire.",
	                                    "S&#8217;il vous pla&#238;t, entrez un num&#233;ro valable dans ce domaine.",
	                                    "S&#8217;il vous pla&#238;t n&#8217;utiliser que des chiffres dans ce domaine. S&#8217;il vous pla&#238;t &#233;vitez les espaces ou autres caract&#232;res tels que des points ou des virgules.",
	                                    "S&#8217;il vous pla&#238;t n&#8217;utiliser que des lettres (A-Z) dans ce domaine.",
	                                    "S&#8217;il vous pla&#238;t n&#8217;utiliser que des lettres (a-z) ou des chiffres (0-9) seulement dans ce domaine. Pas d&#8217;espaces ni autres caract&#232;res sont autoris&#233;s.",
	                                    "S&#8217;il vous pla&#238;t entrer une date valide.",
	                                    "S&#8217;il vous pla&#238;t entrer une adresse email valide. Pour fred@domain.com exemple.",
	                                    "S&#8217;il vous pla&#238;t entrer une URL valide.",
	                                    "S&#8217;il vous pla&#238;t utilisez ce format de date: jj/mm/aaaa. Par exemple 17/03/2006 pour le 17 Mars, 2006.",
	                                    "S&#8217;il vous pla&#238;t, entrez un montant de &#163; valide. Par exemple &#163;100.00.",
	                                    "S&#8217;il vous pla&#238;t faire une s&#233;lection.",
	                                    "S&#8217;il vous pla&#238;t s&#233;lectionnez une des options ci-dessus."
	                                );

	//Italian
	FormMessages[2] = new Array(
	                                    "Questo &#232; un campo obbligatorio.",
	                                    "Si prega di inserire un numero valido in questo campo.",
	                                    "Si prega di utilizzare solo i numeri in questo campo. Si prega di evitare di spazi o altri caratteri, come punti o virgole.",
	                                    "Si prega di utilizzare solo lettere (A-Z) in questo campo.",
	                                    "Si prega di utilizzare solo lettere (a-z) o numeri (0-9) solo in questo campo. Senza spazi o altri caratteri sono ammessi.",
	                                    "Si prega di inserire una data valida.",
	                                    "Si prega di inserire un indirizzo email valido. Ad esempio fred@domain.com.",
	                                    "Si prega di inserire un URL valido.",
	                                    "Si prega di utilizzare questo formato data: gg/mm/aaaa. Ad esempio 17/03/2006 per la 17 Marzo 2006.",
	                                    "Si prega di inserire un importo valido &#163;. Ad esempio &#163;100,00.",
	                                    "Si prega di effettuare una selezione.",
	                                    "Si prega di selezionare una delle opzioni di cui sopra."
	                                );

	//Polish
	FormMessages[3] = new Array(
	                                    "To pole jest wymagane.",
	                                    "Prosz&#281; poda&#263; prawid&#321;owy numer w tej dziedzinie.",
	                                    "Prosz&#281; u&#380;ywa&#263; tylko liczby w tej dziedzinie. Nale&#380;y unika&#263; miejsc lub inne znaki, np. kropki lub przecinki.",
	                                    "Prosz&#281; u&#380;ywa&#263; tylko liter (a-z) w tej dziedzinie.",
	                                    "U&#380;ywaj tylko liter (a-z) i cyfry (0-9) tylko w tej dziedzinie. Bez spacji lub inne znaki s&#261; dozwolone.",
	                                    "Prosz&#281; poda&#263; prawid 	&#321;ow&#261; dat&#281;.",
	                                    "Prosz&#281; poda&#263; poprawny adres email. Na przyk 	&#321;ad fred@domain.com.",
	                                    "Prosz&#281; poda&#263; poprawny adres URL.",
	                                    "Za pomoc&#261; tego formatu daty: dd/mm/rrrr. Na przyk&#321;ad 17/03/2006 do 17 marca 2006.",
	                                    "Podaj prawid&#321;owy z&#321; kwoty. Na przyk&#321;ad &#163;100.00.",
	                                    "Dokonaj wyboru.",
	                                    "Prosz&#281; wybra&#263; jeden z powy&#380;szych opcji."
	                                );
}