<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
<title>Fishing | Boating: Link Exchange</title>
<meta http-equiv="description" content="Fishing/boating site listing at Northeast Angling TV - Inshore and offshore saltwater fishing for Striped Bass, Fluke, Shark, Tuna, Striper, Flounder, Sea Bass and much more!: Link Exchange" />
<meta http-equiv="keywords" content="Fishing, Boating" />
<meta http-equiv="author" content="Sound Strategies, Inc." />
<link href="?action=css" rel="stylesheet" type="text/css" />
<META name="Robots" content="INDEX,FOLLOW">
<meta http-equiv="revisit-after" content="7 days">
<meta http-equiv="abstract" content="media, tv, web, northeast angling">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta http-equiv="Content-Language" content="en-us">
</head>

<body background="Images/WebBack.jpg">
<div align="center">
  <center>
  <table border="0" cellpadding="0" cellspacing="0" style="border-left:2px solid #800000; border-right:2px solid #800000; border-collapse: collapse" width="650" bgcolor="#FFFFFF">
  <tr>
      <td align="center" height="54" style="border-left: 2px solid #800000; border-right: 2px solid #800000; border-top: 2px solid #800000; padding:">
      <img border="0" src="_borders/WebBanner.jpg" width="646" height="54"></td>
    </tr>
  <tr>
    <td valign="top" align="center">
    <div align="left">
      <table border="0" cellpadding="5" cellspacing="0" style="border-collapse: collapse">
      <tr>
        <td>
        <form method="POST" action="javascript:history. go(-1)">
          <p><input border="0" src="Images/BlueNavB.gif" name="I4" type="image" width="118" height="36"></p>
        </form>
        </td>
      </tr>
    </table>
    </div>
    </td>
  </tr>
  <tr>
    <td align="center"><div id="LinkMgrPath">
<a href="http://www.neangling.com/links.php" title="Saltwater Fishing | Striped Bass FIshing | Links">Links</a>:
<a href="?action=view&amp;CatID=500" title="Fishing | Boating">Other Fishing/Boating Links</a>:
Link Exchange
[<a href="#" onclick="javascript:window.history.go(-1); return false;" title="Back">Back</a>]
</div>
<div id="LinkMgrContainer">

<h2>LINK EXCHANGE STEP 1: PLACE OUR LINK TO YOUR WEBSITE </h2>
Please place a link to http://www.neangling.com on your website before submitting your link.
Once our link is on your website go to STEP 2 below.
Your link will be activated ONLY after you respond to the confirmation emails.
Here is the link information for this website:<br />
<table border="0" cellpadding="2">
	<tr>
		<th>URL</th>
		<td><a href="http://www.neangling.com">http://www.neangling.com</a></td>
	</tr>
	<tr>
		<th>Name</th>
		<td>Saltwater Fishing | Striped Bass FIshing</td>
	</tr>
	<tr>
		<th>Title (mouseover)</th>
		<td>Saltwater Fishing | Striped Bass FIshing</td>
	</tr>
	<tr>
		<th>Description</th>
		<td>Northeast Angling TV - Inshore and Offshore fishing for Striped Bass, Fluke, Shark, Tuna, Striper, Flounder, Sea Bass and much more!</td>
	</tr>
			</table>
<table class="LinkMgrCodeSample" align="center">
	<tr>
		        				<th>Text Link Only</th>
	</tr>
	<tr>
								<td>
						<textarea onclick="this.select()"><a href="http://www.neangling.com" title="Saltwater Fishing | Striped Bass FIshing">Saltwater Fishing | Striped Bass FIshing</a>: Northeast Angling TV - Inshore and Offshore fishing for Striped Bass, Fluke, Shark, Tuna, Striper, Flounder, Sea Bass and much more!</textarea>
					</td>
	</tr>
	<tr>
								<td>
						<a href="http://www.neangling.com" title="Saltwater Fishing | Striped Bass FIshing">Saltwater Fishing | Striped Bass FIshing</a>: Northeast Angling TV - Inshore and Offshore fishing for Striped Bass, Fluke, Shark, Tuna, Striper, Flounder, Sea Bass and much more!
					</td>
	</tr>
</table>
<p>
<strong>If you need to contact our webmaster with a special request or need a new category <a href="?action=contact">click here</a>.</strong>
</p>
<h2>LINK EXCHANGE STEP 2: SUBMIT YOUR LINK</h2>
<p><b>All links are posted on a reciprocal basis.</b> Please complete STEP 1 (above) before submitting this form.</p>

<p><b>PLEASE DO NOT:</b></p>
<ul>
	<li><b>submit websites with the following content:</b><ul>
		<li>adult, dating</li>
		<li>illegal, offensive, copyright infringing</li>
		<li>casinos, gambling, lottery</li>
		<li>replica products</li>
		<li>drugs</li>
		<li>Applications for Financial Services or Loans</li>
	</ul></li>
	<li><b>submit websites in other language than English</b></li>
	<li><b>submit websites with excessive advertising and no content</b></li>
	<li><b>submit the same website more than once</b></li>
	<li><b>remove the link to http://www.neangling.com after your site has been accepted</b><br>
	Our system automatically checks for the reciprocal link on a regular basis
	and if<br>the link to http://www.neangling.com cannot be found your link will be automatically removed.</li>
</ul>
<p>We reserve the right to delete any link that we, at our sole discretion, find inappropriate.</p>






<SCRIPT type="text/javascript" LANGUAGE="JavaScript">
<!--
function check_email(e){
	ok = "1234567890qwertyuiop[]asdfghjklzxcvbnm.@-_QWERTYUIOPASDFGHJKLZXCVBNM";
	for(i=0; i < e.length ;i++){
		if(ok.indexOf(e.charAt(i))<0){ 
			return false;
		}
	} 
	if (document.images) {
		re = /(@.*@)|(\.\.)|(^\.)|(^@)|(@$)|(\.$)|(@\.)/;
		re_two = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
		if (!e.match(re) && e.match(re_two)) {
			return (-1);
		} 
	}
}
function LNK_REQ_VALIDATE(oForm){
	if (oForm.U_Name.value == ""){
		alert("Please enter Webmaster name");
		oForm.U_Name.focus();
		return (false);
	}
	if (oForm.Email.value == ""){
		alert("Please enter Webmaster e-mail");
		oForm.Email.focus();
		return (false);
	}
	var email_check = check_email(oForm.Email.value);
	if(!email_check){
		alert("The email you entered is not a valid email address");
		oForm.Email.focus();
		return (false);
	}
	
	if (oForm.URL.value == ""){
		alert("Please enter Link URL");
		oForm.URL.focus();
		return (false);
	}
	if (oForm.Name.value == ""){
		alert("Please enter Link Name");
		oForm.Name.focus();
		return (false);
	}
	if (oForm.Title.value == ""){
		alert("Please enter Link Title (mouseover)");
		oForm.Title.focus();
		return (false);
	}
	if (oForm.Description.value == ""){
		alert("Please enter Link Description");
		oForm.Description.focus();
		return (false);
	}

	
	if (oForm.ReciprocalURL.value == ""){
		alert("Please enter Reciprocal URL");
		oForm.ReciprocalURL.focus();
		return (false);
	}

	
	if (!CheckCAPTCHA(oForm)){
		alert("Please enter the code value that appears");
		oForm.txtCaptcha.value='';
		oForm.txtCaptcha.focus();
		return (false);
	}
}
-->
</script>


<form name="CAT_REQ_FORM" method="post" action="#" onsubmit="return LNK_REQ_VALIDATE(this);">
<input type="hidden" name="PHPSESSID" value="9027c5b6388b8b13e8f651d6c25fd6e4">
<input type="hidden" name="action" value="save">
<input type="hidden" name="CatID" value="500">
<h3>Webmaster contact settings</h3>
<table border="0" cellpadding="2" align="center">
	<col width="120px" />
	<tr>
		<td align="right">
			<b>Name</b>
		</td>
		<td><input type="text" name="U_Name" maxlength="60" value="" class="LinkMgrWideInput"></td>
	</tr>
	<tr>
		<td align="right">
			<b>Email</b>
		</td>
		<td><input type="text" name="Email" maxlength="60" value="" class="LinkMgrWideInput"></td>
	</tr>
	<tr>
		<td align="right">
			Contact Phone
		</td>
		<td>
			<input type="text" name="Phone" maxlength="32" size="12" value="">
			Ext:
			<input type="text" name="PhoneExt" maxlength="5" size="5" value="">
		</td>
	</tr>
	<tr>
		<td align="right">
			Contact Details
		</td>
		<td><textarea rows="3" name="ContactDetails" wrap="off" class="LinkMgrWideInput"></textarea></td>
	</tr>
</table>
<h3>Link Settings</h3>
<table border="0" cellpadding="2" align="center">
	<col width="120px" />
	<tr>
		<td align="right">
			<b>URL</b>
		</td>
		<td><input type="text" name="URL" maxlength="255" value="" class="LinkMgrWideInput"></td>
	</tr>
	<tr>
		<td align="right">
			<b>Website Name</b>
		</td>
		<td><input type="text" name="Name" maxlength="255" value="" class="LinkMgrWideInput"></td>
	</tr>
	<tr>
		<td align="right">
			<b>Title (mouseover)</b>
		</td>
		<td><input type="text" name="Title" maxlength="255" value="" class="LinkMgrWideInput"></td>
	</tr>
	<tr>
		<td align="right">
			<b>Description</b>
		</td>
		<td><textarea rows="3" name="Description" wrap="off" class="LinkMgrWideInput"></textarea></td>
	</tr>
		<tr>
		<td align="right">
					<b>Reciprocal URL</b>
				</td>
		<td><input type="text" name="ReciprocalURL" maxlength="255" value="" class="LinkMgrWideInput"></td>
	</tr>
</table>
<center>
<noscript>JavaScript should be enabled in your browser to use this form.</noscript>
<script language="JavaScript" type="text/javascript" src="?action=ajax_captcha.js"></script><br />

<button type="submit" title="Submit" class="Btn">Submit</button>
<button type="button" onclick="window.location.href = '?action=cancel&amp;CatID=500';" class="Btn">Cancel</button>
</center>
</form>

	<a name="error"></a>
	<div class="LinkMgrErrorMsg"></div>

	<div id="LinkMgrFooBan">Powered by <a href="http://linkmgr.soundst.com/" title="Links Manager" target="_blank"><b>LinkMgr</b></a> of <a href="http://www.soundst.com" title="Web Design - Search Engine Optimization - SEO" target="_blank">Sound Strategies, Inc.</a></div>
</div>&nbsp;</td>
  </tr>
  <tr>
    <td>
    <div align="center">
      <center>
      <table border="0" cellpadding="5" cellspacing="0" style="border-collapse: collapse" id="AutoNumber6">
        <tr>
          <td align="center">
          <div align="left">
            <table border="0" cellpadding="2" cellspacing="0" style="border-collapse: collapse" id="AutoNumber51" width="100%">
              <tr>
                <td width="20%" align="center">
          <font size="2" face="Arial">
                <a target="_blank" title="Fishing TV Shows - Saltwater Fishing TV Shows" href="http://www.saltwater-fishing-directory.com/links.php?action=view&CatID=199">
          <img src="http://www.saltwater-fishing-directory.com/images/SWFD_Logo108.gif" border="0" ALT="Fishing TV Shows - Saltwater Fishing TV Shows" align="right" width="108" height="36"></a></font></td>
                <td width="20%" align="center"><font face="Arial" size="1">
                <a title="Fishing DVD - Saltwater Fishing DVD" target="_blank" href="http://www.captainjackies.com">
                <img alt="Fishing DVD - Saltwater Fishing DVD" src="Images/Logos/CaptainJackiesLogo120.gif" border="0" width="120" height="45"></a></font></td>
                <td width="20%" align="center"><font face="Arial">
                <a title="Saltwater Fishing - Freshwater Fishing - Free Fishing TV" target="_blank" href="http://www.efishingtv.com/">
                <img border="0" src="Images/Logos/eFishingTV108.gif" width="108" height="41"></a></font></td>
                <td width="20%" align="center"><table border="0" cellpadding="2" cellspacing="0" style="border-collapse: collapse" id="AutoNumber52">
                  <tr>
                    <td align="center"><font size="1" face="Arial">
                    <a href="Links.php?action=view&CatID=75">Resources</a></font></td>
                    <td align="center"><font size="1" face="Arial">
                    <a href="Links.php">Links</a>&nbsp;</font></td>
                    <td align="center"><font size="1" face="Arial">
          <a href="Sitemap.htm">Sitemap</a></font></td>
                  </tr>
                  <tr>
                    <td align="center"><font size="1" face="Arial">
                    <a href="http://www.neangling.com/Links.php?action=view&CatID=83">
                    Marine</a></font></td>
                    <td align="center"><font size="1" face="Arial">
                    <a href="http://www.neangling.com/Links.php?action=view&CatID=163">
                    Charters</a></font></td>
                    <td align="center"><font size="1" face="Arial">
          &nbsp;<a href="http://www.neangling.com/Links.php?action=view&CatID=240">Reports</a></font></td>
                  </tr>
                  <tr>
                    <td align="center"><font size="1" face="Arial">
                    <a href="http://www.neangling.com/Links.php?action=view&CatID=84">
                    Business</a></font></td>
                    <td align="center"><font size="1" face="Arial">
                    <a href="http://www.neangling.com/Links.php?action=view&CatID=307">
                    Services</a></font></td>
                    <td align="center">&nbsp;</td>
                  </tr>
                </table></td>
                <td width="20%" align="center"><span style="font-weight: 400">
                <font size="1" color="#000080" face="Arial">This site was built and is maintained by
          <a title="Web Design - SEO Optimization" target="_blank" href="http://www.soundst.com">Sound Strategies, Inc.</a> </font>
          </span></td>
              </tr>
            </table>
          </div>
          </td>
        </tr>
        <tr>
          <td align="center" style="border-bottom: 2px solid #800000; padding: 0">
          <p align="center"><b><font size="1" face="Arial">Fluke fishing - Tuna fishing - Shark fishing - Flounder fishing - 
          Cod fishing - Weakfish, Blackfish, Sea Bass, and much more!&nbsp; Striped Bass fishing - Saltwater 
          fishing - Striper Fishing using only Shimano reels and Shimano fishing 
          Rods!&nbsp; </font></b></td>
        </tr>
      </table>
      </center>
    </div>
    </td>
  </tr>
  </table></center>
</div>
    
<p>&nbsp;</p>

</body>
</html>