function TestOrderReason()
{
	var testOrder = document.getElementById("max:AccuData_CTL_ADSForm:0:TestOrder");
	var reason = document.getElementById("max:AccuData_CTL_ADSForm:0:TestOrderReason");
	if (testOrder != null && reason != null)
	{
		if (testOrder.checked)
			reason.disabled = false;
		else
			reason.disabled = true;
	}
}

function EnableDisableSOSHoldReason ()
{
	var form = document.getElementById("max:AccuData_CTL_ADSForm");
	var elem = null;
	for (var i = 0; i < form.elements.length; i++)
	{
		elem = form.elements[i];
		if (elem != null && elem.id == "max:AccuData_CTL_ADSForm:0:SOSReleaseState" && elem.value == "0" && elem.checked)
		{
			var reason = document.getElementById("max:AccuData_CTL_ADSForm:0:SOSReleaseHoldReason");
			if (reason != null)
				reason.disabled = false;
		}
		else if (elem != null && elem.id == "max:AccuData_CTL_ADSForm:0:SOSReleaseState" && elem.value == "1" && elem.checked)
		{
			var reason = document.getElementById("max:AccuData_CTL_ADSForm:0:SOSReleaseHoldReason");
			if (reason != null)
				reason.disabled = true;
		}
	}
}

function clearGridEntries (obj)
{
	var input;
	var inputs = document.getElementsByTagName('input');
	for(var k=0; k < inputs.length; k++) 
    {   
        input = inputs[k];
        if (input.type !== 'text')
	    	continue; 

		input.value = '';
	}
	 _doPostBack(obj); 
}

function validateGridEntries(obj, type)
{
	var elm; // element
	var idx; // index
	var inp; // input
	var rgx; // regex
	var suc; // success?
	var vld = true; // valid?

	if (!type)
		return false;

	switch (type.toLowerCase())
	{
		case 'scf':
			rgx = new RegExp( /^\d{3}$/ );
		break;
		case 'county':
			rgx = new RegExp( /^[a-zA-Z]{2}[0-9]{3}$/ );
		break;
		case 'msa':
			rgx = new RegExp( /^\d{4}$/ );
		break;
		case 'zip5':
			rgx = new RegExp( /^\d{5}$/ );
		break;
	}

	if (rgx)
	{
		inp = document.getElementsByTagName('input');
		if (!inp)
			return false;

		for (idx = 0; idx < inp.length; idx++)
		{
			elm = inp[idx];
			if ((!elm) || (elm.type !== 'text') || (elm.value.length < 1))
				continue;

			suc = rgx.test(elm.value);
			if (suc)
				ADSResetTextFieldAlert(elm);
			else
			{
				vld = false;
				ADSSetTextFieldAlert(elm);
			}
		}
	}

	if (!vld)
	{
		alert('Some fields are not in the correct format. Please verify all values.');
		return false;
	}

	_doPostBack(obj);
}

function ADSSetTextFieldAlert(inputField)
{
	inputField.style.backgroundColor = '#F8CBBE';
	inputField.style.color = '#000000';
}

function ADSResetTextFieldAlert(inputField)
{
	inputField.style.backgroundColor = '#FFFFFF';
	inputField.style.color = '#000000';
}

function ADSValidateLookupBox (obj)
{
	var box = document.getElementById("max:AccuData_CTL_ADSForm:0:SearchTerm");
	var re = /^[a-zA-Z0-9 ]*$/;
	if (box.value !== '' && !re.test(box.value))
	{
		alert("Please enter a valid search term.");
		ADSSetTextFieldAlert(box);
		return false;
	}	
	_doPostBack(obj);
	return true;
}

function ADSLookupUpdateSearchTerms (obj, term, state)
{
	var box = document.getElementById("max:AccuData_CTL_ADSForm:0:SearchTerm");
	var stateDD = document.getElementById("max:AccuData_CTL_ADSForm:0:State");
	box.value = term;
	for(var k=0; k < stateDD.options.length; k++) 
    {
		if(stateDD.options[k].value === state)
		{
			stateDD.options[k].selected = true;
		}
		else
		{
			stateDD.options[k].selected = false;
		}		
	}
	_doPostBack(obj);
	return true;
}

function _selectLookupItems(name,value)
{
	var nodes = document.getElementsByTagName("INPUT");
	for(var x = 0; x < nodes.length; x++)
	{
		if(nodes[x].getAttribute("name")== name)
			nodes[x].checked = value;
	}
}

function _selectLookupItems(value)
{
	var nodes = document.getElementsByTagName("INPUT");
	for(var x = 0; x < nodes.length; x++)
		if(nodes[x].getAttribute("id") != "disabled")
			nodes[x].checked = value;
}

function SetAutoRelease(obj)
{
	var form = document.getElementById("max:AccuData_CTL_ADSForm");
	var elem = null;
	for (var i = 0; i < form.elements.length; i++)
	{
		elem = form.elements[i];
		if (elem != null && elem.id == "max:AccuData_CTL_ADSForm:0:SOSReleaseState" && elem.value == "1" && obj == 1)
			elem.disabled = true;
		else if (elem != null && elem.id == "max:AccuData_CTL_ADSForm:0:SOSReleaseState" && elem.value == "1" && obj == 0)
			elem.disabled = false;
	}
}

function CCInit()
{
	var currentMonth = new Date().getMonth();
	var currentYear = new Date().getYear();
	currentMonth++;
	if (currentMonth > 12)
	{
		currentMonth = 1;
		currentYear++;
	}
	var f1 = document.getElementById("max:AccuData_CTL_ADSForm:0:CCExpMonth");
	var f2 = document.getElementById("max:AccuData_CTL_ADSForm:0:CCExpYr");
	if (f1 != null && f2 != null)
	{
		f1.value = currentMonth;
		f2.value = currentYear;
	}
}

function DoPostBack_2 ()
{
	_doPostBack(document.getElementById("PostBack"));
}

function MyServiceNavigation(page)
{
	var CurrentPath = window.location.pathname;
	var CurrentPage = CurrentPath.substring(CurrentPath.lastIndexOf('/') + 1);
	var NavPath = "";

	switch(page)
	{
		case "MyCounts":
		case "MySubscriptions":
		case "MyArchivedCounts":
		case "AccudataDataServices":
		case "MyAccount":
			NavPath = page + ".max";
			break;
		case "MyOrders":
			NavPath = "DownloadOrder.max";
			break;
		case "Admin":
			NavPath = "Administration.max";
			break;
	}

	if(CurrentPage.substring(0,2).toLowerCase() !== "my" &&
		CurrentPage.toLowerCase() !== "loadsavedcount.max" &&
		CurrentPage.toLowerCase() !== "countdetail.max" &&
		CurrentPage.toLowerCase() !== "archivedreport.max" &&
		CurrentPage.toLowerCase() !== "legacyreport.max" &&
		CurrentPage.toLowerCase() !== "downloadorder.max" &&
		CurrentPage.toLowerCase() !== "accudatadataservices.max" &&
		CurrentPage.toLowerCase() !== "administration.max")
	{ 
		if (confirm("You are about to leave the current wizard.\nAll selections will be lost.\nDo you wish to continue?"))
			window.location= NavPath + "?Page=" + page;
		else
			return false;
	}
	else
		window.location= NavPath + "?Page=" + page;
}

function SetRecordCountOptions()
{
	var stop = false;
	var form = document.getElementById("max:AccuData_CTL_ADSForm");
	var elem;
	for (var i = 0; i < form.elements.length; i++)
	{
		elem = form.elements[i];
		switch (elem.id)
		{
			case "max:AccuData_CTL_ADSForm:0:RequestOption":
				switch(elem.value)
				{
					case "STOP":
						stop = elem.checked;
						break;
				}
			break;
		}
	}

	var stopCount = document.getElementById("max:AccuData_CTL_ADSForm:0:StopCount");
	var totalRecords = 	document.getElementById("max:AccuData_CTL_ADSForm:0:TotalRecords").value;
	if (stop)
	{
		stopCount.disabled = false;
		stopCount.className = "EnabledInput";
		if (Trim(stopCount.value) === "")
		{
			if (totalRecords !== null)
				stopCount.value = totalRecords;		
		}
	}
	else
	{
		stopCount.value = "";
		stopCount.disabled = true;
		stopCount.className = "DisabledInput";
	}
}

function Trim(str)
{
	return (str === null ? "" : str.replace(/^\s*|\s*$/g,""));
}

function GetSubTotal ()
{
	var inputs = document.getElementsByTagName('input');
	var total = 0;
	var input;
	for(var k=0; k < inputs.length; k++) 
    { 		
		input = inputs[k];	
        if (input.name.indexOf('SelectedQty') >= 0)
			total = (+total) + (+input.value);
	}
	document.getElementById('max:AccuData_CTL_ADSForm:0:TotalSelectedRecords').value = total;
	return true;
}

function ValidateNthCount(ParentQty, obj)
{
	var re = /^\d+$/;
	if(!re.test(obj.value))
	{
		alert("Non integer values are not allowed.");
		ADSSetTextFieldAlert(obj);
		return false;
	}
	else
	{ ADSResetTextFieldAlert(obj); }
	
	if(obj.value > ParentQty)
	{
		alert("The quantity entered is greater than the available quantity.");
		ADSSetTextFieldAlert(obj);
		return false;	
	}
	else
	{ ADSResetTextFieldAlert(obj); }
	
	return true;	
}

function SetPaymentOptions()
{
	var form = document.getElementById("max:AccuData_CTL_ADSForm");
	var elem = null;
	for (var i = 0; i < form.elements.length; i++)
	{
		elem = form.elements[i];
		switch (elem.id)
		{
			case "max:AccuData_CTL_ADSForm:0:PaymentType":
			switch(elem.value)
			{
				case "SUBSCRIPTION":
					if (elem.checked)
						document.getElementById("max:AccuData_CTL_ADSForm:0:SubscriptionID").disabled = false;
					else
						document.getElementById("max:AccuData_CTL_ADSForm:0:SubscriptionID").disabled = true;
					if (elem.checked)	
						SetAutoRelease(0);
				break;
				case "CREDIT_CARD":
					if (elem.checked)
						document.getElementById("newCreditCard").style.display="block";
					else
						document.getElementById("newCreditCard").style.display = "none";
					if (elem.checked)	
						SetAutoRelease(0);
				break;
				case "NET_TERMS":
					if (elem.checked)	
						SetAutoRelease(0);
				break;
				case "SOS":
					if (elem.checked)	
						SetAutoRelease(1);
				break;
			}
			break;
		}
	}
}

function OrderPlaceOrderCCInit()
{
	var currentMonth = new Date().getMonth();
	var currentYear = new Date().getYear();
	currentMonth++;
	if (currentMonth > 12)
	{
		currentMonth = 1;
		currentYear++;
	}
	var f1 = document.getElementById("max:AccuData_CTL_ADSForm:0:CCExpMonth");
	var f2 = document.getElementById("max:AccuData_CTL_ADSForm:0:CCExpYr");
	if (f1 != null && f2 != null)
	{
		f1.value = currentMonth;
		f2.value = currentYear;
	}
}

function textLimit(obj, maxlen, wording) 
{
	if (wording.length > 0 && obj.value.length > maxlen + 1)
		alert(wording + ' are limited to ' + maxlen + ' characters.');
	else if (obj.value.length > maxlen + 1)
		alert('Descriptions are limited to ' + maxlen + ' characters.');
	if (obj.value.length > maxlen)
		obj.value = obj.value.substring(0, maxlen);
}

function ExpandCollapseInternet()
{
	var InternetDeliveryExpandBox = document.getElementById("max:AccuData_CTL_ADSForm:0:InternetDeliveryExpandBox");
	var InternetLink = document.getElementById("InternetLink");
	var ShowInternetA = document.getElementById("ShowInternetA");
	var ShowInternetB = document.getElementById("ShowInternetB");
	if (InternetDeliveryExpandBox.value == 1)
	{	
		ShowInternetA.style.display="none";
		ShowInternetB.style.display="none";	
		InternetLink.src = "images/plus.gif";		
		InternetDeliveryExpandBox.value = 0;
	}
	else
	{

		ShowInternetA.style.display="block";
		ShowInternetB.style.display="block";
		InternetLink.src = "images/minus.gif";
		InternetDeliveryExpandBox.value = 1;
	}
}

function ExpandCollapseLayout ()
{
	var LayoutExpandBox = document.getElementById("max:AccuData_CTL_ADSForm:0:LayoutExpandBox");
	var LayoutLink = document.getElementById("LayoutLink");
	var ShowLayoutA = document.getElementById("ShowLayoutA");
	var ShowLayoutB = document.getElementById("ShowLayoutB");
	if (LayoutExpandBox.value == 1)
	{	
		ShowLayoutA.style.display="none";
		ShowLayoutB.style.display="none";	
		LayoutLink.src = "images/plus.gif";		
		LayoutExpandBox.value = 0;
	}
	else
	{

		ShowLayoutA.style.display="block";
		ShowLayoutB.style.display="block";
		LayoutLink.src = "images/minus.gif";
		LayoutExpandBox.value = 1;
	}
}

function populateSaveAsBox (obj)
{
	var layoutText = null;	
	var selectBox = document.getElementById("max:AccuData_CTL_ADSForm:0:LayoutToModify");
	if (selectBox != null)
		layoutText = selectBox.options[selectBox.selectedIndex].text;
	
	var saveAs = document.getElementById("max:AccuData_CTL_ADSForm:0:ModifiedName");
	var share = document.getElementById("max:AccuData_CTL_ADSForm:0:ModifiedSharedWtCompany");
	if (layoutText != null && saveAs != null && share != null && layoutText.substring(0,7) == 'Shared:')
		saveAs.value = layoutText.substring(8);
	else if (layoutText != null && saveAs != null && share != null)
		saveAs.value = layoutText;
		
	if (layoutText != null && layoutText.substring(0,7) == 'Shared:')
		share.checked = true;
	else
		share.checked = false;
}

function ValidateAdvancedLayout_Position (logicalName)
{
	var hasError = false;
	var pos = document.getElementById("max:AccuData_CTL_ADSForm:0:Position" + logicalName);
	if (pos !== null)
	{
		if (Trim(pos.value) === "")
		{
			alert("Placement is required.");
			hasError = true;
		} 
		else if (isNaN(pos.value))
		{
			alert("Invalid placement.");
			hasError = true;
		}
		else if (Trim(pos.value).indexOf('.') >= 0)
		{
			alert("Invalid placement.");
			hasError = true;
		}
		else if ((+pos.value) <= 0)
		{
			alert("Invalid placement.");
			hasError = true;
		}
		
		if (hasError)	
		{
		    ADSSetTextFieldAlert(pos);
			return false;
		}
		else
		{
		    ADSResetTextFieldAlert(pos);
			return true;
		}
	}	

	return true;
}

function ValidateAdvancedLayout_Length (logicalName)
{
	var hasError = false;
	var length = document.getElementById("max:AccuData_CTL_ADSForm:0:Length" + logicalName);
	var minLength = document.getElementById("max:AccuData_CTL_ADSForm:0:MinLength" + logicalName);
	
	if (length !== null && minLength !== null)
	{
		if (Trim(length.value) === "")
		{
			alert("Length is required.");
			hasError = true;
		}
		else if (isNaN(length.value))
		{
			alert("Invalid length.");
			hasError = true;
		}
		else if (Trim(length.value).indexOf('.') >= 0)
		{
			alert("Invalid length.");
			hasError = true;
		}
		else if ((+length.value) <= 0)
		{
			alert("Invalid length.");
			hasError = true;
		}
		else if ((+length.value) < (+minLength.value))
		{
			alert("The minimum length allowed is " + minLength.value);
			hasError = true;
		}

		if (hasError)	
		{
		    ADSSetTextFieldAlert(length);
			return false;
		}
		else
		{
		    ADSResetTextFieldAlert(length);
			return true;
		}
	}	

	return true;
}

function ValidateAdvancedLayout_OutName (logicalName)
{
	var hasError = false;
	var fieldOuputColumnName = document.getElementById("max:AccuData_CTL_ADSForm:0:OuputColumnName" + logicalName);
	if (fieldOuputColumnName !== null)
	{
		if (Trim(fieldOuputColumnName.value) === "")
		{
			alert("Output column name is required.");
			hasError = true;
		}

		if (hasError)	
		{
		    ADSSetTextFieldAlert(fieldOuputColumnName);
			return false;
		}
		else
		{
		    ADSResetTextFieldAlert(fieldOuputColumnName);
			return true;
		}
	}	

	return true;
}

function ValidateAdvancedLayout_InputSV (logicalName)
{
	var hasError = false;
	if (logicalName === "SEQUENCENO" || logicalName === "SLUG" || logicalName === "KEYCODE")
	{
		var valueOfField = document.getElementById("max:AccuData_CTL_ADSForm:0:SV|" + logicalName);
		if (valueOfField !== null)
		{
			if(Trim(valueOfField.value) === "")
			{
				var type = "";
				if (logicalName === "SEQUENCENO")
					type = "sequence number";
				else if (logicalName === "SLUG")
					type = "slug";
				else
					type = "keycode";
				
				alert("You must specify a " + type + " value.");
				hasError = true;
			}

			if (hasError)	
			{
				ADSSetTextFieldAlert(valueOfField);
				return false;
			}
			else
			{
				ADSResetTextFieldAlert(valueOfField);
				return true;
			}
		}
	}	

	return true;
}

function ValidateAdvancedLayout_ILength (keyString)
{
	var hasError = false;
	var length = document.getElementById("max:AccuData_CTL_ADSForm:0:ILength" + keyString);
	var minLength = document.getElementById("max:AccuData_CTL_ADSForm:0:IMinLength" + keyString);
	
	if (length !== null && minLength !== null)
	{
		if (Trim(length.value) === "")
		{
			alert("Length is required.");
			hasError = true;
		}
		else if (isNaN(length.value))
		{
			alert("Invalid length.");
			hasError = true;
		}
		else if (Trim(length.value).indexOf('.') >= 0)
		{
			alert("Invalid length.");
			hasError = true;
		}
		else if ((+length.value) <= 0)
		{
			alert("Invalid length.");
			hasError = true;
		}
		else if ((+length.value) < (+minLength.value))
		{
			alert("The minimum length allowed is " + minLength.value);
			hasError = true;
		}

		if (hasError)	
		{
		    ADSSetTextFieldAlert(length);
			return false;
		}
		else
		{
		    ADSResetTextFieldAlert(length);
			return true;
		}
	}	

	return true;
}

function ValidateSimpleLayout_Uncheck (logicalName)
{
	var field = document.getElementById("max:AccuData_CTL_ADSForm:0:Add|" + logicalName);
	if (field !== null)
	{
		if (logicalName === "SEQUENCENO" || logicalName === "SLUG" || logicalName === "KEYCODE")
		{
			var valueOfField = document.getElementById("max:AccuData_CTL_ADSForm:0:SV|" + logicalName);
			if (valueOfField !== null && !field.checked)
			{
				ADSResetTextFieldAlert(valueOfField);
				valueOfField.value = "";
			}
			else if (valueOfField !== null && field.checked && Trim(valueOfField.value) === "")
			{
				var type = "";
				if (logicalName === "SEQUENCENO")
					type = "sequence number";
				else if (logicalName === "SLUG")
					type = "slug";
				else
					type = "keycode";
					
				alert("You must specify a " + type + " value.");
				ADSSetTextFieldAlert(valueOfField);
				return false;
			}
		}
	}
	
	return true;
}

function ValidateAdvancedLayout_InputSV_wtIncludeCheck (logicalName)
{
	var field = document.getElementById("max:AccuData_CTL_ADSForm:0:Add|" + logicalName);
	if (field !== null && field.checked)
	{
		var hasError = false;
		if (logicalName === "SEQUENCENO" || logicalName === "SLUG" || logicalName === "KEYCODE")
		{
			var valueOfField = document.getElementById("max:AccuData_CTL_ADSForm:0:SV|" + logicalName);
			if (valueOfField !== null)
			{
				if(Trim(valueOfField.value) === "")
				{
					var type = "";
					if (logicalName === "SEQUENCENO")
						type = "sequence number";
					else if (logicalName === "SLUG")
						type = "slug";
					else
						type = "keycode";
					
					alert("You must specify a " + type + " value.");
					hasError = true;
				}

				if (hasError)	
				{
					ADSSetTextFieldAlert(valueOfField);
					return false;
				}
				else
				{
					ADSResetTextFieldAlert(valueOfField);
					return true;
				}
			}
		}	
	}

	return true;
}

function ValidateAdvancedLayout (obj)
{
	 var i = 0;
	 var logicalName;
	 while ((logicalName = document.getElementById("max:AccuData_CTL_ADSForm:" + (++i) + ":LogicalName")) !== null)
	 {
		if (!ValidateAdvancedLayout_Position (logicalName.value) || !ValidateAdvancedLayout_Length (logicalName.value)
			|| !ValidateAdvancedLayout_OutName (logicalName.value) || !ValidateAdvancedLayout_InputSV (logicalName.value))
			return false;
	 }

	 var x = 0;
	 var keyString;
	 while ((keyString = document.getElementById("max:AccuData_CTL_ADSForm:" + (++x) + ":ChildLogicalName")) !== null)
	 {
		if (!ValidateAdvancedLayout_ILength (keyString.value))
			return false;
	 }
	 
	_doPostBack(obj);
	return true;
}

function ValidateSimpleLayout (obj)
{
	 var i = 0;
	 var logicalName;
	 while ((logicalName = document.getElementById("max:AccuData_CTL_ADSForm:" + (++i) + ":LogicalName")) !== null)
	 {
		if (!ValidateSimpleLayout_Uncheck (logicalName.value))
			return false;
	 }

	_doPostBack(obj);
	return true;
}

function ValidateLayout (obj, tab)
{
	if (tab !== null && tab === "2")
		ValidateSimpleLayout (obj);
	else
		ValidateAdvancedLayout (obj);
}
