var submitted = false;
(function($) {
    $.extend({
        getGo: function(url, params) {
            document.location = url + '?' + $.param(params);
        },
        postGo: function(url, params) {
            var $form = $("<form>")
                .attr("method", "post")
                .attr("action", url);
            $.each(params, function(name, value) {
                $("<input type='hidden'>")
                    .attr("name", name)
                    .attr("value", value)
                    .appendTo($form);
            });
            $form.appendTo("body");
            $form.submit();
        }
    });
})(jQuery);

function validateEmail(value, name) 
{ 
    var re = /^(([^<>()[\]\\.,;:\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(!value.match(re)) {
        $('input[name='+name+']').css('border', '2px solid red');
        return false;
    } else {
        $('input[name='+name+']').css('border', '1px solid black');
        return true;
    }
}

function add_favorite(location,save_title){
    window.external.AddFavorite(location, save_title);
}

function extended_search(){
    var extended = $('#extended_search');
    
    if(extended.is(':visible')) { 
        extended.slideUp(350);
    } else {
        extended.slideDown(350);
    }
}

function test_empty(value, name)
{
    if(value.length == 0) {
        $('input[name='+name+']').css('border', '2px solid red');
        return false;
    } else {
        $('input[name='+name+']').css('border', '1px solid black');
        return true;
    }   
}

function submit_booking()
{
    if(submitted) {
        return false;
    }
    var name = $('input[name=name]').val();
    var email = $('input[name=email]').val();
    var address = $('input[name=address]').val();
    var country = $('input[name=country]').val();
    var phone = $('input[name=phone]').val();
    var city = $('input[name=city]').val();
    var comment = $('textarea[name=comment]').val();
    
    var success = true;
    success = test_empty(name, 'name') && success;
    success = test_empty(email, 'email') && success;
    success = test_empty(address, 'address') && success;
    success = test_empty(country, 'country') && success;
    success = test_empty(phone, 'phone') && success;
    success = test_empty(city, 'city') && success;
    success = validateEmail(email, 'email') && success;
    
    if(success) {
        submitted = true;
        $('#booking_form').submit();
    }
}

function catalog_lookup() {
    var i = parseInt($("input[name='catalog_num']").val());
    if(isNaN(i)) {
        i = 0;
    }
    if($.browser.msie && $.browser.version == '6.0') {
        window.location.href = '/lookup/'+i+'/';
        return false;
    } else {
        window.location.href = '/lookup/'+i+'/';
    }
}

function lookup_price(url) {
    var week = $('select[name=cweek] :selected').val();
    var weeks = $('input[name=cweeks]:checked').val();

    $('#house_booker').fadeTo(500, 0.10, function() {
        $.get(url+'?booking='+week.split('-')[1]+'|'+week.split('-')[0]+'|'+weeks, {}, function(data) {
            $('#house_booker').html(data);
            $('#house_booker').fadeTo(500, 1.0, function() {
                $('#house_booker').fixPNG();
                $('.input_catcher').keypress(function(e) {
        		    if((window.event && e.keyCode==13) || e.which == 13) {
        		        $('#price_calculator').trigger('click');
        	        }
    		    });
            });
        });
    });
}

function book_house(url) {
    var week = $('select[name=cweek] :selected').val();
    var weeks = $('input[name=cweeks]:checked').val();
    $.postGo(url, {week:week.split('-')[0], year:week.split('-')[1], weeks:weeks});
}

function bbf_search(url) {
    m_url = '/'+url+'/';
    m_url += $('select[name=week] :selected').val();
    m_url += ','+$('select[name=weeks] :selected').val();
    m_url += ','+$('select[name=beds] :selected').val();
    m_url += ','+$('select[name=distance_to_town] :selected').val();
    m_url += ','+$('select[name=distance_to_beach] :selected').val();
    m_url += ','+$('select[name=distance_to_shopping] :selected').val();
    m_url += ','+($('input[name=sauna]').is(':checked')?'1':'0');
    m_url += ','+($('input[name=microwave]').is(':checked')?'1':'0');
    m_url += ','+($('input[name=playground]').is(':checked')?'1':'0');
    m_url += ','+($('input[name=solarium]').is(':checked')?'1':'0');
    m_url += ','+($('input[name=pets]').is(':checked')?'1':'0');
    m_url += ','+($('input[name=smoking]').is(':checked')?'1':'0');
    m_url += ','+($('input[name=furniture]').is(':checked')?'1':'0');
    m_url += ','+($('input[name=dishwasher]').is(':checked')?'1':'0');
    m_url += ','+($('input[name=washer]').is(':checked')?'1':'0');
    m_url += ','+($('input[name=indoor_pool]').is(':checked')?'1':'0');
    m_url += '/0/';
    window.location.href = m_url;
}

$(function(){
    if($.browser.msie && $.browser.version == '6.0') {
    } else {
        var border = RUZEE.ShadedBorder.create({ corner:5, shadow:14,  border:1 });
        border.render($("#content, #style"));
    }
    
	//$("#content").corner("bottom");
	$("#num_input").DefaultValue($.catalog_lookup_string);
	
	/*No email bot spams*/
	$('a.email_check').nospam({ replaceText: true, filterLevel: 'low' });
	
	$("#extended_search").css('display','none');
	
	$(function() {
    	$('a[rel=lightbox]').lightBox({fixedNavigation:true});
    });
    
    $.fn.extend({
    	fixPNG: function(sizingMethod, forceBG) {
    		if (!($.browser.msie)) return this;
    		var emptyimg = "/1.4/graphics/empty.gif"; //Path to empty 1x1px GIF goes here
    		sizingMethod = sizingMethod || "scale"; //sizingMethod, defaults to scale (matches image dimensions)
    		this.each(function() {
    			var isImg = (forceBG) ? false : jQuery.nodeName(this, "img"),
    				imgname = (isImg) ? this.src : this.currentStyle.backgroundImage,
    				src = (isImg) ? imgname : imgname.substring(5,imgname.length-2);
    			this.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "', sizingMethod='" + sizingMethod + "')";
    			if (isImg) this.src = emptyimg;
    			else this.style.backgroundImage = "url(" + emptyimg + ")";
    		});
    		return this;
    	}
    });
    $(".tooltip").fixPNG();
    
    $('input[name=catalog_num]').keypress(function(e) {
	    if((window.event && e.keyCode==13) || e.which == 13) {
	        catalog_lookup();
        }
    });
    $('.searcher_input').keypress(function(e) {
	    if((window.event && e.keyCode==13) || e.which == 13) {
	        $('#the_searcher').trigger('click');
        }
    });
});

function show_full_map() {
    $.prompt('<div id="full_showmap"></div>',{ 
          prefix:'wideJqi'
    });
    $.get('/full_map/', {}, function(data) {
        $('#full_showmap').html(data);
    });
}
