function AddItemToDropDownAt(dropdown, text, value, index) {
	var opt = new Option(text, value, true, true);
	AddOptionAt(dropdown, opt, index);
}
function AddOptionAt(ctl, opt, index) {
	for (j=ctl.options.length; j >= index; j--) {
		if (j > 0) {
			var movedOpt = new Option(ctl.options[j-1].text, ctl.options[j-1].value)
			ctl.options[j] = movedOpt;
		}
	}
	ctl.options[index] = opt
}
var popUpWin=0;
function SEEKpopUpWindow(URLStr, width, height, scrollbar, resizable)
{
  if(popUpWin)
  {
    if(!popUpWin.closed) popUpWin.close();
  }
  
  var xPos = ((screen.availHeight/2) - (height/2)); 
  var yPos = ((screen.availWidth/2) - (width/2));
  popUpWin = open(URLStr, 'popUpWin', 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars='+scrollbar+',resizable='+resizable+',copyhistory=yes,width='+width+',height='+height+',left='+yPos+', top='+xPos+',screenX='+yPos+',screenY='+xPos+'');
}
function GetObjectByPartName(name)
{
var obj;
var elementnumber; 
var elementname;
for (var i= 0; i < document.jobsearch.length; i++)
		{
			elementname = document.jobsearch.elements[i].name.toString();
			if (elementname.indexOf(name) != -1)
				{
				elementnumber = i;
				obj = document.jobsearch.elements[i]
				break;
				}
		}
			
	return obj;
}
var aCatSelected = new Array(0);
var aDefaultOverrides = new Array(0);
var aSelectedJobIds = GetPreselectedJobs();
function GetPreselectedJobs()
{
	var tmpArray = new Array();
	var preselects = GetFormElementByName('chkJob');
	if(preselects != null)
	{
		var tmpJobIds = preselects.split(',');
		for(var idx=0; idx < tmpJobIds.length; idx++)
		{
			var sIdx = JobIsSelected(tmpJobIds[idx],tmpArray);
			
			if(sIdx < 0) // job does not exist already
			{
				tmpArray[tmpArray.length] = tmpJobIds[idx];
			}
		}
	}
	
	return tmpArray;
}
function CheckUpdatedJobsOnLoad()
{
	var chkJobs = document.jobsearch.chkJob;

	if(chkJobs != null)
	{
		if ( chkJobs.type == null  ) // multi-array
		{
			for(var i = 0; i < chkJobs.length; i++)
			{
				
				if(chkJobs[i].checked == true)
				{
					if (JobIsSelected(chkJobs[i].value,aSelectedJobIds) < 0)
					{
						aSelectedJobIds[aSelectedJobIds.length] = chkJobs[i].value;
					}				
				}
			}
		}
		else // single item
		{
			if(chkJobs.checked == true)
			{
				if (JobIsSelected(chkJobs.value,aSelectedJobIds) < 0)
				{
					aSelectedJobIds[aSelectedJobIds.length] = chkJobs.value;
				}
			}
		}
	}

}
function SelectPreselectedJobs()
{
	var chkJobs = document.jobsearch.chkJob;
	
	if(chkJobs != null)
	{
		if ( chkJobs.type == null  ) // multi-array
		{
			for(var i = 0; i < chkJobs.length; i++)
			{
				for(var p =0; p < aSelectedJobIds.length; p++)
				{
					if(chkJobs[i].value == aSelectedJobIds[p])
					{
						chkJobs[i].checked = true;
						break;
					}
				}
			}
		}
		else
		{
			for(var p =0; p < aSelectedJobIds.length; p++)
			{
				if(chkJobs.value == aSelectedJobIds[p])
				{
					chkJobs.checked = true;
					break;
				}
			}
		}
	}
}
function AddSelectedItem(itemValue)
{
	aSelectedJobIds[aSelectedJobIds.length] = itemValue;
}
function RemoveSelectedItemAt(index)
{
	var tmpArray = new Array();
	var rIdx = 0;
	for(var i = 0; i < aSelectedJobIds.length; i++)
	{
		if(i != index)
			tmpArray[rIdx++] =  aSelectedJobIds[i];
	}
	aSelectedJobIds = tmpArray;
}
function UpdateSelectedItems(e){

	CheckUpdatedJobsOnLoad();
	
	var chkJobs = document.jobsearch.chkJob;
	
	if(chkJobs != null)
	{
		if ( chkJobs.type == null  ) // multi-array
		{


			for(var i = 0; i < chkJobs.length; i++)
			{
				var sIdx = JobIsSelected(chkJobs[i].value, aSelectedJobIds);
				
				if(chkJobs[i].checked)
				{
					if(sIdx < 0)
						AddSelectedItem(chkJobs[i].value);
				}
				else // remove preselections too (unchecked)
				{
					if(sIdx >= 0)
						RemoveSelectedItemAt(sIdx);
				}
			}
		}
		else	// single - input
		{
			var sIdx = JobIsSelected(chkJobs.value, aSelectedJobIds);
			if(chkJobs.checked)
			{
				if(sIdx < 0)
					AddSelectedItem(chkJobs.value);
			}
			else // remove preselections too (unchecked)
			{
				if(sIdx >= 0)
					RemoveSelectedItemAt(sIdx);
			}
		}
	}
	
	UpdateSelectedJobsText();
}
function UpdateSelectedJobsText()
{
	var message = '';
	var totalJobs = aSelectedJobIds.length;
	if(totalJobs == 1)
	{
		message = '1 job selected';
	}
	else
	{
		message = totalJobs + ' jobs selected';
	}
	
	var txtBox = document.jobsearch.SelectedJobsText;
	
	if(txtBox != null){
		txtBox.value = message;
	}
	
}	
function GetQueryString()
{
	var formItems = new Array();
	var formKeys = new Array();
	var myURL = document.URL;
	// Get the query string
	var startQs = myURL.indexOf('?',0);	
	if (startQs >=0)
	{
		var qs = myURL.substring(startQs+1);
		var items = qs.split('&');
		var keyIdx = 0;
		for(var idx=0; idx < items.length; idx++)
		{
			var tmpItem = items[idx].split('=');
			if(formItems[tmpItem[0]] == null)
			{
				formKeys[keyIdx++] = tmpItem[0];
				formItems[tmpItem[0]] = tmpItem[1];
			}
			else
			{
				formItems[tmpItem[0]] =  formItems[tmpItem[0]] + ',' + tmpItem[1];
			}
		}
	}
	return new Array(formKeys,formItems);
}
function GetFormElementByName(fName)
{
	var formItems = GetQueryString();
	var formValue = formItems[1][fName];
	if(formValue != null)
		return  SafeDecodeURL(formItems[1][fName]);
	else
		return null;
}
function PageTo(pageNum)
{
	
	CheckUpdatedJobsOnLoad();
	var formData = GetQueryString();

	var omissions = new Array('page', 'Page', 'chkJob','refinesearch');
	
	var pageQs = '?' +  GetQueryElementsWithFilter(omissions);
	
	// Add Selected Jobs
	var prevSelected = GetAllSelectedJobsString();
	
	if(prevSelected.length > 0)
		pageQs = pageQs + prevSelected;
	pageQs = pageQs + '&page=' + pageNum;
	
	var page = GetPageURLNoQuery();
	document.location = page + pageQs;
}
function GetAllSelectedJobsString()
{
	CheckUpdatedJobsOnLoad();
	var prevSelected = '';
	for(var sjIdx = 0; sjIdx < aSelectedJobIds.length; sjIdx++)
	{
		if(aSelectedJobIds[sjIdx].length > 0)
			prevSelected = prevSelected + '&chkJob=' + aSelectedJobIds[sjIdx] ; 
	}
	
	return prevSelected;
}
function GetPageURLNoQuery()
{
	var pIdx = document.URL.indexOf('?');
	
	if(pIdx >= 0)
	{
		return  document.URL.substring(0, pIdx);
	}
	else
	{
		return document.URL;
	}
}	
function GetQueryElementsWithFilter(omissions)
{

	CheckUpdatedJobsOnLoad();
	var formData = GetQueryString();
	var pageQs = '';
	
	for(var idx = 0; idx < formData[0].length ; idx++)
	{
		var key = formData[0][idx];
		var omit = false;
		for(var omIdx =0; omIdx < omissions.length; omIdx++)
		{
			if(omissions[omIdx] == key)
			{
				omit = true;
				break;
			}
		}
		if(!omit)
		{
			if(key != null &&  key.length > 0){
				var values = formData[1][key].split(',');
				var section = "";
				for(var i=0; i< values.length;i++)
					section = section + '&' + key + '=' + values[i];
				pageQs = pageQs + section;	
			}
		}
	}
	return pageQs;
}

	function SelectItem(catId, catIdx, selected)
	{
		switch(catId)
		{
		case 'location':
		{
			document.jobsearch.catlocation.options[catIdx].selected = selected;
			break;
		}
		case 'area':
		{
			document.jobsearch.catarea.options[catIdx].selected = selected;
			break;
		}
			case 'industry':
			{
				document.jobsearch.catindustry.options[catIdx].selected = selected;
				break;
			}
			case 'occupation':
			{
				document.jobsearch.catoccupation.options[catIdx].selected = selected;
				break;
			}
		}
   }
function getItemValue(catId, catIdx)
	{
		switch(catId)
		{
		case 'location':
		{
			return document.jobsearch.catlocation.options[catIdx].value;
		}
		case 'area':
		{
			return document.jobsearch.catarea.options[catIdx].value;
		}
		case 'industry':
		{
			return document.jobsearch.catindustry.options[catIdx].value;
		}
		case 'occupation':
		{
			return document.jobsearch.catoccupation.options[catIdx].value;
		}
		}
   }
	var submitCounter = 0;
	var aCategories = new Array(6);
	var childBehaviours = new Array();
	var categoryNames = new Array();
	var defaultIndexes = new Array();
	var isSorted = new Array();
	var categorySelections = new Array();
	var parentChildRelationships = new Array();

	var aIndustryItems = new Array(27);
	aIndustryItems[0] = new Array("Any", 0 );
	aIndustryItems[1] = new Array("Accounting", 1200 );
	aIndustryItems[2] = new Array("Administration", 1201 );
	aIndustryItems[3] = new Array("Advert/Media/Entertain", 1202 );
	aIndustryItems[4] = new Array("Banking & Financial Services", 1203 );
	aIndustryItems[5] = new Array("Call centre / Customer Service", 1204 );
	aIndustryItems[6] = new Array("Community & Sport", 1205 );
	aIndustryItems[7] = new Array("Construction", 1206 );
	aIndustryItems[8] = new Array("Consulting & Corporate Strategy", 1207 );
	aIndustryItems[9] = new Array("Education & Training", 1208 );
	aIndustryItems[10] = new Array("Engineering", 1209 );
	aIndustryItems[11] = new Array("Government/Defence", 1210 );
	aIndustryItems[12] = new Array("Healthcare & Medical", 1211 );
	aIndustryItems[13] = new Array("Hospitality & Tourism", 1212 );
	aIndustryItems[14] = new Array("HR & Recruitment", 1213 );
	aIndustryItems[15] = new Array("Insurance & Superannuation", 1214 );
	aIndustryItems[16] = new Array("I.T. & T", 1215 );
	aIndustryItems[17] = new Array("Legal", 1216 );
	aIndustryItems[18] = new Array("Manufacturing/Operations", 1217 );
	aIndustryItems[19] = new Array("Mining, Oil & Gas", 1218 );
	aIndustryItems[20] = new Array("Primary Industry", 1219 );
	aIndustryItems[21] = new Array("Real Estate & Property", 1220 );
	aIndustryItems[22] = new Array("Retail & Consumer Prods.", 1221 );
	aIndustryItems[23] = new Array("Sales & Marketing", 1222 );
	aIndustryItems[24] = new Array("Science & Technology", 1223 );
	aIndustryItems[25] = new Array("Self-Employment", 1224 );
	aIndustryItems[26] = new Array("Trades & Services", 1225 );
	aIndustryItems[27] = new Array("Transport & Logistics", 1226 );
	aCategories["industry"] = aIndustryItems;
	categoryNames[categoryNames.length] = "industry";
	defaultIndexes["industry"] = 0;
	isSorted["industry"] = true;
	categorySelections["industry"] = new Array();
	childBehaviours["industry"] = new Array("ShowDirectChildren","ShowDirectChildren","AggregateChild");
	parentChildRelationships["industry"] = "occupation";
	
	var aOccupationItems = new Array(256);
	aOccupationItems[0] = new Array("Any", 0 );
	aOccupationItems[1] = new Array("Account Management", 1300 );
	aOccupationItems[2] = new Array("Accountant", 1301 );
	aOccupationItems[3] = new Array("Accounts Clerk/Admin", 1302 );
	aOccupationItems[4] = new Array("Accounts Payable", 1303 );
	aOccupationItems[5] = new Array("Accounts Receivable", 1304 );
	aOccupationItems[6] = new Array("Actors/Dancers/Singers/Music.", 1305 );
	aOccupationItems[7] = new Array("Actuaries", 1306 );
	aOccupationItems[8] = new Array("Administration", 1307 );
	aOccupationItems[9] = new Array("Administration/Admissions", 1308 );
	aOccupationItems[10] = new Array("Aged/Disabled Care", 1309 );
	aOccupationItems[11] = new Array("Agency - Account Management", 1310 );
	aOccupationItems[12] = new Array("Agency - Creative Services", 1311 );
	aOccupationItems[13] = new Array("Agriculture", 1312 );
	aOccupationItems[14] = new Array("Air Con./Refrigeration", 1313 );
	aOccupationItems[15] = new Array("Air Force", 1314 );
	aOccupationItems[16] = new Array("Airlines", 1315 );
	aOccupationItems[17] = new Array("Allied Health", 1316 );
	aOccupationItems[18] = new Array("Ambulance / Paramedic", 1317 );
	aOccupationItems[19] = new Array("Analyst", 1318 );
	aOccupationItems[20] = new Array("Analyst/Programmer", 1319 );
	aOccupationItems[21] = new Array("Architect", 1320 );
	aOccupationItems[22] = new Array("Architecture", 1321 );
	aOccupationItems[23] = new Array("Army", 1322 );
	aOccupationItems[24] = new Array("Assembly Line Worker", 1323 );
	aOccupationItems[25] = new Array("Assessor", 1324 );
	aOccupationItems[26] = new Array("Assistant/Co-ordinator", 1325 );
	aOccupationItems[27] = new Array("Associations/Non-Profits", 1326 );
	aOccupationItems[28] = new Array("Automotive", 1327 );
	aOccupationItems[29] = new Array("Automotive Trades", 1328 );
	aOccupationItems[30] = new Array("Aviation/Airline", 1329 );
	aOccupationItems[31] = new Array("Baker/Butcher/Grocer", 1330 );
	aOccupationItems[32] = new Array("Banking/Branch Staff", 1331 );
	aOccupationItems[33] = new Array("Bar/Beverage Staff", 1332 );
	aOccupationItems[34] = new Array("Beauty Therapy", 1333 );
	aOccupationItems[35] = new Array("Boilermaking/Welding", 1334 );
	aOccupationItems[36] = new Array("Bookkeeping", 1335 );
	aOccupationItems[37] = new Array("Brand/Product Management", 1336 );
	aOccupationItems[38] = new Array("Bricklaying", 1337 );
	aOccupationItems[39] = new Array("Broking", 1338 );
	aOccupationItems[40] = new Array("Business Analyst", 1339 );
	aOccupationItems[41] = new Array("Business Development", 1340 );
	aOccupationItems[42] = new Array("Businesses for Sale", 1341 );
	aOccupationItems[43] = new Array("Buying", 1342 );
	aOccupationItems[44] = new Array("CAD/Drafting", 1343 );
	aOccupationItems[45] = new Array("Call Centre Operator", 1344 );
	aOccupationItems[46] = new Array("Carpentry/Cabinet Making", 1345 );
	aOccupationItems[47] = new Array("Change Management", 1346 );
	aOccupationItems[48] = new Array("Chef", 1347 );
	aOccupationItems[49] = new Array("Chemist", 1348 );
	aOccupationItems[50] = new Array("Chiropractor", 1349 );
	aOccupationItems[51] = new Array("Claims", 1350 );
	aOccupationItems[52] = new Array("Cleaning", 1351 );
	aOccupationItems[53] = new Array("Client Services", 1352 );
	aOccupationItems[54] = new Array("Clinical / Medical Research", 1353 );
	aOccupationItems[55] = new Array("Commission only", 1354 );
	aOccupationItems[56] = new Array("Community Services", 1355 );
	aOccupationItems[57] = new Array("Company Secretary", 1356 );
	aOccupationItems[58] = new Array("Compliance", 1357 );
	aOccupationItems[59] = new Array("Computer Operators", 1358 );
	aOccupationItems[60] = new Array("Concierge", 1359 );
	aOccupationItems[61] = new Array("Consultant/Functional Cons.", 1360 );
	aOccupationItems[62] = new Array("Consulting", 1361 );
	aOccupationItems[63] = new Array("Contracts Administration", 1362 );
	aOccupationItems[64] = new Array("Cook", 1363 );
	aOccupationItems[65] = new Array("Copywriters", 1364 );
	aOccupationItems[66] = new Array("Corp. Finance/Inv. Banking", 1365 );
	aOccupationItems[67] = new Array("Courier/Driver", 1366 );
	aOccupationItems[68] = new Array("Credit Management", 1367 );
	aOccupationItems[69] = new Array("Customer Service", 1368 );
	aOccupationItems[70] = new Array("Data Entry/WPO", 1369 );
	aOccupationItems[71] = new Array("Database Dev & Admin", 1370 );
	aOccupationItems[72] = new Array("Demolishing/Excavating", 1371 );
	aOccupationItems[73] = new Array("Dental", 1372 );
	aOccupationItems[74] = new Array("Design/Graphics", 1373 );
	aOccupationItems[75] = new Array("Direct Marketing", 1374 );
	aOccupationItems[76] = new Array("Drilling", 1375 );
	aOccupationItems[77] = new Array("Early Childhood", 1376 );
	aOccupationItems[78] = new Array("Electrician", 1377 );
	aOccupationItems[79] = new Array("Emergency Services", 1378 );
	aOccupationItems[80] = new Array("Engineer", 1379 );
	aOccupationItems[81] = new Array("Engineer - Hardware", 1380 );
	aOccupationItems[82] = new Array("Engineer - Network", 1381 );
	aOccupationItems[83] = new Array("Engineer - Software", 1382 );
	aOccupationItems[84] = new Array("Environment & Natural Res.", 1383 );
	aOccupationItems[85] = new Array("Environmental Health & Safety", 1384 );
	aOccupationItems[86] = new Array("Environmental Science", 1385 );
	aOccupationItems[87] = new Array("Environmental Services", 1386 );
	aOccupationItems[88] = new Array("Estimating", 1387 );
	aOccupationItems[89] = new Array("Event Management", 1388 );
	aOccupationItems[90] = new Array("Fashion", 1389 );
	aOccupationItems[91] = new Array("Film/Radio/TV", 1390 );
	aOccupationItems[92] = new Array("Financial Controller", 1391 );
	aOccupationItems[93] = new Array("Financial Planning ", 1392 );
	aOccupationItems[94] = new Array("Fishing/Aquaculture", 1393 );
	aOccupationItems[95] = new Array("Fitness", 1562 );
	aOccupationItems[96] = new Array("Fitters/Machinists", 1394 );
	aOccupationItems[97] = new Array("Fleet Management", 1395 );
	aOccupationItems[98] = new Array("Florist", 1396 );
	aOccupationItems[99] = new Array("Foreperson/Supervisor", 1397 );
	aOccupationItems[100] = new Array("Forestry", 1398 );
	aOccupationItems[101] = new Array("Franchise", 1399 );
	aOccupationItems[102] = new Array("Freelance", 1400 );
	aOccupationItems[103] = new Array("Freight Forwarding", 1401 );
	aOccupationItems[104] = new Array("Front Office", 1402 );
	aOccupationItems[105] = new Array("Fundraising", 1403 );
	aOccupationItems[106] = new Array("Funds Management", 1404 );
	aOccupationItems[107] = new Array("Gaming", 1405 );
	aOccupationItems[108] = new Array("Gardening/Landscaping", 1406 );
	aOccupationItems[109] = new Array("General HR", 1407 );
	aOccupationItems[110] = new Array("Geoscience", 1408 );
	aOccupationItems[111] = new Array("Government - Federal ", 1409 );
	aOccupationItems[112] = new Array("Government - Local", 1410 );
	aOccupationItems[113] = new Array("Government - State", 1411 );
	aOccupationItems[114] = new Array("Hairdressing", 1412 );
	aOccupationItems[115] = new Array("Help Desk/Support", 1413 );
	aOccupationItems[116] = new Array("Horticulture", 1414 );
	aOccupationItems[117] = new Array("Housekeeping", 1415 );
	aOccupationItems[118] = new Array("Importer/Exporter", 1416 );
	aOccupationItems[119] = new Array("Industrial Design", 1417 );
	aOccupationItems[120] = new Array("Industrial Relations", 1418 );
	aOccupationItems[121] = new Array("Inspectors", 1419 );
	aOccupationItems[122] = new Array("Interior Design", 1420 );
	aOccupationItems[123] = new Array("Internal Audit", 1421 );
	aOccupationItems[124] = new Array("Internet/Multimedia Design", 1422 );
	aOccupationItems[125] = new Array("Internet/Multimedia Dev", 1423 );
	aOccupationItems[126] = new Array("Journalism/Writers", 1424 );
	aOccupationItems[127] = new Array("Kitchen/Sandwich Hand", 1425 );
	aOccupationItems[128] = new Array("Laboratory", 1426 );
	aOccupationItems[129] = new Array("Labourer", 1427 );
	aOccupationItems[130] = new Array("Landscape Architecture", 1428 );
	aOccupationItems[131] = new Array("Law Clerks/Paralegals", 1429 );
	aOccupationItems[132] = new Array("Leasing", 1430 );
	aOccupationItems[133] = new Array("Legal Secretaries", 1431 );
	aOccupationItems[134] = new Array("Library Services", 1432 );
	aOccupationItems[135] = new Array("Loss Prevention", 1433 );
	aOccupationItems[136] = new Array("Machine Operators", 1434 );
	aOccupationItems[137] = new Array("Maintenance", 1435 );
	aOccupationItems[138] = new Array("Maintenance / Handyperson", 1436 );
	aOccupationItems[139] = new Array("Management ", 1437 );
	aOccupationItems[140] = new Array("Market Research", 1438 );
	aOccupationItems[141] = new Array("Marketing Communications", 1439 );
	aOccupationItems[142] = new Array("Marketing Manager", 1440 );
	aOccupationItems[143] = new Array("Media Booking & Traffic", 1441 );
	aOccupationItems[144] = new Array("Medical Practitioner", 1442 );
	aOccupationItems[145] = new Array("Medical Specialist", 1443 );
	aOccupationItems[146] = new Array("Merchandising", 1444 );
	aOccupationItems[147] = new Array("Mining - Eng. & Maintenance", 1445 );
	aOccupationItems[148] = new Array("Mining - Mineral Processing", 1446 );
	aOccupationItems[149] = new Array("Mining - Production", 1447 );
	aOccupationItems[150] = new Array("Mortgage", 1448 );
	aOccupationItems[151] = new Array("Nanny/Babysitting", 1449 );
	aOccupationItems[152] = new Array("Navy", 1450 );
	aOccupationItems[153] = new Array("Network Marketing", 1451 );
	aOccupationItems[154] = new Array("Networks & Systems", 1452 );
	aOccupationItems[155] = new Array("Nursing/Midwives", 1453 );
	aOccupationItems[156] = new Array("Office Assistant/Junior", 1455 );
	aOccupationItems[157] = new Array("Office Manager", 1456 );
	aOccupationItems[158] = new Array("OH & S", 1457 );
	aOccupationItems[159] = new Array("Oil & Gas - Eng. & Maintenance", 1458 );
	aOccupationItems[160] = new Array("Oil & Gas - Exploration", 1459 );
	aOccupationItems[161] = new Array("Oil & Gas - Maintenance", 1460 );
	aOccupationItems[162] = new Array("Oil & Gas - Production", 1461 );
	aOccupationItems[163] = new Array("Operations", 1462 );
	aOccupationItems[164] = new Array("Other", 1463 );
	aOccupationItems[165] = new Array("PA/Executive Assistant", 1464 );
	aOccupationItems[166] = new Array("Packer / Filler", 1465 );
	aOccupationItems[167] = new Array("Painting", 1466 );
	aOccupationItems[168] = new Array("Pathology", 1467 );
	aOccupationItems[169] = new Array("Payroll", 1468 );
	aOccupationItems[170] = new Array("Pharmaceuticals", 1469 );
	aOccupationItems[171] = new Array("Pharmacy", 1470 );
	aOccupationItems[172] = new Array("Photography", 1471 );
	aOccupationItems[173] = new Array("Planning", 1472 );
	aOccupationItems[174] = new Array("Plant Management ", 1473 );
	aOccupationItems[175] = new Array("Plumbing", 1474 );
	aOccupationItems[176] = new Array("Police/Prison Workers", 1475 );
	aOccupationItems[177] = new Array("Policy & Planning", 1476 );
	aOccupationItems[178] = new Array("Policy Analyst/Advisor", 1477 );
	aOccupationItems[179] = new Array("Printing", 1478 );
	aOccupationItems[180] = new Array("Process Workers", 1479 );
	aOccupationItems[181] = new Array("Procurement & Inventory", 1480 );
	aOccupationItems[182] = new Array("Product Dev/Planning", 1481 );
	aOccupationItems[183] = new Array("Product Management", 1482 );
	aOccupationItems[184] = new Array("Project Manager", 1483 );
	aOccupationItems[185] = new Array("Project Management", 1554 );
	aOccupationItems[186] = new Array("Promotions", 1484 );
	aOccupationItems[187] = new Array("Property Management", 1486 );
	aOccupationItems[188] = new Array("Psychology/Counselling", 1561 );
	aOccupationItems[189] = new Array("Public Relations", 1487 );
	aOccupationItems[190] = new Array("Publishing", 1488 );
	aOccupationItems[191] = new Array("Purchasing", 1489 );
	aOccupationItems[192] = new Array("Q & A", 1490 );
	aOccupationItems[193] = new Array("QA/Testers", 1491 );
	aOccupationItems[194] = new Array("Quality Assurance", 1492 );
	aOccupationItems[195] = new Array("Radiology/Sonography", 1493 );
	aOccupationItems[196] = new Array("Reception", 1494 );
	aOccupationItems[197] = new Array("Recruitment Consultant", 1495 );
	aOccupationItems[198] = new Array("Research", 1496 );
	aOccupationItems[199] = new Array("Retail - Assistant Manager", 1497 );
	aOccupationItems[200] = new Array("Retail - Sales Assistant", 1498 );
	aOccupationItems[201] = new Array("Risk Consulting", 1499 );
	aOccupationItems[202] = new Array("Risk Management", 1500 );
	aOccupationItems[203] = new Array("Safety Coordinator/Officer", 1501 );
	aOccupationItems[204] = new Array("Safety Inspector", 1502 );
	aOccupationItems[205] = new Array("Sales", 1503 );
	aOccupationItems[206] = new Array("Sales Execs/Reps", 1504 );
	aOccupationItems[207] = new Array("Sales Manager", 1505 );
	aOccupationItems[208] = new Array("Sales - Pre & Post", 1506 );
	aOccupationItems[209] = new Array("Sales Rep./Consultant", 1507 );
	aOccupationItems[210] = new Array("Schools", 1508 );
	aOccupationItems[211] = new Array("Scientist", 1509 );
	aOccupationItems[212] = new Array("Secretarial", 1510 );
	aOccupationItems[213] = new Array("Security", 1511 );
	aOccupationItems[214] = new Array("Security", 1555 );
	aOccupationItems[215] = new Array("Services/Consultancy", 1512 );
	aOccupationItems[216] = new Array("Settlements Officers", 1513 );
	aOccupationItems[217] = new Array("Site Management", 1514 );
	aOccupationItems[218] = new Array("Solicitor: Partner/Senior Assoc.", 1515 );
	aOccupationItems[219] = new Array("Solicitor: In House", 1516 );
	aOccupationItems[220] = new Array("Solicitor: Private Practice", 1517 );
	aOccupationItems[221] = new Array("Solicitor: Public Practice", 1518 );
	aOccupationItems[222] = new Array("Sport & Recreation", 1519 );
	aOccupationItems[223] = new Array("Stockbroking", 1520 );
	aOccupationItems[224] = new Array("Store Manager", 1521 );
	aOccupationItems[225] = new Array("Storeperson/Warehousing ", 1522 );
	aOccupationItems[226] = new Array("Strategy", 1523 );
	aOccupationItems[227] = new Array("Superannuation", 1524 );
	aOccupationItems[228] = new Array("Supervisor", 1525 );
	aOccupationItems[229] = new Array("Supervisor/Team Leader", 1526 );
	aOccupationItems[230] = new Array("Supply Chain", 1527 );
	aOccupationItems[231] = new Array("Surveying", 1528 );
	aOccupationItems[232] = new Array("Team Leaders", 1529 );
	aOccupationItems[233] = new Array("Technical", 1530 );
	aOccupationItems[234] = new Array("Technical Writers", 1531 );
	aOccupationItems[235] = new Array("Technician", 1532 );
	aOccupationItems[236] = new Array("Telecommunications", 1533 );
	aOccupationItems[237] = new Array("Telemarketing", 1534 );
	aOccupationItems[238] = new Array("Telesales", 1535 );
	aOccupationItems[239] = new Array("Toolmaker", 1536 );
	aOccupationItems[240] = new Array("Tour Guides", 1537 );
	aOccupationItems[241] = new Array("Trademark / Patent Attorney", 1538 );
	aOccupationItems[242] = new Array("Trainers", 1539 );
	aOccupationItems[243] = new Array("Training & Development", 1540 );
	aOccupationItems[244] = new Array("Transport", 1541 );
	aOccupationItems[245] = new Array("Travel Agents/Consultants", 1542 );
	aOccupationItems[246] = new Array("Treasury", 1543 );
	aOccupationItems[247] = new Array("Underwriting", 1544 );
	aOccupationItems[248] = new Array("University", 1545 );
	aOccupationItems[249] = new Array("Valuation", 1546 );
	aOccupationItems[250] = new Array("Veterinarian/Animal Welfare", 1547 );
	aOccupationItems[251] = new Array("Vocational Education & Training", 1548 );
	aOccupationItems[252] = new Array("Waiting Staff", 1549 );
	aOccupationItems[253] = new Array("Warehouse & Distribution", 1550 );
	aOccupationItems[254] = new Array("Winery/Viticulture", 1551 );
	aOccupationItems[255] = new Array("Work from home", 1552 );
	aOccupationItems[256] = new Array("Workers Compensation", 1553 );
	aCategories["occupation"] = aOccupationItems;
	categoryNames[categoryNames.length] = "occupation";
	defaultIndexes["occupation"] = 0;
	isSorted["occupation"] = true;
	categorySelections["occupation"] = new Array();
	childBehaviours["occupation"] = new Array("ShowDirectChildren","ShowDirectChildren","ShowDirectChildren");
	var aRelationShips  = new Array(2);
	
	var aOccupationChildItems = new Array(14);
	aOccupationChildItems[1379] = new Array(88,83,82,81,80,79,78,77,76,75,74,73,72,71,70);
	aOccupationChildItems[1376] = new Array(118,161,33);
	aOccupationChildItems[1554] = new Array(208,206,202,185,113,161,158,152,139,103,85,66,56,52,50,41,31,15,8,256,253,196,200,188,181,175,174,221,213);
	aOccupationChildItems[1545] = new Array(124,121,161,6,197,183,244);
	aOccupationChildItems[1555] = new Array(209,111,173,161,151,90,69,61,58,36,25,11,10,259,198,189,231,224,214);
	aOccupationChildItems[1508] = new Array(207,125,161,182,180,236);
	aOccupationChildItems[1506] = new Array(208,119,167,165,164,161,150,145,136,106,95,91,85,84,50,45,42,26,3,263,257,199,179,177,27,186,258,254,176,237,222,217,216);
	aOccupationChildItems[1301] = new Array(124,161,105,89,48,32,21,20,233);
	aOccupationChildItems[1319] = new Array(204,203,202,134,123,122,117,116,115,114,171,170,161,158,155,154,147,137,104,102,101,99,97,87,55,54,53,51,44,43,40,30,29,28,23,18,14,12,8,5,261,255,252,251,1,65,266,191,184,178,247,243,242,241,232,229,226,219);
	aOccupationChildItems[1548] = new Array(161,265,235);
	aOccupationChildItems[1316] = new Array(172,161,160,157,149,57,218,215);
	aOccupationChildItems[1453] = new Array(131,130,127,166,163,162,135,126,68,67,49,46,19,7,192,227);
	aOccupationChildItems[1452] = new Array(211,133,129,128,122,120,110,169,165,161,159,157,156,153,150,148,146,144,143,142,141,140,138,136,107,100,96,94,92,85,64,63,62,60,59,50,47,45,37,35,34,24,23,17,9,4,264,263,262,261,260,256,250,249,245,210,98,201,168,198,16,194,258,234,228,225,220);
	aOccupationChildItems[1491] = new Array(208,205,132,193,112,109,161,108,93,86,39,38,22,13,2,248,195,230,223,190,187,246,240,239,238,224,212);
	aRelationShips["occupation"] = 	aOccupationChildItems;
	var aIndustryChildItems = new Array(27);
	aIndustryChildItems[1221] = new Array(139,224,200,199,182,164,146,135,43);
	aIndustryChildItems[1220] = new Array(137,249,205,187,164,132,19,8);
	aIndustryChildItems[1219] = new Array(254,215,164,116,100,94,84,13);
	aIndustryChildItems[1218] = new Array(139,164,162,161,160,159,149,148,147,110,85,76);
	aIndustryChildItems[1217] = new Array(136,239,228,225,194,191,180,174,166,164,90,119,96,24);
	aIndustryChildItems[1216] = new Array(241,221,220,219,218,164,133,131,8);
	aIndustryChildItems[1215] = new Array(139,214,185,242,236,234,232,208,193,183,164,154,125,124,115,83,82,81,71,61,59,40,21,20);
	aIndustryChildItems[1214] = new Array(139,256,247,227,201,164,51,39,25);
	aIndustryChildItems[1213] = new Array(139,243,197,164,158,120,109,47);
	aIndustryChildItems[1212] = new Array(139,252,245,240,164,127,117,107,104,48,64,60,33,16);
	aIndustryChildItems[1211] = new Array(139,188,250,206,204,195,171,170,168,164,155,145,144,87,73,54,50,18,17,10,9);
	aIndustryChildItems[1210] = new Array(178,176,164,152,113,112,111,79,23,15);
	aIndustryChildItems[1209] = new Array(139,137,228,203,184,164,80,44);
	aIndustryChildItems[1208] = new Array(251,248,210,164,134,77);
	aIndustryChildItems[1207] = new Array(226,177,164,62,41,19);
	aIndustryChildItems[1206] = new Array(185,231,217,173,164,158,130,122,121,99,88,72,63,44,22);
	aIndustryChildItems[1205] = new Array(95,222,164,105,56,27);
	aIndustryChildItems[1204] = new Array(139,238,237,229,164,69,45);
	aIndustryChildItems[1203] = new Array(139,246,223,216,202,164,150,93,123,106,68,66,58,53,32,19,7);
	aIndustryChildItems[1202] = new Array(190,189,186,172,164,143,91,126,89,74,65,12,11,6);
	aIndustryChildItems[1201] = new Array(139,212,196,165,164,157,156,70,63,8);
	aIndustryChildItems[1200] = new Array(139,181,169,164,92,57,36,19,5,4,3,2);
	aIndustryChildItems[1226] = new Array(139,253,244,230,164,163,118,103,97,67,30,28);
	aIndustryChildItems[1225] = new Array(138,235,213,179,175,167,164,151,129,114,108,98,46,78,52,38,35,34,31,29,14);
	aIndustryChildItems[1224] = new Array(255,153,102,101,55,42);
	aIndustryChildItems[1223] = new Array(233,211,198,192,164,128,49,86);
	aIndustryChildItems[1222] = new Array(209,207,164,142,141,140,75,41,37,26,19,1);
	aRelationShips["industry"] = 	aIndustryChildItems;
function ValidateCategoryList(categoryId, maxItems, childCategoryId,populateChildren)
		{
			var defIdx = defaultIndexes[categoryId];
			var ddl = document.getElementById('cat' + categoryId);
			var chk = GetObjectByPartName('chkUnspecified' + categoryId);
			var anyOption = ddl.options[0];
			getItemValue(categoryId,0);
			if(getItemValue(categoryId,0) == 0 &&  anyOption.selected)
			{
				for(var idx = 1; idx < ddl.options.length; idx++)
				{
					if(ddl.options[idx].selected)
					{
						anyOption.selected = false;						
						break;
					}
				}
			}
		if(chk != null)
			{
				if(!anyOption.selected)
				{
					if(chk.disabled)
						chk.checked = true;
				}
				else
					chk.checked = false;
				
				chk.disabled = anyOption.selected;				
			}

			// Validate Max Items if required
			if(maxItems > 0)
			{
				var selectedIdx  = ddl.selectedIndex;

				if(ddl != null)
				{
					var removeIdx = 0;
					var removeOptions = new Array();
				
					var selected = 0;
					for(idx = 0; idx < ddl.options.length; idx++)
					{
						if(ddl.options[idx].selected)
						{
							if(selected > maxItems)
							{
								removeOptions[removeIdx++] = idx;
							}
							selected++;
						}
					}
					if(selected > maxItems)
					{
						alert('Only ' + maxItems + ' items may be selected for category ' + categoryId );
						
						for(rIdx = 0; rIdx < removeOptions.length; rIdx++)
						{
							ddl.options[removeOptions[rIdx]].selected = false;
						}
						populateChildren = false; // Don't continue populating
					}
				}
			}		

			if(populateChildren) // If we are cascading population events ...
			{
				aCatSelected['cat' + childCategoryId] = new Array(); //Clear out the old values
				ProcessChildList(categoryId,childCategoryId);
			}

			var cat = GetObjectByPartName('cat' + categoryId)
			cat.focus();
			
		}
		
function scrollToItem(evt)
	{
		for(var catIdx =0; catIdx < categoryNames.length; catIdx++)
		{
			if (categoryNames[catIdx] != 'suppress') //dont scroll suppressed items
			{
				var ddl = document.getElementById('cat' + categoryNames[catIdx]);
				
				var selections  = categorySelections[categoryNames[catIdx]];
 
								// If Category control doesnt appear (eg. Area not shown for 30 days), but
				// exists in model, then must test that control exists first.
				if (ddl != null)
				{
					for(var i =0; i < ddl.options.length; i++)
					{
						var selected = false;
		
						if(selections.length > 0)
						{
							selected = selections['OPT_' + ddl.options[i].value];
						}
						else
						{
							selected = ddl.options[i].selected;
						}

						if (selected)
						{
							if (ddl.options.type == 'select-multiple')
							{
								SelectItem(categoryNames[catIdx], i, false);
								SelectItem(categoryNames[catIdx], i, true);
								break;
							}
							else
							{
								// do not need to clear selections for single-select drop-down lists
								SelectItem(categoryNames[catIdx], i, true);
							}
						}
						else // required for NS
						{
							if (ddl.options.type == 'select-multiple')
							{
								SelectItem(categoryNames[catIdx], i, true);
								SelectItem(categoryNames[catIdx], i, false);
							}
						}
					}
				}
			}
		}
	}
function populateClassiferList(ddListId, catID)
	{
		var ddl = document.getElementById(ddListId);
		var classifers = aCategories[catID];
		var defIdx = defaultIndexes[catID];
		var forceDefaultZero = (aDefaultOverrides[catID] != null);
		var defaults = new Array(); // defaults always at top
		var nonDefSelected = false;
		var ItemIndex = 0;
		var sorted = isSorted[catID];
		var selections = new Array();
		var defSelections = new Array();
		if(forceDefaultZero)
			defIdx = 0;
	if(ddl != null)
		{
			var sortArray = new Array();
			var sortIndex = 0;

			for(idx =0; idx < classifers.length; idx++)
			{	
				var isSelected = false;
				var classifier = classifers[idx];
				var opt = new Option(classifier[0],classifier[1]);

				if(opt.value == 0) // deal with std default
				{	if(defIdx == 0){
						//opt.selected=true;
						defSelections['OPT_' + opt.value ] = true;
					}
					else
					{	
						defSelections['OPT_' + opt.value ] = false;
					}
					defaults[0] = opt; 
				}	
				else
				{
					var selectedItems = aCatSelected['cat' + catID];

					if(selectedItems != null && selectedItems.length > 0)
					{
						for(sIdx =0; sIdx < selectedItems.length; sIdx++)
						{
							if(selectedItems[sIdx] == classifier[1])
							{
								//opt.selected = true;
								isSelected = true;
								if(idx != defIdx)
								{
									nonDefSelected=true;
								}
								break;
							}
						}
					}
					else
					{
						if(idx == defIdx)
						{
							//opt.selected = true;
							selections['OPT_'+ opt.value] = true;
							isSelected = true;
						}
					}
					if(idx != defIdx){
						sortArray[ItemIndex++] = opt;
						selections['OPT_'+ opt.value] = isSelected;
					}
					else
					{
						var def = defaults.length;
						defaults[def] = opt; 
						defSelections['OPT_'+ opt.value] = isSelected; 
					}	
				}
			}
			
			if(sorted) //only sort those that need it
				sortArray.sort(sortCategory);

			var finalList = new Array();

			// Add defaults
			for(var d = 0; d < defaults.length; d++)
			{
				if(nonDefSelected && defaults[d].value == '0')
				{			
					selections['OPT_'+ defaults[d].value] = false;
				}
				else
				{
					selections['OPT_'+ defaults[d].value] = defSelections['OPT_'+ defaults[d].value];
				}
				finalList[finalList.length] = defaults[d];
			}

			for(var i =0; i < sortArray.length; i++)
			{
				finalList[finalList.length] = sortArray[i];
			}

			finalList = removeDuplicates(finalList);

			for(var f =0; f < finalList.length; f++)
			{
				var selIdx = ddl.options.length;
				ddl.options[selIdx] = finalList[f];
				SelectItem(catID,selIdx,selections['OPT_'+ finalList[f].value]);
			}
			
			categorySelections[catID] = selections;			
		}
	}

	function removeDuplicates(arr)
	{
		var optText = '';
		for(var i =0; i<arr.length; i++)
		{
			optText = arr[i].text;
			
			if (i < (arr.length - 1))
			{
				if (optText == arr[i+1].text)
				{
					arr[i].value += ',' + arr[i+1].value;

					for(var j=i+1; j<arr.length; j++)
					{
						if (j < (arr.length - 1))
							arr[j] = arr[j+1]
					}

					arr.length = arr.length - 1;
				}
			}	
		}			
		return arr;
	}

	function isNS62()
	{
		var browserType = navigator.appName;
		var browserVer = navigator.appVersion;

		if(browserType == 'Netscape' && browserVer.indexOf('5.0') >= 0)
		{
			return true;
		}
		return false;
	}
	function ProcessChildList(parentCategoryId, childCategoryId)
	{
		var ddl = document.getElementById('cat' + parentCategoryId);
		var mode = 0; // Default. 0 = Single, 1= Multi, 2 = Any
		var anyOption = false;
		var classifers = aCategories[parentCategoryId];
	
		ddl.blur();

		if(classifers.length <= 2) // Including the any option
		{
			anyOption = true;
		}
		else{
			// Now validate that Any is not selected with other values
			anyOption = ddl.options[0].selected;
		}

		if(anyOption) // Can only be selected in isolation (Not with other items)
		{
			mode = 2;
		}
		else
		{
			var selCount = 0;
			mode = 0;
			for(var idx = 1; idx < ddl.options.length; idx++)
			{
				if(ddl.options[idx].selected)
				{
					selCount++;
					if(selCount > 1)
					{
						mode = 1;
						break;
					}
				}
			}
		}
	
		processListSelect(childBehaviours[parentCategoryId][mode],parentCategoryId,childCategoryId);

		if(parentChildRelationships[childCategoryId] != null)
		{
			ProcessChildList(childCategoryId,parentChildRelationships[childCategoryId]);
		}
	}

	function processListSelect(action, parentListId, childListId)
	{
		switch(action)
		{
			case 'AggregateChild':
				aggregateChildList(parentListId , childListId);
				break;
			case 'DisableChild':
				clearCategoryList(parentListId, childListId,true,'No Selection Required')
				break;
			case 'EmptyChild':
				break;
			case 'ShowDirectChildren':
			case 'Default':
			default:
				populateChildList(parentListId, childListId);
				break;
		}
	}
	function nsFix()
	{
		window.status = '';
	}
function clearCategoryList(parentListId, childListId, showAny, anyCopy)
	{
		var pList = document.getElementById('cat' + parentListId);
		var cList = document.getElementById('cat' + childListId);
		var defIdx = defaultIndexes[childListId];

	var anyOption = pList.options[0];

		for(var cIdx = cList.options.length -1; cIdx >= 0 ; cIdx--)
		{	
			cList.remove(cIdx);
		}

		if(showAny)
		{
			if(anyOption.selected && childListId == 'specialisation')
				cList.options[0] = new Option('Select a Sub-Classification',0,true,true);
			else
				cList.options[0] = new Option(anyCopy,0,true,true);
		}

		populateCheckBox(null, childListId);
	}

	function aggregateChildList(parentListId, childListId)
	{	
		clearCategoryList(parentListId, childListId,false,'Any');
		
		
		var cList = document.getElementById('cat' + childListId);
		var defIdx = defaultIndexes[childListId];
		var classifers = aCategories[childListId];
		var anyOption = new Option('Any',0,false,false);
		var nonDefaults = 0;	
		var sortIdx = 0;
		var selectedItems = aCatSelected['cat' + childListId];
		var sortedArray = new Array();
		var defaults = new Array();
		var selections = new Array();
	for(var classIdx =1; classIdx < classifers.length; classIdx++)
		{ 
			var cItem = classifers[classIdx];
			var newOpt = new Option(cItem[0],cItem[1]);
			var isSelected = false;

			if(selectedItems != null)
			{
				for(sIdx = 0; sIdx < selectedItems.length; sIdx++)
				{
					if(cItem[1] == selectedItems[sIdx])
					{
						newOpt.selected = true;
						isSelected = true;
						nonDefaults++;
						break;
					}
				}
			}

			selections['OPT_' + newOpt.value] = isSelected;
	
			if(newOpt.value == defIdx)
			{
				defaults[defaults.length] = newOpt;
			}
			else
			{
				sortedArray[sortIdx++] = newOpt;
			}
		}

		sortedArray.sort(sortCategory);
		// Create a new Array (NS62 workaround)
		var finalArray = new Array();

		finalArray[0] = anyOption;
		selections['OPT_' + anyOption.value] = (nonDefaults == 0 && defIdx == 0);

		for(var dIdx =0; dIdx < defaults.length; dIdx++)
		{	
			var defOpt = defaults[dIdx];
			selections['OPT_'+ defOpt.value] = (nonDefaults == 0);
			finalArray[	finalArray.length ] = defOpt;
		}

		for(var s=0; s < sortedArray.length; s++)
		{
			finalArray[	finalArray.length ] = sortedArray[s];
		}

		finalArray = removeDuplicates(finalArray);

		cList.blur();
		
		var insertAt = 0;
		for(var i =0; i < finalArray.length; i++)
		{
			insertAt = cList.options.length;
			cList.options[insertAt] = finalArray[i];

			var sel = false;
			var arrIds = finalArray[i].value.split(',');

			for(var j=0; j<arrIds.length; j++)
			{
				sel = selections['OPT_'+ arrIds[j]];
				if (sel)
					break;
			}

			SelectItem(childListId,insertAt, sel);
		}

		aCatSelected['cat' + childListId] = new Array(); // Clear out the selections

		populateCheckBox(selectedItems, childListId);
	}
function populateChildList(parentListId, childListId)
	{
		// must cater for duplicates when multi-parent items exist

		var cList = document.getElementById('cat' + childListId);
		var pList = document.getElementById('cat' + parentListId);
		var defIdx = defaultIndexes[childListId];
		var parentSelections  = new Array();
		var parentClassifications = aCategories[parentListId].length;
		// Save the currenlty selected Parent Options if applicable
		// Save the currently selected child options
		var currentSelections = new Array();

		var selections = new Array();

		var cSelIdx = 0;
		for(var cIdx =0; cIdx < cList.options.length; cIdx++)
		{
			if(cList.options[cIdx].selected)
			{
				var arrIds = cList.options[cIdx].value.split(',');

				for(var i=0; i<arrIds.length; i++)
					currentSelections[cSelIdx++] = arrIds[i];
			}
		}

		// Clear the list and show message if the item selected is a duplicate
		if (pList.options.selectedIndex >= 0)	
		{
			if (pList.options[pList.options.selectedIndex].value.split(',').length > 1)
			{
				clearCategoryList(parentListId,childListId,true,'No Selection is Required');
				return;	
			}
		}			
clearCategoryList(parentListId,childListId,false,'Any');

		var aRels = aRelationShips[parentListId];
		var classifers = aCategories[childListId];
		var selectedItems = aCatSelected['cat' + childListId];
		
		var optIdx = 0;
		var selectedAll = false;
	    var anyOption = new Option('Any',0,false,false);

		if(defIdx == 0){
			anyOption.selected = true;	
			selections['OPT_'+ anyOption.value] = true;
		}

		if(aRels != null && aRels.length > 0)
		{
			var sortedArray = new Array();
			for(pIdx =1; pIdx < pList.options.length; pIdx++)
			{
				if(selectedAll)
				{
					selectedAll = false;
					break;	
				}
				var pOpt = pList.options[pIdx];
				
				if(pOpt.selected == true)
				{
					if(pOpt.value != 0) // If not ANY
					{		
						var itemRels = aRels[pOpt.value]; //PW CHange

						//window.status = pIdx;
						if(itemRels != null)
						{
							for(idx =0; idx < itemRels.length ; idx++)
							{
								var rIdx = itemRels[idx];
								var cat = classifers[rIdx];
								var opt = new Option(cat[0],cat[1]);

								if(selectedItems != null){
									for(sIdx = 0; sIdx < selectedItems.length; sIdx++)
									{
										if(opt.value == selectedItems[sIdx])
										{
											opt.selected = true;
											anyOption.selected = false;
											selections['OPT_'+ opt.value] = true;
											selections['OPT_'+ anyOption.value] = false;
										}
									}
								}
								for(var oldSelIdx = 0; oldSelIdx < currentSelections.length; oldSelIdx++)
								{
									if(opt.value == currentSelections[oldSelIdx])
									{
										opt.selected = true;
										anyOption.selected = false;

										selections['OPT_'+ opt.value] = true;
										selections['OPT_'+ anyOption.value] = false;
								
									}
								}

								var add = true; // Check for duplicates
								var optValue = 0;
								var optIndex = 0;
								for(var dupIdx=0; dupIdx < sortedArray.length; dupIdx++)
								{
									if(opt.text == sortedArray[dupIdx].text)
									{
										add = false;

										if(opt.value != sortedArray[dupIdx].value)
										{
											optValue = opt.value;
											optIndex = dupIdx;
										}
										
										break;
									}
								}

								// If the item has the same text but different ids, concatenate
								// the ids into one.
								if (optValue != 0)
								{
									sortedArray[optIndex].value += ',' + opt.value;
								}
								else
								{
									if(add)
										sortedArray[optIdx++] = opt;
								}								
							}	
						}
					}
					else // IS ANY
					{
						//Clear out the search box
						clearCategoryList(parentListId,childListId,false,'Any');
						selectedAll = true;
					}
				}
			}

			var sorted = isSorted[childListId];
			if (sorted == null || sorted)
				sortedArray.sort(sortCategory);

			var finalArray = new Array();
			finalArray[0] = anyOption;

			for(var s=0 ; s < sortedArray.length; s++)
			{
				finalArray[finalArray.length] = sortedArray[s];
			}

			finalArray = removeDuplicates(finalArray);
			
			for(var i =0; i < finalArray.length; i++)
			{
				cList.options[cList.options.length] = finalArray[i];

				var sel = false;
				var arrIds = finalArray[i].value.split(',');

				for(var j=0; j<arrIds.length; j++)
				{
					sel = selections['OPT_'+ arrIds[j]];
					if (sel)
						break;
				}

				SelectItem(childListId,i,sel);
			}
		}

		populateCheckBox(selectedItems, childListId);
	}

	function populateCheckBox(selectedItems, childListId)
	{
		var chkBox = GetObjectByPartName('chkUnspecified' + childListId);

		if (selectedItems != null)
		{
			if(selectedItems.length > 0)
			{		
				if (chkBox != null)
				{
					var chkBoxValues = chkBox.value.split(',');
					for(idx=0; idx<selectedItems.length; idx++)
					{
						for(var j=0; j<chkBoxValues.length; j++)
						{
							if(selectedItems[idx] == chkBoxValues[j].value)
							{
								chkBox.disabled = false;
								chkBox.checked = true;
								break;
							}
							else
								chkBox.disabled = false;
						}
					}
				}
			}
			else
				disableCheckBox(chkBox);
		}
		else
			disableCheckBox(chkBox);
	}

	function disableCheckBox(chkBox)
	{
		if (chkBox != null)
		{
			chkBox.checked = false;
			chkBox.disabled = true;
		}
	}
	function sortCategory(opt1, opt2)
	{
		// Expects 2 option objects
		
		if ( opt1.text.toLowerCase() == opt2.text.toLowerCase() )
			return 0;
		else if( opt1.text.toLowerCase() > opt2.text.toLowerCase())
			return 1;
		else
			return -1;
		
	}
			

	function  ValidateBeforePost()
	{
		submitCounter++;
	var listArray = new Array(6);
	var forceDefault = new Array(6);
	var minSelection = 2;
	var selectedCount = 0;
	var ctrlIdx = 0;
	var kw = '';
	var refineKw = '';
	var selectedJobs = '';
	var qString = '?';
	

	var kwTextBox = document.forms['jobsearch'].elements['Keywords'];
	var selectedItemsList = document.forms['jobsearch'].elements['chkJob'];
	var refineTextBox = document.forms['jobsearch'].elements['refine'];

	if (submitCounter > 1)
	{
		alert('Your request is being processed - please wait.');
		submitCounter--;
		return false; 
	}

	if(kwTextBox != null && kwTextBox.value.toLowerCase() == 'keywords (optional)' )
	{
		kwTextBox.value = '';
	}

	if(kwTextBox != null && kwTextBox.value != '')
	{
		kw = kwTextBox.value;
	}

	if(refineTextBox != null && refineTextBox.value != '')
	{
		refineKw = refineTextBox.value;
	}

	if(selectedItemsList != null && selectedItemsList.value != '')
	{
		for (var i=0; i < selectedItemsList.length; i++)
		{
		if (selectedItemsList[i].checked)
			{
				selectedJobs += selectedItemsList[i].value;
				selectedJobs += ',';
			}
		}
	}

	var dateRangeList = document.getElementById('DateRange');
	if(dateRangeList != null){
		forceDefault[ctrlIdx]  = 0;
		listArray[ctrlIdx++] = dateRangeList;
		
	}
listArray[0] = dateRangeList;

	forceDefault[ctrlIdx]  = '0';
	listArray[ctrlIdx++] = document.getElementById('catlocation');
	forceDefault[ctrlIdx]  = '0';
	listArray[ctrlIdx++] = document.getElementById('catarea');
	forceDefault[ctrlIdx]  = '0';
	listArray[ctrlIdx++] = document.getElementById('catindustry');
	forceDefault[ctrlIdx]  = '0';
	listArray[ctrlIdx++] = document.getElementById('catoccupation');
	var blnlocationChecked = false;
	var chkBoxlocation = GetObjectByPartName('chkUnspecifiedlocation');
	if (chkBoxlocation != null) 
		if (!chkBoxlocation.disabled)
			blnlocationChecked = chkBoxlocation.checked;
	var blnareaChecked = false;
	var chkBoxarea = GetObjectByPartName('chkUnspecifiedarea');
	if (chkBoxarea != null) 
		if (!chkBoxarea.disabled)
			blnareaChecked = chkBoxarea.checked;
	var blnworktypeChecked = false;
	var chkBoxworktype = GetObjectByPartName('chkUnspecifiedworktype');
	if (chkBoxworktype != null) 
		if (!chkBoxworktype.disabled)
			blnworktypeChecked = chkBoxworktype.checked;
	var blnindustryChecked = false;
	var chkBoxindustry = GetObjectByPartName('chkUnspecifiedindustry');
	if (chkBoxindustry != null) 
		if (!chkBoxindustry.disabled)
			blnindustryChecked = chkBoxindustry.checked;
	var blnoccupationChecked = false;
	var chkBoxoccupation = GetObjectByPartName('chkUnspecifiedoccupation');
	if (chkBoxoccupation != null) 
		if (!chkBoxoccupation.disabled)
			blnoccupationChecked = chkBoxoccupation.checked;
	var blnspecialisationChecked = false;
	var chkBoxspecialisation = GetObjectByPartName('chkUnspecifiedspecialisation');
	if (chkBoxspecialisation != null) 
		if (!chkBoxspecialisation.disabled)
			blnspecialisationChecked = chkBoxspecialisation.checked;


		for(var idx=0;idx < listArray.length; idx++)
		{	
			var searchableItems = '';
			var ddList = listArray[idx];
			var doForceDefault = false;
			var countedCategory = false;
			
			if(ddList == null) //suppressed categories will be null so bypass them
				continue;
if (ddList != null)
			{
				for(var k=0; k < ddList.options.length; k++)
				{ 
					var sItems = 0;
					var opt = ddList.options[k];
				
					if(opt.selected && opt.value != '0' && opt.value != '999')
					{
						searchableItems += '&' + ddList.name + '=' + opt.value;
						sItems++;
					
						// for non-zero defaults ensure that any is actually reset
						if(opt.selected && forceDefault[idx] != 0 && opt.value == '0')
						{
							doForceDefault = true;
						}

						if(listArray[idx].name == 'catlocation')
							searchableItems += '&stateselected=true';
					}
					else
					{
						if(opt.selected && ddList.name == 'DateRange' && opt.value == '999')
						{
							qString += '&DateRange=999'; // add it but dont count it
						}
					
					}

					if(sItems > 0 && !countedCategory)
					{
						selectedCount++;
						countedCategory = true;
					}
				}
			}

			if(doForceDefault)
			{
				//qString += '&def' + ddList.name + '=1';
			}
			if(selectedCount > 0)
			{
				qString += searchableItems;
			}
		}
	if(blnlocationChecked)
 { 
	var chkBoxValues = chkBoxlocation.value.split(',')
	for(var j=0; j<chkBoxValues.length; j++)
		qString += '&catlocation=' + chkBoxValues[j];
 } 

	if(blnareaChecked)
 { 
	var chkBoxValues = chkBoxarea.value.split(',')
	for(var j=0; j<chkBoxValues.length; j++)
		qString += '&catarea=' + chkBoxValues[j];
 } 

	if(blnworktypeChecked)
 { 
	var chkBoxValues = chkBoxworktype.value.split(',')
	for(var j=0; j<chkBoxValues.length; j++)
		qString += '&catworktype=' + chkBoxValues[j];
 } 

	if(blnindustryChecked)
 { 
	var chkBoxValues = chkBoxindustry.value.split(',')
	for(var j=0; j<chkBoxValues.length; j++)
		qString += '&catindustry=' + chkBoxValues[j];
 } 

	if(blnoccupationChecked)
 { 
	var chkBoxValues = chkBoxoccupation.value.split(',')
	for(var j=0; j<chkBoxValues.length; j++)
		qString += '&catoccupation=' + chkBoxValues[j];
 } 

		if(selectedCount < minSelection)
		{
			if (minSelection == 3)
				alert('Please select a minimum of three categories before proceeding with your search.');
			else if (minSelection == 2)
				alert('Please select a minimum of two categories before proceeding with your search.');
			else
				alert('Please select at least one category before proceeding with your search.');
			submitCounter--;
			return false;
		}
		else
		{
			
				var page;
				var pIdx = document.URL.indexOf('?');

				if(pIdx >= 0)
				{
					page =  document.URL.substring(0, pIdx);
				}
				else
				{
					page = ('http://jobs.seek.com.au/jobsearch/index.ascx');
				}
				if(kw != '')
				{
					qString += '&Keywords=' + doUriEncode(kw);
				}
				if(refineKw != '')
				{
					qString += '&refine=' + doUriEncode(refineKw);
				}
					qString += '&catversion=2';
					qString += '&comefrom=NULL_CF';					

				if (submitCounter > 1)
				{
					alert('Your request is being processed - please wait.');
					return false; 
				}
				submitCounter++;
				
				document.location = page +  qString + '';
				return false;
		}
	}

	function doUriEncode(uri)
	{
		var isOld = false;

		var bBrowser= navigator.appName;
		var bVersion = navigator.appVersion;
		var encoded = uri;

		if(bBrowser == 'Microsoft Internet Explorer')
		{
			isOld = (bVersion.indexOf('MSIE 5.0') != -1);
		}

		if(isOld)
			encoded = escape(uri);
		else
			encoded = encodeURIComponent(uri);	

		while (encoded.search('\'') != -1)
		{
			encoded = encoded.replace('\'','%27'); //encode single quotes
		}

		while (encoded.search('[\+]') != -1)
		{
			encoded = encoded.replace('+','%2B'); //encode single quotes
		}
		
		return encoded;
	}
	populateClassiferList("catindustry","industry");
	ProcessChildList("industry","occupation");