//---- xml tags names
var UPPER_NAVIGATION = "UpperNavigation";
var LOWER_NAVIGATION = "LowerNavigation";
var HOMEPAGE_BANNERS = "HomePageBanners";
var ITEM_PAGE_BANNER = "ItemPageBanner";
var MYSTUFF_BANNER = "MyStuffBanner";
var FEATURED_VIDEOS = "FeaturedVideos";
var POPULAR_TEMPLATES = "PopularTemplates";
var YOUTUBE_VIDEOS = "YouTubeVideos";
var TOP_CREATORS = "TopCreators";
var VIDEOS_SLICES = "VideosSlices";
var VIDEOS_CATEGORIES = "VideosCategories";

var NAVIGATION_ITEM = "NavigationItem";
var BANNER = "Banner";
var ENTRY = "Entry";
var CREATOR = "Creator";
var ELEMENT = "Element";
var PARAMETER = "Parameter";
var FEATURED_VIDEOS_ENTRY = "FeaturedVideosEntry";
var POPULAR_TEMPLATES_ENTRY = "PopularTemplatesEntry";

// xml attributes names
var ID = "id";
var USERNAME = "username";
var CREATED = "created";
var DURATION = "duration";
var REMIXED = "remixed";
var RATING = "rating";
var VIEWS = "views";
var NAME = "name";
var TITLE = "title";
var LINK = "link";
var HIT = "hit";
var VALUE = "value";
var DISPLAYED_TEXT = "displayedText";
var CONTENT = "content";
var TOOLTIP = "tooltip";
var CONTENT_URL = "contentURL";
var THUMBNAIL_URL = "thumbnailURL";
var MINIMUM = "min";
var MAXIMUM = "max";
var TAG = "tag";
var CATEGORY = "category";
var ORDER_BY = "orderBy";
var STANDARD = "standard";
var TIME = "time";
var MAX_RESULTS = "maxResults";

function getBOFeed() {
    if (gallery.getGalData().length > 0) {
        var divArray = doDivSketch(gallery.getGalData(), gallery.galType);
        doGalleryTable(divArray, gallery.pageNum, gallery.quantityToShow, gallery.totalResults, gallery.pagingType, gallery.colsNum, gallery.divName, gallery.pagingFunc, gallery.moreUrl);
    } else {
        clearGallery(gallery.divName);
    }
    if ((gallery.nextFunction != null) && (gallery.nextFunction != "")) {
        eval(gallery.nextFunction);
    }
}

function getBackofficeElement(xmlElementString) {
    try { //Internet Explorer
        xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
        xmlDoc.async="false";
        xmlDoc.loadXML(xmlElementString);
        return(xmlDoc);
    } catch(e) {
        try { //Firefox, Mozilla, Opera, etc.
            parser=new DOMParser();
            xmlDoc=parser.parseFromString(xmlElementString,"text/xml");
            return(xmlDoc);
        } catch(e) {alert("Error: "+e.message)}
    }
    return (null);
}

// Get the Featured Videos Gallery
function getBOVideos(featuredVideosXml) {
    var videosArr = new Array();
    var xmlDoc = getBackofficeElement(featuredVideosXml);
    var givenEntries = xmlDoc.getElementsByTagName(FEATURED_VIDEOS_ENTRY);

    // Do the tag search first if needed
    var entries = new Array();
    var tags = gallery.searchTags!=""?gallery.searchTags.split(","):"";
    for (h=0, g=0; (h < givenEntries.length); h++)
    { 
        var entryElem = givenEntries[h];
        var includeElem = true;
        var tag = entryElem.getAttribute(TAG)?entryElem.getAttribute(TAG):"";
        // Go through all the tags to search and find the relevant ones
        for (ij=0; ij < tags.length; ij++) {
            // And relations true
            if (tag == "" || tag.indexOf(tags[ij]) < 0) {
                includeElem = false;
                break;
            }
        }
        if (includeElem) {
            entries[g] = entryElem;
            g++;
        }
    }

    gallery.totalResults = entries.length;
    gallery.toIndex = gallery.totalResults < gallery.quantityToShow ? entries.length : 
                gallery.totalResults < gallery.toIndex ? gallery.totalResults : gallery.toIndex;
    for (i=gallery.startIndex-1, j=0; (i < entries.length && i < gallery.toIndex); i++, j++)
    { 
        var entryElem = entries[i];
        var obj = new myObj();
        obj.id = entryElem.getAttribute(ID);
        obj.img = entryElem.getAttribute(THUMBNAIL_URL);
        obj.title = entryElem.getAttribute(TITLE);
        obj.creator = entryElem.getAttribute(USERNAME);
        obj.createdDay = entryElem.getAttribute(CREATED);
        obj.addedDay = entryElem.getAttribute(CREATED);
        obj.remixed = entryElem.getAttribute(REMIXED);
        obj.rating = Math.round(entryElem.getAttribute(RATING));
        obj.duration = entryElem.getAttribute(DURATION);
        obj.imgUrl = "itemPage.jsp?partner="+partner+"&scene="+obj.id;
        obj.butUrl = "studioPage.jsp?partner="+partner+"&scene="+obj.id;
        obj.views = (entryElem.getAttribute(VIEWS))?entryElem.getAttribute(VIEWS):0;
        obj.tags = entryElem.getAttribute(TAG);
        videosArr[j]=obj;
    }
    return videosArr;
}

// Get the Featured Videos Gallery
function getBOVideosIds(featuredVideosXml) {
    var xmlDoc = getBackofficeElement(featuredVideosXml);
    var givenEntries = xmlDoc.getElementsByTagName(FEATURED_VIDEOS_ENTRY);
    var idsList = "";
    for (i=0; i < givenEntries.length; i++) { 
        var entryElem = givenEntries[i];
        idsList += entryElem.getAttribute(ID)+",";
    }
    if (idsList.length > 1)
        idsList = idsList.substr(0, idsList.length-1);
    return idsList;
}

function randOrd(){
    return (Math.round(Math.random())-0.5); 
} 

function randArr(arrStr) {
    var arrObj = arrStr.split(",");
    arrObj.sort(randOrd);
    return arrObj.join();
}

// Get the Popular Templates Gallery
function getBOTemplates(popularTemplatesXml) {
    var videosArr = new Array();
    var xmlDoc = getBackofficeElement(popularTemplatesXml);
    var entries = xmlDoc.getElementsByTagName(POPULAR_TEMPLATES_ENTRY);
    gallery.totalResults = entries.length;
    for (i=0; (i < entries.length) && (i < gallery.quantityToShow); i++)
    { 
        var entryElem = entries[i];

        var obj = new myObj();
        obj.rating = 0 + i;
        obj.id = entryElem.getAttribute(ID);
        obj.img = entryElem.getAttribute(THUMBNAIL_URL);
        obj.title = entryElem.getAttribute(TITLE);
        obj.creator = entryElem.getAttribute(USERNAME);
        obj.createdDay = entryElem.getAttribute(CREATED);
        obj.addedDay = entryElem.getAttribute(CREATED);
        obj.remixed = entryElem.getAttribute(REMIXED);
        obj.duration = entryElem.getAttribute(DURATION);
        obj.imgUrl = "studioPage.jsp?partner="+partner+"&scene="+obj.id;
        obj.butUrl = "studioPage.jsp?partner="+partner+"&scene="+obj.id;
        obj.popTempStar = obj.remixed;
        videosArr[i]=obj;
    }
    return videosArr;
}                

// Get the Featured Videos Gallery
function getBOTemplatesIds(popularTemplatesXml) {
    var xmlDoc = getBackofficeElement(popularTemplatesXml);
    var givenEntries = xmlDoc.getElementsByTagName(POPULAR_TEMPLATES_ENTRY);
    var idsList = "";
    for (i=0; i < givenEntries.length; i++) { 
        var entryElem = givenEntries[i];
        idsList += entryElem.getAttribute(ID)+",";
    }
    if (idsList.length > 1)
        idsList = idsList.substr(0, idsList.length-1);
    return idsList;
}

// Get the Top Creators list of users
function getBOTopCreators() {
    var userList = "";
    var xmlDoc = getBackofficeElement(topCreatorsXml);
    var entries = xmlDoc.getElementsByTagName(CREATOR);
    for (i=0; i < entries.length; i++)
    { 
        var entryElem = entries[i];
        userList += entryElem.getAttribute(NAME)+",";
    }
    userList = userList.substr(0, userList.length-1);
    return userList;
}        
