/* ---------------------------- */
/*     XMLHTTPRequest Enable    */
/* ---------------------------- */
function createObject() {
	var request_type;
	var browser = navigator.appName;
	if(browser == "Microsoft Internet Explorer"){
		request_type = new ActiveXObject("Microsoft.XMLHTTP");
	}else{
		request_type = new XMLHttpRequest();
	}
	return request_type;
}

var http = createObject();
var nocache = 0;

/* -------------------------- */
/*     REMOVE OPTIONS.        */
/* -------------------------- */
function removeAllOptions(selectbox) {
	var i;
	for(i=selectbox.options.length-1;i>=1;i--) {
		selectbox.remove(i);
	}
}

/* -------------------------- */
/*  GET SELECTED LIST VALUE.  */
/* -------------------------- */
function selectedItem_list(formField) {
	len = formField.length;
	for (i = 0; i <len; i++) {
		if (formField[i].selected == true) {	
			return(formField[i].value);
		} 
	}
}

/* -------------------------- */
/*  MAKE SELECT - LIST VALUE. */
/* -------------------------- */
function selectItem_list(formField, sel_value) {
	len = formField.length;
	for (i = 0; i <len; i++) {
		if (formField[i].value == sel_value) {	
			formField[i].selected = true;
		} else {
			formField[i].selected = false;
		}
	}
}

/* -------------------------- */
/*         URL ENCODE         */
/* -------------------------- */
function urlencode( str ) {
                                         
    var histogram = {}, histogram_r = {}, code = 0, tmp_arr = [];
    var ret = str.toString();
    
    var replacer = function(search, replace, str) {
        var tmp_arr = [];
        tmp_arr = str.split(search);
        return tmp_arr.join(replace);
    };
    
    histogram['!']   = '%21';
    histogram['%20'] = '+';
    
    ret = encodeURIComponent(ret);
    
    for (search in histogram) {
        replace = histogram[search];
        ret = replacer(search, replace, ret) 
    }
    
    return ret.replace(/(\%([a-z0-9]{2}))/g, function(full, m1, m2) {
        return "%"+m2.toUpperCase();
    });
    
    return ret;
}

/* -------------------------- */
/*         URL DECODE         */
/* -------------------------- */
function urldecode( str ) {   
    var histogram = {}, histogram_r = {}, code = 0, str_tmp = [];
    var ret = str.toString();
    
    var replacer = function(search, replace, str) {
        var tmp_arr = [];
        tmp_arr = str.split(search);
        return tmp_arr.join(replace);
    };
    
    histogram['!']   = '%21';
    histogram['%20'] = '+';
    
    for (replace in histogram) {
        search = histogram[replace]; 
        ret = replacer(search, replace, ret)    
    }
    
    ret = decodeURIComponent(ret);
 
    return ret;
}

/* -------------------------- */
/*        NEW LIST BOX.       */
/* -------------------------- */
function newListBox(list, formFeild, newOptions, selected_item, changeField) {
	if(list != changeField) {
		removeAllOptions(formFeild);
		formFeild.options[0] = new Option(list, '0');
		if(newOptions != '') {
			options = newOptions.split('@@@');
			for ( var i = 0; i < options.length; i++ ) {
				formFeild.options[i+1] = new Option(urldecode(options[i]), options[i]);
			}
		}
		selectItem_list(formFeild, selected_item);
	}
}

/* -------------------------- */
/*     CHANGE SELECTION.      */
/* -------------------------- */
function changeSelection(changeField) {
	var sel_city = document.form1.city.value;
	var sel_type = document.form1.type.value;
	var sel_university = document.form1.university.value;
	var sel_institute = document.form1.institute.value;
	var sel_program = document.form1.program.value;
		
	var selectedItems = 'city='+sel_city+
						'&type='+sel_type+
						'&uni='+sel_university+
						'&inst='+sel_institute+
						'&pgm='+sel_program;
	
	nocache = Math.random();
	var url = 'ajax/php/process.php?'+selectedItems+
			  '&changed='+changeField+'&nocache='+nocache;
	http.open('get', url);
	http.onreadystatechange = changeOptions;
	http.send(null);
	
	function changeOptions() {
		if(http.readyState == 4) {
			var response = http.responseText;
			if(response != '') {
				
				var separator = '11*****11';
				var resultArray = new Array();
				resultArray = response.split(separator);
							
				newListBox('Sehir', document.form1.city, 
						   resultArray[0], sel_city, changeField);
				
				newListBox('Type', document.form1.type, 
						   resultArray[1], sel_type, changeField);
				
				newListBox('University', document.form1.university, 
						   resultArray[2], sel_university, changeField);
				
				newListBox('Institute', document.form1.institute, 
						   resultArray[3], sel_institute, changeField);
				
				newListBox('Program', document.form1.program, 
						   resultArray[4], sel_program, changeField);
			}
		}
	}
}

