$(function() {
	HtmlExt.init();
	Headslider.init();
	ProductSearch.init();
	CallbackService.init();
	Rotate3Di.init();
	$.superbox.settings = {
		loadTxt: 'Wird geladen ...',
		closeTxt: 'Box schließen'
	};
	$('.vcenter').vCenter();
	$.superbox();
});

var HtmlExt = {};
HtmlExt.init = function() {
	HtmlExt.initInputClasses();
};

HtmlExt.initInputClasses = function() {
	$('input[type="submit"]').addClass('input-type-submit');
	$('input[type="button"]').addClass('input-type-button');
	$('input[type="text"]').addClass('input-type-text');
	$('input[type="file"]').addClass('input-type-file');
	$('input[type="password"]').addClass('input-type-password');
	$('input[type="checkbox"]').addClass('input-type-checkbox');
	$('input[type="radio"]').addClass('input-type-radio');	
};


var Headslider = {};
Headslider.init = function() {
	$("#headslider").nivoSlider({
		directionNav: false,
		controlNav: false,
		keyboardNav: false
	});	
};


var ProductSearch = {};
ProductSearch.init = function() {
	var $searchWord = ProductSearch.getSearchWordElement();
	$searchWord.titledInput();
	$searchWord.liveSearch({
		id: 'productsearch-dropdown',
		url: 'index.php?p=productsearch-result&q=',
		typeDelay: 200,
		onDataLoad: $.superbox
	});
};

ProductSearch.getSearchWordElement = function() {
	return $("#productsearch-word");
};


var CallbackService = {};
CallbackService.init = function() {
	CallbackService.$phone = $("#cbservice-phone");
	CallbackService.$email = $("#cbservice-email");
	CallbackService.$text = $("#cbservice-text");
	CallbackService.$textbox = $("#cbservice-textbox");

	CallbackService.initInputElem(CallbackService.$phone);
	CallbackService.initInputElem(CallbackService.$email);
	CallbackService.$text.focus(function() {
		CallbackService.clearSlideUpTimeout();
	});
	CallbackService.$text.blur(CallbackService.blurHandler);
};

CallbackService.initInputElem = function($inputElem) {
	$inputElem.titledInput();
	$inputElem.focus(function() {
		CallbackService.clearSlideUpTimeout();
		CallbackService.$textbox.slideDown();
	});
	$inputElem.blur(CallbackService.blurHandler);
};

CallbackService.blurHandler = function() {
	if (CallbackService.$text.val() == "" && (CallbackService.$phone.val() == "" || CallbackService.$phone.val() == CallbackService.$phone.attr("title"))) {
		CallbackService.textboxSlideUpTimeout = window.setTimeout(function() { CallbackService.$textbox.slideUp(); }, 500 );
	}
};

CallbackService.clearSlideUpTimeout = function() {
	if (CallbackService.textboxSlideUpTimeout) {
		window.clearTimeout(CallbackService.textboxSlideUpTimeout);
	}
};


var Rotate3Di = {};
Rotate3Di.init = function() {
	$('.rotateable').hover(
		function () {
			$(this).find('.rotator').stop().rotate3Di('flip', 250, {direction: 'clockwise', sideChange: Rotate3Di.sideChange});
		},
		function () {
			$(this).find('.rotator').stop().rotate3Di('unflip', 500, {sideChange: Rotate3Di.sideChange});
		}
	);
};

Rotate3Di.sideChange = function(front) {
    if (front) {
        $(this).find('.front').show();
        $(this).find('.back').hide();
    } else {
        $(this).find('.front').hide();
        $(this).find('.back').show();
    }
};


function UnCryptMailto(s) {
	var n = 0;
	var r = "";
	for(var i = 0; i < s.length; i++) {
		n = s.charCodeAt(i);
		if(n >= 8364) {
			n = 128;
		}
		r += String.fromCharCode(n - 1);
	}
	return r;
}

function linkTo_UnCryptMailto(s) {
	location.href= UnCryptMailto(s);
}
