// JavaScript Document
function attachEventListener(target, eventType, functionRef, capture)
{
    if(typeof target.addEventListener != "undefined")
    {
        target.addEventListener(eventType, functionRef, capture);
    }
    else if(typeof target.attachEvent != "undefined")
    {
        target.attachEvent("on" + eventType, functionRef);
    }
    else
    {
        eventType = "on" + eventType;
        if(typeof target[eventType] == "function")
        {
            var oldListener = target[eventType];
            target[eventType] = function()
            {
                oldListener();
                return functionRef();
            };
        }
        else
        {
            target[eventType] = functionRef;
        }
    }
}

function getElementsByClassName(node, classname)
{
	var a = Array();
	var re = new RegExp("(^| )" + classname + "( |$)");
	var els = node.getElementsByTagName("*");
	for(var i = 0, j = els.length; i < j; i++)
	{
		if(re.test(els[i].className))
		{
			a.push(els[i]);
		}
	}
	re = null;
	return a;
}

function blah(){
	var innerHTML;
	var userList = getElementsByClassName(document, "selectUser");
//	alert (userList.length);
	for(var i = 0; i < userList.length; i++)
	{
		if(userList[i].nodeName.toLowerCase() == "td")
		{
			innerHTML = 
				"<input type=\"radio\" name=\"userCheckBox\" value=\"checkbox\" class=\"cb\"  onclick=\"showUserDetail();\" />";
//            alert(innerHTML);
			userList[i].innerHTML = innerHTML;
		} 
	} 
}

function showUserDetail() {
		var obj = document.getElementById("userDetails");
			obj.style.display = "block";
	}

function init()
{
	var tickerList = getElementsByClassName(document, "remove");
	var innerHTML;
	var ticker;
	var menuId;
	for(var i = 0; i < tickerList.length; i++)
	{
		if(tickerList[i].nodeName.toLowerCase() == "td")
		{
			ticker = tickerList[i].title;
			innerHTML = "<a href=../\"#\" class=\"blah\" onclick=\"deleteCurrentRow(this);\">" + 
				tickerList[i].innerHTML + 
				"</a>";
//            alert(innerHTML);
			tickerList[i].innerHTML = innerHTML;
		} // end if(tickerList[i].nodeName.toLowerCase() == "span")
	} // end for(var i = 0; i < tickerList.length; i++)
	
	var obj = document.getElementById("checkSignature");
	if (obj) 
	{
		obj.onclick = function()
		{
			toggleSignature();
		};	
	}
	
	var selectedAddress = getSelectedAddress();
	
	if ( selectedAddress == 'meHome' )
	{
		//disable the additional info box for office address, if it exists, since they have selected mailing address
		disableBranchAdditionalInfo();
	}
	else if ( selectedAddress == 'orderTypeBranch' )
	{
		//disable the additional info box for the mailing address, if it exists, since they have selected the branch address
		disableMailingAdditionalInfo();
	}
	else
	{
		//alternate address used, disable both mailing and branch additional info boxes
		disableMailingAdditionalInfo();
		disableBranchAdditionalInfo();		
	}

	notifyCheckAll();
	notifyFpCheckBox();
}

function disableMailingAdditionalInfo()
{
	if ( document.getElementById( 'SHIPPING_INSTRUCTIONS_UID_mailing' ) )
	{
		document.getElementById( 'SHIPPING_INSTRUCTIONS_UID_mailing' ).disabled = true;
	}
}

function disableBranchAdditionalInfo()
{
	if ( document.getElementById( 'SHIPPING_INSTRUCTIONS_UID_branch' ) )
	{
		document.getElementById( 'SHIPPING_INSTRUCTIONS_UID_branch' ).disabled = true;
	}
}

function disableAlternateAdditionalInfo()
{
	if ( document.getElementById( 'SHIPPING_INSTRUCTIONS_UID_alt' ) )
	{
		document.getElementById( 'SHIPPING_INSTRUCTIONS_UID_alt' ).disabled = true;
	}
}

function getSelectedAddress()
{
	var addresses = document.getElementsByName( 'eStudioAddress' );
	
	for ( var i = 0; i < addresses.length; i++ )
	{
		if ( addresses[i].checked )
		{
			return addresses[i].value;
		}
	}
}

function deleteCurrentRow(obj)
{
		var delRow = obj.parentNode.parentNode;
		var tbl = delRow.parentNode.parentNode;
		var rIndex = delRow.sectionRowIndex;
		var rowArray = new Array(delRow);
		deleteRows(rowArray);
}

function deleteRows(rowObjArray)
{
		for (var i=0; i<rowObjArray.length; i++) {
			var rIndex = rowObjArray[i].sectionRowIndex;
			rowObjArray[i].parentNode.deleteRow(rIndex);
	}
}

function toggleSignature() 
{
	var toggleSig = document.getElementById("includeSignature");
	var signature = document.getElementById("checkSignature");
	var eNote = document.getElementById("enote");
	var toggleENote = document.getElementById("includeENote");
	if ( signature ) 
	{
		if( signature.checked ) 
		{
			toggleSig.style.display = 'block';
			if ( eNote )
			{
				eNote.checked = false;
				toggleENote.style.display = 'none';
			}
		}
		else 
		{ 
			toggleSig.style.display = 'none';
		}
		return true;
	}
	else
	{
		return false;
	}
}
function toggleENote() 
{
	var toggleSig = document.getElementById("includeSignature");
	var signature = document.getElementById("checkSignature");
	var eNote = document.getElementById("enote");
	var toggleENote = document.getElementById("includeENote");
	if ( eNote ) 
	{
		if( eNote.checked ) 
		{
			toggleENote.style.display = 'block';
			if ( signature )
			{
				signature.checked = false;
				toggleSig.style.display = 'none';
			}
		}
		else 
		{ 
			toggleENote.style.display = 'none';
		}
		return true;
	}
	else
	{
		return false;
	}
}
function changeBack() {
//			alert('hi');
			var allAddress = getElementsByClassName(document, 'addressContainer');
//				alert(allAddress.length);
			for (var j = 0; j < allAddress.length; j++) {
				if (allAddress) {
				allAddress[j].style.backgroundColor = '#FFF';
			}
	}
}
function selectRecipient(obj) {
		changeBack();
//		alert(obj.value);
		var thisSection = obj.parentNode.parentNode;
		var shipToMeAlt = document.getElementById('altAddress');
		var salesAltObj = document.getElementById('salesAlt');
		var clientAddressSectionObj = document.getElementById('clientAddressSection');;
		var signatureOn = document.getElementById('checkSignature');
		disableAlternateAdditionalInfo();
		disableMailingAdditionalInfo();
		disableBranchAdditionalInfo();
		
		var si_contact = document.getElementById('SHIPPING_INSTRUCTIONS_UID_contact')
		if ( si_contact != null )
		{
			si_contact.disabled = true;
		}
		
		var backColor = '#F8F7E5'
		if (salesAltObj) {
			if (obj.value == 'meHome') {
				document.getElementById('SHIPPING_INSTRUCTIONS_UID_mailing').disabled = false;
			}
			if (obj.value == 'orderTypeBranch') {
				document.getElementById('SHIPPING_INSTRUCTIONS_UID_branch').disabled = false;
			}
			if (obj.value == 'meAlt'){
				salesAltObj.style.display = 'block';
				thisSection.style.backgroundColor = backColor;
				if ( signatureOn )
				{
					signatureOn.disabled = false;
					signatureOn.checked = false;
				}
				document.getElementById('SHIPPING_INSTRUCTIONS_UID_alt').disabled = false;
			}
			else {
				salesAltObj.style.display = 'none';
				thisSection.style.backgroundColor = backColor;
				if ( signatureOn )
				{
					signatureOn.disabled = false;
					signatureOn.checked = false;
				}
			}
		}
		else {		
			if (obj.value == 'meHome') {
				document.getElementById('SHIPPING_INSTRUCTIONS_UID_mailing').disabled = false;
			}
			if (obj.value == 'orderTypeBranch') {
				document.getElementById('SHIPPING_INSTRUCTIONS_UID_branch').disabled = false;
			}
			if ( obj.value == 'clientAddy' ) {
				shipToMeAlt.style.display = 'none';
				thisSection.style.backgroundColor = backColor;
				si_contact.disabled = false;
			}
			else if (obj.value == 'meAlt') {
				shipToMeAlt.style.display = 'block';
				thisSection.style.backgroundColor = backColor;
				document.getElementById('SHIPPING_INSTRUCTIONS_UID_alt').disabled = false;
			}
			else {
				shipToMeAlt.style.display = 'none';
				thisSection.style.backgroundColor = backColor;
			}
			if ( signatureOn ) {
				if ( obj.value == 'clientAddy' ) {
					signatureOn.disabled = false;
					signatureOn.checked = true;				
				}
				else {
					signatureOn.disabled = true;
					signatureOn.checked = false;				
				}
			}
		}
		if (clientAddressSectionObj){		
			var clientAddressSectionInputObj = clientAddressSectionObj.getElementsByTagName('input');
			for (var i = 0; i < clientAddressSectionInputObj.length; i++) {
				if (obj.value == 'clientAddy'){
					clientAddressSectionInputObj[i].disabled = false;
				}
				else if (obj.value == 'meAlt') {
					clientAddressSectionInputObj[i].disabled = true;
					}
				else {
					clientAddressSectionInputObj[i].disabled = true;
				}
			}
			var clientAddressSectionSelectObj = clientAddressSectionObj.getElementsByTagName('select');			
			for (var i = 0; i < clientAddressSectionSelectObj.length; i++) {
				if (obj.value == 'clientAddy'){
					clientAddressSectionSelectObj[i].disabled = false;
				}
				else {			
					clientAddressSectionSelectObj[i].disabled = true;
				}
			}			
		}
	if ( !salesAltObj )
	{
		toggleSignature();
	}
}
function selectRecipientDefault() {
		var d = document.getElementById('meHome');
		if (d) {
		var thisSection = d.parentNode.parentNode;
		var backColor = '#F8F7E5'
				thisSection.style.backgroundColor = backColor;
				d.checked = true;
				if (document.getElementById('clientAddressSection')) {
						selectRecipient(d);					
			}
	}
}

function removeClassName (elem, className) {
	elem.className = elem.className.replace(className, "").trim();
}

function addCSSClass (elem, className) {
	removeClassName (elem, className);
	elem.className = (elem.className + " " + className).trim();
}

String.prototype.trim = function() 
{
	return this.replace( /^\s+|\s+$/, "" );
};

function stripedTable() {
	if (document.getElementById && document.getElementsByTagName) {  
		var allTables = document.getElementsByTagName('table');
		if (!allTables) { return; }

		for (var i = 0; i < allTables.length; i++) {
			if (allTables[i].className.match(/[\w\s ]*scrollTable[\w\s ]*/)) {
				var trs = allTables[i].getElementsByTagName("tr");
				for (var j = 0; j < trs.length; j++) {
					removeClassName(trs[j], 'alternateRow');
					addCSSClass(trs[j], 'normalRow');
				}
				for (var k = 0; k < trs.length; k += 2) {
					removeClassName(trs[k], 'normalRow');
					addCSSClass(trs[k], 'alternateRow');
				}
			}
		}
	}
}

function notifyCheckAll()
{
	var input;
	var node;
	var found;
	var form;
	input = document.getElementsByTagName("input");
	for(var j = 0; j < input.length; j++)
	{
		if(input[j].name.toLowerCase() == "fpcheckbox")
		{
			input[j].onclick = function()
			{
				node = this;
				found = false;
				while(node !== null && !found)
				{
					if(node.nodeName.toLowerCase() == "form")
					{
						form = node;
						found = true;
						break;
					}
					node = node.parentNode;
				} // end while(node != null && !found)
				if(found)
				{
					var input = form.getElementsByTagName("input");
					for(var k = 0; k < input.length; k++)
					{
						if(input[k].name.toLowerCase() == "chkcheckall")
						{
							var chkAll = input[k];
							
							if(chkAll.checked && !this.checked)
							{
								chkAll.checked = false;
							}
						} // end if(input[k].name.toLowerCase() == "chkcheckall")
					} // end for(var k = 0; k < input.length; k++)
				} // end if(found)
				return true;
			}; // end input[j].onclick = function()
		} // if(input[j].name.toLowerCase() == "fpcheckbox")
	} // end for(var j = 0; j < input.length; j++)
}

function notifyFpCheckBox()
{
	var input;
	var node;
	var found;
	var form;
	input = document.getElementsByTagName("input");
	for(var j = 0; j < input.length; j++)
	{
		if(input[j].name.toLowerCase() == "chkcheckall")
		{
			input[j].onclick = function()
			{
				node = this;
				found = false;
				while(node !== null && !found)
				{
					if(node.nodeName.toLowerCase() == "form")
					{
						form = node;
						found = true;
						break;
					}
					node = node.parentNode;
				} // end while(node != null && !found)
				if(found)
				{
					var input = form.getElementsByTagName("input");
					for(var k = 0; k < input.length; k++)
					{
						if(input[k].name.toLowerCase() == "fpcheckbox")
						{
							var fpChk = input[k];
							
							if(this.checked)
							{
								fpChk.checked = true;
							}
							else							
							{
								fpChk.checked = false;
							}
						} // end if(input[k].name.toLowerCase() == "fpcheckbox")
					} // end for(var k = 0; k < input.length; k++)
				} // end if(found)
				return true;
			}; // end input[j].onclick = function()
		} // end if(input[j].name.toLowerCase() == "chkcheckall")
	} // end for(var j = 0; j < input.length; j++)
}


function displaySection(obj) {
	var tabObj = obj.value;
//	alert (tabObj);
	
	var ugSelf = document.getElementById("subscribeSelf");
	var ugPublic = document.getElementById("subscribePublic");
	var ugFP = document.getElementById("subscribeFP");
	var ugDoc = document.getElementById("subscribeDoc");

	if(ugSelf) {
		ugSelf.style.display = 'none';
	}
	if(ugPublic) {
		ugPublic.style.display = 'none';
	}
	if(ugFP) {
		ugFP.style.display = 'none';
	}
	if(ugDoc) {
		ugDoc.style.display = 'none';
	}
	document.getElementById(tabObj).style.display = 'block';
}


// JavaScript Document

// *****************************************************************************************
function retrieveComputedStyle(element, styleProperty)
{
	var computedStyle = null;
	if(typeof element.currentStyle != "undefined")
	{
		computedStyle = element.currentStyle;
	}
	else
	{
		computedStyle = document.defaultView.getComputedStyle(element, null);
	}
	return computedStyle[styleProperty];
}

function addClass(target, classValue)
{
	var pattern = new RegExp("(^| )" + classValue + "( |$)");
	var classWasAdded = false;
	if(!pattern.test(target.className))
	{
		classWasAdded = true;
		if(target.className === "")
		{
			target.className = classValue;
		}
		else
		{
			target.className += " " + classValue;
		}
	}
	pattern = null;
	return classWasAdded;
}
function removeClass(target, classValue)
{
	var removedClass = target.className;
	var pattern = new RegExp("(^| )" + classValue + "( |$)");
	var classWasRemoved = false;
	if(pattern.test(target.className))
	{
		classWasRemoved = true;
		removedClass = removedClass.replace(pattern, "$1");
		removedClass = removedClass.replace(/ $/, "");
		target.className = removedClass;
	}
	pattern = null;
	return classWasRemoved;
}
function findClass(target, classValue)
{
	var pattern = new RegExp("(^| )" + classValue + "( |$)");
	var classWasFound = false;
	if(pattern.test(target.className))
	{
		classWasFound = true;
	}
	pattern = null;
	return classWasFound;
}
function changeClass(target, fromClassValue, toClassValue)
{
    removeClass(target, fromClassValue);
    addClass(target, toClassValue);
}
// *****************************************************************************************

// *****************************************************************************************
//Function to get table TAGGED for ALTERNATING ROWS effect
function getAltTables() 
{
	var allAltTables = [];
	var tableAltRows = getElementsByClassName(document, 'altRows');
	var tableAltRowsHgrid = getElementsByClassName(document, 'altRowsHgrid');
	var tableAltRowsGrid = getElementsByClassName(document, 'altRowsGrid');
	//alert(tableAltRows.length + "\n" + tableAltRowsHgrid.length + "\n" + tableAltRowsGrid.length);
	if(tableAltRows.length === 0 && tableAltRowsHgrid.length === 0 && tableAltRowsGrid.length === 0) 
	{
		return allAltTables;
	} 
	else 
	{
		var allAltTables = tableAltRows.concat(tableAltRowsHgrid,tableAltRowsGrid);
		return allAltTables;
		
		var i;
		for(i = 0; i < tableAltRows.length; i++)
		{
			allAltTables.push(tableAltRows[i]);
		}
		for(i = 0; i < tableAltRowsHgrid.length; i++)
		{
			alert("tableAltRowsHgrid");
			allAltTables.push(tableAltRowsHgrid[i]);
		}
		for(i = 0; i < tableAltRowsGrid.length; i++)
		{
			alert("tableAltRowsGrid");
			allAltTables.push(tableAltRowsGrid[i]);
		}
		return allAltTables;
	}
}

//Function to get table TAGGED for ROLLOVER effect
function getROTables() 
{
	var tableRO = getElementsByClassName(document, 'rollOver');
	//alert(tableRO.length);
	if(tableRO.length === 0) 
	{
		return false;
	} 
	else 
	{
		var roTables = tableRO;
		return roTables ;
	}
}

function alternate() 
{
	var altTables = getAltTables();
	var roTables = getROTables();
	var numAltTables;
	var numROTables;
	var trs;
	var numTrs;
	// alert('altTables =' + altTables.length);
	// alert('rollOverTables =' + roTables.length);
	// var dataTables = getDataTables();
	if(altTables.length > 0) 
	{
		numAltTables = altTables.length;
		for(var i=0; i < numAltTables; i++) 
		{
			if(altTables) 
			{
				var regOrder = 1;
				trs = altTables[i].getElementsByTagName('tr');
				numTrs = trs.length;
				for(var j=0; j < numTrs; j++) 
				{
					//if(j != 0) 
					//{
						if(trs[j].getElementsByTagName('th').length > 0) 
						{
							if((j%2) == 1) 
							{
								regOrder = 1;
							} 
							else if ((j%2) === 0) 
							{
								regOrder = 0;
							}
						}
						if(regOrder === 0) 
						{
							//((j%2) === 0) ? trs[j].className += ' odd' : trs[j].className += ' even';
							((j%2) === 0) ? addClass(trs[j], 'odd') : addClass(trs[j], 'even');
						} 
						else 
						{
							//((j%2) === 0) ? trs[j].className += ' even' : trs[j].className += ' odd';
							((j%2) === 0) ? addClass(trs[j], 'even') : addClass(trs[j], 'odd');
						}
					//}
				} // end for(var j=0; j < numTrs; j++) 
			} // end if(altTables) 
		} // end for(var i=0; i < numAltTables; i++) 
	} // end if(altTables.length > 0) 
			
	if(roTables.length > 0) 
	{
		numROTables = roTables.length;
		for(var i=0; i < numROTables; i++) 
		{
			if (roTables) 
			{
				trs = roTables[i].getElementsByTagName('tr');
				numTrs = trs.length;
				for(var j=0; j < numTrs; j++) 
				{
					trs[j].onmouseover = function()
					{
						//if(this.className === 'even' || this.className === 'odd' || this.className === '') 
						//{
						//	this.className = "rollover";
						//}
						if(findClass(this, 'even') || findClass(this, 'odd') || findClass(this, '')) 
						{
							addClass(this, "rollover");
						}
					};
					trs[j].onmouseout = function()
					{
						//if(this.className == 'rollover') 
						//{
						//	this.className = "";
						//}
						if(findClass(this, 'rollover'))
						{
							removeClass(this, "rollover");
						}
					};
				} // end for(var j=0; j < numTrs; j++) 
			} // end if (roTables) 
		} // end for(var i=0; i < numROTables; i++)
	} // end if(roTables.length > 0) 
} // end function alternate() 
// *****************************************************************************************

// *****************************************************************************************
function initAltTables() 
{
	try 
	{ 
		alternate();    
	}     
	catch(e) 
	{ 
		var output = "Exception caught.\n";
		for(var i in e)
		{
			output += i + ": " + e[i] + "\n";
		}
		alert(output);
	}
}

//window.onload = initAltTables;
// *****************************************************************************************


//Expands Up.  Keeps button/div on bottom
function expand(a){
	var more = 'More Options';
	var less = 'Less Options';
	var e=document.getElementById(a);
	var text = getElementsByClassName(document, 'options');
	for(var i = 0; i < text.length; i++)
	{
		if(e.style.display=='none')
		{
			e.style.display="block"
			text[i].innerHTML = less;	
		}
		else if(e.style.display=='block')
		{
			e.style.display="none"
			text[i].innerHTML = more;	
		}
	}
  return true;
}


// Expands Down.  Keeps button/div position
function expandDown( targetId, sourceId){
target = document.getElementById( targetId );
if (sourceId.checked){
target.style.display = "block";
} else {
target.style.display = "none";
}
}


//Text Change
function txtChange (a, t)
	{ 
//	a.innerHTML == t[0] ? a.innerHTML = t[1] : a.innerHTML = t[0]; 
	}

canSubmit = true;
	
function goToNextPage()
{
	if ( canSubmit )
	{
		appendDebugInfo( document.forms[0] );
		
		canSubmit = false;
		document.forms[0].submit();
		return true;
	}
	else
	{
		return false;
	}
}

function clearCart()
{
	document.getElementById( 'clearCart' ).src = document.getElementById( 'clearCartURL' ).value;
}



attachEventListener(window, "load", init, false);
attachEventListener(window, "load", initAltTables, false);
//attachEventListener(window, "load", toggleSignature, false);
attachEventListener(window, "load", stripedTable, false);
attachEventListener(window, "load", blah, false);
//attachEventListener(window, "load", selectRecipientDefault, false);

