/**
* DB µ¥ÀÌÅ¸ Basket ÇüÅÂÀÇ ÇÊµå µ¥ÀÌÅ¸¸¦ ÆÄ½ÌÇÏ¿© »ç¿ëÀÌ  ¿ëÀÌÇÏµµ·Ï ÇÔ
*    
date 2008. 05. 06
@author whitedream
*/
function BasketUtil(){
    //»ý¼ºÀÚ, private º¯¼ö ¼±¾ð
    var basketList = new Array();
    var sepType;
    var SINGLE_ARRAY_TYPE = 1;
    var KEY_VALUE_TYPE = 2;

    /**
     * function :  initialize(basket)
     * »ç¿ë¿ëµµ : basket µ¥ÀÌÅ¸¸¦ ÆÄ¶ó¹ÌÅÍ·Î ³Ñ°Ü ¹Þ¾Æ À¯ÇüÀ» ÆÇ´Ü, À¯Çü¿¡ µû¶ó °¢°¢ ÆÄ½Ì
     */
    this.initialize = function(basket){
//      dbg("init");
        basketList = new Array();
        sepType = SINGLE_ARRAY_TYPE;

        if (basket!=null && basket!="") {
            for(var i=0 ; i<basket.length ; i++){
                if(basket.charAt( i )=='='){
                    sepType = KEY_VALUE_TYPE;
                    break;
                }else if(basket.charAt( i )=='\n'){
                    break;              
                }
            }
            
            if (sepType == KEY_VALUE_TYPE){
                parseKeyValueType(basket); 
            }else{
                parseSingleArrayType(basket);
            }
        }
        
        return this;


    }

    var parseKeyValueType = function(basket){
        dbg("parseKeyValueType");

        var arrStr = basket.split(String.fromCharCode(11));

        for(var i=0 ; i<arrStr.length ; i++){
            var arrStrTmp = arrStr[i].split("=");
            basketList[i] = arrStrTmp;
        }
    }

    var parseSingleArrayType = function(basket){
        dbg("parseSingleArrayType");

        basketList = basket.split("\r\n")
    }

    /**
     * function :  getKey(i)
     * »ç¿ë¿ëµµ : ÆÄ½ÌµÈ basket µ¥ÀÌÅ¸°¡ KEY_VALUE_TYPE ÀÏ °æ¿ì
                  i¹øÂ° Å°°ªÀ» ¸®ÅÏ. 
                  Á¸ÀçÇÏÁö ¾Ê´Â i¹øÂ° ÁöÁ¤½Ã "" ¸®ÅÏ
     */
    this.getKey = function(i) {

        if(i-1<basketList.length&&i>0){
            if (sepType == KEY_VALUE_TYPE){
                var arrTmp = basketList[i-1];
                return arrTmp[0];
            }
        }
        return "";
    }

    /**
     * function :  getValue(i)
     * »ç¿ë¿ëµµ : ÆÄ½ÌµÈ basket µ¥ÀÌÅ¸°¡ SINGLE_ARRAY_TYPE ¶Ç´Â KEY_VALUE_TYPE ÀÏ °æ¿ì
                  i¹øÂ° °ªÀ» ¸®ÅÏ. 
                  Á¸ÀçÇÏÁö ¾Ê´Â i¹øÂ° ÁöÁ¤½Ã "" ¸®ÅÏ
     */
    this.getValue = function(i) {

        if(i-1<basketList.length&&i>0){
            if (sepType == SINGLE_ARRAY_TYPE){
                return basketList[i-1];
            }else{
                var arrTmp = basketList[i-1];
                return arrTmp[1];
            }
        }
        return "";
    }

    /**
     * function :  getSize()
     * »ç¿ë¿ëµµ : ÆÄ½ÌµÈ basket µ¥ÀÌÅ¸ÀÇ °³¼ö¸¦ ¸®ÅÏ
     */
    this.getSize = function(){
        return basketList.length;
    }
}

/**
* Å×½ºÆ® ¹®ÀÚ¿­ Ãâ·Â ÇÔ¼ö
*/
function dbg(x){
   // var txtDbg = document.getElementById("txtDbg");
   // txtDbg.value += x+"\n";
}

/**
* BasketUtil Å×½ºÆ®¿ë ÇÔ¼ö
*/
function testBasket(){
    var basket = new BasketUtil();


    basket.initialize("aa\r\nbb\r\ncc");
    dbg("getSize : "+basket.getSize());
    dbg("0 : "+basket.getValue(0));
    dbg("1 : "+basket.getValue(1));
    dbg("2 : "+basket.getValue(2));
    dbg("3 : "+basket.getValue(3));
    

    for(var i=1;i<=basket.getSize();i++){
        dbg("i="+i+" : "+basket.getValue(i));
    }

    basket.initialize("a01=aa&b01=bb&c01=cc");
    dbg("getSize : "+basket.getSize());
    dbg("0 : "+basket.getKey(0)+" : "+basket.getValue(0));
    dbg("1 : "+basket.getKey(1)+" : "+basket.getValue(1));
    dbg("2 : "+basket.getKey(2)+" : "+basket.getValue(2));
    dbg("3 : "+basket.getKey(3)+" : "+basket.getValue(3));
    dbg("4 : "+basket.getKey(4)+" : "+basket.getValue(4));

    for(var i=1;i<=basket.getSize();i++){
        dbg("i="+i+" : "+basket.getKey(i)+" : "+basket.getValue(i));
    }
}