jQuery(document).ready(function() {
/*** hide lightbox-content ***/ 

if(jQuery('#judicial_references').length > 0) {
	jQuery('#judicial_references').css('display', 'none');
}

/*** normal accordion ***/ 

if (jQuery('.accordion').length > 0) {
	jQuery('.accordion').accordion({ 
		header: '.acc_head',
		change: function() { 
			jQuery(this).find('.acc_head').blur(); 
		}
	});
}

/*** multi-selectable accordion ***/ 

if (jQuery('.multiple_accordion').length > 0) {
	jQuery('.multiple_accordion .acc_head').click(function() {
		if(jQuery(this).parent().find('.toggle_container').css('display') == 'none') {	
			jQuery(this).addClass('ui-state-active');
			jQuery(this).parent().find('.toggle_container').slideDown(400, 'swing', function(){
				handlePageSize();
			});
		} else {
			jQuery(this).removeClass('ui-state-active');
			jQuery(this).parent().find('.toggle_container').slideUp(400, 'swing', function(){
				handlePageSize();
			});
		}
		return false;
	}).parent().find('.toggle_container').hide();
}

/*** handle inputs ***/ 

if (jQuery('#account_box').length > 0) {
	var loginNrValue = jQuery('input#loginNr_input').attr("value");
	var loginPwValue = jQuery('input#loginPw_input').attr("value");
	
	jQuery('input#loginNr_input')
		.focus(function(e){
			if(jQuery(this).attr("value") == loginNrValue) jQuery(this).attr("value", "");
		})
		.blur(function(e){
			if(jQuery(this).attr("value") == "") jQuery(this).attr("value", loginNrValue);
	});
	
	jQuery('input#loginPw_input')
		.focus(function(e){
			if(jQuery(this).attr("value") == loginPwValue) jQuery(this).attr("value", "");
		})
		.blur(function(e){
			if(jQuery(this).attr("value") == "") jQuery(this).attr("value", loginPwValue);
	});
}

if (jQuery('#manualNrForm').length > 0) {
	var manualNrValue = jQuery('input#manualNr_input').attr("value");
	
	jQuery('input#manualNr_input')
		.focus(function(e){
			if(jQuery(this).attr("value") == manualNrValue) jQuery(this).attr("value", "");
		})
		.blur(function(e){
			if(jQuery(this).attr("value") == "") jQuery(this).attr("value", manualNrValue);
	});
}

/*** closing Lightbox ***/ 

if (jQuery('.tb_closeBox').length > 0) {
	jQuery('.tb_closeTB').click(function(e){
		tb_remove();
		return false;
	});
}

/*** radio buttons & checkboxen***/ 

if (jQuery('.checkbox, .radio').length > 0) {
	jQuery('.checkbox, .radio').dgStyle();
}

/*** formular validation ***/ 
if (jQuery('#keepMobileNrForm').length > 0) {
	jQuery('#keepMobileNrForm').validate({
		rules: {
			firstname: "required",
        	lastname: "required",
			email: {
				required: true,
				email: true
			},
			accounttype : {
				required : true
			}
		},
		messages: {
			firstname: "Bitte geben Sie einen Vornamen an (min. 2 Zeichen)!",
			lastname: "Bitte geben Sie einen Nachnamen an (min. 2 Zeichen)!",
			email: {
				required: "Bitte geben Sie eine E-Mail-Adresse an!",
				email: "Bitte geben Sie eine valide E-Mail-Adresse an (name@domain.com)"
			},
			accounttype: "Bitte wählen Sie die Kontoart aus!"
		},
		errorPlacement: function(error, element) {
			error.insertAfter(element.parent());
			element.parent().addClass('input_box_error');
		},
		success: function(label) {
			label.prev('.input_box').removeClass('input_box_error');
		},
		showErrors: function (errorMap, errorList) {
	        for (var i = 0; errorList[i]; i++) {
	            var element = this.errorList[i].element;
	            this.errorsFor(element).remove();
	        }
	        this.defaultShowErrors();
	    }
	});
	
	jQuery('select.select_day, select.select_month, select.select_year, #select_provider, #select_net').selectmenu();
}

if (jQuery('#manualNrForm').length > 0) {
	
	jQuery('#manualNrForm').validate({
		messages: {
			manualNr: "Bitte geben Sie eine 5 stellige Nummer ein!"
		},
		errorPlacement: function(error, element) {
			error.insertAfter(element.parent());
			element.parent().addClass('input_box_error');
		},
		success: function(label) {
			label.prev('.input_box').removeClass('input_box_error');
		},
		showErrors: function (errorMap, errorList) {
	        for (var i = 0; errorList[i]; i++) {
	            var element = this.errorList[i].element;
	            this.errorsFor(element).remove();
	        }
	        this.defaultShowErrors();
	    }
	});
}

if (jQuery('#personalData').length > 0) {
	
	jQuery('#personalData').validate({
		rules: {
			firstname: "required",
			lastname: "required",
			email: {
				required: true,
				email: true
			},
			email_check: {
				required: true,
				email: true
			},
			accounttype : {
				required : true
			},
			nation: "reqired",
			identification: "required",
			passportid: "required",
			street: "required",
			streetno: "required",
			plz: "required",
			city: "required",
			password: {
				required: true,
				minlength: 8
			},
			password_check: {
				required: true,
				equalTo: "#password"
			}
		},
		messages: {
			firstname: "Bitte geben Sie einen Vornamen an (min. 2 Zeichen)!",
			lastname: "Bitte geben Sie einen Nachnamen an (min. 2 Zeichen)!",
			email: {
				required: "Bitte geben Sie eine E-Mail-Adresse an!",
				email: "Bitte geben Sie eine valide E-Mail-Adresse an (name@domain.com)"
			},
			email_check: {
				required: "Bitte wiederholen Sie die E-Mail-Adresse!",
				email: "Bitte geben Sie eine valide E-Mail-Adresse an (name@domain.com)"
			},
			nation: "Bitte geben Sie Ihre Nationalität an!",
			accounttype: "Bitte wählen Sie die Kontoart aus!",
			passportid: "Bitte geben Sie eine Ausweis Nummer an!",
			street: "Bitte geben Sie eine Straße an!",
			streetno: "Bitte geben Sie eine Hausnummer an!",
			plz: "Bitte geben Sie eine Postleitzahl ein!",
			city: "Bitte geben Sie eine Stadt an!",
			identification: "Bitte geben Sie den Ausweis-Typ an!",
			password: {
				required: "Bitte geben Sie ein Passwort ein!",
				minlength: "Bitte geben Sie mindestens 8 Stellen ein!"
			},
			password_check: {
				required: "Bitte wiederholen Sie das Passwort!",
				equalTo: "Die Passwörter stimmen nicht überin."
			}
		},
		errorPlacement: function(error, element) {
			error.insertAfter(element.parent());
			element.parent().addClass('input_box_error');
		},
		success: function(label) {
			label.prev('.input_box').removeClass('input_box_error');
		},
		showErrors: function (errorMap, errorList) {
	        for (var i = 0; errorList[i]; i++) {
	            var element = this.errorList[i].element;
	            this.errorsFor(element).remove();
	        }
	        this.defaultShowErrors();
	    }
	});
	
	jQuery('select.select_day, select.select_month, select.select_year, #select_provider, #select_net').selectmenu();
}

if (jQuery('#creditForm').length > 0) {
	
	jQuery('#creditForm').validate({
		rules: {
			accountowner: "required",
			accountno: "required",
			bankcode: "required",
			bankname: "required"
		},
		messages: {
			accountowner: "Bitte geben Sie den Kontoinhaber an!",
			accountno: "Bitte geben Sie die Kontonummer an!",
			bankcode: "Bitte geben Sie eine Bankleitzahl an!",
			bankname: "Bitte geben Sie das Kreditinstitut an!"
		},
		errorPlacement: function(error, element) {
			error.insertAfter(element.parent());
			element.parent().addClass('input_box_error');
		},
		success: function(label) {
			label.prev('.input_box').removeClass('input_box_error');
		},
		showErrors: function (errorMap, errorList) {
	        for (var i = 0; errorList[i]; i++) {
	            var element = this.errorList[i].element;
	            this.errorsFor(element).remove();
	        }
	        this.defaultShowErrors();
	    }
	});
	
	jQuery('select.select_day, select.select_month, select.select_year, select.select_amount, #select_provider, #select_net').selectmenu();
}

if (jQuery('#confirmForm').length > 0) {
	
	jQuery('#confirmForm').validate({
		rules: {
			agb: "required",
			data: "required",
			captcha: {
				required: true,
				equalTo: "#captcha_src"
			}
		},
		messages: {
			agb: "Sie müssen den AGB zustimmen.",
			data: "Sie müssen der Nutzung der Personendaten zustimmen.",
			captcha: {
				required: "Bitte geben Sie den Sicherheitscode ein.",
				equalTo: "Der Sicherheitscode ist nicht korrekt."
			}
		},
		errorPlacement: function(error, element) {
			error.insertAfter(element.parent());
			element.parent().addClass('input_box_error');
		},
		success: function(label) {
			label.prev('.input_box').removeClass('input_box_error');
		},
		showErrors: function (errorMap, errorList) {
	        for (var i = 0; errorList[i]; i++) {
	            var element = this.errorList[i].element;
	            this.errorsFor(element).remove();
	        }
	        this.defaultShowErrors();
	    }
	});
}

if (jQuery('#contactForm').length > 0) {
	jQuery('#contactForm').validate({
		rules: {
			kontakt_firstname: "required",
			kontakt_lastname: "required",
			kontakt_mail: {
				required: true,
				email: true
			},
			kontakt_msg: "required"
		},
		messages: {
			kontakt_firstname: "Bitte geben Sie einen Vornamen an (min. 2 Zeichen)!",
			kontakt_lastname: "Bitte geben Sie einen Nachnamen an (min. 2 Zeichen)!",
			kontakt_mail: {
				required: "Bitte geben Sie eine E-Mail-Adresse an!",
				email: "Bitte geben Sie eine valide E-Mail-Adresse an (name@domain.com)"
			},
			kontakt_msg: "Bitte geben Sie eine Nachricht ein!"
		},
		errorPlacement: function(error, element) {
			error.insertAfter(element.parent());
			element.parent().addClass('input_box_error');
		},
		success: function(label) {
			label.prev('.input_box').removeClass('input_box_error');
		},
		showErrors: function (errorMap, errorList) {
	        for (var i = 0; errorList[i]; i++) {
	            var element = this.errorList[i].element;
	            this.errorsFor(element).remove();
	        }
	        this.defaultShowErrors();
	    }
	});
	
	jQuery('select.select_reason').selectmenu();
}

	

function handlePageSize() {
	jQuery('#footer_container').css({ display: 'none', top: 0, left: 0, width: 0 });
	jQuery('#bg_ordering_pages').css({display: 'none', height: 0, width: 0});
	
	var navBgOffset = (jQuery(document).width() - jQuery('#page_margins').width()) / 2;
	jQuery('#nav_bg').width(navBgOffset);

	fitOrderingBG();
	fitFooterPos();
}

function fitOrderingBG() {
	try {
		if (jQuery('#bg_ordering_pages').length > 0) {
			var browserWidth = jQuery(window).width(); // returns width of browser viewport
			if(browserWidth > 990) {
				var pagePos = (browserWidth - 990) / 2;
				jQuery('#page_margins').css('margin-left', pagePos);
				jQuery('#page_margins').css('margin-right', 0);
				var browserHeight = jQuery(document).height(); // returns height of HTML document
				var newLeftPos = (browserWidth - 990) / 2 + 732 + 15;
				var newHeight = browserHeight - parseInt(jQuery('#bg_ordering_pages').css('top'));
				var newWidth = browserWidth - newLeftPos;
				jQuery('#bg_ordering_pages').css({display: 'block', left: newLeftPos, height: newHeight, width: newWidth});
				jQuery('body').css('overflow-x', 'hidden');
			} else {
				jQuery('#bg_ordering_pages').css('display', 'none');
				jQuery('body').css('overflow-x', 'visible');
			}
		}
	} catch(e) {alert(e.message);}
}


function fitFooterPos() {
	try {
		if (jQuery('#footer_container').length > 0) {
			var browserHeight = jQuery(document).height(); // returns height of HTML document
			var newTopPos = browserHeight - 42;
			jQuery('#footer_container').css({ display: 'block', position: 'absolute', top: newTopPos, left: 0, width: '100%', margin: 0 });
			jQuery('#footer').css({ margin: '0 auto', width: 960 });
			jQuery('#page_margins').css('margin-bottom', 42 );
		}
	} catch(e) {alert(e.message);}
}

jQuery(window).resize(function() {
	handlePageSize();
});

fitOrderingBG();
fitFooterPos();

/* info layer */
jQuery('.passportid_info, .main_info')
	.mouseenter(function() {
		jQuery(this).find('.info_layer').stop(true, true).fadeIn(100);
})
	.mouseleave(function() {
		jQuery(this).find('.info_layer').stop(true, true).fadeOut(100);
});


});

function fitFooterPos() {
	try {
		if (jQuery('#footer_container').length > 0) {
			var browserHeight = jQuery(document).height(); // returns height of HTML document
			var newTopPos = browserHeight - 42;
			jQuery('#footer_container').css({ display: 'block', position: 'absolute', top: newTopPos, left: 0, width: '100%', margin: 0 });
			jQuery('#footer').css({ margin: '0 auto', width: 960 });
			jQuery('#page_margins').css('margin-bottom', 42 );
		}
	} catch(e) {alert(e.message);}
}
