/******************************************************************************
*	NAME:
*	dom.js
*
*	PURPOSE:
*	Encapsulate DOM manipulation functions used throughout application
*
*	HISTORY:
*	JJE 01/03/2006:
*	Created
******************************************************************************/

// Create onload event to call necessary functions
if (window.addEventListener)
{
	window.addEventListener("load",addLinkTargets,false);
	window.addEventListener("load",makeLinksActive,false);
	window.addEventListener("load",createCaptcha, false);
	window.addEventListener("load",attachBillingCheckboxFunction, false);
}
else
{
	window.attachEvent("onload",function(){addLinkTargets();});
	window.attachEvent("onload", function() {makeLinksActive();});
	window.attachEvent("onload", function() {createCaptcha();});
	window.attachEvent("onload", function() {attachBillingCheckboxFunction();});
}

// Add target attribute to links that need to open in new window
function addLinkTargets()
{
	var aryLinks = document.getElementsByTagName("a");
	for (var i = 0; i < aryLinks.length; ++i)
	{
		if (aryLinks[i].className == "link_external")
		{
			var currentTitle = aryLinks[i].getAttribute("title");
			aryLinks[i].setAttribute("title",currentTitle + " (Opens in new browser window)");
			aryLinks[i].setAttribute("target","_blank");
		}
	}
}

// Add active class to current menu item
function makeLinksActive()
{
	var content = document.getElementById("content");
	if (content)
	{
		var header = content.getElementsByTagName("h2")[0];
		if (header)
		{
			var activeId = header.id.split("_");
			var activeId = activeId[1];
			var menu = document.getElementById("menu").getElementsByTagName("ul")[0];
			var aryItems = menu.getElementsByTagName("li");
			for (var i = 0; i < aryItems.length; ++i)
			{
				if (aryItems[i].id == "menu_" + activeId)
				{
					var activeItem = aryItems[i].getElementsByTagName("a")[0];
					activeItem.className = "active";
				}
			}
		}
	}
}

// Return a random character
function getRandomChar()
{
	var numberChars = "0123456789";
	var alphaChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	var charSet = numberChars + alphaChars;
	return charSet.charAt(Math.floor(Math.random() * (charSet.length - 0)) + 0);
}

// Generate CAPTCHA-like random character string
function createCaptcha()
{
	var container = document.getElementById("captcha");
	var fld = document.getElementById("ff_captcha");
	if (container && fld)
	{
		var captcha = "";
		var captcha = captcha + getRandomChar();
		for (var i = 1; i < 8; ++i)
		{
			captcha = captcha + getRandomChar();
		}
		container.innerHTML = captcha;
		fld.value = captcha;
	}
}

function validateReg()
{
	var frm = document.getElementById("frm_register");
	var training_yes = document.getElementById("ff_training_yes");
	var training_no = document.getElementById("ff_training_no");
	var training_only = document.getElementById("ff_training_onlytraining");
	if (training_yes.checked != true && training_no.checked != true && training_only.checked != true)
	{
		alert("You must specify if you would like to attend Pre-Conference Training");
		return false;
	}
	else
	{
		frm.action = "process.asp";
		frm.submit();
	}
}

function toggleRefName()
{
	var fldHow = document.getElementById("ff_how");
	var fldRefName = document.getElementById("ff_how_refname");
	if (fldHow.selectedIndex == 6)
	{	
		fldRefName.parentNode.className = "";
	}
	else
	{
		fldRefName.parentNode.className = "hidden";
	}
}

function toggleInvoiceType() 
{
    var fldInvoice = document.getElementById("invoice");
    var fldPmtCheck = document.getElementById("ff_payment_check");
    if (fldPmtCheck.checked) 
    {
        if (fldInvoice.className == "hidden")
            fldInvoice.className = ""
        else
            fldInvoice.className = "hidden"
    }
    else
        fldInvoice.className = "hidden"
}

function attachBillingCheckboxFunction()
{
    var chkbox = document.getElementById("ff_billing_duplicate");
    if (chkbox) 
        chkbox.onclick = function() { duplicateConfContactInfo();};
    else
        return false;
}

// Copy contact info to billing info info fields
function duplicateConfContactInfo() {
    var chkbox = document.getElementById("ff_billing_duplicate");
    if (chkbox) 
    {
        var billingAgencyName = document.getElementById("ff_billing_name");
        var billingFirstName = document.getElementById("ff_billing_firstname");
        var billingLastName = document.getElementById("ff_billing_lastname");
        var billingAddress1 = document.getElementById("ff_billing_address1");
        var billingAddress2 = document.getElementById("ff_billing_address2");
        var billingCity = document.getElementById("ff_billing_city");
        var billingState = document.getElementById("ff_billing_state");
        var billingZip = document.getElementById("ff_billing_zip");
        var billingPhoneArea = document.getElementById("ff_billing_phone_area");
        var billingPhonePrefix = document.getElementById("ff_billing_phone_prefix");
        var billingPhoneSuffix = document.getElementById("ff_billing_phone_suffix");
        var billingFaxArea = document.getElementById("ff_billing_fax_area");
        var billingFaxPrefix = document.getElementById("ff_billing_fax_prefix");
        var billingFaxSuffix = document.getElementById("ff_billing_fax_suffix");
        var billingEmail = document.getElementById("ff_billing_email");
        
        if (chkbox.checked)
        {
            billingAgencyName.value = document.getElementById("ff_attendee_name").value;
            billingFirstName.value = document.getElementById("ff_attendee_firstname").value;
            billingLastName.value = document.getElementById("ff_attendee_lastname").value;
            billingAddress1.value = document.getElementById("ff_attendee_address1").value;
            billingAddress2.value = document.getElementById("ff_attendee_address2").value;
            billingCity.value = document.getElementById("ff_attendee_city").value;
            billingState.value = document.getElementById("ff_attendee_state").value;
            billingZip.value = document.getElementById("ff_attendee_zip").value;
            billingPhoneArea.value = document.getElementById("ff_attendee_phone_area").value;
            billingPhonePrefix.value = document.getElementById("ff_attendee_phone_prefix").value;
            billingPhoneSuffix.value = document.getElementById("ff_attendee_phone_suffix").value;
            billingFaxArea.value = document.getElementById("ff_attendee_fax_area").value;
            billingFaxPrefix.value = document.getElementById("ff_attendee_fax_prefix").value;
            billingFaxSuffix.value = document.getElementById("ff_attendee_fax_suffix").value;
            billingEmail.value = document.getElementById("ff_attendee_email").value;
            chkbox.checked = true;
        }
        else
        {
            billingAgencyName.value = "";
            billingFirstName.value = "";
            billingLastName.value = "";
            billingAddress1.value = "";
            billingAddress2.value = "";
            billingCity.value = "";
            billingState.value = "";
            billingZip.value = "";
            billingPhoneArea.value = "";
            billingPhonePrefix.value = "";
            billingPhoneSuffix.value = "";
            billingFaxArea.value = "";
            billingFaxPrefix.value = "";
            billingFaxSuffix.value = "";
            billingEmail.value = "";
            chkbox.checked = false;
        }
    }
}
