/**
 * Custom javascript for Bazuin 
 * Created by Silvio Merucci for Intermax Interactive B.V. 2010
 * www.intermaxinteractive.nl
 * www.bazuin.nl
 */

var bazuinJs = Class.create({
	opendFaqElement : '',
	
	// Functions
	initialize: function() {

	},
	
	openFaqElement : function(elmid){
		// Close old
		 
		if(this.opendFaqElement !== ""){
			// Close div
			$('antwoord_content_'+this.opendFaqElement).style.height = '50px';
		
			// Add open button
			
			var    openDivId = "faqMoreButton"+this.opendFaqElement;
			// Add the open button
			var openDiv = Builder.node('div', {
				className : "faqMore",
				id : openDivId
			});
			
			openAOnclick = "bazuin.openFaqElement("+this.opendFaqElement+")";
			
			var openA = Builder.node('a', {
				href : "#",
				onclick : openAOnclick
				},
				'Lees meer');
			
			openDiv.appendChild(openA);
			
			// Add closediv to div
			$('liFaq'+this.opendFaqElement).appendChild(openDiv);	
			
			// Delete close button
			$('faqCloseButton'+this.opendFaqElement).remove();
			
		}
		
		// Open element
		$('antwoord_content_'+elmid).style.height = 'auto';	
		// Set new open
		this.opendFaqElement = elmid;
		
		// Set new button
		// Delete read more link
		$('faqMoreButton'+elmid).remove();
		
		closeDivId = "faqCloseButton"+elmid; 
		
		// Add the close button
		var closeDiv = Builder.node('div', {
			className : "faqClose",
			id : closeDivId
		});
		
		closeAOnclick = "bazuin.closeFaqElement("+elmid+")";
		
		var closeA = Builder.node('a', {
			href : "#",
			onclick : closeAOnclick
			},
			'Sluiten');
		
		closeDiv.appendChild(closeA);
		// Add closediv to div
		$('liFaq'+elmid).appendChild(closeDiv);
		
	},
	
	closeFaqElement : function(elmid){
		// Close element
		$('antwoord_content_'+elmid).style.height = '62px';
		
		// Delete close button
		$('faqCloseButton'+elmid).remove();
		
		// Create open button
		openDivId = "faqMoreButton"+elmid; 
		
		// Add the open button
		var openDiv = Builder.node('div', {
			className : "faqMore",
			id : openDivId
		});
		
		openAOnclick = "bazuin.openFaqElement("+elmid+"); Effect.ScrollTo('question"+elmid+"');";
		appear = ""; //liFaq{$smarty.foreach.loop.index}
		
		var openA = Builder.node('a', {
			href : "#",
			onclick : openAOnclick
			},
			'Lees meer');
		
		openDiv.appendChild(openA);
		
		// Add closediv to div
		$('liFaq'+elmid).appendChild(openDiv);
		
		// Reset opened div
		this.opendFaqElement = "";
	},
	
	openHighlight : function(highlight, number, total) {
		var contentElement = $(highlight+'_content_'+number);
		
			document.getElementById('antwoord_content_'+number).style.visibility = 'visible';
			document.getElementById('antwoord_content_'+number).style.height = 'auto';
			document.getElementById('faqMoreButton'+number).style.visibility = 'hidden';
			document.getElementById('faqMoreButton'+number).style.height = 'auto';
			document.getElementById('faqCloseButton'+number).style.visibility = 'visible';
			document.getElementById('faqCloseButton'+number).style.height = 'auto';
			bazuin.closeOtherAnswers( total, 'antwoord_content_'+number );
	
	},
	
	closeHighlight : function(highlight, number, total) {
			var contentElement = $(highlight+'_content'+number);
					
			document.getElementById('antwoord_content_'+number).style.visibility = 'hidden';
			document.getElementById('antwoord_content_'+number).style.height = '0px';
			document.getElementById('faqCloseButton'+number).style.visibility = 'hidden';
			document.getElementById('faqCloseButton'+number).style.height = 'auto';
			document.getElementById('faqMoreButton'+number).style.visibility = 'visible';
			document.getElementById('faqMoreButton'+number).style.height = 'auto';
			
	},
	// iterate through other divs to close them
	closeOtherAnswers : function( total, currentAnswer ) {
		for (var i = 0; i <= total; i++){ 
			var currentElement = 'antwoord_content_'+i;
			
			if ( currentElement != currentAnswer )
			{				
				
				console.log(currentElement);
				
			//	document.getElementById(currentElement).style.visibility = 'hidden';
				document.getElementById(currentElement).style.height = '0px';
				document.getElementById('faqCloseButton'+i).style.visibility = 'hidden';
				document.getElementById('faqCloseButton'+i).style.height = 'auto';
				document.getElementById('faqMoreButton'+i).style.visibility = 'visible';
				document.getElementById('faqMoreButton'+i).style.height = 'auto';
			}
		}
		
	},
	
	validateRegister: function() {
		
		// get register input field
		var name = $('registerName');
		var email = $( 'registerEmail');
		var kvknr = $('registerKVKNR');
		var helplink = $('helplink');
		var check = 0;
		
		// first check if email and name fields are valid, if not return else go to kvkcheck
		// fields cannot be empty due to onfocus and blur
	
		//check name
		if ( name.value == '' || name.value == 'Naam')
		{
			$( 'registerName').className = "error";
			$( 'registerName').value = "Naam";
		} else {
			check += 1;
		}
		//check email
		var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
		if (filter.test(email.value) == false )
		{
			$( 'registerEmail').className = "error";
			$( 'registerEmail').value = "E-mailadres";
		} else {
			check += 1;
		}
		
		//simple numeric check first before api check
		if ( kvknr.value != parseInt( kvknr.value ))
		{
			$('registerKVKNR').className = "error";
			$('registerKVKNR').value = "KvK nummer";
		} else {
			check += 1;
		}
		// call ajax module module to check kvknr
		if ( check == 3 )
		{
			new Ajax.Updater( 'ajax-wrapper', '/Ajax?module=Register&method=validateRegister&name='+name.value+'&email='+email.value+'&kvknr='+kvknr.value+"&helplink="+helplink.value );
		}
	},
	
	resetRegister: function( name, email, kvknr) {
				
		new Ajax.Updater('ajax-wrapper', '/Ajax?module=Register&method=resetRegister&name='+name+'&email='+email+'&kvkNR='+kvknr );
	},
	
	finishRegister: function(name, email) {
		new Ajax.Updater( 'ajax-wrapper', '/Ajax?module=Register&method=finish&name='+name+'&email='+email);
	}
	
	
	
});

var bazuin = new bazuinJs();
