function urldecode( str ) {
    // http://kevin.vanzonneveld.net
    // +   original by: Philip Peterson
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // *     example 1: urldecode('Kevin+van+Zonneveld%21');
    // *     returns 1: 'Kevin van Zonneveld!'
    
    var ret = str;
       
    ret = ret.replace(/\+/g, '%20');
    ret = decodeURIComponent(ret);
    ret = ret.toString();
 
    return ret;
}
function trim12 (str) {
	var	str = str.replace(/^\s\s*/, ''),
		ws = /\s/,
		i = str.length;
	while (ws.test(str.charAt(--i)));
	return str.slice(0, i + 1);
}


function CallPrint(strid)
	{
	var prtContent = document.getElementById(strid);
	var WinPrint =window.open('','','left=0,top=0,width=1,height=1,toolbar=0,scrollbars=0,status=0');
	WinPrint.document.write(prtContent.innerHTML);
	WinPrint.document.close();
	WinPrint.focus();
	WinPrint.print();
	WinPrint.close();
	}





function getProductCategories(resultelement,alpha)
	{
	var request = newRequest();
	elementname = resultelement;
	if (alpha == "")
		{
		var seed = "starter=" + document.getElementById(resultelement).value;
		}
	else
		{
		var seed = "starter=" + alpha;
		elementname = "product.categories";
		}
	var target = document.getElementById(elementname).getAttribute("target");
	var cssresult = document.getElementById(target).style.display="block";
	var url = "/getprod.php?" + seed + "&alpha=" + alpha + "&random=" + Math.random();

	request.open("GET", url, true);
	request.onreadystatechange = function()
		{
		if (request.readyState == 4)
			{
			if (request.status == 200)
				{
				xmlDoc = request.responseXML;
				var mfrtext = "";
				var resultelement =  document.getElementById(elementname).getAttribute("target");
				names = xmlDoc.getElementsByTagName("name");
				n_names = names.length;
				for (i = 0; i < n_names; i++)
					{
					prodName = names.item(i);
					prodID = prodName.getAttribute("id");
					mfrtext = mfrtext + "<a href=\"javascript:getMfrInfo(" + prodID + ",'manufacturers','product')\">" + URLDecode(getText(prodName)) + "</a>";
					}
				document.getElementById(resultelement).innerHTML=mfrtext;
				}
			else
				{
				var message = request.getResponseHeader("Status");
				if ((message.length == null) || (message.length <= 0))
					{
					alert("Error! Request status is " + request.status);
					}
				else
					{
					alert(message);
					}
				}
			}
		}
	request.send(null);
	}




















function getProductCategoriesSuppl(resultelement,alpha) {
	var request = newRequest();
	elementname = resultelement;
	if (alpha == "") {
		var seed = "starter=" + document.getElementById(resultelement).value;
	} else {
		var seed = "starter=" + alpha;
		elementname = "product.categories";
	}
	var target = document.getElementById(elementname).getAttribute("target");
	var cssresult = document.getElementById(target).style.display="block";
//  alert("AA"+cssresult+"BB" + target);
var url = "/getprod.php?" + seed + "&alpha=" + alpha + "&suppl=Y" + "&random=" + Math.random();

	request.open("GET", url, true);
	request.onreadystatechange = function() {
  if (request.readyState == 4) {
    if (request.status == 200) {
		xmlDoc = request.responseXML;
		var mfrtext = "";
// alert(elementname + "AAA");
var resultelement =  document.getElementById(elementname).getAttribute("target");
// alert(resultelement + "AAAA");
names = xmlDoc.getElementsByTagName("name");
n_names = names.length;
// alert(n_names + "1234");
for (i = 0; i < n_names; i++)
	{
   prodName = names.item(i);
//   prodName = mfrName.getAttribute("product");
// alert ("Prodname " + prodName); 
prodID = prodName.getAttribute("id");
		mfrtext = mfrtext + "<a href=\"javascript:getSupplInfo(" + prodID + ",'manufacturers','product')\">" + URLDecode(getText(prodName)) + "</a>";
}
		document.getElementById(resultelement).innerHTML=mfrtext;
} else {
      var message = request.getResponseHeader("Status");
      if ((message.length == null) || (message.length <= 0)) {
        alert("Error! Request status is " + request.status);
      } else {
        alert(message);
      }
    }
  }
}

	request.send(null);
}










function getMfrInfo(id, target, type)
	{

	document.getElementById('manufacturers').innerHTML='Loading...';

	var request = newRequest();
	var url = "/getmfrinfo.php?id=" + id + "&type=" + type + "&random=" + Math.random();
	request.open("GET", url, true);
	request.onreadystatechange = function () 
		{
		if (request.readyState == 4)
			{
			if (request.status == 200)
				{
				// Get the updated totals from the XML response
				var xmlDoc = request.responseXML;
				names = xmlDoc.getElementsByTagName("info");
				n_names = names.length;
				var mfrtext = ""
				for (i = 0; i < n_names; i++)
					{
					mfrinfo = names.item(i);
					url = mfrinfo.getAttribute("url");
					since = URLDecode(mfrinfo.getAttribute("mem_since"));
   					city = URLDecode(mfrinfo.getAttribute("city"));
					state = URLDecode(mfrinfo.getAttribute("state"));
					email = mfrinfo.getAttribute("email");

					url = urldecode(url);
					surl = url.split(",");
					var urls = "";
					var hurl = "";

					var len = surl.length
					for (x = 0; x < len; x++)
						{
						hurl = trim12(surl[x]);
						if (hurl>'')
							{
							if (hurl.substr(0,4) != 'http')
								{
								hurl = 'http://' + hurl;
								}
							urls = urls + "<a href='" + hurl + "' target='_blank'>" + surl[x] + "</a>" + "<br>";
							}
						}

					var mfrName = URLDecode(getText(xmlDoc.getElementsByTagName("info")[i]));

					if (location.pathname.indexOf('/members/') > -1)
						{
						mfrtext += URLDecode(mfrinfo.getAttribute("big_block")) + "<hr>\n";
						//mfrtext = mfrtext + "<h3>" + mfrName + "</h3>" + urls + "Member Since: " + since + "<br>" + city + ", " + state + "<BR><BR>";
						}
					else
						{
						mfrtext = mfrtext + "<h3>" + mfrName + "</h3>" + urls + "Member Since: " + since + "<br>" + city + ", " + state + "<BR><BR>";
						}

				        outmember=mfrName.replace("&","AND");
        				omembr=URLEncode(outmember);
					femaemail = "vernon@farmequip.org";
					if (email)
						{
        					outline="addr=" + email + "&subj=" + omembr +"&page=member";
						} 
					else
						{
						outline="addr=" + URLEncode(femaemail) + "&subj=" + omembr + "&page=member";
						}
					// mfrtext = mfrtext + "<a href=\"logrequest.php?" + outline +"\">email</a>";

					}
				// alert("text " + mfrtext);


				if (mfrtext.length < 10)
					{
					mfrtext = 'No results';
					}
				else
					{
					mfrtext += '<input type=button onClick="CallPrint(\'manufacturers\');" value="Print Results">';
					}

				document.getElementById('manufacturers').innerHTML = mfrtext;


				var mfrContact = URLDecode(getText(xmlDoc.getElementsByTagName("name")[0]));
				// var mfrEmail = URLDecode(getText(xmlDoc.getElementsByTagName("email")[0]));
				var mfrID = URLDecode(getText(xmlDoc.getElementsByTagName("mfrid")[0]));
				// alert ("Company " + mfrName);
				// var companyinfo=mfrName;
				// document.getElementById('ManufacturerName').value=mfrName;
				// document.getElementById('nameofmfr').value=mfrName;
				// document.getElementById('registrations.MfrID').value = mfrID;
				var xmlMfrID = mfrID;
				// alert("Here");
				// line below only for policy sections, but seems to break claim form
				// var cssresult = document.getElementById(target).style.display="none";
				} 
			else
				{
				var message = request.getResponseHeader("Status");
				if ((message.length == null) || (message.length <= 0))
					{
					alert("Error! Request status is " + request.status);
					}
				else
					{
					alert(message);
					}
				}
			}
		}
	request.send(null);
	}








function getMembersState(resultelement, sel)
	{
	var request = newRequest();
	elementname = resultelement;
	var seed = "starter=" + document.getElementById(resultelement).value;
	var target = document.getElementById(elementname).getAttribute("target");
	var cssresult = document.getElementById(target).style.display="block";
//  alert("AA"+cssresult+"BB" + target);
var url = "/getmfr.php?" + seed + "&state=" + sel + "&jpath=" + location.pathname + "&random=" + Math.random();

	request.open("GET", url, true);
	request.onreadystatechange = function() {
  if (request.readyState == 4) {
    if (request.status == 200) {
		xmlDoc = request.responseXML;
		var mfrtext = "";
// alert(elementname + "AAA");
var resultelement =  document.getElementById(elementname).getAttribute("target");
// alert(resultelement + "AAAA");
names = xmlDoc.getElementsByTagName("name");
n_names = names.length;
// alert(n_names + "1234");
for (i = 0; i < n_names; i++)
	{
   prodName = names.item(i);
//   prodName = mfrName.getAttribute("product");
// alert ("Prodname " + prodName); 
prodID = prodName.getAttribute("id");
		mfrtext = mfrtext + "<a href=\"javascript:javascript:getMfrInfo(" + prodID + ",'manufacturers','mfr')\">" + URLDecode(getText(prodName)) + "</a>";
}
		document.getElementById(resultelement).innerHTML=mfrtext;
} else {
      var message = request.getResponseHeader("Status");
      if ((message.length == null) || (message.length <= 0)) {
        alert("Error! Request status is " + request.status);
      } else {
        alert(message);
      }
    }
  }
}

	request.send(null);
}











function getMembers(resultelement, alpha) {
	var request = newRequest();
	elementname = resultelement;
	var seed = "starter=" + document.getElementById(resultelement).value;
	var target = document.getElementById(elementname).getAttribute("target");
	var cssresult = document.getElementById(target).style.display="block";
//  alert("AA"+cssresult+"BB" + target);
var url = "/getmfr.php?" + seed + "&alpha=" + alpha + "&jpath=" + location.pathname + "&random=" + Math.random();

	request.open("GET", url, true);
	request.onreadystatechange = function() {
  if (request.readyState == 4) {
    if (request.status == 200) {
		xmlDoc = request.responseXML;
		var mfrtext = "";
// alert(elementname + "AAA");
var resultelement =  document.getElementById(elementname).getAttribute("target");
// alert(resultelement + "AAAA");
names = xmlDoc.getElementsByTagName("name");
n_names = names.length;
// alert(n_names + "1234");
for (i = 0; i < n_names; i++)
	{
   prodName = names.item(i);
//   prodName = mfrName.getAttribute("product");
// alert ("Prodname " + prodName); 
prodID = prodName.getAttribute("id");
		mfrtext = mfrtext + "<a href=\"javascript:javascript:getMfrInfo(" + prodID + ",'manufacturers','mfr')\">" + URLDecode(getText(prodName)) + "</a>";
}
		document.getElementById(resultelement).innerHTML=mfrtext;
} else {
      var message = request.getResponseHeader("Status");
      if ((message.length == null) || (message.length <= 0)) {
        alert("Error! Request status is " + request.status);
      } else {
        alert(message);
      }
    }
  }
}

	request.send(null);
}


//  Standard Functions below -- Shouldn't need modification

function URLDecode(psEncodeString)
{
  // Create a regular expression to search all +s in the string
  var lsRegExp = /\+/g;
  // Return the decoded string
  return unescape(String(psEncodeString).replace(lsRegExp, " "));
}

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}

function URLEncode (clearString) {
  var output = '';
  var x = 0;
  clearString = clearString.toString();
  var regex = /(^[a-zA-Z0-9_.]*)/;
  while (x < clearString.length) {
    var match = regex.exec(clearString.substr(x));
    if (match != null && match.length > 1 && match[1] != '') {
    	output += match[1];
      x += match[1].length;
    } else {
      if (clearString[x] == ' ')
        output += '+';
      else {
        var charCode = clearString.charCodeAt(x);
        var hexVal = charCode.toString(16);
        output += '%' + ( hexVal.length < 2 ? '0' : '' ) + hexVal.toUpperCase();
      }
      x++;
    }
  }
  return output;
}
