﻿/*
GGI Front 통합 JS - 개발용 v1.0
Choi Kil Hyoung [다음 js를 통합함]	ackeyword.js/binder.js/handler.js/multilang.js/public.js/RMSHelper.js
*/
/* aspx내에 존재하는 내용 */
function doSearch() {
	if ($get("search____keyword").value.trim() != "") {
		document.search_____form.keyword.value = $get("search____keyword").value;
		$get("search_____form").submit();
	}
}

//stop flash & play pics
var flashflag = 0;
function flashControl() {

	if (flashflag == 0) {
		if (navigator.appName == "Netscape") window.stop();
		else document.execCommand('Stop');
		++flashflag;
		Util.setCookie("StopFlash", "Y");
		$get("b_stop_flash").innerHTML = "Play Pics";
	} else {
		Util.setCookie("StopFlash", "N");
		window.location.reload();
	}
}
function initFlashControl() {
	if (Util.getCookie("StopFlash") == "Y") {
		flashControl();
	}
}
ControlUtil.setEnterKeyEvent("search____keyword", doSearch);

/* 상단 카테고리 이동*/
function __goCategory(gdlc_cd) {
	window.location.href = Public.getLoginServerUrl("/Category/Default.aspx") + "?gdlc_cd=" + gdlc_cd;
}
/* aspx End*/

/* ACKeyword.js */
var ACKeyword = function() { };
var ACidx = -1; // [0,9] current index
var ACmax = 0; // list.length - 1

ACKeyword.hide = function(delay) {
	setTimeout("$get('ac_layer').style.display = 'none'", delay);
	ACidx = -1;
}
ACKeyword.show = function() {
	if ($get("search____keyword").value.match(/\S/gi) != null) $get("ac_layer").style.display = "";
	else $get("ac_layer").style.display = "none";
	ACidx = -1;
}
ACKeyword.onkeyup = function(e) {
	if ($get("ac_layer").style.display == "none") {
		ACKeyword.show();
		ACKeyword.Call();
		return;
	}
	var code;

	if (!e) e = window.event
	if (e.keyCode) code = e.keyCode;
	else if (e.which) code = e.which;

	try {
		if (code != 38 && code != 40 && code != 13 && code != 27 && code != 229) ACKeyword.Call();
		if (code == 38 || code == 40) { // ↑ or ↓
			if ($get("ACidx" + ACidx)) $get("ACidx" + ACidx).style.backgroundColor = "";

			// ↑
			if (code == 38) ACidx = (ACidx > 0) ? --ACidx : ACmax;
			// ↓
			else if (code == 40) ACidx = (ACidx < ACmax) ? ++ACidx : 0;

			if ($get("ACidx" + ACidx)) $get("ACidx" + ACidx).style.backgroundColor = "#f5f5f5";
			if ($get("ACidx" + ACidx)) $get("search____keyword").value = $get("ACidx" + ACidx).title;

		}
		else if (code == 27) ACKeyword.hide(0); // Esc
	} catch (ex) { }
};
ACKeyword.Call = function() {

	if ($get("search____keyword").value.match(/\S/gi) == null) return;
	if ($get("search____keyword").value.indexOf("\\") >= 0) return;
	var param = new RMSParam();
	param.add("keyword", $get("search____keyword").value);
	RMSHelper.asyncCallWebMethod(Public.getServiceUrl("swe_SearchAjaxService.asmx"), "Search ", param.toJson(), ACKeyword.callBack);
	ACKeyword.show();
	return;
};
ACKeyword.callBack = function(result, svc, methodName, xmlHttpasync) {
	var html_out, i
	html_out = "";

	try { ACmax = result.length; } catch (ex) { }
	try {
		var rst = "";
		var rst_mat = "";
		var keyw = $get("search____keyword").value;
		var keyw_spn = "";
		var patt1 = eval("/" + keyw + "/i");

		for (i = 0; i < ACmax; ++i) {
			rst = result[i];
			rst_mat = rst.match(patt1);
			keyw_spn = String.format("<span>{0}</span>", rst_mat);
			rst = eval("rst.replace(/" + keyw + "/ig, '" + keyw_spn + "')");
			html_out += String.format("<li onmouseover='ACKeyword.mouseover({0})'><a id='ACidx{0}' title=\"{3}\" href=\"javascript:ACKeyword.doSearch(\'{1}\');\">{2}</a></li>", i, result[i], rst, result[i]);
		}
		$get("ac_list").innerHTML = html_out;
	} catch (ex) { }
};
ACKeyword.doSearch = function(keyword) {
	if (keyword == "" || keyword == null) keyword = $get("search____keyword").value;
	document.search_____form.keyword.value = keyword;
	$get("search_____form").submit();
	return;
};
ACKeyword.mouseover = function(idx) {
	var i = 0;
	ACidx = idx;
	for (i = 0; i < ACmax; ++i) $get("ACidx" + i).style.backgroundColor = (i == ACidx) ? "#f5f5f5" : "white";
};
/* ACKeyword.js End */

/* Binder.js */
SelectBoxBinder = function() { };
SelectBoxBinder.bindingJson = function(objSelect, json, valuekey, textkey, valueBinder, textBinder) {
	if (json.__type == "System.Data.DataTable") {
		for (var i = 0; i < json.Rows.length; i++) {
			var valueData = json.Rows[i][valuekey];
			var textData = json.Rows[i][textkey];
			if (valueBinder != undefined && valueBinder != null) {
				valueData = valueBinder(valuekey, valueData, json, i);
			}
			if (textBinder != undefined && textBinder != null) {
				textData = textBinder(valuekey, textData, json, i);
			}
			SelectBoxBinder.addOption(objSelect, textData, valueData);
		}
	}
	else {
		for (var i = 0; i < json.length; i++) {
			var valueData = json[i][valuekey];
			var textData = json[i][textkey];
			if (valueBinder != undefined && valueBinder != null) {
				valueData = valueBinder(valuekey, valueData, json, i);
			}
			if (textBinder != undefined && textBinder != null) {
				textData = textBinder(valuekey, textData, json, i);
			}
			SelectBoxBinder.addOption(objSelect, textData, valueData);
		}
	}
};
SelectBoxBinder.addOption = function(objSelect, text, value) {
	objSelect.options.add(new Option(text, value));
};
SelectBoxBinder.clear = function(objSelect) {
	objSelect.options.length = 0;
};
/* Binder.js End */

/* Handler.js */
var Handler = {};
if (document.addEventListener) {
	Handler.add = function(element, eventType, handler) {
		if (typeof element == "string") element = document.getElementById(element);

		if (eventType.indexOf("on") != 0)
			element.addEventListener(eventType, handler, false);
		else
			element.addEventListener(eventType.substr(2, eventType.length - 2), handler, false);
	};

	Handler.remove = function(element, eventType, handler) {
		if (typeof element == "string") element = document.getElementById(element);

		if (eventType.indexOf("on") != 0)
			element.removeEventListener(eventType, handler, false);
		else
			element.removeEventListener(eventType.substr(2, eventType.length - 2), handler, false);
	};
}
else if (document.attachEvent) {
	Handler.add = function(element, eventType, handler) {
		if (typeof element == "string") element = document.getElementById(element);

		if (!element) return;

		if (Handler._find(element, eventType, handler) != -1) return;

		var wrappedHandler = function(e) {
			if (!e) e = window.event;

			var event = {
				_event: e,   // In	case we	really want	the	IE event object
				type: e.type, 		// Event type
				target: e.srcElement, // Where the event happened
				currentTarget: element, // Where we're handling	it
				relatedTarget: e.fromElement ? e.fromElement : e.toElement,
				eventPhase: (e.srcElement == element) ? 2 : 3,

				// Mouse coordinates
				clientX: e.clientX, clientY: e.clientY,
				screenX: e.screenX, screenY: e.screenY,

				// Key state
				altKey: e.altKey, ctrlKey: e.ctrlKey,
				shiftKey: e.shiftKey, charCode: e.keyCode,

				// Event management	functions
				stopPropagation: function() { this._event.cancelBubble = true; },
				preventDefault: function() { this._event.returnValue = false; }
			}

			if (Function.prototype.call)
				handler.call(element, event);
			else {
				// If we don't have	Function.call, fake	it like	this
				element._currentHandler = handler;
				element._currentHandler(event);
				element._currentHandler = null;
			}
		};

		if (eventType.indexOf("on") != 0)
			element.attachEvent("on" + eventType, wrappedHandler);
		else
			element.attachEvent(eventType, wrappedHandler);

		var h = {
			element: element,
			eventType: eventType,
			handler: handler,
			wrappedHandler: wrappedHandler
		};

		var d = element.document || element;
		var w = d.parentWindow;

		var id = Handler._uid();  // Generate a	unique property	name
		if (!w._allHandlers) w._allHandlers = {};  // Create object	if needed
		w._allHandlers[id] = h; // Store the handler info in this object

		if (!element._handlers) element._handlers = [];
		element._handlers.push(id);

		if (!w._onunloadHandlerRegistered) {
			w._onunloadHandlerRegistered = true;
			w.attachEvent("onunload", Handler._removeAllHandlers);
		}
	};

	Handler.remove = function(element, eventType, handler) {


		var i = Handler._find(element, eventType, handler);
		if (i == -1) return;  // If	the	handler	was	not	registered,	do nothing

		var d = element.document || element;
		var w = d.parentWindow;

		var handlerId = element._handlers[i];
		var h = w._allHandlers[handlerId];

		if (eventType.indexOf("on") != 0)
			element.detachEvent("on" + eventType, h.wrappedHandler);
		else
			element.detachEvent(eventType, h.wrappedHandler);

		element._handlers.splice(i, 1);
		delete w._allHandlers[handlerId];
	};

	Handler._find = function(element, eventType, handler) {
		var handlers = element._handlers;
		if (!handlers) return -1;  // if no	handlers registered, nothing found

		var d = element.document || element;
		var w = d.parentWindow;

		for (var i = handlers.length - 1; i >= 0; i--) {
			var handlerId = handlers[i]; 	// get handler id
			var h = w._allHandlers[handlerId]; // get handler info
			// If handler info matches type	and	handler	function, we found it.
			if (h.eventType == eventType && h.handler == handler)
				return i;
		}
		return -1; // No match	found
	};

	Handler._removeAllHandlers = function() {
		var w = this;

		for (id in w._allHandlers) {
			var h = w._allHandlers[id];
			if (h.eventType.indexOf("on") != 0)
				h.element.detachEvent("on" + h.eventType, h.wrappedHandler);
			else
				h.element.detachEvent("on" + h.eventType, h.wrappedHandler);

			delete w._allHandlers[id];
		}
	};

	Handler._counter = 0;
	Handler._uid = function() { return "h" + Handler._counter++; };
};
/* Handler.js End */

/* MultiLang.js */
var MultiLang = function() { }
MultiLang.findResource = function(resourceId, arg1, arg2, arg3) {
	var val = MultiLang._findResource(resourceId, false);
	if (arg3 != undefined) {
		val = val.toString().replace('{0}', arg1.toString()).toString().replace('{1}', arg2.toString()).replace('{2}', arg3.toString());
	}
	else if (arg2 != undefined) {
		val = val.toString().replace('{0}', arg1.toString()).toString().replace('{1}', arg2.toString());
	}
	else if (arg1 != undefined) {
		val = val.toString().replace('{0}', arg1.toString());
	}
	return val;
};

MultiLang.findResourceByNation = function(resourceId, arg1, arg2, arg3) {
	var val = MultiLang._findResource(resourceId, true);

	if (arg3 != undefined) {
		val = val.toString().replace('{0}', arg1.toString()).toString().replace('{1}', arg2.toString()).replace('{2}', arg3.toString());
	}
	else if (arg2 != undefined) {
		val = val.toString().replace('{0}', arg1.toString()).toString().replace('{1}', arg2.toString());
	}
	else if (arg1 != undefined) {
		val = val.toString().replace('{0}', arg1.toString());
	}

	return val;
};

MultiLang._findResource = function(resourceId, bNationResource) {
	if (bNationResource)
		resourceId += "__" + GMKT.ServiceInfo.nation;

	if (__ClientResource != undefined) {
		var val = __ClientResource[resourceId.toLowerCase()];

		if (val != undefined)
			return val;
	}
	var msg = "Resource('" + resourceId.toLowerCase() + "') not found";
	Public.WriteScriptError(msg, window.location.href, "MultiLang._findResource", "");
	//alert(msg);
	return "";
};
MultiLang.findCommonResource = function(categoryid, resourceId) {
	return MultiLang._findCommonResource(categoryid, resourceId, false);
};
MultiLang.findCommonResourceByNation = function(categoryid, resourceId) {
	return MultiLang._findCommonResource(categoryid, resourceId, true);
};
MultiLang._findCommonResource = function(categoryid, resourceId, bNationResource) {
	if (bNationResource)
		resourceId += "__" + GMKT.ServiceInfo.nation;
	if (__ClientResource != undefined) {
		var val = __ClientResource["__" + categoryid.toLowerCase() + "__" + resourceId.toLowerCase()];

		if (val != undefined)
			return val;
	}
	var msg = "Resource('" + "__" + categoryid.toLowerCase() + "__" + resourceId.toLowerCase() + "') not found";
	Public.WriteScriptError(msg, window.location.href, "MultiLang._findCommonResource", "");
	//alert(msg);
	return "";
};
MultiLang.findScriptResource = function(resourceId) {
	return MultiLang._findScriptResource(resourceId, false);
};
MultiLang.findScriptResourceByNation = function(resourceId) {
	return MultiLang._findScriptResource(resourceId, true);
};
MultiLang._findScriptResource = function(resourceId, bNationResource) {
	if (bNationResource)
		resourceId += "__" + GMKT.ServiceInfo.nation;
	if (__ClientResource != undefined) {
		var val = eval(__ClientResource[resourceId.toLowerCase()]);
		if (val != undefined)
			return val;
	}

	var msg = "Resource('" + resourceId + "') not found";
	Public.WriteScriptError(msg, window.location.href, "MultiLang._findScriptResource", "");
	//alert(msg);
	return null;
};
MultiLang.addResource = function(resourceId, text) {
	__ClientResource[resourceId.toLowerCase()] = text;
};
/* MultiLang.js End */

/* Public.js */
var isCurrent = true;
var Public = function() { };
Public.ErrorHandler = function(ex, url, line) {
	var funcname = "";
	if (typeof (ex) != "string") {
		if (ex.message != undefined)
			ex = ex.message;
		else if (ex.ExceptionType != undefined)
			ex = ex.Message;
		else
			ex = "unknown script error";
	}
	if (Public.ErrorHandler.caller != null) {
		try {
			funcname = Public.ErrorHandler.caller.toString();
			funcname = funcname.replace("function", "");
			funcname = funcname.replace(/(^\s*)|(\s*$)|($\s*)/g, "");
			var idx = funcname.indexOf(")");

			if (idx >= 0)
				funcname = funcname.substring(0, idx + 1);
			else
				funcname = funcname.substring(0, 25);

		} catch (e) { }
	}
	Public.WriteScriptError(ex, url, funcname, line);
	return false;
};

Public.WriteScriptError = function(ex, url, funcname, line) {
	try {
		var serverName = "";
		var serverIP = "";
		var clientIP = "";
		var login_id = "";
		var lang = "";
		var app_no = 1; //unknown

		try {
			serverName = __PAGE_VALUE.SERVER_NAME;
			serverIP = __PAGE_VALUE.SERVER_IP;
			clientIP = __PAGE_VALUE.CLIENT_IP;
			login_id = __PAGE_VALUE.IS_LOGIN ? __PAGE_VALUE.LOGIN_ID : "";
			lang = GMKT.ServiceInfo.ClientLang;
			app_no = __PAGE_VALUE.APP_NO;

			if (!Util.isNumber(app_no))
				app_no = 1;
		} catch (ex1) { }

		var detailmessage = "Referer : " + document.referrer + "\r\n";
		detailmessage += "User Language : " + lang + "\r\n";
		detailmessage += "Client IP : " + clientIP + "\r\n";
		detailmessage += "User Agent : " + window.navigator.userAgent + "\r\n";
		detailmessage += "Login ID : " + login_id + "\r\n";
		detailmessage += "Domain : " + document.domain + "\r\n";
		detailmessage += "Server Name : " + serverName + "\r\n";
		detailmessage += "Server IP : " + serverIP + "\r\n";
		detailmessage += "Error File : " + url + "\r\n";
		detailmessage += "Error Function : " + funcname + "\r\n";
		detailmessage += "Error Line : " + line + "\r\n";
		detailmessage += "Error Message : " + ex + "\r\n";

		var param = new RMSParam();
		param.add("contexturl", window.location.href);
		param.add("useragent", window.navigator.userAgent);
		param.add("server", serverName);
		param.add("appNo", app_no);
		param.add("location", funcname);
		param.add("message", ex);
		param.add("detailmessage", detailmessage);

		var callback = function(result, svc, methodName, xmlHttpasync) { }

		RMSHelper.asyncCallWebMethod(Public.getServiceUrl("swe_AjaxLoggingService.asmx"), "WriteLog", param.toJson(), callback);
	} catch (ex) { }
};

window.onerror = Public.ErrorHandler;

Public.isLocalServer = function() {
	if (__PAGE_VALUE.IS_LOCAL_SERVER || window.location.href.indexOf("localhost") >= 0)
		return true;
	return false;
};
Public.isDev = function() {
	return Public.isLocalServer();
};
Public.isReal = function() {
	return !Public.isDev();
};
Public.getAppPath = function() {
	return __PAGE_VALUE.ROOT_PATH;
};
Public.getEventAppPath = function() {
	return __PAGE_VALUE.EVENT_ROOT_PATH;
};

Public.getServicePath = function() {
	return __PAGE_VALUE.SERVICE_PATH;
};
Public.getCookieDomain = function() {
	return __PAGE_VALUE.COOKE_DOMAIN;
};
Public.isLogin = function() {
	if (__PAGE_VALUE.IS_LOGIN != undefined)
		return __PAGE_VALUE.IS_LOGIN;

	return false;
};
Public.getCustNo = function() {
	return __PAGE_VALUE.CUST_NO;
};
Public.getLoginId = function() {
	return __PAGE_VALUE.LOGIN_ID;
};
Public.getServiceUrl = function(serviceName) {
	return Public.getServicePath() + serviceName;
};
Public.getWWWServerUrl = function(path, ssl) {
	return Public._getSafeUrl(__PAGE_VALUE.WWW_SERVER, ssl) + Public.getAppPath() + path;
};
Public.getMemberServerUrl = function(path, ssl) {
	return Public._getSafeUrl(__PAGE_VALUE.MEMBER_SERVER, ssl) + Public.getAppPath() + path;
};
Public.getLoginServerUrl = function(path, ssl) {
	return Public._getSafeUrl(__PAGE_VALUE.LOGIN_SERVER, ssl) + Public.getAppPath() + path;
};
Public.getCategoryServerUrl = function(path, ssl) {
	return Public._getSafeUrl(__PAGE_VALUE.CATEGORY_SERVER, ssl) + Public.getAppPath() + path;
};
Public.getSearchServerUrl = function(path, ssl) {
	return Public._getSafeUrl(__PAGE_VALUE.SEARCH_SERVER, ssl) + Public.getAppPath() + path;
};
Public.getMyServerUrl = function(path, ssl) {
	return Public._getSafeUrl(__PAGE_VALUE.MY_SERVER, ssl) + Public.getAppPath() + path;
};
Public.getOrderServerUrl = function(path, ssl) {
	return Public._getSafeUrl(__PAGE_VALUE.ORDER_SERVER, ssl) + Public.getAppPath() + path;
};
Public.getGoodsServerUrl = function(path, ssl) {
	return Public._getSafeUrl(__PAGE_VALUE.GOODS_SERVER, ssl) + Public.getAppPath() + path;
};
Public.getCouponServerUrl = function(path, ssl) {
	return Public._getSafeUrl(__PAGE_VALUE.COUPON_SERVER, ssl) + Public.getAppPath() + path;
};
Public.getEventServerUrl = function(path, ssl) {
	return Public._getSafeUrl(__PAGE_VALUE.EVENT_SERVER, ssl) + Public.getAppPath() + path;
};
Public.getEventContentServerUrl = function(path, ssl) {
	return Public._getSafeUrl(__PAGE_VALUE.EVENT_CONTENT_SERVER, ssl) + Public.getEventAppPath() + path;
};
Public._getSafeUrl = function(url, ssl) {
	if (ssl && !Public.isLocalServer()) {
		url = url.replace("http://", "https://");
	}
	return url;
};
Public.goLoginPage = function() {
	var nextUrl = window.location.href;
	document.location.href = Public.getLoginServerUrl("/Login/Login.aspx?nextUrl=" + nextUrl, true);
};
Public.getImgPath = function() {
	return Public._getSafeUrl(__PAGE_VALUE.DP_IMAGE_PATH, ssl);
};
Public.getGoodsImagePath = function(gd_no, imgType) {
	var goodsImagePath1 = "";
	var goodsImagePath2 = "";
	var goodsImagePath3 = "";
	if (gd_no == "") {
		return Public.getAppPath() + "/Img/no_image.gif";
	}

	if (location.protocol == "https:") {
		goodsImagePath1 = __PAGE_VALUE.GOODS_SSL_IMAGE_PATH;
	}
	else {
		goodsImagePath1 = __PAGE_VALUE.GOODS_IMAGE_PATH;
	}
	if (imgType == "L") goodsImagePath2 = "/li/";
	else if (imgType == "M") goodsImagePath2 = "/mi/";
	else if (imgType == "M2") goodsImagePath2 = "/mi2/";
	else if (imgType == "M3") goodsImagePath2 = "/mi3/";
	else if (imgType == "S") goodsImagePath2 = "/si/";

	goodsImagePath3 = gd_no.substr(6, 3) + "/" + gd_no.substr(3, 3) + "/" + gd_no + ".jpg";
	return goodsImagePath1 + goodsImagePath2 + goodsImagePath3;
};
Public.setRightWing = function() {
	var viewToday = eval(__ViewToday);
	var goodsUrl, goodsImage, noImageUrl;
	var pos_code = "&pos_shop_cd=RC&pos_class_cd=111111111&pos_class_kind=T";
	var view_href = Public.getMyServerUrl("/My/ViewToday.aspx", false);
	if (!__PAGE_VALUE.IS_LOGIN) view_href = Public.getWWWServerUrl("/List/TodaysView.aspx", false);

	if (viewToday.goods.length == 0) {
		viewToday = eval(__HotWing);
		$get("rw_title").innerHTML = MultiLang.findCommonResource("Master/DefaultMasterPage.master", "Recommends");
		$get("rw_title_href").href = Public.getCategoryServerUrl("/Special/Special.aspx?sid=100", false);
		$get("rw_count_href").innerHTML = "";
	} else {
		$get("rw_title").innerHTML = MultiLang.findCommonResource("Master/DefaultMasterPage.master", "Todays View");
		$get("rw_title_href").href = view_href;
		$get("rb_viewcount").innerHTML = viewToday.goods.length;
		$get("rw_count_href").href = view_href;
	}

	if (viewToday.goods.length > 0) {
		goodsUrl = Public.getGoodsServerUrl("/goods/goods.aspx?goodscode=" + viewToday.goods[0].gd_no + pos_code);
		goodsImage = viewToday.goods[0].img;
		noImageUrl = Public.getAppPath() + "/Img/no_image.gif";

		$get("rw_viewtoday1").innerHTML = "<a href=\"" + goodsUrl + "\"><img src=\"" + goodsImage + "\" alt=\"\" onError=\"this.src='" + noImageUrl + "'\"></a>";
		$get("rw_viewtoday1").style.display = "";
		$get("rw_viewtoday1").value = viewToday.goods[0].id;
	}
	if (viewToday.goods.length > 1) {
		goodsUrl = Public.getGoodsServerUrl("/goods/goods.aspx?goodscode=" + viewToday.goods[1].gd_no + pos_code);
		goodsImage = viewToday.goods[1].img;
		noImageUrl = Public.getAppPath() + "/Img/no_image.gif";

		$get("rw_viewtoday2").innerHTML = "<a href=\"" + goodsUrl + "\"><img src=\"" + goodsImage + "\" alt=\"\" onError=\"this.src='" + noImageUrl + "'\"></a>";
		$get("rw_viewtoday2").style.display = "";
		$get("rw_viewtoday2").value = viewToday.goods[1].id;
	}
	if (viewToday.goods.length > 2) {
		$("#up").bind("click", function(e) { Public.setRightWingChange("up"); return false; });
		$("#down").bind("click", function(e) { Public.setRightWingChange("down"); return false; });
	}
	else {
		$("#up").bind("click", function(e) { return false; });
		$("#down").bind("click", function(e) { return false; });
	}
	Public.initMoving(document.getElementById("quickInfo"), 58, 10, 450);
};
Public.setRightWingChange = function(action) {
	var viewToday = eval(__ViewToday);
	var first = $get("rw_viewtoday1").value;
	var last = $get("rw_viewtoday2").value;

	if (viewToday.goods.length < 3) return;
	if (action == "up") {
		if (first == 1) {
			first = viewToday.goods.length;
			last = 1;
			Public.setRightWingValue(first, last);
		} else if (first == viewToday.goods.length) {
			first = viewToday.goods.length - 1;
			last = viewToday.goods.length;
			Public.setRightWingValue(first, last);
		} else {
			--first;
			--last;
			Public.setRightWingValue(first, last);
		}
	}
	else if (action == "down") {
		if (last == viewToday.goods.length) {
			first = viewToday.goods.length;
			last = 1;
			Public.setRightWingValue(first, last);
		} else if (last == 1) {
			first = 1;
			last = 2;
			Public.setRightWingValue(first, last);
		} else {
			Public.setRightWingValue(++first, ++last);
		}
	}
};

Public.setRightWingValue = function(first, last) {
	var viewToday = eval(__ViewToday);
	var pos_code = "&pos_shop_cd=RC&pos_class_cd=111111111&pos_class_kind=T";
	--first;
	--last;
	//first
	goodsUrl1 = Public.getGoodsServerUrl("/goods/goods.aspx?goodscode=" + viewToday.goods[first].gd_no + pos_code);
	goodsImage1 = viewToday.goods[first].img;
	$get("rw_viewtoday1").innerHTML = "<a href=\"" + goodsUrl1 + "\"><img src=\"" + goodsImage1 + "\" alt=\"\"></a>";
	$get("rw_viewtoday1").style.display = "";
	$get("rw_viewtoday1").value = viewToday.goods[first].id;
	//last
	goodsUrl2 = Public.getGoodsServerUrl("/goods/goods.aspx?goodscode=" + viewToday.goods[last].gd_no + pos_code);
	goodsImage2 = viewToday.goods[last].img;
	$get("rw_viewtoday2").innerHTML = "<a href=\"" + goodsUrl2 + "\"><img src=\"" + goodsImage2 + "\" alt=\"\"></a>";
	$get("rw_viewtoday2").style.display = "";
	$get("rw_viewtoday2").value = viewToday.goods[last].id;
};
/* Quick Menu */
Public.initMoving = function(target, position, topLimit, btmLimit) {
	var currentPosition = parseInt($("#quickInfo").css("top"));
	$(window).scroll(function() {
		try {
			var position = $(window).scrollTop(); // 현재 스크롤바의 위치값을 반환합니다.
			$("#quickInfo").stop().animate({ "top": position + currentPosition + "px" }, 300); //jquery animate를 이용해서 날개 배너 scroll처리
		} catch (e) {
		}
	});
};
/* END Quick Menu */

var Layout = function() { };
/* Shop All Categories */
Layout.shopAllCate = function(obj) {
	if (!document.getElementsByTagName) return false;
	if (!document.getElementById) return false;
	if (!document.getElementById("detailList")) return false;

	var lists = document.getElementById("detailList");
	if (isCurrent == true) {
		lists.style.display = "block"
		obj.className = "dropdown on";
		isCurrent = false;
	} else {
		lists.style.display = "none"
		obj.className = "dropdown off";
		isCurrent = true;
	}
};
/* END Shop All Categories */

/* Layer Content */
Layout.layerContent = function(doID) {
	if (!document.getElementsByTagName) return false;
	if (!document.getElementById) return false;

	var showing = document.getElementById(doID);

	if (showing.style.display == "" || showing.style.display == "none") {
		showing.style.display = "block";

		showing.onmouseover = function() {
			showing.style.display = "block";
		}
		showing.onfocus = function() {
			showing.style.display = "block";
		}
		showing.onblur = function() {
			showing.style.display = "none";
		}
		showing.onmouseout = function() {
			showing.style.display = "none";
		}
	} else {
		showing.style.display = "none";
	}
};
/* END Layer Content */
/* Public.js End*/

/* RMSHelper.js */
var RMSHelper = function() { };
RMSHelper.getXMLHTTP = function() {
	if (window.XMLHttpRequest) return new XMLHttpRequest();
	var versions = [
	"MSXML2.XMLHTTP.6.0",
	"MSXML2.XMLHTTP.4.0",
	"Microsoft.XMLHTTP",
	"MSXML2.XMLHTTP.5.0",
	"MSXML2.XMLHTTP.3.0",
	"MSXML2.XMLHTTP"
	];
	for (var i = 0; i < versions.length; i++) {
		try {
			var oXMLHTTP = new ActiveXObject(versions[i]);
			return oXMLHTTP;
		}
		catch (e) { };
	}
	throw new Error("No XMLHTTP");
}
RMSHelper.callWebMethod = function(serviceName, methodName, argument) {
	var svc = serviceName + "/" + methodName;
	if (!argument) argument = "";

	var xmlHttp = RMSHelper.getXMLHTTP();
	xmlHttp.open("POST", svc, false);
	xmlHttp.setRequestHeader('Content-Type', 'application/json');

	xmlHttp.send(argument);

	var result = null;
	try {
		result = eval("(" + xmlHttp.responseText + ")");
	}
	catch (ex) { }

	if (result.ExceptionType != undefined) {
		alert(result.Message);
		throw result;
	}

	if (result.d != undefined)
		return result.d;
	return result;
}
RMSHelper.asyncCallWebMethod = function(serviceName, methodName, argument, callBackFunction) {
	var svc = serviceName + "/" + methodName;
	var xmlHttpasync = null;

	xmlHttpasync = RMSHelper.getXMLHTTP();

	if (!argument) argument = "";
	xmlHttpasync.open("POST", svc, true);
	xmlHttpasync.setRequestHeader('Content-Type', 'application/json');
	xmlHttpasync.onreadystatechange = function() {
		if (xmlHttpasync.readyState == 4) {
			var result = null;
			try {
				result = eval("(" + xmlHttpasync.responseText + ")");
			} catch (ex) { }
			try {
				if (result.ExceptionType != undefined) {
					alert(result.Message);
					throw result;
				}
				if (result.d != undefined)
					result = result.d;
			} catch (ex) { }
			callBackFunction(result, svc, methodName, xmlHttpasync);
		}
	};
	xmlHttpasync.send(argument);
}
var RMSParam = function() {
	this._pl = new Array();
}
RMSParam.prototype.add = function(name, value) {
	this._pl[name] = value;
	return this;
}
RMSParam.prototype.toXml = function() {
	var xml = "";
	for (var p in this._pl) {
		if (typeof (this._pl[p]) != "function")
			xml += "<" + p + ">" + this._pl[p].toString().replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;") + "</" + p + ">";
	}
	return xml;
}
RMSParam.prototype.toJson = function() {
	var query = "";
	for (var p in this._pl) {
		if (typeof (this._pl[p]) != "function") {
			if (query.length > 0)
				query += ",";

			query += "\"" + p + "\"" + ":\"" + this._pl[p].toString().replace(/"/g, "\\\"") + "\"";
		}
	}
	return "{" + query + "}";
}
/* RMSHelper.js End*/
