// JavaScript Document


/**********************************************************
      TAB CHANGE FUNCTIONS
*/

function showGeneral() {
	//alert('show general');
	document.getElementById('commentForm').style.display = 'none';
	document.getElementById('eventForm').style.display = 'none';
	document.getElementById('tabCommentOn').style.zIndex = 1;
	document.getElementById('tabEventOn').style.zIndex = 1;
	document.getElementById('tabGeneralOn').style.zIndex = 3;	
	document.getElementById('generalForm').style.display = 'block';
}

function showComment() {
	//alert('show comment');
	document.getElementById('generalForm').style.display = 'none';
	document.getElementById('eventForm').style.display = 'none';
	document.getElementById('tabGeneralOn').style.zIndex = 1;
	document.getElementById('tabEventOn').style.zIndex = 1;
	document.getElementById('tabCommentOn').style.zIndex = 3;	
	document.getElementById('commentForm').style.display = 'block';
}

function showEvent() {
	//alert('show event');
	document.getElementById('generalForm').style.display = 'none';
	document.getElementById('commentForm').style.display = 'none';
	document.getElementById('tabCommentOn').style.zIndex = 1;
	document.getElementById('tabGeneralOn').style.zIndex = 1;
	document.getElementById('tabEventOn').style.zIndex = 3;	
	document.getElementById('eventForm').style.display = 'block';
	theElement = document.getElementById('eventSubject').value = 'Planning a Private Party or Event';
}



/**********************************************************
      SUBJECT CHANGE FUNCTIONS
*/

function setSubject(theElement, theSubjectValue) {
	if(theSubjectValue != 'General Question')
		document.getElementById(theElement).value = theSubjectValue;
}

function evalEventSubject() {
	theElement = document.getElementById('eventSubject');
	if(theElement.value == 'General Question') {
		popMsg('', 'We see that you have a general inquiry.  To save you some time, we\'d like to direct you to our short form.', 'btnContinue');
		setSubject('generalSubject', '');
		showGeneral();
	}
	else if(theElement.value == 'Recipes') {
		popMsg('', 'We see that you have a general inquiry.  To save you some time, we\'d like to direct you to our short form.', 'btnContinue');
		setSubject('generalSubject', 'Recipes');
		showGeneral();
	}
	else if(theElement.value == 'Allergies') {
		popMsg('', 'We see that you have a general inquiry.  To save you some time, we\'d like to direct you to our short form.', 'btnContinue');
		setSubject('generalSubject', 'Allergies');
		showGeneral();
	}
	else if(theElement.value == 'Request a Donation') {
		popMsg('', 'We see that you have a general inquiry.  To save you some time, we\'d like to direct you to our short form.', 'btnContinue');
		setSubject('generalSubject', 'Request a Donation');
		showGeneral();
	}
	else if(theElement.value == 'Promotions and Special Offers') {
		popMsg('', 'We see that you have a general inquiry.  To save you some time, we\'d like to direct you to our short form.', 'btnContinue');
		setSubject('generalSubject', 'Promotions and Special Offers');
		showGeneral();
	}
	else if(theElement.value == 'Nutritional Information') {
		popMsg('', 'We see that you have a general inquiry.  To save you some time, we\'d like to direct you to our short form.', 'btnContinue');
		setSubject('generalSubject', 'Nutritional Information');
		showGeneral();
	}
	else if(theElement.value == 'Catering Options') {
		popMsg('', 'We see that you have a general inquiry.  To save you some time, we\'d like to direct you to our short form.', 'btnContinue');
		setSubject('generalSubject', 'Catering Options');
		showGeneral();
	}
	else if(theElement.value == 'Request a Restaurant in my Area') {
		popMsg('', 'We see that you have a general inquiry.  To save you some time, we\'d like to direct you to our short form.', 'btnContinue');
		setSubject('generalSubject', 'Request a Restaurant in my Area');
		showGeneral();
	}
	else if(theElement.value == 'Positive Experience') {
		popMsg('', 'We see that you are trying to provide feedback on a recent dining experience.  In order to serve you better, we\'d like to ask you some detailed questions about your experience.', 'btnContinue');
		showComment();
		setSubject('commentSubject', 'Positive Experience');
	}
	else if(theElement.value == 'Opportunity for Improvement') {
		popMsg('', 'We see that you are trying to provide feedback on a recent dining experience.  In order to serve you better, we\'d like to ask you some detailed questions about your experience.', 'btnContinue');
		showComment();
		setSubject('commentSubject', 'Opportunity for Improvement');
	}
	else if(theElement.value == 'Expired/Non-working Gift Cards') {
		popMsg('', 'We see that you have a general inquiry.  To save you some time, we\'d like to direct you to our short form.', 'btnContinue');
		showGeneral();
		setSubject('generalSubject', 'Expired/Non-working Gift Cards');
	}
}

function evalCommentSubject() {
	theElement = document.getElementById('commentSubject');
	/*
	if(theElement.value == 'General Question') {
		popMsg('', 'We see that you have a general inquiry.  To save you some time, we\'d like to direct you to our short form.', 'btnContinue');
		setSubject('generalSubject', '');
		showGeneral();
	}*/
	if(theElement.value == 'Planning a Private Party or Event') {
		popMsg('', 'We see that you are interested in contacting one of our event coordinators.  In order to serve you better, we\'d like to ask you some detailed questions about your plans.', 'btnContinue');
		//setSubject('#eventSubject', 'Planning a Private Party or Event');
		showEvent();
	}/*
	else if(theElement.value == 'Recipes') {
		popMsg('', 'We see that you have a general inquiry.  To save you some time, we\'d like to direct you to our short form.', 'btnContinue');
		setSubject('generalSubject', 'Recipes');
		showGeneral();
	}
	else if(theElement.value == 'Allergies') {
		popMsg('', 'We see that you have a general inquiry.  To save you some time, we\'d like to direct you to our short form.', 'btnContinue');
		setSubject('generalSubject', 'Allergies');
		showGeneral();
	}
	else if(theElement.value == 'Request a Donation') {
		popMsg('', 'We see that you have a general inquiry.  To save you some time, we\'d like to direct you to our short form.', 'btnContinue');
		setSubject('generalSubject', 'Request a Donation');
		showGeneral();
	}
	else if(theElement.value == 'Promotions and Special Offers') {
		popMsg('', 'We see that you have a general inquiry.  To save you some time, we\'d like to direct you to our short form.', 'btnContinue');
		setSubject('generalSubject', 'Promotions and Special Offers');
		showGeneral();
	}
	else if(theElement.value == 'Nutritional Information') {
		popMsg('', 'We see that you have a general inquiry.  To save you some time, we\'d like to direct you to our short form.', 'btnContinue');
		setSubject('generalSubject', 'Nutritional Information');
		showGeneral();
	}
	else if(theElement.value == 'Catering Options') {
		popMsg('', 'We see that you have a general inquiry.  To save you some time, we\'d like to direct you to our short form.', 'btnContinue');
		setSubject('generalSubject', 'Catering Options');
		showGeneral();
	}
	else if(theElement.value == 'Request a Restaurant in my Area') {
		popMsg('', 'We see that you have a general inquiry.  To save you some time, we\'d like to direct you to our short form.', 'btnContinue');
		setSubject('generalSubject', 'Request a Restaurant in my Area');
		showGeneral();
	}
	else if(theElement.value == 'Expired/Non-working Gift Cards') {
		popMsg('', 'We see that you have a general inquiry.  To save you some time, we\'d like to direct you to our short form.', 'btnContinue');
		showGeneral();
		setSubject('generalSubject', 'Expired/Non-working Gift Cards');
	}	*/
}

function evalGeneralSubject() {
	theElement = document.getElementById('generalSubject');
	if(theElement.value == 'Planning a Private Party or Event') {
		popMsg('', 'We see that you are interested in contacting one of our event coordinators.  In order to serve you better, we\'d like to ask you some detailed questions about your plans.', 'btnContinue');
		showEvent();
	}
	else if(theElement.value == 'Positive Experience') {
		popMsg('', 'We see that you are trying to provide feedback on a recent dining experience.  In order to serve you better, we\'d like to ask you some detailed questions about your experience.', 'btnContinue');
		showComment();
		setSubject('commentSubject', 'Positive Experience');		
	}
	else if(theElement.value == 'Opportunity for Improvement') {
		popMsg('', 'We see that you are trying to provide feedback on a recent dining experience.  In order to serve you better, we\'d like to ask you some detailed questions about your experience.', 'btnContinue');
		showComment();
		setSubject('commentSubject', 'Opportunity for Improvement');
	}
}
/**********************************************************
      UPDATE COMMON FIELDS FUNCTIONS
*/

function updateCommonFields(currentElement, theField) {
	theValue = currentElement.value;
	document.getElementById('general' + theField).value = theValue;
	document.getElementById('comment' + theField).value = theValue;
	document.getElementById('event' + theField).value = theValue;
}

function updateLocations(currentElement) {
	theValue = currentElement.value;
	document.getElementById('commentLocation').value = theValue;
	document.getElementById('eventLocation').value = theValue;
}

function updatePromotions (currentElement) {
		
}

/**********************************************************
      POP MESSAGE FUNCTIONS
*/

function popMsg(msgHdr, theMsg, theBtn) {
	document.getElementById('msgHdr').innerHTML = msgHdr;
	if(msgHdr == '')
		document.getElementById('msgHdr').style.display = 'none';
	else
		document.getElementById('msgHdr').style.display = 'block';
	document.getElementById('theMsg').innerHTML = theMsg;
	
	document.getElementById(theBtn).style.display = 'block';
	$('#popMsg').jqmShow();
}

function closeMsg() {
	$('#popMsg').jqmHide();
	document.getElementById('btnClose').style.display = 'none';
	document.getElementById('btnContinue').style.display = 'none';
}


function clearForm() {
	closeMsg();	
}



/**********************************************************
	FORM SUBMIT FUNCTIONS
*/

function submitGeneral() {
	if(document.getElementById('generalPromotionsYes').checked)
		promotionsValue = 'Y';
	else
		promotionsValue = 'N';
	
	$.post("insert_general.php", { generalFirstName: document.getElementById('generalFirstName').value, generalLastName: document.getElementById('generalLastName').value, generalEmail: document.getElementById('generalEmail').value, generalEmailConfirm: document.getElementById('generalEmailConfirm').value, generalSubject: document.getElementById('generalSubject').value, generalMessage: document.getElementById('generalMessage').value, generalPromotions: promotionsValue, generalSubmit: document.getElementById('generalSubmit').value }, function(data){ submitGeneralMessaging(data); }, "text");
}

function submitGeneralMessaging(theReturn) {
	if(strpos(theReturn, 'successfulpost') > 0) {
    	popMsg('Thank you!', 'We will respond within 1 to 2 business days.', 'btnClose');
		clearAllForms();
	}
	else {
		popMsg('Error', 'There was a problem saving your information. Please check your entry and try again.<br><br>' + theReturn, 'btnContinue');	
	}
}


function submitComment() {
	if(document.getElementById('commentPromotionsYes').checked)
		promotionsValue = 'Y';
	else
		promotionsValue = 'N';
		
	if(document.getElementById('commentTypeDineIn').checked)
		commentType = "D";
	else if(document.getElementById('commentTypeToGo').checked)
		commentType = "T";
		
	var theTitle = '';
	if($("input[@name='commentTitle']:checked").val())
		theTitle = $("input[@name='commentTitle']:checked").val();
	//alert('the title: ' + theTitle);
	
	$.post("insert_comment.php", { commentTitle: theTitle, commentFirstName: document.getElementById('commentFirstName').value, commentLastName: document.getElementById('commentLastName').value, commentEmail: document.getElementById('commentEmail').value, commentEmailConfirm: document.getElementById('commentEmailConfirm').value, commentSubject: document.getElementById('commentSubject').value, commentMessage: document.getElementById('commentMessage').value, commentPromotions: promotionsValue, commentSubmit: document.getElementById('commentSubmit').value, commentMonth: document.getElementById('commentMonth').value, commentDay: document.getElementById('commentDay').value, commentYear: document.getElementById('commentYear').value, commentHour: document.getElementById('commentHour').value, commentMinute: document.getElementById('commentMinute').value, commentAMPM: document.getElementById('commentAMPM').value, commentTicketNumber: document.getElementById('commentTicketNumber').value, commentLocation: document.getElementById('commentLocation').value, commentEmployee: document.getElementById('commentEmployee').value, commentPosition: document.getElementById('commentPosition').value, commentType: commentType, commentStreet: document.getElementById('commentStreet').value, commentCity: document.getElementById('commentCity').value, commentState: document.getElementById('commentState').value, commentZip: document.getElementById('commentZip').value, commentPhone: document.getElementById('commentPhone').value }, function(data){ submitCommentMessaging(data); }, "text");
}

function submitCommentMessaging(theReturn) {
	if(strpos(theReturn, 'successfulpost') > 0) {
    	popMsg('Thank you!', 'We will respond within 1 to 2 business days.', 'btnClose');
		clearAllForms();
	}
	else {
		popMsg('Error', 'There was a problem saving your information. Please check your entry and try again.<br><br>' + theReturn, 'btnContinue');	
	}
}


function submitEvent() {
	if(document.getElementById('eventPromotionsYes').checked)
		promotionsValue = 'Y';
	else
		promotionsValue = 'N';
	
	var theTitle = '';
	if($("input[@name='eventTitle']:checked").val())
		theTitle = $("input[@name='eventTitle']:checked").val();
	//alert('the title: ' + theTitle);

	$.post("insert_event.php", { eventTitle: theTitle, eventFirstName: document.getElementById('eventFirstName').value, eventLastName: document.getElementById('eventLastName').value, eventEmail: document.getElementById('eventEmail').value, eventEmailConfirm: document.getElementById('eventEmailConfirm').value, eventSubject: document.getElementById('eventSubject').value, eventMessage: document.getElementById('eventMessage').value, eventPromotions: promotionsValue, eventSubmit: document.getElementById('eventSubmit').value, eventPartySize: document.getElementById('eventPartySize').value, eventType: document.getElementById('eventType').value, eventMonth: document.getElementById('eventMonth').value, eventDay: document.getElementById('eventDay').value, eventYear: document.getElementById('eventYear').value, eventMonth2: document.getElementById('eventMonth2').value, eventDay2: document.getElementById('eventDay2').value, eventYear2: document.getElementById('eventYear2').value, eventHour: document.getElementById('eventHour').value, eventMinute: document.getElementById('eventMinute').value, eventAMPM: document.getElementById('eventAMPM').value, eventPhone: document.getElementById('eventPhone').value, eventLocation: document.getElementById('eventLocation').value }, function(data){ submitEventMessaging(data); }, "text");
}

function submitEventMessaging(theReturn) {
	if(strpos(theReturn, 'successfulpost') > 0) {
    	popMsg('Thank you!', 'Please note that your reservation is not confirmed.  One of our event coordinators will review your request, check room availability, and respond within 3-4 business days.  If your event is planned to take place within the next four days, please call your preferred location directly.', 'btnClose');
		clearAllForms();
	}
	else {
		popMsg('Error', 'There was a problem saving your information. Please check your entry and try again.<br><br>' + theReturn, 'btnContinue');	
	}
}


/**********************************************************
	CLEAR FORMS
*/

function clearAllForms() {
	clearGeneralForm();
	clearCommentForm();
	clearEventForm();
}

function clearGeneralForm() {
	document.getElementById('generalFirstName').value = '';
	document.getElementById('generalLastName').value = '';
	document.getElementById('generalEmail').value = '';
	document.getElementById('generalEmailConfirm').value = '';
	document.getElementById('generalSubject').value = '';	
	document.getElementById('generalMessage').value = '';	
	document.getElementById('generalPromotionsNo').checked = true;
}

function clearCommentForm() {
	document.getElementById('commentFirstName').value = '';
	document.getElementById('commentLastName').value = '';
	document.getElementById('commentEmail').value = '';
	document.getElementById('commentEmailConfirm').value = '';
	document.getElementById('commentPhone').value = '';
	document.getElementById('commentSubject').value = '';	
	document.getElementById('commentMessage').value = '';	
	document.getElementById('commentPromotionsNo').checked = true;
	//document.getElementById('commentMonth').value = '';
	//document.getElementById('commentDay').value = '';
	//document.getElementById('commentYear').value = '';
	document.getElementById('commentHour').value = '';
	document.getElementById('commentMinute').value = '';
	document.getElementById('commentAMPM').value = '';
	document.getElementById('commentTicketNumber').value = '';
	document.getElementById('commentEmployee').value = '';
	document.getElementById('commentPosition').value = '';
	document.getElementById('commentTypeToGo').checked = false;
	document.getElementById('commentTypeDineIn').checked = true;
	document.getElementById('commentStreet').value = '';
	document.getElementById('commentCity').value = '';
	document.getElementById('commentState').value = '';
	document.getElementById('commentZip').value = '';
}

function clearEventForm() {
	document.getElementById('eventFirstName').value = '';
	document.getElementById('eventLastName').value = '';
	document.getElementById('eventEmail').value = '';
	document.getElementById('eventEmailConfirm').value = '';
	document.getElementById('eventPhone').value = '';
	document.getElementById('eventSubject').value = '';	
	document.getElementById('eventMessage').value = '';	
	document.getElementById('eventPromotionsNo').checked = true;
	document.getElementById('eventMonth').value = '';
	document.getElementById('eventDay').value = '';
	document.getElementById('eventYear').value = '';
	document.getElementById('eventMonth2').value = '';
	document.getElementById('eventDay2').value = '';
	document.getElementById('eventYear2').value = '';
	document.getElementById('eventHour').value = '';
	document.getElementById('eventMinute').value = '';
	document.getElementById('eventAMPM').value = '';
	document.getElementById('eventPartySize').value = '';
	document.getElementById('eventType').value = '';
}



/**********************************************************
      FAQ TOGGLE
*/

function faqToggleAnswer(ansDiv) {
	theAns = document.getElementById(ansDiv);	
	if(theAns.style.display == 'none') {
		theAns.style.display = 'block';
		//$("#" + ansDiv).show('medium');
		//theAns.style.display = 'block';
	}
	else {
		theAns.style.display = 'none';
		//$("#" + ansDiv).slideUp("medium");
		//$("#" + ansDiv).hide('medium');
	}
}




/**********************************************************
	RANDOM FUNCTIONS
*/

function strpos( haystack, needle, offset){
    // http://kevin.vanzonneveld.net
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: Onno Marsman    
    // *     example 1: strpos('Kevin van Zonneveld', 'e', 5);
    // *     returns 1: 14
 
    var i = (haystack+'').indexOf( needle, offset ); 
    return i===-1 ? false : i;
}


function formatPhoneNumber(textbox) {
	// Format phone number if exactly 10 digits long (assume U.S. number).
	digitsOnlyPhoneString=stripCharsInBag(textbox.value,validWorldPhoneChars);
	if (digitsOnlyPhoneString.length == 10)	{
		//alert('U.S. phone number. Formatting number');
		textbox.value = ParseUSNumber(textbox, textbox.value);
	}
	else {
		//alert('non U.S. phone number. Do no formatting');
	}
}



function ParseUSNumber(textbox, PhoneNumberInitialString) {
    var PhoneNumberInitialString = textbox.value;
    var FmtStr="";
    var index = 0;
    var LimitCheck;
    var checkField = textbox;
    
    LimitCheck = PhoneNumberInitialString.length;
    if (index != LimitCheck) {
	    while (index != LimitCheck) {
	        if (isNaN(parseInt(PhoneNumberInitialString.charAt(index))))
	          { }
	        else
	          { FmtStr = FmtStr + PhoneNumberInitialString.charAt(index); }
	        index = index + 1;
	      }
	    
	    if (FmtStr.length == 10) {
	        FmtStr = "(" + FmtStr.substring(0,3) + ") " + FmtStr.substring(3,6) + "-" + FmtStr.substring(6,10);
	      }
	    else {
	        FmtStr=PhoneNumberInitialString;
	        //alert("United States phone numbers must have exactly ten digits.");
	        //checkField.focus();
	      }
	}
    return FmtStr;
  }
  
// Declaring required variables
var digits = "0123456789";
// non-digit characters which are allowed in phone numbers
var phoneNumberDelimiters = "()- ";
// characters which are allowed in international phone numbers
// (a leading + is OK)
var validWorldPhoneChars = phoneNumberDelimiters + "+";
// Minimum no of digits in an international phone no.
var minDigitsInIPhoneNumber = 10;


function stripCharsInBag(s, bag) {   
	var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++) {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

/**********************************
		PHONE FORMATING
**********************************/

function doFormatPhone(phoneobj)
{
	// set form field where phone format should take place
	var gotphone = document.getElementById(phoneobj);

	gotphone.onblur = function()
	{
		formatPhone(this);
	}
}

/* Format phone number function */
function formatPhone(curPhone) {
	curPhone.value = formatPhoneStr(curPhone.value);
}

/* Returns a formatted phone number */
function formatPhoneStr(phoneNumber) {
	var tempPhone = phoneNumber.replace(/[^0-9xX]/g,"");
	tempPhone = tempPhone.replace(/[xX]/g,"x");
	var extension = "";

	if(tempPhone.indexOf("x") > -1)	{
		extension = " "+tempPhone.substr(tempPhone.indexOf("x"));
		tempPhone = tempPhone.substr(0,tempPhone.indexOf("x"));
	}

	switch(tempPhone.length) {
		case(10):
			return tempPhone.replace(/(...)(...)(....)/g,"($1) $2-$3")+extension;
		case(11):
			if(tempPhone.substr(0,1) == "1") {
				return tempPhone.substr(1).replace(/(...)(...)(....)/g,"($1) $2-$3")+extension;
			}

		break;
		default:
	}

	return phoneNumber;
}