/* =========================================================

// jquery.innerfade.js

// Datum: 2008-02-14
// Firma: Medienfreunde Hofmann & Baldes GbR
// Author: Torsten Baldes
// Mail: t.baldes@medienfreunde.com
// Web: http://medienfreunde.com

// based on the work of Matt Oakes http://portfolio.gizone.co.uk/applications/slideshow/
// and Ralf S. Engelschall http://trainofthoughts.org/

 *
 *  <ul id="news"> 
 *      <li>content 1</li>
 *      <li>content 2</li>
 *      <li>content 3</li>
 *  </ul>
 *  
 *  $('#news').innerfade({ 
 *	  animationtype: Type of animation 'fade' or 'slide' (Default: 'fade'), 
 *	  speed: Fading-/Sliding-Speed in milliseconds or keywords (slow, normal or fast) (Default: 'normal'), 
 *	  timeout: Time between the fades in milliseconds (Default: '2000'), 
 *	  type: Type of slideshow: 'sequence', 'random' or 'random_start' (Default: 'sequence'), 
 * 		containerheight: Height of the containing element in any css-height-value (Default: 'auto'),
 *	  runningclass: CSS-Class which the container get’s applied (Default: 'innerfade'),
 *	  children: optional children selector (Default: null)
 *  }); 
 *

// ========================================================= */


(function($) {

    $.fn.innerfade = function(options) {
        return this.each(function() {   
            $.innerfade(this, options);
        });
    };

    $.innerfade = function(container, options) {
        var settings = {
        		'animationtype':    'fade',
            'speed':            'normal',
            'type':             'sequence',
            'timeout':          2000,
            'containerheight':  'auto',
            'runningclass':     'innerfade',
            'children':         null
        };
        if (options)
            $.extend(settings, options);
        if (settings.children === null)
            var elements = $(container).children();
        else
            var elements = $(container).children(settings.children);
        if (elements.length > 1) {
            $(container).css('position', 'relative').css('height', settings.containerheight).addClass(settings.runningclass);
            for (var i = 0; i < elements.length; i++) {
                $(elements[i]).css('z-index', String(elements.length-i)).css('position', 'absolute').hide();
            };
            if (settings.type == "sequence") {
                setTimeout(function() {
                    $.innerfade.next(elements, settings, 1, 0);
                }, settings.timeout);
                $(elements[0]).show();
            } else if (settings.type == "random") {
            		var last = Math.floor ( Math.random () * ( elements.length ) );
                setTimeout(function() {
                    do { 
												current = Math.floor ( Math.random ( ) * ( elements.length ) );
										} while (last == current );             
										$.innerfade.next(elements, settings, current, last);
                }, settings.timeout);
                $(elements[last]).show();
						} else if ( settings.type == 'random_start' ) {
								settings.type = 'sequence';
								var current = Math.floor ( Math.random () * ( elements.length ) );
								setTimeout(function(){
									$.innerfade.next(elements, settings, (current + 1) %  elements.length, current);
								}, settings.timeout);
								$(elements[current]).show();
						}	else {
							alert('Innerfade-Type must either be \'sequence\', \'random\' or \'random_start\'');
						}
				}
    };

    $.innerfade.next = function(elements, settings, current, last) {
        if (settings.animationtype == 'slide') {
            $(elements[last]).slideUp(settings.speed);
            $(elements[current]).slideDown(settings.speed);
        } else if (settings.animationtype == 'fade') {
            $(elements[last]).fadeOut(settings.speed);
            $(elements[current]).fadeIn(settings.speed, function() {
							removeFilter($(this)[0]);
						});
        } else
            alert('Innerfade-animationtype must either be \'slide\' or \'fade\'');
        if (settings.type == "sequence") {
            if ((current + 1) < elements.length) {
                current = current + 1;
                last = current - 1;
            } else {
                current = 0;
                last = elements.length - 1;
            }
        } else if (settings.type == "random") {
            last = current;
            while (current == last)
                current = Math.floor(Math.random() * elements.length);
        } else
            alert('Innerfade-Type must either be \'sequence\', \'random\' or \'random_start\'');
        setTimeout((function() {
            $.innerfade.next(elements, settings, current, last);
        }), settings.timeout);
    };

})(jQuery);

// **** remove Opacity-Filter in ie ****
function removeFilter(element) {
	if(element.style.removeAttribute){
		element.style.removeAttribute('filter');
	}
}


/*****************************************************************/

function setRoomHome(nrooms, label_adults, label_children, label_children_age, label_room, element) {
	var form = element.parents('form');
	var myResults = '';
	
	if (nrooms > 1)	// se viene scelta più di una camera...
	{
		for (var i=2; i<=nrooms; i++)	// preparo la stringa da accodare alla prima camera, contenente i campi necessari
		{
			myResults = myResults + '<li class="room'+ i +' roomTitle">'+ label_room +' '+ i +'</li>';
			
			myResults = myResults +	'<li class="room'+ i +' adults">'+
										'<label>'+ label_adults +'</label>'+
										'<select name="bform[reqRooms]['+ i +'][adults]" id="reqRooms_'+ i +'_adults">'+
											createSelect(4, 1, label_adults, "", 2)+
										'</select>'+
									'</li>'+
									'<li class="room'+ i +' children">'+
										'<label>'+ label_children +'</label>'+
										'<select name="bform[reqRooms]['+ i +'][child]" onchange="setChildAge(this.value,\'chdAge_'+ i +'\', '+ i +',\''+ label_children_age +'\', $(this));" id="reqRooms_'+ i +'_child">'+
											createSelect(3, 0, label_children, "", 0)+
										'</select>'+
									'</li>'+
									'<li class="room'+ i +' childAge chdAge_'+ i +'"></li>';
		}
		
		$('li.room1.roomTitle', form).remove();				// rimuovo il titolo della camera 1 (per evitare duplicazioni nel caso sia già presente: vedi istruzione successiva)
		$('li.room1:first', form).before('<li class="room1 roomTitle">'+ label_room +' 1</li>');		// aggiungo il titolo della camera 1, prima del primo campo della camera 1
		$('li.room1:last', form).nextAll().remove();		// rimuovo tutti gli elementi dopo l'ultimo elemento della camera 1
		$('li.room1:last', form).after(myResults);			// aggiungo dopo l'ultimo elemento della camera 1, la stringa preparata in precedenza
	}
	else			// se viene scelta una sola camera...
	{
		$('li.room1.roomTitle', form).remove();				// rimuovo il titolo della camera 1
		$('li.room1:last', form).nextAll().remove();		// rimuovo tutti gli elementi dopo l'ultimo elemento della camera 1
	}
}


function setChildAge(nchild, chdid, roomn, label_children_age, element){
	var form = element.parents('form');
	var selectHtml = "";
	
	if(nchild > 0){
		selectHtml = '<label>'+ label_children_age +'</label>';
		for (var cc=1; cc<=nchild; cc++) {
			selectHtml =  selectHtml + '<select name="bform[reqRooms]['+roomn+'][childAge][' + cc + ']" id="reqRooms_'+roomn+'_childAge_' + cc + '">' +
                '<option value="0">&lsaquo;1</option>';
				for(var k=1; k<=18; k++){
					k_opt = k<10 ? "&nbsp;"+ k : k;
					selectHtml =  selectHtml + "\n" + '<option value="'+ k +'">'+ k_opt +'</option>';
				}
				selectHtml =  selectHtml + '</select>';
		}
	}

	if($('.'+chdid, form)){
		$('.'+chdid, form).html(selectHtml);
	}
}


function createSelect(num, init, label, labels, selected){
	if(label != ""){
		label = " "+ label;
	}
	if(labels != ""){
		labels = " "+ labels;
	} else {
		labels = label;
	}
	var mySel = "";
	for(var k=init; k<=num; k++){
		if(k!=init) label = labels;
		if (selected != 0 && selected == k){
			//mySel = mySel + "\n" + '<option value="'+ k +'" selected="selected">'+ k + label +'</option>';	// numero + nome
			mySel = mySel + "\n" + '<option value="'+ k +'" selected="selected">'+ k + '</option>';				// solo numero
		} else {
			//mySel = mySel + "\n" + '<option value="'+ k +'">'+ k + label +'</option>';	// numero + nome
			mySel = mySel + "\n" + '<option value="'+ k +'">'+ k + '</option>';				// solo numero
		}
	}
	return mySel;
}

function writeBooking(){
 urlstr = location.pathname;
 myLang = (urlstr.indexOf("/en/") == -1)? 'it' : 'en' ;
 
 mylabel = new Array();
 
 mylabel['it'] = new Array();
 mylabel['it']['arrival'] = 'Data di arrivo';
 mylabel['it']['departure'] = 'Data di partenza';
 mylabel['it']['adults'] = 'Adulti';
 mylabel['it']['child'] = 'Bambini';
 mylabel['it']['child_age'] = 'Et&agrave; bambini';
 mylabel['it']['room'] = 'Camera';
 mylabel['it']['rooms'] = 'Camere';
 mylabel['it']['calculate_rating'] = 'Calcola Preventivo';
 mylabel['it']['verify'] = 'Verifica Disponibilit&agrave;';
 
 mylabel['en'] = new Array();
 mylabel['en']['arrival'] = 'Arrival';
 mylabel['en']['departure'] = 'Departure';
 mylabel['en']['adults'] = 'Adults';
 mylabel['en']['child'] = 'Children';
 mylabel['en']['child_age'] = 'Children age';
 mylabel['en']['room'] = 'Room';
 mylabel['en']['rooms'] = 'Rooms';
 mylabel['en']['calculate_rating'] = 'Calculate Estimate';
 mylabel['en']['verify'] = 'Verify Availability';
 
 today = new Date();
 tomorrow = new Date();
 tomorrow.setDate(tomorrow.getDate()+1);
 mtd = ((today.getMonth()*1+1)<10)? '0'+(today.getMonth()*1+1) : (today.getMonth()*1+1);
 mtw = ((tomorrow.getMonth()*1+1)<10)? '0'+(tomorrow.getMonth()*1+1) : (tomorrow.getMonth()*1+1);
 checkinDate = today.getDate() +'-'+ mtd +'-'+ today.getFullYear();
 checkoutDate = tomorrow.getDate() +'-'+ mtw +'-'+ tomorrow.getFullYear();
 
 myForm = '<form id="booking" name="booking" method="get" action="/'+ myLang +'/prenotazioni.html">'+
 '<input type="hidden" value="'+ myLang +'" name="lg">'+
 '<p>'+ mylabel[myLang]['calculate_rating'] +'</p>'+
 '<iframe src="http://www.facebook.com/plugins/likebox.php?href=https%3A%2F%2Fwww.facebook.com%2Fpages%2FSweet-Serena%2F113420365405838&amp;width=292&amp;colorscheme=light&amp;show_faces=false&amp;border_color&amp;stream=false&amp;header=false&amp;height=62" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:230px; height:62px; position:absolute; top:0px; left:0px;" allowTransparency="true"></iframe>'+
 '<ul class="fields">'+
  '<li class="cal">'+
   '<label>'+ mylabel[myLang]['arrival'] +'</label>'+
   '<input type="text" class="bform_checkin" value="'+ checkinDate +'" readonly="readonly" name="bform[checkin]">'+
  '</li>'+
  '<li class="cal sep">'+
   '<label>'+ mylabel[myLang]['departure'] +'</label>'+
   '<input type="text" class="bform_checkout" value="'+ checkoutDate +'" readonly="readonly" name="bform[checkout]">'+
  '</li>'+
  '<li class="rooms sep">'+
   '<label>'+ mylabel[myLang]['rooms'] +'</label>'+
   '<select onchange="setRoomHome(this.value, \''+ mylabel[myLang]['adults'] +'\', \''+ mylabel[myLang]['child'] +'\', \''+ mylabel[myLang]['child_age'] +'\', \''+ mylabel[myLang]['room'] +'\', $(this));" name="bform[numRooms]">'+
    '<option value="1">1</option>'+
    '<option value="2">2</option>'+
   '</select>  '+    
  '</li>'+
  '<li class="room1 adults">'+
   '<label>'+ mylabel[myLang]['adults'] +'</label>'+
   '<select name="bform[reqRooms][1][adults]">'+
    '<option value="1">1</option>'+
    '<option selected="selected" value="2">2</option>'+
    '<option value="3">3</option>'+
    '<option value="4">4</option>'+
   '</select>'+
  '</li>'+
  '<li class="room1 children">'+
   '<label>'+ mylabel[myLang]['child'] +'</label>'+
   '<select onchange="setChildAge(this.value,\'chdAge_1\', 1,\''+ mylabel[myLang]['child_age'] +'\', $(this));" name="bform[reqRooms][1][child]">'+
    '<option selected="selected" value="0">0</option>'+
    '<option value="1">1</option>'+
    '<option value="2">2</option>'+
    '<option value="3">3</option>'+
   '</select>'+
  '</li>'+
  '<li class="room1 childAge chdAge_1"></li>'+ 
 '</ul>'+
 '<div class="clear"></div>'+
 '<a onclick="document.forms.booking.submit(); return false;" href="javascript:;"><span>'+ mylabel[myLang]['verify'] +'</span></a>'+
 '<div class="clear"></div>'+
 '</form><iframe src="http://mmone.mobi/castellosantamaria/offerte/boxAbsOffers.php?myLang=it" id="offers" scrolling="no" frameborder="0" allowTransparency="true"></iframe>';
 
 if($('div.sezioni').length == 1){
  $('div.sezioni').append(myForm);
 } else if($('#divider').length == 1){
  $('#divider').html(myForm);
 }
}
 
$(document).ready(function() {
 writeBooking();
 
 /////////////// Datepicker
 	if(myLang == 'en') {
		myLang = 'en-GB';
	}
	$.datepicker.setDefaults( $.datepicker.regional[ "" ] );
	$('.cal > input').datepicker($.datepicker.regional[myLang]);
	
	$('.cal > input').datepicker('option', {
		dateFormat: 'dd-mm-yy',
		minDate: 0,
		changeMonth: false,
		changeYear: false,
		numberOfMonths: 2,
		showButtonPanel: true
	});
	
	$('.bform_checkin').val(checkinDate);
	$('.bform_checkout').val(checkoutDate);
	$('.bform_checkout').datepicker('option', {	minDate: '+1d' });
	
	$('.bform_checkin').change(
		function(el) {
			var elId =  el.target.id;
			var form = $('#'+elId).parents('form');
			date1 = $('.bform_checkin', form).datepicker('getDate');
			date2 = new Date(date1);
			date2.setDate(date1.getDate() + 1);
			$('.bform_checkout', form).datepicker('option', 'minDate', date2);
		}
	);
});
