function getID (ident) /*Функция получения элемента по Id*/
{
	var ident = ident;
	var obj2 = document.getElementById(ident);
	return obj2;
}

/************************************************************************************************************************************************/

function getClass(searchClass,node,tag)  /*Функция получения всех элементов по классу*/
{
	var classElements = new Array();
	if ( node == null )
		node = document;
	if ( tag == null )
		tag = '*';
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	
	var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
	for (i = 0, j = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}

/************************************************************************************************************************************************/

function getTag (tag,obj)  /*Функция получения всех элементов с заданным тегом*/
{	
	if (obj != null)
	{
		var obj = obj;
		var objTags = obj.getElementsByTagName(tag);		
		return objTags;		
	}
	else
	{
		var objTags = document.getElementsByTagName(tag);		
		return objTags;		
	}
}

/************************************************************************************************************************************************/

function getStyle(elem, prop)  /*Функция получения стиля CSS элемента*/
{	
  if (typeof elem!="object") elem = document.getElementById(elem); 
  if (document.defaultView && document.defaultView.getComputedStyle)
  {
    if (prop.match(/[A-Z]/)) prop = prop.replace(/([A-Z])/g, "-$1").toLowerCase();
    return document.defaultView.getComputedStyle(elem, "").getPropertyValue(prop);
  }  
  
  if (elem.currentStyle)
  {
    var i;
    while ((i=prop.indexOf("-"))!=-1) prop = prop.substr(0, i) + prop.substr(i+1,1).toUpperCase() + prop.substr(i+2);
    return elem.currentStyle[prop];
  }
  
  return "";		
}

/************************************************************************************************************************************************/
/************************************************************************************************************************************************/
/************************************************************************************************************************************************/
/************************************************************************************************************************************************/

/***varsion 1.00***/
/****11.09.2009****/
function getChild (obj,tag)  /*функция получения списка дочерних узлов,преобразования их в массив и очистка его от всякого мусора*/
{	
	var obj = obj;
	var tag = tag;
	var nodes = obj.childNodes;		
	var nodesArray = new Array;
	for (var q=0;q<nodes.length;q++)
	{
		nodesArray[q]=nodes[q];
	}	
	var dirtyObj = nodesArray;		
	
	var pureObj = new Array;	
	var typeObj;
	for (var k=0;k<dirtyObj.length;k++)
	{
		typeObj = dirtyObj[k].nodeType;		
		if  (typeObj != 8 && typeObj != 3)
		{
			pureObj.push(dirtyObj[k]);
		}
	}
	return pureObj;	
}

/************************************************************************************************************************************************/	

function summArray (obj)  /*Функция сложения всех элементов числового массива*/
{
	var obj = obj;	
	var summObj = 0;
	for (var g=0;g<obj.length;g++)
	{
		summObj = summObj + obj[g];
	}
	return summObj;
}

/************************************************************************************************************************************************/

function sizeToNumb (siz)  /*Функция преобразования размера формата "xxx.px" чисто в число*/
{
	var findPoint = siz.indexOf("px");
	var sizeString = siz.slice(0,findPoint);
	var sizeNumb = Number(sizeString);
	return sizeNumb;
}

/************************************************************************************************************************************************/	

function NLToArray (nodList) /*Функция преобразования списка узлов в массив*/
{
	var obj = nodList;	
	var finalObj = new Array;
	for (var q=0;q<obj.length;q++)
	{
		finalObj.push(obj[q]);
	}
	return finalObj;
}

/************************************************************************************************************************************************/	
function flatArray (obj) /*Функция преобразующая массивы в массиве в общий плоский массив*/
{	
	var objFin = new Array;
	for (var q=0;q<obj.length;q++)
	{
		var vrem = obj[q];
		
		for (q2=0;q2<vrem.length;q2++)
		{
			objFin.push(vrem[q2]);
		}
	}
	return objFin;
	
}

/************************************************************************************************************************************************/	
function tagCover (obj,tag)  /*Функция помещения обьекта который внутри обьекта obj в тег tag*/
{
	var cutText = obj.innerHTML;	
	obj.innerHTML = "<"+tag+">"+cutText+"</"+tag+">";	
}

/************************************************************************************************************************************************/	



function bindEvent (XObject,XEventType,XEvent,XPopUp)
{
	var brName = browserDetect().name;
	
	
	function cancelPopupEvent(event)  /**Отмена всплытия**/ 
	{
		if(brName == "Firefox" || brName == "Opera" || brName == "Chrome")
		{
			event.stopPropagation();
		}
		else
		{
			event.cancelBubble = true;
		}
	}
	
	var XObjectChild = getChild(XObject);	
	for (var v=0;v<XObjectChild.length;v++)
	{
		XObjectChild[v].setAttribute("marker","label");
		var XObjectChild2l = getChild(XObjectChild[v]);
		for (var y=0;y<XObjectChild2l.length;y++)
		{
			XObjectChild2l[y].setAttribute("marker","label");
		}
			
	}
	
	/******Предотвращение срабатывания события при переводе курсора мыши с дочернего обьекта на обьект к которому привязано событие********/
	function eventFilter (event)
	{
		if (XEventType == "mouseover" || XEventType == "mouseout")
		{
			if(brName == "Firefox" || brName == "Opera" || brName == "Chrome")
			{
				var parentObject = event.relatedTarget;	
			}
			else
			{
				var parentObject = event.fromElement;
			}
			var parentObjectMarker = parentObject.getAttribute("marker");
			if (parentObjectMarker == null)
			{
				XEvent();
			}
		}
		else
		{
			XEvent();
		}			
	}	
	
	if (brName == "Firefox" || brName == "Opera" || brName == "Chrome")  /**Привязка события**/
	{
		XObject.addEventListener(XEventType,eventFilter,false);
		if (XPopUp == "offPopUp")
		{
			for (var a=0;a<XObjectChild.length;a++)
			{
				XObjectChild[a].addEventListener(XEventType,cancelPopupEvent,false);
			}
		}
		
	}
	else 
	{		
		XObject.attachEvent("on"+XEventType,eventFilter);
		if (XPopUp == "offPopUp")
		{
			for (var a=0;a<XObjectChild.length;a++)
			{
				XObjectChild[a].attachEvent("on"+XEventType,cancelPopupEvent);
			}
		}
	}
}
	
/******************************************************************************************************************************************/
function getHref (obj) /*Функция получения значений всех ссылок или картинок внутри элемента*/
{
	var arrayA = new Array ();
	
	var List = getTag("a",obj);
	var List = NLToArray(List);
	for (var x=0;x<List.length;x++)
	{
		var hrefData = List[x];
		if (hrefData.nameProp)
			{
			hrefData = hrefData.nameProp;
			}
			else
			{
			hrefData = hrefData.getAttribute ("href");
			}		
		arrayA[x] = hrefData;
	}
	return arrayA;	
}

/******************************************************************************************************************************************/

function easyBindEvent (XObject,XEventType,XEvent)
{
	var brName = browserDetect().name;
    if (brName != "MSIE")  
	{		
        XObject.addEventListener(XEventType,XEvent,false);        			
	}
	else 
	{	
        XObject.attachEvent("on"+XEventType,XEvent);        	
	}
}	








		
		

