/* Functies voor het reserveringsformulier */
var formCount   = 0;
var formValid   = new Array();
var formMessage = '';

function validate(s) {

//  if (s == 'geslacht') {

//    if (!document.myform.elements[4].checked || !document.myform.elements[5].checked) {
//      formValid[0] = 'Geslacht is niet ingevuld'+'\n';
//    }
//  } else {
  if (s != 'geslacht') {
    if (document.getElementById(s).value == '') {
      formValid[formCount] = s;
      formCount++;
    }
  }
}

function formGoNext() {
  var theDiv = document.getElementById('blok1');
  var theEls = theDiv.getElementsByTagName('label');

  for (i=0; i<theEls.length; i++) {
    if(theEls[i].className == 'required') {
      var theAttr = (ie)?'htmlFor':'for';
      validate(theEls[i].getAttribute(theAttr));
    }
  }
  
  if (formValid.length == 0) {
    document.getElementById('blok1').style.display = 'none';
    document.getElementById('blok2').style.display = 'block';
  
  } else {
    
    formMessage = 'De volgende velden zijn niet of niet goed ingevuld:'+'\n';
    for (i=0; i<formValid.length; i++) {
      formMessage += formValid[i];
      if (i!=(formValid.length-1)) {
        formMessage += ', ';
      }
    }
    
    formValid   = new Array();
    formCount   = 0;
    alert(formMessage);
  }
}

function formSubmit() {
  var form = (document.getElementById('form'))
  var theDiv = document.getElementById('blok2');
  var theEls = theDiv.getElementsByTagName('label');

  for (i=0; i<theEls.length; i++) {
    if(theEls[i].className == 'required') {
      var theAttr = (ie)?'htmlFor':'for';
      validate(theEls[i].getAttribute(theAttr));
    }
  }
  
  if (formValid.length == 0) {
//    document.getElementById('blok1').style.display = 'none';
//    document.getElementById('blok2').style.display = 'block';
//    alert('submit the form');
    document.myform.submit();
  } else {
    
    formMessage = 'De volgende velden zijn niet of niet goed ingevuld:'+'\n';
    for (i=0; i<formValid.length; i++) {
      formMessage += formValid[i];
      if (i!=(formValid.length-1)) {
        formMessage += ', ';
      }
    }
    
    formValid   = new Array();
    formCount   = 0;
    alert(formMessage);
  }
}
    
function formGoPrev() {
  document.getElementById('blok1').style.display = 'block';
  document.getElementById('blok2').style.display = 'none';
}


function Trim(s) {
  if(s.length < 1){
    return"";
  }
  s = RTrim(s);
  s = LTrim(s);
  if(s==""){
    return "";
  } else {
    return s;
  }
} //End Function

function RTrim(s){
  var w_space = String.fromCharCode(32);
  var v_length = s.length;
  var strTemp = "";
  if(v_length < 0){
    return"";
  }
  var iTemp = v_length -1;

  while(iTemp > -1){
    if(s.charAt(iTemp) == w_space){
    } else {
      strTemp = s.substring(0,iTemp +1);
      break;
    }
    iTemp = iTemp-1;
  } //End While
  return strTemp;

} //End Function

function LTrim(s){
  var w_space = String.fromCharCode(32);
  if(v_length < 1) {
    return"";
  }
  var v_length = s.length;
  var strTemp = "";

  var iTemp = 0;

  while(iTemp < v_length){
    if(s.charAt(iTemp) == w_space){
    } else {
      strTemp = s.substring(iTemp,v_length);
      break;
    }
    iTemp = iTemp + 1;
  } //End While
  return strTemp;
} //End Function


/*var prev_s = '';

function showsub(s) {
  if (prev_s != '') hidesub(prev_s);
  try {
    if (s.childNodes[1]) {
      s.childNodes[1].style.display = "block";
      prev_s = s;
    } 
  } catch(e) {
  }
}*/




function showsub(s) {
  try {
    if (s.childNodes[1]) {
      s.childNodes[1].style.display = 'block';
    }
  } catch(e) {
  }
 }


function hidesub(s) {
  try {
    if (s.childNodes[1]) {
      s.childNodes[1].style.display = 'none';
    }
  } catch(e) {
  }
 }

// init counter array
var counter = new Array();
    counter['news'] = 0;
    counter['gall'] = 0;
// init id array
/* moved to template */

// init flag arrays
var flagPrev = new Array();
var flagNext = new Array();
    flagPrev['news'] = true;
    flagPrev['gall'] = true;
    flagNext['news'] = true;
    flagNext['gall'] = true;

function goNext(s, type) {
  // make prev button visible
  document.getElementById(type+'prev').style.visibility = 'visible';


  if (s=='next' && flagNext[type]) {
    flagNext[type]=false; flagPrev[type]=true; counter[type]++;
  }

  if (s=='prev' && flagPrev[type]) {
    flagNext[type]=true; flagPrev[type]=false; counter[type]--;
  }

  if (s=='next') if (counter[type] == idArray[type].length) counter[type] = 0;
  if (s=='prev') {
    if (counter[type] == 0) counter[type] = idArray[type].length; counter[type]--;
  }
  
  if(type == 'news') {
    xml[2] = getNewHTTPObject();
    xml[2].open('GET', 'index.php?id=20&newsid='+idArray[type][counter[type]], true);
    xml[2].onreadystatechange = handleResponse2;
    xml[2].send('');
  } else {
    xml[3] = getNewHTTPObject();
    xml[3].open('GET', 'index.php?id=20&newsid='+idArray[type][counter[type]], true);
    xml[3].onreadystatechange = handleResponse3;
    xml[3].send('');
  }
  if (s=='next') counter[type]++;
}

var xml      = new Array();
var browser  = navigator.appName;
var ie       = (browser == 'Microsoft Internet Explorer');
  
/* http request object */
/**
*=-------------------------------------------------------=
* getNewHTTPObject
*=-------------------------------------------------------=
* This function is here just to create a new
* XmlHttpRequest object.
*/
function getNewHTTPObject() {
  var xmlhttp;

  /** IE code ... */
  /*@cc_on
    @if (@_jscript_version >= 5)
      try {
        xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
      } catch (e) {
        try {
          xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        } catch (E) {
          xmlhttp = false;
        }
      }
    @else
      xmlhttp = false;
  @end @*/

  /** other browser */
  if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
    try {
      xmlhttp = new XMLHttpRequest();
    } catch (e) {
      xmlhttp = false;
    }
  }
  return xmlhttp;
}

/**
 *=-------------------------------------------------------=
 * init
 *=-------------------------------------------------------=
 * two asynchronous Ajax requests to the same xml
 */


function init() {
  document.getElementById('container').style.height = (document.documentElement.scrollHeight) + 'px';
  document.documentElement.style.height = (document.documentElement.scrollHeight) + 'px';
  xml[0] = getNewHTTPObject();
  xml[1] = getNewHTTPObject();

  xml[0].open('GET', 'index.php?id=20&newsid='+idArray["news"][0], true);
  xml[1].open('GET', 'index.php?id=20&newsid='+idArray["gall"][0], true);

  xml[0].onreadystatechange = handleResponse0;
  xml[1].onreadystatechange = handleResponse1;

  xml[1].send('');
  xml[0].send('');
}

function handleResponse0() {
  handleResponse('news', 0)
}

function handleResponse1() {
  handleResponse('gall', 1)
}

function handleResponse2() {
  handleResponse('news', 2)
}

function handleResponse3() {
  handleResponse('gall', 3)
}

/**
 *=-------------------------------------------------------=
 * handleResponse1
 *=-------------------------------------------------------=
 * This handles the response from the ajax request.
 * It updates the gallery and news modules on the page
 */
function handleResponse(tpe, i) {
  if (xml[i].readyState == 4) {
    if (ie) {
      //IE does not take the responseXML as a dom document
      xmldoc = new ActiveXObject("Microsoft.XMLDOM");
      xmldoc.async=false;
      xmldoc.loadXML(xml[i].responseText);
    } else {
      xmldoc = xml[i].responseXML;
    }
  
    var longtitle = xmldoc.getElementsByTagName('longtitle')[0].firstChild.nodeValue;
    var content   = xmldoc.getElementsByTagName('content')[0].firstChild.nodeValue;
    var morenews  = xmldoc.getElementsByTagName('morenews')[0].firstChild.nodeValue;
    var filename  = Trim(xmldoc.getElementsByTagName('filename')[0].firstChild.nodeValue);
    var nid       = Trim(xmldoc.getElementsByTagName('id')[0].firstChild.nodeValue);

    document.getElementById('boxtitle_'+tpe).innerHTML   = longtitle;
    document.getElementById('boxcontent_'+tpe).innerHTML = (filename=='')?'':'<img style="margin-top: 8px;" width="67" src="assets/galleries/'+nid+'/'+filename+'" />';
    document.getElementById('boxcontent_'+tpe).innerHTML+= content;
    document.getElementById('more'+tpe).innerHTML = morenews;
  }
}

this.onload = init;