// ¹®ÀÚ¿­ trim
String.prototype.trim = function() { 
    return this.replace(/(^\s+)|(\s+$)/g, '');
} 

// ÇØ´ç ½ºÆ®¸µÀÇ ¹ÙÀÌÆ®¼ö¸¦ return
String.prototype.bytes = function() { 
    var str = this;
    var len = 0;
    for (var i = 0; i < str.length; i++) {
        len += (str.charCodeAt(i) > 128) ? 2 : 1;
    }   
    return len;
}


// php number_format¿Í °°ÀºÇÔ¼ö
String.prototype.number_format = function() {
    return this.replace(/(\d)(?=(?:\d{3})+(?!\d))/g,'$1,');
}


var validateBytes = function(obj) {
    if ($F(obj).bytes() > parseInt($(obj).byte)) {
        alert("¿É¼Ç ÀÔ·Â ¹üÀ§°¡ ÃÊ°úµÇ¾ú½À´Ï´Ù.\nÇÑ¹ø ´õ È®ÀÎÇØÁÖ¼¼¿ä\n" + "ÇÑ±Û¸¸" + parseInt($(obj).byte)/2 + "ÀÚ ÀÌ³» È¤Àº ¿µ¹®/¼ýÀÚ/±âÈ£¸¸ " + $(obj).byte+ "ÀÚ ÀÌ³»¿©¾ß °¡´ÉÇÕ´Ï´Ù.");
        return false;
    }
}

var emptyValue = function (el) {
    defaultVal = el.required + ' ÀÔ·Â';
    if (defaultVal == $F(el)) {
        el.value = '';
    }
}

var validateNumeric = function(el) {
    if (el.value == '') { return false; }
    el.value = el.value.replace(/(\s)/g, '');
    var pattern = /(^[0-9]+$)/;
    if (!pattern.test(el.value)) {
        return false;
    }
    return true;
}

// ¿É¼Çº° Àç°í
var optionStock = function(idx){
    if (typeof(stockInfo) == 'object') {
        return stockInfo[idx];
    }
}

// ¼±ÅÃÇÑ ¿É¼Ç ¸®½ºÆ®ÀÇ index Á¤º¸ or µ¥ÀÌÅÍ ±æÀÌ
var GetOptionInfo2 = function(num) {
    var optionArr = document.getElementsByName('optionlist'+num+'[]');
    var optionIndex = new Array(); 

    for (var i = 0; i < optionArr.length; i++) {
        if (optionArr[i].type == 'text') {
            optionIndex[i] = optionArr[i].value.trim().bytes();
        } else {
            optionIndex[i] = optionArr[i].selectedIndex - 1;
        }
    }
    return optionIndex;
}

// ¼±ÅÃÇÑ ¿É¼Ç¿¡ µû¶ó º¯°æµÈ ±Ý¾× Ã³¸®
var priceCalculate = function(obj) {
    var regularPrice = parseInt($('regular_price').value.replace(/,/g, ''), 10);
    var quantity    = parseInt($('goods_amount').value, 10);
    var optionType  = $('option_type').value;
    var optionPrice = 0;
    var optionIndex = '';
    var optionJsonDataok = $('optionJsonData'+num);

    var optionInfo = GetOptionInfo2();
    if (optionType != 'PC') {
        optionInfo.each(function(obj, idx) {
            if (obj >= 0) {
                optionPrice += parseInt(optionJsonDataok[idx].price[obj], 10);

                // ÇÊ¼ö¿É¼ÇÀÎ °æ¿ì¿¡¸¸ stock index »ý¼ºÇÏµµ·ÏÇÔ
                if (optionJsonDataok[idx].mandatory == "Y") {
                    optionIndex += obj + ",";
                }
            }
        });
        optionIndex = optionIndex.replace(/,$/g, ''); 

        // Ç°Àý Ã¼Å©
        if (optionStock(optionIndex) == 0) {
            alert('¼±ÅÃÇÏ½Å ¿É¼ÇÀº Ç°ÀýÀÔ´Ï´Ù. ´Ù¸¥ ¿É¼ÇÀ» ¼±ÅÃÇØÁÖ¼¼¿ä.');
            obj.selectedIndex = 0;
            return false;
        }
    }

    // ¿É¼Çº° º¯µ¿ ±Ý¾× Ã³¸®
    var totalPrice = regularPrice + optionPrice;
    if ($('currency')) {
        var currency = totalPrice / parseInt($('currency').value, 10);
        $('dollarprice').value = currency.toFixed(2);
    }

    // ¿É¼Ç Á¾·ù¿¡ µû¶ó ¼ö·®º° ±Ý¾× °è»êÀÌ ´Ù¸£´Ù.
    if (optionType == "PP") {
        $('price_text').innerHTML = ((regularPrice * quantity) + optionPrice).toString().number_format();
        $('price').value = ((regularPrice * quantity) + optionPrice).toString().number_format();
    } else {
        $('price_text').innerHTML = (totalPrice * quantity).toString().number_format();
        $('price').value = (totalPrice * quantity).toString().number_format();
    }
} 

// ¼ö·®º¯°æ¿¡ µû¶ó º¯°æµÈ ±Ý¾× Ã³¸®
var CountChange = function(type) {
    var amount = $('goods_amount');
    if (type == 'up') {
        amount.value++;        
    } else if (type == 'down') {
        amount.value--;        
    }
    if (amount.value < 1) {
        amount.value = 1;
    }
    if (validateNumeric($('goods_amount')) == false) {
        amount.value = 1;
    }
    priceCalculate('');
}

// submit ÇÒ¶§ ¼ö·® ¹× ÇÊ¼öÃ¼Å©
// °í°´ ÀÛ¼ºÇüÀÎ °æ¿ì text ÀÔ·Â ±æÀÌ Á¦ÇÑ Ãß°¡ÇØÁà¾ßÇÔ
var validateSubmit2 = function(num) {
    var optionType  = $('option_type'+num).value;
    var maxsize = 50;
    var optionJson  = $('JsonData'+num).value;
    var mandatory;

    var optionInfo = GetOptionInfo2(num);
    for (var i = 0; i < optionInfo.length; i++) {
        mandatory = optionJson.substring(i,i+1); 
        if (optionType == 'PC') {
            if (optionInfo[i] > maxsize) {
                alert("¿É¼Ç ÀÔ·Â ¹üÀ§°¡ ÃÊ°úµÇ¾ú½À´Ï´Ù.\nÇÑ¹ø ´õ È®ÀÎÇØÁÖ¼¼¿ä\n" + "ÇÑ±Û¸¸" + maxsize/2 + "ÀÚ ÀÌ³» È¤Àº ¿µ¹®/¼ýÀÚ/±âÈ£¸¸ " + maxsize + "ÀÚ ÀÌ³»¿©¾ß °¡´ÉÇÕ´Ï´Ù.");
                return false;
            }
            if (mandatory == "Y" && (optionInfo[i] <= 0 || $F('optionlist'+num+'_'+i).trim() == 'ÇÊ¼ö ÀÔ·Â')) {
                alert('ÇÊ¼ö¿É¼ÇÀÔ´Ï´Ù. ¿É¼ÇÀ» ÀÔ·ÂÇØÁÖ¼¼¿ä');
                $('optionlist'+num+'_'+i).focus();
                return false;
            }
            if ($F('optionlist'+num+'_'+i).trim() == '¼±ÅÃ ÀÔ·Â') {
                $('optionlist'+num+'_'+i).value = '';
            }
        } else {
            if (optionInfo[i] < 0 && mandatory == "Y") {
                alert('ÇÊ¼ö¿É¼ÇÀÔ´Ï´Ù. ¿É¼ÇÀ» ¼±ÅÃÇØÁÖ¼¼¿ä');
                return false;
            }
        }
    }
}
