
function initDD(id, vis){
	myInt = "clearDDInt"+id
	if(myInt){clearInterval(myInt)}
	
	containerObj = document.getElementById("dd"+ id +"Container");

	ddActiveItem = -1;
	
	if(containerObj){
		
		valObj = document.getElementById("dd"+ id +"Value")
		if(valObj){originalVal = valObj.value}
		
		if(containerObj){
			if(vis.length==''){
				if(containerObj.style.display=="none"){
					vis="block";
				}else if(containerObj.style.display=="block"){
					vis="none";
				}else{
					vis="block";
				}
			}
			containerObj.style.display = vis
		}
		
		if(activeDD!=id){
		prevObj = document.getElementById("dd"+activeDD+"Container")
			if(prevObj){prevObj.style.display = "none";}
		}
		activeDD = id;
		
		generateDD(id, eval(id+"Arr"))
		
	}else{
		}
}

function resetDropdown(id, typ){
obj = document.getElementById(id)
	
	if(obj){
		if(typ=="out"){
		resetDDInt = setTimeout(function(){obj.style.display='none';}, 300)
		}
		
		if(typ=="over"){
		 clearInterval(resetDDInt)
		}
	}
	
	displayID = id
	displayID = displayID.replace("dd", "")
	displayID = displayID.replace("Container", "")
	objDisplay = document.getElementById("dd"+ displayID +"Display")
	if(objDisplay){objDisplay.blur()}
}
function clearDD(id){
	debug("Clearing active dropdown list ["+ id +"]")
	
	clearDDInt = setTimeout(function(){
			containerObj = document.getElementById("dd"+id+"Container")
			activeDD = "";
			if(containerObj){containerObj.style.display='none';};
		}, 150)
		
		
		form = document[id+"Form"]
		submitOnChange = eval(id+"SubmitOnChange")
		
		if(form){
			
			valObj = document.getElementById("dd"+ id +"Value")
			if(valObj){currentVal=valObj.value}else{currentVal=""}
			
			if((originalVal!=currentVal&&submitOnChange==true)){
			form.submit()
			}else{
				}
		}else{
			}
		
}

function swapDropdown(id){

	obj = document.getElementById("dd"+id+"Container")
	if(obj){
		vis = obj.style.display
		if(vis=="none"){obj.style.display = "block"}
		if(vis=="block"){obj.style.display = "none"}
	
	}
}

function refocusField(id){
	
	obj = document.getElementById("dd"+id+"Display")
	if(obj){obj.focus();}
}

function generateDD(id, arr){
		
	html = ""
	cls = "ddItemOut"
	listObj = document.getElementById("dd"+id+"List")
	default_arr = eval(id+"Arr")
	
	if(arr.length==0||arr==undefined){arr = default_arr;}
	
	if(listObj){
		
		for(i=0;i<default_arr.length;i++){
		
			divObj = document.getElementById("ddItem"+id+"_"+i)
			if(divObj){listObj.removeChild(divObj)}
			
		}
		
		for(i=0;i<arr.length;i++){
			
			str = arr[i];
			name_val_arr = str.split("|");
			name = name_val_arr[0];
			
			myDiv = document.createElement("div")
			myDiv.setAttribute("id", "ddItem"+id+"_"+i)
			
			if(browserTyp=="Explorer"){
						
			myDiv.setAttribute("className", cls)
			myDiv.onmouseover = function(){swapOverOut(this.id, 'css', 'Over')}
			myDiv.onmouseout = function(){swapOverOut(this.id, 'css', 'Out')}
			myDiv.onmousedown = new Function("selectDD('"+id+"', '"+str+"')")
			
			}else{
			
			myDiv.setAttribute("class", cls)
			myDiv.setAttribute("onmouseover", "swapOverOut(this.id, 'css', 'Over')")
			myDiv.setAttribute("onmouseout", "swapOverOut(this.id, 'css', 'Out')")
			myDiv.setAttribute("onmousedown", "selectDD('"+id+"', '"+str+"')")
			
			}
			
			myDiv.innerHTML = name
			listObj.appendChild(myDiv)
		}
		
		ddActiveArray = arr;
		
	}else{
		}
}

function keyDownDD(id, key){
	if(key!=16){
		if(key==9){
			clearDD(id, submitOnChange)
			
		}else if(key==38){
			ddActiveItem = selectItem(ddActiveItem, "-");setClass(id, ddActiveItem)
			
		}else if(key==40){
			ddActiveItem = selectItem(ddActiveItem, "+");setClass(id, ddActiveItem)
			
		}else if(key==13){
			selectDD(id, ddActiveArray[ddActiveItem])
		}
	}
}
		
function keyUpDD(id, key, arr){
	if(key!=16&&key!=9&&key!=38&&key!=40&&key!=13){
		
			obj = document.getElementById("dd"+ id +"Display")
			
			if(ddActiveItem==undefined){ddActiveItem=-1}
			
			if(obj){
				
				actions = "";
				val = obj.value;
				cls = obj.className;
				default_arr = arr
				ddStr = "";
				
				if(arr){
					if((key>=46&&key<=105)||(key==8)||(key==32)||(val.length>0&&val.length<25)){
					for(i=0;i<arr.length;i++){
							
							arr_val = arr[i].toLowerCase()
							fld_val = val.toLowerCase()
							if(arr_val.substr(0,fld_val.length)==fld_val){
								ddStr += arr[i]+";";
							}else{
								}
						}
						if(ddStr.length>0){ddStr = ddStr.substr(0, ddStr.length-1)}	
					}
					
					if(val.length==0||ddStr.length==0){
						ddActiveArray = arr
					}else{
						ddActiveArray = ddStr.split(";")
					}
					
					generateDD(id, ddActiveArray)
					
					}else{
					}
				
			}else{
				}
		}
		
	objContainer = document.getElementById("dd"+id+"Container")
	if(objContainer){objContainer.style.display = "block";}
}

function selectItem(ddActiveItem, typ){
	
	if(typ=="+"){ddActiveItem++}else{ddActiveItem--}
	
	maxCount = ddActiveArray.length
	
	if(ddActiveItem<0){ddActiveItem=0}
	
	if(ddActiveItem>=maxCount){ddActiveItem=maxCount-1}
	
	return ddActiveItem;
	
}
function setClass(id, ddActiveItem){
	obj = document.getElementById("ddItem"+id+"_"+ddActiveItem)
	if(obj){obj.className = obj.className.replace("Out", "Over")}
	
	objPrev = document.getElementById("ddItem"+id+"_"+(ddActiveItem-1))
	objNext = document.getElementById("ddItem"+id+"_"+(ddActiveItem+1))
	
	if(objPrev){objPrev.className = objPrev.className.replace("Over", "Out")}
	if(objNext){objNext.className = objNext.className.replace("Over", "Out")}
	
	obj = document.getElementById("dd"+id+"Container")
	
	if(obj){
			
		if(ddActiveItem>5){
			increment = (ddActiveItem - 5)*14 
			obj.scrollTop = increment
			}else{
			obj.scrollTop = 0
			}
	}else{
		}
}
function selectDD(id, str){
	if(id=="ddAccountDisplay"){
	document.getElementById('prepaidLoginPanel_error').style.display = "none";	
	document.getElementById('prepaidLoginPanel_min').style.display = "none";	
	document.getElementById('prepaidLoginPanel_mask').style.display = "none";
	}
	
	activeDD = "";
	
	obj_1 = document.getElementById("dd"+ id +"Display")
	obj_2 = document.getElementById("dd"+ id +"Value")
	
	if(obj_1&&obj_2&&str!=undefined){
		
		name_val_arr = str.split("|");
		name = name_val_arr[0];
		val = name_val_arr[1];
		
		if(val==undefined){val=name}
		
		obj_1.value = name;
		
		obj_2.value = val;
		
	}else{
		}
	
	updateDynamicPanels(id)
	clearDD(id)
}

function getValueFromItem(item){
	return item.substr(item.indexOf("|")+1, item.length)
}

function getNameFromItem(item){
	return item.substr(0, item.indexOf("|"))
}

function loadValueDD(id, arr){
	obj_1 = document.getElementById("dd"+ id +"Display")
	obj_2 = document.getElementById("dd"+ id +"Value")
	
	if(obj_1&&obj_2){
		
		fieldVal = obj_2.value
		
		if(fieldVal.length>0){
			for(i=0;i<arr.length;i++){
				str = arr[i].toString()
				name = str.substr(0, str.indexOf("|"))
				val = str.substr(str.indexOf("|")+1, str.length)
				
				if(fieldVal.toLowerCase()==val.toLowerCase()){
					obj_1.value = name
				}
			}
		}
	}
}

function updateDynamicPanels(id){
	
	inputID = "dd"+ id +"Value"
	arrName = eval(id +"Arr")
	divListPrefix = id+"Panel"
	
	testObj = document.getElementById(divListPrefix+"_0")
	if(testObj){
	
		setTimeout(function(){
				
			obj = document.getElementById(inputID)
			
			if(obj){
				val = obj.value;
				
				if(val.length>0){
					for(a=0;a<arrName.length;a++){
						
						if(arrName[a].indexOf(val)>0){activeID = a;}
						
						temp_obj = document.getElementById(divListPrefix +"_"+ a)
						if(temp_obj){temp_obj.style.display = "none";}
					}
					
					div_obj = document.getElementById(divListPrefix +"_"+ activeID)
					if(div_obj){div_obj.style.display = "block"}
				}
			}
		}, 250)
	}else{
	}
}
