/**
 * 
 * slider.js $version:$ 
 * 
 * Utviklet av Argo Internett AS [www.argo.no] for Storm Weather Center AS [www.storm.no] 2007. 
 * 
 */

/**
 * Statiske parametere.
 */
var slider_gmapmarker_pos_default = 1; 
var slider_gmapmarker_pos = slider_gmapmarker_pos_default;
var slider_gmaptidsArr_index = 0;
var slider_gmapto = null;
var slider_gmaplast_function_call   = "";
var slider_gmapie=document.all;
var slider_gmapnn6=document.getElementById&&!document.all;
var slider_gmapisdrag=false;
var slider_gmapx;
var slider_gmapdobj;

/**
 * Konfigurerbare parametere.
 */
if(slider_gmapobject == null)			var slider_gmapobject				= "googlemap";
if(slider_gmapautoplay == null)			var slider_gmapautoplay 			= true;
if(slider_gmappause == null)			var slider_gmappause				= !slider_gmapautoplay;
if(slider_gmaploop == null) 			var slider_gmaploop     			= true;
if(slider_gmapautoplay_delay == null)	var slider_gmapautoplay_delay 		= 1000;
if(slider_gmapkol_bredde == null)		var slider_gmapkol_bredde			= 8;
if(slider_gmapkol_fontSize == null)		var slider_gmapkol_fontSize			= 8;
if(slider_gmapplayknapp == null)		var slider_gmapplayknapp			= "display_right"; 	// mulige verdier: display_left, display_right, none
if(slider_gmapstep_forward == null)		var slider_gmapstep_forward			= "display"; 		// mulige verdier: display / hide
if(slider_gmapstep_backward == null)	var slider_gmapstep_backward		= "display"; 		// mulige verdier: display / hide
if(slider_gmapklokke_ikon)				var slider_gmapklokke_ikon			= "none";	// mulige verdier: display_left, display_right, none
if(slider_gmapplay_source == null)		var slider_gmapplay_source          = "http://www.pent.no/slider/v3/play.gif";
if(slider_gmappause_source == null)		var slider_gmappause_source         = "http://www.pent.no/slider/v3/pause.gif";
if(slider_gmapspeed == null) 			var slider_gmapspeed    			= 100;
debug = true;


function slider_gmapStartPlayer()	{
	if(!slider_gmapautoplay)	{
		return;
	}
	
	if(slider_gmapautoplay_delay)	{
		slider_gmapto = window.setTimeout("slider_gmapStartPlayer()", slider_gmapautoplay_delay);
		slider_gmapautoplay_delay = false;
		return;
	}
	
	if(eval(slider_gmapobject) != null)	{
		slider_gmapPlay();
	} else {
		slider_gmapto = window.setTimeout("slider_gmapStartPlayer()", 500);
	}
}

function slider_gmapPlay()	{
	if(((slider_gmapmarker_pos-slider_gmapmarker_pos_default)-(slider_gmaptidsArr_index*slider_gmapkol_bredde) == slider_gmapkol_bredde || (slider_gmapmarker_pos-slider_gmapmarker_pos_default)-(slider_gmaptidsArr_index*slider_gmapkol_bredde) == 0) && slider_gmaptidsArr[slider_gmaptidsArr_index])	{
		if(eval("window."+slider_gmaptidsArr[slider_gmaptidsArr_index][2]))	{
			eval(slider_gmaptidsArr[slider_gmaptidsArr_index][2]+"();");
			slider_gmaplast_function_call = slider_gmaptidsArr[slider_gmaptidsArr_index][2]+"();";
		}
		slider_gmaptidsArr_index ++;
	}
	slider_gmapmarker_pos ++;
	marker = document.getElementById("slider_gmapmarker");
	marker.style.left = slider_gmapmarker_pos+"px";
	
	if(slider_gmaptidsArr_index==slider_gmaptidsArr.length || (slider_gmapie && slider_gmaptidsArr_index == slider_gmaptidsArr.length-1))	{
		if(slider_gmaploop)	{
			slider_gmapmarker_pos = slider_gmapmarker_pos_default;
			slider_gmaptidsArr_index = 0;
			marker.style.left=slider_gmapmarker_pos+"px";
			slider_gmapto = window.setTimeout("slider_gmapPlay()", slider_gmapspeed);
		} 
	} else {
		slider_gmapto = window.setTimeout("slider_gmapPlay()", slider_gmapspeed);
	}
}

function slider_gmapVisVarsel(xpos)	{
	tmp = xpos/slider_gmapkol_bredde;
	if(xpos>(container_width))	{
		slider_gmaptidsArr_index = slider_gmaptidsArr.length-1;
		document.getElementById("slider_gmapmarker").style.left=(container_width-slider_gmapkol_bredde)+"px";
	} else if(xpos < slider_gmapmarker_pos_default) {
		slider_gmaptidsArr_index = 0;
		document.getElementById("slider_gmapmarker").style.left=slider_gmapmarker_pos_default+"px";
	} else {
		slider_gmaptidsArr_index = Math.round(tmp);
	}
	if(eval("window."+slider_gmaptidsArr[slider_gmaptidsArr_index][2]))	{
		eval(slider_gmaptidsArr[slider_gmaptidsArr_index][2]+"();");
		slider_gmaplast_function_call = slider_gmaptidsArr[slider_gmaptidsArr_index][2]+"();";
	}
}

function slider_gmapstep(indent)	{
	m = document.getElementById("slider_gmapmarker");
	slider_gmapmarker_pos = parseInt(m.style.left)+indent;
	if(slider_gmapmarker_pos>container_width)	{
		m.style.left = (container_width-indent)+"px";
		return;
	}
	m.style.left=slider_gmapmarker_pos+"px";
	slider_gmapVisVarsel(slider_gmapmarker_pos);
	slider_gmappause = true;
	window.clearTimeout(slider_gmapto);
	slider_gmapto = null;
	slider_gmapPlayPauseSrc();
}

function slider_gmapstepForward()	{
	slider_gmapstep(slider_gmapkol_bredde);
}

function slider_gmapstepBackward()	{
	slider_gmapstep(0-slider_gmapkol_bredde);
}

function slider_gmapPlayPause()	{
	//pk = document.getElementById("slider_gmapplayknapp");
	if(slider_gmappause)	{
		slider_gmapPlay();
		slider_gmappause = false;
		slider_gmapPlayPauseSrc()
	} else {
		slider_gmappause = true;
		window.clearTimeout(slider_gmapto);
		slider_gmapto = null;
		slider_gmapPlayPauseSrc()
	}
}

function slider_gmapPlayPauseSrc()	{
	pk = document.getElementById("slider_gmapplayknapp");
	if(slider_gmappause)	{
		pk.setAttribute("src", slider_gmapplay_source);
	} else {	
		pk.setAttribute("src", slider_gmappause_source);
	}
}

function slider_gmapMovemouse(e)
{
  if (slider_gmapisdrag)
  {
  	utenfor = slider_gmapnn6 ? tx + e.clientX - slider_gmapx : tx + event.clientX - slider_gmapx;
  	
  	if(utenfor>(container_width-slider_gmapkol_bredde)){
  		return false;
  	} else if(utenfor<slider_gmapmarker_pos_default)	{
  		return false;
  	}
  	
	window.clearTimeout(slider_gmapto);
	slider_gmapto = null;
    slider_gmapdobj.style.left = utenfor+"px";
    
    return false;
  }
}

function slider_gmapSelectmouse(e) 
{
  var fobj       = slider_gmapnn6 ? e.target : event.srcElement;

  if (fobj.id=="slider_gmapmarker")
  {
    slider_gmapisdrag = true;
    slider_gmapdobj = fobj;
    tx = parseInt(slider_gmapdobj.style.left+0);
    slider_gmapx = slider_gmapnn6 ? e.clientX : event.clientX;
    //document.onmousemove=slider_gmapMovemouse;
	if(slider_gmapie)	{
		document.getElementById("slider_gmap").attachEvent("onmousemove", slider_gmapMovemouse);
	} else {
		document.getElementById("slider_gmap").addEventListener("mousemove",slider_gmapMovemouse,true);
	}
    return false;
  }
}

function slider_gmapMuseslipp(e)	{
	if(slider_gmapisdrag)	{
		slider_gmapisdrag=false;
		slider_gmapVisVarsel(parseInt(slider_gmapdobj.style.left+0));
		slider_gmapmarker_pos = parseInt(slider_gmapdobj.style.left+0);
		slider_gmappause = true;
		slider_gmapPlayPauseSrc();
	}
}

if(slider_gmapie)	{
	document.getElementById("slider_gmap").attachEvent("onmousedown", slider_gmapSelectmouse);
	document.getElementById("slider_gmap").attachEvent("onmouseup", slider_gmapMuseslipp);
} else {
	document.getElementById("slider_gmap").addEventListener("mousedown",slider_gmapSelectmouse,true);
	document.getElementById("slider_gmap").addEventListener("mouseup",slider_gmapMuseslipp,true);
}



table = document.createElement("table");
table.setAttribute("cellSpacing", "0");
table.setAttribute("cellPadding", "0");
tr = table.insertRow(0);
l_container = tr.insertCell(0);
l_container.setAttribute("id", "slider_gmapleft");
l_container.setAttribute("vAlign", "bottom");
container   = tr.insertCell(1);
container.setAttribute("id", "slider_gmapbody");
r_container = tr.insertCell(2);
r_container.setAttribute("id", "slider_gmapright");
r_container.setAttribute("vAlign", "bottom");
document.getElementById("slider_gmap").appendChild(table);

container   = document.getElementById("slider_gmapbody");
r_container = document.getElementById("slider_gmapright");
l_container = document.getElementById("slider_gmapleft");

tmp = document.createElement("img");
if(slider_gmapie)	tmp.style.paddingTop = "30px";
else 	tmp.style.paddingTop = "28px";
tmp.src = "http://www.pent.no/slider/line_start.gif";
l_container.appendChild(tmp);
tmp = document.createElement("img");
if(slider_gmapie)	tmp.style.paddingTop = "30px";
else 	tmp.style.paddingTop = "28px";
tmp.src = "http://www.pent.no/slider/line_end.gif";
r_container.appendChild(tmp);


playknapp_i = document.createElement("img");
playknapp_i.setAttribute("id", "slider_gmapplayknapp");
if(slider_gmapie)	{
	playknapp_i.attachEvent("onclick", slider_gmapPlayPause);
} else {
	playknapp_i.addEventListener("click",slider_gmapPlayPause,true);
}
if(slider_gmapplayknapp == "display_left")	{
	l_container.appendChild(playknapp_i);
} else if(slider_gmapplayknapp == "display_right") {
	r_container.appendChild(playknapp_i);
}
slider_gmapPlayPauseSrc();

if(slider_gmapstep_backward == "display")	{
	stepknapp_tilbake_i = document.createElement("img");
	stepknapp_tilbake_i.setAttribute("id", "slider_gmapstep_frem_knapp");
	stepknapp_tilbake_i.setAttribute("src", "http://www.pent.no/slider/v3/step_tilbake.gif")
	if(slider_gmapie)	{
		stepknapp_tilbake_i.attachEvent("onclick", slider_gmapstepBackward);
	} else {
		stepknapp_tilbake_i.addEventListener("click",slider_gmapstepBackward,true);
	}
	r_container.appendChild(stepknapp_tilbake_i);
}
if(slider_gmapstep_forward == "display")	{
	stepknapp_frem_i = document.createElement("img");
	stepknapp_frem_i.setAttribute("id", "slider_gmapstep_frem_knapp");
	stepknapp_frem_i.setAttribute("src", "http://www.pent.no/slider/v3/step_frem.gif")
	if(slider_gmapie)	{
		stepknapp_frem_i.attachEvent("onclick", slider_gmapstepForward);
	} else {
		stepknapp_frem_i.addEventListener("click",slider_gmapstepForward,true);
	}
	r_container.appendChild(stepknapp_frem_i);
}


marker = document.createElement("img");
marker.setAttribute("src", "http://www.pent.no/slider/v3/marker.gif");
marker.setAttribute("id", "slider_gmapmarker");
marker.className = "dragme";
marker.style.left=slider_gmapmarker_pos+"px";
marker.style.top="24px";
container.appendChild(marker);

t_tbl = document.createElement("table");
t_tbl.setAttribute("cellSpacing", "0");
t_tbl.setAttribute("cellPadding", "0");
t_tbl.setAttribute("border", "0");

t_tbody = document.createElement("tbody");

t_tr = document.createElement("tr");

container_width = 5;

for(i=0; i<slider_gmaptidsArr.length; i++)	{
	//d = document.createElement("div");
	d = document.createElement("td");
	
	if(slider_gmaptidsArr[i])	{
		if(slider_gmaptidsArr[i][0].length)	{
			d.className="tidsskritt";
			t = document.createTextNode(slider_gmaptidsArr[i][0]);
			d.appendChild(t);
		} else {
			d.className = "tidsskritt_tom";
			d.innerHTML = "&nbsp;";
		}
		
		d.style.width=(slider_gmapkol_bredde.toString())+"px";
		d.style.fontSize=(slider_gmapkol_fontSize.toString())+"px";
		
		//container.appendChild(d);
		t_tr.appendChild(d);
		container_width += slider_gmapkol_bredde;
	}
}
t_tbody.appendChild(t_tr);

tr = document.createElement("tr");
td = document.createElement("td");
td.setAttribute("colSpan", t_tr.childNodes.length);
td.innerHTML ="&nbsp;";
if(slider_gmapie)	{
	td.style.fontSize="5px";
} else {
	td.style.fontSize="0px";
}
tr.appendChild(td);
t_tbody.appendChild(tr);

t_tbl.appendChild(t_tbody);
container.appendChild(t_tbl);
container.style.width=(container_width)+"px";

slider_gmapStartPlayer();