// JavaScript Document

var map = null;
var geocoder = null;
var error = "";
var dateArray = new Array();
var lastKey = null;

$(document).ready(function() {  
	$('#noJS').addClass('hidden');
	$('#yesJS').removeClass('hidden');
  $('#dropBox').keyup(function() {
	lastKey = parseInt((new Date().getTime()) / 1000);
	if (document.getElementById('dropBox').value.length >= 2) {
	  setTimeout("generateVenues()", 1000);
	  $("#searchIcon").removeClass("hidden");
	}
  });
  document.eventSubmit.venue.value = "";
});

function startForm() {
  $('#intro').slideUp(500, function() {
    $('#wholeForm').slideDown(500, function() {
	  if (!usingIE) {
	    $('#statusLoc').animate({ color:"#d33c33" },500);
	    $('#arrowsLoc').animate({ color:"#d33c33" },500);
	  }
	});
  });
}

function generateVenues() {
  var nowTime = parseInt((new Date().getTime()) / 1000);
  if (nowTime >= lastKey) {
    var ajax = startAJAX();
    var text = document.getElementById('dropBox').value;
    ajax.open("GET", "/pages/55/ajax.php?venueSearch="+text, true);
    ajax.send(null);
    ajax.onreadystatechange = function() { if(ajax.readyState == 4) {
		document.getElementById('venueList').innerHTML = "<span class='bigText'>Select a venue from the list.</span><br><br>" + ajax.responseText;
		$('#venueList').show();
		$('#searchIcon').addClass("hidden");
	}};
  }
}
  
function fillBox(text) {
  document.eventSubmit.venueID.value = text;
  document.getElementById('divWhere').innerHTML = "<img src='/images/icons/ajax.gif'> <b>Loading...</b>";
  var ajax = startAJAX();
  ajax.open("GET", "/pages/55/ajax.php?venueDetail="+text, true);
  ajax.send(null);
  ajax.onreadystatechange = function() {
    if(ajax.readyState == 4) {
	  var tempArray = ajax.responseText.split("|");
	  document.getElementById('divWhere').innerHTML = "<p class='venueDetail'>" + tempArray[1] + "</p><p><a class='button' href='#' onclick='startDates();return false;'>Continue &raquo;</a></p><p class='small grey'>If any of the above venue information is incorrect, please <a class='grey' href='mailto:dbreisch@visitquadcities.com'>let us know</a>.</p>";
	  document.getElementById('venueContact').innerHTML = tempArray[1];
	  document.getElementById('nextVenueSpan').innerHTML = tempArray[0];
	  document.getElementById('nextVenue').href = "?page_id=55&venueID=" + text;
	}
  }
}

function newVenue() {
  document.eventSubmit.venueName.value = document.eventSubmit.venue.value;
  $('#leftDiv').slideUp(500);
  $('#venueList').slideUp(500, function() { $('#newVenue').slideDown(500); });
}

function checkVenue(second) {
  error = "";
  if (!second) document.getElementById('buttonSaveVenue').innerHTML = "<img src='/images/icons/ajax.gif'> <b>Validating your data...</b>";
  else document.getElementById('buttonSaveVenue').innerHTML = "<img src='/images/icons/ajax.gif'> <b>Saving your venue information...</b>";
  if (document.eventSubmit.venueName.value == "") error += "<li>Please enter a name for the venue.</li>";
  if (document.eventSubmit.venueName.value == document.eventSubmit.venueName.value.toUpperCase()) error += "<li>All upper-case venue name is not allowed.</li>";
  if (document.eventSubmit.venueAdd1.value == "") error += "<li>Please enter an address.</li>";
  var tempStr = document.eventSubmit.venueAdd1.value.toUpperCase();
  tempStr = tempStr.replace(/\s/g,"");
  if (tempStr.substring(0,2) == "PO" || tempStr.substring(0,3) == "P.O" || tempStr.substring(0,3) == "PO." || tempStr.substring(0,4) == "P.O.") error += "<li>A P.O. Box is not a valid address.</li>";
  if (document.eventSubmit.venueCity.value == "") error += "<li>Please enter a city.</li>";
  var tempStr = document.eventSubmit.venueState.value.toUpperCase();
  document.eventSubmit.venueState.value = tempStr;
  if (document.eventSubmit.venueState.value != "IL" && document.eventSubmit.venueState.value != "IA") error += "<li>Event must occur in Illinois or Iowa.</li>";
  tempStr = document.eventSubmit.venueZip.value.replace(/[^\d]/g, "");
  document.eventSubmit.venueZip.value = tempStr;
  if (document.eventSubmit.venueZip.value.length != 5) error += "<li>Please enter a valid 5-digit zip code.</li>";
  tempStr = document.eventSubmit.venuePhone.value.replace(/[^\d]/g, "");
  document.eventSubmit.venuePhone.value = tempStr;
  if (document.eventSubmit.venuePhone.value.length < 10) error += "<li>Please enter a valid phone number.</li>";
  if (document.eventSubmit.venueWebsite.value.substring(0,7) == "http://") document.eventSubmit.venueWebsite.value = document.eventSubmit.venueWebsite.value.substring(7);
  if (GBrowserIsCompatible()) {
	map = new GMap2(document.getElementById("venueMap"));
   	map.setCenter(new GLatLng(41.5175234, -90.5375993), 10);
	geocoder = new GClientGeocoder();
	geocoder.getLatLng(
      document.eventSubmit.venueAdd1.value + ", " + document.eventSubmit.venueCity.value + ", " + document.eventSubmit.venueState.value,
	  function(point) {
		if (!point || point == "") error += "<li>You did not enter a valid address.</li>";
		else {
		  map.setCenter(point, 14);
		  var marker = new GMarker(point);
		  map.addOverlay(marker);
		}
        if (error != "") document.getElementById('buttonSaveVenue').innerHTML = "<img src='/images/icons/icon_error.gif' alt='Error'><span class='iconMsg red'>The following errors occured:</span><ul class='red'>" + error + "</ul><br class='clear'><a class='button' href='#' onclick='checkVenue();return false;'>Continue &raquo;</a>";
		else {
		  if (second) {
			var params = "insertNewVenue=1";
			params += "&formName=" + escape(document.eventSubmit.venueName.value);
			params += "&formAdd1=" + document.eventSubmit.venueAdd1.value;
			params += "&formAdd2=" + document.eventSubmit.venueAdd2.value;
			params += "&formCity=" + document.eventSubmit.venueCity.value;
			params += "&formState=" + document.eventSubmit.venueState.value;
			params += "&formZip=" + document.eventSubmit.venueZip.value;
			params += "&formPhone=" + document.eventSubmit.venuePhone.value;
			params += "&formEmail=" + document.eventSubmit.venueEmail.value;
			params += "&formWebsite=" + encodeURI(document.eventSubmit.venueWebsite.value);
			var ajax = startAJAX();
			ajax.open("POST", "/pages/55/ajax.php", true);
			ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			ajax.setRequestHeader("Content-length", params.length);
			ajax.setRequestHeader("Connection", "close");
			ajax.send(params);
			ajax.onreadystatechange = function() { if(ajax.readyState == 4) {
			  if (/^\d/.test(ajax.responseText)) {
			    document.eventSubmit.venueID.value = ajax.responseText;
			    startDates();
			    var tempStr = "<span class='bigText block'>" + document.eventSubmit.venueName.value + "</span>" + document.eventSubmit.venueAdd1.value + "<br>";
			    if (document.eventSubmit.venueAdd2.value != "") tempStr += document.eventSubmit.venueAdd2.value + "<br>";
			    tempStr += document.eventSubmit.venueCity.value + ", " + document.eventSubmit.venueState.value + " " + document.eventSubmit.venueZip.value + "<br>" + document.eventSubmit.venuePhone.value + "<br>";
			    if (document.eventSubmit.venueEmail.value != "") tempStr += "<a href='mailto:" + document.eventSubmit.venueEmail.value + "'>" + document.eventSubmit.venueEmail.value + "<br>";
			    if (document.eventSubmit.venueWebsite.value != "") tempStr += "<a href='http://" + document.eventSubmit.venueWebsite.value + "'>http://" + document.eventSubmit.venueWebsite.value + "</a><br>";
			    document.getElementById('venueContact').innerHTML = tempStr;
			    document.getElementById('nextVenueSpan').innerHTML = document.eventSubmit.venueName.value;
			    document.getElementById('nextVenue').href = "?page_id=55&venueID=" + ajax.responseText;
			    document.getElementById('divWhere').innerHTML = "";
			  } else {
				  document.getElementById('confirmVenue').innerHTML = ajax.responseText;
				  $('#confirmVenue').show();
				  document.getElementById('buttonSaveVenue').innerHTML = "";
				  var form = document.eventSubmit;
				  form.venueName.disabled = true;
				  form.venueAdd1.disabled = true;
				  form.venueAdd2.disabled = true;
				  form.venueCity.disabled = true;
				  form.venueState.disabled = true;
				  form.venueZip.disabled = true;
				  form.venuePhone.disabled = true;
				  form.venueEmail.disabled = true;
				  form.venueWebsite.disabled = true;
				  $('#venueMap').hide();
			  }
			}};
		  } else document.getElementById('buttonSaveVenue').innerHTML = "<img src='/images/icons/icon_question.gif' alt='Verify'><span class='iconMsg iconBlue'>Is this location correct?</span><p class='iconBlue'>Please verify the location of your event on the map. If all the information is correct, click Continue to move on to date entry.</p><a class='button' href='#' onclick='checkVenue(true);return false;'>Continue &raquo;</a>";
		}
	  }
	);
  }
}

function useNewVenue() {
	document.getElementById('insertingNewVenue').innerHTML = "<img src='/images/icons/ajax.gif'> <b>Saving your data...</b>";
	var params = "insertNewVenue=1&noSimilar=1";
	params += "&formName=" + escape(document.eventSubmit.venueName.value);
	params += "&formAdd1=" + document.eventSubmit.venueAdd1.value;
	params += "&formAdd2=" + document.eventSubmit.venueAdd2.value;
	params += "&formCity=" + document.eventSubmit.venueCity.value;
	params += "&formState=" + document.eventSubmit.venueState.value;
	params += "&formZip=" + document.eventSubmit.venueZip.value;
	params += "&formPhone=" + document.eventSubmit.venuePhone.value;
	params += "&formEmail=" + document.eventSubmit.venueEmail.value;
	params += "&formWebsite=" + encodeURI(document.eventSubmit.venueWebsite.value);
	var ajax = startAJAX();
	ajax.open("POST", "/pages/55/ajax.php", true);
	ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	ajax.setRequestHeader("Content-length", params.length);
	ajax.setRequestHeader("Connection", "close");
	ajax.send(params);
	ajax.onreadystatechange = function() { if(ajax.readyState == 4) {
		document.eventSubmit.venueID.value = ajax.responseText;
		startDates();
		var tempStr = "<span class='bigText block'>" + document.eventSubmit.venueName.value + "</span>" + document.eventSubmit.venueAdd1.value + "<br>";
		if (document.eventSubmit.venueAdd2.value != "") tempStr += document.eventSubmit.venueAdd2.value + "<br>";
		tempStr += document.eventSubmit.venueCity.value + ", " + document.eventSubmit.venueState.value + " " + document.eventSubmit.venueZip.value + "<br>" + document.eventSubmit.venuePhone.value + "<br>";
		if (document.eventSubmit.venueEmail.value != "") tempStr += "<a href='mailto:" + document.eventSubmit.venueEmail.value + "'>" + document.eventSubmit.venueEmail.value + "<br>";
		if (document.eventSubmit.venueWebsite.value != "") tempStr += "<a href='http://" + document.eventSubmit.venueWebsite.value + "'>http://" + document.eventSubmit.venueWebsite.value + "</a><br>";
		document.getElementById('venueContact').innerHTML = tempStr;
		document.getElementById('nextVenueSpan').innerHTML = document.eventSubmit.venueName.value;
		document.getElementById('nextVenue').href = "?page_id=55&venueID=" + ajax.responseText;
		document.getElementById('divWhere').innerHTML = "";
	}};
}

function startDates() {
  GUnload();
  $('#divWhere').slideUp(250, function() {
	if (!usingIE) {
      $('#statusLoc').animate({ color:"#eeeeee" }, 750);
      $('#arrowsLoc').animate({ color:"#eeeeee" }, 750);
	  $('#statusWhen').animate({ color:"#d33c33", left:"-96px" },750);
	  $('#arrowsWhen').animate({ color:"#d33c33", left:"-96px" },750);
	  $('#statusInfo').animate({ left:"-96px" },750);
	  $('#arrowsInfo').animate({ left:"-96px" },750);
	  $('#statusContact').animate({ left:"-96px" },750, function() {
	    $('#eventsCal').datepicker({ dateFormat: "mm-dd-yy", minDate: 0, numberOfMonths: 2, onSelect: function(dateText, inst) { calClick(dateText, inst); } });
	    $('#divWhen').slideDown(500);
	  });
	} else {
	  $('#statusLoc').hide();
      $('#arrowsLoc').hide();
	  $('#eventsCal').datepicker({ dateFormat: "mm-dd-yy", minDate: 0, numberOfMonths: 2, onSelect: function(dateText, inst) { calClick(dateText, inst); } });
	  $('#divWhen').slideDown(500);
	}
  });
}

function calClick(dateText, inst) {
  if (document.eventSubmit.dateType.value == "0") {
	dateArray[document.eventSubmit.dateNum.value] = new Array();
	dateArray[document.eventSubmit.dateNum.value][0] = "";
	dateArray[document.eventSubmit.dateNum.value][1] = "";
  }
  dateArray[document.eventSubmit.dateNum.value][document.eventSubmit.dateType.value] = dateText;
  $('#eventsCal').datepicker('destroy');
  document.getElementById("whenInstruct").innerHTML = "Your event is set to occur on:<br><br>" + showDates();
  $('#addDates').show();
}

function showDates() {
  var tempStr = "";
  for (var i = 0; i < dateArray.length; i++) {
	if (dateArray[i][0] != "") {
	  tempStr += interpretDate(dateArray[i][0]);
	  if (dateArray[i][1] != "") tempStr += " - " + interpretDate(dateArray[i][1]);
	  else tempStr += "<a class='endDate small noBold' href='#' onclick='addEnd("+ i +");return false;'>Make Into Date Range</a>";
	  tempStr += "<a class='endDate small noBold' href='#' onclick='deleteDate(" + i + ");return false;'>Delete Date";
	  if (dateArray[i][1] != "") tempStr += "s";
	  tempStr += "</a><br>";
	}
  }
  return tempStr;
}

function interpretDate(tempStr) {
  if (tempStr) {
    var tempDate = new Date(Number(tempStr.substring(6)), Number(tempStr.substring(0,2))-1, Number(tempStr.substring(3,5)));
    return tempDate.toDateString();
  }
  else return false;
}

function addStart() {
  document.eventSubmit.dateType.value = "0";
  document.eventSubmit.dateNum.value = Number(document.eventSubmit.dateTop.value) + 1;
  document.eventSubmit.dateTop.value = Number(document.eventSubmit.dateTop.value) + 1;
  $('#addDates').hide();
  $('#eventsCal').datepicker({ dateFormat: "mm-dd-yy", minDate: 0,  numberOfMonths: 2, onSelect: function(dateText, inst) { calClick(dateText, inst); } });
}

function addEnd(tempInt) {
  document.eventSubmit.dateType.value = "1";
  document.eventSubmit.dateNum.value = tempInt;
  $('#addDates').hide();
  $('#eventsCal').datepicker({ dateFormat: "mm-dd-yy", minDate: 0,  numberOfMonths: 2, onSelect: function(dateText, inst) { calClick(dateText, inst); } });
}

function deleteDate(tempInt) {
  dateArray[tempInt][0] = "";
  dateArray[tempInt][1] = "";
  document.getElementById("whenInstruct").innerHTML = "Your event is set to occur on:<br><br>" + showDates();
  $('#addDates').show();
}

function checkDates() {
  document.getElementById('addDates').innerHTML = "<img src='/images/icons/ajax.gif'> <b>Saving your dates...</b>";
  var tempStr = "";
  for (var i = 0; i < dateArray.length; i++) {
	if (dateArray[i][0] != "") {
	  tempStr += dateArray[i][0];
	  if (dateArray[i][1] != "") tempStr += "/" + dateArray[i][1];
	  tempStr += ";";
	}
  }
  document.eventSubmit.dates.value = tempStr;
  startDetails();
}

function startDetails() {
  $('#divWhen').slideUp(750, function() {
	if (!usingIE) {
      $('#statusLoc').animate({ color:"#eeeeee" }, 750);
      $('#arrowsLoc').animate({ color:"#eeeeee" }, 750);
      $('#statusWhen').animate({ color:"#eeeeee" }, 750);
      $('#arrowsWhen').animate({ color:"#eeeeee" }, 750);
	  $('#statusInfo').animate({ color:"#d33c33", left:"-166px" },750);
	  $('#arrowsInfo').animate({ color:"#d33c33", left:"-166px" },750);
	  $('#statusContact').animate({ left:"-166px" },750, function() {
	    $('#divInfo').slideDown(500);
	    startTinyMCE();
	  });
	} else {
	  $('#divInfo').slideDown(500);
	  $('#statusLoc').hide();
      $('#arrowsLoc').hide();
      $('#statusWhen').hide();
      $('#arrowsWhen').hide();
	  startTinyMCE();
	}
  });
}

function startTinyMCE() {
  tinyMCE.init({
	mode : "exact",
	elements : "eventDetails",
	theme : "advanced",
	skin : "o2k7",
	skin_variant : "black",
	plugins : "safari,style,layer,advhr,advimage,advlink,inlinepopups,preview,contextmenu,paste,directionality,visualchars,nonbreaking,xhtmlxtras,template",
	theme_advanced_buttons1 : "bold,italic,underline,strikethrough,|,bullist,numlist,|,link,unlink",
	theme_advanced_buttons2 : "",
	theme_advanced_buttons3 : "",
	theme_advanced_toolbar_location : "top",
	theme_advanced_toolbar_align : "left",
	theme_advanced_statusbar_location : "bottom"
  });
}

function saveInfo() {
  if (document.eventSubmit.eventName.value == "" || document.eventSubmit.eventName.value == document.eventSubmit.eventName.value.toUpperCase()) document.getElementById('buttonSaveInfo').innerHTML = "<img src='/images/icons/icon_error.gif' alt='Error'><span class='iconMsg red'>Event name is required and must include both upper and lower case characters.</span><br class='clear'><a class='button' href='#' onclick='saveInfo();return false;'>Continue &raquo;</a>";
  else {
    $('#divInfo').slideUp(750, function() {
	  if (!usingIE) {
        $('#statusLoc').animate({ color:"#eeeeee" }, 750);
        $('#arrowsLoc').animate({ color:"#eeeeee" }, 750);
        $('#statusWhen').animate({ color:"#eeeeee" }, 750);
        $('#arrowsWhen').animate({ color:"#eeeeee" }, 750);
	    $('#statusInfo').animate({ color:"#eeeeee" }, 750);
        $('#arrowsInfo').animate({ color:"#eeeeee" }, 750);
	    $('#statusContact').animate({ color:"#d33c33", left:"-245px" },750,function() { $('#divContact').slideDown(500); });
	  } else {
		  $('#statusLoc').hide();
        $('#arrowsLoc').hide();
        $('#statusWhen').hide();
        $('#arrowsWhen').hide();
	    $('#statusInfo').hide();
        $('#arrowsInfo').hide();
		  $('#divContact').slideDown(500);
	  }
    });
  }
}

function saveAlt() {
  document.getElementById('buttonSaveAlt').innerHTML = "<img src='/images/icons/ajax.gif'> <b>Validating your event information...</b>";
  setTimeout("saveAlt2()",1000);
}

function saveAlt2() {
  document.getElementById('buttonSaveAlt').innerHTML = "<img src='/images/icons/ajax.gif'> <b>Saving your event data...</b>";
  var params = "";
  params += "venueID=" + document.eventSubmit.venueID.value;
  params += "&dates=" + document.eventSubmit.dates.value;
  params += "&eventName=" + escape(document.eventSubmit.eventName.value);
  params += "&eventAdmission=" + document.eventSubmit.eventAdmission.value;
  params += "&eventDetails=" + escape(tinyMCE.activeEditor.getContent());
  params += "&altPhone=" + document.eventSubmit.altPhone.value.replace(/[^\d]/g, "");
  params += "&altEmail=" + escape(document.eventSubmit.altEmail.value);
  params += "&startHour=" + document.eventSubmit.startHour.value;
  params += "&startMin=" + document.eventSubmit.startMin.value;
  params += "&startTime=" + document.eventSubmit.startTime.value;
  params += "&endHour=" + document.eventSubmit.endHour.value;
  params += "&endMin=" + document.eventSubmit.endMin.value;
  params += "&endTime=" + document.eventSubmit.endTime.value;
  params += "&eventCat=" + document.eventSubmit.eventCat.value;
  if (document.eventSubmit.altWebsite.value.substring(0,7) == "http://") params += "&altWebsite=" + document.eventSubmit.altWebsite.value.substring(7);
  else params += "&altWebsite=" + document.eventSubmit.altWebsite.value;
  var ajax = startAJAX();
  ajax.open("POST", "/pages/55/ajax.php", true);
  ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  ajax.setRequestHeader("Content-length", params.length);
  ajax.setRequestHeader("Connection", "close");
  ajax.send(params);
  ajax.onreadystatechange = function() { if(ajax.readyState == 4) { setTimeout("finish()",500); }};
}

function finish() {
  $('#wholeForm').slideUp(500);
  $('#final').slideDown(500);
}
