var map = null;
var gLocalSearch = null;
var marker = null;

function login(){
	if($('account').value==''){
		setText('warn','メールアドレスを入力してください');
		return false;
	}else if($('pwd').value==''){
		setText('warn','パスワードを入力してください');
		return false;
	}else{
		$('loginbtn').enabled = false;
		return true;
	}
}

function search(){
	gLocalSearch.setCenterPoint(map);
	gLocalSearch.execute($('nPlace').value)
}

function onLocalSearch(){
	if(gLocalSearch.results.length > 0){
		map.setCenter(new GLatLng(gLocalSearch.results[0].lat,gLocalSearch.results[0].lng));
		if(map.getZoom() < 15){
			map.setZoom(15)
		}
	}
	else{
	}
}

function SetMarker(lat,lon){
	var mp = new GLatLng(lat,lon);
	if(marker == null){
		marker = new GMarker(mp);
	}else{
		map.removeOverlay(marker);
		marker.setPoint(mp);
	}
	map.addOverlay(marker);
	GEvent.addListener(marker, 'click', function() {
		var place = $('nPlace').value;
		if(place){
			place = place.escapeHtml();
		}
		var desc = $('nDescription').value;
		if(desc){
			desc = desc.escapeHtml();
		}
		marker.openInfoWindowHtml('<strong>' + place + '</strong><br />' + desc);
	});
}

function Loadmap(modify, lat, lon, searchtext){
	if(GBrowserIsCompatible()){
		map = new GMap2($('map'));
		map.setCenter(new GLatLng((lat=='' ? '36.03133177633187' : lat),(lon=='' ? '138.9990234375' : lon)),(lat== '' || lon  == '' ? 7 : 15));
		map.addControl(new GLargeMapControl());
		map.addControl(new GMapTypeControl());
		map.addControl(new GOverviewMapControl());
		map.setMapType(G_NORMAL_MAP);

		if(modify){
			gLocalSearch = new GlocalSearch();
			gLocalSearch.setSearchCompleteCallback(null, onLocalSearch);
		}
	}
	if(modify){
		GEvent.addListener(map, 'click', function(overlay, point){
			if(point){
				SetMarker(point.lat(),point.lng());
				document.getElementById('nLon').value = point.x;
				document.getElementById('nLat').value = point.y;
			}
		});
	}
	if(lat== '' || lon  == ''){
		search();
	}else{
		SetMarker(lat,lon);
	}
}

function RenderComment(res){

	var parent = $('divCommentList');
	
	parent.innerHTML = '';
	
	var num = res['count'];
	var data = res['rows'];
	
	var cnt = 0;
	for(dat in data){
	
		if(!data[dat] || !(data[dat].Id)){
			continue;
		}
		
		data[dat].ListCount = num - cnt;
		cnt++;
		
		var comment = document.createElement('div');
		if(cnt==1){
			comment.className = 'comment-first';
		}else{
			comment.className = 'comment';
		}
		var commentUser = document.createElement('div');
		commentUser.className = 'user';
		
		var spnCount = document.createElement('span');
		spnCount.className = 'no';
		spnCount.innerHTML = data[dat].ListCount + '.';
		commentUser.appendChild(spnCount);

		var ancUser = document.createElement('div');
		
		var spnNick = document.createElement('span');
		spnNick.innerHTML = data[dat].Nick.escapeHtml();
		ancUser.appendChild(spnNick);
		
		/*
		ancUser.appendChild(document.createElement('br'));
		
		var imgUser = document.createElement('img');
		imgUser.className = 'listimg_s reflect';
		imgUser.setAttribute('width', 64);
		imgUser.setAttribute('height', 64);
		imgUser.setAttribute('src', data[dat].Thumbnail);
		imgUser.setAttribute('alt', data[dat].Nick.escapeHtml());
		ancUser.appendChild(imgUser);
		*/
		
		commentUser.appendChild(ancUser);
		
		var commentDate = document.createElement('span');
		commentDate.className = 'date';
		commentDate.innerHTML = data[dat].Date;
		commentUser.appendChild(commentDate);

		comment.appendChild(commentUser);
		
		var commentBody = new Element('div', {
			'class' : 'commentBody'
		}).injectInside(comment);
		
		if(data[dat].CmtThumbnail != ''){
			new Element('img', {
				'width' : '96'
				,'src' : data[dat].CmtThumbnail
				,'class' : 'listimg_s reflect'
			}).injectInside(new Element('a', {
				'href' : data[dat].CmtImage
				,'target' : '_blank'
				,'class' :'highslide right'
				,'onclick' :'return hs.expand(this);'
			}).addEvent('click', function(e){
				if(window.ie){
					new Event(e).stop();
					window.open(this.href, "_blank");
					return false;
				}
			}).injectInside(commentBody));
		}
		
		var commentTxt = new Element('div').injectInside(commentBody);
		commentTxt.innerHTML = data[dat].Comment.escapeHtml().nl2br().replaceAnchor();
		
		var up = new Element('img', {
			'src' : '/img/move-previous.gif'
			,'alt' : 'topへ戻る'
			,'class' : 'cmd'
		}).injectInside(new Element('p', {
			'class' : 'clear text-right'
		}).injectInside(commentBody));
		up.addEvent('click',function (e){
			scroll('spnCommentCnt');
		});
		
		parent.appendChild(comment);
	}
	
	if(cnt==0){
		parent.innerHTML = 'まだコメントがありません...';
	}else{
		var divShoe = document.createElement('div');
		divShoe.style.clear = 'both';
		divShoe.innerHTML = '&nbsp;';
		parent.appendChild(divShoe);
	}
}

function SetListCount(count){
	if(count > 0){
		$('spnCommentCnt').innerHTML = "[" + count + "件]";
		$('spnCommentCnt').removeClass('hidden');
	}else{
		$('spnCommentCnt').addClass('hidden');
	}
}

function RefleshList(){
	var div = $('divCommentList').addClass('loading');
	var jSonRequest = new Json.Remote(
		"/api/planCommentList.php?u=" + $('u').value, {
			onComplete: function(ret){
				SetListCount(ret["count"]);
				RenderComment(ret);
				SetImage_callback = function(){
					ReflectImage();
					MooSliderCommentList.slideIn();
				};
				LoadPhoto();
				div.removeClass('loading');
			}
		}
	).send({
		'p': $('p').value
	});
}

var MooSliderCommentList;
window.addEvent('domready', function(){

	var MooSliderAddForm;
	var MooSliderMapFrame;
	if($('mapFrame')){
		MooSliderMapFrame = new Fx.Slide('mapFrame', {duration: 300});
		MooSliderMapFrame.hide();
	}

	if($('loginbtn')){
		$('loginbtn').addEvent("click", function(e){
			new Event(e).stop();
			if(login()){
				$('login').submit();
			}
		});
		$('loginbtn').disabled = false;
	}

	if($('spanMap')){
		$('spanMap').addEvent('click', function(e) {
			new Event(e).stop();
			$('mapFrame').style.display = '';
			MooSliderMapFrame.slideIn();
			Loadmap(false, $('nLat').value, $('nLon').value, $('nPlace').value);
		});
	}
	
	if($('btnCloseMap')){
		$('btnCloseMap').addEvent('click', function(e) {
			new Event(e).stop();
			MooSliderMapFrame.slideOut();
			$('mapFrame').style.display = 'none';
		});
	}
	
	if($('p').value != ""){
	
		if($("btnAttend")){
			$('btnAttend').addEvent('click', function(e) {
				new Event(e).stop();
				Validators['nMail'] = "var _validate = function(){if($('nMail').value==''){return 'メールアドレスを入力してください';} return null;};_validate();";
				Validators['nPwd'] = "var _validate = function(){if($('nPwd').value==''){return 'パスワードを入力してください';} return null;};_validate();";
				Validators['setstate'] = "var _validate = function(){if($('setstate').selectedIndex==0){return '出欠状況を選択してください';} return null;};_validate();";
				$('msg').addClass('loading');
				if(!IsValid()){
					$('msg').removeClass("loading");
					return false;
				}
				$('frmAttend').submit();
				return false;
			});
		
			$('ancUpdate').addEvent('click', function(e) {
				new Event(e).stop();
				RefleshList();
				return;
			});
		}
		
		if($('divCommentList')){
			MooSliderCommentList = new Fx.Slide('divCommentList', {duration: 300});
			MooSliderCommentList.hide();
		}
		RefleshList();
	}
	
	if($('memcnt') && $('memcnt').value > 5){
		new iCarousel("memberCarouselContent", {
			idPrevious: "carouselPrevious",
			idNext: "carouselNext",
			idToggle: "undefined",
			item: {
				klass: "listBox",
				size: 70
			},   
			animation: {
				direction: "top",
				duration: 300,
				amount: 5
			}
		});
	}else{
		$('carouselPrevious').remove();
		$('carouselNext').remove();
		$('memberCarousel').setStyle('height', $('memcnt').value * 70 + 'px');
	}

	$$(".linkage").each(function(el){
		el.innerHTML = el.innerHTML.replaceAnchor();
	});
	
	SetImage_callback = ReflectImage;
	InitScroll();
	
});
