/***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;	
}

/******************************************************************************************************************************************/

	





