﻿/* ############################################################################################## 
## JS for www.walleczek.com
## (c) 2011 scio enterprises
##### @author: veronika.oesterle
#################################################################################################*/ 

 $(document).ready(function() {
 
	//toggle visibility of login form
	toggleQuickinfo();
	
	//toggle visibility of login form
	toggleBrowseCollections();
	
	adjustBrowseVideoTitleHeight();
	
	toggleAddToCollection();
	
	toggleAddNote();
	
	newCollectionItem();
	
	getNumberOfComments();

	//close sendmail
	SendMailToFriend();
	
	slideRecentlyAdded();
	
	//tabs for browsing topics
	initiateBrowseTopicTabs();
	
	//live Validation for the registration form
	validateRegistration();

	validateProfile();
	
	validateAccountDetails();
	
	//modal dialog to buy abo
	showModalForBuy();
	
	//tabs for events
	initiateEventTabs();
 
	// Init frontpage highlights slider
	if($('#h_slider').length) {
		$('#h_slider').bxSlider({
			auto: true,
	    	autoControls: false,
	    	pause: 6000
		});
	}
	

	
	if($('#combi-signin').length) {
		$('#combi-signin #new_user').click(function() {
			$('#login-button').attr('value', 'Sign Up Now!');
			$('#combi-signin #existing_user_fields').fadeOut(500);
			$('#combi-signin #new_user_fields').fadeIn(500);
		});
		
		$('#combi-signin #existing_user').click(function() {
			$('#login-button').attr('value', 'Sign Up Now!');
			$('#combi-signin #new_user_fields').fadeOut(500);
			$('#combi-signin #existing_user_fields').fadeIn(500);				
		});
	}

 });
 
function getNumberOfComments(){
	if($('.h_b_m_likes').length){
		$('.h_b_m_likes strong').fbcommentcount();
	}	
} 

function adjustBrowseVideoTitleHeight(){
	if($('.h_b_title').length){
		var biggest = 0;
		$('.h_b_title').each(function() {
			if($(this).height() > biggest){ // 21 is height with one-line-questions
				biggest = $(this).height();
			}
		});
		
		$('.h_b_title').each(function() {
			$(this).height(biggest);
		});
	}	
}
 
function toggleAddToCollection(){
	if($('.atc_toggle').length){
		$('body').click(function(){
			$('.atc_container:visible').slideUp('fast');
			if($('.atc_toggle').hasClass('active')){
			$('.atc_toggle').removeClass('active');
			}
		});
		$('.atc_container').click(function(e){
			e.stopPropagation();
		});
		$('.atc_toggle').click(function(f){
			f.stopPropagation();
				
			$(this).toggleClass('active');
			$(this).next().slideToggle('fast');
		});
		
	}
}

function newCollectionItem(){
	if($('#c_c_list')) {
		$('#c_c_list li:first-child').effect("highlight", {color: "#C2CD23"}, 2000);
	} 
}
 
function slideRecentlyAdded(){
	if($('#c_ra_slider').length){
		$('#c_ra_slider').bxSlider();
	}
}
 
 function toggleQuickinfo(){
	if($('#q_toggle').length){
		$('body').click(function(){
			$('#q_container:visible').slideUp('fast');
			$('#q_toggle').removeClass('active');
		});
		$('#q_container').click(function(e){
			e.stopPropagation();
		});
		$('#q_toggle').bind("click", function(f){
			f.stopPropagation();
			$('#q_container').slideToggle('fast');
			$('#q_toggle').toggleClass('active');
		});
	}
 }
 
 function toggleBrowseCollections(){
	if($('#c_b_select div').length){
		$('#c_b_select div').bind("click", function(){
			$('#c_browsecollections div ul').slideToggle('fast');
			$('#c_b_select div').toggleClass('active');
		});
	}
 }

 function initiateBrowseTopicTabs(){
	if($('#c_b_tabs').length){
		$("#c_b_tabs").tabs();
	}
 }
 
 function initiateEventTabs(){
	if($('#c_events').length){
		$("#c_events").tabs();
	}
 }
 
 function validateRegistration(){
	if($('#c_r_form').length){
        $.validator.addMethod(
                "austrianDate",
                function(value, element) {
                    return value.match(/^\d\d?\.\d\d?\.\d\d\d\d$/);
                },
                "Bitte ein Datum im Format eingeben dd.mm.yyyy, z.B. 1.12.1970"
        );
		$('#c_r_form').validate({
			errorElement: "span", 
			errorPlacement: function(error, element) {
				error.insertAfter(element);
			},
			success: function(label) {
				label.addClass("success");
			},
			rules: { 
				c_r_f_email: {		
					required:	true, 
					email:		true
				},
				c_r_f_password: {
					required:	true,
					minlength:	5
				},
				c_r_f_confirmpassword: {
					required:	true, 
					minlength:	5, 
					equalTo:	"#c_r_f_password"
				},
				c_r_f_firstname:"required",
				c_r_f_lastname:	"required",
                c_r_f_birthday: {
                    required:       true,
                    austrianDate:   true
                },
				c_r_f_city:		"required",
				c_r_f_sex:		"required",
				c_r_f_tos:		"required"
			},
			messages: {
				c_r_f_email: {
					required:	'Bitte gib eine E-Mail Adresse an',
					email: 		'Das ist keine gültige E-Mail Adresse'
				},
				c_r_f_password: {
					required:	'Bitte gib ein Passwort an',
					minlength:	'Aus Sicherheitsgründen sollte dein Passwort mind. 5 Zeichen haben'
				},
				c_r_f_confirmpassword: {
					required:	'Bitte bestätige dein Passwort', 
					minlength:	'Aus Sicherheitsgründen sollte dein Passwort mind. 5 Zeichen haben',
					equalTo:	'Du hast nicht das selbe wie oben eingegeben' 
				},
				c_r_f_firstname: {
					required:	"Bitte gib deinen Vornamen an"
				},
				c_r_f_lastname: {
					required:	"Bitte gib deinen Nachnamen an"
				},
				c_r_f_city: {
					required:	"Bitte gib die Stadt an in der du wohnst"
				},
				c_r_f_birthday:	{
					required:	"Bitte gib deinen Geburtstag an"
				},
				c_r_f_tos: {
					required:	"Um die Registrierung abzuschließen, bitte die AGB akzeptieren!"
				},
				c_r_f_sex: {
					required:	"Bitte gib dein Geschlecht an"
				}
			}
		});
	}
}

 
 
function validateProfile(){
		if($('#c_s_pi_form').length){
	        $.validator.addMethod(
	                "austrianDate",
	                function(value, element) {
	                    return value.match(/^\d\d?\.\d\d?\.\d\d\d\d$/);
	                },
	                "Bitte ein Datum im Format eingeben dd.mm.yyyy, z.B. 1.12.1970"
	        );
			$('#c_s_pi_form').validate({
				errorElement: "span", 
				errorPlacement: function(error, element) {
					error.insertAfter(element);
				},
				success: function(label) {
					label.addClass("success");
				},
				rules: { 
					c_r_f_email: {		
						required:	true, 
						email:		true
					},
					c_r_f_password: {
						required:	true,
						minlength:	5
					},
					c_r_f_confirmpassword: {
						required:	true, 
						minlength:	5, 
						equalTo:	"#c_r_f_password"
					},
					c_r_f_firstname:"required",
					c_r_f_lastname:	"required",
	                c_r_f_birthday: {
	                    required:       true,
	                    austrianDate:   true
	                },
					c_r_f_city:		"required",
					c_r_f_sex:		"required",
					c_r_f_tos:		"required"
				},
				messages: {
					c_r_f_email: {
						required:	'Bitte gib eine E-Mail Adresse an',
						email: 		'Das ist keine gültige E-Mail Adresse'
					},
					c_r_f_password: {
						required:	'Bitte gib ein Passwort an',
						minlength:	'Aus Sicherheitsgründen sollte dein Passwort mind. 5 Zeichen haben'
					},
					c_r_f_confirmpassword: {
						required:	'Bitte bestätige dein Passwort', 
						minlength:	'Aus Sicherheitsgründen sollte dein Passwort mind. 5 Zeichen haben',
						equalTo:	'Du hast nicht das selbe wie oben eingegeben' 
					},
					c_r_f_firstname: {
						required:	"Bitte gib deinen Vornamen an"
					},
					c_r_f_lastname: {
						required:	"Bitte gib deinen Nachnamen an"
					},
					c_r_f_city: {
						required:	"Bitte gib die Stadt an in der du wohnst"
					},
					c_r_f_birthday:	{
						required:	"Bitte gib deinen Geburtstag an"
					},
					c_r_f_tos: {
						required:	"Um die Registrierung abzuschließen, bitte die AGB akzeptieren!"
					},
					c_r_f_sex: {
						required:	"Bitte gib dein Geschlecht an"
					}
				}
			});
		}
} 

function validateAccountDetails(){
	if($('#c_s_ad_form').length){
		$('#c_s_ad_form').validate({
			errorElement: "span", 
			errorPlacement: function(error, element) {
				error.insertAfter(element);
			},
			success: function(label) {
				label.addClass("success");
			},
			rules: { 
				c_s_as_password: {
					required:	true,
					minlength:	5
				},
				c_s_as_confirmpassword: {
					required:	true, 
					minlength:	5, 
					equalTo:	"#c_s_as_password"
				}
			},
			messages: {				
				c_s_as_password: {
					required:	'Bitte gib ein Passwort an',
					minlength:	'Aus Sicherheitsgründen sollte dein Passwort mind. 5 Zeichen haben'
				},
				c_s_as_confirmpassword: {
					required:	'Bitte bestätige dein Passwort', 
					minlength:	'Aus Sicherheitsgründen sollte dein Passwort mind. 5 Zeichen haben',
					equalTo:	'Du hast nicht das selbe wie oben eingegeben' 
				}
			}
		});
	}
} 
 
 
function showModalForBuy(){
	if($("#modal_registernow").length){
		$( "#modal_registernow" ).dialog({
			draggable: false,
			modal: true,
			resizable: false
		});
	}
}

function toggleAddNote(){
	if($('.an_toggle').length){
		$('body').click(function(){
			$('.an_container:visible').slideUp('fast');
			$('.atc_container:visible').slideUp('fast');
			$('.an_toggle').removeClass('active');
		});
		$('.an_container').click(function(e){
			e.stopPropagation();
		});
		$('.an_toggle').click(function(f){
			f.stopPropagation();
			$('.atc_container:visible').slideUp('fast');
			$('.atc_toggle').removeClass('active');
				
			$(this).toggleClass('active');
			$(this).next().slideToggle('fast');
		});
		
	}
}

function SendMailToFriend(){
	if($('.c_cf_sendmail_toggle').length){
		$('.c_cf_sendmail_container_close').click(function(){
			$(this).parent().slideUp('fast');
			$('.c_cf_sendmail_toggle').removeClass('active');
		});
		$('.c_cf_sendmail_toggle').click(function(e){	
			$(this).toggleClass('active');
			$(this).next().slideToggle('fast');
		});		
	}
}

(function($){
	$.fn.fbcommentcount = function(options){
		var defaults = {
			baseUrl: 'http://graph.facebook.com/?ids='
		};
		var options = $.extend(defaults, options);
		var count = 0;
		return this.each(function(){
			var $this = $(this);
			$this.hide();
			var objLink = $(this).attr('title');
			if(objLink.indexOf('http') === 0){
				$.getJSON(defaults.baseUrl + objLink + '&callback=?', function(json){
					//if(json[objLink] && json[objLink].comments){
						$this.html(json[objLink].comments);
						$this.show();
					//}
				});				
			}
		});
	}
})(jQuery);
