var linkadd = '';

function registerKey(key,url) {
        if (url != null)
                keyArray[key] = url + linkadd;
        else
                keyArray[key] = null;
}

function registerKeyAction(key,action) {
        keyAction[key] = action;
}

document.onkeydown = function (evt) {
        evt = evt || window.event;
        keycode = evt.keyCode || evt.which;   
        tag = (evt.srcElement) ? evt.srcElement.tagName : evt.target.nodeName;
	if (tag != null)
	        tagname = tag.toUpperCase();
	else
		tagname = '';
 
        // disable for form elements && input
        if (tagname == 'INPUT' || tagname == 'TEXTAREA' || tagname == 'SELECT')
                return(true);

        // evt.ctrlKey
        // evt.shiftKey
        // evt.altKey

        var index = numindex = '';
        if (evt.ctrlKey) index = index + 'CTRL+';
        if (evt.shiftKey) index = index + 'SHIFT+';
        if (evt.altKey) index = index + 'ALT+';
        numindex = index + keycode
        index = index + String.fromCharCode(keycode);

        if (keyArray[index] != null) {
                document.location = keyArray[index];
                return(false);

        }else if (keyArray[numindex] != null) {
                document.location = keyArray[numindex];
                return(false);

        }else if (keyAction[index] != null) {
                eval(keyAction[index]);
                return(false);

        }else if (keyAction[numindex] != null) {
                eval(keyAction[numindex]);
                return(false);
        }

        //testing purpose only
        //alert(index);

        return(true);
}

var keyArray = new Array();
var keyAction = new Array();

function DoSubmission() {
document.MyForm.submit();
}

function limitlength(obj, length){
var maxlength=length
if (obj.value.length>maxlength)
obj.value=obj.value.substring(0, maxlength)
}

function textCounter(field, countfield, maxlimit) {
if (field.value.length > maxlimit) // if too long...trim it!
field.value = field.value.substring(0, maxlimit);
// otherwise, update 'characters left' counter
else 
countfield.value = maxlimit - field.value.length;
}

function load(adre) {
var load = window.open(adre,'','scrollbars=no,menubar=no,height=600,width=800,resizable=yes,toolbar=no,location=no,status=no');
}

function checkCheckBox(f, pikkus){
var lenght = 500;
if (lenght < pikkus )
{
alert('Please check the box to continue.');
return false;
}else
return true;
}

var maxWidth=128;
var maxHeight=128;
var fileTypes=["png","jpg","jpeg"];
var outImage="previewField";
var defaultPic="/graph/spacer.jpg";

function preview(what){
  var source=what.value;
  var ext=source.substring(source.lastIndexOf(".")+1,source.length).toLowerCase();
  for (var i=0; i<fileTypes.length; i++) if (fileTypes[i]==ext) break;
  globalPic=new Image();
  if (i<fileTypes.length) globalPic.src=source;
  else {
    globalPic.src=defaultPic;
    alert("See on ebasobiv failiitüüp!\n\nSobivad failid laiendiga:\n\n"+fileTypes.join(", "));
  }
  setTimeout("applyChanges()",200);
}
var globalPic;
function applyChanges(){
  var field=document.getElementById(outImage);
  var x=parseInt(globalPic.width);
  var y=parseInt(globalPic.height);
  if (x>maxWidth) {
    y*=maxWidth/x;
    x=maxWidth;
  }
  if (y>maxHeight) {
    x*=maxHeight/y;
    y=maxHeight;
  }
  field.style.display=(x<1 || y<1)?"none":"";
  field.src=globalPic.src;
  field.width=x;
  field.height=y;
}

function go_there(where, message)
{
var answer=confirm(message)
if (answer)
window.location=where
}

function popUp(URL, width, height, scrollbar) {
day = new Date();
id = day.getTime();
eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars="+scrollbar+",location=0,statusbar=0,menubar=0,resizable=0,width=" + width + ",height=" + height + ",left = 312,top = 184');");
}

function KuvaBanner(url, w, h, wmode)
{
	document.writeln('<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="'+w+'" height="'+h+'">');
	document.writeln('<param name="movie" value="'+url+'" />');
	document.writeln('<param name="quality" value="high" />');
	document.writeln('<param name="name" value="movie" />');
	document.writeln('<param name="swLiveConnect" value="true" />');
	if (wmode == 1)
	{
		document.writeln('<param name="wmode" value="transparent" />');
		document.writeln('<embed src="'+url+'" wmode="transparent" quality="high" scale="noscale" width="'+w+'" height="'+h+'" align="middle" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />');
	}
	else
	{
		document.writeln('<embed src="'+url+'" quality="high" scale="noscale" width="'+w+'" height="'+h+'" align="middle" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />');
	}
	document.writeln('</object>');
}

GF = function () {
        return {
		session: {},
		reload: {}
        };
}

GF.reload = function () {
	document.location.reload();
}

/**
 * GF classMGR namespace
 * for managing multiple node classes runtime
 */
GF.session = {
	set: function (name, value, days) {

		if (days) {
			var date = new Date();
			date.setTime(date.getTime()+(days*24*60*60*1000));
			var expires = "; expires="+date.toGMTString();
		}else 
			var expires = "";

		var tmp1 = document.location.toString().split('//');
		var tmp2 = tmp1[1].split('/');
		var tmp3 = tmp2[0].split('.');
		var domain = '.'+tmp3[tmp3.length-2] + '.' + tmp3[(tmp3.length-1)];

		document.cookie = name+"="+value+expires+"; path=/; domain="+escape(domain);
	},
	get: function (name) {
		var tmp = '';
		var cname = '';
		var ca = document.cookie.split(';');
		for(var i=0;i < ca.length;i++) {
			tmp = ca[i].split( '=' );
			cname = tmp[0].replace(/^\s+|\s+$/g, '');
			if (cname == name)
				return(unescape(tmp[1].replace(/^\s+|\s+$/g, '')));
		}
		return null;
	},
	remove: function (name) {
			GF.session.set(name,"",-1);
	}
}

var map_key = 'ABQIAAAAadIzgTB2OtYGoW1dEmnPLxQQF6PbwZjRlR_3LkEaWD7xWS-jYRTz881Qr1yIUAFyWMHFKRqBqRMaJA';
var x,y, marker;
var created = false;

function show_map(id, lat, lon)
{
	if (created)
	{
		document.getElementById('maparea').style.display = '';
		return false;
	}

	var html = '<div style="background-color:#aaaaaa;padding:5px;border:1px solid;color:#000000;"><div style="text-align:right; clear:both;"><a href="#" onclick="return hide_map();">sulge</a></div><div id="map" style="width:600px; height:300px; margin:5px;"></div><div class="blueform"><form method="post" action="/pilt.php">Koordinaadid: <input type="text" name="latitude" id="latitude"><input type="text" name="longitude" id="longitude">&nbsp;&nbsp;<input type="submit" value="Salvesta"><input type="hidden" name="id" value="'+id+'">&nbsp;&nbsp;<a href="/pilt.php?id='+id+'&go=delposition">kustuta asukoht</a></form></div></div>';
	var el = document.createElement('div');
	el.innerHTML = html;
	el.style.position = 'absolute';
	el.style.zIndex = '1000';
	el.id = 'maparea';
	document.getElementById('maplocation').appendChild(el);

	if (lat)
	{
		x = lat;
		y = lon;
	}
	else
	{
		x = '58.9174099391385';
		y = '25.64208984375';
	}

        var script = document.createElement("script");
        script.type = "text/javascript";
        script.src = "http://maps.google.com/maps?file=api&v=2.x&key="+map_key+"&async=2&callback=show_map_cb";
        document.body.appendChild(script);

	created = true;

	return false;
}

function show_map_cb()
{
        var map = new GMap2(document.getElementById("map"));
        map.addControl(new GSmallMapControl());
        map.setCenter(new GLatLng(x, y), 6);

        marker = new GMarker(new GLatLng(x, y), {draggable:true});
        GEvent.addListener(marker, "dragend", function() {
                marker.openInfoWindowHtml('Asukoht valitud');
                change_position();
        });
        map.addOverlay(marker);
        marker.openInfoWindowHtml('Otsi kaardilt koht, kus pilt on tehtud.');

	GEvent.addListener(map, 'click', 
		function(mark, point)
		{
			if (!mark && point)
			{
			        marker.setLatLng(point);
			        marker.openInfoWindowHtml('Asukoht valitud');
			        change_position();
			}
		}
	);

        change_position();
}

function change_position()
{
        var lat = document.getElementById('latitude');
        var lon = document.getElementById('longitude');
        var newloc = marker.getPoint();
        lat.value = newloc.lat();
        lon.value = newloc.lng();
}

function view_map(lat, lon)
{
	if (created)
	{
		document.getElementById('maparea').style.display = '';
		return false;
	}

	x = lat;
	y = lon;

	var html = '<div style="background-color:#aaaaaa;padding:5px;border:1px solid;color:#000000;"><div style="text-align:right; clear:both;"><a href="#" onclick="return hide_map()">sulge</a></div><div id="map" style="width:500px; height:300px; border:1px solid;"></div></div>';
	var el = document.createElement('div');
	el.innerHTML = html;
	el.style.position = 'absolute';
	el.style.zIndex = '1000';
	el.id = 'maparea';
	document.getElementById('maplocation').appendChild(el);

        var script = document.createElement("script");
        script.type = "text/javascript";
        script.src = "http://maps.google.com/maps?file=api&v=2.x&key="+map_key+"&async=2&callback=view_map_cb";
        document.body.appendChild(script);

	created = true;

	return false;
}

function view_map_cb()
{
        var map = new GMap2(document.getElementById("map"));
        map.addControl(new GSmallMapControl());
        map.setCenter(new GLatLng(x, y), 11);
        var m = new GMarker(new GLatLng(x, y), {draggable:true});
        map.addOverlay(m);
}

function hide_map()
{
	document.getElementById('maparea').style.display = 'none';
	return false;
}

function toggle_login()
{
	var el = document.getElementById('loginblock');
	if (el.style.display == '')
		el.style.display = 'none';
	else
	{
		el.style.display = '';
		document.getElementById('nimi').focus();
	}
}

function k_addFavourite(page_url, page_name)
{
        w=window;
        if (document.all)
        {
                w.external.AddFavorite(page_url, page_name);
        }
        else
        {
                w.sidebar.addPanel(page_name, page_url, '');
        }
}
