Guest User

Untitled

a guest
Jan 21st, 2019
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.21 KB | None | 0 0
  1. $(document).ready( function() {
  2.  
  3. var questions;
  4. var targetQuestions;
  5. var optionScrollHorizon = {
  6. width:670,
  7. elementsInPage:1,
  8. elementMargin:2,
  9. shadow:"#999 2px 2px 2px",
  10. height:"auto",
  11. controls:'#controls',
  12. slideTimer:600,
  13. autoscroll:false,
  14. scrollTimer:4000,
  15. changePageCallback:function(){
  16. var positiondisplay= $("#myScroll").get(0).idx+'/'+$("#myScroll").get(0).totalPages;
  17. $('#controls .positiondisplay').html(positiondisplay);
  18. },
  19. loadCallback:function(){
  20. var positiondisplay= $("#myScroll").get(0).idx+'/'+$("#myScroll").get(0).totalPages;
  21. $('#controls .positiondisplay').html(positiondisplay);
  22. }
  23. };
  24.  
  25. function countProgress(){
  26. var totalChecked = 0;
  27. var totalGroups = 0;
  28. var previousName = '';
  29. var passedFilter = ':checked,textarea[value!=""],select[value!=""],input:text[value!=""]';
  30. console.log(passedFilter);
  31.  
  32. $.each($('[name*=slider],[name*=question]'), function(index, value) {
  33. if(previousName != $(this).attr('name'))
  34. { totalGroups++; }
  35.  
  36. if($(this).is(passedFilter))
  37. { totalChecked++; console.log(totalChecked);}
  38.  
  39. previousName = $(this).attr('name');
  40. });
  41.  
  42. var percentageGroup = (totalChecked / totalGroups) * 100;
  43. var progressGroup = $('#progressbar').progressbar('value', percentageGroup);
  44. var percentage = $('#percentage').html(percentageGroup.toFixed(0) + "% complete");
  45. var totalprogress = $("#progressbar").progressbar('value', percentageGroup.toFixed(0));
  46.  
  47. $("#progressbar").progressbar({value: totalprogress});
  48. }
  49.  
  50. $.ajax({type:"GET",url:"diagnostics_json.txt",
  51. dataType:"json",
  52. cache: false,
  53. contentType: "application/json",
  54. complete:function(response) {
  55. var data=$.parseJSON(response.responseText);
  56. questions = data.questions[0].question;
  57.  
  58. for(var dname=0, dl=data.diagnosticApplicationName.length; dname<dl; dname++) {
  59. var diagnosticName = data.diagnosticApplicationName[0].name;
  60. $("#d-left > div.title > h3").html(diagnosticName);
  61. }
  62.  
  63. var _left_menu = "<ul>";
  64. for(var i=0, il=data.categories.length; i<il; i++) {
  65. var data_category = data.categories[i];
  66. for(var j=0, ol=data_category.category.length; j<ol; j++) {
  67. var category = data_category.category[j];
  68. _left_menu += "<li class='categories'><a href='#' class='cat_name'>"+category.name+"</a>";
  69. if(category.element){
  70. _left_menu += "<ul class='cat-element'>";
  71. for(var el=0, al=category.element.length; el<al; el++){
  72. var element = category.element[el];
  73. _left_menu += "<li class='element' id='"+element.elementId+"'><a href='#'>"+element.name+"</li>"
  74. }
  75. _left_menu += "</ul>";
  76. }
  77. _left_menu += '</li>';
  78. }
  79. _left_menu += "</ul>";
  80. }
  81.  
  82.  
  83. $('ul > li > a').live("click",function()
  84. {
  85. $.categoryElement = $(this).parent().find(' > ul');
  86. if($.categoryElement.is(':hidden')){
  87. $.categoryElement.slideDown();
  88. }else{
  89. $.categoryElement.slideUp();
  90. }
  91.  
  92. });
  93. $("#d-left > div.category").html(_left_menu);
  94.  
  95.  
  96. $('.commentTitle').live("click",function(){
  97. $('.commentBox').slideDown();
  98. });
  99.  
  100. $('.commentHide').live("click",function(){
  101. $('.commentBox').slideUp();
  102. });
  103.  
  104. $.fn.loadQuestionTool = function(options){
  105. $(this).mbScrollable(options.scrollHorizon);
  106. };
  107.  
  108. $.fn.createSliderQuestion = function(txtQuestion,idQuestion){
  109. var _page = '<div class="scrollEl">'+
  110. '<h3>'+txtQuestion+'</h3>'+'<input type="text" value="" id="amount" name="slider'+idQuestion+'" style="border:0; color:#f6931f; font-weight:bold;" />'+'<div class="slider-range-max '+idQuestion+'"></div>'+
  111. '<div class="comment">'+
  112. '<a class="commentTitle" href="#">Write a Comment</a>'+
  113. '<div class="commentBox"><a class="commentHide" href="#">[ close ]</a><br />'+
  114. '<textarea rows="2"></textarea></div>'+
  115. '</div>'+'</div>'
  116. $(".pageIndex").html("");
  117. $(this).append(_page);
  118. }
  119.  
  120.  
  121. $.fn.createQuestion = function(arr_question){
  122. $(this).html("")
  123. for(var tq=0, tqs=arr_question.length; tq<tqs; tq++) {
  124. var _questionText = arr_question[tq].questionText[0].Text;
  125. var _questionId = arr_question[tq].questionId;
  126.  
  127. if(arr_question[tq].type=="slider"){
  128. var _arrScrollValues = arr_question[tq].glossaries[0].glossary.sort(function(a,b){return a.glossaryScore > b.glossaryScore});
  129. $(this).createSliderQuestion(_questionText,_questionId);
  130. var _sliderOption = { range: "max",
  131. min: parseInt(_arrScrollValues[0].glossaryScore),
  132. max: parseInt(_arrScrollValues[_arrScrollValues.length-1].glossaryScore),
  133. value: parseInt(_arrScrollValues[0].glossaryScore),
  134. slide: function(event, ui) { $(this).parent().find("input").val(ui.value); countProgress();},
  135. change: function(event, ui) { $(this).parent().find("input").attr('value', ui.value); }
  136. };
  137. $( ".slider-range-max."+_questionId+" " ).slider(_sliderOption);
  138. }
  139. }
  140. $(this).loadQuestionTool({scrollHorizon: optionScrollHorizon});
  141. };
  142.  
  143. $.fn.questionPerPage = function(questionPage){
  144. var _options="";
  145. for(var q=0,qp=questionPage.length;q<qp;q++)
  146. {
  147. _options += '<option value='+(q+1)+'>'+(q+1)+'</option>';
  148. }
  149. $("select#q-perPage").html(_options);
  150. }
  151.  
  152. $.fn.createProgressbar = function()
  153. {
  154. var totalprogress = $('#progressbar').progressbar('value', 0);
  155. var _progressOption = { value: totalprogress }
  156. $(this).loadProgressbar(_progressOption);
  157. }
  158.  
  159. $.fn.loadProgressbar = function(_progress){
  160. _progress = 'Answered Questions : <div id="percentage"></div>'+
  161. '<div id="progressbar"></div>';
  162. $(this).append(_progress)
  163. }
  164.  
  165. $.fn.saveclose = function(){
  166. var _save_close = '<div style="float:right;"><input type="submit" class="button" value="Save Progress">'+
  167. '<input class="button" type="submit" value="Complete"></div>'+
  168. '</div>';
  169. $(this).append(_save_close)
  170. }
  171.  
  172. $('#d-left > div.category > ul > li > ul > li').live("click",function(){
  173. $('#firstload').css('display','none');
  174. var elID = $(this).attr('id');
  175. var _rightTitle = "<h3>" + $(this).parents("li").children('a').html() + " > " + $(this).find('a').html() + "</h3>";
  176. $("#d-right > div > div.title").html(_rightTitle)
  177. if(questions)
  178. {
  179. targetQuestions = $.map(questions,function(data)
  180. {
  181. _return = null;
  182. if(data.elementId == elID)
  183. _return = data;
  184. return _return;
  185. });
  186.  
  187. if(targetQuestions && targetQuestions.length > 0){
  188. $("#myScroll").createQuestion(targetQuestions)
  189. $("select#q-perPage").questionPerPage(targetQuestions)
  190. $("#progressbar-wrapper").html("");
  191. $("#progressbar-wrapper").createProgressbar();
  192. $('[name*=slider]').change(function() { countProgress(); });
  193. }
  194. }
  195.  
  196. $("#save-close").html("");
  197. $("#save-close").saveclose();
  198. });
  199. } });
  200. });
Add Comment
Please, Sign In to add comment