﻿function ShowHideInit()
{   
    if ( document.getElementById("str_ShowHideIDs") != null )
    {       
        var str_ShowHideIDs = document.getElementById("str_ShowHideIDs").value;
        if ( str_ShowHideIDs.length > 0 )
        {
            var arr_ShowHideIDs = str_ShowHideIDs.split(",");
        
            for(var no=0;no<arr_ShowHideIDs.length;no++)
            {
                var obj_CurrentItem = document.getElementById(arr_ShowHideIDs[no]);
                if(obj_CurrentItem)
                {
                    obj_CurrentItem.style.display = "none";

                    EnableValidators(obj_CurrentItem,false);
                }
            }
        }
    }     
    
    document.getElementById("RootDiv").style.visibility = "visible";
}  	


function ShowHide(me, str_RequiredValues, str_ContainersToShow)
{
    var str_Value;
    var str_Data = "";	
    if ( str_RequiredValues == undefined )
    {
        str_RequiredValues = "";
    }
    
    if ( str_ContainersToShow == undefined )
    {
        str_ContainersToShow = "";
    }
    
    if ( me.value == undefined )
    {
        var ctl_Inputs = me.getElementsByTagName("INPUT");
        var flg_Checkbox = false;
        
        if ( document.getElementById(me.id + "_values") != null )
        {
            flg_Checkbox = true;
            var ctl_InputValues = document.getElementById(me.id + "_values").value;
        }
        
        for(var no=0;no<ctl_Inputs.length;no++)
        {
	        if ( ctl_Inputs[no].checked != undefined )
	        {
	            if ( true == ctl_Inputs[no].checked && flg_Checkbox == false )
	            {
    	             str_Data += ctl_Inputs[no].value + ",";
    	        }
    	        else if ( true == ctl_Inputs[no].checked && flg_Checkbox == true )
    	        {
    	            str_Data += ctl_InputValues.split(",")[no] + ",";
	            }
	        }
        }

        if ( str_Data.lastIndexOf(",") == str_Data.length -1 )
        {
            str_Data = str_Data.substring(0,str_Data.length-1);
            StyleShowHide(str_ContainersToShow, ShowHideEval(str_RequiredValues,str_Data))
        }
    }
    else
    {
        str_Value = me.value;
        //alert('me.value: ' + str_Value);
        StyleShowHide(str_ContainersToShow, ShowHideEval(str_RequiredValues,str_Value))
    }
}

function ShowHideEval(str_RequiredValues, str_ActualValues)
{
    var arr_RequiredValues = str_RequiredValues.split(",");
    var arr_ActualValues = str_ActualValues.split(",");
    
    if ( str_RequiredValues == "" )
    {
        return true;
    }
    else
    {
        for(var i=0; i < arr_RequiredValues.length; i++)
        {
            for(var j=0; j < arr_ActualValues.length; j++ )
            {   
                if ( arr_RequiredValues[i] == arr_ActualValues[j] )
                {
                    return true;
                    break;
                }
            }  
        }
    }
    
    return false;
}

function StyleShowHide(str_ContainersToShow, flg_Display)
{
    var str_Style = "";
    if ( flg_Display == true )
    {
        str_Style = "block";
    }
    else
    {
        str_Style = "none";
    }
    
    if ( str_ContainersToShow == "" )
    {
        return false;
    }
    
    var arr_ContainersToShow = str_ContainersToShow.split(",");
    
    for(var i=0; i < arr_ContainersToShow.length; i++)
    {
        var obj_CurrentItem = document.getElementById(arr_ContainersToShow[i]);
        if (obj_CurrentItem)
        {
            //if (str_Style == "block")
            //{
            //    ScrollShowHide(obj_CurrentItem, 1);
            //}
            obj_CurrentItem.style.display = str_Style;


            EnableValidators(obj_CurrentItem, flg_Display);
                    
            //obj_CurrentItem.style.height = "100px";
        }
    }    
}

function ScrollShowHide(obj_Item, int_Direction)
{
    // int_Direction = 1 =  open
    // int_Direction = 0 =  close

    if ( int_Direction == 1 )
    {
        alert(obj_Item.offsetHeight);
    }
}




function EnableValidators(sender, enable) {
    
    var elements = Array();
    elements = sender.getElementsByTagName("input");

    //elements=mergeArrays(elements, sender.getElementsByTagName("select"));
    //elements=mergeArrays(elements, sender.getElementsByTagName("textarea"));
    
    Array.prototype.inArray = function(v) {
        for (var i in this) {
            if (this[i] == v) {
                return true;
            }
        }
        return false;
    }


    if (document.getElementById("PageValidatorsIDs") == undefined)
        return false;

    var validators = document.getElementById("PageValidatorsIDs").value.split(',');

    
    for(var i = 0; i < elements.length; i++) {
        for (var x = 0; x < validators.length; x++) {
            var validator = document.getElementById(validators[x]);
            if (elements[i].id == validator.getAttribute("controlToValidate") || elements[i].id == validator.controltovalidate) {
                //ValidatorEnable(validator, enable);
				validator.enabled = (enable!=false);
                break;
            }
        
        }
    }
	
	elements = sender.getElementsByTagName("select");
	
	
	for(var i = 0; i < elements.length; i++) {
        for (var x = 0; x < validators.length; x++) {
            var validator = document.getElementById(validators[x]);
            if (elements[i].id == validator.getAttribute("controlToValidate") || elements[i].id == validator.controltovalidate) {
                //ValidatorEnable(validator, enable);
				validator.enabled = (enable!=false);
                break;
            }
        
        }
    }


}

function mergeArrays(arr1, arr2) {

    if (arr1.length == 0 && arr2.length > 0)
        return arr2;
    
    
    if (arr2.length > 0) {
        for (var i = 0; i < arr2.length; i++)
            arr1.push(arr2[i]);
    }
    
    return arr1;
}


