﻿function fixDropDowns(toAdd) {
    if(document.all)
    {
        if(toAdd) {
            AddClass(document.body, "selectFix");
        }else {
            RemoveClass(document.body, "selectFix");
        }
    }
}
function AddFix() {fixDropDowns(true);}
function RemoveFix() {fixDropDowns(false);}

var selectedValue = "";
function previewDesign(dropDownValue)
{
    var previewImage = document.getElementById('GeneralDesignSmallPicture');
    selectedValue = dropDownValue;
    previewImage.src = '/media/app/GiveTribute/GiftRegistry/sm/small_' + selectedValue + '.jpg';
}

function onLoadPreviewDesign(value) {
    previewDesign(value);
}
function zoomOnDesign()
{
    if(selectedValue != "")
    {
        displayWindow('/media/app/GiveTribute/GiftRegistry/solidbg/large_' + selectedValue + '.jpg','story','640','480','scrollbars=no,resizable=no');
    }
}



function DropDownSelect(select, item)
{
    for(var i=0; i<select.options.length; i++) {
        if (select.options[i].value == item)
            select.options[i].selected = true;
    }
}

/* End Utilities */
var ErrorColor = "#ffddd2";
var WhiteColor = "#ffffff";
var DisabledClassName = "btnGrey";
var HiddenClass = "hidden";
var ButtonHoverClass = "buttonHover"; 


function buttonRollover(item, isOver) {
    if(isOver && !HasClass(item, DisabledClassName)) {
        AddClass(item, ButtonHoverClass);
    }else {
        RemoveClass(item, ButtonHoverClass);
    }
}





/*
    assign onclick="HideShowElements(this, $get('Id of containing element'), 'tag name of the element that has the hidden elements')"
    
    Usage notes:
        1.) you can just pass a string for the Id, the function will handle converting to an object.
        2.) you dont technically need an id, you can pass document, but it will parse the entire dom, and thats just silly.
*/
function HideShowElements(clickedItem, Container, tagName, hasArrowImage, extraMessageObj)
{
    if(typeof Container == "string") {
        Container = $get(Container);
    }
    if(!Container){return;}
    
        ToShow = clickedItem.innerHTML.Contains("see all");
        if(!extraMessageObj) {
            if(ToShow) {
                clickedItem.innerHTML = clickedItem.innerHTML.replace("Show", "Hide");
            }else {
                clickedItem.innerHTML = clickedItem.innerHTML.replace("Hide", "Show");
            }
        }else {
            var extraMessage;
            if(extraMessageObj.ExtraMessageId) {
               extraMessage = $get(extraMessageObj.ExtraMessageId);
            }
            if(ToShow) {
                if(extraMessage) {
                    extraMessage.innerHTML = extraMessageObj.ExtraHideMessage;
                }
                clickedItem.innerHTML = extraMessageObj.HideMessage;
            }else {
                if(extraMessage) {
                    extraMessage.innerHTML = extraMessageObj.ExtraShowMessage;
                }
                clickedItem.innerHTML = extraMessageObj.ShowMessage;
            }
        }   
    
    var items = Container.getElementsByTagName(tagName);
    //console.log(items.length);
    for(var i=0;i<items.length;i++) {
        if(HasClass(items[i], "actUpon")) {
            if(HasClass(items[i], HiddenClass)) {
                RemoveClass(items[i], HiddenClass);
            }else {
                AddClass(items[i], HiddenClass);
            }
        }
    }
}






function addOtherNames(link, container) {
    Container = $get(container);
    var items = GetElementsByTagAndClassName(Container, "tr", "actUpon hidden");
    
    var LinkRemoveOtherNames = $get("LinkRemoveOtherNames");
    
    for(var i=0;i<items.length;i++) {
        if(HasClass(items[i], HiddenClass)) {
            RemoveClass(items[i], HiddenClass);
            if(items.length <= 1) {
                AddClass(link, HiddenClass);
            }
            break;
        }
    }
    
    RemoveClass(LinkRemoveOtherNames, HiddenClass);
    
}
function removeOtherNames(link, container) {
    Container = $get(container);
    var items = GetElementsByTagAndClassName(Container, "tr", "actUpon");
    
    var numOfHidden = GetElementsByTagAndClassName(Container, "tr", "actUpon hidden");
    
    var LinkRemoveOtherNames = $get("LinkRemoveOtherNames");
    
    var hasAtleastOne = false;
    for(var i=items.length-1;i>=0;i--) {
        var inputs = items[i].getElementsByTagName("input");
        for(var j=0;j<inputs.length;j++) {
            inputs[j].value = "";
        }
        if(!HasClass(items[i], HiddenClass)) {
            AddClass(items[i], HiddenClass);
            
            break;
        }
    }
    if((numOfHidden.length + 1) == items.length) {
        AddClass(link, HiddenClass);
    }
    RemoveClass($get("LinkAddOtherNames"), HiddenClass);
//    if(hasAtleastOne == false) {
//        AddClass(LinkRemoveOtherNames, HiddenClass);
//    }
}


function ToggleControls(checkbox, container) {
    var cont = $get(container);
    var inputs = cont.getElementsByTagName("input");
    var selects = cont.getElementsByTagName("select");
    for(var j=0;j<inputs.length;j++) {
        inputs[j].disabled = checkbox.checked;
    }
    for(var j=0;j<selects.length;j++) {
        selects[j].disabled = checkbox.checked;
    }
}


function handleFacts() {
	var factDivs = ["webFact1", "webFact2", "evFact1", "evFact2"];
	
	for(var i=0; i<factDivs.length; i++) {
		document.getElementById(factDivs[i]).getElementsByTagName("SELECT")[0].onchange=function() {
			var otherelem = this.parentNode.id.indexOf("1") >= 0 ? this.parentNode.id.replace("1", "2") : this.parentNode.id.replace("2", "1");
			checkFact(this, otherelem);
		}
	}
}

function checkFact(elema, divb) {
	var elemb = document.getElementById(divb).getElementsByTagName("SELECT")[0];
	var errorDiv = divb.substr(0, divb.length-1) + "Error";	
	var vala = elema.options[elema.selectedIndex].value;
	var valb = elemb.options[elemb.selectedIndex].value;
	
	if(vala!="" && valb!="" && vala==valb) {
		var clearelem = divb.substr(0, divb.length-1) + "2";
		clearelem.selectedIndex = 0;
		document.getElementById(errorDiv).style.display = "block";
	}
	else {
		document.getElementById(errorDiv).style.display = "none";
	}
}

function ToggleAddressBox(which, toShow)
{
    var contactTable = $get("contactTable");
    
    var activeRows = GetElementsByTagAndClassName(contactTable, "tr", "actUpon");
    
    for(var i=0;i<activeRows.length;i++) {
        if(toShow){
            RemoveClass(activeRows[i], HiddenClass);
        }else {
            AddClass(activeRows[i], HiddenClass);
        }
    }
}

function CheckToHideAddress(clientId) {
    var checkBox = $get(clientId);
    
    if(checkBox.checked) {
        ToggleAddressBox(null, false);
    }
}

function SetUpHasMatchingCompanyRadioButtons()
{
    var container = $get("HasMatchingCompanyRadioButtonContainer");
    var radios = container.getElementsByTagName("input");
    
    var CompanyInfoContainer = $get("CompanyInfoContainer");
    var CompanyNameSelect = GetElementsByTagAndClassName(CompanyInfoContainer, "select", "CompanyNameSelect")[0];
    var CompanyNameTextBox = GetElementsByTagAndClassName(CompanyInfoContainer, "input", "CompanyNameTextBox")[0];
    
    var hasBeenActivated = false;
    for(var i=0;i<radios.length;i++)
    {
        radios[i].onclick = HasMatchingCompanyRadioButtonOnClick;
        
        if(!hasBeenActivated) {
            if(radios[i].value == "True" && radios[i].checked)
            {
                CompanyNameSelect.disabled = false;
                CompanyNameTextBox.disabled = false;
                hasBeenActivated = true;
            }else {
                CompanyNameSelect.disabled = true;
                CompanyNameTextBox.disabled = true;
            }
        }
    }
    
}
function HasMatchingCompanyRadioButtonOnClick() {
    var CompanyInfoContainer = $get("CompanyInfoContainer");
    var CompanyNameSelect = GetElementsByTagAndClassName(CompanyInfoContainer, "select", "CompanyNameSelect")[0];
    var CompanyNameTextBox = GetElementsByTagAndClassName(CompanyInfoContainer, "input", "CompanyNameTextBox")[0];
    //alert(this.value);
    if(this.value == "True" && this.checked)
    {
        CompanyNameSelect.disabled = false;
        CompanyNameTextBox.disabled = false;
    }else {
        CompanyNameSelect.disabled = true;
        CompanyNameTextBox.disabled = true;
    }
}


//HasMatchingCompanyRadioButtonContainer CompanyNameSelect CompanyNameTextBox
