$(document).ready(function(){
	disableRightClick();
});


function disableRightClick(){
	$('.no-rightclick-wrapper').rightClick(function(e){
  	//alert('No right-click allowed');
		$('.no-rightclick-wrapper').noContext();
	});
}

function checkForm(){
	var name = $('#name');
	var email = $('#email');
	var subject = $('#subject');
	var message = $('#message');
	var result = true;
	
	jQuery("#contact-form").find(".insertion-result").each(function(i){
		jQuery(this).remove();
	});
	
	if($(name).val().length<3){
		result = false;
		$('#name-error').html('<span class="insertion-result">Min 3 chars</span>');
	}
	
	if(!validate($(email).val())){
		result = false;
		$('#email-error').html('<span class="insertion-result">Invalid email address</span>');
	}
	
	if($(subject).val()==""){
		result = false;
		$('#subject-error').html('<span class="insertion-result">Required field</span>');
	}
	
	if($(message).val()==""){
		result = false;
		$('#message-error').html('<span class="insertion-result">Min 5 chars</span>');
	}
	
	return result;
}

function remainingChars(textarea){
  var char_count = textarea.value.length;
  var limit = 500;
  if($("#remaining-chars").text()!=""){
  	$("#remaining-chars").html('');
  	}
  if(char_count > limit){
    textarea.value = textarea.value.substring(0,limit);
    $("#remaining-chars").html('<span class="limit-exceeded">Limit exceeded</span>');
  }
  else{
    var percentage = parseInt(((limit-char_count)*100)/limit);
    $("#remaining-chars").css({'width' : ''+percentage+'%'});
  }
}

function validate(email) {
  var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
	return reg.test(email);
}

function buildSubmenu(activeSubmenu){
	var parent;
	var currentSubmenuList;
	var currentActiveLink;
	var currentActiveLinkSubmenuList;
	$('ul.gallery-menu').find('li').find('ul.gallery-submenu').find('li').find('a').each(function(){
		if($(this).get(0).className=='active'){
			currentActiveLink = $(this);
			currentActiveLinkSubmenuList = $(this).parent('li').parent('ul.gallery-submenu');
		}
	});
	jQuery('ul.gallery-menu').find('li').find('a.submenu-activator').each(function(){
		parent = $(this).parent();
		if(currentActiveLink!=null && currentActiveLinkSubmenuList!=null){
			currentActiveLinkCategoryLink = currentActiveLinkSubmenuList.parent('li').children('a.submenu-activator');
			currentActiveLinkCategoryLink.addClass('active');
			jQuery(this).click(function(){
				parent = $(this).parent();
				activateSubmenu($(parent),$(currentActiveLink));
			});
			currentSubmenuList = $(parent).children('ul.gallery-submenu');
			jQuery(currentSubmenuList).find('li').each(function(){
				if($(this).parent('ul.gallery-submenu').get(0)!=$(currentActiveLinkSubmenuList).get(0))
					$(this).hide();
			});
			
			jQuery(currentSubmenuList).each(function(){
				if($(this).get(0)!=$(currentActiveLinkSubmenuList).get(0))
					$(this).hide();
			});
		}
		else{
			jQuery(this).click(function(){
				parent = $(this).parent();
				activateSubmenu($(parent));
			});			
			currentSubmenuList = $(parent).children('ul.gallery-submenu');
			jQuery(currentSubmenuList).find('li').each(function(){
				$(this).hide();
			});
			
			jQuery(currentSubmenuList).each(function(){
				$(this).hide();
			});
		}
	});
}

function activateSubmenu(listItem,activeLink){	
	/**
		listItem is <li> item wich contains current link (is the <a> parent)
		currentLink is <a> wich is currently active and must be shown
	**/
	var everySubmenuList = $('ul.gallery-submenu');
	var listItemChildrenList = $(listItem).children('.gallery-submenu'); // <ul> wich is contained in current <li>
	var activeSubmenuList;
	if(activeLink != undefined){
		var activeSubmenuList = $(activeLink).parent('li').parent('ul');
	}
	
	$(everySubmenuList).each(function(i){
		if($(this).is(':visible')){
			$(everySubmenuList).find('li').each(function(){
				$(this).fadeOut('fast');
			});
			$(this).slideUp('fast');
			$(this).css({'margin-bottom':'0px'});
		}
	});
	
	if($(listItemChildrenList).is(':hidden')){
		$(listItemChildrenList).css({'margin-bottom':'10px'});
		$(listItemChildrenList).slideDown('fast', function(){
			$(listItemChildrenList).find('li').each(function(){
				$(this).fadeIn('fast');
			});
		});
	}
}

function loadDescription(descriptionURL){
	var image = $('#gallery-main').find('img');
	var descriptionWrapper, photoWidth, descriptionHeight;
	if($('#gallery-main').find('p.description').length == 0){
		photoWidth = $(image).width();
		$('div#gallery-image-and-description').css({'width':(photoWidth-20)+'px'});
		$('div#gallery-image-and-description').append('<p class="description">Loading description...</p>');
		descriptionWrapper = $('#gallery-main').find('p.description');
		$(descriptionWrapper).css({'width':(photoWidth-20)+'px'});
		descriptionHeight = $(descriptionWrapper).height();
		$(descriptionWrapper).css({'margin-top':'-'+(descriptionHeight+40)+'px'});
		$.get(descriptionURL, function(data){
			$(descriptionWrapper).html(data.length==0?'No description available.':data);
			$(descriptionWrapper).css({'width':(photoWidth-20)+'px'});
			descriptionHeight = $(descriptionWrapper).height();
			$(descriptionWrapper).css({'margin-top':'-'+(descriptionHeight+40)+'px'});
		});
	}
	descriptionWrapper = $('#gallery-main').find('p.description');	
	if($(descriptionWrapper).css('opacity')==0){
		$(descriptionWrapper).animate({opacity:'0.75'}, 'fast');
		$('a.description').attr('title','Hide description');
	}
	else{
		$(descriptionWrapper).animate({opacity:'0'}, 'fast');
		$('a.description').attr('title','Show description');
	}
}

function buildBlogMenu(){
	var container = $('ul.entries');
	$(container).find('span').each(function(){
		var showLink = document.createElement('a');
		$(showLink).attr('href','javascript:void(0)');
		if($(this).parent('li').contents().filter('ul').length>0)
			$(showLink).attr('class','with-submenus');
		else{
			$(showLink).attr('class','without-submenus');
		}
		$(this).wrap(showLink);
	});
	$(container).find('li').each(function(){
		if($(this).children('a').hasClass('current')){
			activateBlogMenu($(this));
		}
	});
	initBlogMenu();
	$(container).find('input').focus(function(){
		$(container).find('form').addClass('highlight');
	});
	$(container).find('input').blur(function(){
		$(container).find('form').removeClass('highlight');
	});
}

function activateBlogMenu(activeLiElement){
	var parentOfParent = $(activeLiElement).parent().parent();
	if($(parentOfParent).is('li') && $(parentOfParent).find('span').is(':first')){
		$(parentOfParent).find('span:first').parent('a').addClass('current');
		$(parentOfParent).find('span:first').parent('a').addClass('active');
		activateBlogMenu($(parentOfParent));
	}
}

function initBlogMenu(){
	var container = $('ul.entries');
	$(container).find('li').children('a').not('.current').each(function(){
		hideOnStart($(this).parent('li'));
	});
	$(container).find('span').parent('a.with-submenus').each(function(){
		$(this).click(function(){toggleBlogChildrens($(this).parent('li'))});
	});
}

function hideOnStart(startLiElement){
	$(startLiElement).find('li').each(function(){
		if($(this).is(':visible')){
			$(this).hide();
		}
	});
}

function toggleBlogChildrens(startLiElement){
	var container = $('ul.entries');
	if($(startLiElement).children('a').hasClass('active')){
		$(startLiElement).find('li').each(function(){
			$(this).hide();
			$(this).children('a').removeClass('active');
		});
		$(startLiElement).children('a').removeClass('active');
	}
	else{
		if($(startLiElement).children('a').hasClass('current')){
			highlightBlogMenu($(startLiElement));
		}
		$(startLiElement).find('li').each(function(){
				$(this).show();
		});
		$(startLiElement).find('li').children('ul').each(function(){
				$(this).parent('li').children('a').not('.current').parent('li').find('li').hide();
		});
		$(startLiElement).children('a').addClass('active');
	}
}

function highlightBlogMenu(activeLiElement){
	var childrenOfChildren = $(activeLiElement).children('ul').children('li');
	if($(childrenOfChildren).children('a').hasClass('current')){
		$(childrenOfChildren).children('a.current').addClass('active');
		highlightBlogMenu($(childrenOfChildren));
	}
}

function highlightBlogSearch(){
	$('input#keywords').focus(function(){
		$('form.search').addClass('highlight');
	});
	$('input#keywords').blur(function(){
		$('form.search').removeClass('highlight');
	});
}

function blogPermalink(link,title){
	if(window.permalink)
		permalink.unload();
	if(window.facebook)
		facebook.unload();
	permalink = new Boxy('', {title: 'Permalink', show: false});
	permalink.setContent('<div class="permalink"><p>Use follow link for share this post with everyone you want:<br /><span>(Single-click on link for select it)</span></p><input readonly="readonly" onclick="selectAll(this)" value="'+link+'" id="permalink-input" /><span class="hide">'+link+'</span></div>');
	permalink.center();
	permalink.show();
}

function blogShareOnFacebook(link){
	if(window.permalink)
		permalink.unload();
	if(window.facebook)
		facebook.unload();
	var url = 'http://www.facebook.com/sharer.php?u='+escape(link);
	loading = new Boxy('<img src="images/loading.gif" style="display:block; margin:0 auto" alt="Loading" title="Loading" /><h5>Please wait for loading...</h5>', {title: 'Loading'});
	facebook = new Boxy('<iframe src="'+url+'" width="660" height="480" scrolling="no"></iframe>', {title: 'Share on facebook', show: false, behaviours: function(r){
		$(r).load(function(){
			loading.unload();
		  facebook.center();
		  facebook.show();
		});
	}});
}

function selectAll(element){
	element.select();
}
