//
// Custom JavaScript functions for NYCB.
// - Requires JQuery 1.2.6+
//
// Author: Chris Hicks
// 
// 2009 Interactive Media Associates

/*
 * Set a custom jQuery variable to use to prevent conflicts with other frameworks
 */
 var jq = jQuery.noConflict();

/*
 * Safe Logging for people not using firebug
 */
function LOG(message) {
	if(typeof console == 'object') {
		console.log(message);
	}
} 
/*
 * Prepends a warning or error message to the element supplied.
 */
function showWarning(jQElement, message) {
	jQElement.prepend('<div class="alert" style="display:none"><p>' + message + '</p></div>');
	
	jQElement.find('.alert:first').show("normal");
	
	//alert("total windows.. " + jQElement.find('.alert').length);
	
	if(jQElement.find('.alert').length > 1) {
		jQElement.find('.alert').eq(1).fadeOut(3000);
	}
}

function clearWarnings(jQElement) {
	jQElement.find('.alert').remove();
}

function isQuantitySelected(jQElement) {
	var elements = jQElement.find('select[name$="quantity"]');
	var qtyChosen = false;
	elements.each(function() {
		if(parseInt(jq(this).val()) > 0)
			qtyChosen = true;
	});
	
	return qtyChosen;
}

function appendToBreadCrumbs(text) {
	jq('#BreadCrumb').append(text);
}

function validateAddressForm(fieldPrefix) {
	var isValid = true;
	
	jq('.req').remove();
	
	var country =  jq('select[name="'+ fieldPrefix +'.country"]');
	LOG("country:" + country.val());
	
	if(country.val() === "USA") {
		var numberRegEx = new RegExp(/^\d{3}-\d{3}-\d{4}$/);
		//Check phone number
		var phoneNumber = jq('input[name="'+ fieldPrefix +'.phoneNumber"]');
		LOG('phoneNumber:' + phoneNumber.val());
		
		if(!phoneNumber.val().match(numberRegEx)) {
			LOG("invalid phone number");
			phoneNumber.after('<br /><span class="req">Invalid Phone number, use format: XXX-XXX-XXXX</span>');
			isValid = false;
		}
	}
	
	
	return isValid;
}

function validateRegistrationForm(fieldPrefix) {
	var isValid = true;
	
	jq('.req').remove();
	var numberRegEx = new RegExp(/^\d{3}-\d{3}-\d{4}$/);
	var country =  jq('select[name="'+ fieldPrefix +'country"]');
	var additionalCountry =  jq('select[name="'+ fieldPrefix +'additionalCountry"]');
	LOG("country:" + country.val());
	
	if(country.val() === "USA") {
		
		//Check home phone number
		var homePhone = jq('input[name="'+ fieldPrefix +'homePhone"]');
		LOG('homePhone:' + homePhone.val());
		
		if(homePhone.val().length > 0 && !homePhone.val().match(numberRegEx)) {
			LOG("invalid phone number");
			homePhone.after('<br /><span class="req">Invalid Phone number, use format: XXX-XXX-XXXX</span>');
			isValid = false;
		}
		
		//Check cell phone number
		var cellPhone = jq('input[name="'+ fieldPrefix +'cellPhone"]');
		LOG('homePhone:' + cellPhone.val());
		
		if(cellPhone.val().length > 0 && !cellPhone.val().match(numberRegEx)) {
			LOG("invalid phone number");
			cellPhone.after('<br /><span class="req">Invalid Phone number, use format: XXX-XXX-XXXX</span>');
			isValid = false;
		}
		
		//Check business phone number
		var businessPhone = jq('input[name="'+ fieldPrefix +'businessPhone"]');
		LOG('businessPhone:' + businessPhone.val());
		
		if(businessPhone.val().length > 0 && !businessPhone.val().match(numberRegEx)) {
			LOG("invalid phone number");
			businessPhone.after('<br /><span class="req">Invalid Phone number, use format: XXX-XXX-XXXX</span>');
			isValid = false;
		}
	}
	
	if(additionalCountry.val() === "USA") {
		//Check additional address phone number
		var additionalPhoneNumber = jq('input[name="'+ fieldPrefix +'additionalPhoneNumber"]');
		LOG('additionalPhoneNumber:' + additionalPhoneNumber.val());
		
		if(additionalPhoneNumber.val().length > 0 && !additionalPhoneNumber.val().match(numberRegEx)) {
			LOG("invalid phone number");
			additionalPhoneNumber.after('<br /><span class="req">Invalid Phone number, use format: XXX-XXX-XXXX</span>');
			isValid = false;
		}
	}
	
	return isValid;
}