var lastShownDiv = 'gadget_topics';

function toggleDisplay(elem){
    if(elem.style.display=='none'){
       elem.style.display='block';
    }else{
       elem.style.display='none';
    }
}

function togglePrePost(curElement){
    var spre = curElement.getElement('span.pre');
    var spost = curElement.getElement('span.post');
    toggleDisplay(spre);
    toggleDisplay(spost);
}

function getGadgetOpinionStream(callerType, callerId,gadgetName, prevCallerId, callerName, prevCallerName,osDirect,showTopics){
    if(osDirect==null){
        osDirect=false;
    }
    var queryString = "getGadget3.1gOpinionStream.jsp?name="+gadgetName+"&callerType="+callerType+"&callerId="+callerId+"&prevCallerId="+prevCallerId+"&callerName="+callerName+"&prevCallerName="+prevCallerName+"&osDirect="+osDirect+"&showTopics="+showTopics;
    var res = new Request.HTML({
        evalScripts: true,
        onRequest: jodangeAjaxStart,
        onComplete: function() { 
            setup_tooltips();
            show_gadget_opinion_stream();
            new Fx.Scroll($(document.body)).toTop();
            jodangeAjaxComplete();
            if(osDirect==true){
                show_home();
            }else{
                showIntermediateLink(); 
            }
        },
        update: $('gadgetOpinionStream')
        //onSuccess: function(html) {
        //    var gadget_results = $('gadget_results');
        //    gadget_results.innerHTML='';
        //    gadget_results.adopt(html);
        //    setup_tooltips();
        //}
    }).post(queryString);
}

function getIntermediate(callerType, callerId, gadgetName, callerName){
    var queryString = "getGadget3.1gIntermediate.jsp?name="+gadgetName+"&callerType="+callerType+"&callerId="+callerId+"&callerName="+callerName;
    var res = new Request.HTML({
        evalScripts: true,
        onRequest: jodangeAjaxStart,
        onComplete: function() {
            hide_gadget_opinion_stream();
            showIntermidiateDiv('intermediate');
            new Fx.Scroll($(document.body)).toTop();
            jodangeAjaxComplete();
        },
        update: $('intermediate')
        //onSuccess: function(html) {
        //    var gadget_results = $('gadget_results');
        //    gadget_results.innerHTML='';
        //    gadget_results.adopt(html);
        //    setup_tooltips();
        //}
    }).post(queryString);
}

function showIntermidiateDiv(divId){
    var curDiv = $(divId);
    var gadget_topics = $('gadget_topics');
    var gadget_results = $('gadget_results');
    var gadget_opinion_stream = $('gadgetOpinionStream');
    gadget_topics.style.display = "none";
    gadget_results.style.display = "none";
    gadget_opinion_stream.style.display = "none";
    curDiv.style.display = "block";
    var gadget_tabs_opinions = $('gadget_tabs_opinions');
    var gadget_tabs_topics = $('gadget_tabs_topics');
    gadget_tabs_opinions.className = '';
    gadget_tabs_topics.className = '';
    hideIntermediateLink();
    show_home();
}

function showHideElement(elementId,showOrHide){
    var elem = $(elementId);
    if(elem!=null){
        if(showOrHide=='show'){
            elem.style.display='block';
        }else if(showOrHide=='hide'){
            elem.style.display='none';
        }
    }
}

function showCaller(){
    if(lastShownDiv=="gadget_topics"){
        show_topics_tab();
    }else{
        show_results_tab();
    }
    new Fx.Scroll($(document.body)).toTop();
}

// grab the current window address for later use
var frame_url = location.href;

function showIntermediateLink(){
    var backLink = $('goIntermediate');
    backLink.style.display = "block";
}

function hideIntermediateLink(){
    var backLink = $('goIntermediate');
    backLink.style.display = "none";
}

var hide_home = function() {
    $('go_home_link').style.display = 'none';
};

var show_home = function() {
    $('go_home_link').style.display = "inline";
};

var show_gadget_opinion_stream = function(){
    $('gadgetOpinionStream').style.display = "block";
    var gadget_topics = $('gadget_topics');
    var gadget_results = $('gadget_results');
    var intermediateDiv = $('intermediate');
    intermediateDiv.style.display = "none";
    gadget_results.style.display = "none";
    gadget_topics.style.display = "none";
    var gadget_tabs_opinions = $('gadget_tabs_opinions');
    var gadget_tabs_topics = $('gadget_tabs_topics');
    gadget_tabs_opinions.className = '';
    gadget_tabs_topics.className = '';
    hide_home();
};

var hide_gadget_opinion_stream = function(){
    $('gadgetOpinionStream').style.display = "none";
};

var setup_tooltips = function() {
    new Tips('div.media_coverage', {
        showDelay: 1000,
        hideDelay: 200,
        fixed: true,
        offsets: { x: 14, y: -14 }
    });
};

var getOpinions = function(type, id, reqString, gadgetName) {
    var queryString = "getTopicsGadgetOpinions.jsp?t=" + type + "&id=" + id+"&name="+gadgetName;
    if (reqString != null) {
        queryString = "getTopicsGadgetOpinions.jsp?" + reqString;
    }
    
    if(type=='Topic'){
        lastShownDiv = 'gadget_topics';
    }
    
    var response = new Request.HTML({
        evalScripts: true,
        onRequest: jodangeAjaxStart,
        onComplete: function() { setup_tooltips(); show_gadget_opinion_stream(); new Fx.Scroll($(document.body)).toTop(); jodangeAjaxComplete(); },
        update: $('gadgetOpinionStream')
        //onSuccess: function(html) {
        //    var gadget_results = $('gadget_results');
        //    gadget_results.innerHTML='';
        //    gadget_results.adopt(html);
        //    setup_tooltips();
        //}
    }).post(queryString);
    show_home();
};

var jodangeAjaxStart = function() {
    var activity_indicator = $('activityIndicator');
    activity_indicator.style.display = "block";
    activity_indicator.style.top = (window.getScrollTop() + (window.getHeight() / 2)) + "px";
    activity_indicator.style.left = (window.getScrollLeft() + (window.getWidth() / 2)) + "px";
};

var jodangeAjaxComplete = function() {
    $('activityIndicator').style.display = "none";
};

var submit_search = function() {
    var gadget_searchbox_field_input = $('gadget_searchbox_field_input');
    $('autocomplete').fade('out');
    if ((gadget_searchbox_field_input.value.length < 3) || (gadget_searchbox_field_input.value == 'search opinions')) {
        alert('Please enter at least 3 characters to perform a search');
        return;
    }
    
    getOpinions('Keyword', $('gadget_searchbox_field_input').value);
}

var show_topics_tab = function() {
    var gadget_topics = $('gadget_topics');
    var gadget_results = $('gadget_results');
    var gadget_opinion_stream = $('gadgetOpinionStream');
    var gadget_tabs_opinions = $('gadget_tabs_opinions');
    var gadget_tabs_topics = $('gadget_tabs_topics');
    var intermediateDiv = $('intermediate');
    intermediateDiv.style.display = "none";
    gadget_results.style.display = "none";
    gadget_topics.style.display = "block";
    gadget_opinion_stream.style.display = "none";

    new Fx.Scroll($(document.body)).toTop();
    gadget_tabs_opinions.className = '';
    gadget_tabs_topics.className = 'active_tab';
    lastShownDiv = "gadget_topics";
    hide_home();
};

var show_results_tab = function() {
    var gadget_topics = $('gadget_topics');
    var gadget_results = $('gadget_results');
    var gadget_opinion_stream = $('gadgetOpinionStream');
    var gadget_tabs_opinions = $('gadget_tabs_opinions');
    var gadget_tabs_topics = $('gadget_tabs_topics');
    var intermediateDiv = $('intermediate');
    intermediateDiv.style.display = "none";
    gadget_topics.style.display = "none";
    gadget_results.style.display = "block";
    gadget_opinion_stream.style.display = "none";
    //new Fx.Scroll($(document.body)).toTop();
    gadget_tabs_opinions.className = 'active_tab';
    gadget_tabs_topics.className = '';
    
    lastShownDiv = "gadget_results";
    hide_home();
};

var show_topic_results = function(topic_id) {
    // switch tabs
    show_results_tab();
    
    // load results
};

window.addEvent('domready', function() {
    // declared without var so that they can be accessed anywhere
    //alert(window.getSize().x-45-70);
    $$('.search_topic').each(function(d) {
			d.setStyle('width', window.getSize().x-45-50);
		});
    
    var gadget_header = $('gadget_header');
    var gadget_results = $('gadget_results');
    var gadget_footer = $('gadget_footer');
    var gadget_free_trial = $('gadget_free_trial');
    var no_thanks_button = $('no_thanks_button');
    var try_now_button = $('try_now_button');
    var welcome_overlay = $('welcome_overlay');
    var no_results_evaluate = $('no_results_evaluate');
    var activity_indicator = $('activityIndicator');
    var go_home_link = $('go_home_link');
    var gadget_topics = $('gadget_topics');
    var gadget_opinion_stream = $('gadgetOpinionStream');
    
    hide_gadget_opinion_stream();
    
    go_home_link.style.display = "none";
    welcome_overlay.fade('hide');
    
    var overlay_top = gadget_header.getSize().y + 4;
    var overlay_height = window.getSize().y - overlay_top - gadget_footer.getSize().y;

    welcome_overlay.setStyles({ top: overlay_top, height: overlay_height });
    gadget_free_trial.addEvent('click', function(e) {
        e.stop();
        gadget_results.fade('out');
        welcome_overlay.fade('in');
        welcome_overlay.style.display="block";
    });
    
    if ($chk(no_results_evaluate)) {
        no_results_evaluate.addEvent('click', function(e) {
            e.stop();
            gadget_results.fade('out');
            welcome_overlay.fade('in');
        });
    }

    no_thanks_button.addEvent('click', function(e) {
        e.stop();
        welcome_overlay.fade('out');
        gadget_results.fade('in');
    });

    try_now_button.addEvent('click', function(e) {
        e.stop();
        welcome_overlay.fade('out');
        gadget_results.fade('in');
        window.open('http://www.jodange.com/signup.jsp', '_blank');
    });
    
    
    show_topics_tab();
    // set up tooltips
    //setup_tooltips();
});
