var map;
var contentDiv;
var homeUrl = "http://www.japan-hopper.com";

var baseIcon = Array();

baseIcon[0] = new GIcon();
baseIcon[0].image = homeUrl + '/images/label-red.png';
baseIcon[0].iconSize = new GSize(32, 32);
baseIcon[0].iconAnchor = new GPoint(16, 16);
baseIcon[0].infoWindowAnchor = new GPoint(25, 7);

baseIcon[1] = new GIcon();
baseIcon[1].image = homeUrl + '/images/label-orange.png';
baseIcon[1].iconSize = new GSize(32, 32);
baseIcon[1].iconAnchor = new GPoint(16, 16);
baseIcon[1].infoWindowAnchor = new GPoint(25, 7);

baseIcon[2] = new GIcon();
baseIcon[2].image = homeUrl + '/images/label-green.png';
baseIcon[2].iconSize = new GSize(32,32);
baseIcon[2].iconAnchor = new GLatLng(16,16);
baseIcon[2].infoWindowAnchor = new GLatLng(2,16);

baseIcon[3] = new GIcon();
baseIcon[3].image = homeUrl + '/images/red-pushpin.png';
baseIcon[3].shadow = homeUrl + '/images/pushpin_shadow.png';
baseIcon[3].iconSize = new GSize(32,32);
baseIcon[3].shadowSize = new GSize(59,32);
baseIcon[3].iconAnchor = new GLatLng(32,16);
baseIcon[3].infoWindowAnchor = new GPoint(16,0);

var center_marker_icon = new GIcon();
center_marker_icon.image = homeUrl + "./images/centermarker_standard01.png";
center_marker_icon.shadow = homeUrl + "./images/centermarker_standard01_shadow.png";
center_marker_icon.iconSize = new GSize( 23 , 23 );
center_marker_icon.shadowSize = new GSize( 29 , 29 );
center_marker_icon.iconAnchor = new GPoint( 11 , 11 );


var mapFunc = {
	lat: 0,
	lng: 0,
	point: '',
	tabs: '',
	per_page: 5,
	pre_marker: '',
	center_marker: '',
	lastMarker: '',
	tabContent: 1,

	clearSearch: function() {
		map.clearOverlays();
		$('#post_form').html('');
		$('#search_result0').html('');
		$('#search_result1').html('');
		$('#search_result2').html('');
		//$('.q').attr('value','');
		mapFunc.centerMarker();
	},

	tagSearch: function(q) {
		this.clearSearch();
		if(q) {
			$('#home_results').show('normal');
			$('#help').hide('normal');

			var baseUrl = homeUrl + "/ws/search.php";

			q = q.replace(/^\s+/, "");
			q = q.replace(/\s+$/, "");
			q = q.replace(/\s/g, "+");

			flag = 0;
			$('#searchtab').text('Tag: '+q);
			post_url = baseUrl + "?mode=2&rating=1&tagf=1&edit=0&items=" + mapFunc.per_page + "&q=" + q;
			kml_url = baseUrl + "?mode=0&f=1&items=" + mapFunc.per_page + "&q=" + q;
			pos_title = '<h3 class="bullet_red">Users\' Posts <span style="color:#ccc;font-weight:normal;"> | <a href="' + kml_url + '">KML</a></span></h3>';
			mapFunc.searchResults(flag,pos_title,post_url);
		}
	},

	mapSearch: function(loc,q) {
		if(geocoder) {
			if(loc != "Location" && loc != "" && loc != undefined) {
				geocoder.setBaseCountryCode("JP");
				geocoder.getLatLng(loc,function(point) {
					if (!point) {
						alert("Not Found");
					} else {
						var zoomlevel = map.getZoom();
						map.setCenter(point,zoomlevel);

						if(q != "Keyword(s)" && q != "keyword%28s%29" && q != "" && q != undefined) {
							mapFunc.getInfo(q);
						} else {
							mapFunc.getInfo();
						}
					}
				});

			} else {
				if(q != "Keyword(s)" && q != "keyword%28s%29" && q != "" && q != undefined) {
					mapFunc.getInfo(q);
				} else {
					mapFunc.getInfo();
				}
			}
		}
	},

	getInfo: function(q,zoom) {
		$('#home_results').show('normal');
		$('#help').hide('normal');

		this.clearSearch();
		if(zoom != "") {map.setZoom(zoom);}
		var baseUrl = homeUrl + "/ws/search.php";

		var bounds = map.getBounds();
		var minx = bounds.getSouthWest().lng();
		var miny = bounds.getSouthWest().lat();
		var maxx = bounds.getNorthEast().lng();
		var maxy = bounds.getNorthEast().lat();

		// access log
		var searchword = "searchWord/" + q;
		pageTracker._trackPageview(searchword);

		q = q.replace(/^\s+/, "");
		q = q.replace(/\s+$/, "");
		q = q.replace(/\s/g, "+");

		flag = 0;
		$('#searchtab').text(q);
		post_url = baseUrl + "?mode=4&rating=0&tagf=0&edit=0&items=" + mapFunc.per_page + "&minx="+ minx + "&miny=" + miny + "&maxx=" + maxx + "&maxy=" + maxy + "&q=" + q;
		kml_url = baseUrl + "?mode=4&f=1&items=" + mapFunc.per_page + "&minx="+ minx + "&miny=" + miny + "&maxx=" + maxx + "&maxy=" + maxy + "&q=" + q;
		if(mapFunc.tabContent == 1) {
			post_url += "&icon=2";
			kml_url += "&icon=2";
		}
		/*var sort = $('.sort').attr('value');
		var sort = $("input[@name='sort']:checked").val();
		if(sort == 0) {
			post_url += "&sort=0";
			kml_url += "&sort=0";
		} else {
			post_url += "&sort=1";
			kml_url += "&sort=1";
		}*/
		post_url += "&sort=1";
		pos_title = '<a href="' + kml_url + '">Display by Google Earth</a></span></h3>';
		mapFunc.searchResults(flag,pos_title,post_url);
	},

	searchResults: function(flag, pos_title, post_url) {
		$('#search_result' + flag).append('<div class="search_result"><ol id="List' + flag + '"></ol></div>');
		$('#List' + flag).append('<li id="loader' + flag + '"><img src="' + homeUrl + '/images/loader.gif" alt="loadding" align="top" /></li>');
		/*$('#List' + flag).before(pos_title);*/
		$('#List' + flag).after('<input type="hidden" id="page' + flag + '" name="page' + flag + '" value="0" />');
		mapFunc.displayInfo(post_url, flag, 0);
	},

	displayInfo: function(post_url, flag, p) {
		var request = GXmlHttp.create();
		request.open("GET", post_url, true);
		request.setRequestHeader('If-Modified-Since', 'Thu, 01 Jan 1970 00:00:00 GMT');
		request.onreadystatechange = function() {
			if (request.readyState == 4) {
				var xmlDoc = request.responseXML;
				if(!xmlDoc || xmlDoc.documentElement == null) {
					$('#loader' + flag).remove();
					$('#List' + flag).after('<div class="notfound">Not Found</div>');
					return false;
				}
				var markers = xmlDoc.documentElement.getElementsByTagName("Placemark");
				var len = Math.min(markers.length, mapFunc.per_page);

				for (var i = 0; i < len; i++) {
					var lng, lat;
					var coordinates = markers[i].getElementsByTagName("coordinates")[0].childNodes[0].data;
					if (coordinates) {
						var c = coordinates.split(",");
						lng = parseFloat(c[0]);
						lat = parseFloat(c[1]);
					} else {
						lng = parseFloat(markers[i].getElementsByTagName("longitude")[0].childNodes[0].data);
						lat = parseFloat(markers[i].getElementsByTagName("latitude")[0].childNodes[0].data);
					}
					var point = new GLatLng(lat, lng);
					//if (!i && flag == 0) map.setCenter(point);

					var id = markers[i].getAttribute("id");
					var names = markers[i].getElementsByTagName("name");
					var name = names.length ? names[0].childNodes[0].data : '';
					var descs = markers[i].getElementsByTagName("description");
					var desc = descs.length ? descs[0].childNodes[0].data : '';

					var marker = new mapFunc.displayMarker(id, point, i, name, desc, flag, p);
					map.addOverlay(marker);
				}

				$('#List' + flag).after('<div id="next' + flag + '" class="next"><a name="next">More results &raquo;</a></div>');
				var page = $('#page' + flag).attr('value');
				page++;
				if(page != 0){
					var prev = page - 1;
					post_url = post_url.replace("&page" + flag + "="+ prev, "");
				}
				$('#next' + flag).click(function() {
					$('#next' + flag).remove();
					$('#List' + flag).after('<div id="loader' + flag + '" class="next"><img src="' + homeUrl + '/images/loader.gif" alt="loadding" /></div>');
					var next = post_url + "&page" + flag + "=" + page;
					mapFunc.displayInfo(next, flag, page);
				});
				$('#page' + flag).attr('value', page);
				$('#loader' + flag).remove();
			}
		}
		request.send(null);
		return false;
	},

	displayMarker: function(id, point, index, name, desc, flag, p) {

		var item_url = name.replace(/^\s+/, "");
		item_url = item_url.replace(/\s+$/, "");
		item_url = item_url.replace(/\s/g, "+");

		if(flag == 0 || flag == 1 || flag == 2 || flag == 7) {
			if(p == 0) {
				var start = 1;
			} else {
				var start = p*mapFunc.per_page+1;
			}
			var marker = new LabeledMarker(point,{
				clickable: true,
				icon: baseIcon[flag],
				labelOffset: new GSize(-16, -16),
				labelText: index+start
			});
		} else {
			var marker = new GMarker(point, baseIcon[flag]);
		}

		var letter = String.fromCharCode("A".charCodeAt(0) + index);
		var msg = name ? '<div>' + (desc ? desc : '') : 'Marker <strong>' + letter + '</strong></div>';
		var tip = '<div class="fukidashi">' + desc + '</div>';
		var li = document.createElement("li");
		li.innerHTML = desc;
		$('#List' + flag).append(li);

		var f = function() {
			var opts = { maxWidth : 200 };
			mapFunc.lastMarker = marker;
			//marker.openInfoWindowHtml(msg);
			marker.openInfoWindowHtml(tip,opts);
			li.className = 'here';

			// access log
			var count_url = "map/" + name;
			pageTracker._trackPageview(count_url);
		};
		var g = function() {
			li.className = '';
		}
		GEvent.addListener(marker, "click", f);
		GEvent.addListener(marker, "infowindowclose", g);

		if(flag == 1) {
			tempFunc.linkbox();
		}

		return marker;
	},

	makeForm: function(id) {
		mapFunc.lat = map.getCenter().lat();
		mapFunc.lng = map.getCenter().lng();

		if(id) {
			var target_url = homeUrl + "/ws/manage.php";
			var post_data = "id=" + id + "&mode=" + 4;
			$.post(target_url, post_data, function(text_data){
				var lines = text_data.split("\n");
				for(var i = 0; i < lines.length; i ++) {
					var parts = lines[i].split("\t");
					var name = parts[0];
					var value = parts[1];
					if(name == 'title') {
						$('#title').attr('value',value);
					} else if(name == 'comment') {
						$('#comment').attr('value',value);
					} else if(name == 'photo') {
						mapFunc.GetFile(value,value,0);
					} else if(name == 'url') {
						$('#url').attr('value',value);
					} else if(name == 'tag') {
						$('#tag').attr('value',value);
					} else if(name == 'user_pass') {
						$('#user_pass').attr('value',value);
					} else if(name == 'icon') {
						//document.getElementById('icon').selectedIndex = value;
					} else if(name == 'point') {
						var loc = value.split(",");
						$('#lat').attr('value',loc[1]);
						$('#lng').attr('value',loc[0]);
					}
				}
			});
		}

		pmForm = '<div id="add_pm">' +
		'<ul class="inline">' +
		'<li>Latitude: <input type="text" id="lat" name="lat" value="" size="15" maxlength="100" /></li>' +
		'<li>Longitude: <input type="text" id="lng" name="lng" value="" size="15" maxlength="100" /></li>' +
		'</ul>' +
		'<br />' +

		'<table border="0" cellspacing="1" cellpadding="0" summary="Post local Japanese info" class="post_table">' +
		'<tr valign="top"><td width="80">Title:</td><td><input type="text" id="title" name="title" value="" size="20" maxlength="100" style="width:200px;" /></td></tr>' +
		'<tr valign="top" id="mainTr"><td>Comment:<br /><span style="font-size:85%;">*max 500</span></td><td><textarea id="comment" name="comment" class="comment" cols="30" rows="4" style="width:300px;height:4em;"></textarea></td></tr>' +
		'<tr valign="top" id="photoTr"><td>Photo:</td><td>' +
			'<form action="' + homeUrl + '/ws/upload.php" target="upload" method="post" enctype="multipart/form-data" style="margin-bottom:7px;">' +
			'<input type="file" name="file" id="file" size="30" /> <input type="submit" value="Upload" /></form>' +
			'<div id="ph_show"></div>' +
			'<iframe src="about:blank" id="upload" name="upload" style="width:0px; height:0px; display:none;"></iframe></td></tr>' +
		'<tr valign="top" id="urlTr"><td>URL:</td><td><input type="text" id="url" name="url" value="http://" size="30" style="width:200px;" /></td></tr>' +
		'<tr valign="top"><td>Tag:</td><td>' +
			'<input type="text" id="tag" name="tag" value="" size="20" style="width:200px;" /><br /><span class="small">* separate multiple tags with commas</span></td></tr>' +
		'<tr valign="top"><td>Password:</td><td><input type="password" id="user_pass" name="user_pass" value="" size="10" maxlength="10" /></td></tr> ' +
		'<tr valign="top"><td>&nbsp;</td><td><input type="button" name="sendBtn" id="sendBtn" value="Post Info" /></td></tr>' +
		'</table>' +
		'<input type="hidden" id="icon" name="icon" value="0" />' +
		'<img src="' + homeUrl + '/images/cross.png" class="close close_form" alt="Close" />' +

		'</div>';

		return pmForm;
	},

	pmAjax: function(flag, id, tag) {
		$('#sendBtn').click(function() {
			var title	= $('#title').attr('value');
			if(!title) {
				alert("ERROR: Please enter a title.");
				return false;
			}
			var url		= $('#url').attr('value');
			var tag		= $('#tag').attr('value');
			var comment	= $('#comment').attr('value');
			var photo	= $('#photo').attr('value');
			var user_pass	= $('#user_pass').attr('value');

				url		= (!url || url == "http://") ? "" : url;
				tag		= (!tag) ? "" : tag;
				comment		= (!comment) ? "" : comment;
				photo		= (!photo) ? "" : photo;
				user_pass	= (!user_pass) ? "" : user_pass;

			var icon	= $('#icon').attr('value');
			var lat		= $('#lat').attr('value');
			var lng		= $('#lng').attr('value');

			//$('#sendBtn').attr("disabled","disabled");

			var target_url = homeUrl + '/ws/manage.php';
			var post_data;
			post_data = 'title=' + encodeURIComponent(title) +
				'&url='	+ encodeURIComponent(url) +
				'&tag='	+ encodeURIComponent(tag) +
				'&comment=' + encodeURIComponent(comment) +
				'&user_pass=' + encodeURIComponent(user_pass) +
				'&icon=' + encodeURIComponent(icon) +
				'&lat='	+ encodeURIComponent(lat) +
				'&lng='	+ encodeURIComponent(lng) +
				'&photo=' + encodeURIComponent(photo);

			if(flag == 0) {// Add
				post_data += '&mode=2';
				$.post(target_url, post_data, mapFunc.printResData);

			} else if(flag == 1 || flag == 2) {// Edit
				post_data += '&mode=3' + '&id=' + encodeURIComponent(id);
				$.post(target_url, post_data, function() {
					var target_url = homeUrl + '/ws/search.php?mode=1&f=2&disp=0&cid=' + id;
					$(contentDiv).load(target_url);
				});
			}
		});
	},

	editPlaceMark: function(id){
		var pass = "#pm_pass" + id;
		pass = $(pass).attr('value');
		if (pass != ""){
			var mode = "#pm_mode" + id;
			mode = $(mode).attr('value');
			var post_data;
				post_data = 'mode=' + 0 +
				'&id=' + id +
				'&pm_pass=' + pass;
			var target_url = homeUrl + "/ws/manage.php";

			$.post(target_url, post_data, function(text_data){
				if(text_data != "") {
					alert(text_data);

				} else {
					if(mode == 0){ // Delete
						if(window.confirm("'OK' to delete, 'Cancel' to stop.")){
							var post_data = 'mode=1' +'&id=' + id;
							$.post(target_url, post_data, function() {
								if($('#catmap').html() != null) {
									contentDiv = "#content" + id;
									$(contentDiv).html("<span style=\"color:red;\">Delete!</span>");
								} else {
									location.reload();
								}
							});
						}
					} else { // Edit
						var editForm = mapFunc.makeForm(id);
						contentDiv = "#content" + id;
						$(contentDiv).html(editForm);

						if($('#catmap').html() != null) {
							mapFunc.pmAjax(1,id,"");
						} else {
							mapFunc.pmAjax(2,id,"");
						}
					}

				}
			});

		} else {
			alert("ERROR: The password field is empty.");
			return false;
		}
	},

	GetFile: function(ph_name, ph_res, flag){
		var photo_url = "<a href=\"" + homeUrl + "/images/placemark/" + ph_name  + "\" target=\"_blank\">" + ph_res + "</a>";
		$('#ph_show').html("<input type=\"hidden\" id=\"photo\" name=\"photo\" value=\"" + ph_name + "\" /><span style=\"font-size:11px;\">" +  photo_url + "</span>");
	},

	addTag: function(i){
		var getTag = '#tagWord'+i;
		var value = $(getTag).attr('value');
		var newTags = homeUrl + '/ws/tag.php';
		var change = '#tags'+i;
		$(change).load(newTags, { id: i, tag: value });
		$(getTag).attr('value','');
	},

	ratingVote: function(i, value){
		var newRating = homeUrl + '/ws/rate.php';
		var change = '#rating'+i;
		$(change).load(newRating, { id: i, v: value });
	},

	inappropriate: function(id){
		if(window.confirm("Please push \"OK\" if this information is spam.")){
			var target_url = homeUrl + "/ws/notifier.php";
			var post_data = 'id=' + id;
			$.post(target_url, post_data, function() {
				if(map) {
					alert('Thank you!');
					map.closeInfoWindow();
					map.removeOverlay(mapFunc.lastMarker);
				} else {
					alert('Thank you!');
					contentDiv = "#content" + id;
					$(contentDiv).html("");
				}
			});
		}
	},

	postInfo: function() {
		//$('#postform').toggle('normal');
		tb_remove();

		if($('#make_post_form').html() == "") {
			$formHtml = this.makeForm();
			$('#make_post_form').html($formHtml);
			$('.close_form').click(function() {
				mapFunc.postInfo();
			});
			this.pmAjax(0,"","");
		} else {
			$('#title').attr('value','');
			$('#comment').attr('value','');
			$('#ph_show').html('');
			$('#url').attr('value','');
			$('#tag').attr('value','');
			$('#user_pass').attr('value','');

			$('#make_post_form').html('');
		}
	},

	printResData: function(text_data) {
		mapFunc.postInfo();

		var resData = text_data.split("\n");
		var icon = resData[3];
		var desc = resData[4];

		if(map) {
			var res_msg = '<div class="fukidashi">' + desc + '</div>';

			//map.removeOverlay(mapFunc.lastMarker);
			//var res_point = mapFunc.lastMarker.getPoint();
			var res_point = map.getCenter();
			var res_marker = new LabeledMarker(res_point,{
				clickable: true,
				icon: baseIcon[0],
				labelOffset: new GSize(-16, -16),
				labelText: 'NEW'
			});

			var f = function() {
				res_marker.openInfoWindowHtml(res_msg);
				//mapFunc.lastMarker = res_marker;
			}

			GEvent.addListener(res_marker, "click", f);
			map.addOverlay(res_marker);
			//mapFunc.lastMarker = res_marker;

			GEvent.trigger(map.getInfoWindow(), "closeclick");
			map.closeInfoWindow();
			//mapFunc.lastMarker.openInfoWindowHtml(res_msg);

		}
	},

	centerMarker: function() {
		var mapCenter = map.getCenter();
		mapFunc.lat = map.getCenter().lat();
		mapFunc.lng = map.getCenter().lng();

		map.removeOverlay(mapFunc.center_marker);
		mapFunc.center_marker = new GMarker(mapCenter, center_marker_icon);
		map.addOverlay(mapFunc.center_marker);

		$('#lat').attr('value', mapFunc.lat);
		$('#lng').attr('value', mapFunc.lng);
	},

	expandMap: function() {
		var zoomlevel = map.getZoom();
		var mapCenter = map.getCenter();
		var lat = map.getCenter().lat();
		var lng = map.getCenter().lng();

		$("#content").css("width","300px");
		$("#sidebar").css("width","460px");
		$(".map").css("height","370px");

		map.checkResize();

		$('.expand_map').hide();
		$('.reduces_map').show();

		point = new GLatLng(parseFloat(lat),parseFloat(lng));
		map.setCenter(point, zoomlevel);

		mapFunc.centerMarker();
	},

	reducesMap: function() {
		var zoomlevel = map.getZoom();
		var mapCenter = map.getCenter();
		var lat = map.getCenter().lat();
		var lng = map.getCenter().lng();

		$("#content").css("width","460px");
		$("#sidebar").css("width","300px");
		$(".map").css("height","240px");

		map.checkResize();

		$('.reduces_map').hide();
		$('.expand_map').show();

		point = new GLatLng(parseFloat(lat),parseFloat(lng));
		map.setCenter(point, zoomlevel);

		mapFunc.centerMarker();
	}
}


var tempFunc = {

	makeTabs: function() {
		// tabs
		if($('#jqtab').html() != null){
			mapFunc.tabs = $('#jqtab > ul').tabs();
		}
	},

	linkbox: function() {
		$("div").filter(".linkbox").hover(
			function() {
				$(this).addClass("linkbox_hover");
			},
			function() {
				$(this).removeClass("linkbox_hover");
		});

		$("div").filter(".linkbox").click(function() {
			var thelink = $(this).find('a').eq(0).attr("href");
			window.open(thelink,'_blank','');
			return false;
		});
	}
}


var hotelFunc = {
	language: function() {
		// language
		$("#lang").change(function () {
			var selectedLng = $(this).children("option[@selected]");
			location.href = selectedLng.val();
		});
	}
}


var ecFunc = {
	transration: function() {
		// transration
		$('#translate').click(function() {
			var lang = $('#lang').attr('value');
			var before = $('#before').val();
			google.language.detect(before, function(result){
				google.language.translate(
					before,result.language,lang,
					function(result) {
						if (result.error) return;
						$('#after').html('<textarea name="before" id="before" class="before" cols="15" rows="3" wrap="hard">' + result.translation + '</textarea>');
					}
				);
			});
		});
	},

	currency: function() {
		// currency
		$('#ccalc').submit(function() {
			var c1 = $('#c1').attr('value');
			var c2 = $('#c2').attr('value');
			var c3 = $('#c3').attr('value');

			$.get(homeUrl + "/ec/cculc.php?c1=" + c1 + "&c2=" + c2 + "&c3=" + c3,function(text){
				$('#convert').html('<textarea name="before" id="before" class="before" cols="15" rows="3" wrap="hard">' + text + '</textarea>');
			});

			return false;
		});
	}
}


$(function() {

	$('.loc').preInput('Location');
	$('.q').preInput('Keyword(s)');

	if(GBrowserIsCompatible()) {// check google map
		indicator = new Image(16, 16);
		indicator.src = homeUrl + "/images/loader.gif";
		$(window).unload(function() { GUnload(); });

		if($('#catmap').length) {
			tempFunc.makeTabs();

			$('#qlist').val('hotels');
			$('#loclist').val('139.691701,35.689506,10');


			// default parameter
			var lat = $('#def_lat').attr('value');
			var lng = $('#def_lng').attr('value');
			if(lat == undefined || lat == "" || lng == undefined || lng =="") {
				var zoom = parseInt(10);
			} else {
				var zoom = parseInt(14);
			}
			if(lat == undefined || lat == "") { lat = 35.689506; }
			if(lng == undefined || lng == "") { lng = 139.691701; }


			// get parameter
			var loc = "";
			var q = "";
			var query = location.search.substring(1);
			var pairs = query.split("&");
			for (var i=0; i<pairs.length; i++) {
				var pos = pairs[i].indexOf("=");
				var argname = pairs[i].substring(0,pos).toLowerCase();
				var value = pairs[i].substring(pos+1).toLowerCase();

				if (argname == "loc") {
					loc = value;
						$('#loclist').hide();
						$('#loc').show();
						$('.loc').attr('value',value);
						$('.loc').removeClass('pre-input')
					}
				if (argname == "q") {
					q = value;
						$('.q').attr('value',value)
						$('.q').removeClass('pre-input')
					}
				if (argname == "lat") {lat = parseFloat(value);}
				if (argname == "lng") {lng = parseFloat(value);}
				if (argname == "zoom") {zoom = parseInt(value);}
				if (argname == "type") {
					if (value == "m") {maptype = G_NORMAL_MAP;}
					if (value == "k") {maptype = G_SATELLITE_MAP;}
					if (value == "h") {maptype = G_HYBRID_MAP;}
					if (value == "p") {maptype = G_PHYSICAL_MAP;}
				}
			}

			map = new GMap2(document.getElementById("catmap"));
			map.addControl(new GSmallMapControl());
			map.addControl(new GMapTypeControl(true));
			map.addMapType(G_PHYSICAL_MAP);
			map.enableScrollWheelZoom();
			geocoder = new GClientGeocoder();

			if(q != "" || loc != "") {
				point = new GLatLng(parseFloat(lat),parseFloat(lng));
				map.setCenter(point, zoom);
				mapFunc.mapSearch(loc,q);
			} else {
				point = new GLatLng(parseFloat(lat),parseFloat(lng));
				map.setCenter(point, zoom);

				if($('#def_lat').length > 0 && $('#def_lng').length > 0) {
					mapFunc.pre_marker = new GMarker(point, baseIcon[3]);
					map.addOverlay(mapFunc.pre_marker);
				}
				mapFunc.centerMarker();
			}

			$('.clear_info').click(function() { mapFunc.clearSearch(); });
			$('.post_info').click(function() { mapFunc.postInfo(); });
			$('.sort').change(function() { mapFunc.getInfo(); });
			$('.help_disp, #help_close').click(function() { $('#help').toggle('normal'); });
			$('.expand_map').click(function() { mapFunc.expandMap(); });
			$('.reduces_map').click(function() { mapFunc.reducesMap(); });

			GEvent.addListener(map, "moveend", function(){ mapFunc.centerMarker(); });

			$('.searchForm').submit(function() {
				var loc = $('.loc').attr('value');
				var q = $('.q').attr('value');
				mapFunc.mapSearch(loc,q);
				return false;
			});

			$('#qlist').change(function() {
				$("#qlist option:selected").each(function() {
					if($(this).val() == "textsearch") {
						mapFunc.tabContent = 0;
						$('.q').preInput('Keyword(s)');
						$('#qlist').hide();
						$('#inputq').show();
					} else if($(this).val() == "hotels") {
						mapFunc.tabContent = 1;
						$('.q').attr('value','');
					} else {
						mapFunc.tabContent = 0;
						$('.q').attr('value',$(this).val());
					}
				});
			});

			$('#showqlist').click(function() {
				$('#inputq').hide();
				$('#qlist').show();
			});

			$('#loclist').change(function() {
				var lines = "";
				$("#loclist option:selected").each(function() {
					if($(this).val() == "textsearch") {
						$('.loc').preInput('Location');
						$('#loclist').hide();
						$('#inputarea').show();
					} else {
						$('.loc').attr('value','');
						var lines = $(this).val().split(",");
						point = new GLatLng(parseFloat(lines[1]),parseFloat(lines[0]));
						map.setCenter(point, parseInt(lines[2]));
					}
				});
			});

			$('#showloclist').click(function() {
				$('#inputarea').hide();
				$('#loclist').show();
			});

			mapFunc.pmAjax(0,"","");
		}
	}


	if($('#postmap').length) {
		map = new GMap2(document.getElementById("postmap"));

		map.addControl(new GSmallMapControl());
		map.addControl(new GMapTypeControl(true));
		map.addMapType(G_PHYSICAL_MAP);
		map.enableScrollWheelZoom();

		var lat = $('#def_lat').attr('value');
		var lng = $('#def_lng').attr('value');
		var zoom = parseInt(14);

		point = new GLatLng(parseFloat(lat),parseFloat(lng));
		map.setCenter(point, zoom);

		if($('#def_lat').length > 0 && $('#def_lng').length > 0) {
			mapFunc.pre_marker = new GMarker(point, baseIcon[3]);
			map.addOverlay(mapFunc.pre_marker);
		}

		$('.expand_map').click(function() { mapFunc.expandMap(); });
		$('.reduces_map').click(function() { mapFunc.reducesMap(); });
	}


	$('.filetree').treeview({
		collapsed: false,
		animated: "fast"
	});

	tempFunc.linkbox();
});

$.fn.preInput = function(txt, options) {
	var default_options = {
		class_name: 'pre-input'
	};

	options = $.extend(default_options, options || {});
	return this.each(function(){
		if(typeof this.value == 'undefined') return;

		var elm = $(this);
		elm.val(txt)
		elm.addClass(options.class_name)
		elm.focus(function(){
			if(elm.val() == txt) {
				elm.removeClass(options.class_name)
				elm.val('');
			}
		});
		elm.blur(function(){
			if(elm.val() == '') {
				elm.addClass(options.class_name)
				elm.val(txt)
			}
		});
	});
}

