 $(function() { // onload...do
 $('#resForm').submit(function(e) {
        //e.preventDefault();
          if(resForm.validate())
              resForm.sendForm();
          return false;
        });
   $('.compare').css({
        display: 'block'
    });
    $('.compare input:checkbox').map(function() {
        if(jQuery(this).is(' :checked')) $(this).parent().toggleClass('compare-selected');
    } );
    hquery.updateFavCount();
    $('.compare input:checkbox').live('click', function (){
        $(this).hide();
        $('.load', $(this).parent()).show();
        $(this).parent().toggleClass('compare-selected');
        if($(this).is(' :checked'))
            favs_flush_to_text($(this).val());
        else
            new_fav_remove_fav($(this).val());
        hquery.updateFavCount();
        hquery.saveFavs(this);
    });
});

var resForm = {
    message: null,
    validate: function() {
        resForm.message = '';
        if($("input#name").val() == ''){
            $("input#name").addClass('error');
            resForm.message += 'Type Name. ';
        }else{
            $("input#name").removeClass('error');
        }
        if($('input#arrivaldate').val() == ''){
            $("input#arrivaldate").addClass('error');
            resForm.message += 'Select Arrival date. ';
        }else{
            $("input#arrivaldate").removeClass('error');
        }
        if($('input#tel').val() == '' || $('input#tel').val().length < 5){
            $("input#tel").addClass('error');
            resForm.message += 'Input a Telephone number';
        }else{
            $("input#tel").removeClass('error');
        }
        //if($('#input#departdate').val() == ''){
        //    $("input#departdate").addClass('error');
        //    resForm.message += 'Select Depature date. ';
        //}else{
        //    $("input#departdate").removeClass('error');
       // }
       if($('input#days').val() == '' || $('input#days').val() == 0){
            $("input#days").addClass('error');
            resForm.message += 'Input a valid Number';
        }else{
            $("input#days").removeClass('error');
        }
        if($('select#room').val() == ''){
             $("select#room").addClass('error');
             resForm.message += 'Select Room type. ';
        }else{
            $("select#room").removeClass('error');
        }
           
        if($('select#nationality').val() == ''){
            $("select#nationality").addClass('error');
            resForm.message += 'Select Nationality. ';
        }else{
            $("select#nationality").removeClass('error');
        }
        if(($('input#email').val() == '') || (!resForm.validateEmail($('input#email').val()))){
            $("input#email").addClass('error');
            resForm.message += 'Invalid Email. ';
        }else{
            $("input#email").removeClass('error');
        }
        if (resForm.message.length > 0) {
			return false;
		}
		else {
			return true;
		}
            
    },
    sendForm : function(){
        jQuery.ajax({
            type: 'POST',
            data: $('#resForm').serialize(),
            url: $('#resForm').attr('action'),
            timeout: 2000,
            error: function() {
              console.log('Failed to submit');
            },
            success: function(r) {
                $('#resForm').html("<div id='message'></div>");
                $('#message').html("<h2>Booking Request Sent!</h2>").append("<p>We will be in touch soon.</p>").hide().fadeIn(1500, function() {
                $('#message').append(r);
            });
          }
        });
    },
    validateEmail: function (email) {
		var at = email.lastIndexOf("@");

		// Make sure the at (@) sybmol exists and
		// it is not the first or last character
		if (at < 1 || (at + 1) === email.length)
			return false;

		// Make sure there aren't multiple periods together
		if (/(\.{2,})/.test(email))
			return false;

		// Break up the local and domain portions
		var local = email.substring(0, at);
		var domain = email.substring(at + 1);

		// Check lengths
		if (local.length < 1 || local.length > 64 || domain.length < 4 || domain.length > 255)
			return false;

		// Make sure local and domain don't start with or end with a period
		if (/(^\.|\.$)/.test(local) || /(^\.|\.$)/.test(domain))
			return false;

		// Check for quoted-string addresses
		// Since almost anything is allowed in a quoted-string address,
		// we're just going to let them go through
		if (!/^"(.+)"$/.test(local)) {
			// It's a dot-string address...check for valid characters
			if (!/^[-a-zA-Z0-9!#$%*\/?|^{}`~&'+=_\.]*$/.test(local))
				return false;
		}

		// Make sure domain contains only valid characters and at least one period
		if (!/^[-a-zA-Z0-9\.]*$/.test(domain) || domain.indexOf(".") === -1)
			return false;

		return true;
	}
}


function bannerImages(images){
      $('ul#portfolio li').each(function(index,el){
            var img = new Image();
            $(img).load(function () {
                $(this).css('display','none'); // since .hide() failed in safari
                $(el).removeClass('loading').append(this);

                $(this).fadeIn();
            }).error(function () {
                $(el).remove();
            }).attr({
                src: images[index],
                width:530,
                height:220
            });
        });
        $('ul#portfolio').innerfade({
            speed: 1000,
            timeout: 5000,
            type: 'sequence',
            containerheight: '220px'
        });
}
//fadein plugin
(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');
    }
}