/*
взять DOM-элемент по id
*/
function $(id)
{
    return document.getElementById(id);
};

/*
создать DOM-элемент (таг)
*/
function $$(tag)
{
	return document.createElement(tag);
};

/*
массив всех классов элемента
*/
function allClass(el)
{
   return el.className.split(/\s+/);
};

/*
добавить элементу класс с сохранением существующих
*/
function addClass(id, className)
{
   var el = $(id);
   var classes = allClass(el);

   for(var i = 0; i < classes.length; i++)
      if(classes[i] == className) return;
      el.className = el.className + " " + className;
};

/*
удалить элементу класс с сохранением остальных
*/
function delClass(id, className)
{
   var el = $(id);
   var classes = allClass(el);
   var cn = ""
   for(var i = 0; i < classes.length; i++)
   {
       var isMatch = (typeof className.test == "function")
                     ? className.test(classes[i])
                     : (classes[i] == className)
       if(!isMatch) cn = cn + " " + classes[i]
   }
   el.className = cn.substr(1);
};

/*
найти элементы по классу, возвращает массив всех найденных
*/
function findClass(className)
{
    var list = new Array();
    var nodes = document.getElementsByTagName('*')
    for (i = 0; i<nodes.length; i++)
    {
      if (nodes[i].className.indexOf(className) >= 0 ) list.push(nodes[i]);
    }
    return list;
};

function delSelectClasses(className)
{
/*    if(document.getElementsByClassName)
    {
        var el = document.getElementsByClassName(className);
    }
    else
    {*/
    	var el = findClass(className);
  //  }

    var len = el.length;
    if (len > 0)
    {
        for(var i = 0; i < len; i++)
        {
           delClass(el[i].id, className);
        }
    }
};

/*
String: var a = trim(b);
*/
function trim(s)
{
    s = s.replace(/^[\s\n]+/g, '');
    s = s.replace(/[\s\n]+$/g, '');
    return s;
};