<!--//
var temp="";
var lhs = "daudia";
var rhs = "carmelprocess.com";
var type="", val="";
function makeMail(lhs,rhs)
{
	temp ="";
	temp +=lhs;
	temp +="@";
	temp +=rhs;
}
// runIt : This function creates
// the various mail statements for
// text, image, map, class
// type : refer to previous line
// value : if extra params are needed
function runIt()
{
	makeMail(lhs,rhs);
	var content ="";

	content +="<a href=\"mailto:";
	content +=temp;
	if (type == "class")
	{
		content +="\" class=\"";
		content +=val;
	}
	content +="\">";
	if (type == "image")
	{
		content +=val;
	} else {
		content +=temp;
	}
	content +="</a>";
	document.write(content);
	
	return;
}

var altSendData = false;
var userEmail = "";
function BuildTechPapersContent()
{
    var htmlPage = "";
    htmlPage += "<span class='medium bold'>Food</span><br />\n";
    htmlPage += "<ul class='pdf_list'>";
    htmlPage += "<li><a href='pdfs/Water Immersed Cooking and Chilling.pdf' target='_blank'>Water Immersed Cooking &amp; Chilling System</a></li>\n";
    htmlPage += "</ul>"
    htmlPage += "<span class='medium bold'>Dairy</span><br />\n";
    htmlPage += "<ul class='pdf_list'>";
    htmlPage += "<li><a href='pdfs/Milk Standardization Paper.pdf' target='_blank'>Milk Standardization</a></li>\n";
    htmlPage += "</ul>"
    htmlPage += "<span class='medium bold'>Beverage</span><br />\n";
    htmlPage += "<p class='papers_list_text'></p>\n";
    htmlPage += "<span class='medium bold'>Pharmaceutical</span><br />\n";
    htmlPage += "<p class='papers_list_text'></p>\n";
    htmlPage += "<span class='medium bold'>General</span><br />\n";
    htmlPage += "<ul class='pdf_list'>";
    htmlPage += "<li><a href='pdfs/Economics of Direct Steam Injection.pdf' target='_blank'>Economics of Direct Steam Injection</a></li>\n";
    htmlPage += "</ul>"
    
    return htmlPage;
}
function setCookie(c_name,value,expiredays)
{
    var exdate=new Date();
    exdate.setDate(exdate.getDate()+expiredays);
    document.cookie=c_name+ "=" +escape(value)+
    ((expiredays==null) ? "" : ";expires="+exdate.toGMTString());
}
function getCookie(c_name)
{
    if (document.cookie.length>0)
      {
      c_start=document.cookie.indexOf(c_name + "=");
      if (c_start!=-1)
        { 
        c_start=c_start + c_name.length+1; 
        c_end=document.cookie.indexOf(";",c_start);
        if (c_end==-1) c_end=document.cookie.length;
        return unescape(document.cookie.substring(c_start,c_end));
        } 
      }
    return "";
}
function checkCookie()
{
    username=getCookie('TechPaperUser');
    
    if (username!=null && username!="")
    {
        var htmlPage = BuildTechPapersContent();
        var element = document.getElementById("content");
			
		if ( element != null )
		{
		    // Override the existing content
		    element.innerHTML = htmlPage;
		}
		
		element = document.getElementById("page_title");
		if ( element != null )
		{
		    element.innerHTML = "Technical Papers - PDF Documents";
		}
    }
}
function init()
{
}

function isBlank(s)
{
	for ( var i = 0; i < s.length; i++ )
	{
		var c = s.charAt(i);
		if ( (c != ' ') &&
		     (c != '\n') &&
			 (c != '\t') &&
			 (c != '\r') )
		{
			return false;
		}
	}
	return true;
}
function isValidEmail(s)
{
	var bFoundName = false;
	var bFoundAtSymbol = false;
	var bFoundDomain = false;
	var bFoundPeriod = false;
	var bFoundExtension = false;
	
	var bInvalidChar = false;
	
	// Define a starting position
	var lastPos = 0;
	var iPos = 0;
	
	// Look for characters
	for (iPos = 0; iPos < s.length; iPos++)
	{
		// Record the current character
		var c = s.charAt(iPos);
		
		// If we don't have an at symbol yet, look for valid chars
		if ( c != '@' )
		{
			if ( ( c >= 'a' && c <= 'z' ) || // Look for lower case characters
			     ( c >= 'A' && c <= 'Z' ) || // Look for upper case characters
				 ( c >= '0' && c <= '9' ) || // Look for numerals
				 ( c == '!' || c == '$' || c == '\'' || 
				   c == '*' || c == '+' || c == '-' || 
				   c == '/' || c == '=' || c == '?' || 
				   c == '^' || c == '_' || c == '`' || 
				   c == '{' || c == '}' || c == '|' || 
				   c == '~' ) || // Look for these special chars
				   ( iPos != 0 && iPos != (s.length - 1) &&  c == '.' ) // Period not first or last
			   )
			{
				bFoundName = true;
			}
			else
			{
				bInvalidChar = true;
				break;
			}
		}
		else
		{
			if (iPos > 0)
			{
				bFoundAtSymbol = true;
				lastPos = iPos;
			}
			break;
		}
	}
	// Look for characters after @ symbol
	if (bFoundName && bFoundAtSymbol)
	{
		// Increment past the symbol
		++lastPos;
		// Loop through the rest
		for (iPos = lastPos; iPos < s.length; iPos++)
		{
			// Record the current character
			var c = s.charAt(iPos);
			
			if ( ( c >= 'a' && c <= 'z' ) || // Look for lower case characters
			     ( c >= 'A' && c <= 'Z' ) || // Look for upper case characters
				 ( c >= '0' && c <= '9' ) || // Look for numerals
				 ( iPos != 0 && iPos != (s.length - 1) &&  c == '.' ) || // Period not first or last
				 ( iPos != 0 && iPos != (s.length - 1) &&  c == '-' ) // Hyphen not first or last
			   )
			{
				bFoundDomain = true;
				
				if (iPos > lastPos)
				{
					if (c == '.')
					{
						bFoundPeriod = true;
					}				
				}
				if (bFoundPeriod && c != '.')
				{
					bFoundExtension = true;
				}
			}
			else
			{
				bInvalidChar = true;
				break;
			}
		}
	}
	// Check that we met all conditions
	if ( 
	     bFoundName && bFoundAtSymbol && 
	     bFoundDomain && bFoundPeriod && 
		 bFoundExtension && !bInvalidChar
	   )
	{
		return true;
	}	
	return false;
}

function validateForm()
{
	var isValid = true;
	var isUnitedStates = false;
	var element;
	// Verify Contact Name
	if ( this.document.literature_request.contact_name.value == null || 
	     this.document.literature_request.contact_name.value == "" || 
		 isBlank(this.document.literature_request.contact_name.value)  )
	{
		element = document.getElementById("contact_name_element");
		element.innerHTML = "Please enter a contact name.";
		isValid = false;
	}
	else
	{
		element = document.getElementById("contact_name_element");
		element.innerHTML = "";
	}
	// Verify Organization Name
/*	if ( this.document.literature_request.organization_name.value == null || 
	     this.document.literature_request.organization_name.value == "" || 
		 isBlank(this.document.literature_request.organization_name.value)  )
	{
		element = document.getElementById("organization_name_element");
		element.innerHTML = "Please enter an organization name.";
		isValid = false;
	}
	else
	{
		element = document.getElementById("organization_name_element");
		element.innerHTML = "";
	}*/
	// Verify Regarding Field
	if ( this.document.literature_request.regarding.value == null || 
	     this.document.literature_request.regarding.value == "" || 
		 this.document.literature_request.regarding.value == "null" ||
		 isBlank(this.document.literature_request.regarding.value)  )
	{
		element = document.getElementById("regarding_element");
		element.innerHTML = "Please select the reason for your inquiry.";
		isValid = false;
	}
	else
	{
		element = document.getElementById("regarding_element");
		element.innerHTML = "";
	}	
	// Verify Email Address
	if ( !isValidEmail(this.document.literature_request.email_address.value)  )
	{
		element = document.getElementById("email_address_element");
		element.innerHTML = "Please enter a valid email address.";
		isValid = false;
	}
	else
	{
		element = document.getElementById("email_address_element");
		element.innerHTML = "";
	}
	
	if (!isValid)
	{
		element = document.getElementById("sorry");
		element.innerHTML = "Sorry, we need more information to complete your request.<br />Please review the errors below indicated in red.<br /><br />";
	}
	else
	{
		element = document.getElementById("sorry");
		element.innerHTML = "";
	}
	// Jump to the top of the window
	window.scroll(0,0);
	
	return isValid;
}

function isResponseValid(doc)
{
	var root = doc.documentElement;
	var xml_response;
	var data_element;
	var noErrorFound = true;
	// Get the root node's first child
	if (root.hasChildNodes())
	{
		// Assign the child nodes as xml response
		xml_response = root.childNodes;
	}
	// Look at only the first node
	if (xml_response[0].hasChildNodes())
	{
		// Get the nodes contained in the <xmlresponse>
		data_element = xml_response[0].childNodes;
		
		for (var i = 0; i < data_element.length || !noErrorFound; i++)
		{
			// Check for the node <error>
			if ( data_element[i].nodeName == "error" )
			{
				// We found at least one error while processing response
				noErrorFound = false;
			}
		}
	}
	return noErrorFound;
}

function setQueryString()
{
	queryString = "";
	//var frm = document.forms[0];
	var frm = this.document.literature_request;
	var numberElements = frm.elements.length;
	for (var i = 0; i < numberElements; i++)
	{
		if (i < numberElements - 1)
		{
			queryString += frm.elements[i].name + "=" + encodeURIComponent(frm.elements[i].value) + "&";
		}
		else
		{
			queryString += frm.elements[i].name + "=" + encodeURIComponent(frm.elements[i].value);
		}
	}
}
function handleResponse()
{
	var bValidResponse = false;
	var element;

	if (request.readyState == 4)
	{
		if (request.status == 200)
		{
			// Set the content section to the message
			var output = "";
			if ( !altSendData )
			{
			    output += "<p class='medium'>Thank you for your submission.</p>\n";
			    output += "<p class='medium'>Please expect a response in the next 3-5 business days.</p>\n";
			    output += "<p class='medium'>Return to the <a href='contact_us.html'>Contact Us</a> page.</p>\n";
			}
			else
			{
			    // Replace the content with the 
			    output += BuildTechPapersContent();
			    
			    // Set the cookie, for a long time
			    setCookie("TechPaperUser",emailUser,365);
			}
		
			var error_output = "";
			error_output += "<p class='medium'>We are sorry, an error was encountered while processing your request.</p>\n";
			error_output += "<p class='medium'>Please try again, or</p>\n";
			error_output += "<p class='medium'>Send us an <a href='mailto:daudia@sbcglobal.net'>email</a>.</p>\n";
			
			// Pull back the XML from the request			
			var respXML = request.responseXML;
			
			//alert(request.responseText); // For debugging
			
			// Parse the XML Response to see that no errors encountered
			bValidResponse = isResponseValid(respXML);
			
			element = document.getElementById("content");
			
			// If we have a valid response
			if (bValidResponse)
			{
				element.innerHTML = output;
				return true;
			}
			// Otherwise display an error message
			else
			{
				element.innerHTML = error_output;
				return false;
			}
		}
		else
		{
			error_output += "<br><p class='medium'>Browser returned the ready state, " + request.readyState + ", with a status of " + request.status + "</p>\n";
			element.innerHTML = error_output;
			return false;
		}
	}
}
function initReq(reqType,url,isAsynch)
{
	request.onreadystatechange=handleResponse;
	request.open(reqType,url,isAsynch);
	request.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
	request.send(queryString);
}

function httpRequest(reqType, url, asynch)
{
	var element;
	if (window.XMLHttpRequest)
	{
		request = new XMLHttpRequest();
	}
	else if (window.ActiveXObject)
	{
		request = new ActiveXObject("Msxml2.XMLHTTP");
		if (!request)
		{
			request = new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	if (request)
	{
		initReq(reqType,url,asynch);
		return true;
	}
	else
	{
		var error_output = "";
		
		if ( !altSendData )
		{
		    error_output += "<p class='medium'>We are sorry, your browser does not support HTTP Requests.</p>\n";
		    error_output += "<p class='medium'>Please upgrade your browser and try again, or</p>\n";
		    error_output += "<p class='medium'>Send us an email directly from the <a href='contact_us.html'>Contact Us</a> page.</p>\n";	
		}
		else
		{
		    error_output += "<p class='medium'>We are sorry, your browser does not support HTTP Requests.</p>\n";
		    error_output += "<p class='medium'>Please upgrade your browser and try again</p>\n";	
		}
		element = document.getElementById("content");
		element.innerHTML = error_output;
		return false;
	}
}
function sendData(url, type)
{
	var element;
	
	if (type == "paper_request")
	{
	    altSendData = true;
	    emailUser = this.document.literature_request.email_address.value;
	}
	
	if ( !document.getElementById("content") )
	{
		alert("Please upgrade your browser, or send us an email for your requests.");
		return;
	}
	// Only make a request if we have a valid form
	if ( validateForm() )
	{
		setQueryString();
		element = document.getElementById("content");
		element.innerHTML = "<p class='medium'>Processing your request, please wait.</p>\n";
		httpRequest("POST",url,true);
	}
}

/*********************************************************************************
	(Modified) Simple Drop-Down Menu
	
	Description:	One Level Drop-Down Menu with Timeout effect
	
	Written By:		Unknown @ http://javascript-array.com 
	Written On:		December 10, 2006
	
	Modified By:	Keith McDonald
	Modified On:	May 15, 2009
	Modified:		Added draw/fade concept for the selection of tab and subitems;
					Whenever the tab is selected or any of its subitems, the 
					id is recorded as the last item and when a new tab is opened
					the tab switches the "class" to take on a different style to 
					show it has been selected.  This "class" returns to original
					"class" when the timer for that selection event expires.

**********************************************************************************/
var timeout         = 500;
var closetimer		= 0;
var ddmenuitem      = 0;
var openedLayer = "";
// open hidden layer
function mopen(id)
{	
	// Added
	if ((lastItem.length > 0) && (openedLayer != id)) 
	{
		setFade(lastItem);
	}
	
	openedLayer = id;
	
	// cancel close timer
	mcancelclosetime();

	// close old layer
	if(ddmenuitem) ddmenuitem.style.visibility = 'hidden';

	// get new layer and show it
	ddmenuitem = document.getElementById(id);
	ddmenuitem.style.visibility = 'visible';

}
// close showed layer
function mclose()
{
	if(ddmenuitem) ddmenuitem.style.visibility = 'hidden';
	// Added 
	if (ddmenuitem && lastItem.length > 0)
	{ 
		setFade(lastItem);
	}
}

// go close timer
function mclosetime()
{
	closetimer = window.setTimeout(mclose, timeout);
}

// cancel close timer
function mcancelclosetime()
{
	if(closetimer)
	{
		window.clearTimeout(closetimer);
		closetimer = null;
	}
}

// close layer when click-out
document.onclick = mclose; 

// The last item that was selected in the navigation
var lastItem = "";

// Added
function draw( itemName ) 
{
	if ((lastItem.length > 0) && (lastItem != itemName)) setFade(lastItem);
	
	var itemMid = itemName + '_mid_hover';
	var targetAnchor = document.getElementById(itemMid);
	targetAnchor.className = 'nav_mid_hover' ;}

// Added
function fade(itemName)
{	
	lastItem = itemName;
}

// Added 
function setFade( itemName ) 
{
	var itemMid = itemName + '_mid_hover';
	var targetAnchor = document.getElementById(itemMid);
	targetAnchor.className = 'nav_mid' ;
}
//-->
