$(document).ready(function(){
	innerSideMenu();
	initAutoScalingNav({
		menuId: "nav",
		liHovering: true,
		equalLinks: false,
		sideClasses: true,
		spacing: 1
	});
	initCufon();
	clearFormFields({
		clearInputs: true,
		clearTextareas: true,
		passwordFieldText: true,
		addClassFocus: "focus",
		filterClass: "default"
	});
	if($('.gallery').length){
		fadeGallery();
	}
	
});

function innerSideMenu(){
	if($('#sidebar .widget').length){
		var _selectedUl = $('#nav > div > ul > .selected > ul').html();
		var _selectedLink = $('#nav > div > ul > .selected').find('a').first().text();
		//$('#sidebar .widget h3').text(_selectedLink);
		//$('#sidebar .widget').append(_selectedUl);
		if($('#nav > div > ul > .selected > ul').length != 1){
			$('#sidebar .widget')[0].style.display = 'none';
		} else if($('#nav > div > ul > .selected').length){
			$('#sidebar .widget')[0].style.paddingBottom = '4px';
			$('#sidebar .widget h3').text(_selectedLink);
			$('#sidebar .widget ').append('<ul>' + _selectedUl + '</ul>');
		}
	}
}





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";}}


/**
 * Fade Gallery
 * @author Nickolay Kondratenko <devmarkup@gmail.com>
 * @param bool autoslide - set true if you want autoslide
 * @param int autoslideDelay - autoslide interval in miliseconds
 * @param bool autoslideStopOnClick - set true if you want stop autosliding after manual sliding
 * @param bool thumbs - set true if you want generate small thumbnails in gallery navigation
 */
autoslide = true;
autoslideDelay = 6000;
autoslideStopOnClick = true;
thumbs = false;

function fadeGallery()
{

	var t;///

	jQuery("div.gallery").each(function()
	{
		var f_gallery = jQuery(this);
		var f_list = f_gallery.find("div.holder li");
		//active element searching
		var f_active = f_list.index(f_list.filter(".active:eq(0)"));
		//if absent so let be first
		if(f_active == -1) f_active=0;
		//all instead of first active are transparent and not active
		f_list.removeClass("active").css("opacity", 0).eq(f_active).addClass("active").css("opacity", 1);
		
		//thumbs generation
		
		var f_thumb = f_gallery.find("div.gallery-nav");
		for(i=0; i<f_list.length; i++)
		{
			
			if (thumbs)
			{
				f_src = f_list.eq(i).find("img").attr("src");
				f_thumb.append('<li><a href="#"><img alt="thumb" src="' + f_src + '" /></a></li>');
			}
			else
			{
				f_thumb.append('<li><a href="#">' + (i + 1) + '</a></li>');
			}
		}
		f_gallery.append(f_thumb);
		var btn_prev = f_gallery.find("a.prev");
		var btn_next = f_gallery.find("a.next");
		var f_thumb = f_gallery.find(".gallery-nav li");
		$(f_thumb).wrapAll('<ul></ul>');
		f_thumb.eq(f_active).addClass("active");
		//click functions
		btn_prev.click( function()
		{
			slidePrev();
			if (autoslideStopOnClick)
			{
				if (t)
					clearTimeout(t);
				autoslide = false;
			}
			return false;
		});
		btn_next.click( function()
		{
			slideNext();
			if (autoslideStopOnClick)
			{
				if (t)
					clearTimeout(t);
				autoslide = false;
			}
			return false
		});
		f_thumb.click( function()
		{
			changeItem(f_thumb.index(this));
			if (autoslideStopOnClick)
			{
				if (t)
					clearTimeout(t);
				autoslide = false;
			}
			return false;
		});
		function slideNext()
		{
			if (f_active < f_list.length - 1) 
				changeItem(f_active + 1);
			else changeItem(0);
		}
		function slidePrev()
		{
			if(f_active > 0) changeItem(f_active-1);
			else changeItem(f_list.length-1);
		}
		//change item function
		function changeItem(f_index)
		{
			if(f_index != f_active)
			{
				f_thumb.eq(f_active).removeClass("active");
				f_thumb.eq(f_index).addClass("active");
				f_list.eq(f_active).removeClass("active").animate({opacity:0}, {queue:false, duration: 1000});
				f_list.eq(f_index).addClass("active").animate({opacity:1}, {queue:false, duration: 1000});
				f_active = f_index;
			}
			autoSlide();
		}
		
		///autoslide
		autoSlide();
		function autoSlide()
		{
			if (t)
				clearTimeout(t);
			if (autoslide)
			{
				t = setTimeout(function()
				{
					slideNext();
				}, autoslideDelay);
			}
		}
	});
}


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).getElementsByTagName("ul")[0];
	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;
	}
}

