/*
Ajax를 jQuery와 연동
*/
(function($){
	if (!$) return;
	/* ajax 전송 */
	$.ajaxPost = function(divName, file, data) {
		var req = $.xmlRequest();
		if(req) {
			req.open("POST", file, true);
			req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=uft-8");
			req.onreadystatechange = function()	{
				if (req.readyState == 4)
				$(divName).html(req.responseText);
			}
			var data = (data) ? $.uriEncode(data) : null;
			req.send(data);
		}
	};
	$.xmlRequest = function()
	{
		var req = null;
		if (window.XMLHttpRequest) {
			req = new XMLHttpRequest();
			if (req.overrideMimeType)
				req.overrideMimeType('text/xml');
		} else if (window.ActiveXObject) {
			try {
				req = new ActiveXObject("Msxml2.XMLHTTP");
			} catch (e1) {
				try	{
					req = new ActiveXObject("Microsoft.XMLHTTP");
				} catch (e2) { }
			}
		}
		return req;
	};

	/* 데이터 체크 */
	$.uriEncode = function(data)
	{
		if(data != ""){
			//&와=로 일단 분해해서 encode
			var encdata = '';
			var datas = data.split('&');
			for(i=1;i<datas.length;i++)
			{
				var dataq = datas[i].split('=');
				encdata += '&'+encodeURIComponent(dataq[0])+'='+encodeURIComponent(dataq[1]);
			}
		} else {
			encdata = "";
		}
		//alert(encdata);
		return encdata;
	};

	/* 페이지 insert */
	$.insert = function(div, file, data, height)
	{
		var h = (height-16)/2;
		var html = '<div style="height:'+height+'px;"><div style="padding-top:'+h+'px;text-align:center;"><img src="/image/ajax_small.gif" width="16" height="16" /></div></div>';
		$(div).html(html);
		$.ajaxPost(div, file, data);
	};

	/* 셀 insert */
	$.cell = function(div, el, file, data)
	{
		var el  = toGetElementById(el).getElementsByTagName("DIV");
		for (var i=0; i<el.length; i++) el[i].style.display = "none";
		$(div).toggle();
		$.ajaxPost(div, file, data);
	}

	/* 다이알로그창 */
	$.dialog = function(file, data, w, h ,t)
	{
		var topMargin	= (t) ? t : 120;
		var winh			= parseInt(getClientWidth() - w) / 2;
		var winv			= parseInt(getClientHeight() - h) / 2;
		var html			= '<img src="/image/ajax_small.gif" width="16" height="16" style="margin-top:'+parseInt((h/2)-8)+'px" />';

		$.dialogRemove();
		$('<div id="ajax_header"></div>').css('height',getBodyHeight()).appendTo('body');
		$('<div id="ajax_body"><div id="ajax_display"></div></div>')
			.css({
				'position'	: 'absolute',		'top'				: winv+'px',			'left'			: winh+'px',	'border'	: '2px #333 solid',
				'width'			: w+'px',				'height'		: h+'px',		'text-align': 'center',		'background': '#e5e5e5', 'z-index' : '2004'
			}).appendTo('body');
		$('<div id="ajax_close" onclick="$.dialogRemove()"><img src="/image/icon/icon_close.gif" width="40" height="16" title="Close( Press \'ECS\' )" /></div>').css({'top' : '-22px', 'right' : '0px'}).appendTo('#ajax_body');

		$('#ajax_display').css({'width' : w+'px',	'height' : h+'px', 'text-align' : 'center', 'overflow' : 'auto'}).html(html);
		$.ajaxPost('#ajax_display', file, data);

		$("#ajax_body").draggable();
		$.dialogScroll("ajax_body", topMargin);
	};

	/* 메세지창 */
	$.message = function(file, data)
	{
		var winh		= parseInt(getClientWidth() - 350) / 2;
		var winv		= parseInt(getClientHeight() - 300) / 2;
		var html		= '<div style="margin:30px 0" class="center"><img src="/image/ajax_large.gif" width="150" height="13" style="margin:5px" /><br />Wait...</div>';

		$.dialogRemove();
		$('<div id="ajax_header"></div>').css('height', getBodyHeight()+'px').appendTo('body');
		$('<div id="ajax_body" title="마우스로 드래그 하여 이동이 가능합니다"><div id="ajax_display"></div></div>')
			.css({
				'position'	: 'absolute',		'top'				: winv+'px',			'left'			: winh+'px',	'border'	: '2px #666 solid',
				'width'			: '350px',			'height'		: '100px',				'text-align': 'center',		'background': '#e5e5e5', 'z-index' : '2004'
			}).appendTo('body');
		$('<div id="ajax_close" onclick="$.dialogRemove()"><img src="/image/icon/icon_close.gif" width="40" height="16" title="Close( Press \'ECS\' )" /></div>').css({'top' : '-22px', 'right' : '0px'}).appendTo('#ajax_body');

		$('#ajax_display').css({'width' : '350px',	'height' : '100px', 'text-align' : 'center'}).html(html);
		$.ajaxPost('#ajax_display', file, data);
	};

	/* 탭방식 */
	$.tabs = function(obj, div, file, data, height)
	{
		var tab_id = obj.id;
		var cObj = obj.parentNode.firstChild;
		while(cObj) {
			if(cObj.nodeName == "LI" && cObj.id) {
				var cTabID= cObj.id;
				if(cTabID.indexOf('tab')<0) continue;
				var cContentID = cTabID.replace(/^tab/,'tab_body');
				if(tab_id == cTabID) {
					cObj.className = "tab on";
					toGetElementById(cContentID).className = "tab_body show h100";
				} else {
					cObj.className = "tab";
					toGetElementById(cContentID).className = "tab_body hide h100";
				}
			}
			cObj = cObj.nextSibling;
		}
		var h = (height-16)/2;
		var html = '<div style="height:'+height+'px;"><div style="padding-top:'+h+'px;text-align:center;"><img src="/image/ajax_small.gif" width="16" height="16" /></div></div>';
		$(div).html(html);
		$.ajaxPost(div, file, data);
	};

	/* 메뉴방식 */
	$.menus = function(div, file, size)
	{
		$("#container > .snb > .cube > .line > .sub").animate({height : "0px"}, 200);
		$(div).animate({height : size}, 500);
		$.insert(div, file, null, size);
	};

	/* 폼전송 */
	$.checkFarm = function(frm, file, type, div, w, h)
	{
		var data = '';
		if(checkForm(frm) == true) {
			for(var i=0; i<frm.elements.length; i++){
				var e = frm.elements[i];
				if(e.disabled == false & e.type.toLowerCase() != 'checkbox' & e.type.toLowerCase() != 'radio'){
					data += "&"+e.name+"="+e.value;
				}
				if(e.checked == true & e.type.toLowerCase() == 'checkbox'){
					data += "&"+e.name+"="+e.value;
				}
				if(e.checked == true & e.type.toLowerCase() == 'radio'){
					data += "&"+e.name+"="+e.value;
				}
			}
			switch(type) {
				case "dialog":
					$.dialog(file, data, w, h);
				break;
				case "insert":
					$.insert(div, file, data, h);
				break;
				case "msg":
					$.message(file, data);
				break;
				default:
					$.message(file, data);
				break;
			}
			return false;
		}
		return false;
	};

	/* 다이알로그창 없애기 */
	$.dialogRemove = function()
	{
		$("#ajax_body").remove();
		$("#ajax_close").remove();
		$("#ajax_header").remove();
		return true;
	};

	/* 다이알로그 스크롤 */
	$.dialogScroll = function(ename, topMargin)
	{
		if(toGetElementById(ename))
		{
			var el = toGetElementById(ename);
			var yMenuFrom, yMenuTo, yOffset, timeoutNextCheck;
					yMenuFrom   = parseInt(getTop(ename), 10);
					yMenuTo     = getScrollTop() + topMargin;
			if(yMenuTo <0 ) yMenuTo = 0;
			timeoutNextCheck = 500;
			if(yMenuFrom > parseInt(yMenuTo + 10) || yMenuFrom < parseInt(yMenuTo - 10)) {
				yOffset = Math.ceil(Math.  abs(yMenuTo - yMenuFrom) / 5);
				if (yMenuTo < yMenuFrom) yOffset = -yOffset;
				el.style.top	= parseInt (el.style.top, 10) + yOffset;
				/* el.style.left = parseInt (getBodyWidth() - w) / 2; */
				timeoutNextCheck = 0;
			}
			setTimeout ("$.dialogScroll('"+ename+"', "+topMargin+")", timeoutNextCheck);
		} else
		{
			false;
		}
	};

	/* 다이알로그 스크롤 */
	$.dialogScroll2 = function(ename, topMargin)
	{
		var center	= size / 2;
		var right_v = getScrollTop() + top + "px";
		var right_h = size + left + "px";
		$(el).css({"top":right_v, "left":right_h, "display":"block"});
	};

	/* 퀵 스크롤 */
	$.quickScrolls = function(el, size, top, left)
	{
		var center	= size / 2;
		var right_v = getScrollTop() + top + "px";
		var right_h = size + left + "px";
		$(el).css({"top":right_v, "left":right_h, "display":"block"});
	};

	/* TOP 메뉴 */
	$.changeTopMenu = function()
	{
		$(".top_menu > ul > .tab").bind("mouseenter", function(e){
			$(this).addClass("on");
		});
		$(".top_menu > ul > .tab").bind("mouseleave", function(e){
			$(this).removeClass("on");
		});
	};

	/* 언어설정 : select 메뉴 */
	$.changeLang = function()
	{
		$(".langBtn").bind("mouseenter", function(e){
			$(".langBtn > span").css("color","#990000");
			$(".lang").toggle("fast");
		});
		$(".langBtn").bind("mouseleave", function(e){
			$(".langBtn > span").css("color","#444");
			$(".lang").hide("fast");
		});
		$(".langItem").bind("mouseenter", function(e){
			$(this).css({"background":"#666", "color":"#fff"});
		});
		$(".langItem").bind("mouseleave", function(e){
			$(this).css({"background":"#fff", "color":"#444"});
		});
	};

	/* 통합회원 아이디 체크 */
	$.checkTidOverLap = function(type)
	{
		$("#checkId").html('<img src="/image/ajax_small.gif" width="16" height="16" align="absmiddle" />');
		$.post("/addon/cpMember/checkTid.asp", {type:type, idx:$("#userid").val()}, function(data){
			$("#checkId").html(data);
		});
	};

	/* 회원아이디 체크 */
	$.checkIdOverLap = function(type)
	{
		$("#checkId").html('<img src="/image/ajax_small.gif" width="16" height="16" align="absmiddle" />');
		$.post("/addon/cpMember/checkId.asp", {type:type, idx:$("#userid").val()}, function(data){
			$("#checkId").html(data);
		});
	};

	/* 회원닉네임 체크 */
	$.checkNickOverLap = function(type)
	{
		$("#checkNick").html('<img src="/image/ajax_small.gif" width="16" height="16" align="absmiddle" />');
		$.post("/addon/cpMember/checkNick.asp", {type:type, idx:$("#nick").val()}, function(data){
			$("#checkNick").html(data);
		});
	};

	/* 카테고리 체크 */
	$.checkCateOverLap = function()
	{
		$("#checkCate").html('<img src="/image/ajax_small.gif" width="16" height="16" align="absmiddle" />');
		$.post("./module/categoryCheck.asp", {parent:$("#cateCode1").val(), cate:$("#cateCode2").val(), cated:$("#cated").val()}, function(data){
			$("#checkCate").html(data);
		});
	};

	/* 주소검색 */
	$.insertAddress = function(d1, d2)
	{
		$("#zipcode").val(d1);
		$("#address01").val(d2);
		$("#address02").select();
		$.dialogRemove();
	};

	/* 콤마찍기 */
	$.setComma = function(str)
	{
		str = ""+str+"";
		var retValue = "";
		for(i=0; i<str.length; i++) {
			if(i > 0 && (i%3)==0) {
				retValue = str.charAt(str.length - i -1) + "," + retValue;
			} else {
				retValue = str.charAt(str.length - i -1) + retValue;
			}
		}
		return retValue;
	};

	$.imgOver = function (el, type) {
		var src			= $(el).attr("src");
		var pattern = /_on_/;
    if(pattern.test(src)) {
			return (type == 2) ? $(el).attr("src", src.replace("_on_", "_")) : true;
		}
		else {
			$(el).attr("src", src.replace("_", "_on_"));
		}
	};

	$.sms = function()
	{
		var w = 220;
		var h = 440;
		var topMargin	= 120;
		var winh			= parseInt(getClientWidth() - w) / 2;
		var winv			= parseInt(getClientHeight() - h) / 2;
		var html			= '<img src="/image/ajax_small.gif" width="16" height="16" style="margin-top:'+parseInt((h/2)-8)+'px" />';

		$.dialogRemove();
		$('<div id="ajax_header"></div>').css('height',getBodyHeight()).appendTo('body');
		$('<div id="ajax_body"><div id="ajax_display" ></div></div>')
			.css({
				'position'	: 'absolute',		'top'				: winv+'px',			'left'			: winh+'px',
				'width'			: w+'px',				'height'		: h+'px',		'text-align': 'center',	'z-index' : '2004'
			}).appendTo('body');
		$('<div id="ajax_close" onclick="$.dialogRemove()"><img src="/image/icon/icon_close.gif" width="40" height="16" title="Close( Press \'ECS\' )" /></div>').css({'top' : '-22px', 'right' : '0px'}).appendTo('#ajax_body');

		$('#ajax_display').css({'width' : w+'px',	'height' : h+'px', 'text-align' : 'center', 'overflow' : 'auto'}).html(html);
		$.ajaxPost('#ajax_display', '/addon/cpSms/sms_div.asp', '');
		$("#ajax_body").draggable();
		$.dialogScroll("ajax_body", topMargin);
	};

	$.smsQuick = function()
	{
		var w = 400;
		var h = 450;
		var topMargin	= 120;
		var winh			= parseInt(getClientWidth() - w) / 2;
		var winv			= parseInt(getClientHeight() - h) / 2;
		var html			= '<img src="/image/ajax_small.gif" width="16" height="16" style="margin-top:'+parseInt((h/2)-8)+'px" />';

		$.dialogRemove();
		$('<div id="ajax_header"></div>').css('height',getBodyHeight()).appendTo('body');
		$('<div id="ajax_body"><div id="ajax_display" ></div></div>')
			.css({
				'position'	: 'absolute',		'top'				: winv+'px',			'left'			: winh+'px',
				'width'			: w+'px',				'height'		: h+'px',		'text-align': 'center',	'z-index' : '2004'
			}).appendTo('body');
		$('<div id="ajax_close" onclick="$.dialogRemove()"><img src="/image/icon/icon_close.gif" width="40" height="16" title="Close( Press \'ECS\' )" /></div>').css({'top' : '-22px', 'right' : '0px'}).appendTo('#ajax_body');

		$('#ajax_display').css({'width' : w+'px',	'height' : h+'px', 'text-align' : 'center', 'overflow' : 'auto', 'background':'#fff'}).html(html);
		$.ajaxPost('#ajax_display', '/addon/cpSms/sms_quick.asp', '');
		$("#ajax_body").draggable();
		$.dialogScroll("ajax_body", topMargin);
	};
})(jQuery);