﻿var ophvr = false;
var op_pos = 0;
var trgtelem;
var total=0;
var op_rangeu = 0;
var op_ranged = 0;
var op_display = false;
var row_cnt;

function viewOptions(trgt, href, list) {
    if (document.getElementById('div_table')) {
        op_display = false;
        var childFrame = document.getElementById('div_table')._ElementsIFrame;
        if (childFrame) { document.body.removeChild(childFrame); }
        document.body.removeChild(document.getElementById('div_table'));
    } 
     if (list == null){list = new Array();}
        
        trgtelem=trgt;
        var selectOption = $get("div_table");
        if(selectOption == null)
        {
		    d = document.createElement('div');
		    d.style.overflow ="auto";
		    d.style.height = '200px';	
		    d.id = 'div_table';
		    d.style.position='absolute';
		    d.style.zIndex=100005;
		    //d.style.cursor='hand';
		    d.onmouseover = function() { ophvr = true; };
		    d.onmouseout = function() { ophvr = false; };
		    d.style.top = eval(curTop(trgt) + trgt.offsetHeight) + "px";
		    d.style.width=(trgt.offsetWidth + 17) + "px";
		    d.style.left = curLeft(trgt)+1 + "px";
            d.align = 'left';
             
		    document.body.appendChild(d);		   
		    a = document.createElement('ul');		    
		    a.className="actbBgColor";
		    a.style.textAlign="left";
		    a.style.overflow='auto';
		    a.style.cursor='pointer';
		    a.style.border ="1px solid #AAAAAA";
		    a.style.width=(trgt.offsetWidth) + "px";
		    a.id = 'tat_table';
		    d.appendChild(a);

            var counter = 0;
		    var first = true;
		    var j = 1;
		    row_cnt = list.length;

		    
             for (var i = 0; i < list.length; i++){
                var r = document.createElement('li');
                 if (first){
					r.className="actbHColor";
					first = false;
					op_pos = 0;
				}else{
					r.className = "actbBgColor";
				}
			    r.id = 'tat_tr'+(j);
			    a.appendChild(r);
		       r.className="actbTextColor";
		       r.className="actbFFamily";
		       r.className="actbFSize";
	           r.onmousedown= setvalue;
	           r.pos = j;
		       r.innerHTML = list[i].LD ;
		       r.style.cursor='pointer';
		       r.onmouseover = highlightRow;
		       r.onmouseout = removehighlightRow; 
		       j++;
		     }
            selectOption = $get("div_table");
         }
         if(href != null){
            href.onmouseover = function() {ophvr = true;};
            href.onmouseout = function() {ophvr = false;};
            }
            selectOption.onmouseover = function() { ophvr = true; };
            selectOption.onmouseout = function() { ophvr = false; };
         selectOption.style.display = "block"; 
         document.onclick = removeOptions;
         addEvent(document,"keydown",op_checkkey);         
        
         op_rangeu = 1;
	     op_ranged = j-1;
	     op_display = true;
         if (op_pos <= 0) op_pos = 1;
         total = list.length - 1;
         addBackgroundIFrame(selectOption, trgtelem);  // call the IE function here
 }

function highlightRow() {
    if (op_pos < 1) {op_pos = 1;}
    document.getElementById('tat_tr'+op_pos).className="actbBgColor";
	op_pos = this.pos;
	document.getElementById('tat_tr'+op_pos).className="actbHColor";
}

function removehighlightRow()
{
 if (op_pos < 1) {op_pos = 1;}
 op_pos = this.pos;
}

//This function set value from table current element to value
function setvalue()
{
 trgtelem.value=this.innerHTML.replace(/&amp;/g, "&");
 setCaret(trgtelem,trgtelem.value.length);
 ophvr=false;
 removeOptions();
 callvalidatorOpt(trgtelem);
}


function removeOptions(){
        removeOpt();
}

function selectOption(){
    this.trgt.value = this.value;
    this.trgt.focus();
    removeOpt();
    callvalidatorOpt(trgt);
}


function op_checkkey(evt){

		if (!evt) evt = event;
		a = evt.keyCode;
		switch (a){
			case 38:
				op_goup();
				return false;
				break;
			case 40:
				op_godown();
				return false;
				break;
			case 13:
			if (op_display){
			var tempcode = document.getElementById('tat_tr'+op_pos);
				trgtelem.value =tempcode.innerHTML;
				 setCaret(trgtelem,trgtelem.value.length);
                ophvr=false;
                removeOptions();
					return false;
				}else{
					return true;
				}
				break;
		}
	}

	function op_movedown(){
	    op_rangeu++;
		op_ranged++;
	}
	function op_moveup(){
		op_rangeu--;
		op_ranged--;
	}

        

    function op_godown(){
       if ((!op_display) || ophvr) return;
        
        var seltable=$get("div_table");
		if (op_pos > total) return;
		document.getElementById('tat_tr'+op_pos).className="actbBgColor";
		op_pos++;
		
		if(seltable != null)
		{
         if(op_pos>0)   
         {
         if((seltable.getElementsByTagName('li')[op_pos - 1].offsetTop + seltable.getElementsByTagName('li')[op_pos - 1].offsetHeight) > ($get("div_table").scrollTop + $get("div_table").clientHeight) ) 
            { 
                $get("div_table").scrollTop= seltable.getElementsByTagName('li')[op_pos - 1].offsetTop + seltable.getElementsByTagName('li')[op_pos - 1].offsetHeight - $get("div_table").clientHeight;
            }
         }
		}
		if (op_pos > op_ranged) op_movedown();
		document.getElementById('tat_tr'+op_pos).className="actbHColor";
	}
	
	function op_goup(){
		if ((!op_display) || ophvr) return;
		
		var seltable=$get("div_table");
		if (op_pos == 1) return;
		document.getElementById('tat_tr'+op_pos).className="actbBgColor";
		op_pos--;
		
		if(seltable != null)
		{
          if(op_pos>0)   
          if((seltable.getElementsByTagName('li')[op_pos - 1].offsetTop) < 
             ($get("div_table").scrollTop ) )
            { 
          $get("div_table").scrollTop= seltable.getElementsByTagName('li')[op_pos - 1].offsetTop; // + seltable.getElementsByTagName('tr')[op_pos - 1].offsetHeight ; // - $get("div_table").clientHeight;
            }

		}
		if (op_pos < op_rangeu) op_moveup();
		document.getElementById('tat_tr'+op_pos).className="actbHColor";
	}
		
function removeOpt(){
op_display = false;
var sel=$get("div_table");
if(sel != null){
    ophvr=false;
    sel.style.display="none";
    removeEvent(document,"keydown",op_checkkey);
    document.body.removeChild(sel);
    document.onclick = null;
        var childFrame = sel._ElementsIFrame;
        if (childFrame) {
            childFrame.style.display = "none";
        }        
    }
}

function callvalidatorOpt(trgtCtrl)
	{
	   //ValidatorValidate();
	  if(trgtCtrl.value.trim() != '')
	   {  
        if(trgtCtrl.Validators != null)
        {
            if(trgtCtrl.Validators.length > 0)
            {
                var val = trgtCtrl.Validators[0];
                val.evaluationfunction(val);
            }
        }
       } 
	}

if(typeof(Sys)!=='undefined')Sys.Application.notifyScriptLoaded();