
function showGroupPledges(val, group, UpdateGroupState)
{
	if (val == 'on')
	{
	    if (UpdateGroupState)
	    {
	        AddToState(group);
	    }

		newHref = "JavaScript:showGroupPledges('off','" + group + "', true);";
		
        var i;
        i = 0;
        var SimpleTableRow = document.getElementById('Simple_' + group + '_' + i);
        while (SimpleTableRow)
        {
            i++;
	        SimpleTableRow.style.display = '';
            SimpleTableRow = document.getElementById('Simple_' + group + '_' + i);
        }

        var ShowComplex = document.getElementById('ShowComplex_' + group);
        ShowComplex.style.display = '';

        var ShowSimpleButton = document.getElementById('Simple' + group + 'Button');
        setPic(ShowSimpleButton, 'minus_blue');
        
        var sToReplace = ShowSimpleButton.getAttribute('title');
        var sReplaced = sToReplace.replace("Show", "Hide");
        ShowSimpleButton.setAttribute('title', sReplaced);
        ShowSimpleButton.setAttribute('alt', sReplaced);
        
        
	}
	else if (val == 'off')
	{
	    if (UpdateGroupState)
	    {
	        RemoveFromState(group);
	    }

		newHref = "JavaScript:showGroupPledges('on','" + group + "', true);";
	    
        var i;
        i = 0;
        var SimpleTableRow = document.getElementById('Simple_' + group + '_' + i);
        while (SimpleTableRow)
        {
            i++;
	        SimpleTableRow.style.display = 'none';
            SimpleTableRow = document.getElementById('Simple_' + group + '_' + i);
        }

        var ShowComplex = document.getElementById('ShowComplex_' + group);
        ShowComplex.style.display = 'none';
        
        var ShowComplexButton = document.getElementById('Simple' + group + 'Button');
        setPic(ShowComplexButton, 'plus_blue');
        
        var sToReplace = ShowComplexButton.getAttribute('title');
        var sReplaced = sToReplace.replace("Hide", "Show");
        ShowComplexButton.setAttribute('title', sReplaced);
        ShowComplexButton.setAttribute('alt', sReplaced);
        
        
	}
    document.getElementById('Show'+group+'Link').href = newHref;
    document.getElementById('Show'+group+'Link1').href = newHref;
    showComplexGroupPledges(val, group, false);
    
/*    if (UpdateGroupState)
    {//Update current anchor position
	    document.forms[0].hdnCurrentAnchor.value = '#' + group + '_Anchor';
        
    }*/
    
}

function showComplexGroupPledges(val, group, UpdateState)
{
    newComplexHref = "";
	if (val == 'on')
	{
        var i;
        i = 0;
        var ComplexTableRow = document.getElementById('Complex_' + group + '_' + i);
        while (ComplexTableRow )
        {
            i++;
            if ((UpdateState) || (IsInComplexState(group)))
            {
                ComplexTableRow .style.display = '';
                var ShowComplexButton = document.getElementById('Complex' + group + 'Button');
            }
            ComplexTableRow  = document.getElementById('Complex_' + group + '_' + i);
        }
        
        if (i == 0)
        {
            var ShowComplex = document.getElementById('ShowComplex_' + group);
            ShowComplex.style.display = 'none';
        }
        
        
        if ((UpdateState) || (IsInComplexState(group)))
	    {//User has clicked on expand complex button
            newComplexHref = "JavaScript:showComplexGroupPledges('off','" + group + "',true);";
	        AddToComplexState(group);

            var ShowComplexLink = document.getElementById('MoreLess' + group);
            ShowComplexLink.innerHTML = ShowComplexLink.innerHTML.replace("More", "Less");
            
            var ShowComplexButton = document.getElementById('Complex' + group + 'Button');
            setPic(ShowComplexButton, 'minus_grey');

            var sToReplace = ShowComplexButton.getAttribute('title');
            var sReplaced = sToReplace.replace("More", "Less");
            ShowComplexButton.setAttribute('title', sReplaced);            

	    }
	    
	    
	}
	else if (val == 'off')
	{
	    
        var i;
        i = 0;
        var ComplexTableRow = document.getElementById('Complex_' + group + '_' + i);
        while (ComplexTableRow)
        {
            i++;
            ComplexTableRow.style.display = 'none';
            ComplexTableRow = document.getElementById('Complex_' + group + '_' + i);
        }
	    if (UpdateState)
	    {//User has click on expand complex button
	        newComplexHref = "JavaScript:showComplexGroupPledges('on','" + group + "',true);";
	        RemoveFromComplexState(group);
	        
            var ShowComplexLink = document.getElementById('MoreLess' + group);
            ShowComplexLink.innerHTML = ShowComplexLink.innerHTML.replace("Less", "More");
            
            var ShowComplexButton = document.getElementById('Complex' + group + 'Button');
            setPic(ShowComplexButton, 'plus_grey');
            
            var sToReplace = ShowComplexButton.getAttribute('title');
            var sReplaced = sToReplace.replace("Less", "More");
            ShowComplexButton.setAttribute('title', sReplaced);            
            
	    }
        
	}
	if (newComplexHref != "")
	{
        document.getElementById('ShowComplex'+group+'Link').href = newComplexHref;
    }
}

function AddToState(group)
{
	if (document.forms[0].hdnVisibleGroups.value.indexOf(group) == -1)
	{
	    document.forms[0].hdnVisibleGroups.value = document.forms[0].hdnVisibleGroups.value + group + ",";
	}
}

function RemoveFromState(group)
{
	if (document.forms[0].hdnVisibleGroups.value.indexOf(group) > -1)
	{
	    document.forms[0].hdnVisibleGroups.value = document.forms[0].hdnVisibleGroups.value.replace(group + ",", "")
	}
}

function AddToComplexState(group)
{
	if (document.forms[0].hdnVisibleComplexGroups.value.indexOf(group) == -1)
	{
	    document.forms[0].hdnVisibleComplexGroups.value = document.forms[0].hdnVisibleComplexGroups.value + group + ",";
	}
}

function RemoveFromComplexState(group)
{
	if (document.forms[0].hdnVisibleComplexGroups.value.indexOf(group) > -1)
	{
	    document.forms[0].hdnVisibleComplexGroups.value = document.forms[0].hdnVisibleComplexGroups.value.replace(group + ",", "")
	}
}


/* toggle plus minus */
function changePic(el, pic1, pic2) 
{
    var pic=((el.src.match(pic1)!=null)? pic2 : pic1);
    var sNewImage = "../Resources/Images/icons/"+pic+".jpg";
    el.src = sNewImage;
    
    if (pic == ("minus_blue"))
    {
        
        //el.setAttribute('title','Minimise pledge group');

    }
    else
    {
        
        //el.setAttribute('title','Expand pledge group');

    }
}

/* toggle plus minus */
function changePicFor(control, pic1, pic2) 
{
    var Element = document.getElementById(control);
    var pic=((Element.src.match(pic1)!=null)? pic2 : pic1);
    var sNewImage = "../Resources/Images/icons/"+pic+".jpg";
    Element.src = sNewImage;
    
    if ( pic == ("minus_grey") )
    {
        
        //Element.setAttribute('title','Hide additional pledges');
        
        
    }
    else
    {
        
        //Element.setAttribute('title','Show additional pledges');
    }
}

function setPic(el, pic) 
{
    el.src="../Resources/Images/icons/"+pic+".jpg";
}

function validateMultiple()
{

    var MultipleTextBox = document.getElementById('LoginView_MultipleTextBox');
    
    if (MultipleTextBox == null)
    {
        return true;
    }
    
    myNumber = MultipleTextBox.value;

	if (isBlank(myNumber))
	{
        ShowErrorMessage();
        return false;
    }
	for(var i=0;i<myNumber.length;i++)
	{
		if(!isDigit(myNumber.charAt(i)))
		{
		    ShowErrorMessage();
		    return false;
		}
	}
    if ((parseInt(myNumber) > 0) && (parseInt(myNumber) <= 15))
    {
        return true
    }
    else
    {
        ShowErrorMessage();
        return false;
    }
    
	
    return false;
}

function TestDisplayState()
{
//    alert('AllGroups: ' + document.forms[0].hdnAllGroups.value);
    alert('GroupState: ' + document.forms[0].hdnVisibleGroups.value);
//    alert('ComplexGroupState: ' + document.forms[0].hdnVisibleComplexGroups.value);
//    alert('GroupState: ' + document.forms[0].hdnCurrentAnchor.value);
    //alert(document.forms[0].hdnCurrentAnchor.value);
//    GoToAnchor();
}

function HideAllPledges()
{
    var AllGroups=new Array();
    AllGroups = document.forms[0].hdnAllGroups.value.split(";");

    for(nIndex=0; nIndex<AllGroups.length-1; nIndex++)
    {
        showGroupPledges('off', AllGroups[nIndex], false);
    }

    LoadState();    
}

function ShowErrorMessage()
{
        ErrorMsg = "Please enter a number between 1 and 15";
	    document.getElementById('ErrorDiv').innerHTML  = ErrorMsg;
	    document.getElementById('ErrorDiv').style.display = 'block';
}

function isBlank(val)
{
	if(val==null){return true;}
	for(var i=0;i<val.length;i++) {
		if ((val.charAt(i)!=' ')&&(val.charAt(i)!="\t")&&(val.charAt(i)!="\n")&&(val.charAt(i)!="\r")){return false;}
		}
	return true;
}

function isDigit(num) 
{
	if (num.length>1){return false;}
	var string="1234567890";
	if (string.indexOf(num)!=-1){return true;}
	return false;
}

function IsInGroupState(group)
{
	return (document.forms[0].hdnVisibleGroups.value.indexOf(group) > -1)
}

function IsInComplexState(group)
{
	return (document.forms[0].hdnVisibleComplexGroups.value.indexOf(group) > -1)
}

function LoadState()
{
    if ((document.forms[0].hdnVisibleGroups != null) && 
        (document.forms[0].hdnVisibleGroups.value.length > 0))
    {
        var VisibleGroups=new Array();
        VisibleGroups = document.forms[0].hdnVisibleGroups.value.split(",");
        for(nIndex=0; nIndex<VisibleGroups.length-1; nIndex++)
        {
            showGroupPledges('on', VisibleGroups[nIndex], false);
        }
    }
    if ((document.forms[0].hdnVisibleComplexGroups != null) && 
        (document.forms[0].hdnVisibleComplexGroups.value.length > 0))
    {
        //Open groups which have a visible complex group
        VisibleGroups = document.forms[0].hdnVisibleComplexGroups.value.split(",");
        for(nIndex=0; nIndex<VisibleGroups.length-1; nIndex++)
        {
            showGroupPledges('on', VisibleGroups[nIndex], false);
        }
    }
    
}

function GoToAnchor() 
{
//    alert(document.forms[0].hdnCurrentAnchor.value);
    anchor = document.forms[0].hdnCurrentAnchor.value;
    if (anchor != "")
    {
//        alert(anchor);
        location.href = location.href + document.forms[0].hdnCurrentAnchor.value;
        document.forms[0].hdnCurrentAnchor.value = "";
    }
}

function AppendClientState(FromLink)
{
    FromLink.href = FromLink.href + '&GroupState=' + document.forms[0].hdnVisibleGroups.value;
    FromLink.href = FromLink.href + '&ComplexState=' + document.forms[0].hdnVisibleComplexGroups.value;
    
}

function textLimit(ev, field, maxlen) 
{
    switch(ev.keyCode) 
    {
        case 37: // left
            return true;
        case 38: // up
            return true;
        case 39: // right
            return true;
        case 40: // down
            return true;
        case 8: // backspace
            return true;
        case 46: // delete
            return true;
        case 27: // escape
            return true;
    }
    if (field.value.length >= maxlen)
    {
        field.value = field.value.substring(0, maxlen);
        return false;
    }
} 



