views:

22

answers:

2

As you can see, I'm using cookies to pop up modal confirmation boxes and alerts. While these have worked for a long time until very recently, I must have added something to this chunk of code and it all went haywire. The "close" function on the modal is supposed to clear the cookies so the pop up won't pop up anymore, now it is not clearing the cookies unless there is a CKEditor on the page, which puzzles me since the call for editor is AFTER the modals...

I forgot in what order I added each element - stupid, I know - and am having a hard time what could've caused the problem. I also recently wrote a bunch of mod_rewrite rules, though I'm not sure if that would change anything.

PLEASE HELP! I need this project done this week...

Here's my entire jQuery chunk:

<script type="text/javascript">

$(document).ready(function(){
    $("body").prepend('<div id="topbar" class=""><\/div><div id="subnavbar" class="subnavbar-<?php echo $nav_id; ?>"><\/div>');
    $("#group-left a").prepend('- ');
    $("input").hint();

    $("#mypassword").focus(function(){
        this.type='password';
        $(this).val('');
        });
    $("#mypassword").blur(function(){
        if($(this).val() == "Password") {
            this.type='text';
        }
        });
    $("label.required").append('<span style="color: #F00; float: none;">*<\/span>');
    $("#coupon_start").datepicker({dateFormat: 'yy-mm-dd'});
    $("#coupon_end").datepicker({dateFormat: 'yy-mm-dd'});

    $("div.blog-entry img").each(function() {
        var blogImgFloat = $(this).css("float");
        if(blogImgFloat == "left") {
            $(this).css("margin-right", "15px");
        } else if(blogImgFloat == "right") {
            $(this).css("margin-left", "15px");         
        }   
    });

    $.fn.tipper = function() {
        if($(this).attr('alt')) {
            if($(this).hasClass('height')) {
                $(this).qtip({
                       content: $(this).attr('alt'),
                       position: {
                           corner: {
                               target: 'topMiddle',
                               tooltip: 'bottomMiddle'
                           }
                       },
                       style: { 
                          name: 'cream', // Inherit from preset style
                          padding: 10,
                          tip: 'bottomMiddle',
                          border: {
                             width: 5,
                             radius: 5
                          }
                       },
                       show: 'focus',
                       hide: 'blur'
                    }); 
            }

            else {                              
                $(this).qtip({
                       content: $(this).attr('alt'),
                       position: {
                           corner: {
                               target: 'rightMiddle',
                               tooltip: 'leftMiddle'
                           }
                       },
                       style: { 
                          name: 'cream', // Inherit from preset style
                          padding: 10,
                          tip: 'leftMiddle',
                          border: {
                             width: 5,
                             radius: 5
                          }
                       },
                       show: 'focus',
                       hide: 'blur'
                    }); 
            }
        } else { return false; }
    };

    $("#content input").each( function(){ $(this).tipper(); } );
    $("#content textarea").each( function(){ $(this).tipper(); } );

    // calendar
    $("#ajax-datepicker").datepicker({
        onSelect: function(date,instance){ 
            $(".eventdateheader").html(date);
            $.ajax
            ({
                type: "GET",
                url: "/grab_events.php",
                data: "date=" + $.datepicker.formatDate("yy-mm-dd", $(this).datepicker('getDate')),
                success: function(result)
                {
                   $("#eventslist").html(result);
                }
           });
        },
        minDate: '-2W',
        dateFormat: 'M d, yy'
    });

    $("#event-datepicker").datepicker({
        onSelect: function(date,instance){ 
            window.location = "/events.php?date=" + $.datepicker.formatDate("yy-mm-dd", $(this).datepicker('getDate'));
        },
        minDate: '-2W',
        gotoCurrent: true,
        dateFormat: 'M d, yy'
    });

    $("#event-datepicker").datepicker('setDate', '<?php echo $selected_date; ?>');

    $(".date").datepicker({
        dateFormat: 'yy-mm-dd',
        showOn: 'button',
        buttonImage: '/images/calendar.gif',
        buttonImageOnly: true
    });

    // regular dialog box
    $("#dialog").dialog({autoOpen: false, modal: true});
    $("#dialog_link").click(function(){
        $("#dialog").dialog("open");
        return false; });

    // user context menu
    $("a.user").contextMenu(
        { menu: 'HKPopUpMenu' }, 
        function(action, el, pos) {
            var username = $(el).attr('id');
            if(action == "viewprofile") { window.location = "/profile.php?req="+username; }
            else if(action == "viewblog") { window.location = "/profile_blog.php?req="+username; }
            else if(action == "sendmsg") {
                $("#sendmsg_to").val(username);
                $("#sendmsg_div").dialog("open"); 
                return false; 
            }
            else if(action == "sendwink") {
                $.cookie("modal_confirm", "<?php echo $alert_13_send_wink_frag; ?>"+username+"?");
                $.cookie("confirmGo", "/sendwink_process.php?req="+username+"&nexturl=<?php echo curPageURL(); ?>");
                window.location.reload();                   
            }
            else {
                alert(
                      'Action: ' + action + '\n\n' +
                      'Element text: ' + thisid + '\n\n' +
                      'X: ' + pos.x + ' Y: ' + pos.y + ' (relative to element)\n\n' +
                      'X: ' + pos.docX + ' Y: ' + pos.docY+ ' (relative to document)'
                );
            }
        }
    ); 

    // send message form
    $("#sendmsg_div").dialog({
        autoOpen: false,
        height: 300,
        width: 500,
        modal: true,
        buttons: {
            '<?php echo $popmenu_sendmsg; ?>': function() {

                //validate
                var m_to = $('input[name=sendmsg_to]');
                var m_subject = $('input[name=sendmsg_subject]');
                var m_body = $('textarea[name=sendmsg_body]');

                if (m_to.val()=='') {
                    m_to.addClass('highlight');
                    return false;
                } else { m_to.removeClass('highlight'); }

                if (m_subject.val()=='') {
                    m_subject.addClass('highlight');
                    return false;
                } else { m_subject.removeClass('highlight'); }

                if (m_body.val()=='') {
                    m_body.addClass('highlight');
                    return false;
                } else { m_body.removeClass('highlight'); }

                $("#sendmsg_form").submit();                
                $(this).dialog('close');
            },
            Cancel: function() {
                $(this).dialog('close');
            }
        },
        close: function() {
        }
    }); 


    $("a.leftmenu_compose_message").click(function(){
        $("#sendmsg_div").dialog("open");
        return false; });
    $("a.mail").click(function(){
        $("#sendmsg_to").val($(this).attr('id'));
        $("#sendmsg_div").dialog("open");
        return false; });


    // save search form
    $("#savequery_div").dialog({
        autoOpen: false,
        height: 220,
        width: 300,
        modal: true,
        buttons: {
            '<?php echo $popmenu_savequery; ?>': function() {                           
                $("#savequery_form").submit();              
                $(this).dialog('close');
            },
            Cancel: function() {
                $(this).dialog('close');
            }
        },
        close: function() {
        }
    });


    $("a.savequery").click(function(){
        $("#savequery_div").dialog("open");
        return false; });


    // confirm box
    if($.cookie("modal_confirm")!==null) {
        $("body").prepend('<div id="confirm" title="System Message">'+$.cookie("modal_confirm")+'<\/div>');
        var g = $("#confirm");
        g.html( g.html().replace(/\+/g," ") );
        $("#confirm").dialog({
            modal: true,
            stack: true,
            buttons: {
                'OK': function() {
                    window.location = "\/" + $.cookie("confirmGo"); 
                    $(this).dialog('close');
                },
                Cancel: function() {
                    $(this).dialog('close');
                }
            },
            close: function(){
                $.cookie("modal_confirm",null);
                $.cookie("confirmGo",null);
                $(this).remove;
            }
        });  
    }

    // alert box
    if($.cookie("alert")!==null) {
        $("body").prepend('<div id="alert" title="System Message">'+$.cookie("alert")+'<\/div>');
        var f = $("#alert");
        f.html( f.html().replace(/\+/g," ") );
        $("#alert").dialog({
            modal: true,
            stack: true,
            buttons: {
                'OK': function() {
                    $(this).dialog('close');
                }
            },
            close: function(){
                $.cookie("alert",null); $(this).remove;
            }
        });
    }

    <?php if($include_editor) { ?>
    // editors
    $("textarea.editor").ckeditor( {
        skin: 'kama', 
        toolbar: 'HKEditor',
        filebrowserImageUploadUrl: '/php/upload.php',
        language: <?php if($_SESSION["user_lng"] == "kor") { echo "'ko'"; } else { echo "'en'"; } ?>
    });
    <?php } ?>

}); // END DOC.READY    

A: 

no one??

push...

ysquared86
please don't bump your questions on S/O. A bump is not an answer
SooDesuNe
A: 

I figured it out. It wasn't working because javascript can't deal with server-relative URLs. I fixed it by specifying the paths for cookie:

$.cookie("modal_confirm", null, { path: '/' });

etc.

ysquared86