/** * general javascript */ var xml = ''; var BrowserDetect = { init: function () { this.browser = this.searchString(this.dataBrowser) || "An unknown browser"; this.version = this.searchVersion(navigator.userAgent) || this.searchVersion(navigator.appVersion) || "an unknown version"; this.OS = this.searchString(this.dataOS) || "an unknown OS"; }, searchString: function (data) { for (var i=0;i"; $('#'+id).show('slow'); } function display_success(id,message){ if(document.getElementById(id).innerHTML.length != 0){ document.getElementById(id).innerHTML = "
"+message+"
"; if(document.getElementById(id).style.display == 'none'){ $('#'+id).show('slow'); } $("#" + id+ ' td').css("background-color","#99FF66"); $("#" + id+ ' td').animate({ backgroundColor: '#F4F4F4' }, { queue: true, duration: 1000 }); }else{ $('#'+id).hide('slow'); document.getElementById(id).innerHTML = "
"+message+"
"; $('#'+id).show('slow'); } } function clearFont() { code = wysiwyg.getHTMLContent(); code = code.replace(/])*face="([^"]*)"/gi,"<\/span>

' + desc + '<\/div>'; } function HideHelp(divid) { var div = document.getElementById(divid); div.style.display = 'none'; } // Client-Side XML Library API var req; var td = null; var ret = ""; var url = 'remote.php'; var counter =0; var what =''; function DoCallback(data) { // branch for native XMLHttpRequest object if (window.XMLHttpRequest) { req = new XMLHttpRequest(); req.onreadystatechange = processReqChange; req.open('POST', url, true); req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); req.send(data); // branch for IE/Windows ActiveX version } else if (window.ActiveXObject) { req = new ActiveXObject('Microsoft.XMLHTTP') if (req) { req.onreadystatechange = processReqChange; req.open('POST', url, true); req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); req.send(data); } } } function processReqChange() { // only if req shows 'loaded' if (req.readyState == 4) { // only if 'OK' if (req.status == 200) { eval(what); } else { alert('There was a problem retrieving the XML data:\n' + req.responseText); } } } function ProcessData(html) { ret = html; td.innerHTML = ret; document.getElementById("statusdiv").className = 'statusOff'; } function isdefined(variable) { return eval('(typeof('+variable+') != "undefined");'); } function getXMLData(name){ // we rely on a global variable called 'xml' if(isdefined('xml')){ return xml.getElementsByTagName(name)[0].firstChild.data; }else{ return ''; } } function getNextXMLData(name,i){ // we rely on a global variable called 'xml' if(isdefined('xml')){ return xml.getElementsByTagName(name)[i].firstChild.data; }else{ return ''; } } function DeleteArticleReturn(returned, ArticleId, Multi, counter, ContentType){ if(returned == 1){ // turn the row red, then make it fade away. it really portrays "DELETED". document.getElementById("tr"+ArticleId).className = 'GridRed'; $(document.getElementById("tr"+ArticleId)).hide("slow"); // get rid of the yellow status box document.getElementById("statusdiv").className = 'statusOff'; if(Multi == true){ MultiDelete(true, counter, ContentType); } }else{ alert("\n"); } } /* shared functions */ function toggleCheckboxes(master,formName){ if(formName == ''){ formName = 'ListForm'; } if(master.checked == true){ checkAll(formName); }else{ uncheckAll(formName); } } function checkAll(formName){ formObj = document.getElementById(formName); for (var i=0;i < formObj.length;i++) { fldObj = formObj.elements[i]; if (fldObj.type == 'checkbox') { // its a checkbox, toggle it to true fldObj.checked = true; } } } function uncheckAll(formName){ formObj = document.getElementById(formName); for (var i=0;i < formObj.length;i++) { fldObj = formObj.elements[i]; if (fldObj.type == 'checkbox') { // its a checkbox, toggle it to false fldObj.checked = false; } } } function checkSelectedBoxes(formName){ // load up the form of articles and navigate the input types // to find what we need, i.e. checkboxes formObj = document.getElementById(formName); for (var i=0;i < formObj.length;i++) { fldObj = formObj.elements[i]; if (fldObj.type == 'checkbox' && fldObj.checked == true) { // at least one check box is checked so we return true return true; } } // no check boxes are checked return false; } function BulkAction(ContentType,formName){ // ContentType = article or blog or news or comment if(document.getElementById("bulkaction").value == "none"){ // means no option has been chosen. // "none" is the default menu item that does nothing return false; }else{ // before we do any bulk action, make sure at least one checkbox is selected if(checkSelectedBoxes(formName)){ if(document.getElementById("bulkaction").value == "delete"){ if(!confirm("Are you sure you want to delete these items?")){ return false; } // delete option selected document.getElementById(formName).action = 'index.php?ToDo=delete'+ ContentType +'s'; document.getElementById(formName).submit(); } if(document.getElementById("bulkaction").value == "inrecent"){ if(!confirm("Are you sure you want to toggle the 'In Recent Articles List' status of these categories?")){ return false; } // delete option selected document.getElementById(formName).action = 'index.php?ToDo=inrecent'+ ContentType +'s'; document.getElementById(formName).submit(); } if(document.getElementById("bulkaction").value == "approve"){ if(!confirm("Are you sure you want to approve these items?")){ return false; } // delete option selected document.getElementById(formName).action = 'index.php?ToDo=approve'+ ContentType +'s'; document.getElementById(formName).submit(); } if(document.getElementById("bulkaction").value == "disapprove"){ if(!confirm("Are you sure you want to disapprove these items?")){ return false; } // delete option selected document.getElementById(formName).action = 'index.php?ToDo=disapprove'+ ContentType +'s'; document.getElementById(formName).submit(); } }else{ // no checkboxes were selected var SelectPageBulk = 'Please select one or more web pages before performing this action'; var SelectArticleBulk = 'Please select one or more articles before performing this action'; var SelectBlogBulk = 'Please select one or more blog posts before performing this action'; var SelectNewsBulk = 'Please select one or more news items before performing this action'; var SelectCategoryBulk = 'Please select one or more categories before performing this action'; eval("var AlertMsg = Select"+ ContentType +"Bulk;") alert(AlertMsg); } } } /* function MultiDelete(doneConfirm, counter, ContentType){ // if its a multi action, we don't want to "confirm delete" // for every single article we have check, only do it for the first one counter = counter + 1; if(doneConfirm == true){ doDelete(doneConfirm, counter, ContentType); return true; } if(confirm('WARNING: This will permanently remove the selected article. Are you sure you wish to do this?')) { doDelete(doneConfirm, counter, ContentType); } } */ function doDelete(doneConfirm,counter, ContentType){ // load up the form of articles and navigate the input types // to find what we need, i.e. checkboxes formObj = document.getElementById('ListForm'); for (var i=0;i < formObj.length;i++) { fldObj = formObj.elements[i]; if (fldObj.type == 'checkbox' && fldObj.checked == true && fldObj.name != "masterCheckbox") { // we have a checkbox input AND its checked, so we delete it if(ContentType == 'article'){ DeleteArticle(fldObj.value,true,counter,ContentType); }else if(ContentType == 'blog'){ DeleteBlog(fldObj.value,true,counter,ContentType); } // uncheck it just so the delete doesn't try to occur again fldObj.checked = false; return true; } } if(doneConfirm == true){ // we want another row to appear because we just deleted one! counter = counter - 1; window.setTimeout("UpdateList(" + counter + ",'" + ContentType + "')",2000); } } function SetCookie(cookieName,cookieValue,nDays) { var today = new Date(); var expire = new Date(); if(nDays==null || nDays==0){ nDays = 1; } expire.setTime(today.getTime() + 3600000*24*nDays); document.cookie = cookieName+"="+escape(cookieValue) + ";expires="+expire.toGMTString(); } function ReadCookie(n) { var cookiecontent = new String(); if(document.cookie.length > 0) { var cookiename = n+ '='; var cookiebegin = document.cookie.indexOf(cookiename); var cookieend = 0; if(cookiebegin > -1) { cookiebegin += cookiename.length; cookieend = document.cookie.indexOf(";",cookiebegin); if(cookieend < cookiebegin) { cookieend = document.cookie.length; } cookiecontent = document.cookie.substring(cookiebegin,cookieend); } } return unescape(cookiecontent); } function CloseTplNote(){ if(confirm("Are you sure you want to hide this message? To download new templates visit the \'Templates\' page then the \'Download Templates\' tab.")) { // Hide the cookie note for a year SetCookie("disableTemplateCheckingNotify", "true", 1); document.getElementById("tplNote").style.display = "none"; } } function UpdateWindow(){ var w = screen.availWidth; var h = screen.availHeight; var l = (w/2) - 250; var t = (h/2) - 250; var win = window.open("index.php?ToDo=databaseUpgrade&ForceStep1=true", "DatabaseUpgrade", "top="+t+",left="+l+",width=500,height=500,status=yes"); win.focus(); } /** * Blogs specific javascript */ function PreviewBlog(BlogId) { var l = screen.availWidth / 2 - 250; var t = screen.availHeight / 2 - 300; var win = window.open('index.php?ToDo=previewCompletedBlog&blogId='+BlogId, 'previewCompletedBlog', 'width=500,height=600,left='+l+',top='+t+',scrollbars=1'); } function ConfirmDeleteBlog(BlogId) { if(confirm('WARNING: This will permanently remove the selected blog entry. Are you sure you wish to do this?')) { document.location.href = 'index.php?ToDo=deleteBlog&blogId='+BlogId; } } function ConfirmDeleteBlog(BlogId) { if(confirm('WARNING: This will permanently remove the selected article. Are you sure you wish to do this?')) { // user has confirmed they want to delete this article document.getElementById("deleteBox"+BlogId).checked = true; document.getElementById('ListForm').action = 'index.php?ToDo=deleteBlogs'; document.getElementById('ListForm').submit(); } } /** * Articles Specific javascript */ var checkLink = 0; function ConfirmCancel() { if(confirm('%%GLOBAL_CancelMessage%%')) { document.location.href='index.php?ToDo=viewArticles'; } else { return false; } } function ShowArticleTab(T){ i = 0; document.getElementById("div" + T).style.display = ""; document.getElementById("tab" + T).className = "active"; while(document.getElementById("tab" + i) != null){ if(i != T){ if(BrowserDetect.browser == 'Firefox'){ document.getElementById("div" + i).style.height = "0"; document.getElementById("div" + i).style.overflow = "hidden"; } document.getElementById("div" + i).style.display = "none"; document.getElementById("tab" + i).className = ""; } i++; } if(BrowserDetect.browser == 'Firefox'){ document.getElementById("div" + T).style.height = ""; document.getElementById("div" + T).style.overflow = "visible"; } document.getElementById("currentTab").value = T; } function CheckAddArticleForm() { // Make sure that all of the form variables, etc are valid var f = document.getElementById('frmArticle'); if(document.getElementById('title').value.length == 0) { ShowArticleTab(0); alert('Please enter a title for this article.'); document.getElementById('title').focus(); document.getElementById('title').select(); return false; } if(wysiwyg.getHTMLContent() == " " || wysiwyg.getHTMLContent() == "
" || wysiwyg.getHTMLContent() == "" || wysiwyg.getHTMLContent() == " 
") { ShowArticleTab(0); alert('Please enter a short description.'); return false; } if(document.getElementById('category').selectedIndex == -1) { ShowArticleTab(0); alert('Please select a category.'); document.getElementById('category').focus(); return false; } if(document.getElementById('ArticleType_0').checked && numPages < 1) { if(wysiwyg2.getHTMLContent() == " " || wysiwyg2.getHTMLContent() == "
" || wysiwyg2.getHTMLContent() == "" || wysiwyg2.getHTMLContent() == " 
") { ShowArticleTab(0); alert('Please add some content to this article page before saving.'); return false; } } /* check the date */ if(!CheckValidDate($('#startday').selectedValues(), $('#startmonth').selectedValues(), $('#startyear').selectedValues())){ ShowArticleTab(1); alert('Your article\'s start date is invalid'); return false; } if(document.getElementById('expires').checked){ if(!CheckValidDate($('#endday').selectedValues(), $('#endmonth').selectedValues(), $('#endyear').selectedValues())){ ShowArticleTab(1); alert('Your article\'s expiry date is invalid'); return false; } } $("#related").selectOptions(/[0-9]*/i); // Everything is OK, return true return true; } function CheckAddNewPageForm(){ if(wysiwyg2.getHTMLContent() == " " || wysiwyg2.getHTMLContent() == "
" || wysiwyg2.getHTMLContent() == "" || wysiwyg2.getHTMLContent() == " 
") { alert('Please add some content to this article page before adding another one.'); return false; }else{ return true; } } function LaunchPreview(ArticleID) { var f = document.getElementById('frmArticle'); if(CheckAddArticleForm()) { var tText = f.title.value; var sText = wysiwyg.getHTMLContent(); document.frmPreview.t.value = tText; document.frmPreview.s.value = sText; var l = screen.availWidth / 2 - 250; var t = screen.availHeight / 2 - 300; var win = window.open('index.php?ToDo=previewArticle&articleId='+ArticleID, 'previewArticle', 'width=500,height=600,left='+l+',top='+t+',scrollbars=1'); } } function ToggleLink(LinkState) { checkLink = LinkState; if(LinkState == 0) document.getElementById("trLink").style.display = "none"; else document.getElementById("trLink").style.display = ""; } function FinishArticle() { document.location.href='index.php?ToDo=finishArticle&FromStep=1&articleId=%%GLOBAL_ArticleId%%' } function ArticleImageToggle(onlyEnabled){ var list = new Array; list[0] = 'artimage_url_row'; list[1] = 'artimage_file_row'; if(onlyEnabled == 'artimage_file_row'){ document.getElementById('FeatureImageFrame').style.display = ''; } if(onlyEnabled == 'artimage_file_row1'){ document.getElementById('FeatureImageFrame').style.display = 'none'; onlyEnabled = 'artimage_file_row'; } for(i=0;i -1) { // Remove the option from the old select from[from.selectedIndex] = null; } } function AddToRelated() { var from = document.getElementById('related_category_articles'); var to = document.getElementById('related'); var Duplicate = false; if (from.selectedIndex > -1) { // Check its not already there! for (i = 0; i <= to.options.length; i++){ if(to.options[i] != null){ if (to.options[i].value == from[from.selectedIndex].value) { Duplicate = true; break; } } } if(Duplicate == false){ // Add the option to the new select t = from[from.selectedIndex].text; v = from[from.selectedIndex].value; to.options[to.options.length] = new Option(t, v); } // Remove the option from the old select // from[from.selectedIndex] = null; } } function SetAsNext() { var from = document.getElementById('related_category_articles'); var toValue = document.getElementById('next'); var toText = document.getElementById('NextArticleField'); var Duplicate = false; if (from.selectedIndex > -1) { // Add the option to the new select v = from[from.selectedIndex].value; toValue.value = v; toText.innerHTML = '' + from[from.selectedIndex].text + ''; } document.getElementById('clearnext').style.display = 'inline'; } function SetAsPrev() { var from = document.getElementById('related_category_articles'); var toValue = document.getElementById('previous'); var toText = document.getElementById('PrevArticleField'); var Duplicate = false; if (from.selectedIndex > -1) { // Add the option to the new select v = from[from.selectedIndex].value; toValue.value = v; toText.innerHTML = '' + from[from.selectedIndex].text + ''; } document.getElementById('clearprev').style.display = 'inline'; } function ClearPrev(){ var toValue = document.getElementById('previous'); var toText = document.getElementById('PrevArticleField'); toValue.value = 0; toText.innerHTML = 'No Previous Article has been selected.'; document.getElementById('clearprev').style.display = 'none'; } function ClearNext(){ var toValue = document.getElementById('next'); var toText = document.getElementById('NextArticleField'); toValue.value = 0; toText.innerHTML = 'No Next Article has been selected.'; document.getElementById('clearnext').style.display = 'none'; } function CheckDelete(e){ var KeyID = (window.event) ? event.keyCode : e.keyCode; if(KeyID == 46 || KeyID == 8){ // 46 = Del Key, 8 = Backspace ob = document.getElementById('related'); selected = new Array(); while (ob.selectedIndex != -1) { ob.options[ob.selectedIndex] = null; } } } function OptionInSelect(id, select) { for (var i=0; i< document.getElementById(select).options.length; i++) { if (document.getElementById(select).options[i].value == id) { return true; } } return false; } function ArticlesList(selObj) { // Clear the questions list rel = document.getElementById("related_category_articles") rel.options.length = 0; cat = document.getElementById("related_category"); if (cat.selectedIndex > 0) { // Get the products using XML var catid = cat.options[cat.selectedIndex].value; rel.options[0] = new Option("Loading ...", "-1"); rel.options.length = 1; what = "ArticlesListReturn(req.responseXML)"; DoCallback("w=ArticleList&categoryid="+catid); }else{ } } function ArticlesListReturn(returned){ xml = returned.documentElement; var rel = document.getElementById('related_category_articles'); rel.options.length = 0; var status = getXMLData('status'); var title = ''; var id = ''; if(status == 0){ Alert("An error has occurred while trying to get a list of articles: " + errormsg); }else{ rel.options var count = 0; for (var x = 0; x < xml.getElementsByTagName('titles').length; x++){ title = getNextXMLData('titles',x); id = getNextXMLData('ids',x); rel.options[x] = new Option(title, id); title = ''; id = ''; } } } function ShowMoreAttachments() { document.getElementById("trMoreAttachments").style.display = "none"; document.getElementById("trAttachments").style.display = ""; } function ToggleExpiryDate(Status) { if(Status) { document.getElementById("expiry_time_row").style.display = ""; document.getElementById("expiry_date_row").style.display = ""; } else { document.getElementById("expiry_date_row").style.display = "none"; document.getElementById("expiry_time_row").style.display = "none"; } } function ToggleArticleRelatedAndSeries(){ var series = document.getElementById('articleseries').checked; var related = document.getElementById('articlerelated').checked; if(series && related){ document.getElementById('trSelector').style.display = ''; document.getElementById('trNext').style.display = ''; document.getElementById('trPrevious').style.display = ''; document.getElementById('seriesButtons').style.display = ''; document.getElementById('relatedButton').style.display = ''; document.getElementById('trRelatedArticles').style.display = ''; }else if(!series && related) { document.getElementById('trSelector').style.display = ''; document.getElementById('trNext').style.display = 'none'; document.getElementById('trPrevious').style.display = 'none'; document.getElementById('seriesButtons').style.display = 'none'; document.getElementById('relatedButton').style.display = ''; document.getElementById('trRelatedArticles').style.display = ''; } else if (series && !related) { document.getElementById('trSelector').style.display = ''; document.getElementById('trNext').style.display = ''; document.getElementById('trPrevious').style.display = ''; document.getElementById('seriesButtons').style.display = ''; document.getElementById('relatedButton').style.display = 'none'; document.getElementById('trRelatedArticles').style.display = 'none'; } else { document.getElementById('trSelector').style.display = 'none'; document.getElementById('trNext').style.display = 'none'; document.getElementById('trPrevious').style.display = 'none'; document.getElementById('seriesButtons').style.display = 'none'; document.getElementById('relatedButton').style.display = 'none'; document.getElementById('trRelatedArticles').style.display = 'none'; } } function ToggleContentTab(ContentState){ if(ContentState == 0){ document.getElementById("content_div").style.height = ""; document.getElementById("content_div").style.overflow = "visible"; document.getElementById("SummaryName").innerHTML = "Short Description"; document.getElementById("SummaryNameDesc").style.display = ""; }else{ document.getElementById("content_div").style.height = "1px"; document.getElementById("content_div").style.overflow = "hidden"; document.getElementById("SummaryName").innerHTML = "Content"; document.getElementById("SummaryNameDesc").style.display = "none"; } } function SaveAddNewPage(){ if(CheckAddArticleForm()){ if(CheckAddNewPageForm()){ document.getElementById('frmArticle').action = 'index.php?ToDo=SaveAddNewArticle#content'; document.getElementById('frmArticle').submit(); } } } function SaveArticle(){ if(CheckAddArticleForm()){ document.getElementById('frmArticle').action = 'index.php?ToDo=SaveArticle'; document.getElementById('frmArticle').submit(); } } function SaveArticleBottom(){ SaveArticle(); } function SaveArticlePage(){ if(CheckAddArticleForm()){ if(CheckAddNewPageForm()){ document.getElementById('frmArticle').action = 'index.php?ToDo=SaveArticle&Section=page#content'; document.getElementById('frmArticle').submit(); } } } function SaveAndExit(){ if(CheckAddArticleForm()){ document.getElementById('frmArticle').action = 'index.php?ToDo=SaveAndExitArticle'; document.getElementById('frmArticle').submit(); } } function CancelPage(){ document.getElementById('frmArticle').action =' index.php?ToDo=editArticlePage&articleId=%%GLOBAL_ArticleId%%&pageId=%%GLOBAL_CancelPageId%%#content'; document.getElementById('frmArticle').submit(); } function LoadUploadedImage(){ var FeatureImageThumbnailName = document.getElementById('FeatureImageThumbnailName').value; var FeatureImageName = document.getElementById('FeatureImageName').value; document.getElementById('FeatureImageFrame').style.display = 'none'; document.getElementById('FeatureImagePreview').src = '../content_images/'+FeatureImageThumbnailName; document.getElementById('FullImageLink').href = '../content_images/'+FeatureImageName; document.getElementById('FeatureImageOptions').style.display = ''; } function ToggleFeatureImageOption(enabled){ if(enabled == 1){ document.getElementById('ShowInArticleRow').style.display = 'none'; } else { document.getElementById('ShowInArticleRow').style.display = ''; } } function NewAuthor() { var l = screen.availWidth / 2 - 375; var t = screen.availHeight / 2 - 273; var win = window.open('index.php?ToDo=createUserPopup&SimpleTemplate=true', 'NewAuthor', 'width=750,height=545,left='+l+',top='+t+',resizable=yes,scrollbars=yes,toolbar=no'); } function NewCategory() { var l = screen.availWidth / 2 - 375; var t = screen.availHeight / 2 - 273; var win = window.open('index.php?ToDo=createCategoryPopup&SimpleTemplate=true', 'NewCategory', 'width=750,height=545,left='+l+',top='+t+',resizable=yes,scrollbars=yes,toolbar=no'); } function SetupTypes() { if(document.getElementById("ArticleType_0").checked) { ToggleLink(0); ToggleTitle(0); } else if(document.getElementById("ArticleType_1").checked) { ToggleLink(0); ToggleTitle(1); } } /** * */ function ChangePaging(object, todo, pagenumber) { pagingId = object.selectedIndex; pagingamount = object[pagingId].value; document.location = 'index.php?ToDo=' + todo + '&page=' + pagenumber + '&perpage='+ pagingamount; } function CheckValidDate(day, month, year){ year = parseInt(year); month = parseInt(month); day = parseInt(day); /* check the year is correct */ if( year < 1900 || year > 2100){ return false; } /* check the month is correct */ if(month < 1 || month > 12){ return false; } /* check the day is correct */ if(month == 2){ days = daysInFebruary(year); if(day > days) { return false; } }else{ var daysInMonth = DaysArray(12); if(day > daysInMonth[month]){ return false; } } // looks good! return true; } function daysInFebruary (year){ // February has 29 days in any year evenly divisible by four, // EXCEPT for centurial years which are not also divisible by 400. return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 ); } function DaysArray(n) { for (var i = 1; i <= n; i++) { this[i] = 31 if (i==4 || i==6 || i==9 || i==11) {this[i] = 30} if (i==2) {this[i] = 29} } return this } function CheckPermission(xml){ if($('permission', xml).text() == '0'){ tb_reset(); alert($('error', xml).text()); return false; }else{ return true; } }