﻿var specialistSymbol = "spc";
var incompleteSymbol = "inct";
var complementRdoChkSymbol = "sym";

var numOfRows=15;
function disableAllChks()
{
      for( i=1; i<=numOfRows; i++)
      {
            var objCHK=document.getElementById('chk'+i );
            objCHK.disabled='disabled';
      }
}
function addQs( myIFM) {
	if (! myIFM)
	      return;
      var Total= myIFM.document.form1.elements.length;  
      var isSpecialistZone = false;
     
	var arySelect = new Array();
      var aryChkBox = new Array();
      var aryRdoBtn = new Array();    
      for(i=0; i<Total; i++)  {
            var obj= myIFM.document.form1.elements[i];
            if(  obj.type== 'checkbox'){
                  if(obj.checked)    aryChkBox.push(obj);
            } 
		else if(  obj.type== 'select-one') {
		      if( obj.value !='0') arySelect.push(obj );   
		}   
            else if(  obj.type=='radio' ){
                  if(obj.checked)    aryRdoBtn.push(obj); 
            } 
            else if( obj.type=='hidden' ) 
           { 
                  if (obj.value=='SPC')
                        isSpecialistZone=  true; //只要有一次為true即可;
            } 
      }  
 
 
      var aryChkSpecialist =  new Array(); 
      var aryChkComplementSymbol =  new Array();
      var aryChkQ= new Array();
      var aryRdoComplementSymbol =  new Array();
      
    
      for( i=0; i< aryChkBox.length; i++){
            var chki=aryChkBox[i];
            if (chki.value.indexOf(specialistSymbol)==0 )  
                  aryChkSpecialist.push(chki.value.substring( specialistSymbol.length, chki.value.length  ));
            else if (chki.value.indexOf( complementRdoChkSymbol)==0)
                  aryChkComplementSymbol.push(chki.value.substring ( complementRdoChkSymbol.length, chki.value.length));
            else 
                  aryChkQ.push(chki.value);         
      }
      
      for( i=0; i< aryRdoBtn.length; i++){
            var rdoi=aryRdoBtn[i];
           if (rdoi.value.indexOf( complementRdoChkSymbol)==0 )
                  aryRdoComplementSymbol.push(rdoi.value.substring ( complementRdoChkSymbol.length, rdoi.value.length ));
                
      }
      
      var Qlist = new Array();
      
      
      var  quiteriaSig='s';
      var quiteriaValue = 'v';
      var splitChar_TypeVsValue = ':' ;
      var splitChar_Range='_';

      
      for ( i = 0; i < aryChkQ.length ; i++){
            var Q = aryChkQ[i];

            if ( Q.indexOf( incompleteSymbol) ==-1) {   
                  Qlist.push(Q);

            }  
            else if (Q.substr (incompleteSymbol.length,1 )=='R')  {                 
                  for ( tg = 0; tg < aryRdoComplementSymbol.length; tg++) {
                        var rdoVs = aryRdoComplementSymbol[tg].split ( splitChar_TypeVsValue);
                        if (Q.indexOf(rdoVs[0]) != -1){                              
                              var q = Q.substring(incompleteSymbol.length + 1, Q.length) + ":" + rdoVs[1];
                              Qlist.push(q);
                              break;
                        }
                  }
            }
            else if (Q.substr(incompleteSymbol.length, 1) == "C"){  
            }
      }//           
     
       
      for ( i=0; i< arySelect.length; i++)
      {
            var slt= arySelect[i]; 
            var Q = slt.value;  
            if (Q == '0') {  
                  continue;
            } //end
            
            if ( Q.indexOf(incompleteSymbol)==-1) {           
                  if (! isSpecialistZone){
                        Qlist.push(Q);
                        }
                  else 
                  {
                        for (jj = 0; jj < aryChkSpecialist.length; jj++) {
                              if (Q.indexOf( aryChkSpecialist[jj] ) != -1) { 
                                    Qlist.push(Q);
                                    break;
                              } 
                        }
                  }
            } 
            else 
            {                    
                  if (Q.substr( incompleteSymbol.length, 1) == 'R')
                  {       
                        Q = Q.substring(incompleteSymbol.length + 1, Q.length);
                        for (tg = 0; tg < aryRdoComplementSymbol.length; tg++)
                        {
                              var rdoVs = aryRdoComplementSymbol[tg].split(splitChar_TypeVsValue);
                              if (Q.indexOf(rdoVs[0]) != -1)
                              {
                                    if ( rdoVs[0].indexOf('ROI_')==-1)
                                          Q += ':' + rdoVs[1];
                                    else
                                    {
                                          if (rdoVs[1] == 'D')
                                          {
                                                var tmpQ = Q.split( splitChar_TypeVsValue);
                                                var range = tmpQ[1].split(splitChar_Range);
                                                Q = tmpQ[0] + ':';
                                                
                                                var ttmpV = range[0];
                                                range[0] = range[1];
                                                range[1] = ttmpV;
                                                
                                                if (range[0] != '')
                                                    Q += range[0] * -1;
                                                Q += '_';
                                                if (range[1] != '')
                                                    Q += range[1] * -1;
                                          }
                                          Q = Q.replace('ROI_0', 'ROI');
                                    }//end
                                  
                                    if ( ! isSpecialistZone)
                                    { 
                                          Qlist.push(Q);
                                    }
                                    else
                                    {
                                          for ( jj = 0; jj< aryChkSpecialist.length; jj++)
                                          {
                                                if (Q.indexOf(aryChkSpecialist[jj] ) != -1)
                                                {
                                                      Qlist.push(Q);
                                                      break;
                                                }
                                          }
                                    }//end
                                    break;
                              }//if (Q.indexOf(rdoVs[0]) != -1)
                        }//for (tg = 0; t 
                  }//  if (Q.substr( incompleteSymbol.length, 1) == 'R')
            }//else  
      }//   for ( i=0; i< arySelect.length; i++)
      
      addToGrid( Qlist);
        
}//function addQs( myIFM){  
 
 
function addToGrid( Qlist)
{
      var hidAllQids=document.getElementById('hidAllQids' );
      var hidAllChkeds=document.getElementById('hidAllQidIsChkeds' );
      var hidAllNums=document.getElementById('hidAllCorpNums' );
     
      
      var aryAllQids=hidAllQids.value.split(',');
      var aryAllChks= hidAllChkeds.value.split(',');
      var aryAllNums= hidAllNums.value.split(',');
        
      for( kk=0; kk< Qlist.length ; kk++)
      {
            if( aryAllQids.length > numOfRows )
            {  
                  alert('篩選條件數目已超過上限, 部分條件將無法新增!!');
                  break; 
            } 
            var fullQID= Qlist[kk];
            var isSameQID=false; 
            for( a=0; a< aryAllQids.length; a++)
            {
                  if(fullQID ==aryAllQids[a])
                  {
                        isSameQID=true;  
                        break;
                  }
            } 
            if( isSameQID )
                  continue;
            else 
		{
			if( aryAllQids[0]=='') 
			{
				aryAllQids[0]=fullQID;
				aryAllChks[0] =true;
				aryAllNums[0]='';
			}
			else  
			{
				aryAllQids.unshift(fullQID);
				aryAllChks.unshift(true);
				aryAllNums.unshift('');
			}
            } 
      }       
      hidAllQids.value= aryAllQids.toString();
      hidAllChkeds.value= aryAllChks.toString();
      hidAllNums.value =  aryAllNums.toString();
     
      refreshQGrid(  );     
    
}// function addToGrid( Qlist)

function refreshQGrid( )
{
   
      var hidAllQids=document.getElementById('hidAllQids' );
      var hidAllChkeds=document.getElementById('hidAllQidIsChkeds' ); 
      var hidAllNums=document.getElementById('hidAllCorpNums' );
     
      var aryAllQids=hidAllQids.value.split(',');
      var aryAllChks= hidAllChkeds.value.split(',');
      var aryAllNums= hidAllNums.value.split(',');
   
   //   alert('aryAllQids.lenght='+aryAllQids.length);
  //    alert('aryAllChks.lenght='+aryAllChks.length);
   //   alert('aryAllNums.lenght='+aryAllNums.length);
      
      
      for( rr=1;  rr<=numOfRows; rr++)
      {
            var idx=rr -1;
            var fullQID =aryAllQids[idx];
            var objCName=document.getElementById('cname'+ rr ); 
            var objChk= document.getElementById('chk'+ rr );
            var objNum= document.getElementById('num'+ rr ); 
           
       
     	//  alert( fullQID );
          
           
           
            
            if(aryAllQids[idx]=='' ||  aryAllQids[idx]==null || rr > aryAllQids.length  )
		{
			
     //	  		alert( '進了aryAllQids[idx]==null section');
			objCName.value=''
			objChk.checked=null;
			objChk.disabled='disabled';
			objNum.value= '';
            } 
            else 
            {
                  objCName.value= getQCName(fullQID.substring(1, fullQID.length));
    //              alert( 'objCName.value已改' );
                  objChk.checked= (aryAllChks[idx]=='true')? 'checked': false; 
                  objChk.disabled=false; 
                  objCName.disabled= (aryAllChks[idx]=='true')? false: 'disabled';
               //   alert('num='+aryAllNums[idx]);
                  objNum.value=( aryAllNums[idx] )? aryAllNums[idx] :'' ;
            }
      }
}

function clearAllQs()
{
      var hidAllQids=document.getElementById('hidAllQids' );
      var hidAllChkeds=document.getElementById('hidAllQidIsChkeds' );    
      var hidAllNums=document.getElementById('hidAllCorpNums' );
      hidAllQids.value='';
      hidAllChkeds.value='';
      hidAllNums.value='';
      refreshQGrid( );
      
}
function deleteQ(idx)
{
      var objCName=document.getElementById('cname'+ idx );    
      if( objCName.value =='' )
            return; 
       var hidAllQids=document.getElementById('hidAllQids' );
       var hidAllChkeds=document.getElementById('hidAllQidIsChkeds' );
       var hidAllNums=document.getElementById('hidAllCorpNums' );
       
//      
      var aryAllQids =hidAllQids.value.split(',');
      var aryAllChks = hidAllChkeds.value.split(',');
      var aryAllNums = hidAllNums.value.split(',');
       
      var aryAllQids_new = aryAllQids.slice(0, idx-1).concat( aryAllQids.slice(idx, aryAllQids.length) );
      var aryAllChks_new = aryAllChks.slice(0, idx-1).concat( aryAllChks.slice(idx, aryAllChks.length) );
      var aryAllNums_new = aryAllNums.slice(0, idx-1).concat( aryAllNums.slice(idx, aryAllNums.length) );
      
     
      hidAllQids.value = aryAllQids_new.toString();
      hidAllChkeds.value = aryAllChks_new.toString();
      hidAllNums.value = aryAllNums_new.toString();
      refreshQGrid(  );
}

function swithChked(obj, idx)
{
      var hidAllChkeds=document.getElementById('hidAllQidIsChkeds' );   
      var aryAllChks= hidAllChkeds.value.split(',');
      
      aryAllChks[idx-1]=  obj.checked;
      
      hidAllChkeds.value= aryAllChks.toString();
      
      var lblCname=document.getElementById('cname'+idx );
      lblCname.disabled= ( obj.checked)? false : 'disabled';
      
}
