
// gmail code
	var isIE=(window.attachEvent && !window.opera);
	var Ka=navigator.userAgent.toLowerCase();
	var rt=Ka.indexOf("opera")!=-1;
	var r=Ka.indexOf("msie")!=-1&&(document.all&&!rt);
	
	function myAttachEvent(a,b,c){if(r){a.attachEvent("on"+b,c)}else{a.addEventListener(b,c,false)}}


function getXCoord(el) {
	x = 0;
	while(el){
		x += el.offsetLeft;
		el = el.offsetParent;
	}
	return x;
}

function getYCoord(el) {
	y = 0;
	while(el){
		y += el.offsetTop;
		el = el.offsetParent;
	}
	return y;
}


function insertAfter( referenceNode, newNode ){
	referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling);
}
	

var jsdropdelay=500;
var jsdropdelaytimer;
var dropLastItemObj;

function jsdrop(input){


	var obj=$(input);
	
	if(!obj){
		return false;
	}

	var divDrop_id="divDrop_"+input;
	var divDrop_container_id=divDrop_id+"_container";
	var divDropItem_id=divDrop_id+"_item";
	
	if(window.onload){
	
	}else{
	
		/* ==== add onload ==== */
		var oldOnload = window.onload || function () {};
		window.onload = function ()
		{
		  oldOnload();
		  jsdrop(input);
		}
		/* =================== */
		
		return false;
	}
	


	if(!$(divDrop_id)){

		
			var divDrop_container = document.createElement('div');
			divDrop_container.id = divDrop_container_id;
			divDrop_container.className = obj.className;
			divDrop_container.style.position = 'relative';
			//divDrop_container.style.left =getXCoord(obj) +0+'px';
			//divDrop_container.style.top =getYCoord(obj) +'px';
	
	
			insertAfter(obj,divDrop_container);
			
				
			var divDrop = document.createElement('div');
			divDrop.id = divDrop_id;	
			divDrop.className = "drophead";
			divDrop.style.position = 'absolute';
			divDrop.style.height = obj.getHeight() + "px";	
			divDrop.style.width = obj.getWidth()-22 + "px";
		
			divDrop.style.left =0 +0+'px';
			divDrop.style.top =0 +'px';
			divDrop.style.overflow = "hidden";
			// mouse out to hide
			myAttachEvent(divDrop_container,"mouseover",jsdrop_over);
			myAttachEvent(divDrop_container,"mouseout",jsdrop_out);
			//myAttachEvent(divDrop,"mouseout",jsdrop_out);
			divDrop_container.appendChild(divDrop);
			
				
		
	
			// hide select obj
			//obj.style.visibility="hidden";
			obj.style.display="none";
			
			
			var divDropItem = document.createElement('div');
			divDropItem.id = divDropItem_id;
			divDropItem.style.display="none";
			divDropItem.className = "dropitem";
			divDropItem.style.position = 'absolute';
			divDropItem.style.textAlign = 'left';
	
			
			// clear timeout
			myAttachEvent(divDropItem,"mouseover",jsdropitem_over);
			myAttachEvent(divDropItem,"mouseout",jsdropitem_out);
			
			// click event
			myAttachEvent(divDropItem,'click', jsdropitem_click); 
			document.body.appendChild(divDropItem);
			
		
			for(var i=0; i<obj.length; i++) {
				var item=document.createElement('a');
				item.href="#";
				item.innerHTML=obj.options[i].text;
				divDropItem.appendChild(item);
				myAttachEvent(item,'click', function(){ return false;}); 
			}
		
			if(obj.selectedIndex){
				divDrop.innerHTML=obj.options[obj.selectedIndex].text;
			}else{
				divDrop.innerHTML=obj.options[0].text;
			}
			
			myAttachEvent(divDrop_container,'click', jsdrop_show); 
	
		
			divDropItem.style.display="";
			divDropItem.style.visibility="hidden"; /* for cal  offsetWidth */
			
			if( divDropItem.offsetWidth < divDrop_container.offsetWidth ){
				
				var childrens = divDropItem.childNodes;
				for(var i = 0 ; i < childrens.length; i++){
					childrens[i].style.width=divDrop_container.offsetWidth + 'px';
				}
		
				divDropItem.style.width = divDrop_container.offsetWidth+7 + "px";
			}	
			if(divDropItem.offsetHeight>200){
				divDropItem.style.height=200+'px';
				divDropItem.style.width=divDropItem.offsetWidth+15+'px';
			}
			divDropItem.style.display="none";
			divDropItem.style.visibility=""; 
		
	
	
	}else{
		divDrop=$(divDrop_id);
	}
	
}
function jsdrop_show(e){
	
	var targ = e.srcElement ? e.srcElement : e.target;	
	if(targ.id!=""){
		if(targ.id.indexOf("_container")>0){
			var temp=(targ.id.replace("_container",""));
			targ=$(temp);
		}
		
		var itemList=$(targ.id+"_item");
		itemList.style.display="";
		var myH=(itemList.offsetHeight);
		itemList.style.display="none";
		
		
		if(dropLastItemObj){
			dropLastItemObj.style.display="none";
		}
		var obj_height=targ.offsetHeight;
		if(isIE){
			obj_height=obj_height-2;
		}
		
		itemList.style.left = getXCoord(targ) +'px';
		
	
			if(targ.id=="divDrop_aa"){
				itemList.style.top =getYCoord(targ) - myH+'px';
			}else{
			
				itemList.style.top =getYCoord(targ)  + obj_height+'px';
			}
			
		itemList.style.display="";
		
		dropLastItemObj=itemList;
	}	
}

function jsdropitem_click(e){
	var targ = e.srcElement ? e.srcElement : e.target;

	var obj_itemList=$(targ.parentNode);
	var obj_drop=$(obj_itemList.id.replace("_item",""));
	obj_drop.innerHTML=targ.innerHTML;
	
	var temp=(targ.parentNode.id.replace("_item",""));
		temp=temp.replace("divDrop_","");
		
	var obj_select=$(temp);
	
	var found=false;
	for(var i=0; i<obj_select.length; i++) {
		if(found==false && targ.innerHTML==obj_select.options[i].text){
			obj_select.selectedIndex=i;
			if(obj_select.onchange()){
			}
			found=true;
		}
	}
	
	//hide item list
	obj_itemList.style.display="none";
	
}

function jsdrop_over(e){
	var targ = e.srcElement ? e.srcElement : e.target;
	
	if(dropLastItemObj ){
		var temp = targ.id;
		temp=temp.replace("_item","");
		temp=temp.replace("_container","");
		var obj_item=$(temp+"_item");
	
		if(obj_item!=dropLastItemObj){
			dropLastItemObj.style.display = 'none';	
			dropLastItemObj=null;
		}
	}
	jsdropitem_clear();
	
}

function jsdrop_out(e){
	var targ = e.srcElement ? e.srcElement : e.target;
	
	if(targ.id==""){
		targ=targ.parentNode;
	}
		
	if(targ.id.indexOf("_container")>0){
		var temp=(targ.id.replace("_container",""));
		targ=$(temp);
	}
	if(targ.id.indexOf("_item")>0){
		var temp=(targ.id.replace("_item",""));
		targ=$(temp);
	}

	var itemList=$(targ.id+"_item");
	
	jsdropitem_clear();

	jsdropdelaytimer=setTimeout(function(){
		itemList.style.display = 'none';			
	},jsdropdelay);
}


function jsdropitem_over(e){
	jsdropitem_clear();
}

function jsdropitem_clear(e){
	clearTimeout(jsdropdelaytimer);
}
function jsdropitem_out(e){

	var targ = e.srcElement ? e.srcElement : e.target;

	if(targ.id.indexOf("_item")>0){
		var itemList=$(targ);
	}else if(targ.parentNode.id.indexOf("_item")>0){
		var itemList=$(targ.parentNode);
	}

	jsdropitem_clear();

	jsdropdelaytimer=setTimeout(function(){
		itemList.style.display = 'none';			
	},jsdropdelay);
		
}


