$(document).ready(function(){
	
	// Share functions
	var getTop = function(obj) { return parseInt(obj.css("top").replace(/px$/,"")); }
	var getLeft = function(obj) { return parseInt(obj.css("left").replace(/px$/,"")); }
	var emailValidate = function(str){
		if (!(/\w+@\w+\.[a-z]{2,4}/).test(str))
			return false;
		else
			return true;
	}
	
	// Service
	$("#footer .services li:first").addClass("first");
	
	// Menu color's
	var setColors = function(objects,attribute,color_from,color_to,pre_text){
		var matches_from = color_from.match(/^#?([\dabcdef]{2})([\dabcdef]{2})([\dabcdef]{2})$/i);
		var matches_to = color_to.match(/^#?([\dabcdef]{2})([\dabcdef]{2})([\dabcdef]{2})$/i);
    
  		for (var i=1, rgb_from = new Array(3);  i<=3; i++) rgb_from[i-1] = parseInt(matches_from[i],16);
  		for (var i=1, rgb_to = new Array(3);  i<=3; i++) rgb_to[i-1] = parseInt(matches_to[i],16);
		
		var elements = objects;
		var lis = [];
		for (var i in elements) lis.push(elements[i]);
		
		var num = lis.length - 1;
		// Let's find deltas for colors
		var dR = (rgb_to[0] - rgb_from[0]) / num;
		var dG = (rgb_to[1] - rgb_from[1]) / num;
		var dB = (rgb_to[2] - rgb_from[2]) / num;
		for (var i in lis) {
			var R = Math.floor(dR*i + rgb_from[0]);
			var G = Math.floor(dG*i + rgb_from[1]);
			var B = Math.floor(dB*i + rgb_from[2]);
			var color = 'rgb(' + R + ',' + G + ',' + B + ')';
			$(lis[i]).css(attribute,pre_text+color);
		}
	}
	setColors($("#mainmenu .li").get(),"background-color","ffffff","dfdfdf","");
	setColors($("#mainmenu .li").get(),"border-left","f0f0f0","a1a1a2","1px solid ");
	setColors($("#mainmenu .li").get(),"border-right","f0f0f0","a1a1a2","1px solid ");
	setColors($("#mainmenu .li p").get(),"border-right","fbfbfb","d2d2d3","2px solid ");
	
	// Menu hover's
	var mainmenu_timer = 0;
	var calcMenuPopup = function(){
		var popup = $("#mainmenu_popup");
		var counter = 0;
		var flag = true;
		$("#mainmenu .li").each(function(){ if(flag && !$(this).hasClass("is_hover")) counter++; else flag = false; });
		popup.css("top",(counter*29)+"px");
	}
	$("#mainmenu .li").mouseenter(function(){
		var obj = $(this);
		var popup_cont = $("#mainmenu_popup");
		var popup = $("#mainmenu_popup .temp");
		if (obj.find(".submenu").length!=0) {
			clearTimeout(mainmenu_timer);
			$("#mainmenu .li_active").removeClass("li_active");
			$("#mainmenu .is_hover").removeClass("is_hover");
			obj.addClass("li_active");
			obj.addClass("is_hover");
			
			popup_cont.hide();
			popup.html("<ul class='submenu'>"+obj.find(".submenu").html()+"</ul>");
			calcMenuPopup();
			popup_cont.show();
			
		} else {
			$("#mainmenu .is_hover").removeClass("li_active").removeClass("is_hover");
			obj.addClass("li_hover");
			clearTimeout(mainmenu_timer);
			popup_cont.hide();
		}
	}).mouseleave(function(){
		var obj = $(this);
		if (obj.find(".submenu").length!=0) {
			mainmenu_timer = setTimeout(function(){
				$("#mainmenu .is_hover").removeClass("li_active").removeClass("is_hover");
				$("#mainmenu_popup").hide();
			},2000);
		} else obj.removeClass("li_hover");
	});
	$("#mainmenu_popup").mouseenter(function(){
		$("#mainmenu .is_hover").addClass("li_active");
		clearTimeout(mainmenu_timer);
	}).mouseleave(function(){
		mainmenu_timer = setTimeout(function(){
			$("#mainmenu .is_hover").removeClass("li_active").removeClass("is_hover");
			$("#mainmenu_popup").hide();
		},2000);
	});
	$("#mainmenu .li:first-child").addClass("top_li");
	$("#mainmenu ul li:first-child").addClass("first_li");
	var calcSubmenuLinks = function(obj){
		var counter = 0;
		obj.find("li").each(function(){counter++});
		return counter;
	}
	$("#mainmenu ul").each(function(){ if (calcSubmenuLinks($(this))==1) $(this).find("li").addClass("only"); });
	$("#mainmenu_popup li:first-child").live("mouseenter",function(){ $("#mainmenu_popup ul").addClass("first_hover"); }).live("mouseleave",function(){ $("#mainmenu_popup ul").removeClass("first_hover"); });
	

});
