/** SkinLoader.js - Used to load and process skin.html files.
 *  @requires: EL.js
 *  @requires: XmlWrapper3.js
 */

/** On the client-side we only want to process the contents that are INSIDE the 'html' tags. */
function skn_toClientSideSkin(xml) {
    if (xw_isEmpty(xml)) {
        alert('xw_isEmpty(xml)');
        return '';
    }

    var txt = xml.toString();
    if (xw_isEmpty(txt)) {
        alert('xw_isEmpty(txt)');
        return '';
    }

    //alert(xml);
    var result = txt.match(/<html>/i);
    if (!xw_isEmpty(result)) {
        txt = txt.substring(result.index + 6);
    }
    result = txt.match(/<\/html>/i);
    if (!xw_isEmpty(result)) {
        txt = txt.substring(0, result.index);
    }
    //alert(txt);
    return txt;
}

/** Since paths tend to be relative to the parent; which for
*  client-side version need to be corrected with path to the skin. */
function getRelativePath(path) {
    return xviewPath + '/skn_' + skinName + '/' + path;
}

function skn_getXsltParameters(params) {
    var xparams = new Object();

    var keyMatcher = /^[\w\s\.]*$/;
    var xkey;
    for (key in params) {
        xkey = unescape(key);
        if (keyMatcher.test(xkey)) {
            xparams[xkey] = unescape(params[key]);
        }
    }
    // now add the standard XSLT parameters (src is expected to be set via params):
    if (xw_isEmpty(xparams['src'])) {
        xparams['src'] = xmlPath;
    }
    xparams['skinName'] = skinName;
    xparams['linkBase'] = 'xview.html?xsl=xslt/main.xsl&src=' + xparams['src'];
    xparams['xview.root'] = '';
    xparams['xview.siteName'] = '';
    xparams['xview.serverBase'] = skn_getDocumentBase();
    xparams['xview.url'] = xviewPath;
    xparams['xview.urlFull'] = '';
    return xparams;
}

function skn_getDocumentBase() {
    if ((!xw_isEmpty(fullURI)) && (fullURI.length > 0)) {
        return fullURI;
    }
    var url = document.location.href;
    if (url.indexOf('?') != -1) {
        url = url.substring(0, url.indexOf('?'));
    }
    return url.substring(0, url.lastIndexOf('/') + 1);
}

function skn_import(src) {
    document.writeln('<script language="javascript" type="text/javascript" src="' + src + '"></script>');
}


