// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults
      var listAnsweredUpdate = false;
      var listUnansweredUpdate = false;
      var formFields = new Array();
          formFields[0] = "user_name";
          formFields[1] = "user_address";
          formFields[2] = "user_zipcode";
          formFields[3] = "user_city";
          formFields[4] = "user_email";
          formFields[5] = "user_phone";
          formFields[6] = "question_question";
      var requiredFields = new Array();
      var textChild = document.createTextNode("Het stellen van vragen is niet langer mogelijk, het spreekuur is beeindigd.")

      function updateQuestionStatus (changeNode, status) {
        var statustext;
        var statusNode = getObj("info_" + changeNode);
        switch (status) {
          case 1:  
            statustext = "De vraag is gesteld en wordt nu gescreened door onze mediator"; 
            statusNode.src = '/images/icons/bullet_blue.png';
            break;
          case 2:  
            statustext = "De vraag is afgekeurd omdat deze niet voldoet aan de spreekuur regels";
            statusNode.src = '/images/icons/cross.png';
            break;
          case 3:  
            statustext = "De vraag is gescreened door de mediator en kan nu worden beantwoord"; 
            statusNode.src = '/images/icons/tick.png';
            break;

          default: 
            statustext = "De vraag is gesteld";
            statusNode.src = '/images/icons/bullet_blue.png';
        }
        statusNode.alt = statustext;
        statusNode.title = statustext;
        listUnansweredUpdate = true;
      }

      function changeNodetext (changeNode, count, extraText) {
        //var i = (getObj(countNode).getElementsByTagName('div').length);
        getObj(changeNode).firstChild.nodeValue = extraText + count;
      }
      
      function changeUnansweredNode (uq_count) {
        var i = "Aantal vragen onbeantwoord: " + uq_count;
        getObj("counter2").firstChild.nodeValue = i;
      }

      function getObj(elementID) {
        if (typeof elementID == "string")
          return document.getElementById(elementID);
        else
          return elementID;
      }
      
      function validateForm() {
        var errorMessage = "";    
        for (var i = 0; i < formFields.length; i++) {
          var object = getObj(formFields[i]);
          if (object && requiredFields[i] == 1) {
            switch (i) {
              case 0:  errorMessage += validateGeneral('naam',object); break;
              case 1:  errorMessage += validateGeneral('adres',object); break;
              case 2:  errorMessage += validateZipcode(object); break;
              case 3:  errorMessage += validateGeneral('plaats',object); break;
              case 4:  errorMessage += validateEmail(object); break;
              case 5:  errorMessage += validatePhone(object); break;
              default: errorMessage += validateGeneral('vraag',object);
            }
          }
        }
        
        if (errorMessage != "") {
          alert(errorMessage);
          return false;
        }
      }
      
      function validateGeneral(veldnaam, object) {
        if (object.value == "")
          return "Je hebt geen " + veldnaam + " ingevuld. \n";
        return "";
      }

      function validateZipcode(object) {
        var stripped = object.value.replace(' ', '');
        var error = "";
        
          if (object.value == "") {
            error = "Je hebt geen postcode ingevuld.\n";
          } else if ( stripped.length != 6 || isNaN(parseInt(stripped.substring(0,3))) ) {
            error = "Dit is geen correcte postcode. \n";
          }
        
        return error;
      }
      
      function validateEmail(object) {
        var error = "";
        
          apos  = object.value.indexOf("@")
          dotpos= object.value.lastIndexOf(".")
          if (object.value == "") {
            error = "Je hebt geen email adres ingevuld.\n";
          } else if (apos<1||dotpos-apos<2) {
            error = "Dit is geen correct email adres. \n"
          }
        
        return error;
      }
      
      function validatePhone(object) {
        var error = "";
        
          var stripped = object.value.replace(/[\(\)\.\-\ ]/g, '');
          if (object.value == "") {
            error = "Je hebt geen telefoonnummer ingevuld.\n";
          } else if (isNaN(parseInt(stripped)) || !(stripped.length == 10)) {
            error = "Het telefoonnummer bevat niet 10 cijfers.\n";
          }
        
        return error;
      }
      
      bTextareaWasTinyfied = false; //this should be global, could be stored in a cookie...

      function setTextareaToTinyMCE(sEditorID) {
	      var oEditor = document.getElementById(sEditorID);
	      if(oEditor && !bTextareaWasTinyfied) {
		      tinyMCE.execCommand('mceAddControl', true, sEditorID);
		      bTextareaWasTinyfied = true;
	      }
	      return;
      }

      function unsetTextareaToTinyMCE(sEditorID) {
	      var oEditor = document.getElementById(sEditorID);
	      if(oEditor && bTextareaWasTinyfied) {
		      tinyMCE.execCommand('mceRemoveControl', true, sEditorID);
		      bTextareaWasTinyfied = false;
	      }
	      return;
      }