/**
 * CoDirectory Search Module for Joomla! 1.5 
 * 
 * @version		0.0.1 CoDirectorySearch $
 * @package		CoDirectorySearch
 * @author		Eugene Bunin
 * @link 	    http://bybunin.com
 */

window.addEvent('domready', function(){
	
	/**
	 * Method to build a dealership list
	 */
	var setdealerships = function(data) {
		if (!data) {
			return;
		}

		data.each(function(data) {
			
			// get dealerships element
			var select = $('id_dealership');
			var option = new Element('option');
			
			option.injectInside(select);
			option.setProperty('value', data.id);
			option.setText(data.name);

			if (iddealership != null) {
				if (iddealership != 0 && iddealership == data.id) {
					option.setProperty('selected','selected');
				}
			}
			// get dealerships element
		});

		return true;
	}	
	var setdealerships1 = function(data) {
		if (!data) {
			return;
		}

		data.each(function(data) {
			
			var select = $('id_dealership1');
			var option = new Element('option');
			
			option.injectInside(select);
			option.setProperty('value', data.id);
			option.setText(data.name);

			if (iddealership1 != null) {
				if (iddealership1 != 0 && iddealership1 == data.id) {
					option.setProperty('selected','selected');
				}
			}

		});

		return true;
	}	
	
	var setdealerships2 = function(data) {
		if (!data) {
			return;
		}

		data.each(function(data) {

			var select = $('id_dealership2');
			var option = new Element('option');

			option.injectInside(select);
			option.setProperty('value', data.id);
			option.setText(data.name);

			if (iddealership2 != null) {
				if (iddealership2 != 0 && iddealership2 == data.id) {
					option.setProperty('selected','selected');
				}
			}

		});

		return true;
	}

	var setdealerships3 = function(data) {
		if (!data) {
			return;
		}

		data.each(function(data) {

			var select = $('id_dealership3');
			var option = new Element('option');

			option.injectInside(select);
			option.setProperty('value', data.id);
			option.setText(data.name);

			if (iddealership3 != null) {
				if (iddealership3 != 0 && iddealership3 == data.id) {
					option.setProperty('selected','selected');
				}
			}

		});

		return true;
	}
	/**
	 * Function to get a dealerships list
	 * return json object
	 */
	var getdealerships = function(id_category, element) {
		
		var url = 'index.php?option=com_codirectory&controller=dealerships&task=display&format=raw&id_category='+id_category;
		var request = new Json.Remote(url, {
			onComplete: function(result) {
				if (result) {
					setdealerships(result.data);
				}
			},
			onRequest: function() {
			}
		}).send();
		
	}	
	var getdealerships1 = function(id_category1, element) {
		
		var url = 'index.php?option=com_codirectory&controller=dealerships&task=display&format=raw&id_category='+id_category1;
		var request = new Json.Remote(url, {
			onComplete: function(result) {
				if (result) {
					setdealerships1(result.data);
				}
			},
			onRequest: function() {
			}
		}).send();
		
	}	
	$("id_category1").addEvent("change", function() {
		// set country ID to hidden element 
		//$('id_country').setProperty('value', '236');		
		
		// set off to a CAN button
		//$("CAN").removeClass('buttonOn');
		//this.addClass('buttonOn');

		var dealershipsElement = $('id_dealership1');
		var option = new Element('option');

		dealershipsElement.empty();		

		option.setProperty('value', '0');
		option.setText('Downloading...');
		option.injectInside(dealershipsElement);
		
		dealershipsElement.setProperty('disabled', 'disabled');		
		dealershipsElement.empty();		

		html = getdealerships1($("id_category1")[$("id_category1").options.selectedIndex].value);

		dealershipsElement.setProperty('disabled', false);		

		if (iddealership_first1 == 0) {
			document.getElementById("formCoDirectorySearch1").submit();
		}

		iddealership_first1 = 0;
	});
	var getdealerships2 = function(id_category2, element) {

		var url = 'index.php?option=com_codirectory&controller=dealerships&task=display&format=raw&id_category='+id_category2;
		var request = new Json.Remote(url, {
			onComplete: function(result) {
				if (result) {
					setdealerships2(result.data);
				}
			},
			onRequest: function() {
			}
		}).send();

	}
	var getdealerships3 = function(id_category3, element) {

		var url = 'index.php?option=com_codirectory&controller=dealerships&task=display&format=raw&id_category='+id_category3;
		var request = new Json.Remote(url, {
			onComplete: function(result) {
				if (result) {
					setdealerships3(result.data);
				}
			},
			onRequest: function() {
			}
		}).send();

	}
	$("id_category2").addEvent("change", function() {

		var dealershipsElement = $('id_dealership2');
		var option = new Element('option');

		dealershipsElement.empty();		

		option.setProperty('value', '0');
		option.setText('Downloading...');
		option.injectInside(dealershipsElement);
		
		dealershipsElement.setProperty('disabled', 'disabled');		
		dealershipsElement.empty();		

		html = getdealerships2($("id_category2")[$("id_category2").options.selectedIndex].value);

		dealershipsElement.setProperty('disabled', false);		

		if (iddealership_first2 == 0) {
			document.getElementById("formCoDirectorySearch2").submit();
		}

		iddealership_first2 = 0;
	});


	$("id_category").addEvent("change", function() {

		var dealershipsElement = $('id_dealership');
		var option = new Element('option');

		dealershipsElement.empty();

		option.setProperty('value', '0');
		option.setText('Downloading...');
		option.injectInside(dealershipsElement);

		dealershipsElement.setProperty('disabled', 'disabled');
		dealershipsElement.empty();

		html = getdealerships($("id_category")[$("id_category").options.selectedIndex].value);

		dealershipsElement.setProperty('disabled', false);

		if (iddealership_first == 0) {
			document.getElementById("formCoDirectorySearch").submit();
		}

		iddealership_first = 0;
	});

	$("id_category3").addEvent("change", function() {

		var dealershipsElement = $('id_dealership3');
		var option = new Element('option');

		dealershipsElement.empty();

		option.setProperty('value', '0');
		option.setText('Downloading...');
		option.injectInside(dealershipsElement);

		dealershipsElement.setProperty('disabled', 'disabled');
		dealershipsElement.empty();
		html = getdealerships3($("id_category3")[$("id_category3").options.selectedIndex].value);
        
		dealershipsElement.setProperty('disabled', false);
         
		if (iddealership_first3 == 0) {
		    document.getElementById("formCoDirectorySearch4").submit();
		}

		iddealership_first3 = 0;

	});

	$("id_dealership").addEvent("change", function() {
		if (iddealership_first == 0) {
			document.getElementById("formCoDirectorySearch").submit();
		}

		iddealership_first = 0;
	});
	$("id_dealership1").addEvent("change", function() {
		if (iddealership_first1 == 0) {
			document.getElementById("formCoDirectorySearch1").submit();
		}

		iddealership_first1 = 0;
	});

	$("id_dealership2").addEvent("change", function() {
		if (iddealership_first1 == 0) {
			document.getElementById("formCoDirectorySearch2").submit();
		}

		iddealership_first2 = 0;
	});

	$("id_dealership3").addEvent("change", function() {
		if (iddealership_first3 == 0) {
			document.getElementById("formCoDirectorySearch4").submit();
		}

		iddealership_first3 = 0;
	});
	var iddealership_first = 1;
	var iddealership_first1 = 1;
	var iddealership_first2 = 1;
	var iddealership_first3 = 1;

	$('id_category').fireEvent('change');
	$('id_category1').fireEvent('change');
	$('id_category2').fireEvent('change');
	$('id_category3').fireEvent('change');

});

