﻿// JavaScript Document

var map;

function initialize() {
	resize();
	if (GBrowserIsCompatible()) {
		map = new GMap2($("map"));
		map.addControl(new GLargeMapControl());
		var customUI = map.getDefaultUI();
		// Remove MapType.G_HYBRID_MAP
		// customUI.maptypes.hybrid = false;
		map.setUI(customUI);
		map.setCenter(new GLatLng(39.917, 116.397), 14);
  }
}

function getPageSize(){  
  var xScroll, yScroll;  
  if (window.innerHeight && window.scrollMaxY) {  
    xScroll = document.body.scrollWidth;
    yScroll = window.innerHeight + window.scrollMaxY;
  } else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
    xScroll = document.body.scrollWidth;
    yScroll = document.body.scrollHeight;
  } else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
    xScroll = document.body.offsetWidth;
    yScroll = document.body.offsetHeight;
  }
  var windowWidth, windowHeight;
  if (self.innerHeight) {  // all except Explorer
    windowWidth = self.innerWidth;
    windowHeight = self.innerHeight;
  } else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
    windowWidth = document.documentElement.clientWidth;
    windowHeight = document.documentElement.clientHeight;
  } else if (document.body) { // other Explorers
    windowWidth = document.body.clientWidth;
    windowHeight = document.body.clientHeight;
  }  
  
  // for small pages with total height less then height of the viewport
  if(yScroll < windowHeight){
    pageHeight = windowHeight;
  } else { 
    pageHeight = yScroll;
  }
  if(xScroll < windowWidth){  
    pageWidth = windowWidth;
  } else {
    pageWidth = xScroll;
  }
  arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight) 
  return arrayPageSize;
} 

function resize() {
	var pageSize = getPageSize();
	var mapHeight = pageSize[3] - 30;
	var mapWidth = pageSize[2];
	if (mapHeight < 300) {mapHeight = 300;}
	$("map").style.height = mapHeight.toString() + "px";
  $("map").style.width = mapWidth.toString() + "px";
}

function search_type1() {
	var lat = $("lat1").value * parseInt($("select_lat_1").value);
 
	var lng = $("lng1").value * parseInt($("select_lng_1").value);
	var llArray = new Array(2);
	llArray = adjustGoogle(lat, lng);
	var point = new GLatLng(llArray[0], llArray[1]);

	map.clearOverlays();
	map.addOverlay(new GMarker(point));
	map.setCenter(point);
}

function search_type2() {
	var lat = (parseFloat($("lat2").value) + parseFloat($("lat3").value)/60.0 + parseFloat($("lat4").value)/3600.0) * parseInt($("select_lat_2").value);
	var lng = (parseFloat($("lng2").value) + parseFloat($("lng3").value)/60.0 + parseFloat($("lng4").value)/3600.0) * parseInt($("select_lng_2").value);
	
	var llArray = new Array(2);
	llArray = adjustGoogle(lat, lng);
	var point = new GLatLng(llArray[0], llArray[1]);

	map.clearOverlays();
	map.addOverlay(new GMarker(point));
	map.setCenter(point);
}

function search_type3() {
	var lat = (parseFloat($("lat5").value) + parseFloat($("lat6").value)/60.0) * parseInt($("select_lat_3").value);
	var lng = (parseFloat($("lng5").value) + parseFloat($("lng6").value)/60.0) * parseInt($("select_lng_3").value);
	
	var llArray = new Array(2);
	llArray = adjustGoogle(lat, lng);
	var point = new GLatLng(llArray[0], llArray[1]);

	map.clearOverlays();
	map.addOverlay(new GMarker(point));
	map.setCenter(point);
}

function search_type4() {
	var lat1 = parseFloat($("lat7").value)/100.0;
	var lat = (parseInt(lat1) + (lat1 - parseInt(lat1)) * 100 / 60) * parseInt($("select_lat_4").value) ;
	var lng1 = parseFloat($("lng7").value)/100.0;
	var lng = (parseInt(lng1) + (lng1 - parseInt(lng1)) * 100 / 60) * parseInt($("select_lng_4").value) ;

	var llArray = new Array(2);
	llArray = adjustGoogle(lat, lng);
	var point = new GLatLng(llArray[0], llArray[1]);
	map.clearOverlays();
	map.addOverlay(new GMarker(point));
	map.setCenter(point);
}

function select_input() {
	switch (parseInt($("select_input").value)) {
		case 1:
			$("input_div_1").show();
			$("input_div_2").hide();
			$("input_div_3").hide();
			$("input_div_4").hide();
			break;
		case 2:
			$("input_div_1").hide();
			$("input_div_2").show();
			$("input_div_3").hide();
			$("input_div_4").hide();
			break;
		case 3:
			$("input_div_1").hide();
			$("input_div_2").hide();
			$("input_div_3").show();
			$("input_div_4").hide();
			break;
		case 4:
			$("input_div_1").hide();
			$("input_div_2").hide();
			$("input_div_3").hide();
			$("input_div_4").show();
			break;
	}
}

function adjustGoogle(lat, lng)
{ 
	var data = '<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><GooAdjust xmlns="http://1066303.com/WebServices"><Latitude>'+lat+'</Latitude><Longitude>'+lng+'</Longitude></GooAdjust></soap:Body></soap:Envelope>';
	var xmlhttp;
  if (window.ActiveXObject) {
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  }
  else if (window.XMLHttpRequest) {
    xmlhttp = new XMLHttpRequest();                
  }
	var URL="/WS/gooAdjust.asmx"; 
	xmlhttp.open("POST",URL, false); 
	xmlhttp.setRequestHeader ("Content-Type","text/xml; charset=gb2312"); 
	xmlhttp.setRequestHeader ("SOAPAction","http://1066303.com/WebServices/GooAdjust"); 
	xmlhttp.send(data); 
	var retVal;
	var pos1;
	var pos2;
	var pos3;
	retVal = xmlhttp.responseText;  
	pos1 = retVal.indexOf('<GooAdjustResult>');
	pos2 = retVal.indexOf('</GooAdjustResult>');
	llStr = retVal.substring(pos1+17,pos2);
 
	pos3 = llStr.indexOf(',');
	if (pos3<0)
	{
		return Array(0,0);
	}
	else
	{
		lat = llStr.substring(0, pos3);
		lng = llStr.substring(pos3+1, retVal.length);
		return Array(lat,lng);
	}
}

