﻿
// ==============================================================================================================================
// PROCESS PRODUCT REVIEW
// ==============================================================================================================================

// PROCESS PRODUCT REVIEW =========================================================================================
function processProductReview(GUID) {
          if (validateProcessProductReview(GUID)) {
                    var feedbacktypeid = "4", rating = "0";
                    var name = "", emailadddress = "", review = "", productdefinitionid = "";
                    try { productdefinitionid = $("#productviewerdefinitionid").val(); } catch (e) { };
                    try { name = $("#Name_" + GUID).val(); } catch (e) { };
                    try { emailaddress = $("#EmailAddress_" + GUID).val(); } catch (e) { };
                    try { rating = $("#Rating_" + GUID).html(); } catch (e) { };
                    try { feedback = $("#Feedback_" + GUID).html(); } catch (e) { };

                    ws_2g_Core.WSProcessFeedback(GUID, name, emailaddress, productdefinitionid, feedbacktypeid, rating, feedback,
                                processProductReview_SucceededCallback, TimeoutCallback, FailedCallback);
          };
};

// PROCESS PRODUCT REVIEW SUCCEEDED
function processProductReview_SucceededCallback(result) {
          var GUID = result.GUID
          //clear any message after delay
          if (result.Success == false) {
                    jAlert(result.ErrorMessage, appname);
          } else {
                    //show success message and clear the original message
                    jAlert("Thank you,  Your review will be processed as soon as possible.", appname);
                    $("#Feedback_" + GUID).html("");
                    $("#Rating_" + GUID).val("50");
          };
};

// VALIDATE PROCESS PRODUCT REVIEW
function validateProcessProductReview(GUID) {
          //Set initial conditions
          var errormessage = "", returnvalue = true;

          //Form Fields
          var name = $("#Name_" + GUID);
          var emailaddress = $("#EmailAddress_" + GUID);
          var feedback = $("#Feedback_" + GUID);

          var allFields = $([]).add(name, emailaddress, feedback);

          //Validate Form Fields
          if (checkLength(name, 1, 10000)) {
                    name.removeClass("errorhighlight");
          } else {
                    name.addClass("errorhighlight");
                    errormessage += "Please enter your name.<br/>";
                    returnvalue = false;
          };

          if (checkRegexp(emailaddress, /\b[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}\b/)) {
                    emailaddress.removeClass("errorhighlight");
          } else {
                    emailaddress.addClass("errorhighlight");
                    errormessage += "Please enter a valid email address.<br/>";
                    returnvalue = false;
          };

          //Validate Form Fields
          if (checkTextArea(feedback)) {
                    feedback.removeClass("errorhighlight");
          } else {
                    feedback.addClass("errorhighlight");
                    errormessage += "Please enter your review comments.";
                    returnvalue = false;
          };

          //Display or clear errors
          if (returnvalue == false) {
                    jAlert(errormessage, appname);
          } else {
                    allFields.removeClass("errorhighlight");
          };

          return returnvalue;
};

// ==============================================================================================================================
// END PROCESS PRODUCT REVIEW
// ==============================================================================================================================

// ==============================================================================================================================
// PROCESS PRODUCT QUESTION
// ==============================================================================================================================

// PROCESS PRODUCT QUESTION =========================================================================================
function processProductQuestion(GUID) {
          if (validateProcessProductQuestion(GUID)) {
                    var feedbacktypeid = "3", rating = "0";
                    var name = "", emailadddress = "", question = "", productdefinitionid = "";
                    try { productdefinitionid = $("#productviewerdefinitionid").val(); } catch (e) { };
                    try { name = $("#Name_" + GUID).val(); } catch (e) { };
                    try { emailaddress = $("#EmailAddress_" + GUID).val(); } catch (e) { };
                    try { feedback = $("#Feedback_" + GUID).html(); } catch (e) { };

                    ws_2g_Core.WSProcessFeedback(GUID, name, emailaddress, productdefinitionid, feedbacktypeid, rating, feedback,
                                processProductQuestion_SucceededCallback, TimeoutCallback, FailedCallback);
          };
};

// PROCESS PRODUCT QUESTION SUCCEEDED
function processProductQuestion_SucceededCallback(result) {
          var GUID = result.GUID
          //clear any message after delay
          if (result.Success == false) {
                    jAlert(result.ErrorMessage, appname);
          } else {
                    //show success message and clear the original message
                    jAlert("Thank you,  Your question will be answered as soon as possible.", appname);
                    $("#Feedback_" + GUID).html("");
          };
};

// VALIDATE PROCESS PRODUCT QUESTION
function validateProcessProductQuestion(GUID) {
          //Set initial conditions
          var errormessage = "", returnvalue = true;

          //Form Fields
          var name = $("#Name_" + GUID);
          var emailaddress = $("#EmailAddress_" + GUID);
          var feedback = $("#Feedback_" + GUID);

         //name.addClass("errorhighlight");

          var allFields = $([]).add(name, emailaddress, feedback);

          //Validate Form Fields
          if (checkLength(name, 1, 10000)) {
                    name.removeClass("errorhighlight");
          } else {
                    name.addClass("errorhighlight");
                    errormessage += "Please enter your name.<br/>";
                    returnvalue = false;
          };

          if (checkRegexp(emailaddress, /\b[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}\b/)) {
                    emailaddress.removeClass("errorhighlight");
          } else {
                    emailaddress.addClass("errorhighlight");
                    errormessage += "Please enter a valid email address.<br/>";
                    returnvalue = false;
          };

          //Validate Form Fields
          if (checkTextArea(feedback)) {
                    feedback.removeClass("errorhighlight");
          } else {
                    feedback.addClass("errorhighlight");
                    errormessage += "Please enter your question.";
                    returnvalue = false;
          };

          //Display or clear errors
          if (returnvalue == false) {
                    jAlert(errormessage, appname);
          } else {
                    allFields.removeClass("errorhighlight");
          };

          return returnvalue;
};

// ==============================================================================================================================
// END PROCESS PRODUCT QUESTION
// ==============================================================================================================================


// ==============================================================================================================================
// PROCESS FEEDBACK


