//将form绑定为ajax类型
$(document).ready(function(){
    var options = {
        target: '#result',
        beforeSubmit: showRequest,
        success: showResponse,
        dataType: 'xml',
        timeout: 3000
    };
	function setSecSpan(str){
		$("#frmMain span:last").text(str);	
	}
    $('#frmMain').ajaxForm(options);
    $("input[@name='c'][@value=2]").click(function(){
		$("input[@name='e']").val('');
		$('#frmMain span:first').text('初始等级：');
        $("input[@name='t'][@value=4]").click(function(){
            setSecSpan('技能点：');
        });
        $("input[@name='t'][@value=5]").click(function(){
            setSecSpan('能量值：');
        });
        $("input[@name='t'][@value!=4][@value!=5]").click(function(){
           setSecSpan('经验：');
        });
		var type=$("input[@name='t']:checked").val();
		if (type == 4) {
			setSecSpan('技能点：');
		}
		else 
			if (type == 5) {
				setSecSpan('能量值：');
			}
			else {
				setSecSpan('经验：')
			}
		$('#thx').hide();
		$('#type, #frmMain #e, #frmMain span:last').show();
    });
    $("input[@name='c'][@value=1]").click(function(){
        setSecSpan('终止等级：');
		$('#frmMain span:first').text('初始等级：');
		$("input[@name='t']").unbind('click');
		$('#thx').hide();
		$('#type, #frmMain #e, #frmMain span:last').show();
    });
	$("input[@name='c'][@value=3]").click(function(){
		$('#type, #frmMain #e, #frmMain span:last, #thx').hide();
		$('#frmMain span:first').text('人物等级（10级~70级）：');
    });
	$("input[@name='c'][@value=4]").click(function(){
		$('#type, #frmMain #e, #frmMain span:last, #thx').hide();
		$('#frmMain span:first').text('人物等级（15级~70级）：');
    });
	$("input[@name='c'][@value=5]").click(function(){
		$('#type').hide();
		$('#frmMain span:first, #frmMain #s, #frmMain span:last, #frmMain #e, #thx').show();
		$('#frmMain span:first').text('等级（17级~60级）：');
		$('#frmMain span:last').text('星级（1星~6星）：');
	});
	$("input[@name='c'][@value="+$.query.get('c')+"]").click();
	$("input[@name='t'][@value="+$.query.get('t')+"]").click();
});

//清空结果列表
function showRequest(formData, jqForm, options){
    $('#result span').empty();
    $('#result span').removeClass();
    return true;
}

//处理返回的结果
function showResponse(responseXML){
    var ret, warning, flag = true;
    var fstVal = 0, secVal = 0, type = 0, cat = 0;
    var expStr = new Array('人物由{0}级至{1}级需<span class="r">{2}</span>经验。', '灵兽由{0}级至{1}级需<span class="r">{2}</span>经验。', '元魂珠由{0}级至{1}级需<span class="r">{2}</span>经验。', '派系技能由{0}级至{1}级需<span class="r">{2}</span>技能点。','元魂珠能量等级由{0}级至{1}级需<span class="r">{2}</span>能量值'), 
		levelStr = new Array('人物使用{1}经验可由{0}级升至<span class="r">{2}</span>级。', '灵兽使用{1}经验可由{0}级升至<span class="r">{2}</span>级。', '元魂珠使用{1}经验可由{0}级升至<span class="r">{2}</span>级。', '派系技能使用{1}技能点可由{0}级升至<span class="r">{2}</span>级。','元魂珠的能量等级使用{1}能量值可由{0}级升至<span class="r">{2}</span>级。'),
		cathStr = new Array('人物在{0}级使用<span class="r">{1}</span>级回灵丹每天可获得<span class="r">{2}</span>经验。','人物在{0}级使用<span class="r">{1}</span>级回灵丹每天可获得<span class="r">{2}</span>经验，可升至<span class="r">{3}</span>级。');
		maxExpStr = new Array('人物在{0}级可压<span class="r">{1}</span>经验。');
		snowStr = new Array('{0}级{1}星化雪丹可提供<span class="r">{2}</span>经验。');
    ret = $('ret', responseXML).text().split(' ');
	//结果错误
    $.each(ret, function(i, val){
        if (val == '' || val < 0) {
            warning = '计算错误，请检查输入的数据。';
            $('#result span').addClass('failed');
            flag = false;
        }
    });
	//结果正确
    if (flag) {
        fstVal = $('#s').val();
        secVal = $('#e').val();
        type = $("input[@name='t']:checked").val();
        cat = $("input[@name='c']:checked").val();
        if (cat == 1) {
            warning = $.format(expStr[type - 1], fstVal, secVal, ret[0], ret[1]);
        }else if (cat == 2) {
            warning = $.format(levelStr[type - 1], fstVal, secVal, ret[0]);
        }else if (cat == 3) {
			warning = $.format((ret[2]==fstVal)?cathStr[0]:cathStr[1], fstVal, ret[0], ret[1], ret[2]);
		}else if (cat == 4) {
			warning = $.format(maxExpStr[0], fstVal, ret[0]);
		}else if (cat == 5) {
			warning = $.format(snowStr[0], fstVal, secVal, ret[0]);
		}
        $('#result span').addClass('finished');
    }
    $('#result span').append(warning);
}
