var EARTH_RADIUS = 6378137.0;    //µ¥Î»M
var PI = Math.PI;
    
function getRad(d){
    return d*PI/180.0;
}

function getFlatternDistance(lat1,lng1,lat2,lng2){
        var f = getRad((lat1 + lat2)/2);
        var g = getRad((lat1 - lat2)/2);
        var l = getRad((lng1 - lng2)/2);
        
        var sg = Math.sin(g);
        var sl = Math.sin(l);
        var sf = Math.sin(f);
        
        var s,c,w,r,d,h1,h2;
        var a = EARTH_RADIUS;
        var fl = 1/298.257;
        
        sg = sg*sg;
        sl = sl*sl;
        sf = sf*sf;
        
        s = sg*(1-sl) + (1-sf)*sl;
        c = (1-sg)*(1-sl) + sf*sl;
        
        w = Math.atan(Math.sqrt(s/c));
        r = Math.sqrt(s*c)/w;
        d = 2*w*a;
        h1 = (3*r -1)/2/c;
        h2 = (3*r +1)/2/s;
        
        return d*(1 + fl*(h1*sf*(1-sg) - h2*(1-sf)*sg));
    }


function rad(d)
{
   return d * Math.PI / 180.0;
}

function GetDistance(lat1, lng1, lat2, lng2)
{
   var radLat1 = rad(lat1);
   var radLat2 = rad(lat2);
   var a = radLat1 - radLat2;
   var b = rad(lng1) - rad(lng2);
   var s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a/2),2) + Math.cos(radLat1)*Math.cos(radLat2)*Math.pow(Math.sin(b/2),2)));
   s = s * 6378.137;
   s = Math.round(s * 10000) / 10000;
   return s;
}

fma1=0x00; fma2=0x00; fma3=0xff;
	fma4=0x99; fma5=0x00; fma6=0x00;
	
function fmToHex(n){
	var hexChars = "0123456789ABCDEF";
	if (n == 0) return "00";
	var j, n;
	var temp = "";
	while (n != 0){
		j = n % 16;
		n = (n - j)/16;
		temp = hexChars.charAt(j) + temp;
	}
	if (temp.length < 2){
		temp = "0" + temp;
	}
	return temp;
}

function fmFade(){
	//obj = document.getElementById('tekst').style;
	fmcolor = "#" + fmToHex(fma1) + fmToHex(fma2) + fmToHex(fma3);
	//obj.color = fmcolor;
	if (fma1 != fma4){
		if (fma4 > fma1){fma1++;}
		else{fma1--;}}
		if (fma2 != fma5){
		if (fma5 > fma2){fma2++;}
		else{fma2--;}}
		if (fma3 != fma6){
		if (fma6 > fma3){fma3++;}
		else{fma3--;}}
		if ((fma1 == fma4) && (fma2 == fma5) && (fma3 == fma6)){
		//window.clearTimeout(fmTimer);
	}
	//else{
	//	fmTimer = window.setTimeout("fmFade()",5);
	//
	//}
	return fmcolor;
}

	function d2h(d) {
		var h = hD.substr(d&15,1);
		while(d>15) {d>>=4;h=hD.substr(d&15,1)+h;}
			return h;
	}
	
	function h2d(h) {
		return parseInt(h,16);
	}


	   function distance(lat1, lon1, lat2, lon2) {
	   	var radlat1 = Math.PI * lat1/180;
	   	var radlat2 = Math.PI * lat2/180;
	   	var radlon1 = Math.PI * lon1/180;
	   	var radlon2 = Math.PI * lon2/180;
	   	var theta = lon1-lon2;
	   	var radtheta = Math.PI * theta/180;
	   	var dist = Math.sin(radlat1) * Math.sin(radlat2) + Math.cos(radlat1) * Math.cos(radlat2) * Math.cos(radtheta);
	   	dist = Math.acos(dist);
	   	dist = dist * 180/Math.PI;
	   	dist = dist * 60 * 1.1515;
 		return dist;
	  }


function SetCookie(cookieName, cookieValue, path, domain, secure){ 
  var expires = new Date(); 
  expires.setTime(expires.getTime() + 100000000); 
  document.cookie = escape(cookieName) + '=' + escape(cookieValue) 
  + (expires ? '; expires=' + expires.toGMTString() : '') 
  + (path ? '; path=' + path : '/') 
  + (domain ? '; domain=' + domain : '') 
  + (secure ? '; secure' : ''); 
}
 
function GetCookie(name){ 
  var cookie_start = document.cookie.indexOf(name); 
  var cookie_end = document.cookie.indexOf(";", cookie_start); 
  return cookie_start == -1 ? '' : unescape(document.cookie.substring(cookie_start + name.length + 1, (cookie_end > cookie_start ? cookie_end : document.cookie.length))); 
} 
function DelCookie(cookieName, cookieValue, path, domain, secure){ 
  var cookieValue="hello"; 
  var expires = new Date(); 
  expires.setTime(expires.getTime() - 100000); 
  document.cookie = escape(cookieName) + '=' + escape(cookieValue) 
  + (expires ? '; expires=' + expires.toGMTString() : '') 
  + (path ? '; path=' + path : '/') 
  + (domain ? '; domain=' + domain : '') 
  + (secure ? '; secure' : ''); 
} 



function initdateoption(p_obj_y,p_obj_m,p_obj_d){
var dt=new Date();
var dd=dt.getFullYear();
for (var i=dd-1;i<=dd+10;i++){
	var option=new Option(i,i);	
	if (option.value==dd){option.selected=true;}
	p_obj_y.options.add(option);		
}


for (var i=1;i<=12;i++){
	var option=new Option(i,i);	
	if (option.value==dt.getMonth()+1){option.selected=true;}
	p_obj_m.options.add(option);		
}
listoptiondays(p_obj_d,p_obj_y.value,p_obj_m.value);
}

function listoptiondays(p_obj_d,year,month){
	var dt=new Date();
	p_obj_d.options.length=0;
	var nyear=Number(year);
	var nmonth=Number(month);
	if(nmonth==2){
		if((year%4==0 && year%100!=0) || year%400==0){
			for (var i=1;i<=29;i++){
				var option=new Option(i,i);
				p_obj_d.options.add(option);
			}
		}else{
			for (var i=1;i<=28;i++){
				var option=new Option(i,i);
				p_obj_d.options.add(option);
			}			
		}
	}else if(nmonth==4 || nmonth==6 || nmonth==9 || nmonth==11){
		for (var i=1;i<=30;i++){
			var option=new Option(i,i);
			p_obj_d.options.add(option);			
		}
	}else{
		for (var i=1;i<=31;i++){
			var option=new Option(i,i);
			p_obj_d.options.add(option);			
		}			
	}
	p_obj_d.value=dt.getDate();
	
}

function inittimeoption(p_obj_time,p_bend){
if(!p_bend){
  for (var i=0;i<=23;i++){
  	var option=new Option(i+":00",i);	
 	  if (option.value==9){option.selected=true;}
	  p_obj_time.options.add(option);		
  }	
}else{
  for (var i=1;i<=24;i++){
  	var option=new Option(i+":00",i);	
 	  if (option.value==10){option.selected=true;}
	  p_obj_time.options.add(option);		
  }		
}

}


function gettimezone(){
   var oDate = new Date();
   var nTimezoneOffset=oDate.getTimezoneOffset()*60; 
   return nTimezoneOffset;
}


function Date2UTC(p_nYear,p_nMonth,p_nDay,p_nHour,p_nMin,p_nSecond)
{
var oDate = new Date(p_nYear,p_nMonth,p_nDay,p_nHour,p_nMin,p_nSecond,0);
var localtime = oDate.getTime();
localtime /= 1000;
return localtime;
} 

function UTC2Date(p_nUTC)
{
var oDate = new Date();
var localtime = oDate.setTime(p_nUTC * 1000);

return oDate;
} 

function UTC2DateStr(p_nUTC)
{
var oDate = new Date();
var localtime = oDate.setTime(p_nUTC * 1000);
var sYear=oDate.getFullYear();
var sMonth=oDate.getMonth()+1;
if (sMonth<10) sMonth="0"+sMonth;
var sDay=oDate.getDate();
if (sDay<10) sDay="0"+sDay;
var sHour=oDate.getHours();
if (sHour<10) sHour="0"+sHour;
var sMin=oDate.getMinutes();
if (sMin<10) sMin="0"+sMin;
var sSec=oDate.getSeconds();
if (sSec<10) sSec="0"+sSec;
return sYear+"-"+sMonth+"-"+sDay+" "+sHour+":"+sMin+":"+sSec;
} 

function UTC2DateStr_short(p_nUTC)
{
var oDate = new Date();
var localtime = oDate.setTime(p_nUTC * 1000);
var sHour=oDate.getHours();
if (sHour<10) sHour="0"+sHour;
var sMin=oDate.getMinutes();
if (sMin<10) sMin="0"+sMin;
var sSec=oDate.getSeconds();
if (sSec<10) sSec="0"+sSec;
return sHour+":"+sMin+":"+sSec;
} 

var Sys = {};
var ua = navigator.userAgent.toLowerCase();
var s;
(s = ua.match(/msie ([\d.]+)/)) ? Sys.ie = s[1] :
(s = ua.match(/firefox\/([\d.]+)/)) ? Sys.firefox = s[1] :
(s = ua.match(/chrome\/([\d.]+)/)) ? Sys.chrome = s[1] :
(s = ua.match(/opera.([\d.]+)/)) ? Sys.opera = s[1] :
(s = ua.match(/version\/([\d.]+).*safari/)) ? Sys.safari = s[1] : 0;
