Yop. As i said, I liked the whole concept of this episode with getting an inside look into chloe's perspective, but tbh this didn't help Rae's character at all. I never had my issues with Chloe since i always suspected that she had her own problems as well, the show just kind of looked past them/only touched them for seconds and then Rae's character took control again and made most of the viewers forget about Chloe's problem, or Rae's perspective made Chloe look like bitch and then fandom could jump at her throat for stuff that every teenage girl did at one point or another. At least that's chloe to me, a relatable teenage girl with teenage issues. And it might be the case that some fans would say same applies for Rae now, but see I've seen S1 Rae and that is the Rae i like, she came off much more relatable in S1 than now, but then maybe its because S1 dealt more with her crushes/illness than with her character that she rubs me the wrong way this season. I just didn't like her perspective in all of the last episodes, i expected way more from her. So maybe you can help me out with that ending, did she realize her mistakes in the end and why did she decided to have sex with Liam, still don't get it. Too lazy to watch this again the E4 website and its stupid buffering kill my nerves
// <![CDATA[ function decodeContentTags(str) { var div = document.createElement('div'); div.innerHTML = str; return div.innerHTML; } // ]]> // <![CDATA[ function newTagLinks(postID, tags) { tag = tags.split(","); postTags = 'post_tags_' + postID; $(postTags).innerHTML = ""; for (i = 0; i < tag.length; i++) { var addLabel = document.createElement('a'); addLabel.setAttribute('href', '/tagged/' + tag[i]); addLabel.innerHTML = "#" + tag[i]; $(postTags).appendChild(addLabel); } } // ]]> // <![CDATA[ function displayTags(postID) { existingTags = ""; hasTags = true; /*if (String($('post_tags_' + postID)) != 'null') { for (i = 0; i < $('post_tags_' + postID).childElements().length; i++) existingTags += $('post_tags_' + postID).down(i).innerHTML.substr(1) + ","; existingTags = existingTags.slice(0, -1) } else hasTags = false;*/ if (String($('post_tags_' + postID)) != 'null') for (i = 0; i < $('post_tags_' + postID).childElements().length; i++) existingTags += $('post_tags_' + postID).down(i).innerHTML.substr(1) + ","; existingTags = existingTags.slice(0, -1) tags = prompt("Tags", existingTags); if (tags != null) { $('tagEdit-' + postID).innerHTML = "working..."; $('tagEdit-' + postID).removeAttribute('onClick'); editTags(postID, tags); } } // ]]> // <![CDATA[ function editTags(postID, tags) { var editPost = '/edit/' + postID; new Ajax.Request(editPost, { onSuccess: function(response) { r = response.responseText; dataStart = r.indexOf('<form'); dataEnd = r.indexOf(']*>/g); var textareas = html.match(/<textarea[^>]*>[^<]*<\/textarea>/g); var params = {}; var name; for (i=0; i<inputs.length; i++) { name = inputs[i].match(/name="([^"]*)"/); if (name) { if (String(inputs[i].match(/value="([^"]*)"/)) == 'null') params[name[1]] = null; else { params[name[1]] = decodeContentTags(inputs[i].match(/value="([^"]*)"/)[1]).unescapeHTML(); } } } for (i=0; i<textareas.length; i++) { name = textareas[i].match(/name="([^"]*)"/); // Doesn't need a check b/c it should have <p> at the very least if (name && !(/id="custom_tweet"/.test(textareas[i]))) params[name[1]] = decodeContentTags(textareas[i].replace(/<(?!\s*\/?\s*p\b)[^>]*>/gi, '')).unescapeHTML() } params["post[tags]"] = tags; delete params["post[promotion_type]"]; delete params["preview_post"]; new Ajax.Request(editPost, { method: 'post', parameters: params, onSuccess: function(transport) { newTagLinks(postID, tags); $('tagEdit-' + postID).innerHTML = "done!"; $('tagEdit-' + postID).setAttribute('onClick', 'displayTags(' + postID + ')'); setTimeout(function() {$('tagEdit-' + postID).innerHTML = "edit tags";},1500); }, onFailure: function() { $('tagEdit-' + postID).innerHTML = "x_x"; $('tagEdit-' + postID).setAttribute('title', 'Please reload!'); }, }); } }); } // ]]> // <![CDATA[ function addTagEdit(postControl, postID) { var addLabel = document.createElement('a'); addLabel.setAttribute('id', 'tagEdit-' + postID); addLabel.setAttribute('style', 'cursor: pointer;'); addLabel.setAttribute('onClick', 'displayTags(' + postID + ')'); addLabel.innerHTML = 'edit tags'; postControl.appendChild(addLabel); } // ]]> // <![CDATA[ function getPostsTags(startNum) { //var allPosts = document.getElementById("posts").getElementsByTagName('li'); var allPosts = $$('li.is_mine.:not(li.new_post)'); for (var i = startNum; i < allPosts.length; i++) { postID = allPosts[i].getAttribute('id').substr(5); addTagEdit(allPosts[i].down().next(), postID); } return allPosts.length + startNum; } // ]]> // <![CDATA[ (function mainTags() { var startNum = 0; var pageLength = $$('li.is_mine.:not(li.new_post)').length; startNum = getPostsTags(startNum); Ajax.Responders.register({ onLoaded: function() { checkPage = setInterval(function() { //var newLength = document.getElementById('posts').getElementsByTagName('li').length; var newLength = $$('li.is_mine.:not(li.new_post)').length; if (pageLength < newLength) { getPostsTags(pageLength); pageLength = newLength; } window.clearInterval(checkPage); return; }, 5000); }, }); })(); // ]]>