function uniqid (prefix, more_entropy) {
								    if (typeof prefix == 'undefined') {
								        prefix = "";
								    }
								 
								    var retId;
								    var formatSeed = function (seed, reqWidth) {
								        seed = parseInt(seed,10).toString(16); // to hex str
								        if (reqWidth < seed.length) { // so long we split
								            return seed.slice(seed.length - reqWidth);
								        }
								        if (reqWidth > seed.length) { // so short we pad
								            return Array(1 + (reqWidth - seed.length)).join('0')+seed;
								        }
								        return seed;
								    };
								 
								    // BEGIN REDUNDANT
								    if (!this.php_js) {
								        this.php_js = {};
								    }
								    // END REDUNDANT
								    if (!this.php_js.uniqidSeed) { // init seed with big random int
								        this.php_js.uniqidSeed = Math.floor(Math.random() * 0x75bcd15);
								    }
								    this.php_js.uniqidSeed++;
								 
								    retId  = prefix; // start with prefix, add current milliseconds hex string
								    retId += formatSeed(parseInt(new Date().getTime()/1000,10),8);
								    retId += formatSeed(this.php_js.uniqidSeed,5); // add seed hex string
								 
								    if (more_entropy) {
								        // for more entropy we add a float lower to 10
								        retId += (Math.random()*10).toFixed(8).toString();
								    }
								 
								    return retId;
}

function implode (glue, pieces) {
    var i = '', retVal='', tGlue='';
    if (arguments.length === 1) {
        pieces = glue;
        glue = '';
    }
    if (typeof(pieces) === 'object') {
        if (pieces instanceof Array) {
            return pieces.join(glue);
        }
        else {
            for (var key in pieces) {
                retVal += tGlue + key + '=' +pieces[key];
                tGlue = glue;
            }
            return retVal;
        }
    }
    else {
        return pieces;
    }
}
								
function empty (mixed_var)
{
	    var key;
	    
	    if (mixed_var === "" ||
	        mixed_var === 0 ||
	        mixed_var === "0" ||
	        mixed_var === null ||
	        mixed_var === false ||
	        typeof mixed_var === 'undefined'
	    ){
	        return true;
	    }
	 
	    if (typeof mixed_var == 'object') {
	        for (key in mixed_var) {
	            return false;
	        }
	        return true;
	    }
	 
	    return false;
}
