// Browser Detect  v2.1.6
// documentation: http://www.dithered.com/javascript/browser_detect/index.html
// license: http://creativecommons.org/licenses/by/1.0/
// code by Chris Nott (chris[at]dithered[dot]com)
// corrected by Juha Metsäkallas (Juha[dot]Metsakallas[at]iki[dot]fi) to identify Firefox

function BrowserDetect()
{
   var ua = navigator.userAgent.toLowerCase();

   // browser engine name
   this.isGecko       = (ua.indexOf('gecko') != -1 && ua.indexOf('safari') == -1);
   this.isAppleWebKit = (ua.indexOf('applewebkit') != -1);

   // browser name
   this.isKonqueror   = (ua.indexOf('konqueror') != -1);
   this.isSafari      = (ua.indexOf('safari') != - 1);
   this.isOmniweb     = (ua.indexOf('omniweb') != - 1);
   this.isOpera       = (ua.indexOf('opera') != -1);
   this.isIcab        = (ua.indexOf('icab') != -1);
   this.isAol         = (ua.indexOf('aol') != -1);
   this.isIE          = (ua.indexOf('msie') != -1 && !this.isOpera && (ua.indexOf('webtv') == -1) );
   this.isMozilla     = (this.isGecko && ua.indexOf('gecko/') + 14 == ua.length);
   this.isFirefox     = (ua.indexOf('firefox') != -1);
   this.isNS          = ( (this.isGecko) ? (ua.indexOf('netscape') != -1) : ( (ua.indexOf('mozilla') != -1) && !this.isOpera && !this.isSafari && (ua.indexOf('spoofer') == -1) && (ua.indexOf('compatible') == -1) && (ua.indexOf('webtv') == -1) && (ua.indexOf('hotjava') == -1) ) );

   // spoofing and compatible browsers
   this.isIECompatible = ( (ua.indexOf('msie') != -1) && !this.isIE);
   this.isNSCompatible = ( (ua.indexOf('mozilla') != -1) && !this.isNS && !this.isMozilla);

   // rendering engine versions
   this.geckoVersion = ( (this.isGecko) ? ua.substring( (ua.lastIndexOf('gecko/') + 6), (ua.lastIndexOf('gecko/') + 14) ) : -1 );
   this.equivalentMozilla = ( (this.isGecko) ? parseFloat( ua.substring( ua.indexOf('rv:') + 3 ) ) : -1 );
   this.appleWebKitVersion = ( (this.isAppleWebKit) ? parseFloat( ua.substring( ua.indexOf('applewebkit/') + 12) ) : -1 );

   // browser version
   this.versionMinor = parseFloat(navigator.appVersion);

   // correct version number
   if (this.isGecko && !this.isMozilla)
   {
      this.versionMinor = parseFloat( ua.substring( ua.indexOf('/', ua.indexOf('gecko/') + 6) + 1 ) );
   }
   else if (this.isMozilla)
   {
      this.versionMinor = parseFloat( ua.substring( ua.indexOf('rv:') + 3 ) );
   }
   else if (this.isIE && this.versionMinor >= 4)
   {
      this.versionMinor = parseFloat( ua.substring( ua.indexOf('msie ') + 5 ) );
   }
   else if (this.isKonqueror)
   {
      this.versionMinor = parseFloat( ua.substring( ua.indexOf('konqueror/') + 10 ) );
   }
   else if (this.isSafari)
   {
      this.versionMinor = parseFloat( ua.substring( ua.lastIndexOf('safari/') + 7 ) );
   }
   else if (this.isOmniweb)
   {
      this.versionMinor = parseFloat( ua.substring( ua.lastIndexOf('omniweb/') + 8 ) );
   }
   else if (this.isOpera)
   {
      this.versionMinor = parseFloat( ua.substring( ua.indexOf('opera') + 6 ) );
   }
   else if (this.isIcab)
   {
      this.versionMinor = parseFloat( ua.substring( ua.indexOf('icab') + 5 ) );
   }

   this.versionMajor = parseInt(this.versionMinor);

   // dom support
   this.isDOM1 = (document.getElementById);
   this.isDOM2Event = (document.addEventListener && document.removeEventListener);

   // css compatibility mode
   this.mode = document.compatMode ? document.compatMode : 'BackCompat';

   // platform
   this.isWin    = (ua.indexOf('win') != -1);
   this.isWin32  = (this.isWin && ( ua.indexOf('95') != -1 || ua.indexOf('98') != -1 || ua.indexOf('nt') != -1 || ua.indexOf('win32') != -1 || ua.indexOf('32bit') != -1 || ua.indexOf('xp') != -1) );
   this.isMac    = (ua.indexOf('mac') != -1);
   this.isUnix   = (ua.indexOf('unix') != -1 || ua.indexOf('sunos') != -1 || ua.indexOf('bsd') != -1 || ua.indexOf('x11') != -1)
   this.isLinux  = (ua.indexOf('linux') != -1);

   // specific browser shortcuts
   this.isNS4x = (this.isNS && this.versionMajor == 4);
   this.isNS40x = (this.isNS4x && this.versionMinor < 4.5);
   this.isNS47x = (this.isNS4x && this.versionMinor >= 4.7);
   this.isNS4up = (this.isNS && this.versionMinor >= 4);
   this.isNS6x = (this.isNS && this.versionMajor == 6);
   this.isNS6up = (this.isNS && this.versionMajor >= 6);
   this.isNS7x = (this.isNS && this.versionMajor == 7);
   this.isNS7up = (this.isNS && this.versionMajor >= 7);

   this.isIE4x = (this.isIE && this.versionMajor == 4);
   this.isIE4up = (this.isIE && this.versionMajor >= 4);
   this.isIE5x = (this.isIE && this.versionMajor == 5);
   this.isIE55 = (this.isIE && this.versionMinor == 5.5);
   this.isIE5up = (this.isIE && this.versionMajor >= 5);
   this.isIE6x = (this.isIE && this.versionMajor == 6);
   this.isIE6up = (this.isIE && this.versionMajor >= 6);

   this.isIE4xMac = (this.isIE4x && this.isMac);
} // BrowserDetect

/**
  * Se till att funktionen "getElementById" funkar även i MS IE och i Netscape.
  *
  */
if (document.all && !document.getElementById)
{
  document.getElementById = function (id)
  {
    return document.all(id);
  }
}
else if (document.layers && !document.getElementById)
{
  document.getElementById = function (id)
  {
    return document.layers[id];
  }
}

function KompleteradAdress(adress)
{
	return String.fromCharCode(0x20) + String.fromCharCode(0x3C) + adress + String.fromCharCode(0x3E);
} // KompleteradAdress

function SkickaEpost(personNr)
{
	// ta reda på webbläsaren och initiera variabler
	var browser = new BrowserDetect();
	var adress = new Array();
	var pos = 0;

	// fyll adressvektor
	adress[0] = "mai";
	adress[1] = "lto";
	adress[2] = ":";

	switch (personNr)
	{
    case 0:
      adress[3] = "ikaros#abo*f?i";
      if (!browser.isOpera) { adress[3] = "Ikaros"  + KompleteradAdress(adress[3]); }
      break;
		case 1:
			adress[3] = "dlolax#abo*f?i";
			if (!browser.isOpera) { adress[3] = "Dan Lolax"  + KompleteradAdress(adress[3]); }
			break;
		case 2:
			adress[3] = "Sara*Othman#abo*f?i";
			if (!browser.isOpera) { adress[3] = "Sara Othman"  + KompleteradAdress(adress[3]); }
			break;
		case 3:
			adress[3] = "Yrsa*Neuman#abo*f?i";
			if (!browser.isOpera) { adress[3] = "Yrsa Neuman"  + KompleteradAdress(adress[3]); }
			break;
		case 4:
			adress[3] = "Goran*Torrkulla#abo*f?i";
			if (!browser.isOpera) { adress[3] = "G" + String.fromCharCode(0xF6) + "ran Torrkulla" + KompleteradAdress(adress[3]); }
			break;
		case 5:
			adress[3] = "Birgit*Schaffar#abo*f?i";
			if (!browser.isOpera) { adress[3] = "Birgit Schaffar"  + KompleteradAdress(adress[3]); }
			break;
		case 6:
			adress[3] = "Lars*Hertzberg#abo*f?i";
			if (!browser.isOpera) { adress[3] = "Lars Hertzberg"  + KompleteradAdress(adress[3]); }
			break;
		case 7:
			adress[3] = "FBF#kaapeli*f?i";
			if (!browser.isOpera) { adress[3] = "Nikolai Enckell"  + KompleteradAdress(adress[3]); }
			break;
		case 8:
			adress[3] = "Markus*Jantti#abo*f?i";
			if (!browser.isOpera) { adress[3] = "Markus J" + String.fromCharCode(0xE4) + "ntti"  + KompleteradAdress(adress[3]); }
			break;
		case 9:
			adress[3] = "rabbe#isorropia*c?om";
			if (!browser.isOpera) { adress[3] = "Rabbe Kurt" + String.fromCharCode(0xE9) + "n"  + KompleteradAdress(adress[3]); }
			break;
		case 10:
			adress[3] = "Henry*Nygard#abo*f?i";
			if (!browser.isOpera) { adress[3] = "Henry Nyg" + String.fromCharCode(0xE5) + "rd"  + KompleteradAdress(adress[3]); }
			break;
		case 11:
			adress[3] = "Katarina*Jungar#abo*f?i";
			if (!browser.isOpera) { adress[3] = "Katarina Jungar"  + KompleteradAdress(adress[3]); }
			break;
		case 12:
			adress[3] = "Marina*Lassenius#abo*f?i";
			if (!browser.isOpera) { adress[3] = "Marina Lassenius"  + KompleteradAdress(adress[3]); }
			break;
		case 13:
			adress[3] = "Salla*Peltonen#abo*f?i";
			if (!browser.isOpera) { adress[3] = "Salla Peltonen"  + KompleteradAdress(adress[3]); }
			break;
		case 14:
			adress[3] = "Barbro*Nordling#abo*f?i";
			if (!browser.isOpera) { adress[3] = "Barbro Nordling"  + KompleteradAdress(adress[3]); }
			break;
		case 15:
			adress[3] = "Mari*Lindman#abo*f?i";
			if (!browser.isOpera) { adress[3] = "Mari Lindman"  + KompleteradAdress(adress[3]); }
			break;
		case 16:
			adress[3] = "Marcus*Prest#abo*f?i";
			if (!browser.isOpera) { adress[3] = "Marcus Prest"  + KompleteradAdress(adress[3]); }
			break;
		case 17:
			adress[3] = "niko--#luukku*c?om";
			if (!browser.isOpera) { adress[3] = "Nikolai Enckell"  + KompleteradAdress(adress[3]); }
			break;
		default:
			adress[3] = "";
			break;
	}

	// avkoda adressen
	adress[3] = adress[3].replace(/#/,"@");
	adress[3] = adress[3].replace(/\*/g,".");
	adress[3] = adress[3].replace(/\?/g,"");

	// komponera rubriken
	if (browser.isOpera) { adress[4] = "?subject=IKAROS - Till redaktionen"; }
	else { adress[4] = "?subject=[IKAROS] Till redaktionen"; }

	// anropa e-postprogrammet
	window.location = adress.join("");

} // SkickaEpost

function VippaPrenumeration(element)
{
	var gavostatus = "";

	with (window.document.forms.kontaktformular)
	{
		if (element == prenumeration1)
		{
			prenumeration2.checked = false;
			prenumeration3.checked = false;
			if (element.checked)
			{
				gavostatus = "disabled";
			}
		}
		else if (element == prenumeration2)
		{
			prenumeration1.checked = false;
			prenumeration3.checked = false;
			if (element.checked)
			{
				gavostatus = "disabled";
			}
		}
		else if (element == prenumeration3)
		{
			prenumeration1.checked = false;
			prenumeration2.checked = false;
			if (!element.checked)
			{
				gavostatus = "disabled";
			}
		}

		gavonamn.disabled = gavostatus;
		gavogatuadress.disabled = gavostatus;
		gavopostnummer.disabled = gavostatus;
		gavopostkontor.disabled = gavostatus;

		if (gavostatus == "disabled")
		{
			gavonamn.value = "";
			gavogatuadress.value = "";
			gavopostnummer.value = "";
			gavopostkontor.value = "";
		}

	}	// with

} // VippaPrenumeration

function GiltigEpostadress(adress)
{
	return ((adress != null) || (adress != "")) && !(adress.length < 6) && (adress.indexOf("@") != -1);
} // GiltigEpostadress

function Kontakta()
{
	var fel = new Array();
	var giltig_epostadress = false;
	var giltig = true;
	var forsta = true;
	var felmeddelande = "Ge ";
	var pos = 0;
	var d = new Date();

	with (window.document.forms.kontaktformular)
	{
		// har man gett namn?
		fel[0] = (namn.value == null) || (namn.value == "") || (namn.value.length == 0);
		// om man gett en e-postadress, ska den vara någorlunda vettigt
		fel[1] = !((epost.value == null) || (epost.value == "")) && ((epost.value.length < 6) || (epost.value.indexOf("@") == -1));
		// ((epost.value == null) || (epost.value == "")) || !((epost.value.length < 6) || (epost.value.indexOf("@") == -1));
		// har man valt ett ärende alls?
		fel[2] = !(prenumeration1.checked || prenumeration2.checked || prenumeration3.checked
						|| ny_adress.checked || nyhetsbrev.checked || epost_andring.checked || mera_info.checked || feedback.checked);
		// har man valt att prenumera, ska adressen också ges
		fel[3] = (prenumeration1.checked || prenumeration2.checked || prenumeration3.checked)
						&& ((gatuadress.value == null) || (gatuadress.value == "")
								|| (postnummer.value == null) || (postnummer.value == "")
								|| (postkontor.value == null) || (postkontor.value == ""));
		// meddelar man om adressändring, ska adressen ges
		fel[4] = ny_adress.checked
						&& ((gatuadress.value == null) || (gatuadress.value == "")
								|| (postnummer.value == null) || (postnummer.value == "")
								|| (postkontor.value == null) || (postkontor.value == ""));
		// prenumerar man på nyhetsbrev, ska e-postadressen ges
		giltig_epostadress = GiltigEpostadress(epost.value);
		fel[5] = nyhetsbrev.checked && !giltig_epostadress;
		// ändrar man e-postadressen, ska e-postadressen ges
		fel[6] = epost_andring.checked && !giltig_epostadress;
		// gåvoprenumerar man så ska egen adress ges
		fel[7] = prenumeration3.checked
						&& ((gatuadress.value == null) || (gatuadress.value == "")
								|| (postnummer.value == null) || (postnummer.value == "")
								|| (postkontor.value == null) || (postkontor.value == ""));
		// gåvoprenumerar man så ska gåvoprenumerationens mottagare ges
		fel[8] = prenumeration3.checked
						&& ((gavonamn.value == null) || (gavonamn.value == "")
								|| (gavogatuadress.value == null) || (gavogatuadress.value == "")
								|| (gavopostnummer.value == null) || (gavopostnummer.value == "")
								|| (gavopostkontor.value == null) || (gavopostkontor.value == ""));


		// om det finns ett fel, blanketten kan ej accepteras
		for (var i = 0; i < fel.length; i++)
		{
			giltig = (giltig && (!fel[i]));
		} // for

		// lägg till påminnelse om namnet till felmeddelandet
		if (fel[0])
		{
			felmeddelande += "namn";
			forsta = false;
		} // if (fel[0])

		// lägg till påminnelse om e-posten till felmeddelandet
		if (fel[1] || fel[5] || fel[6])
		{
			if (!forsta) { felmeddelande += ", "; }
			felmeddelande += "korrekt e-postadress";
			forsta = false;
		} // if (fel[1] || fel[5] || fel[6])

		// lägg till påminnelse om prenumerationsadressen till felmeddelandet
		if (fel[3] || fel[4])
		{
			if (!forsta) { felmeddelande += ", "; }
			felmeddelande += "postadress";
			forsta = false;
		} // if (fel[3] || fel[4])

		// lägg till påminnelse om gåvoprenumerantens adress till felmeddelandet
		if (fel[7])
		{
			if (!forsta) { felmeddelande += ", "; }
			felmeddelande += "din adress";
			forsta = false;
		} // if (fel[7])

		// lägg till påminnelse om gåvoprenumerationens mottagaradress till felmeddelandet
		if (fel[8])
		{
			if (!forsta) { felmeddelande += ", "; }
			felmeddelande += "adress av g" + String.fromCharCode(229) + "voprenumerationens mottagare";
			forsta = false;
		} // if (fel[8])

		// lägg till påminnelse om ärendeval till felmeddelandet
		if (fel[2])
		{
			if (!forsta) { felmeddelande += ", v" + String.fromCharCode(228) + "lj "; }
			else { felmeddelande = "V" + String.fromCharCode(228) + "lj "; }
			felmeddelande += String.fromCharCode(228) + "rende";
		} // if (fel[2])

		if (!forsta)
		{
			// snygga upp felmeddelandet genom att ersätta den sista komman med ordet "och"
			pos = felmeddelande.lastIndexOf(",");
			if (pos != -1) { felmeddelande = (felmeddelande.substring(0,pos)) + " och" + felmeddelande.substring(pos + 1, felmeddelande.length); }
		} // if (!forsta)

		// avsluta felmeddelandet med en punkt
		felmeddelande += ".";

		if (giltig)
		{
			// rubricera e-posten som ska skickas och sätt retursidan
			if (prenumeration1.checked)
			{
				SUBJECT.value = "[IKAROS] Prenumeration f" + String.fromCharCode(246) + "r " + String.fromCharCode(229) + "r " + d.getFullYear();
				REDIRECT.value += "?op=tacka&param=prenumeration";
			}
			else if (prenumeration2.checked)
			{
				SUBJECT.value = "[IKAROS] St" + String.fromCharCode(246) + "dprenumeration f" + String.fromCharCode(246) + "r " + String.fromCharCode(229) + "r " + d.getFullYear();
				REDIRECT.value += "?op=tacka&param=stodprenumeration";
			}
			else if (prenumeration3.checked)
			{
				SUBJECT.value = "[IKAROS] G" + String.fromCharCode(229) + "voprenumeration f" + String.fromCharCode(246) + "r " + String.fromCharCode(229) + "r " + d.getFullYear();
				REDIRECT.value += "?op=tacka&param=gavoprenumeration";
			}
			else if (nyhetsbrev.checked)
			{
				SUBJECT.value = "[IKAROS] Prenumeration p" + String.fromCharCode(229) + " nyhetsbrev";;
				REDIRECT.value += "?op=tacka&param=nyhetsbrev";
			}
			else
			{
				SUBJECT.value = "[IKAROS] Fr" + String.fromCharCode(229) + "n webbsidan";
			}
		} // !giltig
		else
		{
			alert(felmeddelande);
		} // if (giltig)

	} // with

	return giltig;

} // Kontakta

function PrenumeraNyhetsbrev()
{
	if (!GiltigEpostadress(window.document.forms.kontaktformular.epost.value))
	{
		felmeddelande = "Prenumeration misslyckades f" + String.fromCharCode(246) + "r att e-postadressen tycks ha fel.";
		felmeddelande += " Kolla adressen och f" + String.fromCharCode(246) + "rs" + String.fromCharCode(246) + "k p" + String.fromCharCode(229) + " nytt.";
		alert(felmeddelande);
		return false;
	}
	else
	{
		return true;
	}
} // PrenumeraNyhetsbrev

