/* Rating of Review */

function rateReview(element, vote) {
  element.next('.loading').show();
  new Ajax.Request(element.up('.review').down('.rating').down('.rate_' + vote).href, {
    method: 'post',
    onSuccess: function(transport) {
      increaseCounter(element.up('.review').down('.rating').down('.' + vote + '_rates').down('.number'));
    },
    onFailure: function(transport) {
      element.up('.review').down('.rating').down('.errors').update(transport.responseText);
    },
    onComplete: function(transport) {
      element.next('.loading').hide();
    }
  });
}





/* Displaying and Hiding Card Review Comments */

function hideAllComments(element) {
  $$('.review').each(function(x) {
    if (x.visible() == true) {
      x.down('.comments').hide();
      x.down('.comments_button').removeClassName('show').addClassName('hide');
    }       
  });
};


function showCardReviewComments(element) {
  element.next('.loading').show();
  new Ajax.Request(element.up('.review').down('.comments_button').href, {
    method: 'get',
    onSuccess: function(transport) {
      element.up('.review').down('.comments').update(transport.responseText);
      hideAllComments(element);
      element.up('.review').down('.comments').show();
      element.up('.review').down('.comments_button').removeClassName('show').addClassName('hide');
    },
    onComplete: function(transport) {
      element.next('.loading').hide();
    }
  });
  
};

function toggleReviewComments(element) {
  if (element.up('.review').down('.comments').visible() == true) {
    hideCardReviewComments(element);
  } else {
    showCardReviewComments(element);
  };
};

function hideCardReviewComments(element) {
  element.up('.review').down('.comments').hide().update('');
  element.up('.review').down('.comments_button').removeClassName('hide').addClassName('show')
};




/* Displaying, Hiding, and Saving of Card Review Comment Form */

function showCardReviewCommentForm(element) {
  $$('.review').each(function(x) {
    if (x.down('.new_comment_form').visible() == true) {
      hideCardReviewCommentForm(x.down('.cancel_comment_button'));
    }
  });
  element.up('.review').down('.new_comment_form').show();
  element.up('.review').down('.new_comment_button').hide();
  element.up('.review').down('.save_comment_button').show();
  element.up('.review').down('.cancel_comment_button').show();
};

function hideCardReviewCommentForm(element) {
  element.up('.review').down('.new_comment_form').down('.new_comment_textarea').value = '';
  element.up('.review').down('.new_comment_form').hide();
  element.up('.review').down('.new_comment_button').show();
  element.up('.review').down('.save_comment_button').hide();
  element.up('.review').down('.cancel_comment_button').hide();
};

function saveCardReviewComment(element) {
  element.next('.loading').show();
  new Ajax.Request(element.up('.review').down('.new_comment_form').action, {
    method: 'post', parameters: 'comment[content]=' + element.up('.review').down('.new_comment_form').down('.new_comment_textarea').value,
    onSuccess: function(transport) {
      element.up('.review').down('.comments').insert(transport.responseText, {position: 'bottom'});
      hideCardReviewCommentForm(element);
      increaseCounter(element.up('.review').down('.comments_button').down('.number'));
      if (element.up('.review').down('.comments').visible() == true) {
        element.up('.review').down('.comments').childElements().last().visualEffect('Highlight');
      };
    },
    onFailure: function(transport) {
      element.up('.review').down('.new_comment_form').replace(transport.responseText);
      element.up('.review').down('.new_comment_form').show();
    },
    onComplete: function(transport) {
      element.next('.loading').hide();
    }
  });
};


function increaseCounter(element) {
  element.update(parseInt(element.innerHTML) + 1);
  element.visualEffect('Highlight');
};





/* Loading Closing and Interaction with Card Gallery */

function loadCardGallery(element) {
  element.next('.loading').show();
  new Ajax.Request(element.href, {
    method: 'get',
    onSuccess: function(transport) {
      element.up('.community_card').down('.content_column').update(transport.responseText);
      Event.addBehavior.reload();
      element.up('.community_card').down('.info_column').down('.card_cover').down('.show_gallery').hide();
      element.up('.community_card').down('.info_column').down('.card_cover').down('.hide_gallery').show();
    },
    onComplete: function(transport) {
      element.next('.loading').hide();
    }
  });
};

function closeCardGallery(element) {
  document.location.href = document.location.href;
};

function updateCardGalleryImage(element) {
  element.next('.loading').show();
  new Ajax.Request(element.href, {
    method: 'get',
    onSuccess: function(transport) {
      element.up('.community_card').down('.card_media').down('.media').update(transport.responseText);
      $$('.community_card .card_medias a.media').each(function(x) {
        x.removeClassName('active');
      });
      element.addClassName('active');
    },
    onComplete: function(transport) {
      element.next('.loading').hide();
    }
  });
};



/* Printing Functions */
function showPrintView(element) {
  hideAllComments(element);
  $$('.noprint').each(function(x) {
    if (x.visible() == true) {
      x.hide();
    }
  });
  $$('.onlyprint').each(function(x) {
    if (x.visible() == false) {
      x.show();
    }
  });

    $('message_text').update('Print view: <a onclick="print();" href="" style="text-decoration: underline;">Imprimir esta página</a>');
    $('close_message').update('<a class="close_printview" href="">X</a>');
    $('card_messages').removeClassName('error').addClassName('success');
    $('card_messages').show();
    

	// $('body').setStyle({
	//   		background: '#FFF'});

};

function closePrintView(element) {
  $$('.noprint').each(function(x) {
    if (x.visible() == false) {
      x.show();
    }
  });
  $$('.onlyprint').each(function(x) {
    if (x.visible() == true) {
      x.hide();
    }
  });

	$('message_text').innerhtml = '';
    $('card_messages').hide();
	// $('body').setStyle({
	//   		backgroundColor: '#C2E7F7'});
};