﻿function getIndex(input) 
{
    var index = -1, i = 0;
    while (i < input.form.length && index == -1)
    if (input.form[i] == input)index = i;
    else i++;
    return index;
}

function SetFocusToNextElement1(elemt) 
{
	next = 0;
	for(var i=0;i<document.forms[0].elements.length;i++)
	{
		if(document.forms[0].elements[i] == elemt)
		{	
		    next = i+1; 
		    break; 
		}
	}
      
      if (next<document.forms[0].elements.length)
      {
        document.forms[0].elements[next].focus()
      }
}

function SetFocusToNextElement(index) 
{ 
    var flag = true; 
    while(flag)
    { 
        try 
        { 
            if(document.forms[0][(index+1) % document.forms[0].length].type != "hidden" && document.forms[0][(index+1) % document.forms[0].length].style.display != "none" && document.forms[0][(index+1) % document.forms[0].length].visibility != "hidden")
            {
                document.forms[0][(index+1) % document.forms[0].length].focus(); 
                
                if (document.forms[0][(index+1) % document.forms[0].length].type == "text")
                    document.forms[0][(index+1) % document.forms[0].length].select();
                
                flag = false; 
            }
            else
            {
                index++; 
            }
        } 
        catch(e)
        { 
            index++; 
        }
    }
} 

function KeyDown(e, elemId) 
{ 
    if(e.keyCode == 17)
    { 
        var lastObj; 
        var ddl = document.getElementById(elemId + "_TD"); 
        if(ddl == null) 
            return; 
            
        var objTR = document.getElementById(elemId + "_TR");
        objTR.style.display = 'none';
        //קביעת focus לרכיב אחרון ב- ddl
        if(navigator.appName == "Microsoft Internet Explorer") 
        { 
            lastObj = ddl.children[0].cells[ddl.children[0].cells.length - 1].children[0]; 
        } 
        else
         { 
            lastObj = ddl.firstChild.rows[ddl.firstChild.rows.length - 1].cells[0].firstChild; 
         } 
         
         SetFocusToNextElement(getIndex(lastObj)); 
    } 
}  

function LooseFocus2(o, objID)
{ 
    var myDiv = document.getElementById("div_" + objID); 
    if (myDiv != null) 
    { 
        if(navigator.appName == "Microsoft Internet Explorer")
        { 
            if(myDiv.innerHTML.indexOf(document.activeElement.id) == -1 || myDiv.innerHTML.indexOf(document.activeElement.innerHTML) == -1)
            { 
                var obj=document.getElementById(objID + "_TR"); 
                obj.style.display = "none";
            } 
        } 
        else 
        {
            if(myDiv.innerHTML.indexOf(document.activeElement.innerHTML) == -1)
            { 
                var obj=document.getElementById(objID + "_TR"); 
                obj.style.display = "none"; 
            } 
        } 
    }
}

function GetSelectedText(DDLID)
{ 
    var i=0; 
    var hdnObj = document.getElementById("hdn_" + DDLID); 
    if(hdnObj.value.toLowerCase() == "true")
    {
        i++; 
    } 
    
    var sSelectedText = ""; 
    var ddlObj = document.getElementById(DDLID + "_TD"); 
    if(navigator.appName == "Microsoft Internet Explorer")
    { 
        for(;i<ddlObj.children[0].cells.length;i++)
        { 
            if(ddlObj.children[0].cells[i].children[0].checked == true) 
            { 
                if(sSelectedText != "")
                { 
                    sSelectedText += ", "; 
                } 
                sSelectedText += ddlObj.children[0].cells[i].children[0].nextSibling.innerText; 
            } 
        } 
    } 
    else
    { 
        for(;i<(ddlObj.firstChild.rows.length);i++) 
        { 
            if(ddlObj.firstChild.rows[i].cells[0].firstChild.checked == true) 
            { 
                if(sSelectedText != "")
                { 
                    sSelectedText += ", "; 
                } 
                sSelectedText += ddlObj.firstChild.rows[i].cells[0].childNodes[1].firstChild.data; 
            }
        } 
    }  
    return sSelectedText; 
} 

function OpenDropDownList(ObjId)
{ 
    OpenCloseDropDownList(ObjId + "_TR"); 
}

function UpdateTextBoxValue(sTxt, IDTxt) 
{ 
    var objTxt = document.getElementById("txtSelectedItems_" + IDTxt);
    objTxt.value = sTxt; 
} 

function CheckIfHasAllItems(o,chkOBJ,hdnID,ddl)
{ 
    if(document.getElementById(hdnID).value.toLowerCase() == "true")
    {
        if(navigator.appName == "Microsoft Internet Explorer")
        {
            if(ddl.children[0].cells[0].children[0] == chkOBJ)
                return true;
        }
        else
        {
            if(ddl.childNodes[0].childNodes[0].nextSibling.childNodes[0].cells[0].childNodes[0] == chkOBJ)
                return true;
        }
    }
    return false;
} 

function LooseFocus(o,ddlID,obj1)
{ 
    if(obj1.innerHTML.indexOf(document.activeElement.id) == -1 || obj1.innerHTML.indexOf(document.activeElement.innerHTML) == -1)
    { 
        var obj=document.getElementById(ddlID + "_TR"); 
        obj.style.display = "none";
    }
} 

function UpdateTextBoxAndChkLst(o,txtID, hdnID, ddl) 
{ 
    var hdnObj = document.getElementById(hdnID); 
    if(hdnObj.value.toLowerCase() == "false")
        return; 
    if(navigator.appName == "Microsoft Internet Explorer")
    { 
        ddl.children[0].cells[0].children[0].checked = false;
    } 
    else
    { 
        ddl.firstChild.rows[0].cells[0].firstChild.checked = false;
    } 
    var txtObj = document.getElementById(txtID); 
    txtObj.value = ""; 
    if(navigator.appName == "Microsoft Internet Explorer")
    { 
        for(var i=0;i<ddl.children[0].cells.length;i++) 
        { 
            if(ddl.children[0].cells[i].children[0].checked == true) 
            { 
                txtObj.value += ddl.children[0].cells[i].children[0].nextSibling.innerText + ", " ; 
            } 
        } 
    } 
    else
    { 
        for(var i=0;i<(ddl.firstChild.rows.length);i++) 
        { 
            if(ddl.firstChild.rows[i].cells[0].firstChild.checked == true) 
            { 
                txtObj.value += ddl.firstChild.rows[i].cells[0].childNodes[1].firstChild.data + ", " ; 
            }
        } 
    }  
} 

function UpdateTextBox(chkOBJ,txtID, hdnID, dropId) 
{ 
    UpdateTextBox(chkOBJ,chkOBJ,txtID, hdnID, dropId);
} 

function UpdateTextBox(o,chkOBJ,txtID, hdnID, dropId) 
{ 
    var ddl = document.getElementById(dropId); 
    if(CheckIfHasAllItems(this,chkOBJ, hdnID,ddl)) 
    { 
        if(chkOBJ.checked == true) 
        { 
            if(navigator.appName == "Microsoft Internet Explorer")
            { 
                for(var i=0;i<ddl.children[0].cells.length;i++) 
                { 
                    ddl.children[0].cells[i].children[0].checked = true;
                }
            } 
            else
            { 
                for(var i=0;i<(ddl.firstChild.rows.length);i++) 
                { 
                    ddl.firstChild.rows[i].cells[0].firstChild.checked = true; 
                } 
            }  
            var textBoxOBJ = document.getElementById(txtID); 
            textBoxOBJ.value = chkOBJ.nextSibling.childNodes[0].data; 
        } 
        else 
        { 
             if(navigator.appName == "Microsoft Internet Explorer")
             { 
                for(var i=0;i<ddl.children[0].cells.length;i++) 
                { 
                    ddl.children[0].cells[i].children[0].checked = false;
                } 
             } 
             else
             { 
                for(var i=0;i<(ddl.firstChild.rows.length);i++) 
                { 
                    ddl.firstChild.rows[i].cells[0].firstChild.checked = false; 
                } 
             }  
            var textBoxOBJ = document.getElementById(txtID);
            textBoxOBJ.value = ""; 
        }
    }
    else 
    { 
        var textBoxOBJ = document.getElementById(txtID);
        if(chkOBJ.checked == true) 
        { 
            var temp = textBoxOBJ.value; 
            temp = trimAll(this,temp); 
            var _i = temp.lastIndexOf(','); 
            if(_i != -1)
            { 
                if(temp.length-1 != _i)
                {
                    textBoxOBJ.value = temp.substr(0,_i) + ", "; 
                } 
            }
            else
            {textBoxOBJ.value =""; }
            textBoxOBJ.value += chkOBJ.nextSibling.childNodes[0].data + ", "; 
            var hdnObj = document.getElementById(hdnID); 
            if(hdnObj.value.toLowerCase() == "true")
            {
                var flag = true;
                if(navigator.appName == "Microsoft Internet Explorer")
                { 
                   for(var i=1;i<ddl.children[0].cells.length;i++) 
                   { 
                       if(ddl.children[0].cells[i].children[0].checked == false)
                       {  
                           flag = false; 
                       }  
                   } 
                   if(flag)
                   { 
                       ddl.children[0].cells[0].children[0].checked = true; 
                       UpdateTextBox(this,ddl.children[0].cells[0].children[0],txtID, hdnID, dropId); 
                   } 
                } 
                else
                { 
                   for(var i=1;i<(ddl.firstChild.rows.length);i++) 
                   { 
                       if(ddl.firstChild.rows[i].cells[0].firstChild.checked == false)
                       {  
                           flag = false; 
                       }  
                   } 
                   if(flag)
                   { 
                       ddl.firstChild.rows[0].cells[0].firstChild.checked = true; 
                       UpdateTextBox(this,ddl.firstChild.rows[0].cells[0].firstChild,txtID, hdnID, dropId); 
                   } 
                }  
            } 
        } 
        else 
        { 
            UpdateTextBoxAndChkLst(this,txtID, hdnID, ddl); 
            var _v = textBoxOBJ.value; 
            textBoxOBJ.value = textBoxOBJ.value.replace(chkOBJ.nextSibling.childNodes[0].data + ", ", ""); 
            if(_v == textBoxOBJ.value) 
            { 
                 _v = textBoxOBJ.value; 
                 textBoxOBJ.value = textBoxOBJ.value.replace(", " + chkOBJ.nextSibling.childNodes[0].data, ""); 
            }
            if(_v == textBoxOBJ.value) 
            {
                textBoxOBJ.value = textBoxOBJ.value.replace(chkOBJ.nextSibling.childNodes[0].data, ""); 
            }
        } 
    }
} 

function trimAll(o,sString) 
{ 
    while (sString.substring(0,1) == ' ')
    {
        sString = sString.substring(1, sString.length);
    }
    while (sString.substring(sString.length-1, sString.length) == ' ')
    {
        sString = sString.substring(0,sString.length-1);
    }
    return sString;
} 

function LoadDDl(o,_ID,strId,_va)
{ 
    var va = document.getElementById(_va).value; 
    var _temp= va.split(','); 
    var oDropList = document.getElementById(strId); 
    if(navigator.appName == "Microsoft Internet Explorer")
    { 
        for(var i=0;i<oDropList.children[0].cells.length;i++) 
        { 
            var temp = va.split(','); 
            va = temp[temp.length-1]; 
            va = trimAll(this,va); 
            var strSub = trimAll(this,oDropList.children[0].cells[i].outerText); 
            strSub = strSub.substr(0,va.toString().length); 
            if(strSub.toLowerCase() == va.toLowerCase()) 
            { 
                oDropList.scrollTop = oDropList.children[0].cells[i].offsetTop; 
                i = oDropList.children[0].cells.length; 
            } 
        } 
        for(var i=0;i<oDropList.children[0].cells.length;i++) 
        { 
            var f=false; 
            for(var j=0;j<_temp.length;j++)
            { 
                var t = trimAll(this,_temp[j]); 
                var _strSub = trimAll(this,oDropList.children[0].cells[i].outerText); 
                if(_strSub.toLowerCase() == t.toLowerCase())
                { 
                    f = true; 
                    break; 
                } 
            } 
            if(f) 
            { 
                if(oDropList.children[0].cells[i].children[0].checked == false)
                { 
                    oDropList.children[0].cells[i].children[0].click();                                              
                } 
                var hdnObj = document.getElementById("hdn_" +_ID); 
                if(i==0 && hdnObj.value.toLowerCase() == "true")
                { 
                    break; 
                }
            }
            else 
            {
                if(oDropList.children[0].cells[i].children[0].checked == true)
                { 
                    oDropList.children[0].cells[i].children[0].click(); 
                } 
            } 
        } 
    } 
    else
    { 
       for(var i=0;i<(oDropList.firstChild.rows.length);i++) 
        { 
            var temp = va.split(','); 
            va = temp[temp.length-1]; 
            va = trimAll(this,va); 
            var strSub = trimAll(this,oDropList.firstChild.rows[i].cells[0].childNodes[1].firstChild.data); 
            strSub = strSub.substr(0,va.toString().length); 
            if(strSub.toLowerCase() == va.toLowerCase()) 
            { 
                oDropList.scrollTop = oDropList.firstChild.rows[i].offsetTop; 
                break; 
            } 
        } 
        for(var i=0;i<(oDropList.firstChild.rows.length);i++) 
        { 
            var f=false; 
            for(var j=0;j<_temp.length;j++)
            { 
                var t = trimAll(this,_temp[j]); 
                var _strSub = trimAll(this,oDropList.firstChild.rows[i].cells[0].childNodes[1].firstChild.data); 
                if(_strSub.toLowerCase() == t.toLowerCase())
                { 
                    f = true; 
                    break; 
                } 
            } 
            if(f) 
            {
                if(oDropList.firstChild.rows[i].cells[0].firstChild.checked == false)
                { 
                    oDropList.firstChild.rows[i].cells[0].firstChild.click(); 
                } 
                var hdnObj = document.getElementById("hdn_" +_ID); 
                if(i==0 && hdnObj.value.toLowerCase() == "true")
                { 
                    break; 
                }
            }
            else 
            {
                if(oDropList.firstChild.rows[i].cells[0].firstChild.checked == true)
                { 
                    oDropList.firstChild.rows[i].cells[0].firstChild.click(); 
                } 
            } 
        } 
    } 
}

function OpenCloseDropDownList(strID)
{ 
    var obj=document.getElementById(strID); 
    if(obj.style.display == '') 
    { 
        obj.style.display='none';
    } 
    else 
    { 
        obj.style.display='';
    }
}

function KeyUp(e,clientId,obj)
{
    if(e.keyCode == 40 && e.altKey == true)
    {
        OpenCloseDropDownList(clientId + "_TR"); 
    }
    else
    {
        var obj=document.getElementById(clientId + "_TR");
        LoadDDl(obj,clientId,clientId + "_TD","txtSelectedItems_" + clientId);
    }
}

function CloseOthers(currentDdlID)
{
    var inpts = document.getElementsByTagName("input");
    for(var i=0;i<inpts.length;i++)
    {
        if(inpts[i].id.indexOf("txtSelectedItems_") != -1)
        {
            var elemId = inpts[i].id.substr(inpts[i].id.indexOf("_") + 1);
            if(elemId + "_TR" != currentDdlID)
            {
                var ddlObj = document.getElementById(elemId + "_TR");
                if(ddlObj != null)
                {
                    ddlObj.style.display = "none";
                }
            }
        }
    }
}