

/**
 * PHP-like function to replace arrays of data
 * @param search
 * @param replace
 * @param subject
 * @returns replaced subject
 */
function str_replace(search, replace, subject)
{

	subject = subject.split(search).join(replace);

    return subject;
}

/** Function from php.js open library **/
function isset () {
    // !No description available for isset. @php.js developers: Please update the function summary text file.
    // 
    // version: 1102.614
    // discuss at: http://phpjs.org/functions/isset
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: FremyCompany
    // +   improved by: Onno Marsman
    // +   improved by: Rafał Kukawski
    // *     example 1: isset( undefined, true);
    // *     returns 1: false
    // *     example 2: isset( 'Kevin van Zonneveld' );
    // *     returns 2: true
    var a = arguments,
        l = a.length,
        i = 0,
        undef;
 
    if (l === 0) {
        throw new Error('Empty isset');
    }
 
    while (i !== l) {
        if (a[i] === undef || a[i] === null) {
            return false;
        }
        i++;
    }
    return true;
}

/**
 * Function collects requestet scope of arguments
 * @returns arguments array
 */
function func_get_args () {
    if (!arguments.callee.caller) {
        try {
            throw new Error('Function arguments calling not supported');
            //alert('debug1');
            // return false;
        } catch (e) {
            return false;
        }
    }
 
    return Array.prototype.slice.call(arguments.callee.caller.arguments);
}

/**,
 * Main language function.
 * 
 * Usage:
 *  _('textIdentifier',param1,param2) 
 *  where paramX are optional subvalues
 * @param phrase
 */
function _(phrase)
{
   var args = func_get_args();
   if(isset(languageDatabase[phrase]))
   {
	   var word = languageDatabase[phrase];
	   var i = 0;
      var item = null;
	   for(item in args)
	   {
		  word = str_replace('%'+i, args[item], word);
		  i++;
	   }
	   
	   return word;
   }
   else
   {
	   return '%'+phrase+'%';
   }

}
