function GetObjID(ObjName,formName)
{ 

	for ( var objID=0; objID < formName.elements.length; objID++ )
      		if (formName.elements[objID].name == ObjName )
      		{  
			return(objID);
         		break;
      		}
  	return(-1);
}	

function SelectTotal(ObjName,formName)
{ 
	objID = GetObjID(ObjName,formName);
  	if (objID != -1)
  	{ 
		for (i=0; i<formName.elements[objID].length; i++)
      		formName.elements[objID].options[i].selected = true;
  	}
}

function IsSelected(ID, Value,formName)
{ 
	if (ID != -1 && Value != "")
  	{  
		for (var cc=0; cc<formName.elements[ID].length; cc++ )
     		{   
			if (formName.elements[ID].options[cc].value == Value)
            		return true;
     		}
     		return false;
  	}
  	return false;
}



function IsSelected1(ID, Value ,textValue,formName)
{ 
	if (ID != -1 && Value != "")
  	{  
		for (var cc=0; cc<formName.elements[ID].length; cc++ )
     		{   
			if (formName.elements[ID].options[cc].value == Value && trim1(formName.elements[ID].options[cc].text) == trim1(textValue))
            		return true;
     		}
     		return false;
  	}
  	return false;
}




function HasTotal(ID,formName)
{ 
	if (ID != -1 )
  	{
		for (var cc=0; cc<formName.elements[ID].length; cc++ )
     		{   
			if ( formName.elements[ID].options[cc].selected )
			{
				if (formName.elements[ID].options[cc].value == "0000")
            			{  
					return true;
        			}
			}
     		}
     		return false;
  	}
  	return false;
}
	
function AppendItem(ObjName, DesName,formName){
	objID    = GetObjID(ObjName,formName);
  	DesObjID = GetObjID(DesName,formName);
  	if (objID != -1 && DesObjID != -1)
  	{  
		if ( IsSelected(DesObjID, "0000",formName) )
        		window.alert("this medication is selected");
     		else
     		{  
			if ( HasTotal(objID,formName) )
        {  formName.elements[DesObjID].length = 0;
           formName.elements[DesObjID].options[0]= new Option("---please select---", "0000");

        }
        else
        {  if (formName.elements[DesObjID].length == 10000)
              window.alert("most can select 10000 items ");
           else
           {  //GET SELECTED ITEM NUMBER
              SelNum = 0;
              for (var j=0; j<formName.elements[objID].length; j++)
              {   if ( formName.elements[objID].options[j].selected)
                  SelNum ++;
              }
              if ((SelNum + formName.elements[DesObjID].length) > 10000)
                 window.alert("most can select 10000 items ");
              else
              {  //add
                 for (j=0; j<formName.elements[objID].length; j++)
                 {   if (formName.elements[objID].options[j].selected)
                     {  //GET VALUE
                        dd = formName.elements[objID].options[j].value;
                        if (!IsSelected(DesObjID, dd,formName))
                        {  //GET LENGTH
                           DesLen = formName.elements[DesObjID].length;
                           // NEW OPTION
                           formName.elements[DesObjID].options[DesLen]= new Option(formName.elements[objID].options[j].text, formName.elements[objID].options[j].value);
                        }
                        else
                           window.alert("This medication has been selected.");

                     }
                 }
              }
           }
        }
	   datechanged=true;
     }
     //CLEAR
     for (j=0; j<formName.elements[objID].length; j++)
          formName.elements[objID].options[j].selected = false;
  }
}




function RemoveItembyCheck(title,ObjName,formName)
{ objID = GetObjID(ObjName,formName);
  datechanged=true;
  if ( objID != -1 )
  {  var  check_index = new Array();
     for (i=formName.elements[objID].length-1; i>=0; i--)
     {   if (formName.elements[objID].options[i].text==title)
         {  check_index[i] = true;
            formName.elements[objID].options[i].selected = false;
         }
         else
            check_index[i] = false;
     }
     for (i=formName.elements[objID].length-1; i>=0; i--)
     {   if (check_index[i])
             formName.elements[objID].options[i] = null
     }
  }
}


function RemoveItem(ObjName,formName)
{ objID = GetObjID(ObjName,formName);
  datechanged=true;
  if ( objID != -1 )
  {  var  check_index = new Array();
     for (i=formName.elements[objID].length-1; i>=0; i--)
     {   if (formName.elements[objID].options[i].selected)
         {  check_index[i] = true;
            formName.elements[objID].options[i].selected = false;
         }
         else
            check_index[i] = false;
     }
     for (i=formName.elements[objID].length-1; i>=0; i--)
     {   if (check_index[i])
             formName.elements[objID].options[i] = null
     }
  }
}




function removeDefault(formName,id,name){
	var obj = formName.defaultDiseaseID;
	if(typeof(obj)!="undefined"){
		if(typeof(obj.length)!="undefined"){
			for(len = 0;len<obj.length;len++){
				if(obj[len].checked==true){
					if(obj[len].value==id){
						//var kk = "defaultDiseaseName"+id;
						//var obj2 =document.getElementById(kk);
						obj[len].checked=false;
					}
				}
			}
		}
	}
}


function RemoveItemInHealthConcern(ObjName,formName){ 
	objID = GetObjID(ObjName,formName);
  datechanged=true;
  if ( objID != -1 )
  {  var  check_index = new Array();
     for (i=formName.elements[objID].length-1; i>=0; i--)
     {   if (formName.elements[objID].options[i].selected)
         {  check_index[i] = true;
            formName.elements[objID].options[i].selected = false;
         }
         else
            check_index[i] = false;
     }
     for (i=formName.elements[objID].length-1; i>=0; i--){   
		 if (check_index[i]){
			 var id = formName.elements[objID].options[i].value;
			 var name = formName.elements[objID].options[i].text;
			 removeDefault(formName,id,name);
             formName.elements[objID].options[i] = null;
	     }
     }
  }
}

function RemoveItemInMedication(ObjName,formName)
{ 
  objID = GetObjID(ObjName,formName);
  datechanged=true;
  if ( objID != -1 )
  {  
     var  check_index = new Array();
     var  rm_value = new Array();
     for (i=formName.elements[objID].length-1; i>=0; i--)
     {   if (formName.elements[objID].options[i].selected)
         {  
            check_index[i] = true;
            formName.elements[objID].options[i].selected = false;
            rm_value[i] = formName.elements[objID].options[i].text;
            
         }else
         {
            check_index[i] = false;
            rm_value[i] = 0;
         }
     }
     for (i=formName.elements[objID].length-1; i>=0; i--)
     {   
         if (rm_value[i]!=0)
             bindCheckBox(formName, rm_value[i], "uncheck");
     }
     
     for (i=formName.elements[objID].length-1; i>=0; i--)
     {   if (check_index[i])
             formName.elements[objID].options[i] = null
     }
  }
}

function bindCheckBox(formName, dd, mode)
{
    for(tmp=0;tmp<30;tmp++)
	{
	   if (formName.drugIDcheck[tmp].title == dd)
	   {
	      if (mode == "check")
	      {
	          formName.drugIDcheck[tmp].checked=true;
	      }else
	      {
	          formName.drugIDcheck[tmp].checked=false;
	      }
	   }
	}
}


function AppendItem1(ObjName, DesName,formName){
	objID    = GetObjID(ObjName,formName);
  	DesObjID = GetObjID(DesName,formName);
	var textValue;
  	if (objID != -1 && DesObjID != -1)
  	{  
		if ( IsSelected1(DesObjID, "0000","0000",formName) )
        		window.alert("This medication has already been included in your medication list");
     		else
     		{  
			if ( HasTotal(objID,formName) )
        {  formName.elements[DesObjID].length = 0;
           formName.elements[DesObjID].options[0]= new Option("---please select---", "0000");

        }
        else
        {  if (formName.elements[DesObjID].length == 10000)
              window.alert("most can select 10000 items ");
           else
           {  //GET SELECTED ITEM NUMBER
              SelNum = 0;
              for (var j=0; j<formName.elements[objID].length; j++)
              {   if ( formName.elements[objID].options[j].selected)
                  SelNum ++;
              }
              if ((SelNum + formName.elements[DesObjID].length) > 10000)
                 window.alert("most can select 10000 items ");
              else
              {  //add
                 for (j=0; j<formName.elements[objID].length; j++)
                 {   if (formName.elements[objID].options[j].selected)
                     {  //GET VALUE
                        dd = formName.elements[objID].options[j].value;
						textValue = formName.elements[objID].options[j].text;
						
						bindCheckBox(formName, textValue, "check");


                        if (!IsSelected1(DesObjID, dd,textValue, formName))
                        {  //GET LENGTH

							//////// modify by youly  12.27  (add begin)
							var arrValue = new Array();
							var arrText  = new Array();

							var len = formName.elements[DesObjID].length;
							
							// 将select中的所有option的value值将保存在Array中
							for (var i = 0; i < len; i++)
							{
								arrValue[i] = formName.elements[DesObjID].options[i].value; 
								arrText[i] = formName.elements[DesObjID].options[i].text; 
							}

							// delete all
							while (len--)
							{
								formName.elements[DesObjID].options[len] = null;
							}
						   
							var innerHTML_Text="<SELECT name=\"drugIDs\"  multiple size=\"10\" onDblClick=\"javascription:RemoveItemInMedication('drugIDs',formulationForm);\">";
							
							//innerHTML_Text+="<OPTGROUP  label='Medication to be checked'>";
							// add old select
							for (i = 0; i < arrValue.length; i++)
							{
								if ( (arrValue[i]!=null) && (arrText[i]!=null) )
									innerHTML_Text+=" <option value='"+arrValue[i]+"'>"+arrText[i]+"</option> ";
							}

							textValue = trimLeft1(textValue);

							innerHTML_Text+=" <option value='"+dd+"'>"+textValue+"</option> ";
							//innerHTML_Text+="</OPTGROUP>";
							innerHTML_Text+="</SELECT>"

							drugIDs_div.innerHTML=innerHTML_Text;

							//////// modify by youly  12.27  (add end)


//                           DesLen = formName.elements[DesObjID].length;
                           // NEW OPTION
						   
//                           formName.elements[DesObjID].options[DesLen]= new Option(trimLeft1(formName.elements[objID].options[j].text), formName.elements[objID].options[j].value);
                        }
                        else
                           window.alert("This medication has been selected.");

                     }
                 }
              }
           }
        }
	   datechanged=true;
     }
     //CLEAR
     for (j=0; j<formName.elements[objID].length; j++)
          formName.elements[objID].options[j].selected = false;
  }
}

function AppendItemFromAutoComplete(dd, textValue, DesName,formName){
	if ((dd == null)||(textValue == null))
	{
	    return;
	}
	
	bindCheckBox(formName, textValue, "check");
	var DesObjID = GetObjID(DesName,formName);
	
	if (DesObjID != -1)
	{
		if (formName.elements[DesObjID].length == 10000)
      	{
            window.alert("most can select 10000 items ");
        }else
        {  
        	if ((1 + formName.elements[DesObjID].length) > 10000)
            {  	window.alert("most can select 10000 items ");
            }else
            {
            	if (!IsSelected1(DesObjID, dd,textValue, formName))
              	{ 
              	    //GET LENGTH
					//////// modify by youly  12.27  (add begin)
					var arrValue = new Array();
					var arrText  = new Array();
					var len = formName.elements[DesObjID].length;
					// 将select中的所有option的value值将保存在Array中
					for (var i = 0; i < len; i++)
					{
						arrValue[i] = formName.elements[DesObjID].options[i].value; 
						arrText[i] = formName.elements[DesObjID].options[i].text; 
					}
                 	// delete all
					while (len--)
					{
						formName.elements[DesObjID].options[len] = null;
					}
					var innerHTML_Text="<SELECT name=\"drugIDs\"  multiple size=\"10\"  onDblClick=\"javascription:RemoveItemInMedication('drugIDs',formulationForm);\">";
					//innerHTML_Text+="<OPTGROUP  label='Medication to be checked'>";
					// add old select
					for (i = 0; i < arrValue.length; i++)
					{
						if ( (arrValue[i]!=null) && (arrText[i]!=null) )
						innerHTML_Text+=" <option value='"+arrValue[i]+"'>"+arrText[i]+"</option> ";
					}
					textValue = trimLeft1(textValue);
					innerHTML_Text+=" <option value='"+dd+"'>"+textValue+"</option> ";
					//innerHTML_Text+="</OPTGROUP>";
					innerHTML_Text+="</SELECT>"

					drugIDs_div.innerHTML=innerHTML_Text;
					
					//////// modify by youly  12.27  (add end)
					//DesLen = formName.elements[DesObjID].length;
                    // NEW OPTION
					//formName.elements[DesObjID].options[DesLen]= new Option(trimLeft1(formName.elements[objID].options[j].text), formName.elements[objID].options[j].value);
                    datechanged=true;
              	}else{
                    window.alert("This medication has been selected.");
                }
            }
        }
    }
}



function bindCheckBox1(formName, dd, mode)
{
	if(typeof(formName.allGroup)=="undefined"){
		alert("all group is null");
		return ;
	}
	if(typeof(formName.allGroup.length)=="undefined"){
		alert("all group length is null");
		return ;
	}
    for(tmp=0;tmp<formName.allGroup.length;tmp++)
	{
	   if (formName.allGroup[tmp].title == dd)
	   {
	      if (mode == "check")
	      {
	          formName.allGroup[tmp].checked=true;
	      }else
	      {
	          formName.allGroup[tmp].checked=false;
	      }
	   }
	}
}

function AppendListboxForUser(ObjName, DesName,formName){
	objID    = GetObjID(ObjName,formName);
  	DesObjID = GetObjID(DesName,formName);
	var textValue;
  	if (objID != -1 && DesObjID != -1)
  	{  
		if ( IsSelected1(DesObjID, "0000","0000",formName) )
        		window.alert("This group has already been included in your group list");
     		else
     		{  
			if ( HasTotal(objID,formName) )
        {  formName.elements[DesObjID].length = 0;
           formName.elements[DesObjID].options[0]= new Option("---please select---", "0000");

        }
        else
        {  if (formName.elements[DesObjID].length == 10000)
              window.alert("most can select 10000 items ");
           else
           {  //GET SELECTED ITEM NUMBER
              SelNum = 0;
              for (var j=0; j<formName.elements[objID].length; j++)
              {   if ( formName.elements[objID].options[j].selected)
                  SelNum ++;
              }
              if ((SelNum + formName.elements[DesObjID].length) > 10000)
                 window.alert("most can select 10000 items ");
              else
              {  //add
                 for (j=0; j<formName.elements[objID].length; j++)
                 {   if (formName.elements[objID].options[j].selected)
                     {  //GET VALUE
                        dd = formName.elements[objID].options[j].value;
						textValue = formName.elements[objID].options[j].text;
						
						bindCheckBox1(formName, textValue, "check");


                        if (!IsSelected1(DesObjID, dd,textValue, formName))
                        {  //GET LENGTH

							//////// modify by youly  12.27  (add begin)
							var arrValue = new Array();
							var arrText  = new Array();

							var len = formName.elements[DesObjID].length;
							
							// 将select中的所有option的value值将保存在Array中
							for (var i = 0; i < len; i++)
							{
								arrValue[i] = formName.elements[DesObjID].options[i].value; 
								arrText[i] = formName.elements[DesObjID].options[i].text; 
							}

							// delete all
							while (len--)
							{
								formName.elements[DesObjID].options[len] = null;
							}
						   
							var innerHTML_Text="<SELECT name=\"groups\"  multiple size=\"10\" onDblClick=\"javascription:RemoveItemInHealthConcern('groups',mitaminsUserForm);\">";
							
							//innerHTML_Text+="<OPTGROUP  label='Medication to be checked'>";
							// add old select
							for (i = 0; i < arrValue.length; i++)
							{
								if ( (arrValue[i]!=null) && (arrText[i]!=null) )
									innerHTML_Text+=" <option value='"+arrValue[i]+"'>"+arrText[i]+"</option> ";
							}

							textValue = trimLeft1(textValue);

							innerHTML_Text+=" <option value='"+dd+"'>"+textValue+"</option> ";
							//innerHTML_Text+="</OPTGROUP>";
							innerHTML_Text+="</SELECT>"

							groups_div.innerHTML=innerHTML_Text;

							//////// modify by youly  12.27  (add end)


//                           DesLen = formName.elements[DesObjID].length;
                           // NEW OPTION
						   
//                           formName.elements[DesObjID].options[DesLen]= new Option(trimLeft1(formName.elements[objID].options[j].text), formName.elements[objID].options[j].value);
                        }
                        else
                           window.alert("This group has been selected.");

                     }
                 }
              }
           }
        }
	   datechanged=true;
     }
     //CLEAR
     for (j=0; j<formName.elements[objID].length; j++)
          formName.elements[objID].options[j].selected = false;
  }
}
