var URLregexp = /^(https?:\/\/)(www.)?([-A-Z0-9.]+)(\/)?([-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])*/ig; var months = { Jan: 0, Feb: 1, Mar: 2, Apr: 3, May: 4, Jun: 5, Jul: 6, Aug: 7, Sep: 8, Oct: 9, Nov: 10, Dec: 11 } function isScrolledIntoView (elem) { return true; var docViewTop = $(window).scrollTop(); var docViewBottom = docViewTop + $(window).height(); var elemTop = $(elem).offset().top; var elemBottom = elemTop + $(elem).height(); return ((elemBottom >= docViewTop) && (elemTop <= docViewBottom)); } function scrollToTop (div) { $(div).scrollTop( 0 ) } function scrollToBottom (div) { $(div).scrollTop( $(div)[0].scrollHeight ) } function warn(s) { // return console.log(s) var h = document.getElementById('msg').innerHTML h = s + '
' + h document.getElementById('msg').innerHTML = h } var image_extensions = ["jpg","gif","png","jpeg","JPEG","JPG","GIF","PNG"] function is_image(s) { for (i in image_extensions) { if (s.indexOf(image_extensions[i]) !== -1) return true } return false } var domain_extensions = [".com",".net",".org",".uk",".fr",".de",".ch",".info",".nu",".mu",".io","facebook.com","twitter.com"] function has_domain(s) { for (var i in domain_extensions) { if (s.indexOf(domain_extensions[i]) !== -1) return true } return false } function parse_blurb(s) { // s = linkify(s+"\n") var parsed_lines = [] var lines = s.split("\n") for (i in lines) { var parsed_words = [] var words = lines[i].split(" ") for (j in words) { if (words[j].indexOf("http") !== -1) { if (is_image(words[j])) parsed_words.push('') else parsed_words.push(linkify(words[j])) } else if (words[j].indexOf("www") === 0 || has_domain(words[j])) { parsed_words.push(linkify("http://"+words[j])) } else parsed_words.push(words[j]) } parsed_lines.push( parsed_words.join(" ") ) } // return s.replace(/\n/g, '
') return parsed_lines.join("
") } function linkify(s) { var link = ''; var punctuation = ''; var end = s.length-1; // strip the terminal punctuation mark if it's a period or comma if (s.indexOf(".", end) === end || s.indexOf(",", end) === end) { punctuation = s.substr(end, 1); s = s.substr(0, end); } if (s.indexOf("twitter.com") !== -1) { var partz = s.split("/"); var uname = ''; if (partz[partz.length-1].length) uname = partz[partz.length-1]; else if (parts[-2].length) uname = partz[partz.length-2]; link = '@' + uname + ''; } else { // link = s.replace(URLregexp,"[$3]"); var match = URLregexp.exec(s); if (match && match.length == 6) { var url = match[0] || ""; var http = match[1] || ""; var www = match[2] || ""; var domain = match[3] || ""; var slash = match[4] || ""; var uri = match[5] ? match[5].replace(/\/?index.html$/, "") : ""; link = '[' + domain + ']'; } else { link = s.replace(URLregexp,"[$3]"); } } return link + punctuation; } var URL = { auth: { login: "/login", logout: "/logout", }, party: { list: "/api/party/list", view: "/api/party/view", edit: "/api/party/edit", }, user: { all: "/api/user/all", view: "/api/user/view", edit: "/api/user/edit", destroy: "/api/user/destroy", }, };