var CONFIG = {};
var objOverlayer = null;

window.addEvent('domready', function()
{	
	var baseHref = $(document.head).getElement('base');
	CONFIG.BASE_URL = baseHref.href;
	
	$$('form.enhance input').each(function(elInput)
	{
		elInput.addEvent('focus', function()
		{
			doClear(elInput);
		});
		elInput.addEvent('blur', function()
		{
			resetField(elInput);
		});
	});
	
	$$('a.inactivebtn').setStyles(
	{
		'opacity': .4,
		'cursor': 'default'
	});
	
	if($('planning_show'))
	{
		$('planning_show').addEvent('click', function()
		{
			$$('ul.training-list li.hidden').removeClass('hidden');
			$('planning_show').getParent().addClass('hidden');
		});
	}
	
	new TrainingContent();
	new Signup();
	new InformForm();
	new Video();
	new MeerWeten();
	new SearchNavigation();
});

function doClear(field) 
{
	if (field.value == field.defaultValue) 
	{
	 	field.value = "";
	}
}
function resetField(field) 
{
	if (field.value == '') 
	{
		field.value = field.defaultValue;
	}
}

var Video = new Class(
{
	initialize: function()
	{
		if($('videolist'))
		{
			objOverlayer = new overlayer();
			
			// videolist
			$$('.videolist li').each(function(elList) 
			{
				elList.addEvents(
				{
					'mouseenter': function() 
					{
						this.addClass('hover');
					},
					'mouseleave': function() 
					{
						this.removeClass('hover');
					},
					'click': function(event) 
					{
						if(elList.getElement('.flashdata .url'))
						{
							event.stop();
							
							// get data
							elList.strUrl = elList.getElement('.flashdata .url').innerHTML;
							elList.strTitle = elList.getElement('.flashdata .title').innerHTML;
							
							// PageTracker
							pageTracker._trackPageview(elList.strUrl);
							
							// remove current movie
							//$('overlayer_2').set('html', '<div class="videobox" id="videobox"><div id="videoplayerswf"><img src="./inc/image/placeholder-flash.gif" /></div><img id="videoclose" class="close" src="./inc/image/blt-min.gif" /></div>');
							
							var strContent = $('emptybox').innerHTML;
							strContent = strContent.replace('videoplayerswfbogus', 'videoplayerswf');
							strContent = strContent.replace('videoclosebogus', 'videoclose');
							strContent = strContent.replace('%videotitle%', elList.strTitle);
							$('overlayer_2').set('html', strContent);
							
							// set new movie
							var so = new SWFObject('inc/swf/videoplayer.swf', 'videoplayerflash', '440', '295', '7', '#FFFFFF');
							so.addParam('wmode', 'transparent');
							so.addVariable('videoURL', elList.strUrl);
							so.write('videoplayerswf');
							
							// calc height
							var intScrollTop = getScrollTop();
							var intHeight = getHeight();
							//var intTop = intScrollTop + ((intHeight / 2) - (250 / 2));
							var intTop = intScrollTop + 100;
							
							// show
							elOverlayerContent.setStyle('top', intTop + 'px');
							elOverlayerFake.fade(0.6);
							elOverlayerContent.fade('in');
							
							// make close button work
							if($('videoclose'))
							{
								$('videoclose').addEvent('click', function(e)
								{
									// fade out
									objOverlayer.doHide();
									$('overlayer_2').set('html', '');
								});	
							}	
						}
					}
				});
			});
			
			
		}
	}
});

var overlayer = new Class(
{
	elObjects: null,
	initialize:function()
	{
		var self = this;
		
		// get objects from page
		//this.elObjects = $(document.body).getElements('object');
		
		// create 2 fullscreen divs
		elOverlayerFake = new Element('div',
		{
		    'id': 'overlayer_1',
		    'styles':
		    {
		    	'position': 'absolute',
		    	'left': '0px',
		    	'top': '0px',
		    	'opacity': '0',
		    	'background-color': '#000000',
		    	'width': '100%',
		    	'z-index': '999',
		    	'height': getScrollHeight() + 'px'
		    },
		    'events':
		    {
		        'click': function()
		        {
		            //self.doClose();
		        }
		    }
		});
		
		elOverlayerContent = new Element('div',
		{
		    'id': 'overlayer_2',
		    'styles':
		    {
		    	'position': 'absolute',
		    	'left': '0px',
		    	'top': '0px',
		    	'opacity': '0',
		    	'width': '100%',
		    	'z-index': '999',
		    	'text-align': 'center'
		    },
		    'events':
		    {
		        'click': function()
		        {
		            //self.doClose();
		        }
		    }
		});
		
		elOverlayerFake.inject(document.body);
		elOverlayerContent.inject(document.body);
	},
	doShow: function()
	{
	},
	doHide: function()
	{
		elOverlayerFake.fade('out');
		elOverlayerContent.fade('out');

	}
});

var MeerWeten = new Class(
{
	initialize: function()
	{
		if($('meerweten'))
		{
			$$('#meerweten div').fade('hide');
			$('meerwetenwrapper').setStyle('display', 'block');
				
			$$('#meerweten a').addEvent('click', function(event)
			{
				event.stop();
				this.toggleFade();
			}.bind(this));
			
			$$('#meerweten div').addEvent('mouseleave', function(event)
			{
				event.stop();
				this.doFade = this.toggleFade.delay(3000);
			}.bind(this));
			
			$$('#meerweten div').addEvent('mouseenter', function(event)
			{
				if( this.doFade )
				{
					$clear(this.doFade);
				}
			}.bind(this));
		}
	},
	toggleFade: function()
	{
		$$('#meerweten div').fade();
		$$('#meerweten').toggleClass('hover');
	}
});

var SearchNavigation = new Class(
{
	initialize: function()
	{
		if($$('.searchnavigation'))
		{
			$$('.searchnavigation li ul').fade('hide');
			$$('.searchnavigation li ul').setStyle('display', 'block');

			$$('.searchnavigation li').each(function(elList)
			{
				elList.addEvents(
				{
					'mouseenter': function(event)
					{
						elList.getChildren('ul').fade('in');
					},
					'mouseleave': function(event)
					{
						elList.getChildren('ul').fade('out');
					}
				});
			});
		}
	}
});


var InformForm = new Class(
{
	initialize: function()
	{
		if($('infoform'))
		{
			// get buttons
			var elBrochure = $('infoform').getParent().getElement('ul li.nieuwsbrief a');
			var elCalendar = $('infoform').getParent().getElement('ul li.kalender a');
			
			elBrochure.addEvent('click', function(event)
			{
				event.stop();
				$('infotype').value = 'nieuwsbrief';
				elCalendar.getParent().removeClass('active');
				elBrochure.getParent().addClass('active');
				elBrochure.getParent('ul').removeClass('overstate');
			});
			elCalendar.addEvent('click', function(event)
			{
				event.stop();
				$('infotype').value = 'de VO';
				elBrochure.getParent().removeClass('active');
				elCalendar.getParent().addClass('active');
				elBrochure.getParent('ul').addClass('overstate');
			});
		}
	}
});

var Signup = new Class(
{
	intCurrentStep: 1,
	initialize: function()
	{
		if($('stap1'))
		{
			// hide default button
			$('signupsubmit').setStyle('display', 'none');
			$('signupsubmitjs').removeClass('hidden');
			$$('.jsbutton').removeClass('jsbutton');
			
			// we got the signup page
			this.showStep();
			
			var self = this;
			
			// set next buttons
			$$('a.nextstep').each(function(elNextButton)
			{
				elNextButton.addEvent('click', function(event)
				{
					event.stop();
					self.stepForward();
				});
			});
			
			// set prev buttons
			$$('a.prevstep').each(function(elPrevButton)
			{
				elPrevButton.addEvent('click', function(event)
				{
					event.stop();
					self.stepBack();
				});
			});
			
			$$('a.submit').each(function(elSubmit)
			{
				elSubmit.addEvent('click', function(event)
				{
					event.stop();
					self.submitForm();
				});
			});
			
			$$('a.print').each(function(elSubmit)
			{
				elSubmit.addEvent('click', function(event)
				{
					event.stop();
					self.printPage();
				});
			});
			
			// Voer de Planning ID Change Call Ook gewoon uit
			var objReq = new Request({method: 'get', url: 'xhr/planningavailable/'});			
			objReq.onSuccess = function(argIntResult)
			{
				if(1 == argIntResult)
				{
					//$('reserve').removeClass('hibbem');
					$('reservetext').setStyle('display', 'block');
					$('reserve').checked = true;
					$('reserve').setStyle('display', 'none');
				}
			};
			
			if ($('amount_trainings'))
			{
				$('amount_trainings').addEvents(
				{
					change: function()
					{
						$('trainingno').set('text', 1);
						$$('.trainingamount').setStyle('display', 'none');
						if ($('training_'+this.get('value')))
						{
							$('training_'+this.get('value')).setStyle('display', 'block');
						};
						
						var strText = 'per 5 modules € 190,-, per 10 modules € 240,-, per 15 modules € 300,- ex. BTW';
						switch ( this.get('value').toInt() )
						{
							case 5:
								strText = 'per 5 modules € 190,- Excl. BTW';
								break;
							case 10:
								strText = 'per 10 modules € 240,- Excl. BTW';
								break;
							case 15:
								strText = 'per 15 modules € 300,- Excl. BTW';
								break;
						};
						
						$('realprice').set('value', strText);
						$('realprice_label').set('text', strText);
					}
				});
				
				$$('.trainingamount').setStyle('display', 'none');
			};
				
			if ($('planning_id'))
			{
				objReq.send('planningid=' + $('planning_id').value);

				$('planning_id').addEvent('change', function()
				{
					var objReq = new Request({method: 'get', url: 'xhr/planningavailable/'});

					objReq.onSuccess = function(argIntResult)
					{
						if(1 == argIntResult)
						{
							//$('reserve').removeClass('hibbem');
							$('reservetext').setStyle('display', 'block');
							$('reserve').checked = true;
							$('reserve').setStyle('display', 'none');
						}
						else
						{
							//$('reserve').addClass('hibbem');
							$('reservetext').setStyle('display', 'none');
							$('reserve').checked = false;
							$('reserve').setStyle('display', 'none');
						}
					};

					objReq.send('planningid=' + $('planning_id').value);
				});
			};
			
			
			// copy stuff
			if($('prv_to_org_contact'))
			{
				$('prv_to_org_contact').addEvent('click', function()
				{
					if(this.checked == true)
					{
						$('org_contact_name').value = $('prv_lastname').value;
						$('org_contact_letters').value = $('prv_firstname').value;
						$('org_contact_department').value = $('prv_department').value;
						$('org_contact_telephone').value = $('prv_phone').value;
						$('org_contact_email').value = $('prv_email').value;
					}
					else
					{
						$('org_contact_name').value = '';
						$('org_contact_letters').value = '';
						$('org_contact_department').value = '';
						$('org_contact_telephone').value = '';
						$('org_contact_email').value = '';
					}
				});
			}
			
			
			if($('prv_to_fct'))
			{
				$('prv_to_fct').addEvent('click', function()
				{
					if(this.checked == true)
					{
						$('fct_organisation').value = '';
						$('fct_name').value = $('prv_firstname').value + ' ' + $('prv_lastname').value;
						$('fct_department').value = $('prv_department').value;
						$('fct_address').value = $('prv_address').value;
						$('fct_zipcode').value = $('prv_zipcode').value;
						$('fct_city').value = $('prv_city').value;
					}
				});
				$('org_to_fct').addEvent('click', function()
				{
					if(this.checked == true)
					{
						$('fct_organisation').value = $('org_name').value;
						$('fct_name').value = $('org_name').value;
						$('fct_address').value = $('org_address').value;
						$('fct_zipcode').value = $('org_zipcode').value;
						$('fct_city').value = $('org_city').value;
					}
				});
				$('org_to_dif').addEvent('click', function()
				{
					if(this.checked == true)
					{
						$('fct_organisation').value = '';
						$('fct_name').value = '';
						$('fct_department').value = '';
						$('fct_address').value = '';
						$('fct_zipcode').value = '';
						$('fct_city').value = '';
					}
				});
			}	
		}
	},
	showAll: function()
	{
		$$('div.inschrijven').each(function(elForm)
		{
			elForm.setStyle('display', 'block');
		});
	},
	showStep: function()
	{
		$$('div.inschrijven').each(function(elForm)
		{
			elForm.setStyle('display', 'none');
		});
		
		if(5 == this.intCurrentStep)
		{
			this.showOverview();
		}
		
		$('stap' + this.intCurrentStep).setStyle('display', 'block');
		
		if(1 != this.intCurrentStep)
		{
			new Fx.Scroll(window).toElement('signupform');
			//new Fx.Scroll($(document.body)).set(0, 420);
		}
	},
	stepForward: function()
	{
		if(true == this.validate())
		{
			this.intCurrentStep++;	
			this.showStep();
		}
	},
	stepBack: function()
	{
		this.intCurrentStep--;	
		this.showStep();
	},
	submitForm: function()
	{
		if(true == this.validate())
		{
			$('signupform').submit();
		}
	},
	printPage: function()
	{
		//this.showAll();
		window.print();
		//this.showStep();
	},
	validate: function()
	{
		// reset current errors
		$('validate').set('html', '').setStyle('display', 'block');
		$$('.inputerror').destroy();
		
		var self = this;
		var blnValid = true;
		var arrErrors = new Array();
		arrErrors.push('<strong>Fout:</strong>');
		
		// get all elements that need validation
		$$('#stap' + this.intCurrentStep + ' div.validate').each(function(elField)
		{
			var elLabel = elField.getElement('label');
			
			if(elField.getElement('input'))
			{
				var elInput = elField.getElement('input');
			}
			else
			{
				var elInput = elField.getElement('select');
			}
			
			var elType = elField.getElement('div.type');
			
			switch(elType.innerHTML)
			{
				case 'empty':
				{
					if('' == elInput.value)
					{
						blnValid = false;
						arrErrors.push(self.getLabelContent(elLabel) + ' is niet ingevuld');
						self.showError(elField, self.getLabelContent(elLabel) + ' is niet ingevuld');
					}
					break;	
				}
				case 'email':
				{
					if('' == elInput.value)
					{
						blnValid = false;
						arrErrors.push(self.getLabelContent(elLabel) + ' is niet ingevuld');
						self.showError(elField, self.getLabelContent(elLabel) + ' is niet ingevuld');
					}
					else if(false == self.validateEmail(elInput.value))
					{
						blnValid = false;
						arrErrors.push(self.getLabelContent(elLabel) + ' is geen geldig e-mailadres');
						self.showError(elField, self.getLabelContent(elLabel) + ' is geen geldig e-mailadres');
					}
					break;	
				}
				case 'telephone':
				{
					if('' == elInput.value)
					{
						blnValid = false;
						arrErrors.push(self.getLabelContent(elLabel) + ' is niet ingevuld');
						self.showError(elField, self.getLabelContent(elLabel) + ' is niet ingevuld');
					}
					else if(false == self.validateTelephone(elInput.value))
					{
						blnValid = false;
						arrErrors.push(self.getLabelContent(elLabel) + ' is geen geldig telefoonnummer (10 cijfers)');
						self.showError(elField, self.getLabelContent(elLabel) + ' is geen geldig telefoonnummer (10 cijfers)');
					}
					break;	
				}
				case 'telephone-opt':
				{
					if('' != elInput.value && false == self.validateTelephone(elInput.value))
					{
						blnValid = false;
						arrErrors.push(self.getLabelContent(elLabel) + ' is geen geldig telefoonnummer (10 cijfers)');
						self.showError(elField, self.getLabelContent(elLabel) + ' is geen geldig telefoonnummer (10 cijfers)');
					}
					break;	
				}
				case 'zipcode-opt':
				{
					if('' != elInput.value && false == self.validateZipcode(elInput.value))
					{
						blnValid = false;
						arrErrors.push(self.getLabelContent(elLabel) + ' is geen geldige postcode (1234AB)');
						self.showError(elField, self.getLabelContent(elLabel) + ' is geen geldige postcode (1234AB)');
					}
					break;	
				}
				case 'zipcode':
				{
					if('' == elInput.value)
					{
						blnValid = false;
						arrErrors.push(self.getLabelContent(elLabel) + ' is niet ingevuld');
						self.showError(elField, self.getLabelContent(elLabel) + ' is niet ingevuld');
					}
					else if(false == self.validateZipcode(elInput.value))
					{
						blnValid = false;
						arrErrors.push(self.getLabelContent(elLabel) + ' is geen geldige postcode (1234AB');
						self.showError(elField, self.getLabelContent(elLabel) + ' is geen geldige postcode (1234AB');
					}
					break;	
				}
				case 'av':
				{
					if(false == elInput.checked)
					{
						blnValid = false;
						arrErrors.push('U moet akkoord gaan met de Algemene Voorwaarden');
						self.showError(elField, 'U moet akkoord gaan met de Algemene Voorwaarden');
					}
					break;
				}
			}
		});
		
		if(false == blnValid)
		{
			//$('validate').innerHTML = arrErrors.join('<br />');
			$('validate').removeClass('hidden');
			//new Fx.Scroll($(document.body)).set(0, 420);
			new Fx.Scroll(window).toElement('signupform');
		}

		return blnValid;
	},
	showError: function(argElWrapper, argStrText)
	{
		var elError = new Element('div', {
			'class': 'inputerror',
			'html': argStrText
		});
		elError.inject(argElWrapper, 'before');		
	},
	getLabelContent: function(argElLabel)
	{
		return argElLabel.innerHTML.replace(/\*/, '');
	},
	validateEmail: function(argStrInput)
	{
		var strPattern = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
		return strPattern.test(argStrInput);
	},
	validateTelephone: function(argStrInput)
	{
		var strPattern = /^[0-9]{10}$/;
		return strPattern.test(argStrInput);
	},
	validateZipcode: function(argStrInput)
	{
		var strPattern = /^([0-9]{4})([A-Z]{2})$/;
		return strPattern.test(argStrInput);
	},
	showOverview: function()
	{
		// default
		var arrCopyFields = ['prv_lastname', 'prv_firstname', 'prv_address', 'prv_zipcode', 'prv_city'];
		arrCopyFields.extend(['prv_phone', 'prv_mobile', 'prv_workphone', 'prv_department', 'prv_email', 'ext_education']);
		arrCopyFields.extend(['org_name', 'org_address', 'org_zipcode', 'org_city', 'org_telephone']);
		arrCopyFields.extend(['org_contact_name', 'org_contact_letters', 'org_contact_department', 'org_contact_telephone', 'org_contact_email', 'correspondence']);
		arrCopyFields.extend(['fct_organisation', 'fct_name', 'fct_department', 'fct_address', 'fct_zipcode', 'fct_city']);
		
		arrCopyFields.each(function(strInputId)
		{
			if($(strInputId) && $('c_' + strInputId) && '' != $(strInputId).value)
			{
				$('c_' + strInputId).set('html', $(strInputId).value);
			}
			else
			{
				$('c_' + strInputId).set('html', '&nbsp;');
			}
		});
	
		// extra
		
		//gender
		$('c_prv_gender').set('html', this.getSelectName($('prv_gender')));
		$('c_org_contact_gender').set('html', this.getSelectName($('org_contact_gender')));
		$('c_fct_gender').set('html', this.getSelectName($('fct_gender')));
		
		// birthdate
		$('c_prv_birthdate').set('html', '-');
		if($('prv_birthday_day').value != '' && $('prv_birthday_month').value != '' && $('prv_birthday_year').value != '')
		{
			$('c_prv_birthdate').set('html', $('prv_birthday_day').value + '-' + $('prv_birthday_month').value + '-' + $('prv_birthday_year').value);
		}
		
		// date
		if ($('planning_id'))
		{
			$('c_planning_id').set('html', this.getSelectName($('planning_id')));
		};
		
		if ($('realprice_overviewlabel'))
		{
			$('realprice_overviewlabel').set('text', $('realprice_label').get('text'));
		};
		
		// experience
		if ($('c_ext_trainingname'))
		{
			if('' != $('ext_trainingname').value)
			{
				$('c_ext_trainingname').set('html', 'Ja, ' + $('ext_trainingname').value);
			}
			else
			{
				$('c_ext_trainingname').set('html', 'Nee');
			}
		};
		
		if ($('c_amount'))
		{
			$('c_amount').set('html', $('amount_trainings').value + ' modules');
		};
		
		// titles
		$('c_prv_title_before').set('html', this.getSelectName($('prv_title_before')));
		$('c_prv_title_after').set('html', this.getSelectName($('prv_title_after')));
		
		// correspondence
		$('c_correspondence').set('html', this.getSelectName($('correspondence')));
		
		//reserve
		if ($('reserve'))
		{
			if($('reserve').checked == true)
			{
				$('c_reserve').setStyle('display', 'block');
			}
			else
			{
				$('c_reserve').setStyle('display', 'none');
			}
		};
		
		// diner/stay
		var arrNoFields = ['ext_nodiner', 'ext_nostay'];
		arrNoFields.each(function(strInputId)
		{
			if($(strInputId))
			{
				if($(strInputId).checked == true)
				{
					$('c_' + strInputId).set('html', 'Nee');
				}
				else
				{
					$('c_' + strInputId).set('html', 'Ja');
				}
			}
		});
	},
	getSelectName: function(argElSelect)
	{
		var strName = '';
		var elOptions = argElSelect.getElements('option');
		
		elOptions.each(function(elOption)
		{
			if(true == elOption.selected)
			{
				strName = elOption.innerHTML;
			}
		});
		
		return strName;
	}
});

var TrainingContent = new Class(
{
	blnFirst:true,
	blnDetailsShow: false,
	blnContentState: 'less',
	initialize: function()
	{
		var self = this;
		
		if($('details-toggle'))
		{
			$('details-toggle').addEvent('click', function(event)
			{
				event.stop();
				
				if(true == self.blnDetailsShow)
				{
					// hide details
					self.hideDetails();
					self.blnDetailsShow = false;
				}
				else
				{
					// show details
					self.showDetails();
					self.blnDetailsShow = true;
				}
			});
			
			this.hideDetails();
		}
		
		if($('show-less'))
		{
			$('show-less').addEvent('click', function(event)
			{
				event.stop();
				self.showContent('less');
			});
			
			$('show-more').addEvent('click', function(event)
			{
				event.stop();
				self.showContent('more');
			});
			
			$('show-saf').addEvent('click', function(event)
			{
				event.stop();
				self.showContent('saf');
			});
			$('show-saf-bottom').addEvent('click', function(event)
			{
				event.stop();
				self.showContent('saf');
			});
			
			this.showContent('less');
		}
	},
	showContent: function(argStrType)
	{
		$$('div.maincontent').each(function(elContentItem)
		{
			elContentItem.setStyle('display', 'none');
		});
		
		$$('ul.tab-list li a').each(function(elLink)
		{
			elLink.removeClass('active');
		});
		
		$('show-' + argStrType).addClass('active');
		$('content-' + argStrType).setStyle('display', 'block');
		
		if(false == this.blnFirst)
		{
			new Fx.Scroll(window).toElement('details');
		}
		else
		{
			this.blnFirst = false;
		}
	},
	showDetails: function()
	{
		$$('ul#details li').each(function(elListItem)
		{
			if(elListItem.hasClass('hide'))
			{
				elListItem.setStyle('display', 'block');
			}
		});
		
		$('details-toggle').removeClass('btn-plus');
		$('details-toggle').addClass('btn-min');
		$('details-toggle').set('html', 'Minder gegevens');
	},
	hideDetails: function()
	{
		$$('ul#details li').each(function(elListItem)
		{
			if(elListItem.hasClass('hide'))
			{
				elListItem.setStyle('display', 'none');
			}
		});
		
		$('details-toggle').removeClass('btn-min');
		$('details-toggle').addClass('btn-plus');
		$('details-toggle').set('html', 'Meer gegevens');
	}
});

var TabImage = new Class({
	intCurrent:0,
	arrBut:false,
	arrImg:false,
	initialize:function( argArrButtons, argArrImages ){
		this.arrBut = $A(argArrButtons);
		this.arrImg = $A(argArrImages);
						
		$A(this.arrImg).each(function(node,i)
		{
			node.set('morph', {duration: 'long', transition: 'bounce:out'});
			if( this.intCurrent != i )
			{
				node.morph({opacity:0});
			}
		}.bind(this));
		
		$A(this.arrBut).each(function(node,i){
			node._parent = this;
			node.i = i;
			node.addEvent('click',function()
			{
				if( this._parent.intCurrent != this.i )
				{
					//console.log(this.i);
					//console.log(this._parent.intCurrent);
					
					this._parent.arrImg[ this._parent.intCurrent ].morph({opacity:0});
					this._parent.arrImg[ this.i ].morph({opacity:1});
					
					this._parent.intCurrent = this.i;
				}
			});
			
			
		}.bind(this));
	}
});

