﻿var panelHeight = 300;
var panelWidth = 198;

var canvasMargin = 30;
var leftPanelWidth = 300;
var rightPanelWidth = 300;

var leftPanelArray = new Array();
var rightPanelArray = new Array();
var centerPanelArray = new Array(); 

var headerHeight = 0;

var xmlUrl = '';
var sessionPrid = '';

var soxApp;
var soxCanvas;
var bgEl;

var relatedItem = "";
var relatebox = document.getElementById("relateditems");

jQuery(document).ready(function () {
    // AssignFrameHeight();
});

// resizeIframe() - Resizes the modal iframe to fit its contents.
function resizeIframe() {

    // Get the iframe
    var modal = window.document.getElementById("soxiframe_modal");

    /* DEBUG
    alert("modal.height = " + modal.height + "\n" +
    "modal.style.height = " + modal.style.height + "\n" +
    "modal.contentWindow.document.scrollHeight = " + modal.contentWindow.document.scrollHeight + "\n" +
    "modal.contentWindow.document.body.scrollHeight = " + modal.contentWindow.document.body.scrollHeight + "\n" +
    "modal.contentWindow.document.documentElement.scrollHeight = " + modal.contentWindow.document.documentElement.scrollHeight + "\n" +
    "modal.contentWindow.document.innerHeight = " + modal.contentWindow.document.innerHeight + "\n" +
    "modal.contentWindow.document.body.innerHeight = " + modal.contentWindow.document.body.innerHeight + "\n" +
    "modal.contentWindow.document.documentElement.innerHeight = " + modal.contentWindow.document.documentElement.innerHeight + "\n" +
    "modal.contentWindow.document.clientHeight = " + modal.contentWindow.document.clientHeight + "\n" +
    "modal.contentWindow.document.body.clientHeight = " + modal.contentWindow.document.body.clientHeight + "\n" +
    "modal.contentWindow.document.documentElement.clientHeight = " + modal.contentWindow.document.documentElement.clientHeight + "\n" +
    "modal.contentWindow.document.offsetHeight = " + modal.contentWindow.document.offsetHeight + "\n" +
    "modal.contentWindow.document.body.offsetHeight = " + modal.contentWindow.document.body.offsetHeight + "\n" +
    "modal.contentWindow.document.documentElement.offsetHeight = " + modal.contentWindow.document.documentElement.offsetHeight);
    // */

    // Set the height of the iframe content to 0 first; compatibility tweak to facilitate resize to proper height when old content is taller than new content
    modal.style.height = "0px";

    // Set the new height to the scrollHeight of the iframe content.
    var newHeight = modal.contentWindow.document.documentElement.scrollHeight;

    // Change the iframe size to the new height.
    modal.style.height = (newHeight + 1) + "px";

}

// hideHeading() - Hide's the main page's heading section; used when loading a page in the modal iframe.
function hideHeading() {

    // Hide the main page's section header.
    window.document.getElementById("section_header").style.display = "none";

}

function alertSize() {
    var myHeight = 0;
    if (typeof (parent.window.innerWidth) == 'number') {
        //Non-IE
        myHeight = parent.window.innerHeight;
    } else if (parent.document.documentElement
    && (parent.document.documentElement.clientWidth || parent.document.documentElement.clientHeight)) {
        //IE 6+ in 'standards compliant mode'
        myHeight = parent.document.documentElement.clientHeight;
    } else if (parent.document.body && (parent.document.body.clientWidth || parent.document.body.clientHeight)) {
        //IE 4 compatible
        myHeight = parent.document.body.clientHeight;
    }
  // window.alert( 'Height = ' + myHeight );
    return myHeight;
}

function AssignFrameHeight() {
    var theFrame = jQuery("#soxiframe_modal", parent.document.body);
    var frameHeight1 = getIframeHeight('soxiframe_modal');
    var frameHeight2 = jQuery(document.body).height();
    // Test
    //window.alert("scrollHeight = " + window.document.body.scrollHeight);
    //window.alert("theFrame.style.height = " + theFrame.style.height);
    //window.alert("AssignFrameHeight(): \n" + "frameHeight1 = " + frameHeight1 + "\nframeHeight2 = " + frameHeight2);
    // alertSize();
    if (jQuery(document.body)[0]) {
        if (jQuery(document.body)[0].bottomMargin)
            frameHeight2 += Number($(document.body)[0].bottomMargin);
        if (jQuery(document.body)[0].topMargin)
            frameHeight2 += Number($(document.body)[0].topMargin);
    }
    if (frameHeight1 > frameHeight2) {
        theFrame.height(frameHeight1 - 20);
    } else {
        if (jQuery.browser.msie)
            theFrame.height(frameHeight2);
        else
            theFrame.height(frameHeight2 + 50);
    }
}

function getIframeHeight(iframeName) {
    //var iframeWin = window.frames[iframeName];
    var iframeEl = parent.document.getElementById
    ? parent.document.getElementById(iframeName)
    : parent.document.all
      ? parent.document.all[iframeName]
      : null;
    if (iframeEl) {
        iframeEl.style.height = "auto"; // helps resize (for some) if new doc shorter than previous
        //var docHt = getDocHeight(iframeWin.document);
        // need to add to height to be sure it will all show
        var h = alertSize();
        //var new_h = (h - 148);
        //iframeEl.style.height = h + "px";
        return h;
        // Test
        // alertSize();
    }
}
function init(xmlUrlIn, sessionPridIn) {  
    
    xmlUrl = xmlUrlIn;
    
    sessionPrid = sessionPridIn;
    
    bgEl = document.getElementById('bgimage');
     
    xWidth(bgEl, xClientWidth()+20);
    
    if (xHeight(bgEl) < xClientHeight()) {
        xWidth(bgEl, null);
        xHeight(bgEl,xClientHeight()+20);
    }
    
    xShow(bgEl);
    
    buildGui();
      
    if (sessionPrid == '') {
        showLogin();
    } else {
        xShow(document.getElementById('soxcanvas'));
    }
   
}


function init_standard(xmlUrlIn, sessionPridIn, titleText, incomingType, incomingGuid) { 

    if (titleText == null) {
        titleText = "";
    }  
   
    xmlUrl = xmlUrlIn;
    
    sessionPrid = sessionPridIn;
    
    /*    
    bgEl = document.getElementById('bgimage');
     
    xWidth(bgEl, xClientWidth()+20);
    
    if (xHeight(bgEl) < xClientHeight()) {
        xWidth(bgEl, null);
        xHeight(bgEl,xClientHeight()+20);
    }
    
    xShow(bgEl);
    */
    
    buildGui();  
    
    xShow(document.getElementById('soxcanvas'));  
    
    if (incomingGuid != '') {
        if (incomingType == "post") {
            soxView('post.aspx', incomingGuid, 'Post');
        }        
        if (incomingType == "education") {
            soxView('education.aspx', incomingGuid, 'Resource');
        }
		if (incomingType == "forums") {
            soxView('forum.aspx', incomingGuid, 'Thread');
        }
        if (incomingType == "event") {
            soxView('event.aspx', incomingGuid, 'Event');
        }
        if (incomingType == "initiative") {
            soxView('initiative.aspx', incomingGuid, 'Initiative');
        }
        if (incomingType == "career") {
            soxView('career.aspx', incomingGuid, 'Career');
        }
        if (incomingType == "blog") {
            soxView('blog.aspx', incomingGuid, 'Career');
        }
    } else if (sessionPrid == '') {
        if (getCookie("visited") == "") {
            //showLogin(titleText);            
        }
    } 
    
    //xEnableDrag("relatebox");
    //document.getElementById("hideShow").innerHTML = "show"
    xTop('relatebox', xPageY('soxcanvas'));
    xLeft('relatebox', xPageX('soxcanvas') + 350);
    xHeight('relateditems', 100);   
   
	
	if(gup('action') == "showregister") {
        if (document.location.href.indexOf('_preview.aspx') >= 0) {
            showRegister('_preview.aspx?pageid=36');
        } else {
	        showRegister('default.aspx?pageid=36');
        }
	    
	}
}
function gup(name) {
    name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
    var regexS = "[\\?&]" + name + "=([^&#]*)";
    var regex = new RegExp(regexS);
    var results = regex.exec(window.location.href);
    if (results == null)
        return "";
    else
        return results[1];
}

function relateMover(evt) {
    
    var e = new xEvent(evt);  
    xLeft(document.getElementById('mousetracker'), e.pageX+1); 
    xTop(document.getElementById('mousetracker'), e.pageY+1); 
    
    
    
}

function killMover(evt) {
    var e = new xEvent(evt);  
    xRemoveEventListener(document, 'mousemove', relateMover);
    xRemoveEventListener(document, 'mousedown', killMover, true);
    xHide(document.getElementById('mousetracker'));
   
    if(e.target.id == "relatebox" || e.target.id == "relateditems") {
         
          var guidA = relatedItem;
          var xmlBody = "<request><get><relatename>";
          xmlBody += guidA;
          xmlBody += "</relatename></get></request>";
          parent.ajaxReq(xmlBody);
          
         
          
    }else if (e.target.id.indexOf('relate_') >= 0) {
        var guidA = relatedItem;
        var guidB = e.target.id.split("_")[1];
        var xmlBody = "";
        xmlBody += "<request>";
        xmlBody += "<event><relatecontent>";
        xmlBody += "<sox_guida><![CDATA["+guidA+"]]></sox_guida>";
        xmlBody += "<sox_guidb><![CDATA["+guidB+"]]></sox_guidb>";       
        xmlBody += "</relatecontent></event>";
        xmlBody += "</request>";
        parent.ajaxReq(xmlBody);
    }
    
  
    relatedItem = "";
}

function shareContent(obj, type){
    var xmlBody = "<request><event>";
    
    if (obj.name == "sox_content_sharing"){
        if (obj.checked){
            xmlBody += "<sharecontent><contentguid checked=\"1\" type=\""  + type + "\">" + obj.value + "</contentguid>";
          
        }
        else
        {
            xmlBody += "<sharecontent><contentguid checked=\"0\"  type=\"" + type + "\">" + obj.value + "</contentguid>";
            
        }
                
        
        xmlBody += "</sharecontent></event></request>";
        
        ajaxReq(xmlBody);
        
    }else if(obj.name == "sox_content_force"){
         if (obj.checked){
            xmlBody += "<forcesharecontent checked=\"1\">";
        }
        else
        {
            xmlBody += "<forcesharecontent checked=\"0\">";
            
        }
                
        xmlBody += "<contentguid>" + obj.value + "</contentguid>";
        xmlBody += "</forcesharecontent></event></request>";
        
        ajaxReq(xmlBody);
    }
   
}

// CONTENT MODERATION

function reportContent(contentGuid, userGuid, comment, reportType){
     var xmlBody = "<request><event><reportcontent><contentguid>" + contentGuid + "</contentguid><reportedby>" + userGuid + "</reportedby><commentbody><![CDATA[" + comment.value + "]]></commentbody>";
     
     for(var i = 0;i < reportType.length;i++){
        if (reportType[i].checked == true){
            xmlBody += "<reporttype><![CDATA[" + reportType[i].value + "]]></reporttype>";
        }
     }
     
    xmlBody += "</reportcontent></event></request>";
    ajaxReq(xmlBody);
}
// COMMENT FUNCTIONS
function saveComment(obj, guid, contentGuid, commentGuid){
    var xmlBody = "<request><event><savecomment><comment><contentguid>" + contentGuid + "</contentguid><authorguid>" + guid + "</authorguid><commentbody><![CDATA[" + obj.value + "]]></commentbody>";
    
    if (commentGuid != "")
        xmlBody += "<commentguid>" + commentGuid + "</commentguid>";
        
    xmlBody += "</comment></savecomment></event></request>";   
    //alert(xmlBody);
    ajaxReq(xmlBody);
    
}

function removeComment(commentGuid, contentGuid){
    var xmlBody = "<request><event><deletecomment><comment><commentguid>" + commentGuid + "</commentguid><contentguid>" + contentGuid + "</contentguid></comment></deletecomment></event></request>";
    //alert(xmlBody);
    ajaxReq(xmlBody);
}

function replyComment(commentGuid){
   
    var xmlBody = "<request><event><replycomment><comment><commentguid>" + commentGuid + "</commentguid><contentguid>" + contentGuid + "</contentguid></comment></replycomment></event></request>";
    //alert(xmlBody);
    ajaxReq(xmlBody);

}

function getReplies(commentGuid){
    var modalIframeDoc = document.getElementById('soxiframe_modal');
    var replyLink = modalIframeDoc.contentWindow.document.getElementById("replies_" + commentGuid);
   
    if (modalIframeDoc.contentWindow.document.getElementById("relpycontainer_" + commentGuid) != null){
        var replyDiv = modalIframeDoc.contentWindow.document.getElementById("reply_" + commentGuid);
        var replyCont = modalIframeDoc.contentWindow.document.getElementById("relpycontainer_" + commentGuid);
         
        if (replyCont.hasChildNodes())
        {            
            while (replyCont.childNodes.length >= 1)
            {
                replyCont.removeChild(replyCont.firstChild);       
            } 
        }
        replyDiv.removeChild(replyCont);
        replyLink.innerHTML = "view replies";  
    
    }else{    
        var xmlBody = "<request><get><comments>" + commentGuid + "</comments></get></request>";
       
        ajaxReq(xmlBody, "soxiframe_modal");
        replyLink.innerHTML = "hide replies"; 
        
    }
}

function reportComment(reportComment, reportedBy, contentGuid, commentGuid, authorGuid, reportType){
     var xmlBody = "<request><event><reportcomment>";
     xmlBody += "<contentguid>" + contentGuid + "</contentguid>";
     xmlBody += "<commentguid>" + commentGuid + "</commentguid>";
     for(var i = 0;i < reportType.length;i++){
        if (reportType[i].checked == true){
            xmlBody += "<reporttype>" + reportType[i].value + "</reporttype>";
        }
     }
     
     xmlBody += "<reportcommentbody><![CDATA[" + reportComment.value + "]]></reportcommentbody>";
     xmlBody += "<authorguid>" + authorGuid + "</authorguid>";
     xmlBody += "<reportedby>" + reportedBy + "</reportedby>";
     xmlBody += "</reportcomment></event></request>";
     
     ajaxReq(xmlBody);

}
// RATING FUNCTIONS
function saveRating(value, guid, contentguid){  
    var xmlBody = "<request><event><saverating><rating><contentguid>" + contentguid + "</contentguid><authorguid>" + guid + "</authorguid><ratingbody>" + value + "</ratingbody></rating></saverating></event></request>";
    ajaxReq(xmlBody);
}


function toggleRelateBox(){
   
    if (document.getElementById("hideShow").innerHTML == "show"){
        document.getElementById("hideShow").innerHTML = "hide"
        //xTop('relatebox', 100);
        //xLeft('relatebox', 100);
        xShow('relatebox');
        xShow('relateditems');
        xHeight('relateditems', 100);
    }else{
        document.getElementById("hideShow").innerHTML = "show"
        xTop('relatebox', xPageY('soxcanvas'));
        xLeft('relatebox', xPageX('soxcanvas') + 350);
        xHide('relatebox');
        xHide('relateditems');
        xHeight('relateditems', 35);
    
    }
}
function relateContent(itemGuid) {
    //xShow('relatebox');
    //xShow('relateditems');
    //alert(itemGuid + ' ' + relatedItem);
    if (relatedItem == "") {
        relatedItem = itemGuid;
        xShow(document.getElementById('mousetracker'));
        xAddEventListener(document, 'mousemove', relateMover);  
        xAddEventListener(document, 'mousedown', killMover, true);        
    }
}

function removeContent(obj){
     var relatebox = document.getElementById("relateditems");
     var childNodes = relatebox.childNodes;
     var x = "";   
      
     for (var i=0;i<childNodes.length;i++){
     
        if(childNodes[i].nodeName == "DIV"){
          
            if(childNodes[i].id.split("_")[1] == obj){
               relatebox.removeChild(childNodes[i]);
            }
            
           
        }
     }

}

function showLogin(titleText) {
    if (titleText == null) {
        titleText = "";
    }
    
    
     document.getElementById('soxpaneltitle_modal').innerHTML = titleText;
     document.getElementById('soxiframe_modal').src = "soxapps/login.aspx";
     
     //resizePanel('modal', (xClientWidth()/2) - 350, (xClientHeight()/2) - 275, 700, 550);     
     //xHeight(document.getElementById('soxiframe_modal'), xHeight(document.getElementById('soxpanelborder_modal'))); 
     
     sizeModal();
     
     xAddEventListener(window, 'scroll', sizeModal);
     
     xShow(document.getElementById('soxpanel_modal'));
}

function showRegister(url) {
     resizePanel('modal', canvasMargin*2, canvasMargin*2, xClientWidth()-canvasMargin*4, xClientHeight()-canvasMargin*4);
     document.getElementById('soxpaneltitle_modal').innerHTML = 'Register';
     document.getElementById('soxiframe_modal').src = url;
     xShow(document.getElementById('soxpanel_modal'));
     xHeight(document.getElementById('soxiframe_modal'), xHeight(document.getElementById('soxpanelborder_modal'))); 
}

function login(email, password) {
    var xmlBody = "";
    xmlBody += "<request>";
    xmlBody += "<event><login><email>"+email+"</email><password>"+password+"</password></login></event>";
    xmlBody += "</request>";
    ajaxReq(xmlBody);
}

function forgotPassword(email) {
    var xmlBody = "<request><event><forgotpassword><email>"+email+"</email></forgotpassword></event></request>";
    ajaxReq(xmlBody);
}

function joinGroup() {
    var xmlBody = "";
    xmlBody += "<request>";
    xmlBody += "<event><joingroup/></event>";
    xmlBody += "</request>";
    ajaxReq(xmlBody);
    xHide(document.getElementById('joingroupbutton'));
}

function loginNewMember() {
    var xmlBody = "";
    xmlBody += "<request>";
    xmlBody += "<event><login/></event>";
    xmlBody += "</request>";
    ajaxReq(xmlBody);
}
function refreshPosts(target){
    var keywords = "";
    var cats = "";
    var date = "";
    var e = document.getElementById("ddlCatSearch");
    var catchoice = e.options[e.selectedIndex].value;
    e = document.getElementById("ddlDateSearch");
    date = e.options[e.selectedIndex].value;
   // alert("cat:" +  catchoice);
    if(catchoice!="0"){
        cats = catchoice;
    }
   var type = 'latest';
   if (target) {
       type = target;
   }

    panelReq('<request><get><' + type+' viewall="true" keywords="' + keywords + '" categories="' + cats + '" date="'+ date+ '" sortby=""/></get></request>', 'latest');
}
function refreshAll(target) {
    var keywords = "";
    var cats = "";
    var date = "";
    var fl = "false";

    var e = document.getElementById("ddlCatSearch");
    var catchoice = e.options[e.selectedIndex].value;

    e = document.getElementById("ddlDateSearch");
    var datechoice = e.options[e.selectedIndex].value;    

    if (catchoice != "0") {
        cats = catchoice;
    }

    if (datechoice != "0") {
        date = datechoice;
    }

    //alert(target);
    if (target == "latestlarge") {
        target = "latest"
        fl = "true";
    }

    panelReq('<request><get><latest viewall="'+ (target=="latest") +'" keywords="' + keywords + '" categories="' + cats + '" date="' + date + '" sortby="" forcelarge="' + (fl=="true") + '"/></get></request>', 'latest');
    panelReq('<request><get><recipies  viewall="' + (target == "recipies") + '" keywords="' + keywords + '" categories="' + cats + '" date="' + date + '" sortby=""/></get></request>', 'recipies');
    panelReq('<request><get><forums   viewall="' + (target == "forums") + '" keywords="' + keywords + '" categories="' + cats + '" date="' + date + '" sortby=""/></get></request>', 'forums');
    panelReq('<request><get><media   viewall="' + (target == "media") + '" keywords="' + keywords + '" categories="' + cats + '" date="' + date + '" sortby=""/></get></request>', 'media');
    panelReq('<request><get><events  viewall="' + (target == "events") + '" keywords="' + keywords + '" categories="' + cats + '" date="' + date + '" sortby=""/></get></request>', 'events');
    panelReq('<request><get><activities  viewall="' + (target == "activities") + '" keywords="' + keywords + '" categories="' + cats + '" date="' + date + '" sortby=""/></get></request>', 'activities');
    // panelReq('<request><get><groups  viewall="' + (target == "groups") + '" keywords="' + keywords + '" categories="' + cats + '" date="' + date + '" sortby=""/></get></request>', 'latest');
    //  panelReq('<request><get><bio   viewall="' + (target == "bio") + '" keywords="' + keywords + '" categories="' + cats + '" date="' + date + '" sortby=""/></get></request>', 'latest');
    //  panelReq('<request><get><feeds   viewall="' + (target == "feeds") + '" keywords="' + keywords + '" categories="' + cats + '" date="' + date + '" sortby=""/></get></request>', 'latest');
}

function refreshMain(target) { refreshMain(target, "", ""); }
function refreshMain(target, keywords, type) {
    var cats = "";
    var date = "";
    s = "";

    if (keywords == undefined)
    {
        keywords = "";
    }

    if (type == undefined)
    {
        type = "";
    }

    var e = document.getElementById("ddlCatSearch");
    var catchoice = e.options[e.selectedIndex].value;

    e = document.getElementById("ddlDateSearch");
    date = e.options[e.selectedIndex].value;

    e = document.getElementById(target + "_sort");
    s = e.options[e.selectedIndex].value;

    if (catchoice != "0") {
        cats = catchoice;
    }

    panelReq('<request><get><' + target + ' viewall="True" keywords="' + keywords + '" type="' + escape(type) + '" categories="' + cats + '" date="' + date + '" sortby="' + s + '"/></get></request>', target);

    return false;
}

function getCheckValues(checkName) {
    var ret = '';
    var els = document.getElementsByName(checkName);
    for (var i = 0; i < els.length; i++) {
        if (els[i].checked) {
            if (ret.length > 0) { ret += '|'; }
            ret += els[i].value;
        }
    }
    return ret;
}

function ajaxResponse(ajaxObject) {

    var returnList = ajaxObject.responseXML.getElementsByTagName('return')[0].childNodes;

    for (var x = 0; x < returnList.length; x++) {
        var returnItem = returnList[x];
        
        if (returnItem.nodeName == 'login') {
            var newPridNode = returnItem.getElementsByTagName('prid')[0];
            var newPrid = '';
            if (newPridNode.childNodes.length > 0) {
                newPrid = newPridNode.firstChild.nodeValue
            }    
            //alert('prid ' + newPrid);              
            if (newPrid != null && newPrid != "") { 
                hidePanel('modal');                                                
                //xHide(document.getElementById('soxpanel_modal'));
                window.top.document.location.href = document.location.href;
                //xShow(document.getElementById('soxcanvas'));
                
            } else {
                alert('Log In Failed. Please check your Email and Password and try again.');
                document.getElementById('soxiframe_modal').src = "soxapps/login.aspx";
            }
        }
        
        if (returnItem.nodeName == 'forgotpassword') {
			alert(returnItem.firstChild.nodeValue);
            document.getElementById('soxiframe_modal').src = "soxapps/login.aspx";            
        }
        
        if (returnItem.nodeName == 'post') {
            if (returnItem.getAttribute('deleted') != null && returnItem.getAttribute('deleted') != "") {
                alert('Your story has been deleted.');
                hidePanel('modal');
                refreshAll('latest');
               // panelReq('<request><get><latest viewall="true" keywords="" categories="" sortby=""/></get></request>', 'latest');
               // panelReq('<request><get><latest viewall="'+document.getElementById('latest_viewall').value+'" keywords="'+document.getElementById('latest_keywordsdata').value+'" categories="'+document.getElementById('latest_selectedcategories').value+'" sortby="'+document.getElementById('latest_sortby').value+'"/></get></request>', 'latest');
               // panelReq('<request><get><media viewall="'+document.getElementById('media_viewall').value+'" keywords="'+document.getElementById('media_keywordsdata').value+'" categories="'+document.getElementById('media_selectedcategories').value+'" sortby="'+document.getElementById('media_sortby').value+'"/></get></request>', 'media');
            } else if (returnItem.getAttribute('guid') != null && returnItem.getAttribute('guid') != "") {
                alert('Your post has been saved.');
                hidePanel('modal');
                //panelReq('<request><get><latest sortby="sox_post_date DESC"/></get></request>', 'latest');
                //panelReq('<request><get><media sortby="sox_post_date DESC"/></get></request>', 'media');
                var keywords = "";
                var cats = "";
                var date = "";

                if(document.getElementById('ddlCatSeach').value!="0"){
                    cats = document.getElementById('ddlCatSeach').value;
                }

                refreshAll('latest');
                //panelReq('<request><get><latest viewall="true" keywords="' + keywords + '" categories="' + cats + '" sortby=""/></get></request>', 'latest');
                //panelReq('<request><get><latest viewall="'+document.getElementById('latest_viewall').value+'" keywords="'+document.getElementById('latest_keywordsdata').value+'" categories="'+document.getElementById('latest_selectedcategories').value+'" sortby="'+document.getElementById('latest_sortby').value+'"/></get></request>', 'latest');
                //panelReq('<request><get><media viewall="'+document.getElementById('media_viewall').value+'" keywords="'+document.getElementById('media_keywordsdata').value+'" categories="'+document.getElementById('media_selectedcategories').value+'" sortby="'+document.getElementById('media_sortby').value+'"/></get></request>', 'media');
            } else {
                alert('There was a problem saving your post. ' + returnItem.getAttribute('guid'));
                document.getElementById('soxiframe_modal').document.xHide("loading");
            }
        }

        if (returnItem.nodeName == 'activity') {
            if (returnItem.getAttribute('deleted') != null && returnItem.getAttribute('deleted') != "") {
                alert('Your activity has been deleted.');
                hidePanel('modal');
                refreshAll('activities');
                // panelReq('<request><get><latest viewall="true" keywords="" categories="" sortby=""/></get></request>', 'latest');
                // panelReq('<request><get><latest viewall="'+document.getElementById('latest_viewall').value+'" keywords="'+document.getElementById('latest_keywordsdata').value+'" categories="'+document.getElementById('latest_selectedcategories').value+'" sortby="'+document.getElementById('latest_sortby').value+'"/></get></request>', 'latest');
                // panelReq('<request><get><media viewall="'+document.getElementById('media_viewall').value+'" keywords="'+document.getElementById('media_keywordsdata').value+'" categories="'+document.getElementById('media_selectedcategories').value+'" sortby="'+document.getElementById('media_sortby').value+'"/></get></request>', 'media');
            } else if (returnItem.getAttribute('guid') != null && returnItem.getAttribute('guid') != "") {
                alert('Your activity has been saved.');
                hidePanel('modal');
                //panelReq('<request><get><latest sortby="sox_post_date DESC"/></get></request>', 'latest');
                //panelReq('<request><get><media sortby="sox_post_date DESC"/></get></request>', 'media');
                var keywords = "";
                var cats = "";
                var date = "";

                if (document.getElementById('ddlCatSeach').value != "0") {
                    cats = document.getElementById('ddlCatSeach').value;
                }

                refreshAll('activities');
                //panelReq('<request><get><latest viewall="true" keywords="' + keywords + '" categories="' + cats + '" sortby=""/></get></request>', 'latest');
                //panelReq('<request><get><latest viewall="'+document.getElementById('latest_viewall').value+'" keywords="'+document.getElementById('latest_keywordsdata').value+'" categories="'+document.getElementById('latest_selectedcategories').value+'" sortby="'+document.getElementById('latest_sortby').value+'"/></get></request>', 'latest');
                //panelReq('<request><get><media viewall="'+document.getElementById('media_viewall').value+'" keywords="'+document.getElementById('media_keywordsdata').value+'" categories="'+document.getElementById('media_selectedcategories').value+'" sortby="'+document.getElementById('media_sortby').value+'"/></get></request>', 'media');
            } else {
                alert('There was a problem saving your activity. ' + returnItem.getAttribute('guid'));
                document.getElementById('soxiframe_modal').document.xHide("loading");
            }
        }

        if (returnItem.nodeName == 'recipe') {
            if (returnItem.getAttribute('deleted') != null && returnItem.getAttribute('deleted') != "") {
                alert('Your recipe has been deleted.');
                hidePanel('modal');
                refreshAll('recipies');
                // panelReq('<request><get><latest viewall="true" keywords="" categories="" sortby=""/></get></request>', 'latest');
                // panelReq('<request><get><latest viewall="'+document.getElementById('latest_viewall').value+'" keywords="'+document.getElementById('latest_keywordsdata').value+'" categories="'+document.getElementById('latest_selectedcategories').value+'" sortby="'+document.getElementById('latest_sortby').value+'"/></get></request>', 'latest');
                // panelReq('<request><get><media viewall="'+document.getElementById('media_viewall').value+'" keywords="'+document.getElementById('media_keywordsdata').value+'" categories="'+document.getElementById('media_selectedcategories').value+'" sortby="'+document.getElementById('media_sortby').value+'"/></get></request>', 'media');
            } else if (returnItem.getAttribute('guid') != null && returnItem.getAttribute('guid') != "") {
                alert('Your recipe has been saved.');
                hidePanel('modal');
                //panelReq('<request><get><latest sortby="sox_post_date DESC"/></get></request>', 'latest');
                //panelReq('<request><get><media sortby="sox_post_date DESC"/></get></request>', 'media');
                var keywords = "";
                var cats = "";
                var date = "";

                if (document.getElementById('ddlCatSeach').value != "0") {
                    cats = document.getElementById('ddlCatSeach').value;
                }

                refreshAll('recipies');
                //panelReq('<request><get><latest viewall="true" keywords="' + keywords + '" categories="' + cats + '" sortby=""/></get></request>', 'latest');
                //panelReq('<request><get><latest viewall="'+document.getElementById('latest_viewall').value+'" keywords="'+document.getElementById('latest_keywordsdata').value+'" categories="'+document.getElementById('latest_selectedcategories').value+'" sortby="'+document.getElementById('latest_sortby').value+'"/></get></request>', 'latest');
                //panelReq('<request><get><media viewall="'+document.getElementById('media_viewall').value+'" keywords="'+document.getElementById('media_keywordsdata').value+'" categories="'+document.getElementById('media_selectedcategories').value+'" sortby="'+document.getElementById('media_sortby').value+'"/></get></request>', 'media');
            } else {
                alert('There was a problem saving your recipe. ' + returnItem.getAttribute('guid'));
                document.getElementById('soxiframe_modal').document.xHide("loading");
            }
        }

        if (returnItem.nodeName == 'blog') {
            if (returnItem.getAttribute('deleted') != null && returnItem.getAttribute('deleted') != "") {
                alert('Your story has been deleted.');
                hidePanel('modal');
                refreshAll('latest');
                // panelReq('<request><get><latest viewall="true" keywords="" categories="" sortby=""/></get></request>', 'latest');
                // panelReq('<request><get><latest viewall="'+document.getElementById('latest_viewall').value+'" keywords="'+document.getElementById('latest_keywordsdata').value+'" categories="'+document.getElementById('latest_selectedcategories').value+'" sortby="'+document.getElementById('latest_sortby').value+'"/></get></request>', 'latest');
                // panelReq('<request><get><media viewall="'+document.getElementById('media_viewall').value+'" keywords="'+document.getElementById('media_keywordsdata').value+'" categories="'+document.getElementById('media_selectedcategories').value+'" sortby="'+document.getElementById('media_sortby').value+'"/></get></request>', 'media');
            } else if (returnItem.getAttribute('guid') != null && returnItem.getAttribute('guid') != "") {
                alert('Your post has been saved.');
                hidePanel('modal');
                //panelReq('<request><get><latest sortby="sox_post_date DESC"/></get></request>', 'latest');
                //panelReq('<request><get><media sortby="sox_post_date DESC"/></get></request>', 'media');
                var keywords = "";
                var cats = "";
                var date = "";

                if (document.getElementById('ddlCatSeach').value != "0") {
                    cats = document.getElementById('ddlCatSeach').value;
                }

                refreshAll('latest');
                //panelReq('<request><get><latest viewall="true" keywords="' + keywords + '" categories="' + cats + '" sortby=""/></get></request>', 'latest');
                //panelReq('<request><get><latest viewall="'+document.getElementById('latest_viewall').value+'" keywords="'+document.getElementById('latest_keywordsdata').value+'" categories="'+document.getElementById('latest_selectedcategories').value+'" sortby="'+document.getElementById('latest_sortby').value+'"/></get></request>', 'latest');
                //panelReq('<request><get><media viewall="'+document.getElementById('media_viewall').value+'" keywords="'+document.getElementById('media_keywordsdata').value+'" categories="'+document.getElementById('media_selectedcategories').value+'" sortby="'+document.getElementById('media_sortby').value+'"/></get></request>', 'media');
            } else {
                alert('There was a problem saving your post. ' + returnItem.getAttribute('guid'));
                document.getElementById('soxiframe_modal').document.xHide("loading");
            }
        }
        
        if (returnItem.nodeName == 'feed') {
            if (returnItem.getAttribute('deleted') != null && returnItem.getAttribute('deleted') != "") {
                alert('Your feed has been deleted.');
                hidePanel('modal');
                panelReq('<request><get><latest viewall="'+document.getElementById('latest_viewall').value+'" keywords="'+document.getElementById('latest_keywordsdata').value+'" categories="'+document.getElementById('latest_selectedcategories').value+'" sortby="'+document.getElementById('latest_sortby').value+'"/></get></request>', 'latest');
            } else if (returnItem.getAttribute('guid') != null && returnItem.getAttribute('guid') != "") {
                alert('Your feed has been saved.');
                hidePanel('modal');
                panelReq('<request><get><latest viewall="'+document.getElementById('latest_viewall').value+'" keywords="'+document.getElementById('latest_keywordsdata').value+'" categories="'+document.getElementById('latest_selectedcategories').value+'" sortby="'+document.getElementById('latest_sortby').value+'"/></get></request>', 'latest');
            } else {
                alert('There was a problem saving your feed. ' + returnItem.getAttribute('guid'));
                document.getElementById('soxiframe_modal').document.xHide("loading");
            }
        }        
        
        
        if (returnItem.nodeName == 'event') {
            if (returnItem.getAttribute('deleted') != null && returnItem.getAttribute('deleted') != "") {
                alert('Your event has been deleted.');
                hidePanel('modal');
                //panelReq('<request><get><events sortby="sox_event_startdatetime ASC"/></get></request>', 'events');
                refreshAll('events');
            } else if (returnItem.getAttribute('guid') != null && returnItem.getAttribute('guid') != "") {
                alert('Your event has been saved.');
                hidePanel('modal');
                // panelReq('<request><get><events sortby="sox_event_startdatetime ASC"/></get></request>', 'events');
                refreshAll('events');
            } else {
                alert('There was a problem saving your event. ' + returnItem.getAttribute('guid'));
                document.getElementById('soxiframe_modal').document.xHide("loading");
            }
        }
        
        if (returnItem.nodeName == 'career') {
            if (returnItem.getAttribute('deleted') != null && returnItem.getAttribute('deleted') != "") {
                alert('Your career has been deleted.');
                hidePanel('modal');
                panelReq('<request><get><careers sortby="sox_career_date ASC"/></get></request>', 'careers');
            } else if (returnItem.getAttribute('guid') != null && returnItem.getAttribute('guid') != "") {
                alert('Your career has been saved.');
                hidePanel('modal');
                panelReq('<request><get><careers sortby="sox_career_date ASC"/></get></request>', 'careers');
            } else {
                alert('There was a problem saving your career. ' + returnItem.getAttribute('guid'));
                document.getElementById('soxiframe_modal').document.xHide("loading");
            }
        }
        
		if (returnItem.nodeName == 'forum') {			
            if (returnItem.getAttribute('deleted') != null && returnItem.getAttribute('deleted') != "") {
                alert('Your thread has been deleted.');
                hidePanel('modal');				
                panelReq('<request><get><forums viewall="'+document.getElementById('forums_viewall').value+'" sortby="sox_forum_date DESC"/></get></request>', 'forums');								
				panelReq('<request><get><latest viewall="'+document.getElementById('latest_viewall').value+'" keywords="'+document.getElementById('latest_keywordsdata').value+'" categories="'+document.getElementById('latest_selectedcategories').value+'" sortby="'+document.getElementById('latest_sortby').value+'"/></get></request>', 'latest');
            } else if (returnItem.getAttribute('guid') != null && returnItem.getAttribute('guid') != "") {
                alert('Your thread has been saved.');					
                soxView('forum.aspx',returnItem.getAttribute('guid'),'Forum');
                panelReq('<request><get><forums viewall="'+document.getElementById('forums_viewall').value+'" sortby="sox_forum_date DESC"/></get></request>', 'forums');				
				panelReq('<request><get><latest viewall="'+document.getElementById('latest_viewall').value+'" keywords="'+document.getElementById('latest_keywordsdata').value+'" categories="'+document.getElementById('latest_selectedcategories').value+'" sortby="'+document.getElementById('latest_sortby').value+'"/></get></request>', 'latest');
            } else {
                alert('There was a problem deleting your resource. ' + returnItem.getAttribute('guid'));
                document.getElementById('soxiframe_modal').document.xHide("loading");
            }
        }
		
		if (returnItem.nodeName == 'forumpost') {			
            if (returnItem.getAttribute('deleted') != null && returnItem.getAttribute('deleted') != "") {
                alert('The post has been deleted.');
                soxView('forum.aspx', returnItem.getAttribute('guid'), 'Forum');
                panelReq('<request><get><forums viewall="'+document.getElementById('forums_viewall').value+'" sortby="sox_forum_date DESC"/></get></request>', 'forums');								
            } else if (returnItem.getAttribute('updated') != null && returnItem.getAttribute('updated') != "") {
                alert('The post has been updated.');
                soxView('forum.aspx', returnItem.getAttribute('guid'), 'Forum');
                panelReq('<request><get><forums viewall="'+document.getElementById('forums_viewall').value+'" sortby="sox_forum_date DESC"/></get></request>', 'forums');				
			} else if (returnItem.getAttribute('added') != null && returnItem.getAttribute('added') != "") {
                alert('Your post has been saved.');
                soxView('forum.aspx', returnItem.getAttribute('guid'), 'Forum');				
                panelReq('<request><get><forums viewall="'+document.getElementById('forums_viewall').value+'" sortby="sox_forum_date DESC"/></get></request>', 'forums');								
            } else {
                alert('There was a problem deleting your resource. ' + returnItem.getAttribute('guid'));
                document.getElementById('soxiframe_modal').document.xHide("loading");
            }
        }
		
        if (returnItem.nodeName == 'education') {
            if (returnItem.getAttribute('deleted') != null && returnItem.getAttribute('deleted') != "") {
                alert('Your resource has been deleted.');
                hidePanel('modal');
                panelReq('<request><get><education sortby="sox_education_date DESC"/></get></request>', 'education');
            } else if (returnItem.getAttribute('guid') != null && returnItem.getAttribute('guid') != "") {
                alert('Your resource has been saved.');
                hidePanel('modal');
                panelReq('<request><get><education sortby="sox_education_date DESC"/></get></request>', 'education');
            } else {
                alert('There was a problem saving your resource. ' + returnItem.getAttribute('guid'));
                document.getElementById('soxiframe_modal').document.xHide("loading");
            }
        }
        
        if (returnItem.nodeName == 'initiative') {
            if (returnItem.getAttribute('deleted') != null && returnItem.getAttribute('deleted') != "") {
                alert('Your initiative has been deleted.');
                hidePanel('modal');
                panelReq('<request><get><initiatives sortby="sox_initiative_date DESC"/></get></request>', 'initiatives');
            } else if (returnItem.getAttribute('guid') != null && returnItem.getAttribute('guid') != "") {
                alert('Your initiative has been saved.');
                hidePanel('modal');
                panelReq('<request><get><initiatives sortby="sox_initiative_date DESC"/></get></request>', 'initiatives');
            } else {
                alert('There was a problem saving your initiative. ' + returnItem.getAttribute('guid'));
                document.getElementById('soxiframe_modal').document.xHide("loading");
            }
        }
        
        if (returnItem.nodeName == 'related') {
            if (returnItem.getAttribute('deleted') != null && returnItem.getAttribute('deleted') != "") {
                alert('Your relationship has been deleted.');
            } else if (returnItem.getAttribute('guid') != null && returnItem.getAttribute('guid') != "") {
                alert('Your relationship has been saved.');
            } else {
                alert('There was a problem saving your relationship.');
            }
            xRemoveEventListener(document, 'mousemove', relateMover);
            xRemoveEventListener(document, 'mousedown', killMover, true);
            xHide(document.getElementById('mousetracker'));
        }
        
         if (returnItem.nodeName == 'milestone') {            
            
            var modalIframeDoc = document.getElementById('soxiframe_modal').contentWindow;
            if (returnItem.getAttribute('deleted') != null && returnItem.getAttribute('deleted') != "") {
                alert('Your milestone has been deleted.');
                //hidePanel('modal');
                //panelReq('<request><get><initiatives sortby="sox_initiative_date DESC"/></get></request>', 'initiatives');
                modalIframeDoc.xHide("loading");
            } else if (returnItem.getAttribute('guid') != null && returnItem.getAttribute('guid') != "") {
                alert('Your milestone has been saved.');
                //hidePanel('modal');
                //panelReq('<request><get><initiatives sortby="sox_initiative_date DESC"/></get></request>', 'initiatives');
                modalIframeDoc.xHide("loading");
            } else {
                alert('There was a problem saving your milestone. ' + returnItem.getAttribute('guid'));
                modalIframeDoc.xHide("loading");
            }
        }
        
        if (returnItem.nodeName == 'contact') {
            if (returnItem.getAttribute('removed') != null && returnItem.getAttribute('removed') != "") {
                alert('Your contact has been removed.');
                hidePanel('modal');                
            } else if (returnItem.getAttribute('added') != null && returnItem.getAttribute('added') != "") {
                alert('Your contact has been saved.');
                hidePanel('modal');                
            } else {
                alert('There was a problem saving your contact.');
                document.getElementById('soxiframe_modal').document.xHide("loading");
            }
        }
        
        if (returnItem.nodeName == 'group') {
            if (returnItem.getAttribute('deleted') != null && returnItem.getAttribute('deleted') != "") {
                alert('Your group has been deleted.');
                hidePanel('modal');
                panelReq('<request><get><groups sortby="sox_group_date DESC"/></get></request>', 'groups');
            } else if (returnItem.getAttribute('guid') != null && returnItem.getAttribute('guid') != "") {
                alert('Your group has been saved.');
                hidePanel('modal');
				top.location.href = top.location.href;
                //panelReq('<request><get><groups sortby="sox_group_date DESC"/></get></request>', 'groups');
            } else {
                alert('There was a problem saving the group. ' + returnItem.getAttribute('guid'));
                document.getElementById('soxiframe_modal').document.xHide("loading");
            }
        }
        
        if (returnItem.nodeName == 'groupjoined') {
            if (returnItem.getAttribute('guid') != null && returnItem.getAttribute('guid') != "") {
                alert('Your group request has been sent. Membership is pending approval by the group administrator.');
                //hidePanel('modal');
                //panelReq('<request><get><groups sortby="sox_group_date DESC"/></get></request>', 'groups');
            } else {
                alert('There was a problem joining the group. ' + returnItem.getAttribute('guid'));
                //document.getElementById('soxiframe_modal').document.xHide("loading");
            }
        }
        
        if (returnItem.nodeName == 'groupmember') {
            if (returnItem.getAttribute('removed') != null && returnItem.getAttribute('removed') != "") {
                alert('The member has been removed.');
                hidePanel('modal');
                panelReq('<request><get><members/></get></request>', 'members');
            } else {
                alert('There was a removing the member. ' + returnItem.getAttribute('removed'));
                document.getElementById('soxiframe_modal').document.xHide("loading");
            }
        }
        
         if (returnItem.nodeName == 'memberpermissions') {

         }
         
         if (returnItem.nodeName == 'memberprofile'){
           
         }
         
         if (returnItem.nodeName == 'memberlist'){
        
            var memberList = document.getElementById("searchresults");
            var members = returnItem.getElementsByTagName('member');
            memberList.innerHTML =  "";
             
            for (var i=0;i<members.length;i++){
                memberList.innerHTML += "<div style=\"width:99%;padding:5px 2px 2px 2px;font-size:11px;border-bottom:1px solid #D6DFE7;\" onmouseover=\"this.style.cursor='pointer';\" onmouseout=\"this.style.cursor='default';\" onclick=\"javascriptid=\"div_" +  members[i].getElementsByTagName('prid')[0].firstChild.nodeValue + "\"><img src=\"soxrepo/profiles/thumb_" +  members[i].getElementsByTagName('image')[0].firstChild.nodeValue + "\" align=\"left\" hspace=5/>" + members[i].getElementsByTagName('firstname')[0].firstChild.nodeValue + " " + members[i].getElementsByTagName('lastname')[0].firstChild.nodeValue + "</div>";
            }
            
         }
       
         if (returnItem.nodeName == 'sendinvite') {
            alert('Your invitation has been sent.');
            hidePanel('modal');
            
         }
         
        
        
        if (returnItem.nodeName == 'member'){
               
                var modalIframeDoc = document.getElementById('soxiframe_modal').contentWindow;
                modalIframeDoc.xHide("loading");
            }
            
        if (returnItem.nodeName == 'relatename') {
           
            var relatebox = document.getElementById("relateditems");
            relatebox.innerHTML += "<div id=\"relatebox_" + returnItem.getAttribute('guid') + "\">" + returnItem.firstChild.nodeValue + " - <a href=\"javascript:;\" onclick=\"relateContent('" + returnItem.getAttribute('guid') + "');\">relate</a> | <a href=\"javascript:;\" onclick=\"removeContent('" + returnItem.getAttribute('guid') + "');\">remove</a></div>";

        }
        
        if (returnItem.nodeName == 'savedcomment') {
            var modalIframeDoc = document.getElementById('soxiframe_modal');
            modalIframeDoc.src = modalIframeDoc.src;
            alert('Your comment has been saved.');
        }
        
        if (returnItem.nodeName == 'groupmeta') {
            var modalIframeDoc = document.getElementById('soxiframe_modal');
           modalIframeDoc.src = modalIframeDoc.src;
            alert('Your group meta field has been saved.');
        }
        
        if (returnItem.nodeName == 'averagerating') {
            var modalIframeDoc = document.getElementById('soxiframe_modal');
            var ratingDiv = modalIframeDoc.contentWindow.document.getElementById("soxrating");            
            var averageRating = returnItem.firstChild.nodeValue.split("/")[0];
            var myRating = returnItem.firstChild.nodeValue.split("/")[1];
            alert('Your rating has been applied');
            for (var r = 0; r < ratingDiv.childNodes.length; r++) {
                var rItem = ratingDiv.childNodes[r];                
                if (averageRating > r) {
                    rItem.src = rItem.src.replace('_off.','_on.');
                }                
                if (myRating == r+1) {
                    rItem.src = rItem.src.replace('star_','starme_');
                }
            }           
        }
        
        if (returnItem.nodeName == 'deletecontent') {
            
            var modalIframeDoc = document.getElementById('soxiframe_modal');
            modalIframeDoc.src = modalIframeDoc.src;
            alert('Your content has been removed from this page.');
           
        }
        
        if (returnItem.nodeName == 'adddeletecontent') {            
            var modalIframeDoc = document.getElementById('soxiframe_modal');
            modalIframeDoc.src = modalIframeDoc.src;
            alert('Your content has been added back to this page.');          
        }
        
        if (returnItem.nodeName == 'addcontent1') {            
            var modalIframeDoc = document.getElementById('soxiframe_modal');
            modalIframeDoc.src = modalIframeDoc.src;
            alert('Your content has been added to your group.');
           
        }
        
        if (returnItem.nodeName == 'removecontent') {
            
           var modalIframeDoc = document.getElementById('soxiframe_modal');
            modalIframeDoc.src = modalIframeDoc.src;
            alert('Your content has been removed from your group.');
           
        }
        
        if (returnItem.nodeName == 'deletecomment') {
            
            var modalIframeDoc = document.getElementById('soxiframe_modal');
            modalIframeDoc.src = modalIframeDoc.src;
            alert('Your comment has been removed.');
           
        }
        
        if (returnItem.nodeName == 'reportcomment') {
            
           var modalIframeDoc = document.getElementById('soxiframe_modal');
            modalIframeDoc.src = modalIframeDoc.src;
            alert('Your report has been saved.');
           
        }
        
        if (returnItem.nodeName == 'reportcontent') {
          
            alert('Your report has been saved.');

        }

        /* [DEBUG] JK

        if (returnItem.nodeName == 'error') {
            var errorMsg = '';
            if (returnItem.childNodes.length > 0) {
                errorMsg = returnItem.firstChild.nodeValue;
            }
            else {
                alert(returnItem.childNodes.length);
            }
            alert(errorMsg);
        }
        //
        */

    }    
}

function buildGui() {
    
    var allNodes = document.getElementsByTagName('div');
    var panelLeftCount = 0;
    var panelRightCount = 0;
    var panelCenterCount = 0;      
    
    headerHeight = xHeight(document.getElementById('soxheader'))-45;
    
    for (var i = 0; i < allNodes.length; i++) {
        var currentNode = allNodes[i];
        if (currentNode.className == 'soxpanel_left') {
           var panelName = currentNode.id.split("_")[1];            
           panelLeftCount++;
           initPanel(panelName);
           leftPanelArray[leftPanelArray.length] = panelName;
        }
        if (currentNode.className == 'soxpanel_right') {
           var panelName = currentNode.id.split("_")[1]; 
           panelRightCount++;
           initPanel(panelName);
           rightPanelArray[rightPanelArray.length] = panelName;
        }
        if (currentNode.className == 'soxpanel_center') {
           var panelName = currentNode.id.split("_")[1]; 
           panelCenterCount++;
           initPanel(panelName);
           centerPanelArray[centerPanelArray.length] = panelName;    
        }
    }
    
    /** Initialization code.  * If you use your own event management code, change it as required. */
    //if (window.addEventListener)        /** DOMMouseScroll is for mozilla. */        
    //    window.addEventListener('DOMMouseScroll', wheel, false);    
    /** IE/Opera. */
    ///window.onmousewheel = document.onmousewheel = wheel;        
    
    soxApp = document.getElementById('soxapp');
    soxCanvas = document.getElementById('soxcanvas');

}



function ajaxReq(xmlIn, callingIframe) {

	var objHTTP, strResult;
	if (window.XMLHttpRequest) // if Mozilla, Safari etc
	{
		objHTTP = new XMLHttpRequest();
	} 
	else if (window.ActiveXObject) // if IE
	{ 
		try 
		{
			objHTTP = new ActiveXObject("Msxml2.XMLHTTP");
		} 
		catch (e)
		{
			try
			{
				objHTTP = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e)
			{
			    alert('Could not initiate request.');
			}
		}
	}
    
	objHTTP.open("POST", xmlUrl+"&rnd=" + Math.random()*4, true);
	objHTTP.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
 
    if (callingIframe != null) {

        objHTTP.onreadystatechange = function () {
            if (objHTTP.readyState == 4) {
                document.getElementById(callingIframe).contentWindow.ajaxResponse(objHTTP);

            }
        };

    } else {

        objHTTP.onreadystatechange = function () {

            if (objHTTP.readyState == 4) {

                ajaxResponse(objHTTP);
            }
        };
	    
	}
objHTTP.send("<?xml version='1.0' encoding='UTF-8'?>" + xmlIn);
}

function panelReq(xmlIn, panelId) {
   
	var objHTTP, strResult;
	if (window.XMLHttpRequest) // if Mozilla, Safari etc
	{
		objHTTP = new XMLHttpRequest();
	} 
	else if (window.ActiveXObject) // if IE
	{ 
		try 
		{
			objHTTP = new ActiveXObject("Msxml2.XMLHTTP");
		} 
		catch (e)
		{
			try
			{
				objHTTP = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e) {

			   
			}
		}
    }

	objHTTP.open("POST", xmlUrl + "&display=1&rnd=" + Math.random()*4, true);
	objHTTP.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

	objHTTP.onreadystatechange = function () {
	    if (objHTTP.readyState == 4) {
	        // alert("id: " + panelId);
	        //alert("got back: " + objHTTP.responseText);
	        eval('procReq_' + panelId + '(objHTTP.responseText)');
	    }
	};

	objHTTP.send("<?xml version='1.0' encoding='UTF-8'?>" + xmlIn);
}

function initPanel(panelName) {

}

function hidePanel(panelName) {
    var soxpanel = document.getElementById('soxpanel_' + panelName); 
    var lightbox = document.getElementById('lightbox');    
    if (panelName == 'modal') {
        xRemoveEventListener(window, 'scroll', sizeModal);
        xHide(lightbox);
        document.getElementsByTagName('body')[0].style.overflow = 'auto';
    }       
    document.getElementById('soxiframe_'+panelName).src = "soxapps/loading.html";     
    xHide(soxpanel);
}

function resizePanel(panelName, pXLoc, pYLoc, pWidth, pHeight) {
    var lightbox = document.getElementById('lightbox');
    var soxpanel = document.getElementById('soxpanel_' + panelName);        
    var soxpanelbar = document.getElementById('soxpanelbar_' + panelName);
    var soxpanelbarleft = document.getElementById('soxpanelbarleft_' + panelName);
    var soxpanelbarright = document.getElementById('soxpanelbarright_' + panelName);
    var soxpanelbarrightclose = document.getElementById('soxpanelbarrightclose_' + panelName);
    var soxpanelutil = document.getElementById('soxpanelutil_' + panelName);                
    var soxpanelborder = document.getElementById('soxpanelborder_' + panelName);                
    var soxpanelfooter = document.getElementById('soxpanelfooter_' + panelName);  
    var soxcontainer = document.getElementById('soxcontainer_' + panelName); 
    var soxpanelfooterleft = document.getElementById('soxpanelfooterleft_' + panelName);
    var soxpanelfooterright = document.getElementById('soxpanelfooterright_' + panelName);
    var soxpanelfootershadowimage = document.getElementById('soxpanelfootershadowimage_' + panelName);
    
    if (panelName == 'modal') {
        xWidth(lightbox,xClientWidth());
        xHeight(lightbox,xClientHeight());
        xShow(lightbox);
       // document.getElementsByTagName('body')[0].style.overflow = 'hidden';
   }
   
    xWidth(soxpanel,pWidth);
    xHeight(soxpanel,pHeight);
    
    xLeft(soxpanel,pXLoc);
    xTop(soxpanel,pYLoc);                
              
    xWidth(soxpanelbarleft,pWidth-xWidth(soxpanelbarright));
    xLeft(soxpanelbarright,pWidth-xWidth(soxpanelbarright));
    
    xLeft(soxpanelbarrightclose,pWidth-xWidth(soxpanelbarrightclose));
    
    //xTop(soxpanelutil,xHeight(soxpanelbar)-1);
    //xWidth(soxpanelutil,pWidth);

    // JK:  Don't ask me why this works, but in IE, soxpanelutil height gets set to ~12px when it should be 0.  This sets it to 1 manually.
    xHeight(soxpanelutil, 1);
    
    xTop(soxpanelborder,xHeight(soxpanelbar)+xHeight(soxpanelutil)-1);
    xWidth(soxpanelborder,pWidth);
    xHeight(soxpanelborder, pHeight - xHeight(soxpanelbar) - xHeight(soxpanelutil) - xHeight(soxpanelfooter) + 1);

    // DEBUG JK
    /*
    alert("pHeight = " + pHeight + "\n" +
          "xHeight(soxpanelbar) = " + xHeight(soxpanelbar) + "\n" +
          "xHeight(soxpanelutil) = " + xHeight(soxpanelutil) + "\n" +
          "xHeight(soxpanelfooter) = " + xHeight(soxpanelfooter) + "\n" +
          "whole shebang = " + (pHeight - xHeight(soxpanelbar) - xHeight(soxpanelutil) - xHeight(soxpanelfooter) + 1));*/
                  
    xTop(soxpanelfooter,pHeight-xHeight(soxpanelfooter)-1);
    xWidth(soxpanelfooterleft,pWidth-xWidth(soxpanelfooterright));
    xLeft(soxpanelfooterright,pWidth-xWidth(soxpanelfooterright));
    
    xTop(soxcontainer,xTop(soxpanelborder));
    xWidth(soxcontainer,pWidth);    
    xClip(soxcontainer,0,pWidth,pHeight-xHeight(soxpanelbar)-xHeight(soxpanelutil)-xHeight(soxpanelfooter),0);
    
    xWidth(soxpanelfootershadowimage,pWidth);      
    
}    

function resizePanel_standard(panelName, pXLoc, pYLoc, pWidth, pHeight) {
    var lightbox = document.getElementById('lightbox');
    var soxpanel = document.getElementById('soxpanel_' + panelName);        
    var soxpanelbar = document.getElementById('soxpanelbar_' + panelName);
    var soxpanelbarleft = document.getElementById('soxpanelbarleft_' + panelName);
    var soxpanelbarright = document.getElementById('soxpanelbarright_' + panelName);
    var soxpanelbarrightclose = document.getElementById('soxpanelbarrightclose_' + panelName);
    var soxpanelutil = document.getElementById('soxpanelutil_' + panelName);                
    var soxpanelborder = document.getElementById('soxpanelborder_' + panelName);                
    var soxpanelfooter = document.getElementById('soxpanelfooter_' + panelName);  
    var soxcontainer = document.getElementById('soxcontainer_' + panelName); 
    var soxpanelfooterleft = document.getElementById('soxpanelfooterleft_' + panelName);
    var soxpanelfooterright = document.getElementById('soxpanelfooterright_' + panelName);
    //var soxpanelfootershadowimage = document.getElementById('soxpanelfootershadowimage_' + panelName);
    
    if (panelName == 'modal') {
        xWidth(lightbox,xClientWidth());
        xHeight(lightbox,xClientHeight());
        xShow(lightbox);
        document.getElementsByTagName('body')[0].style.overflow = 'hidden';
   }
   
    xWidth(soxpanel,pWidth);
    xHeight(soxpanel,pHeight);
    
    xLeft(soxpanel,pXLoc);
    xTop(soxpanel,pYLoc);                
              
    xWidth(soxpanelbarleft,pWidth-xWidth(soxpanelbarright));
    xLeft(soxpanelbarright,pWidth-xWidth(soxpanelbarright));    
    
    //xLeft(soxpanelbarrightclose,pWidth-xWidth(soxpanelbarrightclose));
    //xTop(soxpanelbarrightclose,pYLoc); 
    
    xTop(soxpanelutil,xHeight(soxpanelbar)-1);
    xWidth(soxpanelutil,pWidth-24);
    
    xTop(soxpanelborder,xHeight(soxpanelbar)+xHeight(soxpanelutil)-1);
    xWidth(soxpanelborder,pWidth);
    xHeight(soxpanelborder,pHeight-xHeight(soxpanelbar)-xHeight(soxpanelutil)-xHeight(soxpanelfooter)+1);
                 
    xLeft(soxpanelfooter,-10);   
    xTop(soxpanelfooter,pHeight-xHeight(soxpanelfooter));
    xWidth(soxpanelfooterleft,pWidth-xWidth(soxpanelfooterright)+25);
    xLeft(soxpanelfooterright,pWidth-xWidth(soxpanelfooterright));
    
    xTop(soxcontainer,xTop(soxpanelborder));
    xWidth(soxcontainer,pWidth-4);    
    xClip(soxcontainer,0,pWidth,pHeight-xHeight(soxpanelbar)-xHeight(soxpanelutil)-xHeight(soxpanelfooter),0);
    
    //xWidth(soxpanelfootershadowimage,pWidth); 
        
}    

function resizeApp() { 
     
    xWidth(bgEl, xClientWidth()+20);
    
    if (xHeight(bgEl) < xClientHeight()) {
        xWidth(bgEl, null);
        xHeight(bgEl,xClientHeight()+20);
    }
    
    xWidth(soxApp,xClientWidth()); 
    xHeight(soxApp,xClientHeight());    

    var canvasHeight = xClientHeight()-(canvasMargin*2)-headerHeight;
    var centerWidth = xClientWidth()-(canvasMargin*2)-leftPanelWidth-rightPanelWidth-30;
    var lPanelSize = (canvasHeight / leftPanelArray.length);
    var rPanelSize = (canvasHeight / rightPanelArray.length);
    var cPanelSize = (canvasHeight / centerPanelArray.length);
    
    for (var p = 0; p < leftPanelArray.length; p++) {
         resizePanel(leftPanelArray[p], canvasMargin, canvasMargin+headerHeight+(p*lPanelSize)+20, leftPanelWidth, lPanelSize-30);
    }
    
    for (var p = 0; p < rightPanelArray.length; p++) {             
         resizePanel(rightPanelArray[p], xClientWidth()-canvasMargin-rightPanelWidth, canvasMargin+headerHeight+(p*rPanelSize)+20, rightPanelWidth, rPanelSize-30);
    }
    
    for (var p = 0; p < centerPanelArray.length; p++) {         
         resizePanel(centerPanelArray[p], canvasMargin+leftPanelWidth+15, canvasMargin+headerHeight+(p*cPanelSize)+20, centerWidth, cPanelSize-30);
    }

}

function resizeApp_standard() { 

    return true;
     
    xWidth(bgEl, xClientWidth()+20);
    
    if (xHeight(bgEl) < xClientHeight()) {
        xWidth(bgEl, null);
        xHeight(bgEl,xClientHeight()+20);
    }
   
   //xTop(soxApp,canvasMargin); 
    //xLeft(soxApp,canvasMargin); 
    xWidth(soxApp,xClientWidth()); 
    xHeight(soxApp,xClientHeight());   

    var canvasHeight = xClientHeight()-(canvasMargin*2)-headerHeight;
    var centerWidth = xClientWidth()-(canvasMargin*2)-rightPanelWidth-60;
    var lPanelSize = (canvasHeight / leftPanelArray.length);
    var rPanelSize = (canvasHeight / rightPanelArray.length);
    var cPanelSize = (canvasHeight / centerPanelArray.length);
     
    return true;
    
    for (var p = 0; p < leftPanelArray.length; p++) {
         resizePanel_standard(leftPanelArray[p], canvasMargin, canvasMargin+headerHeight+(p*lPanelSize)+20, leftPanelWidth, lPanelSize-30);
    }
    
    for (var p = 0; p < rightPanelArray.length; p++) {                
        resizePanel_standard(rightPanelArray[p], xClientWidth()-canvasMargin-rightPanelWidth-45, headerHeight+(p*rPanelSize)+15, rightPanelWidth+15, rPanelSize+50-15);
    }
    
    for (var p = 0; p < centerPanelArray.length; p++) {         
         resizePanel_standard(centerPanelArray[p], canvasMargin-20, headerHeight+(p*cPanelSize)+50, centerWidth+20, cPanelSize-30);
    }
    
        
    var leftEdge = document.getElementById('leftedge');
    var partition = document.getElementById('partition');
    var rightEdge = document.getElementById('rightedge');
    var soxHeader = document.getElementById('soxheader');
    var soxUtil = document.getElementById('soxutil');
    
    xLeft(partition,canvasMargin+centerWidth-13);
    xLeft(rightEdge,xClientWidth()-xWidth(rightEdge)-canvasMargin+10);
    
    xWidth(soxHeader,centerWidth+canvasMargin);
    
    xLeft(soxUtil,canvasMargin+centerWidth+7);    
    xWidth(soxUtil,rightPanelWidth+23);
    xHeight(soxUtil,headerHeight-115);
    
    xHeight(leftEdge,xClientHeight()+100);
    xHeight(partition,xClientHeight()+100);
    xHeight(rightEdge,xClientHeight()+100);

}

function getTarget(x){ 
    x = x || window.event;
    return x.target || x.srcElement;
}

function soxCreate(id) {
    var container = document.getElementById('soxcontainer_modal');
    var iframeChild = document.getElementById('soxiframe_modal');
    container.removeChild(iframeChild);
    
     resizePanel('modal', canvasMargin*2, canvasMargin*2, xClientWidth()-canvasMargin*4, xClientHeight()-canvasMargin*4);
     document.getElementById('soxpaneltitle_modal').innerHTML = button_ClosePanel('modal') + 'Create';
     
     container.appendChild(iframeChild);
     
     iframeChild.src = "soxapps/create.aspx";
     xShow(document.getElementById('soxpanel_modal'));
     xHeight(iframeChild, xHeight(document.getElementById('soxpanelborder_modal')));
}

function sizeModal() {
    var lightbox = document.getElementById('lightbox');
    var container = document.getElementById('soxcontainer_modal');
    var iframeChild = document.getElementById('soxiframe_modal');
    var soxapp = document.getElementById('soxapp');
    
    xTop(lightbox,xScrollTop());
    xWidth(lightbox,xClientWidth());
    xHeight(lightbox, xClientHeight());

    // DEBUG JK
    // alert("canvasMargin = " + canvasMargin + "\ncanvasMargin*2 = " + canvasMargin * 2 + "\nxScrollTop() = " + xScrollTop() + "\nxClientHeight() = " + xClientHeight());
    
    resizePanel('modal', canvasMargin*2, xScrollTop()+canvasMargin*2, xClientWidth()-canvasMargin*4, xClientHeight()-canvasMargin*4);
    xHeight(iframeChild, xHeight(document.getElementById('soxpanelborder_modal')));    
    
}

function showModal(url, text) {
    var container = document.getElementById('soxcontainer_modal');
    var iframeChild = document.getElementById('soxiframe_modal');
    var lightbox = document.getElementById('lightbox');
   
    var modalTitle = text;
    if (modalTitle == null) {
        modalTitle = '';
    }
    
    container.removeChild(iframeChild);
    
    document.getElementById('soxpaneltitle_modal').innerHTML = button_ClosePanel('modal') + modalTitle;
     
    container.appendChild(iframeChild);
     
    document.getElementById('soxiframe_modal').src = "soxapps/loading.html";    
    
    iframeChild.src = url;   
    
    sizeModal();
    
    xShow(document.getElementById('soxpanel_modal'));
    
    xAddEventListener(window, 'scroll', sizeModal);
    
}


function soxView(app, guid, text) {

//TODO  Modify this so it puts an iframe in the sox_container (main div) and updates the source to the app instead of opening the modal window.
    var iframe_id;
    // var container = document.getElementById('soxcontainer_modal');
    var container = $(".soxcontainer_blue");
    var iframeChild = document.getElementById('soxiframe_modal');
    
    var modalTitle = text;
    if (modalTitle == null) {
        modalTitle = 'Viewer';
    }
   // container.removeChild(iframeChild);
    
                    //resizePanel('modal', canvasMargin*2, canvasMargin*2, xClientWidth()-canvasMargin*4, xClientHeight()-canvasMargin*4);
     //document.getElementById('soxpaneltitle_modal').innerHTML = button_ClosePanel('modal') + modalTitle;
    // alert('jjj');
    // container.appendChild(iframeChild);
    $(container).html(iframeChild);
   // $(container).css("height", "1080px");
     document.getElementById('soxiframe_modal').src = "soxapps/loading.html";
    // xShow(document.getElementById('soxpanel_modal'));
    
     iframeChild.src = "soxapps/"+app+"?mode=view&guid="+guid+"&rnd=" + Math.random()*4;
                //alert("soxapps/"+app+"?mode=view&guid="+guid);
                 //xHeight(iframeChild, xHeight(document.getElementById('soxpanelborder_modal')));
     
     
   //  sizeModal();

     //   xAddEventListener(window, 'scroll', sizeModal);
  
     return false;
}

function soxEdit(app, guid, modalTitle) {
    var container = document.getElementById('soxcontainer_modal');
    var iframeChild = document.getElementById('soxiframe_modal');
    container.removeChild(iframeChild);
    
     //resizePanel('modal', canvasMargin*2, canvasMargin*2, xClientWidth()-canvasMargin*4, xClientHeight()-canvasMargin*4);
     document.getElementById('soxpaneltitle_modal').innerHTML = button_ClosePanel('modal') + modalTitle;
     
     container.appendChild(iframeChild);
     
     document.getElementById('soxiframe_modal').src = "soxapps/loading.html";
     xShow(document.getElementById('soxpanel_modal'));
    
     iframeChild.src = "soxapps/"+app+"?mode=edit&guid="+guid+"&rnd=" + Math.random()*4;
     //xHeight(iframeChild, xHeight(document.getElementById('soxpanelborder_modal')));
     
     sizeModal();
     
     xAddEventListener(window, 'scroll', sizeModal);
}

function soxMode(app, guid, modalTitle, mode) {
    var container = document.getElementById('soxcontainer_modal');
    var iframeChild = document.getElementById('soxiframe_modal');
    container.removeChild(iframeChild);
    
     resizePanel('modal', canvasMargin*2, canvasMargin*2, xClientWidth()-canvasMargin*4, xClientHeight()-canvasMargin*4);
     document.getElementById('soxpaneltitle_modal').innerHTML = button_ClosePanel('modal') + modalTitle;
     
     container.appendChild(iframeChild);
     
     document.getElementById('soxiframe_modal').src = "soxapps/loading.html";
     xShow(document.getElementById('soxpanel_modal'));
    
     iframeChild.src = "soxapps/"+app+"?mode="+mode+"&guid="+guid+"&rnd=" + Math.random()*4;
     xHeight(iframeChild, xHeight(document.getElementById('soxpanelborder_modal')));
}

function button_ClosePanel(panelName) {
    return '';//'<div style="cursor: pointer; float: right; font-weight: bold; font-size:14px;" onclick="hidePanel(\''+panelName+'\')">X</div>';
}

function togglePanel(panelName, forceOpen) {
    
    if (document.getElementById(panelName).style.display == "none" || forceOpen) {
        document.getElementById(panelName).style.display = "";        
        if (document.getElementById(panelName + '_toggle')) {
            document.getElementById(panelName + '_toggle').src = document.getElementById(panelName + '_toggle').src.replace("_up","_down");
        }
   
    } else {
        document.getElementById(panelName).style.display = "none";
        if (document.getElementById(panelName + '_toggle')) {
            document.getElementById(panelName + '_toggle').src = document.getElementById(panelName + '_toggle').src.replace("_down","_up");
        }
    }

    //resizeApp_standard();
}


function setCookie(c_name,value,expiredays) {
    var exdate = new Date();
    exdate.setDate(exdate.getDate()+expiredays);
    document.cookie = c_name + "=" + escape(value) + ((expiredays==null) ? "" : ";expires="+exdate.toGMTString());
}

function getCookie(c_name) {
    if (document.cookie.length > 0) {
        c_start=document.cookie.indexOf(c_name + "=");
        if (c_start!= -1) { 
            c_start = c_start + c_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 "";
}

// PEOPLE SEARCH FUNCTIONS
function getMembers(obj, group){
    
    if (obj.value != ""){
        xShow('searchresults');
        xTop('searchresults', 95);
        xLeft('searchresults', 450);
        ajaxReq("<request><get><groupmembers sortby=\"last_name DESC\" text=\"" + obj.value + "\">" + group + "</groupmembers></get></request>");        
        
    }else{
         xHide('searchresults');
    }
}

function searchMembers(searchText){
    xHide('searchresults');
    showModal("soxapps/searchmembers.aspx?searchtext=" + searchText, "Search Members")

}




