/**

	Denna Javascript-fil innehåller skripter för behandling av parametrar överförda 
	i adressgältet s.k. query string.
	
	Juha Metsäkallas, 2007
	
	Skripterna står fritt till förfogande.
	
**/

var webbparametrar = new Array();

function AnalyseraWebbparametrar() 
{
	var sokstrang = window.location.search.substring(1);
	var parameter = sokstrang.split('&');
	
	for (var i = 0; i < parameter.length; i++) 
	{
		var pos = parameter[i].indexOf('=');
		if (pos > 0) 
		{
			var nyckel = parameter[i].substring(0, pos);
			var varde = parameter[i].substring(pos + 1);
			webbparametrar[nyckel] = varde;
		}
	}
} // AnalyseraWebbparametrar

webbparametrar['op'] = null;
webbparametrar['param'] = null;
AnalyseraWebbparametrar();

function ValjBestamtArende()
{
  var formular = window.document.forms.kontaktformular;
  var hittats = true;
	
  if (webbparametrar["op"]  && webbparametrar["op"] == "fokus"  && webbparametrar["param"] && webbparametrar["param"] == "nyhetsbrev")
  {
  	formular.nyhetsbrev.checked = true;
  }
  else if (webbparametrar["op"]  && webbparametrar["op"] == "fokus"  && webbparametrar["param"] && webbparametrar["param"] == "provnummer")
  {
  	formular.mera_info.checked = true;
  	formular.meddelande.value = "Ja, jag vill ha provnummer av Ikaros.\n\n";
  }
  else if (webbparametrar["op"]  && webbparametrar["op"] == "fokus"  && webbparametrar["param"] && webbparametrar["param"] == "bestall")
  {
  	formular.prenumeration1.checked = true;
  }
  else if (webbparametrar["op"]  && webbparametrar["op"] == "fokus"  && webbparametrar["param"] && webbparametrar["param"] == "feedback")
  {
  	formular.feedback.checked = true;
  }
  else if (webbparametrar["op"]  && webbparametrar["op"] == "fokus"  && webbparametrar["param"] && webbparametrar["param"] == "historia")
  {
    formular.feedback.checked = true;
    formular.meddelande.value = "Jag har en historia att ber" + String.fromCharCode(0xE4) + "tta.\n\n";
  }
  else
  {
	  hittats = false;
  }
  	
  if (hittats)
  {
	  formular.namn.focus();	  
  }
  	
} // ValjBestamtArende

function SkrivInnehall(elementID, innehall)
{
	if (document.getElementById && (document.getElementById(elementID) != null))
  {
  		// HTML DOM standard
		document.getElementById(elementID).innerHTML = innehall;
  }
  else if (document.layers && (document.layers[elementID] != null))
  {
		document.layers[elementID].innerHTML = innehall;
  }
  else if (document.all && (document.all(elementID) != null))
  {
  		// gamla MS IE och Opera
		document.all(elementID).innerHTML = innehall;
  }
} // SkrivInnehall

function Tacka()
{
  if (webbparametrar["op"]  && webbparametrar["op"] == "tacka"  && webbparametrar["param"])
	{
		if (webbparametrar["param"] == "prenumeration")
		{
			SkrivInnehall("tackrubrik", "Tack f&ouml;r prenumerationen!<hr/>");
			SkrivInnehall("tacktext", "Tack f&ouml;r att du prenumerar p&aring; Ikaros. Vi ses snart i en postlucka n&auml;ra dig.");
		}
		else if (webbparametrar["param"] == "stodprenumeration")
		{
			SkrivInnehall("tackrubrik", "Tack f&ouml;r st&ouml;dprenumerationen!<hr/>");
			SkrivInnehall("tacktext", "Tack f&ouml;r att du st&ouml;dprenumerar p&aring; Ikaros. Vi ses snart i en postlucka n&auml;ra dig.");
		}
		else if (webbparametrar["param"] == "gavoprenumeration")
		{
			SkrivInnehall("tackrubrik", "Tack f&ouml;r g&aring;voprenumerationen!<hr/>");
			SkrivInnehall("tacktext", "Tack f&ouml;r att du prenumerar p&aring; Ikaros som g&aring;va.");
		}
		else if (webbparametrar["param"] == "nyhetsbrev")
		{
			SkrivInnehall("tackrubrik", "Tack f&ouml;r prenumerationen av nyhetsbrev<hr/>");
			SkrivInnehall("tacktext", "Tack f&ouml;r att du prenumerar p&aring; Ikaros nyhetsbrev. Vi ses snart i en e-postlucka n&auml;ra dig.");
		}
	}
	
} // Tacka

// http-begäran
var httpBegaran = null;

function SkapaHttpBegaran()
{
  var xmlHttp = null;
  try
  {
    // Firefox, Opera 8.0+, Safari
    xmlHttp = new XMLHttpRequest();
  }
  catch (e)
  {
    // MS Internet Explorer
    try
      {
      // MS Internet Explorer 6.x+
        xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
      }
    catch (e)
      {
        try
        {
        // MS Internet Explorer 5.x
          xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch (e)
        {
          alert("Din webbl&auml;sare saknar st&ouml;d f&ouml;r AJAX tekniken, s&aring; sidan kan inte visas.");
        }
      }
  }
  
  return xmlHttp;
  
} // SkapaHttpBegaran

// RSS-flödets fil
var xmlDoc = null;
// parametrar för nyhetsbrevarkiv
var rssParam;
var rssRubrik;

/**
  * Funktionen laddar nyhetsbrevarkivet eller beskrivningsdelen (RSS-flödets description-del) av ett nyhetsbrev.
  * @param (teckensträng eller heltal) operationsmodus: parameter har antingen värdet "arkiv" eller 
  *   ett heltal som anger kardinaltalet för brevet i RSS-flödet (som är arrangerat så att det nyaste brevet 
  *   kommer först)
  *
  */
function LaddaNyhetsbrev(param, rubrik)
{
  rssParam = param;
  rssRubrik = (typeof rubrik == "undefined") ? "Urklipp" : rubrik;

  xmlDoc = SkapaHttpBegaran();
  if (xmlDoc != null)
  {
    if (xmlDoc.overrideMimeType)
    {
      xmlDoc.overrideMimeType("text/xml");
    }
    url = "nyhetsbrev/ikaros-rss.xml";
    if (param == "arkiv")
    {
      // när laddningen av XML-filen är färdig anropa funktionen för att visa brevval
      xmlDoc.onreadystatechange = VisaNyhetsbrevval;
    }
    else
    {
      // när laddningen av XML-filen är färdig anropa funktionen för att visa beskrivning av det valda brevet
      xmlDoc.onreadystatechange = VisaBeskrivning;
    }
    xmlDoc.open("GET", url, true);
    xmlDoc.send(null);
  }
  
} // LaddaNyhetsbrev
  
/**
  * Funktionen visar nyhetsbrevvalet d.v.s. en lista över nyhetsbrev för att väljas emellan.
  *
  */
function VisaNyhetsbrevval()
{
  var titel;
  var innehall;

  if (xmlDoc.readyState == 4 || xmlDoc.readyState == "complete")
  {
    var rss = xmlDoc.responseXML.getElementsByTagName("item");
    innehall = '<select name="nyhetsbrevval" onchange="LaddaBeskrivning(this);">';
    innehall = innehall + '<option value="-1">V&auml;lj nyhetsbrev</option>';

    for (i = 0; i < rss.length; i++)
    {
      // plocka brevets titel
      titel = rss[i].getElementsByTagName("title")[0].childNodes[0].nodeValue;
      innehall = innehall + '<option value="' + i + '">' + titel + '</option>';
    }
    innehall = innehall + '</select>';
    
    // skriv ut nyhetsbrevval
    SkrivInnehall("nyhetsbrevarkiv", innehall);
    
  }
  
} // VisaNyhetsbrevval

/**
  * Händelsehanteraren anropar funktionen som laddar beskrivningsdelen (RSS-flödets description-del) av 
  * det valda nyhetsbrevet.
  * @param (heltal) kardinaltalet för brevet: ett heltal som anger kardinaltalet för brevet i RSS-flödet 
  *   (som är arrangerat så att det nyaste brevet kommer först)
  *
  */
function LaddaBeskrivning(val)
{
  var i = val.selectedIndex;
  var nyhetsbrevnummer = val[i].value;

  LaddaNyhetsbrev(nyhetsbrevnummer);
  
} // LaddaBeskrivning

/**
  * Händelsehanteraren laddar beskrivningsdelen (RSS-flödets description-del) av det valda nyhetsbrevet.
  *
  */
function VisaBeskrivning()
{
  if (xmlDoc.readyState == 4 || xmlDoc.readyState == "complete")
  {
    var rss = xmlDoc.responseXML.getElementsByTagName("item");
    var lank;
    var beskrivning;
    var innehall;
  
    if (rss.length == 0)
    {
      SkrivInnehall("beskrivning", "Ett fel har intr&auml;ffat i nyhetsbrevarkivet.");
    }
    beskrivning = rss[rssParam].getElementsByTagName("description")[0].childNodes[0].nodeValue;
    lank = rss[rssParam].getElementsByTagName("link")[0].childNodes[0].nodeValue;

    innehall = '<h3>' + rssRubrik + '</h3>' + beskrivning;
    innehall = innehall + '<br/><br/><a href="' + lank + '">L&auml;s hela brevet</a>';
    SkrivInnehall("beskrivning", innehall);
  }

} // VisaBeskrivning
