

// Function to show a menu -- sets the layer variable by the getElementById method
function showLayer(layerid) {
	var layer = document.getElementById(layerid);
	layer.style.visibility = "visible";
}
// Function to hide a menu -- turns "off" the layer
function hideLayer(layerid) {
	var layer = document.getElementById(layerid);
	layer.style.visibility = "hidden";
}

// trim whitespaces
String.prototype.trim = function(){
	return LTrim(RTrim(this));
};

// Removes leading whitespaces
function LTrim( value ) {
	var re = /\s*((\S+\s*)*)/;
	return value.replace(re, "$1");
}

// Removes ending whitespaces
function RTrim( value ) {
	var re = /((\s*\S+)*)\s*/;
	return value.replace(re, "$1");
}

// Pad string
String.prototype.pad = function(l, s, t){
	return s || (s = " "), (l -= this.length) > 0 ? (s = new Array(Math.ceil(l / s.length)
		+ 1).join(s)).substr(0, t = !t ? l : t == 1 ? 0 : Math.ceil(l / 2))
		+ this + s.substr(0, l - t) : this;
};

// check for valid email
String.prototype.isEmail = function() {
	var emailReg = /^[a-zA-Z_0-9\.\-]+\@([a-zA-Z_0-9\-]+\.)+[a-zA-Z_0-9\-]+$/;
	var emailReg = /^[a-zA-Z_0-9\.\-]+\@([a-zA-Z_0-9\-\.]+)$/;
	return emailReg.test(this.trim());
};

function clearSearch(el){
	if(el.value == "<breeder search>")
		el.value = "";
}

/**
 *
 */
function validDate(date){

	date = date.trim();
	re = /^\d{1,2}[-\/]\d{1,2}[-\/]\d{4}$/; 

	if (date == '' || !date.match(re))
		return false;

	var pos1=date.indexOf('-');
	var pos2=date.indexOf('-',pos1+1);

	if (pos1==-1 || pos2==-1){
		pos1=date.indexOf('/');
		pos2=date.indexOf('/',pos1+1);
		
		if (pos1==-1 || pos2==-1)
			return false;
	}
	
	var month=date.substring(0,pos1);
	var day=date.substring(pos1+1,pos2);
	var year=date.substring(pos2+1)

	if (month <= 0 || day <= 0 || day <= 0)
		return false;

	var today = new Date();
	var thismonth = today.getMonth() + 1;
	var thisday = today.getDate();
	var thisyear = today.getFullYear();

	if(year > thisyear)
		return false;
	else if(year == thisyear && month > thismonth)
		return false;
	else if(year == thisyear && month == thismonth && day > thisday)
		return false;

	return true;
}

/**
 *
 */
function getRadioValue(name, parentEl){
	if (parentEl !== undefined)
		var value = parentEl.find("input[name='" + name + "']:checked").val();
	else
		var value = $("input[name='" + name + "']:checked").val();

	if (value == undefined)
		return false;
	return value;
}

/**
 *
 */
function checkSameOwnerBreeder(parentEl){
	if (getRadioValue('sameOwnerBreeder', parentEl) == 'Y')
		$(".breederDisp").fadeOut();
	else
		$(".breederDisp").fadeIn();
}

function validateDogShowEntryForm(frm){

	var alertMsg = "Please complete/edit the following fields:\n";
	var msgLength = alertMsg.length;

	if (frm.asdrNumber.value.trim() == "")
		alertMsg += " - dog's ASDR Number\n";
	if (frm.dogName.value.trim() == "")
		alertMsg += " - dog's Registered Name\n";
	if (frm.birthDate.value.trim() == "")
		alertMsg += " - dog's Date of Birth\n";
	var sex = getRadioValue('sex', $(frm));
	if (sex == false)
		alertMsg += " - dog's Sex\n";

	if (frm.email.value.trim() == "")
		alertMsg += " - your Email Address\n";
	else if (!frm.email.value.isEmail())
		alertMsg += " - your Email Address must be valid\n";

	if (frm.ownerFirstName.value.trim() == "")
		alertMsg += " - Owner's First Name\n";
	if (frm.ownerLastName.value.trim() == "")
		alertMsg += " - Owner's Last Name\n";
	if (frm.ownerAddress1.value.trim() == "" && frm.ownerAddress2.value.trim() == "")
		alertMsg += " - Owner's Address\n";
	if (frm.ownerCity.value.trim() == "")
		alertMsg += " - Owner's City\n";
	if ($(frm.ownerState).val() == "")
		alertMsg += " - Owner's State\n";
	if (frm.ownerZip.value.trim() == "")
		alertMsg += " - Owner's Zip Code\n";

	var sameOwnerBreeder = getRadioValue('sameOwnerBreeder', $(frm));
	if (sameOwnerBreeder != 'Y') {
		if (frm.breederFirstName.value.trim() == "")
			alertMsg += " - Breeder's First Name\n";
		if (frm.breederLastName.value.trim() == "")
			alertMsg += " - Breeder's Last Name\n";
		if (frm.breederAddress1.value.trim() == "" && frm.breederAddress2.value.trim() == "")
			alertMsg += " - Breeder's Address\n";
		if (frm.breederCity.value.trim() == "")
			alertMsg += " - Breeder's City\n";
		if ($(frm.breederState).val() == "")
			alertMsg += " - Breeder's State\n";
		if (frm.breederZip.value.trim() == "")
			alertMsg += " - Breeder's Zip Code\n";
	}

	var regularClass = getRadioValue('regularClass', $(frm));
	if (regularClass == false)
		alertMsg += " - Regular Class\n";

	if (alertMsg.length != msgLength) {
		alert(alertMsg);
		return false;
	}

	return true;
}

function confirmCancelDogShowEntryForm(){
	if (confirm('Do you really want to cancel your order?'))
		window.location.href='?ACTION=cancel';
	return false;
}

/* ==================================================
            Document Ready Functions
================================================== */

$(document).ready(function(){

	if ($("form[name='dogShowEntryForm']").length) {
		var dogShowEntryForm = $("form[name='dogShowEntryForm']");

		// hide/show breeder inputs
		checkSameOwnerBreeder(dogShowEntryForm);
		$("input[name='sameOwnerBreeder']").click(function(){
			checkSameOwnerBreeder(dogShowEntryForm);
		});

		// validate form
		dogShowEntryForm.submit(function(){
			return validateDogShowEntryForm($(this)[0]);
		});
	}

	if ($("form[name='dogShowPaypalSubmit']").length) {
		$("form[name='dogShowPaypalSubmit']").submit();
	}

});

