// Generella konstanter för alla sidor

var YES = 1;
var NO = -1;

//Titel till dialogen
var ERROR_TITLE = "Fel!";
var QUESTION_TITLE = "Fråga";
var INFO_TITLE = "Information";
var WARNING_TITLE = "Varning!";
var TEST_TITLE = "Test";

//Sökväg till bilderna till knapparna i dialogen
var OK_IMAGE = "images/ok.jpg";
var CANCEL_IMAGE = "images/cancel.jpg";
var YES_IMAGE = "images/yes.jpg";
var NO_IMAGE = "images/no.jpg";


//Text på dom olika knapparna 
//(Detta används enbart om inga bilder finns eller om inte sökvägen är rätt)
var OK_TEXT = "Ok";
var CANCEL_TEXT = "Avbryt";
var YES_TEXT = "Ja";
var NO_TEXT = "Nej";

//Knappalternativen som kan visas
var OK = 0;
var OK_CANCEL = 1;
var YES_NO = 2;
var YES_NO_CANCEL = 3;

//Vilken knapp tryckte användaren på?
var RESULT_OK = 0;
var RESULT_CANCEL = 1;
var RESULT_YES = 2;
var RESULT_NO = 3;



//Funktionen sätter fokus till det inskickade fältet i det inskickade formuläret
function setFocus(field) {
	
	field.focus();
}


/*
Funktionen öppnar ett nytt fönster med angiven adress, bredd och höjd. Den sista parametern
talar om om vi ska ladda om den anropande sidan när det nya fönstret är stängt.
*/
function openWindow(location, wdh, hgt, bReloadWhenClosed){

	var left, top;

	// Se till att fönstret blir centrerat på skärmen
	left = (screen.availWidth - wdh) / 2;
	top = (screen.availHeight - hgt) / 2 - 10;

	myWin = window.open(location, 'editUser', 'width=' + wdh + ',height=' + hgt + ',left=' + left + ',top=' + top + ',scrollbar=no,scrollbars=0,resizable=no,directories=no,menubar=no, status=no'); 
	myWin.focus();

	if (bReloadWhenClosed){
		setTimeout('checkIfClosed()',100);
	}
}

// Vänta och anropa rekursivt tills fönstret är stängt, ladda sedan om sidan
function checkIfClosed() {
  if (!myWin.closed)
    setTimeout('checkIfClosed()',100);
  else
    document.location.reload();
}

/*
// Denna koden överskrider den vanliga alert(); som används i javascript.
// Äldre webbläsare ser dessvärre den gamla alertrutan om man har använt sig av den.
if(document.getElementById) {
	window.alert = function(txt) {
		//createCustomDialogue(txt, OK, ERROR_TITLE,"");
	}
}
*/


//Funktionen används bland annat vid laddning av någon sida där man kan logga in.function checkUsername(s) {
	if (document.login.username.value == "") {		document.login.username.value = s;	} else {		if (document.login.username.value != s) {
			sMsg = "Användarnamnet skiljer sig från det namn du matade in förra gången.\nVill du att detta ska kontrolleras varje gång du besöker sidan?";			//Vi ska köra usernameQuery då användaren har tryckt på någon av knapparna			//createCustomDialogue(sMsg, YES_NO, QUESTION_TITLE,"usernameQuery");
		} else {
			setFocus(document.login.password);
		}
	}			

}
//Hämtar cookies. informationen är maximalt 365 dagar gammal
function getCookie(nameOfCookie) {
	if (document.cookie.length > 0){
		begin = document.cookie.indexOf(nameOfCookie+"=");
		if (begin != -1){
			begin += nameOfCookie.length+1;
			end = document.cookie.indexOf(";", begin);
			if (end == -1) end = document.cookie.length;
			return unescape(document.cookie.substring(begin, end));
		}
	}
	return null;
}


//Skriver ner cookie information, informationen sparas i 365 dagar
function setCookie(nameOfCookie, value) {	var ExpireDate = new Date ();
	ExpireDate.setTime(ExpireDate.getTime() + (365 * 24 * 3600 * 1000));
	document.cookie = nameOfCookie + "=" + escape(value) + ("; expires=" + ExpireDate.toGMTString());

}

/* Funktionen skapar en egen dialogruta istället för dom som vanligtvis visas i javascript
   Parametrarna är:
   sMsg                    = Texten som visas i dialogen
   iAlertType              = Vilka knappar som ska visas
   sTitle                  = Titel på dialogen
   sRunFunctionAfterResult = En valfri parameter, om dialogtypen har en Ja och Nej knapp så vill
                             man förmodligen köra en funktion efteråt som utför det man frågade om
*/
function createCustomDialogue(sMsg, iAlertType, sTitle, sRunFunctionAfterResult) {

	// Om den containern redan finns så avslutas funktionen, det innebär att dialogen redan visas.
	if(document.getElementById("DialogueContainer")){
		 return;
	}

	// Skapa Containern. (div ligger som en undernod till BODY elementet)
	mObj = document.getElementsByTagName("body")[0].appendChild(document.createElement("div"));
	mObj.id = "DialogueContainer";
	
	 // Se till att lagret är tillräckligt stort för att täcka eventuella underliggande kontroller
	mObj.style.height = document.documentElement.scrollHeight + "px";

	// Skapa lagret som ska vara alertrutan
	alertObj = mObj.appendChild(document.createElement("div"));
	alertObj.id = "customDialogue";
	
	
	// InternetExplorer fixar inte "position:fixed" ordentligt, detta är en fix för att komma runt problemet
	if(document.all && !window.opera){
		 alertObj.style.top = document.documentElement.scrollTop + "px";
	}
	
	// centrera lagret
	alertObj.style.left = (document.documentElement.scrollWidth - alertObj.offsetWidth)/2 + "px";

	// skapa en H1-rubrik som titelrad
	h1 = alertObj.appendChild(document.createElement("h1"));
	h1.appendChild(document.createTextNode(sTitle));

	// skapa ett paragraf element som ska innehålla texten som ska presenteras för användaren
	msg = alertObj.appendChild(document.createElement("p"));
	msg.appendChild(document.createTextNode(sMsg));


	//Vi måste ta reda på hur många knappar som ska synas och i så fall vilka knappar
	// OK_TEXT = "Ok";
	// CANCEL_TEXT = "Avbryt";
	// YES_TEXT = "Ja";
	// NO_TEXT = "Nej";

	//Vi måste veta vilken knapp trycker på också.
	// RESULT_OK = 0;
	// RESULT_CANCEL = 1;
	// RESULT_YES = 2;
	// RESULT_NO = 3;


    switch(iAlertType) {
		case OK:   
			
			// Enbart en Ok-knapp
			btn = alertObj.appendChild(document.createElement("a"));
			btn.id = "btnOk";
			btn.appendChild(document.createTextNode(OK_TEXT));
			btn.href = "#";
			btn.onclick = function() { removeDialogue(RESULT_OK);return false; }
			break

		case OK_CANCEL:   
			
			// En ok och avbryt knapp ska visas
			btn = alertObj.appendChild(document.createElement("a"));
			btn.id = "btnOk";
			btn.appendChild(document.createTextNode(OK_TEXT));
			btn.href = "#";
			btn.onclick = function() { removeDialogue(RESULT_OK);return false; }
			
			btn = alertObj.appendChild(document.createElement("a"));
			btn.id = "btnCancel";
			btn.appendChild(document.createTextNode(CANCEL_TEXT));
			btn.href = "#";
			btn.onclick = function() { removeDialogue(RESULT_CANCEL);return false; }
			
			break

		case YES_NO:   
			
			// En Ja och Nej knapp ska visas
			btn = alertObj.appendChild(document.createElement("a"));
			btn.id = "btnYes";
			btn.appendChild(document.createTextNode(YES_TEXT));
			btn.href = "#";
			btn.onclick = function() { removeDialogue(RESULT_YES);return false; }
			
			btn = alertObj.appendChild(document.createElement("a"));
			btn.id = "btnCancel";
			btn.appendChild(document.createTextNode(NO_TEXT));
			btn.href = "#";
			btn.onclick = function() { removeDialogue(RESULT_NO);return false; }
			
			break
		
		case YES_NO_CANCEL:   
		
			// En Ja, Nej och Avbrytknapp ska visas
			btn = alertObj.appendChild(document.createElement("a"));
			btn.id = "btnYes";
			var PicCurrent = new Image();
			PicCurrent.src = "images/ok.jpg";

			btn.appendChild(PicCurrent);
			//btn.appendChild(document.createTextNode(YES_TEXT));
			btn.href = "#";
			btn.onclick = function() { removeDialogue(RESULT_YES);return false; }
			
			btn = alertObj.appendChild(document.createElement("a"));
			btn.id = "btnCancel";
			btn.appendChild(document.createTextNode(NO_TEXT));
			btn.href = "#";
			btn.onclick = function() { removeDialogue(RESULT_NO);return false; }

			btn = alertObj.appendChild(document.createElement("a"));
			btn.id = "btnCancel";
			btn.appendChild(document.createTextNode(CANCEL_TEXT));
			btn.href = "#";
			btn.onclick = function() { removeDialogue(RESULT_CANCEL);return false; }
			
			break
			
		default:

			// Vi borde aldrig hamna här, men gör vi det så visar vi bara OK knappen
			btn = alertObj.appendChild(document.createElement("a"));
			btn.id = "btnOk";
			btn.appendChild(document.createTextNode(OK_TEXT));
			btn.href = "#";
			btn.onclick = function() { removeDialogue(RESULT_OK);return false; }
			break
			
    }
}


// Funktionen tar bort vår egna dialog
function removeDialogue() {
	document.getElementsByTagName("body")[0].removeChild(document.getElementById("DialogueContainer"));
}

