/**
 * Contains javascript functions for forms
 * 
 * All scripts are using jQuery framework
 * 
 */


/**
 * fills up county select values by id_country
 * 
 * @param Object HtmlSelectElement sourceSelect
 * @param string idTargetSelect
 * @return void
 * 
 * @TODO: validate input values types
 */
function ajaxFilterSelect(presenter, sourceSelect, nameTargetSelect) {
	//if (sourceSelect instanceof Object && typeof nameTargetSelect == "string") {
	if (true) {
		var filterValue = $(sourceSelect).val();
		var filterId = $(sourceSelect).attr("id");
		
		// getting values for following select by Ajax
		var hash = new Date();
		hash = hash.getTime();
		$.post("?presenter="+presenter+"&do=loadData&t="+hash, {"nameTargetSelect": nameTargetSelect, "idSource": filterId, "sourceValue": filterValue}, function(data) {
			if(data) {
				if((filterId == "frmuserForm-schoolType" || filterId == "frmaddForm-schoolType") && filterValue != "university") {
					$("select[name='schoolCounty']").removeClass('hidden');
					$("select[name='schoolCounty']").parent().parent().removeClass('hidden');
					
					$("select[name='schoolCity']").removeClass('hidden');
					$("select[name='schoolCity']").parent().parent().removeClass('hidden');

					$("select[name='schoolFaculty']").addClass('hidden');
					$("select[name='schoolFaculty']").parent().parent().addClass('hidden');
					
					$("select[name='schoolSpecialization']").addClass('hidden');
					$("select[name='schoolSpecialization']").parent().parent().addClass('hidden');
				} else if (filterId == "frmuserForm-schoolType" || filterId == "frmaddForm-schoolType") {
					$("select[name='schoolCounty']").addClass('hidden');
					$("select[name='schoolCounty']").parent().parent().addClass('hidden');
					
					$("select[name='schoolCity']").addClass('hidden');
					$("select[name='schoolCity']").parent().parent().addClass('hidden');
				}
				
				if($('select[name='+nameTargetSelect+']') instanceof Object) {
					if(filterId.search('frmprofileForm') > -1) {
						var tmpObject = $('select[name='+nameTargetSelect+']').parent().parent().children("td").get(0);
						$(tmpObject).html(data.toString()); // data pretypovana na string (obcas vraci jako xml)
					} else {
						$('select[name='+nameTargetSelect+']').parent().html(data.toString()); // data pretypovana na string (obcas vraci jako xml)
					}
					if($('select[name='+nameTargetSelect+']').children().length) {
						$('select[name='+nameTargetSelect+']').parent().parent().removeClass('hidden');
						$('select[name='+nameTargetSelect+']').removeClass('hidden');
						$('select[name='+nameTargetSelect+']').attr('disabled', '');
					} else {
						if($('select[name='+nameTargetSelect+']').hasClass("hidden")) {
							$('select[name='+nameTargetSelect+']').parent().parent().addClass('hidden');
						} else {
							$('select[name='+nameTargetSelect+']').attr('disabled', 'disabled');
						}
					}
				} else {
					alert('Target SELECT[name'+nameTargetSelect+'] element doesnt exist in current document.');
				}
			}
		});
	} else {
		alert('Invalid param types for ajaxFilterSelect(sourceSelect, nameTargetSelect) \n - sourceSelect must be instanceof Object \n - nameTargetSelect must be typeof String');
	} 
}