var componentArray =new Array()

function HsccDTO(action,code,description,id){
	this.action = action;
	this.code = code;
	this.description = description;
	this.id = id;
}

function clearHSCCValues(hsccFrmControls){
	hsccFrmControls.selectComtObj.length=0;
	hsccFrmControls.elementString.value="";
}

function getElementString(){
	var componentString = '';
	for(var count=0;count<componentArray.length;count++){
		var hsccDTO = componentArray[count];
		if(componentString == null){
			componentString = hsccDTO.action+"~"+hsccDTO.code+"~"+hsccDTO.description+"~"+hsccDTO.id+"|";
		}else{
			componentString += hsccDTO.action+"~"+hsccDTO.code+"~"+hsccDTO.description+"~"+hsccDTO.id+"|";
		}
	}
	if(componentString != null && componentString.length > 0){
		componentString = componentString.substring(0,componentString.length);
	}
	hsccFrmControls.elementString.value = componentString;
}


function getDTOListFromElementString(){
	elementString = hsccFrmControls.elementString.value;
	var dtoList = new Array();
	if(elementString != null){
		var elementDataString_Array = elementString.split("|");
		for(count=0;count<elementDataString_Array.length;count++){
			var elementDataString = elementDataString_Array[count];
			if(elementDataString_Array[count]){
				var elementData_Array = elementDataString.split("~");
				if(elementData_Array[0] && elementData_Array[1] && elementData_Array[2]){
					var hsccDTO = new HsccDTO(elementData_Array[0],elementData_Array[1],elementData_Array[2],elementData_Array[3]);
					dtoList[count] = hsccDTO;
				}
			}
		}
	}
	componentArray = dtoList;
}


function _hscc_common_addElement(_value,_text,_elementObj){
   	 var duplicateFlag=false;
	  for(lcount=0;lcount<eval(_elementObj).length;lcount++){
	  		if(_value==eval(_elementObj)[lcount].value) duplicateFlag=true;
	   	}
	  if(!duplicateFlag){
	  	++eval(_elementObj).length;	 	
	  	var _objIndex=eval(_elementObj).length;
	  	eval(_elementObj)[_objIndex-1].value=_value;
	  	eval(_elementObj)[_objIndex-1].text=_value+" "+_text;
	  	 _hscc_common_addToList(_value,_text);
	  }
   }
   
function _hscc_common_loadList(_elementObj){
	for(var count=0; count<componentArray.length; count++){
		var hsccDTO = componentArray[count];
		++eval(_elementObj).length;	 	
	  	var _objIndex=eval(_elementObj).length;
	  	eval(_elementObj)[_objIndex-1].value=hsccDTO.code;
	  	eval(_elementObj)[_objIndex-1].text=hsccDTO.description;
	}
}   
   
function _hscc_common_addToList(_value,_text){
	var status = "";
	if(componentArray.length > 0){
		for(var count=0; count<componentArray.length; count++){
			var hsccDTO = componentArray[count];
			if(hsccDTO.code != _value && ((hsccDTO.action != "") && (hsccDTO.action != "D") || (hsccDTO.action != "N"))){
				status="new";
			}else if(hsccDTO.code == _value && hsccDTO.action != "" && hsccDTO.action == "D"){
				var hsccDTO = componentArray[count];
				hsccDTO.action="U";
				componentArray[count]=hsccDTO;
				getElementString();
				break;
			}
		}
	}else{
		var count = 0;
		var hsccDTO = new HsccDTO("N",_value,_text);
		componentArray[count++]=hsccDTO;
		getElementString();
	}
	if(status == "new"){
		var hsccDTO = new HsccDTO("N",_value,_text);
		componentArray[componentArray.length] = hsccDTO;
		getElementString();
	}
}   

function _common_clearAllElement(_elementObj){
	if(eval(_elementObj)){
   		try{
	   		while(eval(_elementObj)){
	   			--eval(_elementObj).length;
	   		}
   		}
   		catch(e){}
   	}
}

 //Common implementations for add,remove and remove all 
   function _hscc_common_removeElement(code,_elementObj){
   	 var tempCommArray=new Array()
	   	 for(lcount=0;lcount<eval(_elementObj).length;lcount++){
	   	 	var valCodePair=new Array();
	   	 	valCodePair[valCodePair.length]=eval(_elementObj)[lcount].value;
	   	 	valCodePair[valCodePair.length]=eval(_elementObj)[lcount].text;
	  		if(code==eval(_elementObj)[lcount].value){
		 	      eval(_elementObj)[lcount].value="";
		  		  eval(_elementObj)[lcount].text="";
		  	}
		  	else{
			 	tempCommArray[tempCommArray.length]=valCodePair;
		  	}
	     }
	     _common_clearAllElement(_elementObj);
	     for(arrcount=0;arrcount<tempCommArray.length;arrcount++){
	     	if(tempCommArray[arrcount][0]){
	   			++eval(_elementObj).length;	 	
			  	var _objIndex=eval(_elementObj).length;
			  	eval(_elementObj)[_objIndex-1].value=tempCommArray[arrcount][0];
				eval(_elementObj)[_objIndex-1].text=tempCommArray[arrcount][1];
	     	}
	     }
	     if(eval(_elementObj))
		     eval(_elementObj).selectedIndex=0;
		  _common_removeFromList(code);  
		  getElementString();
  }
  
  function _common_removeFromList(_value){
  		var status = "";
  		var incCount = 0;
  		var tempCommArray=new Array();
		for(var count=0; count<componentArray.length; count++){
			var hsccDTO = componentArray[count];
			if(hsccDTO.code == _value && hsccDTO.action == "U"){
				var hsccDTO = componentArray[count];
				hsccDTO.action="D";
				tempCommArray[incCount++] = hsccDTO;
			}else if(hsccDTO.code != _value){
				var hsccDTO = componentArray[count];
				tempCommArray[incCount++] = hsccDTO;
			}
		}
		componentArray = null;
		componentArray = tempCommArray;
  }
