            function get_viewport_size()
            {
                var viewportwidth;
                var viewportheight;
                if (typeof window.innerWidth != 'undefined')
                {
                    viewportwidth = window.innerWidth,
                    viewportheight = window.innerHeight
                }
                 
                // IE6 in standards compliant mode (i.e. with a valid doctype as the first line in the document)
                else if (typeof document.documentElement != 'undefined' && typeof document.documentElement.clientWidth != 'undefined' && document.documentElement.clientWidth != 0)
                {
                    viewportwidth = document.documentElement.clientWidth,
                    viewportheight = document.documentElement.clientHeight
                }
                // older versions of IE
                else
                {
                    viewportwidth = document.getElementsByTagName('body')[0].clientWidth,
                    viewportheight = document.getElementsByTagName('body')[0].clientHeight
                }
                
                return {height:viewportheight, width:viewportwidth};
            }
            function get_scroll_position()
            {
                var scrOfX = 0, scrOfY = 0;
                if( typeof( window.pageYOffset ) == 'number' )
                {
                    //Netscape compliant
                    scrOfY = window.pageYOffset;
                    scrOfX = window.pageXOffset;
                }
                else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) )
                {
                    //DOM compliant
                    scrOfY = document.body.scrollTop;
                    scrOfX = document.body.scrollLeft;
                }
                else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) )
                {
                    //IE6 standards compliant mode
                    scrOfY = document.documentElement.scrollTop;
                    scrOfX = document.documentElement.scrollLeft;
                }
                return {x:scrOfX, y:scrOfY};
            }

            var prev_scroll_y = -1;
            var scroller_timeout;
            var stop_timeout = false;
            function check_scroller()
            {
                var scroller = $("overlay_container");
                var form = $("video_form");
                var viewport = get_viewport_size();
                var scrollpos = get_scroll_position();

                if(prev_scroll_y != scrollpos.y)
                {
                    var scroller_top = scroller.getPosition().y;
                    var scroller_height = scroller.getCoordinates().height;
                    
                    var form_top = form.getPosition().y;
                    var form_height = form.getCoordinates().height;
                    
                    var prev_top = scroller_top;
                    var new_top = viewport.height / 2 + scrollpos.y - scroller_height / 2;
                    
                    var form_prev_top = form_top;
                    var form_new_top = viewport.height / 2 + scrollpos.y - form_height / 2;
                    
                    var myFx = new Fx.Tween(scroller, {duration:150, transition:Fx.Transitions.Sine.easeOut});
                    myFx.start("top", prev_top, new_top);
                    
                    var myFx = new Fx.Tween(form, {duration:150, transition:Fx.Transitions.Sine.easeOut});
                    myFx.start("top", form_prev_top, form_new_top);
                    //var fx = new Fx.Style(scroller, 'top', {duration:250});
                    //fx.start(prev_top, new_top);
                    
                    prev_scroll_y = scrollpos.y
                }
                if(stop_timeout) return;
                scroller_timeout = setTimeout("check_scroller()", 150);
            }  
            
            
            function init_form()
            {
                $("video_form").addClass("hidden");
                $("join_submit_button").addEvent("click", function(evt){ submit_popup_form(evt); });
            }
            addOnLoad(init_form);
            
            function loadform()
            {
                show_overlay();
                pageTracker._trackPageview('/tracks/popup_shown');
            }
            
            function closeform()
            {
                stop_timeout = true;
                clearTimeout(scroller_timeout);
                $("overlay_container").addClass("hidden");
                $("video_form").addClass("hidden");
                return false;
            }
            
            function show_overlay()
            {
                stop_timeout = false;
                offset = 1000;
                var body = $(document.body);               
                var overlay = $("overlay_container");
                if(!$chk(overlay))
                {
                    overlay = new Element("div", {id:"overlay_container", classname:"overlay"});
                }
                overlay.removeClass("hidden");
                
                var viewport = get_viewport_size();
                var scroll = get_scroll_position();
                overlay.setStyles({ width:viewport.width, height:viewport.height+offset, top:scroll.y-offset/2, left:scroll.x });
                
                var form = $("video_form");
                form.setStyles({position:"absolute", top:(viewport.height/2-100), left:scroll.x+viewport.width/2-175});
                form.removeClass("hidden");
                
                body.grab(form);
                body.grab(overlay);
                //overlay.grab(form);
                check_scroller();
            }
            
            function validate_popup_form()
            {
                var email = $("email_textbox");
                if(email.value == null || email.value.length <= 0)
                {
                    alert("Please enter your email");
                    email.focus();
                    return false;
                }
                return true;
            }
            
            function submit_popup_form(evt)
            {
                if(validate_popup_form())
                {
                    /*var form = $("join_the_cause_form");
                    form.set('send', {url: 'popup_form.php', method: 'post'});
                    form.send({
                        onRequest: function(){
                            $(sender).disable = true;
                            $(sender).innerHTML = "Sending...";
                        },
                        onSuccess: function(){
                            $(sender).disable = true;
                            $(sender).innerHTML = "Sent!";
                            setTimeout("closeform()", 500);
                        },
                        onFailure: function(){
                            closeform();
                        }
                    });*/           return true;
                }
                else
                {
                    new Event(evt).stop();
                }
            }
            
            
            
            
            
            