function getSearchDiseaseList(diseases,searchKey){	
	var map = new Map();
	var maxIndex = 0;

	//alert("aa1:"+diseases.length);
	//alert("searchKey:"+searchKey);

	for(var i=0;i<diseases.length;){
		var diseaseNames =diseases[i].split("|");
		var diseaseName = diseaseNames[1].toUpperCase(); 
		var diseaseID = diseaseNames[0];

		var startIndex1 = diseaseName.indexOf(searchKey.toUpperCase());

		if(startIndex1>maxIndex)
			maxIndex = startIndex1;

		if(startIndex1==0){
			//alert("1 postition:"+diseaseName);
			var tempObj = map.get(startIndex1);
			var diseaseObj = new Array();
			diseaseObj[0] = diseaseID;
			diseaseObj[1] = diseaseNames[1];
			
			if(tempObj == null || typeof(tempObj)=="undefined" || typeof(tempObj.length)=="undefined"){
				tempObj = new Array();
				tempObj[0] = diseaseObj;
				map.put(startIndex1,tempObj);
			}else{
				tempObj[tempObj.length]=diseaseObj;
				map.put(startIndex1,tempObj);
			}
			//alert("map.get(startIndex1).length:"+map.get(startIndex1).length);
			//alert("diseaseObj:"+diseaseObj);
			diseases.splice(i,1);
		}else{
			i++;
		}
	}

	//alert("aa2:"+diseases.length);

	for(var i=0;i<diseases.length;){
		var diseaseNames =diseases[i].split("|");
		var diseaseName = diseaseNames[1].toUpperCase(); 
		var diseaseID = diseaseNames[0];

		var startIndex2 = diseaseName.indexOf(" "+searchKey.toUpperCase());

		if(startIndex2>maxIndex)
			maxIndex = startIndex2;

		if(startIndex2>0){
			//alert("2 postition:"+diseaseName);
			var tempObj = map.get(startIndex2);
			var diseaseObj = new Array();
			diseaseObj[0] = diseaseID;
			diseaseObj[1] = diseaseNames[1];
			if(tempObj == null || typeof(tempObj)=="undefined" || typeof(tempObj.length)=="undefined"){
				tempObj = new Array();
				tempObj[0] = diseaseObj;
				map.put(startIndex2,tempObj);
			}else{
				tempObj[tempObj.length]=diseaseObj;
				map.put(startIndex2,tempObj);
			}
			diseases.splice(i,1);
		}else{
			i++;
		}
	}

	//alert("aa3:"+diseases.length);

	for(var i=0;i<diseases.length;){
		var diseaseNames =diseases[i].split("|");
		var diseaseName = diseaseNames[1].toUpperCase(); 
		var diseaseID = diseaseNames[0];

		var startIndex3 = diseaseName.indexOf("-"+searchKey.toUpperCase());

		if(startIndex3>maxIndex)
			maxIndex = startIndex3;

		if(startIndex3>0){
			//alert("3 postition:"+diseaseName);
			var tempObj = map.get(startIndex3);
			var diseaseObj = new Array();
			diseaseObj[0] = diseaseID;
			diseaseObj[1] = diseaseNames[1];
			if(tempObj == null || typeof(tempObj)=="undefined" || typeof(tempObj.length)=="undefined"){
				tempObj = new Array();
				tempObj[0] = diseaseObj;
				map.put(startIndex3,tempObj);
			}else{
				tempObj[tempObj.length]=diseaseObj;
				map.put(startIndex3,tempObj);
			}
			diseases.splice(i,1);
		}else{
			i++;
		}
	}

	//alert("bb:"+map.size());
	//alert("cc:"+map.getKeySet());

	var lastObjArr = new Array();
	var markLen = 0;

	//alert("maxIndex:"+maxIndex);

	for(var i=0;i<=maxIndex;i++){
		var arrObj = map.get(i);
		if(arrObj!=null && typeof(arrObj)!="undefined" && typeof(arrObj.length)!="undefined"){
			//alert(i+" num length is : "+arrObj);
			//alert(i+" num length is : "+arrObj.length);
			if(arrObj != null && arrObj.length>0){
				for(var len = 0; len<arrObj.length;len++){
					//alert("arrObj[len]: "+arrObj[len]);
					lastObjArr[markLen++] = arrObj[len];
				}
			}
		}
	}
	return lastObjArr;
}