function IE6Check() {
    var ua = navigator.userAgent.toLowerCase();
    var version = parseFloat((ua.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/) || [0, '0'])[1]);
    var message = $('<div id="IEMessage"><p style="color:white;text-align:center;">You are running an unsupported version of your browser, please <a href="supported-browsers.html" target="_blank" id="ieSwitch">click here</a> for a list of supported browsers and their latest versions.</p></div>');
    var body = $('body');

    if (ua.match('msie') && version < 7) {
        function doIt() {

            message.appendTo(body);

            message = $('#IEMessage');

            var button = $('#ieSwitch');

            body.css({
                position: 'relative'
            });

            button.css('color', 'yellow');

            message.css({
                display: 'none',
                width: '100%',
                padding: '1em 0 0 0',
                background: '#556678',
                'border-bottom': '1px solid white',
                position: 'absolute',
                'text-indent': '1em',
                top: '0',
                left: '0'
            });

            body.animate({
                top: '50px'
            }, 'fast', 'swing');

            message.animate({
                top: '-50px'
            }, 'fast', 'swing').fadeIn('fast');


        }
        setTimeout(doIt, 1000);
    }
}

function FixWebKit() {
    Sys.Browser.WebKit = {};
    if (navigator.userAgent.indexOf('WebKit/') > -1) {
        Sys.Browser.agent = Sys.Browser.WebKit;
        Sys.Browser.version = parseFloat(navigator.userAgent.match(/WebKit\/(\d+(\.\d+)?)/)[1]);
        Sys.Browser.name = 'WebKit';
    }
}

$(document).ready(FixWebKit);
$(document).ready(IE6Check);

function initSearchPanel()
{
    var expandButton = $('#expandButton');
    var searchPanel = $('#advancedSearch');

    if (expandButton.length !== 0)
    {
        if (expandButton.hasClass('expanded'))
        {
            searchPanel.show();
        }
        else
        {
            searchPanel.hide();
        }

        if (searchPanel.is(':visible'))
        {
            expandButton.addClass('expanded');
        }
        else
        {
            expandButton.removeClass('expanded');
        }

        expandButton.click(function(evt)
        {
            evt.preventDefault();
            var _this = $(this);

            if (searchPanel.is(':visible'))
            {
                searchPanel.fadeOut('fast');
                _this.removeClass('expanded');
            }
            else
            {
                searchPanel.fadeIn('fast');
                _this.addClass('expanded');
            }
        });
    }
}

$.loadFlash = function(agentJsUrl, type) {

    	var agentFileName = 'feature.swf';

	if (type === 'slideShowPro') {
        	var flashvars = {
			paramXMLPath: agentJsUrl + "param.xml"
        	};

        var params = {
            base: agentJsUrl,
            bgcolor: "#0D4475"
        };

        agentFileName = 'slideshowpro.swf';

    } else {
        var flashvars = {};
        var params = { wmode: 'transparent', allowscriptaccess: 'always' };
    }

    var attributes = {}

    var $flashPlaceHolder = $('<div id="flashPlaceHolder"></div>');
    var $feature = $('#feature');

    $flashPlaceHolder.appendTo($feature);

    swfobject.embedSWF(
		agentJsUrl + agentFileName,
		"flashPlaceHolder",
		"100%",
		"100%",
		"9.0.0",
		false,
		flashvars,
		params,
		attributes);

    var timer = 0;



var $obj = $feature.find('object');


$('#feature').css({'visibility':'visible', 'display':'block'});	

var time = setTimeout(function() {

if($obj.length === 0) {
	$('#feature img').css({'visibility':'visible', 'display':'block'});	
	$('#feature p').css({'visibility':'visible', 'display':'block'});	
} else {
	
}

clearTimeout(time);

}, 500);


    var interval = setInterval(function() {
        timer++;
        var $obj = $feature.find('object');
        if ($obj.length !== 0) {
            $feature.find('p').remove();
            $feature.find('img').remove()
            clearInterval(interval);
        } else if (timer > 20) {
           
            clearInterval(interval);
        }
    }, 200);
};

// jQuery Paolo's amazing alert replacement
// Public
jQuery.jAlert = function(message, options) {
    var opts = $.extend({}, $.jAlert.defaults, options);

    var $container = _buildContainer();

    $container.text(message);

    _show($container, opts);
};

jQuery.jAlert.defaults = { duration: 4000 };

// Private
var _buildContainer = function() {
    var $container = $('#jAlert');

    if ($container.length === 0) {
        var $body = $(document.body);
        $container = $('<div id="jAlert"></div>');
        $container.appendTo($body);
    }

    return $container;
};

var _centerInViewport = function($obj) {
    var $viewport = $(window);


    var top = ($viewport.height() / 2) - ($obj.height() / 2);
    var left = ($viewport.width() / 2) - ($obj.width() / 2);

    $obj.css({
        'top': top + 'px',
        'left': left + 'px'
    });

    return $obj;
};

var _explode = function($obj, evt) {
    $obj.fadeOut('fast');
    if (typeof evt !== 'undefined') {
        clearTimeout(evt);
    }
};

var _show = function($obj, opts) {
    _centerInViewport($obj).fadeIn('fast', function() {
        if (opts.duration === 0) {
            var $closeBtn = $('<a class="jAlertCloseBtn">Close</a>');
            $closeBtn.appendTo($obj).fadeIn('slow'); ;
            $closeBtn.click(function() {
                _explode($obj);
            });
        } else {
            setTimeout(function(evt) { _explode($obj, evt); }, opts.duration);
        }
    });
};




jQuery.fn.iFixPng = function() {
    if (!$.support.opacity) {
        return this.each(function() {
            var $this = $(this);

            var cssImage = $this.css('background-image').split('"')[1];

            $this.css('filter', 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' + cssImage + '", sizingMethod="scale")');
            $this.css('background-image', 'none');
        });
    }
};

$(document).ready(function() {
    if (typeof ($(".icon_map, .property_details_map, .icon_pdf, .ico_pdf_generic, .icon_map_street_view, .mortgage_calculator").colorbox) == 'function') {
        //$(".icon_map, .property_details_map").bind('click', test).colorbox({ iframe: true, width: 800, height: 550, inline: true, href: "#google_map" }, function() { $("#google_map").css({ 'visibility': 'visible', 'width': '100%', 'height': '100%', 'margin-top': '0' }); });
        $(".icon_map, .property_details_map").bind('click', test).colorbox({ iframe: true, width: 800, height: 550 });
        $(".icon_pdf, .ico_pdf_generic").colorbox({ width: $(window).width(), height: $(window).height(), iframe: true });
        $(".icon_map_street_view").colorbox({ width: 845, height: 550, iframe: true, scrollbars: false });
        $(".mortgage_calculator").colorbox({ width: 845, height: 550, iframe: true, scrollbars: false });
        $(".advicebureau_mortgage_calculator").colorbox({ width: 550, height: 550, iframe: true, scrollbars: false });
    }
});

var test = function() {
    $().bind('cbox_closed', function() {
        $('#google_map').css('visibility', 'hidden');
        $().unbind('cbox_closed');
    });
};

// JavaScript Document

$(document).ready(function() {

    $("a img").hover(function() {
        $(this).addClass("iehover");
    }, function() {
        $(this).removeClass("iehover");
    });

    $(":input").focus(function() {
        $(this).addClass("iefocus");
    });

    $(":input").blur(function() {
        $(this).removeClass("iefocus");
    });

    $.fn.clean = function() {
        return this.focus(function() {
            if (this.value == this.defaultValue) {
                this.value = "";
            }
        }).blur(function() {
            if (!this.value.length) {
                this.value = this.defaultValue;
            }
        });
    };

    $('.slide').hide();
    $('.trigger').click(function() {
        var $nextDiv = $(this).next();
        var $visibleSiblings = $nextDiv.siblings('p.slide:visible');
        if ($visibleSiblings.length) {
            $visibleSiblings.slideUp('fast', function() {
                $nextDiv.slideToggle('fast');
            });
        } else {
            $nextDiv.slideToggle('fast');
        }
    });

    $('.trigger').toggle(function() {
        $('h4.trigger').addClass('close');
    }, function() {
        $('h4.trigger').removeClass('close'); ;
    });


    if ($("#propertylist ul").length) {
        $("#propertylist").css("display", "");
    }
    else {
        $("#propertylist").css("display", "none");
    }





    $('.pDetailsIcons, .logoFooter').iFixPng();

    window.alert = $.jAlert;

    $('#feature').fadeIn('fast', function() { $('#flashPlaceHolder').fadeIn('fast'); });

    initSearchPanel();
});

function handleContactMessage() {    

    var message = $('.mailMessage');
    var panel = $('.theSpanOutsideTheUpdatePanel');    

    message.insertBefore(panel);

    panel.hide();

    message.show();

    $('<p id="toBeRemoved"><a href="#" id="goBack">Click here</a> to send another message</p>').insertAfter(message);

    var goBack = $('#goBack');

    goBack.click(function (evt) {
        evt.preventDefault();

        panel.find('input').each(function () {
            $(this).val('');
        });

        panel.find('textarea').each(function () {
            $(this).val('');
        });

        $('#toBeRemoved').remove();

        message.hide();
        message.remove();
        panel.show();

        goBack.unbind('click');
    });

}

var RT = RT || {};

RT.Core = {};
RT.Controls = {};

RT.Core.Extend = function (settings, defaults) {
    var newSettings = {};

    for (setting in defaults) {
        newSettings[setting] = defaults[setting];
    }

    for (setting in settings) {
        if (typeof newSettings[setting] !== "undefined") {
            newSettings[setting] = settings[setting];
        }
        else {
            throw new Error(setting + " is not implemented in the module default settings.");
            break;
        }
    }

    return newSettings;
};

RT.Controls.Scroller = (function () {

    var defaults =
	{
	    container: $("#feature"),
	    gallery_container: null,
	    width: 930, // px
	    height: 365, // px
	    speed: 3, // sec
	    interval: 3, // sec
	    easing: "swing",
	    tabs_visible: true,
	    nav_visible: true,
	    tabs: null,
	    target_blank: true,
	    prev_btn: null,
	    next_btn: null,
	    autoplay: true,
	    images: [],
	    links: {}
	};

    var interval = null;

    return function (new_settings) {
        var settings;

        this.clear_interval = function () {
            clearInterval(interval);
        };

        this.get_settings = function () {
            return settings;
        };

        this.set_settings = function (ss) {
            settings = RT.Core.Extend(ss, defaults);
        };

        this.init = function () {
            var _img = settings.container.find("img");

            var _nav = $("<div id=\"rt_scroller_nav\" style=\"display:none;\"><a id=\"rt_scroller_prev\" class=\"rt_scroller_nav\">&lt;</a><a id=\"rt_scroller_next\" class=\"rt_scroller_nav\">&gt;</a><ul id=\"rt_scroller_images_nav\"></ul></div>");

            _nav.appendTo(settings.container);

            var _nav_list = settings.container.find("ul");

            $(_img).wrap("<ul id=\"rt_scroller_images_list\" style=\"position:absolute;width:20000em\"><li>");

            if (settings.links[0]) {
                $(_img).wrap("<a href=\"" + settings.links[0] + "\">");
            }

            _img_list = $("#rt_scroller_images_list");

            for (var i = 0; i <= settings.images.length; i++) {
                if (i == 0) {
                    $("<li><a class=\"rt_scroller_nav current\">" + (i + 1) + "</a></li>").appendTo(_nav_list);
                }
                else {
                    $("<li><a class=\"rt_scroller_nav\">" + (i + 1) + "</a></li>").appendTo(_nav_list);

                    if (settings.links[i]) {
                        $("<li><a href=\"" + settings.links[i] + "\"><img src=" + settings.images[i - 1] + " /></a></li>").appendTo(_img_list);
                    }
                    else {
                        $("<li><img src=" + settings.images[i - 1] + " /></li>").appendTo(_img_list);
                    }
                }
            }

            if (settings.target_blank) {
                $("#rt_scroller_images_list a").attr("target", "_blank");
            }

            settings.tabs = $('#rt_scroller_images_nav .rt_scroller_nav');
            settings.prev_btn = $('#rt_scroller_prev');
            settings.next_btn = $('#rt_scroller_next');
            settings.gallery_container = $("#rt_scroller_images_list");

            if (!settings.tabs_visible) {
                $("#rt_scroller_images_nav").css("display", "none");
            }

            if (!settings.nav_visible) {
                $("#rt_scroller_prev, #rt_scroller_next").css("display", "none");
            }

            setTimeout(function () {
                $("#rt_scroller_nav").fadeIn("fast", settings.easing);
            }, settings.speed * 100);
        };

        this.bind = function () {
            var _this = this;

            settings.tabs.click(function (evt) {
                evt.preventDefault();
                _this.clear_interval();
                _this.go_to(settings.tabs.index($(this)));
            });

            settings.next_btn.click(function (evt) {
                evt.preventDefault();
                _this.clear_interval();
                var index = _this.get_current() + 1;
                _this.go_to(index);
            });

            settings.prev_btn.click(function (evt) {
                evt.preventDefault();
                _this.clear_interval();
                var index = _this.get_current() - 1;
                _this.go_to(index);
            });

            if (settings.autoplay) {
                interval = setInterval(function () {
                    var index = _this.get_current() + 1;
                    _this.go_to(index);
                }, settings.interval * 1000);
            }
        };

        this.set_styles = function () {
            $("#rt_scroller_images_list li").css({
                width: settings.width,
                height: settings.height,
                float: "left"
            });

            $("#rt_scroller_images_list img").css({
                width: settings.width,
                height: settings.height
            });

            settings.container.css({
                width: settings.width,
                height: settings.height,
                background: "transparent",
                position: "relative",
                overflow: "hidden"
            });

            settings.container.find("img").css("display", "block !important");
        };

        this.set_settings(new_settings);
        this.init();
        this.bind();
        this.set_styles();
    }
})();

RT.Controls.Scroller.prototype =
{
    go_to: function (index) {
        var settings = this.get_settings();

        var tabs_length = settings.tabs.length;

        if (index < 0) {
            index = tabs_length - 1;
        }
        else if (index === tabs_length) {
            index = 0;
        }

        var x_val = settings.width * index;

        settings.gallery_container.animate({
            left: -(x_val)
        }, settings.speed * 100, settings.easing);

        this.set_nav(index);
    },
    set_nav: function (index) {
        var settings = this.get_settings();

        settings.tabs.each(function () {
            $(this).removeClass('current');
        });

        settings.tabs.eq(index).addClass('current');
    },
    get_current: function () {
        var settings = this.get_settings();

        var index = 0;

        settings.tabs.each(function (i) {
            if ($(this).hasClass('current')) {
                index = i;
            }
        })

        return index;
    }
};
