var servlet = "addons/region_selector/servlets/region_selector.php";
var default_country = false;
var default_state = false;
var default_city = false;
function get_countries(){
	var parameters = new Array();
	var parm = new Array();
	parm["name"]="function";
	parm["value"]="get_countries";
	parameters[parameters.length]=parm;
	parameters[parameters.length]=parm;
	AjaxRequest(servlet,get_countries_handler,parameters);
}
function get_countries_handler(){
	if(httpRequest.readyState == 4){
		if(httpRequest.status == 200){
			responseXML = httpRequest.responseXML;
			responseText = httpRequest.responseText;
			if(responseText!=""){
				var element = document.getElementById("country_select");
				var items = responseXML.getElementsByTagName('item');
				for(i=0; i<items.length;i++){
					var elOptNew = document.createElement('option');
					elOptNew.text = items[i].getAttribute("text");
					elOptNew.value = items[i].getAttribute("value");
					if((elOptNew.value==default_country) || (elOptNew.text==default_country)){
						elOptNew.selected=true;
					}
					try {
						element.options.add(elOptNew, null); // standards compliant; doesn't work in IE
					}
					catch(ex){
						element.options.add(elOptNew); // IE only
					}
				}
				if(default_country){
					setTimeout("choose_country()",500);
				}
			}
		}else{
			//document.getElementById('readyState').innerHTML = httpRequest.status;
		}
	}else{
		//document.getElementById('status').innerHTML = httpRequest.readyState;
	}
}
function choose_country(){
	var country_id = document.getElementById("country_select").options[document.getElementById("country_select").selectedIndex].value;
	document.getElementById("state_select").options.length=0;
	document.getElementById("city_select").options.length=0;
	var parameters = new Array();
	var parm = new Array();
	parm["name"]="function";
	parm["value"]="get_states";
	parameters[parameters.length]=parm;
	parm = new Array();
	parm["name"]="country_id";
	parm["value"]=country_id;
	parameters[parameters.length]=parm;
	AjaxRequest(servlet,choose_country_handler,parameters);
}//END FUNCTION choose_country

function choose_country_handler(){
	if(httpRequest.readyState == 4){
		if(httpRequest.status == 200){
			responseXML = httpRequest.responseXML;
			responseText = httpRequest.responseText;
			if(responseText!=""){
				var element = document.getElementById("state_select");
				var items = responseXML.getElementsByTagName('item');
				for(i=0; i<items.length;i++){
					var elOptNew = document.createElement('option');
					elOptNew.text = items[i].getAttribute("text");
					elOptNew.value = items[i].getAttribute("value");
					if((elOptNew.value==default_state) || (elOptNew.text==default_state)){
						elOptNew.selected=true;
					}
					try {
						element.options.add(elOptNew, null); // standards compliant; doesn't work in IE
					}
					catch(ex){
						element.options.add(elOptNew); // IE only
					}
				}
				if(default_state){
					setTimeout("choose_state()",500);
				}
			}
		}else{
			//document.getElementById('readyState').innerHTML = httpRequest.status;
		}
	}else{
		//document.getElementById('status').innerHTML = httpRequest.readyState;
	}
}
function choose_state(state_id){
	var state_id = document.getElementById("state_select").options[document.getElementById("state_select").selectedIndex].value;
	document.getElementById("city_select").options.length=0;
	var parameters = new Array();
	var parm = new Array();
	parm["name"]="function";
	parm["value"]="get_cities";
	parameters[parameters.length]=parm;
	parm = new Array();
	parm["name"]="state_id";
	parm["value"]=state_id;
	parameters[parameters.length]=parm;
	AjaxRequest(servlet,choose_state_handler,parameters);
}
function choose_state_handler(){
	if(httpRequest.readyState == 4){
		if(httpRequest.status == 200){
			responseXML = httpRequest.responseXML;
			responseText = httpRequest.responseText;
			if(responseText!=""){
				var element = document.getElementById("city_select");
				var items = responseXML.getElementsByTagName('item');
				for(i=0; i<items.length;i++){
					var elOptNew = document.createElement('option');
					elOptNew.text = items[i].getAttribute("text");
					elOptNew.value = items[i].getAttribute("value");
					if((elOptNew.value==default_city) || (elOptNew.text==default_city)){
						elOptNew.selected=true;
					}
					try {
						element.options.add(elOptNew, null); // standards compliant; doesn't work in IE
					}
					catch(ex){
						element.options.add(elOptNew); // IE only
					}
				}
			}
		}else{
			//document.getElementById('readyState').innerHTML = httpRequest.status;
		}
	}else{
		//document.getElementById('status').innerHTML = httpRequest.readyState;
	}
}
/**
* adds an event to an element
*/
function addEvent( obj, type, fn ){ 
  if( obj.attachEvent ){ 
    obj['e'+type+fn] = fn; 
    obj[type+fn] = function(){obj['e'+type+fn]( window.event );} 
    obj.attachEvent( 'on'+type, obj[type+fn] ); 
  } else {
	  obj.addEventListener( type, fn, false ); 
  }
  return true;
}//END FUNCTION addEvent

/**
* removes an event from an element
*/
function removeEvent( obj, type, fn ){ 
  if( obj.detachEvent ){ 
    obj.detachEvent( 'on'+type, obj[type+fn] ); 
    obj[type+fn] = null; 
  } else {
    obj.removeEventListener( type, fn, false ); 
  }
  return true;
}//END FUNCTION removeEvent

function addOptions(element){
	var items = responseXML.getElementsByTagName('item');
	for(i=0; i<items.length;i++){
		var elOptNew = document.createElement('option');
		elOptNew.text = items[i].getAttribute("text");
		elOptNew.value = items[i].getAttribute("value");
		try {
			element.options.add(elOptNew, null); // standards compliant; doesn't work in IE
		}
		catch(ex){
			element.options.add(elOptNew); // IE only
		}
	}
}//END FUNCTION addOptions


function prepare_sell_page(){
	var statefields = document.getElementsByName("b[state]");
	var cityfields = document.getElementsByName("b[city]");
	var countryfields = document.getElementsByName("b[country]");
	
	var country_select = document.createElement('select');
	country_select.setAttribute("id","country_select");
	country_select.setAttribute("class", "ajax_select");
	country_select.setAttribute("name", "b[country]");
	addEvent(country_select, "change", choose_country);
	
	var state_select = document.createElement('select');
	state_select.setAttribute("id","state_select");
	state_select.setAttribute("class", "ajax_select");
	state_select.setAttribute("name", "b[state]");
	addEvent(state_select, "change", choose_state);
	
	var city_select = document.createElement('select');
	city_select.setAttribute("id","city_select");
	city_select.setAttribute("class", "ajax_select");
	city_select.setAttribute("name", "b[city]");
	
	for(i=0;i<statefields.length;i++){
		var parent = statefields[i].parentNode;
		parent.innerHTML="";
		parent.appendChild(state_select);
	}
	
	for(i=0;i<cityfields.length;i++){
		var parent = cityfields[i].parentNode;
		parent.innerHTML="";
		parent.appendChild(city_select);
	}
	
	for(i=0;i<countryfields.length;i++){
		var parent = countryfields[i].parentNode;
		parent.innerHTML="";
		parent.appendChild(country_select);
	}
	get_countries();
}

function prepare_search_page(){
	/*if(document.getElementsByTagName("b[by_state]").length==0){
		return false;
	}/**/
	var parent = document.getElementsByName("b[by_state]")[0].parentNode;
	parent.innerHTML = "";
	
	var country_select = document.createElement('select');
	country_select.setAttribute("id","country_select");
	country_select.setAttribute("class", "ajax_select");
	country_select.setAttribute("name", "b[by_country]");
	addEvent(country_select, "change", choose_country);
	
	var state_select = document.createElement('select');
	state_select.setAttribute("id","state_select");
	state_select.setAttribute("class", "ajax_select");
	state_select.setAttribute("name", "b[by_state]");
	addEvent(state_select, "change", choose_state);
	
	var city_select = document.createElement('select');
	city_select.setAttribute("id","city_select");
	city_select.setAttribute("class", "ajax_select");
	city_select.setAttribute("name", "b[by_city]");
	
	parent.appendChild(country_select);
	parent.appendChild(state_select);
	parent.appendChild(city_select);
	
	get_countries();
}

function initiate_registration_form(){
	var registration_form = document.getElementById('registration_form');
	var country_select = document.getElementById('country_select');
	for(i=0;i<country_select.options.length;i++){
		country_select.options[i].value = country_select.options[i].text;
	}
	addEvent(country_select, "change", register_choose_couontry);
}

function register_choose_couontry(){
	var country_select = document.getElementById('country_select');
	var country_id = country_select.options[country_select.selectedIndex].value;
	document.getElementById("state_select").options.length=0;
	var parameters = new Array();
	var parm = new Array();
	parm["name"]="function";
	parm["value"]="get_states";
	parameters[parameters.length]=parm;
	parm = new Array();
	parm["name"]="country_id";
	parm["value"]=country_id;
	parameters[parameters.length]=parm;
	AjaxRequest(servlet, choose_country_handler, parameters);
	
}

function initiate_edit_form(){
	default_country = document.getElementById('country_select').options[document.getElementById('country_select').selectedIndex].value;
	if(!default_country || default_country==""){
		default_country = document.getElementById('country_select').options[document.getElementById('country_select').selectedIndex].text;
	}
	default_state = document.getElementById('state_select').options[document.getElementById('state_select').selectedIndex].value;
	default_city = document.getElementById('city_select').value;
	
	var statefields = document.getElementsByName("d[state]");
	var cityfields = document.getElementsByName("d[city]");
	var countryfields = document.getElementsByName("d[country]");
	
	var country_select = document.createElement('select');
	country_select.setAttribute("id","country_select");
	country_select.setAttribute("class", "ajax_select");
	country_select.setAttribute("name", "d[country]");
	addEvent(country_select, "change", choose_country);
	
	var state_select = document.createElement('select');
	state_select.setAttribute("id","state_select");
	state_select.setAttribute("class", "ajax_select");
	state_select.setAttribute("name", "d[state]");
	addEvent(state_select, "change", choose_state);
	
	var city_select = document.createElement('select');
	city_select.setAttribute("id","city_select");
	city_select.setAttribute("class", "ajax_select");
	city_select.setAttribute("name", "d[city]");
	
	for(i=0;i<statefields.length;i++){
		var parent = statefields[i].parentNode;
		parent.innerHTML="";
		parent.appendChild(state_select);
	}
	
	for(i=0;i<cityfields.length;i++){
		var parent = cityfields[i].parentNode;
		parent.innerHTML="";
		parent.appendChild(city_select);
	}
	
	for(i=0;i<countryfields.length;i++){
		var parent = countryfields[i].parentNode;
		parent.innerHTML="";
		parent.appendChild(country_select);
	}
	get_countries();
}

/**
* adds an event to an element
*/
function addEvent( obj, type, fn ){ 
  if( obj.attachEvent ){ 
    obj['e'+type+fn] = fn; 
    obj[type+fn] = function(){obj['e'+type+fn]( window.event );} 
    obj.attachEvent( 'on'+type, obj[type+fn] ); 
  } else {
	  obj.addEventListener( type, fn, false ); 
  }
  return true;
}//END FUNCTION addEvent

/**
* removes an event from an element
*/
function removeEvent( obj, type, fn ){ 
  if( obj.detachEvent ){ 
    obj.detachEvent( 'on'+type, obj[type+fn] ); 
    obj[type+fn] = null; 
  } else {
    obj.removeEventListener( type, fn, false ); 
  }
  return true;
}//END FUNCTION removeEvent