// JavaScript Document

function validate(el, regex)  {

	var errors = [];
	var regex_alphanum = new RegExp(/\w/);
	var regex_ssn = new RegExp(/[0-9]{3}-[0-9]{2}-[0-9]{4}/);
	var regex_string = new RegExp(/^[A-Za-z\.\-\s]+$/);
	var regex_address = new RegExp(/^[0-9]{1,8}(\s|-)[A-Za-z]{1,4}/);
	var regex_po_box = new RegExp(/\b[P|p]*(OST|ost)*\.*\s*[O|o|0]*(ffice|FFICE)*\.*\s*[B|b][O|o|0][X|x]\b/);
	var regex_email = new RegExp(/^[\w\d\.\_\-]+\@[A-Za-z0-9\-\.]+\.(?:[A-Za-z]{2,4}|\d{1,3})$/);
	var regex_dob = new RegExp(/[0-9]{1,2}\/[0-9]{1,2}\/[0-9]{4}/);
	var regex_phone = new RegExp(/^(\()?([0-9]{3})(\)|-)?(|\s)([0-9]{3})(-|\s)?([0-9]{4})$/);
	var regex_zip = new RegExp(/^\s*\d{5}\s*$/);
	var regex_visa = new RegExp(/^4[0-9]{15}/);
	var regex_mastercard = new RegExp(/^5[1-5][0-9]{14}$/);
	var regex_amex = new RegExp(/^3[47][0-9]{13}$/);
	var regex_diners = new RegExp(/^3(?:0[0-5]|[68][0-9])[0-9]{11}$ /);
	var regex_discover = new RegExp(/^6(?:011|5[0-9]{2})[0-9]{12}$/);
	var regex_cc = new RegExp(/^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$/);
	var regex_cvv = new RegExp(/^\s*\d{3}\s*$/);
	var regex_card_expire = new RegExp(/^[0-9]{2}\/[0-9]{4}/);


	//if ($(el).attr('rel') == 'required')  {

		switch(regex)  {
			case 'alphanum':
				if (regex_alphanum.test($(el).val()) == false)  {
					errors.push($(el).val());
					$(el).css('background', '#FFCCCC');
				}  else  {
					$(el).css('background', '#FFFFFF');
				}
				break;

			case 'string':
				if (regex_string.test($(el).val()) == false)  {
					errors.push($(el).val());
					$(el).css('background', '#FFCCCC');
				}  else  {
					$(el).css('background', '#FFFFFF');
				}
				break;

			case 'address':
				if (regex_address.test($(el).val()) == false)  {
					errors.push($(el).val());
					$(el).css('background', '#FFCCCC');
				}  else  {
					$(el).css('background', '#FFFFFF');
				}
				break;

			case 'email':
				if (regex_email.test($(el).val()) == false)  {
					errors.push($(el).val());
					$(el).css('background', '#FFCCCC');
				}  else  {
					$(el).css('background', '#FFFFFF');
				}
				break;

			case 'phone':
				if (regex_phone.test($(el).val()) == false)  {
					errors.push($(el).val());
					$(el).css('background', '#FFCCCC');
				}  else  {
					$(el).css('background', '#FFFFFF');
				}
				break;

			case 'zip':
				if (regex_zip.test($(el).val()) == false)  {
					errors.push($(el).val());
					$(el).css('background', '#FFCCCC');
				}  else  {
					$(el).css('background', '#FFFFFF');
				}
				break;
		}
//	}

	if (errors.length > 0)  {
		return false;
	}  else  {
		return true;
	}

}

function update_tax()  {

	if ($('#bill_state').val() == 'TX' || $('#bill_state').val() == 'tx' || $('#bill_state').val() == 'Tx' || $('#bill_state').val() == 'tX')  {
		var tax_amount = parseFloat($('#h_cart_subtotal').val()) * 0.0675;
	}  else  {
		var tax_amount = 0;
	}

	$('#cart_tax_amount').html('$'+ number_format(tax_amount, 2, '.', ','));
	$('#x_tax').attr('value', number_format(tax_amount, 2, '.', ','));

	update_total();
}


function update_total()  {

	var subtotal = parseFloat($('#h_cart_subtotal').val());
	var freight = parseFloat($('#x_freight').val());
	var tax = parseFloat($('#x_tax').val());
	var order_amount = subtotal + freight + tax;

	$('#x_amount').attr('value', number_format(order_amount, 2, '.', ','));
	$('#cart_order_total').html('$'+ number_format(order_amount, 2, '.', ','));
	$('#wrap_order_text').html(number_format(order_amount, 2, '.', ','));

}

function number_format(a, b, c, d) {
	 a = Math.round(a * Math.pow(10, b)) / Math.pow(10, b);
	 var e = a + '';
	 var f = e.split('.');
	 var i;
	 var j;
	 var h;

	 if (!f[0]) {
	  f[0] = '0';
	 }
	 if (!f[1]) {
	  f[1] = '';
	 }
	 if (f[1].length < b) {
	 	g = f[1];
			for (i=f[1].length + 1; i <= b; i++) {
		    	g += '0';
	  		}
		f[1] = g;
	}
 	if(d != '' && f[0].length > 3) {
		h = f[0];
		f[0] = '';
		for(j = 3; j < h.length; j+=3) {
			i = h.slice(h.length - j, h.length - j + 3);
			f[0] = d + i +  f[0] + '';
		}
		j = h.substr(0, (h.length % 3 == 0) ? 3 : (h.length % 3));
		f[0] = j + f[0];
	}
	c = (b <= 0) ? '' : c;
return f[0] + c + f[1];
}


$('#gridLink').click(function()  {
	$(this).colorbox();
	return false;
});
