
function insertTag(tag, idToPlace, endTag, betweenTag){
 if (endTag == null){
   document.getElementById(idToPlace).value += "[" + tag + "] [/" + tag + "]";
 }
 else {
  if (betweenTag == null){
    document.getElementById(idToPlace).value += "[" + tag + "][/" + endTag + "]";
  }
  else {
    document.getElementById(idToPlace).value += "[" + tag + "]" + betweenTag + "[/" + endTag + "]";
  }

 }

}

    var showPollObject = false;

    function createPollContainer(weekNumber){
       var browser=navigator.appName;
       var pollContainer = document.createElement("div");
       var pollHeader = document.createElement("div");
       pollHeader.appendChild(document.createTextNode("RoS Stelling van de week " + weekNumber));
       var pollContent = document.createElement("div");
       var pollButtons = document.createElement("div");

       var form = document.createElement("form");
       form.setAttribute("action", "Controller/CustomerController.php");
       form.setAttribute("method", "post");
        var anwserButton = document.createElement("input");
        var notNowButton = document.createElement("input");
        //var neverButton = document.createElement("input");

            anwserButton.setAttribute("type", "button");
            notNowButton.setAttribute("type", "button");
            //neverButton.setAttribute("type", "button");

            anwserButton.setAttribute("value", "Stem nu");
            notNowButton.setAttribute("value", "Stem bij volgende bezoek");
            //neverButton.setAttribute("value", "Stem nooit");
            

       //IE BUG !!!!!
       if (browser == "Microsoft Internet Explorer"){

            pollContainer.className = "PollContainer";
            pollContainer.id = "divPoll";
            
            pollHeader.className = "pollHeader";
            form.className = "pollForm";
            
            pollContent.className = "PollContent";
            pollContent.id = "divPollContent";
            form.id = "frm";
            pollButtons.className = "PollButtons";
            
            anwserButton.className = "PollButton";
            notNowButton.className = "PollButton";
            //neverButton.className = "PollButton";
            
            pollButtons.id = "divPollButtons";
            
            var newHTML = notNowButton.outerHTML.substring(0, notNowButton.outerHTML.length -1) + " onclick='vote(\"btnIgnorePollForNow\");' name='btnIgnorePollForNow' >";
            pollButtons.innerHTML = newHTML;

           // newHTML = neverButton.outerHTML.substring(0, neverButton.outerHTML.length -1) + " onclick='vote(\"btnIgnorePollForever\");'  name='btnIgnorePollForever' >";
           // pollButtons.innerHTML += newHTML;

            newHTML = anwserButton.outerHTML.substring(0, anwserButton.outerHTML.length -1) + " onclick='vote(\"btnAnwserPoll\");'  name='btnAnwserPoll' >";
            pollButtons.innerHTML += newHTML;
       }
       else {
            form.setAttribute("id", "frm");

            anwserButton.setAttribute("name", "btnAnwserPoll");
            notNowButton.setAttribute("name", "btnIgnorePollForNow");
            //neverButton.setAttribute("name", "btnIgnorePollForever");

            anwserButton.setAttribute("onclick", "vote('btnAnwserPoll');");
            notNowButton.setAttribute("onclick", "vote('btnIgnorePollForNow');");
           // neverButton.setAttribute("onclick", "vote('btnIgnorePollForever');");

            pollContainer.setAttribute("class", "PollContainer");
            pollContainer.setAttribute("id", "divPoll");
            
            pollHeader.setAttribute("class", "pollHeader");
            
            pollContent.setAttribute("class", "PollContent");
            pollContent.setAttribute("id", "divPollContent");
            
            pollButtons.setAttribute("class", "PollButtons");
            pollButtons.setAttribute("id", "divPollButtons");
            
            anwserButton.setAttribute("class", "PollButton");
            notNowButton.setAttribute("class", "PollButton");
            //neverButton.setAttribute("class", "PollButton");
            
            pollButtons.appendChild(notNowButton);
            //pollButtons.appendChild(neverButton);
            pollButtons.appendChild(anwserButton);
       }
       
       form.appendChild(pollHeader);
       form.appendChild(pollContent);
       form.appendChild(pollButtons);
       pollContainer.appendChild(form);
       
       document.body.appendChild(pollContainer);
    }


    function createPollQuestion (question, weekNumber, pollID){
       var browser=navigator.appName;
       if (!document.getElementById('divPoll')){
          createPollContainer(weekNumber);
       }
       
       var pollContent = document.getElementById('divPollContent');
       var pollQuestion = document.createElement("div");

       if (!document.getElementById('hidPollIds')){
          var hidPollIds = document.createElement("input");
          hidPollIds.setAttribute("type", "hidden");
          
            //IE BUG !!!!!
            if (browser == "Microsoft Internet Explorer"){
                hidPollIds.id = "hidPollIds";
                hidPollIds.value = pollID + "|";
                
                var newHTML = hidPollIds.outerHTML.substring(0, hidPollIds.outerHTML.length -1) + " name='hidPollIds' >";

                pollContent.innerHTML = newHTML;
            }
            else {
                hidPollIds.setAttribute("id", "hidPollIds");
                hidPollIds.setAttribute("name", "hidPollIds");
                hidPollIds.setAttribute("value", pollID + "|");
                pollContent.appendChild(hidPollIds);
            }

       }
       else {
          document.getElementById('hidPollIds').value += pollID + "|";
       }

       pollQuestion.appendChild(document.createTextNode(question));
       //IE BUG !!!!!
       if (browser == "Microsoft Internet Explorer"){
            pollQuestion.className = "PollQuestion";
       }
       else {
            pollQuestion.setAttribute("class", "PollQuestion");

       }
       pollContent.appendChild(pollQuestion);
    }


    function createPollAnwser(anwser, anwserID, pollID){
       var browser=navigator.appName;
       var pollContent = document.getElementById('divPollContent');
       var pollAnwser = document.createElement("div");
       var anwserRadioText = document.createElement("label");
       var anwserRadio;
       
       //IE BUG !!!!!
       if (browser == "Microsoft Internet Explorer"){

           anwserRadio = '<input name="lstPoll' + pollID + '" type="radio" value="' + anwserID + '" class="PollAnwserOption" id="lstPollAnwserOption' + anwserID +  '" />';
           pollAnwser.className = "PollAnwser";
           pollAnwser.innerHTML = anwserRadio;
       }
       else {
           anwserRadio = document.createElement("input");
           anwserRadio.setAttribute("type", "radio");
           anwserRadio.setAttribute("value", 1);
           pollAnwser.setAttribute("class", "PollAnwser");
           anwserRadio.setAttribute("class", "PollAnwserOption");
           anwserRadio.setAttribute("id", "lstPollAnwserOption" + anwserID);
           anwserRadio.setAttribute("name", "lstPoll" + pollID);
           pollAnwser.appendChild(anwserRadio);
       }
       
       
       anwserRadioText.appendChild(document.createTextNode(anwser));
       anwserRadioText.setAttribute("for", "lstPollAnwserOption" + anwserID);

       pollAnwser.appendChild(anwserRadioText);
       pollContent.appendChild(pollAnwser);
    }
    
    function letsMoveThePoll(position, to){
      if (!position && !to){
         var screenLength = window.screen.availHeight;
         var pollHeight = document.getElementById('divPoll').offsetHeight;
         var pollWidth = Math.floor(window.screen.availWidth /2 );

         if (!pollHeight){
           pollHeight = 0;
         }
         
         // to will be .5 of pollheight - .5 of screenLength
         position = 0 - pollHeight;
         to =  parseInt((screenLength /2) - (pollHeight / 2));

         var q = position + 'px';
         document.getElementById('divPoll').style.top = q;
         document.getElementById('divPoll').style.left = pollWidth

         //document.getElementById('divPoll').style.left =pollWidth + 'px';
         position = parseInt(position + 10);

         setTimeout ("letsMoveThePoll(" + position + ", " + to + ")", 25);
      }
      
      
      if (position < to){
         position += 10;
         document.getElementById('divPoll').style.top = position + 'px';
         setTimeout ("letsMoveThePoll(" + position + ", " + to + ")", 25);
      }
    }
    
    
    var xmlHttp;
    var httpPath;

    function vote(action){
        xmlHttp=GetXmlHttpObject()

        if (xmlHttp == null) {
            alert ("Browser does not support HTTP Request")
            return;
        }

        var url= document.getElementById('frm').action;
        url = url+"?ButtonClicked=" + action
        url = url+"&sid=" + Math.random();

        xmlHttp.onreadystatechange = stateChanged;
        xmlHttp.open("POST", url , true);
        xmlHttp.setRequestHeader ("Content-Type", "application/x-www-form-urlencoded" );
        var postData = getPostData();

        xmlHttp.send(postData);
    }

    function stateChanged() {

        if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete") {
            //document.getElementById("poll").innerHTML = xmlHttp.responseText;
            //alert(xmlHttp.responseText);
            
            switch (xmlHttp.responseText) {
              case "1" :
                   //not all fields are filled in..
                   alert("Niet alle velden zijn ingevuld");
              break;
              case "2" :
                   // database error
                   showMessage ('Een databasefout trad op');
              break;
              case "3" :
                   // it went well
                   showMessage ('Bedankt voor de door u uitgebrachte stem, tot volgende week.');
                   
              break;
              case "4" :
                   // person allready has voted
                   showMessage ('U heeft op deze stelling al gestemd.');
              break;
              case "5" :
                   // person is logged out
                   showMessage ('Log eerst in om te kunnen stemmen.');
              break;
              case "101" :
                   // not this time
                   showMessage ('Tot een volgende keer.');
              break;
              case "201" :
                  //not ever
                  showMessage ('U zult geen polls meer ontvangen.');
              break;
              //static poll messages
              case "s-1" :
                  //session is lost
                  showMessage ('Uw gegevens konden niet worden verwerkt, ververs uw pagina en probeer opnieuw.');
              break;
              case "s1" :
                  //login is required
                  showMessage ('Om te kunnen participeren aan deze poll, moet u ingelogd zijn. Geen account? registreer u dan gratis. klik <a href="'+ httpPath +'Pages/register.php">hier</a>');
              break;
              
            }
        }
    }
    
    function showMessage (message){
        headContainer = document.getElementById('divPollContent');
        //empty headcontainer
        while (headContainer.hasChildNodes() ){
           headContainer.removeChild(headContainer.firstChild);
        }
        
        buttonContainer = document.getElementById('divPollButtons');
        //empty buttonContainer
        while (buttonContainer.hasChildNodes() ){
           buttonContainer.removeChild(buttonContainer.firstChild);
        }
        
        //headContainer.appendChild(document.createTextNode(message));
        headContainer.innerHTML = message;
        setTimeout("killPoll();",5000);
    }
    
    function killPoll(){
        if (document.getElementById('divPoll')){
           document.getElementById('divPoll').style.display = "none";
        }

    }

    function GetXmlHttpObject() {
        var objXMLHttp = null

        if (window.XMLHttpRequest){
            objXMLHttp=new XMLHttpRequest()
        }
        else if (window.ActiveXObject) {
            objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
        }

        return objXMLHttp
    }
    
    function getPostData ()
    {
     var postData = "";
     
     var form = document.getElementById('frm');
     
     //get all inputs elelements
     var inputs = form.getElementsByTagName('input');
     
     for (i =0; i < inputs.length; i++){
       switch (inputs[i].type.toLowerCase()) {
         case "text" :
            postData += inputs[i].name +  "=" + inputs[i].value + "&";
         break;
         case "hidden" :
            postData += inputs[i].name +  "=" + inputs[i].value + "&";
         break;
         case "radio" :
            if (inputs[i].checked == true){
                postData += inputs[i].name +  "=" + inputs[i].value + "&";
            }
         break;
         case "checkbox" :
            if (inputs[i].checked == true){
                postData += inputs[i].name +  "=" + inputs[i].value + "&";
            }
         break;
         case "button" :
            postData += inputs[i].name +  "=" + inputs[i].value + "&";
         break;
         case "password" :
            postData += inputs[i].name +  "=" + inputs[i].value + "&";
         break;
         case "submit" :
            postData += inputs[i].name +  "=" + inputs[i].value + "&";
         break;
       }
     }

     //get all select elelements
     var selects = form.getElementsByTagName('select');
     for (i =0; i < selects.length; i++){
         postData += selects[i].name +  "=" + selects[i].value + "&";
     }

     //get all textarea elelements
     var texteareas = form.getElementsByTagName('textarea');
     for (i =0; i < texteareas.length; i++){
         postData += texteareas[i].name +  "=" + texteareas[i].value + "&";
     }
     
     return postData;
    }
    
    function viewPollResults(redirect){
       if (document.getElementById('lstYear').value != -1) {
          document.location =  redirect + document.getElementById('lstYear').value ;
       }
    }
    
    function showOrHideText(elementId, originalValue){
        if (document.getElementById(elementId).value == originalValue){
            document.getElementById(elementId).value = "";
        }
        else if(document.getElementById(elementId).value == '') {
           document.getElementById(elementId).value = originalValue;
        }
    }
    
    
   function quoteThisTopic (name, date, source){
     var quoteText = "\n\nQuote van " +  name + " op " + date + "\n";
     quoteText += document.getElementById(source).innerText;

     document.getElementById('txtMessage').value += quoteText;
   }
    
   function startMyMarquee (pxToAdd, maxLength){
                 var browser=navigator.appName;

                 var wordArray = browser == "Microsoft Internet Explorer" ? document.getElementById('divLoremIpsum').innerText.split(" ") : document.getElementById('divLoremIpsum').textContent.split(" ");

                 var totalLength = 0;
                 // since FF filters the " " out of innerHTML we need to include the " " by adding a char after the  " "
                 document.getElementById('dummyDiv').innerHTML = "Q";
                 //this is the testChar
                 var restLength = document.getElementById('dummyDiv').offsetWidth;
                 var zin  = "";
                 for (i=0; i<wordArray.length; i++){
                    if (wordArray[i].length > 0 || browser == "Microsoft Internet Explorer"){
                    

                    document.getElementById('dummyDiv').innerHTML = "Q" + wordArray[i] + " " + "Q";

                    totalLength +=   document.getElementById('dummyDiv').offsetWidth - restLength - restLength;
                    var q = document.getElementById('dummyDiv').offsetWidth - restLength - restLength;
                    //zin += "~" + wordArray[i] + "~ " + q  + "<br />";
                    }
                 }

                 totalLength += 20 + pxToAdd;

                 if (totalLength < maxLength){
                   totalLength = maxLength;
                 }
                 document.getElementById('dummyDiv').innerHTML = zin;
                 document.getElementById('divLoremIpsum').style.width = totalLength + 'px';
                 //duplicate it
                 document.getElementById('divLoremIpsumDuplicate').innerHTML  =  document.getElementById('divLoremIpsum').innerHTML
                 document.getElementById('divLoremIpsumDuplicate').style.width = totalLength + 'px';
                 //alert(totalLength);
                 moveMyMarquee(maxLength,(0-totalLength), maxLength, 10, 1, false, false);
   
   }


   var onHold = false;
   function moveMyMarquee (startPos, endPos, currentPos, speed, speedAmount, moveDuplicate, multipleTrainsOntrack){
                    startDuplicatePos = endPos + Math.floor(startPos/1.5);
                    if (0-startPos == endPos){
                       startDuplicatePos = 0;
                    }

                    var elementToMove = moveDuplicate ? "divLoremIpsumDuplicate" : "divLoremIpsum";


                    // if finished, reset startpos
                    if (currentPos <= endPos){
                        document.getElementById(elementToMove).style.left = startPos + 'px';
                        //setTimeout("moveMyMarquee(" + startPos+ "," + endPos + "," + startPos + "," + speed + "," + speedAmount +"," + moveDuplicate + ");", speed);
                    }
                    else {

                        if (currentPos <= startDuplicatePos && !multipleTrainsOntrack) {
                            // it is time to start the second on now
                            setTimeout("moveMyMarquee(" + startPos+ "," + endPos + "," + startPos + "," + speed + "," + speedAmount +"," + !moveDuplicate + "," + false +");", speed);
                            multipleTrainsOntrack = true;
                        }

                        if (!onHold){
                           currentPos -= speedAmount;
                        }
                        document.getElementById(elementToMove).style.left = currentPos + 'px';
                        setTimeout("moveMyMarquee(" + startPos+ "," + endPos + "," + currentPos + "," + speed + "," + speedAmount +"," + moveDuplicate + "," + multipleTrainsOntrack + ");", speed);

                    }
                 }
    
    
    

