/****************************************
			2008.06.13 ÀÌÀ±½Ä
*****************************************/

var lookAheadArray = null;
var suggestionDiv = null;
var suggestionOffDiv = null;
var cursor;
var inputTextField;
var inputTextDiv;
var debugPane = null;
var urlbase = '';
var originalInputTxt = '';
var LIST_DIV = null;
var RIGHT_TR2_TD1 = null;
var resObj = null;
var imgLocation = 'http://image.ebookscan.co.kr/product/small/';
var maxWordLength = 33;			// Á¦½Ã¾î ÃÖ´ë±æÀÌ, ÃÖ´ë±æÀÌ ÃÊ°ú½Ã ... Ç¥½Ã
var contentWidth = 236;
var lineCnt = "10";					// Ãâ·ÂµÉ µµ¼­ ¶óÀÎ ÃÖ´ë ¼ö.
var getLineCnt = 0;
var bOffSuggest = "false";
var isMouseOutList = "false";				// µµ¼­ ¸ñ·Ï ¸®½ºÆ®¿¡¼­ ¸¶¿ì½º°¡ ºüÁ® ³ª°¬´Â°¡ Ã¼Å©
var isMouseOutDetail = "false";			// ¼¼ºÎÁ¤º¸ º¸±â Ã¢¿¡¼­ ¸¶¿ì½º°¡ ºüÁ® ³ª°¬´Â°¡ Ã¼Å©

function createDebugWindow()
{
   debugPane = document.createElement("div");
   debugPane.className = "debuginfo";
   debugPane.style.zIndex = "3";
   document.body.appendChild(debugPane);
}

function debugInfo(message) 
{
    debugPane.innerHTML += "\n"+message;  
    debugPane.style.backgroundImage = "url(transparent50.png)";
    debugPane.style.visibility = "visible";
}

function createDiv(){
    suggestionDiv = document.createElement("div");
    suggestionDiv.style.zIndex = "2";
    suggestionDiv.style.opacity ="0.8";
    suggestionDiv.style.repeat = "repeat";
    //suggestionDiv.style.filter = "alpha(opacity=80)";
    suggestionDiv.className = "suggestions";
    suggestionDiv.style.visibility = "hidden";
    suggestionDiv.style.width = inputTextField.offsetWidth * 2 + 22;
    suggestionDiv.style.backgroundColor = "white";
    suggestionDiv.style.autocomplete = "off";
            
    suggestionDiv.onmouseout = function()
    {
    	isMouseOutDetail = "true";
    }
    suggestionDiv.onmouseover = function()
    {
    	isMouseOutDetail = "false";
    }
    document.body.appendChild(suggestionDiv);
}

function createOffDiv(){
    suggestionOffDiv = document.createElement("div");
    suggestionOffDiv.style.zIndex = "2";
    suggestionOffDiv.style.opacity ="0.8";
    suggestionOffDiv.style.repeat = "repeat";
    suggestionOffDiv.className = "suggestions";
    suggestionOffDiv.style.visibility = "hidden";
    suggestionOffDiv.style.width = inputTextField.offsetWidth;
    suggestionOffDiv.style.height = "52";
    suggestionOffDiv.style.backgroundColor = "#F4F4F4";
    suggestionOffDiv.style.autocomplete = "off";
    
    var offTable = document.createElement("TABLE");
    var offBody = document.createElement("TBODY");
    var offTr = document.createElement("TR");
    var offTd = document.createElement("TD");
    
    offTable.id = "suggestOffTable";
    offTable.radius = "2";
		offTable.rborder="#D3D3D3";
		offTable.rbgcolor="#F8F8F8";
		offTable.style.backgroundColor = "#FFFFFF";
		offTable.border = "0";
		offTable.style.width = inputTextField.offsetWidth-12;
		offTable.style.height = "60";
		suggestionOffDiv.style.padding = "3";
    offTd.innerHTML = "<b>ÀÚµ¿¿Ï¼º ±â´É Á¾·á »óÅÂÀÔ´Ï´Ù.</b><br><b>´Ù½Ã »ç¿ëÇÏ½Ã°Ú½À´Ï±î?</b>";
    offTd.innerHTML += "&nbsp&nbsp<img src=' http://image.ebookscan.co.kr/images/button/btn_putYes.gif' onclick='javascript:useSuggest(true);' style='CURSOR:hand;vertical-align:middle;'>";
    offTd.innerHTML += "&nbsp<img src='http://image.ebookscan.co.kr/images/button/btn_putNo.gif' onclick='javascript:useSuggest(false);' style='CURSOR:hand;vertical-align:middle;'>";
    
    suggestionOffDiv.onmouseout = function()
    {
    	isMouseOutDetail = "true";
    }
    suggestionOffDiv.onmouseover = function()
    {
    	isMouseOutDetail = "false";
    }
    
    offTr.appendChild(offTd);
    offBody.appendChild(offTr);
    offTable.appendChild(offBody);
    suggestionOffDiv.appendChild(offTable);
    document.body.appendChild(suggestionOffDiv);
    
    roundTable("suggestOffTable");

		suggestionOffDiv.style.top = (inputTextDiv.offsetTop+inputTextField.offsetHeight+4) + "px";
  	suggestionOffDiv.style.left = inputTextDiv.offsetLeft + "px";  
}

function useSuggest(isUse)
{
	suggestionOffDiv.style.visibility = "hidden";
	
	if(isUse)		// »ç¿ëÇÑ´Ù. flag ¸¦ false ·Î ÇÏ°í Suggest ¸¦ º¸¿©ÁÜ.
	{
		bOffSuggest = "false";
		showSuggestions();
	}	
}

function keyDownHandler(inEvent)
{
		if(checkOffSuggest()) return;		// ÀÚµ¿¿Ï¼º ±â´ÉÀÌ ²ô±â »óÅÂÀÎÁö Ã¼Å©
			
		switch(inEvent.keyCode) {    		
        /* up arrow */
        case 38: 
            if (LIST_DIV.childNodes.length > 0 && cursor > 0) 
            {
                var highlightNode = LIST_DIV.childNodes[--cursor];
                highlightSuggestion(highlightNode);
                inputTextField.value = resObj.suggestList[cursor].searchValue;
            }
            else		// °Ë»ö¾î ¸ñ·Ï ÃÖ»óÀ§¿¡¼­ »óÀ§ ¹öÆ° Å¬¸¯½Ã : °Ë»ö¾î ¸ñ·ÏÀ» ´Ý°í ¿ø·¡ Å¸ÀÌÇÎÇÑ °Ë»ö¾î·Î º¯È¯.
            {
            	hideSuggestions();
            	inputTextField.value = originalInputTxt;
            }
        break;
        /* Down arrow */
        case 40:
        		if( suggestionDiv.style.visibility != "visible" ){
        			showSuggestions();
        		}else{
        			if (LIST_DIV.childNodes.length > 0 && cursor < getLineCnt-1) 
             	{
              	var newNode = LIST_DIV.childNodes[++cursor];
                highlightSuggestion(newNode);
                inputTextField.value = resObj.suggestList[cursor].searchValue;
             	}
        		}
        break;
        case 27: 
		        hideSuggestions();
        break;
        /* Enter key = 13 */
        case 13: 
		        hideSuggestions();
		        findWord();
		    break;
    }
} 

function keyUpHandler(inEvent) {
		
		if(checkOffSuggest()) return;		// ÀÚµ¿¿Ï¼º ±â´ÉÀÌ ²ô±â »óÅÂÀÎÁö Ã¼Å©
		
    var enteredText = inputTextField.value;
    var iKeyCode = inEvent.keyCode;
    
    //debugInfo("key:" + iKeyCode);
    
    if ( ( iKeyCode == 32 || iKeyCode == 8 || ( 45 < iKeyCode && iKeyCode < 112) || iKeyCode > 123 ) && iKeyCode != 229) /*keys to consider*/
    {
        if (enteredText.length > 0){
        	showSuggestions();
        	inputTextField.focus();
        }
        else
        {
        	hideSuggestions();
        }
    }
}

function checkOffSuggest()
{
		if( bOffSuggest == "true" )
			return true;
}

function hideSuggestions () 
{
    suggestionDiv.style.visibility = "hidden";
    
    showBtnDiv.style.visibility = "visible";
  	hideBtnDiv.style.visibility = "hidden";
}

function highlightSuggestion(suggestionNode) 
{
		var selectNodeIndex = 0;
		
    for (var i=0; i < LIST_DIV.childNodes.length; i++) 
    {
        var sNode = LIST_DIV.childNodes[i];
        if (sNode == suggestionNode && resObj.suggestList[cursor] != null)
        {
            sNode.className = "current"
            selectNodeIndex = i;
        }
        else if (sNode.className == "current") 
        {
            sNode.className = "";
        }
    }
   	if( cursor == null ) return;
   	
    // ÀÌ°÷¿¡¼­ RIGHT_TR2_TD1 ¸¦ Á÷Á¢ ¹Ù²Ù´Â °ÍÀÌ ¾Æ´Ï¶ó iframe ¿¡ ÆäÀÌÁö¸¦ ÀÐ¾î ¿Í¾ß ÇÑ´Ù.
    if( resObj.suggestList[cursor] != null )
    {
    	var bookDetailURL = "/e-commerce/suggest/suggestDetail.do?productNo=" + resObj.suggestList[cursor].searchKey;
    	bookDetailFrame.location.href = bookDetailURL;
    }
}

function initSuggest (field) 
{
		inputTextField = document.getElementById(field);
		inputTextDiv = document.getElementById(field + "DIV");
		cursor = -1;
		//createDebugWindow();

		inputTextField.onfocus = function()
		{
			inputTextField.style.backgroundImage = "";
		}
		
		inputTextField.onblur = function ()
    {
    	if( isMouseOutList == "true" && isMouseOutDetail == "true")
    	{
        hideSuggestions();
      }
    }

    inputTextField.onkeyup = function (inEvent) 		//¸¶¿ì½º·Î µé¾î °¥¶§ ºüÁú ¶§µµ ÀÌ ÀÌº¥Æ® ¹ß»ý.
    {
        if (!inEvent) 
        {
            inEvent = window.event;
        }
        
        keyUpHandler(inEvent);			// suggest div ¸¦ º¸¿©ÁÜ.
    }
    inputTextField.onkeydown = function (inEvent)
    {
        if (!inEvent) 
        {
            inEvent = window.event;
        }
        keyDownHandler(inEvent);		// À§, ¾Æ·¡, ¿£ÅÍ Å°¿¡ ´ëÇÑ ÀÌº¥Æ®
    }
    
    createDiv();
    createOffDiv();
}

function selectRange(start , end ) 
{
    if (inputTextField.createTextRange) {
        var sRange = inputTextField.createTextRange(); 
        sRange.moveStart("character", start); 
        sRange.moveEnd("character", end - inputTextField.value.length);      
        sRange.select();
    } else if (inputTextField.setSelectionRange) {
        inputTextField.setSelectionRange(start, end);
    }     
    inputTextField.focus();      
} 


function showSuggestions()			// °Ë»ö¾î ¸ñ·Ï °¡Á®¿À±â
{
		if( checkOffSuggest() )
		{
		 	suggestionOffDiv.style.visibility = "visible";
		 	return;
		}
			
		cursor = -1;
		originalInputTxt = inputTextField.value;		// suggest °¡ »ý±â±â Àü »ç¿ëÀÚ ÀÔ·ÂÀ» ÀúÀå. ESC Å¬¸¯ ½Ã¸¦ ´ëºñÇÏ¿©.
		
		if( inputTextField.value == "" ){
			return;
		}
		
		var url = "/servlet/com.bookscan.servlet.SuggestResponseServlet?searchKey="+ inputTextField.value; 
    
    if (window.XMLHttpRequest)				// MS ÀÍ½ºÇÃ·Î¾î°¡ ¾Æ´Ò°æ¿ì
    { 
        req = new XMLHttpRequest(); 
    } 
    else if (window.ActiveXObject)			// ÀÍ½ºÇÃ·Î¾î ÀÏ°æ¿ì
    { 
        req = new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
    req.open("Get",url,true); 
    req.onreadystatechange =  callbackSearchList;
    req.send(null);
}


function callbackSearchList()		// XMLHttpRequest ÀÀ´ä ¸Þ¼Òµå
{
	  if (req.readyState==4)
    { 
       if (req.status == 200)
       { 
       		// °Ë»ö¾î ¸ñ·ÏÀ» ¸¸µé°í DIV ¼¼ÆÃ
          showSuggestDiv();
       } 
    }
} 

function showOffStateSuggest()		// ÀÚµ¿¿Ï¼º ±â´É ²ô±â
{
	hideSuggestions();
	bOffSuggest = "true";
}

function registEvent(regDiv)				//regDiv ¿¡ ÀÌº¥Æ®¸¦ µî·ÏÇÑ´Ù.
{
		regDiv.onmouseup = function() 
    {
    		if( cursor < getLineCnt )
    		{
	        hideSuggestions();
	        header_search_submitform(document.headerForm);
	      }
    }
    
    regDiv.onmouseover = function(inputEvent) 
    {
    		isMouseOutList = "false";	
    		
        inputEvent = inputEvent || window.event;       
        var sugTarget = window.event.srcElement ;
       		
        if( sugTarget.tagName == "FONT" )								// °Ë»ö¾î ºÎºÐ »öÀÌ º¯ÇÑ ºÎºÐÀÌ ÇÏÀÌ¶óÀÌÆ®¶ó ¾ÈµÇ´Â ¹®Á¦ ¶§¹®¿¡ ÇÊ¿ä.
        	sugTarget = window.event.srcElement.parentElement;
        
        if( sugTarget.name != null )
        {
        	cursor = sugTarget.name.getIndex();   
       		highlightSuggestion(sugTarget);
       	}
    } 

		regDiv.onmouseout = function()
    {
    	isMouseOutList = "true";
    }
    
    
    regDiv.onmousedown = function(inputEvent) 		// °Ë»ö ÀÔ·Â¹Ú½º¿¡ Ã¥ Á¦¸ñÀ» ³Ö°í °Ë»ö ¹öÆ° Å¬¸¯ È¿°ú
    {
        inputEvent = inputEvent || window.event;
        var sugTarget = window.event.srcElement ;
        				
				if( sugTarget.tagName == "FONT" )								// °Ë»ö¾î ºÎºÐ »öÀÌ º¯ÇÑ ºÎºÐÀÌ ÇÏÀÌ¶óÀÌÆ®¶ó ¾ÈµÇ´Â ¹®Á¦ ¶§¹®¿¡ ÇÊ¿ä.
        sugTarget = window.event.srcElement.parentElement;
        
        if( sugTarget.name != null )
        {
	       	cursor = sugTarget.name.getIndex();
	       	if( resObj.suggestList[cursor]!= null )
	       	{
		       	inputTextField.value = resObj.suggestList[cursor].searchValue;
	       	}
		    }
		}
}


function showSuggestDiv() 		// °Ë»ö¾î ¸ñ·ÏÀ» DIV¿¡ Ãâ·Â
{
	var sDiv = null;	
	suggestionDiv.innerHTML = "";  
	
	var result = req.responseText;
	resObj = eval('(' + result + ')');
	//debugInfo("serchKeyList :" + resObj.suggestList[0].searchKey);
	var PARENT_TABLE = document.createElement("TABLE");		// ÃÖ»óÀ§ TABLE
	var PARENT_TBODY = document.createElement("TBODY");
	var PARENT_TR1 = document.createElement("TR");
	var PARENT_LEFT_TD = document.createElement("TD");
	var PARENT_CENTER_TD = document.createElement("TD");
	var PARENT_RIGHT_TD = document.createElement("TD");
		
	var LEFT_TABLE = document.createElement("TABLE");		// ¿ÞÂÊ TABLE ( °Ë»ö¾î °ü·Ã table)
	var LEFT_TBODY = document.createElement("TBODY");
	var LEFT_TR1 = document.createElement("TR");				// Á¦¸ñ, ±â´É²ô±â ¹öÆ°ÀÌ µé¾î°¥ TR
	var LEFT_LINETR = document.createElement("TR");
	var LEFT_LINETD = document.createElement("TD");
	var LEFT_TR2 = document.createElement("TR");
	var LEFT_TR1_TD1 = document.createElement("TD");		// Á¦¸ñ, ±â´É²ô±â ¹öÆ°ÀÌ µé¾î°¥ TD
	LIST_DIV = document.createElement("DIV");
	var LEFT_TR2_TD1 = document.createElement("TD");		// ¿©±â °Ë»ö¾î µéÀÌ ³ª¿Í¾ß ÇÑ´Ù.
	
	var RIGHT_TABLE = document.createElement("TABLE");		// ¿À¸¥ÂÊ µµ¼­ Á¤º¸ Å×ÀÌºí
	var RIGHT_TBODY = document.createElement("TBODY");
	var RIGHT_TR1 = document.createElement("TR");					// µµ¼­Á¤º¸ Á¦¸ñ
	var RIGHT_LINETR = document.createElement("TR");
	var RIGHT_LINETD = document.createElement("TD");
	var RIGHT_TR2 = document.createElement("TR");
	var RIGHT_TR1_TD1 = document.createElement("TD");
	RIGHT_TR2_TD1 = document.createElement("TD");
	
	var offImg = document.createElement("IMG");
	 
	// ------------ ¿ÞÂÊ ºÎºÐ ½ÃÀÛ -------------
	LEFT_TABLE.id = "left_table";
	LEFT_TABLE.radius = "2";
	LEFT_TABLE.rborder="#D3D3D3";
	LEFT_TABLE.rbgcolor="#F8F8F8";
	LEFT_TABLE.style.backgroundColor = "#FFFFFF";
	LEFT_TABLE.border = "0";
	LEFT_TABLE.style.width = inputTextField.offsetWidth - 13;
	LEFT_TABLE.style.height = "205";
	LEFT_TR1.border = "1";
	LEFT_TR1_TD1.innerHTML = 
	"<b>°Ë»ö¾î °ü·Ã »óÇ°</b>&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp"+
	"<img src='http://image.ebookscan.co.kr/images/button/btn_autoClose.gif' onClick='javascript:showOffStateSuggest();' style='CURSOR:hand;vertical-align:middle;'>";
	
	LIST_DIV.border ="0";
	LIST_DIV.style.padding ="0";
	LIST_DIV.style.margin ="0";
	LEFT_TR2_TD1.valign="top";
	LEFT_LINETD.height = "1";
	LEFT_LINETD.bgColor = "D7D7D7";
	
	for (i=0; i < lineCnt ; i++) 		// °Ë»ö°á°ú¸¦ TD1¿¡ ³ª¿­
	{
		if( i < resObj.suggestList.length )
		{
	    sDiv = document.createElement("DIV");
	    sDiv.name = "row" + i;
	    sDiv.style.width = contentWidth;
	    
	    sDiv.innerHTML = resObj.suggestList[i].searchValue.cut(maxWordLength,'...').myword(inputTextField.value.replaceAll(" ", ""));
	    LIST_DIV.appendChild(sDiv);
	  }
	  else
	  {
	  	sDiv = document.createElement("DIV");
	    sDiv.name = "row" + i;
	    sDiv.style.width = contentWidth;
	    
	    sDiv.innerHTML = "";
	    LIST_DIV.appendChild(sDiv);
	  }
	}
	registEvent(LIST_DIV);
	
	getLineCnt = resObj.suggestList.length;

	
	LEFT_TR1.appendChild(LEFT_TR1_TD1);
	LEFT_LINETR.appendChild(LEFT_LINETD);
	LEFT_TR2_TD1.appendChild(LIST_DIV);
	LEFT_TR2.appendChild(LEFT_TR2_TD1);
	
	LEFT_TBODY.appendChild(LEFT_TR1);
	LEFT_TBODY.appendChild(LEFT_LINETR);
	LEFT_TBODY.appendChild(LEFT_TR2);
	LEFT_TABLE.appendChild(LEFT_TBODY);
	
	PARENT_LEFT_TD.appendChild(LEFT_TABLE);
	
	// ------------ ¿ÞÂÊ ºÎºÐ ³¡ ---------------

	
	// ------------ ¿À¸¥ÂÊ ºÎºÐ ½ÃÀÛ -------------
	RIGHT_TABLE.id = "right_table";
	RIGHT_TABLE.radius = "2";
	RIGHT_TABLE.rborder="#D3D3D3";
	RIGHT_TABLE.rbgcolor="#F8F8F8";
	RIGHT_TABLE.style.backgroundColor = "#FFFFFF";
	RIGHT_TABLE.border = "0";
	RIGHT_TABLE.style.width = inputTextField.offsetWidth + 5;
	RIGHT_TABLE.style.height = "248";
	RIGHT_TR1.border = 0; 
	RIGHT_TR1_TD1.style.height = "8";
	
	RIGHT_TR1_TD1.innerHTML = "<b>µµ¼­ »ó¼¼ Á¤º¸</b>";
	RIGHT_TR1_TD1.align = "left";
	
	RIGHT_TR2_TD1.innerHTML = "<iframe name='bookDetailFrame' src='/e-commerce/include/suggest/bookDetail.jsp' frameborder='0' width='100%' height='100%'  marginwidth='0' marginheight='0' scrolling='auto'></iframe>";
	
	RIGHT_LINETD.height = "1";
	RIGHT_LINETD.bgColor = "D7D7D7";
	RIGHT_TR1.appendChild(RIGHT_TR1_TD1);
	RIGHT_LINETR.appendChild(RIGHT_LINETD);
	RIGHT_TR2.appendChild(RIGHT_TR2_TD1);
	RIGHT_TBODY.appendChild(RIGHT_TR1);
	RIGHT_TBODY.appendChild(RIGHT_LINETR);
	RIGHT_TBODY.appendChild(RIGHT_TR2);
	RIGHT_TABLE.appendChild(RIGHT_TBODY);
	
	PARENT_RIGHT_TD.appendChild(RIGHT_TABLE);
	// ------------ ¿À¸¥ÂÊ ºÎºÐ ³¡ ---------------
	
	// ------------ Áß¾Ó ºÎºÐ ½ÃÀÛ ---------------
	PARENT_CENTER_TD.innerHTML = "<img src='http://image.ebookscan.co.kr/images/MainFebruary/searchinfo_dotLine.gif'></img>";
	// ------------ Áß¾Ó ºÎºÐ ³¡ ---------------
	
	// ------------ ¿ÞÂÊ, Áß¾Ó , ¿À¸¥ÂÊ ÇÕÄ¡°í °á°ú¸¦ ÇÕÇÔ.
	PARENT_TABLE.style.backgroundColor = "#F4F4F4";
	
	PARENT_TR1.appendChild(PARENT_LEFT_TD);
	PARENT_TR1.appendChild(PARENT_CENTER_TD);
	PARENT_TR1.appendChild(PARENT_RIGHT_TD);
	
	PARENT_TBODY.appendChild(PARENT_TR1);
	PARENT_TABLE.appendChild(PARENT_TBODY);
	
	
	suggestionDiv.appendChild(PARENT_TABLE);
	
	roundTable("left_table");
	roundTable("right_table");
	
	
	suggestionDiv.style.top = (inputTextDiv.offsetTop+inputTextField.offsetHeight+4) + "px";
  suggestionDiv.style.left = inputTextDiv.offsetLeft + "px";
  suggestionDiv.style.visibility = "visible";
  showBtnDiv.style.visibility = "hidden";
  hideBtnDiv.style.visibility = "visible";
}


function findWord()
{
	header_search_submitform(document.headerForm);
}

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;
}

String.prototype.myword = function(findWord) 
{
   return this.replace(findWord, "<font color=#3366FF>" + findWord + "</font>");
}


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;
}

String.prototype.removeTag = function() 
{
		var tmpStr = this.replaceAll("<font color=#3366FF>","");
		tmpStr = tmpStr.replaceAll("</font>","");
   	return tmpStr;
}


function roundTable(objID) {
	var obj = document.getElementById(objID); 
	var Parent, objTmp, Table, TBody, TR, TD;
	var bdcolor, bgcolor, Space;
	var trIDX, tdIDX, MAX;
	var styleWidth, styleHeight;
	
	// get parent node
	Parent = obj.parentNode;
	objTmp = document.createElement('SPAN');
	Parent.insertBefore(objTmp, obj);
	Parent.removeChild(obj);
	
	// get attribute
	bdcolor = obj.getAttribute('rborder');
	bgcolor = obj.getAttribute('rbgcolor');
	radius = parseInt(obj.getAttribute('radius'));
	if (radius == null || radius < 1) radius = 1;
	else if (radius > 6) radius = 6;
	
	MAX = radius * 2 + 1;
	
	/*
	create table {{
	*/
	Table = document.createElement('TABLE');
	TBody = document.createElement('TBODY');
	
	Table.cellSpacing = 0;
	Table.cellPadding = 0;
	
	for (trIDX=0; trIDX < MAX; trIDX++) {
		TR = document.createElement('TR');
		Space = Math.abs(trIDX - parseInt(radius));
		for (tdIDX=0; tdIDX < MAX; tdIDX++) {
		TD = document.createElement('TD');
		
		styleWidth = '1px'; styleHeight = '1px';
		if (tdIDX == 0 || tdIDX == MAX - 1) styleHeight = null;
		else if (trIDX == 0 || trIDX == MAX - 1) styleWidth = null;
		else if (radius > 2) {
			if (Math.abs(tdIDX - radius) == 1) styleWidth = '2px';
			if (Math.abs(trIDX - radius) == 1) styleHeight = '2px';
		}
		
		if (styleWidth != null) TD.style.width = styleWidth;
		if (styleHeight != null) TD.style.height = styleHeight;
		
		if (Space == tdIDX || Space == MAX - tdIDX - 1) TD.style.backgroundColor = bdcolor;
		else if (tdIDX > Space && Space < MAX - tdIDX - 1) TD.style.backgroundColor = bgcolor;
		
		if (Space == 0 && tdIDX == radius) TD.appendChild(obj);
			TR.appendChild(TD);
		}
		TBody.appendChild(TR);
	}

	Table.appendChild(TBody);
	
	// insert table and remove original table
	Parent.insertBefore(Table, objTmp);
}

String.prototype.getIndex = function()
{
	var dname = this;
	if(dname != null )
		dname = dname.replaceAll("row","");
	else
		dname = "0";
 	return dname;
}


