/*
* Title: Initialze 
* Author: Yves Torres
* Haupt Applikation
*/


function implode (glue, pieces) {
    // Joins array elements placing glue string between items and return one string  
    // 
    // version: 1109.2015
    // discuss at: http://phpjs.org/functions/implode    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: Waldo Malqui Silva
    // +   improved by: Itsacon (http://www.itsacon.net/)
    // +   bugfixed by: Brett Zamir (http://brett-zamir.me)
    // *     example 1: implode(' ', ['Kevin', 'van', 'Zonneveld']);    // *     returns 1: 'Kevin van Zonneveld'
    // *     example 2: implode(' ', {first:'Kevin', last: 'van Zonneveld'});
    // *     returns 2: 'Kevin van Zonneveld'
    var i = '', retVal = '', tGlue = '';
    if (arguments.length === 1) {
        pieces = glue;
        glue = '';
    }
	if (typeof(pieces) === 'object') {
        if (Object.prototype.toString.call(pieces) === '[object Array]') {
            return pieces.join(glue);
        } 
        for (i in pieces) {
			retVal += tGlue + pieces[i];
            tGlue = glue;
        }
        return retVal;
    }
	return pieces;
}
		
function nav(){
	var win = $(window), updateNav = function(){
		var w = 0, nav = $('#nav');
		
		var subnav = nav.find('> ul > li > ul');
		
		nav.find('> ul > li').each(function(){
			w=w+$(this).outerWidth(true);
		});
		nav.css({width:w});
		
		w=0;
		subnav.find('> li').each(function(){
			w=w+$(this).outerWidth(true);
		});
		subnav.css({marginLeft:-(w/2)});
	}
	win['bind']("resize", updateNav);
	updateNav();
}

function quickBooking(){
	var toggler = $('#toggleBooking'), slide = $('#slideBooking');
	toggler.click(function(e){
		e.preventDefault();
		$(this).blur();
		slide.slideToggle(250);
	});
	if($('#page1').length==0){
		slide.slideUp(0);
	}
}

(function wrapperPos(){
	if($('.gallery').length==0){
		var win = $(window), wrapper = $('.wrapper'), checkPos = function(){
			if($(window).height()>=800)
				wrapper.css({top:65});
			else		
				wrapper.css({top:0});
		};
		win['bind']("resize", checkPos);
		checkPos();
	}
})(document);

(function oldieBrowsers(){
	if($('.oldie').length){
		$('.teasers').find('.teaser:last-child').css({marginRight:0});
		$('.offers').find('.offer:last-child').css({marginRight:0});
		$('.txtcolumns').find('.col:last-child').css({marginRight:0});
	}
})(document);

function katchange(field) {

	var kat  			= field.attr('value');
	var lang 			= $('#cur_lang').attr('value');
	var productfield	= field.parent().find('select.produkt');
	
	if(kat == '') {
		productfield.empty();
		productfield.append('<option value="">' + lang_str.productDefault + '</option>');
		return;	
	}
	
	jQuery.getJSON("http://www.limmathof.ch/gutscheine/json/?q=" + kat + "&l=" + lang, function(data) {
		productfield.empty();
		productfield.append('<option value="">' + lang_str.productDefault_two + '</option>');
		jQuery.each(data, function(key, val) {
			productfield.append('<option value="' + key + '">' + val + '</option>');
		});
	});
}

function isNumber(o) {
  return ! isNaN (o-0);
}

function geschenkform() {
	$('form#gutscheinform select.kategorie, form#gutscheinform select.produkt').each(function() {
		$(this).bind('change',function() {
			if($(this).hasClass('kategorie') === true) {
				katchange($(this));
			}
		});
	});
	
}

function pagination(){
	var h = 418, c = $('#content'), ps = $('.pagination',c), np = ps.length-1, cp = 0, pb = parseInt(c.css('padding-bottom'));
	var t = $('.teaserbottom');
	if(t.length>0){
		t.appendTo(c).css({position:'absolute', bottom:c.css('padding-bottom'), left:c.css('padding-left')});
		c.css({paddingBottom:t.height()+parseInt(c.css('padding-bottom'))});
		h=h-t.height()+12;
		var nh = parseInt(c.css('min-height'))-t.height();
		c.css({'min-height':nh});
	}
	if(np>0){
		$('.txtcolumns').css({'margin-bottom':0});
		ps.filter(':gt(0)').hide();
		c.append('<div id="pager"><a id="prev" href="javascript:;">'+lang_str.pagePrev+'</a> <a id="next" href="javascript:;">'+lang_str.pageNext+'</a></div>');
		var prev = $('#prev'), next = $('#next');
		if(t.length>0)
			pb = parseInt(c.css('padding-bottom'))+6;
		$('#pager').css({position:'absolute', bottom:pb, left:c.css('padding-left'), right:c.css('padding-right'), height:20});
		prev.hide();
		
		next.click(function(){
			if(cp!=np){
				ps.eq(cp).hide();
				cp++;
				ps.eq(cp).fadeIn(250);
				if(cp==np) $(this).hide();
				if(cp!=0) prev.show();
			}
		});
		prev.click(function(){
			if(cp!=0){
				ps.eq(cp).hide();
				cp--;
				ps.eq(cp).fadeIn(250);
				if(cp==0) $(this).hide();
				if(cp!=np) next.show();
			}
		});

		$(document)['bind']("keydown", function(event){
			var code = event.keyCode;
			return (code==39) ? next.trigger('click')
				: (code==37) ? prev.trigger('click')
				: true;
		});

	} else {
		$('.txtcolumns:last').css({'margin-bottom':0});
	}
}

function forms(){
	if($('div.ort') && $('div.plz')){
		var plz = $('div.plz');
		var ort = $('div.ort');
		var htmlPlz = plz.find('label').html();
		var htmlOrt = ort.find('label').html();
		plz.find('label').html(htmlPlz+", "+htmlOrt);
		ort.find('input').appendTo(plz);
		ort.remove();
	}
}

$(document).ready(function(){
	quickBooking();
	nav();
	geschenkform();
	pagination();
	forms();
});

