function addLoadEvent(func) {
	var oldonload = window.onload;
	if (typeof window.onload != 'function') {
		window.onload = func;
	} else {
		window.onload = function() {
			oldonload();
			func();
		}
	}
}

//로그아웃
function logout() {
	if( confirm("보안을 위해 창을 닫아야 완전히 로그아웃이 됩니다.\n창을 닫으시겠습니까?") ) {
		self.close();
	}
}

function importScript(url){
    var tag = document.createElement("script");
    tag.type="text/javascript";
    tag.src = url;
    document.body.appendChild(tag);
}

//object 가져오기
//http://www.howtocreate.co.uk/tutorials/javascript/dhtml
function getRefToDiv(divID,oDoc) {
  if( document.getElementById ) {
    return document.getElementById(divID); }
  if( document.all ) {
    return document.all[divID]; }
  if( !oDoc ) { oDoc = document; }
  if( document.layers ) {
    if( oDoc.layers[divID] ) { return oDoc.layers[divID]; } else {
      //repeatedly run through all child layers
      for( var x = 0, y; !y && x < oDoc.layers.length; x++ ) {
        //on success, return that layer, else return nothing
        y = getRefToDiv(divID,oDoc.layers[x].document); }
    return y; } }
  return false;
}

//메뉴보이기
 function showMenu( id ) {
	var divMenu = getRefToDiv("menu"+id);
	  if( divMenu.style ) {
		divMenu.style.visibility = 'visible';
	  } else {
		divMenu.visibility = 'show';
	  }
 }

//메뉴감추기
 function hiddenMenu( id ) {
	var divMenu = getRefToDiv("menu"+id);
	  if( divMenu.style ) {
		divMenu.style.visibility = 'hidden';
	  } else {
		divMenu.visibility = 'hidden';
	  }
 }

//이미지메뉴 on/off
function onImgMenu( id ) {
	var img = getRefToDiv(id);
	if( img != null && typeof(img) != "undefined" ) {
		var src = img.src;
		if( src.indexOf("_off") ) img.src = (img.src).replace("_off", "_on");
	}
}

function offImgMenu( id ) {
	var img = getRefToDiv(id);
	if( img != null && typeof(img) != "undefined" ) {
		var src = img.src;
		if( src.indexOf("_on") ) img.src = (img.src).replace("_on", "_off");
	}
}

var thisTabImgBtn;
function tabImgBtn( imgName ) {
	var img = document.getElementById(imgName);
	if( img != null && typeof(img) != "undefined" ) {
		var src = img.src;
		if( src.indexOf("off") ) img.src = src.replace(/\_off/g, "_on");
	
		//이전버튼 off상태로 돌리기
		if( thisTabImgBtn && thisTabImgBtn != imgName ) {
			img1 = document.getElementById(thisTabImgBtn);
			img1.src = (img1.src).replace(/\_on/g, "_off");
		}
		
		thisTabImgBtn = imgName;
	}
}

var thisTabImgBtnIn1;
function tabImgBtnIn1( name ) {
	var img = document.getElementById(name);
	if( img != null && typeof(img) != "undefined" ) {
		var src = img.src;
	
		if( src.indexOf("off") ) {
			img.src = (img.src).replace("off", "on");
		}
	
		//이전버튼 off상태로 돌리기
		if( thisTabImgBtnIn1 && thisTabImgBtnIn1 != name ) {
			img = document.getElementById(thisTabImgBtnIn1);
			src = img.src;
			img.src = (img.src).replace("on", "off");
		}
		
		thisTabImgBtnIn1 = name;
	}
}

var thisTabImgBtnPng;
function tabImgBtnPng( imgName ) {
	var img = document.getElementById(imgName);
	if( img != null && typeof(img) != "undefined" ) {
		var src = img.src;
		if( src.indexOf("off") ) img.src = src.replace(/\_off/g, "_on");
	
		//이전버튼 off상태로 돌리기
		if( thisTabImgBtn && thisTabImgBtnPng != imgName ) {
			img1 = document.getElementById(thisTabImgBtnPng);
			img1.src = (img1.src).replace(/\_on/g, "_off");
		}
		
		thisTabImgBtnPng = imgName;
	}
}


function showTab( total, id ) {
	for(var i=1;i<=total;i++) {
		var obj = document.getElementById("tab"+i);
		if( i == id ) {
			obj.style.display = "block";
		} else {
			obj.style.display = "none";
		}
	}
}

function showTabFade( total, id ) {
	showTab(total, id);
	Spry.Effect.DoFade("tab"+id,{ duration: 600, from: 0, to: 100 });
}

function showFade( id, speed ) {
	if( typeof(speed) == "undefined" ) speed = 600;
	//Spry.Effect.DoFade(id,{ duration: speed, from: 0, to: 100, finish:hideLoading });
	Spry.Effect.DoFade(id,{ duration: speed, from: 0, to: 100 });
	hideLoading();
}

function hideLoading() {
	if( document.getElementById("loading") )
		document.getElementById("loading").style.display = "none";
}

function btnOver( name, type ) {
	var img = document.getElementById(name);

	if( type == "on" ) img.src = (img.src).replace("off", "on");
	if( type == "off" ) img.src = (img.src).replace("on", "off");
}

function trim(stringToTrim) {
	return stringToTrim.replace(/^\s+|\s+$/g,"");
}
function ltrim(stringToTrim) {
	return stringToTrim.replace(/^\s+/,"");
}
function rtrim(stringToTrim) {
	return stringToTrim.replace(/\s+$/,"");
}

/* 위치와 크기 */
var mousex = 0;
var mousey = 0;
var objMousex = 0;
var objMousey = 0;
var objWidth = 0;
var objHeight = 0;

//http://dunnbypaul.net/js_mouse/
function getMouseXY(e) // works on IE6,FF,Moz,Opera7
{ 
	if (!e) e = window.event; // works on IE, but not NS (we rely on NS passing us the event)
	
	if (e)
	{ 
		if (e.pageX || e.pageY)
		{ // this doesn't work on IE6!! (works on FF,Moz,Opera7)
		mousex = e.pageX;
		mousey = e.pageY;
		algor = '[e.pageX]';
		if (e.clientX || e.clientY) algor += ' [e.clientX] '
		}
		else if (e.clientX || e.clientY)
		{ // works on IE6,FF,Moz,Opera7
		mousex = e.clientX + document.body.scrollLeft;
		mousey = e.clientY + document.body.scrollTop;
		algor = '[e.clientX]';
		if (e.pageX || e.pageY) algor += ' [e.pageX] '
		}  
	}
}

function getObjectMouseXY(obj) {
	objMousex = obj.offsetLeft;
	objMousey = obj.offsetTop;
}

function getObjectSize(obj) {
	objWidth = obj.offsetWidth;
	objHeight = obj.offsetHeight;
}



/* 브라우저 */
function checkBrowser() {
	if(navigator.appName == "WebTV") {
		return "webtv";
	} else if(navigator.appName == "Netscape") {
		return "ns";
	} else if(navigator.appName == "Microsoft Internet Explorer") {
		return "ie";
	}
}

//문자관련
// string String::cut(int len, string tail)
String.prototype.cut = function(len, tail)
{
    var str = this;
    var l = 0;
    for (var i=0; i<str.length; i++)
    {
        l += (str.charCodeAt(i) > 128) ? 2 : 1;
        if (l > len) return str.substring(0,i) + tail;
    }
    return str;
}

/* 숫자관련 */
//add commas
function addComma( nStr ) {
	if( nStr ) {
		nStr = delComma(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;
	}
	return "";
}

function delComma( nStr ) {
	if( /,/.test(nStr) ) {
		if( nStr ) return nStr.replace(/\,/g, "");
	} else {
		return nStr;
	}
}

function openWin(url, name, width, height) {
	var win = window.open(url, name, 'width='+width+',height='+height);
	win.focus();
}

function ready() {
	if( LANG == "en" ) {
		alert("coming soon");
	} else {
		alert("준비중입니다.");
	}
}


//시간관련
function dateYear() {
	var today = new Date()
	return (parseFloat(today.getYear())+1900);
}

function dateToday() {
	var today = new Date()
	var month = parseFloat(today.getMonth())+1;

	if( month < 10 ) month = "0"+month;
	return (parseFloat(today.getYear())+1900)+"-"+month+"-"+today.getDate();
}


//lightbox 관련
var lightboxCount = 0;
function checkInitLightbox() {
	if( lightboxCount <= 3 ) {
		initLightbox();
		lightboxCount++;
	}
}

//팝업창 관련
function setCookie( name, value, expiredays ) { 
	var todayDate = new Date(); 
	todayDate.setDate( todayDate.getDate() + expiredays ); 
	document.cookie = name + "=" + escape( value ) + "; path=/; expires=" + todayDate.toGMTString() + ";" 
} 
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 ""; 
}

//url관련
// This code was written by Tyler Akins and has been placed in the
// public domain.  It would be nice if you left this header intact.
// Base64 code from Tyler Akins -- http://rumkin.com

function decord64(code){

  var InStr = code;
  var len_1 = InStr.length;
  var ttb = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
  var len_res = InStr.length % 4;
  var len_div = len_1 - len_res;
  var re = new makeArray(3);
  var In  = new makeArray(4);
  var DecNum = new makeArray(4);
  var i=0;
  var Stat = "";
  var tmp16, tmp16s;
  var EnB=4;
  var str="";

  while(1)
  {
    if( i >= len_1 )
         break;

    for(k=1;k<=4;k++)
    {
      In[k] = InStr.charAt(i++);
      DecNum[k] = ttb.indexOf(In[k]);
    }

    if( i >= len_div )
    {
        Stat = "End"; 
        if( len_res == 3 || DecNum[4] == 64 )
          EnB = 3;
        if( len_res == 2 || DecNum[3] == 64 )
          EnB = 2;
    }

    re[1] = ( DecNum[1] << 2 ) + ( DecNum[2] >> 4);
    re[2] = ( ( DecNum[2] & 15 ) << 4 ) + ( DecNum[3] >> 2);
    re[3] = ( ( DecNum[3] & 3 ) << 6 ) | DecNum[4] ;

    for(k=1;k<=3;k++)
    {
       if( k < EnB )
       {
          tmp16 = re[k].toString(16);
          tmp16s = "%" + tmp16;
          str = str + tmp16s  ;
       }
    }
   }
  str = unescape(str);
  return str;
}

function encode64(code){

  var InStr = code;
  var ttb = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
  var len_1 = InStr.length;
  var len_res = InStr.length % 3;
  var len_div = len_1 - len_res;
  var ra = new makeArray(4);
  var i=0;
  var Stat = "";

  var str="";
  while(1)
  {
    if( i >= len_1 )
         break;


    if( i >= len_div )
         Stat = "End"; 

    A = eval(InStr.charCodeAt(i++));
    B = eval(InStr.charCodeAt(i++));
    C = eval(InStr.charCodeAt(i++));

    if( i > len_div )
    {
        Stat = "End"; 

        if( len_res >= 1)
          C = 0;
        if( len_res == 1 )
          B = 0;
    }
    ra[1] = A >> 2;
    ra[2] = ( (A & 3) << 4 ) + (B >> 4);
    ra[3] = ( ( B & 15 ) << 2 ) + ( C >> 6);
    ra[4] = C & 63;

    if( Stat == "End" && len_res >= 1 )
          ra[4] = 64;
    if( Stat == "End" && len_res == 1 )
          ra[3] = 64;

    for(k=1;k<=4;k++)
       str = str + ttb.substr(ra[k],1);
 } 
 return str;
}

function makeArray(n){
    this.length=n
    for(var i=1; i<=n; i++){
            this[i]=null;
    }
    return this;
}

function URLencode(clearString) {
	var output = '';
	var x = 0;
	clearString = clearString.toString();
	var regex = /(^[a-zA-Z0-9_.]*)/;
	while (x < clearString.length) {
		var match = regex.exec(clearString.substr(x));
		if (match != null && match.length > 1 && match[1] != '') {
			output += match[1];
			x += match[1].length;
		} else {
			if (clearString[x] == ' ')
			output += '+';
			else {
			var charCode = clearString.charCodeAt(x);
			var hexVal = charCode.toString(16);
			output += '%' + ( hexVal.length < 2 ? '0' : '' ) + hexVal.toUpperCase();
			}
			x++;
		}
	}
	return output;
}

function searchZipcode(form, pno1, pno2, addr, focus) {
	var url = "/system/zipcode/?form="+form+"&pno1="+pno1+"&pno2="+pno2+"&addr="+addr+"&focus="+focus;
	searchWin = window.open(url, 'zipcode','resizable=no,toolbar=no,width=400,height=200,top=200,left=200');
	searchWin.focus();
}

/**
 * DHTML email validation script. Courtesy of SmartWebby.com (http://www.smartwebby.com/dhtml/)
 */
function emailCheck(str) {

	var at="@"
	var dot="."
	var lat=str.indexOf(at)
	var lstr=str.length
	var ldot=str.indexOf(dot)
	if (str.indexOf(at)==-1){
		return false
	}

	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		return false
	}

	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		return false
	}

		if (str.indexOf(at,(lat+1))!=-1){
		return false
		}

		if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){

		return false
		}

		if (str.indexOf(dot,(lat+2))==-1){

		return false
		}
	
		if (str.indexOf(" ")!=-1){
		return false
		}

		return true					
}

/* round corner */
function roundedCorners() {
  var divs = document.getElementsByTagName('div');
  var rounded_divs = [];
  for (var i = 0; i < divs.length; i++) {
    if (/\brounded\b/.exec(divs[i].className)) {
      rounded_divs[rounded_divs.length] = divs[i];
    }
  }
  for (var i = 0; i < rounded_divs.length; i++) {
    var original = rounded_divs[i];
    /* Make it the inner div of the four */
    original.className = original.className.replace('rounded', '');
    /* Now create the outer-most div */
    var tr = document.createElement('div');
    tr.className = 'rounded2';
    /* Swap out the original (we'll put it back later) */
    original.parentNode.replaceChild(tr, original);
    /* Create the two other inner nodes */
    var tl = document.createElement('div');
    var br = document.createElement('div');
    /* Now glue the nodes back in to the document */
    tr.appendChild(tl);
    tl.appendChild(br);
    br.appendChild(original);
  }
}

//체크박스 선택
function selectCheckBox( obj ) {
	var chkBox = obj;
	var str = "";
	var count = 0;
	
	if( typeof chkBox.length == 'undefined' ) {
		if( chkBox[i].disabled == false) {
			if( chkBox.checked ) chkBox.checked = false; else chkBox.checked = true;
		}
	} else {
		for(i=0;i<chkBox.length;i++) {
			if( chkBox[i].disabled == false) {
				if( chkBox[i].checked ) chkBox[i].checked = false; else chkBox[i].checked = true;
			}
		}
	}
}

var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};
BrowserDetect.init();

function newsletter( nsname, nsemail ) {

	var objname = document.getElementById(nsname);
	var objemail = document.getElementById(nsemail);

	if( !objname.value || objname.value=="이름") { alert('이름을 입력하세요.'); objname.focus(); return; }
	if( !objemail.value || objemail.value=="메일주소" ) { alert('메일주소를 입력하세요.'); objemail.focus(); return; }

	if (emailCheck(objemail.value)==false) {
		alert("메일주소가 잘못되었습니다.");
	} else {
		var url = "/2008/system/newsletter/save.php?name="+objname.value+"&email="+objemail.value;
		var req = Spry.Utils.loadURL("GET", url, false, null, null);
		if( req.xhRequest.responseText == 'false' ) {
			alert("오류입니다.");
		} else if( req.xhRequest.responseText == 'email' ) {
			alert("이미 등록되어 있는 이메일입니다.");
		} else {
			alert("신청되었습니다.");
			objname.value = "";
			objemail.value = "";
		}
	}
}

function setPng24(obj) { 
	obj.width=obj.height=1; 
	obj.className=obj.className.replace(/\bpng24\b/i,''); 
	obj.style.filter = 
	"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+ obj.src 

	+"',sizingMethod='image');" 
	obj.src=''; 
	return ''; 
} 