﻿var _timerInterval_ER = 900*1000;
var _timerId_ER=0;
var url;

function initEmergencyReport(urlToProxy)
{	
	try	
	{		
		url = urlToProxy;
		postAJAX();		
		startEmergencyReportTimer();
	}
	catch (e) {}
}

function startEmergencyReportTimer() 
{ 
	try
	{	
		stopTimer_ER();
		_timerId_ER=window.setTimeout("tmrTimer_ER()", _timerInterval_ER);
	} catch (e) {}			
}

function tmrTimer_ER()
{
	try
	{
		stopTimer_ER();
    postAJAX();
    startEmergencyReportTimer();
  } 
  catch (e) 
  {
		try 
		{
			startEmergencyReportTimer ();
    } catch (e) {}
  }
}

function stopTimer_ER()
{
	try 
	{
		window.clearTimeout (_timerId_ER);
  } catch (e) {}			
}

function postAJAX()
{		
		var query = '<ORIONML version="1.0">' + 
								'<REQUEST plugin="TrissData2" version="">' +
								'<PLUGINML table="Deviations" filter="MessageType=\'Akut trafikläge\'  and active=true and (deleted is null or deleted &lt;&gt;true)" />' +
								'</REQUEST>' +
								'</ORIONML>';
								
    var status = false;
    var contentType = "text/xml";
    var request;

    // Native XMLHttpRequest object
    if (window.XMLHttpRequest) {				
        request = new XMLHttpRequest();
        request.onreadystatechange = function(){ onSuccessEmergencyReport(request); };
        request.open("post", url, true);
        request.setRequestHeader("Content-Type", contentType);
        request.send(query);        
        status = true;        

    // ActiveX XMLHttpRequest object
    } else if (window.ActiveXObject) {				
        request = new ActiveXObject("Microsoft.XMLHTTP");        
        if (request) {						
						request.onreadystatechange = function(){ onSuccessEmergencyReport(request); };						
            request.open("post", url, true);            
            request.setRequestHeader("Content-Type", contentType);
            request.send(query);
            status = true;                        
        }
    }

    return status;
}

function onSuccessEmergencyReport (request) { 
		try {		
				if (request.readyState == 4)
				{
					var xmlDoc;
					if (window.ActiveXObject)
					{
						xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
						xmlDoc.async=false;						
						xmlDoc.loadXML(request.responseText);
					}
					else if (document.implementation && document.implementation.createDocument)
					{						
						xmlDoc= document.implementation.createDocument("","doc",null);
						parser=new DOMParser();
						xmlDoc=parser.parseFromString(request.responseText,"application/xml");												
					}					
					
					showEmergencyMessage(xmlDoc);				
					
				}
		} catch (e) {} 
	}

function showEmergencyMessage(xmlDoc)
{
	var deviations = xmlDoc.childNodes[0].getElementsByTagName("Deviations");
	
	var childNodesCount = deviations[0].childNodes.length;
	var deviationMessage = "";	
	if (childNodesCount > 0)
	{
		itm = xmlDoc.childNodes[0];
		
		deviationMessage = "<h2>Viktig information</h2>";
		deviationMessage = deviationMessage + "<p><strong>" + itm.getElementsByTagName("Header")[0].childNodes[0].nodeValue;
		deviationMessage = deviationMessage + "</strong> (" + getFormatedDate(itm.getElementsByTagName("StartTime")[0].childNodes[0].nodeValue) + ")<br />";
		if (itm.getElementsByTagName("Message")[0].childNodes[0].nodeValue.length > 170)
		{
				deviationMessage = deviationMessage + itm.getElementsByTagName("Message")[0].childNodes[0].nodeValue.substr(0,169) + "...</p>";
				deviationMessage = deviationMessage + "<p><a href=\"#\" onclick=\"moreInfo(itm)\">Mer information</a></p>";
		}
		else
				deviationMessage = deviationMessage + itm.getElementsByTagName("Message")[0].childNodes[0].nodeValue + "</p>";
				
		//if (itm.getElementsByTagName("Teaser")[0].childNodes[0].nodeValue != itm.getElementsByTagName("Message")[0].childNodes[0].nodeValue)
		
		
		document.getElementById("emergencyReport").innerHTML = deviationMessage;
		document.getElementById("emergencyReportDiv").style.display = 'block';
		if (document.getElementById("trafficInfoImage") != undefined)
		{
			document.getElementById("trafficInfoImage").style.display = 'none';
		}
		
		if (document.getElementById("noEmergencyReport") != undefined)
		{
			document.getElementById("noEmergencyReport").style.display = 'none';
		}
	}
	else
	{
		if (document.getElementById("trafficInfoImage") != undefined)
		{
			document.getElementById("trafficInfoImage").style.display = 'block';
		}
		
		if (document.getElementById("noEmergencyReport") != undefined)
		{
			document.getElementById("noEmergencyReport").style.display = 'block';
		}
		
		document.getElementById("emergencyReportDiv").style.display = 'none';
	}
}

function getFormatedDate(date)
{
  return date.substring(0, 10) + " " + date.substring(11, 16);
}

//function moreInfo(item)
//{
//	var emergencyWin = window.open("", "Viktig", "", "");
//	emergencyWin.document.write("<html><head><title>Viktig information</title></head>");
//	emergencyWin.document.write("<body>");
//	emergencyWin.document.write("<h2>Viktig information</h2>");
//	emergencyWin.document.write("<p>" + item.getElementsByTagName("Header")[0].childNodes[0].nodeValue);
//	emergencyWin.document.write(" (" + getFormatedDate(item.getElementsByTagName("StartTime")[0].childNodes[0].nodeValue) + ")<br />");
//	emergencyWin.document.write("<p>" + item.getElementsByTagName("Message")[0].childNodes[0].nodeValue + "</p>");
//	emergencyWin.document.write("</body>");
//}

function moreInfo(item)
{
	var emergencyWin = window.open("", "Viktig", "menubar=0,status=0,scrollbars=1,width=500,height=400,left=50,top=50", "");
	emergencyWin.document.write("<html><head><title>Viktig information</title><style>body{font-family:verdana;font-size:0.9em;} h1{font-size:1.3em;color:#f00;}</style></head>");
	emergencyWin.document.write("<body><div style=\"float:left;\"><img src=\"/images/press_logo.gif\" /></div><div style=\"float:right;\"><a href=\"javascript:window.close()\" style=\"color:#000;text-decoration:none\">Stäng fönstret</a></div><div style=\"clear:both;\">");
	emergencyWin.document.write("<h1>Viktig information</h1>");
	emergencyWin.document.write("<p><strong>" + item.getElementsByTagName("Header")[0].childNodes[0].nodeValue);
	emergencyWin.document.write("</strong> (" + getFormatedDate(item.getElementsByTagName("StartTime")[0].childNodes[0].nodeValue) + ")<br />");
	emergencyWin.document.write("<p>" + item.getElementsByTagName("Message")[0].childNodes[0].nodeValue + "</p>");
	emergencyWin.document.write("</body>");
}