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


function addEvent(obj, type, fn)   
{   
    if (obj.addEventListener)   
        obj.addEventListener(type, fn, false);   
    else if (obj.attachEvent)   
    {   
        obj["e"+type+fn] = fn;   
        obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }   
        obj.attachEvent("on"+type, obj[type+fn]);   
    }   
}  

	
function createXMLHttpRequest(_obj) {
    if (window.ActiveXObject) {
        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    } 
    else if (window.XMLHttpRequest) {
        xmlHttp = new XMLHttpRequest();
    }
    
}


function getRealOffsetTop(el) {
	
    return el ? el.offsetTop + getRealOffsetTop(el.offsetParent) : 0;
}

 

function getRealOffsetLeft(el) {
    return el ? el.offsetLeft + getRealOffsetLeft(el.offsetParent) : 0;
}



/* -----------------------------------------------------------------------------------
*  Description: Á¤±ÔÄ¡È¯
*  Parameters: strValue ¹®ÀÚ¿­, strReceptor ¼ö¿ë±â, strEffector ÀÛ¿ë±â
----------------------------------------------------------------------------------- */
function replaceRegExp(strValue, strReceptor, strEffector){
	var objRegExp = new RegExp(strReceptor, "gi"); //Á¤±Ô½Ä¼±¾ð
	strValue = strValue.replace(objRegExp, strEffector);
	return strValue;
}
 
/* -----------------------------------------------------------------------------------
*  Description: °ø¹éÁ¦°Å
*  Parameters: numType Å¸ÀÔ(0 ¿ÏÀüÁ¦°Å, 1 ÇÑÄ­À¸·ÎÁ¦°Å)
*              strValue(ÀÔ·Â°ª)
----------------------------------------------------------------------------------- */
function removeSpace(strValue, numType){
	var strEffector = ""; //ÀÛ¿ë±â
	if (parseInt(numType) > 0) strEffector = " ";
	
	strValue = strValue.replace(/^\s*/, "").replace(/\s*$/, ""); //ÀüÈÄ°ø¹éÁ¦°Å
	
	strValue = replaceRegExp(strValue, "\\s+", strEffector); //°ø¹éÁ¦°Å
	
	return strValue;
}

/* -----------------------------------------------------------------------------------
*  Description: Æ¯¼ö±âÈ£Á¦°Å
*  Parameters: strValue(ÀÔ·Â°ª)
----------------------------------------------------------------------------------- */
function removeMark(strValue){
	strValue = replaceRegExp(strValue, "[+@=*@<>()`\\,\\[\\]\"'\\\\]", " "); //Æ¯¼ö±âÈ£Á¦°Å
	strValue = removeSpace(strValue, 1); //°ø¹éÁ¦°Å:0(ÀüÃ¼°ø¹éÁ¦°Å),1(´Ù¼ö°ø¹éÁ¦°Å)
	
	return strValue;
}

/* -----------------------------------------------------------------------------------
*  Description: º¯¼ö ÃÊ±âÈ­
*  Parameters: strType(ÀÚ·áÇü)- 'num'
*              strValue(ÀÔ·Â°ª)
*              strInitValue(ÃÊ±â°ª)
----------------------------------------------------------------------------------- */
function checkNull(strValue, numType, strInitValue){
	if(typeof strValue == 'undefined' || strValue == null) strValue = ""; //ÃÊ±âÈ­
	if(typeof strInitValue == 'undefined' || strInitValue == null) strInitValue = ""; //±³Á¤°ªÃÊ±âÈ­
	
	if(parseInt(numType) == 1){ //¼ýÀÚÇü
		var objRegExp = /[^\d]/;
		while(objRegExp.test(strValue)) strValue = strValue.replace(objRegExp, ""); //¼ýÀÚÀÌ¿ÜÁ¦°Å
	}
	if(strValue.length == 0) strValue = strInitValue; //±³Á¤°ªÀÔ·Â
	return strValue;
}


/* -----------------------------------------------------------------------------------
*  Description: ÄíÅ°ÀúÀå
*  Parameters: strField(ÄíÅ°ÇÊµå¸í)
*              strValue(ÀÔ·Â°ª)
*              strTerm(ÄíÅ°ÀúÀå±â°£-ÀÏ±âÁØ)
----------------------------------------------------------------------------------- */
function setSrchCookie(strField, strValue, strTerm){
	var objDateExpires = new Date();
	strTerm = checkNull(strTerm, 1, "1"); //º¯¼öÃÊ±âÈ­
	objDateExpires.setTime(objDateExpires.getTime() + 1000*60*60*24*parseInt(strTerm));

	document.cookie = strField + "=" + escape(strValue) + ";expires=" + objDateExpires.toGMTString();
}



/* -----------------------------------------------------------------------------------
*  Description: ÄíÅ°ºÒ·¯¿À±â
*  Parameters: strField(ÄíÅ°ÇÊµå¸í)
----------------------------------------------------------------------------------- */
function getSrchCookie(strField){
	//ÃÊ±âÈ­
	var strValue = ""; //ÄíÅ°ÇÊµå°ª(¹ÝÈ¯°ª)
  
	strField += "=";

	if(document.cookie.length > 0) //ÄíÅ°Á¸ÀçÈ®ÀÎ
	{
		var numPointBegin = document.cookie.indexOf(strField); //ÄíÅ°ÇÊµå°ªÁ¸ÀçÈ®ÀÎ
    
		if(numPointBegin != -1)
		{
			numPointBegin += strField.length;
			numPointEnd = document.cookie.indexOf(';', numPointBegin);

			if(numPointEnd == -1)
			{
				numPointEnd = document.cookie.length;
			}
			strValue = unescape(document.cookie.substring(numPointBegin, numPointEnd)); //ÄíÅ°ÇÊµå°ªÀÔ·Â
		}
	}
	return strValue;
}

/* -----------------------------------------------------------------------------------
*  Description: ÀÌ¹ÌÁöÇÊµåº¯°æ
*  Parameters: strNode(½ÇÇà³ëµå)- 'parent.'; ''
*              strField(ÇÊµå¸í)
*              strValue(ÀÔ·Â°ª)
*              numStatus- 0(ºÒ°¡); 1(½ÇÇà)
----------------------------------------------------------------------------------- */
function changeImg(strNode, strField, strValue, numStatus){
	if(parseInt(numStatus) > 0){
		var objField = eval(strNode + "document"); //ÇÁ·¹ÀÓ¼±¾ð
		objField.images[strField].src = "/search/" + strValue; //ÀÌ¹ÌÁöº¯°æ
	}
}

/* -----------------------------------------------------------------------------------
*  Description: HTMLÇÊµåº¯°æ(innerHTML)
*  Parameters: strNode(½ÇÇà³ëµå)- 'parent.'; ''
*              strField(ÇÊµå¸í)
*              strValue(ÀÔ·Â°ª)
*              numStatus- 0(ºÒ°¡); 1(½ÇÇà)
----------------------------------------------------------------------------------- */
function changeTxt(strNode, strField, strValue){
	var objField = eval(strNode + "document.all." + strField); //ÇÊµå°´Ã¼¼±¾ð
	objField.innerHTML = strValue;
}

/* -----------------------------------------------------------------------------------
*  Description: ¹®ÀÚ¿­±æÀÌÁ¦ÇÑ
*  Parameters: strValue ÀÔ·Â°ª, numLimitLength Á¦ÇÑ±æÀÌ
----------------------------------------------------------------------------------- */
function getSubstring(strValue, limitLen, ellipsis){
	var pos = 0; //ÇöÀ§Ä¡°ÔÀÌÁö
  
	if(strValue.length > (limitLen / 2)){
		for (var i = 0; i < strValue.length; i++){
			pos += (strValue.charCodeAt(i) > 127)? 2 : 1; //2byte,1byte¹®ÀÚ
      
			if(pos > limitLen){ //Á¦ÇÑ±æÀÌÃÊ°ú½Ã
				strValue = strValue.substring(0, i) + ellipsis; //ÈÄ¹Ì»ý·«±âÈ£Ãß°¡
				break;
			}
		}
	}
	return strValue;
}


//ÇÑ±ÛºÐÇØ Map
var firstSoundsMap = new Array(
			"¤¡", "¤¢", "¤¤", "¤§", "¤¨", "¤©", "¤±", "¤²", "¤³", "¤µ",
			"¤¶", "¤·", "¤¸", "¤¹", "¤º", "¤»", "¤¼", "¤½", "¤¾"); //ÃÊ¼º
var middleSoundsMap = new Array(
			"¤¿", "¤À", "¤Á", "¤Â", "¤Ã", "¤Ä", "¤Å", "¤Æ", "¤Ç", "¤Ç¤¿",
			"¤Ç¤À", "¤Ç¤Ó", "¤Ë", "¤Ì", "¤Ì¤Ã", "¤Ì¤Ä", "¤Ì¤Ó", "¤Ð", "¤Ñ", "¤Ñ¤Ó",
			"¤Ó"); //Áß¼º
var lastSoundsMap = new Array(
			"", "¤¡", "¤¢", "¤¡¤µ", "¤¤", "¤¤¤¸", "¤¤¤¾", "¤§", "¤©", "¤©¤¡",
			"¤©¤±", "¤©¤²", "¤©¤µ", "¤©¤¼", "¤©¤½", "¤©¤¾", "¤±", "¤²", "¤²¤µ", "¤µ",
			"¤¶", "¤·", "¤¸", "¤º", "¤»", "¤¼", "¤½", "¤¾"); //Á¾¼º

//ÇÑ±ÛÁ¶ÇÕ Map
var firstSoundsEngMap = new Array(
			"r", "R", "s", "e", "E", "f", "a", "q", "Q", "t",
			"T", "d", "w", "W", "c", "z", "x", "v", "g"); //ÃÊ¼º

var middleSoundsEngMap = new Array(
			"k", "o", "i", "O", "j", "p", "u", "P", "h", "hk", 
			"ho", "hl", "y", "n", "nj", "np", "nl", "b", "m", "ml",
			"l"); //Áß¼º

var lastSoundsEngMap = new Array(
			"","r", "R", "rt", "s", "sw", "sg", "e", "f", "fr", "fa",
			"fq", "ft", "fx", "fv", "fg", "a", "q", "qt", "t", "T",
			"d", "w", "c", "z", "x", "v", "g"); //Á¾¼º


/**
* ÇÑ±ÛºÐÇØ
* @param strValue ÀÔ·Â°ª, numAcDrt ¹æÇâ(0 ¾çÂÊ, 1 Á¤¹æ, 2 ¿ª¹æ)
**/
function disassembleHangul(strValue, numAcDrt){
	var ordinaryVal = ""; //ÇÑ±ÛºÐÇØ Á¤¹æ
	var reverseVal = ""; //ÇÑ±ÛºÐÇØ ¿ª¹æ
	var tempVal = "";
	strValue = removeSpace(removeMark(strValue), 0);				
	
	for(var i = 0; i < strValue.length; i++){
		var numCharValue = (strValue.charCodeAt(i) - 0xAC00); //44032
		
		if(numCharValue < 0 || numCharValue > 11172){ //ÇÑ±ÛÀÌ¿Ü ¹× ÇÑ±ÛÀÚÀ½ Ã³¸®
			tempVal = strValue.charAt(i);

		}else{ //ÇÑ±Û Ã³¸®
			tempVal = firstSoundsMap[Math.floor(numCharValue / 588)];
			tempVal += middleSoundsMap[Math.floor((numCharValue % 588) / 28)];
			tempVal += lastSoundsMap[Math.floor((numCharValue % 588) % 28)];
		}
		
		ordinaryVal += tempVal;
		reverseVal = tempVal + reverseVal;
	}
	
	switch(parseInt(numAcDrt)){
		case 0:
			//strValue = "<word>" + ordinaryVal + "<in>acField";
			strValue = ordinaryVal;
		break;
		case 1:
			//strValue = "<word>" + reverseVal + "<in>acFieldR";
			strValue = reverseVal;
		break;
		default:
			//strValue = "<word>" + ordinaryVal + "<in>(acField,acFieldR)";
			strValue = ordinaryVal;
		break;
	}
	
	return strValue;
}

function disassembleHangul2(strValue, numAcDrt){
	var ordinaryVal = ""; //ÇÑ±ÛºÐÇØ Á¤¹æ
	var reverseVal = ""; //ÇÑ±ÛºÐÇØ ¿ª¹æ
	var tempVal = "";
	strValue = removeSpace(removeMark(strValue), 0);				
	
	for(var i = 0; i < strValue.length; i++){
		var numCharValue = (strValue.charCodeAt(i) - 0xAC00); //44032
		
		if(numCharValue < 0 || numCharValue > 11172){ //ÇÑ±ÛÀÌ¿Ü ¹× ÇÑ±ÛÀÚÀ½ Ã³¸®
			tempVal = strValue.charAt(i);

		}else{ //ÇÑ±Û Ã³¸®
			tempVal = firstSoundsEngMap[Math.floor(numCharValue / 588)];
			tempVal += middleSoundsEngMap[Math.floor((numCharValue % 588) / 28)];
			tempVal += lastSoundsEngMap[Math.floor((numCharValue % 588) % 28)];
		}
		
		ordinaryVal += tempVal;
		reverseVal = tempVal + reverseVal;
	}
	
	switch(parseInt(numAcDrt)){
		case 0:
			//strValue = "<word>" + ordinaryVal + "<in>acField";
			strValue = ordinaryVal;
		break;
		case 1:
			//strValue = "<word>" + reverseVal + "<in>acFieldR";
			strValue = reverseVal;
		break;
		default:
			//strValue = "<word>" + ordinaryVal + "<in>(acField,acFieldR)";
			strValue = ordinaryVal;
		break;
	}
	
	return strValue;
}

String.prototype.trim = function() {
	return this.replace(/(^\s*)|(\s*$)/gi, ""); 
} 
String.prototype.strip = function() {
    return this.replace(/^\s+/, '').replace(/\s+$/, '');
}
String.prototype.stripTags = function() {
    return this.replace(/<\/?[^>]+>/gi, '');
}

function assembleHangul(strValue){
	// º¯¼ö ÃÊ±âÈ­
	var firstSoundsEngMapCode = 0;
	var middleSoundsEngMapCode  = 0;
	var lastSoundsEngMapCode   = 0;
	
	var resultValue = "";

	for(var idx=0; idx<strValue.length; idx++){
		
		//ÃÊ¼º
		firstSoundsEngMapCode = getHangulCode('firstSoundsEngMap', strValue.substring(idx, idx+1));
		idx++;
		
		//Áß¼º
		tempMedialCode = getHangulCode('middleSoundsEngMap', strValue.substring(idx, idx+2));

		if( tempMedialCode != -1 ){
			middleSoundsEngMapCode = tempMedialCode;
			idx += 2;

		}else{
			middleSoundsEngMapCode = getHangulCode('middleSoundsEngMap', strValue.substring(idx, idx+1));
			idx++;
		}

		//Á¾¼º
		tempFinalCode = getHangulCode('lastSoundsEngMap', strValue.substring(idx, idx+2));

		if( tempFinalCode != -1){
			lastSoundsEngMapCode = tempFinalCode;
			tempMedialCode = getHangulCode('middleSoundsEngMap', strValue.substring(idx+2, idx+3));
	
			if( tempMedialCode != -1){
				lastSoundsEngMapCode = getHangulCode('lastSoundsEngMap', strValue.substring(idx, idx+1));
			}else{
				idx++;
			}
		}else{
			tempMedialCode = getHangulCode('middleSoundsEngMap', strValue.substring(idx+1, idx+2));
	
			if( tempMedialCode != -1 ){
				lastSoundsEngMapCode = 0;
				idx--;
			}else{
				lastSoundsEngMapCode = getHangulCode( 'lastSoundsEngMap', strValue.substring( idx, idx + 1 ) );
				if( lastSoundsEngMapCode == -1 ) lastSoundsEngMapCode = 0;
			}
		}
	
		resultValue += String.fromCharCode(0xAC00 + firstSoundsEngMapCode + middleSoundsEngMapCode + lastSoundsEngMapCode);
	}
	
	return resultValue;
}

function getHangulCode( typeVar, charVar ){
	var returnCode; // ¸®ÅÏ ÄÚµå ÀúÀå º¯¼ö
	var isFind = false; // ¹®ÀÚ¸¦ Ã£¾Ò´ÂÁö Ã¼Å© º¯¼ö

	if( typeVar == 'firstSoundsEngMap' ){
		for( var i = 0; i < firstSoundsEngMap.length; i++ ){
			if( firstSoundsEngMap[i] == charVar ){
				returnCode = i * 21 * 28;
				isFind = true;
				break;
			}
		}
	}else if( typeVar == 'middleSoundsEngMap' ){
		for( var i = 0; i < middleSoundsEngMap.length; i++ ){
			if( middleSoundsEngMap[i] == charVar ){
				returnCode = i * 28;
				isFind = true;
				break;
			}
		}
	}else if( typeVar == 'lastSoundsEngMap' ){
		for( var i = 0; i < lastSoundsEngMap.length; i++ ){
			if( lastSoundsEngMap[i] == charVar ){
				returnCode = i + 1;
				isFind = true;
				break;
			}
		}
	}
	if( isFind == false ) returnCode = -1; // °ªÀ» Ã£Áö ¸øÇßÀ» °æ¿ì -1 ¸®ÅÏ
	return returnCode;
}


function onThumbImg(img){
	
	if(img){
		document.getElementById("thumb").src =  thumbImgArray[img];
		document.getElementById("imgLink").href = thumbUrlArray[img]; // 
		document.getElementById("modelName").innerHTML=  thumbModelArray[img];
		document.getElementById("thumbDiv").style.display = "";
	}
}

function offThumbImg(){
	document.getElementById("thumbDiv").style.display = "none";
}



