var r_number = null;
var c_number = null;

function regionSearch(c, r, ci)
{
    $('#country').selectOptions(c, true);
    if(r != '') {
        r_number = r;
    }
    if(ci != '') {
        c_number = ci;
    }
    $('#country').change();
}
var able = false;
jQuery.handleResponse = function(str)
{
   //alert(str);
   var respArr = str.split('|');
   var respType = respArr[0].toLowerCase();
   var respMsg  = respArr[1];
   if(respType == 'ok') {
       //$('#msgSpan').empty();
       //$('#msgSpan').append(respType);
       able = true;
       $('#SearchForm').submit();
   } else {
       $('#msgSpan').empty();
       $('#msgSpan').removeClass();
       $('#msgSpan').addClass("errPrompt");
       var valueArr = respMsg.split('::');
       for(var i = 0; i < valueArr.length - 1; i++) {
           $('#msgSpan').append(valueArr[i]+"<br />");
       }
       able = false;
   }
}
$(document).ready(function(){

    // Disable the form submission
    $('#SearchForm').submit(function()
      {
        $('#msgSpan').empty();
        $('#msgSpan').removeClass();
        $('#msgSpan').addClass("procPrompt");
    	$('#msgSpan').append( 'Ihre Eingabe wird geprüft.');
    	//var postData = '';
        //postData = formData2QueryString(document.getElementById('SearchForm'));
        //self.ajax.doPost('search_form_handler.php', postData, self.handleSearchResp);
        if(able == false) {
        	$.ajax({
                       data: formData2QueryString(document.getElementById('SearchForm')),
                       url: 'search_form_handler.php',
                       timeout: 3000,
                       error: function() {
                           $('#msgSpan').empty();
                           $('#msgSpan').removeClass();
                           $('#msgSpan').addClass("errPrompt");
        		           $('#msgSpan').append( 'Fehler! Konnte Daten nicht übertragen. ');
                       },
                       success: function(str) {
                           $.handleResponse(str)
                       }
             });
        }
        return able;
      }
    );
    var options = {
        script:"test_handler.php?",
        varname:"dap",
        minchars:3,
        className:"autosuggest",
        delay:100,
        timeout:2500,
        cache:false,
        offsety:-5,
        shownoresults:false,
        json:true,
        maxentries:25
    };
    var as_json = new bsn.AutoSuggest('dap', options);

    $('#ttc').change(function()
        {
           if($('#ttc')[0].selectedIndex != 0) {
               $('#ttr')[0].selectedIndex = 0;
               jQuery.ajax({
                   data: 'ttc=' + $('#ttc option:selected').attr('value') + '&ttr=***',
                   url: 'get_top_handler.php',
                   timeout: 3000,
                   error: function() {
                       $('#msgSpan').empty();
    		           $('#msgSpan').append( 'Fehler! Konnte Daten nicht übertragen; ');
                   },
                   success: function(str) {
                   //alert(str);
                   if(str.indexOf("|") < 0) {
                       if(str.indexOf("::") < 0) {
                       } else {
                           var respArr = str.split('::');
                           var c_code = respArr[0].toUpperCase();
                           $('#country').selectOptions(c_code, true);
                           //self.update = false;
                           r_number = null;
                           $('#country').change();
                       }
                   } else {
                       var respArr = str.split('::');
                       if(respArr.length > 0) {
                           //self.update = true;
                           var valueArr = respArr[0].split('|');
                           var c_code = valueArr[0].toUpperCase();
                           r_number = valueArr[1];
                           $('#country').selectOptions(c_code, true);
                           $('#country').change();
                       }
                     }
                   }
               })
           }
        }
    );
    $('#ttr').change(function()
        {
           if($('#ttr')[0].selectedIndex != 0) {
               $('#ttc')[0].selectedIndex = 0;
               jQuery.ajax({
                   data: 'ttr=' + $('#ttr option:selected').attr('value') + '&ttc=***',
                   url: 'get_top_handler.php',
                   timeout: 2000,
                   error: function() {
                     alert("Failed to submit");
                   },
                   success: function(str) {
                     //alert(str);
                     if(str.indexOf("|") < 0) {
                       if(str.indexOf("::") < 0) {
                       } else {
                           var respArr = str.split('::');
                           var c_code = respArr[0].toUpperCase();
                           $('#country').selectOptions(c_code, true);
                           //self.update = false;
                           r_number = null;
                           $('#country').change();
                       }
                     } else {
                       var respArr = str.split('::');
                       if(respArr.length > 0) {
                           //self.update = true;
                           var valueArr = respArr[0].split('|');
                           var c_code = valueArr[0].toUpperCase();
                           r_number = valueArr[1];
                           $('#country').selectOptions(c_code, true);
                           $('#country').change();
                       }
                     }
                   }
               })
           }
        }
    );
    $('#country').change(function()
        {
           //alert('updateRegions ' + $('#country option:selected').attr('value'));
           if($('#country')[0].selectedIndex != 0) {
               jQuery.ajax({
                   data: 'country=' + $('#country option:selected').attr('value'),
                   url: 'get_regions_handler.php',
                   timeout: 2000,
                   error: function() {
                        alert("Failed to submit");
                   },
                   success: function(str) {
                        //alert(str);
                        var set_state = false;
                        var resp = str;
                        var resp_arr = resp.split('||');
                        var data_arr = new Array();
                        for(var i = 0; i < resp_arr.length; i++) {
                           if(resp_arr[i] != '') {
                               var data = resp_arr[i].split('|');
                               if(data.length > 0) {
                                   data_arr[i] = new Object();
                                   data_arr[i]["code"] = data[0];
                                   data_arr[i]["name"] = data[1];
                               }
                           }
                        }
                        // remove old entries
                        $('#region').removeOption(/./);
                        // add new entries
                        if(data_arr.length == 2) {
                            set_state = true;
                        }
                        // reset city
                        $('#city').removeOption(/./);
                        $("#city").addOption("0", "bitte erst Region wählen");
                        for(var j = 0; j < data_arr.length; j++) {
                            if(set_state && j == 1) {
                                $("#region").addOption(data_arr[j]["code"], data_arr[j]["name"]);
                            } else {
                                if(r_number && r_number == data_arr[j]["code"]) {
                                    $("#region").addOption(data_arr[j]["code"], data_arr[j]["name"]);
                                } else {
                                	 if(r_number && r_number == data_arr[j]["name"]) {
                                         $("#region").addOption(data_arr[j]["code"], data_arr[j]["name"]);
                                     } else {
                                    	 $("#region").addOption(data_arr[j]["code"], data_arr[j]["name"], false);
                                     }
                                }
                            }
                        }
                        if(data_arr.length >= 2) {
                            $('#region').change();
                        }
                        //self.update = false;
                   }
               })
           }
        }
    );
    $('#region').change(function()
        {
           //alert('updateCity ' + $('#region option:selected').attr('value'));
           if($('#region')[0].selectedIndex != 0) {
               jQuery.ajax({
                   data: 'region=' + $('#region option:selected').attr('value'),
                   url: 'get_cities_handler.php',
                   timeout: 2000,
                   error: function() {
                        alert("Failed to submit");
                   },
                   success: function(str) {
                        //alert(str);
                        var set_state = false;
                        var resp = str;
                        var resp_arr = resp.split('||');
                        var data_arr = new Array();
                        for(var i = 0; i < resp_arr.length; i++) {
                           if(resp_arr[i] != '') {
                               var data = resp_arr[i].split('|');
                               if(data.length > 0) {
                                   data_arr[i] = new Object();
                                   data_arr[i]["code"] = data[0];
                                   data_arr[i]["name"] = data[1];
                               }
                           }
                        }
                        // remove old entries
                        $('#city').removeOption(/./);
                        // add new entries
                        if(data_arr.length == 2) {
                            set_state = true;
                        }
                        for(var j = 0; j < data_arr.length; j++) {
                            if(c_number && c_number == data_arr[j]["code"]) {
                                $("#city").addOption(data_arr[j]["code"], data_arr[j]["name"]);
                            } else {
                            	if(c_number && c_number == data_arr[j]["name"]) {
                                    $("#city").addOption(data_arr[j]["code"], data_arr[j]["name"]);
                                } else {
                                	$("#city").addOption(data_arr[j]["code"], data_arr[j]["name"], false);
                                }
                            }
                        }
                   }
               })
           }
        }
    );
});
