﻿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";
        if (list.length < 15) {
            d.style.height = 'auto';
        }
        else {
            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 + 17) + "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 viewOptionsWithRegions(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.onmouseover = function() { ophvr = true; };
        d.onmouseout = function() { ophvr = false; };
        d.style.top = eval(curTop(trgt) + trgt.offsetHeight) + "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 = "hidden";
        a.style.cursor = "pointer";
        a.style.border = "1px solid #AAAAAA";        
        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);
            if (list[i].R) {
                r.style.fontWeight = "bold";
                r.style.textIndent = "0px";
            } else {
                r.style.textIndent = "10px";
            }
            r.style.overflow = "hidden";
            r.style.whiteSpace = "nowrap";
            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();