function GetDegreeValue(v){
    var vv = "";
    var good = "0123456789.";
    var sign = 1;
    var factor = 1;
    var d = 0;
    var c, oldc;
    
    // Change non-numbers into spaces.
    oldc = ' ';
		v = v.toString();
    for (i = 0; i < v.length; i ++)	{
      var c = v.charAt(i).toUpperCase();

			if (c == 'W' || c == 'S' || c == '-'){
		    sign = -1;
			}
			if (good.indexOf(c) < 0){
		    c = ' ';
			}

			if (oldc != ' ' || c != ' '){
		    vv += c;
		    oldc = c;
    	}	
		}

    v = new Array();
    v = vv.split(' ');
    
    for (i = 0; i < v.length; i ++){
			d += v[i] * factor;
			factor /= 60;
    }
    
    return d * sign;
}


function DoPrecision(v, p)
{
    return Math.round(v * Math.pow(10, p)) / Math.pow(10, p);
}

function updArr(v)
{
    var d, m, sign = '', str;
    
    v = GetDegreeValue(v);
    if (v < 0){
			v = - v;
    }
    
	
    d = Math.floor(v);
    v = (v - d) * 60;
    
    m = Math.floor(v);
    v = (v - m) * 60;
    str = d.toString() + '&deg; ' + m.toString() + "' " + DoPrecision(v, 2) + '"';

		arr = [];

		arr[0] = d.toString();
		arr[1] = m.toString();
		arr[2] = DoPrecision(v, 2);

		return arr;  
}

function setGeoInfo(lat,lng){
    var infolat = upd(lat);
    var infolng = upd(lng);
    $('dvGeoinfo').innerHTML = "N " + infolat + ", E " + infolng;
}


function upd(v)
{
    var d, m, sign = '', str;
    
    v = GetDegreeValue(v);
    if (v < 0){
			v = - v;
    }
    
	
    d = Math.floor(v);
    v = (v - d) * 60;
    
    m = Math.floor(v);
    v = (v - m) * 60;
    str = d.toString() + '&deg; ' + m.toString() + "' " + DoPrecision(v, 2) + '"';

		return str;  
}
