YAHOO.util.Event.onDOMReady(mkt_init);

// adds a tag word to the search text box.
function mkt_add_search_on_tag_click(tag_id) {
    if(arguments.length == 2) {
        var id = document.getElementById("tag-anim-" + arguments[1]);
        if(id) { tag_highlight_add(id); }
    }

    modify_form_on_tag_click("form_mkt_search_top", tag_id);
    modify_form_on_tag_click("form_mkt_search_btm", tag_id);
}

function modify_form_on_tag_click(form_name, tag_id) {
    var f = document.getElementById(form_name);
    var id = document.getElementById(tag_id);

    if(!f || !id) { return; }

    var tag = std_trim(id.innerHTML);
    var v = f.tag.value.split(/\s+/);
    var bag = new Array();

    // remove existing tag, and add tag to the end of string.
    for(var i = 0; i < v.length; i++) {
        if(v[i].toLowerCase() != tag.toLowerCase()) {
            bag.push(v[i]);
        }
    }

    v = bag.join(' ');
    f.tag.value = v + ' ' + tag;
    f.tag.value = f.tag.value.replace(/^\s+/g, '');
    f.tag.value = f.tag.value; // amazingly, this little hack sets the cursor to end of line!
    f.tag.title = f.tag.value;
}

function tag_set_tooltip(el) {
    if(!el){ return; }

    // Yahoo tooltip text.
    el.title = el.value;
}

function tag_highlight_add(el) {
    var myAnim = new YAHOO.util.ColorAnim(el, {color: { to: '#3366cc' } });

    myAnim.onComplete.subscribe(fadeBack);
    myAnim.animate();

    function fadeBack() {
        var fadeAnim = new YAHOO.util.ColorAnim(el, {color: { to: '#fff' } });
        fadeAnim.animate();
    }
}

// init functions that run when page loads.
function mkt_init() {
    // spell checker.
    if(document.getElementById('search_results_for')) {
        var f = document.getElementById('form_mkt_search_top');
        var tags = f.tag.value ? std_trim(f.tag.value) : null;
        if(tags) { run_spelling_suggestions(tags); }
    }

    // alt-1 and alt-2 shortcuy keys to get to search field.
    mkt_search_shortcuts();

    // create tooltips for search text fields.
    var tt1 = new YAHOO.widget.Tooltip("tt1", { context:"tag_search_box_top"});
    var tt2 = new YAHOO.widget.Tooltip("tt2", { context:"tag_search_box_btm"});

    // shortcut key
    var sc1 = new YAHOO.widget.Tooltip("sc1",
            { context:"shortcut1",
              text:"<div style='text-align:left'>Alt-1: top search bar<br />Alt-2: bottom search bar</div>"});

    // give cursor focus at the top search field.
    var f = document.getElementById("form_mkt_search_top");
    if(f) { f.tag.focus(); }

    // create 1 tooltip for all cloud tags - efficient.
    // http://developer.yahoo.com/yui/examples/container/tooltipmulti/2.html
    // by default, cloud tag shows at most 25 tags.
    var id = null;
    var ctx = new Array();
    for(var i = 1; i <= 100 ; i++) {
        if(id = document.getElementById('tagcloud-' + i)) {
            ctx.push(id);
        }else {
            break;
        }
    }
    var tt3 = new YAHOO.widget.Tooltip("tt3", { context: ctx});

    // create 1 tooltip for all non-cloud tags - efficient.
    var id = null;
    var ctx = new Array();
    for(var i = 1; i <= 100; i++) {
        if(!(id = document.getElementById('stag-1-1'))) {
            break;
        }

        for(var j = 1; j <= 100; j++) {
            if(id = document.getElementById('stag-' + i + '-' + j)) {
                ctx.push(id);
            }else {
                break;
            }
        }
    }

    var tt4 = new YAHOO.widget.Tooltip("tt4", { context: ctx});
}

function mkt_search_shortcuts() {
    // the trick is to use 'alt' instead of 'shift'! shift+key leads to extra chars on IE.
    var kl1 = new YAHOO.util.KeyListener(document, {'alt':true, keys:49}, search_shortcut_top);
    kl1.enable();

    var kl2 = new YAHOO.util.KeyListener(document, {'alt':true, keys:50}, search_shortcut_btm);
    kl2.enable();

    function search_shortcut_top() {
        var el = document.getElementById('tag_search_box_top');
        if(el) {
            el.focus();
            el.value += ''; // so cursor appears at the end.
        }
    }

    function search_shortcut_btm() {
        var el = document.getElementById('tag_search_box_btm');
        if(el) {
            el.focus();
            el.value += ''; // so cursor appears at the end.
        }
    }
}


