// 체인정보
var chain_length = function( chain_code, option_price )
{
  this.chain_code = chain_code;
  this.option_price  = option_price;
};

// 체인길이 정보 업데이트
function onChangeChain(obj, index, price_code)
{
  var target = $("options_chain_length_"+index+"_"+price_code);
  target.removeAttribute('required');

  // 선택된 ChainLength정보로 대체
  for ( i=target.length-1; i>=2; i-- )
    target.options.remove(i);

  var selectedIndex = obj.selectedIndex;
  if ( selectedIndex<=1 ) return;

  var selected_chain    = chain_length_list[index][selectedIndex-2];

  for ( i=0; i<selected_chain.length; i++ )
  {
    var newOpt	= document.createElement("option");
    newOpt.value        = selected_chain[i].chain_code;
    newOpt.text         = selected_chain[i].chain_code + (Number(selected_chain[i].option_price)?' (+'+comma(selected_chain[i].option_price)+')':'');
    newOpt.setAttribute('option_price', selected_chain[i].option_price);
    target.options.add(newOpt);
  }

  target.setAttribute('required', 1);
}

/**
 * 각인사용여부 선택
 */
function onIsRingCarve(obj, index)
{
  var tarobj  = obj.form["options["+index+"][ring_carve]"];
  if ( obj.value=='Y' )
  {
	tarobj.setAttribute('required', 1);
	tarobj.setAttribute('hname', '각인을 입력하세요!');
//  tarobj.setAttribute('option', 'regAlphaNum');
//  tarobj.setAttribute('oname', '각인은 영문/숫자 5자 이하로 입력하세요!');
	tarobj.style.display  = '';
	tarobj.focus();
  }
  else
  {
	tarobj.removeAttribute('required');
	tarobj.removeAttribute('hname');
//  tarobj.removeAttribute('option');
//  tarobj.removeAttribute('oname');
	tarobj.style.display  = 'none';
  }
}

/**
 * 주문갯수 UP
 */
function order_count_up()
{
	var form = document.goods_option_frm;
	var current_value	= Number(form["order_count"].value);
	form["order_count"].value	= current_value + 1;
	recalculationPrice();
}

/**
 * 주문갯수 DOWN
 */
function order_count_down()
{
	var form = document.goods_option_frm;
	var current_value	= Number(form["order_count"].value);
	if(current_value <= 1)	return;
	form["order_count"].value	= current_value - 1;
	recalculationPrice();
}


/**
 * 실시간 가격 재계산
 *
 * @return void
*/
function recalculationPrice()
{
  if ( typeof($('obj_normal_price'))=='undefined' )  return;

  var form  = document.goods_option_frm;

  if(form["order_count"] != null)
  {
    var order_count = Number(form["order_count"].value);
    if(order_count < 1) order_count = 1;
  }
  else
  {
    var order_count = 1;
  }

  var normal = 0;
  var price = 0;
  var option_price = 0;

  for ( i=0,loop=form.elements.length ; i<loop ; i++ )
  {
    currEl = form.elements[i];

    if(currEl.style.display=="none")  continue;

    if(currEl.tagName.toUpperCase()=="SELECT")
    {
      var selected_obj = currEl.options[currEl.selectedIndex];
      normal += (currEl.value!=''?Number(selected_obj.getAttribute('normal')):0);
      price += (currEl.value!=''?Number(selected_obj.getAttribute('price')):0);
      option_price += (currEl.value!=''?Number(selected_obj.getAttribute('option_price')):0);
    }
    else if(currEl.tagName.toUpperCase()=="INPUT")
    {
      normal += (currEl.value!=null?Number(currEl.getAttribute('normal')):0);
      price += (currEl.value!=null?Number(currEl.getAttribute('price')):0);
      option_price += (currEl.value!=null?Number(currEl.getAttribute('option_price')):0);
    }
  }

  // 세트 할인상품인 경우 지정된 할인률에 따라 일괄 할인
  var dcPrice = 0;
  if(form.set_goods_dc_rate != null)
  {
    dcPrice = Math.floor((normal-normal/100*(100-Number(form.set_goods_dc_rate.value)))/1000 )*1000;
  }

  var coupondcPrice = 0;
  if(document.goods_option_frm.coupon_dc_type != null && document.goods_option_frm.coupon_dc_rate != null)
  {
    switch (document.goods_option_frm.coupon_dc_type.value)
    {
      case '1':
      {
        var cRate = document.goods_option_frm.coupon_dc_rate.value*0.01;
        coupondcPrice = Math.floor(((price + option_price-dcPrice)*cRate)/1000)*1000;
      }
      break;
      case '2':
      {
        coupondcPrice = document.goods_option_frm.coupon_dc_rate.value;
      }
      break;
    }
  }
  price *= order_count;
  normal *= order_count;
  option_price *= order_count;

  //var result_price  = price + option_price-dcPrice;
  var result_price  = normal + option_price-dcPrice;
  var normal_price  = normal + option_price;

  // 쿠폰가격
  if ( $('obj_coupon_price')!=null )
    $('obj_coupon_price').innerHTML = '-'+comma( coupondcPrice );

  // 쿠폰으로 할인된 가격
  if ( $('obj_coupondc_price')!=null )
    $('obj_coupondc_price').innerHTML = comma( result_price - coupondcPrice );

  // 결제할 가격
  if ( $('obj_result_price')!=null )
    $('obj_result_price').innerHTML = comma( result_price );

  // 원래 가격
  if ( $('obj_normal_price')!=null )
    $('obj_normal_price').innerHTML = comma( normal_price );

  // 할인된 금액
  if ( $('obj_dc_price')!=null )
    $('obj_dc_price').innerHTML = comma( dcPrice );

  // 옵션 가격
  if ( $('obj_option_price')!=null )
    $('obj_option_price').innerHTML = comma( option_price );

  // 적립금
  if ( $('obj_reserve')!=null )
    $('obj_reserve').innerHTML      = comma( Math.floor(result_price/100*config_reserve_rate/config_minimum_price_unit)*config_minimum_price_unit );
}

/**
 * 가격옵션 변경시 이미지/상품명 업데이트
 *
 * @param object obj
 */
function onChangePriceOption( obj )
{
  var selectedOption= obj.options[obj.selectedIndex];

  var obj_image     = $('obj_image'+obj.getAttribute('key_no'));
  var obj_goods_name= $('obj_goods_name'+obj.getAttribute('key_no'));

  obj_image.src       = selectedOption.getAttribute('image_url');
  obj_goods_name.innerHTML  = selectedOption.getAttribute('goods_name');
}


/**
 * 상품 상세페이지로 이동
 *
 * @param integer key_no
 */
function goGoodsDetail( key_no )
{
  var form  = document.goods_frm;

  var obj   = $('obj_priceOption'+key_no);
  var selectedOption= obj.options[obj.selectedIndex];

  if ( value = selectedOption.getAttribute('act') )
    form.act.value = value;
  if ( value = selectedOption.getAttribute('category') )
    form.category.value = value;
  if ( value = selectedOption.getAttribute('goods_no') )
    form.goods_no.value = value;

  setDynamicForm(form, 'options[0][price_code]', selectedOption.value);

  form.action = '../shop/goods_detail.php';
  form.submit();
}


/**
 * 상품 선택 전 준비
 *
 * @param object form
 * @return boolean
*/
function readyGoodsSelect( form )
{
  var option_form = document.goods_option_frm;
  if ( typeof(option_form)=='undefined' ) return true;

  // check Options
  if ( chkForm(option_form)==false )  return false;

  // Save Options
  for ( i=0,loop=option_form.elements.length ; i<loop ; i++ )
  {
    currEl = option_form.elements[i];
    if(currEl.style.display != "none")
    {
      setDynamicForm(form, currEl.name, currEl.value);
    }
  }

  return true;
}


/**
 * Today에서 삭제
 *
 * @param integer no
 * @return void
*/
function delToday(no, add_data)
{
  if ( confirm('오늘본 상품에서 해당상품을 삭제하시겠습니까?') )
  {
    var form  = tempFORM( 'post' );
    form.action = '../mypage/process.php';

    setDynamicForm(form, 'act', 'delToday');
    setDynamicForm(form, 'no', no);
    setDynamicForm(form, 'add_data', add_data);

    form.submit();
  }
}

/**
 * Today에서 삭제
 *
 * @param integer no
 * @return void
*/
function delTodayMulti(no_list)
{
  var checkedCount  = getCountChecked(no_list);
  if ( checkedCount==0 )
  {
    alert('삭제할 상품을 선택하세요!');
    return;
  }

  if ( confirm('오늘본 상품에서 선택하신 상품을 삭제하시겠습니까?') )
  {
    var form  = tempFORM( 'post' );
    form.action = '../mypage/process.php';

    setDynamicForm(form, 'act', 'delTodayMulti');
    if ( typeof(no_list.length)=='undefined' )
    {
      setDynamicForm(form, 'no[]', no_list.value);
    }
    else
    {
      for ( var i=0,loop=no_list.length; i<loop ; i++ )
      {
        if ( no_list[i].checked )
          setDynamicForm(form, 'no['+i+']', no_list[i].value);
      }
    }

    form.submit();
  }
}

/**
 * WishList에 담기
 *
 * @param integer goods_no
 * @param boolean is_login
 * @return void
*/
function toWishlist()
{
  var form  = document.goods_frm;

  if ( !readyGoodsSelect( form ) )  return;

  // Submit
  form.action = '../mypage/process.php';
  form.target = tempIFRAME();

  var tmp_method= form.method;
  var tmp_act   = form.act.value;

  form.method     = 'POST';
  form.act.value  = 'toWishList';
  form.submit();

  form.method   = tmp_method;
  form.act.value= tmp_act;
}

/**
 * wishlist에서 장바구니로 이동
 *
 * @param integer no
 * @return void
*/
function wishlistToCart(no_list)
{
  var checkedCount  = getCountChecked(no_list);
  if ( checkedCount==0 )
  {
    alert('장바구니로 보낼 상품을 선택하세요!');
    return;
  }

  var form  = tempFORM( 'post' );
  form.action = '../mypage/process.php';

  setDynamicForm(form, 'act', 'wishlistToCart');
  if ( typeof(no_list.length)=='undefined' )
  {
    setDynamicForm(form, 'no[]', no_list.value);
  }
  else
  {
    for ( var i=0,loop=no_list.length; i<loop ; i++ )
    {
      if ( no_list[i].checked )
        setDynamicForm(form, 'no['+i+']', no_list[i].value);
    }
  }

  form.submit();
}

/**
 * WishList에서 삭제
 *
 * @param integer no
 * @return void
*/
function delWishlist(no)
{
  if ( confirm('WishList에서 해당상품을 삭제하시겠습니까?') )
  {
    var form  = tempFORM( 'post' );
    form.action = '../mypage/process.php';

    setDynamicForm(form, 'act', 'delWishlist');
    setDynamicForm(form, 'no', no);

    form.submit();
  }
}

/**
 * WishList에서 삭제
 *
 * @param integer no
 * @return void
*/
function delWishlistMulti(no_list)
{
  var checkedCount  = getCountChecked(no_list);
  if ( checkedCount==0 )
  {
    alert('삭제할 상품을 선택하세요!');
    return;
  }

  if ( confirm('Wishlist에서 선택하신 상품을 삭제하시겠습니까?') )
  {
    var form  = tempFORM( 'post' );
    form.action = '../mypage/process.php';

    setDynamicForm(form, 'act', 'delWishlistMulti');
    if ( typeof(no_list.length)=='undefined' )
    {
      setDynamicForm(form, 'no[]', no_list.value);
    }
    else
    {
      for ( var i=0,loop=no_list.length; i<loop ; i++ )
      {
        if ( no_list[i].checked )
          setDynamicForm(form, 'no['+i+']', no_list[i].value);
      }
    }

    form.submit();
  }
}

/**
 * 장바구니에 넣기
 */
function toCart()
{
  var form  = document.goods_frm;

  if ( !readyGoodsSelect( form ) )  return;

  // Submit
  form.action = '../mypage/process.php';
  form.target = tempIFRAME();

  var tmp_method= form.method;
  var tmp_act   = form.act.value;

  form.method     = 'POST';
  form.act.value  = 'toCart';
  form.submit();

  form.method   = tmp_method;
  form.act.value= tmp_act;
}

/**
 * 장바구니에서 Wishlist에 등록
 *
 * @param integer no
 * @return void
*/
function cartToWishlist(no_list)
{
  var checkedCount  = getCountChecked(no_list);
  if ( checkedCount==0 )
  {
    alert('Wishlist로 보낼 상품을 선택하세요!');
    return;
  }

  var form  = tempFORM( 'post' );
  form.action = '../mypage/process.php';

  setDynamicForm(form, 'act', 'cartToWishlist');
  if ( typeof(no_list.length)=='undefined' )
  {
    setDynamicForm(form, 'no[]', no_list.value);
  }
  else
  {
    for ( var i=0,loop=no_list.length; i<loop ; i++ )
    {
      if ( no_list[i].checked )
        setDynamicForm(form, 'no['+i+']', no_list[i].value);
    }
  }

  form.submit();
}

/**
 * 장바구니에서 삭제
 *
 * @param integer no
 * @return void
*/
function delCart(no)
{
  if ( confirm('장바구니에서 해당상품을 삭제하시겠습니까?') )
  {
    var form  = tempFORM( 'post' );
    form.action = '../mypage/process.php';

    setDynamicForm(form, 'act', 'delCart');
    setDynamicForm(form, 'no', no);

    form.submit();
  }
}

/**
 * Cart에서 삭제
 *
 * @param integer no
 * @return void
*/
function delCartMulti(no_list)
{
  var checkedCount  = getCountChecked(no_list);
  if ( checkedCount==0 )
  {
    alert('삭제할 상품을 선택하세요!');
    return;
  }

  if ( confirm('장바구니에서 선택하신 상품을 삭제하시겠습니까?') )
  {
    var form  = tempFORM( 'post' );
    form.action = '../mypage/process.php';

    setDynamicForm(form, 'act', 'delCartMulti');
    if ( typeof(no_list.length)=='undefined' )
    {
      setDynamicForm(form, 'no[]', no_list.value);
    }
    else
    {
      for ( var i=0,loop=no_list.length; i<loop ; i++ )
      {
        if ( no_list[i].checked )
          setDynamicForm(form, 'no['+i+']', no_list[i].value);
      }
    }

    form.submit();
  }
}

/**
 * 장바구니에서 삭제
 *
 * @param integer no
 * @return void
*/
function delMultiCart(no)
{
  var form  = tempFORM( 'post' );
  setDynamicForm(form, 'act', 'delCart');
  setDynamicForm(form, 'no', no);
  form.submit();
}

/**
 * buyNow
 */
function buyNow()
{
  var form  = document.goods_frm;

  if ( !readyGoodsSelect( form ) )  return;

  // Submit
  form.action = '../mypage/order_write.php';

  form.method     = 'POST';
  form.act.value  = 'buyNow';
  form.submit();
}


/**
 * 옵션 변경
 * @param object obj
 */
function changeGoodsOption(obj, index)
{
  // 페이지 이동
  if(index == null)
  {
    var form  = document.goods_frm;

    form[obj.name].value = obj.value;
    form.submit();
  }
  // 실시간 업데이트
  else
  {
    var value = obj.value;

    for(var i=0,loop=obj.options.length; i<loop; i++)
    {
      var value   = obj.options[i].getAttribute("value");
      var selected= obj.options.selectedIndex==i ? true : false;
      var display = selected==true ? "" : "none";

      if(value==null || value=="")
        continue;

      var target = document.getElementById("options_ring_hosu_" + index + "_" + value);
      if(target != null) target.style.display = display;

      var target = document.getElementById("options_length_" + index + "_" + value);
      if(target != null) target.style.display = display;

      var target = document.getElementById("options_chain_" + index + "_" + value);
      if(target != null) target.style.display = display;
      var target = document.getElementById("options_chain_length_" + index + "_" + value);
      if(target != null) target.style.display = display;
    }

    recalculationPrice();
  }
}


/**
 * step변경
 * @param integer goods_no : diamond_no or item_no
 * @param integer goods_no2 : dismond_no2
 */
function changeMakeStep(to_action, goods_no, goods_no2)
{
  var form  = document.goods_frm;
  form.action = to_action;
  form.goods_no.value = goods_no;
  if ( goods_no2!=null )
    setDynamicForm(form, 'set_goods[2]', goods_no2);
  form.submit();
}

/**
 * 다이아몬드 선택
 */
function onSelectThisDiamond()
{
  var form  = document.goods_frm;

  if ( !readyGoodsSelect( form ) )  return;

  if ( typeof(form['set_goods[0]'])!='undefined' && form['set_goods[0]'].value!='' )  // 아이템을 이미 선택한 경우 토탈화면으로 이동
    form.action = './make_total.php';
  else
    form.action = './make_list.php';

  // 세트상품정보
  for(i=0;i<onSelectThisDiamond.arguments.length;i++)
  {
    data = onSelectThisDiamond.arguments[i].split('=');
    setDynamicForm(form, data[0], data[1]);
  }

  form.submit();
}

/**
 * item 선택
 */
function onSelectThisItem()
{
  var form  = document.goods_frm;

  setDynamicForm(form, 'init', '1');

  if ( !readyGoodsSelect( form ) )  return;

  if ( typeof(form['set_goods[1]'])!='undefined' && form['set_goods[1]'].value!='' )  // 다이아몬드를 이미 선택한 경우 토탈화면으로 이동
    form.action = './make_total.php';
  else
    form.action = './diamond_search.php';

  // 세트상품정보
  for(i=0;i<onSelectThisItem.arguments.length;i++)
  {
    data = onSelectThisItem.arguments[i].split('=');
    setDynamicForm(form, data[0], data[1]);
  }

  form.submit();
}

/**
 * 실시간 주문가격 재계산
 *
 * @return void
*/
function recalculationOrderPrice()
{
  //alert('clicked');
  if ( typeof($('obj_goods_price'))=='undefined' )  return;
  var goods_price = Number($('obj_goods_price').innerHTML.replace(/,/g, ''));

  // 결제할 금액
  var settle_price  = goods_price;

  var form  = document.order_frm;

  var dc_price = 0;
  if ( typeof(form.emoney)!='undefined' )
  {
    var able_emoney = Number($('obj_able_emoney').innerHTML.replace(/,/g, ''));
    // 사용가능한 적립금보다 더 많은 금액을 입력한 경우
    if ( able_emoney<Number(form.emoney.value.replace(/,/g, '')) )
    {
      alert("사용가능한적립금은 "+comma(able_emoney)+"원입니다.");
      form.emoney.value = able_emoney;
    }

    dc_price  = Number(form.emoney.value.replace(/,/g, ''));
  }
  settle_price  -= dc_price;

  if ( typeof(form.coupon_func)!='undefined' )
  {
    switch ( form.coupon_func.value )
    {
      case 'percentDC':
        dc_price  = Math.floor(settle_price * Number(form.coupon_func_value.value)/100);
        break;

      case 'wonDC':
        dc_price  = Number(form.coupon_func_value.value);
        break;

      default:
        dc_price  = 0;
        break;
    }
    settle_price  -= dc_price;
  }

  if ( typeof(form.coupon_price)!='undefined' )
  {
    settle_price  -= Number(form.coupon_price.value);
  }


  // 결제할 금액
  if ( typeof($('obj_settle_price'))!='undefined' )
    $('obj_settle_price').innerHTML      = comma( settle_price );
}


// 상세보기 쿠폰관련 ajax
function getCoupon(gn,cn){
  jQuery.ajax({
      url: 'getcoupon_ajax.php',
      type: 'GET',
      dataType: 'text',
      data:
      {
        'goods_no': gn,
        'coupon_no': cn
      },
      success:function(data){
          if (data=='feedBack1')
          {
            alert('로그인해야 합니다.');
            document.location.href="/kr/member/login.php?no_message=1";
          }
          if (data=='feedBack2')
            alert('비정상적인 접근으로 쿠폰발급을 실패하였습니다.\n\n다시 시도하시거나 관리자에게 문의하세요.');

          if (data=='feedBack3')
            alert('발급기한이 만료되었거나 없는 쿠폰입니다.\n\n다시 시도하시거나 관리자에게 문의하세요.');

          if (data=='feedBack4')
            alert('이미 발급받으신 쿠폰입니다.');

          if (data=='feedBack99')
            alert('성공적으로 발급되었습니다.');
      }
    });
}

