var obj_make_model=Array();

jQuery(document).ready(function(){

	jQuery.support.cors = true; 
	
	jQuery('#noHouse').click(function(){
		jQuery('#movinghouse_div').hide();
	});
	
	jQuery('#yesHouse').click(function(){
		jQuery('#movinghouse_div').show();
	});
	
	jQuery("#dphone").mask("(999) 999-9999");
	
	jQuery ('#dphone').bind('change', function () {
		jQuery('#dphone').val(jQuery(this).val());
	});
	
	jQuery('#dphone').bind('blur', function(){
		validateDphone(document.getElementById("dphone"));
	});
	
	jQuery('#email').bind('blur', function(){
		validateEmail(document.getElementById("email"));
	});
	
	jQuery('#veh_year').bind('change', function(){
		onChangeYear('','quoteform-step-2')
	});
	
	jQuery('#make').bind('change', function(){
		onChangeMake('','quoteform-step-2')
	});

	buildYearMenu();
	
	jQuery.ajax({
        type: "POST",
        url: 'http://www.aswd.com/util/make_model_json.php',
        async: false,
    	error:function(xhr, status, errorThrown) {
                alert(errorThrown+'\n'+status+'\n'+xhr.statusText);
        },
        success: function(response){
            eval(response);
        }
    });
    
    jQuery('#submit_button').click(function(){
    	jQuery('#quoteform-step-2').submit();
    });
    
    jQuery('#quoteform-step-2').submit(function(){
    	return validateFields();
    });
    
    jQuery("#tabs").tabs({
    });
    
    regex1 = new RegExp(/international-car-shipping\.php$/);
    if(regex1.exec(location.href)!=null){
    	jQuery("#tabs").tabs('select', 1);
    }
    
    jQuery("#shipdate").datepicker({	
		showCurrentAtPos: 0,
		buttonText: 'Click here to select date',
		minDate : new Date(),
		defaultDate: "+3d",
		onSelect: function(dateText, inst) {
			var dateNow = new Date();
			dateNow.setDate(dateNow.getDate()+2);
			var date2 = dateNow.getTime();
			var dateNow = new Date();
			dateNow.setDate(dateNow.getDate()+60);
			var date60 = dateNow.getTime();
			var dateNow = new Date();
			var selectedTime = new Date();
			selectedTime.setDate(parseInt(inst.selectedDay));
			selectedTime.setMonth(parseInt(inst.selectedMonth));
			selectedTime.setFullYear(parseInt(inst.selectedYear));
			/*if (date2 >= selectedTime.getTime() ) {
				less2Days(); 
			} else {
				if ( date60 < selectedTime.getTime()) {
					more60Days();
				}
			}*/
			jQuery('#ishipdate').val(jQuery('#shipdate').val());
			return;
		}
	});
	
	jQuery("#ishipdate").datepicker({	
		showCurrentAtPos: 0,
		buttonText: 'Click here to select date',
		minDate : new Date(),
		defaultDate: "+3d",
		onSelect: function(dateText, inst) {
			var dateNow = new Date();
			dateNow.setDate(dateNow.getDate()+2);
			var date2 = dateNow.getTime();
			var dateNow = new Date();
			dateNow.setDate(dateNow.getDate()+60);
			var date60 = dateNow.getTime();
			var dateNow = new Date();
			var selectedTime = new Date();
			selectedTime.setDate(parseInt(inst.selectedDay));
			selectedTime.setMonth(parseInt(inst.selectedMonth));
			selectedTime.setFullYear(parseInt(inst.selectedYear));
			/*if (date2 >= selectedTime.getTime() ) {
				less2Days(); 
			} else {
				if ( date60 < selectedTime.getTime()) {
					more60Days();
				}
			}*/
			jQuery('#shipdate').val(jQuery('#shipdate').val());
			return;
		}
	});
	
	jQuery('#QuoteForm').submit(function(){
		var errors = '';
		if(!jQuery('#fzip').val()){
			errors+="You must enter a valid origin\n";
		}
		if(!jQuery('#tzip').val()){
			errors+="You must enter a valid destination\n";
		}
		if(errors!=''){
			alert(errors);
			return false;	
		} else {
			return true;
		}
	});

	jQuery('#iQuoteForm').submit(function(){
		var errors = '';
		if(!jQuery('#fzip').val()){
			errors+="You must enter a valid origin.\n";
		}
		if(jQuery('#iCountry').val() == "None" || jQuery('#iCountry').val() == "Select"){
			errors+="You must select a destination country.\n";
		}
		if(jQuery('#port').val() == "None"){
		  	errors+="You must select a port of departure\n";
		}
		if(errors!=''){
			alert(errors);
			return false;
		} else {
			return true;
		}
	});
	
	
	jQuery('#moving_form').submit(function(){
		if(jQuery('#rooms').val()==''){
			alert("You must specify how many bedrooms in your home.");
			return false;
		} else {
			return true;
		}
	});
	
	jQuery('form[name="quoteform-step-2"]').submit(function(){
		if(jQuery('[name="movingHouse"]').val=='Yes' && !jQuery('#rooms').val()){
			alert("You must select a number of bedrooms to receive a house moving quote.");
			return false;
		}
		return true;
	});
	
	jQuery('#tcityorzip').bind('keydown', function(e){
		if(e.keyCode == '13'){
			jQuery('#QuoteForm').submit();
		}
	});	
	
	$('[src="images/moving-btn.png"]').css('cursor', 'pointer');
});

function more60Days() {
	return;
}

function less2Days() {
	alert('I see you want to move within 48 hours, please call us at 1-888-506-0565 to make special arrangements.');
	jQuery('#shipdate').val(date_0);
	jQuery('#shipdate2').val(date_0);
	jQuery('#ti_date').val(date_0);
	return;
}
var today = new Date();
var date_0 = (today.getMonth()+1)+'/'+(today.getDate()+3)+'/'+today.getFullYear();
var lastPhone = "";
var lastPhone2 = "";
var phoneHasErrors = false;

var call_us = "\nFeel free to contact one of our representatives at 1-888-506-0565.";

function checkPhoneCallback(data, fieldname){
	el = jQuery('#' + fieldname);
	if (data != 1){
		phoneHasErrors = false;
		el.css('border', '1px solid #d2d2d2');
	} else {
		phoneHasErrors = true;
		el.css('border', '1px solid #ff0000');
		alert("You have entered an invalid phone number." + call_us);
		el.focus();
	}
}

function phoneIsValid(phoneObjectToCheck){
    var textToTest = phoneObjectToCheck.value;
    var pattern = /([1](-|\.|\|\s){0,1})?(-|\.|\(|\|\s){0,1}(\d{3})(-|\.|\)|\s){0,2}(\d{3})(-|\.|\s){0,2}(\d{4})((-|\.|\s){0,2}(x|ext|extension)((-|\.|\s){0,2})?(\d{0,12}))?/;
    var result = textToTest.match(pattern);
    if (result != null) {
        if (result[9]) {
            returnString = '(' + result[4] + ') ' + result[6] + '-' + result[8] + result[9];
        } else {
            returnString = '(' + result[4] + ') ' + result[6] + '-' + result[8];
        }
        return returnString;
    }
    return 0;
}

function checkPhone(element){
	num = element.value;
	name = element.id;
	var url = 'http://a1autotransport.com/quoteforms/util/checkPhoneJQ.php?phone=' + escape(trim(num)) + '&' + 'fieldname=' + escape(name);
	xss_ajax(url);
}

function validateDphone(element){
	num = element.value;
	name = element.id;
	if (num != lastPhone){
		if (phoneIsValid(element)){
			element.value = phoneIsValid(element);
			element.style.backgroundColor = '#ffffff';
			element.style.border = '1px solid rgb(210, 210, 210)';
			checkPhone(element);
		} else {
			failedValidates++;
			setFailedValidateMessage();
			element.style.border = '1px solid rgb(255, 0, 0)';
			alert("You have entered an invalid US phone number!" + call_us);
			lastPhone = num;
		}
	}
	lastPhone = num;
}


function validateIphone(element){
	num2 = element.value;
	name = element.id;
	if (num2 != lastPhone2){
		if (intPhoneIsValid(element)){
			element.value = intPhoneIsValid(element);
			element.style.backgroundColor = '#ffffff';
			element.style.border = '1px solid rgb(210, 210, 210)';
		} else {
			failedValidates++;
			setFailedValidateMessage();
			element.style.border = '1px solid rgb(255, 0, 0)';
			alert("You have entered an invalid International phone number!" + call_us);
		}
	}
	lastPhone2 = num2;
}

function onChangeMake(defix, formName, selectedModel) {
	formObj = document.getElementById(formName);
	formObj.elements['model' + defix].value = '';
	formObj.elements['model' + defix].disabled = false;
	populateModels(formObj.elements['model' + defix], formObj.elements['make' + defix].selectedIndex, defix);
}

function buildYearMenu(){
    jQuery('#veh_year').append('<option value="Other">Other</option>');
    for(i=2012;i>=1950;i--){
        jQuery('#veh_year').append('<option value="'+i+'">'+i+'</option>');        
    }
    jQuery('#veh_year').val('');
}

function populateVMakes(objForm, selectedValue) {
	var index=0;
	if(objForm.options.length == 1) {
		for (i = 0; i<obj_make_model.length; i++) {
			var newOption = new Option(obj_make_model[i].Make, obj_make_model[i].Make);
			
			if(newOption.value==selectedValue) 
			{
				index=i+1;
			}
			objForm.options[i+1] = newOption;
		}
		objForm.selectedIndex=index;
	}
}	

function populateModels(objForm, make_num) {
	objForm.options.length = 1;
	if (make_num != 0) make_num = make_num - 1;
	else make_num = 0;
	for (i = 0; i < obj_make_model[make_num].Models.length; i++) objForm.options[i + 1] = new Option(obj_make_model[make_num].Models[i], obj_make_model[make_num].Models[i]);
}


function onChangeYear (defix, formName, selectedMake) 
{
	document.forms[formName].elements['make'+defix].options.length = 1;
	document.forms[formName].elements['model'+defix].options.length = 1;
	document.forms[formName].elements['model'+defix].disabled = true;
	document.forms[formName].elements['make'+defix].disabled = false;
	
	formObj = document.getElementById('make'+defix);
	populateVMakes(formObj, selectedMake);
}

function onChangeMake (defix, formName, selectedModel) {
	document.forms[formName].elements['model'+defix].value = '';
	document.forms[formName].elements['model'+defix].disabled = false;
	//window.defix = defix;
	formObj = document.getElementById(formName);
	populateModels(formObj.elements['model'+defix], formObj.elements['make'+defix].selectedIndex, defix);
}

var emailHasErrors = false;
var lastEmail = "";
var call_us = "\nFeel free to contact one of our representatives at 1-888-506-0565.";
function checkCrossEmail(element){
	var name = element.id;
	var email = element.value;
	var url = 'http://a1autotransport.com/quoteforms/util/checkEmailJQ.php?email=' + escape(trim(email)) + '&' + 'fieldname=' + escape(name);
	xss_ajax(url);
}

function bogusEmailCallback(data, fieldname){
	el = jQuery("#" + fieldname);
	if (data != 1){
		el.css('border', '1px solid #d2d2d2');
		emailHasErrors = false;
	} else {
	 	el.css('border', '1px solid #d2d2d2');
		emailHasErrors = false;
	}
}

function validateEmail(element){
	var name = element.id;
	var email = element.value;
	if (email != lastEmail){
		if (emailIsValid(element)) {
			element.style.border = '1px solid rgb(210, 210,210)';
			checkCrossEmail(element);
		} else {
			element.style.border = '1px solid rgb(255, 0, 0)';
			alert("You have entered an invalid email address." + call_us);
		}
	}
	lastEmail = name;
}

function testEmail(addr) {
	var regex = new RegExp(/^([A-Za-z0-9\-._]+)@([^@]+)$/);
	var m = regex.exec(addr);
	if (m == null) {
		return true;
	} else {
		return true;
	}
}

function emailIsValid(emailObjectToCheck) {
	var textToTest = emailObjectToCheck.value;
	var pattern = /^([A-Za-z0-9\-._]+)@([A-Za-z0-9\-.]+)\.([A-Za-z]+)$/;
	var result = textToTest.match(pattern)
	if (result != null) {
		return 1;
	}
	return 0;
}

function validateFields(){
	errormsg = '';
	if(!jQuery('#fname').val()){
		errormsg += "You must enter your name.\n";
	}	
	if(emailHasErrors || !emailIsValid(document.getElementById('email'))){
		errormsg += "You have entered an invalid email.\n";
	}
	if(phoneHasErrors || !phoneIsValid(document.getElementById('dphone'))){
		errormsg += "You have entered an invalid phone number.\n";
	}
	if(jQuery('#model').val() == ''){
		errormsg += "You must select a vehicle make and model.\n";
	}
	if(errormsg != ''){
		alert(errormsg);
		return false;
	} else {
		return true;
	}
}

