
	//
	// common.javascript actions 
	// copyright(c) 2007 laziel, <http://laziel.com>, License under GPL
	//

	function clickChecker(event) {
		try {
			if (isAdministratorMode == true) {
				return;
			}
		} catch (e) { };

		var event = new Event(event);
		if (event.nodeName != 'A') 
			return;

		var obj = event.target;
		if ((obj.hostname != document.location.hostname) && ((obj.pathname != '/') && (obj.pathname.length > 0))) {
			var request = new HTTPRequest("POST", "./service/click/", false);
			request.persistent=false;
			request.send("url=" + encodeURI(obj.href));
			request = null;
		};
	};

	// openAsNewWindow

	function openAsNewWindow(event) { // sorry, this function works only in IE yet.
		var event = new Event(event);
		if (event.nodeName != 'A') 
			return;

		var obj = event.target;
		var isExternalLink = !(obj.hostname == document.location.hostname);
		if (obj.className.contains('_blank', ' ') && isExternalLink) {
			window.open(obj.href);
			return false;
		};
	};

	document.addEvent("click", clickChecker);
	if (STD.isIE) document.addEvent("click", openAsNewWindow);


	// boomUp, boomDown or cancel it

	function boom(itemId, direction) {
		if (!itemId || !direction || ((direction != 'up') && (direction != 'down'))) {
			return false;
		}
		var request = new HTTPRequest('POST', _path +'/service/boom/');
		request.onSuccess = function() {
			boomImageSet(itemId,direction);
		};
		request.onError = function() {
			alert(this.getText('/response/message'));
		};
		request.send('itemId=' + itemId + '&direction=' + direction);
	};

	function boomImageSet(itemId, direction) {
		try {
			var buOn = document.getElementById('boomUpOn'+itemId);
			var buOff = document.getElementById('boomUpOff'+itemId);
			var bdOn = document.getElementById('boomDownOn'+itemId);
			var bdOff = document.getElementById('boomDownOff'+itemId);

			if (direction == 'down') {
				if (bdOn.style.display == 'inline') {
					bdOn.style.display = 'none';
					bdOff.style.display = 'inline';
				} else {
					buOn.style.display = 'none';
					buOff.style.display = 'inline';
					bdOn.style.display = 'inline';
					bdOff.style.display = 'none';
				}
			} else { // direction = 'up'
				if (buOn.style.display == 'inline') {
					buOn.style.display = 'none';
					buOff.style.display = 'inline';
				} else {
					buOn.style.display = 'inline';
					buOff.style.display = 'none';
					bdOn.style.display = 'none';
					bdOff.style.display = 'inline';
				}
			}
		} catch (e) { };
	};

	// overlay effect with mootools v1.0 by laziel (http://www.laziel.com/)
	// inspired by mooBox of Bruno 'Shine' Figueiredo (http://www.brunofigueiredo.com/)
	var overlay = {
		objOverlay:null,
		efxOverlay:null,
		objTarget:null,
		init:function() {				
			var objBody = document.getElementsByTagName("body").item(0);
			
			this.objOverlay = new Element("div", {
				'styles': {
					'position': 'absolute',
					'top':'0px',
					'left':'0px',
					'z-index':'90',
					'width':'100%',
					'height':'100%',
					'background-color':'#000'
				}
			});
			this.objOverlay.id = "overlay";
			this.objOverlay.setStyle("width",STD.getWidth()+'px');
			this.objOverlay.setStyle("height",STD.getScrollHeight()+'px');
			objBody.appendChild(this.objOverlay);
			
			this.efxOverlay = this.objOverlay.effect("opacity",{duration:200});
			this.efxOverlay.hide();
			
			this.objOverlay.addEvent("click",overlay.close);
			window.addEvent("resize", overlay.resize);
			window.addEvent("scroll", overlay.resize);
		},

		show:function(objName) {
			this.efxOverlay.custom(0,0.2);
			this.objTarget = $(objName);
			(function(){overlay.objTarget.setStyle("display", "block");}).delay(180);
			overlay.center();
		},

		hide:function() {
			this.objTarget.setStyle("display", "none");
			this.efxOverlay.custom(0.2,0);
		},

		close:function() {
			overlay.hide();
		},

		center:function() {
			this.objTarget.setStyle('left', ((document.body.scrollLeft + ((STD.getWidth() - parseInt(this.objTarget.getStyle('width')))/2)) - 20)+'px');
			this.objTarget.setStyle('top', (STD.getScrollTop() + ((STD.getHeight() - parseInt(this.objTarget.getStyle('height')))/2)) + 'px');
		},

		resize: function() {
			overlay.objOverlay.setStyle("width", (STD.getWidth() + STD.getScrollLeft())+'px');
			overlay.objOverlay.setStyle("height",STD.getScrollHeight()+'px');
			try { overlay.center(); } catch (e) { };
		}
	};

	function showDialog(objName) {
		try {
			overlay.show(objName);
			overlay.center();		
		} catch (e) {
			overlay.init();
			overlay.show(objName);
			overlay.center();
		};
	};

	function hideDialog() {
		overlay.hide();
	};

	window.addEvent('domready', function(){overlay.init();});


	// joinDialog
	function joinDialog() {
		var objBody = document.getElementsByTagName("body").item(0);
		objBody.appendChild(new Element("div", {
			"id":"joinDialog",
			"styles":{
				"width":"500px",
				"height":"420px",
				"position":"absolute",
				"z-index":"99",
				"border":"10px solid #efefef",
				"background-color":"#ffffff",
				"display":"none",
				"overflow":"hidden"
			}
		})).appendChild(new Element("iframe", {
			"id":"joinDialogFrame",
			"styles":{
				"width":"500px",
				"height":"420px",
				"border":"0px"
			},
			"frameborder":"0",
			"src":_path+"/service/join/?frame=true"
		}));

		showDialog('joinDialog');
	};

	function joinFrameToggle(tSize) {
		var fx = new Fx.Style('joinDialogFrame', 'height',{duration: 400});
		var ffx = new Fx.Style('joinDialog', 'height',{duration: 400});
		var toSize = ($('joinDialogFrame').getStyle('height') == '420px') ? tSize : 420;
		var fromSize = ($('joinDialogFrame').getStyle('height') == '420px') ? 420 : tSize;
		fx.start(fromSize, toSize);
		ffx.start(fromSize, toSize);
	};

	// loginDialog
	function loginDialog() {
		var requestURI = (arguments.length > 0) ? '&requestURI='+arguments[0] : '';
		try {		
			var objBody = document.getElementsByTagName("body").item(0);
			objBody.appendChild(new Element("div", {
				"id":"loginDialog",
				"styles":{
					"width":"420px",
					"height":"170px",
					"position":"absolute",
					"z-index":"99",
					"border":"10px solid #efefef",
					"background-color":"#ffffff",
					"display":"none"
				}
			})).appendChild(new Element("iframe", {
				"id":"loginDialogFrame",
				"styles":{
					"width":"420px",
					"height":"170px",
					"border":"0px"
				},
				"frameborder":"0",
				"src":_path+"/service/login/?frame=true"+requestURI
			}));

			showDialog('loginDialog');
		} catch (e) {
			window.location.href = _path + '/service/login/?requestURI=' + requestURI;
		};
	};

	// background-color transition effect
	function bgFader(obj,tColor) {
		var fx = new Fx.Style(obj, 'background-color',{duration: 500});
		fx.start(tColor);
	};

	// autoComplete Email Address
	function emailAutoComplete(event) {
		var server = [
			'',
			'chol.com',
			'cyworld.com',
			'daum.net',
			'dreamwiz.com',
			'empal.com',
			'freechal.com',
			'gmail.com',
			'hanafos.com',
			'hanmail.net',
			'hanmir.com',
			'hitel.net',
			'hotmail.com',
			'korea.com',
			'live.com',
			'lycos.co.kr',
			'msn.com',
			'nate.com',
			'naver.com',
			'netian.com',
			'netsgo.com',
			'nexon.com',
			'nownuri.net',
			'paran.com',
			'sayclub.com',
			'yahoo.co.kr',
			'yahoo.com',
			'yahoo.co.jp',
			'nifmail.jp',
			'docomo.ne.jp',
			'ezweb.ne.jp',
			'mail.goo.ne.jp',
			'softbank.ne.jp',
			't.vodafone.ne.jp',
			'd.vodafone.ne.jp',
			'h.vodafone.ne.jp',
			'c.vodafone.ne.jp',
			'k.vodafone.ne.jp',
			'r.vodafone.ne.jp',
			'n.vodafone.ne.jp',
			's.vodafone.ne.jp',
			'q.vodafone.ne.jp'
		];
		var event = new Event(event);
		if (event.shift || event.ctrl || event.keyCode < 40)
			return;
		if (event.nodeName != 'INPUT') return;
		var value = event.target.value.toLowerCase();
		var match = value.match(/@.*/);
		if (match) {
			match = match.toString().substr(1);
			var reg = new RegExp('^'+match);
			for (var i=0; i < server.length; i++) {
				var complete = server[i];
				if (complete.match(reg)) {
					var range = event.target.createTextRange();
					var idx = value.length;
					if (event.key == 'backspace') 
						idx--;
					event.target.value+=complete.replace(reg, '');
					range.moveStart('character', idx);
					range.moveEnd('character', event.target.value.length);
					range.select();
					return;
				};
			};
		};
	};	

	// element Selector
	function sValue(objName) {
		var obj = document.getElementById(objName);
		return obj.options[obj.selectedIndex].value;
	};

	function oValue(objName) {
		var obj = document.getElementById(objName);
		return (obj.checked)?'y':'n';
	};

	// embed code generator
	function getEmbedCode(movie,width,height,id,bg,FlashVars,menu, transparent, quality, bgcolor, allowScriptAccess, version){
		try {
			if(movie == undefined || width == undefined || height == undefined)
				return false;
			
			if ( FlashVars == undefined) {
				var _FlashVars_object = '';
				var _FlashVars_embed = '';
			} else {
				var _FlashVars_object = '<param name="FlashVars" value="'+FlashVars+'" />';
				var _FlashVars_embed = ' FlashVars="'+FlashVars+'" ';
			};
			
			if ( menu == undefined) {
				var _menu_object = '';
				var _menu_embed = '';
			} else {
				var _menu_object = '<param name="menu" value="'+menu+'" />';
				var _menu_embed = ' menu="'+menu+'" ';
			};
			
			if ( transparent == undefined) {
				var _transparent_object = '';
				var _transparent_embed = '';
			} else {
				var _transparent_object = '<param name="wmode" value="'+transparent+'" />';
				var _transparent_embed = ' wmode="'+transparent+'" ';
			};
			
			if ( quality == undefined) {
				var _quality_object = '';
				var _quality_embed = '';
			} else {
				var _quality_object = '<param name="quality" value="'+quality+'" />';
				var _quality_embed = ' quality="'+quality+'" ';
			};
			
			if ( bgcolor == undefined) {
				var _bgcolor_object = '';
				var _bgcolor_embed = '';
			} else {
				var _bgcolor_object = '<param name="bgcolor" value="'+bgcolor+'" />';
				var _bgcolor_embed = ' bgcolor="'+bgcolor+'" ';
			};
			
			if ( allowScriptAccess == undefined) {
				var _allowScriptAccess_object = '';
				var _allowScriptAccess_embed = '';
			} else {
				var _allowScriptAccess_object = '<param name="allowScriptAccess" value="'+allowScriptAccess+'" />';
				var _allowScriptAccess_embed = ' allowScriptAccess="'+allowScriptAccess+'" ';
			};
		
			if  (version == undefined) {
				version = '7,0,0,0';
			};
		
			var flashStr=
			'<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version='+version+'" width="'+width+'" height="'+height+'" id="'+id+'" align="middle"><param name="movie" value="'+movie+'" />'+_allowScriptAccess_object+_FlashVars_object+_menu_object+_quality_object+_bgcolor_object+_transparent_object;
			flashStr += '<embed type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" src="'+movie+'"'+' width="'+width+'"'+' height="'+height+'"'+_allowScriptAccess_embed+_FlashVars_embed+_menu_embed+_quality_embed+_bgcolor_embed+_transparent_embed+' />'+
			'</object>';
			
			return flashStr;
		} catch(e) {
			return false;
		};
	};

	function writeCode(str, id) {
			if (id == undefined) document.write(str);
			else document.getElementById(id).innerHTML = str;
	};

	// updateRandomFeed

	function updateRandomFeed() {
		var request = new HTTPRequest("POST", _path+"/service/update/");
		request.persistent=false;
		request.send();
		request = null;
	};

	// imagePreloader
	function imagePreloader() {
		for (var i=0; i<arguments.length; i++) {
			var img = new Element("img", {"src":arguments[i]});
			img.onload = function() { };
		};
	};
