function init() {
	removeFormIfNoProducts();
	setErrorPage();
	setOriginalNumbers();
	setCompanyName();
	cancelLine();
	checkDates();
	alignTagCPH();
}

/* TRYING TO FIX THE SIDE NAV ERROR THAT SHOULDNT EVEN BE THERE AS WAS ORIGINALLY FIXED */
 /* 
 function removeJavaError() {
	divArray = document.getElementsByTagName("DIV");
	
	for (var i=0; i < divArray.length; i++) {

		vals = divArray[i].innerHTML;//firstChild.nodeValue;
		
		if (vals == "An unexpected error occurred when building the user order list: RuntimeException; nested exception is: java.lang.NullPointerException") {
//		if (vals.indexOf("RuntimeException") > -1) {
			divArray[i].style.display = "none";
		}
	}
 }	
*/
function setCompanyName() {
	if (document.getElementById("default_address_company_name_id")) {
		var newVal = document.getElementById("name").value;							// This sets company name and passes from
		document.getElementById("default_address_company_name_id").value = newVal;	// disabled field (which SS2 doesnt like)	
		document.getElementById("default_address_company_name_id2").value = newVal; // to a hidden field so it can save
		
		var accNumber = document.getElementById("account_number").value;
		document.getElementById("account_number_passed").value = accNumber;
	}
}


function totalTags() {
	if (document.getElementById("defra_tag_form")) {
		var tag1 = document.getElementById("1st_tag").value;
		var tag2 = document.getElementById("2nd_tag").value;
	
		if (tag2 != "") {
			if (parseInt(tag1) > parseInt(tag2)) {
				alert("Please Make Sure the Last Number in the range is larger than the First");	
				document.getElementById("1st_tag").value = "";
				document.getElementById("2nd_tag").value = "";
				document.getElementById("quantity").value = "";				
			}
		
			else {
				tagtotal = (tag2 - tag1 + 1);
				document.getElementById("quantity").value = tagtotal;
/*				document.defra_tag_form.quantity.disabled=true; */
			}
		}
		
	}
}

	function setOriginalNumbers() {
		if (document.getElementById("new_notes_herd")) {		
			var herdMark = document.getElementById("notes_herd").innerHTML;
			var cph1 = document.getElementById("notes_cph1").innerHTML;
			var cph2 = document.getElementById("notes_cph2").innerHTML;
			var cph3 = document.getElementById("notes_cph3").innerHTML;						
			var new_herd = document.getElementById("new_notes_herd");								
			var new_cph1 = document.getElementById("new_notes_cph1");						
			var new_cph2 = document.getElementById("new_notes_cph2");						
			var new_cph3 = document.getElementById("new_notes_cph3");
			
			new_herd.value = herdMark;
			new_cph1.value = cph1;
			new_cph2.value = cph2;
			new_cph3.value = cph3;				
		}
	}

function totalTags3(theElement) {	
	if (document.getElementById("replacement_tag_form")) {	

		var tag3 = theElement.value;	



			var tag3Split = tag3.split(",");
			var tagQuantity = tag3Split.length;

				
				var b = tag3Split[tag3Split.length-1];
				b.length--;

				for(var i=0; i<tag3Split.length; i++) {
						if (tag3Split[i].length > 5) {
							alert("All Tag Numbers must be no longer than 5 digits:" + tag3Split[i]);
							return false;
						}
				}
	}
				
}

function PadDigits(n, totalDigits) { 
        n = n.toString(); 
        var pd = ''; 
        if (totalDigits > n.length) 
        { 
            for (i=0; i < (totalDigits-n.length); i++) 
            { 
                pd += '0'; 
            } 
        } 
        return pd + n.toString(); 
} 

function totalTags2(theElement) {	
	if (document.getElementById("replacement_tag_form")) {	

		var tag3 = theElement.value;	

		if (stringAllowed(tag3, "0123456789,")) {

			var tag3Split2 = tag3.split(",");
			var tagQuantity2 = tag3Split2.length;			
			
			
				var b = tag3Split2[tag3Split2.length-1];
				b.length--;

			
				if (b=="" || b==" " || b=="," || b==",,") {

					theElement.value = theElement.value.substring(0, theElement.value.length - 1);
					document.getElementById("quantity").value = tagQuantity2 - 1;
				}
				
				else {
					document.getElementById("quantity").value = tagQuantity2;
				}

// ===============================  Here is the check digit code "START" ===============================
// ===============================  Here is the check digit code "START" ===============================
			tag3 = theElement.value;
			var tag3Split = tag3.split(",");
			var tagQuantity = tag3Split.length;

			var herdMark = document.getElementById("notes_herd").value;
			for(var i=0; i<tag3Split.length; i++) {

				if (tag3Split[i].length < 6) {
					missingLength = 5 - tag3Split[i].length;
			
					var pd = '';
						for (j=0; j < (missingLength); j++) { 
							pd += '0'; 
						} 						
					
					newNumber = pd + tag3Split[i];
					herdmarkanimalnumber = herdMark + newNumber;
					checkDigitRemainder = herdmarkanimalnumber % 7;
					checkDigit = checkDigitRemainder + 1;
					tag3Split[i] = " " + checkDigit;
				}
			}
//			alert(tag3Split);
			document.getElementById("notes_checkdigit").value = tag3Split;
			
// ===============================  Above is the check digit code "FINISH" ===============================			
// ===============================  Above is the check digit code "FINISH" ===============================				
			
		}
		else {
			document.getElementById("specific_tag").value = "";
			document.getElementById("quantity").value = "";			
			alert("Invalid Character Found, Please Check Format, e.g. 1,2,3,4"); 			
		}
			
	}
}

function totalTags99() {	
	if (document.getElementById("replacement_tag_form")) {	

		var tag3 = document.getElementById("specific_tag").value;	

		if (stringAllowed(tag3, "0123456789,")) {

			var tag3Split2 = tag3.split(",");
			var tagQuantity2 = tag3Split2.length;			
		
			
				var b = tag3Split2[tag3Split2.length-1];
				b.length--;

			
				if (b=="" || b==" " || b=="," || b==",,") {

					document.getElementById("specific_tag").value = document.getElementById("specific_tag").value.substring(0, document.getElementById("specific_tag").value.length - 1);
					document.getElementById("quantity").value = tagQuantity2 - 1;
				}
				
				else {
					document.getElementById("quantity").value = tagQuantity2;
				
				}

// ===============================  Here is the check digit code "START" ===============================
// ===============================  Here is the check digit code "START" ===============================
			tag3 = document.getElementById("specific_tag").value;
			var tag3Split = tag3.split(",");
			var tagQuantity = tag3Split.length;

			var herdMark = document.getElementById("notes_herd").value;
			for(var i=0; i<tag3Split.length; i++) {

				if (tag3Split[i].length < 6) {
					missingLength = 5 - tag3Split[i].length;
			
					var pd = '';
						for (j=0; j < (missingLength); j++) { 
							pd += '0'; 
						} 						
					
					newNumber = pd + tag3Split[i];
					herdmarkanimalnumber = herdMark + newNumber;
					checkDigitRemainder = herdmarkanimalnumber % 7;
					checkDigit = checkDigitRemainder + 1;
					tag3Split[i] = " " + checkDigit;
				}
			}
//			alert(tag3Split);
			document.getElementById("notes_checkdigit").value = tag3Split;
			
// ===============================  Above is the check digit code "FINISH" ===============================			
// ===============================  Above is the check digit code "FINISH" ===============================				
			
		}
		else {
			document.getElementById("specific_tag").value = "";
			document.getElementById("quantity").value = "";			
			alert("Invalid Character Found, Please Check Format, e.g. 1,2,3,4"); 			
		}
			
	}
}

function stringAllowed(testString, allowedChars) {

	var nonAllowedCharacterFound = false;

	for (var i=0; i < testString.length; i++) {
		var theChar = testString.charAt(i);
		if (allowedChars.indexOf(theChar) < 0) {

			nonAllowedCharacterFound = true;
		}
	}
	
	return !nonAllowedCharacterFound;

}


function validateForm() {
            
 if (document.getElementById("search-address-form")) {
            
            
		var notesHerd = document.getElementById("notes_herd").value;
		var cph1 = document.getElementById("notes_cph1").value;
		var cph2 = document.getElementById("notes_cph2").value;
		var cph3 = document.getElementById("notes_cph3").value;
		var postcode = document.getElementById("postcode").value;
		var company_name = document.getElementById("company_name").value;

		if (notesHerd == "" && cph1 == "" && cph2 == "" && cph3 == "" && postcode == "" && company_name == "") {
			alert("Please Complete at Least One Field to Return Search Results");
                                            return false;
		}
            
        else 
			if (notesHerd.length > 0) {
				if (notesHerd.length < 6 || isNaN(notesHerd)) {
					alert("Please Ensure Herd Mark is a six digit Number");
					return false;
				}
			}
		else {
        	return true;
		}
	}   
            
}            

function readonlyQty() {
	if (document.getElementById("replacement_tag_form") || document.getElementById("defra_tag_form") || document.getElementById("management_tag_form")) {	
		var qty = document.getElementById("quantity");
//		qty.setAttribute("readonly", "readonly");
		qty.readOnly = true;
	}
}

		function verifySelected() {
			var addressFlag = false;
			var theForm = document.getElementById("address-select-form");
			var inputArray = theForm.getElementsByTagName("input");

			for (var i=0; i < inputArray.length; i++) {
				var inputType = inputArray[i].getAttribute("type");
				
				if (inputType == "radio" && inputArray[i].checked == true) {
					addressFlag = true;
				}
			}
			
			if (addressFlag == true) {
				return true;
			}
			
			else {
				alert("Please Select an Address from the List");
				return false;
			}
			
		}


function removeFormIfNoProducts() {
	if (document.getElementById("sheep-tag-list")) {
		var elSheepTagList = document.getElementById("sheep-tag-list");

		var sheepElements = elSheepTagList.getElementsByTagName("*");

		var sheepProductSelect;

		for (var i=0; i < sheepElements.length; i++) {
			var elAttName = sheepElements[i].getAttribute("name");
			if (elAttName == "productpk") {
				sheepProductSelect = sheepElements[i];
			}
		}

		if (sheepProductSelect.options.length < 2) {
			elSheepTagList.style.display = "none";
		}

	}
}

function checkRange() {
		var tag1 = document.getElementById("1st_tag").value;
		var tag2 = document.getElementById("2nd_tag").value;
	
		if (tag2 != "") {
			if (parseInt(tag1) > parseInt(tag2)) {
				alert("Please Make Sure the Last Number in the range is larger than the First");	
				document.getElementById("1st_tag").value = "";
				document.getElementById("2nd_tag").value = "";
				document.getElementById("tagQty").value = "";				
			}

			else {
				tagtotal = (tag2 - tag1 + 1);
				document.getElementById("tagQty").value = tagtotal;
			}
		}		

}

function checkDivisible() {	
	if (document.getElementById("tagQty")) {
				elQuantity = document.getElementById('tagQty');
				elDivide = document.getElementById('pack_qty');
				el = document.getElementById('quantity');

				if (elQuantity && elDivide) {
					quantityValue = parseFloat(elQuantity.value);
					divideValue = parseFloat(elDivide.value);

					packsFloat = quantityValue / divideValue;
					packsInt = parseInt(quantityValue / divideValue);

					if (packsFloat == packsInt) {
						el.value = packsInt;
						
						var answer = confirm("You have selected tags equal to " + packsInt + " Packs, is this correct?");
							if (answer) {
								return true;
							}
							else{
								return false;
							}						
					}
					
					else {
						elQuantity.value = "";
						el.value = "";
						alert("Please check your tag range, the range must be in multiples of the Quantity in each pack.");
						return false;
					}
				}
				else {
					return false;
				}
	}
}

function managementValidation() {
			if (document.getElementById("notes_tag_name")) {
				var tagName = document.getElementById("notes_tag_name").value;
		
				if (tagName == "") {
					alert("Please make sure you have filled in the Tag Name field");
					return false;
				}
				
				else {
					
				}
			}				
			
			else {
					if (document.getElementById("notes_prefix")) {
						var prefix = document.getElementById("notes_prefix").value;
				
						if (prefix == "") {
							alert("Please make sure you have filled in the prefix field");
							return false;
						}
						
						else {

						}
					}					
			}
			
			if (document.getElementById("1st_tag")) {
					var firstTag = document.getElementById("1st_tag").value;
					var secondTag = document.getElementById("2nd_tag").value;		
					
					if (firstTag == "" || secondTag == "") {
						alert("Please make sure you have filled in the First No. and Last No. in the Range");
						return false;
					}
					
					else {

					}		
			}
			
			if (document.getElementById("quantity") && !document.getElementById("pack_qty")) {
				var qty = document.getElementById("quantity").value;
		
				if (qty == "") {
					alert("Please enter Quantity");
					return false;
				}
				
				else {
					
				}
			}	
			
return true;					
}


	function setErrorPage() {
		if(document.getElementById("form_update_address")) {
			divArray = document.getElementsByTagName("input");

				for (var i=0; i < divArray.length; i++) {
				
					vals = divArray[i].getAttribute("name");

					if (vals == "addresspk") {
						var foundAddressPk = divArray[i].value;
					}					
							
					if (vals == "errorpage") {
//						alert("GOT AN ERROR ELEMENT!");
						divArray[i].value = "/merchants/account/address_detail.html?addresspk=" + foundAddressPk;
//						alert(divArray[i].value);						
					}
					
				}
		}
	}


function checkUncheckAll(theElement) {
     var theForm = theElement.form, z = 1;
            for (i=0; i < theForm.elements.length; i++) {
                        if (theForm[i].type == 'checkbox' && theForm[i].name != 'checkall') {
                                    theForm[i].checked = theElement.checked;
                                   
                        }
            }
    }
	
function logoutQuery() {
	if (document.getElementById("total_items")) {		
		var totalRecords = document.getElementById("total_items").innerHTML;
		if (totalRecords > 0) {
			var answer = confirm("You currently have an order in process, are you sure you want to log out?")
				if (answer){
					return true;
				}
				else{
					return false;
				}
		}
	}
}


	function checkDates() {
		if (document.getElementById('hidden-alert')) {
			if (document.getElementById('hidden-queries')) {
				var theTable = document.getElementById('hidden-queries');
				var elTableSpan = theTable.getElementsByTagName('span');

			
				for (i=0; i<elTableSpan.length; i++) {
					currentSpan = elTableSpan[i];
					currentSpanId = currentSpan.getAttribute('id');
				
					if (currentSpanId == 'objectageindays:1') {
						if (currentSpan.innerHTML >= 5) {
							document.getElementById('hidden-alert').style.display = 'block';
						}
					} 
				}
			}
		}
	}
	
			function cancelLine() {
				if (document.getElementById('table_address_edit')) {
					var theTable = document.getElementById('table_address_edit');
					var elTr = theTable.getElementsByTagName('tr');
	
					for (i=0; i<elTr.length; i++) {
						var currentTD = elTr[i];
						var elSpan = currentTD.getElementsByTagName('span');
						var elInput = currentTD.getElementsByTagName('input');			
			
						for (j=0; j<elSpan.length; j++) {
							var currentSpan = elSpan[j];
							if (currentSpan.innerHTML == 'Cancelled') {
								for (k=0; k<elSpan.length; k++) {
									elSpan[k].setAttribute('style', 'text-decoration:line-through;');
									elSpan[k].parentNode.setAttribute('style', 'text-decoration:line-through;');																
								}
								
								for (m=0; m<elInput.length; m++) {
									elInput[m].setAttribute('disabled', 'disabled');
								}	
							}
						}
					}
				}
			}	
			
			
			
			
function alignTagCPH() {
  if (document.getElementById('notes_specific_tag_no:1') && document.getElementById('notes_checkdigit:1')) {
  	preTags = document.getElementsByTagName('pre');
	
	for (var i = 0; i < preTags.length; i++) {
		preTags[i].style.display = 'none';
		
		if (preTags[i].firstChild.id == 'notes_specific_tag_no:1') {
			tagNumbers = preTags[i].firstChild.innerHTML;
			cphParent = getNextObject(preTags[i].parentNode);
			cphParentChild = getFirstChild(cphParent);
			cphParentChild2 = getFirstChild(cphParentChild).innerHTML;
//			alert(tagNumbers);			
//			alert(cphParentChild2.innerHTML);
			
			elTable = document.createElement('table');
			elTbody = document.createElement('tbody');
			elTr = document.createElement('tr');
			elTrCPH = document.createElement('tr');			
			elTd = document.createElement('td');
			elTdCPH = document.createElement('td');
			elTagText = document.createTextNode('Tag Numbers:');
			elCPHText = document.createTextNode('Check Digit:');
			
			preTags[i].parentNode.appendChild(elTable);
			elTable.appendChild(elTbody);
			elTbody.appendChild(elTr);			
			elTr.appendChild(elTd);
			elTd.appendChild(elTagText);
			elTd.style.border = '1px solid #000';
			elTd.style.fontWeight = 'bold';
			elTd.style.fontSize = '10px';			

			elTable.appendChild(elTrCPH);
			elTbody.appendChild(elTrCPH);			
			elTrCPH.appendChild(elTdCPH);
			elTdCPH.appendChild(elCPHText);
			elTdCPH.style.border = '1px solid #000';
			elTdCPH.style.fontWeight = 'bold';
			elTdCPH.style.fontSize = '10px';
			
			tagNumbersSplit = tagNumbers.split(',');
			cphNumbersSplit = cphParentChild2.split(',');
			
			for (var j = 0; j < tagNumbersSplit.length; j++) {
				elTd[j] = document.createElement('td');
				elTd[j].style.border = '1px solid #000';				
				elTr.appendChild(elTd[j]);
				elTd[j].innerHTML = tagNumbersSplit[j];

			}
			
			for (var k = 0; k < cphNumbersSplit.length; k++) {
				elTdCPH[k] = document.createElement('td');
				elTdCPH[k].style.border = '1px solid #000';				
				elTrCPH.appendChild(elTdCPH[k]);
				elTdCPH[k].innerHTML = cphNumbersSplit[k];
			}			
		}
	}
  }
}
	
function getNextObject(n) { 
	n = n.nextSibling;
	while (n && !n.tagName) {
		n = n.nextSibling;
	} 
	return n; 
} 

function getFirstChild(f) { 
	f = f.firstChild;
	while (f && !f.tagName) {
		f = f.nextSibling;
	} 
	return f; 
} 
			