var host = window.location.host;

jQuery.noConflict();

jQuery(function(){
    
    // Trigger datepicker on calendar click.
    jQuery('.day_selector input').datepicker({
            showOn: 'button',
            buttonImage: '/img/front/day_selector.png',
            buttonImageOnly: true,
            buttonText: "kalender"
    });
    
    // Change datepicker's date format.
    jQuery('.day_selector input').datepicker('option', {
        dateFormat: 'dd-mm-yy'
    });
    
     
    // initialize scrollable 
    jQuery("div.scrollable").scrollable({
            keyboardSteps: 1,
            size: 1
    });     
    
    jQuery('#send_contact').click(function(e) {
                
                var message = "";                        
                var field = "";
                            
                var field = jQuery('#UserContactName');
                if(field.val() == "")
                {
                    field.css("border","1px solid #FF0000");                    
                    message = message + '- Voornaam \n';
                }
                else
                {
                    field.css("border","1px solid #CCCCCC");                    
                }

                var field = jQuery('#UserContactEmail');
                if(field.val() == "")
                {
                    field.css("border","1px solid #FF0000");
                    message = message + '- E-mailadres \n';
                }
                else
                {
                            field.css("border","1px solid #CCCCCC");
                            
                            if (!/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+/.test(field.val()))
                            {
                                field.css("border","1px solid #FF0000");                
                                var message = message + '- Fout e-mailadres\n';          
                            }                          
                }
                
                var field = jQuery('#UserContactMessage');
                if(field.val() == "")
                {
                    field.css("border","1px solid #FF0000");
                    message = message + '- Bericht \n';
                }
                else
                {                    
                    field.css("border","1px solid #CCCCCC");                    
                }                
                
                var field = jQuery('#check_captcha');
                if(field.val() == "")
                {
                    field.css("border","1px solid #FF0000");                    
                    message = message + '- Captcha \n';
                }
                else
                {                    
                    field.css("border","1px solid #CCCCCC");                    
                }                
                                
                if (message != "")
                { 
                    //alert('Niet alle velden zijn (correct) ingevuld. \n Vul de verlichte velden (*) in aub. \n\n*********************\n'+message+'*********************');              
                    jQuery('#error_message_contact').show();   
                    e.preventDefault();
                
                }
                else
                {
                    jQuery('#error_message_contact').hide();
                }
    });    
    
    jQuery('#send_newsletter').click(function(e){
        
        var email = jQuery('#newsletter_email').val();
        var error_message = "";
        var success_message = "";
        
        if(email != "" && (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+/.test(email)))                            
        {
                var serialized_data = jQuery('#newsletter_form').serialize();
                
                jQuery('#newsletter_form').ajaxStart(function() {                                        
                    jQuery(this).hide();                    
                    jQuery('#newsletter_inscription_text').html("<img src='/img/front/ajax-loader.gif' alt='ajax_loader'>");                    
                });
                
                jQuery.ajax({
                    
                        type: "POST",
                        url: "/newsletter",
                        data: serialized_data,
                        success: function(status) {
                              
                                if(status)
                                {                                   
                                    success_message = "Bedankt voor uw aanmelding. U ontvangt een e-mail met instructies om de aanmelding te activeren";    
                                }
                                else
                                {
                                    jQuery('#newsletter_form').show();
                                    success_message = "Het ingevulde e-mailadres is ongeldig";
                                }
                                
                                jQuery('#newsletter_inscription_text').text("");
                                jQuery('#newsletter_inscription_text').text(success_message);                            
                                
                        }                        
                });
        }
                
        // Errores        
        if(email == "")
        {
            error_message = "Er dient een geldig e-mailadres ingevuld te worden";
            
        }        
        else if(!/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+/.test(email))
        {
            error_message = "Het ingevulde e-mailadres is ongeldig";
        }
        
        if(error_message != "")
        {
            jQuery('#newsletter_inscription_text').html("");        
            jQuery('#newsletter_inscription_text').html(error_message);
        }
        
        e.preventDefault();
    });
    
    
    // Highlight active links in menu.
    jQuery("#menu_links .first_position_li a.main_menu").each(function(){

                var current_href = "http://"+host+jQuery(this).attr("href");
                
                var this_page = window.location.href;
                
                if (this_page == current_href) {

                        // Make selected li's background  fixed.
                        var parent = jQuery(this).parent();
                        parent.css("background","url(/img/front/gradient_active_menu_large.png) no-repeat");
                        
                        jQuery(this).css("font-weight","bold");
                        jQuery(this).css("font-size","14px");                  
                }
      
    });
    
    jQuery("#menu_links ul li ul li a").each(function(){

                var current_href = "http://"+host+jQuery(this).attr("href");
                
                var this_page = window.location.href;
                
                if (this_page == current_href) {
                    
                    jQuery(this).css("color","#FBB03B");
                    jQuery(this).css("font-weight","bold");
                    
                    
                }      
    });
    
    jQuery("#compare_offers_button").click(function(e){
        
        jQuery("#compare_offers_form input[type='checkbox']:checked").each(function() {
                
                window.open(jQuery(this).val());
                
        });
        
        e.preventDefault();    
    });
   
    // Overlay
    jQuery("a.overlay[rel]").overlay({        
        mask: {
		color: '#000',
		loadSpeed: 200,
		opacity: 0.4
	}
    });
    
   	jQuery("a.add_comment").click(function(){
		hotelId = jQuery(this).attr("href").replace("#","");
		jQuery("input#CommentIdHotel").val(hotelId);
		jQuery("#captcha_image").attr('src', '/captcha_image?' + Math.random());
	});
    
    jQuery('#submit_comment').click(function(e){
        
        var comment_serialization = jQuery('#PageCommentForm').serialize();
           
        jQuery.ajax({
            
            type: "POST",
            url: "/comment",
            data: comment_serialization,
            beforeSend: function(){
        
                jQuery('#comments_loader').show();
                
            },
            success: function(data){
				var comment = jQuery.parseJSON(data);
				if(comment.error) {
					jQuery("div.error").html(comment.error);	
				} else {
					if(comment.forum == 1) {
						jQuery("li#hotel_" + comment.Comment.id_hotel + " div.last_comment").html(comment.Comment.html).show();
						jQuery("li#hotel_" + comment.Comment.id_hotel + " div.last_comment_data").html(comment.Comment.data).show();
						jQuery("li#hotel_" + comment.Comment.id_hotel + " div.no_comments").hide();
						jQuery(".close").trigger('click');
					} else {
						jQuery('#comments_loader').html('');
						jQuery('#comments_loader').html('<p>Comment saved</p>');
						jQuery('#comments_loader').show();
						jQuery(".close").trigger('click');
						if(jQuery("div.comment_content:first").get(0)){
							jQuery(comment.Comment.html).insertBefore("div.comment_content:first");
							jQuery("div.comment_content:first").slideDown('slow');
						}else{
							jQuery("div#comments_wrapper").append(comment.Comment.html);
							jQuery("div.comment_content:first").css('display', 'block');
							jQuery("div.comments-wrapper").slideDown('slow');
						}
					}
					jQuery("form#PageCommentForm input[type=text]").val('');
					jQuery("form#PageCommentForm textarea").val('');
				}
				jQuery('#comments_loader').hide();
            }
            
        });
        
        e.preventDefault();
    
    });
    
    jQuery('#more_loader').click(function(e){
        
        e.preventDefault();
        
        var url = jQuery(this).attr('href');

        // Actualizo la url del link para que traiga la siguiente página de resultados.
        var url_parts = new String(url);
        url_parts = url.split("/");
        
        var action = url_parts[1];
        var id_hotel = url_parts[2];
        var size = parseInt(url_parts[3]) + 5;
        
        var url_new = '/'+action+'/'+id_hotel+'/'+size;
        
        jQuery(this).attr('href',url_new);
        
        
        // Saco el loader si en la búsqueda siguiente no hay más resultados.
        jQuery.ajax({
            
            type: "POST",
            url: url_new,
            success: function(element) {
                
                if(!element)
                {                    
                    jQuery('#more_loader_container').slideUp(1500);
                }
                
            }
            
        });            

        // Traigo los resultados.
        jQuery.ajax({
            
            type: "POST",
            url: url,
            beforeSend: function(){
        
                jQuery('#more_comments_loader').show();
                
            },
            success: function(element) {

                jQuery('#more_comments_loader').hide();
                
                if(element)
                {   
					jQuery(".comment_content ul.last").removeClass('last');
                    jQuery('#comments_wrapper').append(element);
					jQuery(".comment_content ul:last").addClass('last');
                }
                else
                {
                    jQuery('#more_loader_container').hide();
                }
                
            }
            
        });            
       
    })
      
	jQuery("#forum_search").keypress(function(e){
		if(e.keyCode == 13) {
			searchForum();
		}
	});
});

jQuery.extend({
	parseJSON : function(data) {
		if ( typeof data !== "string" || !data ) {
			return null;
		}

		// Make sure leading/trailing whitespace is removed (IE can't handle it)
		data = jQuery.trim( data );
		
		// Make sure the incoming data is actual JSON
		// Logic borrowed from http://json.org/json2.js
		if ( /^[\],:{}\s]*$/.test(data.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, "@")
			.replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, "]")
			.replace(/(?:^|:|,)(?:\s*\[)+/g, "")) ) {

			// Try to use the native JSON parser first
			return window.JSON && window.JSON.parse ?
				window.JSON.parse( data ) :
				(new Function("return " + data))();

		} else {
			jQuery.error( "Invalid JSON: " + data );
		}

	},

	isEmail : function(email) {
		return email != "" && (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+/.test(email));
	}
});

function searchForum() {
	if(jQuery('#forum_search').val() != '') window.location.href= '/forum/a-z/' + encodeURIComponent(jQuery("#forum_search").val());
}

