// gds_idx of current url
var gds_idx = jQuery.url.param('gds_idx');
var nog;

$(function ()
{
	// Variables 
	// ___________________________________
	
		nog = $('#numofGoodsToBuy');
	
	// Option 1
	// call function directly
	
	// Exoption
	// ___________________________________
	
		$('#exop1').change( function ()
		{
			var option = '';
			var selectedval = parseInt($(this).val());
	
			// Manipulate 2nd SELECTBOX by JSON
			for (var i = 1, size = exoption_data.length; i < size; i++) 
			{
				if (exoption_data[i][selectedval]) {
					option += '<option value="' + i + '">' + exoption_data[i][0] + '</option>';
				}
			}
			
			var exop2_name = $('#exop2 > option:first').html();
			
			option = '<option value="">' + exop2_name + '</option>' + option;
			$('#exop2').html(option);		
		});
	
	// Number of goods
	// ___________________________________
	
		$('#btn_numberup').click(function ()
		{
			nog.val(parseInt(nog.val()) + 1)
			calprices();
		});
		
		$('#btn_numberdn').click(function ()
		{
			if (nog.val() > 1) 
				nog.val(parseInt(nog.val()) - 1)
			calprices();
		});
		
	// Button
	// ___________________________________
	
		// Add to Cart
		$('#btn_addtocart').click(function () {	callCart(1); });
		// Add to Wish
		$('#btn_addtowish').click(function () { callCart(2); });
		// Add to Buy Now
		$('#btn_buynow').click(function () { callCart(3); });
});

/**
 * Calculate prices - dispatch : btn event, option select
 */
function calprices() 
{
	var oprice = parseInt($('#originalprice').val());
	var op_price = 0;
	var priceresult = 0;
	
	// Option1
	$('.op1 > option:selected').each(function ()
	{
		if ($(this).attr('value') != '') {
			op_price += parseInt($(this).attr('price')) * nog.val();
		}
	});	
	
	// Extra Option
	if (typeof exoption_data != 'undefined') {
		if ($('#exop1').val() == 0 || $('#exop2').val() == 0) {
			exop_price = 0;
		}
		else {
			exop_price = parseInt(exoption_data[$('#exop1 > option:selected').val()][$('#exop2 > option:selected').val()]) * nog.val();
		}	
	}
	else {
		exop_price = 0;
	}
	
	// Number of goods
	priceresult = 
		(oprice * parseInt(nog.val()))
		+ op_price
		+ exop_price;

	// Set the calculated price
	$('.view-gds-totalprice').html(priceresult.toString().comma());
	
	// return for whole Related Goods
	return priceresult;
}


// MAIN OPTION
// ____________________________________________________________________________________________________________
// ____________________________________________________________________________________________________________


			/**
			 * GET selected OPTIONs 1
			 */
			function checkOption1() {
				
				var op1 = [];
				var op1_pass = true;
				
				$('.op1').each(function ()
				{
					if (op1_pass) {
						if ($(this).val() == '' && $(this).attr('need')) {
							alert('[' + $(this).attr('name') + '] 옵션을 선택해 주시기 바랍니다.');
							op1_pass = false;
						}
					}
					
					if ($(this).val() != '') {
						_op1 = {
							idx: $(this).attr('idx'),
							value: $(this).val()
						}
						op1.push(_op1);
					}
			
				});
				
				return (!op1_pass ? false : op1);
			}
			/**
			 * GET selected OPTIONs 2
			 */
			function checkOption2() {
				
				var op2 = [];
				
				if (typeof exoption_data == 'undefined') {
					return op2;
				}
				
				if ($('#exop1').val() == '') {
					alert('[' + $('#exop1').attr('name') + '] 옵션을 선택해 주시기 바랍니다.');
					return false;			
				}
				else {
					op2.push($('#exop1').val());
				}
				
				if ($('#exop2').val() == '') {
					alert('[' + $('#exop2').attr('name') + '] 옵션을 선택해 주시기 바랍니다.');
					return false;			
				}
				else {
					op2.push($('#exop2').val());
				}
				
				return (op2.length == 0 ? false : op2);
			}
			
			/**
			 * Get Main Option
			 */
			function getMainOption()
			{
				op1 = checkOption1();
				if (!op1) {
					return false;
				}
				op2 = checkOption2();
				if (!op2) {
					return false;
				}
				
				// prepare data
				return {
					gds_idx: gds_idx,
					nog: nog.val(),
					op1: op1,
					op2: op2
				}
			}
			

// ____________________________________________________________________________________________________________
// ____________________________________________________________________________________________________________


/**
 * Call ajax cart
 */
function callCart(type, rg_qs)
{
	var qs = [];
	qs.push(getMainOption());
	
	// RG옵션이 있으면 qs에 추가
	if (rg_qs != null) {
		for (i = 0, size = rg_qs.length; i < size; i++) {
			qs.push(rg_qs[i]);
		}
	}

	$.ajax(
	{
		url: './mods/shop/inc/ajax.cart.php',
		data: 'qs=' + serialize(qs) + '&type=' + type,
		type: 'post',
		success: function (ret) { 
			// cart
			if (type == 1) {
				if (ret == '1') {
						if (confirm("장바구니에 추가되었습니다. 장바구니로 이동하시겠습니까?")) {
								window.location.href = '?shop.cart.do';
						} else {
								return false;
						}
				} else if (ret == '2') {
						if (confirm("이미 장바구니에 담겨 있는 상품입니다. 장바구니로 이동하시겠습니까?")) {
								window.location.href = '?shop.cart.do';
						} else {
								return false;
						}
				}
			}
			
			// wish
			else if (type == 2) {
				if (ret == '1') {
						if (confirm("관심상품에 추가되었습니다. 관심상품으로 이동하시겠습니까?")) {
								window.location.href = '?shop.wish.do';
						} else {
								return false;
						}
				} else if (ret == '2') {
						if (confirm("이미 관심상품에 담겨 있는 상품입니다. 관심상품으로 이동하시겠습니까?")) {
								window.location.href = '?shop.wish.do';
						} else {
								return false;
						}
				}
			}
			
			// buy now
			else if (type == 3) {
				if (ret == '1') {
						window.location.href = '?shop.order.do';
				} else if (ret == '2') {
						alert('오류가 발생했습니다. 잠시후 다시 시도하세요.');
				}
			}
		}
	});
}




















// RELATED GOODS 개떡같이 복잡하군
// ________________________________________________________________________________________________

$(function () 
{
	// rg_Exoption 이벤트핸들러
	// ______________________________________
	
		// op2 첫번째 옵션
		$('.rg1_exop1').change( function ()
		{
			var gds = $(this).attr('gds');
			var data = rg_exoption_data[gds];
			var option = '';
			
			// Manipulate 2nd SELECTBOX by JSON
			for (var i = 1, size = data.length; i < size; i++) 
			{
				if (data[i][$(this).val()]) {
					option += '<option value="' + i + '">' + data[i][0] + '</option>';
				}
			}

			option = '<option value="">선택하세요.</option><option value="">----------------------------------</option>' + option;
			$('select[class=rg1_exop2][gds=' + gds + ']').html(option);
			$('div[class=viewop2price][gds=' + gds + ']').html('');
		});
		
		// op2 두번째 옵션
		$('.rg1_exop2').change( function ()
		{
			var gds = $(this).attr('gds');
			var price = rg_exoption_data[gds][$('select[gds=' + gds + '][class=rg1_exop1]').val()][$('select[gds=' + gds + '][class=rg1_exop2]').val()]
			
			// 선택된 옵션 가격 보여주기
			if (typeof price != 'undefined')
				$('div[class=viewop2price][gds=' + gds + ']').html('(+' + price + '원)');
			else
				$('div[class=viewop2price][gds=' + gds + ']').html('');
		});

	// 수량조절 이벤트핸들러
	// ______________________________________
	
		$('.btn_rgnumberup').click(function ()
		{
			var nogbox = $('input[class=rg_numofGoods][gds=' + $(this).attr('gds') + ']');
			nogbox.val(parseInt(nogbox.val()) + 1);
		});
		$('.btn_rgnumberdn').click(function ()
		{
			var nogbox = $('input[class=rg_numofGoods][gds=' + $(this).attr('gds') + ']');
			if (nogbox.val() > 1) 
				nogbox.val(parseInt(nogbox.val()) - 1);
			return false;
		});

	// 옵션상품 가격계산
	// ______________________________________
	
		$('#btn_calpricewithrg').click(function () 
		{
			// if there are checked checkboxes
			if ($('.rg_selectit:checked').length == 0) {
				alert('선택된 묶음상품이 없습니다.');
				return false;
			}
			
			// ret is Object [qs, "price" of related goods]
			var ret = getRelatedGoods();
			
			// ret is false (필수 옵션이 선택되지 않았을때)
			if (!ret) {
				return false;
			} 
			
			// ignore rg[0] AS qs
			
			rg1_price = (ret[1].toString().length > 3 ? ret[1].toString().comma() : ret[1]);
				
			// 상품가격 계산 표시
			var price = calprices();
			
			// 묶음상품 계산 표시
			$('.view-gds-totalrgprice').html(rg1_price);
			
			// 전체합계
			var wholetotalprice = (ret[1] + parseInt(price)).toString();
			wholetotalprice = (wholetotalprice.length > 3 ? wholetotalprice.comma() : wholetotalprice)
			$('.view-gds-wholetotalprice').html(wholetotalprice);
			
			// 가격 계산상자 보이기
			$('.wholepricepanel').show();
		})
		
	// 같이 장바구니에 담기
	// _______________________________________
	
		$('#btn_addtocartwithrg').click(function ()
		{
			// ret is Object [qs, "price" of related goods]
			var ret = getRelatedGoods();
			
			// ret is false (필수 옵션이 선택되지 않았을때)
			if (!ret) {
				return false;
			}
			
			rg1 = ret[0];
			rg1_price = ret[1];
			
			// RG 옵션과 함께 callCart
			callCart(1, rg1);
		});
});


/**
 * GET Related goods
 */
function getRelatedGoods () 
{
	var gds;
	var nog;
	var qs = [];
	var prices = 0;
	
	// 필수옵션 플래그 | "stage1"
	// if not selected needed options, set need to false and alert to user
	var need = true;
	
	// LOOP for Checked BOX
	$('.rg_selectit:checked').each(function ()
	{
		// 상품 idx
		gds = $(this).attr('gds');
		
		// 가격
		var originalprice = parseInt($(this).attr('value'));
		
		// 수량
		nog = $('input[class=rg_numofGoods][gds=' + gds + ']').val();
		
		// 옵션1 
			// GET IDX
			var op1 = [];
			$('select[gds=' + gds + '][class=rg_op]').each(function () 
			{
				// 필수옵션체크
				if ($(this).attr('need') && $(this).val() == '') {
					need = false;
				}
				else {
					op1.push({
						idx: $(this).attr('idx'),
						value: $(this).val()
					});
				}
			});
			
			// GET PRICE
			var op1price = 0;
			$('select[gds=' + gds + '][class=rg_op] > option:selected').each(function ()
			{
				if (typeof $(this).attr('price') != 'undefined') 
					op1price += parseInt($(this).attr('price'));
			});
		
		// 옵션2
			// GET IDX
			var op2 = [];
			op2.push($('select[gds=' + gds + '][class=rg1_exop1]').val());
			op2.push($('select[gds=' + gds + '][class=rg1_exop2]').val());
			
			// GET PRICE
			var op2price = 0;
			var s_exop1 = $('select[gds=' + gds + '][class=rg1_exop1]');
			var s_exop2 = $('select[gds=' + gds + '][class=rg1_exop2]');
			
			// VALIDATION
			if (s_exop1.get().length && s_exop2.get().length) {
				
				//필수 옵션 체크
				if (!s_exop1.val() || !s_exop2.val()) {
					need = false;
				}
				//console.log(s_exop1.val(), s_exop2.val());
				
				try {
					op2price = parseInt(
						rg_exoption_data[gds][s_exop1.val()][s_exop2.val()]
					);
				} catch (e) {}
				
			}
	
		// 반환할 객체;
		qs.push({
			// gds idx
			gds_idx: gds,
			nog: nog,
			op1: op1,
			op2: op2
		});
		//console.log(qs);
		
		// 가격 계산
		// 개별 선택 가격 뿌려주기
		prices += (originalprice + op1price + op2price) * nog;
		//console.log(originalprice, op1price, op2price);
	});
	
	
	
	
	// alert | "stage1"
	if (!need) {
		alert('필수 옵션이 선택되지 않았습니다.');
		return false;
	}
	
	//console.log(qs, prices);
	return [qs, prices];
	
}




/**
 * 상품문의
 */
$(function ()
{
	$('#gds_insamecategory').change(function ()
	{
		window.location.href=$(this).val();
	});
	
	$('#askgds_submitbtn').click(function ()
	{
		if ($('textarea[name=askgds_content]').val().trim() == '') {
			alert('내용을 입력하셔야 합니다.');
			$('textarea[name=askgds_content]').html('').focus();
			return false;
		}
		
		if ($('input[name=askgds_title]').val().trim() == '') {
			if (!confirm('제목없이 등록하시겠습니까?')) {
				return false;
			}
		}
	});
	
	$('.commenttitle').click(function ()
	{
		$('tr[id^=comment_content]').hide();
		
		var rel = $(this).attr('rel');
		$('#comment_content' + rel).show();
	});
	
	$('.qnatitle').click(function ()
	{
		$('tr[id^=qna_content]').hide();
		
		var rel = $(this).attr('rel');
		$('#qna_content' + rel).show();
	});
});
