/*
	Stichting Klein Galgenwaard
   Javascripts
	06-07-2007  i-Aspect B.V.
	door: Rutger Laurman
*/

var sports = new Array();
sports[0]= 'basketbal';
sports[1]= 'voetbal';
sports[2]= 'honkbal';
sports[3]= 'judo';
sports[4]= 'tennis';

var W3CDOM = (document.getElementsByTagName && document.createElement);

function init(){
	if(!W3CDOM)	return;

	/* stel 2 willekeurige sportafbeeldingen in */
	showTwoSports();

	/* actieve menu item zetten */
	setActiveMenuItem();

	/* laat links met type=popup popuppen */
	initPopupLinks();	
}


/* shuffle functie voor arrays */
	Array.prototype.shuffle = function(){
	  for (var i = 0; i < this.length; i++)  {
		 var r = parseInt(Math.random() * this.length);
		 var obj = this[r];
		 this[r] = this[i];
		 this[i] = obj;
	  }
	}

/* toon 2 willekeurige sport afbeeldingen */
	function showTwoSports(){
		var holder = document.getElementById('sportsholder');
		holder.innerHTML='';
		var twoSports = getRandomSports();

		holder.appendChild(createImage(twoSports[0]));
		holder.appendChild(createImage(twoSports[1]));
	}

/* maak afbeelding element */
	function createImage(value){
		var element = document.createElement('IMG');
		element.setAttribute('src','/images/sport-'+value+'.gif');
		element.setAttribute('alt',value);
		return element;
	}

/* geef een willekeurige sport terug */
	function getRandomSports(){
		sports.shuffle();
		var returnSports = new Array();
		returnSports.push(sports[0]);
		returnSports.push(sports[1]);
		return returnSports;
	}

/* zet actieve menu knop */
	function setActiveMenuItem(){
      menuobject = document.getElementsByTagName('li');
      for(var j=0; j<menuobject.length; j++){
         menuAObject = menuobject[j].getElementsByTagName('a');
         for(var s=0; s<menuAObject.length; s++){
            if(menuAObject[s] == self.location.href)
               menuAObject[s].className+=' active';
         }
      }
	}

/* maak popup links in popup */
   function initPopupLinks(){
      var x = document.getElementsByTagName('a');
      for (var i=0;i<x.length;i++) {
      	if (x[i].getAttribute('type') == 'popup') {
      		x[i].onclick = function () {
      			return popitup(this.href)
      		}
      		x[i].title += ' (Popup)';
      	}
      }
   }

/* open de popup */
   function popitup(url) {
   	newwindow=window.open('','name','height=550,width=780,scrollbars=yes');
	   // venster verplaatsen en maximaliseren
      newwindow.moveTo(0,0);
      newwindow.resizeTo(screen.width,screen.height);
   	if (window.focus) {newwindow.focus()}

   	var tmp = newwindow.document;

   	tmp.write('<html><head><title>Afbeelding</title>');
   	/*tmp.write('<script type="text/javascript">function fitPic() { if (window.innerWidth){ iWidth = window.innerWidth; iHeight = window.innerHeight; }else{ iWidth = document.body.clientWidth; iHeight =document.body.clientHeight; } iWidth = document.images[0].width - iWidth; iHeight = document.images[0].height - iHeight; window.resizeBy(iWidth+40, iHeight-100); };</script>');*/
   	tmp.write('</head><body id="popup" onload="fitPic()">');
   	tmp.write('<a href="javascript:self.close()" title="Klik op de afbeelding om het venster te sluiten"><img src="'+url+'" align="middle" alt="Afbeelding" border="0" /></a><br />');
   	tmp.write('<p><a href="javascript:self.close()">sluit</a> dit venster.</p>');
   	tmp.write('</body></html>');
   	tmp.close();

   	return false;
   }



   // onload functies
   function init(){
      if(document.getElementById('vervolgpagina'))
         randomHeader();
      if(document.getElementById('email'))
         setEmailInputValue();
      if(document.getElementById('nbrief'))
         setEmailValidate();
      if(document.getElementById('reserveringtabel'))
         switchTableRows();
   }
   window.onload=init;  
   
   
   function randomHeader(){
      var numberOfPictures = 4;
      var randomPicture = Math.ceil(Math.random()*numberOfPictures);
      var target = document.getElementById('header');
      target.style.backgroundImage="url(/img/header-vervolgpagina"+randomPicture+".jpg)";
   }
   
   function setEmailInputValue(){
      var target = document.getElementById('email');
      if(target.value=='') target.value='Uw emailadres';
      target.onfocus=function(){
         if(target.value=='Uw emailadres') target.value=''; 
      }
      target.onblur=setEmailInputValue;
   }
   
   function setEmailValidate(){
      var form  = document.getElementById('nbrief');
      var email = document.getElementById('email');
      form.onsubmit=function(){
         subscribeToNewsletter();
         return false;
      }
   }
   
   
   function switchTableRows(){
      var table = document.getElementById('reserveringtabel');
      var tbody = table.getElementsByTagName('tbody')[0];
      var rows = tbody.getElementsByTagName('tr');
      for(i=0;i<rows.length;i++)
         if(i%2==0) rows[i].className='offset'; 
   
   }
   
function subscribeToNewsletter(){
  var email = document.getElementById('email').value;
  if(email){
      if (!validateerEmail(email)) {
         alert('Ongeldig emailadres ingevuld.');
         return false;
      }
    
      var target = document.getElementById('response');
      var opt = { 
         method: 'post',
         parameters: 'email='+email,
         onSuccess: function(t) {
            target.innerHTML = t.responseText;
         },
         on404: function(t) {
           alert('Error 404: location "' + t.statusText + '" was not found.');
         },
         onFailure: function(t) {
           alert('Error ' + t.status + ' -- ' + t.statusText);
         }
      }
      var ajax_url = '/nieuwsbrief/members/subscribe';
      new Ajax.Request(ajax_url, opt);
   } else {
      alert('Geen emailadres ingevuld.');
      return false;
   }   
   return false;
}


function validateerEmail(email){
   if(email.length <= 0)
      return false;

   var splitted = email.match("^(.+)@(.+)$");
   if(splitted == null) return false;
   if(splitted[1] != null ){
      var regexp_user=/^\"?[\w-_\.]*\"?$/;
      if(splitted[1].match(regexp_user) == null) return false;
   }
   
   if(splitted[2] != null) {
      var regexp_domain=/^[\w-\.]*\.[A-Za-z]{2,4}$/;
      if(splitted[2].match(regexp_domain) == null){
         var regexp_ip =/^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]$/;
         if(splitted[2].match(regexp_ip) == null) return false;
      }
      return true;
   }
   return false;
}

Array.prototype.in_array = function (element) {
   var returnValue = false;
   for (var values in this) {
      if (this[values] == element) {
         returnValue = true;
         break;
      }
   }
   return returnValue;
};

function initEnquete() {
	$('q4other').observe('click', function(event) {
		var element = $('question4d');
		element.addClassName('active');
	});
	$('q4other').observe('blur', function(event) {
		var element = $('question4d');
		console.log("dada");
		element.removeClassName('active');
	});
	$('enqueteButton').observe('click', function(event){
		Event.stop(event);
	
		var question1 = $('question1').value;
		var question2 = $('question2').value;
		var question3 = $('question3').value;
		var question4 = $('question4').value;
		  
		var question1Values = Array("a","b","c","d");
		var question4Values = Array("a","b","c","d");
		  
		var error = [];
		//validate data
		document.getElementById('question1Messages').innerHTML = "";
		if( ! question1Values.in_array(question1) ) {
			error[0] = "Kies een van de opties.";
			document.getElementById('question1Messages').innerHTML = error[0];
		}
	    document.getElementById('question2Messages').innerHTML = "";
	    if( ! question2 ) {
		   error[1] = "Vul de vraag in.";
	       document.getElementById('question2Messages').innerHTML = error[1];
	    }
	    document.getElementById('question3Messages').innerHTML = "";
	    if( ! question3 ){
		   error[2] = "Vul de vraag in.";
		   document.getElementById('question3Messages').innerHTML = error[2];
	    }
	    document.getElementById('question4Messages').innerHTML = "";
	    if( ! question4Values.in_array(question4) ) {
		   error[3] = "Kies een van de opties.";
		   document.getElementById('question4Messages').innerHTML = error[3];
	    }    
	    
	    if (error.length==0) {
	       var url = $('enqueteForm').action;
	       var params = { 
	    		   'question1': question1
	    		   ,'question2': question2
	    		   ,'question3': question3
	    		   ,'question4': question4
	    		   ,'question4d': $('question4d').value
	    		   ,'submit': true
	    		   };
	       
	       new Ajax.Request(url, {
	          method: 'post',
	          	 parameters: params,
	             onSuccess: function(transport) {
	    	   		var json = transport.responseText.evalJSON(true);
	    	   		if(json.ok) {
	    	   			$('enqueteResponse').innerHTML = json.result;
	    	   			$('enqueteResponse').addClassName('active');
	    	   		}
	    	     }
	       });
	    }
	    return false;
	});
}

document.observe("dom:loaded", function() {
	initEnquete(); 
});

window.onload=init;
