
var tabs = new Array(
'customTab',
'automaticTab',
'HTMLTab',
'moduleTab'
)

// Available modules
var modules;
var currentPreviewObject;
var globalcontent;
var iCustomContentFormat;
var strAutomaticContentType;
var custom_box_ele = new Array();
var custom_search_ele = new Array();
var curr_widget_type = "";
var customSearchBox;
var custom_box_hash = new Array();



function updateDisplayOptions(tab) {

    var type = document.getElementById(tab+'ContentType').value;
    var container = document.getElementById(tab+'DisplayOptions');
    if (container.className != type+'Display') {
        var d = new Date()
        var t = d.getTime()
        var url = '/admin/ajax/displayOptions/?type='+type+'&adminview=1&mode=' +tab+'&ts=' + t;

        var callbackFun = 
        { 
            success: function(o) {updateDisplayOptionsReturn(o)}, 
            failure: function(o) {updateDisplayOptionsReturn(o)}
        }; 
        var request = YAHOO.util.Connect.asyncRequest('GET', url, callbackFun);
    }
}

function updateDisplayOptionsReturn(o) {

    var d = eval("eval("+o.responseText+");");
    if (document.getElementById(d.mode+'DisplayOptions').className != d.type+'Display') {
        document.getElementById(d.mode+'DisplayOptions').innerHTML = d.data;
        document.getElementById(d.mode+'DisplayOptions').className = d.type+'Display';
    }
}



function updateOptionPanel(type,mode) {


        var d = new Date()
        var t = d.getTime()
        var url = '/admin/ajax/displayOptions/?type='+type+'&adminview=1&mode=' + mode +'&ts=' + t;

        var callbackFun = 
        { 
            success: function(o) {updateOptionPanelReturn(o)}, 
            failure: function(o) {updateOptionPanelReturn(o)}
        }; 
        var request = YAHOO.util.Connect.asyncRequest('GET', url, callbackFun);
    
}

function updateOptionPanelReturn(o) {

    var d = eval("eval("+o.responseText+");");

    document.getElementById('displayOptionsPanel').innerHTML = d.data;

    if(d.jsinit)
       eval(d.jsinit);
}

function changeTab(name) {

    hidePanes();
    subjectsTA(true);

    document.getElementById('ddcType').value = name;
    document.getElementById('ddInsertButton').style.display = '';

    switch(name) {
        case 'custom':
            subjectsTA();
            document.getElementById('previewContent').style.display = '';
        break;
        case 'automatic':
            subjectsTA();
            document.getElementById('previewContent').style.display = '';
        break;
        case 'HTML':
            document.getElementById('previewContent').style.display = '';
        break;
        default:
            
        break;
    }
}

function hidePanes() {

    document.getElementById('availableContent').style.display = 'none';
    document.getElementById('previewContent').style.display = 'none';
    document.getElementById('availableContentHeader').innerHTML = 'Available Content';
}

function subjectsTA(disable) {
    document.getElementById('ddSearchResults').style.display = 'none';
    if (disable) {
        document.getElementById('availableContentHeader').innerHTML = '';
        document.getElementById('availableContent').style.display = 'none';
        document.getElementById('ddSubjects').style.display = 'none';    
    } else {
        if (document.getElementById('availableContentHeader').innerHTML == 'Available Subjects')
            return;
        document.getElementById('availableContentHeader').innerHTML = 'Available Subjects';

    if(document.getElementById('ddMatchSubjectsHeading'))
        document.getElementById('ddMatchSubjectsHeading').innerHTML   = 'Matching Subjects';

    if(document.getElementById('ddSuggestSubjectsHeading'))
        document.getElementById('ddSuggestSubjectsHeading').innerHTML = 'Suggested Subjects';

    if(document.getElementById('ddMatchSubjects'))
        document.getElementById('ddMatchSubjects').innerHTML   = 'Please start typing to find subjects';

    if(document.getElementById('ddSuggestSubjects'))
        document.getElementById('ddSuggestSubjects').innerHTML = '';

        document.getElementById('availableContent').style.display = '';

    if(document.getElementById('ddSubjects'))
        document.getElementById('ddSubjects').style.display = '';

    }
}

function placesTA(disable) {

    document.getElementById('ddSearchResults').style.display = 'none';
    if (disable) {
        document.getElementById('availableContentHeader').innerHTML = '';
        document.getElementById('availableContent').style.display = 'none';
        document.getElementById('ddSubjects').style.display = 'none';        
    } else {
        if (document.getElementById('availableContentHeader').innerHTML  == 'Available Places')
            return;
        document.getElementById('availableContentHeader').innerHTML   = 'Available Places';
        document.getElementById('ddMatchSubjectsHeading').innerHTML   = 'Matching Places';
        document.getElementById('ddSuggestSubjectsHeading').innerHTML = 'Suggested Places';
        document.getElementById('ddMatchSubjects').innerHTML   = 'Please start typing to find places';
        document.getElementById('ddSuggestSubjects').innerHTML = '';
        document.getElementById('availableContent').style.display = '';
        document.getElementById('ddSubjects').style.display = '';
    }
}
var globalcontent;

function previewHTMLContent() {


    if( !isObject(ContentManager) )
        ContentManager = new ContentBoxManager();

    nid = MSJS.dd.newGroupID();

    ContentManager.iCurrGroupID = nid;

    if(ContentManager.strCurrContainerID=='')
        key = "simpleEditorgrp1";
    else   
        key = "simpleEditor" + ContentManager.strCurrContainerID;

    if(lastmceid!=-1) 
        key = lastmceid

    if(document.getElementById(key)){
        htm = document.getElementById(key).innerHTML;
        if( htm != ''){
            globalcontent = document.getElementById(key).innerHTML;

            if( isObject(ContentManager) ){

                if(ContentManager.strCurrEventType != "insert" && ContentManager.iEventCount >= 1){

                    ContentManager.databuffer = document.getElementById(key).innerHTML;
                    ContentManager.strCurrContainerID = key;
                }else{

                    ContentManager.databuffer = '';
                    ContentManager.strCurrEventType = "postinsert";
                }
                ContentManager.iEventCount++;
            }     
        }
    }

    if (currentPreviewObject && document.getElementById(currentPreviewObject.id)) {
        if (document.getElementById('editMode').value == 'true') {
            document.getElementById('editMode').value = '';
            removeBox(currentPreviewObject.id, true);
        } else {
            currentPreviewObject.getEl().parentNode.removeChild(currentPreviewObject.getEl());
        }
    }

    var box = new ContentBox('box', nid);
    box.boxType    = 'HTML';
    box.heading    = document.getElementById('HTMLContentHeading').value;
    box.useHeading = document.getElementById('HTMLUseHeading').checked;
    box.theme      = document.getElementById('HTMLContentTheme').value;

    box.generateBox();
    currentPreviewObject = box;


    document.getElementById('previewContentArea').innerHTML = '';

    document.getElementById('previewContentArea').appendChild(box.HTML);

    if(document.getElementById("simpleEditor" + nid)){

        obj = document.getElementById("simpleEditor" + nid);
        obj.style.color = "black";
    }
    
    ContentManager.iUpdatePreview = 0;
}


function previewAutomaticContent() {

 
    //if(document.getElementById('automaticContentSubject').value ==''){
    //    alert('Please enter a subject.');
    //    return;
    //}

    if (currentPreviewObject && document.getElementById(currentPreviewObject.id)) {
        if (document.getElementById('editMode').value == 'true') {
            document.getElementById('editMode').value = '';
            removeBox(currentPreviewObject.id, true);
        } else {
            currentPreviewObject.getEl().parentNode.removeChild(currentPreviewObject.getEl());
        }
    }  

    var box = new ContentBox('box', (MSJS.dd.newGroupID()));
    box.heading    = document.getElementById('templateContentHeading').value;
    box.useHeading = document.getElementById('templateUseHeading').checked;
    box.type       = strAutomaticContentType;//document.getElementById('automaticContentType').value;
 
    if(document.getElementById('templateContentCount'))
        box.count      = document.getElementById('templateContentCount').value;
    else
        box.count      = 0;

    box.format     = document.getElementById('contentDisplayTemplate').value;
    box.subject    = document.getElementById('automaticContentSubject').value;
    box.theme      = document.getElementById('templateContentTheme').value;
    box.boxType    = 'automatic';
    box.generateBox();
    currentPreviewObject = box;


    document.getElementById('previewContent').style.visibility = 'visible';
    document.getElementById('contentResults').innerHTML = '';
    document.getElementById('previewPane').innerHTML = '';
    document.getElementById('previewPane').appendChild(box.HTML);
}

// this updates the content title or 'header'
function updateHeading(caller) {
  
    if(ContentManager)
       ContentManager.iUpdatePreview = 1;

    if(currentPreviewObject)
        document.getElementById(currentPreviewObject.headerId).innerHTML = caller.value;

    return; // kludge

    if (!(currentPreviewObject 
          && document.getElementById(currentPreviewObject.id)) 
          || !document.getElementById('templateUseHeading').checked) {
        return;
    }

    currentPreviewObject.heading = caller.value;
    document.getElementById('grphead'+currentPreviewObject.id).innerHTML = currentPreviewObject.heading;
}

function updateTheme(caller) {

    if (!currentPreviewObject || !document.getElementById(currentPreviewObject.id)) {
        if (document.getElementById('ddcType').value == 'HTML') {
            
        }
        return;
    }
    currentPreviewObject.theme = caller.value;
    document.getElementById(currentPreviewObject.id).className = currentPreviewObject.theme;
    if (caller.id.indexOf('automatic') > -1) {
        if (document.getElementById('automaticNewWindow').checked) {
            document.getElementById(currentPreviewObject.id).className += ' newWindow';
        }
    } else if (caller.id.indexOf('custom') > -1) {
        if (document.getElementById('customNewWindow').checked) {
            document.getElementById(currentPreviewObject.id).className += ' newWindow';
        }
    }
}

function toggleHeading(caller) {

    hideTiny();

    if (!currentPreviewObject) {
        return;
    }
    if (caller.checked) {
        document.getElementById(currentPreviewObject.headerId).style.display = '';
        document.getElementById(currentPreviewObject.headerId).innerHTML = document.getElementById("HTMLContentHeading").value;
        currentPreviewObject.useHeading = true;
    } else {
        document.getElementById(currentPreviewObject.headerId).style.display = 'none';
        document.getElementById(currentPreviewObject.headerId).innerHTML = document.getElementById("HTMLContentHeading").value;
        currentPreviewObject.useHeading = false;
    }

    if(ContentManager.strModeEditType == "HTML")
        previewHTMLContent(); 

}

var iCustomContentFormat;
var strAutomaticContentType;

function searchCustomContent() {

    clearSearchResultPanel();

    if (!customInsertPosition) {
        customInsertPosition = insertPosition;
    }

    customFileName       = "";

    customContentSubject = document.getElementById("automaticContentSubject").value;
    customLocation       = "";//document.getElementById('customContentSubject').value;
    title = document.getElementById("automaticContentTitle").value;
 
    if(document.getElementById('customContentDisplay'))
        customContentFormat  = document.getElementById('customContentDisplay').value;
    else
        customContentFormat = customContentType; 

    // Make the request
    var d = new Date()
    var t = d.getTime()

    var url = '/admin/ajax/browser?searchType=custom&subject=' + encodeURIComponent(customContentSubject) + '&ts=' + 
              t + '&type=' + customContentType + '&adminview=1&format=' +  document.getElementById("contentDisplayTemplate").value + '&title='+title;

    for( i=0; i < custom_search_ele.length; i++)
        url += getSearchParamValuePair(custom_search_ele[i]["id"],custom_search_ele[i]["type"] );


    var callbackFun = 
        { 
            success: function(o) {customSearchReturn(o)}, 
            failure: function(o) {customSearchReturn(o)}
        }; 
    
    var request = YAHOO.util.Connect.asyncRequest('GET', url, callbackFun);  
}

function getSearchParamValuePair(id,type){

    pairs = '';

    for( i=0; i < custom_search_ele.length; i++){
        if( type == "checkbox" )
            pairs += "&" + custom_search_ele[i]["id"] + "=" + document.getElementById( custom_search_ele[i]["id"] ).checked;
        else 
            pairs += "&" + custom_search_ele[i]["id"] + "=" + document.getElementById( custom_search_ele[i]["id"] ).value;
    }
    return pairs;
}

function combine_array(obj,deep){
    var str = "";
    for (x in obj){
        str += obj[x];
    }
    return str;
}

function boxControlCustomInit(datastring){

    var rsBoxInit = combine_array(datastring);
    if(rsBoxInit)
        eval(rsBoxInit);
}




function add_config_params(id,type){

    for( i=0; i < custom_search_ele.length; i++){

        if(custom_search_ele[i]["id"] == id){
            custom_search_ele[i]["type"] = type;
            return;
        }
    }

    index = custom_search_ele.length; 
    custom_search_ele[index]= new Array();
    custom_search_ele[index]["id"] = id;
    custom_search_ele[index]["type"] = type; 

} 


function move_custom_attr_to_box(boxid){

    //alert("moving to " + boxid);
    var found = false;
    custom_box_ele[boxid]= new Array();

    for( i=0; i < custom_search_ele.length; i++){
        custom_box_ele[boxid][i] = new Array();
        custom_box_ele[boxid][i]["id"] = custom_search_ele[i]["id"];
        custom_box_ele[boxid][i]["type"] = custom_search_ele[i]["type"];
        if(custom_search_ele[i]["type"])
            found = true; 
    }
	
    if(found==true)
        custom_box_hash[custom_box_hash.length] = boxid;
	
    custom_search_ele = new Array();
} 


function set_widget_type(type){

   document.getElementById("widget_type").value = type;

}

function get_widget_type(){

   return document.getElementById("widget_type").value;
}



function customSearchReturn(o) {

    if (!document.getElementById(customSearchBox) || !currentPreviewObject) {

        var box = new ContentBox('custombox', (MSJS.dd.newGroupID()));

        box.heading     = document.getElementById("templateContentHeading").value;

        if(document.getElementById('templateContentCount'))
            box.count      = document.getElementById('templateContentCount').value;
        else
            box.count      = 0;
  
        box.type        = iCustomContentFormat;
        box.boxType     = 'custom';
        box.useHeading  = document.getElementById("templateUseHeading").checked;
        box.theme       = document.getElementById("templateContentTheme").value;
        box.format      = document.getElementById('contentDisplayTemplate').value;
        box.generateBox();

        currentPreviewObject = box;
    }else{
        
        currentPreviewObject.nid = MSJS.dd.newGroupID(); 
        currentPreviewObject.generateBox();
    }
   
    document.getElementById('availableContentHeader').innerHTML = 'Available Content';
    //document.getElementById('ddSubjects').style.display = 'none';
    document.getElementById('ddSearchResults').style.display = '';
    
    var rs = eval(o.responseText);
    var box = rs[0];

    if(rs[rs.length - 2] =="jsdir"){
    
        boxControlCustomInit(rs[rs.length-1]);
    }

    //if(rs[4]){
    //    boxControlCustomInit(rs[4]);
    

    //box = document.getElementById('ddSearchResults');
    box = document.getElementById('contentResults');

    /**
     * Response codes:
     * 200: Ok
     * 404: Subject not found
     * 405: No content found under subject
     */

    if (rs[1] != 200) {
        this.hasContent = false;
        var message;
        switch (rs[1]) {
        case 404:
            message = 'No content found.';
        break;
        case 405:
            message = 'No contents with given type were found under given subject';
        break;
        }
        var p = document.createElement('p');
        p.className = 'errorBox';
        p.innerHTML = message;
        box.innerHTML = '';
        box.appendChild(p);
        return;
    }

    box.innerHTML = '';
    addDDTargetsToSearchResultPanel(rs,box);
    MSJS.dd.initIP();
}

/****
* 
   addDDTargetsToSearchResultPanel( (json) rs[], msjs.dd.box)
  
   adds drag and drop prolific resourse query results to the preview Panel
*/
function addDDTargetsToSearchResultPanel(rs,box){


    var format = 2;//document.getElementById('customContentDisplay').value;
    for (i=2; i<rs.length; i++) {
        mdiv = document.createElement('div');
        mdiv.className = 'addHandle';
        mdiv.id = 'customblob' + (MSJS.dd.groups.length + 1);

        sdiv = document.createElement('div');
        sdiv.className = 'content';
        
        ecdiv = document.createElement('div');
        ecdiv.className = 'enterblob';
        ecdiv.id = 'enterblob' + mdiv.id;
        ecdiv.style.height = '2px';
        ecdiv.innerHTML = '&nbsp;';
        dt = document.createElement('dt');
        dt.id = 'grpDT' + box.id + i;
        dt.innerHTML = '<a href="'+rs[i].link+'">'+rs[i].title+'</a>';
        if (format != 2) {
            dd = document.createElement('dd');
            dd.id = 'grpDD' + box.id + i;
            dd.innerHTML = (format==1)?rs[i].contents:rs[i].summary;

            dt.appendChild(dd);
        }

        b = new contentBlob();
        b.id = mdiv.id;
        b.cmsID = rs[i].id;
        b.format = format;

        MSJS.dd.blobs.push(b);
        //sdiv.appendChild(dt);
        sdiv.innerHTML = rs[i].html ;

        mdiv.appendChild(sdiv);
        mdiv.appendChild(ecdiv);
        box.appendChild(mdiv);

        MSJS.dd.addGroup(mdiv.id, 2);
    }
}

/**
 * Inserts a content box in the requested position
 *
 * @param htmlNode div    An HTML node representing the DIV to be inserted
 * @return void
 */

function buttonInsertBox () {
    ContentManager.insertBoxButtonPressed = 1;
     
    if(ContentManager.strModeEditType == "HTML" && ContentManager.iUpdatePreview)
        previewHTMLContent();

    insertBox ();
}


function insertBox (div) {    
 


    var fromPreview = false;


    //allow dash after untill content has been inserted
    if(document.getElementById('dashwrap'))
        document.getElementById('dashwrap').style.display = '';

    hideTiny();
    var editMode = false;
    if (document.getElementById('editMode').value == 'true') {
        editMode = true;
    }
    if (!div && document.getElementById('ddcType').value == 'custom' && currentPreviewObject) {
        insertPosition = customInsertPosition;
        customSearchBox = '';
        currentPreviewObject.hasContent = true;
    }
    if (!div && !currentPreviewObject) {
        if (document.getElementById('ddcType').value == 'custom') {
            alert('Please search for content before inserting a custom content box');
        } else {
            alert('Please use the preview button before adding content');
        }
        return;
    }
    if (currentPreviewObject && !currentPreviewObject.hasContent && !document.getElementById('ddcType').value == 'custom') {
        var cnf = confirm('Are you sure you want to insert a blank content block?');
        if (!cnf) {
            return;
        }
    }
    if (!div) {


        var div = currentPreviewObject.HTML;

        if( div.id == 'customgrpundefined')
            div.setAttribute('id',"custom"+ContentManager.strCurrContainerID);

        fromPreview = true;
    }else{

    }
    if (insertPosition) {

        if (insertPosition.id.indexOf('sub')>-1) {
            insertPosition = document.getElementById(insertPosition.id+'b');
            arr = new Array();
            if (insertPosition.childNodes.length > 0) {
                insertPosition.insertBefore(div, insertPosition.childNodes[0]);
            } else {
                insertPosition.appendChild(div);
            }
        } else {

            if (insertPosition.id.indexOf('customblob')>-1) {
                var parent = insertPosition.parentNode;
            } else {
                var parent = insertPosition.parentNode;
            }
            pos = parent.childNodes.length;

            for (i=0; i<parent.childNodes.length; i++) {

                if (parent.childNodes[i] == insertPosition) {
                    pos = i;
                    break;
                }
            }

            if(pos+1 == parent.childNodes.length) {

                if(ContentManager.insertBoxButtonPressed){

                    if(!selectedGroupHandle || !document.getElementById(selectedGroupHandle)) {
                        alert("no selectedGroupHandle");
                        selectedGroupHandle = "sub2b";
                    }

                    if(selectedGroupHandle && document.getElementById(selectedGroupHandle)) {

                        document.getElementById(selectedGroupHandle).appendChild(div);
                    }else{

                    }
                }else{
                    //found an area to deposit
                    parent.appendChild(div);
                } 
            } else {

                if(ContentManager.insertBoxButtonPressed==1){
                    previewCustomContentArea = document.getElementById('previewCustomContentArea');

                    if(document.getElementById(selectedGroupHandle)){

                    }
                    else{ 
                        pCCAcontainer = getPCCAcontainer();

                        selectedGroupHandleContentArea = document.createElement('div');
                        selectedGroupHandleContentArea.setAttribute('id', selectedGroupHandle);

                        pCCAcontainer.appendChild(selectedGroupHandleContentArea);
                        alert('append3');
                    }
                    
                    if(document.getElementById(selectedGroupHandle)){

                        setNextAreaGroupID();

                        var lower;

                        if( ContentManager.strLastAreaGroupID !=  '' )
                            lower = document.getElementById(ContentManager.strLastAreaGroupID);

                        if(ContentManager.selectedGroupHandle!='')
                            selectedGroupHandle = ContentManager.selectedGroupHandle;
                        else
                            selectedGroupHandle = 'sub1b'; 

                        if(ContentManager.iAreaIsPopulated==1 && lower && document.getElementById(lower.id) && div && document.getElementById(div.id) && selectedGroupHandle && document.getElementById(selectedGroupHandle)){

                            // add to boxxes here? check first?
                            document.getElementById(selectedGroupHandle).insertBefore(div, lower);
                            ContentManager.iEventCount++;

                        }else{

                            document.getElementById(selectedGroupHandle).appendChild(div, previewCustomContentArea);
                        }
                    }
                }else{

                     // this happens when you add drag and drop images the the data/preview area
                     parent.insertBefore(div, parent.childNodes[pos+1]);
                }
            }
        }
        if (fromPreview) {

            document.getElementById(currentPreviewObject.handleId).style.display = '';
            document.getElementById(currentPreviewObject.enterId).style.display = '';

            if ( document.getElementById('editMode').value != 'true' || ContentManager.iEventCount!=0 )  
                addPreviewObjectToMSJSDD();
                
            if(ContentManager.insertBoxButtonPressed==1)
                closePreviewArea(); 
        }
    }
}


/*
    void addPreviewObjectToMSJSDD()

    This is adds the current preview object to the MSJS drop down and group arrays

*/
function addPreviewObjectToMSJSDD(){


    
    if(currentPreviewObject.boxType == "custom")
        currentPreviewObject.type = iCustomContentFormat;
    else  
        currentPreviewObject.type = strAutomaticContentType;
        

    MSJS.dd.addGroup(currentPreviewObject.id);

    move_custom_attr_to_box(currentPreviewObject.id);

    grp = MSJS.dd.groups[MSJS.dd.groups.length-1];
    if (currentPreviewObject.handleId) { 

        grp.setHandleElId(currentPreviewObject.handleId);
    }
    grp.invalidHandleClasses.push('ddnhandle');
    MSJS.dd.initIP();
    if (MSJS.dd.currentViewID) {

        currentPreviewObject.groupView = MSJS.dd.currentViewID;
    }
    MSJS.dd.boxes.push(currentPreviewObject);
}

/*
    html.div getPCCAcontainer()

    This is the page area you are trying to add a content box back into

*/
function getPCCAcontainer(){

    var pCCAcontainer;

    if(ContentManager.strPageAreaSelected == '')
        pCCAcontainer = document.getElementById('primary');
    else
        pCCAcontainer = document.getElementById(ContentManager.strPageAreaSelected);

    return pCCAcontainer;
}





                        

/* This area previews  the possible data... resources from the database, text input etc

*/
function closePreviewArea(){

    popInsertion();
    document.getElementById('ddcType').value = '';
    document.getElementById('editMode').value = '';

    // reset ContentManager vars
    ContentManager.strCurrEventType = '';
    ContentManager.iEventCount = 0;

    // clear heading text input box
    document.getElementById('HTMLContentHeading').value = '';
    document.getElementById('templateContentHeading').value = '';

    document.getElementById('textWidget').style.display = 'none';

    currentPreviewObject = '';
    customInsertPosition = '';
    insertPosition = '';
    ContentManager.insertBoxButtonPressed = 0;

    clearSearchResultPanel();
    ContentManager.strPageAreaSelected = '';
}



/* 
   void clearSearchResultPanel

   This ResultPanel initialy has example resources from a fictional query. 
   Th needs to be refreshed after

*/
function clearSearchResultPanel(){

    document.getElementById('previewPane').innerHTML = '';
    document.getElementById('contentResults').innerHTML = '';

}

/* Loops throught the objects parent tree to find the containing sub area. 
*/
function getCallerParentSubArea(caller){

    i=0;
    handle = caller.parentNode;
    while(handle.id != "main" && handle.id != "" && i<10){

        if(isSubArea(handle.id))
            return handle.id;

        handle = handle.parentNode;
        i++;
    }

    if(ContentManager.selectedGroupHandle!='')
        return ContentManager.selectedGroupHandle;
}

/****** 

    Checks if node for string ele id is the sub area container. 
    This id will start with the characters "sub."

*/
function isSubArea(str){

    if( str.indexOf('sub') != -1 ){

        str = str.replace('sub','');
        str = str.replace('b','');

        return str + "b";
    }
}

/**
 * Popup content insertion box
 *
 * This function toggles the insertion box dialog declared
 * in MSJS.dd.IPPop.
 *
 * @param string caller   Instance of the caller (used to position
 *                        insertion box dialog.
 * @return void
 */

var selectedGroupHandle = '';



function popInsertion (caller) {



    if(ContentManager.strCurrEventType != "update"){
        document.getElementById('gettingStarted').style.display = 'block';
        document.getElementById('dbContent').style.display = 'none';

        ContentManager.strCurrEventType = "insert";
        ContentManager.iEventCount++;

    }

    if(caller){

        parentArea = getCallerParentSubArea(caller);

        ContentManager.selectedGroupHandle =  parentArea;
        ContentManager.strPageAreaSelected = caller.parentNode.parentNode.id;

        selectedGroupHandle =  parentArea;

        setPosHash();
        ContentManager.iLastInsertPos = getPosByGroup(caller.parentNode.id.replace('grp',''));
        ContentManager.iLastInsertPos++;

    }

    if( selectedGroupHandle !='' && selectedGroupHandle.indexOf('grp') != -1 )
        selectedGroupHandle = selectedGroupHandle.replace('grp','sub');

    if( !selectedGroupHandle && ContentManager.selectedGroupHandle!='') 
        selectedGroupHandle = ContentManager.selectedGroupHandle;

    if( !selectedGroupHandle ) 
        selectedGroupHandle = "sub1b";


    if(selectedGroupHandle == "sub1b" && ContentManager.strPageAreaSelected != '')
        selectedGroupHandle = ContentManager.strPageAreaSelected;


    var pop = document.getElementById("insertPopup");
    if (pop.style.display == 'none') {
        if (caller) {
            insertPosition = caller.parentNode;
        }
        if (document.getElementById('editMode').value == 'true') {
            document.getElementById('cbInsertButton').value = '  Edit  ';
            document.getElementById('cbCancelButton').style.display = 'none';
        }
        pop.style.display = '';
    } else {
        pop.style.display = 'none';
        document.getElementById('cbInsertButton').value = 'Insert';
        document.getElementById('cbCancelButton').style.display = '';
    }

}

/**
 * Remove content box
 *
 * @param string caller   Instance of the caller (used to remove the box).
 * @return void
 */
function removeBox(caller, confirmed) {

    if (!confirmed) {
        var sure = confirm('Are you sure you want to remove this content box?');
        if (!sure) {
            return;
        }
    }
    saveLayout();
    for (i=0; i<MSJS.dd.groups.length; i++){
        if (MSJS.dd.groups[i].id == caller) {
            MSJS.dd.groups[i].unreg();
            // Remove TinyMCE (if any)
            var tinyArea = document.getElementById('txt'+caller);
            if (tinyArea) {
                tinyMCE.execCommand('mceRemoveControl', true, tinyArea.id);
            }

            var children = document.getElementById(caller).childNodes;
            var enterToRemove;
            for (j in children) {
                if (children[j].id && children[j].id.indexOf('enter') > -1) {
                    enterToRemove = children[j].id;
                }
            }
            document.getElementById(caller).parentNode.removeChild(document.getElementById(caller));
            MSJS.dd.groups.splice(i,1);
            for (j in MSJS.dd.columns) {
                if(MSJS.dd.columns[j] == enterToRemove) {
                    MSJS.dd.columns.splice(j, 1);
                    break;
                }
            }

        }
    }
    var blobsToRemove;
    for (i=0; i<MSJS.dd.boxes.length; i++){
        if (MSJS.dd.boxes[i].id == caller) {
            if(MSJS.dd.boxes[i].blobs) {
                custom_box_ele[caller] = new Array();
                blobsToRemove = new Array();
                blobsToRemove = MSJS.dd.boxes[i].blobs;
            }
            MSJS.dd.boxes.splice(i,1);
            break;
        }
    }
    if (blobsToRemove) {
        var prot = 0; // Make sure we don't go in an infinite loop
        while (blobsToRemove.length > 0 && prot < 100) {
            for (i=0; i<MSJS.dd.groups.length; i++){
                if (MSJS.dd.groups[i].id == blobsToRemove[0].id) {
                    //MSJS.dd.groups.splice(i,1);
                    MSJS.dd.groups[i] = false;
                    blobsToRemove.splice(0,1);
                    break;
                }
            }
            prot++;
        }
    }
}

function getPosByGroup(num){

    for (i=0; i < ContentManager.posHash.length; i++) {

        if(ContentManager.posHash[i] == num)
            return i;
    }

    return -1;
}


/* void setNextAreaGroupID()

   modifies ContentManager.strLastAreaGroupID, ContentManager.posHash
   

   when inserting into the page area, it is important to know where the next 
   box / ele is 
*/
function setNextAreaGroupID(){
    var found;
    found = 0; 

    setPosHash();

    var curr;

    for (i=0; i< ContentManager.posHash.length; i++) {

        curr =  ContentManager.strCurrContainerID.replace('simpleEditor','');
        curr =  curr.replace('grp','');

        if( i >=  parseInt( ContentManager.iLastInsertPos ) ){
            ContentManager.strLastAreaGroupID = ContentManager.posHashID[i];
            break;
        }
    }
}

function setPosHash(){

    var areaHandle;

    if(ContentManager.strCurrContainerID!='' && document.getElementById(ContentManager.strCurrContainerID))
        areaHandle = getCallerParentSubArea( document.getElementById(ContentManager.strCurrContainerID) );

    if(areaHandle && areaHandle!='undefined' && areaHandle !='')
        ContentManager.selectedGroupHandle = areaHandle;

    if(ContentManager.selectedGroupHandle!='')
        areaHandle = ContentManager.selectedGroupHandle;
    else
        areaHandle = 'sub1b';
		
    selectedGroupHandle = areaHandle;


    ContentManager.posHash = new Array();
    ContentManager.posHashID = new Array();

    var handle;
    var found = 0;

    for (i=0; i<document.getElementById(areaHandle).childNodes.length; i++) {

         if(document.getElementById(areaHandle).childNodes[i].id){

             found = 1;
    
             handle = document.getElementById(areaHandle).childNodes[i].id.replace('grp','');
             handle = handle.replace('custom','');
    
             ContentManager.posHash[i] = handle;
             ContentManager.posHashID[i] = document.getElementById(areaHandle).childNodes[i].id;
         }
    }

    ContentManager.iAreaIsPopulated = found;
}

/**
 * Edit a content box
 *
 * @param grpName  Group ID to edit
 * @return void
 */
function editBox(grpName) {
 
    ContentManager.iEventCount++;

    if( !isObject(ContentManager) )
        ContentManager = new ContentBoxManager();
  
    if( isObject(ContentManager) ){
        ContentManager.strCurrEventType = "update";
        ContentManager.strCurrContainerID = grpName;
        setPosHash();
        ContentManager.iLastInsertPos =  getPosByGroup(grpName.replace('grp',''));
    }
  
    // hide dashboard untill content has been inserted
    if(document.getElementById('dashwrap'))
        document.getElementById('dashwrap').style.display = 'none';


    var box;
    for (i=0; i<MSJS.dd.boxes.length; i++) {

        if (MSJS.dd.boxes[i].id == grpName) {
            box = MSJS.dd.boxes[i];
            break;
        }
        if( MSJS.dd.boxes[i].id.indexOf('grp') != -1 )
            ContentManager.strLastAreaGroupID = MSJS.dd.boxes[i].id; 
    }


    if( box &&  box.id!="undefined" && document.getElementById('contentBlock'+ box.id ) )
        document.getElementById('previewPane').innerHTML = document.getElementById('contentBlock'+ box.id ).innerHTML;

    if (box) {
                
        if( ContentManager.strModeEditType == "PIC" ) 
            box.boxType = "custom";

        ContentManager.strModeEditType = box.boxType; 

        changeTab(box.boxType);
        document.getElementById('ddcType').value = box.boxType;
        if (box.boxType == 'custom') {


            document.getElementById('editMode').value = 'true';
            document.getElementById('templateContentHeading').value = box.heading;
            document.getElementById('templateUseHeading').checked =   box.useHeading;
 
            if(box.type == 3) 
                customContentType = "doc";

            iCustomContentFormat =    box.type;

            document.getElementById('contentDisplayTemplate').value = box.format;
            document.getElementById('templateContentTheme').value =   box.theme;


            //clickDbToggle(customContentType);
            popInsertion();

            currentPreviewObject = box;
            currentPreviewObject.HTML = box.getEl();
            customSearchBox = box.id;

            customInsertPosition = getEditPosition(box.getEl());
            document.getElementById(box.handleId).style.display = 'none';
            document.getElementById(box.enterId).style.display = 'none';
            document.getElementById('previewContentArea').innerHTML = '';
            
            ContentManager.currentPreviewObject = box;

            document.getElementById('previewContentArea').appendChild(box.getEl());

            /*
            var $j = jQuery.noConflict();
      			$j("#dbContent").show();
      			$j("#dbContent").siblings().hide();
    
            smartToggle();
            */
            clickDbToggle(box.type);
             
        } else if (box.boxType == 'automatic') {

            document.getElementById('editMode').value = 'true';
            document.getElementById('templateContentHeading').value = box.heading;
            document.getElementById('templateUseHeading').checked =   box.useHeading;

            if(document.getElementById('templateContentCount'))
                document.getElementById('templateContentCount').value =   box.count;
            
            document.getElementById('contentDisplayTemplate').value = box.format;
            document.getElementById('automaticContentSubject').value = box.subject;
            document.getElementById('templateContentTheme').value =   box.theme;

       

            //showEventInterface();
            clickDbToggle(box.type);

            popInsertion();
            currentPreviewObject = box;
            currentPreviewObject.HTML = box.getEl();
            insertPosition = getEditPosition(box.getEl());

            document.getElementById(box.handleId).style.display = 'none';
            document.getElementById(box.enterId).style.display = 'none';
            document.getElementById('previewContentArea').innerHTML = '';


            document.getElementById('previewContentArea').appendChild(box.getEl());
            document.getElementById('previewContent').style.display = '';

      
            var $j = jQuery.noConflict();
            if(box.type == "msform")            
                showFormInterface(); 
            else if(box.type == "rss"){

                document.getElementById('dbContent').style.display = 'block';
                initPreviewBox("RSS");
            
                document.getElementById("btnPreviewAutoContent").style.display = '';
                document.getElementById('btnPreviewCustomContent').style.display = 'none';
            
                strAutomaticContentType = "rss";
                if(document.getElementById("smartBoxInfo").style.display!='block'){
                    $j(".dbToggle").click();
            			  $j("#smartBoxInfo").toggle();
            			  $j("#smartToggle").toggle();
                }
            }            
            else{
      			    $j("#dbContent").show();
      			    $j("#dbContent").siblings().hide();
            } 

        } else if (box.boxType == 'HTML') {

            document.getElementById('editMode').value = 'true';
            document.getElementById('HTMLContentHeading').value = box.heading;
            document.getElementById('HTMLUseHeading').checked =   box.useHeading;
            document.getElementById('HTMLContentTheme').value =   box.theme;
            currentPreviewObject = box;
            currentPreviewObject.HTML = box.getEl();
            insertPosition = getEditPosition(box.getEl());

            document.getElementById(box.handleId).style.display = 'none';
            document.getElementById(box.enterId).style.display = 'none';
            document.getElementById('previewContentArea').innerHTML = '';

            ele = box.getEl();

            document.getElementById('previewContentArea').appendChild(ele);
            document.getElementById('previewContent').style.display = '';

            var $j = jQuery.noConflict();
      			$j("#textWidget").show();
      			$j("#textWidget").siblings().hide();

            popInsertion();


            if(ContentManager.strCurrContainerID !='' && document.getElementById( "simpleEditor" + ContentManager.strCurrContainerID )){ 
                obj = document.getElementById( "simpleEditor" + ContentManager.strCurrContainerID );
                obj.style.color = "black";
            }
        }
    }
}

function getEditPosition(obj) {



    if (obj.parentNode.id.indexOf('sub') > - 1) {
        var parent = obj.parentNode;
        var children = new Array();
        for (i=0; i<parent.childNodes.length; i++) {
            if (parent.childNodes[i].id) {
                children.push(parent.childNodes[i]);
            }
        }
        if (children.length > 1) {
            for (i=0; i<children.length; i++) {
                if (children[i].id == obj.id) {
                    if (i == 0) {
                        return parent.parentNode;
                    } else {
                        return children[i-1];
                    }
                }
            }
        } else {
            return parent.parentNode;
        }
    }
}

/*****

  Retrieves content from 
    simpleEditorgrpN.innerHTML, simpleEditorgrpN.value 
    or simpleEditorN.optionM.innerHTML 

*/
function getBoxContent(x){


    sTBoxContent = "";


    if(MSJS.dd.boxes[x].id!="pageOptions"){
        key = "simpleEditor"+MSJS.dd.boxes[x].id;
        if(document.getElementById(key) ){
            
            sTBoxContent += document.getElementById(key).innerHTML;
            //sTBoxContent += "TEST";
        }else{
            var eles = document.getElementsByName(key);
            if( eles.length > 0){
                if(eles[0].value)
                    sTBoxContent += eles[0].value;  
            }
            //alert("check key="+key + "("+eles.length+")=" + sTBoxContent);
        }    
        if(sTBoxContent == ""){
            name = "";
            name += MSJS.dd.boxes[x].id;
            name = name.replace('grp','');
            ekey = "simpleEditor" + name;

            if(document.getElementById(ekey)){
                sTBoxContent = document.getElementById(ekey).innerHTML;
                //alert(ekey + "=" + sTBoxContent);
            }
        }
    }

    return sTBoxContent;
}


function getBoxValuePairs(boxid){

    pairs = '';

    if(isArray(custom_box_ele[boxid]))
        for( i=0; i < custom_box_ele[boxid].length; i++){
            if( custom_box_ele[boxid][i]["type"] == "checkbox" ){
                pairs += '"' + custom_box_ele[boxid][i]["id"]+'":"' + document.getElementById( custom_box_ele[boxid][i]["id"] ).checked+'",';
            } 
            else if( custom_box_ele[boxid][i]["type"] == "widget_type" ){
                pair = '"' + custom_box_ele[boxid][i]["id"]+'":"' + get_widget_type() + '",';
                pairs += pair;
                alert("widget attr: " + pair);
            }
            else 
                pairs += '"' + custom_box_ele[boxid][i]["id"]+'":"' + document.getElementById( custom_box_ele[boxid][i]["id"] ).value+'",';
				
            status = "found values";
        }
    else status =" boxid not defind";

    alert("checking boxid:"+boxid+" = "+status);

    return pairs;
}


function in_object(obj,val){
    var str = "";
    for (x in obj){
		//alert("match " + obj[x] + "=?=" + val);
        //if(val == obj[x])
		//     return true;
    }
	return false;
}

function in_array(obj,val){
	var i;
	for (i=0; i < obj.length; i++) {
	    // Matches identical (===), not just similar (==).

		//alert("match " + obj[i] + "=?=" + val);
		
		if (obj[i] === val) {
		    return true;
		}
	}
	return false;
}

function getBoxValuePairs(boxid){

    pairs = '';

    if(  in_array(custom_box_hash,boxid) == true ){
        for( i=0; i < custom_box_ele[boxid].length; i++){
		      
            if( custom_box_ele[boxid][i]["type"] == "checkbox" ){
                pairs += '"' + custom_box_ele[boxid][i]["id"]+'":"' + document.getElementById( custom_box_ele[boxid][i]["id"] ).checked+'",';
            } 
            else if( custom_box_ele[boxid][i]["type"] == "widget_type" ){
                pair = '"' + custom_box_ele[boxid][i]["id"]+'":"' + get_widget_type() + '",';
                pairs += pair;
                //alert("widget attr: " + pair);
            }
            else{
                if(document.getElementById( custom_box_ele[boxid][i]["id"] )) 
                    pairs += '"' + custom_box_ele[boxid][i]["id"]+'":"' + document.getElementById( custom_box_ele[boxid][i]["id"] ).value+'",';
            }
            status = "found values";
        }
    }else{ 
	    status =" boxid not defind";
    }

    return pairs;
}

function saveLayout() {

    //disable_save = true;

    var subs = new Array();
    var r = new RegExp("^sub[0-9]*$");
    for (i=0; i<MSJS.dd.columns.length; i++) {
        if (document.getElementById(MSJS.dd.columns[i])) {
            var snode = document.getElementById(MSJS.dd.columns[i]).parentNode;
            if (snode.id.indexOf('sub')>-1) {
                if(r.exec(snode.id)) {
                    subs.push(snode.id);
                }
            }
        }
    }
    // Save our current options
    var options = new ContentBox();
    options.id = 'pageOptions';
    options.boxType    = 'options';
    if (typeof(window['scm']) != 'undefined') {
        options.scm = scm.save();
    }
    options.templateStyle = document.getElementById('templateStyle').value;

    //alert(' template: '+options.templateStyle);

    MSJS.dd.boxes.push(options);
    var layout = '['; // Place holder for layout JSON string
    for (i=0; i<subs.length; i++) {
        var sub = document.getElementById(subs[i]+'b');
        var children = sub.childNodes;
        var groups = new Array();

        // Save page options first
        if (i==0)
            groups[0] = 'pageOptions';
        
        for (j=0; j<children.length; j++) {
            if (children[j].id && children[j].id.indexOf('grp') >-1) {
                groups.push(children[j].id);
            }
        }
        var done = new Array();
        var bPageOptions = true;
        var sTBoxContent = "";
        var sEditorContent = "";
        layout += '{"' + subs[i] + '":['; 
        for (j=0; j<groups.length; j++) {
        
            for (x=0; x<MSJS.dd.boxes.length; x++) {
                if (groups[j] == MSJS.dd.boxes[x].id && done[MSJS.dd.boxes[x].id]!=true) {

                    done[MSJS.dd.boxes[x].id] = true;
                    sTBoxContent = getBoxContent(x);
                    if( 
                        (
                           MSJS.dd.boxes[x].boxType != 'HTML' 
                        || (MSJS.dd.boxes[x].boxType == 'HTML' && MSJS.dd.boxes[x].textareaContentsID)
                        )

                        &&

                        (
                           MSJS.dd.boxes[x].id!="pageOptions"
                        || (MSJS.dd.boxes[x].id=="pageOptions" && bPageOptions != true) 
                        )  
                        
                    ){

                        if(MSJS.dd.boxes[x].id=="pageOptions")
                             bPageOptions = true;
    


                        layout += '{'; 
                        layout += '"templateStyle":"'+document.getElementById('templateStyle').value+'",';

                        layout += '"boxType":"'+MSJS.dd.boxes[x].boxType+'",';

                        layout += '"name":"'+MSJS.dd.boxes[x].name+'",';
                        if (MSJS.dd.boxes[x].theme && MSJS.dd.boxes[x].theme.indexOf('newWindow')) {
                            MSJS.dd.boxes[x].theme.replace(/newWindow/,"");
                            layout += '"newWindow":true,';
                        }
                        layout += '"theme":"'+MSJS.dd.boxes[x].theme+'",';
                        layout += '"useHeading":'+((MSJS.dd.boxes[x].useHeading)?'true':'false')+',';
                        if (MSJS.dd.boxes[x].heading != "Please enter a heading or uncheck the \"Use Heading\" box")
                        layout += '"heading":"' + MSJS.dd.boxes[x].heading + '",';
                        layout += '"type":"' + MSJS.dd.boxes[x].type + '",';

                        //alert("rs max: "+MSJS.dd.boxes[x].count);

                        layout += '"count":"'+MSJS.dd.boxes[x].count+'",';
                        layout += '"format":"'+MSJS.dd.boxes[x].format+'",';
                        layout += '"subject":"'+MSJS.dd.boxes[x].subject+'",';
                        layout += '"id":"'+MSJS.dd.boxes[x].id+'",';
                        layout += '"contentId":"'+MSJS.dd.boxes[x].contentId+'",';
                        layout += '"handleId":"'+MSJS.dd.boxes[x].handleId+'",';
                        layout += '"headerId":"'+MSJS.dd.boxes[x].headerId+'",';
                        layout += '"fileName":"'+MSJS.dd.boxes[x].fileName+'",';
                        layout += '"location":"'+MSJS.dd.boxes[x].location+'",';
                        layout += '"contents":"'+MSJS.dd.boxes[x].contents+'",';
                        layout += '"parent":"'+MSJS.dd.boxes[x].parent+'",';
                        layout += '"rendered":"'+MSJS.dd.boxes[x].rendered+'",';
                        layout += '"isSlideShow":"'+MSJS.dd.boxes[x].isSlideShow+'",';
                        layout += '"photoSize":"'+MSJS.dd.boxes[x].photoSize+'",';

                        //if (MSJS.dd.boxes[x].boxType == 'custom')        
                            layout += getBoxValuePairs(MSJS.dd.boxes[x].id);

                        layout += '"slideShowSpeed":"'+MSJS.dd.boxes[x].slideShowSpeed+'",';
                        if (MSJS.dd.boxes[x].scm)
                            layout += '"scm":"'+ MSJS.dd.boxes[x].scm +'",';
                        if (MSJS.dd.boxes[x].group && MSJS.dd.boxes[x].group != 0)
                            layout += '"group":"'+ MSJS.dd.boxes[x].group +'",';
                        if (MSJS.dd.boxes[x].groupView && MSJS.dd.boxes[x].groupView != 0)
                            layout += '"groupView":"'+ MSJS.dd.boxes[x].groupView +'",';
                        layout += '"slideShowDesc":"'+MSJS.dd.boxes[x].slideShowDesc+'"';
    

                        if (MSJS.dd.boxes[x].boxType == 'module') {
                            layout += ',"entryPoint":"'+MSJS.dd.boxes[x].entryPoint+'"';
                        }
                        if (MSJS.dd.boxes[x].boxType == 'custom') {
                   
                            var box = document.getElementById(MSJS.dd.boxes[x].id);
                            var bblock;
                            for (z in box.childNodes) {
                                if (box.childNodes[z].id.indexOf('contentBlockgrp') > -1) {
                                    bblock = box.childNodes[z];
                                    break;
                                }
                            }
                            var blobs = new Array();
                            for (z=0; z<bblock.childNodes.length; z++) {
                                for (a in MSJS.dd.blobs) {
                                    if (bblock.childNodes[z].id &&
                                       (MSJS.dd.blobs[a].id == bblock.childNodes[z].id)) {
                                        blobs.push(MSJS.dd.blobs[a]);
                                        break;
                                    }
                                }
                            }
                            if (blobs.length > 0) {
                                layout += ',"blobs":[';
                                layout +='{"id":"'+blobs[0].id+'",';
                                layout +='"cmsid":"'+blobs[0].cmsID+'",';
                                layout +='"format":"'+blobs[0].format+'"}';
                                for (z=1; z<blobs.length; z++) {
                                    layout +=',{"id":"'+blobs[z].id+'",';
                                    layout +='"cmsid":"'+blobs[z].cmsID+'",';
                                    layout +='"format":"'+blobs[z].format+'"}';
                                }
                                layout += ']';
                                MSJS.dd.boxes[x].blobs = blobs;
                            }
                        }

                        //alert( "check: "+textareaContentsID);

                        if (MSJS.dd.boxes[x].boxType == 'HTML') {
                            var textareaContentsID = MSJS.dd.boxes[x].textareaContentsID;
                            layout += ',"textareaID":"'+MSJS.dd.boxes[x].textareaID+'"';
                            layout += ',"textareaContentsID":"'+MSJS.dd.boxes[x].textareaContentsID+'"';


                            if (document.getElementById(textareaContentsID)) {

                                layout += ',"textareaContents":"';

                                if(sTBoxContent !="") 
                                    layout += encodeURIComponent(sTBoxContent);
                                else
                                    layout += encodeURIComponent(document.getElementById(textareaContentsID).value);

                                layout += '"';
                            }
                        }

                        layout += '}';
                        if (j<groups.length-1) {
                            layout += ',';
                        }
                        
                    }
                }
            }
        }
        layout += ']}';
        if (i<subs.length-1) {
            layout += ',';
        }
    }
    layout += ']';


    document.getElementById('layout').value = layout;
    // SCM Page views
    if (typeof(window['scm']) != 'undefined' && scm.pageGroups.length > 0) {
        try {
            document.getElementById('pageGroups').value = scm.pageGroups.join(',');
        } catch (err) {
            alert("Error while trying to save page wide groups.\n\n"+err.message);
        }
    }
}

function showSlideShow(cancel) {

    if (cancel) {
        document.getElementById('slideShow').style.display = 'none';
        document.getElementById('regSlideShow').style.display = '';
        document.getElementById('customUseHeading').checked = true;
        toggleHeading(document.getElementById('customUseHeading'));
        updateSlideShow(true);
    } else {
        searchCustomContent();
        document.getElementById('slideShow').style.display = '';
        document.getElementById('regSlideShow').style.display = 'none';
        document.getElementById('customUseHeading').checked = false;
        toggleHeading(document.getElementById('customUseHeading'));
        updateSlideShow();
    }
}

function updateSlideShow(remove) {

    if(!currentPreviewObject) {
        return;
    }
    
    if (remove) {
        currentPreviewObject.isSlideShow = false;
    } else {
        currentPreviewObject.isSlideShow = true;
        currentPreviewObject.photoSize   = document.getElementById('photoSize').value;
        currentPreviewObject.slideShowSpeed = document.getElementById('slideShowSpeed').value;
        currentPreviewObject.slideShowDesc = document.getElementById('slideShowDesc').checked;
    }
}

function createNewContent(callerName) {

    var type = document.getElementById(callerName+'ContentType').value;
    var loc = '/admin/newResource/?type='+type;
    window.open(loc, type);
}

function getModules() {

    if (modules) {
        return updateModules('i');
    }
    var d = new Date()
    var t = d.getTime()
    var url = '/admin/ajax/modules/?getModules=true&ts=' + t;
    var callbackFun = 
    { 
        success: function(o) {updateModules(o)}, 
        failure: function(o) {updateModules(o)}
    }; 
    var request = YAHOO.util.Connect.asyncRequest('GET', url, callbackFun);
}

function updateModules(o) {

    if (o != 'i') {
        var m = eval("eval("+o.responseText+");");
        if (m) {
            var html = '';
            for (i=0; i<m.length; i++) {
                html += '<div class="module"><a href="javascript:getModule(\''+m[i].entryPoint+'\');">'
                +m[i].name+'</a><p class="description">'+m[i].description+'</p></div>';
            }
            modules = html;
        }
    } else {
        var html = modules;
    }
    if (modules) {
        document.getElementById('modArea').innerHTML = html;
    }
}

function getModule(modURI) {

    var d = new Date()
    var t = d.getTime()
    var url = modURI + '?contentBrowser=true&admin=true&ts=' + t;
    var callbackFun = 
    { 
        success: function(o) {modulePreview(o)}, 
        failure: function(o) {modulePreview(o)}
    }; 
    var request = YAHOO.util.Connect.asyncRequest('GET', url, callbackFun);
}

function modulePreview(o) {

    document.getElementById('previewContent').style.display = '';
    var m = eval("eval("+o.responseText+");");

    if (m) {
        var box = new ContentBox('box', (MSJS.dd.newGroupID()));
        box.useHeading = false;
        box.type       = document.getElementById('templateContentType').value;

        if(document.getElementById('templateContentCount'))
            box.count      = document.getElementById('templateContentCount').value;
        else
            box.count      = 0;

        box.format     = document.getElementById('contentDisplayTemplate').value;
        box.subject    = document.getElementById('automaticContentSubject').value;
        box.theme      = document.getElementById('templateContentTheme').value;
        box.entryPoint = m.entryPoint;
        box.data       = m.data;
        box.boxType    = 'module';
        box.generateBox();
        currentPreviewObject = box;
        document.getElementById('previewContent').style.display = '';
        document.getElementById('previewContentArea').innerHTML = '';
        document.getElementById('previewContentArea').appendChild(box.HTML);
    }
}

