﻿var log = function(o){
	if(typeof console != 'undefined')
		console.log(o);
};
var MAP;
var getBound = function(minLng, minLat, maxLng, maxLat) {
	var SWL = new ULatLng(minLat, minLng);
	var NEL = new ULatLng(maxLat, maxLng);
	return new UBounds(SWL, NEL);
};
var centerBound = function(minLng, minLat, maxLng, maxLat) {
	var bounds = getBound(minLng, minLat, maxLng, maxLat);
	MAP.centerAndZoom(bounds.getCenter(), MAP.getBoundsZoomLevel(bounds) + 2);
	return false;
};
var UAREA = function(opts) {
	var self = this;
	var defaultLatlng = new ULatLng(24.95868672803367, 121.26562376972308);
	var defaultZoomlevel = 7;
	var defaultBound = opts.defaultBound;
	var Initialize = {
		Map: function() {
			MAP = new UMap(document.getElementById('map'));
			MAP.addControl(U_MINIZOOM_CONTROL, ULeftTop, new UPoint(5, 30));
            MAP.addHierarchicalControl({point:new UPoint(5, 1), width:100, height:200});
			MAP.addListener('moveend', mapController.showCenterLatlng);
			var latlng = defaultBound.getCenter() || defaultLatlng;
			var zoomlevel = (MAP.getBoundsZoomLevel(defaultBound) + 2) || defaultZoomlevel;
			MAP.centerAndZoom(latlng, zoomlevel);
		},
		searchPanel: function() {
			//$.initSearch();
			$('input.search-content').focus(function(){
				var $this = $(this);
				if(!$this.data('ori-text')){
					$this.data('ori-text', $this.val());
				}
				if($this.data('ori-text') === $this.val()){
					$this.removeAttr('value');
				}
				
			}).blur(function(){
				var $this = $(this);
				if(!$this.val() ){
					$this.val($this.data('ori-text'));
				}
			});

			$('form').eq(0).submit(function(e){
				var url = ['/map?'];
				var $searchcontent = $('input.search-content');
				if($searchcontent.val() && $searchcontent.val() != $searchcontent.data('ori-text')){
					url.push('qs='+ $('input.search-content').val());
				}
				//alert(url);
				e.preventDefault();
				window.location = url.join('');
			});
		},
		breadcrumbPanel: function() {
//			if (window.location.search)
//				var name = decodeURI(window.location.search.split('?')[1].split('=')[1]);
//			(!name) ? Ubreadcrumb = new UBREADCRUMB(MAP) : Ubreadcrumb = new UBREADCRUMB(MAP, {name:name});
//			MAP.findWithin();
//			$('#towns a').bind('click', function(){
				//Ubreadcrumb.changeTownMenu($(this).html());
//				return false;
//			});
			
		},
		controllerPanel: function() {
			//var controllerDiv = $('<div></div>').attr('id', 'controllerPanel').addClass('controller-panel')
			//	.html('<a class="controller" href="/">重選縣市</a><a class="controller" href="/map">放大地圖</a>');
			//MAP.container.appendChild(controllerDiv.get(0));
			var stopEvent = function(event) {
				event.stopPropagation();
			};
			// 重選縣市
			//$('a', controllerDiv).eq(0).bind('click', stopEvent);
			//$('a', controllerDiv).eq(0).bind('dbclick', stopEvent);
			// 放大地圖
			//$('a', controllerDiv).eq(1).bind('click', function(event){
			$('#enlarge').bind('click', function(event){
				var encodeStr = $(this).attr('href') + '?' + getDefaultBound();
				$(this).attr('href', encodeStr);
				stopEvent(event);
			});
			//$('a', controllerDiv).eq(1).bind('dbclick', stopEvent);
		},
		Ajax : function(){
			var loading = function(){
				
			};
			var complete = function(){
				
			};
			$.ajaxSetup({
				beforeSend: loading,
				error: complete,
				success: complete,
				complete: complete
			});
		},
		nownews: function(){
			google.load('feeds', '1');
			google.setOnLoadCallback(function(){
				var shoppingFeed = new google.feeds.Feed('http://www.nownews.com/rss/5.rdf');
				shoppingFeed.setResultFormat(google.feeds.Feed.XML_FORMAT);
				shoppingFeed.setNumEntries(5);
				shoppingFeed.load(function(result){
					if (!result.error) {
						var items = result.xmlDocument.getElementsByTagName('item');
						for (var i=0; i<items.length; i++) {
							var entry = items[i];
							$('<li/>').html('<span class="green-icon">►</span><a class="news-desc" href="' + entry.getElementsByTagName('link')[0].firstChild.nodeValue + '" target="_blank">' + entry.getElementsByTagName('title')[0].firstChild.nodeValue + '</a><div style="clear:both"></div>').appendTo($('#shoppingNews'));
						}
					}
				});
				var travelFeed = new google.feeds.Feed('http://www.nownews.com/rss/6.rdf');
				travelFeed.setResultFormat(google.feeds.Feed.XML_FORMAT);
				travelFeed.setNumEntries(5);
				travelFeed.load(function(result){
					if (!result.error) {
						var items = result.xmlDocument.getElementsByTagName('item');
						for (var i=0; i<items.length; i++) {
							var entry = items[i];
							$('<li/>').html('<span class="green-icon">►</span><a class="news-desc" href="' + entry.getElementsByTagName('link')[0].firstChild.nodeValue + '" target="_blank">' + entry.getElementsByTagName('title')[0].firstChild.nodeValue + '</a><div style="clear:both"></div>').appendTo($('#travelNews'));
						}
					}
				});
			});
		}
	};
	var mapController = {
		showCenterLatlng: function() {
			var centerLatlng = this.getCenter();
			$('#centerLat').html(degreeToDMS(centerLatlng.lat()));
			$('#centerLng').html(degreeToDMS(centerLatlng.lng()));
		}
	};
	var degreeToDMS = function(degree) {
		var d = Math.floor(degree);
		var m = Math.floor((degree-d)*60);
		var s = Math.round((degree*60-d*60-m)*60*10)/10;
		var str = d+'°';
		str += m+'\'';
		str += s+'"';
		return str;
	}
	var getDefaultBound = function() {
		var latlng = MAP.getCenter() || defaultBound.getCenter();
		var zoomlevel = MAP.getZoomLevel();
		if (zoomlevel < defaultZoomlevel)
			zoomlevel = defaultZoomlevel;
		//latlng = UENCODER.encodeLatlng(parseFloat(latlng.lat())) + ',' + UENCODER.encodeLatlng(parseFloat(latlng.lng()));
		//zoomlevel = UENCODER.encodeLatlng(zoomlevel);
		latlng = latlng.toUrlString();
		return UENCODER.objToLocString({center:latlng, zoom:zoomlevel});
	};
	this.getDefaultBound = getDefaultBound;
	(function(){
		for (var i in Initialize) {
			if($.isFunction(Initialize[i]))
				Initialize[i]();
		}
	})();
};

/*
 * 以下為頁面的動作...
 */
google.load('feeds', '1');
/*google.setOnLoadCallback(function(){
	var shoppingFeed = new google.feeds.Feed('http://www.nownews.com/rss/5.rdf');
	shoppingFeed.setResultFormat(google.feeds.Feed.XML_FORMAT);
	shoppingFeed.setNumEntries(5);
	shoppingFeed.load(function(result){
		if (!result.error) {
			var items = result.xmlDocument.getElementsByTagName('item');
			for (var i=0; i<items.length; i++) {
				var entry = items[i];
				$('<p></p>').addClass('hotbloglist-wrapper-form').html('<span class="hotscenic-box-number corner1-all">►</span><a href="' + entry.getElementsByTagName('link')[0].firstChild.nodeValue + '" class="hotscenic-box-content" target="_blank">' + entry.getElementsByTagName('title')[0].firstChild.nodeValue + '</a>').appendTo($('#shoppingNews'));
			}
		}
	});
	var travelFeed = new google.feeds.Feed('http://www.nownews.com/rss/6.rdf');
	travelFeed.setResultFormat(google.feeds.Feed.XML_FORMAT);
	travelFeed.setNumEntries(5);
	travelFeed.load(function(result){
		if (!result.error) {
			var items = result.xmlDocument.getElementsByTagName('item');
			for (var i=0; i<items.length; i++) {
				var entry = items[i];
				$('<p></p>').addClass('hotbloglist-wrapper-form').html('<span class="hotscenic-box-number corner1-all">►</span><a href="' + entry.getElementsByTagName('link')[0].firstChild.nodeValue + '" class="hotscenic-box-content" target="_blank">' + entry.getElementsByTagName('title')[0].firstChild.nodeValue + '</a>').appendTo($('#travelNews'));
			}
		}
	});
});*/

