// _______________________________________________________________________
//
//  Memoja JavaScript
//  (c) 2007 Memoja Project
// _______________________________________________________________________
//													Fundamental Function
var ListFunc = {
	formAction: function() {
		var memo_contents = $("memo_contents");
		if(Element.visible('memopage')) memo_contents.focus();
		var memo_submit = $("memo_submit");
		memo_submit.disabled = true;
		var bookmark_url = $("bookmark_url");
		var bookmark_submit = $("bookmark_submit");
		if(!bookmark_url.value) bookmark_submit.disabled = true;
		if(Element.visible('bookmark')) $("bookmark_title").focus();
		var image_url = $("image_url");
		var image_image = $("image_image");
		var image_submit = $("image_submit");
		if(Element.visible('image')) image_url.focus();
		image_submit.disabled = true;
		var filedata_file = $("filedata_file");
		var filedata_submit = $("filedata_submit");
		filedata_submit.disabled = true;
		Event.observe(memo_contents, 'keyup', function(){
			memo_submit.disabled = !memo_contents.value;
		});
		Event.observe(memo_contents, 'change', function(){
			memo_submit.disabled = !memo_contents.value;
		});
		Event.observe(bookmark_url, 'keyup', function(){
			bookmark_submit.disabled = !bookmark_url.value;
		});
		Event.observe(bookmark_url, 'change', function(){
			bookmark_submit.disabled = !bookmark_url.value;
		});
		Event.observe(image_url, 'keyup', function(){
			image_image.disabled = image_url.value;
			image_submit.disabled = !(image_url.value || image_image.value)
		});
		Event.observe(image_url, 'change', function(){
			image_image.disabled = image_url.value;
			image_submit.disabled = !(image_url.value || image_image.value)
		});
		Event.observe(image_image, 'keyup', function(){
			image_url.disabled = image_image.value;
			image_submit.disabled = !(image_url.value || image_image.value)
		});
		Event.observe(image_image, 'change', function(){
			image_url.disabled = image_image.value;
			image_submit.disabled = !(image_url.value || image_image.value)
		});
		Event.observe(filedata_file, 'keyup', function(){
			filedata_submit.disabled = !filedata_file.value
		});
		Event.observe(filedata_file, 'change', function(){
			filedata_submit.disabled = !filedata_file.value
		});
  	},

	fadeIn: function(elem,max){
		var e = $(elem);
		e.setOpacity(0);
		var startTime  = (new Date).getTime();
		e.style.display = "block";
		var id = setInterval(function(){
			var time  = (new Date).getTime();
			var pos = (time-startTime)/300;
			var opacity = ((-Math.cos(pos*Math.PI)/2) + 0.5)*max;
			e.setOpacity(opacity);
			if(time >= 300+startTime){
				e.setOpacity(max);
				clearInterval(id);
			}
		}, 13);
	},
	
	fadeOut: function(elem,max){
		var e = $(elem);
		e.setOpacity(max);
		var startTime  = (new Date).getTime();
		var id = setInterval(function(){
			var time  = (new Date).getTime();
			var pos = (time-startTime)/300;
			var opacity = (Math.cos(pos*Math.PI)/2 + 0.5)*max;
			e.setOpacity(opacity);
			if(time >= 300+startTime){
				e.setOpacity(0);
				clearInterval(id);
				e.style.display = "none";
			}
		}, 13);
	},
	
	tagAdd: function(name) {
    $$('#' + mode + ' form')[0].tag_list.value += name + " ";
  }
}
// _______________________________________________________________________
//														 Glayout Process
var Glayer = {
	show: function(){
		this.resetSize($('glayer'));
		$('glayer').setOpacity(0.85);
		$('updateArea').setOpacity(0);
		$('updateArea').style.display="block";
		$('glayer').style.display = "block";
	},
	
	showTag: function(){
		$('glayerTag').style.top="0px";
		$('glayerTag').style.left="0px";
		this.resetSize($('glayerTag'));
		$('glayerTag').style.display = "block";
	},
	
	hide: function(){
		$('updateArea').style.display="none";
		$('updateArea').style.innerHTML="";
		ListFunc.fadeOut("glayer",0.85);
	},
	
	hideTag: function(){
		$('glayerTag').style.display = 'none';
	},
	
	resetSize: function(element) {
		if (Element.getStyle(element,'position') != 'fixed') {
			var page = this.getPageSize();
			element.style.width  = page.width + 'px';
			element.style.height = page.height + 'px';
		}
	},

	getWindowSize: function() {
		var width;
		var height;
		if (document.compatMode == 'CSS1Compat' && !window.opera) {
			width  = document.documentElement.clientWidth;
			height = document.documentElement.clientHeight;
		} else {
			width  = document.body.clientWidth;
			height = document.body.clientHeight;
		}
		return {width: width, height: height};
	},
	
	getPageSize: function() {
		var windowSize = this.getWindowSize();
		var width  = windowSize.width;
		var height = windowSize.height;
		if (document.compatMode == 'CSS1Compat') {
			if (document.documentElement.scrollWidth > width)
				width  = document.documentElement.scrollWidth;
			if (document.documentElement.scrollHeight > height)
				height = document.documentElement.scrollHeight;
		} else {
			if (document.body.scrollWidth > width)
				width  = document.body.scrollWidth;
			if (document.body.scrollHeight > height)
				height = document.body.scrollHeight;
		}
		return {width: width, height: height};
	}
}