var currentCountryId   = -1;
var currentStateRegion = null;
var currentRegionId    = null;

function loadValuesRequest(response) {
    response   = response.documentElement;

    var min_value  = URLDecode(response.getElementsByTagName('min_value')[0].firstChild.data);
    var max_value  = URLDecode(response.getElementsByTagName('max_value')[0].firstChild.data);
    var min_growth = response.getElementsByTagName('min_growth')[0].firstChild.data;
    var max_growth = response.getElementsByTagName('max_growth')[0].firstChild.data;

    var value         = URLDecode(response.getElementsByTagName('value')[0].firstChild.data);
    var growth        = response.getElementsByTagName('growth')[0].firstChild.data;
    var auction_value = URLDecode(response.getElementsByTagName('auction_value')[0].firstChild.data);
    var retail_value  = URLDecode(response.getElementsByTagName('retail_value')[0].firstChild.data);

    document.getElementById('LowestAnnualValue').innerHTML   = min_value;
    document.getElementById('HighestAnnualValue').innerHTML  = max_value;
    document.getElementById('LowestAnnualGrowth').innerHTML  = min_growth;
    document.getElementById('HighestAnnualGrowth').innerHTML = max_growth;
    document.getElementById('CurrentValue').innerHTML        = value;
    document.getElementById('CurrentGrowth').innerHTML       = growth;
    document.getElementById('AuctionValue').innerHTML        = auction_value;
    document.getElementById('RetailValue').innerHTML         = retail_value;
}

function loadValues(vinumpediaId, format, currencyId, countryId, stateRegion, regionId) {
    if (countryId == currentCountryId && stateRegion == currentStateRegion && currentRegionId == regionId)
      return;

    currentCountryId   = countryId;
    currentStateRegion = stateRegion;
    currentRegionId    = regionId;

    url = '/apps/ajax/php/cellar/winePerformanceRequest.php?vinumpediaId='+vinumpediaId+'&format='+format+'&currencyId='+currencyId+'&countryId='+countryId+'&stateRegion='+stateRegion+'&regionId='+regionId;
    //document.location.href = url;
    ajaxSend(url, 'loadValuesRequest');

    document.chart.src='/apps/cellar/chartImage.php?vinum_id='+vinumpediaId+'&currency='+currencyId+'&format='+format+'&countryId='+countryId+'&stateRegion='+stateRegion+'&regionId='+regionId;

    document.getElementById('LowestAnnualValue').innerHTML   = 'loading...';
    document.getElementById('HighestAnnualValue').innerHTML  = 'loading...';
    document.getElementById('LowestAnnualGrowth').innerHTML  = 'loading...';
    document.getElementById('HighestAnnualGrowth').innerHTML = 'loading...';
    document.getElementById('CurrentValue').innerHTML        = 'loading...';
    document.getElementById('AuctionValue').innerHTML        = 'loading...';
    document.getElementById('RetailValue').innerHTML         = 'loading...';
    document.getElementById('CurrentGrowth').innerHTML       = 'loading...';
}

function raiseRatingError(errorMessage) {
    document.getElementById('submit_rating_error').style.display = '';
    document.getElementById('submit_rating_error').innerHTML     = errorMessage;
}

function submitRatingRequest(response) {
    response   = response.documentElement;

    var retcode = response.getElementsByTagName('retcode')[0].firstChild.data;

    if (retcode == 0 || retcode == 3) {
      if (response.getElementsByTagName('avg_user_rating')[0].firstChild)
        var avg_user_rating       = response.getElementsByTagName('avg_user_rating')[0].firstChild.data;
      if (response.getElementsByTagName('num_user_ratings')[0].firstChild)
        var num_user_ratings      = response.getElementsByTagName('num_user_ratings')[0].firstChild.data;

      document.getElementById('NumberOfUserRatings').innerHTML = num_user_ratings;

      Element.hide('submit_rating_error');
      Element.hide('ContainerUsersAverage');
      Effect.Appear('ContainerUsersAverage');

      if (num_user_ratings > 0) {
        document.getElementById('AVGUserRating').innerHTML    = !avg_user_rating ? '?' : avg_user_rating;
        Element.show('p_useravg');
      }
      else {
        document.getElementById('AVGUserRating').innerHTML    = '?';
        Element.hide('p_useravg');
      }

      if (retcode == 0) {
        var tasting_notes_display = response.getElementsByTagName('tasting_notes_display')[0].firstChild.data;

        if (response.getElementsByTagName('rating')[0].firstChild)
          var rating        = response.getElementsByTagName('rating')[0].firstChild.data;

        var tasting_notes = response.getElementsByTagName('tasting_notes')[0].firstChild.data;

        Element.show('remove_button');
        Element.hide('ContainerNoRating');
        Element.hide('ContainerAddRating');
        Effect.Appear('ContainerRating');

        document.submit_rating.tasting_notes.value = tasting_notes;
        document.submit_rating.score.value         = !rating ? '' : rating;

        if (tasting_notes_display != '') tasting_notes_display = tasting_notes_display + '<br \>';

        document.getElementById('my_tasting_notes').innerHTML = tasting_notes_display;
        document.getElementById('MyRating').innerHTML         = !rating ? '?' : rating;

        if (document.getElementById('ContainerUsersAverage').style.display == 'none')
          Effect.Appear('ContainerUsersAverage');

      }
      else {
        Effect.Appear('ContainerNoRating');
        Element.hide('ContainerAddRating');
        Element.hide('ContainerRating');
        Element.hide('remove_button');

        document.submit_rating.tasting_notes.value = '';
        document.submit_rating.score.value = '';
        document.getElementById('my_tasting_notes').innerHTML = '';
        document.getElementById('MyRating').innerHTML        = '?';
      }


    }
    else if (retcode == 1)
      raiseRatingError('You cannot rate this wine');
    else if (retcode == 2)
      raiseRatingError('Your rating must be between 1 and 100');
    else if (retcode == 4)
      raiseRatingError('You cannot rate this wine');
    else if (retcode == 5)
      raiseRatingError('You must enter a score and/or tasting notes');

    Element.show('submit_rating_buttons');
    Element.hide('submit_rating_saving');
}

function submitRating(form) {
    url = '/apps/ajax/php/cellar/submitRatingRequest.php?';
    ajaxSendPost(form, url, 'submitRatingRequest');
        Element.hide('submit_rating_buttons');
        Element.show('submit_rating_saving');
}

function cancelEditRating() {

}

function toggle(el1, el2) {
    if (el1.style.display == 'none') {
      el1.style.display = '';
      el2.style.display = 'none';
    }

    else
      toggle(el2, el1);
}

function toggleVintages() {
    var big   = document.getElementById('CompareVintages');
    var small = document.getElementById('CompareVintagesSmall');

    toggle(big, small);
}

function toggleFormats() {
    var big   = document.getElementById('CompareFormats');
    var small = document.getElementById('CompareFormatsSmall');

    toggle(big, small);
}

function toggleEquivalents() {
    var big   = document.getElementById('CompareEquivalents');
    var small = document.getElementById('CompareEquivalentsSmall');

    toggle(big, small);
}
