								//////////////////////////////////
								//	Library for styling forms.	//
								//	Version 1.0					//
								//////////////////////////////////

// Прихваща името и версията на бралзера. 
function getBr()
{
	var brName		= navigator.appName;
	if((brName != null) && (brName != ""))
	{
		switch(brName)
		{
			case "Microsoft Internet Explorer":
				// IE
				var brVerTemp 	= navigator.appVersion;
				var brString  	= brVerTemp.indexOf("MSIE", 0);
				var curString 	= brString + 5;
				this.brVer = (brVerTemp.substr(curString, 3));
			break;
		}
	}
}

//Прихваща текстови полета.
function getInputText()
{
	var elements = document.getElementsByTagName('input');
	for(i = 0; i < elements.length; i++)
	{
		if(elements[i].getAttribute('type') == 'text')
		{
			textBoxDesign(elements[i]);
		}
	}
}

//Прихваща бутони.
function getInputButtons()
{
	var br = new getBr();
	var ver = br.brVer;
	
	var elements = document.getElementsByTagName('input');
	for(i = 0; i < elements.length; i++)
	{
		if((elements[i].getAttribute('type') == 'submit') || (elements[i].getAttribute('type') == 'reset') || (elements[i].getAttribute('type') == 'button'))
		{
			var buttonType = elements[i].getAttribute('type');
			buttonsDesign(elements[i], buttonType);
		}
	}
}

// Обработва бутони.
function buttonsDesign(button, buttonType)
{
	button.className = "inputButtons";
	
	switch(buttonType)
	{
		case "submit":
			var buttonHover = "red";
			var buttonImage = "images/button.jpg";
			button.style.backgroundImage = "url("+ buttonImage +")";
		break;
		case "reset":
			var buttonHover = "green";
			var buttonImage = "images/buttonClearHover.jpg";
			button.style.backgroundImage = "url("+ buttonImage +")";
		break;
		case "button":
			var buttonHover = "red";
			var buttonImage = "images/button.jpg";
			button.style.backgroundImage = "url("+ buttonImage +")";
		break;
	}
	button.onmouseover = function() {
		this.style.color = buttonHover;
	}
	button.onmouseout  = function() {
		this.style.color = "white";
	}
}

// Обработва текстови полета.
function textBoxDesign(textBox)
{
	textBox.className = "inputText";
}


function OptMenuValues()
{
	this.animationTime 		= 400;
	this.sulUlFixedSize		= "200px";
}

// Създава и обработва падащо меню от списъци.
// Взима стойностите от select меню-то след което го скрива.
function OptMenuCreate()
{
	var values = new OptMenuValues();
	var i;
	var s;
	var li;
	var selectObj 			= document.getElementsByTagName( "select" );
	for(s = 0; s < selectObj.length; s++)
	{
		// Главен UL
		var mUl				= document.createElement('ul');
		mUl.id  			= selectObj[s].id + "MainUl";
		mUl.className 		= "mainUl";
		mUl.style.zIndex	= s+10;
		selectObj[s].parentNode.insertBefore(mUl, selectObj[s]);
		mUl.sel = selectObj[s];

		// Главен LI
		var mLi				= document.createElement( 'li' );
		mLi.id				= selectObj[s].id + "MainLi";
		mLi.appendChild( document.createTextNode( selectObj[s].id ) );
		mUl.appendChild(mLi);
		
		// Вторичен UL
		var subUl			= document.createElement( 'ul' );
		subUl.id			= selectObj[s].id + "SubUl";
		subUl.className		= "subUl";
		subUl.style.zIndex	= s+10;
		mLi.appendChild(subUl);
		
		var OptEl 			= selectObj[s].options;
		
		for(var i = 0; i < selectObj[s].options.length; i++)
		{
			li = document.createElement("li");
			li.appendChild( document.createTextNode( selectObj[s].options[i].value ) );
			li.num = i;
			subUl.appendChild(li);
		}
		
		// Ако броя на елементите в менюто са повече от 8 виксира височина на менчто.
		// и задава скролер.
		
		selectObj[s].style.display = "none";
	}
}

// Обработва менюто от списъци.
function OptMenuOperate()
{
	// Стойности.
	var vs = new OptMenuValues();
	
	var menus 		= document.getElementsByClassName( "mainUl" );
	var selectObj 	= document.getElementsByTagName( "select" );
	var s = 0;
	if( ( menus != null ) && ( selectObj != null ) ) 
	{	
		for(var i = 0; i < menus.length; i++)
		{
			//alert(menus[i].id);
			var mUl = menus[i].firstChild;
			mUl.subUl = mUl.getElementsByTagName( "ul" )[0];
			
			mUl.onclick 	= function() {
				this.opened = !this.opened;
				if( this.opened )
				{
					
					$(this.subUl).show(vs.animationTime);
				}
				else
				{
					this.style.position	= "static";
					$(this.subUl).hide(vs.animationTime);
				}
			}
			
			document.ondblclick = function() {
				var subUlAll = this.getElementsByTagName('ul');
				if(subUlAll != null)
				{
					for(var i = 0; i < subUlAll.length; i++)
					{
						if(subUlAll[i].getAttribute('class') == "subUl")
						{
							$(subUlAll[i]).hide(300);
						}
					}
				}
			}
			
			var OptEl		= selectObj[i].options;
			var subUl 		= mUl.getElementsByTagName( "ul" )[0];
			
			if(OptEl.length > 8)
			{
				subUl.style.height 		= vs.sulUlFixedSize;
				subUl.style.overflow 	= "auto";
			}
			
			var subLists	= subUl.getElementsByTagName( "li" );
			for(var k = 0; k < subLists.length; k++)
			{
				subLists[k].num 	= k;
				subLists[k].opts 	= OptEl;
				subLists[k].onmouseover = function() {
					this.style.color = "#393939";
				}
				subLists[k].onmouseout  = function() {
					this.style.color = "#8b8b8b";
				}
				subLists[k].onclick = function() {
					this.style.color = "#2557a2";
					var parentUl = getParentByTagName(this, 'ul');
					$(parentUl).hide(400);
					//this.parentNode.style.display = "none";
					this.opts.selectedIndex = this.num;
					var parentLi = getParentByTagName(this, 'li');
					parentLi.firstChild.data = this.firstChild.data;
				}
			}
		}
	}	
}
	
	/*
	
	*/
// По обекти и тип на тага, взима родител от този таг.
function getParentByTagName(obj, tag) 
{ 
	var obj_parent = obj.parentNode; 
	if (!obj_parent) return false; 
	if (obj_parent.tagName.toLowerCase() == tag) return obj_parent; 
	else return getParentByTagName(obj_parent, tag); 
}


// Зарежда автоматично всички ф-ции и прави стилизирането.
function forms()
{
	// Извиква ф-ята за изграждане на менюто.
	OptMenuCreate();
	// Извиква ф-ята за обработка на менюто.
	OptMenuOperate();
	
	// Извиква ф-ята за прихващане на текстови полета.
	getInputText();
	// Извиква ф-ята за обработка на текстови полета.
	getInputButtons();
	
}

