﻿////////////////////////////////////////////////////////////////////////////////////////////////////   
// message.m[pid] = setInterval("message.cue('" + m + "','" + pid + "')", 500);
// message.only_if_inactive(m);
////////////////////////////////////////////////////////////////////////////////////////////////////
message = {
    m: {},
    ////////////////////////////////////////////////////////////////////////////////////////////////////
    show: function(m, m_type, ajax_sourced) {
        $('#x').hide();
        page.chat('OverlayFlag', '1');
        if (m_type == undefined) { m_type = ''; }
        if (m) {
            if (typeof m == "string") {
                var lm = m;
                lm = santatize(lm);
                lm = lm.replace(/ /g, '-');
                if (typeof(pageTracker) != 'undefined') { setTimeout("pageTracker._trackEvent('Consord', 'Message', '" + escape(lm.toLowerCase()) + "')", 800); }
            }
        }
        var m_type_base = m_type;
        if (m_type.match('^P')) { m_type_base = 'P'; }
        else if (m_type.match('^R')) { m_type_base = 'R'; }

        //if ajax_sourced is true, it takes the value of m and tries to load that up as data for the message
        if (ajax_sourced) {
            $.ajax({
                type: "GET",
                url: m,
                dataType: "html",
                cache: false,
                success: function(r) { message.show(r, m_type); },
                error: function() { message.show('Invalid Link', 'info'); }
            });
        }
        else {
            message.active = true;
            if (!($("#message").length > 0)) { $_b.append('<div id="message" class="' + m_type_base + '"></div>'); }
            if (m_type == 'info') { $('#message').html('<div id="mwr"><h1>i</h1><p>' + m + '</p><br class="clear"/></div><a href="#" onclick="message.hide(); return false;" class="m_close">Close</a>'); }
            else if (m_type == 'mktg') { $('#message').html('<div id="mwr">' + m + '<br class="clear"/></div><a href="#" onclick="message.hide(); return false;" class="m_close">Close</a>'); }

            else if (m_type.match('^P')) {
                h = '<input type="hidden" id="m_data">\
            <div class="message_right"><h2>Some calling services only work with other calling services.</h2>\
                 <div class="m_left"><h3>You\'ve selected:</h3><ul><li>' + p[m.type][m.rules.id].name + '</li></ul></div>\
                 <div class="m_right"><h3>Which will remove:</h3><ul>';

                for (rem = 0, REM = m.matches.length; rem < REM; rem++) {
                    h += '<li>' + p[m.type][m.matches[rem]].name + '</li>';
                }

                h += '</ul></div>\
                 <br clear="both"/>\
                 <div class="m_buttons">\
                 <a href="#" onclick="u.add(\'' + m.ws + '\',\'' + m.type + '\',\'\',\'' + m.rules.id + '\', \'\');';

                for (rem = 0, REM = m.matches.length; rem < REM; rem++) {
                    h += 'u.remove(\'' + m.ws + '\',\'' + m.type + '\',\'\',\'' + m.matches[rem] + '\');';
                    h += 'if ($(\'#' + m.type + '_' + m.matches[rem] + '\').length > 0) { $(\'#' + m.type + '_' + m.matches[rem] + '\').attr(\'checked\',false);  }';
                }

                h += ' message.hide($(\'#m_data\').val()); return false;"><img src="/shop/images/continue.png" class="m_continue"></a>\
            <a href="#" onclick="u.remove(\'' + m.ws + '\',\'' + m.type + '\',\'\',\'' + m.rules.id + '\'); if ($(\'#' + m.type + '_' + m.rules.id + '\').length > 0) { $(\'#' + m.type + '_' + m.rules.id + '\').attr(\'checked\',false);  } message.hide($(\'#m_data\').val()); return false;" class="m_cancel">Cancel</a>\
                 <br clear="both"/><p class="m_fine">Canceling will remove ' + p[m.type][m.rules.id].name + '.</p></div></div>';

                $('#message').html('<div id="mwr">' + h + '<br class="clear"/></div>');
                $('#m_data').val($.toJSON(m));
            }

            else if (m_type.match('^R')) {
                window.rvars = [];
                h = '<input type="hidden" id="m_data">\
            <div class="message_right"><h2>Some calling services only work with other calling services.</h2>\
                 <div class="m_left"><h3>You\'ve selected:</h3><ul><li>' + p[m.type][m.rules.id].name + '</li></ul></div>\
                 <div class="m_right"><h3>';

                rmessage = 'Which requires';
                if ((m.rules.max == 1) && (m.avails.length > 1)) { rmessage = "Which requires one of the following:"; }
                else if ((m.rules.min > 1) && (m.avails.length > 1)) { rmessage = "Which requires at least ' + m.rules.min + ' of the following:"; }

                if ((m.rules.min != m.rules.max) && (m.avails.length > 1)) { rmessage += '<br/><small>and a maximum of ' + m.rules.max + '</small>'; }

                h += rmessage + '</h3><ul>';
                var addtorvars = '';
                for (rem = 0, REM = m.avails.length; rem < REM; rem++) {
                    h += '<li>';
                    // if can only have 1
                    if (m.rules.max == 1) {
                        h += '<input type="';
                        if (m.avails.length == 1) { h += 'hidden'; } else { h += 'radio'; }
                        h += '" name="R" id="R_' + m.avails[rem] + '" value="' + m.avails[rem] + '"';
                        if (rem == 0) { h += ' checked'; addtorvars = m.avails[rem]; }
                        h += ' onclick="if(this.checked) { rvars = [\'' + m.avails[rem] + '\']; }"> ';
                    }
                    // if can have more than 1
                    // need to put max checked here though
                    else {
                        h += '<input type="';
                        if (m.avails.length == 1) { h += 'hidden'; } else { h += 'checkbox'; }
                        h += '" name="R' + m.avails[rem] + '" id="R_' + m.avails[rem] + '" value="' + m.avails[rem] + '"';
                        if ($.grep(m.matches, function(v) { return v == m.avails[rem]; })) { h += ' checked'; addtorvars = m.avails[rem]; }
                        h += ' onclick="if(this.checked) {rvars.push(\'' + m.avails[rem] + '\');} else { for(v=0; v<rvars.length; v++){if (rvars[v] == \'' + m.avails[rem] + '\') { rvars.splice(' + rem + ',1); break;}  } }"> ';
                    }

                    var price = splitPrice(p[m.type][m.avails[rem]].price);
                    h += p[m.type][m.avails[rem]].name + ' (' + price[0] + price[1] + ' ' + price[2] + ')</li>';
                }

                h += '</ul></div>\
                  <br clear="both"/>\
                 <div class="m_buttons">\
                 <a href="#" onclick="\
                 for (ad = 0, AD = rvars.length; ad < AD; ad++) { u.add(\'' + m.ws + '\',\'' + m.type + '\',\'\',rvars[ad], \'\', \'\');\
                 if ($(\'#' + m.type + '_\' + rvars[ad]).length > 0) { $(\'#' + m.type + '_\' + rvars[ad]).attr(\'checked\',true);  }}';


                h += ' message.hide($(\'#m_data\').val()); return false;"><img src="/shop/images/continue.png" class="m_continue"></a>\
                 <a href="#" onclick="u.remove(\'' + m.ws + '\',\'' + m.type + '\',\'\',\'' + m.rules.id + '\'); if ($(\'#' + m.type + '_' + m.rules.id + '\').length > 0) { $(\'#' + m.type + '_' + m.rules.id + '\').attr(\'checked\',false);  } message.hide($(\'#m_data\').val()); return false;" class="m_cancel">Cancel</a>\
                 <br clear="both"/><p class="m_fine">Canceling will remove ' + p[m.type][m.rules.id].name + '.</p></div></div>';
                $('#message').html('<div id="mwr">' + h + '<br class="clear"/></div>');
                $('#m_data').val($.toJSON(m));
                if (rvars) { rvars.push(addtorvars); }
            }

            else { $('#message').html('<div id="mwr"><h1>!</h1><p>' + m + '</p><br class="clear"/></div><a href="#" onclick="message.hide(); return false;" class="m_close">Close</a>'); }

            var blop = {};

            if ($('#box').length > 0) {
                blop = {
                    left: parseInt(($.fn.jquery == '1.6' ? silo.$_ex_box.css('left') : silo.$_box.css('left'))) + 23,
                    top: parseInt(($.fn.jquery == '1.6' ? silo.$_ex_box.css('top') : silo.$_box.css('top'))) + 100,
                    position: 'absolute'
                }
            }
            else {
                blop = {
                    left: '0px',
                    top: '0px',
                    width: '100%',
                    position: ($.browser.msie && $.browser.version < 7) ? 'absolute' : 'fixed'
                }
            }
            if (opac_low.opacity) { blop.opacity = opac_low.opacity; }
            if ($('#inner').length > 0) { $('#inner').css(opac_med); }
            $('#message').css(blop).animate(opac_high, 200, function() { $('#message').css('opacity', ''); });
        }
    },
    validate: function(m) {
        if (m) {
            m = $.parseJSON(m);
            for (feat = 0, FEAT = u[m.ws][m.type].length; feat < FEAT; feat++) {
                p.validate_rp(m.ws, u[m.ws][m.type][feat]);
            }
        }
    },
    // if you wanna cue up messages to show in sequence
    cue: function(m, pid, m_type) {
        if (message.active) {
            // keep waiting 
        }
        else { clearInterval(message.m[pid]); delete message.m[pid]; message.show(m); }
    },
    only_if_inactive: function(m, m_type) {
        if (message.active == false) { message.show(m, m_type); }
    },
    active: false,
    hide: function(m) {
        $('#x').show();
        if ($('#inner').length > 0) { $('#inner').animate(opac_high, 500, function() { $('#inner').css('opacity', ''); }); }
        if ($('#message').length > 0) {
            page.chat('OverlayFlag', '0');
            $('#message').animate(opac_low, 100, function() {
                message.active = false; if (m) {
                    setTimeout("message.validate(\'" + m + "\')", 500);
                } $('#message').remove();
            });
        }
    },
    adjust: function() {
        var i = $('#message');
        if (i.length > 0) {
            i.animate({ left: parseInt(($.fn.jquery == '1.6' ? silo.$_ex_box.css('left') : silo.$_box.css('left'))) + 23,
            top: parseInt(($.fn.jquery == '1.6' ? silo.$_ex_box.css('top') : silo.$_box.css('top'))) + 100
            });
        }
    }
}
