/* emulates IE innerText for Mozilla browsers */
var isIE = (window.navigator.userAgent.indexOf("MSIE") > 0);

if (! isIE) {
  HTMLElement.prototype.__defineGetter__("innerText", 
              function () { return(this.textContent); });
  HTMLElement.prototype.__defineSetter__("innerText", 
              function (txt) { this.textContent = txt; });
}
/* emulates IE innerText for Mozilla browsers */
function openCameraWindow(cameraUri)
{
   window.open('/trafficcamera.aspx?cameraUri='+cameraUri, 'cameraWindow', 'width=388, height=355, toolbar=no, resizale=yes, menubar=no, location=no, status=no');
}

function mapShowTime(oTime)
{
    var getMapTime = document.getElementById("maptime");
    if(getMapTime == null) return;
    document.getElementById("maptime").innerText = "Last Updated: " + oTime; // Mozilla uses emulator above
}

function mapRefreshTime(){
    now = new Date();
    mapHours = now.getHours();
    mapMins  = now.getMinutes();
    mapSecs  = now.getSeconds();
    if (mapMins<=9) { mapMins = "0" + mapMins; }
    if (mapSecs<=9) { mapSecs = "0" + mapSecs; }
    mapShowTime(mapHours + ':' + mapMins + 'hrs');
}

function toggleElement(element)
{
    if(window.document.getElementById(element).style.display == "none")
    {
        window.document.getElementById(element).style.display = "inline";        
        return false;
    }
    else if(window.document.getElementById(element).style.display == "inline")
    {
        window.document.getElementById('monthChangedPersistence').setAttribute('title', 'false'); 
        window.document.getElementById(element).style.display = "none";
        return false;        
    }	
    else
    {    
        window.document.getElementById(element).style.display = "inline";
        return false;        
    }
}

function setCSS(linkId) {
    if (document.getElementById(linkId) != null) {
        document.getElementById(linkId).style.backgroundColor='#88BFEE';
        document.getElementById(linkId).style.color='#1B51AF';
        document.getElementById(linkId).style.borderBottom='3px solid #1B518B';
    }
}

var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};
BrowserDetect.init();

/* Map Styles */
function flickDiv1() {
document.getElementById('tooltip1').style.display='none';
document.getElementById('tooltip2').style.display='block';
}
function flickDiv2() {
document.getElementById('tooltip2').style.display='none';
document.getElementById('tooltip3').style.display='block';
}
function flickDiv3() {
document.getElementById('tooltip3').style.display='none';
document.getElementById('tooltip4').style.display='block';
}
function flickDiv4() {
document.getElementById('tooltip4').style.display='none';
document.getElementById('tooltip5').style.display='block';
}

function flickDiv5() {
document.getElementById('tooltip5').style.display='none';
document.getElementById('tooltip6').style.display='block';
}

function flickDiv6() {
document.getElementById('tooltip6').style.display='none';
document.getElementById('tooltip7').style.display='block';
}

function flickDiv7() {
document.getElementById('tooltip7').style.display='none';
document.getElementById('tooltip8').style.display='block';
//document.getElementById('tooltip1').style.display='block';
}

function flickDiv8() {
document.getElementById('tooltip8').style.display='none';
document.getElementById('tooltip1').style.display='block';
}


  function toggleDiv(divid, btnId){
    if(document.getElementById(divid).style.display == 'none'){
      document.getElementById(divid).style.display = 'block';
      MM_swapImage(btnId,'','/images/map/b_arrow_up.gif',1);
    }else{
      document.getElementById(divid).style.display = 'none';
      MM_swapImage(btnId,'','/images/map/b_arrow_on.gif',1)
    }
  }
<!--
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
//-->

/* navbar */
function over(itemNo)
{
	window.document.getElementById('item'+itemNo).style.color = '#194F87';	
	window.document.getElementById('item'+itemNo).style.backgroundColor = '#89BFEE';	
	window.document.getElementById('base'+itemNo).style.backgroundColor = '#194F87';	
}

function out(itemNo)
{
	window.document.getElementById('item'+itemNo).style.color = '#FFFFFF';	
	window.document.getElementById('item'+itemNo).style.backgroundColor = '#194F87';	
	window.document.getElementById('base'+itemNo).style.backgroundColor = '#89BFEE';	
}

/* regional map */
function displayOverlay(region)
{
    resetRegionalMap();
	window.document.getElementById(region).style.border = "none";	
	window.document.getElementById(region).style.backgroundImage="url('./Images/index/overlay_"+region+".png')";	
}

function hideOverlay(region)
{    
	window.document.getElementById(region).style.border = "none";	
	window.document.getElementById(region).style.backgroundImage = "none";	
}

/* title */
function headerDate()
{
	var now = new Date();
	var months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
	var date = now.getDate();
	var month = months[now.getMonth()];
	var year = now.getFullYear();

	document.write(date + ' | ' + month + ' | ' + year);
}

/* javascript support for old browsers without splice array js prototype or restricted browsers */
if('function' != typeof Array.prototype.splice) {
Array.prototype.splice = function(s, dC) {s = +s || 0;
var a = [],
n = this.length,
nI = Math.min(arguments.length - 2, 0),
i, j;
s = (0 > s) ? Math.max(s + n, 0) : Math.min(s, n);
dC = Math.min(Math.max(+dC || 0, 0), n - s);
for(i = 0; i < dC; ++i) {a[i] = this[s + i];}
if(nI < dC) {
for(i = s, j = n - dC; i < j; ++i) {
this[i + nI] = this[i + dC];
}
} else if(nI > dC) {
for(i = n - 1, j = s + dC; i >= j; --i) {
this[i + nI - dC] = this[i];
}
}
for(i = s, j = 2; j < nI; ++i, ++j) {this[i] = arguments[j];}
this.length = n - dC + nI;
return a;
};
}
/* javascript support for old browsers without indexOf js prototype or restricted browsers */
if (!Array.prototype.indexOf)
{
  Array.prototype.indexOf = function(elt /*, from*/)
  {
    var len = this.length;

    var from = Number(arguments[1]) || 0;
    from = (from < 0)
         ? Math.ceil(from)
         : Math.floor(from);
    if (from < 0)
      from += len;

    for (; from < len; from++)
    {
      if (from in this &&
          this[from] === elt)
        return from;
    }
    return -1;
  };
}

/*for ajax calendar support*/
function hideErrorPanel(sender,args)
{
 setElementVisibility(sender, "pnlError", "none");
}

/*for ajax calendar support*/
function showErrorPanel(sender,args)
{
 setElementVisibility(sender, "pnlError", "inline");
}

/*for ajax calendar support*/
function setElementVisibility(sender, elementId, visibility)
{
    var controlPrefix = getControlPrefixFromId(sender._id);
    var fullElementId = controlPrefix+"_"+elementId;    
    var element = window.document.getElementById(fullElementId);           
    if(element != null) { element.style.display = visibility; }                
}

/*for ajax calendar support*/
function setElementValue(sender, elementId, value)
{
    var controlPrefix = getControlPrefixFromId(sender._id);
    var fullElementId = controlPrefix+"_"+elementId;    
    var element = window.document.getElementById(fullElementId);           
    if(element != null) { element.value = value; }                
}

/*for ajax calendar support*/
function checkDate(sender,args)
{
    var valueToReturn = true;
    
    var currentTime = new Date();
    currentTime.setHours(0,0,0,0); //set to midnight
    
    if (sender._selectedDate < currentTime)
    {        
        sender._selectedDate = new Date(); 
        // set the date back to the current date
        sender._textbox.set_Value(sender._selectedDate.format(sender._format))
        valueToReturn = false;   
        setElementVisibility(sender, "pnlError", "inline");
        setElementValue(sender, "hiddenErrorMessagePersistence", "1");        
    }
    else
    {
        setElementVisibility(sender, "pnlError", "none");        
        setElementValue(sender, "hiddenErrorMessagePersistence", "0");
    }       
    
    return valueToReturn;
}
    
function getControlPrefixFromId(id)
{               
    var index = id.lastIndexOf("_");
    return id.substring(0,index);    
}

/*for ajax calendar support*/
function updateDateDropDowns(sender,args)
{
    checkDate(sender,args); //resets date if invalid            
                        
        var controlPrefix = getControlPrefixFromId(sender._id);
        var ctlIdDate = controlPrefix+"_txtDate";
        var dateString = window.document.getElementById(ctlIdDate).value;                   
        var dateComponents = dateString.split("/"); // format is d/MMMM/yyyy
                    
        if(dateComponents.length == 3)
        {
            var day   = dateComponents[0];
            var month = dateComponents[1];
            var year  = dateComponents[2];
            
            var pickDay = window.document.getElementById(controlPrefix+"_pickDay");
            var pickMonth = window.document.getElementById(controlPrefix+"_pickMonth");
            var pickYear = window.document.getElementById(controlPrefix+"_pickYear");
            
            setPickListValue(pickDay, day);
            setPickListValue(pickMonth, month);
            setPickListValue(pickYear, year);                                
        }
    
}

/*for ajax calendar support*/
function setPickListValue(pickList, value) 
{                                   
    for (i=0; i<pickList.options.length; i++) {
    if (pickList.options[i].text == value) {
    pickList.selectedIndex = i;
    }
    }
    
    return true;                       
}

function resetRegionalMap()
{
    hideOverlay('north');
    hideOverlay('central_north');
    hideOverlay('west_midlands');
    hideOverlay('east_midlands');
    hideOverlay('south_west');
    hideOverlay('south_east');
    hideOverlay('south');    
}
