var Soju = {
	__postLoginAction__: null,
	__postUploadAction__: null,
	__postCloseFrameAction__: null,
	__postZipcodeAction__: null,


	// ·Î±×ÀÎ µ¥ÀÌÅÍ..!
	memberData:{
		login: false,
		uid: "",
		uname: "",
		type: "",
		mania: false
	},


	layerFrame: null,
	pageLayer: null,
	disabledZone: null,
	downloadFrame: null,


	// ÆäÀÌÁö ·¹ÀÌ¾î ³»ºÎÀÇ ÇÁ·¹ÀÓ ¹ÝÈ¯
	getLayerFrame: function(){
		Soju.layerFrame = $("__searchFrame__");

		if( !Soju.layerFrame ){
			Soju.layerFrame = new Element("iframe");
			Soju.layerFrame.id = Soju.layerFrame.name = "__layerFrame__";
			Soju.layerFrame.frameBorder = 0;

			Soju.getPageLayer().appendChild( Soju.layerFrame );
		}

		return Soju.layerFrame;
	},


	// ÆäÀÌÁö ·¹ÀÌ¾î ¹ÝÈ¯
	getPageLayer: function(){
		Soju.pageLayer = $("__pageLayer__");

		if( !Soju.pageLayer ){
			Soju.pageLayer = new Element("div");

			Soju.pageLayer.id = "__pageLayer__";
			Soju.pageLayer.style.display = "none";
			Soju.pageLayer.style.position = "absolute";
			Soju.pageLayer.width = Soju.pageLayer.height = 0;
			

			Soju.pageLayer.page = Soju.getLayerFrame();

			Event.observe(
				window,
				"resize",
				function(){
					Soju.pageLayer.style.left = ( (document.body.scrollWidth / 2) - (Soju.pageLayer.width / 2) ) + "px";
					Soju.pageLayer.style.top = ( (document.body.scrollHeight / 2) - (Soju.pageLayer.height / 2) ) + "px";
				}
			);


			document.body.appendChild( Soju.pageLayer );
		}

		Soju.pageLayer.style.zIndex = 9050;

		return Soju.pageLayer;
	},
	

	// ¹ÝÅõ¸í ·¹ÀÌ¾î ¹ÝÈ¯
	getDisabledZone: function(){
		Soju.disabledZone = $("__divDisabledZone__");

		if( !Soju.disabledZone ){
			Soju.disabledZone = new Element("div");
			Soju.disabledZone.id = "__divDisabledZone__";
			Soju.disabledZone.style.zIndex = 0;
			Soju.disabledZone.style.width = document.body.scrollWidth;
			Soju.disabledZone.style.height = document.body.scrollHeight;
			Soju.disabledZone.style.left = 0;
			Soju.disabledZone.style.top = 0;
			Soju.disabledZone.style.position = "absolute";
			Soju.disabledZone.style.backgroundColor = "black";
			Soju.disabledZone.style.opacity = 0.25;
			Soju.disabledZone.style.MozOpacity = 0.25;
			Soju.disabledZone.style.KhtmlOpacity = 0.25;
			Soju.disabledZone.style.filter = "alpha(opacity=25)";
			Soju.disabledZone.style.zIndex = 9000;

			Soju.disabledZone.hide();


			Event.observe(
				window,
				"resize",
				function(){
					Soju.getDisabledZone().width = document.body.scrollWidth;
					Soju.getDisabledZone().height = document.body.scrollHeight;
				}
			);


			document.body.appendChild( Soju.disabledZone );
		}

		return Soju.disabledZone;
	},



	// ·¹ÀÌ¾î ÆäÀÌÁö ·Îµå( °æ·Î, ³ÐÀÌ, ³ôÀÌ, °æ°è¼±Ç¥½Ã¿©ºÎ )
	loadPage: function( src, width, height, fnPostClose, gridBorder ){
		for(var i=0; i<document.getElementsByTagName("select").length; i++){
			document.getElementsByTagName("select")[i].style.display = "none";
		}


		Soju.getPageLayer().width = Soju.getLayerFrame().width = ((gridBorder) ? (width + 4) : width) + "px";
		Soju.getPageLayer().height = Soju.getLayerFrame().height = ((gridBorder) ? (height + 4) : height) + "px";
		Soju.getPageLayer().style.left = ( (document.body.clientWidth / 2) - (width / 2) ) + "px";
		Soju.getPageLayer().style.top = ( (document.body.clientHeight / 2) - (height / 2) ) + "px";

		Soju.getLayerFrame().src = src;


		if( gridBorder ){
			Soju.getPageLayer().style.border = "2px solid #CFCFCF";
		}


		Soju.getDisabledZone().show();
		Soju.getPageLayer().show();

		Soju.getLayerFrame().focus();

		Soju.__postCloseFrameAction__ = fnPostClose;
	},



	// ·¹ÀÌ¾î ÆäÀÌÁö ´Ý±â..
	closePage: function(){
		for(var i=0; i<document.getElementsByTagName("select").length; i++){
			document.getElementsByTagName("select")[i].style.display = "inline";
		}



		if( typeof(Soju.__postCloseFrameAction__) == "function" ){
			try{
				Soju.__postCloseFrameAction__(arguments[0]);
			} catch(e){};


			Soju.__postCloseFrameAction__ = null;
		}


		Soju.getLayerFrame().src = "about:blank";

		Soju.getPageLayer().hide();
		Soju.getDisabledZone().hide();
	},



	// ´Ù¿î·Îµå ÇÁ·¹ÀÓ ¹ÝÈ¯..
	getDownloadFrame: function(){
		if( !Soju.downloadFrame ){
			Soju.downloadFrame = document.createElement("IFRAME");
			Soju.downloadFrame.id = Soju.downloadFrame.name = "__ifrDownload__";
			Soju.downloadFrame.frameBorder = "0px";
			Soju.downloadFrame.style.width = Soju.downloadFrame.style.height = "0px";
			Soju.downloadFrame.style.display = "none";
			
			document.body.appendChild( Soju.downloadFrame );
		}

		return Soju.downloadFrame;
	},


	// È¸¿øÀÇ ·Î±×ÀÎÁ¤º¸ °¡Á®¿À±â..!
	loadMemberInfo: function( fnPostAction ){
		new Ajax.Request(
			"/member/process/loginInfo.asp",
			{
				onSuccess: function( xmlHttp ){
					Soju.memberData = xmlHttp.responseText.evalJSON();

					if( typeof(fnPostAction) == "function" ){
						fnPostAction();
					}
				}
			}
		);
	},



	// ·Î±×ÀÎ·¹ÀÌ¾î º¸ÀÌ±â..!
	showLoginLayer: function( fnPostLogin ){
		Soju.__postLoginAction__ = fnPostLogin;



		for(var i=0; i<document.getElementsByTagName("select").length; i++){
			document.getElementsByTagName("select")[i].style.display = "none";
		}



		Soju.loadPage("/member/layer_login.asp", 400, 250);
	},



	// ·Î±×ÀÎ·¹ÀÌ¾î ´Ý±â..!
	closeLoginLayer: function(){
		for(var i=0; i<document.getElementsByTagName("select").length; i++){
			document.getElementsByTagName("select")[i].style.display = "inline";
		}


		if( typeof(Soju.__postLoginAction__) == "function" ){
			try{
				Soju.__postLoginAction__();
			} catch(e){};

		} else{
			window.location.reload();
		}

		Soju.loadMemberInfo( new Function("Soju.closePage();") );
	},


	// ·Î±×¾Æ¿ô..
	logout: function(){
		if( confirm("·Î±×¾Æ¿ô ÇÏ½Ã°Ú½À´Ï±î?") ){
			window.location.href = "/member/process/member_logout.asp";
		}
	},


	// ¾÷·Îµå Æû ¿­±â...
	openUploadForm: function( fnCallback, uploadPath, type ){
		Soju.__postUploadAction__ = fnCallback;

		Soju.loadPage( ("/common/uploadForm.asp?type=" + (type || "") + "&path=" + uploadPath), 380, 220);
	},


	// ¾÷·Îµå Æû ´Ý±â..
	closeUploadForm: function( fileName ){
		if( fileName && (fileName.length > 0) ){
			if( typeof(Soju.__postUploadAction__) == "function" ){
				try{
					Soju.__postUploadAction__( fileName );
				} catch(e){};
			}
		}


		Soju.closePage();
	},


	// ¿ìÆí¹øÈ£Ã£±â Æû ¿­±â..
	openZipcode: function( fnCallback ){
		Soju.__postZipcodeAction__ = fnCallback;

		Soju.loadPage("/member/layer_zipsearch.asp", 370, 230);
	},


	// ¿ìÆí¹øÈ£Ã£±â Æû ´Ý±â..
	closeZipcode: function( zip1, zip2, addr1 ){
		if( typeof(Soju.__postZipcodeAction__) == "function" ){
			try{
				Soju.__postZipcodeAction__( zip1, zip2, addr1 );
			} catch(e){};
		}


		Soju.closePage();
	},



	// ½ºÅ©·¦ URL µî·ÏÆäÀÌÁö ¿­±â..!
	openScrapUrl: function( val ){
		if( Soju.memberData.login ){
			Soju.loadPage( "/common/layer_scrapUrl.asp?scrap=" + val, 530, 250 );

		} else{
			Soju.showLoginLayer(
				function(){
					Soju.openScrapUrl( val );
				}
			);
		}
	},



	// ´Ù¿î·Îµå..!
	download: function( src ){
		var exts = src.substring(src.length-3).toLowerCase();

		if( (exts == "zip") || (exts == "pdf") ){ 
			Soju.getDownloadFrame().src = src;

		} else if( (exts == "jpg") || (exts == "gif") || (exts == "bmp") || (exts == "png") || (exts == "mov") || (exts == "avi") || (exts == "asf") || (exts == "wmv") || (exts == "wma") ){
			Soju.getDownloadFrame().src = "/common/download.asp?strFileFullPath=" + src;

		}
	},


	// ÀÌ¹ÌÁö ºä¾î~
	showPicture: function( src, lockWindow ){
		if( lockWindow == null )							lockWindow = true;
		if( lockWindow )									Soju.getDisabledZone().show();


		var oImage = $(src + "_container");

		if( !oImage ){
			oImage = new Element("img");

			oImage.src = src;
			oImage.style.zIndex = 9060;
			oImage.style.position = "absolute";
			oImage.style.cursor = "pointer";
			oImage.style.border = "2px solid orange";
			oImage.alt = "ÀÌ¹ÌÁö¸¦ Å¬¸¯ÇÏ½Ã¸é ´ÝÈü´Ï´Ù.";

			oImage.lockPositionCenter = function(){
				oImage.style.left = ( (document.body.scrollWidth / 2) - (this.width / 2) ) + "px";
				oImage.style.top = "10px";
			};


			Event.observe( 
				oImage, 
				"load", 
				function(e){
					oImage = resizeImage( oImage, 500, 500 );

					oImage.lockPositionCenter();
				}
			);

			Event.observe( 
				oImage,
				"click",
				function(e){
					Soju.getDisabledZone().hide();
					oImage.hide();
				}
			);

			Event.observe(
				window,
				"resize",
				function(){
					oImage.lockPositionCenter();
				}
			);

			document.body.appendChild( oImage );
		}



		oImage.lockPositionCenter();
		oImage.show();
	},


	// ToolTip ¼³¸í³»¿ëÀ» ÀÌ¹ÌÁö·Î ¼³Á¤
	setToolTipHelpImage: function( obj, imgSrc ){
		if( obj ){
			var objPos = ( obj.style.top && obj.style.left ) ? [obj.style.left, obj.style.top] : Position.page( obj );


			obj._toolTip = new Image();
			obj._toolTip.src = imgSrc;

			obj._toolTip.id = (obj.id + "_toolTip");
			obj._toolTip.style.position = "absolute";
			obj._toolTip.style.display = "none";
			obj._toolTip.style.left = (objPos[0] - (obj._toolTip.width / 3)) + "px";
			obj._toolTip.style.top = (objPos[1] - (obj._toolTip.height) + 125) + "px";


			Event.observe( 
				obj, 
				"mouseover", 
				function(e){
					obj._toolTip.style.left = (e.x - e.offsetX + document.body.scrollLeft) - (obj._toolTip.width / 2) + 10;
					obj._toolTip.style.top = (e.y - e.offsetY + document.body.scrollTop) - (obj._toolTip.height) - 5;

					Element.show( obj._toolTip );
				}
			);

			Event.observe( obj, "mouseout", new Function("Element.hide(this._toolTip);") );


			document.body.appendChild( obj._toolTip );
		}
	},


	// Æ®·¡Å·..!
	trace: function( code ){
		if( code ){
			new Ajax.Request(
				"/common/process/trace.asp",
				{
					parameters:("code=" + code)
				}
			);
		}
	}
};





/* µ¹¹ßÄûÁî.. */
Soju.QuizEvent = {
	login: function(){
		Soju.showLoginLayer(
			function(){
				new Ajax.Request(
					"/event/process/quiz_login_success.asp",
					{
						onSuccess: function( xmlHttp ){
							try{
								$("SojuQuizFlash").saveAndLogin();
							} catch(e){

							}
						},

						onFailure: function( xmlHttp ){
							alert( xmlHttp.responseText );
						}
					}
				);
			}
		);
	}
};