var Class = {
  create: function() {
    return function() {
      this.initialize.apply(this, arguments);
    }
  }
}

/*** 기본 함수 ***/
function $(o){ return document.getElementById(o); }
function evalJSON(str){ return eval('(' + str + ')'); }
function getInnerText(o){ return o.textContent ? o.textContent : o.innerText; }

/*** 이벤트 추가 ***/
function bindEvent(element, event, callback){
	if (element.addEventListener) element.addEventListener(event, callback, false); 
	else if (element.attachEvent) element.attachEvent("on" + event, callback);
}

/*** 플래시 보정 ***/
function embed(src,width,height,vars){
	document.write('\
	<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" WIDTH="'+width+'" HEIGHT="'+height+'">\
	<PARAM NAME=movie VALUE="'+src+'">\
	<PARAM NAME=quality VALUE=high>\
	<PARAM NAME=wmode VALUE=transparent>\
	<PARAM NAME=bgcolor VALUE=#FFFFFF>\
	<PARAM NAME=allowScriptAccess VALUE="always">\
	<param name=flashvars value="' + vars + '">\
	<EMBED src="'+src+'" quality=high bgcolor=#FFFFFF wmode=transparent allowScriptAccess=always WIDTH="'+width+'" HEIGHT="'+height+'" TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer" flashvars="' + vars + '"></EMBED>\
	</OBJECT>\
	');
}

/*** 콤마 출력 ***/
function comma(input){
	//var input = String(input); 
	input = String(uncomma(input));
	var reg = /(\-?\d+)(\d{3})($|\.\d+)/; 
	if (reg.test(input)){ 
		return input.replace(reg, function(str, p1,p2,p3){ 
				return comma(p1) + "," + p2 + "" + p3; 
			}     
		);
	} else { 
		return input;
	}
}

/*** 콤마 미출력 ***/
function uncomma(x){
	var reg = /(,)*/g;
	x = parseInt(String(x).replace(reg,""),10);
	return (isNaN(x)) ? 0 : x;
}

/*** 우편번호 팝업 ***/
function popupZipcode(rfunc){
	if (!rfunc) rfunc = "zipcode_return";
	window.open('/module/zipcode.php?rfunc='+rfunc,'','width=400,height=350,scrollbars=0');
}
function zipcode_return(){
	var fm = document.fm;
	var zipcode = arguments[0].split("-");
	fm['zipcode[]'][0].value = zipcode[0];
	fm['zipcode[]'][1].value = zipcode[1];
	fm.address.value = arguments[1];
	if (fm.address_sub){
		fm.address_sub.value = "";
		fm.address_sub.focus();
	} else {
		fm.address.focus();
		fm.address.value += " ";
	}
}

/*** 오브젝트 위치 ***/
function get_objectTop(obj){
	if (obj.offsetParent==document.body || obj==document.body) return obj.offsetTop;
	else return obj.offsetTop + get_objectTop(obj.offsetParent);
}
function get_objectLeft(obj){
	if (obj.offsetParent==document.body) return obj.offsetLeft;
	else return obj.offsetLeft + get_objectLeft(obj.offsetParent);
}

/*** 쿠키 ***/
function getCookie( name ){
	var nameOfCookie = name + "=";
	var x = 0;
	while ( x <= document.cookie.length ){
		var y = (x+nameOfCookie.length);
		if ( document.cookie.substring( x, y ) == nameOfCookie ) {
			if ( (endOfCookie=document.cookie.indexOf( ";", y )) == -1 )
			endOfCookie = document.cookie.length;
			return unescape( document.cookie.substring( y, endOfCookie ) );
		}
		x = document.cookie.indexOf( " ", x ) + 1;
		if ( x == 0 ) break;
	}
	return "";
}

function setCookie (name, value) { 
	var argv = setCookie.arguments;
	var argc = setCookie.arguments.length;
	var expires = (2 < argc) ? argv[2] : null;
	var path = (3 < argc) ? argv[3] : null;
	var domain = (4 < argc) ? argv[4] : null;
	var secure = (5 < argc) ? argv[5] : false;
	document.cookie = name + "=" + escape (value) + ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) + ((path == null) ? "" : ("; path=" + path)) + ((domain == null) ? "" : ("; domain=" + domain)) + ((secure == true) ? "; secure" : "");
}

/*** 체크박스 일괄 변경 ***/
function chkrev(El,mode) {
	if (!El) return;
	if (typeof(mode)=="undefined") mode = "rev";
	if (typeof(El)!="object") El = document.getElementsByName(El);
	for (i=0;i<El.length;i++){
		El[i].checked = (mode=='rev') ? !El[i].checked : mode;
		if (El[i].disabled) El[i].checked = false;
	}
}

function isChked(El,msg) {
	if (!El) return;
	if (typeof(El)!="object") El = document.getElementsByName(El);
	if (El) for (i=0;i<El.length;i++) if (El[i].checked) var isChked = true;
	if (isChked) return (msg) ? confirm(msg) : true;
	else {
		alert ("선택된 사항이 없습니다");
		return false;
	}
}

/*** iframe 높이조절 ***/
/**
function resizeHeight(obj) {
	var frbody = obj.contentWindow.document.body;
	obj.style.height = frbody.scrollHeight + ( frbody.offsetHeight - frbody.clientHeight + 30);
}
**/
function resizeHeight(obj) {
	var frbody = obj.contentWindow.document.body;
	var height = frbody.scrollHeight + ( frbody.offsetHeight - frbody.clientHeight + 30);
	//$j(obj).css("height",height);
	$j(obj).height(height);
}

function alertLayer(obj){
	var bg = document.createElement("div");

	with (bg.style){
		position = "absolute";
		zIndex = 99;
		left = 0;
		top = 0;
		width = document.body.clientWidth+"px";
		height = (document.body.clientHeight>document.body.scrollHeight) ? document.body.clientHeight+"px" : document.body.scrollHeight+"px";
		//height = "100%";
		backgroundColor = "#000000";
		filter = "Alpha(Opacity=30)";
		opacity = "0.3";
	}
	
	bg.setAttribute("id","popupLayerBg");
	document.body.appendChild(bg);

	var o = document.createElement("div");
	o.setAttribute("id","popupLayer");
	document.body.appendChild(o);

	with (o.style){
		background = "#FFFFFF";
		width = "446px";
		position = "absolute";
		zIndex = 100;
		left = "390px";
		top = "200px";
		border = "8px solid #616161";
	}
	o.innerHTML = obj.innerHTML;
}

function nClickPid(clickPid){
	var clickContents = $j("li[goodsno=" + clickPid + "]");
	if( !clickContents ) return;
	var clickContentsTop = $j(clickContents).offset().top - 10;
	if( !clickContentsTop) return;
	window.scrollTo(0, clickContentsTop);
	//$j(clickContents).addClass("nClickPid");

	var borderObj = $j("#POS_nClickPid");
	var x = $j(clickContents).offset().left;
	var y = $j(clickContents).offset().top;
	//$j(borderObj).css("border","2px solid #1dc409");
	$j(borderObj).css("left",x);
	$j(borderObj).css("top",y);
	$j(borderObj).css("width",$j(clickContents).width());
	$j(borderObj).css("height",$j(clickContents).height());

	var sticker = $j("#POS_nClickPid_IMG");
	$j(sticker).css("left",x - 20);
	$j(sticker).css("top",y);
}
