var alertCount = 0;
var maxAlerts = 10;
var isMSIE = false;
var dynamicStyleSheet;

function msg( txt ) {
	if( txt == null ) return;
	alertCount++;
	var t = txt.replace(/^\s+|\s+$/g, '');
	if( alertCount < maxAlerts && t != "" ) alert( t );
}

/* einelti */

function init() {
	isMSIE = navigator.appName.indexOf("Microsoft") > -1;
	var einelti = document.getElementById( "einelti" );
	if( einelti != null ) {
		var prefix = "http://felagsmalaskoli.is/id/";
		var firstPageID = 1000019;
		var lastPageID = 1000066;
		einelti.style.border = "1px solid silver";
		var control = document.createElement( "div" );
		control.setAttribute( "id", "control" );
		var id = document.getElementById( "previousPage" ).getAttribute( "value" );
		var selectedPage = document.getElementById( "selectedPage").getAttribute( "value" );
		if( selectedPage != firstPageID ) {
			var b1 = document.createElement( "a" );
			b1.setAttribute( "href", prefix + id );
			b1.className = "left pointer";
			b1.innerHTML = "&lt; Fyrri &lt;";
			control.appendChild( b1 );
		}
		id = document.getElementById( "nextPage" ).getAttribute( "value" );
		if( selectedPage != lastPageID ) {
			var b2 = document.createElement( "a" );
			b2.setAttribute( "href", prefix + id );
			b2.className = "right pointer";
			b2.innerHTML = "&gt; N&aelig;sta &gt;";
			control.appendChild( b2 );
		}
		einelti.parentNode.insertBefore( control, einelti );
	}
	
	if( selectedTheme == "glasses" ) {
		var wrapper = document.getElementById("wrapper")
		var html = scanForVowels( wrapper, null );
		wrapper.innerHTML = html;
	
		swSelectDyslexValue( swFontSize );
		swSelectDyslexValue( swFontName );
		swSelectDyslexValue( swColor );
		swSelectDyslexValue( swBackground );
		swSelectDyslexValue( swKern );
		swSelectDyslexValue( swWordSpace );
		swSelectDyslexValue( swLeading );
		swSelectDyslexValue( swVowels );
	swSelectDyslexValue( swLinks );
	}
}

function reply(value) {
	var r = document.getElementById( "rettrangt" );
	if( value ) {
		r.innerHTML = "R&eacute;tt";
	} else {
		r.innerHTML = "Ekki r&eacute;tt";
	}
	var s = document.getElementById("svar");
	s.style.display = "block";
}

function order(count) {
	for( var i=1; i<count+1; i++) {
		var inp = document.getElementById( "inp" + i );
		var ans = document.getElementById( "ans" + i );
		ans.innerHTML = inp.getAttribute( "order" );
	}
}

function abcd() {
	for( var i=1; i<5; i++) {
		var inp = document.getElementById( "inp" + i );
		var ans = document.getElementById( "ans" + i );
		ans.innerHTML = inp.getAttribute( "order" );
	}
}	
	
/* form */

function setvalue(i) {
	var objI = document.getElementById('i'+i);
	if (objI.checked) {
		objI.value = i;
		objI.name = 'registration_position';
	} else {
		objI.value = '';
		objI.name = '';
	}
}

function trySubmit(Sender) {
	//alert("trySubmit...");
	var sMessage = '';
	for (var i = 0 ; i < Sender.elements.length; i++) {
		if (((Sender.elements(i).required == 'True') || (Sender.elements(i).value.length > 0)) && (Sender.elements(i).uiname)) { 
			if (Sender.elements(i).uiname == 'ssn_is') { 
				if (!checkSSN(Sender.elements(i))) {
					sMessage = sMessage + 'Kennitala ekki rétt!\n'; 
				}
			} else {
				if (Sender.elements(i).regexp) {
					if (!validateInput(Sender.elements(i))) {
						switch (Sender.elements(i).uiname) {
							case 'password': 
							sMessage = sMessage + 'Lykilorð uppfyllir ekki skilyrði!\n';
							break;
							case 'email':
							sMessage = sMessage + 'Netfang ekki rétt!\n';
							break;
							case 'firstname':
							sMessage = sMessage + 'Nafn vantar!\n';
							break;
							case 'cardexpirydate':
							sMessage = sMessage + 'Gildistími er ekki réttur!\n';
							break;
							default:
							sMessage = sMessage + Sender.elements(i).uiname + ' er ekki rétt!\n'; 
							break;
						}
					}
					/*
					if (Sender.elements(i).uiname == 'password') {
						if (Sender.elements(i).value != Sender.password2.value) {
							sMessage = sMessage + 'Lykilorð ekki eins!\n';
						}
					}
					*/
				}
			}
		}
	}
	if (sMessage == '') {
		return true;
	} else {
		alert(sMessage);
		//return true;
		return false;
	}
}
function validateInput(oInp) {
	var regExp = new RegExp(oInp.regexp,'mig');
	if (regExp.test(oInp.value)) {
		return true;
	} else {
		return false;
	}
}
function checkSSN(oInp) {
	var sSSN = oInp.value;
	sSSN = sSSN .replace(/-/,'')
	if ((sSSN.length < 10) || (sSSN.length > 10)) {
		return false;
	}
	var iLast = sSSN.slice((sSSN.length - 1))
	if (iLast != 8 && iLast != 9 && iLast != 10) {
		return false;
	}
	re = /\D+/;
	var isNum = re.test(sSSN);
	if (isNum == true) {
		return false;
	}
	var arrDig1 = new Array(10)
	var arrDig2 = new Array(8)
	var iSum = 0;
	for (var i = 0; i < 10; i++) {
		arrDig1[i] = sSSN.slice(i,i+1);
	}
	arrDig2[0] = arrDig1[0] * 3;
	arrDig2[1] = arrDig1[1] * 2;
	arrDig2[2] = arrDig1[2] * 7;
	arrDig2[3] = arrDig1[3] * 6;
	arrDig2[4] = arrDig1[4] * 5;
	arrDig2[5] = arrDig1[5] * 4;
	arrDig2[6] = arrDig1[6] * 3;
	arrDig2[7] = arrDig1[7] * 2;
	for (var i = 0; i < 8; i++) {
		var iDig = parseInt(arrDig2[i]);
		iSum = iSum + iDig;
	}
	var iLeft = iSum % 11;
	var iVart = 11 - iLeft;
	if ((iVart == 11) || (iVart == 10)) {
		iVart = 0;
	}
	if (iVart != arrDig1[8]) {
		return false;
	}
	return true;
}

/* dyslex glasses */

var vowelString = "aáàåäâeéèëêiíìïîoóòöôuúùüûyýæ";
var swFontSize = "SWFontSize";
var swFontName = "SWFontName";
var swColor = "SWColor";
var swBackground = "SWBackground";
var swKern = "SWKern";
var swWordSpace = "SWWordSpace";
var swLeading = "SWLeading";
var swVowels = "SWVowels";
var swLinks = "SWLinks";

function setCookie( key, value ) {
	createCookie( key, value, 365 );
}

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else
		expires = "";

	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ')
			c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0)
			return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function nodeToString( node, content ) {
	var str = "<" + node.nodeName;
	for( var i=0; i<node.attributes.length; i++ ) {
		var att = node.attributes[i];
		if( isMSIE ) {
			if( att.value != 'null' && att.value != '' )
				if( att.name != 'noWrap' && att.name != 'hideFocus' && att.name != 'contentEditable' && att.name != 'disabled' && att.name != 'tabIndex' )
					str += " " + att.name + "='" + att.value + "'";
		} else {
			str += " " + att.name + "='" + att.value + "'";
		}
	 	
	}
	str += ">" + content + "</" + node.nodeName + ">";
	return str
}

function scanForVowels(node, color) {
	var html = "";
	
	for( var i=0; i<node.childNodes.length; i++ ) {
		var n = node.childNodes[i];
		switch (n.nodeType ) {
		case 1: //Node.ELEMENT_NODE
			var h = scanForVowels( n, color );
			html += nodeToString( n, h );
			break;

		case 3: //Node.TEXT_NODE
			var text = n.nodeValue;
			var result = "";
			
			for( var j=0; j<text.length; j++) {
				var c = text.substr(j,1);
				if( vowelString.indexOf(c.toLowerCase()) > -1 ) {
					result += "<span class='vowel'>" + c + "</span>";
				} else {
					result += c;
				}
			}
			html += result;
			break;
			
		default:
		}
	}
	return html;
}

function addCss(cssCode) {
	var styleElement = document.createElement("style");
	styleElement.type = "text/css";
	if (styleElement.styleSheet) {
		styleElement.styleSheet.cssText = cssCode;
	} else {
		styleElement.appendChild(document.createTextNode(cssCode));
	}
	document.getElementsByTagName("head")[0].appendChild(styleElement);
}

function swDyslexUpdate(node) {
	var b = document.getElementById("body");
	if( node.id == swFontSize ) {
		b.style.fontSize = node.value;
	} else if ( node.id == swFontName ) {
		b.style.fontFamily = node.value;
	} else if ( node.id == swBackground ) {
		b.style.backgroundColor = node.value;
	} else if ( node.id == swColor ) {
		b.style.color = node.value;
	} else if ( node.id == swKern ) {
		b.style.letterSpacing = node.value;
	} else if ( node.id == swWordSpace ) {
		b.style.wordSpacing = node.value;
	} else if ( node.id == swLeading ) {
		b.style.lineHeight = node.value;
	} else if ( node.id == swVowels ) {
		addCss( ".vowel{color:" + node.value + "}" )
	} else if ( node.id == swLinks ) {
		b.link = node.value;
		b.setAttribute("vLink", node.value);
	}
	setCookie( node.id, node.value );
}

function swSelectDyslexValue( label ) {
	var popup = document.getElementById( label );
	if( ! popup ) return;
	var value = readCookie( label );
	if( ! value || value == 'null' ) return;
	
	for( var i=0; i<popup.childNodes.length; i++ ) {
		var node = popup.childNodes[i];
		if( node.nodeType == 1 && node.value == value ) {
			node.setAttribute("selected","selected");
			popup.value = node.value;
			swDyslexUpdate( popup );
			return;
		}
	}
	
}


