// Number of the image to work with.
var imageNum = 1;
var loadingDiv = '<div style="text-align:center;"><img src="/images/indicator_medium.gif" width="32" height="32" alt="Loading..." /><div>Loading&#8230;</div></div>';

function ajaxUpdater(id, url, params, method) {
	var type = (method == "post") ? "post" : "get";
	$.ajax({
    	type: type,
		processData: true,
        url: url,
		data: params,
		error: function(e) {
			alert("Failure: " + e);
		},		
		success: function(data) {
        	$("#" + id).html(data);
		}		
	});
}

function changeImage(id, direction) {
	// Change the image to the loading image.
	$("#placeImage").html('<div style="margin:30px 10px 30px 10px;">' + loadingDiv + '</div>');
	
	if (direction == 'next')
		imageNum++;
	else
		imageNum--;
	var params = "id=" + id + "&pg=" + imageNum;
	
    $.ajax({
    	type: "get",
		processData: true,
        url: "functions/load_image.php",
		data: "id=" + id + "&pg=" + imageNum,
        cache: false,
		success: function(data) {
        	$("#placeImage").hide().html(data).fadeIn(600);
		}
	});
	return false;
}

function checkAgree(checkbox, button) {
	var chk = (checkbox.checked) ? false : true;
	document.getElementById(button).disabled = chk;
}

function cursor_wait() {
	document.body.style.cursor = "wait";
}

function cursor_clear() {
	document.body.style.cursor = "default";
}

function fillEmptyModel() {
	var sel = document.getElementById("auto_model");
	sel.length = 0;
	sel.options[0] = new Option("- Model -", 0);
}

function fillEmptyOption() {
	var sel = document.getElementById("auto_option");
	sel.length = 0;
	sel.options[0] = new Option("- Option -", 0);
}

function highlight(frm, field, is_highlight) {
	frm.elements[field].className = ((is_highlight == 1) ? "elementError" : "element");
}

function highlightById(field, is_highlight) {
	document.getElementById(field).className = ((is_highlight == 1) ? "elementError" : "element");
}

function is_email(str) {
	/*var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;*/
	var regex = /^[a-z0-9\._-]+@([a-z0-9_-]+\.)+[a-z]{2,6}$/i;
	return regex.test(str);
}

function loadMakes(year) {
	if (parseInt(year) > 0) {
		cursor_wait();
		var url = "functions/load_makes.php";
		var params = "year=" + year;
		ajaxUpdater("auto_make", url, params);
	}
}

function loadModels(year, make_id) {
	if (parseInt(year) > 0 && parseInt(make_id) > 0) {
		cursor_wait();
		var url = "functions/load_models.php";
		var params = "year=" + year + "&make_id=" + make_id;
		ajaxUpdater("auto_model", url, params);
	}
}

function loadOptions(year, make_id, model_id) {
	if (parseInt(year) > 0 && parseInt(make_id) > 0 && parseInt(model_id) > 0) {
		cursor_wait();
		var url = "functions/load_options.php";
		var params = "year=" + year + "&make_id=" + make_id + "&model_id=" + model_id;
		ajaxUpdater("auto_option", url, params);
	}
	return false;
}

function loadResults(vehicle_id, plus_size) {
	if (parseInt(vehicle_id) > 0) {
		cursor_wait();
		var url = "functions/load_results.php";
		var params = "vehicle_id=" + vehicle_id + "&plus_size=" + plus_size;
		ajaxUpdater("auto_results", url, params);
	}
	return false;
}

function loadPlusSize(plus_size) {
	var vehicle_id = document.getElementById("auto_option").value;
	if (vehicle_id > 0) {
		cursor_wait();
		
		loadResults(vehicle_id, plus_size);
	} else {
		alert("No vehicle selected.");
	}
}

function showTire(vehicle_id, product_id, plus_size) {
	$.ajax({
		type: "get",
		processData: true,
		data: "vid=" + vehicle_id + "&pid=" + product_id + "&ps=" + plus_size,
		url: "tire_pressure.php",
		cache: false,
		success: function(data) {
			$("#dialog").html(data);
		}
	});

	var dia = $("#dialog").dialog({
		title: "Toyo Tire Fitment",
		closeOnEscape: true,
		bgiframe: true,
		modal: true,
		hide: "slide",
		position: [280,"center"],
		width: 680,
		height: 560,
		resizable: true,
		draggable: true,
		buttons: {
			Ok: function() {
				$(this).dialog("close");
			}
		}
	});

	if (!dia.dialog("isOpen")) {
		dia.dialog("open");
	}
}