Files
neoCMS/cms/js/main.js
T

268 lines
12 KiB
JavaScript

var ifrDoc;
$(function () {
if (!$('#neoCMSDashScrollWrap').length) tempCache();
$('#neoCMSConfigRetry').bind('click', function () {
window.location.reload(true)
});
$('#neoCMSLoginWrap').css({display: "block", opacity: "0"}).fadeTo(600, 1.0, function () {
if ($.browser.msie) $(this, ifrDoc)[0].style.removeAttribute('filter');
overlay()
});
$(window).bind('resize', windowResize);
$('#neoCMSLoginForm').bind('submit', loginSubmit);
$('#neoCMSUsername input').focus();
$('#neoCMSHome').bind('click', function () {
checkURL(fpath())
});
fBrowseBind()
});
tempCache = function () {
$.ajax({url: "templates/editor.html", cache: true, dataType: "html"});
$.ajax({url: "templates/image-editor.html", cache: true, dataType: "html"});
$.ajax({url: "templates/video-editor.html", cache: true, dataType: "html"});
$.ajax({url: "templates/html-editor.html", cache: true, dataType: "html"});
$.ajax({url: "templates/link-editor.html", cache: true, dataType: "html"});
$.ajax({url: "templates/table-editor.html", cache: true, dataType: "html"});
$.ajax({url: "templates/prompt.html", cache: true, dataType: "html"});
$.ajax({url: "templates/upload.html", cache: true, dataType: "html"})
};
fBrowseBind = function () {
$('.neoCMSFBrowse').unbind('click').bind('click', function () {
linkFiles($(this).attr('rel'))
})
};
getIfrDoc = function () {
ifrDoc = $('#neoCMSPageSrc')[0];
ifrDoc = (ifrDoc.contentDocument) ? ifrDoc.contentDocument : ifrDoc.contentWindow.document
};
loginSubmit = function () {
if (loginValid()) {
var loginIframe;
try {
loginIframe = document.createElement('<iframe name="neoCMSLoginIframe" >')
} catch (ex) {
loginIframe = document.createElement('iframe')
}
$(loginIframe).attr({
id: 'neoCMSLoginIframe',
name: 'neoCMSLoginIframe',
application: 'yes'
}).css('display', 'none');
$('body').append(loginIframe);
$('#neoCMSLoginForm')[0].submit()
} else return false
};
loginValid = function () {
var user = $('#neoCMSUsername input').val(), ret = false;
if (user == '') $('#neoCMSUsername p').css('display', 'inline'); else $('#neoCMSUsername p').css('display', 'none');
if ($('#neoCMSPassword input').length) {
var pass = $('#neoCMSPassword input').val();
if (pass == '') $('#neoCMSPassword p').css('display', 'inline'); else $('#neoCMSPassword p').css('display', 'none');
if (user != '' && pass != '') ret = true;
return ret
} else {
if (user != '') ret = true;
return ret
}
};
loginIncorr = function (message) {
$('#neoCMSEnter p.error').html(message).css('display', 'block');
$('#neoCMSLoginIframe').remove()
};
windowResize = function () {
if ($('.neoCMSIcon, .neoCMSRepIcon', ifrDoc).length) destroyIcons();
if ($('#overlay').length) $('#overlay').css({width: $(window).width(), height: $(window).height()});
if ($('.neoCMSEle', ifrDoc).length) {
if ($('#neoCMSEditWrap').length) {
$('#neoCMSEditWrap').css('opacity', '0');
if (typeof (windowOrient == 'function')) windowOrient()
}
}
if (!$('#neoCMSLoginWrap, #neoCMSEditWrap, #neoCMSPrompt').length) {
if (!$('.neoCMSIcon, .neoCMSRepIcon', ifrDoc).length && $('[neocmsid]', ifrDoc).length) createIcons(true);
$('#neoCMSPageSrc').height($(window).height() - 60)
}
};
overlay = function (ele) {
if (!$('#overlay').length) {
$('<div/>').attr('id', 'overlay').height($(document).height()).width($(document).width()).appendTo('body').css({
display: 'block',
opacity: '0'
}).fadeTo(300, 0.55, function () {
if (ifrDoc) {
if ($('.neoCMSIcon, .neoCMSRepIcon', ifrDoc).length) destroyIcons();
if (ele) {
if (ele.tagName == 'IMG') imageEditBuilder(ele); else if (ele.tagName == 'OBJECT' || ele.tagName == 'EMBED') videoPrompt(ele); else createTextArea(ele)
}
}
})
} else if ($('#neoCMSEditWrap').length) $('#neoCMSEditWrap').addClass('disabled').prepend($('<div id="overlayEditWrap"></div>'))
};
promptOverlay = function () {
if ($('#neoCMSPrompt').length) $('#neoCMSPrompt').addClass('disabled').prepend($('<div id="overlayEditWrap"></div>'))
};
removeOverlay = function () {
$('#overlay').remove();
$('.neoCMSEle', ifrDoc).css('visibility', 'visible').removeClass('neoCMSEle');
$('.neoCMSEle').css('visibility', 'visible').removeClass('neoCMSEle')
};
cancel = function () {
var tinyDoc = getTinyDoc();
if ($('#neoCMSEditWrap').length && !$('#neoCMSPromptWrap').length) {
$('object, embed', tinyDoc).remove();
tinyMCE.execCommand('mceRemoveControl', false, 'neoCMSEditContent');
$(tinyDoc).remove();
$('#neoCMSEditWrap').remove();
$(window).unbind('keypress, keydown');
if ($('.neocmsRepeatArea', ifrDoc).length) neocmsRepBind();
removeOverlay();
$('object, embed', ifrDoc).removeClass('neoCMSFlash');
createIcons(true)
} else if ($('#neoCMSEditWrap').length && $('#neoCMSPromptWrap').length) {
$('#neoCMSPromptWrap, #neoCMSFilesWrap, #overlayEditWrap').remove();
keyHandler(false);
$('#neoCMSEditWrap').removeClass('disabled');
$('object, embed', tinyDoc).removeClass('neoCMSFlash')
} else {
$('#neoCMSPromptWrap, #neoCMSFilesWrap, #overlayEditWrap').remove();
$(window).unbind('keypress, keydown');
if (!$('.neoCMSIcon, .neoCMSRepIcon', ifrDoc).length && $('[neocmsid]', ifrDoc).length) createIcons(true);
removeOverlay();
$('object, embed', ifrDoc).removeClass('neoCMSFlash')
}
$('#neoCMSUploadImgClone, #neoCMSVidClone', ifrDoc).remove();
$(window).bind('resize', windowResize)
};
fpath = function () {
var preg = new RegExp('(\/' + neoCMSPath + '(\/[^\/]*|))$'), p = neoCMSGlobalPath.replace(preg, '/');
return p
};
linkBind = function () {
$('a', ifrDoc).not('.neoCMSIcon, .neoCMSRepIcon, [href="javascript:"], [href="javascript:void(0);"], [href="#"]').each(function () {
if (!$(this, ifrDoc).attr('rel').match(/lightbox/)) {
$(this, ifrDoc).unbind('click').bind('click', function () {
checkURL($(this, ifrDoc)[0].href);
return false
})
}
})
};
checkURL = function (linky) {
var linkHref = (linky.match('://')) ? linky.split('://') : linky;
$('#neoCMSFilesWrap').remove();
if (linkHref[0] == 'http' && linkHref[1]) {
if (linkHref[1].match('/')) linkHref = linkHref[1].split('/');
linkHref = linkHref[0];
var neoCMSLoc = window.location.href.split('//');
neoCMSLoc = neoCMSLoc[1].split('/');
neoCMSLoc = neoCMSLoc[0];
if (linkHref == neoCMSLoc || linkHref == 'www.' + neoCMSLoc) {
if ($('#neoCMSPageEdits .edit', ifrDoc).length) {
navAwayPrompt(linky, 'loc')
} else {
if ($('#neoCMSPageSrc').length) {
$.ajax({
type: "POST", url: "functions/getpage.php", data: "page=" + linky, success: function () {
if (frames['neoCMSPageSrc'].contentWindow) frames['neoCMSPageSrc'].contentWindow.location.href = linky; else frames['neoCMSPageSrc'].location.href = linky
}
})
} else {
$.ajax({
type: "POST", url: "../functions/getpage.php", data: "page=" + linky, success: function () {
window.location = '../'
}
})
}
}
} else navAwayPrompt(linky)
}
};
navAwayPrompt = function (lnk, loc) {
overlay();
if (!$('#neoCMSPrompt').length) {
$('body').append($('<div/>').attr('id', 'neoCMSPromptWrap').load('templates/prompt.html', function () {
var navTitle = (loc) ? 'You Have Unpublished Changes On This Page' : 'You Are Leaving neocms',
navTitle = (loc) ? 'Continue' : 'Leave neocms', navBtn = (loc) ? 'continue' : 'leave';
$('#neoCMSPrompt h4.neoCMSPromptTitle').html(navTitle);
$('#neoCMSPrompt p').html('Are you sure you want proceed? You will lose all your unpublished changes.');
$('#neoCMSPromptBtn').attr('title', navTitle).html(navBtn).bind('click', function () {
navAwaySubmit(lnk, loc)
});
$('#neoCMSCancelBtn').bind('click', cancel);
showPrompt('nodrag')
}))
}
};
navAwaySubmit = function (lnk, loc) {
if (loc) {
if (lnk == 'settings/') {
window.location = lnk
} else {
if (frames['neoCMSPageSrc'].contentWindow) frames['neoCMSPageSrc'].contentWindow.location.href = lnk; else frames['neoCMSPageSrc'].location.href = lnk
}
cancel()
} else window.location = lnk
};
linkFiles = function (target) {
$('body').prepend($('<div/>').attr('id', 'neoCMSFilesWrap').load(fpath() + neoCMSPath + '/templates/file-browser.html', function () {
overlay();
$('#neoCMSFilesWrap').css('display', 'block');
fileTarget = target;
fileBrowser(target);
promptOverlay()
}))
};
fileBrowser = function (target) {
var fileIframe,
type = (target.match(/#neoCMSImgAddress/)) ? 'img' : (target.match(/#neoCMSPages/)) ? 'pages' : 'all';
try {
fileIframe = document.createElement('<iframe name="neoCMSFileFrame" >')
} catch (ex) {
fileIframe = document.createElement('iframe')
}
$(fileIframe).attr({
id: 'neoCMSFileFrame',
name: 'neoCMSFileFrame',
src: fpath() + neoCMSPath + '/core/fileload.php?type=' + type,
application: 'yes'
}).css('display', 'none').appendTo('body')
};
fileOption = function (matches) {
$('#neoCMSFileULs').append(matches)
};
destroyFileLoader = function (type) {
$('#neoCMSFileLoading').remove();
if (type == 'img') $('#neoCMSFiles h2').html('Select the image you are looking for:'); else if (type == 'pages') $('#neoCMSFiles h2').html('Select the page you are looking for:'); else $('#neoCMSFiles h2').html('Select the file you are looking for:');
$('#neoCMSFClose').bind('click', linkClose);
if (type == 'pages') $('#neoCMSPagesUL li').unbind('click').bind('click', function () {
checkURL($(this).attr('href'));
return false
}); else if (type != 'none') $('#neoCMSFileULs li').unbind('click').bind('click', function () {
linkSel(this)
});
if (type == 'all') {
$('#filesTab').css('display', 'block');
$('#neoCMSFileULs ul').css('display', 'none');
$('#neoCMSPagesUL').css('display', 'block');
$('#pages').addClass('on');
$('#filesTab a').unbind('click').bind('click', function () {
$('#filesTab li.on').removeClass('on');
$(this).parent().addClass('on');
$('#neoCMSFileULs ul').css('display', 'none');
$($(this).attr('rel')).css('display', 'block')
})
} else $('#filesTab').css('display', 'none');
$('#neoCMSFileFrame').remove()
};
linkSel = function (t) {
var v = ($(t).find('p').length) ? $(t).find('p').html() : $(t).html();
$(fileTarget).val(v);
if (fileTarget == '#neoCMSImgAddress') imageSrc();
linkClose()
};
linkClose = function () {
$('#neoCMSFilesWrap, #neoCMSPrompt #overlayEditWrap').remove();
if (!$('#neoCMSEditWrap, #neoCMSPrompt').length) $('#overlay').remove();
$('#neoCMSPrompt').removeClass('disabled');
if ($('[neocmsid]', ifrDoc).length) createIcons(true)
};