﻿function sf() {
    $('ebay_id').focus();
}

function trackVisit(url) {
    if(typeof(pageTracker) != undefined && pageTracker != undefined && pageTracker != null) {
        pageTracker._trackVisit(url);
    }
}

function setVisibleDiv(id) {
    $('pending').hide();
    $('dsrInfo').hide();
    $('error').hide();
    $('tip').hide();
    
    var showDiv = $(id);
    if(showDiv != null) {
        showDiv.show();
    }
}

function checkDsr() {
    var ebay_id = $('ebay_id').value;
    
    // trim whitespace
    if(ebay_id != null && ebay_id.length > 0) {
        ebay_id = ebay_id.strip();
    }
    
    if(ebay_id == null || ebay_id.length == 0) {
        return false;
    }

    setVisibleDiv('pending');
    $('current_ebay_id').value = ebay_id;
    $('ebay_id_display1').update(ebay_id);
    $('ebay_id_display2').update(ebay_id);
    
    var url = '/dsr.ashx?ebay_id=' + ebay_id;
    new Ajax.Request(url, {
      method: 'get',
      onSuccess: function(transport) {
        updateDsr(transport.responseText);
        trackVisit("/dsr.ashx" );
      },
      onFailure: function(transport) {
        $('current_ebay_id').value = '';
        displayError(transport.responseText);
        trackVisit("/dsr.ashx" );
      }
    });
    
    return false;
}

function displayError(responseText) {
    if(responseText == null || responseText.length == 0) {
        $('error').update('Unfortunately an error has occurred.');
    } else {
        $('error').update(responseText);
    }
    
    setVisibleDiv('error');
}

function updateDsr(responseText) {
    var linesArray = responseText.split('\n');
    
    var ratingsArray = linesArray[1].split(',');
    $('iadr').update(ratingsArray[0]);
    $('cr').update(ratingsArray[1]);
    $('str').update(ratingsArray[2]);
    $('sahcr').update(ratingsArray[3]);
    
    var numbersArray = linesArray[2].split(',');
    $('iadn').update(numbersArray[0]);
    $('cn').update(numbersArray[1]);
    $('stn').update(numbersArray[2]);
    $('sahcn').update(numbersArray[3]);
    
    var percentilesArray = linesArray[3].split(',');
    $('iadr').className = 'percentile' + percentilesArray[0];
    $('cr').className = 'percentile' + percentilesArray[1];
    $('str').className = 'percentile' + percentilesArray[2];
    $('sahcr').className = 'percentile' + percentilesArray[3];
    
    var feedbackArray = linesArray[4].split(',');
    $('feedback_display').update(feedbackArray[0]);
    
    setTierText(percentilesArray[0], $('iadt'), numbersArray[0]);
    setTierText(percentilesArray[1], $('ct'), numbersArray[1]);
    setTierText(percentilesArray[2], $('stt'), numbersArray[2]);
    setTierText(percentilesArray[3], $('sahct'), numbersArray[3]);

    setVisibleDiv('dsrInfo');
}

function setTierText(percentile, tierElement, numberOfRatings) {
    if(numberOfRatings == 0) {
        tierElement.update('No ratings');
        return;
    }
    
    switch(percentile) {
        case '90': tierElement.update('Top 10%');break;
        case '75': tierElement.update('Top 10-25%');break;
        case '50': tierElement.update('Middle 50%');break;
        case '25': tierElement.update('Middle 50%');break;
        case '10': tierElement.update('Bottom 10-25%');break;
        case '0': tierElement.update('Bottom 10%');break;
        default: tierElement.update('');break;
    }
}

function validate_contactme_details() {
    if($F('first_name').length == 0) {
        alert('First name is a required field.');
        return false;
    }
    if($F('last_name').length == 0) {
        alert('Last name is a required field.');
        return false;
    }
    if($F('company').length == 0) {
        alert('Company name is a required field.');
        return false;
    }
    if($F('street').length == 0) {
        alert('Street address is a required field.');
        return false;
    }
    if($F('city').length == 0) {
        alert('City is a required field.');
        return false;
    }
    if($F('state').length == 0) {
        alert('State is a required field.');
        return false;
    }
    if($F('zip').length == 0) {
        alert('Zip is a required field.');
        return false;
    }
    if($F('country').length == 0) {
        alert('Country is a required field.');
        return false;
    }
    if($F('phone').length == 0) {
        alert('Phone number is a required field.');
        return false;
    }
    return true;
}

function validate_alert_details() {
    var ebay_id = $F('current_ebay_id');
    var email = $F('email');
    
    // trim whitespace from the email address
    if(email != null && email.length > 0) {
        email = email.strip();
    }
    
    if(email == null || email.length == 0) {
        alert('Please enter your email address.');
        return false;
    }
    
    return true;
}

function subscribe() {
    if(!validate_alert_details()) {
        return false;
    }

    var message = 'Thanks.';
    
    var somethingChecked = false;
    if($F('check_alerts') == 'on') {
        message = message + "<br/>We'll send you an email when there's a DSR change.";
        somethingChecked = true;
    }

    if($F('check_contactme') == 'on') {
        somethingChecked = true;
        if(!validate_contactme_details()) {
            return false;
        }
    }
    
    if(!somethingChecked) {
        return false;
    }
    
    $('aspnetForm').action = 'subscriptions.ashx';
    $('aspnetForm').request({
        onSuccess: function(transport) {
            displayError(message);
            trackVisit("/subscriptions.ashx" );
        },
        onFailure: function(transport) {
            displayError(transport.responseText);
            trackVisit("/subscriptions.ashx" );
        }
    });
    
    return false;
}

function toggle_contactme() {
    if($('check_contactme').checked) {
        $('contactme_details').show();
    } else {
        $('contactme_details').hide();
    }
}

function checkEbayIdKeyPress(e) {
    var key = e.keyCode || e.which;
    if (key == 13) {
        checkDsr();
        return false;
    } else {
        return true;
    }
}
