var root = location.protocol+"//"+location.host;
var nowdate = new Date();
var now = nowdate.getTime();
var map;
var ge;
var la;
var GEActive=false;
var GElng;
var GElat;
var GEhead=0;
var GErolling=false;
var txx=0;
var tmpPOI=null;

var epBound = [];

var Emark=new GMarker(new GLatLng(0,0));
var Tmark=new GMarker(new GLatLng(0,0));
var Geocode = new GClientGeocoder();

var geNavigation=true;
var geLAYER_TERRAIN=true;
var geLAYER_BUILDINGS=true;
var geLAYER_ROADS=false;
var geLAYER_BORDERS=true;
var geScaleLegend=false;
var geOverviewMap=false;
var geStatusBar=false;
var geGrid=false;
var geAtmosphere=true;
var geMousectl=true;

var popW = 550;
var popH = 400;

var icoNed=new GIcon();
icoNed.image = root+"/icon/mark/abc_N.png";
icoNed.shadow = "";
icoNed.shadowSize = new GSize(0,0);
icoNed.iconSize = new GSize(34, 34);
icoNed.iconAnchor = new GPoint(17, 34);
icoNed.infoWindowAnchor = new GPoint(17, 34);

var icoRed=new GIcon();
icoRed.image = root+"/icon/mark/mark_red.png";
icoRed.shadow = "";
icoRed.shadowSize = new GSize(0,0);
icoRed.iconSize = new GSize(49, 52);
icoRed.iconAnchor = new GPoint(25, 40);
icoRed.infoWindowAnchor = new GPoint(25, 6);

var icoBlue=new GIcon();
icoBlue.image = root+"/icon/mark/marker.png";
icoBlue.shadow = "";
icoBlue.shadowSize = new GSize(0,0);
icoBlue.iconSize = new GSize(49, 52);
icoBlue.iconAnchor = new GPoint(25, 40);
icoBlue.infoWindowAnchor = new GPoint(25, 6);

var icoHuman = new GIcon(G_DEFAULT_ICON);
//icoHuman.image = "http://maps.google.com/intl/en_us/mapfiles/cb/man_arrow-0.png";
//icoHuman.transparent = "http://maps.google.com/intl/en_us/mapfiles/cb/man-pick.png";
icoHuman.image = root+"/icon/mark/man-0.png";
icoHuman.transparent = root+"/icon/mark/man-pick.png";
icoHuman.shadow = "";
icoHuman.shadowSize = new GSize(0,0);
icoHuman.imageMap = [26,13,30,14,32,28,27,28,28,36,18,35,18,27,16,26,16,20,16,14,19,13,22,8];
icoHuman.iconSize = new GSize(49, 52);
icoHuman.iconAnchor = new GPoint(25, 35);
icoHuman.infoWindowAnchor = new GPoint(25, 5);


var StreetLink='<div style="padding:0px;overflow-y:auto;height:100%;" class="smallFont"><table>'
+'<tr height="20px"><td colspan="2" align="center" style="border-bottom:1px solid #eeeeee;"><b>StreetView is in support</b></td></tr>'
+'<tr valign="top">'
+'<td style="padding:8px;line-height:18px;">'
+'- <a href=javascript:void(0);Kmap.gotoCenter(41.8975815050,12.4680662155,12);>Rome, Italy</a><br>'
+'- <a href=javascript:void(0);Kmap.gotoCenter(45.4649466010,9.1883468628,12);>Milano, Italy</a><br>'
+'- <a href=javascript:void(0);Kmap.gotoCenter(43.7793984460,11.2539482117,12);>Firenze, Italy</a><br>'
+'- <a href=javascript:void(0);Kmap.gotoCenter(45.7560261559,4.8504638672,12);>Lyon, France</a><br>'
+'- <a href=javascript:void(0);Kmap.gotoCenter(48.8538727317,2.3565673828,12);>Paris, France</a><br>'
+'- <a href=javascript:void(0);Kmap.gotoCenter(50.6429293793,3.0686187744,12);>Lille, France</a><br>'
+'- <a href=javascript:void(0);Kmap.gotoCenter(35.6751474361,139.6801757813,12);>Tokyo, Japan</a><br>'
+'- <a href=javascript:void(0);Kmap.gotoCenter(34.7957615347,135.4614257813,12);>Osaka, Japan</a><br>'
+'- <a href=javascript:void(0);Kmap.gotoCenter(38.2899365980,140.8886718750,12);>Sendai, Japan</a><br>'
+'- <a href=javascript:void(0);Kmap.gotoCenter(-35.2456190942,149.1503906250,10);>Canberra, Austrailia</a><br>'
+'- <a href=javascript:void(0);Kmap.gotoCenter(-33.8430453147,151.0510253906,10);>Sydney, Austrailia</a><br>'
+'- <a href=javascript:void(0);Kmap.gotoCenter(52.3764375,4.8909760,13);>Netherlands, Amsterdam</a><br>'
+'- <a href=javascript:void(0);Kmap.gotoCenter(51.9252138,4.4707489,13);>Netherlands, Rotterdam</a><br>'
+'</td>'
+'<td style="padding:8px;line-height:18px;font-size:8pt;">'
+'- <a href=javascript:void(0);Kmap.gotoCenter(40.756054,-73.986951,13);>United States, New York</a><br>'
+'- <a href=javascript:void(0);Kmap.gotoCenter(34.052187,-118.243425,13);>United States, Los Angeles</a><br>'
+'- <a href=javascript:void(0);Kmap.gotoCenter(41.879535,-87.624333,13);>United States, Chicago</a><br>'
+'- <a href=javascript:void(0);Kmap.gotoCenter(42.35892,-71.05781,13);>United States, Boston</a><br>'
+'- <a href=javascript:void(0);Kmap.gotoCenter(39.755092,-104.988123,13);>United States, Denver</a><br>'
+'- <a href=javascript:void(0);Kmap.gotoCenter(38.892091,-77.024055,13);>United States, Washington DC</a><br>'
+'- <a href=javascript:void(0);Kmap.gotoCenter(25.774252,-80.190262,13);>United States, Miami</a><br>'
+'- <a href=javascript:void(0);Kmap.gotoCenter(51.5008355,-0.1254845,13);>United Kingdom, London</a><br>'
+'- <a href=javascript:void(0);Kmap.gotoCenter(53.4798738,-2.2439575,13);>United Kingdom, Manchester</a><br>'
+'- <a href=javascript:void(0);Kmap.gotoCenter(53.4119876,-2.9766941,13);>United Kingdom, Liverpool</a><br>'
+'- <a href=javascript:void(0);Kmap.gotoCenter(40.4255194,-3.7017059,13);>Spain, Madrid</a><br>'
+'- <a href=javascript:void(0);Kmap.gotoCenter(41.3935518,2.1732330,13);>Spain, Barcelona</a><br>'
+'</td>'
+'</tr>'
+'</table></div>';

var mapLayerBox = document.getElementById("mapLayerBox");
var mapLayerBwiki = document.getElementById("mapLayerBwiki");
var mapLayerBpano = document.getElementById("mapLayerBpano");
var mapLayerBstreet = document.getElementById("mapLayerBstreet");
var mapLayerBepp = document.getElementById("mapLayerBepp");

var StreetViewBox = document.getElementById("StreetViewBox");
var StreetViewDiv = document.getElementById("StreetViewDiv");
var StreetBlist = document.getElementById("StreetBlist");
var StreetBclose = document.getElementById("StreetBclose");
var StreetBbase = document.getElementById("StreetBbase");
var StreetBmid = document.getElementById("StreetBmid");
var StreetBwidth = document.getElementById("StreetBwidth");
var StreetBheight = document.getElementById("StreetBheight");
var StreetBfull = document.getElementById("StreetBfull");
var StreetBsave = document.getElementById("StreetBsave");

var LayerPanoramio = new GLayer("com.panoramio.all");
var LayerWikipdia = new GLayer("org.wikipedia.en");
var Street = new GStreetviewOverlay();
var StreetClient = new GStreetviewClient();
var StreetPANO = new GStreetviewPanorama(StreetViewDiv);

var SwStreet=null;
var street_yaw=0;
var street_pitch=5;
var street_zoom=0;
var street_location=[];
/*-------------------------------------------------------------------------------------------------------------*/
function mapLayerBtn(){return;};
mapLayerBtn.prototype = new GControl();
mapLayerBtn.prototype.initialize = function(map) {
	GEvent.addDomListener(mapLayerBpano, "click", function() {
		if(mapLayerBpano.src == root+"/icon/"+mapLayerBpano.id+"_off.gif"){
			mapLayerBpano.src = root+"/icon/"+mapLayerBpano.id+"_on.gif"
			map.addOverlay(LayerPanoramio);
		}
		else{
			mapLayerBpano.src = root+"/icon/"+mapLayerBpano.id+"_off.gif"
			map.removeOverlay(LayerPanoramio);
		}
	});
	GEvent.addDomListener(mapLayerBwiki, "click", function() {
		if(mapLayerBwiki.src == root+"/icon/"+mapLayerBwiki.id+"_off.gif"){
			mapLayerBwiki.src = root+"/icon/"+mapLayerBwiki.id+"_on.gif"
			map.addOverlay(LayerWikipdia);
		}
		else{
			mapLayerBwiki.src = root+"/icon/"+mapLayerBwiki.id+"_off.gif"
			map.removeOverlay(LayerWikipdia);
		}
	});
	GEvent.addDomListener(mapLayerBstreet, "click", function() {
		if(mapLayerBstreet.src == root+"/icon/"+mapLayerBstreet.id+"_off.gif"){
			mapLayerBstreet.src = root+"/icon/"+mapLayerBstreet.id+"_on.gif"
			map.addOverlay(Street);
			StreetViewBox.style.display = "block";
			SwStreet = "StreetBlist";
			GEvent.trigger(document.getElementById(SwStreet), "click");
		}
		else{
			mapLayerBstreet.src = root+"/icon/"+mapLayerBstreet.id+"_off.gif"
			map.removeOverlay(Street);
			StreetViewBox.style.display = "none";
			SwStreet = null;
		}
	});
	mapLayerBox.style.display = "block";
	return map.getContainer().appendChild(mapLayerBox);
};
/*-------------------------------------------------------------------------------------------------------------*/
function mapStreetBtn(){return;};
mapStreetBtn.prototype = new GControl();
mapStreetBtn.prototype.initialize = function(map) {
	StreetViewDiv.innerHTML = StreetLink;
	GEvent.addDomListener(StreetBlist, "click", function() {
		StreetViewBox.style.width = "350px";
		StreetViewDiv.style.height = "280px";
		SwStreet="StreetBlist";
		StreetViewDiv.innerHTML = StreetLink;
	});
	GEvent.addDomListener(StreetBclose, "click", function() {
		GEvent.trigger(mapLayerBstreet, "click");
	});
	GEvent.addDomListener(StreetBbase, "click", function() {
		StreetViewBox.style.width = "320px";
		StreetViewDiv.style.height = "240px";
		SwStreet="StreetBbase";
		StreetPANO.checkResize();
	});
	GEvent.addDomListener(StreetBmid, "click", function() {
		StreetViewBox.style.width = parseInt(map.getSize().width/2)+"px";
		StreetViewDiv.style.height = parseInt(map.getSize().height/2)+"px";
		SwStreet="StreetBmid";
		StreetPANO.checkResize();
	});
	GEvent.addDomListener(StreetBwidth, "click", function() {
		StreetViewBox.style.width = parseInt(map.getSize().width)+"px";
		StreetViewDiv.style.height = parseInt(map.getSize().height/2)+"px";
		SwStreet="StreetBwidth";
		StreetPANO.checkResize();
	});
	GEvent.addDomListener(StreetBheight, "click", function() {
		StreetViewBox.style.width = parseInt(map.getSize().width/2)+"px";
		StreetViewDiv.style.height = parseInt(map.getSize().height-26)+"px";
		SwStreet="StreetBheight";
		StreetPANO.checkResize();

	});
	GEvent.addDomListener(StreetBfull, "click", function() {
		StreetViewBox.style.width = parseInt(map.getSize().width)+"px";
		StreetViewDiv.style.height = parseInt(map.getSize().height-26)+"px";
		SwStreet="StreetBfull";
		StreetPANO.checkResize();
	});
	GEvent.addDomListener(StreetBsave, "click", function() {
		if(SwStreet != "StreetBbase"){GEvent.trigger(StreetBbase, "click");}
		GEvent.trigger(Tmark, "click");
	});
	StreetViewBox.style.display = "none";
	return map.getContainer().appendChild(StreetViewBox);
};

/*-------------------------------------------------------------------------------------------------------------*/
if (jQuery.browser.msie) {$(document).keydown(function(){if(window.event.keyCode == 27){popClose();map.closeInfoWindow();}});}
else{$(window).keydown(function(event){if(event.keyCode == 27){popClose();map.closeInfoWindow();}});}
/*-------------------------------------------------------------------------------------------------------------*/
window.onresize = function(){AutoResize();};
/*-------------------------------------------------------------------------------------------------------------*/
window.onunload = function(){GUnload();};
/*-------------------------------------------------------------------------------------------------------------*/
AutoResize = function(){
	$("#map,#mnu").height(100);
	popActive();
	var trH = $("#mapTD").innerHeight();
	$("#map,#mnu").height(trH);
	map.checkResize();
	if(SwStreet != null){
		GEvent.trigger(document.getElementById(SwStreet), "click");
	}
};
/*-------------------------------------------------------------------------------------------------------------*/
function encode(s) {return encodeURIComponent(s);};
function decode(s) {return decodeURIComponent(s);};
function striptags(string) {var objStrip = new RegExp();objStrip = /[<][^>]*[>]/gi; return string.replace(objStrip, "");};
function get_page(page,rows,tpage,total,func){
	var pg,np,pageHtml = "";
	page = parseInt(page);
	rows = parseInt(rows);
	tpage = parseInt(tpage);
	total = parseInt(total);
	var pgPrev = parseInt(page-1);
	var pgNext = parseInt(page+1);
	if( rows<1){return '<span class=disable>« Prev</span> <span class=disable>Next »</span> ';}
	if( page > 1 ){pageHtml += '<span onclick='+func+'('+pgPrev+');>« Prev</span> ';}
	else { pageHtml += '<span class=disable>« Prev</span> ';}
	pageHtml += '<b>'+page+'</b> ';
	if( page < tpage ){ pageHtml += '<span onclick='+func+'('+pgNext+');>Next »</span> ';}
	else  {pageHtml += '<span class=disable>Next »</span> ';}
	return pageHtml;
};
function number_format(str){
	str = ""+str+"";
	var retValue = "";
	for(iii=0; iii<str.length; iii++){
		if(iii > 0 && (iii%3)==0){retValue = str.charAt(str.length - iii -1) + "," + retValue;}
		else{	retValue = str.charAt(str.length - iii -1) + retValue;}
	}
	if (retValue=="0"){return "";}
	return retValue;
};

function enterCountry(lang){
	$.cookie('lang', lang);
	location.href='/index.php';
};
function isnow() {
	var nowdate = new Date();
	var now = nowdate.getTime();
	return now;
};
function CopyPosition(obj) {
	var cobj = document.getElementById(obj);
	var doc = document.body.createTextRange();
	doc.moveToElementText( cobj );
	doc.execCommand("copy");
	alert("ePosition copied into the Clipboard.\n\nIt can be pasted when writing with WYSIWYG  function");
};
function CopyPositionHiway(obj) {
	var cobj = document.getElementById(obj);
	var doc = document.body.createTextRange();
	doc.moveToElementText( cobj );
	doc.execCommand("copy");
	alert("ePosition copied into the Clipboard.\n\nIt can be pasted Messenger & IE address");
};
function CopyPositionMoBlog(obj) {
	var cobj = document.getElementById(obj);
	var doc = document.body.createTextRange();
	doc.moveToElementText( cobj );
	doc.execCommand("copy");
	alert("ePosition copied into the Clipboard.\n\nIt can be pasted Twitter & Mobile BLOG");
};
function isLink(id) {
	var container = document.getElementById(id);
	var doc = container.innerHTML;
	var regURL = new RegExp("(http|https|ftp|telnet|news|irc)://([-/.a-zA-Z0-9_~#%$?&=:200-377()]+)","gi");
	var regEmail = new RegExp("([xA1-xFEa-z0-9_-]+@[xA1-xFEa-z0-9-]+\.[a-z0-9-]+)","gi");
	container.innerHTML = doc.replace(regURL,"<a href='$1://$2' target='_blank'>$1://$2</a>").replace(regEmail,"<a href='mailto:$1'>$1</a>");
};
function doLink(url) {
	var pattern = new RegExp("(http|https|ftp|telnet|news|irc)://([-/.a-zA-Z0-9_~#%$?&=:200-377()]+)","gi");
	if(pattern.test(url)){
		return url;
	}
	else{
		return 'http://'+url;
	}
};
function isWeburl(value){
	var pattern= /^((ht|f)t(p|ps):\/\/)((([a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3}))|(([0-9]{1,3}\.){3}([0-9]{1,3})))((\/|\\?)[a-z0-9~#%&'_\+=:\?\.-]*)*)$/gi;
	return (pattern.test(value)) ? true : false;
};
function doWeburl(value){
	var pattern= /^((ht|f)t(p|ps):\/\/)((([a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3}))|(([0-9]{1,3}\.){3}([0-9]{1,3})))((\/|\\?)[a-z0-9~#%&'_\+=:\?\.-]*)*)$/gi;
	return (pattern.test(value)) ? true : false;
};
function isEmail(value) {
	var pattern = /^[_a-zA-Z0-9-\.]+@[\.a-zA-Z0-9-]+\.[a-zA-Z]+$/;
	return (pattern.test(value)) ? true : false;
};
function isUserid(value) {
	var pattern = /^[a-zA-Z]{1}[a-zA-Z0-9]{3,19}$/;
	return (pattern.test(value)) ? true : false;
};
function doAutoLink(value) {
	var org=value;
	var regURL = new RegExp("(http|https|ftp|telnet|news|irc)://([-/.a-zA-Z0-9_~#%$?&=:200-377()]+)","gi");
	var newURL = value.match(regURL);
	if(newURL == null){
		return 'http://'+org;
	}
	else{
		return newURL;
	}
};
String.prototype.left = function(len){
	if (this==null || this=="") return this;
	var strLength=this.length;
	if (strLength<1 || len>=strLength) return this;
	else return this.substr(0,len);
};
String.prototype.cut = function(len) {
	var str = this;
	var l = 0;
	for (var i=0; i<str.length; i++) {
		l += (str.charCodeAt(i) > 128) ? 2 : 1;
		if (l > len) return str.substring(0,i) + "...";
	}
	return str;
};
