/**
* load requred js and css according to f (form) and c (container) parameters
*/

function getFC() {
    var url = window.location.href, f, c;
    if(url.match(/f=jqueryui/i)) { 
        f = 'jqueryui';
    } else if(url.match(/f=plain/i)) {
        f = 'plain';
    } else {      //bootstrap
        f = 'bootstrap';
    }
    c = url.match(/c=inline/i) ? 'inline' : 'popup';
    return {f: f, c: c};
}

function getAssets(f, c, src, libs) {
    var
    forms = src+'editable-form/',
    inputs = src+'inputs/',
    containers = src+'containers/',
    element = src+'element/',

    bootstrap = libs+'bootstrap221/',
    jqueryui = libs+'jquery-ui-1.9.1.custom/',

    js = [
    forms+'editable-form.js',
    forms+'editable-form-utils.js',
    containers+'editable-container.js',
    element+'editable-element.js',
    inputs+'abstract.js',
    inputs+'text.js',
    inputs+'textarea.js',
    inputs+'select.js'  
    ],

    css = [
    forms+'editable-form.css',
    containers+'editable-container.css',
    element+'editable-element.css'
    ];


    //tune js and css
    if(f==='jqueryui') { 
        //core
        js.unshift(jqueryui+'js/jquery-ui-1.9.1.custom.js')
        css.unshift(jqueryui+'css/redmond/jquery-ui-1.9.1.custom.css');

        //editable
        js.push(forms+'editable-form-jqueryui.js');
        js.push(getContainer('editable-tooltip.js'));

        //date
        js.push(inputs+'dateui.js');

        //style
        css.push('style.css');
    } else if(f==='plain') { 
        //core
        js.unshift(libs+'poshytip/jquery.poshytip.js');
        css.unshift(libs+'poshytip/tip-yellowsimple/tip-yellowsimple.css');

        //editable
        js.push(getContainer('editable-poshytip.js'));

        //date
        js.push(inputs+'dateui.js');
        js.push(libs+'jquery-ui-datepicker/js/jquery-ui-1.9.1.custom.js');    
        css.unshift(jqueryui+'css/redmond/jquery-ui-1.9.1.custom.css');

        //style
        css.push('style.css');    
    } else {      //bootstrap
        //core
        js.unshift(bootstrap+'js/bootstrap.js')
        css.unshift(bootstrap+'css/bootstrap.css');

        //editable
        js.push(forms+'editable-form-bootstrap.js');
        js.push(getContainer('editable-popover.js'));

        //date
        js.push(inputs+'date/bootstrap-datepicker.js');
        js.push(inputs+'date/date.js');
        css.push(inputs+'date/datepicker.css');    
    }

    function getContainer(container) {
        return (c === 'inline') ? containers+'/editable-inline.js' : containers + container;
    }  

    js.push('main.js');
    
    return {css: css, js: js};
}


function loadAssets(css, js) {
    for(var i = 0; i < css.length; i++) {
        loadCss(css[i]);
    }    
    
    for(i = 0; i < js.length; i++) {
        loadJs(js[i]);
    }
}   
    
function loadCss(url) {
    var link = document.createElement("link");
    link.type = "text/css";
    link.rel = "stylesheet";
    link.href = url;
    document.getElementsByTagName("head")[0].appendChild(link);
}

function loadJs(url) {
    //console.log(url);
    if(!url) return;
    var script = document.createElement("script");
//    script.src = url+'?'+Math.random(); //debug doesnot work with random
    script.src = url;
    document.getElementsByTagName("head")[0].appendChild(script);
}