$(document).ready(function() {
     if (document.all) {
        $(".nav li").fixHover();
	 }
	
	hash_listener();
});

$(window).load(function() {
	position_thumbs();

	if (current_page != 'inquiry' && current_page != 'share' && current_page != '' && current_page != 'cart') {
		$('#thumbs').fadeIn('slow');
	}
});

function position_thumbs() {
	var text_height = $('#description_text').height();
		
	if ($(window).height()<650) {
		var new_top = parseInt(text_height+200);
		if (new_top < 350)
			new_top = 350;
		$('#thumbs').css('top', new_top+'px');		
	} else {
		$('#thumbs').css('top', 526+'px');		
	}
	
}

var current_page = 'description';
var current_image = 1;
var current_left_thumb = 1;
var current_hash = '';
var last_hash = '';

function zoom_image(r) {
	var w = screen.availWidth;
	var h = screen.availHeight-100;	
	if (w>800) {
		w -= 100;
	}
	
	if (h>600) {
		h -= 100;
	}
	
	if (h<w) {
		w = h;
	}
	
	window.open ("/helpers/zoom/"+r+"/"+w+"/"+h,"wright_zoom","status=1,toolbar=0,location=0,menubar=0,directories=0,resizable=1,scrollbars=0,left=50,top=25,height="+h+",width="+w);
}

function switch_image(i) {
	$('.caption').hide();
	$('#caption'+i).show();

	$('#thumb'+current_image).removeClass('active');
	var new_html = '';
	current_image = i;
/* 	set_hash(); */
	
	$('#thumb'+i).addClass('active');
	
	$('#photo').html('');
	
	if (all_images[i-1].zoomable) {
		new_html += '<a href="#" onclick="zoom_image(\''+all_images[i-1].image.replace(/.jpg/g, '')+'\'); return false">';
	}

	new_html += '<img src="/helpers/resize_original/520/'+all_images[i-1].height+'/'+all_images[i-1].image+'" width="520" height="'+all_images[i-1].height+'" style="visibility: hidden" onload="$(this).css(\'display\',\'none\').css(\'visibility\',\'visible\').fadeIn(\'fast\');">';

	if (all_images[i-1].zoomable) {
		new_html += '<img src="/assets/images/core/zoom.png" class="zoom_button" width="15" height="14" /></a>';
	}

	$('#photo').html(new_html);

}

function thumb_scroll_left() {
	if (current_left_thumb > 1) {
		$('#thumb' + (current_left_thumb-1)).show();		
		$('#thumb' + parseInt(current_left_thumb+2)).hide();		
		 if (current_left_thumb + 3 > all_images.length) {
			$('#thumb_scroll_right').show();
		}
		current_left_thumb--;
		$('#thumb'+parseInt(current_left_thumb+2)).addClass('last');
	}
	
	if (current_left_thumb==1) {
		$('#thumb_scroll_left .thumb_scroll_left').html('');
	}
/* 	set_hash(); */
}

function thumb_scroll_right() {
     $('#thumb'+parseInt(current_left_thumb+2)).removeClass('last');
	
	 if (current_left_thumb+3<=all_images.length) {
		$('#thumb'+current_left_thumb).hide();
		$('#thumb'+parseInt(current_left_thumb+3)).show().addClass('last');
	}
	 if (current_left_thumb+3==all_images.length) {
		$('#thumb_scroll_right').hide();
	}
	
	current_left_thumb++;
		
	if (current_left_thumb>1) {
		$('#thumb_scroll_left .thumb_scroll_left').html('<a href="#" onclick="this.blur(); thumb_scroll_left(); return false">scroll left</a>');
	}
/* 	set_hash(); */
}

function cart_add() {
	$.post("/ajax/cart_add", { fd_key: fd_key }, function() {	});
}

function set_page(p) {
	$('#'+current_page+'_link').removeClass('active');
	current_page = p;
	$('#'+current_page+'_link').addClass('active');
/* 	set_hash(); */
	
	if (p == 'description') {
		$('#cart_text').hide();
		$('#share_text').hide();
		$('#inquiry_text').hide();
		$('#condition_text').hide();
		$('#description_text').show();
		$("#wrapper #photo").show();
		$("#thumbs").show();
	}
	
	if (p == 'cart') {
	
		if (!in_cart) {
			cart_add();
			$('#nav_cart').fadeIn('slow');
			$('#cart_text').html('<p>This item has been added to your cart.<br><a href="/cart/">View your cart</a> to edit or check out.</p>');
		} else {
			$('#cart_text').html('<p>This item is currently in your cart.<br><a href="/cart/">View your cart</a> to edit or check out.</p>');
		}
	
		$('#cart_text').show();
		$('#share_text').hide();
		$('#inquiry_text').hide();
		$('#condition_text').hide();
		$('#description_text').hide();
		$("#wrapper #photo").show();
		$("#thumbs").show();
	}

	if (p == 'condition') {
		$('#cart_text').hide();
		$('#share_text').hide();
		$('#inquiry_text').hide();
		$('#condition_text').show();
		$('#description_text').hide();
		$("#wrapper #photo").show();
		$("#thumbs").show();
	}
	
	if (p == 'inquiry') {
		$('#cart_text').hide();
		$('#share_text').hide();
		$('#inquiry_text').show();
		$('#condition_text').hide();
		$('#description_text').hide();
		$("#wrapper #photo").hide();
		$("#thumbs").hide();
	}
	
	if (p == 'share') {
		the_link = window.location.href.substring(0,window.location.href.length-window.location.hash.length);
		$('#cart_text').hide();
		$('#share_text').html($('#share_text').html().replace(/\*\*link\*\*/, the_link));
		$('#share_text').show();
		$('#inquiry_text').hide();
		$('#condition_text').hide();
		$('#description_text').hide();
		$("#wrapper #photo").hide();
		$("#thumbs").hide();
	}
}

function set_hash() {
	window.location.hash = '#'+current_page+'/'+current_left_thumb+'/'+current_image;	
	current_hash = last_hash = window.location.hash;
}

function hash_listener() {
	current_hash = window.location.hash;
	if (last_hash != current_hash) {
		check_hash();
		last_hash = current_hash;
	}
	
	position_thumbs(); //piggy back
	
	setTimeout('hash_listener()', 500);
}

function check_hash() {
	var hash_segments = current_hash.substr(1).split('/');
	if (hash_segments.length==3) {
		set_page(hash_segments[0]);
		while (hash_segments[1]>current_left_thumb) {
			thumb_scroll_right();			
		}
		while (hash_segments[1]<current_left_thumb) {
			thumb_scroll_left();			
		}
		switch_image(hash_segments[2]);
	} else {
		set_page('description');
		switch_image(1);
		for(i=0;i<10;i++) {
			thumb_scroll_left();
		}
/* 		set_hash(); */
	}
}


function inquiry_submit() {
	var inquiry_name = $('#inquiry_name').val();
	var inquiry_email = $('#inquiry_email').val();
	var inquiry_subject = $('#inquiry_subject').val();
	var inquiry_message = $('#inquiry_message').val();

	var inquiry_name_old_value = $('#inquiry_name').get(0).old_value;
	var inquiry_email_old_value = $('#inquiry_email').get(0).old_value;
	var inquiry_message_old_value = $('#inquiry_message').get(0).old_value;
	
	var errors = [];
	
	if (!inquiry_name_old_value || inquiry_name_old_value == inquiry_name) {
		$('#inquiry_name').addClass('error');
		errors.push('inquiry_name');
	} else {
		$('#inquiry_name').removeClass('error');		
	}

	if (!inquiry_email_old_value || inquiry_email_old_value == inquiry_email) {
		errors.push('inquiry_email');
		$('#inquiry_email').addClass('error');
	} else {
		$('#inquiry_email').removeClass('error');
		var emailFilter=/^.+@.+\..{2,3}$/;
		if (!(emailFilter.test(inquiry_email))) {
			errors.push('inquiry_email');
			$('#inquiry_email').addClass('error');
		}
	}
	
	if (!inquiry_message_old_value || inquiry_message_old_value == inquiry_message) {
		errors.push('inquiry_message');
		$('#inquiry_message').addClass('error');
	} else {
		$('#inquiry_message').removeClass('error');
	}
	
	if (inquiry_subject == '') {
		errors.push('inquiry_subject');
		$('#inquiry_subject').addClass('error');
		
	}
	
	if (errors.length > 0) {
		$('#inquiry_error_intro').show();
	} else {
		$('#inquiry_error_intro').hide();
		$('#inquiry_form').hide();
		$('#inquiry_working').show();
		$("#inquiry_instructions").hide();
		
		$.post("/ajax/submit_inquiry", { name: inquiry_name, email: inquiry_email, subject: inquiry_subject, message: inquiry_message }, function() {
			$('#inquiry_working').hide();
			$('#inquiry_done').show();
			setTimeout('restore_inquiry()', 5000);
		});
	}

}

function restore_inquiry() {
	$('#inquiry_error_intro').hide();
	$('#inquiry_form').show();
	$('#inquiry_working').hide();
	$("#inquiry_instructions").show();
	$('#inquiry_done').hide();
}

function share_submit() {
	var share_from_name = $('#share_from_name').val();
	var share_from_email = $('#share_from_email').val();
	var share_to_email = $('#share_to_email').val();
	var share_subject = $('#share_subject').val();
	var share_message = $('#share_message').val();

	var share_from_name_old_value = $('#share_from_name').get(0).old_value;
	var share_from_email_old_value = $('#share_from_email').get(0).old_value;
	var share_to_email_old_value = $('#share_to_email').get(0).old_value;
	var share_message_old_value = $('#share_message').get(0).old_value;
	
	var errors = [];

	if (!share_from_name_old_value || share_from_name_old_value == share_from_name) {
		$('#share_from_name').addClass('error');
		errors.push('share_from_name');
	} else {
		$('#share_from_name').removeClass('error');		
	}
	
	if (!share_from_email_old_value || share_from_email_old_value == share_from_email) {
		errors.push('share_from_email');
		$('#share_from_email').addClass('error');
	} else {
		$('#share_from_email').removeClass('error');
		var emailFilter=/^.+@.+\..{2,3}$/;
		if (!(emailFilter.test(share_from_email))) {
			errors.push('share_from_email');
			$('#share_from_email').addClass('error');
		}
	}
	
	if (!share_to_email_old_value || share_to_email_old_value == share_to_email) {
		errors.push('share_to_email');
		$('#share_to_email').addClass('error');
	} else {
		$('#share_to_email').removeClass('error');
		var emailFilter=/^.+@.+\..{2,3}$/;
		if (!(emailFilter.test(share_to_email))) {
			errors.push('share_to_email');
			$('#share_to_email').addClass('error');
		}
	}
	
	if (share_subject == '') {
		errors.push('share_subject');
		$('#share_subject').addClass('error');
		
	}

	if (share_message == '') {
		errors.push('share_message');
		$('#share_message').addClass('error');
		
	}
	
	if (errors.length > 0) {
		$('#share_error_intro').show();
	} else {
		$('#share_error_intro').hide();
		$('#share_form').hide();
		$('#share_working').show();
		$("#share_instructions").hide();
		
		$.post("/ajax/submit_share", { from_name: share_from_name, from_email: share_from_email, to_name: '', to_email: share_to_email, subject: share_subject, message: share_message }, function() {
			$('#share_working').hide();
			$('#share_done').show();
			setTimeout('restore_share()', 5000);
		});
	}

}

function restore_share() {
	$('#share_error_intro').hide();
	$('#share_form').show();
	$('#share_working').hide();
	$("#share_instructions").show();
	$('#share_done').hide();
}