
// custom dropdowns
var currentFilterTop;
var currentFilterList;
var currentFilterId;
var currentImgDown;
var currentSelectedShow;
var currentSelected;

function getPositionObject(obj){
    var o = function(){var curtop =0;var curleft = 0};

    o.curleft = 0;
    o.curtop = 0;

    if (obj.offsetParent) {
        o.curleft = obj.offsetLeft
        o.curtop = obj.offsetTop
        while (obj = obj.offsetParent) {
            o.curleft += obj.offsetLeft
            o.curtop += obj.offsetTop
        }
    }
//	o.curleft = obj.style.left;
//    o.curtop = obj.style.top;
	
    return o;
}

function trapDropdownMove(event)
{
    var oTop = document.getElementById(currentFilterTop);
    var oList = document.getElementById(currentFilterList);
    var curleft = 0;
    var filtertop = 0;
    var filterbottom = 0;
    var filterstart = 0;
    var filterend = 0;
    var curX;
    var curY;
    var scrollTop = 0;
    var scrollLeft = 0;
    
    event = event?event:window.event;

    var r = getPositionObject(oTop);
    filterstart = r.curleft;
    filtertop = r.curtop;
    filterend = filterstart + oTop.clientWidth;
    filterbottom = filtertop + oTop.clientHeight + oList.clientHeight;
    
    // Si IE6 + 4.01
    if(document.documentElement && document.documentElement.scrollTop)
    {
		scrollTop = document.documentElement.scrollTop;
    }
    else if(document.body && document.documentElement.scrollTop)
    {
		scrollTop = document.documentElement.scrollTop;
    }
    // Si IE6 + 4.01
    if(document.documentElement && document.documentElement.scrollLeft)
    {
		scrollLeft = document.documentElement.scrollLeft;
    }
    else if(document.body && document.documentElement.scrollLeft)
    {
		scrollLeft = document.documentElement.scrollLeft;
    }

	curX = event.clientX + scrollLeft;
	curY = event.clientY + scrollTop;
    if(curY > filterbottom || curY < filtertop || curX > filterend || curX < filterstart)
    {
        stopDropdown();
    }
}

function stopDropdown()
{
		document.onmousemove ='';
        hideLayer(currentFilterList);
        hideLayer(currentSelected);
        showLayer(currentSelectedShow);
      
        try{
        document.getElementById(currentFilterId + 'ArrowDrop').src = currentImgDown;
        }catch(e){}
        setTimeout("currentFilterId = '';",300);
}

function startDropdown(id,imgUp,imgDown)
{
    if(id != currentFilterId){
        currentFilterId = id;
        currentFilterTop = id + 'Top';
        currentFilterList = id + 'List';
		currentSelectedShow = id + 'SelectedShow';
		currentSelected = id + 'Selected';
        currentImgDown = imgDown;
        document.onmousemove = trapDropdownMove;
        hideLayer(currentSelectedShow);
        
        showLayer(currentSelected);
        showLayer(currentFilterList);
        document.getElementById(currentFilterId + 'ArrowDrop').src = imgUp;
    }
}

function selectNewItem(text,textId,value,valueId,indexId,divId,previousDivId,linkId,autoPostBack)
{
	var thisId = currentFilterId;
	stopDropdown();
	try{
		document.getElementById(thisId + 'SelectedShow').innerHTML = text;
	}catch(e){}
	document.getElementById(textId).value = text;
	document.getElementById(valueId).value = value;
	document.getElementById(indexId).value = '1';

	//Peut planter si pas de selectionner
	try{
		document.getElementById(document.getElementById(previousDivId).value).setAttribute('class','dropdownItem');
		document.getElementById(document.getElementById(previousDivId).value).className = 'dropdownItem';
	}catch(e){}
	document.getElementById(divId).setAttribute('class','dropdownItemSelected');
	document.getElementById(divId).className = 'dropdownItemSelected';


	document.getElementById(previousDivId).value = divId;
	if(autoPostBack == 'True'){
		eval(document.getElementById(linkId).href);
	}
    //return true;
}
function wait(msecs)
{
	var start = new Date().getTime();
	var cur = start
	while(cur - start < msecs)
	{
		cur = new Date().getTime();
	} 
} 
