blob: 62bc53508e9eb7a82ed72e2779f563e7ea24c584 [file] [log] [blame]
// Removing search results
function hideSearchResults() {
/* hiding search results as the user clicks on the different categories */
$('#resultdialog').removeClass('active');
$("#resultlist").removeClass().addClass('all');
$("#resultlinks").removeClass().addClass('all');
$("#searchcount").removeClass().addClass('all');
}
/* closing the searhc result dialog */
$('#resultclose').click(function(e) {
e.preventDefault();
hideSearchResults();
});
$(document.body).click(function() {
});
/* START non link areas where cursor should change to pointing hand */
$('.t_button').mouseover(function() {
$('.t_button').css('cursor','pointer');
});
/* END non link areas */
/* Changing font size to smaller */
$('#smallA').click(function() {
$('.mainContent .heading,.mainContent h1, .mainContent h2, .mainContent h3, .mainContent p, .mainContent li, .mainContent table').css('font-size','smaller');
$('.t_button').removeClass('active')
$(this).addClass('active')
});
/* Reset font size */
$('#medA').click(function() {
$('.mainContent .heading').css('font','600 16px/1 Arial');
$('.mainContent h1').css('font','600 18px/1.2 Arial');
$('.mainContent h2').css('font','600 16px/1.2 Arial');
$('.mainContent h3').css('font','600 14px/1.2 Arial');
$('.mainContent p').css('font','13px/20px Verdana');
$('.mainContent li').css('font','400 13px/1 Verdana');
$('.mainContent li').css('line-height','14px');
$('.mainContent .toc li').css('font', 'normal 10px/1.2 Verdana');
$('.mainContent table').css('font','13px/1.2 Verdana');
$('.mainContent .heading').css('font','600 16px/1 Arial');
$('.mainContent .indexboxcont li').css('font','600 13px/1 Verdana');
$('.t_button').removeClass('active')
$(this).addClass('active')
});
/* Changing font size to bigger */
$('#bigA').click(function() {
$('.mainContent .heading,.mainContent h1, .mainContent h2, .mainContent h3, .mainContent p, .mainContent li, .mainContent table').css('font-size','large');
$('.mainContent .heading,.mainContent h1, .mainContent h2, .mainContent h3, .mainContent p, .mainContent li, .mainContent table').css('line-height','25px');
$('.t_button').removeClass('active')
$(this).addClass('active')
});
/* Show page content after closing feedback box */
$('.feedclose').click(function() {
$('.bd').show();
$('.hd').show();
$('.footer').show();
$('#feedbackBox').hide();
$('#blurpage').hide();
});
/* Hide page content and show feedback box */
$('.feedback').click(function() {
$('.bd').hide();
$('.hd').hide();
$('.footer').hide();
$('#feedbackBox').show();
$('#blurpage').show();
});
/* Default search URL */
var qturl = "";
/* The next function handles the response data (in xml) returned by the search engine */
// Process data sent back from the server. The data is structured as a XML.
/*
XML structure handled by function processNokiaData()
<page> - container for each page returned
<pageWords/> - contains keywords
<pageTitle/> - contains page title/header content
<pageUrl/> - contains page URL - URL relative to root
<pageType> - contains page type - APIPage/Article/Example
</page>
*/
function processNokiaData(response){
/* fetch the responce from the server using page as the root element */
var propertyTags = response.getElementsByTagName('page');
/* reset counters */
var apiCount = 0;
var articleCount = 0;
var exampleCount = 0;
var full_li_element;
/* remove any old results */
$('#resultlist li').remove();
/* running through the elements in the xml structure */
for (var i=0; i<propertyTags.length; i++) {
/* for every element named pageWords*/
for (var j=0; j< propertyTags[i].getElementsByTagName('pageWords').length; j++) {
/* start a new list element */
full_li_element = '<li';
/* if the pageType element reads APIPage, add class name api */
if (propertyTags[i].getElementsByTagName('pageType')[0].firstChild.nodeValue == 'APIPage') {
full_li_element += ' class="api"';
apiCount++;
}
/* if the pageType element reads Article, add class name article */
else if (propertyTags[i].getElementsByTagName('pageType')[0].firstChild.nodeValue == 'Article') {
full_li_element += ' class="article"';
articleCount++;
}
/* if the pageType element reads Example, add class name example */
else if (propertyTags[i].getElementsByTagName('pageType')[0].firstChild.nodeValue == 'Example') {
full_li_element += ' class="example"';
exampleCount++;
}
/* adding the link element*/
full_li_element += '><a href="'+qturl;
/* adding the URL attribute*/
full_li_element += propertyTags[i].getElementsByTagName('pageUrl')[j].firstChild.nodeValue;
/* adding the link title and closing the link and list elements */
full_li_element += '">' + propertyTags[i].getElementsByTagName('pageWords')[0].firstChild.nodeValue + '</a></li>';
/* appending the list element to the #resultlist div*/
$('#resultlist').append(full_li_element);
}
}
/* if the result is not empty */
if (propertyTags.length > 0) {
/* add class name active to show the dialog */
$('#resultdialog').addClass('active');
/* setting number of hits*/
$('#resultcount').html(propertyTags.length);
$('#apicount').html(apiCount);
$('#articlecount').html(articleCount);
$('#examplecount').html(exampleCount);
}
else {
$('#pageType').addClass('red');
}
// Filtering results in display
$('p#resultlinks a').click(function(e) {
e.preventDefault();
// Displays API ref pages
if (this.id == "showapiresults") {
$("#resultlist").removeClass().addClass('api');
$("#resultlinks").removeClass().addClass('api');
$("#searchcount").removeClass().addClass('api');
}
// Displays Articles
else if (this.id == "showarticleresults") {
$("#resultlist").removeClass().addClass('article');
$("#resultlinks").removeClass().addClass('article');
$("#searchcount").removeClass().addClass('article');
}
// Displays Examples
if (this.id == "showexampleresults") {
$("#resultlist").removeClass().addClass('example');
$("#resultlinks").removeClass().addClass('example');
$("#searchcount").removeClass().addClass('example');
}
// Displays All
if (this.id == "showallresults") {
$("#resultlist").removeClass().addClass('all');
$("#resultlinks").removeClass().addClass('all');
$("#searchcount").removeClass().addClass('all');
}
});
}
//build regular expression object to find empty string or any number of blank
var blankRE=/^\s*$/;
function CheckEmptyAndLoadList()
{
/* Start Extracting information for feedback and adding this to the feedback form */
var pageUrl = window.location.href;
var pageVal = $('title').html();
$('#pageType').removeClass('red');
$('#feedUrl').remove();
$('#pageVal').remove();
$('.menuAlert').remove();
$('#feedform').append('<input id="feedUrl" name="feedUrl" value="'+pageUrl+'" style="display:none;">');
$('#feedform').append('<input id="pageVal" name="pageVal" value="'+pageVal+'" style="display:none;">');
/* End Extracting information for feedback and adding this to the feedback form */
/* extracts search query */
var value = document.getElementById('pageType').value;
/* if the search is less than three chars long remove class names and remove elements from old search*/
if((blankRE.test(value)) || (value.length < 3))
{
$('#resultdialog').removeClass('active');
$('#resultlist li').remove();
}
}
// Loads on doc ready - prepares search
$(document).ready(function () {
/* fetch page title*/
var pageTitle = $('title').html();
/* getting content from search box */
var currentString = $('#pageType').val() ;
/* if the search box is not empty run CheckEmptyAndLoadList*/
if(currentString.length < 1){
CheckEmptyAndLoadList();
}
/* on key-up in the search box execute the following */
$('#pageType').keyup(function () {
/* extract the search box content */
var searchString = $('#pageType').val() ;
/* if the string is less than three characters */
if ((searchString == null) || (searchString.length < 3)) {
/* remove classes and elements*/
$('#pageType').removeClass('loading');
$('.searching').remove();
/* run CheckEmptyAndLoadList */
CheckEmptyAndLoadList();
$('.report').remove();
return;
}
/* if timer checks out */
if (this.timer) clearTimeout(this.timer);
this.timer = setTimeout(function () {
/* add loading image by adding loading class */
$('#pageType').addClass('loading');
$('.searching').remove();
/* run the actual search */
$.ajax({
contentType: "application/x-www-form-urlencoded",
url: 'http://' + location.host + '/nokiasearch/GetDataServlet',
data: 'searchString='+searchString,
dataType:'xml',
type: 'post',
success: function (response, textStatus) {
/* on success remove loading img */
$('.searching').remove();
$('#pageType').removeClass('loading');
processNokiaData(response);
}
});
}, 500); /* timer set to 500 ms */
});
});