var _onload = "";

window.onload = init;

function init()
{
	var search = document.getElementById('SearchString1');
	if (search != null)
	{
		search.onclick = search_onclick;
		search.onblur = search_onblur;
	}
	
	var fontSize = "11";
	if ((getCookie("fontsize") != null) &&  (getCookie("fontsize") != ''))
	{
		fontSize =  getCookie("fontsize");
	}
	if (fontSize != 11)
	{
		document.body.style.fontSize = getPercentSize(fontSize) + "%";
	}

	eval(_onload);
}

function $(id)
{
	return document.getElementById(id);
}

function search_onclick()
{
	var search = document.getElementById('SearchString1');
	if (search.value == 'Sök')
	{
		search.value = '';
	}
}

function search_onblur()
{
	var search = document.getElementById('SearchString1');
	if (search.value == '')
	{
		search.value = 'Sök';
	}
}

function enlargeFont()
{
	var size = getCookie("fontsize");
	if (size == null)
	{
		size = 11;
	}
	size++;
	if (size > 15)
	{
		size = 15
	}
	document.body.style.fontSize = getPercentSize(size)+'%';
	setCookie("fontsize",size);
}

function shrinkFont()
{
	var size = getCookie("fontsize");
	if (size == null)
	{
		size = 11;
	}
	size--;
	if (size < 9)
	{
		size = 9
	}
	document.body.style.fontSize = getPercentSize(size)+'%';
	setCookie("fontsize",size);
}

function restoreSize()
{
	size = "11";
	document.body.style.fontSize = getPercentSize(size)+'%';
	setCookie("fontsize",size);	
}

function getPercentSize(size)
{
	return (size/16)*100;
}

function setCookie(cookieName,cookieValue)
{
	var today = new Date();
	var expire = new Date();
	expire.setTime(today.getTime() + 3600000*24*1000);
	document.cookie = cookieName + "=" + escape(cookieValue) + ";expires="+expire.toGMTString();
}

function getCookie(cookieName)
{
	oCookie = document.cookie;
	var index = oCookie.indexOf(cookieName + "=");
	if (index == -1)
	{
		return null;
	}
	index = oCookie.indexOf("=", index) + 1;
	var endstr = oCookie.indexOf(";", index);
	if (endstr == -1)
	{
		endstr = oCookie.length;
	}
	return unescape(oCookie.substring(index, endstr));
}

/* General form-validation */
function validate(form) {

	var isValid = true;
	var elemIsValid = true;
	var errString = "";
	var errMsgDetail = "";
	var radios = {}
	for (var i = 0; i < form.elements.length; i++) {
		var elem = form.elements[i];

		if (elem.className.indexOf('reqd') >= 0) {
			
			/* input, select og textarea er höndlað á sama hátt .... */
			if ((elem.tagName == "INPUT") || (elem.tagName == "TEXTAREA") || (elem.tagName == "SELECT")) {			
				if (elem.className.indexOf('emailval') >= 0) {
					elemIsValid = isValidEmail(elem.value);
				} else if(elem.className.indexOf('number') >= 0) {
					elemIsValid = ((isValidNumber(elem.value, 7))&&elem.value!==''); 
				} else if(elem.className.indexOf('kennitala') >= 0) {
					elemIsValid = ((isValidNumber(elem.value, 10))&&elem.value!==''); 
				} else {
					elemIsValid = (elem.value != '');
				};
				
				if (!elemIsValid) {
					errString += '<p><label for="' + elem.id + '"><span class="errortext">' + elem.title + '</span></label> ' + errMsgDetail + 'skal udfyldes'

					if( isValid ) elem.focus();
					elem.style.borderColor = '#FF4A4A';
					elem.style.borderWidth = '2px';
					elem.style.backgroundColor = '#FDFAD0';
					isValid = false;
				} else {
					elem.style.borderColor = '';
					elem.style.borderWidth = '1px';
					elem.style.backgroundColor = '';
					elemIsValid = true;
				}
			}			
		}
	}
	if(!isValid) {
		document.getElementById('notice').innerHTML = errString;
		document.getElementById('notice').style.visibility = "visible";
	}

	return isValid;
}

function isValidEmail(value) {
	return (value.indexOf(".") > 0) && (value.indexOf("@") > 0);
}

function isValidNumber(value, number) {
	var elemIsValid = true;
	var stripped = value.replace(/[\(\)\.\-\ ]/g, '');
	
	if (!(stripped.length == number)) {
		elemIsValid = false;
	}

	if(isNaN(stripped)) {
	     elemIsValid = false;
   	}

	if (stripped.length == 0) {
		elemIsValid = true;
	}
	
	return elemIsValid;
}

function ShowDropMenu(element)
{
	doc = document.getElementById(element);

	if(doc.style.display == 'block')
	{
		doc.style.display = 'none'
	}
	else
	{
		doc.style.display = 'block'
	}
}

function HideElements(elementname)
{
	document.getElementById(elementname).style.display = 'none';
	return false;
}

function bookmark(url, title)
{
	if ((navigator.appName == "Microsoft Internet Explorer") && (parseInt(navigator.appVersion) >= 4))
	{
		window.external.AddFavorite(url,title);
	}
	else if (navigator.appName == "Netscape")
	{
		window.sidebar.addPanel(title,url,"");
	}
	else
	{
		alert("Press CTRL-D (Netscape) or CTRL-T (Opera) to bookmark");
	}
}

function popUp(URL, width, height)
{
	day = new Date();
	id = day.getTime();
	eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=1,width=' + width + ',height=' + height + ',left = 600,top = 300');");
}

function lisa_flash(s,w,h)
{
	var a=arguments
	with(document)
	{
		writeln('<object codeBase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" height="'+h+'" width="'+w+'" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000">')
		writeln('<param name="Movie" value="'+s+'">')
		for(var i=3;i<a.length;i+=2)writeln('<param name="'+a[i]+'" value="'+a[i+1]+'">')
		write('<embed src="'+s+'" quality="high" height="'+h+'" width="'+w+'" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" ')
		for(i=3;i<a.length;i+=2)write(a[i]+'="'+a[i+1]+'" ')
		writeln('/>')
		write('</object>')
	}
}


/*----------- Members frontend management ------------*/

function setrolesandgroups(rolesid, groupsid)
{
	var roles = document.getElementById(rolesid);
	var groups = document.getElementById(groupsid);
	roles.value = '';
	groups.value = '';
	var ret = '';

	var inputs = document.forms['memberedit'].getElementsByTagName('select');

	for(var i = 0; i < inputs.length; i++)
	{
		if(inputs[i].name == 'dummy_roles' && inputs[i].value != '') { roles.value += (roles.value ? ',' : '') + inputs[i].value; }
		if(inputs[i].name == 'dummy_groups' && inputs[i].value != '') { groups.value += (groups.value ? ',' : '') + inputs[i].value; }
	}
}

function addgrouprole()
{
	var tbody = document.forms['memberedit'].getElementsByTagName('tbody')[0];
	var selects = tbody.getElementsByTagName('select');
	var dr, dg;

	for(var i = 0; i < selects.length; i++)
	{
		if(selects[i].name == 'dummy_roles') { dr = selects[i].parentNode.parentNode; }
		if(selects[i].name == 'dummy_groups') { dg = selects[i].parentNode.parentNode;  }
	}


	var newdr = dr.cloneNode(true);
	var newdg = dg.cloneNode(true);

	tbody.insertBefore(newdr, dg.nextSibling);
	tbody.insertBefore(newdg, newdr.nextSibling);
}

/*-----------------------------------------------------*/


/*----------- Seminar frontend management ------------*/

function concatFields()
{
	if(document.getElementById('firstname'))
	{
		document.getElementById('property_281').value = document.getElementById('firstname').value;
	}
	if(document.getElementById('lastname'))
	{
		document.getElementById('property_281').value += ' ' + document.getElementById('lastname').value;
	}
	
	document.getElementById('property_295').value = '';
	document.getElementById('property_296').value = '';
	mergeExtraFields('string', 1, '295');
	mergeExtraFields('check', 1, '296');
	if(document.getElementById('property_309'))
	{
		document.getElementById('property_309').value = '';
		mergeExtraFields('check2', 1, '309');
	}
	if(document.getElementById('property_310'))
	{
		document.getElementById('property_310').value = '';
		mergeExtraFields('check3', 1, '310');
	}
}

function mergeExtraFields(type, idx, id)
{
	if(document.getElementById(type + '_' + idx))
	{
		var label = '';
		var col = document.getElementsByTagName('label');
		for(var i = 0; i < col.length; i++)
		{
			if(col[i].htmlFor == type + '_' + idx) { label = col[i].innerHTML; }
		}
		var val = type.substr(0, 5) == 'check' ? document.getElementById(type + '_' + idx).checked : document.getElementById(type + '_' + idx).value;
		document.getElementById('property_' + id).value += label + ': ' + val + '; ';
		mergeExtraFields(type, idx+1, id);
	}
}




/*-----------------------------------------------------*/
