
var currentMask;
var visitedSteps = new Array();
var selectedRegions = new Array();
var currentRegionTotal = 1;
var currentStep = '1';
var loading = false;
var count = 0;
var demogClicked = false;

var statelist = '<option value="AL">Alabama</option><option value="AK">Alaska</option><option value="AZ">Arizona</option><option value="AR">Arkansas</option><option value="CA">California</option><option value="CO">Colorado</option><option value="CT">Connecticut</option><option value="DC">D.C.</option><option value="DE">Delaware</option><option value="FL">Florida</option><option value="GA">Georgia</option><option value="HI">Hawaii</option><option value="ID">Idaho</option><option value="IL">Illinois</option><option value="IN">Indiana</option><option value="IA">Iowa</option><option value="KS">Kansas</option><option value="KY">Kentucky</option><option value="LA">Louisiana</option><option value="ME">Maine</option><option value="MD">Maryland</option><option value="MA">Massachusetts</option><option value="MI">Michigan</option><option value="MN">Minnesota</option><option value="MS">Mississippi</option><option value="MO">Missouri</option><option value="MT">Montana</option><option value="NE">Nebraska</option><option value="NV">Nevada</option><option value="NH">New Hampshire</option><option value="NJ">New Jersey</option><option value="NM">New Mexico</option><option value="NY">New York</option><option value="NC">North Carolina</option><option value="ND">North Dakota</option><option value="OH">Ohio</option><option value="OK">Oklahoma</option><option value="OR">Oregon</option><option value="PA">Pennsylvania</option><option value="RI">Rhode Island</option><option value="SC">South Carolina</option><option value="SD">South Dakota</option><option value="TN">Tennessee</option><option value="TX">Texas</option><option value="UT">Utah</option><option value="VT">Vermont</option><option value="VA">Virginia</option><option value="WA">Washington</option><option value="WV">West Virginia</option><option value="WI">Wisconsin</option><option value="WY">Wyoming</option>';

var ajaxHistory = new Array();
ajaxHistory.push('0');

window.onload = initializePage;

var stepTextArray = new Array();
stepTextArray['1'] = "";
stepTextArray['2'] = "";
stepTextArray['3'] = '<p style="margin-top:0px;padding-top:0px;">If you do not have custom data to be added to the map, <a href="javascript:noUpload();">continue to Step 4.</a></p><p style="margin-top:1em;margin-bottom:0px;">In this step you have the option to upload your data to be included on your map. Each data file adds $99 to the base price of the map.</p><p style="margin-top:1em;margin-bottom:0px;">If you have any questions about how your data will be shown, or how to upload a file, please call us: 800-762-5158.</p><p style="margin-top:1em;margin-bottom:0px;"><br /></p>';
stepTextArray['4'] = '';
stepTextArray['5'] = 'We encourage you to provide us with any additional information you think will be helpful when we make your map (not required).';


var subStepArray = new Array();
subStepArray['radius'] = '<p style="margin-top:0px;padding-top:0px;"><strong>Part B:</strong> Enter the center point address and radius for your map. </p><p style="margin-top:1em;margin-bottom:0px;">If you need a radius of more than 100 miles, please call us before ordering: 800-762-5158.</p>';
subStepArray['states'] = '<p style="margin-top:0px;padding-top:0px;"><strong>Part B:</strong> Enter or upload a list of the states to be shown on your map.</p><p style="margin-top:1em;margin-bottom:0px;">If you want to see more than six states, please call us before ordering: 800-762-5158.</p>';
subStepArray['counties'] = '<p style="margin-top:0px;padding-top:0px;"><strong>Part B:</strong> Enter or upload a list of the counties to be shown on your map.</p><p style="margin-top:1em;margin-bottom:0px;">If you want to see more than ten counties, please call us before ordering: 800-762-5158.</p>';
subStepArray['zips'] = '<p style="margin-top:0px;padding-top:0px;"><strong>Part B:</strong> Enter or upload a list of the ZIP Codes to be shown on your map.</p><p style="margin-top:1em;margin-bottom:0px;">If you want to see more than ten ZIP Codes, please call us before ordering: 800-762-5158.</p>';
subStepArray['census'] = '<p style="margin-top:0px;padding-top:0px;"><strong>Part B:</strong> Enter or upload a list of the census tracts to be shown on your map.</p><p style="margin-top:1em;margin-bottom:0px;">If you want to see more than fifty census tracts, please call us before ordering: 800-762-5158.</p>';
subStepArray['nsew'] = '<p style="margin-top:0px;padding-top:0px;"><strong>Part B:</strong> Enter the north, south, east and west boundaries of your custom area below. </p><p style="margin-top:1em;margin-bottom:0px;">If your map will show an area larger than 200 miles across, please call us before <br />ordering: 800-762-5158.<br /></p>';

var sizeArray = new Array();

sizeArray.push('s');
sizeArray.push('m');
sizeArray.push('l');
var maxNumRegions = new Array();

maxNumRegions['states'] = 6;
maxNumRegions['counties'] = 10;
maxNumRegions['zips'] = 10;
maxNumRegions['census'] = 10;
visitedSteps.push(1);

var pickOne = "Enter your XXXX one at a time, or upload a file";
var pickOneInsert = "states";

var step1Required = new Array();
step1Required['radius'] = new Array();
step1Required['radius']['elements'] = new Array();
step1Required['radius']['text'] = new Array();
step1Required['radius']['elements'][0] = 'radius_centerpoint';
step1Required['radius']['elements'][1] = 'radius_address';
step1Required['radius']['elements'][2] = 'radius_city';
step1Required['radius']['elements'][3] = 'radius_state';
step1Required['radius']['elements'][4] = 'radius_zip';
step1Required['radius']['elements'][5] = 'radius_radius';
step1Required['radius']['text'][0] = 'Center Point Location';
step1Required['radius']['text'][1] = 'Address';
step1Required['radius']['text'][2] = 'City';
step1Required['radius']['text'][3] = 'State';
step1Required['radius']['text'][4] = 'ZIP Code';
step1Required['radius']['text'][5] = 'Radius';
step1Required['nsew'] = new Array();
step1Required['nsew']['elements'] = new Array();
step1Required['nsew']['text'] = new Array();
step1Required['nsew']['elements'][0] = 'nsew_north';
step1Required['nsew']['elements'][1] = 'nsew_south';
step1Required['nsew']['elements'][2] = 'nsew_east';
step1Required['nsew']['elements'][3] = 'nsew_west';
step1Required['nsew']['text'][0] = 'Northern boundary';
step1Required['nsew']['text'][1] = 'Southern boundary';
step1Required['nsew']['text'][2] = 'Eastern boundary';
step1Required['nsew']['text'][3] = 'Western boundary';


var featureArray = new Array();
var demogBoxes = new Array();

featureArray['states'] = 'States';
featureArray['counties'] = 'Counties';
featureArray['threedigits'] = '3-digit ZIP Codes';
featureArray['stateparks'] = 'State Parks & Forests';
featureArray['citybounds'] = 'City Boundaries';
featureArray['citypoints'] = 'City Points';
featureArray['A1andA2'] = 'Interstate and US Highways';
featureArray['natparks'] = 'National Parks & Forests';
featureArray['A3'] = 'State Highways';
featureArray['majorroads'] = 'Major Roads and Local Streets (labeled as possible)';
featureArray['rivers'] = 'Rivers & Lakes';
featureArray['military'] = 'Military Bases';
featureArray['neighbor'] = 'Neighborhoods';
featureArray['indianres'] = 'Indian Reservations';
featureArray['airports'] = 'Airports';
featureArray['localparks'] = 'Local Parks & Golf Courses';
featureArray['zips'] = 'ZIP Codes';
featureArray['tracts'] = 'Census Tracts';
featureArray['demogzip'] = 'Demographic shown by ZIP Code';
demogBoxes.push('radius_s_demogzip');
demogBoxes.push('radius_m_demogzip');
demogBoxes.push('radius_l_demogzip');
featureArray['demogtract'] = 'Demographic shown by census tract';
demogBoxes.push('radius_s_demogtract');
demogBoxes.push('radius_m_demogtract');
demogBoxes.push('radius_l_demogtract');
featureArray['carrierroutes'] = 'Carrier Routes';
featureArray['demogcr'] = 'Demographic shown by carrier route';
demogBoxes.push('radius_s_demogcr');
demogBoxes.push('radius_m_demogcr');
demogBoxes.push('radius_l_demogcr');
function fill_dummy_values(mapType) {
	switch (mapType) {
		case "radius":		
			document.getElementById('radius_address').value = 'The Address';
			document.getElementById('radius_city').value = 'The City';
			document.getElementById('radius_zip').value = '12345';
			document.getElementById('radius_radius').value = '5';
			document.getElementById('radius_state').selectedIndex = 10;
		break;
		case "nsew":
			document.getElementById('nsew_north').value = 'Sample North Boundary';
			document.getElementById('nsew_south').value = 'Sample South Boundary';
			document.getElementById('nsew_east').value = 'Sample East Boundary';
			document.getElementById('nsew_west').value = 'Sample West Boundary';
			document.getElementById('nsew_radius1').checked = "checked"
		break;
		case "zips":
			currentRegionTotal = 6;
			selectedRegions = new Array();
			selectedRegions[0] = "12345";
			selectedRegions[1] = "23456";
			selectedRegions[2] = "34567";
			selectedRegions[3] = "45678";
			selectedRegions[4] = "56789";
			selectedRegions[5] = "67890";
			cus_draw_regions();
				
			for (var i =0;i<currentRegionTotal;i++) {
				var	tBut = find_element('item'+i+'_add');
				if (i == 0) {
					tBut.style.display='none';
				} else if (i != currentRegionTotal-1) {
					tBut.style.display='none';
				}
			}
		break;
		case "states":
			currentRegionTotal = 4;
			selectedRegions = new Array();
			selectedRegions[0] = "AK";
			selectedRegions[1] = "SD";
			selectedRegions[2] = "GA";
			selectedRegions[3] = "DE";
			cus_draw_regions();
					
			for (var i =0;i<currentRegionTotal;i++) {
				var	tBut = find_element('item'+i+'_add');
				if (i == 0) {
					tBut.style.display='none';
				} else if (i != currentRegionTotal-1) {
					tBut.style.display='none';
				}
			}
		break;
		case "counties":
			currentRegionTotal = 8;
			selectedRegions = new Array();
			selectedRegions[0] = "01001";
			selectedRegions[1] = "01003";
			selectedRegions[2] = "01005";
			selectedRegions[3] = "01007";
			selectedRegions[4] = "01009";
			selectedRegions[5] = "01011";
			selectedRegions[6] = "01013";
			selectedRegions[7] = "01015";
			cus_draw_regions();
					
			for (var i =0;i<currentRegionTotal;i++) {
				var	tBut = find_element('item'+i+'_add');
				if (i == 0) {
					tBut.style.display='none';
				} else if (i != currentRegionTotal-1) {
					tBut.style.display='none';
				}
			}
		break;
	}
}

var hf = false;

function initializePage() {
	hf = find_element('AJAX_HISTORY');
	update_history('');
	goToStep1();
}

function update_history(tgt) {
	ajaxHistory.push(tgt);
	hf.src='/ajax/history.html?'+tgt
}

function toggleRegionList () {
	var tDiv = find_element('regionList');
	if (tDiv.style.display == 'none') {
		tDiv.style.display = 'block';
	} else {
		tDiv.style.display = 'none';
	}
}

function getKeyCode(e) {
	var characterCode
	if (e && e.which) { //if which property of event object is supported (NN4)
		e = e
		characterCode = e.which //character code is contained in NN4's which property
	} else {
		e = event
		characterCode = e.keyCode //character code is contained in IE's keyCode property
	}
	return characterCode;
}

function supressEnterFromAbbrev(e, elem) {
	var thisKeyCode = getKeyCode(e);
	if (thisKeyCode == 13) {
		drawRadFeat();
		return false;
	} else {
		return true;
	}
}

function newRadiusCaptureKeyPress(e, obj, size) {
	thisKeyCode = getKeyCode(e);
	if (thisKeyCode == 13) {
		var doAction = checkNewRadius(obj, size);
		if (doAction) {
			doSizeSwitch(size);
		}
		return false;
	} else {
		return true;
	}
}

function checkRadius(elem) {
	if (elem.value != '') {
		if (isNaN(elem.value)) {
			alert('Please enter a numeric value');
			elem.value = '';
		}
/*
		if (elem.value > 100) {
			alert('Please enter a number between 1 and 100');
			elem.value = '';
		}*/
	}
}


function validate_form(eArr, tArr) {

	var valid = true;
	var errors = new Array();
	for (var i=0;i<eArr.length;i++) {
		var e = find_element(eArr[i]);
		if (e.value == '') {
			valid = false;
			errors.push(tArr[i]);
		}
	}

	if (valid == true) {
		return valid;
	} else {
		return errors;
	}
}

function goToStep1() {
	cus_feat_desc_close();
	update_history(1);
	currentStep = '1';
	if (loading == true) {
		return;
	}

	var AJAX;
	if (window.XMLHttpRequest) {
    AJAX=new XMLHttpRequest();
  } else {
    AJAX=new ActiveXObject("Microsoft.XMLHTTP");
  }

	var url = '/ajax/custom_maps/cus_step1.php';
	var tDiv = find_element('substageholder');
	tDiv.innerHTML = '';
	tDiv = find_element('stageholder');
	tDiv.innerHTML = 'Please wait...<br /><img src="wait30trans.gif" />';
	AJAX.open("GET", url, false);
//	httpObject.onreadystatechange = drawStep1;
	loading = true;
	var elem = find_element('CUS_AREA_TYPE');
	var currentType = elem.value;

	drawAbbrev();
	AJAX.send(null);
	var tDiv = find_element('stageholder');
	var data = AJAX.responseText;
	tDiv.innerHTML = data;
	switchTabs(1);
	loading = false;
	hide_mask();
	
	document.title = "Maponics Online Store: Custom Maps";
}

function goToStep1Next() {
	loading = true;
	var url = '/ajax/custom_maps/cus_step1.php';
	var tDiv = find_element('substageholder');
	tDiv.innerHTML = '';
	tDiv = find_element('stageholder');
	tDiv.innerHTML = 'Please wait...<br /><img src="wait30trans.gif" />';
	httpObject.open("GET", url, true);
	httpObject.onreadystatechange = sortaDrawStep1;

	drawAbbrev();

	httpObject.send(null);
}

function sortaDrawStep1() {
	var elem = find_element('CUS_AREA_TYPE');
	var currentType = elem.value;
	var tDiv = find_element('stageholder');
	if (httpObject.readyState==4) {
		var data = httpObject.responseText;
		tDiv.innerHTML = data;
		switchTabs(1);
		reset_http_object();
		var rBut;
		switch(currentType) {
			case "radius":
				rBut = 0;
			break;
			case "states":
				rBut = 1;
			break;
			case "counties":
				rBut = 2;
			break;
			case "zips":
				rBut = 3;
			break;
			case "census":
				rBut = 4;
			break;
			case "nsew":
				rBut = 5;
			break;
			case "image":
				rBut = 6;
			break;
		}

		var but = find_element('area_type'+rBut);
		but.checked=true;
		if (rBut == 6) {
			goToStep2();
		} else {
			drawStep1Next(currentType,false);
		}
	}
}

function drawStep1Next(s1val, doClear, fromMain) {
	
	document.title = "Maponics Online Store: Custom Maps Step 1b";
	hide_mask();
	var clearArray = new Array();
	//clearArray[0] = 'CUS_AREA_TYPE';
	clearArray[1] = 'CUS_REGION_LIST';
	clearArray[2] = 'CUS_RADIUS_ADDRESS';
	clearArray[3] = 'CUS_RADIUS_CITY';
	clearArray[4] = 'CUS_RADIUS_STATE';
	clearArray[5] = 'CUS_RADIUS_ZIP';
	clearArray[6] = 'CUS_RADIUS_RADIUS';
	clearArray[7] = 'CUS_FEATURES';
	clearArray[8] = 'CUS_FILES';
	clearArray[9] = 'CUS_FILETYPES';
	clearArray[10] = 'CUS_NSEW_NORTH';
	clearArray[11] = 'CUS_NSEW_SOUTH';
	clearArray[12] = 'CUS_NSEW_EAST';
	clearArray[13] = 'CUS_NSEW_WEST';
	clearArray[14] = 'CUS_DEMOG_TYPE';
	clearArray[15] = 'CUS_DEMOG_TEXT';



	if (fromMain == true) {
		selectedRegions = new Array();
		currentRegionTotal = 1;
		visitedSteps = new Array();
		visitedSteps.push(1);
		for (var i=0;i<clearArray.length;i++) {
			var e = find_element(clearArray[i]);
			e.value='';
		}
		switchTabs(1);
	}

	loading = true;
	update_history('1.5');
	currentStep = '1.5';
	var url = '/ajax/custom_maps/cus_substep1.php?type='+s1val;
	if (doClear == true) {
		var tDiv = find_element('stageholder');
		tDiv.innerHTML = '';
		visitedSteps = new Array();
		visitedSteps.push(1);
		switchTabs(1);
	}

	var tmp = find_element('CUS_AREA_TYPE');
	tmp.value = s1val;


	var container = false;
	switch (s1val) {
		case "radius":
			container = 1;
		break;
		case "states":
		case "counties":
		case "zips":
		case "census":
			container = 2;
		break;
		case "nsew":
			container = 3;
		break;
		case "entireus":
			container = 4;
		break;
	}

	for (var i=1;i<5;i++) {
		var contName = 'box_area_type'+i;
		var cont = find_element(contName);
		if (i==container) {
			cont.style.display = 'block';
		} else {
			cont.style.display = 'none';
		}
	}

	var tDiv = find_element('gap1');
	tDiv.style.display = 'none';
	tDiv = find_element('gap2');
	tDiv.style.display = 'none';
	tDiv = find_element('gap3');
	tDiv.style.display = 'none';

	if (s1val == "entireus") {
		goToStep2();
	} else {

		httpObject.open("GET", url, true);
		httpObject.onreadystatechange = drawSubStep1;
		var tDiv = find_element('substageholder');
		tDiv.innerHTML = 'Please wait...<br /><img src="wait30trans.gif" />';
		httpObject.send(null);
	}
}

function cus_set_region(elem) {
	var selItem = elem.options[elem.selectedIndex].value;
	var elemId = elem.id.replace('item', '');
	elemId = parseInt(elemId.replace('elem', ''));
	if (in_array(selItem, selectedRegions)) {
		elem.selectedIndex = 0;
		alert('You have already selected that option. Please make another selection');
	} else {
		selectedRegions[elemId]=''+selItem;
	}
	
	currentMask = "upload";
	do_mask(find_element('upload_table'));
}

function cus_add_region(elem) {

	var tElem = find_element('CUS_AREA_TYPE');
	var areaType = tElem.value;

	switch (areaType) {
		case "zips":

			var i = 0;
			var tmpSelectedRegions = new Array();
			while (tDiv = find_element('item'+i+'elem')) {
				tmpSelectedRegions[i] = tDiv.value;
				i++;
				if (i == 100) {
					break;
				}
			}

			selectedRegions = tmpSelectedRegions;
		break;
	}
	currentRegionTotal++;
	cus_draw_regions();

	for (var i =0;i<currentRegionTotal;i++) {
		var	tBut = find_element('item'+i+'_add');
		if (i == 0) {
			tBut.style.display='none';
		} else if (i != currentRegionTotal-1) {
			tBut.style.display='none';
		}
	}

	
	currentMask = "upload";
	do_mask(find_element('upload_table'));
}

function hideUploadForm() {
	currentMask = "upload";
	do_mask(find_element('upload_table'));
}

function cus_draw_regions() {
	var areaType;
	var output = '';
	var theForm = find_element('CUSTOM_MAP');
	for (var i=0;i<theForm.elements.length;i++) {
		var thisElemName = theForm.elements[i].name;
		if (thisElemName == 'area_type') {
			if (theForm.elements[i].checked == true) {
				areaType = theForm.elements[i].value;
			}
		}
	}
	var maxNum = maxNumRegions[areaType];
	var selectList = '';
	var itemText = '';
	var hideUpload = false;
	
	var lastItemDrawn;
	
	for (var i=0;i < currentRegionTotal;i++) {
		switch (areaType) {
			case 'states':
				itemText = 'State';
				selectList= '<select class="prodInput" id="item'+i+'elem" name="item'+i+'elem" onchange="cus_set_region(this)"><option value="">Select State</option>'+statelist+'</select>'
			break;
			case 'counties':
				itemText = 'State/County';
				selectList= '<select class="prodInput" id="cty_state'+i+'elem" name="cty_state'+i+'elem" onchange="cus_get_county(this)"><option value="">Select State</option>'+statelist+'</select>'
				selectList += '<div style="display:none;" id="cty'+i+'holder"></div>';
			break;
			case 'zips':
				lastItemDrawn = 'item'+i+'elem';
				itemText = 'ZIP&nbsp;Code';
				selectList = '<input onKeyUp="hideUploadForm();" class="prodInput" size="5" type="text" id="item'+i+'elem" name="item'+i+'elem" />';
			break;
			case 'census':
				itemText = 'Tract';
				selectList = '<input class="prodInput" type="text" id="item'+i+'elem" name="item'+i+'elem" />';
			break;
		}

		var prevId = i-1;
		var visId = i+1;
		output += '<div id="item'+i+'">';
		output +='<table>';
		output +='<tr>';
		output +='<td style="width:10px;white-space:nowrap;vertical-align:top;">'+itemText+'&nbsp;'+visId+':</td>';
		if (areaType == 'counties') {
			output +='<td style="text-align:left;white-space:nowrap;">'+selectList+'';
		} else {
			output +='<td style="text-align:left;white-space:nowrap;">'+selectList+'';
		}
		if (maxNum > visId) {
			output +='<br /><input onClick="cus_add_region(this);" id="item'+i+'_add" type="button" value="Add Another" class="prodbutton" style="margin-top:5px;font-size:0.9em;"/></td><td style="text-align:right;width:100%;vertical-align:top;padding-bottom:2px;">';
		} else {
			output += '</td><td style="text-align:right;width:100%;vertical-align:top;padding-bottom:2px;">';
		}

		if (i != 0) {
			output += '<input onClick="cus_remove_region('+i+');" id="item'+i+'_remove" class="prodbutton" style="font-size:0.9em;width:65px;" type="button" value="Remove" />';
		}
		output +='</td>';
		output +='</tr>';
		output +='	</table>\n';
		output +='</div>\n';

	}


	var rDiv = find_element('regionHolder');
	rDiv.innerHTML = output;

	if (areaType == "counties") {
		var url = '/ajax/custom_maps/cus_draw_counties.php';
		if (selectedRegions[0] != '') {
			var tmpSelectedRegions = Array();
			for (var i=0;i<currentRegionTotal;i++) {
				if (selectedRegions[i]) {
					tmpSelectedRegions[i] = selectedRegions[i];
				} else {
					tmpSelectedRegions[i] = '';
				}
			}

			url += '?fips='+tmpSelectedRegions.join("::");
			var AJAX;
			if (window.XMLHttpRequest) {
		    AJAX=new XMLHttpRequest();
		  } else {
		    AJAX=new ActiveXObject("Microsoft.XMLHTTP");
		  }
			AJAX.open("GET", url, false);
			AJAX.send(null);
			var retVal = AJAX.responseText;
			var php = new PHP_Serializer();
			var retObj = php.unserialize(retVal);
			if (retObj['debug']) {
				alert(retObj['debug']);
			}
			var vals = retObj['values'];
			for (var i=0;i<vals.length;i++) {
		 		var oVal = vals[i]['output'];
		 		var selState = vals[i]['state'];
		 		var tDiv = find_element('cty'+i+'holder');
		 		tDiv.innerHTML = oVal;
		 		tDiv.style.display='block';
				var tSel = find_element('cty_state'+i+'elem');
				if (tSel) {
					for (var j=0;j<tSel.options.length;j++) {
						if (selState == tSel.options[j].value) {
							tSel.selectedIndex = j;
							
							if (j != 0) {
								hideUpload = true;
							}
						}
					}
				}
		 	}


		}
	} else {
		for (var i =0;i<currentRegionTotal;i++) {
			var tSel = find_element('item'+i+'elem');
			if (tSel.type == "select-one") {
				for (var j=0;j<tSel.options.length;j++) {
					if (selectedRegions[i] == tSel.options[j].value) {
						tSel.selectedIndex = j;
						if (j != 0) {
							hideUpload = true;
						}
					}
				}
			} else {
				if (selectedRegions[i]) {
					tSel.value = selectedRegions[i];
						hideUpload = true;
				}
			}
		}
	}
	
	if (hideUpload) {
		currentMask = "upload";
		do_mask(find_element('upload_table'));
	}
	
	if (areaType == "zips") {
		document.getElementById(lastItemDrawn).focus();
	}
	
}

function cus_remove_region(id) {


	var thisElemId;
	var thisId;
	if (id && !isNaN(id)) {
		thisId = ''+id;
	} else {
		thisElemId = this.id;
		thisId = thisElemId.replace("_add", "");
	}

	var thisId = parseInt(thisId.replace('item', ''));

	currentRegionTotal--;
	var tElem = find_element('CUS_AREA_TYPE');
	var areaType = tElem.value;
	var tmpSelectedRegions = new Array();
	switch (areaType) {
		case "zips":

			// Actually, gonna update selectedRegions list every time they press add
			var i = 0;
			
			while (tDiv = find_element('item'+i+'elem')) {
				tmpSelectedRegions[i] = tDiv.value;
				i++;
				if (i == 100) {
					break;
				}
			}

			selectedRegions = tmpSelectedRegions;
		break;
	}

	tmpSelectedRegions = new Array();
	for (var i = 0;i<selectedRegions.length;i++) {
		if (i != thisId) {
			tmpSelectedRegions.push(selectedRegions[i]);
		}
	}

	selectedRegions = tmpSelectedRegions;
	cus_draw_regions();


	for (var i =0;i<currentRegionTotal;i++) {
		var tBut = find_element('item'+i+'_add');
		var tSel = find_element('item'+i+'elem');
		if (i == 0) {
			tBut.style.display='none';
		//	tBut.disabled = true;
		//	tBut.value = 'Cannot Remove';
		//	tBut.style.width='100px';
		} else if (i != currentRegionTotal-1) {
			tBut.value = 'Remove';
			tBut.style.display = 'none';
//			tBut.onclick=cus_remove_region;
		}

		if (tSel.type == "select-one") {
			for (var j=0;j<tSel.options.length;j++) {
				if (selectedRegions[i] == tSel.options[j].value) {
					tSel.selectedIndex = j;
				}
			}
		} else {
			if (selectedRegions[i]) {
				tSel.value = selectedRegions[i];
			}
		}
	}

	if (currentRegionTotal == 1) {
		var tBut = find_element('item0_add');
		tBut.disabled = false;
	//	tBut.value = 'Add';
		tBut.style.display='inline';
	}
	
	
	currentMask = "upload";
	do_mask(find_element('upload_table'));
}

function drawSubStep1() {
	cus_feat_desc_close();
	var tDiv = find_element('substageholder');
	var tmp = find_element('ssTd');
	if (httpObject.readyState==4) {
		
		tmp.style.width='100%';
		var data = httpObject.responseText;
		
		tDiv.innerHTML = data;
		
		reset_http_object();
		loading = false;
		var elem = find_element('CUS_AREA_TYPE');
		var currentType = elem.value;
		switch (currentType) {
			case "counties":
			case "states":
			case "zips":
			case "census":
				var aList = find_element('CUS_REGION_LIST');
					
				if (aList.value.substring(0,5) == 'file:') {
					regionData = aList.value.split("::");
					
					
					var sNum = '';
					if (aList.value != '') {
						var xNum = regionData[1].split(' ');
						sNum = xNum[0];
					}
					
					document.getElementById('numRegions').value = sNum;
					tDiv = find_element('form0_results');
					tDiv.innerHTML = 'File: <a target="_new" href="/ajax/uploader/uploadedfiles/'+regionData[2]+'">'+regionData[2]+'</a> successfully uploaded! [ <a href="javascript:regionlist_delete_file(\'0\',\''+regionData[2]+'\', \'x\');">delete</a> ]';
				
					tDiv = find_element('form0_holder');
					tDiv.style.display = 'none';
					do_hide_select_form();
				} else {
					selectedRegions = aList.value.split("::");
					cus_draw_regions();
					var sNum = '';
					if (aList.value != '') {
						sNum = selectedRegions.length;
					}
					document.getElementById('numRegions').value = sNum
	
					if (currentRegionTotal != 1) {
						for (var i =0;i<currentRegionTotal;i++) {
							var tBut = find_element('item'+i+'_add');
							var tSel = find_element('item'+i+'elem');
							if (i == 0) {
								tBut.disabled = true;
								tBut.value = 'Cannot Remove';
								tBut.style.width='100px';
							} else if (i != currentRegionTotal-1) {
								tBut.value = 'Remove';
								tBut.onclick=cus_remove_region;
							}
	
							if (tSel.type=='select-one') {
								for (var j=0;j<tSel.options.length;j++) {
									if (selectedRegions[i] == tSel.options[j].value) {
										tSel.selectedIndex = j;
									}
								}
							} else {
								if (selectedRegions[i]) {
									tSel.value = selectedRegions[i];
								}
							}
						}
					}
				}
			break;
			case "nsew":
				elem = find_element('CUS_NSEW_NORTH');
				elem2 = find_element('nsew_north');
				elem2.value = elem.value;
				elem = find_element('CUS_NSEW_SOUTH');
				elem2 = find_element('nsew_south');
				elem2.value = elem.value;
				elem = find_element('CUS_NSEW_EAST');
				elem2 = find_element('nsew_east');
				elem2.value = elem.value;
				elem = find_element('CUS_NSEW_WEST');
				elem2 = find_element('nsew_west');
				elem2.value = elem.value;
				elem = find_element('CUS_NSEW_RADIUS');
				switch (elem.value) {
					case "s":
						elem2 = find_element('nsew_radius0');
					break;
					case "m":
						elem2 = find_element('nsew_radius1');
					break;
					case "l":
						elem2 = find_element('nsew_radius2');
					break;
				}
				elem2.checked=true;
			break;
			case "counties":
				cus_draw_regions();
			break;
			case "radius":
				elem = find_element('CUS_RADIUS_CENTERPOINT');
				elem2 = find_element('radius_centerpoint');
				elem2.value = elem.value;
				elem = find_element('CUS_RADIUS_ADDRESS');
				elem2 = find_element('radius_address');
				elem2.value = elem.value;
				elem = find_element('CUS_RADIUS_CITY');
				elem2 = find_element('radius_city');
				elem2.value = elem.value;
				elem = find_element('CUS_RADIUS_STATE');
				elem2 = find_element('radius_state');
				var thisIndex;
				for (var i=0;i<elem2.length;i++) {
					var thisVal = elem2.options[i].value;
					if (thisVal == elem.value) {
						thisIndex = i;
					}
				}

				elem2.selectedIndex=thisIndex;
				elem = find_element('CUS_RADIUS_ZIP');
				elem2 = find_element('radius_zip');
				elem2.value = elem.value;
				elem = find_element('CUS_RADIUS_RADIUS');
				elem2 = find_element('radius_radius');
				elem2.value = elem.value;
			break;
		}

	}

	drawAbbrev();
	drawBlurb();
}

function goToStep2(skip) {
	
	// set these
	loading = true;
	if (!in_array(2, visitedSteps)) {
		visitedSteps.push(2);
	}
	
	
	// in order to draw step 2 correctly, we need to know 2 things:
	// map type
	// size category
	// There are 4 ways to find the size category. Bleah
	// 1. skip == true, mask == select
	// 2. skip == true, mask == upload (or undefined)
	// 3. skip == false, mask == select
	// 4. skip == false, mask == upload (or undefined)
	
	// If radius, nsew or entireus:
	// 		skip mask check
	// 		different way of finding size based on 
	
	var mapType = document.getElementById('CUS_AREA_TYPE').value;
	var sizeValue;
	var url = '/ajax/custom_maps/cus_step2.php?type='+mapType;
	var skipMask = false;

	
	// If we store the data here (on a non-skip call)
	// we can always use the same function to retrieve it.
	if (!skip) {
		if (!store_area_details(mapType)) {
			return;
		}
	}

	sizeValue = find_size_value_from_stored_data(mapType);
	
	switch (mapType) {
		case "census":
			currentMask = "select";
			skipMask = true;
			pickOneInsert = "census tracts";
		break;
		case "counties":
			skipMask = false;
			pickOneInsert = "counties";
		break;
		case "nsew":
			skipMask = true;
		break;
		case "states":
			skipMask = false;
			pickOneInsert = "States";
		break;
		case "zips":
			skipMask = false;
			pickOneInsert = "ZIP Codes";
		break;
		case "entireus":
			skipMask = true;
		break;
		break;
		case "radius":
			skipMask = true;
		break;
	}	
	
	if (!skipMask) {
		if (currentMask == undefined) {
			alert(pickOne.replace("XXXX", pickOneInsert));
			return;
		}
	}	
	
	var url = '/ajax/custom_maps/cus_step2.php?type='+mapType+'&size='+sizeValue;
	hide_mask();
	
	var AJAX;
	if (window.XMLHttpRequest) {
    AJAX=new XMLHttpRequest();
  } else {
    AJAX=new ActiveXObject("Microsoft.XMLHTTP");
  }
	AJAX.open("GET", url, false);
	var tDiv = find_element('stageholder');
	tDiv.innerHTML = 'Please wait...<br /><img src="wait30trans.gif" />';

	tDiv = find_element('abbrev');
	tDiv.style.display='block';
	drawAbbrev();

	AJAX.send(null);
	drawStep2(AJAX);
}


function drawStep2(hObj) {
	document.title = "Maponics Online Store: Custom Maps Step 2";
	update_history(2);
	currentStep = '2';
	var sDiv = find_element('substageholder');
	sDiv.innerHTML = '';
	var tDiv = find_element('stageholder');
	if (hObj.readyState==4) {
		var data = hObj.responseText;
		tDiv.innerHTML = data;
		reset_http_object();
		switchTabs(2);
		loading = false;
		var featArr = new Array();
		var elem = find_element('CUS_FEATURES');
		featArr = elem.value.split("&");
		for (var i=0;i<featArr.length;i++) {
			var thisOption = featArr[i];
			var tmp =thisOption.split("=");
			var selectedFeatId = tmp[0];
			var selectedFeatStatus = tmp[1];
			var f = find_element(selectedFeatId);
			if (selectedFeatStatus == 'true') {
				
				f.checked= true;
				var bTmp = selectedFeatId.split('_');
				var dType = bTmp[2];
				if (dType.substr(0,5) == "demog") {
					var s = find_element('demogType_'+dType);		
					var dDiv = find_element('CUS_DEMOG_TYPE');
					s.selectedIndex = dDiv.value;
				}
			}
		}
		
		

		drawAbbrev();

		drawBlurb();
	}
}

function findPosX(obj) {
  var curleft = 0;
  if(obj.offsetParent)
      while(1)
      {
        curleft += obj.offsetLeft;
        if(!obj.offsetParent)
          break;
        obj = obj.offsetParent;
      }
  else if(obj.x)
      curleft += obj.x;
  return curleft;
}

function findPosY(obj) {
  var curtop = 0;
  if(obj.offsetParent)
      while(1)
      {
        curtop += obj.offsetTop;
        if(!obj.offsetParent)
          break;
        obj = obj.offsetParent;
      }
  else if(obj.y)
      curtop += obj.y;
  return curtop;
}

function cus_switch_size(size) {

	var textElemName = size + "SwitchText";

	var tElem = find_element('CUS_AREA_TYPE');
	var mapType = tElem.value;

	var clickedElement = find_element(textElemName);

	xPos = findPosX(clickedElement);
	yPos = findPosY(clickedElement);

	var tDiv = find_element('radCatcher');
	tDiv.style.top = (yPos-100) + 'px';
	tDiv.style.left = (xPos-5) + 'px';
	tDiv.style.display = 'block';
	tDiv.style.padding = '0px';
	tDiv.style.width='275px';
	tDiv.style.height='65px';
	tDivOutput = "<div style=\"font-weight:bold;border:1px solid white;background-color:#0A246A;font-size:0.9em;color:white;padding:3px;\"><div style=\"float:right;\"><a id=\"cus_rad_cl\"  href=\"javascript:hideRC();\"><img src=\"/images/close_off.gif\" /></a></div>New Radius</div><div style=\"padding:0px 5px;white-space:nowrap;\">";
	tDivOutput += " Please enter a new radius:";
	tDivOutput += "<br /><input id=\"newRadEntry\" onKeyPress=\"return newRadiusCaptureKeyPress(event, this, '"+size+"');\" onKeyUp=\"checkNewRadius(this,'"+size+"')\" class=\"prodInput\" type=\"text\" /> <input onMouseUp=\"doSizeSwitch('"+size+"');\" type=\"button\" class=\"prodInput\" id=\"switchBut\" disabled='disabled' value=\"New Radius\" /></div>";
	tDiv.innerHTML = tDivOutput;
}

function hideRC() {
	var tDiv = find_element('radCatcher');
	tDiv.style.display = 'none';
}

function checkNewRadius(elem,size) {

	var sBut = find_element('switchBut');
	/*
	if (elem.value != '') {
		if (size == 's' && elem.value <= 15) {
			sBut.disabled=false;
			return true;
		}
		if (size == 'm' && elem.value <= 50 && elem.value > 15) {
			sBut.disabled=false;
			return true;
		}
		if (size == 'l' && elem.value <= 100 && elem.value >50) {
			sBut.disabled=false;
			return true;
		}
	}*/

	if (elem.value <=100 && elem.value > 0) {
		sBut.disabled = false;
		return true;
	} else {
		sBut.disabled = true;
		return false;
	}
}

function drawRadFeat() {

	visitedSteps = new Array();
	loading = true;
visitedSteps.push(1);
	var tDiv=find_element('null_radius_radius');
	var rad = tDiv.value;

	tDiv =  find_element('CUS_RADIUS_RADIUS');
	tDiv.value = rad;

	var queryString = 'type=radius&radius_radius='+rad;
	var url = '/ajax/custom_maps/cus_step2.php?'+queryString
	httpObject.open("GET", url, true);
	httpObject.onreadystatechange = drawStep2;
	var tDiv = find_element('stageholder');
	tDiv.innerHTML = "Please wait...";

	httpObject.send(null);

}

function doSizeSwitch(size) {

	var sBut = find_element('newRadEntry');

	var newRadius = sBut.value;

	if (newRadius <=100 ) {
		size = "l";
	}
	if (newRadius <=50 ) {
		size = "m";
	}
	if (newRadius <=10 ) {
		size = "s";
	}

	var sDiv = find_element('CUS_RADIUS_RADIUS');
	sDiv.value = sBut.value;
	visitedSteps = new Array();
	visitedSteps.push(1);
	var tDiv = find_element('radCatcher');
	tDiv.style.display = 'none';
	for(var i in tmpArr=new Array("s", "m", "l")) {
		var textElemName = tmpArr[i] + "SwitchText";
		var textElem = find_element(textElemName);
		if (size == tmpArr[i]) {
			textElem.innerHTML = '';
		} else {
			textElem.innerHTML = '(<a href="javascript:cus_switch_size(\''+tmpArr[i]+'\');">Click to select</a>)';
		}
	}

	var theForm = find_element('CUSTOM_MAP');


	for (var i=0;i<theForm.elements.length;i++) {
		var thisElem = theForm.elements[i];
		var thisElemId = thisElem.id;
		if (thisElemId) {
			var tmp = thisElemId.split("_");

			var dbName = tmp[2];
			var thisColor;
			switch (tmp[1]) {
				case "s":
					thisColor = "#9DF69D"
				break;
				case "m":
					thisColor = "#FFE4B8";
				break;
				case "l":
					thisColor = "#F69D9D";
				break;
			}

			if (tmp[0] == "radius" && tmp[1] != size) {
				thisElem.disabled=true;
				var tdElemName = "td_"+tmp[1]+"_"+dbName;
				var tdElem = find_element(tdElemName);
				if (!tdElem) {
				} else {
					tdElem.style.backgroundColor = '#D4D0C8';
				}
			}
			if (tmp[0] == "radius" && tmp[1] == size) {
				thisElem.disabled=false;
				var tdElemName = "td_"+tmp[1]+"_"+dbName;
				var tdElem = find_element(tdElemName);
				if (!tdElem) {
				} else {
					tdElem.style.backgroundColor = thisColor;
				}
			}
		}
	}


	drawAbbrev();
}

function goToStep3(skip) {
	if (!in_array(3, visitedSteps)) {
		visitedSteps.push(3);
	}
	loading = true;
	var theForm = find_element('CUSTOM_MAP');
	if (skip == true) {
	} else {
		var needDemog = false;
		var foundDemog = false;
		var tmp = new Array();
		var selectedCount = 0;
		var continuex = true;
		var continuey = true;
		var demogValue = "";
		var demogText = "";
		for (var i=0;i<theForm.elements.length;i++) {
			if (theForm.elements[i].type == "checkbox" && theForm.elements[i].disabled != true) {
				if (theForm.elements[i].checked == true) {
					var t = theForm.elements[i].id.split('_');
					var f = t[2];
					if (f.substr(0,5) == "demog") {
						needDemog = true;
						
						if (document.getElementById('demogType_'+f).selectedIndex != 0) {
							var s = find_element('demogType_'+f);
							demogValue = s.selectedIndex;
							demogText = s.options[s.selectedIndex].text;
							foundDemog = true;
						}
					}
					selectedCount++;
				}
				tmp.push(theForm.elements[i].id+"="+theForm.elements[i].checked);
			}
		}
		if (needDemog && !foundDemog) {
			alert('You have indicated that you wish demographics to appear on your map, but you have not chosen which type of demographics should be shown.');
			return;
		}
		
		if (selectedCount == 0) {
			alert('Please select one or more map features before proceeding to Step 3');
			return;
		}
		var selectedFeatures = tmp.join("&");
		var tDiv = find_element('CUS_FEATURES');
		tDiv.value = selectedFeatures;
		
		tDiv = find_element('CUS_DEMOG_TYPE');
		tDiv.value = demogValue;
		tDiv = find_element('CUS_DEMOG_TEXT');
		tDiv.value = demogText;
	}

	tDiv = find_element("CUS_RADIUS_RADIUS");
	var val = tDiv.value;

	tDiv = find_element('CUS_AREA_TYPE');
	var s1val = tDiv.value;

	drawAbbrev();
cus_feat_desc_close();
	var AJAX;
	if (window.XMLHttpRequest) {
    AJAX=new XMLHttpRequest();
  } else {
    AJAX=new ActiveXObject("Microsoft.XMLHTTP");
  }
	var url = '/ajax/custom_maps/cus_step3.php?type='+s1val
	AJAX.open("GET", url, false);
	tDiv = find_element('stageholder');
	tDiv.innerHTML = 'Please wait...<br /><img src="wait30trans.gif" />';
	AJAX.send(null);
	drawStep3(AJAX);
}

function drawStep3(hobj) {
		update_history(3);
	
	document.title = "Maponics Online Store: Custom Maps Step 3";
		currentStep = '3';
	var sDiv = find_element('substageholder');
	sDiv.innerHTML = '';
	var tDiv = find_element('stageholder');
	if (hobj.readyState==4) {
		var data = hobj.responseText;
		tDiv.innerHTML = data;
		switchTabs(3);
		loading = false;
		reset_http_object();
		reset_step3_inputs();

		drawAbbrev();
		drawBlurb();
	}
}

function reset_step3_inputs() {

	var fDiv = find_element('CUS_FILES');
	var fNames = fDiv.value;
	var	tDiv = find_element('CUS_FILETYPES');
	var tNames = tDiv.value;

	var fArr = fNames.split("::");
	var tArr = tNames.split("::");
	for (var i=0; i< fArr.length;i++) {

		var fName = fArr[i];
		var fType = tArr[i];
		var sid = '';
		var fId;
		switch (fType) {
			case "labeled":
				fId = 0;
			break;
			case "unlabeled":
				fId=1;
			break;
			case "groups":
				fId=2;
			break;
		}

		var formId='form'+fId;

		var thisDiv = find_element(formId+'_results');
		thisDiv.innerHTML = 'File: <a target="_new" href="/ajax/uploader/uploadedfiles/'+fName+'">'+fName+'</a> successfully uploaded! [ <a href="javascript:cus_delete_file(\''+fId+'\',\''+fName+'\', \''+sid+'\');">delete</a> ]';

		var uDiv = find_element(formId+'_holder');
		if (uDiv) {
			uDiv.style.display='none';
		}
	}

}

function step3Done() {
	var tDiv = find_element('CUS_FILES');
	if (tDiv.value == '') {
		noUpload();
	} else {
		goToStep4();
	}
}


function noUpload() {

	loading = true;
	if (!in_array(4, visitedSteps)) {
		visitedSteps.push(4);
	}

	var tDiv = find_element('CUS_FILES');
	tDiv.value = 'No File';

	tDiv = find_element('CUS_AREA_TYPE');
	var s1val = tDiv.value;

	drawAbbrev();

	var url = '/ajax/custom_maps/cus_step4.php?type='+s1val
	httpObject.abort();
	httpObject.open("GET", url, true);
	tDiv = find_element('stageholder');
	tDiv.innerHTML = 'Please wait...<br /><img src="wait30trans.gif" />';
	httpObject.onreadystatechange = drawStep4;

	httpObject.send(null);
}


function goToStep4(skip) {
	loading = true;
	if (!in_array(4, visitedSteps)) {
		visitedSteps.push(4);
	}

	tDiv = find_element('CUS_AREA_TYPE');
	var s1val = tDiv.value;

	drawAbbrev();

	var url = '/ajax/custom_maps/cus_step4.php?type='+s1val;
  httpObject.abort();
	httpObject.open("GET", url, true);
	tDiv = find_element('stageholder');
	tDiv.innerHTML = 'Please wait...<br /><img src="wait30trans.gif" />';
	httpObject.onreadystatechange = drawStep4;
	httpObject.send(null);
}

function drawStep4() {
	
	document.title = "Maponics Online Store: Custom Maps Step 4";
	update_history(4);
	currentStep = '4';
	var sDiv = find_element('substageholder');
	sDiv.innerHTML = '';
	var tDiv = find_element('stageholder');
	if (httpObject.readyState==4) {
		var data = httpObject.responseText;
		tDiv.innerHTML = data;
		switchTabs(4);
		loading = false;
		reset_http_object();
		drawAbbrev();
		var tDiv = find_element('CUS_TITLE');
		var xDiv = find_element('custom_map_title');
		xDiv.value = tDiv.value;

		var cpYes = find_element('cus_print_yes');
		var cpNo = find_element('cus_print_no');
		tDiv = find_element('CUS_FORMAT');
		if (tDiv.value == '2') {
			cpYes.checked = 'checked';
		} else {
			cpNo.checked = 'checked';
		}
		drawBlurb();
	}
}

function goToStep5(skip) {

	loading = true;
	if (!in_array(5, visitedSteps)) {
		visitedSteps.push(5);
	}
	var tDiv;
	if (skip == true) {
	} else {
		tDiv = find_element('custom_map_title');
		var mapTitle = tDiv.value;
		tDiv = find_element('CUS_TITLE');
		tDiv.value = mapTitle;

		var cpYes = find_element('cus_print_yes');
		var cpNo = find_element('cus_print_no');
		var val = '0';
		if (cpYes.checked == true) {
			val = '2';
		}

		if (cpNo.checked == true) {
			val = '0';
		}


		tDiv = find_element('CUS_FORMAT');
		tDiv.value = val;
	}

	tDiv = find_element('CUS_AREA_TYPE');
	var s1val = tDiv.value;

	var url = '/ajax/custom_maps/cus_step5.php?type='+s1val
	httpObject.abort();
	httpObject.open("GET", url, true);
	tDiv = find_element('stageholder');
	tDiv.innerHTML = 'Please wait...<br /><img src="wait30trans.gif" />';
	httpObject.onreadystatechange = drawStep5;
	httpObject.send(null);
}

function drawStep5(hobj) {
	
	document.title = "Maponics Online Store: Custom Maps Step 5";
	update_history(5);
	currentStep = '5';
	var sDiv = find_element('substageholder');
	sDiv.innerHTML = '';
	var tDiv = find_element('stageholder');
	if (httpObject.readyState==4) {
		var data = httpObject.responseText;
		tDiv.innerHTML = data;
		loading = false;
		switchTabs(5);
		reset_http_object();
		drawAbbrev();

		var tDiv = find_element('custom_extra_info');
		var xDiv = find_element('CUS_EXTRA_INFO');
		tDiv.value = xDiv.value;
		drawBlurb();
		drawAbbrev();
//		alert(document.getElementById('topAddButton'));
		if (document.all) {
			document.getElementById('startOverButton').style.marginRight='-1px';
		} else {
			document.getElementById('startOverButton').style.marginRight='2px';
			if (document.getElementById('topAddButton')) {
				document.getElementById('topAddButton').style.paddingTop='4px';
			}
		}
	}
}

function do_order_start_over() {
	if (confirm('Are you sure you wish to start your order over? You will lose all saved data.')) {
		document.location.href='/products/custom-maps/custom-maps2.html';
	}
}

function cusAddToCart() {
	var tDiv = find_element('custom_extra_info');
	var val = tDiv.value;
	tDiv = find_element('CUS_EXTRA_INFO');
	tDiv.value = val;


	var ccYes = find_element('cus_contact_yes');
	var ccNo = find_element('cus_contact_no');

	val - 'no';
	if (ccYes.checked == true) {
		val = 'yes';
	}

	if (ccNo.checked == true) {
		val = 'no';
	}

	tDiv = find_element('CUS_CONTACT');
	tDiv.value = val;


	var theForm = find_element('CUSTOM_MAP_SEND');
	theForm.submit();
}

function makeTabActive(tabId, makeLink) {
	var thisTabName = 'cus_step'+tabId+'_tab';
	var tab = find_element(thisTabName);
	tab.style.borderBottomColor="#FFFFFF";
	tab.style.backgroundColor='white';
	tab.innerHTML = 'Step '+tabId+'';
	tab.style.color = 'black';


}

function makeTabInactive(tabId, makeLink) {
	var thisTabName = 'cus_step'+tabId+'_tab';
	var tab = find_element(thisTabName);
	tab.style.borderBottomColor="#000000";
	tab.style.backgroundColor='#EAEAEA';
	if (makeLink == true) {
		tab.innerHTML = '<a href="javascript:switchFromTabs('+tabId+');">Step '+tabId+'</a>';
	} else {
		tab.innerHTML = 'Step '+tabId+'';
		tab.style.color='#8B8181';
	}
}

function switchTabs(activeTab) {


	for (var i=1; i<6;i++) {
		var makeLink = false;
		if (in_array(i, visitedSteps)) {
			makeLink = true;
		}
		if (i != activeTab) {
			makeTabInactive(i, makeLink);
		} else {
			makeTabActive(i, false);
		}
	}
}

function switchFromTabs(tabId) {
	switch (tabId) {
		case 1:
			goToStep1(true);
			break;
		case 2:
			goToStep2(true);
			break;
		case 3:
			goToStep3(true);
			break;
		case 4:
			goToStep4(true);
			break;
		case 5:
			goToStep5(true);
			break;
	}
}

function demog_dropdown_check(ddDiv) {
	
	
	var t = ddDiv.id.split('_');
	var dType = t[1];
	
	var tDiv;
	
	for (var i in sizeArray) {
		var targetDivName = 'radius_'+sizeArray[i]+'_'+dType;
		var xDiv = document.getElementById(targetDivName);
		if (xDiv && xDiv.type == 'checkbox') {
			if (xDiv.disabled == false) {
				if (ddDiv.selectedIndex == 0) {
					demogClicked = false;
					xDiv.checked = false;
				} else {
					demogClicked = true;
					xDiv.checked = true;
				}
				tDiv = xDiv;
			}
		}
		drawAbbrev();
	}
	
	if (tDiv != undefined) {
		
		switch (dType) {
			case "demogcensus":
				document.getElementById('demogType_demogzip').selectedIndex=0;
				document.getElementById('demogType_demogcr').selectedIndex=0;
			break;
			case "demogzip":
				document.getElementById('demogType_demogtract').selectedIndex=0;
				document.getElementById('demogType_demogcr').selectedIndex=0;
			break;
			case "demogcr":
				document.getElementById('demogType_demogzip').selectedIndex=0;
				document.getElementById('demogType_demogtract').selectedIndex=0;
			break;
		}
		do_demog_check(tDiv);
	} else {
		ddDiv.selectedIndex = 0;
	}
	
}

function do_demog_check(tDiv) {
	if (tDiv.checked == true) {
		demogClicked = true;
		var x = tDiv.id.split('_');
		for (var i in demogBoxes) {
			if (tDiv != document.getElementById(demogBoxes[i])) {
				document.getElementById(demogBoxes[i]).checked = false;
				
				var f = demogBoxes[i].split('_');
				var fType = f[2];
				if (x[2] != f[2]) {
					//alert('resetting demogType_'+fType+' due to '+demogBoxes[i]);
					document.getElementById('demogType_'+fType).selectedIndex = 0;
				}
				
			}
		}
	} else {
		demogClicked = false;
		var t = tDiv.id.split('_');
		var dType = t[2];
		document.getElementById('demogType_'+dType).selectedIndex = 0;
	}
	
	
	drawAbbrev();
}

function drawAbbrev() {

	var s1val;
	var fName;
	var fType;
	var val;
	var mTitle;

	var tDiv = find_element('CUS_FILES');
	fName = tDiv.value;

	tDiv = find_element('CUS_FEATURES');
	featList = tDiv.value;

	tDiv = find_element('CUS_AREA_TYPE');
	s1val = tDiv.value;
	if (in_array(5, visitedSteps)) {
		tDiv = find_element('CUS_TITLE');
		mTitle = tDiv.value;
		if (!mTitle) {
			mTitle = 'No Title';
		}
	}

	var stepText = '';
	var price = 349;
	var output = '';
	if (s1val != '') {
		output += '<div id="priceDiv" style="float:right;text-align:right;">xxx</div>';
		output += "<strong>Your Custom Map Details</strong><br />";
		var textType = '';
		var areaDetails = '';
		switch (s1val) {
			case 'radius':
				textType = 'Radius';

				var dElem = find_element('CUS_RADIUS_ADDRESS');
				var add = dElem.value;
				dElem = find_element('CUS_RADIUS_CITY');
				var city = dElem.value;
				dElem = find_element('CUS_RADIUS_STATE');
				var state = dElem.value;
				dElem = find_element('CUS_RADIUS_ZIP');
				var zip = dElem.value;
				dElem = find_element('CUS_RADIUS_RADIUS');
				var rad = dElem.value;

				areaDetails = add+', '+city+' '+state+', '+zip+' ('+rad+' miles)';
			break;
			case 'states':
				textType = "One or more states";
				var tSel = find_element('CUS_REGION_LIST');
				areaDetails = tSel.value.replace(/::/g, ", ");
			break;
			case "entireus":
				textType = "Entire US";
				areaDetails = "n/a";
			break;
			case 'zips':
				textType = "One or more ZIP Codes";
				var tSel = find_element('CUS_REGION_LIST');
				areaDetails = tSel.value.replace(/::/g, ", ");
			break;
			case "counties":
				textType = "One or more counties";
				var tSel = find_element('CUS_REGION_LIST');
				if (tSel.value.substring(0,5) == "file:") {
					areaDetails = tSel.value.replace(/::/g, ", ");
				} else {
					var url = "/ajax/custom_maps/cus_abbrev_counties.php?list="+tSel.value;
					var AJAX;
					if (window.XMLHttpRequest) {
				    AJAX=new XMLHttpRequest();
				  } else {
				    AJAX=new ActiveXObject("Microsoft.XMLHTTP");
				  }
					AJAX.open("GET", url, false);
					AJAX.send(null);
					var data = AJAX.responseText;
					areaDetails = data;
				}
				break;
			case 'census':
				textType = "One or more census tracts";
				var tSel = find_element('CUS_REGION_LIST');
				areaDetails = tSel.value.replace(/::/g, ", ");
			break;
			case "nsew":
				textType = 'North, South, East, West boundary Map';
				var dElem = find_element('CUS_NSEW_NORTH');
				var north = dElem.value;
				dElem = find_element('CUS_NSEW_SOUTH');
				var south = dElem.value;
				dElem = find_element('CUS_NSEW_EAST');
				var east = dElem.value;
				dElem = find_element('CUS_NSEW_WEST');
				var west = dElem.value;
				areaDetails = 'From '+north+ ' to ' +south+ ', '+west+' to '+east+'.';
			break;

		}

		output += '<strong>Map Type</strong> [ <a href="javascript:goToStep1(true);">change this</a> ]: '+textType+'<br />';
		output += '<strong>Area Details</strong> [ <a href="javascript:goToStep1Next(true);">change this</a> ]: '+areaDetails+'<br />';
	};

	var demogPrice = false;
	var hasDemog = false;
	if (featList) {
		var fArr = featList.split('&');
		var disp = new Array();
		for (var i=0; i<fArr.length;i++) {
			var feat = fArr[i];
			var tmp = feat.split('=');
			if (tmp[1] == 'true') {
				var tmp2 = tmp[0].split('_');
				var dbName = tmp2.pop();
				var realName = featureArray[dbName];
				if (dbName.substr(0,5) == "demog") {
					demogEl = find_element('CUS_DEMOG_TEXT');
					if (demogEl) {
						hasDemog = true;
						demogVal = demogEl.value;
						realName += ' ('+demogVal+')';
					}
				}
				
				disp.push(realName);
				
			}
		}
		output += '<strong>Features</strong> [ <a href="javascript:goToStep2(true);">change this</a> ] : '+disp.join(", ") + '<br />';
	}

	var fCount = 0;
	if (fName && fName != 'No File') {
		fName = fName.replace(/::/g, ", ");

		var fList = fName.split(", ");
		fCount = fList.length;
		output += '<strong>Uploaded File(s)</strong> [ <a href="javascript:goToStep3(true);">change this</a> ]: '+fName+' <br />';
	}

	if (mTitle) {
		output += '<strong>Map Title</strong> [ <a href="javascript:goToStep4(true);">change this</a> ]: '+mTitle+' <br />';
	}

	tDiv = find_element('abbrev');
	tDiv.innerHTML = output;

	var elem = find_element('null_type_'+s1val);
	elem.checked=true;


	var priceText = '';
	var totalPrice = price;
	tDiv = find_element('priceDiv');
	priceText = 'Base Price: $'+price;

	if (demogClicked || hasDemog) {
		priceText += '<br />Plus Demographics: +$50';
		totalPrice += 50;
	}
	
	if (fCount > 0) {
		var s = 's';
		if (fCount == '1') {
			s = '';
		}
		priceText += '<br />'+fCount +' additional file'+s+' @ $99 ea.: +$'+fCount*99;
		totalPrice = totalPrice + fCount*99;
	}
	
	pElem = find_element('CUS_FORMAT');
	if (pElem.value == 2) {
		priceText += '<br />Plus print: +$180';
		totalPrice = totalPrice + 180;
	}

	priceText += '<br /><div style="border-top:1px solid black;padding-top:2px;color:red;">Total price: $'+totalPrice+'</div>';

	tDiv.innerHTML = priceText;

	if (currentStep == 1) {
		var xDiv = find_element('startover');
		xDiv.style.display = 'none';
	} else {
		var xDiv = find_element('startover');
		xDiv.style.display = 'block';
	}


	document.getElementById('startOverButton').style.marginRight='0px';
	document.getElementById('startOverButton').style.marginRight='0px';
	
	if (currentStep == 1 || currentStep == 5) {
		tDiv = find_element('nextbuttonHolder');
		tDiv.style.display = 'none';
		document.getElementById('topNextButtonHolder').style.display='none';
	} else {
		document.getElementById('topNextButtonHolder').style.display='block';
		var butStep = parseInt(currentStep)+1;
		if (butStep == 2.5) {
			butStep = 2;
		}

		if (currentStep != 3) {
			butText = 'goToStep'+butStep+'();';
		} else {
			butText = 'step3Done();';
		}
		var butHtml = '<input type="button" value="Go To Next Step" class="prodbutton" onClick="'+butText+'" style=\"margin-right:0px;\"/>';
		
		if (currentStep == '1.5' && s1val == 'image') {
			butHtml = '';
		}

		tDiv = find_element('nextbuttonHolder');
		tDiv.innerHTML = butHtml;
		tDiv.style.display = 'block';
		
		document.getElementById('topNextButtonHolder').innerHTML = butHtml;
		document.getElementById('topNextButtonHolder').display='block';
	}
}


function showSample(img,pdf,mType) {
	
	var tDiv = find_element('sampleDiv');
	tDiv.style.display='block';
	var AJAX;
	if (window.XMLHttpRequest) {
    AJAX=new XMLHttpRequest();
  } else {
    AJAX=new ActiveXObject("Microsoft.XMLHTTP");
  }

	var titleText = "Sample Features For ";
	switch (mType) {
	
		case "s_radius":
			titleText += 'Up to 10 Mile Radius';
		break;
		case "m_radius":
			titleText += '10 to 50 Mile Radius';
		break;
		case "l_radius":
			titleText += '50 to 100 Mile Radius';
		break;
		case "s_states":
			titleText += '1 State';
		break;
		case "m_states":
			titleText += '2 to 6 States';
		break;
		case "l_states":
			titleText += '';
		break;
		case "s_counties":
			titleText += '1 County';
		break;
		case "m_counties":
			titleText += '2 Counties';
		break;
		case "l_counties":
			titleText += '3 or more Counties';
		break;
		case "s_zips":
			titleText += ' 1 to 4 ZIP Codes';
		break;
		case "m_zips":
			titleText += ' 5 to 10 ZIP Codes';
		break;
		case "l_zips":
			titleText += ' More than 10 ZIP Codes';
		break;
		case "s_census":
			titleText += ' 1 to 15 Tracts';
		break;
		case "m_census":
			titleText += ' 15 to 30 Tracts';
		break;
		case "l_census":
			titleText += ' 30 to 50 Tracts';
		break;
		case "s_nsew":
			titleText += ' Up to 20 Miles Across';
		break;
		case "m_nsew":
			titleText += ' 20 to 100 Miles Across';
		break;
		case "l_nsew":
			titleText += ' 100 to 200 Miles Across';
		break;
		case "s_entireus":
			titleText += '';
		break;
		case "m_entireus":
			titleText += '';
		break;
		case "l_entireus":
			titleText += ' Entire U.S.';
		break;	}
  tDiv = find_element('sampleTitle');
  tDiv.style.padding = '5px';
  tDiv.innerHTML = '<strong>'+titleText+'</strong>';

//	AJAX.open("GET", url, false);
//	AJAX.send(null);
	tDiv = find_element('sampleDivContent');
//	var data = AJAX.responseText;
	tDiv.innerHTML = '<img style="border:1px solid #C0C0C0;" src="'+img+'" width="350" height="350" />';

	if (pdf == 'none' || pdf == '') {
		tDiv = find_element('sampleDownloadContent');
		tDiv.innerHTML = '';
	} else {
		tDiv = find_element('sampleDownloadContent');
		tDiv.innerHTML = '<a class="fakecheckoutbutton" href="'+pdf+'" target="_new" >Download full sample map</a>';
		tDiv.style.padding='15px';
	}
}

function hideSample() {
	var tDiv = find_element('sampleDiv');
	tDiv.style.display='none';
}

var theFileName;

function doUpload(formId, sessionId) {

	var theForm = find_element('form'+formId);
	var theElem = theForm.elements[0];
	if (theElem.value == '') {
		return;
	}
	disable_uploads(formId);
	var tDiv = find_element('uploadBlah');
	tDiv.innerHTML += '<p>Please wait, uploading file<br /><img src="wait30trans.gif" /></p>';
	var uBox = find_element('file_upload_'+formId);
	var fileToupload = uBox.value;
	if (uBox.value == '') {
		return;
	}

	var f = uBox.value.split('.');
	var ext = f.shift();
	if (f == 'xls' || f == 'csv') {
		fullformId = 'form'+formId;
		uploadForm(fullformId,sessionId,'cus');
	} else {
		alert('Please upload upload files of type .csv (comma separated value text) or .xls (Microsoft Excel Spreadsheets).\nYou have attempted to upload a file of type: '+f);
	}
}


function doRegionUpload(formId, sessionId) {
	
	var theForm = find_element('form'+formId);
	var theElem = theForm.elements[0];
	if (theElem.value == '') {
		return;
	}
	disable_uploads(formId);
	var tDiv = find_element('uploadBlah');
	tDiv.innerHTML += '<p>Please wait, uploading file<br /><img src="wait30trans.gif" /></p>';
	var uBox = find_element('file_upload_'+formId);
	var fileToupload = uBox.value;
	if (uBox.value == '') {
		return;
	}

	var f = uBox.value.split('.');
	var ext = f.shift();
	if (f == 'xls' || f == 'csv') {
		fullformId = 'form'+formId;
		uploadForm(fullformId,sessionId,'reg');
	} else {
		alert('Please upload upload files of type .csv (comma separated value text) or .xls (Microsoft Excel Spreadsheets).\nYou have attempted to upload a file of type: '+f);
	}
}

function disable_uploads(id) {
	for (var i=0; i<3;i++) {
		var n = 'file_upload_'+i;
		var e = find_element(n);
		if (i == id) {
			e.disabled = false;
		} else {
			e.disabled = true;
		}
	}
}

function enable_uploads() {
	for (var i=0; i<3;i++) {
		var n = 'file_upload_'+i;
		var e = find_element(n);
		e.disabled = false;
	}
}

function regionlist_upload_done(fName, sid, formId) {
	fId = formId.substring((formId.length-1));
	var tDiv = find_element('CUS_REGION_LIST');
	
	var sizeString = "unknown";
	if (document.getElementById('numRegions').value != '') {
		sizeString = document.getElementById('numRegions').value;
	}
	
	tDiv.value = 'file::'+sizeString+' regions::'+fName;
	tDiv = find_element(formId+'_results');
	tDiv.innerHTML = 'File: <a target="_new" href="/ajax/uploader/uploadedfiles/'+fName+'">'+fName+'</a> successfully uploaded! [ <a href="javascript:regionlist_delete_file(\''+fId+'\',\''+fName+'\', \''+sid+'\');">delete</a> ]';

	tDiv = find_element(formId+'_holder');
	tDiv.style.display = 'none';

	drawAbbrev();
}

function cus_upload_done(fName, sid, formId) {

	enable_uploads();

	fId = formId.substring((formId.length-1));
	var tDiv = find_element('formContainer');
	var tElem = find_element('CUS_FILES');
	var fNames = tElem.value;
	var fArr = new Array();
	if (fNames == '') {
		fArr[0] = fName;
	} else {
		fArr = fNames.split("::");
		fArr.push(fName);
	}
	fNames = fArr.join("::");
	tElem.value = fNames;

	tElem = find_element('CUS_FILETYPES');
	var tNames = tElem.value;

	var thisFileType;
	switch (fId) {
		case '0':
			thisFileType = 'labeled';
		break;
		case '1':
			thisFileType = 'unlabeled';
		break;
		case '2':
			thisFileType = 'groups';
		break;
	}

	var tArr = new Array();
	if (tNames == '') {
		tArr[0] = thisFileType;
	} else {
		tArr = tNames.split("::");
		tArr.push(thisFileType);
	}

	tElem.value = tArr.join("::");
	tDiv = find_element('uploadBlah');
	tDiv.innerHTML = '';

	drawAbbrev();

	tDiv = find_element(formId+'_results');
	tDiv.innerHTML = 'File: <a target="_new" href="/ajax/uploader/uploadedfiles/'+fName+'">'+fName+'</a> successfully uploaded! [ <a href="javascript:cus_delete_file(\''+fId+'\',\''+fName+'\', \''+sid+'\');">delete</a> ]';

	tDiv = find_element(formId+'_holder');
	tDiv.style.display = 'none';

	drawAbbrev();
	goToStep3(true);
}

function print_selected() {

	tDiv = find_element('CUS_FORMAT');
	tDiv.value = 2;
	drawAbbrev();
}

function print_deselected() {

	tDiv = find_element('CUS_FORMAT');
	tDiv.value = 0;
	drawAbbrev();
}

function regionlist_delete_file(fId,fName, sid) {

	var fDiv = find_element('CUS_REGION_LIST');
	fDiv.value = '';

	var fHolder = find_element('form'+fId+'_holder');
	fHolder.style.display = 'block';

	tDiv = find_element('form'+fId+'_results');
	tDiv.innerHTML = '';

	drawAbbrev();
}

function cus_delete_file(fId,fName, sid) {

	var fDiv = find_element('CUS_FILES');
	var allFiles = fDiv.value;
	var fArr = allFiles.split("::");
	var tDiv = find_element('CUS_FILETYPES');
	var allTypes = tDiv.value;
	var tArr = allTypes.split("::");
	var nFiles = new Array();
	var nTypes = new Array();
	for (var i=0;i<fArr.length;i++) {
		if (fArr[i] != fName) {
			nFiles.push(fArr[i]);
			nTypes.push(tArr[i]);
		}
	}

	allFiles = nFiles.join("::");
	allTypes = nTypes.join("::");

	fDiv.value = allFiles;
	tDiv.value = allTypes;

	var fHolder = find_element('form'+fId+'_holder');
	fHolder.style.display = 'block';

	tDiv = find_element('form'+fId+'_results');
	tDiv.innerHTML = '';

	drawAbbrev();
}

function cus_upload_done_display() {
	var tDiv = find_element('formContainer');
	if (httpObject.readyState==4) {
		var data = httpObject.responseText;
		//alert(data);
		tDiv.innerHTML = data;
		reset_http_object();
	}
}

function cus_get_county(elem) {
	var theState = elem.options[elem.selectedIndex].value;
	var thisId = elem.id;
	thisId = thisId.replace('state', '');
	thisId = thisId.replace('elem', '');
	thisId = thisId.replace('cty_', '');
	var url = "/ajax/custom_maps/cus_load_counties.php?state="+theState+"&id="+thisId;

	var AJAX;
	if (window.XMLHttpRequest) {
    AJAX=new XMLHttpRequest();
  } else {
    AJAX=new ActiveXObject("Microsoft.XMLHTTP");
  }
	AJAX.open("GET", url, false);
	AJAX.send(null);
	var tDiv = find_element('cty'+thisId+'holder');
	tDiv.style.display='block';
	var data = AJAX.responseText;
	tDiv.innerHTML = data;


}

function drawBlurb() {
	var elem = find_element('CUS_AREA_TYPE');
		var s1val = elem.value;
	if (currentStep != '1.5') {
		stepText = stepTextArray[currentStep];
	} else {
		stepText = subStepArray[s1val];
	}
	var stDiv = find_element('blurb');
	if (stDiv) {
		stDiv.innerHTML = stepText;
		if (currentStep == '1') {
			stDiv.style.display = 'none';
		} else {
			stDiv.style.display = 'block';
		}
	}
}

function show_feat_desc(fId, featTitle) {
	
	var pos = findPos(find_element('vert_link_'+fId));

	var AJAX;
	if (window.XMLHttpRequest) {
    AJAX=new XMLHttpRequest();
  } else {
    AJAX=new ActiveXObject("Microsoft.XMLHTTP");
  }

	var url = '/ajax/custom_maps/cus_feat_desc.php?fId='+fId;
	var tDiv = find_element('cus_feat_desc');
	tDiv.style.display='block';
	tDiv.style.top = pos.y+'px';

	tDiv = find_element('cus_feat_title_desc');
	tDiv.innerHTML = '<h3 style="margin:0px;padding:0px;padding-top:5px;">'+featTitle+'</h3>';
	tDiv = find_element('cust_feat_desc_content');
	tDiv.innerHTML = 'Please wait...<br /><img src="wait30trans.gif" />';
	AJAX.open("GET", url, false);
	AJAX.send(null);
	var data = AJAX.responseText;
	tDiv.innerHTML = data;
}

function cus_feat_desc_close() {
	var tDiv = find_element('cus_feat_desc');
	tDiv.style.display='none';
}

function do_hide_select_form() {
	currentMask = "select";
	var tDiv = find_element('form_table');
	do_mask(tDiv);
}

function do_mask(tDiv) {
	
	if (tDiv) {
		var maskWhite = find_element('maskWhite');
		//var maskBlack = find_element('maskBlack');
		var maskText = find_element('maskText');
		maskWhite.style.display='block';
		maskText.style.display='block';
		//maskBlack.style.display='block';
		
		var pos = findPos(tDiv);
		maskWhite.style.top = pos.y +'px';
		maskWhite.style.left = pos.x +'px';
		maskWhite.style.width = tDiv.offsetWidth+'px';
		maskWhite.style.height = tDiv.offsetHeight+'px';
		
		/*
		maskBlack.style.top = pos.y +'px';
		maskBlack.style.left = pos.x +'px';
		maskBlack.style.width = tDiv.offsetWidth+'px';
		maskBlack.style.height = tDiv.offsetHeight+'px';
		*/
		
		maskText.style.top = pos.y +'px';
		maskText.style.left = pos.x +'px';
		maskText.style.width = tDiv.offsetWidth+'px';
		maskText.style.height = tDiv.offsetHeight+'px';
	} else {
		hide_mask();
	}
}

function hide_mask() {
	
	var maskWhite = find_element('maskWhite');
	//var maskBlack = find_element('maskBlack');
	var maskText = find_element('maskText');
	
	maskWhite.style.display='none';
	maskText.style.display='none';
	//maskBlack.style.display='none';
}


function findPos(obj) {
	var pos = new Object()
	pos.x = findPosX(obj);
	pos.y = findPosY(obj);
	return pos;
}

 function findPosX(obj)
  {
    var curleft = 0;
    if(obj.offsetParent)
        while(1) 
        {
          curleft += obj.offsetLeft;
          if(!obj.offsetParent)
            break;
          obj = obj.offsetParent;
        }
    else if(obj.x)
        curleft += obj.x;
    return curleft;
  }

  function findPosY(obj)
  {
    var curtop = 0;
    if(obj.offsetParent)
        while(1)
        {
          curtop += obj.offsetTop;
          if(!obj.offsetParent)
            break;
          obj = obj.offsetParent;
        }
    else if(obj.y)
        curtop += obj.y;
    return curtop;
  }
  
function toggleMask() {
	switch (currentMask) {
		case "upload":
			do_mask(find_element('form_table'));
			currentMask = "select";
		break;
		case "select":
			do_mask(find_element('upload_table'));
			currentMask = "upload";
		break;
	}
}