function inputTypeUserControlBetweenRemove()
{
    RemoveCriterian(document.getElementById('hCurrentCountGUID').value,document.getElementById('hCurrentMarketFileID').value,document.getElementById('hCurrentStage').value,document.getElementById('hCurrentCriterian').value); 
    
    //document.getElementById('txtVal1').value = '';
    
    //document.getElementById('txtVal2').value = '';
    
  
}

function inputTypeUserControlTreeViewRemove()
{
     RemoveCriterian(document.getElementById('hCurrentCountGUID').value,document.getElementById('hCurrentMarketFileID').value,document.getElementById('hCurrentStage').value,document.getElementById('hCurrentCriterian').value); 
     //document.getElementById('lbList').selectedIndex = -1;
     //tvCriteria.get_nodes().clear();
        //tvCriteria.render();
    
}

//function inputTypeUserControlTreeViewSubmit()
//{
    //AddCriterian(document.getElementById('hCurrentCountGUID').value, document.getElementById('hCurrentMarketFileID').value, document.getElementById('hCurrentStage').value,document.getElementById('hCurrentCriterian').value, GetChecked(), 'treeview',document.getElementById('chkNotCriteria').checked)
//}


function inputTypeUserControlLikeRemove()
{
    RemoveCriterian(document.getElementById('hCurrentCountGUID').value,document.getElementById('hCurrentMarketFileID').value,document.getElementById('hCurrentStage').value,document.getElementById('hCurrentCriterian').value); 
    
    //document.getElementById('txtLike').value = 'Nothing Entered Yet';   
    
    document.getElementById('chkNotCriteria').checked = false;
   
}

function inputTypeUserControlListSubmit()
{
    var lbSelected = document.getElementById('lbList'); 
    var _attributes = new Array();
    
    for (var i = 0; i < lbSelected.options.length; i++) 
    {
        if(lbSelected.options[i].selected)
        {
            _attributes.push(lbSelected.options[i].value);
        }
    }
    
    var listFlipOverLimit;
    
    var totalNumberOfItemsInList = lbSelected.options.length;
    
    if ( isEven(totalNumberOfItemsInList))
    {
        listFlipOverLimit = (totalNumberOfItemsInList/2) + 1;
    }
    else
    {
        listFlipOverLimit = (totalNumberOfItemsInList + 1)/2;
    }
    
    //flip over
    if ( _attributes.length >= listFlipOverLimit )
    {
        _attributes = new Array();
        
     
        
        
         for (var i = 0; i < lbSelected.options.length; i++) 
        {
            if(!lbSelected.options[i].selected)
            {
                _attributes.push(lbSelected.options[i].value);
            }
            
            lbSelected.options[i].selected = !lbSelected.options[i].selected;
        }
        
        document.getElementById('chkNotCriteria').checked = !document.getElementById('chkNotCriteria').checked;
    }
    //alert(document.getElementById('hCurrentCriterian').value);
    
    AddCriterian(document.getElementById('hCurrentCountGUID').value,document.getElementById('hCurrentMarketFileID').value,document.getElementById('hCurrentStage').value,document.getElementById('hCurrentCriterian').value, _attributes,'list');
}

function inputTypeUserControlListRemove()
{
    RemoveCriterian(document.getElementById('hCurrentCountGUID').value,document.getElementById('hCurrentMarketFileID').value,document.getElementById('hCurrentStage').value,document.getElementById('hCurrentCriterian').value); 
    //document.getElementById('lbList').selectedIndex = -1;
    document.getElementById('chkNotCriteria').checked = false;
}


function inputTypeUserControlLikeSubmit()
{
    if ( !inputTypeUserControlLikeValidate())
    {
        return;
    }
    
    var val1 = document.getElementById('txtLike').value;
    
   
    var guid = document.getElementById('hCurrentCountGUID').value;
    
    var marketFileID = document.getElementById('hCurrentMarketFileID').value;
    
    var stage = document.getElementById('hCurrentStage').value;
    
    var values = new Array();
    
    var criteria = document.getElementById('hCurrentCriterian').value;
    
    var RegExp = /[,]/g;
       
    values = val1.split(RegExp);
      
    
    AddValues(guid, marketFileID , stage, criteria, values,'like', 'like');
}



function inputTypeUserControlBetweenSubmit()
{
    if ( !inputTypeUserControlBetweenValidate())
    {
        return;
    }
    
    var val1 = document.getElementById('txtVal1').value;
    
    var val2 = document.getElementById('txtVal2').value;
    
    var guid = document.getElementById('hCurrentCountGUID').value;
    
    var marketFileID = document.getElementById('hCurrentMarketFileID').value;
    
    var stage = document.getElementById('hCurrentStage').value;
    
    var values = new Array();
    
    var criteria = document.getElementById('hCurrentCriterian').value;
       
    values.push(val1);
    
    values.push(val2);
      
    
    AddValues(guid, marketFileID , stage, criteria, values,'between', 'between');
}


//changed o 25,07,2008
//remove the null value validation
//but both value could not be null at the same time
function inputTypeUserControlBetweenValidate()
{
    var result = true;
    
    var message='';
    
    var val1 = document.getElementById('txtVal1').value;
    
    var val2 = document.getElementById('txtVal2').value;
     
     
     //if both value are empty, complain!
    if (( val1 == null || val1=='' ) && ( val2 == null || val2 == ''))
    {
        message = 'start and end value could not be null at the same time';
        result = false;
    }
    
   
  
    //only check isNumeric if val1 is not empty
    if ( !isNumeric(val1) && !( val1 == null || val1=='' ) )
    {
        if ( message!='')
        {
            message = message + '\n' + 'start value must be numeric';
        }
        else
        {
            message = 'start value must be numeric';
        }
        
        result = false;
    }
    
    
    //only check numeric if val2 is not empty
    if ( !isNumeric(val2) && !( val2 == null || val2 == ''))
    {
        if ( message != '')
        {
            message = message + '\n' + 'end value must be numeric';
            
        }
        else
        {
            message = 'end value must be numeric';
        }
        
        result = false;
    }   
    
    if ( !result )
    {
        alert(message);
    }
    
    return result;
}//



//could not be null
//must be numeric;
function inputTypeUserControlBetweenValidateArchived()
{
    var result = true;
    
    var message='';
    
    var val1 = document.getElementById('txtVal1').value;
    
    var val2 = document.getElementById('txtVal2').value;
     
     
     
    if ( val1 == null || val1=='' )
    {
        message = 'start value is missing';
        result = false;
    }
    
    if ( val2 == null || val2 == '')
    {
        if ( message!= '')
        {
            message = message + '\n' + 'end value is missing';
        }
        else
        {
            message = 'end value is missing';
        }
        
        result = false;
    }
    
    if ( !isNumeric(val1))
    {
        if ( message!='')
        {
            message = message + '\n' + 'start value must be numeric';
        }
        else
        {
            message = 'start value must be numeric';
        }
        
        result = false;
    }
    
    if ( !isNumeric(val2))
    {
        if ( message != '')
        {
            message = message + '\n' + 'end value must be numeric';
            
        }
        else
        {
            message = 'end value must be numeric';
        }
        
        result = false;
    }   
    
    if ( !result )
    {
        alert(message);
    }
    
    return result;
}//



function inputTypeUserControlLikeValidate()
{
    var result = true;
    
    var message='';
    
    var val1 = document.getElementById('txtLike').value;
    
    
     
    if ( val1 == null || val1=='' )
    {
        message = 'value is missing';
        result = false;
    }
    
    
    
    if ( !isAlphaNumeric(val1))
    {
        if ( message!='')
        {
            message = message + '\n' + 'text could not contain sql wild card, %, _, ^, [, ]';
        }
        else
        {
            message = 'text could not contain sql wild card, %, _, ^, [, ]';
        }
        
        result = false;
    }
    
    
    if ( !result )
    {
        alert(message);
    }
    
    return result;
}//


function isAlphaNumeric(x)
{
    var RegExp = /^[a-zA-Z0-9,]+$/; 

    var result = x.match(RegExp);
    return result;  
}

// pasta from yacoblog :-)
function isNumeric(x) 
{

    var RegExp = /^(-)?(\d*)(\.?)(\d*)$/; 

    var result = x.match(RegExp);
    return result;
}


/**
    function needSubmitNew()
    {   
       if(isNotCheckBox() == false )
        {
            return true;
        }
        GetCheckedNew();
        
        //GetNumberOfNodesInTotal();
        
        var numberOfNodesChecked = checkedBoxes.length;
        
        var numberOfNodesInTree = totalNumberOfNodes.length;
        
        if ( numberOfNodesChecked == 0 )
        {
        return false;
        }
        
        if ( numberOfNodesChecked == numberOfNodesInTree)
        {
            return false;
        }
        
        return true;
    }
    
 **/   

    function getNumberOfChildNodes(checkingNode) 
    {  
        if(checkingNode.get_nodes().get_length() == 0 )
        {
            totalNumberOfNodes[totalNumberOfNodes.length] = checkingNode.Value;
        }
        else
        {
            for (var i = 0;i < checkingNode.ChildIndices.length;i++) 
            { 
                getNumberOfChildNodes(checkingNode.get_nodes().getNode(i)); 
            } 
        } 
    } 
    
    
    //not being called anymore, since function is combined with checkChildNodes
    function GetNumberOfNodesInTotal()
    {
        var curNodes = tvCriteria.get_nodes();
        
        totalNumberOfNodes = new Array();
        
        var number = curNodes.get_length();
        
        
        
        //number = curNodes.ChildIndices.length;
        
        for (var i = 0; i < curNodes.get_length(); i++)
        {
            getNumberOfChildNodes(curNodes.getNode(i));
        } 
        
        return totalNumberOfNodes;
    }
    
    
    
    function GetCheckedNew()
    {
        if ( needFlipOver())
        {
            GetCheckedFlipOver();
        }
        
        //alert(checkedBoxes.length);
        return checkedBoxes;
    }
    
    function GetCheckedFlipOver()
    { 
        //tvCriteria.beginUpdate();
        
        var curNodes = tvCriteria.get_nodes();
        
        checkedBoxes = new Array();
        
        for (var i = 0; i < curNodes.get_length(); i++)
        {
            checkChildNodesFlipOver(curNodes.getNode(i));
        } 
        
        
        document.getElementById('chkNotCriteria').checked = !document.getElementById('chkNotCriteria').checked;
        //return checkedBoxes;
        
        //tvCriteria.endUpdate();
        
       
       
    }    
    
    
    
    
    
    function checkChildNodesFlipOver(checkingNode) 
    {  
        if(checkingNode.get_nodes().get_length() == 0 )
        {
            //checkedBoxes[checkedBoxes.length] = checkingNode.Value;
            //checkingNode.unCheckAll();
            
            //if this is leaf, then if it is checked, uncheck it
            //if this is not checked, check it and add it to list 
            if ( checkingNode.get_checked())
            {
                //alert("unchecked " + checkingNode.get_text());
                checkingNode.UnCheckAll();
            }
            else
            {
                //alert("checked " + checkingNode.get_text());
                checkingNode.CheckAll();
                checkedBoxes[checkedBoxes.length] = checkingNode.Value;
            }
            
             checkingNode.ParentTreeView.Render();
        }
        else
        {
           for (var i = 0;i < checkingNode.ChildIndices.length;i++) 
            { 
                checkChildNodesFlipOver(checkingNode.get_nodes().getNode(i)); 
            }  
        }        
        
       
    } 
    
    
  
   
    //need to consider select all scenario as well
    //select all is not taken as flip over at the moment
    function needFlipOver()
    {
        //GetChecked();
        //var result = false;
        if ( isNotCheckBox() == false )
        {
            return false;
        }
        
        //GetNumberOfNodesInTotal();
        
        var numberOfNodesChecked = checkedBoxes.length;
        
        var numberOfNodesInTree = totalNumberOfNodes.length;
        
        
        //alert(numberOfNodesChecked);
        
        //alert(numberOfNodesInTree);
        
        if ( numberOfNodesChecked == numberOfNodesInTree)
        {
            return false;
        }
        
        var flipOverLimit;
        
        if ( isEven(numberOfNodesInTree))
        {
            flipOverLimit = (numberOfNodesInTree/ 2) + 1;
        }
        else
        {
            flipOverLimit = (numberOfNodesInTree + 1 )/2;
        }
        
        if ( numberOfNodesChecked >= flipOverLimit )
        {
            return true;
        }
        
        return false;
    }
    
    function isEven(value)
    {
	    if (value%2 == 0)
		    return true;
	    else
		    return false;
    }
    
    
    function inputTypeUserControlCSVSubmit()
    {
        if ( !inputTypeUserControlCSVValidate())
        {
            return;
        }
        
         var _attributes = new Array();
         
         _attributes = document.getElementById('txtCSV').value.split(',');
         
         var _clearedAttributes = new Array();
            
         for(value in _attributes)
         {
             _clearedAttributes.push(trim(_attributes[value]));
         }
           
           
         var guid = document.getElementById('hCurrentCountGUID').value;
    
        var marketFileID = document.getElementById('hCurrentMarketFileID').value;
    
        var stage = document.getElementById('hCurrentStage').value;
    
    
    
        var criteria = document.getElementById('hCurrentCriterian').value;
        
     
        
    
    AddValues(guid, marketFileID , stage, criteria, _clearedAttributes,'csv', 'in');
      
    
        //AddCriterian(guid, marketFileID , stage, criteria, _clearedAttributes, 'csv');
    }


    function inputTypeUserControlCSVRemove()
    {
         RemoveCriterian(document.getElementById('hCurrentCountGUID').value,document.getElementById('hCurrentMarketFileID').value,document.getElementById('hCurrentStage').value,document.getElementById('hCurrentCriterian').value); 
        //document.getElementById('txtCSV').value = '';
        document.getElementById('chkNotCriteria').checked = false;
    }
     function trim(value)
     {
        return value.replace(/^\s*/, '').replace(/\s*$/, '');

     }
        
        
    function inputTypeUserControlCSVValidate()
    {
        var result = true;
        
        var message='';
        
        var val1 = document.getElementById('txtCSV').value;
        
       
         
        if ( val1 == null || val1=='' || val1=='Nothing Entered Yet' )
        {
            message = 'no user input';
            result = false;
        }
        
        
        
        
        
        if ( !result )
        {
            alert(message);
        }
        
        return result;
    }//
