/**
 * 投票管理
 *
 * @author 李鹏飞
 * 2008-11-12
 */

/* 常量定义 */

//投票题的类型
var VOTE_TITLE_TYPE_INPUT = 0;//直接输入
var VOTE_TITLE_TYPE_RADIO = 1;//单选
var VOTE_TITLE_TYPE_CHECKBOX = 2;//多选
var VOTE_TITLE_TYPE_SELECT = 3; //下拉框单选
var VOTE_TITLE_TYPE_MULTI_SELECT = 4; //下拉框多选
//投票题答案的类型
var VOTE_ITEM_TYPE_NOT_INPUT = 0;//不可输入
var VOTE_ITEM_TYPE_INPUT = 1;//可输入，单行
var VOTE_ITEM_TYPE_TEXTAREA = 2;//可输入，多行



/* 投票管理类 */

var vote = new Object();

vote.debug = false;
vote.currentVote = -1;
vote.titles = undefined;
vote.items = undefined;
vote.currentTitle = undefined;
vote.currentItem = undefined;
vote.currentTitleIndex = -1;
vote.currentItemIndex = -1;

/* 开启调式模式 */
vote.openDebug = function(){
    this.debug = true;
}

/**
 * 取得指定的投票基本数据
 * vid：投票的ID,选填，不填时取最后一个载入的投票
 */
vote.get = function(vid){
    var ret = false;
    if (typeof(_v_current_vid)!='number'){
        _v_current_vid = 0;
    }
    if (typeof(vid)!='number'){
        var vid = 0;
    }
    vid = vid>0?vid:_v_current_vid;
    if (vid>0){
        try{
            eval('var ret= _v_vote_'+vid+';');
            this.currentVote = vid;
            
            this.titles = this.getTitles();
            this.currentTitleIndex = -1;
            this.currentItemIndex = -1;
        }catch(e){
            ret = false;
            this.halt('投票不存在.');
        }
    }
    return ret;
}

/* 投票题的相关接口 */

vote.check_vote = function(form){
	if(typeof(form)=="object"){
		fromelements=form.elements;
		for(i=0;i<fromelements.length;i++){
/* 		if(fromelements[i].type=='text' || fromelements[i].type=='textarea'){
				if(fromelements[i].value=='' && fromelements[i].name.indexOf('_t')==-1){
					alert("您还没选择投票项");
					fromelements[i].focus();
					return false;
				}
			} */
			if(fromelements[i].type=='radio' || fromelements[i].type=='checkbox'){
				bool = true;
				for(j=0;j<fromelements.length;j++){
					if(fromelements[j].name==fromelements[i].name){
						if(fromelements[j].checked){
							bool = false;
						}
					}
				}
				if(bool){
					alert("您还没选择投票项");
					fromelements[i].focus();
					return false;
				}
			}
		}
	}
}

vote.nextTitle = function(){
    if (typeof(this.titles)!='object'){
        this.get();
    }
    this.currentTitleIndex++;
    var ret = this.titles.length > this.currentTitleIndex;
    if (ret){
        this.currentTitle = this.titles[this.currentTitleIndex];
        this.items = this.getItems(this.titles[this.currentTitleIndex]['vt_id']);
        this.currentItemIndex = -1;
        this.currentItem = null;
    }
    return ret;
    
}
/* 取得当前题目的基本数据 */
vote.getTitle = function(){
    return this.currentTitle;
}
/* 取得当前题目的文本 */
vote.getTitleText = function(){
    return this.currentTitle['vt_title'];
}
/* 取得当前题目的类型 */
vote.getTitleType = function(){
    return this.currentTitle['vt_type'];
}
/* 取得当前题目的ID */
vote.getTitleID = function(){
    return this.currentTitle['vt_id'];
}

/* 投票题选项的相关接口 */

vote.nextItem = function(){
    this.currentItemIndex++;
    var ret = this.items.length > this.currentItemIndex;
    if (ret){
        this.currentItem = this.items[this.currentItemIndex];
    }
    return ret;
}
/*  取得当前答案选项 */
vote.getItem = function(){
    return this.currentItem;
}
/* 取得当前选项的文本 */
vote.getItemText = function(){
    return this.currentItem['vi_text'];
}
/* 取得当前选项的文本 */
vote.getItemAttribute = function(){
    return this.currentItem['vi_attribute'];
}
/* 取得当前题目的类型 */
vote.getItemType = function(){
    return this.currentItem['vi_type'];
}
/* 取得当前题目的ID */
vote.getItemID = function(){
    return this.currentItem['vi_id'];
}

vote.getTitleInput = function(){
	var ret = '';
	if(this.getTitleType()==VOTE_TITLE_TYPE_INPUT){
		if(this.getItemText()){
			ret = ret+':';
		}
	    if(_v_current_vote_list){
	        this_value = _v_current_vote_list[this.currentVote][this.getTitleID()][this.getItemID()];
	    }else{
	        this_value ='';
	    }
		if (this.getItemType()==VOTE_ITEM_TYPE_INPUT){
			ret = ret +'<input type="text" id="" name="vote['+this.currentVote+']['+this.getTitleID()+']['+this.getItemID()+'][]'+'" value="'+this_value+'" '+this.getItemAttribute()+'>'
		}else{
			ret = ret +'<textarea id="" name="vote['+this.currentVote+']['+this.getTitleID()+']['+this.getItemID()+'][]'+'" '+this.getItemAttribute()+'>'+this_value+'</textarea>'
		}
	}
	return ret;
}
/**
 * 取得当前选项的输入控件的HTML代码
 */
vote.getItemInput = function(extHTML){
    var ret = '';
    if (this.getTitleType()!=VOTE_TITLE_TYPE_INPUT){
        var ret = '<input type=';
        var exts = '';
        if (this.getTitleType()==VOTE_TITLE_TYPE_RADIO){
            ret = ret + '"radio"';
        }else{
            ret = ret + '"checkbox"';
            exts = '[]';
        }
        this_checked ='';
        if(_v_current_vote_list){
            xx1 = _v_current_vote_list[this.currentVote][this.getTitleID()];
            xx2 = this.getItemID();
            if (this.getTitleType()==VOTE_TITLE_TYPE_RADIO){
                if(_v_current_vote_list[this.currentVote][this.getTitleID()] == this.getItemID()){
                    this_checked =' checked';
                }   
            }else{
                for(i=0;i<_v_current_vote_list[this.currentVote][this.getTitleID()].length;i++){
                    if(_v_current_vote_list[this.currentVote][this.getTitleID()][i] == this.getItemID()){
                        this_checked =' checked';
                        break;
                    }
                }
            }            
	    }
        ret = ret + 'id="' + '" name="vote['+this.currentVote+']['+this.getTitleID()+']'+exts+'" '+this_checked+' value="'+this.getItemID()+'">';
        
        //this.items[this.currentItemIndex]['vi_text']
    }
    return ret;
}
vote.getItemInputExt = function(extHTML){
    var ret = '';
    if (this.getTitleType()!=VOTE_TITLE_TYPE_INPUT){
        if (this.getItemType()!=VOTE_ITEM_TYPE_NOT_INPUT){
            if (this.getItemType()==VOTE_ITEM_TYPE_INPUT){
                ret = ret +':<input type="text" id="" name="vote['+this.currentVote+']['+this.getTitleID()+'_t]['+this.getItemID()+'][]'+'">'
            }else{
                ret = ret +':<textarea id="" name="vote['+this.currentVote+']['+this.getTitleID()+'_t]['+this.getItemID()+'][]'+'"></textarea>'
            }
        }
    }
    return ret;
}
/**
*取得當前選項的下拉框HTML代碼
*/
vote.getSelectItemInput = function (extHTML) {
    var ret = '';
    if (this.getTitleType()!=VOTE_TITLE_TYPE_INPUT){
        var ret = '';
        var exts = '';
        if (this.getTitleType()==VOTE_TITLE_TYPE_SELECT){
        //單選下拉框
            if (0 == this.currentItemIndex) {
                //第1個
                ret = ret + '<select name="vote['+this.currentVote+']['+this.getTitleID()+']'+exts + '">';
                ret = ret + '<option value="' +this.getItemID()+ '">' + this.getItemText ()+ '</option>';
            } else if (this.currentItemIndex == this.items.length - 1) {
                //最後1個
                ret = ret + '<option value="' +this.getItemID()+ '">' + this.getItemText ()+ '</option>';
                ret = ret + '</select>';
            } else {
                //中間option
                ret = ret + '<option value="' +this.getItemID()+ '">' + this.getItemText ()+ '</option>';
            }
        } else if (this.getTitleType() ==  VOTE_TITLE_TYPE_MULTI_SELECT) {
         //多選下拉框
            exts = '[]';
            if (0 == this.currentItemIndex) {
                ret = ret + '<select name="vote['+this.currentVote+']['+this.getTitleID()+']'+exts + '" size="5" multiple="multiple" >';
                ret = ret + '<option value="' +this.getItemID()+ '">' + this.getItemText ()+ '</option>';
            } else if (this.currentItemIndex == this.items.length - 1) {
                ret = ret + '<option value="' +this.getItemID()+ '">' + this.getItemText ()+ '</option>';
                ret = ret + '</select>';
            } else {
                ret = ret + '<option value="' +this.getItemID()+ '">' + this.getItemText ()+ '</option>';
            }
        }
    }
    return ret;
}

/**
 * 取得指定投票的所有题目基本数据
 * 就取最后一次调用get方法传的vid的投票
 */
vote.getTitles = function(){
    var ret = false;
    
    var vid = this.currentVote;
    if (vid>0){
        try{
            eval('var ret= _v_vote_title_'+vid+';');
        }catch(e){
            ret = false;
            this.halt('投票题不存在.');
        }
    }
    
    return ret;
}

/**
 * 取得指定题目的所有答案选项
 * 就取最后一次调用get方法传的vid的投票
 * vtid：投票题的ID
 */
vote.getItems = function(vtid){
    var ret = false;
    
    var vid = this.currentVote;
    if (vid>0){
        try{
            eval('var ret= _v_vote_item_'+vid+';');
            ret = ret[vtid];
        }catch(e){
            ret = false;
            this.halt('投票题不存在.');
        }
    }
    
    return ret;
}

/**
 * 输出调试信息
 * msg:调试信息
 */
vote.halt = function(msg){
    if (this.debug){
        alert(msg);
    }
}