﻿var isSelect = true;
var slbSize = 3;//单排个数
var kxSize = 3;//子选项个数
var myArr = new Array();
var thisObj;
var thisdata = {val:"",txt:"＋",chk:"",war:"",chkid:"",chkNo:"0"};
var size = 10;//字数

//菜单级联
function setSelectBoxT(obj,title,data,NodesSize,lbwidth,childrenSize,slbwidth,sarr,size,selectSize)
{
    obj.click(function(){
        thisdata.val="";
        thisdata.txt="";
        thisdata.chk="";
        thisdata.war="";
        thisdata.chkid="";
        thisdata.chkNo=0;
        kxSize = selectSize;
        slbSize = size;
        thisObj = obj;
        isSelect = false;
        _left = obj.offset().left +obj.width()+5;
        _top = obj.offset().top;
        $("#myselect").hide();
        $("#subMyselect").hide();
        $("#mytit").html(title);
        makeLabel(data,lbwidth,childrenSize,NodesSize,slbwidth,sarr);
        $("#myselect").css({left:""+_left+"px",top:""+_top+"px"});
        move_div();//跟随鼠标移动
        return false;
   }); 
}

//设置一级选择项
function makeLabel(data,lbwidth,childrenSize,NodesSize,slbwidth,sarr)
{
    myArr = sarr;
    var html="<div class='mydiv'><div class='myText' id='myText'><img src='http://images.rctong.com/img/dot.gif'/>&nbsp;&nbsp;请您选择：</div>";
    var myObj = new Array();
    myObj = data.arr.split(';');
    for(i=0;i<myObj.length-1;i++){
        var myValue = new Array();
        myValue = myObj[i].split(',');
        html +="<a href='#'id=lb"+myValue[0]+" onclick='return false'; class='a"+lbwidth+"'><label class='a"+lbwidth+"' onclick=setSubSelectBox('lb"+myValue[0]+"',"+slbwidth+","+childrenSize+","+thisObj[0].id+"data);>&nbsp;&nbsp;"+myValue[1]+"</label></a>";
    }
    html+="<a href='#'id=lbReSet' onclick='return false'; class='a"+lbwidth+"'><label class='a"+lbwidth+"' onclick=ReSet("+thisObj[0].id+"data);>&nbsp;&nbsp;不限</label></a>";
    html+="</div>";
    $("#mydata").html(html);
    $("#myselect").show();
    var boxwidth = NodesSize * (lbwidth+12);
    thisdata.val = data.val;
    thisdata.txt = data.txt;
    thisdata.chk = data.chk;
    thisdata.chkNo = data.chkNo;
    if(thisdata.val==""){
        thisObj[0].value="选择/修改";
        $("#myText").html("<img src='http://images.rctong.com/img/dot.gif'/>&nbsp;&nbsp;请您选择：");
    }
    else{
       thisObj[0].value = mySubstring(thisdata.txt);
       $("#myText").html("<img src='http://images.rctong.com/img/dot.gif'/>&nbsp;&nbsp;您选择了："+thisdata.chk+""+thisdata.war+"");
    }
    var cellCount =Math.ceil((myObj.length)/NodesSize)
    var boxheight = cellCount*30+50;
    $("#myselect").css({width:""+boxwidth+"px"});
    $("#myselect").css({height:""+boxheight+"px"});
    $("#myhead").css({width:""+boxwidth+""});
    $("#mydata").css({width:""+boxwidth+""});
}

//设置二级选择项
function setSubSelectBox(objID,slbwidth,childrenSize,data)
{
    makeSubLabel(myArr,objID,data,slbwidth,childrenSize);
    isSelect = true;
    return false;
}

function makeSubLabel(arr,objID,data,slbwidth,childrenSize)
{
    var mainID = objID.substring(2,4);
    var label="<div class='mydiv'><div>";
	var arrNew = arr(mainID);
	var j = arrNew.length;
	if($.browser.msie && $.browser.version == 8){
		for (var i = 0; i < j; i++){
            chkval = arrNew[i][0]+":"+arrNew[i][1];
            label +="<label class='a"+slbwidth+"' style='padding-top:2px;'><input class='chk' type='checkbox'id='ck"+arrNew[i][0]+"' value='"+chkval+"' onclick=setSelectValue(this,'"+arrNew[i][0]+"','"+arrNew[i][1]+"','"+slbwidth+"',this.checked,"+thisObj[0].id+"data); />"+arrNew[i][1]+"</label>";
	    }
	}
	else{
	    for (var i = 0; i < j; i++){
            chkval = arrNew[i][0]+":"+arrNew[i][1];            
            label +="<label class='a"+slbwidth+"' style='padding-top:2px;'><input type='checkbox'id='ck"+arrNew[i][0]+"' value='"+chkval+"' onclick=setSelectValue(this,'"+arrNew[i][0]+"','"+arrNew[i][1]+"','"+slbwidth+"',this.checked,"+thisObj[0].id+"data); />"+arrNew[i][1]+"</label>";
	    }
	}
	label+="</div><div class='xx'><a href=javascript:CloseSelect();>确定</a></div></div>";
	$("#subMyselect").html(label);
	var sboxwidth = childrenSize * (slbwidth+12);
	var sheight=(Math.ceil(arrNew.length/slbSize))*20+30;
	obj = $("#"+objID+"");
    _left = obj.offset().left - sboxwidth-5;
    _left =(_left<0)?5:_left;
    _top = obj.offset().top + 18;
    $("#subMyselect").show();
    $("#subMyselect").css({left:""+_left+"px",top:""+_top+"px"});
	$("#subMyselect").css({height:""+sheight+"px",width:""+sboxwidth+"px"});
	var mychkbox = new Array();
    mychkbox = thisdata.val.split('*');
    for(i=0;i<mychkbox.length-1;i++){
        if($("#ck"+mychkbox[i]+"")[0] != null){
            $("#ck"+mychkbox[i]+"")[0].checked = true;
        }
    }
}

function setSelectValue(obj,code,codevalue,subwidth,ischecked,data)
{
    chkid="";
    getMyData(!ischecked,code,codevalue,subwidth,data);
    if(thisdata.val==""){
        thisObj[0].value="选择/修改";
        $("#myText").html("<img src='http://images.rctong.com/img/dot.gif'/>&nbsp;&nbsp;请您选择：");
    }
    else{
       thisObj[0].value = mySubstring(thisdata.txt);
       $("#myText").html("<img src='http://images.rctong.com/img/dot.gif'/>&nbsp;&nbsp;您选择了："+thisdata.chk+""+thisdata.war+"");
       if(kxSize == 1){
            CloseSelect();
       }
    }
    if(!ischecked && $("#"+chkid+"")[0]!=null)
    {
       $("#"+chkid+"")[0].checked = false;
    }
}

function getMyData(isCancel,code,codevalue,subwidth,data)
{
    var chkval = code+":"+codevalue;
    var label ="<label style='width:"+subwidth+";'><input type='checkbox'id='k"+code+"' value='"+chkval+"' checked='checked' onclick=setSelectValue(this,'"+code+"','"+codevalue+"','"+subwidth+"',false,"+thisObj[0].id+"data); />"+codevalue+"</label>";
    chkid = "ck"+code;
    if(isCancel){
        thisdata.val = thisdata.val.replace(""+code+"*", "");
        thisdata.txt = thisdata.txt.replace(""+codevalue+"＋","");
        thisdata.chk = thisdata.chk.replace(label,"");
        thisdata.chkNo--;
        thisdata.war="";
    }
    else{
         if(kxSize == 1){
            thisdata.val = code+"*";
            thisdata.txt = codevalue;
            thisdata.chk = label;
            thisdata.chkNo++;
            thisdata.war="";  ;
         }
         else{
            if(thisdata.chkNo < kxSize){
                thisdata.val += code+"*";
                thisdata.txt += codevalue+"＋";
                thisdata.chk += label;
                thisdata.chkNo++;
                thisdata.war="";
            }
            else{
                thisdata.war="<img src='http://images.rctong.com/img/dot.gif'/>&nbsp;&nbsp;您最多只能选择"+kxSize+"项!";
                if($("#"+chkid+"")[0] !=null){
                    $("#"+chkid+"")[0].checked = false;
                }
            }
         }
    }
    //保存值
    data.val = thisdata.val;
    data.txt = thisdata.txt;
    data.chk = thisdata.chk;
    data.chkNo = thisdata.chkNo;
}

function displaySubSelectBox(obj)
{
    if(!isSelect){
        $("#subMyselect").hide();
    }
    isSelect = false;
}

function setIsSelect()
{
    isSelect = true;
}

function CloseSelect()
{
    $("#subMyselect").hide();
    $("#myselect").hide();
}

function ReSet(thisdata){
    thisdata.val="";
    thisdata.txt="";
    thisdata.chk="";
    thisdata.war="";
    thisdata.chkid="";
    thisdata.chkNo=0;
    thisObj[0].value="选择/修改";
    $("#myText").html("<img src='http://images.rctong.com/img/dot.gif'/>&nbsp;&nbsp;请还没有选择任何项目");
    CloseSelect();
}

//菜单不级联
function setSelectBoxO(obj,title,data,NodesSize,lbwidth,isright)
{
  obj.click(function(){
        thisObj = obj;
        thisdata.val="";
        thisdata.txt="";
        thisdata.chk="";
        thisdata.war="";
        thisdata.chkid="";
        thisdata.chkNo=0;
        isSelect = false;
        var _left;
        var boxwidth = NodesSize * (lbwidth+12);
        $("#myselect").css({width:""+boxwidth+"px"});
        $("#myhead").css({width:""+boxwidth+""});
        $("#mydata").css({width:""+boxwidth+""});
        if(isright){
            _left = obj.offset().left +obj.width()+5;
        }
        else{
            _left = obj.offset().left -boxwidth-5;
        }
        _top = obj.offset().top;
        $("#myselect").hide();
        $("#subMyselect").hide();
        $("#mytit").html(title);
        $("#mydata").html(makeLabelO(data,lbwidth,NodesSize));
        thisdata.chkid= data.val;
        if(thisdata.chkid != "lb")
        {
            $("#lb"+thisdata.chkid+"").css({background:"#ef954c",color:"#FFF"});
        }
        $("#myselect").show();
        $("#myselect").css({left:""+_left+"px",top:""+_top+"px"});
        move_div();
        return false;
   }); 
}

function makeLabelO(data,lbwidth,NodesSize)
{
    var html="<div class='mydiv'>";
    var myObj = new Array();
    myObj = data.arr.split(';'); 
    for(i=0;i<myObj.length-1;i++){
        var myValue = new Array();
        myValue = myObj[i].split(',');
        html +="<a href='#'id=lb"+myValue[0]+" class='a"+lbwidth+"' onclick='return false';><label class='a"+lbwidth+"' onclick=selitem('"+myValue[0]+"','"+myValue[1]+"',"+thisObj[0].id+"data);>&nbsp;&nbsp;"+myValue[1]+"</label></a>";
    }
    html+="<a href='#'id='reset' class='a"+lbwidth+"' onclick='return false';><label class='a"+lbwidth+"' onclick=selitem('','不限',"+thisObj[0].id+"data);>&nbsp;&nbsp;不限</label></a>";
    html+="</div>";
    $("#mydata").html(html);
    $("#myselect").show();
    var boxheight = (Math.ceil((myObj.length)/NodesSize))*30 + 20;
    $("#myselect").css({height:""+boxheight+"px"});
}

function selitem(code,codevalue,data)
{
    if(thisdata.chkid != "lb")
    {
        $("#lb"+thisdata.chkid+"").css({background:"",color:"#000"});
    }
    data.val = code;
    data.txt = codevalue;
    thisdata.chkid = code;
    $("#lb"+code+"").css({background:"#ef954c",color:"#FFF"});
    
    //modify 20110809
    //thisObj[0].value = mySubstring(codevalue);
    if(thisObj[0].id.indexOf("li_") != -1){
        var id = thisObj[0].id.substring(3,thisObj[0].length)
        $("#"+id+"")[0].value = mySubstring(codevalue); //点击li的时候，赋值给input
    }else
    {
        thisObj[0].value = mySubstring(codevalue);
    }
        
    $("#myselect").hide();
}

function mySubstring(ftext)
{
    ftext = (ftext.length > size)?""+ftext.substring(0,size)+"..":ftext;
    return ftext;
}

//移动div
function move_div()
{
     var obj = document.getElementById("myselect");
     var sObj = document.getElementById("subMyselect");
     this.offsetX = 0;
     this.offsetY = 0;
     $("#myhead").mousemove(function(){
        var e = window.event;
        if( e.button != 1 )
        return false;
        var top  = e.clientY;
        var left = e.clientX;
        obj.style.left = (left - this.offsetX < 0)?0:(left - this.offsetX);
        obj.style.top  = (top  - this.offsetY <0)?0:(top  - this.offsetY);
        return false;
     });
     $("#myhead").mousedown(function(){
          var e = window.event;
          this.offsetY = e.clientY - parseInt(obj.style.top);
          this.offsetX = e.clientX - parseInt(obj.style.left);
          return false;
     });
}
