var aryData = new Array();

var buyMin = 1000000;
var buyMax = 0;

//取得系統預設級距表成功回呼(首頁用)
function funcSystemDefaultRangeTableSuccess(respTxt,parameter){
	
	$('#dialogRangeTable').html(respTxt);

	$("#dialogRangeTable").dialog({
		position: [parameter['pageX'] + 10, parameter['pageY'] + 5],					
		hide: 'slide',
		resizable: false,
		height: 350,
		show: 'slide'
	});
}

//取得級距表成功回呼(By user)
function funcRangeTableSuccess(respTxt,parameter){
	
	$('#dialog').html(respTxt);
	
	$("#dialog").dialog({
		bgiframe: true,
		position: [parameter['pageX'] + 10, parameter['pageY'] + 5],					
		hide: 'slide',
		resizable: false,
		show: 'slide',
		minHeight:200,
		minWidth:250,
		title: '金額選擇'	
	});
	
	if($('#span_dollar').text().replace(/,/g,'') != 0 ){
		$('#tbl_payPrice tr').each(function(idx){
			if($(this).find('td:eq(1)').text().replace(/,/g,'') == $('#span_dollar').text().replace(/,/g,''))
				$('input[type="radio"][id="rdoRange"]').eq(idx - 1).attr('checked','checked');
		})
	}
	
	$('table#tbl_payPrice tr:gt(0)').filter(':lt(' + ($('#tbl_payPrice tr').size()-2) + ')').hover(function(){
		$(this).addClass('row_odd');
	}, function(){
		$(this).removeClass('row_odd');
	});	
}

//取得級距表失敗回呼
function funcRangeTableError(){
	alert('取得級距表失敗');
}

$(document).ready(function() {

	//----線上訂購功能,取得級距表
	$('div[id="MediumBtn"][name="calculate"]').bind('click', function(event) {
		var parameter = new Object();
		parameter['pageX'] = event.pageX;
		parameter['pageY'] = event.pageY;
		parameter['action'] = 'rangeTableByUser';
    	parameter['accountID'] = $('input[name="accountID"]').val();
		ajaxLoadData('/SMS/servlet/RangeTable', 'POST', parameter, 'text', 6000, 5, 0, 'funcRangeTableSuccess', 'funcRangeTableError');
		return false;
	});
		
	// 按下「確定」鈕，關閉級距試算表
	$('#btn_dollar_close').live('click', function(event) {
		
		//$('#btn_dollar').trigger('click');
		
		// 計算過程無誤才需要關閉 dialog
		if (! isError)
			$('#dialog').dialog('close');
	});
	
	// 按下「關閉」鈕，關閉級距試算表(首頁)
	$('#btn_close').live('click', function(event) {
		$('#dialogRangeTable').dialog('close');
	});
	
	$('#rdoRange').live('click', function(){
		var trObj = $(this).parent().parent();
		
		$('#counts').val(trObj.find('td:eq(1)').text());
		$('#span_dollar').text(trObj.find('td:eq(1)').text());
		$('#Lindberg').text(trObj.find('td:eq(2)').text());
	})
	
	//#####################################--------以下目前用不到
	
	//----簡訊首頁 - 取得系統預設級距表
	$('.showRangeTable').bind('click', function(event) {
		var parameter = new Object();
		
		// 因首頁有 Flash 的廣告會擋住級距表，因此需要變動 X、Y 軸位置
		if (typeof $('#adHomeTopBanner').attr('align') == 'undefined') {
			parameter['pageX'] = event.pageX;
			parameter['pageY'] = event.pageY;
		} else {
			if ($(window).height() < 800)
				$(window).scrollTop(100);
			
			parameter['pageX'] = ($(window).width() - 300) / 2;
			parameter['pageY'] = $('#adHomeTopBanner').offset().top + $('#adHomeTopBanner').height();
		}
		
		parameter['action'] = 'defaultRangeTable';
		ajaxLoadData('/SMS/servlet/RangeTable', 'POST', parameter, 'text', 6000, 5, 0, 'funcSystemDefaultRangeTableSuccess', 'funcRangeTableError');
		
		return false;			
	});
	
	//----計算點數
	var result = '';
	$('#btn_point').live('click',function(){
		loadData();
		var point = parseInt($('#txtPoint').val(),10);
		$('#pointResult').text('');
		if(!isNaN(point) && point != ''){
			for(var idx = 0 ; idx < aryData.length; idx++){
				if(point >= aryData[idx][0] && point <= aryData[idx][2]){
					result = point * aryData[idx][4];
					$('#pointResult').attr('style','background-color:#F5F4EE').html('需花費 <font color="red">' + Math.floor(result) + '</font> 元');	//取比result小的最大整數值
					break;
				}
			}
			//判斷點數是否在區間內
			if($('#pointResult').text().length == 0)
				alert('輸入點數必須在 '+aryData[0][0]+'點 ~ '+aryData[aryData.length - 1][2]+'點之間');
			
			$('#txtPoint').focus().select();				
		}else{
			alert('請輸入點數');
		}	
	})
	
	//----計算金額
	var isError = false;  // 執行 btn_dollar 過程中是否有發生顯示提示訊息
	$('#btn_dollar').live('click', function(){
		loadData();
		var dollar = parseInt($.trim($('#txtDollar').val()),10);
		
		$('#dollarResult').text('');
		if(!isNaN(dollar) && dollar != '' && dollar > 0){
			
			//判斷金額是否在區間內
			if(dollar < parseInt(buyMin) || dollar > parseInt(buyMax)){
				alert('輸入金額必須在 ' + formatNumber(buyMin.toString()) + '元 ~ ' + formatNumber(buyMax.toString()) + '元之間');
				$('#counts').val('');
				$('#span_dollar').text(0);
				$('#Lindberg').text(0);
				$('#keyup_dollar').text('');
				$('#txtDollar').select().focus();
				isError = true;
				
				return;
			}
			
			/* 因為接近低標的金額,會有單價的差異,如第一筆10870點~50000點(單價0.92)-->金額上下限為10000~46000 ; 
			 * 第二筆50001點~100000點(單價0.89)-->金額上下限為44500~89000 ; 
			 * 若user用金額44500購買, 原本應落到0.89單價的區間,若用由小到大的loop來做,反而落到單價0.95的區間,
			 * 故我們用由大到小的loop來做,對USER較有利
			 */
			var maxPoint = 0;
			 
			for(var idx = aryData.length -1 ; idx >= 0; idx--){
				if(dollar >= aryData[idx][1] && dollar <= aryData[idx][3])		//從有落入價格區間中取對user最有利的可購點數
					maxPoint = Math.max(maxPoint, dollar / aryData[idx][4]);									
			}
			$('#dollarResult').attr('style','background-color:#F5F4EE').html('共可買 <font color="red">' + formatNumber(Math.ceil(maxPoint).toString()) + '</font> 點(通)');	//取比result大的最小整數值
			$('#counts').val(dollar);
			$('#span_dollar').text(formatNumber(''+dollar));
			$('#Lindberg').text(formatNumber(''+Math.ceil(maxPoint)));
			$('#obtainPoint').show();
			
			$('#txtDollar').val(dollar).focus().select();
			
			isError = false;
		}else{
			alert('請輸入正確金額');
			$('#keyup_dollar').text('');
			$('#txtDollar').select().focus();
			
			isError = true;
		}			
	})
	
	$('#txtPoint,#txtDollar').live('keyup',function(event){			
			if($(this).attr('id') == 'txtPoint')		//點數
				if(event.keyCode == 13)
					$('#btn_point').trigger('click');
				if($(this).val().length == 0){
					$('#pointResult').html('');
				}
			else if($(this).attr('id') == 'txtDollar'){	//金額
				if(event.keyCode == 13)
					$('#btn_dollar').trigger('click');
				if($(this).val().length == 0){alert(1);
					$('#dollarResult').html('');
					$('#keyup_dollar').text('');
				}else
					$('#keyup_dollar').text(formatNumber($.trim($(this).val())));
			}
			
			if($('#txtDollar').val() == ''){
				$('#dollarResult').html('');
				$('#keyup_dollar').text('');
			}
	})
})

//###############################################3--------以下目前用不到


//以下取得目前的級距表資料(計算用)
function loadData(){
	var idx = 0;
	var aryRowData = '';
	$('#tbl_payPrice tr').each(function(trIdx){
		if(trIdx > 0 && trIdx < ($('#tbl_payPrice tr').size() - 1)){
			aryRowData = new Array(5);
			aryRowData[0] = $('#tbl_payPrice tr:eq(' + trIdx + ') td:eq(0)').text().replace(',','');
			aryRowData[2] = $('#tbl_payPrice tr:eq(' + trIdx + ') td:eq(2)').text().replace(',','');
			aryRowData[4] = $('#tbl_payPrice tr:eq(' + trIdx + ') td:eq(3)').text().replace(',','');
			aryRowData[1] = Math.floor(aryRowData[0] * aryRowData[4]); 	//購買金額(最小量)
			aryRowData[3] = Math.floor(aryRowData[2] * aryRowData[4]);	//購買金額(最大量)
			//alert(aryRowData[1] + ':' + aryRowData[3]);
			aryData[idx] = aryRowData;
			buyMin = Math.min(buyMin,aryRowData[1]);
			buyMax = Math.max(buyMax,aryRowData[3]);
			idx++;
		}
	})
}

