var arSameAs = []
arSameAs.push({src:'FacilityName', dst:'BillToName'});
arSameAs.push({src:'FacilityContactName', dst:'BillToContactName'});
arSameAs.push({src:'FacilityAddress1', dst:'BillToAddress1'});
arSameAs.push({src:'FacilityAddress2', dst:'BillToAddress2'});
arSameAs.push({src:'FacilityCity', dst:'BillToCity'});
arSameAs.push({src:'FacilityState', dst:'BillToState'});
arSameAs.push({src:'FacilityZip', dst:'BillToZip'});
arSameAs.push({src:'FacilityPhoneAreaCode', dst:'BillToPhoneAreaCode'});
arSameAs.push({src:'FacilityPhonePrefix', dst:'BillToPhonePrefix'});
arSameAs.push({src:'FacilityPhoneNumber', dst:'BillToPhoneNumber'});
arSameAs.push({src:'FacilityEmail', dst:'BillToEmail'});

function page_load()
{
	document.getElementById('sameAsFacility').onchange = function()
	{
		if (document.getElementById('sameAsFacility').checked)bindControls();
		else releaseControls()	
	}
	if (document.getElementById('sameAsFacility').checked) bindControls();
}

function page_unload(){releaseControls();}



function bindControls()
{
	for (var i=0; i<arSameAs.length; i++)
	{
		
		if(!arSameAs[i].src.id)
		{
			arSameAs[i].src = document.getElementsByName(arSameAs[i].src)[0]
			arSameAs[i].src.id = arSameAs[i].src.name
		}
		if(!arSameAs[i].dst.id)
		{
			arSameAs[i].dst = document.getElementsByName(arSameAs[i].dst)[0]
			arSameAs[i].dst.id = arSameAs[i].dst.name
		}
		
		try{
			arSameAs[i].src.boundControl = arSameAs[i].dst;
		}catch(e){
			alert(i + ' \n '  + e);
		}
		
		arSameAs[i].dst.readOnly = true;
		arSameAs[i].dst.disabled = true;
		
		
		bindEvent(arSameAs[i].src, 'change', makeSameAs)
		arSameAs[i].dst.value = arSameAs[i].src.value;
	}
}

function releaseControls()
{
	for (var i=0; i<arSameAs.length; i++)
	{
		arSameAs[i].src.boundControl = null;
		arSameAs[i].dst.readOnly = false;
		arSameAs[i].dst.disabled = false;
		releaseEvent(arSameAs[i].src, 'change', makeSameAs);
	}
}

function makeSameAs()
{
	this.boundControl.value = this.value;
}

function bindEvent(element, eventName, observer)
{
	if (element.addEventListener)
	{
		element.addEventListener(eventName, observer, false);
	}
	else if (element.attachEvent)
	{
		var observerName = String(observer).substring(9,String(observer).indexOf('('));
		eval('element.'+observerName+'=observer');
		eval('element.'+eventName+'_'+observerName+'=element.'+observerName+'.bindAsEventListener(element)'); 
		element.attachEvent('on'+eventName, eval('element.'+eventName+'_'+observerName));
	}
	return element;
}
function releaseEvent(element, eventName, observer)
{
	if (element.addEventListener)
	{
		element.removeEventListener(eventName, observer, false);
	}
	else if(element.attachEvent)
	{
		var observerName = String(observer).substring(9,String(observer).indexOf('('));
		element.detachEvent('on'+eventName, eval('element.'+eventName+'_'+observerName));
	}
	return element;
}


//<prototypejs.org>
var $A = Array.from = function(iterable) {
  if (!iterable) return [];
  if (iterable.toArray) {
    return iterable.toArray();
  } else {
    var results = [];
    for (var i = 0, length = iterable.length; i < length; i++)
      results.push(iterable[i]);
    return results;
  }
}
	
Function.prototype.bindAsEventListener = function(object) {
  var __method = this, args = $A(arguments), object = args.shift();
  return function(event) {
    return __method.apply(object, [( event || window.event)].concat(args).concat($A(arguments)));
  }
}
//</ prototypejs.org>