<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
<title>Saltwater Fishing | Striped Bass FIshing | Links: Link Exchange</title>
<meta http-equiv="description" content="Northeast Angling TV - Inshore and Offshore fishing for Striped Bass, Fluke, Shark, Tuna, Striper, Flounder, Sea Bass and much more!: Link Exchange" />
<meta http-equiv="keywords" content="Saltwater Fishing, Striped Bass FIshing" />
<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>:
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="74">
<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=74';" 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>