function loadResults(url, postdata, in_container, anchor){
    if (typeof url == 'undefined') showError('loadResults: No url specified');
    
    if (in_container) {
        var container = in_container;
    } else if (results_container){
        var container = results_container; //global variable, default container for results
    } else {
        var container = '#Product_Default';
    }
    
    if (typeof no_history == 'undefined') {
        $.historyLoad(url);      
    }
    
    $('#'+container).parent().scrollTo(1); 
    $('#'+container).html('<p><br /><br /><br /><img src="/images/loading.gif"><br /><br /><br /></p>');
    
    $.get(url,
    postdata
    ,
    function(data){
        if (data) {
            $('#'+container).html(data);
            if (anchor && $(anchor).length > 0) {
                $(anchor).scrollTo(1); 
            }
        }
        else
        {
            $('#'+container).html(' ');
        }
    },
    'html'
    );
}

function addPostResponse(res, code){
    $('#ajax-small-loading').loading("hide");
    
    $('#adddialog .butts .btn_post').show();
    $('#adddialog .butts .btn_post_disabled').hide();
    $('#replydialog .butts .btn_post').show();
    $('#replydialog .butts .btn_post_disabled').hide();

    if (!res.code) {
        showError(res.message);
    } else {
        if (res.message) showMessage(res.message);
        
        if (!res.post_id) res.post_id = 0;
                
        if (res.redirect_url) {
            var url = res.redirect_url;
        } else {
            var url = results_url;
        }
        
        if (res.anchor) {
            var anchor = res.anchor;
        } else {
            var anchor = '';
        }
                
        loadResults(url, {}, results_container, anchor);        
    }
}

function cancelReplyForm() {
    
    var str = $('#replydialog textarea[name="content"]').val();
    if (str != 'Leave a comment...' && str.length > 5) {
        if (!confirm('Are you sure?')) return false;
    }
    
    $('#replydialog input[name="reply_id"]').val(''); 
    $('#replydialog textarea[name="content"]').val(''); 
    $('#replydialog .butts .btn_post_disabled').hide(); 
    
    $('#replydialog').appendTo('#reply_dialog_holder');
    $('#reply_cont_'+objid).hide();
    $('#replydialog').hide();
}

function createReplyForm(objid) {   
    if (!User.login()) return false;
    
    $('#replydialog input[name="reply_id"]').val(objid); 
    $('#replydialog textarea[name="content"]').val('');
    
    $('#replydialog').appendTo('#reply_cont_'+objid);
    $('#reply_cont_'+objid).show();
    $('#replydialog').show();
    
    $('#replydialog textarea').elastic();   
    
    $('#replydialog textarea[name="content"]').focus();
}

function showResponseToPost(post, curid, replyid, url){
    $('#ajax-small-loading').loading("show");
    var post_id = replyid;
    
    $.get(
        url,
        {'post_id': post_id},
    function(res) {
        $('#ajax-small-loading').loading("hide");   
        if (!res) {
            showError('Failed to get post!!!');
            return false;
        }
        
        //alert(post_id);
        //$(post).after(res);  
        $('#in_response_to_'+curid).html(res);      
    },
    'html'
    );
}

function showHiddenPost(id){  
    $('#hidden_msg_'+id).remove();
    $('#hidden_'+id).show();
    $('#sublinks_'+id).show();
    $('#butts_'+id).show();
}

function searchbytype(word)
{
    if (word.length ==1 || word.length ==2) return false;
    
    if (last_word == undefined) last_word = null;
    if (last_word === word) return false;
    
    last_word = word;
    
    url = buildDiscussionsUrl();
    loadResults(url);
    return true;
}

function buildDiscussionsUrl(){
    url = discussions_url;
    
    cats = getSelectedCats();
    if (cats.length > 0) url = url + "/category/"+encodeURIComponent(cats.join(','));//.replace(/ /gi, '+'));
    comps = getSelectedCompanies();
    if (comps.length > 0) url = url+"/company/"+encodeURIComponent(comps.join(','));//.replace(/ /gi, '+'));

    var word = $('#discussionsFilterForm #word').val();
        
    if (word == "Search in the title") {
        word = "";
    }
    if (word) url = url+'/word/'+word;
        
    var type = $('#discussionsFilterForm input[name="type"]').val();  
    if (type) url = url+'/type/'+type;
        
    
    var discussion_type = $('#discussionsFilterForm input[name="dt"]').val();     
    if (discussion_type) url = url+'/dt/'+discussion_type;
        
    if (paramSort && paramSort != 'threaded') url = url+'/sort/'+paramSort;

    return url;
}

function makePostEditable(objid){
    
    var save_url = '/discussions/action/editpost/format/json/post_id/'+objid;
    var load_url = '/discussions/action/getpost/format/json/post_id/'+objid;
            
    $('.comment_text.editable').editable(save_url,
    {
        type      : 'textarea',
        loadurl  : load_url,
        cancel    : 'Cancel',
        submit    : 'Save',
        onblur     : 'submit',
        indicator : '<img src="images/ajax-loader.gif">',
        tooltip   : 'Click to edit...',
        name      : 'content',
        //style     : 'clear:both',
        height    : '150px',
        width    : '98%',
        style    : 'margin-top:10px;',
        data: function(value, settings) {
            return value.replace(/<br[\s\/]?>/gi, '\n');
        },
        callback: function(res, settings) {
            if (res.code) {                 
                if (res.message) {                     
                    if ($('.ajaxify-postedit').attr('objid')==objid) {
                        $('.ajaxify-postedit').hide();
                    }
                    showError(res.message); 
                }             
                $(this).html(res.content);
            } else {                
                showError(res.message);
            }
        },
        ajaxoptions : {
            dataType: 'json'
        }                
    });
}

function loadCats(){
    $('#ajax-small-loading').loading("show");
    
    $.get(
        '/discussions/action/getcats',
        {},
    function(res) {
        $('#ajax-small-loading').loading("hide");   
        if (!res) {
            $('cats_results').html('');
            $('cats_results').hide();
            showError('Failed to get categories!!!');
            return false;
        }
        
        $('cats_results').html(res);
        $('cats_results').show();
        $('clear_cat').show();
    },
    'html'
    );
}

function filterremcompany(company) {   
    
    var escapedCompany = company.replace(/[^a-z0-9_]/gi, '_');
    
    $("#scompany_"+escapedCompany).remove();
    $("#compname_"+escapedCompany).removeClass('selected');
    
    if ($("#sh_scompanies").children().length == 0) {
        $("#sh_scompanies").hide();
    }
    
    paramPage = 1;
    
    url = buildDiscussionsUrl();
    
    loadResults(url);
    
    return false;
}

function filteraddcompany(company)
{
    companies = getSelectedCompanies();

    if (jQuery.inArray(company, companies) == -1) {
        companies.push(company);
        url = buildDiscussionsUrl();
        escapedCompany = company.replace(/[^a-z0-9_]/gi, '_');
        
        $("#compname_"+escapedCompany).addClass('selected'); 
         
        $("#sh_scompanies").append("<span id='scompany_"+escapedCompany+"' title='"+company+"' onclick=\"filterremcompany('"+company+"'); return false;\"><a href='javascript:;'>"+company+"</a><a class='close-sm' href='javascript:;'>[×]</a></span>");
        $("#sh_scompanies").show();
    } else {
        filterremcompany(company);
        return;
    } 
    
    paramPage = 1;
    
    url = buildDiscussionsUrl();
    loadResults(url);
    
    return false;
}

function filterremcat(category) {      
        
    escapedCat = category.replace(/[^a-z0-9_]/gi, '_'); 
                
    $("#scat_"+escapedCat).remove();
    $("#catname_"+escapedCat).removeClass('selected');
    
    if ($("#sh_scats").children().length == 0) {
        $("#sh_scats").hide();
    }
    
    cats = getSelectedCats();
        
    paramPage = 1;
                  
    url = buildDiscussionsUrl();
    loadResults(url); 
                    
    return false;
}

function filteraddcat(category){                
        
    cats = getSelectedCats();
    
    if (jQuery.inArray(category, cats) == -1) {
        cats.push(category);

        url = buildDiscussionsUrl();

        escapedCat = category.replace(/[^a-z0-9_]/gi, '_');
        
        $("#catname_"+escapedCat).addClass('selected');
        
        $("#sh_scats").append("<span id='scat_"+escapedCat+"' title='"+category+"' onclick=\"filterremcat('"+category+"'); return false;\"><a href='javascript:;'>"+category+"</a><a class='close-sm' href='javascript:;'>[×]</a></span>");       
        $("#sh_scats").show();        
    } else {
        filterremcat(category);
        return;
    }
        
    $("#cats_results").hide();
    
    paramPage = 1;
    
    url = buildDiscussionsUrl();
    loadResults(url); 
        
    return false;
}


function getSelectedCats(){
    arr = jQuery.map($("#sh_scats span"), function(n, i){
        return n.title;
    });
    return arr;
}

function getSelectedCompanies(){
    arr = jQuery.map($("#sh_scompanies span"), function(n, i){
        return n.title;
    });
    return arr;
}
