function initPage()

{

	initAutoScalingNav({

		menuId:"nav",

		tag: "a",

		spacing: 8,

		minPaddings:5

	});

	initNav({

		menuId: "nav",

		hoverClass: "hover",

		flexibility: true,

		menuPaddings:52,

		minWidth: "li"

	});

		clearFormFields({

		clearInputs: true,

		clearTextareas: true,

		passwordFieldText: true,

		addClassFocus: "focus",

		filterClass: "default"

	});



}

function initNav(o)

{

	if (!o.menuId) o.menuId = "nav";

	if (!o.cleverMode) o.cleverMode = false;

	if (!o.flexibility) o.flexibility = false;

	if (!o.dropExistenceClass) o.dropExistenceClass = false;

	if (!o.hoverClass) o.hoverClass = "hover";

	if (!o.menuHardCodeClass) o.menuHardCodeClass = "menu-hard-code";

	if (!o.sideClasses) o.sideClasses = false;

	if (!o.center) o.center = false;

	if (!o.menuPaddings) o.menuPaddings = 0;

	if (!o.minWidth) o.minWidth = 0;

	if (!o.coeff) o.coeff = 1.7;

	var n = document.getElementById(o.menuId);

	if(n)

	{

		n.className = n.className.replace(o.menuHardCodeClass, "");

		var lfl = [];

		var li = n.getElementsByTagName("li");

		for (var i=0; i<li.length; i++)

		{

			li[i].className += (" " + o.hoverClass);

			var d = li[i].getElementsByTagName("div").item(0);

			if(d)

			{

				if(o.flexibility)

				{

					var a = d.getElementsByTagName("a");

					for (var j=0; j<a.length; j++)

					{

						var w = a[j].parentNode.parentNode.offsetWidth;

						if(w > 0)

						{

							if(typeof(o.minWidth) == "number" && w < o.minWidth)

								w = o.minWidth;

							else if(typeof(o.minWidth) == "string" && li[i].parentNode == n && w < li[i].offsetWidth)

								w = li[i].offsetWidth - 8;

							a[j].style.width = w - o.menuPaddings + "px";

						}

					}

					d.style.width = li[i].getElementsByTagName("div").item(1).clientWidth + "px";

				}

				var t = document.documentElement.clientWidth/o.coeff;

				if(li[i].parentNode != n && (!o.cleverMode || fPX(li[i]) < t))

				{

					d.style.right = "auto";

					d.style.left = li[i].parentNode.offsetWidth + "px";

					d.parentNode.className += " left-side";

				}	

				else if(li[i].parentNode != n && (o.cleverMode || fPX(li[i]) >= t))

				{

					d.style.left = "auto";

					d.style.right = li[i].parentNode.offsetWidth + "px";

					d.parentNode.className += " right-side";

				}

				else if(li[i].parentNode == n && o.cleverMode && fPX(li[i]) >= t)

				{

					li[i].className += " right-side";

				}

				if(li[i].parentNode == n && o.center)

					d.style.left = -li[i].getElementsByTagName("div").item(1).clientWidth/2 + li[i].clientWidth/2 + "px";

			}

			if(o.dropExistenceClass && li[i].getElementsByTagName("ul").length > 0)

			{

				li[i].className += (" " + o.dropExistenceClass);

				li[i].getElementsByTagName("a").item(0).className += (" " + o.dropExistenceClass + "-link");

				li[i].innerHTML += "<em class='pointer'></em>";

			}

			if(li[i].parentNode == n) lfl.push(li[i]);

		}

		if(o.sideClasses)

		{

			lfl[0].className += " first-child";

			lfl[0].getElementsByTagName("a").item(0).className += " first-child-link";

			lfl[lfl.length-1].className += " last-child";

			lfl[lfl.length-1].getElementsByTagName("a").item(0).className += " last-child-link";

		}

		for (var i=0; i<li.length; i++)

		{

			li[i].className = li[i].className.replace(o.hoverClass, "");

			li[i].onmouseover = function()

			{

				this.className += (" " + o.hoverClass);

			}

			li[i].onmouseout = function()

			{

				this.className = this.className.replace(o.hoverClass, "");

			}

		}

	}

	function fPX(a)

	{

		var b = 0;

		while (a.offsetParent) {b += a.offsetLeft; a = a.offsetParent;}

		return b;

	}

}

	

function initAutoScalingNav(o) {

	if (!o.menuId) o.menuId = "nav";

	if (!o.tag) o.tag = "a";

	if (!o.spacing) o.spacing = 0;

	if (!o.constant) o.constant = 0;

	if (!o.minPaddings) o.minPaddings = 0;

	if (!o.liHovering) o.liHovering = false;

	if (!o.sideClasses) o.sideClasses = false;

	if (!o.equalLinks) o.equalLinks = false;

	if (!o.flexible) o.flexible = false;

	var nav = document.getElementById(o.menuId);

	if(nav) {

		nav.className += " scaling-active";

		var lis = nav.getElementsByTagName("li");

		var asFl = [];

		var lisFl = [];

		var width = 0;

		for (var i=0, j=0; i<lis.length; i++) {

			if(lis[i].parentNode == nav) {

				var t = lis[i].getElementsByTagName(o.tag).item(0);

				asFl.push(t);

				asFl[j++].width = t.offsetWidth;

				lisFl.push(lis[i]);

				if(width < t.offsetWidth) width = t.offsetWidth;

			}

			if(o.liHovering) {

				lis[i].onmouseover = function() {

					this.className += " hover";

				}

				lis[i].onmouseout = function() {

					this.className = this.className.replace("hover", "");

				}

			}

		}

		var menuWidth = nav.clientWidth - asFl.length*o.spacing - o.constant;

		if(o.equalLinks && width * asFl.length < menuWidth) {

			for (var i=0; i<asFl.length; i++) {

				asFl[i].width = width;

			}

		}

		width = getItemsWidth(asFl);

		if(width < menuWidth) {

			var version = navigator.userAgent.toLowerCase();

			for (var i=0; getItemsWidth(asFl) < menuWidth; i++) {

				asFl[i].width++;

				if(!o.flexible) {

					asFl[i].style.width = asFl[i].width + "px";

				}

				if(i >= asFl.length-1) i=-1;

			}

			if(o.flexible) {

				for (var i=0; i<asFl.length; i++) {

					width = (asFl[i].width - o.spacing - o.constant/asFl.length)/menuWidth*100;

					if(i != asFl.length-1) {

						lisFl[i].style.width = width + "%";

					}

					else {

						if(navigator.appName.indexOf("Microsoft Internet Explorer") == -1 || version.indexOf("msie 8") != -1 || version.indexOf("msie 9") != -1)

							lisFl[i].style.width = width + "%";

					}

				}

			}

		}

		else if(o.minPaddings > 0) {

			for (var i=0; i<asFl.length; i++) {

				asFl[i].style.paddingLeft = o.minPaddings + "px";

				asFl[i].style.paddingRight = o.minPaddings + "px";

			}

		}

		if(o.sideClasses) {

			lisFl[0].className += " first-child";

			lisFl[0].getElementsByTagName(o.tag).item(0).className += " first-child-a";

			lisFl[lisFl.length-1].className += " last-child";

			lisFl[lisFl.length-1].getElementsByTagName(o.tag).item(0).className += " last-child-a";

		}

		nav.className += " scaling-ready";

	}

	function getItemsWidth(a) {

		var w = 0;

		for(var q=0; q<a.length; q++) {

			w += a[q].width;

		}

		return w;

	}

}



function clearFormFields(o)

{

	if (o.clearInputs == null) o.clearInputs = true;

	if (o.clearTextareas == null) o.clearTextareas = true;

	if (o.passwordFieldText == null) o.passwordFieldText = false;

	if (o.addClassFocus == null) o.addClassFocus = false;

	if (!o.filter) o.filter = "default";

	if(o.clearInputs) {

		var inputs = document.getElementsByTagName("input");

		for (var i = 0; i < inputs.length; i++ ) {

			if((inputs[i].type == "text" || inputs[i].type == "password") && inputs[i].className.indexOf(o.filterClass)) {

				inputs[i].valueHtml = inputs[i].value;

				inputs[i].onfocus = function ()	{

					if(this.valueHtml == this.value) this.value = "";

					if(this.fake) {

						inputsSwap(this, this.previousSibling);

						this.previousSibling.focus();

					}

					if(o.addClassFocus && !this.fake) {

						this.className += " " + o.addClassFocus;

						this.parentNode.className += " parent-" + o.addClassFocus;

					}

				}

				inputs[i].onblur = function () {

					if(this.value == "") {

						this.value = this.valueHtml;

						if(o.passwordFieldText && this.type == "password") inputsSwap(this, this.nextSibling);

					}

					if(o.addClassFocus) {

						this.className = this.className.replace(o.addClassFocus, "");

						this.parentNode.className = this.parentNode.className.replace("parent-"+o.addClassFocus, "");

					}

				}

				if(o.passwordFieldText && inputs[i].type == "password") {

					var fakeInput = document.createElement("input");

					fakeInput.type = "text";

					fakeInput.value = inputs[i].value;

					fakeInput.className = inputs[i].className;

					fakeInput.fake = true;

					inputs[i].parentNode.insertBefore(fakeInput, inputs[i].nextSibling);

					inputsSwap(inputs[i], null);

				}

			}

		}

	}

	if(o.clearTextareas) {

		var textareas = document.getElementsByTagName("textarea");

		for(var i=0; i<textareas.length; i++) {

			if(textareas[i].className.indexOf(o.filterClass)) {

				textareas[i].valueHtml = textareas[i].value;

				textareas[i].onfocus = function() {

					if(this.value == this.valueHtml) this.value = "";

					if(o.addClassFocus) {

						this.className += " " + o.addClassFocus;

						this.parentNode.className += " parent-" + o.addClassFocus;

					}

				}

				textareas[i].onblur = function() {

					if(this.value == "") this.value = this.valueHtml;

					if(o.addClassFocus) {

						this.className = this.className.replace(o.addClassFocus, "");

						this.parentNode.className = this.parentNode.className.replace("parent-"+o.addClassFocus, "");

					}

				}

			}

		}

	}

	function inputsSwap(el, el2) {

		if(el) el.style.display = "none";

		if(el2) el2.style.display = "inline";

	}

}



if (window.addEventListener)

	window.addEventListener("load", initPage, false);

else if (window.attachEvent)

	window.attachEvent("onload", initPage);
