﻿function FaqRepeater_Control(id, hiddenId, checkBoxId, showSingle) {
   this.Id = id;
   this.HiddenId = hiddenId;
   this.CheckBoxId = checkBoxId;
   this.ShowSingle = showSingle;
   
   this.GetItems = function() {
      var items = new Array();
      if (typeof eWorld_FaqRepeater_Items != 'undefined') {
         for (var i=0; i<eWorld_FaqRepeater_Items.length; i++) {
            if (eWorld_FaqRepeater_Items[i].Id == this.Id) {
               items[items.length] = eWorld_FaqRepeater_Items[i];
            }
         }
      }
      return items;
   }
   
   this.Toggle = function(questionId) {
      var items = this.GetItems();
      for (var i=0; i<items.length; i++) {
         if (items[i].QuestionId == questionId) {
            if (items[i].Collapsed && this.ShowSingle) {
               this.HideAll();
            }
            items[i].Toggle();
            break;
         }
      }
      this.SaveState();
   }
   
   this.ToggleAll = function() {
      var items = this.GetItems();
      var cb = document.getElementById(this.CheckBoxId);
      if (cb != null) {
         if (cb.checked) {
            this.ShowAll();
         } else {
            this.HideAll();
         }
      }
      this.SaveState();
   }
   
   this.HideAll = function() {
      var items = this.GetItems();
      for (var i=0; i<items.length; i++) {
         if (!items[i].Collapsed) {
            items[i].Toggle();
         }
      }
   }
   
   this.ShowAll = function() {
      var items = this.GetItems();
      for (var i=0; i<items.length; i++) {
         if (items[i].Collapsed) {
            items[i].Toggle();
         }
      }
   }
   
   this.CheckToggleAll = function() {
      var cb = document.getElementById(this.CheckBoxId);
      if (cb != null) {
         var items = this.GetItems();
         var allExpanded = false;
         for (var i=0; i<items.length; i++) {
            if (items[i].Collapsed) {
               allExpanded = true;
               break;
            }
         }
         cb.checked = !allExpanded;
      }
   }
   
   this.SaveState = function() {
      var hid = document.getElementById(this.HiddenId);
      if (hid != null) {
         var items = this.GetItems();
         var value = '';
         for (var i=0; i<items.length; i++) {
            if (value.length > 0) {
               value += '|01';
            }
            value += eWorld_ReplaceFormat('{0}|02{1}', new Array(items[i].QuestionId, items[i].Collapsed));
         }
         hid.value = value;
      }
   }
}

function FaqRepeater_Item(id, questionId, answerId, collapsed) {
   this.Id = id;
   this.QuestionId = questionId;
   this.AnswerId = answerId;
   this.Collapsed = collapsed;
   
   this.Toggle = function() {
      var answer = document.getElementById(this.AnswerId);
      if (answer != null) {
         this.Collapsed = !this.Collapsed;
         if (this.Collapsed) {
            answer.style.display = 'none';
         } else {
            answer.style.display = '';
         }
      }
      var repeater = FaqRepeater_Find(this.Id);
      repeater.CheckToggleAll();
      repeater.SaveState();
   }
}

function FaqRepeater_Find(id) {
   return eWorld_FindItem(eWorld_FaqRepeater_Controls, id);
}

function FaqRepeater_InitializeCompatibility() {
   if (typeof(eWorld_FaqRepeaters) != 'undefined') {
      for (var i=0; i<eWorld_FaqRepeaters.length; i++) {
         var element = document.getElementById(eWorld_FaqRepeaters[i]);
         eWorld_FaqRepeater_Controls[i] = eval(element.faqRepeaterControl);
         
         var items = element.faqRepeaterItems.split(';');
         for (var j=0; j<items.length; j++) {
            eWorld_FaqRepeater_Items[j] = eval(items[j]);
         }
      }
   }
}

if(typeof(Sys)!=='undefined')Sys.Application.notifyScriptLoaded();