/* Copyright by AFSA.se */
/* All rights reserved */


//Shortcuts

get = function(obj) {
return document.getElementById(obj);
}

tag = function(tagName) {
return document.getElementsByTagName(tagName);
}

listen = function(obj, event, func) {
if(get(obj))
get(obj).addEventListener(event, func, false);   
}

listenTag = function(tagName, event, func) {
var tags = tag(tagName);

for(var i = 0; i < tags.length; i++) {
	  if(tags[i])
	  tags[i].addEventListener(event, func, false);  
}
}

listenTagClass = function(tagName, CC, event, func) {
var tags = tag(tagName);

for(var i = 0; i < tags.length; i++) {
	  if(tags[i] && tags[i].classList == CC)
	  tags[i].addEventListener(event, func, false);  
}
}


//Functions


var menuItem = 'menuItem';
var loginButtons = '<div class="buttons"><a onclick="openLogin()">Logga in</a></div> <div class="buttons"><a onclick="register()">Registrera</a></div>';
var loginCloseButtons = '<div class="buttons"><a onclick="closeLogin()">Stäng</a></div>';
var loginOnlineButtons = '<div class="buttons"><a onclick="logout()">Logga ut</a></div>';

preload_image('menu_hover.png');

function openMenuPanel(obj) {
		 var i;
		 for(i = obj.id.length; i > 0; i--) {
		 		 if(!isFinite(obj.id.substring(i, obj.id.length))) {
				 i++;
				 break;
				 }
		 }
		 
		 if(get(menuItem + obj.id.substring(i, obj.id.length)).clientHeight == 0)
		  setFocus(menuItem + obj.id.substring(i, obj.id.length));
}

function setFocus(obj) {
		 get(obj).focus();
}

function setHeight(obj, value) {
		 get(obj).style.height = value;
}

function setOpacity(obj, value) {
		 get(obj).style.opacity = value;
}

function setCordinates(obj, x, y) {
		 if(isFinite(x)) {
		 	get(obj).style.left = x + 'px';
		 }
		
		 if(isFinite(y)) {
		 	get(obj).style.top = y + 'px';
		 }
}

function setHTML(obj, value) {
		 get(obj).innerHTML = value;
}

function setDisplay(obj, value) {
		 get(obj).style.display = value;
}

function loadPage(site) {
		 setOpacity('content', 0.0);
		 setDisplay('preload', 'block');
		 get('loader').src = site;
}

function loadAddPage(site) {
		 get('loader').src = site;
}

function loadData(data) {
		 setDisplay('preload', 'none');
		 get('content').innerHTML = data;
		 setOpacity('content', 1.0);
		 get('loader').src = 'blank.html';
}

function loadTitle(data) {
		 get('title').innerHTML = data;
}

function addData(data, position) {
		 if(position == 'before') {
		 		 get('content').innerHTML = data + get('content').innerHTML;
		 } else if(position == 'after') {
		 		 get('content').innerHTML += data;
		 }
		 get('loader').src = 'blank.html';
}

function addForumData(data, position) {
		 if(position == 'before') {
		 		 get('forumAddPost').innerHTML = data + get('forumAddPost').innerHTML;
		 } else if(position == 'after') {
		 		 get('forumAddPost').innerHTML += data;
		 }
		 get('loader').src = 'blank.html';
}

function addComment(data, position) {
		 if(position == 'before') {
		 		 get('comment').innerHTML = data + get('comment').innerHTML;
		 } else if(position == 'after') {
		 		 get('comment').innerHTML += data;
		 }
		 get('loader').src = 'blank.html';
}

function getWidth(obj) {
		 return get(obj).clientWidth;
}


function getHeight(obj) {
		 return get(obj).clientHeight;
}

function setValue(obj, value) {
		 get(obj).value = value;
}

//Preload images
function preload_image(sr) {
		 var preimage = sr.split(",");
		 var imgname = new Array();

		 for(x in preimage) {
		 	     imgname[x] = new Image(20,20);
				 imgname[x].src = "../pictures/"+preimage[x];
 		}
}

function openLogin() {
		 setOpacity('buttons', 0.0);
		 setHTML('buttons', loginCloseButtons);
		 setCordinates('login', '-', 0);
		 setOpacity('login', 0.9);
		 setOpacity('buttons', 1.0);
}

function closeLogin() {
		 setOpacity('buttons', 0.0);
		 setHTML('buttons', loginButtons);
		 setCordinates('login', '-', -270);
		 setOpacity('login', 0.6);
		 setOpacity('buttons', 1.0);
		 setValue('username', 'Användarnamn');
		 setValue('password', '********');
		 setValue('stayOnline', ' ');
		 setValue('stayOnlineHidden', ' ');
}

function login() {
		 loadForm('loginFormData', false, false);
		 closeLogin();
}

function loginResponse(username, reload) {
		 setHTML('buttons', '<div class="online">Inloggad som ' + username + '</div>' + loginOnlineButtons);
		 if(reload) {
		 	setTimeout("loadPage('start.php')", 2000);
		 } 
}

function logout() {
		 get('loader').src = 'logout.php';
}

function logoutResponse() {
		 setHTML('buttons', loginButtons);
		 loadPage('start.php');
}

function register() {
		 loadPage('register.html');
}

function loadForm(form, page, save) {
		 var tempForm;
		 var tempValues = '';
		 var error = false;
		 tempForm = '<form id="tempForm" method="' + get(form).method + '" action="' + get(form).action + '">';
		 for(i = 0; i < document.getElementById(form).elements.length; i++) {
		 
		 	   if(get(form).elements[i].value == '') {
			   		error = true;
			   }
			   
		 	   if(get(form).elements[i].type == 'password') {
		 	   		tempValues += '' + '|';
			   }
			   else if(get(form).elements[i].id == 'captcha') {
			   		tempValues += 'Captcha' + '|';
			   }
			   else {
					tempValues += get(form).elements[i].value + '|';
			   }
			   
		 	   if(get(form).elements[i].type == 'password' || get(form).elements[i].type == 'button'){
		 	   		tempForm += '<input name="' + get(form).elements[i].id + '" type="' + get(form).elements[i].type + '" value="' + get(form).elements[i].value + '" />';
			   }
			   else {
			   		tempForm += '<input name="' + get(form).elements[i].id + '" type="text" value="' + get(form).elements[i].value + '" />';
			   }
		 }
		 tempForm += '</form>'
		 if(!error) {
		 	sessionStorage.tempForm = tempForm;
			
			if(save) {
			sessionStorage.tempValues = tempValues;
			}
			
			if(!page) {
		 		loadPage('formloader.html');
			}
			else {
				loadAddPage('formloader.html');
			}
		 }
}

function restoreForm(form) {
		 if(sessionStorage.tempValues) {
		 		var tempValues = sessionStorage.tempValues.split("|");
				delete sessionStorage.tempValues;
		 		for(i = 0; i < get(form).elements.length; i++) {
					  get(form).elements[i].value = tempValues[i];
				}
		 }
}

function setSessionStorage(key, value) {
		 sessionStorage.setItem(key, value);
}

function addSessionStorage(key, value) {
		 sessionStorage.setItem(key, getSessionStorage(key) + value);
}

function getSessionStorage(key) {
		 return sessionStorage.getItem(key);
}

function deleteSessionStorage(key) {
		 sessionStorage.removeItem(key);
}


function addTextEditor() {
	if(get('TEpanel') && get('TEarea')) {
		var newEditor = new nicEditor({buttonList : ['fontSize','bold','italic','underline','strikethrough','subscript','superscript', 'link', 'unlink','image', 'upload'], iconsPath : 'pictures/nicEditorIcons.gif'});
			newEditor.setPanel('TEpanel');
			newEditor.addInstance('TEarea');
	}
}

function addTextEditorMini(panel, area) {
	if(get(panel) && get(area)) {
		var newEditor = new nicEditor({buttonList : ['fontSize','bold','italic','underline','strikethrough','subscript','superscript', 'link', 'unlink','image', 'upload'], iconsPath : 'pictures/nicEditorIcons.gif'});
			newEditor.setPanel(panel);
			newEditor.addInstance(area);
	}
}


function htmlEntities(str) {
    return String(str).replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;');
}




function doNothing(e) {
 if(e.keyCode == 13 || e.which == 13) {
		 	if (e.stopPropagation) {
                e.stopPropagation();
                e.preventDefault();
      			 }
				 return false;
		 }
}


function allGhost(obj) {
if(!isIE) {
get('profileWall').classList.add('ghost');
get('profileInfo').classList.add('ghost');
get('profileSettings').classList.add('ghost');
get('profileQuests').classList.add('ghost');
get(obj).classList.remove('ghost');
} else {
setDisplay('profileWall', 'none');
setDisplay('profileInfo', 'none');
setDisplay('profileSettings', 'none');
setDisplay('profileQuests', 'none');
setDisplay(obj, 'block');
}
}


function isIE() {
if(navigator.appName == "Microsoft Internet Explorer")
	return true;
else
	return false;
}

function isGC() {
if(navigator.userAgent.toLowerCase().indexOf('chrome') > -1)
	return true;
else
	return false;
}

dipslayImage = new Object();
dipslayImage.nr = 0;
dipslayImage.total = 5;
dipslayImage.highlight = '#f63434';
dipslayImage.usual = '#ffd33b';


function next() {
setOpacity('imageViewer', 0.0);
setTimeout("nextSetImage()", 300);
}

function nextSetImage() {
dipslayImage.nr = (dipslayImage.nr+1)%dipslayImage.total;
get('imageViewer').src = get('imgnr' + dipslayImage.nr).innerHTML;
get('textViewer').innerHTML = get('textnr' + dipslayImage.nr).innerHTML;
setMarkColor(dipslayImage.nr);
setTimeout("nextEnd()", 300);
}

function nextEnd() {
setOpacity('imageViewer', 1.0);
}


function prev() {
setOpacity('imageViewer', 0.0);
setTimeout("prevSetImage()", 300);
}

function prevSetImage() {
dipslayImage.nr = (dipslayImage.nr-1)%dipslayImage.total;
if(dipslayImage.nr == -1)
	dipslayImage.nr = dipslayImage.total-1;
get('imageViewer').src = get('imgnr' + dipslayImage.nr).innerHTML;
get('textViewer').innerHTML = get('textnr' + dipslayImage.nr).innerHTML;
setMarkColor(dipslayImage.nr);
setTimeout("prevEnd()", 300);
}

function prevEnd() {
setOpacity('imageViewer', 1.0);
}


function setMarkColor(nr) {
for(i = 0; i < dipslayImage.total; i++) {
get('mark' + i).style.backgroundColor = dipslayImage.usual;
}

get('mark' + nr).style.backgroundColor = dipslayImage.highlight;

}




// Eventlisteners

window.addEventListener('load', function() {

listen('password', 'keydown', function(e) {
		 if(e.keyCode == 13 || e.which == 13) {
		 	login();
		 }
});

}, false);


