function shorten_str(str, l) {
    if (str.length > l+3) {
        var s = str.substring(1,l) + '...';
        return s;
    }
    else {
        return str;
    }
}

function show_data(data) {
    var report = '<h2>Best Ranking Domains for Given Keywords</h2>';
    for (var d in data) {
        var domain = data[d];
        report += '<div class="competitor">';
        report += '<span class="comp_domain"><nobr><img src="expand.gif" alt="More" class="domain_results" id="domain_'+d+'" />&nbsp;' + shorten_str(domain.domain,20) + '&nbsp;<a href="http://'+domain.domain+'" target="_blank"><img src="./external.png" alt="Open this link in a new window"></a></nobr></span>';
        report += '<span class="comp_score"><strong>score: </strong>' + domain.score + '</span>';
        report += '<span class="comp_info"><a href="http://www.semrush.com/info/'+domain.domain+'&ref=625783827" target="_blank">semrush<img src="./external.png" alt="Open this link in a new window"></a> <a href="http://www.quantcast.com/'+domain.domain+'" target="_blank">quantcast<img src="./external.png" alt="Open this link in a new window"></a> <a href="http://search.yahoo.com/search?p=linkdomain:'+domain.domain+' -site:'+domain.domain+'" target="_blank">links<img src="./external.png" alt="Open this link in a new window"></a></span>';
        report += '<br class="clear" />';
        
        report += '<div id="domain_re_'+d+'" class="domain_results_more">';
            for (var r in domain.results) {
                var result = domain.results[r];
                report += '<strong>kw:</strong> '+result.keyword+' <strong>pos:</strong>'+result.position+' <strong>url:</strong> '+shorten_str(result.url,50)+' <a href="'+result.url+'" target="_blank"><img src="./external.png" alt="Open this link in a new window"></a><br />';
            }
        report += '</div>';
        
        report += '</div>';
    }
    
    $("#results").html(report);
    
    var max = 0;
    $(".comp_domain").each(function(){
        if ($(this).width() > max)
            max = $(this).width();   
    });
    if (max > 380) { max = 360; }
    $(".comp_domain").width(max);    

    max = 0;
    $(".comp_score").each(function(){
        if ($(this).width() > max)
            max = $(this).width();   
    });
    $(".comp_score").width(max);    

    $(".domain_results").click(function() {
        var id = this.id.split(/_/)[1];
        
        if ($("#domain_re_"+id).is(":hidden")) {
            this.src = this.src.replace("expand", "collapse");
            $("#domain_re_"+id).show("fast");
        }
        else {
            this.src = this.src.replace("collapse", "expand");
            $("#domain_re_"+id).hide("fast");
        }
        
    });
}

function got_results(data, textStatus) {
    $("#results").html('');
    if (textStatus == 'success') {
        show_data(data);
    }    
}


function ajax_error(XMLHttpRequest, textStatus, errorThrown) {
    $("#results").html('<p>Error loading data...</p>');
}

$(document).ready(function() {

    $("#go").click(function() {
        var k  = $("#keywords").val();
        var kw = k.split(/\n|\r/);
        if (kw.length <=1 && kw[0] == "") {
            $("#keywords").focus();
            return;     
        }
        
        $("#results").html('<p><img src="./ajax-loader.gif" align="absmiddle" alt="Loading" /> loading...</p>');
        $.ajax({
            url: 'get-competitors.php',
            data: { keywords: k },
            cache: false,
            type: "POST",
            success: got_results,
            error : ajax_error,
            dataType: "json"
        }); 
        
    });

});