	var panels = new Array();

	// Finna vafra

	/*
	var ns4 = (navigator.appName == 'Netscape' && parseInt(navigator.appVersion) == 4);
	var ns6 = (document.getElementById)? true:false;
	var ie  = (document.all)? true:false;
	if (ns4) {
		var oW = window.innerWidth;
		var oH = window.innerHeight;
		window.onresize = function () {if (oW!=window.innerWidth||oH!=window.innerHeight) location.reload();}
	}
	*/

	//
	// Leading zero
	// 

    function lz(n, totalDigits) { 
        n = n.toString(); 
        var pd = ''; 
        if (totalDigits > n.length) 
        { 
            for (i=0; i < (totalDigits-n.length); i++) 
            { 
                pd += '0'; 
            } 
        } 
        return pd + n.toString(); 
    }

	//
	// Finna key code
	// 

	function whichKey(objEvent) {
		var intKeyCode;

		if (objEvent)
			;
		else if (window.event)
			objEvent = window.event;
		else if (event)
			objEvent = event;
		else
			return true;

		/*if (objEvent.charCode)
			intKeyCode = objEvent.charCode;
		else */
		if (objEvent.keyCode)
			intKeyCode = objEvent.keyCode;
		else if (objEvent.which)
			intKeyCode = objEvent.which;
		else
			intKeyCode = 0;

		return intKeyCode;
	}

	//
	// Leyfa bara tölur í input svæði
	// 

	function fncIsNumeric(objEvent, blnSpecial) {
		var intKeyCode = whichKey(objEvent);

		if (intKeyCode < 31 || intKeyCode == 46) return true;   // Special keys (backspace, enter, tab, delete, etc.)
		if (intKeyCode > 34 && intKeyCode < 41)  return true;   // Arrow keys, home, end

		if ((blnSpecial && ((intKeyCode > 43 && intKeyCode < 58))) ||
		    (!blnSpecial && (intKeyCode > 47 && intKeyCode < 58))) {
			return intKeyCode;
		} else {
			return false;
		}
	}

	//
	// Finna element
	// 

	function getElement(strElementID) {
		if (document.all) {
			return document.all[strElementID];
		} else if (document.getElementById) {
			return document.getElementById(strElementID);
		} else {
			return false;
		}
	}

	function getAbsX(elt) { if (elt) { return (elt.x) ? elt.x : getAbsPos(elt,"Left"); } }
	function getAbsY(elt) { if (elt) { return getAbsPos(elt,"Top"); } }
	function getAbsPos(elt,which) {
		iPos = 0;
		while (elt != null) {
			iPos += elt["offset" + which];
			elt = elt.offsetParent;
		}
		return iPos;
	}


	//
	// Cookies
	//

	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 var 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 eraseCookie(name) {
		createCookie(name,"",-1);
	}
 
  function saveSettings(querystring) {
    openAjax("/savesettings.php?settings=" + querystring, function() {});
  }
 
	/*
	function setCookie(c_name,value,expiredays) {
		var exdate=new Date();
		exdate.setDate(exdate.getDate() + expiredays);
		document.cookie = c_name+ "=" + escape(value) + ((expiredays==null) ? "" : ";expires=" + exdate.toGMTString());
	}

	function getCookie(c_name) {
		if (document.cookie.length>0) {
			c_start = document.cookie.indexOf(c_name + "=");
			if (c_start != -1) { 
				c_start = c_start + c_name.length+1; 
				c_end=document.cookie.indexOf(";",c_start);
				if (c_end == -1) c_end=document.cookie.length;
				return unescape(document.cookie.substring(c_start,c_end));
			} 
		}
		return "";
	}
	*/

	//
	// Stærð á vafraglugga
	// 

	function browserSize(wholePage) {
		if (wholePage) {
			var x,y;
			var test1 = document.body.scrollHeight;
			var test2 = document.body.offsetHeight
			if (test1 > test2) // all but Explorer Mac
			{
				x = document.body.scrollWidth;
				y = document.body.scrollHeight;
			}
			else // Explorer Mac;
			     //would also work in Explorer 6 Strict, Mozilla and Safari
			{
				x = document.body.offsetWidth;
				y = document.body.offsetHeight;
			}
		} else {
			var x,y;
			if (self.innerHeight) // all except Explorer
			{
				x = self.innerWidth;
				y = self.innerHeight;
			}
			else if (document.documentElement && document.documentElement.clientHeight)
				// Explorer 6 Strict Mode
			{
				x = document.documentElement.clientWidth;
				y = document.documentElement.clientHeight;
			}
			else if (document.body) // other Explorers
			{
				x = document.body.clientWidth;
				y = document.body.clientHeight;
			}
		}

		return Array(x,y);
	}

	//
	// Opna URL með Ajax
	//

	function openAjax(strURL, objResponseFunction) {
		var xmlHttp;

		try {
			// Firefox, Opera 8.0+, Safari
			xmlHttp=new XMLHttpRequest();
		} catch (e) {
			// Internet Explorer
			try {
				xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
			} catch (e) {
				try {
					xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
				} catch (e) {
					alert("Your browser does not support AJAX!");
					return -1;
				}
			}
		}

		xmlHttp.onreadystatechange=function() {
			if (xmlHttp.readyState==4 && objResponseFunction) {
				objResponseFunction(xmlHttp.responseText);
			}
		}

		xmlHttp.open("GET", strURL, true);
		xmlHttp.send(null);
	}

	//
	// Veðurhlutur
	//

	function Weather() {
		var elementTypes = new Array("locale", "type", "analysis", "zone", "resolution", "weather", "area", "areatype", "place", "slider");
		var elementValues = new Array();

		var form = "";
		var elements = new Array();

		this.init = init;
		this.query = query;
		this.clear = clear;
		this.set = set;
		this.get = get;
		this.setslider = setslider;
		this.send = send;

		function init() {
			/*
			form = document.createElement("form");
			form.setAttribute("action", ".");
			form.setAttribute("method", "get");

			for (var index in elementTypes) {
				elementName = elementTypes[index];
				if (typeof(elementName) == "string") {
					elements[elementName] = document.createElement("input");
					elements[elementName].setAttribute("name", elementName);
					elements[elementName].setAttribute("type", "hidden");
					form.appendChild(elements[elementName]);
				}
			}

			document.body.appendChild(form);
			*/
		}

		function query() {
			var query = "";

			for (var index in elementTypes) {
				elementName = elementTypes[index];
				if (typeof(elementName) == "string") query += elementName + "=" + get(elementName) + "&";
			}

			return query;
		}

		function clear(_elements) {
			for (var index in _elements) {
				elementName = _elements[index];
				if (typeof(elementName) == "string") set(elementName, "", false);
			}
		}

		function set(_name, _value, _send, _ajax) {
			elementValues[_name] = _value;
			if (_send) {
				switch (_name) {
				  case "zone":
				    clear(new Array("area", "areatype", "place", "slider"));
				  break;
				  case "resolution":
				    clear(new Array("area", "areatype", "place", "slider"));
				  break;
				}
				send(_ajax);
			}
		}

		function get(_name) {
			return elementValues[_name];
		}

		function setslider() {
			set("slider", objSlider.getRealValue(), false, false);
		}

		function send(_ajax) {
      saveSettings(query());
      // createCookie("belgingurstillingar", query());

			if (_ajax) {
				weatherResetImages();

				panels["loading"] = new Panel();
				panels["loading"].setBody("<nobr><big>" + lang["Loading"] + "</big></nobr><br /><br /><img src=\"/images/ajax-loader2.gif\" />");
				panels["loading"].show();

				openAjax("/vedurkort.php?" + query(), function(html) {
					getElement("pagecontent").innerHTML = html;
					weatherPreloadImages();
					weatherSlider(get("slider"));
					if (panels["loading"]) panels["loading"].hide();
				});
			} else {
				for (var index in elementTypes) {
					elementName = elementTypes[index];
					if (typeof(elementName) == "string" && elementName != "type" && get(elementName))
						document.frmWeather.elements[elementName].value = get(elementName);
				}
				document.frmWeather.submit();
			}

      // Uppfæra flýtileiðina
      settings = new Array();
      settings_keys = new Array();
      settings_keys[1] = new Array("locale", "type", "analysis", "zone", "resolution", "weather", "area"); // Type 1 = veðurkort
      settings_keys[2] = new Array("locale", "type", "analysis", "areatype", "place"); // Type 2 = staðarspár
      settings_keys[3] = new Array("locale", "type", "analysis", "areatype", "place"); // Type 3 = ferðaveður
      settings_keys[4] = new Array("locale", "type", "analysis", "areatype", "place"); // Type 4 = flugveður
      items = query().split("&");

      for (var index in items) {
        if (typeof(items[index]) == "string") {
          info = items[index].split("=");
          settings[info[0]] = info[1];
        }
      }

      url = "http://" + window.location.hostname + "/opna";

      for (var index in settings_keys[settings["type"]]) {
        key = settings_keys[settings["type"]][index];
        if (typeof(key) == "string") url += "/" + settings[key];
      }

      if (getElement("shortcut_url_href")) {
        getElement("shortcut_url_href").href = url;
      }
		}
	}

	//
	// Veðurmyndir: Frumstilla myndir
	// 

	function weatherInitImages(totalimages) {
		if (totalimages == 0) totalimages = images.length;

		for (var a=1;a<totalimages;a++) {
			images[a]  = new Image();
			images2[a] = new Image();

			images[a].alt = "";
			images[a].src = "/images/trans.gif";
			/*images2[a].src = "/images/trans.gif";
			images2[a].onload = function(){};*/
		}
	}

	//
	// Veðurmyndir: Endurstilla myndir
	// 

	function weatherResetImages() {
		totalimages = images.length;

		for (var a=1;a<totalimages;a++) {
			images[a].alt = "";
			images[a].src = "/images/trans.gif";
			//images2[a].src = "/images/trans.gif";
			//images2[a].onload = function(){};
		}
	}

	//
	// Veðurmyndir: Sækja allar myndir
	// 

	function weatherPreloadImages() {
		if (getElement("weather_path")) {
			path   = getElement("weather_path").innerHTML;
			prefix = getElement("weather_prefix").innerHTML;
			format = getElement("weather_format").innerHTML;
      var timestamp = new Date().getTime();

			for (var a=1;a<images.length;a++) {
				images2[a].src = path + prefix + lz(a,2) + "." + format + "?" + timestamp;
				images2[a].id = "wimg_" + a;
				images2[a].title = prefix;
				images2[a].onload = function() {
					images[this.id.replace("wimg_","")].src = this.src;
					if (objSlider != "-") {
						if (this.id == "wimg_" + objSlider.getRealValue() && this.title == getElement("weather_prefix").innerHTML) weatherShowImage((objSlider.getRealValue() * intSliderIncrement) - intSliderIncrement);
					}
				}
			}
		}
	}

	//
	// Veðurmyndir: Uppfæra mynd þegar slider er breytt
	// 

	function weatherShowImage(offsetFromStart) {
		var objImage = getElement("weatherimage");
		var objInfo  = getElement("weatherimageinfo");
		objImage.src = images[objSlider.getRealValue()].src;
		objInfo.innerHTML = arrSliderInfo[objSlider.getRealValue()];
		// Geyma staðsetningu á milli veðurþátta
		createCookie("weatherimagesliderposition_" + objWeather.get("type") + "_" + objWeather.get("zone") + "_" + objWeather.get("resolution"), objSlider.getRealValue());
	}

	//
	// Veðurmyndir: Smíða slider
	// 

	function weatherSlider(defaultValue) {
		objSlider = YAHOO.widget.Slider.getHorizSlider("slider-bg", "slider-thumb", 0, intSliderWidth, intSliderIncrement);
		objSlider.animate = false;
		objSlider.setValue((defaultValue-1) * intSliderIncrement);

    objSliderElement = getElement("slider-bg");
    // correction = (parseInt(objSliderElement.clientWidth - intSliderWidth) / 2); // + 5;
    objSliderElement.style.width = intSliderWidth + "px";
    // objSliderElement.style.marginLeft = correction + "px";

// alert(intSliderWidth + "::" + objSliderElement.clientWidth);

    // // Leiðrétta x-ásinn
    // values = (intSliderWidth / intSliderIncrement);
    // correction = -(Math.round((values-60) * 0.35)) + 5;
    // getElement("slider-bg").style.marginLeft = correction + "px";

		objSlider.getRealValue = function() {
		    return Math.round((this.getValue() / intSliderIncrement) + 1);
		}

		objSlider.setRealValue = function(newValue) {
			this.setValue((newValue-1) * intSliderIncrement);
		}

		objSlider.decreaseValue = function(increment) {
			if (!increment) increment = 1;
			var intValue = this.getValue() - (increment * intSliderIncrement);
			this.setValue(intValue);
		}

		objSlider.increaseValue = function(increment) {
			if (!increment) increment = 1;
			var intValue = this.getValue() + (increment * intSliderIncrement);
			this.setValue(intValue);
		}

		objSlider.mouseWheel = function(event) {
			var delta = 0;

			if (!event) event = window.event; /* IE */
			if (event.wheelDelta) { /* IE/Opera. */
				delta = event.wheelDelta/120;
				if (window.opera) delta = -delta;
			} else if (event.detail) { /** Mozilla case. */
				delta = -event.detail/3;
			}

			if (delta) {
				if (delta > 2) delta = parseInt(delta / 2);
				if (delta < 0) objSlider.decreaseValue(delta);
				if (delta > 0) objSlider.increaseValue(-delta);
			}

			if (event.preventDefault) event.preventDefault();

			event.returnValue = false;

			return false;
		}

    // Sækja staðsetningu á stiki frá síðasta veðurþætti
		cookie_value = readCookie("weatherimagesliderposition_" + objWeather.get("type") + "_" + objWeather.get("zone") + "_" + objWeather.get("resolution"));
		if (cookie_value) objSlider.setRealValue(cookie_value);

		objSlider.subscribe("change", weatherShowImage);
	}

	//
	// Panel hlutur
	// 

	function Panel() {
		var panelBg = getElement("panelBg");
		var panelContainer = getElement("panelContainer");
		var headerHTML = "";
		var bodyHTML = "";

		var panelBody = document.createElement("div");
		panelBody.setAttribute("id", "panelBody");

		this.setHeader = setHeader;
		this.setBody = setBody;
		this.show = show;
		this.hide = hide;

		function setHeader(_html) {
			headerHTML = _html;
		}

		function setBody(_html) {
			bodyHTML = _html;
		}

		function show() {
			panelBg.innerHTML = "";
			panelContainer.innerHTML = "";

			panelBody.innerHTML = bodyHTML;
			panelContainer.appendChild(panelBody);

			panelBg.style.width  = browserSize(true)[0] + "px";
			panelBg.style.height = browserSize(true)[1] + "px";

			panelBg.style.display = "block";
			panelContainer.style.display = "block";

			panelContainer.style.left = parseInt(browserSize(false)[0] / 2) - parseInt(panelContainer.clientWidth / 2) + "px";
			panelContainer.style.top  = parseInt(browserSize(false)[1] / 2) - parseInt(panelContainer.clientHeight / 2) + "px";
		}

		function hide() {
			panelBg.style.display = "none";
			panelContainer.style.display = "none";
		}
	}

	//
	// Örvalyklar fyrir slider
	//
	
	function handleKeyPress(evt) {
		keyCode = whichKey(evt);
		if (objSlider != "-") {
			if (keyCode == 37) objSlider.decreaseValue();
			if (keyCode == 39) objSlider.increaseValue();
		}
		return 0;
	}

  //
  // Opna YouTube video
  // 

  function openVideo(title) {
    objDialog = new YAHOO.widget.Panel("wait", {
      width: "445px", 
      height: "344px",
      fixedcenter: true, 
      close: false, 
      draggable: false, 
      zindex: 40,
      modal: true,
      visible: false,
      effect: {effect:YAHOO.widget.ContainerEffect.FADE,duration:0.5}
    });
    
    objDialog.setHeader(title);
    objDialog.setBody("<object width=\"425\" height=\"344\"><param name=\"movie\" value=\"http://www.youtube.com/v/xF4eRCb8h1c&hl=en&fs=1\"></param><param name=\"allowFullScreen\" value=\"true\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"http://www.youtube.com/v/xF4eRCb8h1c&hl=en&fs=1\" type=\"application/x-shockwave-flash\" allowscriptaccess=\"always\" allowfullscreen=\"true\" width=\"425\" height=\"344\"></embed></object><br /><a href=\"#\" onclick=\"closeVideo();return false;\" class=\"close_modal\">" + lang["CloseWindow"] + "</a>");
    objDialog.render(document.body);
    objDialog.show();
  }

  function closeVideo() {
    objDialog.hide();
    setTimeout("destroyVideo()", 500);
  }

  function destroyVideo() {
    objDialog.destroy();
  }
