function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function getCookieValue( cookieName ) {
	var theCookie = "" + document.cookie;
	var ind = theCookie.indexOf( cookieName );
	if ( ind == -1 || cookieName == "" )
		return "";
	var ind1 = theCookie.indexOf( ';', ind );
	if ( ind1 == -1 )
		ind1 = theCookie.length;
	return unescape( theCookie.substring(ind + cookieName.length + 1, ind1) );
}

function setCookieValue( cookieName, value) {
	document.cookie = cookieName + "=" + value + ";PATH=/";
}

function setLastBannerImage( img ) {
	setCookieValue( "lastbanner", img );
}



var Psyn = {};

Psyn.webpath = "/";
Psyn.servletroot = "/";


var isHome = false;
var lastbanner = getCookieValue( "lastbanner" );

var bannerdiv= "<div id='banner'";
if ( fV >= 8 ) {
	if ( lastbanner.length > 0 )
		bannerdiv += " class='banner" + lastbanner + "'";
	bannerdiv += "></div>";
}
else
	bannerdiv += "><img src=" + Psyn.webpath + "'img/banner_placeholder.jpg' alt='Psynergy' /></div>";


Psyn.emailRE = /^((?:(?:(?:\w[\.\-\+]?)*)\w)+)\@((?:(?:(?:\w[\.\-\+]?){0,62})\w)+)\.(\w{2,6})$/;
Psyn.contactFromFields = [ "name", "email", "phone", "addr", "city", "state", "zip", "affiliation", "interest", "message", "captcha", "optin", "submit", "reset" ];
Psyn.currentRequest = null;

Psyn.newCaptcha = function() {
	var el = document.getElementById( "captcha_image" );
	if ( el ) {
		el.src = Psyn.servletroot + "captcha_image.jpg?t=" + Math.random();
	}
}

Psyn.sendContactRequest = function( tag ) {

	// cancel out any pending requests:
	if ( Psyn.currentRequest != null ) {
		YAHOO.util.Connect.abort( Psyn.currentRequest );
		Psyn.currentRequest = null;
	}
	
	// pre-filter:
	var badmsg = "";
	var nm = document.forms["contact"]["name"].value;
	if ( nm.length == 0 )
		badmsg = "Please enter your name.";
	var em = document.forms["contact"]["email"].value;
	if ( em.length == 0 ) {
		if ( badmsg.length > 0 )
			badmsg += "<br />";
		badmsg += "Please enter your email address.";
	}
	else if ( !em.match(Psyn.emailRE) ) {
		if ( badmsg.length > 0 )
			badmsg += "<br />";
		badmsg += "Please enter a valid email address.";
	}
	var cp = document.forms["contact"]["captcha"].value;
	if ( cp.length == 0 ) {
		if ( badmsg.length > 0 )
			badmsg += "<br />";
		badmsg += "Please enter the Captcha characters.";
	}
	
	var elt = document.getElementById( "result_msg" );
	if ( elt ) {
		if ( badmsg.length > 0 ) {
			elt.innerHTML = "<p>" + badmsg + "</p>";
			return;
		}
		else {
			elt.innerHTML = "<p>Your request is being submitted - please wait a moment.</p>";
		}
	}
	
	// ask the server for details:
	// success callback:
	var handleSuccess = function( o ) {
		YAHOO.log( "Psyn.sendContactRequest success", "info" );
		var result = {};
		var form = document.forms["contact"];
		
		if ( o.responseText != undefined ) {
			YAHOO.log( "Psyn.sendContactRequest raw response: " + o.responseText, "debug" );
			result = eval( '(' + o.responseText + ')' );
		}
		var html = "";
		
		if ( result.success ) {
			html += "<p>Your request has been submitted - we will be in touch with you shortly!</p>";
			for ( var n = 0; n < Psyn.contactFromFields.length; n++ ) {
				var f = Psyn.contactFromFields[ n ];
				var inp = form[ f ];
				if ( inp ) {
					if ( inp.type == "text" || inp.type == "textarea" ) {
						inp.value = "";
					}
					else if ( inp.type.indexOf("select") != -1 ) {
						inp.selectedIndex = 0;
					}
				}
			}
		}
		else
			html += "<p>" + unescape(result.message).replace("\n","<br />") + "</p>";
		
		var elt = document.getElementById( "result_msg" );
		if ( elt ) {
			elt.innerHTML = html;
		}
		
		// enable the form fields:
		for ( var n = 0; n < Psyn.contactFromFields.length; n++ ) {
			var f = Psyn.contactFromFields[ n ];
			var inp = form[ f ];
			if ( inp )
				inp.disabled = false;
		}
		
		Psyn.newCaptcha();
		document.forms.contact.captcha.value = "";
	}
	
	// failure callback:
	var handleFailure = function( o ) {
		YAHOO.log( "Psyn.sendContactRequest failed", "warn" );
		
		var elt = document.getElementById( "result_msg" );
		if ( elt ) {
			elt.innerHTML = "<p>An error occurred while trying to send your request - please try again later.</p>";
		}
		
		// enable the form fields:
		var form = document.forms["contact"];
		for ( var n = 0; n < Psyn.contactFromFields.length; n++ ) {
			var f = Psyn.contactFromFields[ n ];
			form[ f ].disabled = false;
		}
		
		Psyn.newCaptcha();
		document.forms.contact.captcha.value = "";
	}
	
	var callback = { success:handleSuccess, failure:handleFailure };
	
	var vars = "list=requests";
	if ( tag != 'index' )
		vars += '_' + tag;
	vars += '&fmt=json';
	
	var form = document.forms["contact"];
	
	for ( var n = 0; n < Psyn.contactFromFields.length; n++ ) {
		var f = Psyn.contactFromFields[ n ];
		var inp = form[ f ];
		if ( inp ) {
			if ( inp.type == "text" || inp.type == "textarea" || inp.type == "hidden" ) {
				if ( inp.value ) {
					vars += "&" + f + "=" + escape( inp.value );
				}
			}
			else if ( inp.type.indexOf("select") != -1  ) {
				if ( inp.multiple ) {
					var v = "";
					for ( var s = 0; s < inp.options.length; s++ ) {
						var opt = inp.options[ s ];
						if ( opt.selected ) {
							if ( v.length > 0 )
								v = v + ",";
							v = v + opt.value;
						}
					}
					vars += "&" + f + "=" + escape( v );	
				}
				else if ( inp.selectedIndex != -1 )
					vars += "&" + f + "=" + escape( inp.options[inp.selectedIndex].value );	
			}
			else if ( inp.type == "checkbox" ) {
				if ( inp.checked ) {
					vars += "&" + f + "=" + escape( inp.value );
				}
			}
			inp.disabled = true;
		}
	}
	
	try {
		Psyn.currentRequest = YAHOO.util.Connect.asyncRequest( 'POST', Psyn.servletroot + 'servlet/HandleForm', callback, vars );
	}
	catch (e) {
		var elt = document.getElementById( "result_msg" );
		if ( elt ) {
			elt.innerHTML = "<p>An error occurred while trying to send your request - please try again later.</p>";
		}
	}
}



Psyn.loaded = function() {
	var ff = Psyn.webpath + "img/banner.swf?intro=";
	ff += isHome ? "1" : "0";
	if ( !isHome && lastbanner.length > 0 )
		ff += "&lastimg=" + lastbanner;
	var fe = new FlashEmbed( ff, 8, "975", "126", "#999999", "psynergy_banner" );
	fe.setParam( "wmode", "transparent" );
	fe.create( "banner" );
}

window.onload = Psyn.loaded;
