$(document).ready(function() {
	loadBanners();
	loadItems();
	$("#banners .banner .meta").css({ opacity: 0.5 });
	$(".fp-items .item .cont h3").css({opacity: 0.5});
	return false;
});

function checkInChanged(dateText, inst) {
	var checkInDate = $('#qs_datepicker_from').datepicker('getDate');
	var checkOutDate = $('#qs_datepicker_to').datepicker('getDate');

	if (checkInDate >= checkOutDate) {
		var newCheckOutDate = new Date(inst.currentYear, inst.currentMonth, inst.currentDay);
		newCheckOutDate.setDate(newCheckOutDate.getDate() + 2);
		$('#qs_datepicker_to').datepicker('setDate', newCheckOutDate)
	}
}

function checkOutChanged(dateText, inst) {
	var checkInDate = $('#qs_datepicker_from').datepicker('getDate');
	var checkOutDate = $('#qs_datepicker_to').datepicker('getDate');

	if (checkInDate >= checkOutDate) {
		var newCheckInDate = new Date(inst.currentYear, inst.currentMonth, inst.currentDay);
		newCheckInDate.setDate(newCheckInDate.getDate() - 2);
		$('#qs_datepicker_from').datepicker('setDate', newCheckInDate)
	}
}

function DateAdd(date, daysToAdd) {
	var returnDate = date;
	returnDate.setDate(returnDate.getDate() + daysToAdd);
	return returnDate;
}

function CheckQuickSearch() {
    if (odin.qs.settings.urls == 'Hotels|Passengers|Payment|Receipt') {        
        var pax = parseInt($('#qs_adult_count').val()) + parseInt($('#qs_child_count').val());
  		if (parseInt($('#qs_arriving_destination_id').val()) === 2 && pax > 3) {
  			alert('The maximum amount of passengers is 3');
  			return;
  		} else if (parseInt($('#qs_arriving_destination_id').val()) === 5 && pax > 6) {
  			alert('The maximum amount of passengers is 6');
  			return;          
        }  	
    } 
        
    return true;  
}


// Search Switcher
function switchSearch(searchType, subType) {
	$('.package-types ul.selector li').removeClass('on');
	$('ul.selector li[index=' + subType + ']').addClass('on');
	$('.tours, .accs').addClass('hidden');
	$('.accs .hotel-search-types').addClass('hidden');
	$('.cars-destination').addClass('hidden');

	//$('.package-types .container .part, .pers').addClass('hidden');
	//$('.package-types .container .part[search_type=' + searchType + ']').removeClass('hidden');
	
    odin.qs.settings.searchType = searchType;

	$.cookie('ODIN_SEARCH_TYPE', subType, { path: '/', expires: 7, cookiePrefix: '' });
		
	if (subType == '1') {
		odin.qs.settings.urls = 'Package|Passengers|Payment|Receipt';
		$('#qs_search_button').attr('value', 'Go to tour');
		$('.tours, .pers').removeClass('hidden');
		$('#qs_search_button').removeClass('hidden');
	} else if (subType == '2') {
		odin.qs.settings.urls = 'Hotels|Passengers|Payment|Receipt';
		$('#qs_search_button').attr('value', ' Search ');
		$('.pers').removeClass('hidden');
		$('#qs_search_button, .check-in, .check-out, .accs').removeClass('hidden');
		$('.check-in label').html('Check in:');
		$('.check-out label').html('Check out:');
		$('.accs .hotel-search-types').removeClass('hidden');
	} else if (subType == '3') {
	    odin.qs.settings.urls = 'Cars|Passengers|Payment|Receipt';
		$('.pers').addClass('hidden');
		$('#arr_dest_container').addClass('hidden');
        $('#qs_arriving_destination_id').val(2);
		$('#qs_search_button, .check-in, .check-out, .cars-destination, .accs').removeClass('hidden');		
		$('.check-in label').html('From:');
		$('.check-out label').html('To:');
		$('#qs_search_button').attr('value', ' Search ');
	} else if (subType == '4') {
	    odin.qs.settings.urls = 'Services|Passengers|Payment|Receipt';
		$('.pers').addClass('hidden');
		$('#arr_dest_container').removeClass('hidden');
		$('#qs_search_button, .check-in, .check-out, .accs').removeClass('hidden');		
		$('.check-in label').html('From:');
		$('.check-out label').html('To:');
		$('#qs_search_button').attr('value', ' Search ');
	}
}

// Search Switcher
function switchSearchNO(searchType, subType) {
	$('.package-types ul.selector li').removeClass('on');
	$('ul.selector li[index=' + subType + ']').addClass('on');
	$('.tours, .accs').addClass('hidden');
	$('.accs .hotel-search-types').addClass('hidden');
	$('.cars-destination').addClass('hidden');
	
	odin.qs.settings.searchType = searchType;

	//$('.package-types .container .part, .pers').addClass('hidden');

	//$('.package-types .container .part[search_type=' + searchType + ']').removeClass('hidden');
	$.cookie('ODIN_SEARCH_TYPE', subType, { path: '/', expires: 7, cookiePrefix: '' });
		
	if (subType == '1') {
		odin.qs.settings.urls = 'Package|Passengers|Payment|Receipt';
		$('#qs_search_button').attr('value', 'Se tur');
		$('.tours, .pers').removeClass('hidden');
		$('#qs_search_button').removeClass('hidden');
	} else if (subType == '2') {
		odin.qs.settings.urls = 'Hotels|Passengers|Payment|Receipt';
		$('#qs_search_button').attr('value', ' Søk ');
		$('.pers').removeClass('hidden');
		$('#qs_search_button, .check-in, .check-out, .accs').removeClass('hidden');
		$('.check-in label').html('Dato fra:');
		$('.check-out label').html('Dato til:');
		$('.accs .hotel-search-types').removeClass('hidden');
	} else if (subType == '3') {
	    odin.qs.settings.urls = 'Cars|Passengers|Payment|Receipt';
		$('.pers').addClass('hidden');
        $('#arr_dest_container').addClass('hidden');
        $('#qs_arriving_destination_id').val(2);
		$('#qs_search_button, .check-in, .check-out, .destination, .accs').removeClass('hidden');
		$('.check-in label').html('Fra:');
		$('.check-out label').html('Til:');
		$('#qs_search_button').attr('value', ' Søk ');
	} else if (subType == '4') {
	    odin.qs.settings.urls = 'Services|Passengers|Payment|Receipt';
		$('.pers').addClass('hidden');
		$('#arr_dest_container').removeClass('hidden');
		$('#qs_search_button, .check-in, .check-out, .accs').removeClass('hidden');		
		$('.check-in label').html('Fra:');
		$('.check-out label').html('Til:');
		$('#qs_search_button').attr('value', ' Søk ');
	}
} 


//----------------------------------- FRONT PAGE BANNERS/CAROUSEL ------------------------------------//
var bannerIdx = 0;
var bannerCount = 0;
var timerCount = 0;

function loadItems() {
	$('.fp-items .item').hover(
		function () {
			$($(this).children('.cont').get(0)).stop().animate({top:'0'}, 300, 'linear', function() {});
		},
		function () {
			$($(this).children('.cont').get(0)).stop().animate({top:'86px'}, 300, 'linear', function() {});
		}
	).click(function() {
		top.window.location.href = $(this).find('.cont .more a').attr('href');
	});
}

function loadBanners() {
	bannerCount = $('#banners .banner').length;
	bannerIdx = 0;
	
	if (bannerCount > 1) {
		showBanner(+1);
	} else {
		$('#banners div.banner:eq(0)').fadeIn(300);
	}
}

function showBanner(increase) {
	$('#banners div.banner:eq(' + bannerIdx + ')').fadeOut(300);
            
	bannerIdx = (bannerIdx + increase + bannerCount) % bannerCount;
          		                 
	$('#banners div.banner:eq(' + bannerIdx + ')').fadeIn(300, function() {   
		timerCount++;      
  		$.timer(10000, function() {
  			if(timerCount == 1) {
				showBanner(+1);
			}
			timerCount--;
		});            
	});
}


/*	CONTACT US:
--------------------------------------------------------------------------------------------------------------------- */
SendEmail = function(btn, subject, to, sendCopy) {
  this.init(btn, subject, to, sendCopy);
};
jQuery.extend(SendEmail.prototype, {
	init: function(btn, subject, to, sendCopy) {
		var qs = 'i_subject=' + subject + '&i_to=' + to;
				
		var items = $('input.email-form-item, select.email-form-item, textarea.email-form-item').each(
			function(i, el) {
				qs += '&' + $(el).attr('id') + '=' + $(el).val();
			}
		);
		
		if (sendCopy !== null) {
			qs += '&sc=true&sct=' + $('.email-send-copy-to').val()
		} else {
			qs += '&sc=false';
		}

		$.post('/Modules/Forms/Submit.aspx', qs, function(r) {
			if(r == 'true') {
				alert('Message has been sent.'); 
				$('#Name').val(''); 
				$('#Email').val('');
				$('#Message').val('');
			} else {
				alert('An error occured while sending the request.');
			}   

			btn.disabled = false;
			btn.value = 'Send';	
		}, function(e) {
			alert('An error occured while sending the request.');
		});
	}
});


function verifycontactform(btn) {
	btn.disabled = true;
	btn.value = 'Sending message now ...';
	var message = 'Please fill out: ';
	var isGood = true;
	var emailRegEx = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
	
	if ( $('#email').val() == "") {
		message = message + "\n -  Email";
		isGood = false;
	}
	if ( $('#message').val() == "") {
		message = message + "\n -  Message";
		isGood = false;
	}
	if (!$('#email').val().match(emailRegEx) ) {
		message = message + "\n -  Email";
		isGood = false;
	}                                       
	
	if (isGood) {
		new SendEmail(btn, 'Iceland Online - Contact', 'info@icelandonline.com', $('#email_include_me:checked'));
	} else {
		alert(message);
		btn.disabled = false;
		btn.value = 'Send';
	}

	return isGood;
}


/*	HOTEL IMAGE THINGY:
	--------------------------------------------------------------------------------------------------------------------- */
HotelImageMovers = function() {
  this.init();
};
jQuery.extend(HotelImageMovers.prototype, {
	init: function() {
		this.UL = $('div.thumbnails ul');
		
		this.Positions = new Array();
		this.CurrentPosition = 0;		
		var containingClass = this;
		
		$('img.hotel-thumb').each( function(i, element) {
				$(element).click( function(ev) {
				$('#hotel_image_loader').show();
				
				$('#main_image').fadeTo("slow",0, function(){
					var engine = $(element).attr('engine');
					if( engine == "getfile") {
						var procID = $(element).attr('procID');
						var imageID = $(element).attr('imgID');
						$('#main_image').attr('src', "/modules/odin/getfile.aspx?fileid=" + imageID + "&processid=" + procID);
											
						$('#main_image').fadeTo("def",1,(function() {	
							$('#hotel_image_loader').hide();
						}));
					} else {
						var hotel_id = $(element).attr("hotel_id");
						var filename = $(element).attr("filename");
						$('#main_image').attr('src', "/Modules/Odin/ImageHost.aspx?MaxHeight=320&MaxWidth=510&Quality=60&HotelID=" + hotel_id + "&FileName=" + filename );
											
						$('#main_image').fadeTo("slow",1,(function() {	
							$('#hotel_image_loader').hide();
						}));	
					}
				});
				
			});		
			containingClass.Positions[containingClass.Positions.length] = parseInt($(element).height()) + 8;
		});

		if ($('#move_up')) {
			$('#move_up').bind('click', function(event) {
				if (containingClass.CurrentPosition > 0) {					
					containingClass.CurrentPosition = containingClass.CurrentPosition - 1;
					var currentPosY = 0;
					
					for (var i = 0; i < containingClass.CurrentPosition; i++) {
						currentPosY = currentPosY + containingClass.Positions[i];
					}
					
					containingClass.UL.animate({ 
				        top: (currentPosY * -1) + 'px'
				      }, 350 );
				}
			});
		}

		if ($('#move_down')) {
			$('#move_down').bind('click', function(event) {
				if (containingClass.CurrentPosition < (containingClass.Positions.length - 1)) {
					containingClass.CurrentPosition = containingClass.CurrentPosition + 1;
					var currentPosY = 0;
					
					for (var i = 0; i < containingClass.CurrentPosition; i++) {
						currentPosY = currentPosY + containingClass.Positions[i];
					}
					containingClass.UL.animate({ 
				        top: (currentPosY * -1) + 'px'
				      }, 350 );
				}
			});
		}
	}
});

function ShowHotelImage() {
	$('#hotel_image_loader').hide();
	if (HIS != null) {
		$('#main_image').fadeTo("def",1);			
	}
}


function GetSingleServicedates(ownerInfo, serviceID) {
    var dates = [];
	Zeus.Odin.DisillModules.API.OdinAPI.GetServiceDatesByServiceID(ownerInfo, serviceID, function(r) {
        jQuery.each(r,function(i,item) {    
            dates[dates.length] = item;                                
        });
                
        setTimeout(function() {
            $('#date_picker').datepicker({
				numberOfMonths: 1,
				showAnim: 'fadeIn',
				dateFormat: 'yy-mm-dd',
				minDate:0,
				onSelect: function(dateText, inst){
                    $('#qs_datepicker_selected_' + serviceID).text(dateText);
                    $('#qs_datepicker_from_' + serviceID).val(dateText);
                    $('#qs_datepicker_to_' + serviceID).val(dateText);
                    $('.service-saver').removeAttr('disabled');
			    },
                beforeShowDay: function(date) {
                    dateText = date.format('yyyy-MM-dd')
					if($.inArray(dateText,dates) > -1) {
						return [true,'selectable',''];
					} else {
						return [false,'',''];
					}
                }
			});
			if (dates.length > 0 ){
                var dateArray = new String(dates[0]).split('-');
                var dateObject = new Date(dateArray[0], dateArray[1]-1, dateArray[2]);

                $('#date_picker').datepicker( "option", "minDate", dateObject);
            }           
        } , 0); // delays 0 sec

	});
    return dates;    
}

function SelectService(sel) {
    var indx = $(sel)[0].selectedIndex;
    var paxIndex = 0;

    if (indx > 0) {
		var op = $(sel).children('option:eq(' + indx + ')');
        odin.service.stripService($(op).attr('sid'));

		for (i = 0; i < odin.Adults; i++) {
			odin.service.add(paxIndex, $(op).attr('sid'), $(op).attr('cid'), $(op).attr('did'), $(op).attr('pra'), $(op).attr('pria'),$(op).attr('pick').toString().toLowerCase());
			paxIndex++;
		}

		for (i = 0; i < odin.Children; i++) {
			odin.service.add(paxIndex, $(op).attr('sid'), $(op).attr('cid'), $(op).attr('did'), $(op).attr('prc'), $(op).attr('pric'),$(op).attr('pick').toString().toLowerCase());
			paxIndex++;
		}

		for (i = 0; i < odin.Infants; i++) {
			odin.service.add(paxIndex, $(op).attr('sid'), $(op).attr('cid'), $(op).attr('did'), $(op).attr('pri'), $(op).attr('prii'),$(op).attr('pick').toString().toLowerCase());
			paxIndex++;
		}		
	} else {
	   var op = $(sel).children('option:eq(' + indx + ')');
       odin.service.stripService($(op).attr('sid'));
       odin.service.calculatePrice();
	}
}



