function checkLinks(lmi, surfer) {
	var params;
	var invalid;
	var surf = '';
	var links = new Array();

	if (surfer) {
	  surf = 'Surfer';
	  var loader = $('bulkLoaderSurfer' + lmi);
	  var lister = 'bulkListSurfer' + lmi;
	} else {
	  var loader = $('bulkLoader' + lmi);
	  var lister = 'bulkList' + lmi;
	}

	var num_items = eval('numItems' + surf + lmi);
	Element.show('loading' + surf  + lmi);

	if (loader.value.length > 0) {
  	var getLinks = loader.value.split('\n');

  	if (getLinks.length > 500) {
  	  alert('You can add a maximum of 10 links.');
  	} else {

    	loader.value = "Processing...";

    	for (var n=0; n < getLinks.length; n++) {
    	  if (links.indexOf(getLinks[n]) == -1) {
    	    links.push(getLinks[n]);
    	    if (getLinks[n].length == 0) {
    	      // ignore blank lines
    	    } else if (validateURL(getLinks[n])) {
      			params = 'source=Link&item_data=' + escape(getLinks[n]);
      		  var myAjax = new Ajax.Request( '/utility/module/plexconnect', {method: 'get', parameters: params, onComplete: function (originalRequest) {
      		    var response = originalRequest.responseText;
            	if (response.indexOf('|') != 0) {
            	  Element.hide('loading' + surf  + lmi);
            		alert(response);
            		invalid = true;
            	} else {
            	  var num_items = eval('numItems' + surf + lmi);
            		var html = '';
            		var item = new Array();

            		item = response.split('||');

            		if (item[4].length > 70) {
            			item[4] = item[4].substring(0, 70) + '...';
            		}

            		if (surfer) {
            		  html = '<div class="plexo_item"><div class="plexo_rank"></div><div class="plexo_list-item-editor"><input type="hidden" name="plexus_items[' + num_items + '][item_data]" value="' + item[1] + '" /><input type="hidden" name="plexus_items[' + num_items + '][link]" value="' + item[1] + '" /><h4>Link Title</h4><input type="text" name="plexus_items[' + num_items + '][title]" value="' + item[2] + '" size="40" /> <br /> <span class="points">&nbsp; title automagically links to: ' + item[4] + '</span><br /><br /><h4>Description</h4><p><textarea name="plexus_items[' + num_items + '][description]" rows="3" cols="50">' + item[3] + '</textarea><br /><span class="note">maximum of 500 characters</span></p></div><div class="plexo-edit"><a href="#" onclick="this.parentNode.parentNode.innerHTML=\'\'; return false;" class="delete">Delete</a></div></div><div class="break"></div>';
            		} else {
            		  html = '<div class="plexo_item"><div class="plexo_rank"></div><div class="plexo_list-item-editor"><input type="hidden" name="modules[id' + lmi + '][plexus_items][' + num_items + '][item_data]" value="' + item[1] + '" /><input type="hidden" name="modules[id' + lmi + '][plexus_items][' + num_items + '][link]" value="' + item[1] + '" /><h4>Link Title</h4><input type="text" name="modules[id' + lmi + '][plexus_items][' + num_items + '][title]" value="' + item[2] + '" size="40" /> <br /> <span class="points">&nbsp; title automagically links to: ' + item[4] + '</span><br /><br /><h4>Description</h4><p><textarea name="modules[id' + lmi + '][plexus_items][' + num_items + '][description]" rows="3" cols="50">' + item[3] + '</textarea><br /><span class="note">maximum of 500 characters</span></p></div><div class="plexo-edit"><a href="#" onclick="this.parentNode.parentNode.innerHTML=\'\'; return false;" class="delete">Delete</a></div></div><div class="break"></div>';
            		}

            		new Insertion.Bottom(lister, html);
            		window.eval('numItems' + surf + lmi + '++');
            		Element.hide('loading' + surf  + lmi);
            	}}});
      		} else {
      			alert("Golly! " + getLinks[n] + " doesn't look like a real link to our computers. Try doublechecking the URL and try again. Thanks!");
      			invalid = true;
      			Element.hide('loading' + surf  + lmi);
      		}
    	  } else {
    	    alert("Golly! It looks like you submitted " + getLinks[n] + " more than once. Please check your entries and try again. Sorry for the hassle.");
      		invalid = true;
      		Element.hide('loading' + surf  + lmi);
    	  }
    	}
    	loader.value = "";
		  showItems(lmi, surfer, invalid);
  	}
	} else {
	  showItems(lmi, surfer);
	}
}

function validateURL(value) {
  var urlregex = new RegExp("^(http(s)?://)?[a-z0-9-]+(\.[a-z0-9-]+)*(:[0-9]+)?(/.*)?$");
  if(urlregex.test(value)) {
    return true;
  } else {
    return false;
  }
}