﻿var ACTION_ACCOUNT = "account/"; var ACTION_READ = "read/"; var ACTION_SEARCH = "search/"; var ACTION_UPLOAD = "upload/"; var ACTION_WRITE = "write/"; var FIELD_ERROR = "error"; var FIELD_PAGE = "page"; var FIELD_SUCCESS = "result"; var FIELD_TITLE = "title"; var INPUT_ADMIN = "admin"; var INPUT_ARGUMENT = "argument"; var INPUT_ARTICLE_ID = "articleId"; var INPUT_COMMENT = "commentText"; var INPUT_COMMENTS_ENABLED = "commentsEnabled"; var INPUT_DELETE = "delete"; var INPUT_DELETE_PHOTO = "deletePhoto"; var INPUT_DESCRIPTION = "description"; var INPUT_EMAIL = "email"; var INPUT_ID = "id"; var INPUT_INPUT = "input"; var INPUT_KEYWORDS = "keywords"; var INPUT_NAME = "name"; var INPUT_PAGE = "page"; var INPUT_PASSWORD = "password"; var INPUT_PASSWORD_CONFIRM = "passwordConfirm"; var INPUT_PUBLISH = "publish"; var INPUT_SEARCH = "search"; var INPUT_SIGN_IN_EMAIL = "signInEmail"; var INPUT_SIGN_IN_PASSWORD = "signInPassword"; var INPUT_SUBMIT = "submit"; var INPUT_SUBTITLE = "subtitle"; var INPUT_SUBSCRIBE = "subscribed"; var INPUT_TAG_LIST = "tagList"; var INPUT_TAG_SELECT = "tagSelect"; var INPUT_TEXT = "text"; var INPUT_TITLE = "title"; var INPUT_UPLOAD = "upload"; var INPUT_URL = "url"; var LOADING = "One sec..."; var UPLOADING = "Uploading, please wait..."; var SERVER_ERROR = "A server error occurred"; var SOURCE_FORM = "form"; var SOURCE_LINK = "link"; var SOURCE_LINKS = "links"; var SOURCE_LIST = "list"; var SOURCE_LOAD = "load"; var TARGET_ARTICLES = "articles"; var TARGET_BUFFER = "buffer"; var TARGET_COMMENTS = "comments"; var TARGET_COMMENT_COUNT = "commentCount"; var TARGET_COMMENT_COUNT_ARTICLE = "commentCountArticle"; var TARGET_COMMENT_FORM = "commentForm"; var TARGET_COMMENT_ERROR = "commentError"; var TARGET_CONTENT = "leftColumn"; var TARGET_FORM_ERROR = "formError"; var TARGET_LINK_ERROR = "linkError"; var TARGET_LINKS = "links"; var TARGET_LIST_ERROR = "listError"; var TARGET_PAGE = "pagination"; var TARGET_SEARCH_ERROR = "searchError"; var TARGET_SUBSCRIBE = "subscribe"; var TARGET_UPLOAD = "uploadedFile"; var TYPE_ACTIVATE = "activate"; var TYPE_ARTICLE = "article"; var TYPE_AUTHOR_LIST = "authorList"; var TYPE_COMMENT = "comment"; var TYPE_ENCRYPT = "encrypt"; var TYPE_FORGOT_PASSWORD = "forgotPassword"; var TYPE_PROFILE = "profile"; var TYPE_REGISTER = "register"; var TYPE_SEARCH = "search"; var TYPE_SIGN_IN = "signIn"; var TYPE_SIGN_OUT = "signOut"; var TYPE_SUBSCRIBE = "subscribe"; var TYPE_TAGS = "tags"; var TYPE_UPLOAD = "upload"; var UPLOAD_FILE_LIST = "fileList"; var UPLOAD_FORM = "uploadForm"; var UPLOAD_WINDOW = "uploadWindow"; var locked = true; var errorTarget; var successTarget; var signingIn = false; var loadingArticles = false; var targetIsComment = false; var sharethisLoaded = false; $(document).ready(onLoad); function onLoad() { lock(false); onClick(SOURCE_LOAD, TYPE_SIGN_IN); if ($("#" + TARGET_BUFFER)) $("#" + TARGET_BUFFER).html("") }; function onKeyUp(e, a) { clearMessages(); if ((e.keyCode ? e.keyCode : e.which) == 13) onClick(SOURCE_FORM, a) }; function onClick(b, c, d, e) { var f = {}; var g; if (!locked) { lock(true); switch (c) { case TYPE_ACTIVATE: g = ACTION_ACCOUNT; f[TYPE_ACTIVATE] = true; successTarget = TARGET_CONTENT; if (b == SOURCE_FORM) { errorTarget = TARGET_FORM_ERROR; f[INPUT_EMAIL] = $("#" + INPUT_EMAIL).val() } else { errorTarget = TARGET_LINK_ERROR }; break; case TYPE_ARTICLE: if (b == SOURCE_LOAD) { g = ACTION_READ; f[INPUT_ARGUMENT] = argument; f[INPUT_PAGE] = page; errorTarget = TARGET_ARTICLES; successTarget = TARGET_ARTICLES; loadingArticles = true } else { g = ACTION_WRITE; f[TYPE_ARTICLE] = true; f[INPUT_ID] = d; f[INPUT_DELETE] = (e == null) ? false : e; successTarget = TARGET_CONTENT; if (b == SOURCE_FORM) { errorTarget = TARGET_FORM_ERROR; var h = ""; $("#" + INPUT_TAG_SELECT + ":checked").each(function () { h += ($(this).val()) + "," }); f[INPUT_SUBMIT] = $("#" + INPUT_SUBMIT).val(); if ($("#" + INPUT_SUBMIT).val() != "Delete") { f[INPUT_ID] = $("#" + INPUT_ID).val(); f[INPUT_PUBLISH] = $("#" + INPUT_PUBLISH).is(":checked"); f[INPUT_COMMENTS_ENABLED] = $("#" + INPUT_COMMENTS_ENABLED).is(":checked"); f[INPUT_TITLE] = $("#" + INPUT_TITLE).val(); f[INPUT_SUBTITLE] = $("#" + INPUT_SUBTITLE).val(); f[INPUT_DESCRIPTION] = $("#" + INPUT_DESCRIPTION).val(); f[INPUT_KEYWORDS] = $("#" + INPUT_KEYWORDS).val(); f[INPUT_TAG_SELECT] = h; f[INPUT_TAG_LIST] = $("#" + INPUT_TAG_LIST).val(); f[INPUT_TEXT] = $("#" + INPUT_TEXT).val() } } else { errorTarget = TARGET_CONTENT } }; break; case TYPE_AUTHOR_LIST: g = ACTION_ACCOUNT; f[TYPE_AUTHOR_LIST] = true; errorTarget = TARGET_LINK_ERROR; successTarget = TARGET_CONTENT; break; case TYPE_COMMENT: g = ACTION_WRITE; f[TYPE_COMMENT] = true; if ($("#" + INPUT_ARTICLE_ID)) f[INPUT_ARTICLE_ID] = $("#" + INPUT_ARTICLE_ID).val(); if (b == SOURCE_LOAD && $("#" + TARGET_COMMENT_FORM)) $("#" + TARGET_COMMENT_FORM).html(""); errorTarget = TARGET_COMMENT_ERROR; successTarget = TARGET_COMMENT_FORM; if (b == SOURCE_FORM) { f[INPUT_SUBMIT] = true; if (d) { f[INPUT_ID] = d; if (e) { f[INPUT_DELETE] = true } else { if ($("#" + d + INPUT_TEXT)) f[INPUT_TEXT] = $("#" + d + INPUT_TEXT).val() }; successTarget = d; errorTarget = d + TARGET_FORM_ERROR } else { f[INPUT_TEXT] = $("#" + INPUT_TEXT).val() } } else if (b == SOURCE_LINK) { $("#" + TARGET_BUFFER).children().each(function () { if ($(this).attr("id").substring(0, 7) == "comment") { var a = $(this).attr("id").substring(7); if ($("#" + a)) $("#" + a).html($(this).html()); $(this).remove() } }); f[INPUT_ID] = d; if (e) f[INPUT_DELETE] = true; errorTarget = d + "Error"; successTarget = d; targetIsComment = true }; break; case TYPE_ENCRYPT: g = ACTION_ACCOUNT; f[TYPE_ENCRYPT] = true; successTarget = TARGET_CONTENT; if (b == SOURCE_FORM) { errorTarget = TARGET_FORM_ERROR; f[INPUT_INPUT] = $("#" + INPUT_INPUT).val() } else { errorTarget = TARGET_LINK_ERROR }; break; case TYPE_FORGOT_PASSWORD: g = ACTION_ACCOUNT; f[TYPE_FORGOT_PASSWORD] = true; successTarget = TARGET_CONTENT; if (b == SOURCE_FORM) { errorTarget = TARGET_FORM_ERROR; f[INPUT_EMAIL] = $("#" + INPUT_EMAIL).val() } else { errorTarget = TARGET_LINK_ERROR }; break; case TYPE_PROFILE: g = ACTION_ACCOUNT; f[TYPE_PROFILE] = true; f[INPUT_ID] = (d == null) ? $("#" + INPUT_ID).val() : d; successTarget = TARGET_CONTENT; switch (b) { case SOURCE_LINK: errorTarget = TARGET_LINK_ERROR; break; case SOURCE_LIST: errorTarget = TARGET_LIST_ERROR; break; case SOURCE_FORM: errorTarget = TARGET_FORM_ERROR; f[INPUT_ADMIN] = $("#" + INPUT_ADMIN) == null ? false : $("#" + INPUT_ADMIN).is(":checked"); f[INPUT_DELETE] = $("#" + INPUT_DELETE) == null ? false : $("#" + INPUT_DELETE).is(":checked"); f[INPUT_DELETE_PHOTO] = $("#" + INPUT_DELETE_PHOTO) == null ? false : $("#" + INPUT_DELETE_PHOTO).is(":checked"); f[INPUT_EMAIL] = $("#" + INPUT_EMAIL).val(); f[INPUT_URL] = $("#" + INPUT_URL).val(); f[INPUT_NAME] = $("#" + INPUT_NAME).val(); f[INPUT_PASSWORD] = $("#" + INPUT_PASSWORD).val(); f[INPUT_PASSWORD_CONFIRM] = $("#" + INPUT_PASSWORD_CONFIRM).val(); f[INPUT_SUBMIT] = $("#" + INPUT_SUBMIT).val(); break }; break; case TYPE_REGISTER: g = ACTION_ACCOUNT; f[TYPE_REGISTER] = true; successTarget = TARGET_CONTENT; if (b == SOURCE_FORM) { errorTarget = TARGET_FORM_ERROR; f[INPUT_EMAIL] = $("#" + INPUT_EMAIL).val(); f[INPUT_NAME] = $("#" + INPUT_NAME).val(); f[INPUT_PASSWORD] = $("#" + INPUT_PASSWORD).val(); f[INPUT_PASSWORD_CONFIRM] = $("#" + INPUT_PASSWORD_CONFIRM).val(); f[INPUT_SUBMIT] = $("#" + INPUT_SUBMIT).val() } else { errorTarget = TARGET_LINK_ERROR }; break; case TYPE_SEARCH: g = ACTION_SEARCH; f[TYPE_SEARCH] = true; errorTarget = TARGET_SEARCH_ERROR; successTarget = TARGET_CONTENT; f[INPUT_SEARCH] = $("#" + INPUT_SEARCH).val(); break; case TYPE_SIGN_IN: signingIn = true; g = ACTION_ACCOUNT; f[TYPE_SIGN_IN] = true; errorTarget = TARGET_LINK_ERROR; successTarget = TARGET_LINKS; if (b == SOURCE_FORM) { f[INPUT_SIGN_IN_EMAIL] = $("#" + INPUT_SIGN_IN_EMAIL).val(); f[INPUT_SIGN_IN_PASSWORD] = $("#" + INPUT_SIGN_IN_PASSWORD).val() }; break; case TYPE_SIGN_OUT: g = ACTION_ACCOUNT; f[TYPE_SIGN_OUT] = true; errorTarget = TARGET_LINK_ERROR; successTarget = TYPE_SIGN_OUT; break; case TYPE_SUBSCRIBE: g = ACTION_ACCOUNT; f[TYPE_SUBSCRIBE] = true; f[INPUT_ARTICLE_ID] = d; f[INPUT_SUBSCRIBE] = e; errorTarget = TARGET_SUBSCRIBE; successTarget = TARGET_SUBSCRIBE; break; case TYPE_TAGS: g = ACTION_WRITE; f[TYPE_TAGS] = true; successTarget = TARGET_CONTENT; if (b == SOURCE_FORM) { errorTarget = TARGET_FORM_ERROR; f[INPUT_TAG_LIST] = $("#" + INPUT_TAG_LIST).val() } else { errorTarget = TARGET_LINK_ERROR }; break } }; if ($("#" + errorTarget) && f && g) { var i = LOADING; if (errorTarget == TARGET_CONTENT) { $("#" + TARGET_ARTICLES).appendTo("#" + TARGET_BUFFER); $("#" + TARGET_CONTENT).html(f[FIELD_SUCCESS]); i = "<div id=\"" + TARGET_FORM_ERROR + "\">" + LOADING + "</div>" } if (errorTarget == TARGET_SUBSCRIBE) i = "<span class=\"subscribeError\">" + LOADING + "</span>"; $("#" + errorTarget).html(i); $("#" + errorTarget).css("visibility", "visible"); $.ajax({ data: f, dataType: "json", error: onError, success: onSuccess, type: "POST", url: $("#baseUrl").val() + g }) } else { lock(false) } }; function onSuccess(a, b, c) { lock(false); clearMessages(); var d = false; if (a[FIELD_ERROR]) { $("#" + errorTarget).css("visibility", "visible"); $("#" + errorTarget).html(a[FIELD_ERROR]); loadingArticles = false; signingIn = false; targetIsComment = false } else { if (a[FIELD_SUCCESS] == "delete") { if ($("#" + successTarget + "Form")) $("#" + successTarget + "Form").remove(); if ($("#" + errorTarget)) $("#" + errorTarget).remove(); if ($("#" + successTarget)) $("#" + successTarget).remove() }; if (targetIsComment) { if ($("#" + errorTarget)) $("#" + errorTarget).html(""); if ($("#" + TARGET_BUFFER) && $("#" + successTarget)) $("#" + TARGET_BUFFER).append("<div id=\"comment" + successTarget + "\">" + $("#" + successTarget).html() + "</div>") } switch (successTarget) { case TYPE_SIGN_OUT: if ($("#" + TARGET_LINKS)) $("#" + TARGET_LINKS).html(""); if ($("#" + TARGET_ARTICLES) && $("#" + TARGET_CONTENT)) { $("#" + TARGET_ARTICLES).appendTo("#" + TARGET_BUFFER); $("#" + TARGET_CONTENT).html(""); $("#" + TARGET_ARTICLES).appendTo("#" + TARGET_CONTENT) }; d = true; clearTargets(); break; case TARGET_CONTENT: if ($("#" + TARGET_ARTICLES)) $("#" + TARGET_ARTICLES).appendTo("#" + TARGET_BUFFER); if ($("#" + TARGET_CONTENT)) $("#" + TARGET_CONTENT).html(a[FIELD_SUCCESS]); clearTargets(); if ($("#" + TARGET_PAGE)) $("#" + TARGET_PAGE).html((a[FIELD_PAGE]) ? a[FIELD_PAGE] : ""); break; default: if ($("#" + successTarget)) $("#" + successTarget).html(a[FIELD_SUCCESS]); clearTargets(); if (loadingArticles && $("#" + TARGET_COMMENT_FORM) && successTarget != TARGET_COMMENT_FORM) { loadingArticles = false; onClick(SOURCE_LOAD, TYPE_COMMENT) } if (signingIn && $("#" + TARGET_ARTICLES)) onClick(SOURCE_LOAD, TYPE_ARTICLE); if ($("#" + TARGET_PAGE)) $("#" + TARGET_PAGE).html((a[FIELD_PAGE]) ? a[FIELD_PAGE] : ""); break } }; signingIn = false; targetIsComment = false; if (d) onClick(SOURCE_LOAD, TYPE_SIGN_IN); if (a[FIELD_TITLE]) document.title = a[FIELD_TITLE]; var e = $("#comments").children(".comment").length; e += (e == "1") ? " comment" : " comments"; if ($("#" + TARGET_COMMENT_COUNT)) $("#" + TARGET_COMMENT_COUNT).html(e); if ($("#" + TARGET_COMMENT_COUNT_ARTICLE)) $("#" + TARGET_COMMENT_COUNT_ARTICLE).html(e) }; function onError(a, b, c) { loadingArticles = false; signingIn = false; targetIsComment = false; lock(false); clearMessages(); if ($("#" + errorTarget)) { $("#" + errorTarget).html(SERVER_ERROR); if (errorTarget == TARGET_LINK_ERROR || errorTarget == TARGET_LIST_ERROR) $("#" + errortarget).css("visibility", "visible") }; clearTargets() }; function uploadFile() { if (!locked) { lock(true); if ($("#" + INPUT_UPLOAD) && $("#" + TARGET_UPLOAD) && $("#" + UPLOAD_FORM) && $("#" + UPLOAD_WINDOW)) { $("#" + TARGET_UPLOAD).html(UPLOADING); $("#" + UPLOAD_FORM).submit() } } }; function onUpload() { lock(false); if ($("#" + INPUT_UPLOAD) && $("#" + TARGET_UPLOAD) && $("#" + UPLOAD_FORM) && $("#" + UPLOAD_WINDOW)) { $("#" + INPUT_UPLOAD).val(""); var a = $("#" + UPLOAD_WINDOW).contents().find("#" + UPLOAD_FILE_LIST).html(); if (a != null) $("#" + TARGET_UPLOAD).html("<div id=\"" + UPLOAD_FILE_LIST + "\">" + a + "</div>") } }; function clearMessages() { if ($("#" + TARGET_FORM_ERROR)) $("#" + TARGET_FORM_ERROR).html(""); if ($("#searchError")) $("#searchError").html(""); if ($("#" + TARGET_LIST_ERROR)) { $("#" + TARGET_LIST_ERROR).html(""); $("#" + TARGET_LIST_ERROR).css("visibility", "hidden") }; if ($("#" + TARGET_LINK_ERROR)) { $("#" + TARGET_LINK_ERROR).html(""); $("#" + TARGET_LINK_ERROR).css("visibility", "hidden") }; if ($("#" + TARGET_COMMENT_ERROR)) $("#" + TARGET_COMMENT_ERROR).html("") }; function clearTargets() { errorTarget = ""; successTarget = "" }; function lock(a) { locked = a; if (locked) { if ($("#" + INPUT_SUBMIT)) $("#" + INPUT_SUBMIT).attr("class", "busy"); if ($("#searchSubmit")) $("#searchSubmit").attr("class", "busy"); if ($("#signInSubmit")) $("#signInSubmit").attr("class", "busy") } else { if ($("#" + INPUT_SUBMIT)) $("#" + INPUT_SUBMIT).attr("class", "ready"); if ($("#searchSubmit")) $("#searchSubmit").attr("class", "ready"); if ($("#signInSubmit")) $("#signInSubmit").attr("class", "ready") } }; function addMarkup(a, b) { $("#" + b).addMarkup(a) };
