 function validateDate()
{		
		var xmlHttpReq = false;
		var self = this;
		var strUrl = '/xCheckDate.php';

		// Mozilla/Safari
		if (window.XMLHttpRequest) 
		{
			self.xmlHttpReq = new XMLHttpRequest();
		}
		// IE
		else if (window.ActiveXObject) 
		{
			self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
		}

		self.xmlHttpReq.open('POST', strUrl, true);
		self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		self.xmlHttpReq.onreadystatechange = function() 
		{
			if (self.xmlHttpReq.readyState == 4) 
			{
				updatepage(self.xmlHttpReq.responseText);
			}
		}
		self.xmlHttpReq.send(getquerystring());
}

function getCookieValue (cookieName) 
{
  var exp = new RegExp (escape(cookieName) + "=([^;]+)");
  if (exp.test (document.cookie + ";")) 
  {
    exp.exec (document.cookie + ";");
    return unescape(RegExp.$1);
  }
  else return false;
}

function getquerystring() 
{
    var form = document.forms['one'];
    var city = form.Location_City.value;
    var state = form.Location_State.value;
    var month = form.weddingmonth.value;
    var day = form.weddingdate.value;
    var year = form.weddingyear.value;
    var page = window.location.pathname;
	var session = getCookieValue('PHPSESSID');
    
	var now = new Date();
	now = now.getTime();

	if ( form.NoDateCheckbox.checked )
	{
	    qstr = 'session=' + session + '&page=' + page + '&month=' + escape(month) + '&day=' + escape(day) + '&year=' + escape(year) + '&city=' + escape(city) + '&state=' + escape(state) + '&NoDateCheckbox=on&rand=' + now;  // NOTE: no '?' before querystring	
	}
	else
	{
	    qstr = 'session=' + session + '&page=' + page + '&month=' + escape(month) + '&day=' + escape(day) + '&year=' + escape(year) + '&city=' + escape(city) + '&state=' + escape(state) + '&rand=' + now;  // NOTE: no '?' before querystring
	}
	return qstr;
}

function extractResponse(element, xml)
{
	var searchResponse = '<' + element + '>';
	var searchResponse2 = '</' + element + '>';
	return xml.substring( xml.indexOf(searchResponse) + searchResponse.length, xml.indexOf(searchResponse2) );
}

function updatepage(str)
{  
	// rip out response
	var response = extractResponse('response', str);
    document.getElementById("result").innerHTML = response;

	if ( response == 'true' )
	{
		// successful response submit the form to eloqua and redirect to thankyou page
		document.forms['one'].Market.value = extractResponse('market', str);
		
		// Set cookies for city/state
		var date = new Date();
		date.setTime(date.getTime()+(60*60*24*30*24));
		var expires = "; expires="+date.toGMTString();
		var city = document.forms['one'].Location_City.value;
		var state = document.forms['one'].Location_State.value;
		var market = extractResponse('market', str);
		document.cookie = 'city'+"="+city+expires+"; path=/";
		document.cookie = 'state'+"="+state+expires+"; path=/";
		document.cookie = 'market'+"="+market+expires+"; path=/";

		document.forms['one'].Rating.value = '';				    		    		
		document.forms['one'].Market.value = extractResponse('market', str);		
		
		document.forms['one'].submit();
		return;
	}

	var status = extractResponse('status', str);
	if ( status == 'declineddate' )
	{
		// failed date submit the form to eloqua and redirect to no service closed date page
		document.forms['one'].Rating.value = 'Sold Out Date';				    		    		
		document.forms['one'].Market.value = extractResponse('market', str);		
		document.forms['one'].submit();
		return;
	}

	if ( status == 'declinedmarket' )
	{
		document.forms['one'].Market.value = 'OOM-na';
		document.forms['one'].Rating.value = 'Declined';				    		    
		document.forms['one'].submit();	    	
		return;
	}

	// rip out error message
	var message = extractResponse('message', str);
	var errors = message.split(';');

	var num=0;
	var errorMessage = '';
	while (num < errors.length)
 	{
		errorMessage += errors[num] + '<br>';
		num+=1;
	}
    document.getElementById("error").innerHTML = errorMessage;
    
	// rip out nearest match
	var match = extractResponse('nearestMatch', str);
	var matches = match.split(';');

	if ( matches.length > 0 )
	{
		var num=0;
		var nearestMatch = '';		
		while (num < matches.length)
	 	{
	 		if ( matches[num].length > 0 )
	 		{
				nearestMatch += matches[num] + '? ';
	 		}
			num+=1;	 		
		}
		
		if ( nearestMatch.length > 0 )
		{
			// Display nearest match
		    document.getElementById("nearestMatch").innerHTML = nearestMatch = 'Did you mean ' + nearestMatch;
		}
		else
		{
			// Submit the page to eloqua and redirect to service declined page 
		    document.getElementById("nearestMatch").innerHTML = 'Unable to locate city, please check spelling.';
		}
	}    
 }