var will_prot={
	blockEl: ['div','p','td','h1','h2','h3','h4','h5','h6'],
	inlineEl: [
		'b','i','strong','a','span','em','font','img','input','q','s','u',
		'select','del','ins','textarea','strike','label','small','samp']
};

var methods = {
	cleanWhitespaceRec: function(element) {
		element = $(element);

		if(element.nodeType==1 && will_prot.blockEl.indexOf(element.tagName.toLowerCase())!=-1)
			element.innerHTML=element.innerHTML.trim();

		var node = element.firstChild;

		while (node) {
			node=$(node);
			var nodeNext=$(node.nextSibling);
			var nodePrev=$(node.previousSibling);
			if (
				  node.nodeType == 3 &&
				(!nodePrev || nodePrev.nodeType != 1 || will_prot.inlineEl.indexOf(nodePrev.tagName.toLowerCase())==-1) &&
				(!nodeNext || nodeNext.nodeType != 1 || will_prot.inlineEl.indexOf(nodeNext.tagName.toLowerCase())==-1) &&  
				 !/[^\f\n\r\t\v\u2028\u2029 ]/.test(node.nodeValue))
			{
				node.parentNode.removeChild(node);
			}
			else if(node.nodeType == 1)
			{
				node.cleanWhitespaceRec();
			}

			node = nodeNext;
		}
		return element;
	},
//fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
	emptyWithoutNBSP: function (element){
		return !/[^\f\n\r\t\v\u2028\u2029 ]/.test(element.innerHTML);
	},
//fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
	prev_global:function (element,css,index){
		element=$(element);	if(!element)	{return false;}
		if(!css)	{return false;}
		if(!index)	{index=0;}

		var list_el=$$(css);	if(!list_el || !list_el.length)	{return false;}
		var index_el=list_el.indexOf(element);	if(!index_el)	{return false;}
	
		return list_el[index_el-1-index];
	},
//fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
	next_global:function (element,css,index){
		element=$(element);	if(!element)	{return false;}
		if(!css)	{return false;}
		if(!index)	{index=0;}
	
		var list_el=$$(css);	if(!list_el || !list_el.length)	{return false;}
		var index_el=list_el.indexOf(element);	if(index_el==-1)	{return false;}

		return list_el[index_el+1+index];
	},
	get_value_select:function(element){

		if(!element)
			return false;
		element=$(element);
			
		if(!element || element.tagName!='SELECT')
			return false;
		
		element=element.select('option');
		if(!element || !element.length)
			return false;
		
		for(var i=0; i<element.length; i++)
		{
			if(element[i].selected)
				return element[i].value;
		}
		return false;
	}
//fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
}
Element.addMethods(methods);
