var sfSync = {

	init: function() {
		var found = 0;
		for (var i=0;i<['D491','D503','D515','D503'].length;i++) {
			if (!document.getElementById('xFormField'+['D491','D503','D515','D503'][i])) found = 1;
		}

		if (!found) return;
		document.getElementById('estimateForm').onsubmit = function() { return sfSync.sync(this); }
	},


	sync: function(form) {
		var inps = form.getElementsByTagName('input');
		var sels =  form.getElementsByTagName('select');

		var inputs = [];
		for (var i=0;i<sels.length;i++) inputs.push(sels[i]);
		for (var i=0;i<inps.length;i++) inputs.push(inps[i]);

		for (var i=0;i<inputs.length;i++) {
			var field = [];
			var inFields = [inputs[i]];
			switch (inputs[i].id) {
				case 'firstName':
					field = ['D491','D503','D515','D503'];
				break;
				case 'lastName':
					field = ['D492','D504','D516','D504'];
				break;
				case 'companyName':    
					field = ['D490','D502','D514','D502'];
				break;
				case 'address1':
					field = ['D495','D531','D519','D507'];
				break;
				case 'address2':
					field = [];
				break;
				case 'city':
					field = ['D497','D533','D521','D509'];
				break;
				case 'homePhone':
					field = ['D494','D530','D518','D506'];
					inFields = [document.getElementById('homePhoneArea'),inputs[i],document.getElementById('homePhoneExt')];
				break;
				case 'email':
					field = ['D493','D529','D517','D505'];
				break;
				case 'state':
					field = ['D499','D535','D523','D511'];
				break;
				case 'country':
					field = ['D500','D536','D524','D512'];
				break;
				case 'reference':
					field = ['D501','D537','D525','D513'];
				break;
			}

			if (inputs[i].name == 'zipcode') {
				field = ['D498','D534','D522','D510'];
			}

			var fid;
			var f;
			for (var ff=0;ff<field.length;ff++) {
				f = document.getElementById('xFormField'+field[ff]);
				if (!f) continue;
				f.value = '';


				for (var k=0;k<inFields.length;k++) {
					if (f.options) {
						for (var ii=0;ii<=f.options.length;ii++) {
							if (inFields[k].options[inFields[k].selectedIndex].value == f.options[ii].value) {
								f.selectedIndex = ii;
								break;
							}
						}
						
					} else {
						f.value += inFields[k].value+' ';
					}
				}
			}
		}

		return true;
	}

}


sfSync.init();


/*
company
<input id="xFormFieldD490" maxlength="250" type="text" name="189[form][D490]" value=""/>
first
<input id="xFormFieldD491" maxlength="250" type="text" name="189[form][D491]" value=""/>
last
<input id="xFormFieldD492" maxlength="250" type="text" name="189[form][D492]" value=""/>
email
<input id="xFormFieldD493" type="text" name="189[form][D493]" class="eMail" value=""/>
phone
<input id="xFormFieldD494" maxlength="24" type="text" name="189[form][D494]" value=""/>
address 1
<input id="xFormFieldD495" maxlength="250" type="text" name="189[form][D495]" value=""/>
address 2
<input id="xFormFieldD496" maxlength="250" type="text" name="189[form][D496]" value=""/>
city
<input id="xFormFieldD497" maxlength="250" type="text" name="189[form][D497]" value=""/>
zip
<input id="xFormFieldD498" maxlength="250" type="text" name="189[form][D498]" value=""/>

state
<select name="189[form][D499]" id="xFormFieldD499">
country
<select name="189[form][D500]" id="xFormFieldD500">
*/
