
function get_post(post_id, post_tag, num, callFrom) {
    document.getElementById("temp_login").innerHTML = '';

    if (post_id != '') {
        var sBody = "post_id=" + encodeURIComponent(post_id);
    } else if (post_tag != '') {
        var sBody = "post_tag=" + encodeURIComponent(post_tag);
    } else {
        var sBody = '';
    }

    if (num != '') {
        if (sBody != '') {
            sBody = sBody + '&num=' + num;
        } else {
            sBody = 'num=' + num;
        }
    }


    var oXHR = createXHR();
    oXHR.open("post", "/s9/blog/bp_get_post.php", true);


    oXHR.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    oXHR.setRequestHeader("Content-length", sBody.length);
    oXHR.setRequestHeader("Connection", "close");

    oXHR.onreadystatechange = function() {
        if (oXHR.readyState < 4) {

        }
        if (oXHR.readyState == 4) {
            if (oXHR.status == 200) {
                var xmlBack = oXHR.responseXML;
                display_post(xmlBack, callFrom);


            } else {

                alert('error:' + oXHR.responseText);
            }
        }
    };

    //Send the request
    oXHR.send(sBody);

}

//AJAX createXHR function
function createXHR() {
    if (typeof XMLHttpRequest != "undefined") {
        return new XMLHttpRequest();
    } else if (window.ActiveXObject) {
        var aVersions = ["MSXML2.XMLHttp.6.0", "MSXML2.XMLHttp.3.0"];

        for (var i = 0; i < aVersions.length; i++) {
            try {
                var oXHR = new ActiveXObject(aVersions[i]);
                return oXHR;
            } catch (oError) {
                //Do nothing
            }
        }
    }
}

function display_post(xmlDoc, callFrom) {

    var xmlrows = xmlDoc.getElementsByTagName("Error");
    if (xmlrows.length > 0) {
        var xmlcells = xmlrows[0].getElementsByTagName("Message");
        var strMessage = ""
        for (var i = 0; i < xmlcells.length; i++) {
            if (xmlcells[i].firstChild == null) {
                strMessage += "An error occurred";
            } else {
                strMessage += xmlcells[i].firstChild.data;
                alert(strMessage);
            }
        }
    } else {

        var div_bp;
        var div_title;
        var div_post;
        var div_infoRow;
        var div_tagRow;
        var div_tagCell;

        var col_left = document.getElementById("temp_login");
        var xmlEntries = xmlDoc.getElementsByTagName("Entry");
        for (numEntry = 0; numEntry < xmlEntries.length; numEntry++) {

            var xmlblog_entries_ID = xmlEntries[numEntry].getElementsByTagName("blog_entries_ID");
            var xmlEntry = xmlEntries[numEntry].getElementsByTagName("Post");
            var xmlTitle = xmlEntries[numEntry].getElementsByTagName("Title");
            var xmlEntry_Date = xmlEntries[numEntry].getElementsByTagName("Entry_Date");
            var xmlAuthor = xmlEntries[numEntry].getElementsByTagName("author");


            if (xmlblog_entries_ID[0].firstChild != null) {
                var blog_entries_ID = xmlblog_entries_ID[0].firstChild.data;
            }
            if (xmlEntry[0].firstChild != null) {
                var Entry = "";
                for (var childLen = 0; childLen < xmlEntry[0].childNodes.length; childLen++) {
                    Entry += xmlEntry[0].childNodes[childLen].data;
                }
            }
            if (xmlTitle[0].firstChild != null) {
                var Title = xmlTitle[0].firstChild.data;
            }
            if (xmlEntry_Date[0].firstChild != null) {
                var Entry_Date = xmlEntry_Date[0].firstChild.data;
            }


            var div_bp = document.createElement("div");
            //div_bp.className='s9_div_bp';
            col_left.appendChild(div_bp);

            var div_title = document.createElement("div");
            div_title.innerHTML = Title;
            div_bp.appendChild(div_title);

            var div_infoRow = document.createElement("div");
            div_bp.appendChild(div_infoRow);

            //format date, function should be consolidated to common function page

            var dow = Array('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday');
            var months = Array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December');

            Entry_Date = String(Entry_Date).replace(/\-/g, '/'); //format mysql date to js readible date
            var jd = new Date(Entry_Date); 					//create new js date
            var fdate = dow[jd.getDay()] + ' ' + months[jd.getMonth()] + ' ' + jd.getDate() + ' ' + jd.getFullYear();


            if (jd.getHours() == 0) {
                var hour = 12;
                var am_pm = 'am';
            } else if (jd.getHours() == 12) {
                var hour = 12;
                var am_pm = 'pm';
            } else if (jd.getHours() > 12) {
                var hour = jd.getHours() - 12;
                var am_pm = 'pm';
            } else {
                var hour = jd.getHours()
                var am_pm = 'am';
            }
            if (jd.getMinutes() < 10) {
                var minute = '0' + jd.getMinutes();
            } else {
                var minute = jd.getMinutes();
            }

            var ftime = hour + ':' + minute + am_pm;


            div_infoRow.appendChild(document.createTextNode(' on ' + fdate));
            div_infoRow.appendChild(document.createTextNode(' at ' + ftime));
            


            /*check and insert tags */
            var div_tagRow = document.createElement("div");
            var div_tagCell = document.createElement("div");
            //get tags
            var xmlTags = xmlEntries[numEntry].getElementsByTagName("Tag");
            if (xmlTags.length > 0) {
                //creat tag row div
                div_bp.appendChild(div_tagRow);
                for (numTags = 0; numTags < xmlTags.length; numTags++) {
                    var tag = xmlTags[numTags].firstChild.data;

                    div_tagCell.innerHTML = tag;
                    div_tagCell.onclick = function() {
                        var tt = this.innerHTML;
                        get_post('', tt, '');
                    };
                    div_tagRow.appendChild(div_tagCell);
                }
                var spacer = document.createElement("div");
                spacer.className = "spacer";
                div_tagRow.appendChild(spacer);
            }



            /*begin format post */


            var be_body_post = Entry;
            parse_code(Entry);
            be_body_post = global_entry;
            //alert(be_body_post);


            be_body_post = be_body_post.replace(/\[(DIV_IMG)/g, "<div class='be_tag_div_image' ");
            be_body_post = be_body_post.replace(/\[\/(DIV_IMG)\]/g, "<div class='be_div_caption'></div></div> ");
            be_body_post = be_body_post.replace(/\[(IMG)/g, "<img class='be_tag_img' ");


            //a href property
            be_body_post = be_body_post.replace(/\[(a)/g, "<a onclick=\"usrLog('CLICK','link')\"");


            be_body_post = be_body_post.replace(/[\n]/g, "<br>"); 			//preserve line breaks
            //be_body_post = be_body_post.replace(/\[(code)\]/g, "<code class='be_tag_code1'>");


            be_body_post = be_body_post.replace(/\[/g, "<"); 				//bracket [
            be_body_post = be_body_post.replace(/\]/g, ">"); 				//bracket ]
            /* end format post */

            var div_post = document.createElement("div");
            div_post.innerHTML = be_body_post;
            div_bp.appendChild(div_post);

            var spacer = document.createElement("div");
            spacer.className = "spacer";
            div_bp.appendChild(spacer);

            //if (jd.getFullYear() > 2008 && jd.getMonth() > 3 ) {
            if (0) {
                /* Blog Element Classes - new */
                div_bp.className = "bp_div";
                div_title.className = "bp_title";
                div_post.className = "bp_post";
                div_infoRow.className = "";
                div_tagRow.className = "bp_tag_bar";
                div_tagCell.className = "div_tagCell";
            } else {
                /* Blog Element Classes - original splash 8.* */
                div_bp.className = "blog_body";
                div_title.className = "blog_title";
                div_post.className = "blog_text";
                div_infoRow.className = "blog_date";
                div_tagRow.className = "blog_date";
                div_tagCell.className = "div_tagCell";
            }

            //set blog post body if being called from blog main page (need to indent post)
            if (callFrom == 'blogMain') {
                div_bp.className = "post";
            }

            // BEGIN get comments
            var xmlComments = xmlEntries[numEntry].getElementsByTagName("Comment");

            //add comment button
            var div_com_enter = document.createElement("div");
            div_com_enter.className = "s9_btn_aDiv";
            div_bp.appendChild(div_com_enter);

            var spacer = document.createElement("div");
            spacer.className = "spacer";
            div_bp.appendChild(spacer);

            var div_com_enterTxt = document.createElement("a");
            div_com_enterTxt.className = "s9_btn_aLink";
            div_com_enterTxt.innerHTML = "view comments";
            div_com_enter.id = 'comTxt_id-' + blog_entries_ID;
            div_com_enter.onclick = function() {
                var comIDout = this.id;
                comIDout = comIDout.substring(10);
                usrLog('CLICKED', 'view comments , BLOG ID: ' + comIDout);
                toggle_display('div_com_all-' + comIDout);
                checkLogin(document.getElementById('divId_comLog_' + comIDout), 'comEntry');
            };
            div_com_enter.appendChild(div_com_enterTxt);

            var div_com_all = document.createElement("div");
            div_com_all.id = 'div_com_all-' + blog_entries_ID;
            div_com_all.style.display = "none";
            div_bp.appendChild(div_com_all);

            if (xmlComments.length > 0) {
                //creat tag row div

                for (numComs = 0; numComs < xmlComments.length; numComs++) {
                    var xmlComText = xmlComments[numComs].getElementsByTagName("text");
                    var xmlComDate = xmlComments[numComs].getElementsByTagName("date");
                    var xmlComUser = xmlComments[numComs].getElementsByTagName("user");
                    if (xmlComText[0].firstChild != null && xmlComDate[0].firstChild != null && xmlComUser[0].firstChild != null) {
                        var comText = "";
                        for (var childLen = 0; childLen < xmlComText[0].childNodes.length; childLen++) {
                            comText += xmlComText[0].childNodes[childLen].data;
                        }
                        var comDate = xmlComDate[0].firstChild.data;
                        var comUser = xmlComUser[0].firstChild.data;

                        var div_comCell = document.createElement("div");

                        var div_comHead = document.createElement("div");
                        div_comHead.className = "comment_top";
                        div_comCell.appendChild(div_comHead);

                        var div_comText = document.createElement("div");
                        div_comText.className = "comment_mid";
                        div_comText.innerHTML = comText;
                        div_comCell.appendChild(div_comText);

                        var div_comBot = document.createElement("div");
                        div_comBot.className = "comment_bot";
                        div_comCell.appendChild(div_comBot);

                        var div_cb_usr = document.createElement("div");
                        div_cb_usr.className = "cb_usr";
                        div_comBot.appendChild(div_cb_usr);

                        var div_cb_usrPic = document.createElement("div");
                        div_cb_usrPic.className = "cb_upic";
                        div_cb_usr.appendChild(div_cb_usrPic);

                        var img_cb_usrPic = document.createElement("img");
                        img_cb_usrPic.setAttribute('src', '/img-s8/usr_avatars/blank_110.png');
                        img_cb_usrPic.setAttribute('alt', 'user picture');
                        img_cb_usrPic.setAttribute('width', '90px');
                        img_cb_usrPic.setAttribute('height', '90px');
                        div_cb_usrPic.appendChild(img_cb_usrPic);

                        var div_cb_usrName = document.createElement("div");
                        div_cb_usrName.className = "cb_un";
                        div_cb_usrName.innerHTML = comUser;
                        div_cb_usr.appendChild(div_cb_usrName);

                        var div_cb_date = document.createElement("div");
                        div_cb_date.className = "cb_date";
                        div_cb_date.innerHTML = comDate;
                        div_cb_usr.appendChild(div_cb_date);


                        var div_comDate = document.createElement("div");
                        var div_comUser = document.createElement("div");

                        div_com_all.appendChild(div_comCell);


                    }
                }
            }
            // END get comments


            var div_addComment_head = document.createElement("div");
            div_addComment_head.className = "comment_top";
            div_com_all.appendChild(div_addComment_head)

            var div_addComment_mid = document.createElement("div");
            div_addComment_mid.className = "comment_mid";
            div_addComment_mid.id = 'divId_comLog_' + blog_entries_ID;
            div_com_all.appendChild(div_addComment_mid);

            var div_addComment_bot = document.createElement("div");
            div_addComment_bot.className = "comment_bot";
            div_com_all.appendChild(div_addComment_bot);

            //checkLogin(div_addComment_mid, 'comEntry');
        }
    }
}

function parse_code(Entry) {
    //work on code tags
    var tag_code_begin = '<div class="be_div_code"><pre><code>';
    var tag_code_end = '</code></pre></div>';

    var reg_codeTag_open = /\[(code)\]/;
    var reg_codeTag_close = /\[\/(code)\]/;
    var reg_codeTag_all = /\[(code)\]((.|\s)*?)\[(\/code)\]/;

    var matchPos = Entry.indexOf("[code]");

    if (matchPos >= 0) {

        var matchPos_end = Entry.indexOf("[/code]", matchPos);

        var codeString = Entry.substring(matchPos + 6, matchPos_end);

        codeString = codeString.replace("<", "&lt;");
        codeString = codeString.replace(">", "&gt;");
        codeString = codeString.replace("/", "&#47;");
        //codeString = codeString.replace(/\n/g,"***");

        codeString = tag_code_begin + codeString + tag_code_end;

        var endLength = codeString.length; //get length of code snippet after changes

        Entry = Entry.replace(reg_codeTag_all, codeString);
        parse_code(Entry);
    } else {
        global_entry = (Entry);
    }
}

/* --------------------------------
| FUNCTION:	createComEntry(divIn)
| CREATED:	
| MODIFIED:	
| AUTHOR:	Seth DeSantis		
| PURPOSE: 	display comment entry form
|-------------------------------- */
function createComEntry(divIn) {
    var comInpt_entry = document.createElement("textarea");
    comInpt_entry.className = "s9_com_entry";

    divIn.appendChild(comInpt_entry);

    inpt_submitDiv = document.createElement("div");
    inpt_submitDiv.className = "s9_btn_aDiv";
    divIn.appendChild(inpt_submitDiv);

    var inpt_com = document.createElement("a");
    inpt_com.className = "s9_btn_aLink";
    inpt_com.innerHTML = "submit comment";
    inpt_com.onclick = function() {
        submitComment(divIn, comInpt_entry.value);
    };

    inpt_submitDiv.appendChild(inpt_com);
}

/* --------------------------------
| FUNCTION:	submitComment(divIn, comIn)
| CREATED:	
| MODIFIED:	
| AUTHOR:	Seth DeSantis		
| PURPOSE: 
|-------------------------------- */

function submitComment(divIn, comIn) {
    var divIn_id = divIn.id;
    var divIn_id = divIn_id.substring(13);

    var sBody = 'commentSubmitted=' + encodeURIComponent(comIn) + '&blogId=' + divIn_id;

    var oXHR = createXHR();
    oXHR.open("post", "/s9/blog/submitComment.php", true);

    oXHR.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    oXHR.setRequestHeader("Content-length", sBody.length);
    oXHR.setRequestHeader("Connection", "close");

    oXHR.onreadystatechange = function() {
        if (oXHR.readyState < 4) {

        }

        if (oXHR.readyState == 4) {
            if (oXHR.status == 200) {
                if (oXHR.responseText == 'good') {	//IF user is logged in
                    usrLog('COMMENT SUBMITTED', 'BLOG ID: ' + divIn_id + ', COMMENT: ' + comIn);
                    divIn.innerHTML = 'comment submitted: ' + comIn;


                } else {					//IF user is not logged in
                    usrLog('ERROR', 'COMMENT SUBMIT BLOG ID: ' + divIn_id + ', COMMENT: ' + comIn);
                    divIn.innerHTML = 'error submitting comment: ' + oXHR.responseText;

                }
            } else {
                usrLog('ERROR', 'COMMENT SUBMIT PHP PAGE BLOG ID: ' + divIn_id + ', COMMENT: ' + comIn);
                divIn.innerHTML = 'error with submitting comment';
            }
        }
    };

    //Send the request

    oXHR.send(sBody);

}

