Anda di halaman 1dari 4

$(function() {

var template, questions, container;


var soloHeader, searchHeader, breadcrumb, breadcrumbSingle, breadcrumbSearch;

function getQuestions() {
$.get("/webservice", function(response) {
var xml = parseXML(response);

var questionsData = xml.getElementsByTagName("PortalResult")[0]


.getElementsByTagName("Nodes")
[0].getElementsByTagName("anyType")[2]
.getElementsByTagName("SubNodes")
[0].getElementsByTagName("anyType");

createQuestions(questionsData);
});
}

function search(item) {
$.get("/search/" + item, function(response) {
var xml = parseXML(response);
var questionsData =
xml.getElementsByTagName("QuestionSearchResult")[0]
.getElementsByTagName("Nodes")
[0].getElementsByTagName("anyType");

createQuestions(questionsData);
});
}

function sendFeedback(value) {
$.post("/feedback", { data: value }, function() {

});
}

function createQuestions(questionsData) {
questions = [];

for (var i = 0; i < questionsData.length; i++) {


if (questionsData[i].getElementsByTagName("DisplayText")[0]) {
questions.push({
question:
questionsData[i].getElementsByTagName("DisplayText")
[0].childNodes[0].nodeValue.slice(9, -3),
answer:
$.parseHTML(questionsData[i].getElementsByTagName("SolutionText")
[0].childNodes[0].nodeValue.slice(9, -3))
});
}
}

renderQuestions();
}

function addEventListeners() {
// Expand / Collapse
container.on("click", ".accordion__term", function(e) {
var item = $(this).parent();
var index = item.index();

if (questions[index].expanded) {
questions[index].expanded = false;
item.find(".accordion__description").css("height", 0);
} else {
questions[index].expanded = true;
item.find(".accordion__description").css("height", "auto");
}
});

// Feedback
container.on("click", ".button--1", function(e) {
e.preventDefault();
var parent = $(this).parent().parent();
var section = parent.find(".submit-area");
var submit = parent .find(".submit-btn-now");

section.css("display", "block");

submit.on("click", function(e) {
e.preventDefault();
parent.parent().find(".thank-you-display").css("display",
"block");
parent.css("display", "none");

sendFeedback(parent.find('textarea').val());
});
});

// Search
var input = $("#searchInput");
input.on("keydown", function(e) {
if (e.keyCode == 13) {
e.preventDefault();
setSearchValue(input.val());
}
});

// Clear Button
$("#clearBtn").on("click", function() {
input.val("");
});
}

function setSearchValue(value) {
$("#searchInput").val(value);
updateHeader(value);
search(value);
}

function updateHeader(value) {
if (value && value.length > 0) {
soloHeader.css("display", "none");
breadcrumbSingle.css("display", "none");
searchHeader.css("display", "block");
breadcrumb.css("display", "block");
breadcrumbSearch.css("display", "block");
searchHeader.find("span").text("'" + value + "'");
breadcrumb.find(".span-placeholder").text("'" + value + "'");
breadcrumbSearch.find("span").text("'" + value + "'");
} else {
soloHeader.css("display", "block");
breadcrumbSingle.css("display", "block");
searchHeader.css("display", "none");
breadcrumb.css("display", "none");
breadcrumbSearch.css("display", "none");
}
}

function initSearch() {
var query = window.location.search.substring(1);
var vars = query.split("&");
var value;

for (var i = 0; i < vars.length; i++) {


var pair = vars[i].split("=");
if (pair[0] == "search") {

}
}
}

function init() {
template = $("#question-template");
container = $("#question-container");
soloHeader = $("#soloHeader");
searchHeader = $("#searchHeader");
breadcrumb = $("#breadcrumb");
breadcrumbSingle = $("#breadcrumbSingle");
breadcrumbSearch = $("#breadcrumbSearch");

getQuestions();
addEventListeners();
}

function renderQuestions() {
var element;
container.html("");

for (var i = 0; i < questions.length; i++) {


element = template.clone().css("display", "block");
element.find(".question").text(questions[i].question);
element.find(".answer").html(questions[i].answer);

container.append(element);
}
}

function parseXML(data) {
var xmlDoc;

if (window.DOMParser) {
parser = new DOMParser();
xmlDoc = parser.parseFromString(data, "text/xml");
} else {
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = false;
xmlDoc.loadXML(data);
}

return xmlDoc;
}

init();
});

Anda mungkin juga menyukai