// JavaScript Document

var woms = new Array(); //CREATE ARRAY OF FUNCTIONS TO LAUNCH ONLOAD


/* Onload Manager */
function womOn()
{
  window.onload = womGo;
}
function womGo()
{
  for(var i = 0;i < woms.length;i++)
    eval(woms[i]);
}
function womAdd(func)
{
  woms[woms.length] = func;
}
/* ------------- */

function externalLinks() 
{
	$("a[rel='external']").attr("target", "_blank");
}


function rightNavigation() 
{
/*	
	$("#rightcol .nav").accordion({
		event: "click",
		header: "a.head",
		active: "#current",
		selectedClass: "active",
		clearStyle: true,
		animated: "slide",
		alwaysOpen: false
	});
	
	/* 
	
	   Using the click event for the accordion above renders all 
	   child anchors inoperable for some reason. Joy. So this snippet bellow will 
	   reactivate that link and override the click. It does so by picking out the value of 
	   the href attribute, and when the anchor is clicked it will redirect.
	   
	   How primative.
	   
	
	
	$("#rightcol .nav a[class!='head']").click(function() {
		location.href = $(this).attr("href")
	});
*/
}

function pagination () 
{ 

	$("#sortby").change( function() 
		{
			var sortby_value = $(this).val();
			if(sortby_value !== "-1") 
			{
				//alert(sortby_value);
				//alert($("#id").val());
				
				if($("#id").val() !='' && $("#id").val() !='priceasc' && $("#id").val() !='pricedesc' )
				{
					location.href =  $("#href").val()+$("#searchbypage").val()+'/'+$("#id").val()+'/'+sortby_value+'/';
				}
				else
				{
						alert($("#href").val()+$("#searchbypage").val()+'/'+sortby_value+'/');
					//location.href = sortby_value;
					location.href = $("#href").val()+$("#searchbypage").val()+'/'+sortby_value+'/';
				}
			}
		}
	);

}

function joinMailingList() 
{ 

	var default_text = "Enter email address...";
	var default_colour = "#d6d6d6";
	var active_colour = "#5d5d5d";
	
	$("#rightcol .mailinglist #email").focus( function() 
		{ 
		if($(this).val() == default_text) {
			$(this).select();
		}
		$(this).css("color", active_colour);
		}
	);
	
	$("#rightcol .mailinglist #email").blur( function() 
		{
			var this_value = $(this).val();
			if(this_value == default_text) {
				$(this).css("color", default_colour);
			} else {
				$(this).css("color", active_colour);
			}
		}
	);

}

function validator () 
{	
	$("form").submit(function() 
		{
								  
			var fields = $(this).find(".mand");
			var invalid_count = 0;
			var formoutput = $(this).find(".formoutput");
			var invalid_email = false;
			var show_invalid_email_warning = true;
			var cmsg = "The highlighted email address you provided does not seem to be correct. Would you like to continue anyway?";
			
			if($(formoutput).css("display") !== "none") {
				if(formoutput.length > 0) $(formoutput).fadeOut(500);
			}
			
			for(i=0; i<fields.length; i++) {
				$(fields[i]).css("border", "1px solid #999");
			}
			
			for(i=0; i<fields.length; i++) {
				
				switch(fields[i].type) {
					case "select-one":
					case "select-multiple":
						if(fields[i].selectedIndex == 0) {
							$(fields[i]).css("border", "1px solid #ff0000");
							invalid_count++;
						}
						break;
					case "text":
					case "textarea":
					case "password":
						if(!fields[i].value) {
							$(fields[i]).css("border", "1px solid #ff0000");
							invalid_count++;
						} else {
							var name = $(fields[i]).attr("name");
							if(name.indexOf("email") >= 0) {
								var emailRegxp = /^([\w]+)(.[\w]+)*@([\w]+)(.[\w]{2,4}){1,2}$/;
								if(emailRegxp.test(fields[i].value) == false) {
									invalid_email = true;
									if(show_invalid_email_warning) {
										$(fields[i]).css("border", "1px solid #ff0000");
									}
								}
							}
						}
						break;
				}
				
			}
			
			if( !invalid_count ) {
				
				if(invalid_email && show_invalid_email_warning) {
					if(!confirm(cmsg)) { 
						return false;
					}
				}
				return true;
				
			} else {
				
				if(formoutput.length > 0) {
					
					$(formoutput).css("font-size", "0.9em");
					$(formoutput).css("color", "#ff0000");
					$(formoutput).css("font-weight", "bold");
					$(formoutput).text("Please ensure the highlighted fields are complete before proceeding.");
					$(formoutput).fadeIn(500);
					
				} else {
					
					alert("Please ensure the highlighted fields are complete before proceeding.");
					
				}
				
				return false;
				
			}
		
		}
	);
	
}

function checkout () 
{
	
	var copyFields = Array("salutation", "name", "addr1", "addr2", "addr3", "addr4", "postcode", "tel");
	
	$("#copy_from_delivery").click(function()
		{
			for(var i = 0; i < copyFields.length; i++) { 
			
				var billing_field = $("#cust_b_"+copyFields[i]);
				var delivery_field = $("#cust_d_"+copyFields[i]);
				
				if($(this)[0].checked) { 
					
					switch(billing_field[0].type) {
						case "select-one":
						case "select-multiple":
							billing_field[0].selectedIndex = delivery_field[0].selectedIndex;
							break;
						default:
							$(billing_field).val($(delivery_field).val());
					}
					
				} else {
					
					switch(billing_field[0].type) {
						case "select-one":
						case "select-multiple":
							billing_field[0].selectedIndex = 0;
							break;
						default:
							$(billing_field).val("");
					}
					
				}
			
			}
		}
	);
	
	$("#checkout input").blur(function()
		{
			if($("#copy_from_delivery")[0].checked) { 
				var input_name = $(this).attr("name");
				if(input_name.indexOf("_d_") >= 0) { 
					var billing_equiv = input_name.replace("_d_", "_b_");
					switch($(this)[0].type) {
						case "select-one":
						case "select-multiple":
							$("#"+billing_equiv)[0].selectedIndex = 0;
							break;
						default:
							$("#"+billing_equiv).val($(this).val());
					}
				} else if(input_name.indexOf("_b_") >= 0) {
					var delivery_equiv = input_name.replace("_b_", "_d_");
					switch($(this)[0].type) {
						case "select-one":
						case "select-multiple":
							if($("#"+delivery_equiv)[0].selectedIndex !== $(this)[0].selectedIndex) {
								$("#copy_from_delivery")[0].checked = false;
							}
							break;
						default:
							if($("#"+delivery_equiv).val() !== $(this).val()) {
								$("#copy_from_delivery")[0].checked = false;
							}
					}
				}
			}
		}
	);
	
	$("input[name='new_email']").change(
		function()
		{
			var newEmailField = $(this);
			$(newEmailField).css("background", "none");
			$.get("libs/includes/ajax.php", 
				  {
					  action: "checkEmailAvailability", 
					  email: $(this).val() 
				  },
				  function(data)
				  {
					  if(data == 1) { 
						$(newEmailField).css("background", "url('images/ico_tick.gif') no-repeat right");
					  } else {
						$(newEmailField).css("background", "url('images/ico_cross.gif') no-repeat right");
					  }
				  });
		}
	);
	
}

function in_array(value)
{
	var i;
	for (i=0; i < this.length; i++) {
		// Matches identical (===), not just similar (==).
		if (this[i] === value) {
			return true;
		}
	}
	return false;
}


$(document).ready(function()
{
	joinMailingList();
	rightNavigation();
	pagination();
	externalLinks();
	validator();
	checkout();
});