﻿var DDs = [];

// Funkce konstruktoru pro zjištění prohlížeče.
function DropDown_getNav()
{
	this.ver=navigator.appVersion;	
	this.dom=document.getElementById ? 1:0;

	this.ns4 = (document.layers && !this.dom) ? 1:0;
	this.ns6 = (this.dom && parseInt(this.ver) >= 5) ?1:0;
	this.minIE4 = (document.all) ? 1 : 0;
}

var DropDown_nav = new DropDown_getNav() //Nový objekt pro zjištění prohlížeče

function DropDown_getPosition(e)//Výpočet pozice elementu
{
	var left = 0;
	var top  = 0;
    
    if(e != null)
    {
	    while (e.offsetParent){
		    left += e.offsetLeft;
		    top  += e.offsetTop;
		    e     = e.offsetParent;
	    }

	    left += e.offsetLeft;
	    top  += e.offsetTop;	
	}
	else
	{
	    return null;
	}

	return {x:left, y:top};
}

function DropDown_mouseCoords(ev)//Odchycení pozice myši
{
	if (DropDown_nav.ns4 | DropDown_nav.ns6)
    {
        return {x:ev.pageX, y:ev.pageY};
    }
    if (DropDown_nav.minIE4)
    {
        return {
		x:ev.clientX + document.documentElement.scrollLeft,
		y:ev.clientY + document.documentElement.scrollTop
	    };        
    }    
}


//Zinicializuje DropDown
function Initialize_DropDown(inputID, tableID, isCZ, selectedIndex,
 enableRowAltClass, rowClass, rowAltClass, rowHoverClass, headClass, rowFocusedClass, showDDOnKeyDown, shownItems,
//parentID, childId, sqlCommand, hidePKCol, allowNull)
 parentID, childId, sqlCommand, hidePKCol, allowNull, indexRowHeader, indexRowInnerElId, indexRowElemId, indexRowSetCss, indexRowSetStyle,
 indexColClass, indexFirstDataRow, enableRowColor, enableCelluleColorCss, enableCelluleColorStyle) {
    var dd = new Object();
    dd.SearchString = new String();
    dd.ShownItems = shownItems;  //aby sedel pocet

    var mainElem = document.getElementById(tableID);
    dd.MainElem = mainElem;
    dd.MainElem.IsDisplayed = false;


    var mainInput = document.getElementById(inputID);
    dd.MainInput = mainInput;

    dd.MainInput.IsDisplayed = false;

    dd.DontMoveSelect = true;
    dd.LockAutoComp = false;

    //Start Steinemtz
    dd.EnableRowAltClass = enableRowAltClass;
    dd.StavEdit = ((dd.MainInput.StavEdit)? true : false); //zda je nastavena hodnota v editu...pro funkci oDropDown_RefreshText
    dd.LastSetClassOuter = "";
    dd.LastSetClassInner = "";  //poslení nastavená třída...pro funkci oDropDown_RefreshText
    //End Steinmetz
    dd.RowClass = rowClass;
    dd.RowAltClass = rowAltClass;
    dd.RowHoverClass = rowHoverClass;
    dd.HeadClass = headClass;
    dd.RowFocusedClass = rowFocusedClass;
    dd.ShowDDOnKeyDown = showDDOnKeyDown;
    dd.ParentID = parentID;
    dd.ChildId = childId;
    dd.SqlCommand = sqlCommand;
    dd.HidePKCol = hidePKCol;

    //dd.MainInput.RefreshText = function(){return oDropDown_RefreshText(inputID);}; //old
    //Start Steinmetz
    dd.EnableRowColor = enableRowColor
    dd.IndexColClass = indexColClass;
    dd.IndexRowHeader = indexRowHeader;
    dd.IndexRowInnerElId = indexRowInnerElId;
    dd.IndexRowElemId = indexRowElemId;
    dd.IndexRowSetCss = indexRowSetCss;
    dd.IndexRowSetStyle = indexRowSetStyle;
    dd.IndexFirstDataRow = indexFirstDataRow;
    dd.MainInput.RefreshText = function() { return oDropDown_RefreshText(inputID); };
    dd.IdInnerElem = "innerel" + inputID;
    dd.EnableCelluleColorCss = enableCelluleColorCss;
    dd.EnableCelluleColorStyle = enableCelluleColorStyle;
    
    dd.MainInput.TextToValue = function() { return oDropDown_TextToValue(inputID); };
    dd.SelectIndex = function() { oDropDown_SelectIndex(dd); };
    dd.SearchAidFromText = function(text) { return oDropDown_SearchAidFromText(inputID, text) };
    dd.SearchTextFromAID = function(AID) { return oDropDown_SearchTextFromAID(inputID, AID) };
    
    dd.SetScrollPositionDown = function() { oDropDown_SetScrollPositionDown(dd); }
    dd.SetScrollPositionUp = function () { oDropDown_SetScrollPositionUp(dd) }
    
    //End Steinmetz
    
    dd.GetValue = function(){ return dd.Value; };
    dd.GetText = function(){ return dd.Text; };
    dd.IsCZ = isCZ + "";
    dd.AllowNull = allowNull;
    
    dd.MainElem.DD = dd;
    dd.MainInput.DD = dd;
    
    DDs.push(dd);
    
    if(parentID == "")
    {
        //Najdi sloupec s hodnotou do dropdown
        var pColIndex = 0;
	//var startIndex = ((dd.IndexRowHeader + 1 > dd.MainElem.rows.length - 1)? 0 : dd.IndexRowHeader + 1 ;
        var startIndex = dd.IndexRowHeader + 1;
	if(dd.IndexRowHeader + 1 < dd.MainElem.rows.length){
        for(var i = 0; i < dd.MainElem.rows[startIndex ].cells.length; i++) {
            var isPCol = dd.MainElem.rows[startIndex ].cells[i].getAttribute("pcol");
            if(isPCol == "true")
            {
                pColIndex = i;
                break;        
            }
        }
        
        dd.PCol = pColIndex;
        //Najdi sloupec s hodnotou prim klice
        var pKeyIndex = 0;
        for(var i = 0; i < dd.MainElem.rows[startIndex ].cells.length; i++) {
            var isPKey = dd.MainElem.rows[startIndex ].cells[i].getAttribute("pkey");
            if(isPKey == "true")
            {
                pKeyIndex = i;
                break;        
            }
        }
        }
        dd.PKey = pKeyIndex;
        //alert(dd.PCol + ";" + dd.PKey);
        
        if(selectedIndex*1 == -1)
        {
            if(dd.AllowNull == false)
            {
                dd.SelectedIndex = 0*1;
            }
            else
            {
                dd.SelectedIndex = -1;
            }
        }
        else
        {
            //Steinmetz
            dd.SelectedIndex = selectedIndex * 1 + dd.IndexRowHeader - 1;                
        }
        
        var optBackUp = [];
    
        for(var i = 1; i < dd.MainElem.rows.length; i++)
        {
            optBackUp.push(dd.MainElem.rows[i]);
        }
        
        dd.OptionsBackup = optBackUp;
        
        var code = "oDropDown_SetShownItems('" + dd.MainInput.id + "');";    
        setTimeout(code, 1);
        
        
    }
    else
    {
        dd.MainInput.disabled = true;
        dd.LoadData = oDropDown_LoadData;
        dd.RecieveData = oDropDown_RecieveData;
    }
    
    
    
    if(document.attachEvent)
    {
        document.attachEvent('onmousedown', oDropDown_OnBlur);
        dd.MainElem.attachEvent('onmouseover', oDropDown_OnMouseOver);
        dd.MainElem.attachEvent('onclick', oDropDown_OnClick);
        dd.MainInput.attachEvent('onkeypress', function (ev){ oDropDown_OnKeyPress(dd.MainElem.id, ev);});
        dd.MainInput.attachEvent('onkeydown', function (ev){ oDropDown_OnKeyDown(dd.MainElem.id, ev);});
    }
    else
    {
        document.addEventListener('mousedown', oDropDown_OnBlur, false);
        dd.MainElem.addEventListener('mouseover', oDropDown_OnMouseOver, false);
        dd.MainElem.addEventListener('click', oDropDown_OnClick, false);
        dd.MainInput.addEventListener('keypress', function (ev){ oDropDown_OnKeyPress(dd.MainElem.id, ev);}, false);
        dd.MainInput.addEventListener('keydown', function (ev){ oDropDown_OnKeyDown(dd.MainElem.id, ev);}, false);
    }
    
    dd.MainInput.onblur = oDropDown_OnInputBlur;
    dd.MainInput.DoubleClick.AddHandler(function(e){ return oDropDown_OnDblClick(e);});
    
    
    if(parentID != "" && childId == "")
    {
        if(!(dd.SelectedIndex == -1 && dd.AllowNull))
        {
            oDropDown_Confirm(document.getElementById(parentID).DD);    
        }
    }
    else
    {
        if(window.attachEvent)
        {
            oDropDown_SetSelectedValue(dd);  
        }
    }
    dd.MainInput.RefreshText();
}

function oDropDown_OnDblClick(e)
{
    if(e.srcElement != undefined)
    {
        var inp = e.srcElement;
        inp.select();
    }
    
    return false;
}


//Najde v kolekci dropDownu ten hledany podle hlavniho elementu
function oDropDown_GetDDByMainElem(mainElem)
{
    for(var i = 0; i < DDs.length; i++)
    {
        if(DDs[i].MainElem == mainElem)
        {
            return DDs[i];
        }
    }
    return null;
}

function oDropDown_OnKeyDown(mainElem, ev)
{
    var dd = oDropDown_GetDDByMainElem(document.getElementById(mainElem));
    var k = new Number(((ev.charCode == undefined || ev.charCode == 0)?ev.keyCode:ev.charCode));
    //document.getElementById("statusDiv").innerHTML += "  key down - code = " + k + "  char = " + String.fromCharCode(k);
    if(document.attachEvent)
    {
        oEditDropDown_ProcessCommand(k, dd);
    }
}


function oDropDown_OnKeyPress(mainElem, ev)
{
    var dd = oDropDown_GetDDByMainElem(document.getElementById(mainElem));
    var k = new Number(((ev.charCode == undefined || ev.charCode == 0)?ev.keyCode:ev.charCode));
    //document.getElementById("statusDiv").innerHTML += "  key press - code = " + k + "  char = " + String.fromCharCode(k);
    
    if(k != 9)
    {
        if(document.selection != undefined)
        {
            if(document.selection.createRange().text.length > 0)
            {
                oDropDown_Reset(dd);
                dd.MainInput.SetValue("");
                dd.MainInput.SetText("");
            }  
        }
        else
        {
            if(dd.MainInput.selectionStart != dd.MainInput.selectionEnd)
            {
                oDropDown_Reset(dd);
                dd.MainInput.SetValue("");
                dd.MainInput.SetText("");
            }
        }
    }
    
    if(dd.SelectedIndex != -1)
    {
        oDropDown_SelectIndex(dd);
    }
    
    if(dd.MainInput.GetText() != "")
    {
        dd.SearchString = dd.MainInput.GetText().toUpperCase();
    }
    
    //funkční tlačítka - backspace, enter, escape, up, down, delete
    if((k == 9) || (k == 8) || (k == 13) || (k == 27) || (k == 37) || (k == 38) || (k == 39) || (k == 40) || (k == 46))
    {
        return oEditDropDown_ProcessCommand(k, dd);
    }
    //ostatní
    else
    {
        if(dd.MainInput.readOnly != true)
        {
            if(ev.ctrlKey != true && k != 9 && ev.altKey != true && k > 31)
            {
                if(dd.MainElem.IsDisplayed == false && dd.ShowDDOnKeyDown == "true")
                {
                    oDropDown_Show(dd.MainInput.id, dd.MainElem.id);
                }
                
                dd.SearchString += String.fromCharCode(k).toUpperCase();
                oDropDown_Search(dd);  
                
                var code = "oDropDown_SetSearchedText('" + dd.MainInput.id + "','" + dd.SearchString.toLowerCase() + "');";
                setTimeout(code, 1);     
            }
        }   
    }
    
}

function oDropDown_SetSearchedText(inputID, text)
{
    var edit = document.getElementById(inputID);
    edit.SetText(text);
}


//Fulltextové vyhledávání
function oDropDown_Search(dd)
{
    var findings = [];
    
    for(var i = 1; i < dd.MainElem.rows.length; i++)
    {
        var cmp = new String(dd.MainElem.rows[i].cells[dd.PCol].innerHTML);
        cmp = cmp.toLocaleUpperCase();
        cmp = oDropDown_ClearText(cmp);
        var findIndex = cmp.indexOf(dd.SearchString);
        if(findIndex != -1)
        {
            var finding = new Object();
            finding.FIndex = findIndex*1;
            finding.VIndex = i*1;
            findings.push(finding);
        }
    }
    
    if(findings.length > 0)
    {
        findings.sort(function (a, b){ return (a.FIndex - b.FIndex);});
        oDropDown_ReArrangeList(dd, findings);
        dd.SelectedIndex = 0*1;
        oDropDown_SelectIndex(dd);
    }
    else
    {
        oDropDown_ReArrangeList(dd, findings);
        dd.SelectedIndex = 0*1;
    }
    
    return true;
}

//Filtrace
function oDropDown_ReArrangeList(dd, findings)
{
    var opt = [];
    for(var i = 0; i < findings.length; i++)
    {
        var it = dd.MainElem.rows[findings[i].VIndex].cloneNode(true);
        opt.push(it);
    }
    
    while(dd.MainElem.rows.length > 1)
    {
        dd.MainElem.lastChild.removeChild(dd.MainElem.lastChild.lastChild);
    }
    
    for(var i = 0; i < opt.length; i++)
    {
        dd.MainElem.lastChild.appendChild(opt[i]);
    }
    return true;
}

//Uvede seznam do původního stavu
function oDropDown_Reset(dd)
{
    dd.SearchString = "";
    
    while(dd.MainElem.rows.length > 1)
    {
        dd.MainElem.lastChild.removeChild(dd.MainElem.lastChild.lastChild);
    }
    
    for(var i = 0; i < dd.OptionsBackup.length; i++)
    {
        dd.MainElem.lastChild.appendChild(dd.OptionsBackup[i]);
    }
    
    for(var i = 0; i < dd.MainElem.rows.length; i++)
    {
        if(dd.MainElem.rows[i].cells[dd.PKey].innerHTML == dd.Value)
        {
            dd.SelectedIndex = (i*1)-1;            
            break;
        }
    }
    
    return true;
}

//Při kliknutí mimo zobrazenou tabulku schová všechny tabulky
function oDropDown_OnBlur(ev)
{
    var mousePos = DropDown_mouseCoords(ev);
    var curDD = null;
    for(var i = 0; i < DDs.length; i++)
    {
        var curObj = DDs[i].MainElem.parentNode;
        var curPos = DropDown_getPosition(curObj);
        var curWidth = parseInt(curObj.offsetWidth);
        var curHeight = parseInt(curObj.offsetHeight);
        if((mousePos.x < curPos.x || mousePos.x > curPos.x + curWidth) ||
        (mousePos.y < curPos.y || mousePos.y > curPos.y + curHeight))
        {
            if(DDs[i].MainElem.IsDisplayed == true)
            {
                curDD = DDs[i];
                break;
            }            
        }
    }
    
    if(curDD != null && curDD != undefined)
    {
        oDropDown_Reset(curDD);        
        oDropDown_Hide(curDD.MainInput.id, curDD.MainElem.id);        
    }
}

//Označí vybraný řádek
function oDropDown_SelectIndex(dd)
{
    var tempInt = ((dd.IndexRowHeader == -1) ? 0 : dd.IndexRowHeader);
    for(var i = tempInt; i < dd.MainElem.rows.length; i++)
    {
        if(i == dd.SelectedIndex + 1)
        {
            //Steinmetz
            var tempStr = dd.MainElem.rows[i].className;
            var position = tempStr.search(dd.RowHoverClass);
            if (position != -1) {
                var st = dd.MainElem.rows[i].className;
                st = st.substr(0, position - 1);
                //dd.MainElem.rows[i].className = st;
                dd.MainElem.rows[i].className = ((dd.EnableRowColor) ? dd.RowClass + " " + dd.MainElem.rows[i].cells[dd.IndexColClass].innerHTML + " " + dd.RowFocusedClass : dd.RowClass + " " + dd.RowFocusedClass);
                //tempStr = tempStr.substr(0, position);
                //dd.MainElem.rows[i].className = tempStr + dd.RowFocusedClass;
            } else {
                if (tempStr.search(" " + dd.RowFocusedClass) == -1) {
                    //dd.MainElem.rows[i].className = (dd.RowClass + " " + dd.RowFocusedClass);
                    dd.MainElem.rows[i].className = tempStr + " " + dd.RowFocusedClass;
                }
            }
	        dd.MainElem.rows[i].className.replace(dd.RowAltClass, "");
            
        }
        else
        {
            //Start Steinmetz
            if (dd.EnableRowAltClass) {
                dd.MainElem.rows[i].className = (((i % 2 == 0)) ? dd.RowClass : dd.RowAltClass);
            } else if ((dd.IndexColClass != -1) && (dd.MainElem.rows[i].cells[dd.IndexColClass].innerHTML) && (dd.EnableRowColor)) {
                dd.MainElem.rows[i].className = dd.RowClass + " " + dd.MainElem.rows[i].cells[dd.IndexColClass].innerHTML;
            } else {
                dd.MainElem.rows[i].className = dd.RowClass;
            }
            //End Steinmetz
            //dd.MainElem.rows[i].className = (((i % 2 == 0)) ? dd.RowClass : dd.RowAltClass);
        }
    }    
}

//Označí vybraný řádek
function oDropDown_HoverIndex(dd)
{
    var tempInt = ((dd.IndexRowHeader == -1) ? 0 : dd.IndexRowHeader);
    for (var i = tempInt; i < dd.MainElem.rows.length; i++) {
        if (i == dd.HoverIndex + 1) {
            dd.MainElem.rows[i].className += " " + dd.RowHoverClass;
        }
        else {
            //if ((i == dd.SelectedIndex + 1) && (dd.MainElem.rows[i].className.search(dd.RowFocusedClass) == -1))
            if (i == dd.SelectedIndex + 1) {
                //alert(dd.MainElem.rows[i].className);    
                var tempStr = dd.MainElem.rows[i].className;
                var position = tempStr.search(dd.RowHoverClass);
                if (position != -1) {
                    var st = dd.MainElem.rows[i].className;
                    st = st.substr(0, position - 1);
                    //dd.MainElem.rows[i].className = st;
                    dd.MainElem.rows[i].className = ((dd.EnableRowColor) ? dd.RowClass + " " + dd.MainElem.rows[i].cells[dd.IndexColClass].innerHTML + " " + dd.RowFocusedClass : dd.RowClass + " " + dd.RowFocusedClass);
                }

                //dd.MainElem.rows[i].className += " " + dd.RowFocusedClass;
            }
            else {
                //Start Steinmetz
                if (dd.EnableRowAltClass) {
                    dd.MainElem.rows[i].className = (((i % 2 == 0)) ? dd.RowClass : dd.RowAltClass);
                } else if ((dd.IndexColClass != -1) && (dd.MainElem.rows[i].cells[dd.IndexColClass].innerHTML) && (dd.EnableRowColor)) {
                    dd.MainElem.rows[i].className = dd.RowClass + " " + dd.MainElem.rows[i].cells[dd.IndexColClass].innerHTML;
                } else {
                    dd.MainElem.rows[i].className = dd.RowClass;
                }
                //End Steinmetz
                //dd.MainElem.rows[i].className = (((i % 2 == 0)) ? dd.RowClass : dd.RowAltClass);
            }
        }
    }
}

function oDropDown_GetItemOnIndex(dd)
{
    var val = dd.MainElem.rows[dd.SelectedIndex + 1].cells[dd.PKey].innerHTML;
    dd.MainInput.SetValue(val);
}

//Vybere označený řádek, vloží text do editu a skryje tabulku
function oDropDown_Confirm(dd)
{
    if(dd.MainElem.tBodies.length > 0 && dd.MainElem.tBodies[0].innerHTML != "")
    {
        if(dd.MainElem.IsDisplayed == true && dd.MainElem.rows.length > 1)
        {
            dd.Value = dd.MainElem.rows[dd.SelectedIndex + 1].cells[dd.PKey].innerHTML;
            oDropDown_Reset(dd);
            oDropDown_SelectIndex(dd);

            dd.MainInput.SetValue(dd.Value);
            
            
            oDropDown_Hide(dd.MainInput.id, dd.MainElem.id);
            
            if(dd.MainInput.IsValid && dd.ChildId != "")
            {
                var child = document.getElementById(dd.ChildId);
                child.DD.LoadData(dd.Value);
            } 
            
            
            return false;
        }
        else
        {
            if(dd.ChildId != "")
            {
                var child = document.getElementById(dd.ChildId);
                child.DD.LoadData(dd.MainElem.rows[dd.SelectedIndex + 1].cells[0].innerHTML);
            } 
            return true;
            
        }
    }
    else
    {
        oDropDown_Confirm(document.getElementById(dd.ParentID).DD);
    }
    
    return true;
}

function oDropDown_ClearText(txt)
{
    if(txt.indexOf('<') != -1 && txt.indexOf('>') != -1 && txt.indexOf('</') != -1)
    {
        while(txt.indexOf('<') != -1)
        {
            var rem = txt.substring(txt.indexOf('<'), txt.indexOf('>')+1);
            txt = txt.replace(rem, "");
        }
    }
    return txt;
}

function oDropDown_OnMouseOver(ev)
{
    var curTar = ((ev.currentTarget == undefined)?ev.srcElement:ev.currentTarget);
    while(curTar.id == undefined || curTar.id == null || curTar.id == "" || curTar.tagName.toUpperCase() != "TABLE")
    {
        curTar = curTar.parentNode;
    }
    
    var dd = oDropDown_GetDDByMainElem(curTar);
    var targ = ((ev.target == undefined)?ev.srcElement:ev.target);
    var index = oDropDown_GetIndexByPosition(dd, targ);
    //dd.SelectedIndex = index*1;
    //oDropDown_SelectIndex(dd);
    dd.HoverIndex = index*1;
    oDropDown_HoverIndex(dd);
    
}

function oDropDown_OnClick(ev)
{
    var curTar = ((ev.currentTarget == undefined)?ev.srcElement:ev.currentTarget);
    while(curTar.id == undefined || curTar.id == null || curTar.id == "" || curTar.tagName.toUpperCase() != "TABLE")
    {
        curTar = curTar.parentNode;
    }
    
    var dd = oDropDown_GetDDByMainElem(curTar);

    var targ = ((ev.target == undefined) ? ev.srcElement : ev.target);
    //Steinmetz
    dd.CurrTargId = targ.id;
    var index = oDropDown_GetIndexByPosition(dd, targ);
    if ((index * 1 != -1) || (dd.IndexRowHeader == -1))
    {
        dd.SelectedIndex = index*1;
        oDropDown_Confirm(dd);
    }
}

function oDropDown_GetIndexByPosition(dd, targ)
{
    while(targ.tagName.toUpperCase() != "TR" && targ.tagName.toUpperCase() != "TABLE")
    {
        targ = targ.parentNode;
    }
    
    for(var i = 0; i < dd.MainElem.rows.length; i++)
    {
        if(dd.MainElem.rows[i] == targ)
        {
            return (i -1);
        }
    }
    
    return -1;
}


function oDropDown_SetSelectedValue(dd)
{
    var val = null;
    if(dd.SelectedIndex != -1 && (dd.SelectedIndex + 1 < dd.MainElem.rows.length))
    {
        val = dd.MainElem.rows[dd.SelectedIndex + 1].cells[dd.PKey].innerHTML;
	dd.MainInput.SetValue(val);
    }
    //dd.MainInput.SetValue(val);
}

function oDropDown_OnInputBlur(ev)
{
    var curTar = ((window.event == undefined)?ev.currentTarget:window.event.srcElement);
    if(curTar.DD.LockAutoComp == false)
    {
        if(oDropDown_IsOnList(curTar.DD, curTar.GetValue()) == false)
        {
            if(curTar.GetText() != "" || curTar.DD.AllowNull == false)
            {
                curTar.DD.SearchString = new String(curTar.GetText());
                oDropDown_Search(curTar.DD);
                
                curTar.DD.SelectedIndex = 0*1;
                if(curTar.DD.MainElem.rows.length > 1)
                {
                    oDropDown_GetItemOnIndex(curTar.DD);
                }
                else
                {
                    oDropDown_Reset(curTar.DD);
                }
            }
        }
        
        //curTar.Validate(curTar.GetText());
    }
        
       
        
    return true;
}

//Checkes if given item is on the list
function oDropDown_IsOnList(dd, item)
{   
    var it = item.toLowerCase();
    for(var i = 1; i < dd.MainElem.rows.length; i++)
    {
        //if(dd.MainElem.rows[i].cells[dd.PCol].innerHTML.toLowerCase() == it)
        if(dd.MainElem.rows[i].cells[dd.PKey].innerHTML.toLowerCase() == it)
        {
            return true;
        }
    }
    return false;
}


function oEditDropDown_Validate(val, inputID)
{
    var edit = document.getElementById(inputID);
    return oDropDown_IsOnList(edit.DD, val);
}

function oEditDropDown_ProcessCommand(k, dd)
{
    switch(k*1)
    {
        case 8://backspace - smazání posledního znaku
        
            if(dd.MainInput.readOnly != true)
            {
                var s = dd.MainInput.GetText();
                s = s.substring(0, s.length - 1);
                
                oDropDown_Reset(dd); 
                dd.SearchString = s;
                if(dd.MainElem.IsDisplayed == true || dd.MainInput.readOnly == true)
                {
                    dd.MainInput.SetText(dd.SearchString.toLowerCase());
                }
                oDropDown_Search(dd);
            }
            
        break;
        
        case 13://enter - potvrzení výběru
        
            return oDropDown_Confirm(dd);
            
        break;
        
        case 27://escape - zrušení vyhledávání a výběru
        
            oDropDown_Reset(dd);
            if(dd.MainElem.IsDisplayed == true)
            {        
                oDropDown_Hide(dd.MainInput.id, dd.MainElem.id);
            }
            else
            {
                dd.MainInput.SetValue("");
                dd.MainInput.SetText("");
            }
            
        break;
        
        case 46://delete - vymazání textu
            if(dd.MainInput.readOnly != true)
            {
                dd.SearchString = "";
                oDropDown_Reset(dd);
                dd.MainInput.SetText("");
            }
        
        break;
        
        case 38://up - listování nahoru
                
        if(dd.MainElem.IsDisplayed == false || dd.Displaying == true)
        {
            if(dd.Displaying != true)
            {
                dd.SelectedIndex = ((dd.SelectedIndex - 1 > -1)?dd.SelectedIndex - 1:dd.MainElem.rows.length - 2);
                show = false;
                oDropDown_GetItemOnIndex(dd);
                oDropDown_Confirm(dd);
            }
            else
            {dd.Displaying = false;}
        }
        else
        {
            if (dd.IndexRowHeader != -1) {
                dd.SelectedIndex = ((dd.SelectedIndex - 1 > dd.IndexRowHeader - 1) ? dd.SelectedIndex - 1 : dd.MainElem.rows.length - 2);
                //dd.SelectedIndex = (((dd.SelectedIndex + 1 < dd.MainElem.rows.length - 1) && (dd.SelectedIndex != -1)) ? dd.SelectedIndex + 1 : dd.IndexRowHeader);
            } else {
                dd.SelectedIndex = ((dd.SelectedIndex - 1 > -2) ? dd.SelectedIndex - 1 : dd.MainElem.rows.length - 2);
            }
            //dd.SelectedIndex = ((dd.SelectedIndex - 1 > -1)?dd.SelectedIndex - 1:dd.MainElem.rows.length - 2);
            
            if(dd.SelectedIndex == (dd.MainElem.rows.length - 2))
            {
                dd.MainElem.parentNode.scrollTop = dd.MainElem.parentNode.scrollHeight;
            }             
            else
            {
                var scrolledItems = new Number((dd.MainElem.parentNode.scrollTop / dd.ScrollStep) - 2);
                //oDropDown_SetScrollPositionUp(dd);
                if (dd.SelectedIndex < (dd.MainElem.rows.length - 2) && (dd.SelectedIndex <= scrolledItems + dd.ShownItems))
                {
                    dd.MainElem.parentNode.scrollTop -= dd.ScrollStep;  
                }              
            }
            
            
            show = false;
            oDropDown_SelectIndex(dd);     
            
            
        }
        
    break;

case 40: //down - listování dolů
    //Start Steinmetz    
    if (dd.MainElem.IsDisplayed == false || dd.Displaying == true) {
        if (dd.Displaying != true) {
            dd.SelectedIndex = (((dd.SelectedIndex + 1 < dd.MainElem.rows.length - 1)) ? dd.SelectedIndex + 1 : dd.IndexRowHeader);
            show = false;
            oDropDown_GetItemOnIndex(dd);
            oDropDown_Confirm(dd);
        }
        else
        { dd.Displaying = false; }
    }
    else {
        if (dd.IndexRowHeader != -1) {
            dd.SelectedIndex = (((dd.SelectedIndex + 1 < dd.MainElem.rows.length - 1) && (dd.SelectedIndex != -1)) ? dd.SelectedIndex + 1 : dd.IndexRowHeader);
        } else {
            dd.SelectedIndex = (((dd.SelectedIndex + 1 < dd.MainElem.rows.length - 1)) ? dd.SelectedIndex + 1 : dd.IndexRowHeader);
        }
        show = false;
        oDropDown_SelectIndex(dd);

        if (dd.SelectedIndex == dd.IndexRowHeader) {
            dd.MainElem.parentNode.scrollTop = 0;
        }
        else {
            oDropDown_SetScrollPositionDown(dd);
            /*var scrolledItems = new Number((dd.MainElem.parentNode.scrollTop / dd.ScrollStep));
            if (dd.SelectedIndex >= scrolledItems + dd.ShownItems && dd.SelectedIndex >= dd.ShownItems) {
                dd.MainElem.parentNode.scrollTop += dd.ScrollStep;
            }*/
        }
    }
    //End Steinmetz
    break;
    
    case 9://tab - autocomplete
    
    if(dd.MainInput.readOnly != true)
    {
        if(dd.MainInput.GetText() != "")
        {
            if(oDropDown_IsOnList(dd, dd.MainInput.GetValue()) == false)
            {
                dd.SearchString = new String(dd.MainInput.GetText()).toUpperCase();
                oDropDown_Search(dd);
                
                dd.SelectedIndex = 0*1;
                
            }
        
            if(dd.MainElem.rows.length > 1)
            {
                oDropDown_GetItemOnIndex(dd);
                oDropDown_Confirm(dd);
            }
            else
            {
                oDropDown_Reset(dd);
                oDropDown_Hide(dd.MainInput.id, dd.MainElem.id);        
            }
        
        }
        
        //dd.MainInput.Validate(dd.MainInput.GetText());
    }
    
    break;
        
    }
}

function oDropDown_SetShownItems(inputID)
{
    var dd = document.getElementById(inputID).DD;
    
    //Set wrapper
    if(new Number(dd.ShownItems) > new Number(0) && new Number(dd.MainElem.rows.length - 1) > new Number(dd.ShownItems))
    {
        var pDiv = document.getElementById(inputID + "_HelpDiv");
        pDiv.appendChild(dd.MainElem.cloneNode(true));
    
        var wrapper = dd.MainElem.parentNode;
        /*while(wrapper.tagName.toUpperCase() != "DIV")
        {
            wrapper = wrapper.parentNode;
        }*/
        
        var itemsHeight = 0;
        itemsHeight += parseInt(pDiv.childNodes[0].rows[0].offsetHeight);  //Head
        if(itemsHeight == 0 || itemsHeight == undefined)
        {
            itemsHeight = 22;
        }
        dd.ScrollStep = itemsHeight;
        for(var i = 1; i < dd.ShownItems + 1; i++)
        {
            itemsHeight += parseInt(pDiv.childNodes[0].rows[i].offsetHeight);  //Items
        }
        
        if(itemsHeight == 22)
        {
            itemsHeight += (22*(dd.ShownItems-1));
        }
        
        wrapper.style.height = itemsHeight + 1 + "px";
        wrapper.style.overflow = "auto";
        
        var wNewWidth = 0;
        if(dd.MainElem.offsetWidth == "0")
        {
            wNewWidth = parseInt(pDiv.childNodes[0].offsetWidth) + 20;
        }
        else
        {
            wNewWidth = parseInt(dd.MainElem.offsetWidth) + 20 + 20;
        }
        
        //wrapper.style.width =  wNewWidth + "px";
        //alert(wrapper.offsetWidth);
       //pospisil nastavuje se uzivatelem v definicici dialogu
       // wrapper.style.width = "300px";
        
        pDiv.removeChild(pDiv.firstChild);
        pDiv.style.display = "none";
    }
}

function getScrollBarWidth ()
{
	document.body.style.overflow = 'hidden';
	var width = document.body.clientWidth;
	document.body.style.overflow = 'scroll';
	width -= document.body.clientWidth;
	if(!width) width = document.body.offsetWidth-document.body.clientWidth;
	document.body.style.overflow = '';
	return width;
}

function oDropDown_LoadData(param)
{
    //SEND AJAX
    if(this.LastParam != param)
    {
        this.LastParam = param;
        oEditDropDown_AJAX.SendCommand("LOAD_DATA",this.MainInput.id + "<loadData>" + param + "<loadData>" + this.SqlCommand , true);
    }
}

function oDropDown_RecieveData(resp)
{
    //clear dd
    if(this.MainElem.tBodies.length > 0)
    {
        this.MainElem.removeChild(this.MainElem.tBodies[0]);
    }

    var tBody = document.createElement("TBODY");

    //tab info
    var tabInfo = oDropDown_GetNodesText(resp, "info")[0].split("<infoItem>");
    var pKeyIndex = tabInfo[0]*1;
    var pColIndex = tabInfo[1]*1;
    
    //head
    var head = oDropDown_GetNodesText(resp, "head")[0].split("<headCell>");
    var hRow = document.createElement("TR");
    //hRow.className = this.HeadClass;
    
    for(var i = 0; i < head.length; i++)
    {
        var hCell = document.createElement("TH");
        hCell.innerHTML = head[i];
        hCell.className = this.HeadClass
        hRow.appendChild(hCell);
    }
    
    tBody.appendChild(hRow);
    
    if(this.SelectedIndex = -1)
    {
        this.SelectedIndex = 0;
    }
    
    //body
    var items = oDropDown_GetNodesText(resp, "item");
    for(var i = 0; i < items.length; i++)
    {
        var it = items[i].split("<cell>");
        var nRow = document.createElement("TR");
        if(i != this.SelectedIndex)
        {
            nRow.className = (((i % 2) == 0)?this.RowClass:this.RowAltClass);
        }
        else
        {
            //Steinmetz
            nRow.className += " " + this.RowFocusedClass;
        }
        
        //cells
        for(var j = 0; j < it.length; j++)
        {
            var nCell = document.createElement("TD");
            //nCell.style.padding = "0 1em 0 0";
            if(j == pKeyIndex && this.HidePKCol){ nCell.style.display = "none"; }
            if(j == pKeyIndex)
            {
                nCell.setAttribute("pkey", "true");
            }
            if(j == pColIndex){ nCell.setAttribute("pcol", "true"); }
            nCell.innerHTML = it[j];
            nCell.className = "dxgv";
            nRow.appendChild(nCell);
        }
        
        tBody.appendChild(nRow);        
    }
    
    
    this.MainElem.appendChild(tBody);
    
    this.MainInput.disabled = false;
    document.lockFocus = false;
    document.lockFocusID = "";
    
    
    this.PCol = pColIndex;
    this.PKey = pKeyIndex;
    oDropDown_SetSelectedValue(this);
    
    //Reset options backup
    var optBackUp = [];

    for(var i = 1; i < this.MainElem.rows.length; i++)
    {
        optBackUp.push(this.MainElem.rows[i]);
    }
    this.OptionsBackup = optBackUp;
    
    oDropDown_Confirm(this);
}

function oDropDown_GetNodesText(xmlInput, nodeName)
{
    var res = [];
    var beginTag = "<" + nodeName + ">";
    var endTag = "</" + nodeName + ">";
    
    while(xmlInput.indexOf(beginTag) != -1)
    {
        xmlInput = xmlInput.substring(xmlInput.indexOf(beginTag) + beginTag.length);
        res.push(xmlInput.substring(0,xmlInput.indexOf(endTag)));
    }
    
    return res;
}

function oDropDown_TextToValue(ID)
{
    var edit = document.getElementById(ID);   
	var text = edit.GetText();
	var val = text+"";	
	if(val=="undefined" || val=="null")
	{
		val = "";
	}

    var aidValue = edit.GetValue();
    if (aidValue == "") {
        //Přeformátování
        if (val != "") {
            for (var i = 1; i < edit.DD.MainElem.rows.length; i++) {
                if (edit.DD.MainElem.rows[i].cells[edit.DD.PCol].innerHTML == text) {
                    val = edit.DD.MainElem.rows[i].cells[edit.DD.PKey].innerHTML;
                    break;
                }
            }
        }
    } else {
        val = aidValue;
    }
	
	return val;
}

//Převezme hodnotu editačního pole, přeformátuje ji a zobrazí jako text
function oDropDown_RefreshText(ID)
{
    var edit = document.getElementById(ID);
    
	//Přeformátování
    var val = edit.GetValue() + "";

    //uprava pro IE
    var valID = ID + "_HFValue"
    //alert("valID v oDropDown_RefreshText - " + valID);
    var hedit = document.getElementById(valID);
    if (hedit == undefined) {
        val = edit.GetText();
    }
    //

	var text = val+"";
	if(text=="undefined" || text=="null")
	{
		text = "";
	}
	var stavEdit = false;
	if(text!="")
	{
	    var tempI = ((edit.DD.IndexRowHeader == -1) ? 0 : 1);
	    for(var i = tempI; i < edit.DD.MainElem.rows.length; i++)
	    {
	        if(edit.DD.MainElem.rows[i].cells[edit.DD.PKey].innerHTML == val)
	        {
	            //Start Steinmetz
	            edit.DD.SelectedIndex = i - 1;
	            oDropDown_SelectIndex(edit.DD);
                // -------------------------------------
                var stavSetClassOuter = false;
	            var stavSetClassInner = false;
	            for (var j = 0; j < edit.DD.MainElem.rows[i].cells.length; j++) {
	                outerElement = null;
	                if (edit.DD.IndexRowElemId != -1) {
	                    strOuterElement = edit.DD.MainElem.rows[edit.DD.IndexRowElemId].cells[j].innerHTML;
	                    if (strOuterElement != "") // chce to IE 
	                    { 
	                        outerElement = document.getElementById(strOuterElement);
	                    }	                    
	                }
	                innerElem = null;	                
	                if (edit.DD.IndexRowInnerElId != -1) {
	                    strInnerElem = edit.DD.MainElem.rows[edit.DD.IndexRowInnerElId].cells[j].innerHTML;
	                    if (strInnerElem != "")
	                    { 
	                        innerElem = document.getElementById(edit.DD.IdInnerElem + strInnerElem + "");
	                    }	                    
	                }
	                var newClass = "";
	                // hledám třídu v řádku
	                var arrayClass = edit.DD.MainElem.rows[i].className.split(" ");
	                for (var k = 0; k < arrayClass.length; k++) {
	                    if ((arrayClass[k] != edit.DD.RowHoverClass) && (arrayClass[k] != edit.DD.RowFocusedClass) && (arrayClass[k] != edit.DD.RowClass) && (arrayClass[k] != edit.DD.RowAltClass)) {
	                        newClass = ((newClass == "") ? newClass += arrayClass[k] : newClass += " " + arrayClass[k]);
	                    }
	                }
	                // hledám třídu v buňce
	                if ((edit.DD.EnableCelluleColorCss) && (edit.DD.CurrTargId != null) && (document.getElementById(edit.DD.CurrTargId).className != "")) { 
	                    var arrayTargetClass = document.getElementById(edit.DD.CurrTargId).className.split(" ");
	                    for (var k = 0; k < arrayTargetClass.length; k++) {
	                        if (arrayTargetClass[k] != "dxgv") {
	                           newClass = ((newClass == "") ? newClass += arrayTargetClass[k] : newClass += " " + arrayTargetClass[k]);
	                        }
	                    }
	                }

	                if (outerElement != null && outerElement != undefined) {
	                    if (outerElement.nodeName != "INPUT") {
	                        outerElement.innerHTML = edit.DD.MainElem.rows[i].cells[j].innerHTML;
	                        var SetCss = 0;
	                        var SetStyle = 0;
	                        // pokud existuje radek RowSetCss
	                        if (edit.DD.IndexRowSetCss != -1) {
	                            SetCss = edit.DD.MainElem.rows[edit.DD.IndexRowSetCss].cells[j].innerHTML * 1;
	                            //pokud je nastavena zmena (ano 1, ne 0) a třída vnějšího elementu neobsahuje novou třídu
	                            var pokus = outerElement.className.search(newClass); 
	                            if ((SetCss == 1)){// && (outerElement.className.search(newClass) == -1)) {
	                                //třída řádku, pokud outerElement má nějakou třídu taky jen přidá
	                                outerElement.className = outerElement.className.replace(" " + edit.DD.LastSetClassOuter, "");
	                                outerElement.className = outerElement.className.replace(edit.DD.LastSetClassOuter, "");
	                                //edit.DD.LastSetClassOuter = newClass;
	                                outerElement.className = ((outerElement.className == "") ? newClass : outerElement.className + " " + newClass);
	                                stavSetClassOuter = true;
	                            }
	                        }
	                        //pokud existuje radek RowSetStyle 
	                        if (edit.DD.IndexRowSetStyle != -1) {
	                            SetStyle = edit.DD.MainElem.rows[edit.DD.IndexRowSetStyle].cells[j].innerHTML * 1;
	                            //pokud je nastavena zmena (ano 1, ne 0)
	                            if (SetStyle == 1) {
	                                outerElement.setAttribute("style", edit.DD.MainElem.rows[i].getAttribute("style"));
	                                //neumi IE outerElement.setAttribute("style", outerElement.getAttribute("style") + document.getElementById(edit.DD.CurrTargId).getAttribute("style"));
	                                if (edit.DD.EnableCelluleColorStyle) { 
	                                    outerElement.setAttribute("style", document.getElementById(edit.DD.CurrTargId).getAttribute("style"));
	                                }
	                            }
	                        }
	                    } else {
	                        stavEdit = ((outerElement == edit) ? true : false);
	                        outerElement.SetText(edit.DD.MainElem.rows[i].cells[j].innerHTML);	                        
	                    }
	                }
	                if (innerElem != null && innerElem != undefined) {
	                    innerElem.innerHTML = edit.DD.MainElem.rows[i].cells[j].innerHTML;
	                    if (true)//innerElem.className.search(newClass) == -1)
	                    {
	                        innerElem.className = innerElem.className.replace(" " + edit.DD.LastSetClassInner, "");
	                        innerElem.className = innerElem.className.replace(edit.DD.LastSetClassInner, "");
	                        innerElem.className = ((innerElem.className == "") ? newClass : innerElem.className + " " + newClass);
	                        stavSetClassInner = true;
	                    }
	                    innerElem.setAttribute("style", edit.DD.MainElem.rows[i].getAttribute("style"));
	                    // neumi IE innerElem.setAttribute("style", innerElem.getAttribute("style") + document.getElementById(edit.DD.CurrTargId).getAttribute("style"));
	                    if (edit.DD.EnableCelluleColorStyle) 
	                    { 
	                        innerElem.setAttribute("style", document.getElementById(edit.DD.CurrTargId).getAttribute("style"));
	                    }
	                    	                    
	                }
	            }
	            if (stavSetClassOuter) { 
	                edit.DD.LastSetClassOuter = newClass;
	            }
	            if (stavSetClassInner) {
	                edit.DD.LastSetClassInner = newClass;
	            }	            
	            //End Steinmetz
	            text = edit.DD.MainElem.rows[i].cells[edit.DD.PCol].innerHTML;
	            break;
	        }
	    }
	}
	//Start Steinmetz
	/*if ((!stavEdit) && (text != "")) {
        edit.SetText(text);
    	}*/
	if (!edit.DD.MainInput.StavEdit) {
	    if ((!stavEdit && text != "")) {
	        edit.SetText(text);
	    }
	} else {
	    edit.DD.MainInput.StavEdit -= 1;   
	} 
	//End Steinmetz
	
	//Zapsání hodnoty a zobrazení
	//old edit.SetText(text);


}


addDOMLoadEvent = (function(){
// create event function stack
var load_events = [],
    load_timer,
    script,
    done,
    exec,
    old_onload,
    init = function () {
        done = true;

        // kill the timer
        clearInterval(load_timer);

        // execute each function in the stack in the order they were added
        while (exec = load_events.shift())
            exec();

        if (script) script.onreadystatechange = '';
    };

return function (func) {
    // if the init function was already ran, just run this function now and stop
    if (done) return func();

    if (!load_events[0]) {
        // for Mozilla/Opera9
        if (document.addEventListener)
            document.addEventListener("DOMContentLoaded", init, false);

        // for Internet Explorer
        /*@cc_on @*/
        /*@if (@_win32)
            document.write("<script id=__ie_onload defer src=//0><\/scr"+"ipt>");
            script = document.getElementById("__ie_onload");
            script.onreadystatechange = function() {
                if (this.readyState == "complete")
                    init(); // call the onload handler
            };
        /*@end @*/

        // for Safari
        if (/WebKit/i.test(navigator.userAgent)) { // sniff
            load_timer = setInterval(function() {
                if (/loaded|complete/.test(document.readyState))
                    init(); // call the onload handler
            }, 10);
        }

        // for other browsers set the window.onload, but also execute the old window.onload
        old_onload = window.onload;
        window.onload = function() {
            init();
            if (old_onload) old_onload();
        };
    }

    load_events.push(func);
}
})();

addDOMLoadEvent(oDropDown_OnLoad);




function oDropDown_OnLoad(ev)
{
    for(var i = 0; i < DDs.length; i++)
    {
        var dd = DDs[i];
        oDropDown_SetSelectedValue(dd);
        oDropDown_SetShownItems(dd.MainInput.id);
    }
}

//Start Steinemtz

function oDropDown_SetScrollPositionDown(dds) {
    dds.ScrollStep = dds.MainElem.rows[dds.MainElem.rows.length - 1].offsetHeight;

    var scrollSteHead = ((dds.IndexRowHeader > 0) ? dds.MainElem.rows[dds.IndexRowHeader].offsetHeight : dds.MainElem.rows[0].offsetHeight);
    var scrolledItems = 0;
    
    var scrolledItems = ((dds.IndexRowHeader != -1 && dds.MainElem.parentNode.scrollTop != 0) ? new Number((dds.MainElem.parentNode.scrollTop - scrollSteHead) / dds.ScrollStep) + 1 : new Number(dds.MainElem.parentNode.scrollTop / dds.ScrollStep));
    
    while (dds.SelectedIndex + 1 >= scrolledItems + dds.ShownItems && dds.SelectedIndex + 1 >= dds.ShownItems) {
        if (dds.IndexRowHeader != -1) {
            if (scrolledItems == 0) {
                dds.MainElem.parentNode.scrollTop += scrollSteHead;
                scrolledItems = new Number((dds.MainElem.parentNode.scrollTop / scrollSteHead));
            } else {
                dds.MainElem.parentNode.scrollTop += dds.ScrollStep;
                //scrolledItems = new Number(((dds.MainElem.parentNode.scrollTop - scrollSteHead) / dds.ScrollStep));
                scrolledItems += 1;
            }
        } else {
            dds.MainElem.parentNode.scrollTop += dds.ScrollStep;
            scrolledItems = new Number((dds.MainElem.parentNode.scrollTop / dds.ScrollStep));
        }
       
            
    }
};

function oDropDown_SetScrollPositionUp(dds) {
    dds.ScrollStep = dds.MainElem.rows[dds.MainElem.rows.length - 1].offsetHeight;
    var scrolledItems = new Number((dds.MainElem.parentNode.scrollTop / dds.ScrollStep));
    var temp;
    while ((dds.SelectedIndex < (dds.MainElem.rows.length - 2)) && (dds.SelectedIndex <= scrolledItems + dds.ShownItems)) {
        if (dds.MainElem.parentNode.scrollTop <= 0) { break; }
        dds.MainElem.parentNode.scrollTop -= dds.ScrollStep;
    }
};

function oDropDown_SearchAidFromText(ID, text) {
    edit = document.getElementById(ID);
    var returnValue = false;
    if (text != "") {
        var tempI = ((edit.DD.IndexRowHeader == -1) ? 0 : 1);
        for (var i = tempI; i < edit.DD.MainElem.rows.length; i++) {
            if (edit.DD.MainElem.rows[i].cells[edit.DD.PCol].innerHTML == text) {
                returnValue = edit.DD.MainElem.rows[i].cells[edit.DD.PKey].innerHTML;
                edit.DD.SelectedIndex = i - 1;
                break;
            }
        }
    }
    return returnValue;
}

function oDropDown_SearchTextFromAID(inputID, AID) {
    edit = document.getElementById(inputID);
    var returnValue = false;
    if (AID != "") {
        var tempI = ((edit.DD.IndexRowHeader == -1) ? 0 : 1);
        for (var i = tempI; i < edit.DD.MainElem.rows.length; i++) {
            if (edit.DD.MainElem.rows[i].cells[edit.DD.PKey].innerHTML == AID) {
                returnValue = edit.DD.MainElem.rows[i].cells[edit.DD.PCol].innerHTML;
                edit.DD.SelectedIndex = i - 1;
                break;
            }
        }
    }
    return returnValue;
}

//End Steinmetz
