var galleries = [];

$(document).ready(function() {

	$('#edit-name').val('');

	$('#edit-name-wrapper label').text('Name：');
	$('#edit-mail-wrapper label').text('e-mail：');
	$('#edit-subject-wrapper label').text('Subject：');
	$('#edit-message-wrapper label').text('Message：');
	$('#edit-captcha-response-wrapper label').text('Captcha');
	$('#edit-captcha-response-wrapper .description').text('Enter the numbers and letters you see!');
	
	
	initHideLabels();
	
	initGalleries();
	
	activeLinks();
});
function activeLinks(){

	var location= "" + document.location.href;
	var locationparts = location.split('/');
	location = '';
	for(var i = 3; i < locationparts.length; i++){
		location += '/' + locationparts[i];
	}
	location = location.split('#')[0];
	
	$('a').each(function(){
		var href = "" + $(this).attr('href');
		if(href != ""){
			if (location == href.split('#')[0]){
				$(this).addClass("active");
			}
		}
	});
}

function initHideLabels(){
	$(".block-contact_form_blocks .form-item .form-text, .block-contact_form_blocks .form-item .form-textarea").each(function(){
		
		$(this).val("");
	
		$(this).focus(function(){
			hideLabelFor($(this));
		});
		
		$(this).blur(function(){
			showLabelFor($(this));
		});
		
		hideLabelFor($(this));
		showLabelFor($(this));
		
	});
	
	$("#comments .box #edit-captcha-response").val('Enter Code');
	$("#comments .box #edit-captcha-response").focus(function() {
		$(this).val('');
	})
	$("#comments .box #edit-captcha-response").blur(function() {
		if($(this).val()=="" || $(this).val()== null){
		$(this).val('Enter Code');
		}
	})
}

function hideLabelFor(jInput){
	jInput.parents(".form-item").find("label").hide();
}
function showLabelFor(jInput){
	if(jInput.val()=="" || $(this).val()== null){
		jInput.parents(".form-item").find("label").show();
	}
}

function isEmailValid (email){
	var emailReg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
	if (emailReg.test(email) == true){
		return true;
	} else {
		return false;
	}
}

function initGalleries (){

	makeGallery($("#block-views-Pages-block_4"),".views-row", 'main-gallery');
}

function makeGallery (jElement, itemSelector, galleryType) {
	//alert("makeGallery " + galleryType);
	// jElement: The gallery root $(element)
	// galleryType: The type of gallery - differnt galleies have different transitions / controls etc
	
	var count = 0;	
	var gallery = {};
	var galleryItems = jElement.find(itemSelector);
	
	var pagerHtml = "";
	var pagerNumbers = false;
	var pagerSteps = true;
	
	if (galleryItems.length > 1){

		gallery.index = galleries.length
		gallery.type = galleryType;
		gallery.pagerNumbers = false;
		gallery.pagerSteps = true;
		//gallery.transition = "slide";
		gallery.transition = "fade";
		gallery.items = galleryItems;
		gallery.current = 0;
		gallery.root = jElement;
		galleries.push(gallery);
		
		jElement.addClass("gallery");
		jElement.addClass("gallery-" + galleryType);
		jElement.addClass("gallery-" + galleries.length);
		jElement.attr("command", gallery.index);
		
		
		if (pagerSteps){
			pagerHtml += '<div class="pager-item pager-item-step pager-prev" command="prev" >&lt; prev</div>';
		}
	
		gallery.items.each(function(){
		
			count ++;
			//gallery.items.push($(this));
			
			$(this).addClass("gallery-item gallery-item-" + count);
			$(this).attr("command", count);
			
			// pagerHtml
			if (pagerNumbers){
				var classes = "pager-item pager-item-number ";
				classes += " pager-"+count + " ";
				if(count == 1){ classes += " pager-item-first ";}
				if(count == galleryItems.length){ classes += " pager-item-last ";}
				pagerHtml += "<div class=\""+classes+"\" command=\""+count+"\" >"+count+"</div>";
			}
			
		}); 
		
		if (pagerSteps){
			pagerHtml += '<div class="pager-item pager-item-step pager-next " command="next" >next &gt;</div>';
		}
		
		
		// add pager
		jElement.wrap('<div class="gallery-container" style="float:left; display:inline; position:relative;" />')
		pagerHtml = '<div class="pager pager-'+gallery.index+' pager-'+gallery.type+'" command="'+gallery.index+'">' + pagerHtml + '</div>';
		jElement.after(pagerHtml);
		gallery.pager= $(".pager-"+gallery.index);
		gallery.pageritems = gallery.pager.find(".pager-item");
		
		// pager events
		// page by numbers
		gallery.pageritems.filter(".pager-item-number").click(function(){
			
			var gallery = toGallery($(this).parents(".pager").attr("command"))
			var target = gallery.items.filter("gallery-item-"+$(this).attr("command"));
			
			showImage(gallery, target, 500);	
		});
		// page by steps
		gallery.pageritems.filter(".pager-item-step").click(function(){
			var galleryIndex = $(this).parents(".pager").attr("command");
			if ($(this).attr("command") == "prev"){
				prevImage(galleryIndex, 500);
			} else {
				nextImage(galleryIndex, 500);
			}	
		});
		
		gallery.itemcount = count;
		gallery.timer = setTimeout( "nextImage("+gallery.index+")", 8000 );
		
		gallery.items.css({'z-index': 50, 'position': 'absolute', 'left':0});
		
		gallery.items.filter(':first').addClass("active");
		gallery.items.filter(':first').css({'z-index': 51});
		
		return gallery;
	}
}

function getCurrentImage(gallery){
	gallery = toGallery(gallery);
	
	var current = $(gallery.items.get(gallery.current));
	
	if(!current || current.length == 0){
		current = gallery.items.filter(":first");
	}
	return current;
}

function nextImage(gallery, speed){
	gallery = toGallery(gallery);
	
	var current = getCurrentImage(gallery);
		
	var targetIndex = gallery.current + 1;
	if(targetIndex >= gallery.items.length){
		targetIndex = 0;
	}
	
	var target = $(gallery.items.get(targetIndex));
	
	if(!target || target.length == 0){
		target = gallery.items.filter(":first");
	}
	
	showImage(gallery, target, speed, "right");	
	gallery.current = targetIndex;
}

function prevImage(gallery, speed){
	gallery = toGallery(gallery);
	
	var current = getCurrentImage(gallery);
		
	var targetIndex = gallery.current - 1;
	if(targetIndex < 0){
		targetIndex = gallery.items.length - 1;
	}
	
	var target = $(gallery.items.get(targetIndex));
	
	if(!target || target.length == 0){
		target = gallery.items.filter(":last");
	}

	showImage(gallery, target, speed, "left");
	gallery.current = targetIndex;	
}

function showImage(gallery, target, speed, direction){
	gallery = toGallery(gallery);
	
	if(!speed || speed == "undefined"){
		speed= 1000;
	}

	var current = getCurrentImage(gallery);

	gallery.items.removeClass("active");
	target.addClass("active");
	
	if (gallery.transition == "fade"){
	
		gallery.items.stop(true, true);
		gallery.items.css({'z-index': 50});
		
		current.css({'z-index': 51});
		
		target.css({'z-index': 52, 'opacity': 0});
		target.animate({'opacity': 1}, speed);
	}
	if (gallery.transition == "slide"){
		gallery.items.stop(true, true);
		
		var startX = 960;
		var finishX = -startX;
		if(direction == "left"){
			startX = -startX;
			finishX = -finishX;
		}
			
		gallery.items.css({'z-index': 50, 'position': 'absolute', 'left': startX});
		
		current.css({'z-index': 51, 'left': 0, 'opacity': 1});
		current.animate({'left': finishX, 'opacity': 0}, speed);
		
		target.css({'z-index': 52, 'left': startX, 'opacity': 0});
		target.animate({'left': 0, 'opacity': 1}, speed);
	}

	clearTimeout(gallery.timer);
	gallery.timer = setTimeout( "nextImage("+gallery.index+")", 8000 );
	gallery.current = parseInt(target.attr('command'))-1;
}

function toGallery(gallery){
	//allows function to be passed either the gallery (default) or the galler index (from timeouts)
	if (typeof gallery != "object"){
		return  galleries[gallery];
	}
	return gallery;
}
