var stateCodeList = new Array(); 
var stateNameList = new Array();
stateCodeList = ['AL','AK','AZ','AR','CA','CO','CT','DE','DC','FL','GA','HI','ID','IL','IN','IA','KS','KY','LA','ME','MD','MA','MI','MN','MS','MO','MT','NE','NV','NH','NJ','NM','NY','NC','ND','OH','OK','OR','PA','RI','SC','SD','TN','TX','UT','VT','VA','WA','WV','WI','WY']
stateNameList = ['Alabama','Alaska','Arizona','Arkansas','California','Colorado','Connecticut','Delaware','District of Columbia','Florida','Georgia','Hawaii','Idaho','Illinois','Indiana','Iowa','Kansas','Kentucky','Louisiana','Maine','Maryland','Massachusetts','Michigan','Minnesota','Mississippi','Missouri','Montana','Nebraska','Nevada','New Hampshire','New Jersey','New Mexico','New York','North Carolina','North Dakota','Ohio','Oklahoma','Oregon','Pennsylvania','Rhode Island','South Carolina','South Dakota','Tennessee','Texas','Utah','Vermont','Virginia','Washington','West Virginia','Wisconsin','Wyoming'];

function setStateList(objID,selValue){
	for(i=0;i<stateCodeList.length;i++){
		AddOption(objID,stateCodeList[i],stateNameList[i]);
	}
	SetSelectOption(objID,selValue);
}



// ============================ Cookie °ü·Ã ÇÔ¼ö =============================0
function delCookie(name,value,expires,path,domain,secure) {
  document.cookie = name + "=" + escape (value) +
	((expires) ? "; expires=" + expires : "") +
	((path) ? "; path=" + path : "") +
	((domain) ? "; domain=" + domain : "") +
	((secure) ? "; secure" : "");
}

function setCookie (name,value,expires,path,domain,secure) {
  document.cookie = name + "=" + escape (value) +
	((expires) ? "; expires=" + expires.toGMTString() : "") +
	((path) ? "; path=" + path : "") +
	((domain) ? "; domain=" + domain : "") +
	((secure) ? "; secure" : "");
}

function getCookieVal (offset) {
	var endstr = document.cookie.indexOf (";", offset);
	if (endstr == -1)
		endstr = document.cookie.length;
	return unescape(document.cookie.substring(offset, endstr));
}
function getCookie(name) {
	var arg = name + "=";
	var alen = arg.length;
	var clen = document.cookie.length;
	var i = 0;
	while (i < clen) {
		var j = i + alen;
		if (document.cookie.substring(i, j) == arg)
			return getCookieVal (j);
		i = document.cookie.indexOf(" ", i) + 1;
		if (i == 0) break;
	}
	return "";
}


function setCookieA(name,name2,value,expire,domain){
	var string=getCookie(name);

	var newStr = "";
	var flag=string.indexOf(name2 + '=');
	if (flag == -1){
		newStr= string + "&" + name2 + "=" + escape(value);
	}else{
		var cookieArr = string.split("&");
		for(i=0;i<cookieArr.length;i++){
			if(i>0) newStr += "&";
			if(cookieArr[i].split("=")[0]==name2)
				newStr += name2 + "=" + escape(value);
			else{
				newStr += cookieArr[i].split("=")[0] + "=" + escape(cookieArr[i].split("=")[1]);
			}
		}
	}
	document.cookie = name + "=" + newStr  //ÄíÅ°ÀúÀå
		+ ((expire) ? ";expires=" + expire.toGMTString() : "")
		+ ((domain) ? "; domain=" + domain : "");
}


function getCookieA(uName,uName2){		//ÄíÅ°¿­ Áß¿¡ uName2ÀÇ °ªÀ» ±¸ÇÑ´Ù
	var string = getCookie(uName);

	var cookieArr = string.split("&");
	for(i=0;i<cookieArr.length;i++){
		if(cookieArr[i].split("=")[0]==uName2)
			return unescape(cookieArr[i].split("=")[1]);
	}
	return "";
}
// ============================ Cookie °ü·Ã ÇÔ¼ö =============================0


// Hashtable
function Hashtable(){
	this.i = 0;
	this.itemName  = new Array();
	this.itemValue = new Array();
	this.count = 0;

	this.add = function () {
		var txtName = arguments[0];
		var txtValue = arguments[1];
		this.itemName[this.count]  = txtName;
		this.itemValue[this.count] = txtValue;
		this.count++;
	};

	this.get = function () {
		var txtName = arguments[0];
		var i;
		for(i=0;i<this.count;i++){
			if(this.itemName[i]==txtName){
				return this.itemValue[i];
			}
		}
		return null;
	};

	this.clear = function () {
		this.itemName = new Array();
		this.itemValue = new Array();
		this.count = 0;
	};
}





// ReplaceÇÔ¼ö
function replace(str,otxt,rtxt){
	if(otxt==rtxt) return str;
	while(str.indexOf(otxt)>0){
		str = str.replace(otxt,rtxt);
	}
	return str;
}

String.prototype.trim = function(){
	return this.replace(/(^\s*)|(\s*$)/gi, "");
}
String.prototype.replaceAll = function(str1, str2){
	var temp_str = "";

	if(this.trim() != "" && str1 != str2){
		temp_str = this.trim();
		while (temp_str.indexOf(str1) > -1){
			temp_str = temp_str.replace(str1, str2);
		}
	}
	return temp_str;
}


// select boxÀÇ ¿É¼Çµé ¾ø¾Ö±â
function DelOption(objname){
	var obj = document.getElementById(objname);
	while (obj.length>=1)
		obj.options[0]=null;
}

// select box¿¡ option Ãß°¡
function AddOption(objname,value,strtext){
	var obj = document.getElementById(objname);
	var optobj = new Option(strtext,value,true);
	obj.options[obj.length]=optobj;
}

// select boxÀÇ Æ¯Á¤ option ¼±ÅÃ
function SetSelectOption(objname,selectvalue){
	var obj = document.getElementById(objname);
	var i;

	for(i=0;i<obj.length;i++){
		if(obj.options[i].value==selectvalue){
			obj.options[i].selected = true;
			return;
		}
	}
}



// ÆË¾÷Ã¢ ¶ç¿ì±â
function popupWindow(Url,windowName,Width,Height,scroll){
   if((scroll==null) || (scroll=="")){
	   scroll = "no";
   }
   var win = window.open(Url,windowName,"toolbar=no,location=no,directory=no,status=no,menubar=no,scrollbars="+ scroll +",resizable=no,top=50,left=50,width="+ Width +",height="+ Height);
   if(win!=null) win.focus();
}

// ÆË¾÷Ã¢ ¶ç¿ì±â(top, left Ãß°¡)
function popupWindow2(Url,windowName,Top,Left,Width,Height,scroll){
   if((scroll==null) || (scroll=="")){
	   scroll = "no";
   }
   var win = window.open(Url,windowName,"toolbar=no,location=no,directory=no,status=no,menubar=no,scrollbars="+ scroll +",resizable=no,top="+Top+",left="+Left+",width="+ Width +",height="+ Height);
   if(win!=null) win.focus();
}


// ¿øº»¹®ÀÚ¿­¿¡¼­ ÁöÁ¤ÇÑ ¹®ÀÚ¿­ÀÇ °¹¼ö
function StringCount(sourceStr,findstr){
	var result = 0;
	var tmp = "";
	tmp = sourceStr;
	while(tmp.indexOf(findstr)>=0){
		result++;
		tmp = tmp.substring(tmp.indexOf(findstr)+1,tmp.length);
	}
	return result;
}


// ¹ÙÀÌÆ® ¼ö
function getByte(strtext){
	var str = new String(strtext);
	var len = str.length;
	var k,temp,count=0;

	for (k=0 ; k<len ; k++){
		temp = str.charAt(k);
		if (escape(temp).length > 4){
			count += 2;
		}else if (temp == 'r' && str.charAt(k+1) == 'n') { // rnÀÏ °æ¿ì
			count += 2;
		}else if (temp != 'n') {
			count++;
		}
	}
	return count;
}


function CheckEssential(formobj, obj){
	var i;
	var tmpcnt;

	getObjCnt = function(obj, name){
		return (obj.select)?obj.select('input[name='+name+']').length:0;
	}

	if((obj.type=="text") || (obj.type=="file") || (obj.type=="hidden") || (obj.type=="textarea") || (obj.type=="password")){
		if(obj.value.trim()=='')
			return false;
		else
			return true;
	}else if(obj.type=="select-one"){
		if(obj.value=='')
			return false;
		else
			return true;

	}else if(obj.type=="radio"||obj.type=="checkbox"){
		tmpcnt = getObjCnt(formobj, obj.name);
		if(tmpcnt==1){
			return obj.checked;
		}else if(tmpcnt>1){
			for(i=0;i<tmpcnt;i++){
				if(eval("document." + formobj.name + "." + obj.name + "[" + i + "]").checked){
					return true;
				}
			}
			return false;
		}
		return true;
	}
}

function CheckMinLen(obj,minlen){
	if(getByte(obj.value)<minlen)
		return false;
	else
		return true;
}

function CheckMaxLen(obj,maxlen){
	if(getByte(obj.value)>maxlen)
		return false;
	else
		return true;
}

function CheckNumeric(obj){
	if(isNaN(obj.value))
		return false;
	else
		return true;
}

function CheckEmail(obj){
	//if(!/^([0-9a-zA-Z_-]+)@([0-9a-zA-Z_-]+)(\.[0-9a-zA-Z_-]+){1,3}$/.test(obj.value))
	if(!/^([0-9a-zA-Z_\.-]+)@([0-9a-zA-Z_\.-]+)\.([a-zA-Z\.]{2,6})$/.test(obj.value))
		return false;
	else
		return true;
}

function SetErrorClass(o, f){
	try{
		if($("err_message")){
			$("err_message").update(f);
			$("err_message").style.display = "block";
			return true;
		}
		if(o.siblings) {
			for(var i=0;i<o.siblings().length;i++){
				if(o.siblings()[i].className.indexOf('error')>-1) {
					var e=o.siblings()[i];
					//if(typeof f=='function') eval(f);
					if(typeof f=='string') e.innerHTML = f;
					(e.className.indexOf('warn')==-1)?e.className+=' warn':e.className=e.className;
					return true;
				}
			}
		}
		if(f) alert( f );
	}catch(e){ if(f) alert( f ); }
	return false;
}

function CheckValid(formobj,obj){
	var tmpstr = '';
	var r_textmsg = '';
	var r_objname = '';
	var r_minlen  = 0;
	var r_maxlen  = 0;
	var r_essent  = false;
	var r_numeric = false;
	var r_equalto = '';
	var r_email   = false;

	var txtvalid = obj.getAttribute("valid");
	for(var i=0;i<txtvalid.split("|").length;i++){
		tmpstr = txtvalid.split("|")[i];
		if(tmpstr.substring(0,1)=="T"){        // ÀÔ·ÂÇ×¸ñ ÀÌ¸§ (Object Name)
			r_objname = tmpstr.split("=")[1];
		}else if(tmpstr.substring(0,1)=="t"){  // ÅØ½ºÆ® ¸Þ¼¼Áö (Text Message)
			r_textmsg = tmpstr.split("=")[1];
		}else if(tmpstr.substring(0,1)=="m"){  // ÃÖ¼Ò±æÀÌ (Min. Length)
			r_minlen = tmpstr.split("=")[1];
		}else if(tmpstr.substring(0,1)=="M"){  // ÃÖ´ë±æÀÌ (Max. Length)
			r_maxlen = tmpstr.split("=")[1];
		}else if(tmpstr.substring(0,1)=="E"){  // ÇÊ¼öÇ×¸ñÀÓ (Required)
			r_essent = true;
		}else if(tmpstr.substring(0,1)=="N"){  // ¼ýÀÚ¸¸ ÀÔ·Â°¡´É (Numeric)
			r_numeric = true;
		}else if(tmpstr.substring(0,1)=="C"){  // ¿Ã¹Ù¸¥ ÀÌ¸ÞÀÏÀÎÁö È®ÀÎ (Correct Email)
			r_email = true;
		}else if(tmpstr.substring(0,1)=="S"){  // ´Ù¸¥ Ç×¸ñ°ú ÀÏÄ¡ (Same)
			r_equalto = tmpstr.split("=")[1];
		}
	}
	var txterror = obj.getAttribute("errortext");
	if(txterror==null) txterror='';
	if(r_essent){
		if(!CheckEssential(formobj,obj)){
			if(r_objname=='') r_objname='This field';
			SetErrorClass(obj, ((txterror!='')?txterror:r_objname+" is required") );
			if(obj.type!="hidden") obj.focus();
			return false;
		}else{ SetErrorClass(obj,''); }
	}
	if(parseInt(r_minlen)>0){
		if(!CheckMinLen(obj,r_minlen)){
			SetErrorClass(obj, ((txterror!='')?txterror:'Minimum length for "' + r_objname + '" is '+ r_minlen +' bytes. Current: ' + getByte(obj.value) + ' bytes') );
			if(obj.type!="hidden") obj.focus();
			return false;
		}else{ SetErrorClass(obj,''); }
	}
	if(parseInt(r_maxlen)>0){
		if(!CheckMaxLen(obj,r_maxlen)){
			SetErrorClass(obj, ((txterror!='')?txterror:'Maximum length for "' + r_objname + '" is '+ r_maxlen +' bytes. Current: ' + getByte(obj.value) + ' bytes') );
			if(obj.type!="hidden") obj.focus();
			return false;
		}else{ SetErrorClass(obj,''); }
	}
	if(r_numeric){
		if(!CheckNumeric(obj)){
			SetErrorClass(obj, ((txterror!='')?txterror:'<strong>'+ r_objname +'<\/strong> is numeric only') );
			if(obj.type!="hidden") obj.focus();
			return false;
		}else{ SetErrorClass(obj,''); }
	}
	if(r_email&&obj.value!=''){
		if(!CheckEmail(obj)){
			SetErrorClass(obj, ((txterror!='')?txterror:'Enter valid e-mail address') );
			if(obj.type!="hidden") obj.focus();
			return false;
		}else{ SetErrorClass(obj,''); }
	}
	if(r_equalto!=''){
		if(obj.value!=document.getElementById(r_equalto).value){
			SetErrorClass(obj, ((txterror!='')?txterror:'The input field does not match') );
			if(obj.type!="hidden") obj.focus();
			return false;
		}else{ SetErrorClass(obj,''); }
	}
	return true;
}

// ÀÔ·Â°ªµé Ã¼Å©ÈÄ¿¡ true,false ¸®ÅÏ
function CheckForm(formobj){
	with(formobj){
		for(var i=0; i<elements.length; i++) {
			var valid = elements[i].getAttribute("valid");
			if(valid!=null){
				var ret = CheckValid(formobj,elements[i]);
				if(ret==false) return ret;
			}
		}
		return true;
	}
}


function ReplaceString(sTxt,sFindTxt1,sFindTxt2,sReplaceStr){
	var iLoc1 = sTxt.indexOf(sFindTxt1);
	if(iLoc1 < 0){
		return sTxt;
	}
	var	sTmp1 = sTxt.substring( 0,iLoc1 + sFindTxt1.length);
	var	sTmp2 = sTxt.substring(iLoc1+sFindTxt1.length );

	var	iCnt = sTmp2.indexOf(sFindTxt2);
	if(iCnt < 0 ){
		return sTxt;
	}

	var	sTmp3 = sTmp2.substring(iCnt);
	var	sTmp2 = sTmp2.substring(0,iCnt);
	return sTmp1 + sReplaceStr + sTmp3;
}

function getStrBetween(sTxt,sStartTag,sEndTag){
	var iLoc1 = sTxt.indexOf(sStartTag);
	var iLoc2 = sTxt.indexOf(sEndTag);

	return sTxt.substring(iLoc1,iLoc2-iLoc1+1);
}


function flash(url, width, height){
	document.write("<object classid='clsid:d27cdb6e-ae6d-11cf-96b8-444553540000' codebase='http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0' width='"+ width +"' height='"+ height +"' align='middle'>");
	document.write("<param name='allowScriptAccess' value='always' />");
	document.write("<param name='movie' value='"+ url +"' />");
	document.write("<param name='quality' value='high' />");
	document.write("<param name='wmode' value='transparent' />");
	document.write("<param name='bgcolor' value='#ffffff' />");
	document.write("<embed src='"+ url +"' quality='high' wmode='transparent' bgcolor='#ffffff' width='"+ width +"' height='"+ height +"' name='' allowScriptAccess='always' align='middle' type='application/x-shockwave-flash' pluginspage='http://www.macromedia.com/go/getflashplayer' />");
	document.write("</object>");
}

function mediaPlayer(url,width,height){
	document.write("<object id='objMediaPlayer1' classid='CLSID:22D6f312-B0F6-11D0-94AB-0080C74C7E95' style='FILTER:blue;LEFT:0px; WIDTH:"+ width +"px; TOP:0px; HEIGHT: "+ height +"px'>");
	document.write("<param name='windowlessVideo' value='1'>");
	document.write("<param name='AutoStart' value='true'>");
	document.write("<param name='TransparentAtStart' value='True'>");
	document.write("<param name='ShowControls' value='1'>");
	document.write("<param name='ShowStatusBar' value='1'>");
	document.write("<param name='FileName' value='"+ url +"'>");
	document.write("</object>");
}

function fGetXY(aTag){
	var oTmp = aTag;
	var pt = new Point(0,0);
	do{
		pt.x += oTmp.offsetLeft;
		pt.y += oTmp.offsetTop;
		oTmp = oTmp.offsetParent;
	}while(oTmp.tagName!="BODY");
	return pt;
}


function Point(iX, iY){
	this.x = iX;
	this.y = iY;
}


function displayLayer(id, pCtrlID, leftmargin, topmargin){
	if(typeof pCtrlID == "string")
		var pCtrlObj = document.getElementById(pCtrlID);
	else
		var pCtrlObj = pCtrlID;

	var layerPoint = this.fGetXY(pCtrlObj);

	with (document.getElementById(id).style) {
		left = (layerPoint.x + leftmargin) +'px';
		top  = (layerPoint.y + pCtrlObj.offsetHeight + topmargin) +'px';
		display = 'block';
	}
}

function setPng24(obj) { 
var request_os = window.navigator.userAgent; 
var os_array = request_os.split(";"); 

if(os_array[1] != " MSIE 7.0") { 
obj.width=obj.height=1; 
obj.className=obj.className.replace(/png24/i,''); 
obj.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+ obj.src +"',sizingMethod='image');"; 
obj.src=''; 
} 

return ''; 
}

//#############################################################
// ajax°ü·Ã ¸ðµâ
//#############################################################
function getAjaxPage(url, targetDiv, callBackFuc, execScript){	
	if(execScript==null) execScript = true;
	var myAjax = new Ajax.Updater(
		{success: targetDiv},
		url, {
			method: 'get',
			evalScripts: execScript,
			onComplete: callBackFuc
		}
	);
}



function getAjaxResponse(url, callBackFuc){
	new Ajax.Request(
			url, 
			{
				onSuccess: callBackFuc
			}
		); 
}

function getAjaxResponseSync(url, callBackFuc){
	new Ajax.Request(
			url, 
			{
				asynchronous: false,
				onSuccess: callBackFuc
			}
		); 
		
}

function getPage(url, targetDiv){
	var xmlObj = createHttpRequest();
	if(!xmlObj) return "Your browser is not supported";

	xmlObj.onreadystatechange = function(){
		if(xmlObj.readyState == 4) {
			if(xmlObj.status == 200) {
				document.getElementById(targetDiv).innerHTML = xmlObj.responseText;
			}
		}
	}
	xmlObj.open("GET", url);  // ºñµ¿±â¸ðµå
	xmlObj.send(null);
}


function createHttpRequest(){
	if(window.ActiveXObject){
		try{
			return new ActiveXObject("Msxml2.XMLHTTP");
		}catch(e){
			try{
				return new ActiveXObject("Microsoft.XMLHTTP");
			}catch(e2){
				return null;
			}
		}
	}else if(window.XMLHttpRequest){
		return new XMLHttpRequest();
	}else{
		return null;
	}
}



function getXMLDOM(httpObj) {
	var xmlDoc;
	if(window.ActiveXObject) {
		xmlDoc = httpObj.responseXML;
	} else {
		var parser = new DOMParser();
		xmlDoc = parser.parseFromString(httpObj.responseText, "text/xml");
	}
	return xmlDoc;
}

var xmlHttpObj = null;
function loadXml(url, funcObj){
	xmlHttpObj = createHttpRequest();
	if(!xmlHttpObj) return "Your browser is not supported";

	xmlHttpObj.onreadystatechange = function(){
		if(xmlHttpObj.readyState == 4) {
			if(xmlHttpObj.status == 200) {
				eval(funcObj);
			}
		}
	}
	xmlHttpObj.open("GET", url);  // ºñµ¿±â¸ðµå
	xmlHttpObj.send(null);
}

//#############################################################


// the date format prototype
Date.prototype.format = function(f){
	if (!this.valueOf())
		return ' ';

	var d = this;

	return f.replace(/(yyyy|mmmm|mmm|mm|dddd|ddd|dd|hh|nn|ss|a\/p)/gi,
		function($1){
			switch ($1.toLowerCase()){
				case 'yyyy': return d.getFullYear();
				case 'mm':   return ((d.getMonth() + 1)<10 ? '0'+ (d.getMonth() + 1) : (d.getMonth() + 1));
				case 'dd':   return (d.getDate()<10 ? '0'+ d.getDate() : d.getDate());
				case 'hh':   return ((h = d.getHours() % 12) ? h : 12);
				case 'nn':   return d.getMinutes();
				case 'ss':   return d.getSeconds();
			}
		}
	);
}



function showTab(groupid, idx){
	var tabImg = $(groupid).select("img[class=tabImg]");
	var tabContent = $(groupid).select("[class=tabContent]");

	for(i=0;i<tabImg.length;i++){
		if(tabImg[i].src.indexOf("_on")>0){ 
			tabImg[i].src = tabImg[i].src.replaceAll("_on","_off");
			if(tabContent.length>=idx) tabContent[i].hide();
		}
	}
	if(tabContent.length>=idx) tabContent[idx-1].show();
	tabImg[idx-1].src = tabImg[idx-1].src.replaceAll("_off","_on");
}


Number.prototype.toFixed = function(precision){
	var num = (Math.round(this*Math.pow(10,precision))).toString();
    return num.substring(0,num.length-precision) + "." + 
    num.substring(num.length-precision, num.length);
}


function add_commas(nStr){
	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + ',' + '$2');
	}
	return x1 + x2;
}


function Login(BackURL){
	if(BackURL==null || BackURL=="") BackURL = escape(location.href)
	location = "/member/login.asp?BackURL="+ BackURL; 
}

function findPos (obj) {
    //find coordinates of a DIV
    var curleft = curtop = 0;
    if (obj.offsetParent) {
        curleft = obj.offsetLeft
        curtop = obj.offsetTop
        while (obj = obj.offsetParent) {
            curleft += obj.offsetLeft
            curtop += obj.offsetTop
        }
    }
    return [curleft, curtop];
}

