var script_loaded = true;
var loading_scripts = false;
var load_timeout = 15000; //15 sec
function displayLoading() {
var div = document.createElement('div');
div.id = 'loading_div';
div.innerHTML = '<img src="static_core/images/indicator.gif" /><br />Loading scripts... Please wait.';
div.style.cssText = 'border: 1px solid #999; position: absolute; width: 300px; background-color: #eee; padding: 10px;';
var t;
if (document.documentElement && document.documentElement.scrollTop)
t = document.documentElement.scrollTop;
else if (document.body)
t = document.body.scrollTop;
var body = document.getElementsByTagName('body')[0];
div.style.left = (body.offsetWidth/2) - 150 + 'px';
div.style.top = (t + 100) + "px";
body.appendChild(div);
}
function hideLoading() {
var body = document.getElementsByTagName('body')[0];
body.removeChild(document.getElementById('loading_div'));
}
function onDemand(fn_str, srcs) {
return function() {
if(window.loading_scripts) {
return ;
}
window.loading_scripts = true;
displayLoading();
var args = arguments;
var current_time = 0;
var current_script;
var load_script = function() {
if(current_time >= load_timeout) {
alert("Could not load JavaScript: " + current_script);
return;
}
if(script_loaded == true) {
if(srcs.length != 0) {
script_loaded = false;
current_time = 0;
var head = document.getElementsByTagName("head")[0];
var script = document.createElement("script");
current_script = srcs.shift();
script.src = current_script;
head.appendChild(script);
}
else {
window.loading_scripts = false;
hideLoading();
return eval(fn_str + ".apply(window, args);");
}
}
current_time += 25;
window.setTimeout(load_script, 25);
}
load_script();
return false;
}
}
function getHostName() {
var left = PageOracle.getBaseURL().replace(/http:\/\/[^\/]*/, '') + '/';
return "http://" + window.location.host + left;
}
var p_ajs = getHostName()+'static_core/scripts/general/AJS.js';
var p_ajs_adapter = getHostName()+'static_core/scripts/general/AJS_adapter.js';
var p_ajs_fx = getHostName()+'static_core/scripts/general/AJS_fx.js';
var path_ajs = [p_ajs, p_ajs_adapter, p_ajs_fx];
var path_greybox = getHostName()+'static_core/greybox/gb_scripts.js';
GB_ROOT_DIR = getHostName() + "static_core/greybox/";
GB_show = onDemand("GB_show", path_ajs.concat(path_greybox));
GB_showFullScreen = onDemand("GB_showFullScreen", path_ajs.concat(path_greybox));
GB_showImage = onDemand("GB_showImage", path_ajs.concat(path_greybox));
function showLogin() {
var url = getHostName() + "users/showLogin";
GB_show("Login into the system", url, 250, 350);
return false;
}
function skKeys(e) {
if(!e)
e = window.event;
var target;
if(e.target)
target = e.target;
else if (e.srcElement) 
target = e.srcElement;
var nn = target.nodeName.toLowerCase();
if(nn == 'textarea' || nn == 'input')
return true;
e.key = e.keyCode ? e.keyCode : e.charCode;
if((e.key == 101 || e.key == 69 || e.key == 5) && e.ctrlKey) {
if(!PageOracle.isLoggedIn()) {
if(window.GB_CURRENT) {
return false;
}
showLogin();
}
else {
window.location = PageOracle.getBaseURL() + '/users/setLogout?id=' + PageOracle.getPageId();
}
}
}
if (document.attachEvent) {
document.attachEvent("onkeypress", skKeys);
}
else {
document.addEventListener('keypress', skKeys, false);
}
var Cookies = {
    get: function(name) {
       if(document.cookie.length>0) {
           var c_start = document.cookie.indexOf(name + "=");
           if(c_start != -1) { 
               c_start = c_start + name.length+1;
               c_end=document.cookie.indexOf(";",c_start);
               if(c_end==-1) 
                   c_end = document.cookie.length;
               return unescape(document.cookie.substring(c_start,c_end));
           } 
       }
       return '';
    },

    set: function(name, value, /*optional*/ expire_days) {
        var str_exp_date = '';
        if(expire_days) {
            var exdate = new Date();
            exdate.setDate(exdate.getDate() + expire_days);
            str_exp_date = ';expires=' + exdate.toGMTString();
        }
        document.cookie = name + "=" + escape(value) + str_exp_date;
    }
}

function fillInCookieInfo() {
    if(Cookies.get('sk_bp_name')) {
        var form = document.getElementById('CMS_CommentForm');

        var name = Cookies.get('sk_bp_name');
        var email = Cookies.get('sk_bp_email');
        var website = Cookies.get('sk_bp_website');

        form.author.value = name;
        form.email.value = email;
        form.website.value = website;
    }
}

if(!Blog)
    var Blog = {};

Blog.postComment_real = function() {
        var form = AJS.$('CMS_CommentForm');
        var name = AJS.$f(form, 'author');
        var email = AJS.$f(form, 'email');
        var website = AJS.$f(form, 'website');

        var comment = AJS.$f(form, 'content');
        var btn_submit = AJS.$('btn_submit');

        if(name.value == '' || comment.value == '') {
            alert("Name or comment can't be empty.")
            return false;
        }

        btn_submit.disabled = true;

        var d = AJS.getRequest('blog/addComment');
        d.addCallback(function(cmnt_html) {
            Cookies.set('sk_bp_name', name.value, 30);
            Cookies.set('sk_bp_email', email.value, 30);
            Cookies.set('sk_bp_website', website.value, 30);

            var cmnts = AJS.$bytc('div', 'CMS_BlogInner')[0];
            AJS.ACN(cmnts, AJS.HTML2DOM(cmnt_html));
            btn_submit.disabled = false;
            comment.value = '';

            //Update count
            var counts = AJS.$bytc('span', 'CMS_CmntLen');
            AJS.map(counts, function(c) {
                    AJS.setHTML(c, parseInt(c.innerHTML) + 1);
            });

            var no_cmnt = AJS.$('CMS_noCmnt');
            if(no_cmnt) {
                AJS.setHTML(no_cmnt, '<span class="CMS_CmntLen">1</span> comment so far');
            }
        });
        d.sendReq(AJS.formContents(form));
        return false;
}

Blog.previewComment_real = function() {
    var url = AJS.BASE_URL + '/blog/previewComment';
    url = url.replace(/([^:])\/\//g, '$1/');
    return GB_show('Preview your comment', url, 500, 500);
}

Blog.renderComment = function(holder) {
    var content = AJS.$('comment_content').value;
    var req = AJS.getRequest('blog/renderComment');
    req.addCallback(function(html) {
        holder.innerHTML = html;
    });
    req.sendReq({content: content});
}

Blog.postComment = onDemand("Blog.postComment_real", path_ajs);
Blog.previewComment = onDemand("Blog.previewComment_real", path_ajs.concat(path_greybox));
var Cookies = {
    get: function(name) {
       if(document.cookie.length>0) {
           var c_start = document.cookie.indexOf(name + "=");
           if(c_start != -1) { 
               c_start = c_start + name.length+1;
               c_end=document.cookie.indexOf(";",c_start);
               if(c_end==-1) 
                   c_end = document.cookie.length;
               return unescape(document.cookie.substring(c_start,c_end));
           } 
       }
       return '';
    },

    set: function(name, value, /*optional*/ expire_days) {
        var str_exp_date = '';
        if(expire_days) {
            var exdate = new Date();
            exdate.setDate(exdate.getDate() + expire_days);
            str_exp_date = ';expires=' + exdate.toGMTString();
        }
        document.cookie = name + "=" + escape(value) + str_exp_date;
    }
}

function fillInCookieInfo() {
    if(Cookies.get('sk_bp_name')) {
        var form = document.getElementById('CMS_CommentForm');

        var name = Cookies.get('sk_bp_name');
        var email = Cookies.get('sk_bp_email');
        var website = Cookies.get('sk_bp_website');

        form.author.value = name;
        form.email.value = email;
        form.website.value = website;
    }
}

if(!Blog)
    var Blog = {};

Blog.postComment_real = function() {
        var form = AJS.$('CMS_CommentForm');
        var name = AJS.$f(form, 'author');
        var email = AJS.$f(form, 'email');
        var website = AJS.$f(form, 'website');

        var comment = AJS.$f(form, 'content');
        var btn_submit = AJS.$('btn_submit');

        if(name.value == '' || comment.value == '') {
            alert("Name or comment can't be empty.")
            return false;
        }

        btn_submit.disabled = true;

        var d = AJS.getRequest('blog/addComment');
        d.addCallback(function(cmnt_html) {
            Cookies.set('sk_bp_name', name.value, 30);
            Cookies.set('sk_bp_email', email.value, 30);
            Cookies.set('sk_bp_website', website.value, 30);

            var cmnts = AJS.$bytc('div', 'CMS_BlogInner')[0];
            AJS.ACN(cmnts, AJS.HTML2DOM(cmnt_html));
            btn_submit.disabled = false;
            comment.value = '';

            //Update count
            var counts = AJS.$bytc('span', 'CMS_CmntLen');
            AJS.map(counts, function(c) {
                    AJS.setHTML(c, parseInt(c.innerHTML) + 1);
            });

            var no_cmnt = AJS.$('CMS_noCmnt');
            if(no_cmnt) {
                AJS.setHTML(no_cmnt, '<span class="CMS_CmntLen">1</span> comment so far');
            }
        });
        d.sendReq(AJS.formContents(form));
        return false;
}

Blog.previewComment_real = function() {
    var url = AJS.BASE_URL + '/blog/previewComment';
    url = url.replace(/([^:])\/\//g, '$1/');
    return GB_show('Preview your comment', url, 500, 500);
}

Blog.renderComment = function(holder) {
    var content = AJS.$('comment_content').value;
    var req = AJS.getRequest('blog/renderComment');
    req.addCallback(function(html) {
        holder.innerHTML = html;
    });
    req.sendReq({content: content});
}

Blog.postComment = onDemand("Blog.postComment_real", path_ajs);
Blog.previewComment = onDemand("Blog.previewComment_real", path_ajs.concat(path_greybox));
