/** site-wide js stuff */
var site={};

var last_country_id = -1;

/** bind two country/region select boxes together */
site.countryRegionBoxes=function(country,region) {
	var c=$(country);
	var r=$(region);
	country_change=function() {
		var country_id=$(c).val();
		//alert('woot');
		site.enqueue(function() {
			$.getJSON(site.url('ajax/regions/regions/'+country_id),
				function(d) {
					if(!d.success) {
						return;
					}
					var info=d.success;
					if(!info.regions) {
						return;
					}
					$(r).empty();
					var regions=info.regions;
					for(var region_id in regions) {
						var region=regions[region_id];
						$(r).append($('<option>').attr('value',region_id).text(region.name));
					}
				});
		});
	}

	$(c).bind($.browser.msie && $.browser.version < 7.0 ? 'propertyChange' : 'change keyup', country_change);

	var country_id=$(c).val();

};
site.https=function(p) {
	return site._https_path+p;
};
/** an url() function for javascripts */
site.url=function(p) {
	return site._base_path+p;
};
/** pop a lambda from the queue */
site.dequeue=function() {
	if(!site._queue) {
		return null;
	}
	return site._queue.shift();
};
/** grab the next item from the queue and execute it.  to be called periodically to get past IE's ajax bugs. */
site.next_in_queue=function() {
	var lambda=site.dequeue();
	if(lambda) {
		lambda();
	}
};
/** basic page dynamics */
$(document).ready(function() {
	site.start_ajax_queue();
});
// start issuing ajax requests when something is queued up
site.start_ajax_queue=function() {
	setInterval("site.next_in_queue()",100);
};
// queue up an ajax request (or anything else), because IE doesn't like doing things after $.ajax() calls
site.enqueue=function(lambda) {
	if(!site._queue) {
		site._queue=[];
	}
	site._queue.push(lambda);
};

