var IsFormLayout = false;
var vSubjectPinValues = "";
var vRequireds = "";
var vDefaultVals = "";
var preLoading = false;
var okSearch = true;

var selCriteria = document.getElementById('sCriteria').value;
var IE = false;
if (document.all != null)
{
	IE = true;
}
function Init(frm)
{
	var frmMain = document.frmMain;
	if (document.frmMain.selSortBy && document.frmMain.SortBy)
	{
		frmMain.selSortBy.value = frmMain.SortBy.value;
	}
	if (frmMain.selSortDir && frmMain.SortDir)
	{
		frmMain.selSortDir.value = frmMain.SortDir.value;
	}
	if (frmMain.PageSize && frmMain.selPageSize)
	{
		frmMain.selPageSize.value = frmMain.PageSize.value;
	}
	var doc = document.all;
	if (vCriterias != null)
	{
		if (vCriterias.indexOf(vLabels, "--Select--") == -1 && !IsFormLayout)
		{
			vCriterias = "|" + vCriterias;
			vLabels = "--Select--|" + vLabels;
			vTypes = "|" + vTypes;
			vRanges = "|" + vRanges;
			vLovs = "|" + vLovs;
			vMaxs = "|" + vMaxs;
		}
		vCriterias	= vCriterias.split("|");
		vLabels		= vLabels.split("|");
		vTypes		= vTypes.split("|");
		vLandTypes  = vLandTypes.split("|");
		vRanges		= vRanges.split("|");
		vRequireds = vRequireds.split("|");
		vLovs		= vLovs.split("|");
		if (!IsFormLayout)
		{
			vMaxs = vMaxs.split("|");
			if (vTypes && vMaxs)
			{
                for (var i = 0; i < vTypes.length; i++)
                {
                    if (vTypes[i] == "D")
                    {
                        vMaxs[i] = "10";
                    }
                }
            }	
		}
		
		if (vSubjectPinValues!="") {
			vSubjectPinValues = vSubjectPinValues.split("|");
			vDefaultVals = vDefaultVals.split("|");
		}
	}
	DisableButtons(true);
	var groups = document.getElementById('dlGroups');
	if (groups != null && groups.value != "")
	{
		setGroup(groups);
	}
	else
	{
		var len = vCriterias.length;
		var crit = document.getElementById('sCriteria');
		for (i = 0; i < len; i++)
		{
			var opt = new Option();
			opt.value = i;
			opt.text  = vLabels[i];
			if (i == 0)
			{
				opt.selected = true;
				selCriteria = opt.value;
			}
			crit.options[i] = opt;
		}
		document.getElementById('cal1').style.display = "none";
		document.getElementById('cal2').style.display = "none";
		var btAdd = document.getElementById('btAdd');
		if (vCriterias[selCriteria].length == 0)
		{
			btAdd.disabled = true;
		}
		else
		{
			btAdd.disabled = false;
		}
	}
	//added in for comp form layout support support
	preLoading = true;
	
	if (IsFormLayout) {
		LoadFormLayout();
	}
	//added in for CompSubject support
	if (vSubjectPinValues!="" && !searching) {
		
		PreLoadRequiredComps();
	}
	
	preLoading = false;
	
	//set criteria
	if (vLastCriteria.length > 0)
	{
		restoreCriteria(vLastCriteria);
	}

	SetChecked();
	IframeReload(frm);
	
}
function LoadFormLayout() {
	var doc = document.all;
	var len = vCriterias.length;
	
	newCriteriaRow = doc.criteriaRow.cloneNode(true);
	newCriteriaRow2 = doc.criteriaTableBody.appendChild(newCriteriaRow);

	for (i = 0; i < len; i++)
	{
		if (i!=0) {
			newCriteriaRow = doc.criteriaRow[i].cloneNode(true);
			newCriteriaRow2 = doc.criteriaTableBody.appendChild(newCriteriaRow);
		}
		//alert(i);
		setCriteria(i);
		
		if (vRequireds[i]=="Y" && !searching) {
			disableCriteria(i,false);
		}
		else {
			disableCriteria(i,true);
			//if (searching) {
				
			//}
		}
	
	}
	
	newCriteriaRow = doc.criteriaRow[i];
	newCriteriaRow2 = doc.criteriaTableBody.removeChild(newCriteriaRow);
}
function PreLoadRequiredComps() {
	for (i = 0; i < vRequireds.length; i++) {
		if (vRequireds[i]=="Y") {
			document.all.sCriteria.selectedIndex = i;
			setCriteria(i)
			addCriteria();
		}
	}
	document.all.sCriteria.selectedIndex = 0;
	setCriteria(0);
}
function DisableButtons(s)
{
	var doc = document.frmMain;
	var items = document.getElementById("txCriterias");
	doc.btEdit.disabled = s;
	doc.btRemove.disabled = s;
	doc.btRemoveAll.disabled = s;
	if (IsFormLayout == false)
	{
		document.getElementById('btSearch').disabled = s;
	}
}
function chkDisabledStatus(chkObj) {

	disableCriteria(parseInt(chkObj.i),!chkObj.checked);
}

function disableCriteria(i,disableValue) {
	//disableValue true or false
	
	var doc = document.all;
	//var doc = document.frmMain;
	//doc.criteriaRow[i].disabled=disableValue;
	doc.sPrompt[i].disabled=disableValue;
	doc.sPrompt1[i].disabled=disableValue;
	doc.sPrompt2[i].disabled=disableValue;
	doc.txtCrit[i].disabled=disableValue;
	doc.txtCrit2[i].disabled=disableValue;
	doc.cal1[i].disabled=disableValue;
	doc.cal2[i].disabled=disableValue;
	doc.subjectPinVal[i].disabled=disableValue;
	doc.Req[i].disabled=false;
	doc.Req[i].checked=!disableValue;
		
}

function setCriteria(val)
{
	if (val == null)
	{
		return;
	}
	var doc = null; //document.all;
	i = val;
	
	if (IsFormLayout) {
		doc = document.all;
		var elem  = doc.sPrompt[i];
		var elem1 = doc.sPrompt1[i];
		var elem2 = doc.sPrompt2[i];
		var txtCrit = doc.txtCrit[i];
		var txtCrit2 = doc.txtCrit2[i];
		var dvPickList = doc.dvPickList;
		var dvPickList2 = doc.dvPickList2;
		var cal1 = doc.cal1[i];
		var cal2 = doc.cal2[i];
		var subjectPinValLbl = doc.subjectPinVal[i];
		doc.Req[i].i = i;
	}
	else {
		doc = document;
		var elem  = doc.getElementById('sPrompt');
		var elem1 = doc.getElementById('sPrompt1');
		var elem2 = doc.getElementById('sPrompt2');
		var txtCrit = doc.getElementById('txtCrit');
		var txtCrit2 = doc.getElementById('txtCrit2');
		var dvPickList = doc.getElementById('dvPickList');
		var dvPickList2 = doc.getElementById('dvPickList2');
		var cal1 = doc.getElementById('cal1');
		var cal2 = doc.getElementById('cal2');
		var subjectPinValLbl = doc.getElementById('subjectPinVal');
		if (vCriterias[i].length == 0)
		{
			elem.style.display = "none";		
			elem1.style.display = "none";		
			elem2.style.display = "none";		
			txtCrit.style.display = "none";		
			txtCrit2.style.display = "none";		
			dvPickList.style.display = "none";		
			dvPickList2.style.display = "none";		
			cal1.style.display = "none";		
			cal2.style.display = "none";
			document.getElementById('btAdd').disabled = true;
			var items = doc.getElementById('txCriterias');
			if (items.value == null || items.value == "")
			{	
				document.getElementById('btEdit').disabled = true;
				document.getElementById('btRemove').disabled = true;
				document.getElementById('btRemoveAll').disabled = true;
			}
			return;
		}
		else
		{
			selCriteria = val;
			elem.style.display = "block";		
			elem1.style.display = "block";		
			elem2.style.display = "block";		
			txtCrit.style.display = "block";		
			txtCrit2.style.display = "block";		
			dvPickList.style.display = "block";		
			dvPickList2.style.display = "block";		
			cal1.style.display = "block";		
			cal2.style.display = "block";
			document.getElementById('btAdd').disabled = false;
		}
	}
	txtCrit.value = "";
	txtCrit2.value = "";

	if (dvPickList != null)
	{
		dvPickList.style.display = "none";
	}
	if (dvPickList2 != null)
	{
		dvPickList2.style.display = "none";
	}
	cal1.style.display = "none";
	cal2.style.display = "none";
	txtCrit.style.display = "none";
	txtCrit2.style.display = "none";
	elem1.innerHTML = "&nbsp;";
	elem2.innerHTML = "&nbsp;";
	var vType = vTypes[val];
	var vLabel = vLabels[val];
	var vLov = vLovs[val];
	if (vSubjectPinValues) {
		var vSubjectPinValue = vSubjectPinValues[val];
		var vRequired = vRequireds[val];
		var vDefaultVal = vDefaultVals[val];
		if (!IsFormLayout) subjectPinValLbl.innerHTML = "<b>" + vLabel + "</b>: " + vSubjectPinValue;
		else if (IsFormLayout) subjectPinValLbl.innerHTML = "[" + vSubjectPinValue + "]";
	}
	else if (IsFormLayout) subjectPinValLbl.innerHTML = "";
	
	if (vLov!=null && vLov!="") {
		if (vLov.length > 0)
		{
			elem.innerHTML = "&nbsp;";
			elem1.innerHTML = "&nbsp;";
			txtCrit.style.display = "none";
			txtCrit2.style.display = "none";
			fillList(vLov);
			if (vRanges[val] == "Y")
			{
				var selPrompt1 = doc.selPrompt1;
				var selPrompt2 = doc.selPrompt2;
				if (selPrompt1 != null)
				{
					selPrompt1.innerHTML = "Please select from:";
				}
				if (selPrompt2 != null)
				{
					selPrompt2.innerHTML = "Please select to:";
				}
				dvPickList.style.display = "block";
				dvPickList2.style.display = "block";
			}
			else
			{
				dvPickList.style.display = "block";
			}
		}
	}
	else
	{
		switch(vRanges[val])
		{
			case "Y":
				if (!IsFormLayout) {
					elem.innerHTML = "From:";
					elem1.innerHTML = "To:";
				}
				else if (IsFormLayout) {
					elem.innerHTML = vLabel + ":";
					elem1.innerHTML = "From:";
					elem2.innerHTML = "To:";
				}
				txtCrit.style.display = "block";
				txtCrit2.style.display = "block";
				
				if (vSubjectPinValues) {
					if (vType == "D") {
						//dates are from a default value set to today
						txtCrit.value = vDefaultVal;
						d = new Date();
						dMonth = d.getMonth() + 1;
						txtCrit2.value = dMonth + "/" + d.getDate() + "/" + d.getFullYear();
					}
					else if (IsSubjectPinValueGood(vSubjectPinValue) && vDefaultVal.indexOf("%")>0) {
						//percentage range
						vDefaultVal = vDefaultVal.replace(/%/i,"");
						vDefaultVal = parseInt(vDefaultVal);
						vDefaultVal = vDefaultVal * 0.01
						vDefaultValDown = 1 - vDefaultVal;
						vDefaultValUp = 1 + vDefaultVal;

						if (vSubjectPinValue.indexOf(".")>=0) {
							//for numbers with decimals
							n = Number(vSubjectPinValue) * Number(vDefaultValDown);
							n = FormatNum(n,2);
							txtCrit.value = n.toString();
							n = Number(vSubjectPinValue) * Number(vDefaultValUp);
							n = FormatNum(n,2);
							txtCrit2.value = n.toString();					
						}
						else {
							//no decimals, rounded to nearest integer
							vSubjectPinValue = parseInt(vSubjectPinValue);
							txtCrit.value = Math.round(vSubjectPinValue * vDefaultValDown);
							txtCrit2.value = Math.round(vSubjectPinValue * vDefaultValUp);	
						}
					}
					else if (IsSubjectPinValueGood(vSubjectPinValue) && vDefaultVal.indexOf("+")>=0) {
							//normal plus minus  range
							vDefaultVal = vDefaultVal.replace(/\+/i,"");
							vDefaultVal = parseInt(vDefaultVal);
							
							vSubjectPinValue = parseInt(vSubjectPinValue);
							//alert(vDefaultVal);
							txtCrit.value = Math.round(vSubjectPinValue - vDefaultVal);
							txtCrit2.value = Math.round(vSubjectPinValue + vDefaultVal);	
								
					}
					else if (IsSubjectPinValueGood(vSubjectPinValue) && vDefaultVal.indexOf("Y")>=0) {
							//normal plus minus  range
							vDefaultVal = vDefaultVal.replace(/Y/i,"");
							vDefaultVal = parseInt(vDefaultVal);
							var myDate = new Date();
							var vYear = myDate.getFullYear();
							
							vSubjectPinValue = parseInt(vSubjectPinValue);
							//alert(vDefaultVal);
							txtCrit.value = Math.round(vSubjectPinValue - vDefaultVal);
							if (Math.round(vSubjectPinValue + vDefaultVal) > vYear)
								txtCrit2.value = vYear;
							else
								txtCrit2.value = Math.round(vSubjectPinValue + vDefaultVal);	
					}				
					else {
						if (IsSubjectPinValueGood(vSubjectPinValue)) {
							txtCrit.value = vSubjectPinValue;
							txtCrit2.value = vSubjectPinValue;
						}
					}
				}
				
				if (vType == "D")
				{
					if (!IsFormLayout) elem2.innerHTML = "Please use MM/DD/YYYY format";
					cal1.style.display = "block";
					cal2.style.display = "block";
					txtCrit.maxLength  = 10;
					txtCrit2.maxLength = 10;
					if (IsFormLayout) {
						//need to override the calendar js function call to our own
						//so we can deal with the elements as arrays
						cal1.i = i;
						cal1.n = "";
						cal2.i = i;
						cal2.n = "2";
						cal1.onclick = overrideCalendar;
						cal2.onclick = overrideCalendar;
					}
				}
				else
				{
					if (!IsFormLayout)
					{
						var vMax = vMaxs[val];	
						if (vMax.length > 0)
						{
							txtCrit.maxLength  = vMax;
							txtCrit2.maxLength = vMax;
						}
					}
				}
				if (txtCrit.style.display == "block" && !txtCrit.disabled)
				{
					txtCrit.focus();
				}
			break;
			case "N":
			default:
				if (vType == "D")
				{
					if (!IsFormLayout) elem2.innerHTML = "Please use MM/DD/YYYY format";
					cal1.style.display = "block";
				}
				else
				{
					if (!IsFormLayout)
					{
						var vMax = vMaxs[val];	
						if (vMax.length > 0)
						{
							txtCrit.maxLength = vMax;
						}
					}
				}
				if (!IsFormLayout) elem.innerHTML = "Enter " + vLabel + ":";
				else if (IsFormLayout) elem.innerHTML = vLabel + ":";
				txtCrit.style.display = "block";
				if (vSubjectPinValues && IsSubjectPinValueGood(vSubjectPinValue)) {
					txtCrit.value = vSubjectPinValue;
				}
				if (txtCrit.style.display == "block" && !txtCrit.disabled)
				{
					txtCrit.focus();
				}
			break;
		}
	}
	if (txtCrit != null && txtCrit.style.display == "block" && !txtCrit.disabled)
	{
		txtCrit.focus();
	}
}
function IsSubjectPinValueGood(vSubjectPinValue) {
	if (vSubjectPinValue=="N/A" || vSubjectPinValue=="n/a" || vSubjectPinValue=="NO DATA" || vSubjectPinValue=="No Data" || vSubjectPinValue.indexOf("ORA-")>=0) {
		return false;
	}
	else return true;
}

function overrideCalendar() {
	var El = event.srcElement;
	i = El.i;
	n = El.n;
	txtEl = document.all.item('txtCrit'+n);
	txtEl = txtEl[parseInt(i)];
	//alert(txtEl);
	fPopCalendar(El,txtEl);
	return false;
	
}
function addCriteria()
{
	var doc = null;
	var items = document.getElementById('txCriterias');

	if (IsFormLayout) {
		//alert(i);
		doc = document.all;
		var elem  = doc.sPrompt[i];
		var elem1 = doc.sPrompt1[i];
		var elem2 = doc.sPrompt2[i];
		var txtCrit = doc.txtCrit[i];
		var txtCrit2 = doc.txtCrit2[i];
		var dvPickList = doc.dvPickList;
		var cal1 = doc.cal1[i];
		var cal2 = doc.cal2[i];
		var subjectPinValLbl = doc.subjectPinVal[i];
		selCriteria = i;
	}
	else {
		doc = document;
		var elem  = doc.getElementById('sPrompt');
		var elem1 = doc.getElementById('sPrompt1');
		var elem2 = doc.getElementById('sPrompt2');
		var txtCrit = doc.getElementById('txtCrit');
		var txtCrit2 = doc.getElementById('txtCrit2');
		var dvPickList = doc.getElementById('dvPickList');
		var cal1 = doc.getElementById('cal1');
		var cal2 = doc.getElementById('cal2');
		var subjectPinValLbl = doc.getElementById('subjectPinVal');
	}
	txtCrit.value  = trim(txtCrit.value);
	txtCrit2.value = trim(txtCrit2.value);
	if (stripSpaces == "Y")
	{
		txtCrit.value  = txtCrit.value.replace(/\s+/g," ");
		txtCrit2.value  = txtCrit2.value.replace(/\s+/g," ");
	}
	var txtCritVal  = txtCrit.value.toUpperCase();
	var txtCrit2Val = txtCrit2.value.toUpperCase();
	var opt = findOption(selCriteria);
	
	var found = 1;
	if (opt == null)
	{
		found = 0;
		opt = new Option();
		opt.value = selCriteria;
	}
	var vRange = vRanges[selCriteria];
	var vType  = vTypes[selCriteria];
	var vLov   = vLovs[selCriteria];
	if (vLov!=null && vLov!="") {
		if (vLov.length > 0)
		{
			if (vRange == "Y")
			{
				opt.text = vLabels[selCriteria] + ":" + doc.getElementById('sPickList').value + "-" + doc.getElementById('sPickList2').value;
			}
			else
			{
				opt.text = vLabels[selCriteria] + ":" + doc.getElementById('sPickList').value;
			}
		}
	}
	else
	{
		switch(vRange)
		{
			case "Y":
				if (vType == "L")
				{
					txtCritVal = doc.sPickList.value;
				}
				else if (txtCritVal.length == 0)
				{
					if (!preLoading) {
						okSearch = false;
						alert("Please enter a value for " + vLabels[selCriteria]);
						txtCrit.focus();
					}
					return false;
				}
				if (vType == "N")
				{
					txtCritVal = txtCritVal.replace(/\s+|,+/g,"");
					if (isNaN(parseFloat(txtCritVal)))
					{
						if (!preLoading) {
							okSearch = false;
							alert("Please enter a numeric value for " + vLabels[selCriteria]);
							txtCrit.focus();
						}
						return;
					}
					else
					{
						var tmp = parseFloat(txtCritVal);
						txtCritVal = tmp;
					}
				}
				if (vType == "D")
				{
					if (checkDate(txtCritVal) == 0)
					{
						if (!preLoading) {
							okSearch = false;
							alert("Please enter a correct date for " + vLabels[selCriteria]);
							txtCrit.focus();
						}
						return;
					}
				}
				if (vType == "L")
				{
					txtCrit2Val = doc.sPickList2.value;
				}
				else if (txtCrit2Val.length == 0)
				{
					if (!preLoading) {
						okSearch = false;
						alert("Please a enter value for " + vLabels[selCriteria]);
						txtCrit2.focus();
					}
					return;
				}
				if (vType == "N")
				{
					txtCrit2Val = txtCrit2Val.replace(/\s|,+/g,"");
					if (isNaN(parseFloat(txtCrit2Val)))
					{
						if (!preLoading) {
							okSearch = false;
							alert("Please enter a numeric value for " + vLabels[selCriteria]);
							txtCrit2.focus();
						}
						return;
					}
					else
					{
						var tmp = parseFloat(txtCritVal);
						txtCritVal = tmp;
					}
				}
				if (vType == "D")
				{
					if (checkDate(txtCrit2Val) == 0)
					{
						if (!preLoading) {
							okSearch = false;
							alert("Please enter a correct date for " + vLabels[selCriteria]);
							txtCrit2.focus();
						}
						return;
					}
				}
				opt.text = vLabels[selCriteria] + ":" + txtCritVal + "-" + txtCrit2Val;
			break;
			case "N":
			default:
				if (txtCritVal.length == 0)
				{
					if (!preLoading) {
						okSearch = false;
						alert("Please enter a value for " + vLabels[selCriteria]);
						txtCrit.focus();
					}
					return;
				}
				if (vType == "N")
				{
					txtCritVal = txtCritVal.replace(",", "");
					if (isNaN(parseFloat(txtCritVal)))
					{
						if (!preLoading) {
							okSearch = false;
							alert("Please enter a numeric value for " + vLabels[selCriteria]);
							txtCrit.focus();
						}
						return;
					}
				}
				if (vType == "D")
				{
					if (checkDate(txtCritVal) == 0)
					{
						if (!preLoading) {
							okSearch = false;
							alert("Please enter a correct date for " + vLabels[selCriteria]);
							txtCrit.focus();
						}
						return;
					}
				}
				opt.text = vLabels[selCriteria] + ":" + txtCritVal;
			break;
		}
	}
	
	if (found == 0)
	{
		var len = items.length;
		items.options[len] = opt;
		items.value = opt.value;
	}
	DisableButtons(false);
	criteriaSelected(items);
}
function editCriteria()
{
	var doc = document;
	var items = doc.getElementById('txCriterias');
	if (items.value == null || items.value == "")
	{	
		alert("Please select criteria to edit");
		return;
	}
	var elem  = doc.getElementById('sPrompt');
	var elem1 = doc.getElementById('sPrompt1');
	var elem2 = doc.getElementById('sPrompt2');
	var txtCrit = doc.getElementById('txtCrit');
	var txtCrit2 = doc.getElementById('txtCrit2');
	var dvPickList = doc.getElementById('dvPickList');
	var dvPickList2 = doc.getElementById('dvPickList2');
	var sPickList = doc.getElementById('sPickList');
	var sPickList2 = doc.getElementById('sPickList2');
	selCriteria = items.value;
	txtCrit.value = "";
	txtCrit2.value = "";
	var cal1 = doc.getElementById('cal1');
	var cal2 = doc.getElementById('cal2');
	
	dvPickList.style.display = "none";
	dvPickList2.style.display = "none";
	cal1.style.display = "none";
	cal2.style.display = "none";
	txtCrit.style.display = "none";
	txtCrit2.style.display = "none";
	elem1.innerHTML = "&nbsp;";
	elem2.innerHTML = "&nbsp;";
	var tmp = "";
	var ind = -1;
	var tmp = items.options[items.selectedIndex].text;
	var val = items.value;
	ind = tmp.indexOf(":");
	if (ind != -1)
	{
		tmp = tmp.substr(ind + 1);
	}
	doc.getElementById('sCriteria').value = val;
	
	if (vSubjectPinValues) {
		var vLabel = vLabels[val];
		var vSubjectPinValue = vSubjectPinValues[val];
		subjectPinVal.innerHTML = "<b>" + vLabel + "</b>: " + vSubjectPinValue;
	}
	
	selCriteria = val;
	if (items.length == 0)
	{
		DisableButtons(true);
	}
	else
	{
		document.getElementById('btAdd').disabled = false;
	}
	var vRange = vRanges[val];
	var vType  = vTypes[val];
	var vLov   = vLovs[val];
	if (vLov.length > 0)
	{
		fillList(vLov);
		if (vRange == "Y")
		{
			var delim = tmp.indexOf(" ");
			if (delim == -1)
			{
				delim = tmp.indexOf("-");
			}
			if (delim == -1)
			{
				return;
			}
			elem.innerHTML = "&nbsp;";
			elem1.innerHTML = "&nbsp;";
			var selPrompt1 = doc.getElementById('selPrompt1');
			var selPrompt2 = doc.getElementById('selPrompt2');
			if (selPrompt1 != null)
			{
				selPrompt1.innerHTML = "Please select from:";
			}
			if (selPrompt2 != null)
			{
				selPrompt2.innerHTML = "Please select to:";
			}
			txtCrit.style.display = "none";
			txtCrit2.style.display = "none";
			sPickList.value = tmp.substr(0, delim);
			sPickList2.value = tmp.substr(delim + 1);
			dvPickList.style.display = "block";
			dvPickList2.style.display = "block";
		}
		else
		{
			elem.innerHTML = "&nbsp;";
			txtCrit.style.display = "none";
			dvPickList.style.display = "block";
			document.getElementById('sPickList').value = tmp;
		}
	}
	else
	{
		switch(vRange)
		{
			case "Y":
				var delim = tmp.indexOf(" ");
				if (delim == -1)
				{
					delim = tmp.indexOf("-");
				}
				if (delim == -1)
				{
					return;
				}
				elem.innerHTML = "From:";
				elem1.innerHTML = "To:";
				elem.style.display="block";
				elem1.style.display="block";
				txtCrit.style.display = "block";
				txtCrit2.style.display = "block";
				if (vType == "D")
				{
					elem2.innerHTML = "Please use MM/DD/YYYY format";
					cal1.style.display = "block";
					cal2.style.display = "block";
				}
				txtCrit.value  = tmp.substr(0, delim);
				txtCrit2.value = tmp.substr(delim + 1);
				txtCrit.style.display = "block";
				txtCrit2.style.display = "block";
				var vMax = vMaxs[val];
				txtCrit.maxLength  = vMax;
				txtCrit2.maxLength = vMax;
			break;
			case "N":
				elem.innerHTML = "Enter " + vLabels[val] + ":";
				elem.style.display="block";
				txtCrit.value = tmp;
				txtCrit.style.display = "block";
				var vMax = vMaxs[val];
				txtCrit.maxLength  = vMax;
			default:
			break;
		}
	}
}
function removeAll()
{
	var doc = document;
	var items = doc.getElementById('txCriterias');
	items.length = 0;
	doc.getElementById('sCriteria').value = 0;
	if (!IsFormLayout) setCriteria(0);
	DisableButtons(true);
}
function removeOne()
{
	var items = document.getElementById('txCriterias');
	var ind = items.selectedIndex;
	if (ind == -1)
	{
		alert("Please select criteria to remove");
		return;
	}
	items.options[ind] = null;
	if (items.length == 0)
	{
		DisableButtons(true);
	}
}
function startSearch()
{
	okSearch = true;
	if (IsFormLayout) {
		removeAll();
		
	}
	makeCriteria();
	
	document.getElementById('hdSearchType').value = "AdvSearch";
	if (okSearch) 
	{
		var s = document.frmMain.action;
		var p = "mod=LastSearch";
		var i = s.indexOf(p);
		if (i != -1)
		{
			var t = s.substr(i - 1, p.length + 1);
			s = s.replace(t, "");
		}
		document.frmMain.action = s;
		document.frmMain.submit();
	}
	return false;
}
function makeCriteria()
{

	var dc = document.all;

	var criteria = "";
	var name = "";
	
	//if form layout, we need go through all criteria
	//and add it first
	if (IsFormLayout) {
		
		for (i = 0; i < dc.criteriaRow.length; i++) {
			if (dc.Req[i].checked) {
				//alert(i);
				addCriteria();
			}
		}
		
	}
	
	var doc = document.getElementById('txCriterias');
	var len = doc.length;
	
	//alert(len);
	for (i = 0; i < len; i++)
	{
		if (i > 0)
		{
			criteria += "|";
		}
		var opt = doc.options[i];
		criteria += vCriterias[opt.value];
		name = vCriterias[opt.value];
		criteria += "|";
		var ind = opt.text.indexOf(":");
		if (ind != -1)
		{
			var tmp = opt.text.substr(ind + 1);
			criteria += tmp;
		}
	}
	getHidden("hdCriteria").value = criteria;
	return criteria;
}
function pickDate(el)
{
	var val = el.value;
	var x = parseInt(event.x) + 2;
	var y = parseInt(event.y) + 100;
	var pos = " dialogLeft: " + x + "; dialogTop: " + y + "; ";
	var ret = window.showModalDialog("../Common/calendar.htm", val, DLG_CALENDAR + pos);
	if (ret)
	{
		el.value = ret;
	}
	return ret;
}
function restoreCriteria(vCriteria)
{
	var items = vCriteria.split("|");
	var len = items.length;
	for (i = 0; i < len; i++)
	{
		if ((i % 2) == 1)
		{
			var j = findCriteria(items[i - 1]);
			if (j == -1)
			{
				continue;
			}
			var opt = new Option();
			opt.value = j;
			var text = items[i];
			opt.text = vLabels[j] + ":" + text;
			document.getElementById('txCriterias').options[(i - 1)/2] = opt;
			
			//added in to enable and restore users
			//saved stuff to the form
			if (IsFormLayout) {
				disableCriteria(j,false);
				//its enabled now set the correct values too
				SetFormLayoutValue(j,text);
			}
			
		}
	}
	DisableButtons(false);
}
function SetFormLayoutValue(val,text) {
	var doc = document.all;
	if (text.indexOf("-")>0) {
		textAr = text.split("-");
		doc.txtCrit[val].value = textAr[0];
		doc.txtCrit2[val].value = textAr[1];
	}
	else doc.txtCrit[val].value = text;
}

function findOption(val)
{
	var result = null;
	var doc = document.getElementById('txCriterias');
	var len = doc.length;
	for (var i = 0; i < len; i++)
	{
		if (doc.options[i].value == val)
		{
			result = doc.options[i];
			break;
		}
	}
	return result;
}
function findCriteria(val)
{
	var result = -1;
	var len = vCriterias.length;
	for (var i = 0; i < len; i++)
	{
		if (vCriterias[i] == val)
		{
			result = i;
			break;
		}
	}
	return result;
}
var vMonth = new Array('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
function formatDate(val)
{
	var result = "";
	var dates = val.split("-");
	var aDate;
	var month;
	aDate = dates[0].split("/");
	result = aDate[0] + "-" + vMonth[parseInt(aDate[1], 10) - 1] + "-"  + aDate[2] + " ";
	aDate = dates[1].split("/");
	result += aDate[0] + "-" + vMonth[parseInt(aDate[1], 10) - 1] + "-" + aDate[2];
	return result;
}
var DLG_SALESLIST = "center:yes; dialogHeight:260px; dialogWidth:500px; help:no; resizable:no; status:no; title:no";

function frmMainSubmit(action)
{
/*
	var owner = document.all.OwnerName;
	if (owner == null)
	{
		alert("Field 'OwnerName' not found")
		return;
	}
	var val = owner.value;
	val = trim(val);
	var ch = "";
	var minLen = 2;
	if (val.length > 0)
	{
		ch = val.substr(val.length - 1, 1);
		val = replaceAll(val, "%", "");
		val = replaceAll(val, "*", "");
		if (ch == "*")
		{
			val += ch;
			++minLen;
		}
	}
	document.all.OwnerName.value = val;
	if (val.length <  minLen)
	{
		alert("Please enter at least 2 symbols in owner name");
		document.all.OwnerName.focus();
		return false;
	}
*/	
	document.frmMain.hdAction.value = action;
	document.frmMain.submit();
	return false;
}	
function loadQuery(val)
{
//	var doc = document.all.ddQueries;
	removeAll();
	restoreCriteria(val);
	getHidden("hdCriteria").value = val;
//	document.all.hdCriteria.value = val;
//	document.all.hdSelectedQuery.value = doc.options[doc.selectedIndex].text;
}
var DLG_SAVE_QUERY = "center:yes; dialogHeight:320px; dialogWidth:440px; help:no; resizable:yes; status:no;";

function saveCriteria(sType)
{
	var criteria = makeCriteria();
	var url = "../Search/SaveQuery.aspx?frameset=1&criteria=" + criteria + '&Type=' + sType;
	var ret = window.showModalDialog(url, null, DLG_SAVE_QUERY);
	if (ret != null)
	{
		loadQuery(ret);
	}
}

function deleteQuery()
{
	var doc = document.all.ddQueries;
	if (doc.value == "0")
	{
		return;
	}
	if (!confirm("Delete this query?"))
	{
		return;
	}
	document.all.hdName.value = doc.options[doc.selectedIndex].text;
	document.all.hdAction.value = "DeleteQuery";
	document.frmMain.submit();
}
function changeOrder(el)
{
	document.frmMain.SortBy.value = el.value;
}
function changeDir(el)
{
	document.frmMain.SortDir.value = el.value;
}
function changeYear(el)
{
	document.frmMain.hdTaxYear.value = el.value;
	return;
	var items = document.frmMain.txCriterias;
	var opts = items.options;
	for (var i = 0; i < opts.length; i++)
	{
		var opt = opts[i];
		if (opt.text.indexOf("Tax Year:") != -1)
		{
			opt.text = "Tax Year:" + el.value;
			break;
		}
	}
}
function getMonth(val)
{
	var len = aMonth.length;
	val = val.toUpperCase();
	for (var i = 0; i < len; i++)
	{
		var m = aMonth[i];
		if (m == val) 
		{
			return i + 1;
		}
	}
}
function getHidden(name)
{
	var field = "";
	if (vCtlID != null && vCtlID.length > 0)
	{
		field = vCtlID + "_";
	}
	return document.getElementById(field + name);
}
function checkDate(val)
{
	if (val == null)
	{
		return 0;
	}
	if (val.length < 10)
	{
		return 0;
	}
	var s = val.split('/');
	if (s.length < 3)
	{
		return 0;
	}
	var m = parseInt(s[0], 10);
	var d = parseInt(s[1], 10);
	var y = parseInt(s[2], 10);
	if (isNaN(d) || isNaN(m) || isNaN(y))
	{
		return 0;
	}
	if (m > 12 || d > 31)
	{
		return 0;
	}
	if ((m == 4 || m == 6 || m == 9 || m == 11) && d > 30)
	{
		return 0;
	}
	if (m == 2 && d > 29)
	{
		return 0;
	}
	if ((y % 4) == 0 && m == 2 && d > 28)
	{
		return 0;
	}
	return 1;	
}
function fillList(name)
{
	var sel = document.getElementById('sPickList');
	var sel2 = document.getElementById('sPickList2');
	var pars = SoapBuildInputParam("LovName", name);
	var result = SoapInvokeService("../Search/Services/SearchServices.asmx", "GetLov", pars, false);
	if (result.length == 0)
	{
		sel.options.length = 0;
		sel2.options.length = 0;
		return;
	}
	if (IE == true)
	{
		var newDoc = new ActiveXObject("Microsoft.XMLDOM");
		newDoc.async = false;
		newDoc.loadXML(result);
		var root = newDoc.documentElement;
		if (root.hasChildNodes() == false)
		{
			return;
		}
		var list = root.selectNodes("//ROW");
		sel.options.length = 0;
		sel2.options.length = 0;
		var j = 0;
		for ( var i = 0; i < list.length; i++)
		{
			var node = list[i];
			var val  = node.getAttribute("id");
			var tmp  = "," + val + ",";
			if (name== "JUR" && jurIDs.length > 0 && jurIDs.indexOf(tmp) == -1)
			{
				continue;
			}
			var lovName = node.selectSingleNode("MSG").text;
			var opt = new Option();
			var opt2 = new Option();
			opt.value = val;
			opt.text  = lovName;
			opt2.value = val;
			opt2.text  = lovName;
			if (sel.options.length == 0)
			{
				opt.selected = true;
				opt2.selected = true;
			}
			sel.options[j] = opt;
			sel2.options[j++] = opt2;
		}
	}
	else
	{
		var parser = new DOMParser();
		var xmlDoc = parser.parseFromString(result,"text/xml");
		var nodes = xmlDoc.getElementsByTagName('ROW');
		sel.options.length = 0;
		sel2.options.length = 0;
		var j = 0;
		for (var i = 0; i < nodes.length; i++)
		{
			var node = nodes[i];
			var val = node.getAttribute('id');
			var lovName = node.firstChild.firstChild.nodeValue;
			var tmp  = "," + val + ",";
			if (name== "JUR" && jurIDs.length > 0 && jurIDs.indexOf(tmp) == -1)
			{
				continue;
			}
			var opt = new Option();
			var opt2 = new Option();
			opt.value = val;
			opt.text  = lovName;
			opt2.value = val;
			opt2.text  = lovName;
			if (sel.options.length == 0)
			{
				opt.selected = true;
				opt2.selected = true;
			}
			sel.options[j] = opt;
			sel2.options[j++] = opt2;
		}
	}
}
function setGroup(el)
{
	var pars = SoapBuildInputParam("searchType", "ADVANCED");
	pars    += SoapBuildInputParam("group", el.value);
	var xml = SoapInvokeService("../Search/Services/SearchServices.asmx", "GetSearchCriterias", pars, false);
	var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
	xmlDoc.loadXML(xml);
	var root = xmlDoc.documentElement;
	var nodes = root.selectNodes("CRITERIA");
	var crit = document.getElementById('sCriteria');
	crit.options.length = 0;
	var opt = new Option();
	opt.value = "";
	opt.text = "--Select--";
	opt.selected = true;
	selCriteria = opt.value;
	setCriteria(0);
	crit.options[0] = opt;
	var k = 1;
	for (var i = 0; i < nodes.length; i++)
	{
		var node = nodes[i];
		var val = node.selectSingleNode("FIELD_NAME").text;
		var j = findCriteria(val);
		if (j >= 0)
		{
			var opt = new Option();
			opt.value = j;
			opt.text  = vLabels[j];
			crit.options[k++] = opt;
		}
	}
}
function criteriaSelected(el)
{
	document.getElementById('btEdit').disabled = false;
	document.getElementById('btRemove').disabled = false;
	document.getElementById('btRemoveAll').disabled = false;
}

