
// the CPF object for nice namespace'dness
function CPFObject() {
    this.jq = new jq(); //jQuery 'sub' object
    this.arrToJSON = arrToJSON;
    this.getQs = getQs;
}

// the jQuery 'sub' object - add JQ related functions to this
// e.g. cpfObject.jq.initBttn4();
function jq() {
    this.display = JQdisplay;
    this.initBttn4 = initBttn4Highlight;
}

///////////////// general functions here /////////////////

// parse query parameters
function getQs() {
    var query = window.location.href;
    var ret = new Array();
    var q = query.split('?');
    if (q[1] == undefined) return ret;
    var parms = q[1].split('&');
    for (var i=0; i<parms.length; i++) {
        var pos = parms[i].indexOf('=');
        if (pos > 0) {
            var key = parms[i].substring(0,pos);
            var val = parms[i].substring(pos+1);
            ret[key] = val;
        }
    }
    return ret;
} 




// this outputs any messages passed to page 
function displayMsg() {
    var qs = getQs();
    if ( qs['msg'] ) {
        var m = document.getElementById('parmsg');

        var msg = qs['msg'].replace(/\%20/g,' ').replace(/\%3F/g, '?');
        if ( msg == 'Sign up successful. Please log in' ) 
        {
            m.innerHTML = '<div style="margin-bottom:10px;background-color:#ffff77;padding:5px">Sign up successful. ' +
                'Be sure to <a href="http://www.box.net/services/completelyprivatefiles2" target="_blank">' +
                'add our service</a> to your Box.net account.</div>';
        }
        else { m.innerHTML = msg; }
    }
}



// part of form validation in /services/box/(signup stuff)
// i.e. CAPTCHA
function vForm(flds) {
    var str = '';
    for (var key in flds) {
        str += eval(key);
    }
    return str;
}

function bttn3Hover(ctl, relPath, isOver) {
    bttnHover(
        ctl,
        [ 
            relPath + 'images/div-bttn-bg-hover.png',
            relPath + 'images/div-bttn-bg.png'
        ],
        isOver );
}

function bttnHover(ctl, bgImage, isOver) {
    if (isOver) {
        ctl.style.backgroundImage="url('" + bgImage[0] + "')";
    }
    else {
        ctl.style.backgroundImage="url('" + bgImage[1] + "')";
    }
}

function arrToJSON(arr) {
    var json = '';
    for (key in arr) { json += '"' + key + '": "' + arr[key] + '",'; }
    return '{' + json.substr(0,json.length-1) + '}';
}

///////////////// jQuery related functions
/*
    E.g. jqdisplay(['form1','label2'], 'block');
*/
function JQdisplay(arrayOfElementIds, displayProp) {
    for(var i=0; i < arrayOfElementIds.length; i++) {
        $('#'+arrayOfElementIds[i]).css('display',displayProp);
    }
} // jqdisplay()

// requires jQuegy, but use to show/hide divs (used in multiple places)
function cpfHide(elId) {
    $('#'+elId).css('display','none');
}

// elId = element id
// dispType = e.g. 'block|inline'
function cpfShow(elId,dispType) {
    if (dispType == null) { dispType = 'block'; }
    $('#'+elId).css('display',dispType);
}


function initBttn4Highlight() {

    $('.bttn4a').mouseover(
       function() {
           $(this).css('background-color', '#bbbbbb');
       } );
    $('.bttn4a').mouseout(
       function() {
           $(this).css('background-color', 'silver');
       } );
}

