function trim(str) {
  str = str.replace(/(^ *)|( *$)/,"");
  return str;
}

function rtrim(str) {
  str = str.replace(/( *$)/,"");
  return str;
}

function ltrim(str) {
  str = str.replace(/(^ *)/,"");
  return str;
}

function substr(mixed_var, s, l) {
  if (s < 0) {s=mixed_var.length+s;}
  str = mixed_var.substring(s, s+l);
  return str;
}

// Возвращает длину строки
function strlen( mixed_var ) {
    return mixed_var.length;
}

// Преобразует строку в нижний регистр
function strtolower( mixed_var ) {
    return mixed_var.toLowerCase();
}

// Преобразует строку в верхний регистр
function strtoupper( mixed_var ) {
    return mixed_var.toUpperCase();
}

// Преобразует строку в массив
function str_split( mixed_var, mixed_num ) {
    
    // Выходной массив
    var result = new Array();
    
    // Если порядок разбиений равен 1, тогда в цикле просто
    // переписываем в массив символ в указанной позиции
    if( mixed_num == 1 ) {
        for(var i = 0; i < mixed_var.length; i++) {
            result.push( mixed_var.charAt(i) );
        }
    }
    
    // Если порядок разбиений больше единицы, тогда в цикле просто
    // вырезаем кусок строки слева, помещаем в массив и обрезаем 
    // исходную строку, в соответствии с порядком деления
    if( mixed_num > 1 ) {
        while(mixed_var.length > 0) {
            // Вырезаем слева кусок
            var mix_var = mixed_var.substring( 0, mixed_num );
            
            // Записываем в массив
            result.push(mix_var);
            
            // Обрезаем исходную строку
            mixed_var = mixed_var.substr(mixed_num);
        }
    }
    
    // Если порядок деления меньше единицы, тогда всю строку пишем 
    // в первый элемент массива
    if( mixed_num < 1 ) {
        result[0] = mixed_var;
    }
    
    // На выходе получим массив из подстрок исходной строки, к примеру для строки "qwerty" 
    // и порядка разделения "2" получим массив -> [qw, er, ty]
    return result;
}

// Переворачивает строку
function strrev( mixed_var )
{
    // Переменная, получает значение результата оборота строки
    var result = "";
    
    // Если длина строки не равна нулю
    if( mixed_var.length != 0 ) {
        
        // В переменную результата пишем результат через
        // посимвольную конкатенацию
        for(var i = mixed_var.length - 1; i >= 0; i--) {
            result += mixed_var.charAt(i);
        }
    }
    
    // Возвращаем результат
    return result;
}

// Возвращает повторяющуюся строку
function str_repeat( mixed_var, mixed_num )
{
    // Переменная, получает значение результата конкатенации строки
    var result = "";
    
    // Если количество повторений больше единицы
    if( mixed_num >= 1 ) {
        for(var i = 0; i < mixed_num; i++) {
            result += mixed_var;
        }
    }
    
    // Возвращаем результат
    return result;
}

// Возвращает ASCII код символа
function ord( mixed_var )
{
    // Переменная, получает ASCII-значение первого символа строки
    var result = "";
    
    // Получение скан-кода
    if(mixed_var.length != 0) {
        result = mixed_var.charCodeAt(0);
    }
    
    // Если пришёл пустой символ строки, тогда выдаём просто ошибку
    if(result == "") {
        result = "None";
    }
    
    // Возвращаем результат
    return result;
}

function letter_posion(string , position) {
   // возвращает символ находящийся на позиции pos от начала слова. Аналог $string{pos}
   return string.charAt(position);
}

function ord(char) {
   //  Возвращает acsii обозначение для символа
    // Аналог ord на javascript
    return char,charCodeAt()  ;
}

function un_ord( unicode )  {
    // Возвращает стмвол / строку по указанному uni коду
    return unicode.fromCharCode (unicode);
}


function strpos( haystack, needle, offset ) {
    // Возвращает позицию первого вхождения подстроки needle в строку haystack.
    // аналог strstr
    // аналог strpos
   
 if(offset) offset = offset ; else offset = 0 ;
  return haystack.indexOf(needle,offset);
}


function strRpos( haystack, needle, offset ) {
   // аналог strrpos
    // Возвращает позицию первого вхождения подстроки needle в строку haystack.
   
 if(offset) offset = offset ; else offset = 0 ;
  return haystack.lastindexOf(needle,offset);
}


function explode(separator, string, limit){
 // Возвращает массив строк, полученных разбиением строки string с использованием 
  // separator в качестве разделителя. 
  // аналог explode

   return string.split (seperator ,limit);
}

function implode(array,separator){
  // Аналог join на Javascript
  // Аналог implode на Javascript

  return array.join(separator);
}

