$.fn.equals = function(compareTo) {
	if (!compareTo || !compareTo.length || this.length!=compareTo.length)
	{
		return false;
	}
	for (var i=0; i<this.length; i++) {
		if (this[i]!==compareTo[i]) {
			return false;
		}
	}
	return true;

}
// jQuery.noConflict();
jQuery(document).ready(function() {
	//Embedd Flash Gallery via SWFObject
	//swfobject.embedSWF("swf/teaser.swf", "gallery", "740", "298", "9.0.0", "swf/expressInstall.swf");


	
	//FAQ
	jQuery('ul.faq li p.question').click(function() {			
		var $li = jQuery(this).parent(),
		$ul = jQuery(this).parent().parent();

		if($li.hasClass('open')){
			$li
			.removeClass('open')
			.find('.answer')
			.hide();
		}else{
			$li.addClass('open')
			.find('.answer')
			.show();				
		}

		$ul.find('li.open').each(function(index) {
			$this = jQuery(this);
			if($this[0] != $li[0]){
				$this
				.removeClass('open')
				.find('.answer')
				.hide();
			}
		});

	});

	//Default value for search-input
	jQuery('.search-input>input').focus(function() {
		var $this = jQuery(this);
		if($this.val() == 'SUCHE'){
			$this.val('');
		}
	});
	//Default value for search-input
	jQuery('.search-input>input').blur(function() {
		var $this = jQuery(this);
		if($this.val() == ''){
			$this.val('SUCHE');
		}
	});

	//Submit button contact form
	jQuery('.replaceButtonWithLink').each(function(index) {
		var $this = jQuery(this),
		$submit = $this.find('input:first'),
		$hiddenSubmit = jQuery('<input type="hidden" />');

		$hiddenSubmit
		.attr('name', $submit.attr('name'))
		.attr('value', $submit.val());

		$this
		.removeClass('replaceButtonWithLink')
		.addClass('submit')
		.append($hiddenSubmit)
		.append($submit.val());

		$submit.remove();
	});
	
	jQuery('.replaceSearchButtonWithLink').each(function(index) {
		var $this = jQuery(this),
		$submit = $this.find('input.tx-indexedsearch-searchbox-button'),
		$hiddenSubmit = jQuery('<input type="hidden" />');
		
		$hiddenSubmit
		.attr('name', $submit.attr('name'))
		.attr('value', $submit.val());

		$this
		.removeClass('replaceSearchButtonWithLink')
		.addClass('searchBtn')
		.append($hiddenSubmit)
		.append('<a href="#" class="submit">'+$submit.val()+'</a>');

		$submit.remove();
	});

	jQuery('.submit').click(function() {
		jQuery(this).parents().each(function(index) {
			if(this.tagName == 'FORM'){
				jQuery(this).submit();
			}
		});
		return false;
	});

	//Toggle Tabs
	jQuery('.top-nav li span').click(function() {
		if(jQuery(this).parent().hasClass('active') == false){
			jQuery(this).parents().each(function(index) {
				$this = jQuery(this);
				if($this.hasClass('top-nav')){
					$this.find('li').removeClass('active');
				}

				if($this.hasClass('info-box-holder')){
					$this.find('.info-box').toggleClass('hidden');
					return;
				}
			});
			jQuery(this).parent().addClass('active');			
		}
	});
	
	jQuery('.injection-form-element').change(function() {
		var $this = jQuery(this),
			$form = jQuery('.impfschema:first');

		$form.find('div.messages').html('');
		$form.find('span.next-injection').hide().removeClass('error').html('');
		var formValues = baxter.zs.serializeForm($form),
			values = new Inoculation(formValues.inoculation_type);

		values.setInoculationInterval(formValues.interval);
		values.setInoculationYear(formValues.year);
		values.setInoculationMonth(formValues.month);
		values.setAge(formValues.age);

		var errors = values.validate();
		if(errors.length > 0){
			var res = '';
			//Display errors
			jQuery(errors).each(function(index) {
				res += '<li>'+this.toString()+'</li>';
			});
			res = '<ul>'+res+'</ul>';
			$form.find('div.messages').html(res);
			$form.find('div#message-wrapper').css('visibility', 'visible');
			return false;
		}

		var result = values.calculate(),
		nextInocculationMonth = values.getMonths()[result.nextInoculation.toString('M')-1];

		if(result.status == 1){
			$form.find('span.next-injection')
			.addClass('error')
			.html(nextInocculationMonth+' '+result.nextInoculation.toString('yyyy')+'!')
			.fadeIn('fast');	
			if(result.diff > 365){
				result.diff = Math.round(result.diff/365);
				var msg = 'Ihr Imfpschutz ist seit '+result.diff+' Jahren abgelaufen. <br />Kontaktieren sie bitte ihren Arzt';
			}else if(result.diff < 365 && Math.round(result.diff/30) > 0){
				result.diff = Math.round(result.diff/30);
				var msg = 'Ihr Imfpschutz ist seit '+result.diff+' Monaten abgelaufen. <br />Kontaktieren sie bitte ihren Arzt';
			}else{
				var msg = 'Ihr Imfpschutz sollte nun erneuert werden. <br />Kontaktieren sie bitte ihren Arzt';
			}
			$form.find('div.messages').html('<p class="red bold">'+msg+'</p>');
			$form.find('div#message-wrapper').css('visibility', 'visible');
			return false;
		}

		$form.find('span.next-injection')
		.html(nextInocculationMonth+' '+result.nextInoculation.toString('yyyy'))
		.fadeIn('fast');
		$form.find('.invitation').show();
		if(result.errors.length > 0){
			$form.find('div.messages').html('<p class="bold">'+result.errors+'</p>');
			$form.find('div#message-wrapper').css('visibility', 'visible');			
		}else{
			$form.find('div#message-wrapper').css('visibility', 'hidden');			
		}
		return false;
	});

	//Impfschema Submit
	jQuery('.btn-reminder').click(function() {
		var $this = jQuery(this),
			$form = jQuery('.impfschema:first');

		$form.find('div.messages').html('');
		$form.find('span.next-injection').hide().removeClass('error').html('');
		var formValues = baxter.zs.serializeForm($form),
			values = new Inoculation(formValues.inoculation_type);

		values.setInoculationInterval(formValues.interval);
		values.setInoculationYear(formValues.year);
		values.setInoculationMonth(formValues.month);
		values.setAge(formValues.age);

		var errors = values.validate();
		if(errors.length > 0){
			var res = '';
			//Display errors
			jQuery(errors).each(function(index) {
				res += '<li>'+this.toString()+'</li>';
			});
			res = '<ul>'+res+'</ul>';
			$form.find('div.messages').html(res);
			$form.find('div#message-wrapper').css('visibility', 'visible');
			return false;
		}

		var result = values.calculate(),
			next_inoculation = result.nextInoculation.toString('MMMM yyyy');
		var params = 'tx_inoculationreminder_last_inoculation='+escape(values.getInocculationMonth()+' '+values.getInocculationYear())+'&';
		params += 'tx_inoculationreminder_interval='+values.getInocculationInterval()+'&';
		params += 'tx_inoculationreminder_age='+values.getInocculationAge()+'&';
		params += 'tx_inoculationreminder_next_inoculation='+escape(result.nextInoculation.toString('yyyy-MM-dd'))+'&';
		params += 'inoc_type='+values.getInocculationType();
		var link = location.protocol+'//'+location.host+'/schutzimpfung/impfreminder/anmelden?'+params;
		location.href = link;
		return false;
	});

	jQuery('a.videoplayer').click(function (e) {
		var link = this.href
		jQuery.getScript("/fileadmin/templates/js/jquery.simplemodal.js", function() {
			jQuery.get(link, function(data) {
				jQuery(data).modal();
			});			
		});
		e.preventDefault();
		return false;
	});

	//Trigger Lightbox image enlargement
	jQuery('.image-with-caption a.green').click(function() {
		jQuery(this).parent()
		.find("a[@rel='lightbox']:first")
		.trigger('click');
		return false;
	});

	jQuery('.print').click(function(e) {
		e.preventDefault();
		jQuery.getScript("fileadmin/templates/js/jquery.printElement.min.js", function() {
			jQuery('body').printElement({
				leaveOpen:false,
				printMode:'popup',
				overrideElementCSS:[
				'/fileadmin/templates/css/print.css',
				{ href:'/fileadmin/templates/css/print.css',media:'print'}]
			});			
		});
		return false;
	});

	var $shareBtn = jQuery('.sub-box a:last')
	if((jQuery.browser.msie) == false){// && jQuery.browser.version=="6.0"
		jQuery.getScript("http://s7.addthis.com/js/250/addthis_widget.js#username=xa-4b67645a1990b5b6#domready=1", function() {
			$shareBtn
				.attr('href', "http://addthis.com/bookmark.php?v=250&amp;username=xa-4b67645a1990b5b6")
				.addClass('addthis_button_compact');			
		});
	}else{
		$shareBtn.hide('fast');
	}
	
	jQuery('#tt_address_form').submit(function() {
		var $this = jQuery(this),
			$reminderEmailBox = $this.find('#reminder_email'),
			$emailField = $this.find('#email'),
			$reminderSmsBox = $this.find('#sms'),
			$mobileField = $this.find('#mobile'),
			errors = [];
		

		if($emailField.val() == '' && $reminderEmailBox.is(':checked') == true){
			errors.push('Bitte geben Sie eine E-Mail Adresse an.');
		}
		

		if($mobileField.val() == '' && $reminderSmsBox.is(':checked') == true){

			errors.push('Bitte geben Sie eine Handynummer an.');

		}else if($mobileField.val() != '' && $reminderSmsBox.is(':checked') == true){
			var a_phonenumber = /^(\+)(\d|\s)*$/,
				userPhoneNumber = $mobileField.val(); 
			if (!userPhoneNumber.match(a_phonenumber)) {
				errors.push('Geben sie bitte die Handynummer im Format +43 &lt;Vorwahl&gt; &lt;Nummer&gt; ein. (Bsp.: +43 664 1234567)');
			}else{
				userPhoneNumber = userPhoneNumber.split(' ').join('');
				$mobileField.val(userPhoneNumber);
			}
		}
		
		
		if(errors.length == 0 && $reminderSmsBox.is(':checked') == false && $emailField.val() == ''){
			errors.push('Bitte geben Sie eine E-Mail Adresse an.');
		}
		
		if(errors.length > 0){
			var $errorsField = $this.find('.errors');
				var errMsg = '<h3 class="ref sans uppercase large">Einige Felder wurden nicht richtig ausgefüllt!</h3>';
				errMsg += '<ul>';
			jQuery(errors).each(function(index) {
				errMsg += '<li>'+this+'</li>';
			});
			errMsg += '</ul>';
			$errorsField.html(errMsg);	

			return false;
		}
	});
	
	jQuery('.schema-choice').click(function() {
		var $this = jQuery(this);
		if($this.is('checked') == false){
			jQuery('.schema-option').fadeOut('fast', function() {
				var schema = $this.val().split('-');
				jQuery('input[name=inoculation_type]').val(schema[1]);
				jQuery('#'+$this.val()).fadeIn('slow');
			});
		}
	});
	if((jQuery.browser.msie) == true)
		jQuery('#table-sis').css('background-position', '0 140px');
});
