// JavaScript Document
// Zydeco Digital LLC
// Author: Randall Toepfer

// AJAX Request and Response
var request = false;
try {
 request = new XMLHttpRequest();
} catch (trymicrosoft) {
 try {
   request = new ActiveXObject("Msxml2.XMLHTTP");
 } catch (othermicrosoft) {
   try {
	 request = new ActiveXObject("Microsoft.XMLHTTP");
   } catch (failed) {
	 request = false;
   }  
 }
}

if (!request)
 	alert("Error initializing XMLHttpRequest!");

// Description: Validate email address structure on html form
function echeck(str) 
{
		var at="@"
		var dot="."
		var lat=str.indexOf(at)
		var lstr=str.length
		var ldot=str.indexOf(dot)
		if (str.indexOf(at)==-1){
		   alert("Invalid E-mail ID")
		   return false
		}

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		   alert("Invalid E-mail ID")
		   return false
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		    alert("Invalid E-mail ID")
		    return false
		}

		 if (str.indexOf(at,(lat+1))!=-1){
		    alert("Invalid E-mail ID")
		    return false
		 }

		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		    alert("Invalid E-mail ID")
		    return false
		 }

		 if (str.indexOf(dot,(lat+2))==-1){
		    alert("Invalid E-mail ID")
		    return false
		 }
		
		 if (str.indexOf(" ")!=-1){
		    alert("Invalid E-mail ID")
		    return false
		 }

 		 return true					
	}

// Description: Sends request to server to add email address to newsletter database
function addEmail() {
	var emailID=document.newsletter.newsletteremail
	
	if ((emailID.value==null)||(emailID.value=="")){
		alert("Please Enter your Email ID")
		emailID.focus()
		return false
	}
	
	if (echeck(emailID.value)==false){
		emailID.value=""
		emailID.focus()
		return false
	}
			
	var url = "./functions/addnewsletter.php?email=" + escape(emailID.value);
	request.open("GET", url, true);
	request.onreadystatechange = updateDivNewsletter;
	
	document.getElementById("divNewsletter").innerHTML = "<span class=\"b12\"><strong>Our Newsletter</strong></span><br><br><span class=\"b10\">Processing...</span>";
	
	request.send(null);
}
	
// Description: Sends email to server for processing
function sendEmail() {
	var yourName=document.contactform.yourname;
	var emailID=document.contactform.emailID;
	var emailmessage=document.contactform.emailmessage;
	
	if ((yourName.value==null)||(yourName.value=="")){
		alert("Please Enter Your Name");
		yourName.focus();
		return false;
	}
	
	if ((emailID.value==null)||(emailID.value=="")){
		alert("Please Enter your Email ID");
		emailID.focus();
		return false;
	}		
	
	if ((emailmessage.value==null)||(emailmessage.value=="")){
		alert("Please Enter Message");
		message.focus();
		return false;
	}
	
	if (echeck(emailID.value)==false){
		emailID.value="";
		emailID.focus();
		return false;
	}
	
	var url = "./functions/sendemail.php";
	var variables = "email=" + escape(emailID.value) + "&name=" + escape(yourName.value) + "&message=" + escape(emailmessage.value);
			
	request.open("POST", url, true);
	request.onreadystatechange = updateContactForm;
	
	document.getElementById("divContactForm").innerHTML = "\
		<table width=\"411\"  border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\
    	<tr>\
			<td width=\"119\">\
				<div style=\"padding-left:10px;padding-right:15px; padding-top:3px\" align=\"right\"> \
					<span class=\"b10\">Processing...</span>\
				</div>\
			</td>\
		</tr>\
		</table>";
	
	request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	request.send( variables );	
}

function updateDivNewsletter() 
{
     if (request.readyState == 4) 
	 {
       if (request.status == 200) 
	   {
         // var response = request.responseText.split("|");
         // document.getElementById("order").value = response[0];
         // document.getElementById("address").innerHTML = response[1].replace(/\n/g, ""); 
		 		 
		 var response = request.responseText
		 var success  = "Success"
		 var duplicate = "Duplicate" 	 
		 
		 
		 if( response.indexOf(success) > -1 )
		 {
		 	document.getElementById("divNewsletter").innerHTML = "<span class=\"b12\"><strong>Our Newsletter</strong></span><br><br><span class=\"b10\">Address Added</span>";
		 }
		 
		 else if( response.indexOf(duplicate) > -1 )
		 {
			 document.getElementById("divNewsletter").innerHTML = "<span class=\"b12\"><strong>Our Newsletter</strong></span><br><br><span class=\"b10\">Email Already Added</span>";
		 }		 
		 else
		 {
			 document.getElementById("divNewsletter").innerHTML = "<span class=\"b12\"><strong>Our Newsletter</strong></span><br><br><span class=\"b10\">Error</span>";
		 }	
	   } 
	   else
	   {
         alert("Error: status is " + request.status);
		 
		 document.getElementById("divNewsletter").innerHTML = "<span class=\"b12\"><strong>Our Newsletter</strong></span><br><br><span class=\"b10\">Error</span>";
	   }
     }
}

function updateContactForm() 
{
     if (request.readyState == 4) 
	 {
       if (request.status == 200) 
	   {
         // var response = request.responseText.split("|");
         // document.getElementById("order").value = response[0];
         // document.getElementById("address").innerHTML = response[1].replace(/\n/g, ""); 		 
    	 document.getElementById("divContactForm").innerHTML = "\
			<table width=\"411\"  border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\
			<tr>\
				<td width=\"119\">\
					<div style=\"padding-left:10px;padding-right:15px; padding-top:3px\" align=\"right\"> \
						<span class=\"b10\">Email Sent!</span>\
					</div>\
				</td>\
			</tr>\
			</table>";			
       } 
	   else
	   {
         alert("Error: status is " + request.status);
		 document.getElementById("divContactForm").innerHTML = "\
			<table width=\"411\"  border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\
			<tr>\
				<td width=\"119\">\
					<div style=\"padding-left:10px;padding-right:15px; padding-top:3px\" align=\"right\"> \
						<span class=\"b10\">Error</span>\
					</div>\
				</td>\
			</tr>\
			</table>";
	   }
     }
}
   
// -----------------------------------------------------------------------------
// Globals
// Major version of Flash required
var requiredMajorVersion = 6;
// Minor version of Flash required
var requiredMinorVersion = 0;
// Revision of Flash required
var requiredRevision = 0;
// the version of javascript supported
var jsVersion = 1.0;

// Array holding arrow images used to show/hide detailed information
var aryImages = new Array(4);

aryImages[0] = "images/arr1.jpg";
aryImages[1] = "images/arr1flip.jpg";  
aryImages[2] = "images/arr2.jpg";
aryImages[3] = "images/arr2flip.jpg";

for (i=0; i < aryImages.length; i++) 
{
	var preload = new Image();
	preload.src = aryImages[i];
}

function swap(whichImg, whichLayer) 
{	
	var curImg = document[whichImg].src;
		
	if( curImg.match( aryImages[0] ) != null )
	{
		document[whichImg].src = aryImages[1];
	}
	else if( curImg.match( aryImages[1] ) != null )
	{
		document[whichImg].src = aryImages[0];
	}
	else if( curImg.match( aryImages[2] ) != null )
	{
		document[whichImg].src = aryImages[3];
	}
	else if( curImg.match( aryImages[3] ) != null )
	{
		document[whichImg].src = aryImages[2];
	}
		
	// toggle division tag
	if (document.getElementById)
	{
		// this is the way the standards work
		var style2 = document.getElementById(whichLayer).style;
		style2.display = style2.display? "":"block";
	}
	else if (document.all)
	{
		// this is the way old msie versions work
		var style2 = document.all[whichLayer].style;
		style2.display = style2.display? "":"block";
	}
	else if (document.layers)
	{
		// this is the way nn4 works
		var style2 = document.layers[whichLayer].style;
		style2.display = style2.display? "":"block";
	}
}

<!-- // Detect Client Browser type
var isIE  = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;
jsVersion = 1.1;
// JavaScript helper required to detect Flash Player PlugIn version information
function JSGetSwfVer(i){
	// NS/Opera version >= 3 check for Flash plugin in plugin array
	if (navigator.plugins != null && navigator.plugins.length > 0) {
		if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
			var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
      		var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
			descArray = flashDescription.split(" ");
			tempArrayMajor = descArray[2].split(".");
			versionMajor = tempArrayMajor[0];
			versionMinor = tempArrayMajor[1];
			if ( descArray[3] != "" ) {
				tempArrayMinor = descArray[3].split("r");
			} else {
				tempArrayMinor = descArray[4].split("r");
			}
      		versionRevision = tempArrayMinor[1] > 0 ? tempArrayMinor[1] : 0;
            flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
      	} else {
			flashVer = -1;
		}
	}
	// MSN/WebTV 2.6 supports Flash 4
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
	// WebTV 2.5 supports Flash 3
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
	// older WebTV supports Flash 2
	else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
	// Can't detect in all other cases
	else {
		
		flashVer = -1;
	}
	return flashVer;
} 
// If called with no parameters this function returns a floating point value 
// which should be the version of the Flash Player or 0.0 
// ex: Flash Player 7r14 returns 7.14
// If called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available
function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision) 
{
 	reqVer = parseFloat(reqMajorVer + "." + reqRevision);
   	// loop backwards through the versions until we find the newest version	
	for (i=25;i>0;i--) {	
		if (isIE && isWin && !isOpera) {
			versionStr = VBGetSwfVer(i);
		} else {
			versionStr = JSGetSwfVer(i);		
		}
		if (versionStr == -1 ) { 
			return false;
		} else if (versionStr != 0) {
			if(isIE && isWin && !isOpera) {
				tempArray         = versionStr.split(" ");
				tempString        = tempArray[1];
				versionArray      = tempString .split(",");				
			} else {
				versionArray      = versionStr.split(".");
			}
			versionMajor      = versionArray[0];
			versionMinor      = versionArray[1];
			versionRevision   = versionArray[2];
			
			versionString     = versionMajor + "." + versionRevision;   // 7.0r24 == 7.24
			versionNum        = parseFloat(versionString);
        	// is the major.revision >= requested major.revision AND the minor version >= requested minor
			if ( (versionMajor > reqMajorVer) && (versionNum >= reqVer) ) {
				return true;
			} else {
				return ((versionNum >= reqVer && versionMinor >= reqMinorVer) ? true : false );	
			}
		}
	}	
	return (reqVer ? false : 0.0);
}
