var isDefaultOptsLoaded = false;
var defaultOpts = new Array();
var defaultOption = new Object();
var cc = new Array();
var loadedCounties = Array();
//////////
cc["COUNTY_HARJUMAA"] = new Array(
	new Array("CITY_TALLINN", "Tallinn"),
	new Array("CITY_KEHRA", "Kehra"),
	new Array("CITY_KEILA", "Keila"),
	new Array("CITY_LOKSA", "Loksa"),
	new Array("CITY_MAARDU", "Maardu"),
	new Array("CITY_PALDISKI", "Paldiski"),
	new Array("CITY_SAUE", "Saue"),
	new Array("CITY_V_AEGVIIDU", "Aegviidu vald"),
	new Array("CITY_V_ANIJA", "Anija vald"),
	new Array("CITY_V_HARKU", "Harku vald"),
	new Array("CITY_V_JOELAHTME", "Jõelähtme vald"),
	new Array("CITY_V_KEILA", "Keila vald"),
	new Array("CITY_V_KERNU", "Kernu vald"),
	new Array("CITY_V_KIILI", "Kiili vald"),
	new Array("CITY_V_KOSE", "Kose vald"),
	new Array("CITY_V_KOUE", "Kõue vald"),
	new Array("CITY_V_KUUSALU", "Kuusalu vald"),
	new Array("CITY_V_NISSI", "Nissi vald"),
	new Array("CITY_V_PADISE", "Padise vald"),
	new Array("CITY_V_RAASIKU", "Raasiku vald"),
	new Array("CITY_V_RAE", "Rae vald"),
	new Array("CITY_V_SAKU", "Saku vald"),
	new Array("CITY_V_SAUE", "Saue vald"),
	new Array("CITY_V_VASALEMMA", "Vasalemma vald"),
	new Array("CITY_V_VIIMSI", "Viimsi vald")
);
cc["COUNTY_HIIUMAA"] = new Array(
	new Array("CITY_KARDLA", "Kärdla"),
	new Array("CITY_V_EMMASTE", "Emmaste vald"),
	new Array("CITY_V_KAINA", "Käina vald"),
	new Array("CITY_V_KORGESSAARE", "Kõrgessaare vald"),
	new Array("CITY_V_PUHALEPA", "Pühalepa vald")
);
cc["COUNTY_IDA_VIRUMAA"] = new Array(
	new Array("CITY_NARVA", "Narva"),
	new Array("CITY_JOHVI", "Jõhvi"),
	new Array("CITY_KIVIOLI", "Kiviõli"),
	new Array("CITY_KOHTLA_JARVE", "Kohtla-Järve"),
	new Array("CITY_NARVA_JOESUU", "Narva-Jõesuu"),
	new Array("CITY_PYSSI", "Püssi"),
	new Array("CITY_SILLAMAE", "Sillamäe"),
	new Array("CITY_V_ALAJOE", "Alajõe vald"),
	new Array("CITY_V_ASERI", "Aseri vald"),
	new Array("CITY_V_AVINURME", "Avinurme vald"),
	new Array("CITY_V_IISAKU", "Iisaku vald"),
	new Array("CITY_V_ILLUKA", "Illuka vald"),
	new Array("CITY_V_JOHVI", "Jõhvi vald"),
	new Array("CITY_V_KOHTLAJARVE", "Kohtla-Järve vald"),
	new Array("CITY_V_KOHTLANOMME", "Kohtla-Nõmme vald"),
	new Array("CITY_V_KOHTLA", "Kohtla vald"),
	new Array("CITY_V_LOHUSUU", "Lohusuu vald"),
	new Array("CITY_V_LUGANUSE", "Lüganuse vald"),
	new Array("CITY_V_MAETAGUSE", "Mäetaguse vald"),
	new Array("CITY_V_MAIDLA", "Maidla vald"),
	new Array("CITY_V_SONDA", "Sonda vald"),
	new Array("CITY_V_TOILA", "Toila vald"),
	new Array("CITY_V_TUDULINNA", "Tudulinna vald"),
	new Array("CITY_V_VAIVARA", "Vaivara vald")
);
cc["COUNTY_JARVAMAA"] = new Array(
	new Array("CITY_PAIDE", "Paide"),
	new Array("CITY_TYRI", "Türi"),
	new Array("CITY_V_ALBU", "Albu vald"),
	new Array("CITY_V_AMBLA", "Ambla vald"),
	new Array("CITY_V_IMAVERE", "Imavere vald"),
	new Array("CITY_V_JARVAJAANI", "Järva-Jaani vald"),
	new Array("CITY_V_KAREDA", "Kareda vald"),
	new Array("CITY_V_KOERU", "Koeru vald"),
	new Array("CITY_V_KOIGI", "Koigi vald"),
	new Array("CITY_V_PAIDE", "Paide vald"),
	new Array("CITY_V_ROOSNAALLIKU", "Roosna-Alliku vald"),
	new Array("CITY_V_TURI", "Türi vald"),
	new Array("CITY_V_VAATSA", "Väätsa vald")
);
cc["COUNTY_JOGEVAMAA"] = new Array(
	new Array("CITY_JOGEVA", "Jõgeva"),
	new Array("CITY_MUSTVEE", "Mustvee"),
	new Array("CITY_POLTSAMAA", "Põltsamaa"),
	new Array("CITY_V_JOGEVA", "Jõgeva vald"),
	new Array("CITY_V_KASEPAA", "Kasepää vald"),
	new Array("CITY_V_PAJUSI", "Pajusi vald"),
	new Array("CITY_V_PALAMUSE", "Palamuse vald"),
	new Array("CITY_V_PALA", "Pala vald"),
	new Array("CITY_V_POLTSAMAA", "Põltsamaa vald"),
	new Array("CITY_V_PUURMANI", "Puurmani vald"),
	new Array("CITY_V_SAARE", "Saare vald"),
	new Array("CITY_V_TABIVERE", "Tabivere vald"),
	new Array("CITY_V_TORMA", "Torma vald")
);
cc["COUNTY_LAANEMAA"] = new Array(
	new Array("CITY_HAAPSALU", "Haapsalu"),
	new Array("CITY_LIHULA", "Lihula"),
	new Array("CITY_V_HANILA", "Hanila vald"),
	new Array("CITY_V_KULLAMAA", "Kullamaa vald"),
	new Array("CITY_V_LIHULA", "Lihula vald"),
	new Array("CITY_V_MARTNA", "Martna vald"),
	new Array("CITY_V_NOAROOTSI", "Noarootsi vald"),
	new Array("CITY_V_NOVA", "Nõva vald"),
	new Array("CITY_V_ORU", "Oru vald"),
	new Array("CITY_V_RIDALA", "Ridala vald"),
	new Array("CITY_V_RISTI", "Risti vald"),
	new Array("CITY_V_TAEBLA", "Taebla vald"),
	new Array("CITY_V_VORMSI", "Vormsi vald")
);
cc["COUNTY_LAANE_VIRUMAA"] = new Array(
	new Array("CITY_KUNDA", "Kunda"),
	new Array("CITY_RAKVERE", "Rakvere"),
	new Array("CITY_TAMSALU", "Tamsalu"),
	new Array("CITY_TAPA", "Tapa"),
	new Array("CITY_V_HALJALA", "Haljala vald"),
	new Array("CITY_V_KADRINA", "Kadrina vald"),
	new Array("CITY_V_LAEKVERE", "Laekvere vald"),
	new Array("CITY_V_RAGAVERE", "Rägavere vald"),
	new Array("CITY_V_RAKKE", "Rakke vald"),
	new Array("CITY_V_RAKVERE", "Rakvere vald"),
	new Array("CITY_V_SOMERU", "Sõmeru vald"),
	new Array("CITY_V_TAMSALU", "Tamsalu vald"),
	new Array("CITY_V_TAPA", "Tapa vald"),
	new Array("CITY_V_VAIKEMAARJA", "Väike-Maarja vald"),
	new Array("CITY_V_VIHULA", "Vihula vald"),
	new Array("CITY_V_VINNI", "Vinni vald"),
	new Array("CITY_V_VIRUNIGULA", "Viru-Nigula vald")
);
cc["COUNTY_PARNUMAA"] = new Array(
	new Array("CITY_PARNU", "Pärnu"),
	new Array("CITY_KILINGI_NOMME", "Kilingi-Nõmme"),
	new Array("CITY_SINDI", "Sindi"),
	new Array("CITY_V_ARE", "Are vald"),
	new Array("CITY_V_AUDRU", "Audru vald"),
	new Array("CITY_V_HAADEMEESTE", "Häädemeeste vald"),
	new Array("CITY_V_HALINGA", "Halinga vald"),
	new Array("CITY_V_KAISMA", "Kaisma vald"),
	new Array("CITY_V_KIHNU", "Kihnu vald"),
	new Array("CITY_V_KOONGA", "Koonga vald"),
	new Array("CITY_V_LAVASSAARE", "Lavassaare vald"),
	new Array("CITY_V_PAIKUSE", "Paikuse vald"),
	new Array("CITY_V_SAARDE", "Saarde vald"),
	new Array("CITY_V_SAUGA", "Sauga vald"),
	new Array("CITY_V_SURJU", "Surju vald"),
	new Array("CITY_V_TAHKURANNA", "Tahkuranna vald"),
	new Array("CITY_V_TOOTSI", "Tootsi vald"),
	new Array("CITY_V_TORI", "Tori vald"),
	new Array("CITY_V_TOSTAMAA", "Tõstamaa vald"),
	new Array("CITY_V_VANDRAALEVI", "Vändra alevi vald"),
	new Array("CITY_V_VANDRA", "Vändra vald"),
	new Array("CITY_V_VARBLA", "Varbla vald")
);
cc["COUNTY_POLVAMAA"] = new Array(
	new Array("CITY_POLVA", "Põlva"),
	new Array("CITY_RAPINA", "Räpina"),
	new Array("CITY_V_AHJA", "Ahja vald"),
	new Array("CITY_V_KANEPI", "Kanepi vald"),
	new Array("CITY_V_KOLLESTE", "Kõlleste vald"),
	new Array("CITY_V_LAHEDA", "Laheda vald"),
	new Array("CITY_V_MIKITAMAE", "Mikitamäe vald"),
	new Array("CITY_V_MOOSTE", "Mooste vald"),
	new Array("CITY_V_ORAVA", "Orava vald"),
	new Array("CITY_V_POLVA", "Põlva vald"),
	new Array("CITY_V_RAPINA", "Räpina vald"),
	new Array("CITY_V_VALGJARVE", "Valgjärve vald"),
	new Array("CITY_V_VARSKA", "Värska vald"),
	new Array("CITY_V_VASTSEKUUSTE", "Vastse-Kuuste vald"),
	new Array("CITY_V_VERIORA", "Veriora vald")
);
cc["COUNTY_RAPLAMAA"] = new Array(
	new Array("CITY_RAPLA", "Rapla"),
	new Array("CITY_V_JARVAKANDI", "Järvakandi vald"),
	new Array("CITY_V_JUURU", "Juuru vald"),
	new Array("CITY_V_KAIU", "Kaiu vald"),
	new Array("CITY_V_KARU", "Käru vald"),
	new Array("CITY_V_KEHTNA", "Kehtna vald"),
	new Array("CITY_V_KOHILA", "Kohila vald"),
	new Array("CITY_V_MARJAMAA", "Märjamaa vald"),
	new Array("CITY_V_RAIKKULA", "Raikküla vald"),
	new Array("CITY_V_RAPLA", "Rapla vald"),
	new Array("CITY_V_VIGALA", "Vigala vald")
);
cc["COUNTY_SAAREMAA"] = new Array(
	new Array("CITY_KURESSAARE", "Kuressaare"),
	new Array("CITY_V_KAARMA", "Kaarma vald"),
	new Array("CITY_V_KARLA", "Kärla vald"),
	new Array("CITY_V_KIHELKONNA", "Kihelkonna vald"),
	new Array("CITY_V_LAIMJALA", "Laimjala vald"),
	new Array("CITY_V_LEISI", "Leisi vald"),
	new Array("CITY_V_LUMANDA", "Lümanda vald"),
	new Array("CITY_V_MUHU", "Muhu vald"),
	new Array("CITY_V_MUSTJALA", "Mustjala vald"),
	new Array("CITY_V_ORISSAARE", "Orissaare vald"),
	new Array("CITY_V_PIHTLA", "Pihtla vald"),
	new Array("CITY_V_POIDE", "Pöide vald"),
	new Array("CITY_V_RUHNU", "Ruhnu vald"),
	new Array("CITY_V_SALME", "Salme vald"),
	new Array("CITY_V_TORGU", "Torgu vald"),
	new Array("CITY_V_VALJALA", "Valjala vald")
);
cc["COUNTY_TARTUMAA"] = new Array(
	new Array("CITY_TARTU", "Tartu"),
	new Array("CITY_ELVA", "Elva"),
	new Array("CITY_KALLASTE", "Kallaste"),
	new Array("CITY_V_ALATSKIVI", "Alatskivi vald"),
	new Array("CITY_V_HAASLAVA", "Haaslava vald"),
	new Array("CITY_V_KAMBJA", "Kambja vald"),
	new Array("CITY_V_KONGUTA", "Konguta vald"),
	new Array("CITY_V_LAEVA", "Laeva vald"),
	new Array("CITY_V_LUUNJA", "Luunja vald"),
	new Array("CITY_V_MAKSA", "Mäksa vald"),
	new Array("CITY_V_MEEKSI", "Meeksi vald"),
	new Array("CITY_V_NOO", "Nõo vald"),
	new Array("CITY_V_PEIPSIAARE", "Peipsiääre vald"),
	new Array("CITY_V_PIIRISSAARE", "Piirissaare vald"),
	new Array("CITY_V_PUHJA", "Puhja vald"),
	new Array("CITY_V_RANNU", "Rannu vald"),
	new Array("CITY_V_RONGU", "Rõngu vald"),
	new Array("CITY_V_TAHTVERE", "Tähtvere vald"),
	new Array("CITY_V_TARTU", "Tartu vald"),
	new Array("CITY_V_ULENURME", "Ülenurme vald"),
	new Array("CITY_V_VARA", "Vara vald"),
	new Array("CITY_V_VONNU", "Võnnu vald")
);
cc["COUNTY_VALGAMAA"] = new Array(
	new Array("CITY_VALGA", "Valga"),
	new Array("CITY_OTEPAA", "Otepää"),
	new Array("CITY_TORVA", "Tõrva"),
	new Array("CITY_V_HELME", "Helme vald"),
	new Array("CITY_V_HUMMULI", "Hummuli vald"),
	new Array("CITY_V_KARULA", "Karula vald"),
	new Array("CITY_V_ORU_943", "Õru vald"),
	new Array("CITY_V_OTEPAA", "Otepää vald"),
	new Array("CITY_V_PALUPERA", "Palupera vald"),
	new Array("CITY_V_PODRALA", "Põdrala vald"),
	new Array("CITY_V_PUKA", "Puka vald"),
	new Array("CITY_V_SANGASTE", "Sangaste vald"),
	new Array("CITY_V_TAHEVA", "Taheva vald"),
	new Array("CITY_V_TOLLISTE", "Tõlliste vald")
);
cc["COUNTY_VILJANDIMAA"] = new Array(
	new Array("CITY_VILJANDI", "Viljandi"),
	new Array("CITY_ABJA_PALUOJA", "Abja-Paluoja"),
	new Array("CITY_KARKSI_NUIA", "Karksi-Nuia"),
	new Array("CITY_MOISAKYLA", "Mõisaküla"),
	new Array("CITY_SUURE_JAANI", "Suure-Jaani"),
	new Array("CITY_VOHMA", "Võhma"),
	new Array("CITY_V_ABJA", "Abja vald"),
	new Array("CITY_V_HALLISTE", "Halliste vald"),
	new Array("CITY_V_KARKSI", "Karksi vald"),
	new Array("CITY_V_KOLGAJAANI", "Kolga-Jaani vald"),
	new Array("CITY_V_KOO", "Kõo vald"),
	new Array("CITY_V_KOPU", "Kõpu vald"),
	new Array("CITY_V_PAISTU", "Paistu vald"),
	new Array("CITY_V_PARSTI", "Pärsti vald"),
	new Array("CITY_V_SAAREPEEDI", "Saarepeedi vald"),
	new Array("CITY_V_SUUREJAANI", "Suure-Jaani vald"),
	new Array("CITY_V_TARVASTU", "Tarvastu vald"),
	new Array("CITY_V_VIIRATSI", "Viiratsi vald")
);
cc["COUNTY_VORUMAA"] = new Array(
	new Array("CITY_VORU", "Võru"),
	new Array("CITY_ANTSLA", "Antsla"),
	new Array("CITY_V_ANTSLA", "Antsla vald"),
	new Array("CITY_V_HAANJA", "Haanja vald"),
	new Array("CITY_V_LASVA", "Lasva vald"),
	new Array("CITY_V_MEREMAE", "Meremäe vald"),
	new Array("CITY_V_MISSO", "Misso vald"),
	new Array("CITY_V_MONISTE", "Mõniste vald"),
	new Array("CITY_V_ROUGE", "Rõuge vald"),
	new Array("CITY_V_SOMERPALU", "Sõmerpalu vald"),
	new Array("CITY_V_URVASTE", "Urvaste vald"),
	new Array("CITY_V_VARSTU", "Varstu vald"),
	new Array("CITY_V_VASTSELIINA", "Vastseliina vald"),
	new Array("CITY_V_VORU", "Võru vald")
);
//////////
function changeCitySelBoxItems(formName, srcObj, destObjName, hiddenDestObjName) {
	var destObj = eval("document."+formName+"."+destObjName);
	var destObjSelKey = destObj.options[destObj.selectedIndex].value;
	var srcObjSelkey = srcObj.options[srcObj.selectedIndex].value;

  //alert(srcObjSelkey);

  if(!loadedCounties[srcObjSelkey]){
    loadDataForCounty(srcObjSelkey);
  }
	var destObjOpts = destObj.options;
	var selId = 0;
	if (!isDefaultOptsLoaded) {
		for (i=0; i<destObjOpts.length ;i++) {
			if (i == 0) {
				defaultOption = destObjOpts[i];
			}
			defaultOpts[i] = destObjOpts[i];
		}
		isDefaultOptsLoaded = true;
	}
	destObjOpts.length = 0;
	destObjOpts[0] = defaultOption;
	if (srcObjSelkey == null || srcObjSelkey.length == 0 || cc[srcObjSelkey] == null) {
		for (i=0; i<defaultOpts.length; i++) {
			destObjOpts[i] = defaultOpts[i];

			if (eval("document.forms['"+formName+"']."+hiddenDestObjName).value == destObjOpts[i].value) {
				selId = i;
			}

		}
	}
	else {
		for (i=0; i<cc[srcObjSelkey].length; i++) {
			var val = eval("cc['"+srcObjSelkey+"']["+i+"]");
			destObjOpts[i+1] = new Option(val[1], val[0]);

			if (eval("document.forms['"+formName+"']."+hiddenDestObjName).value == val[0]) {
				selId = i+1;
			}

		}
	}
	destObj.selectedIndex = selId;
}


function changeCitypartSelBoxItems(formName, srcObj, destObjName, hiddenSrcObjName, hiddenDestObjName) {
	var destObj = eval("document."+formName+"."+destObjName);
 var selIndex = destObj.selectedIndex;
 if (selIndex == -1) {
    selIndex = 0;
 }
	var destObjSelKey = destObj.options[selIndex].value;
	var srcObjSelkey = srcObj.options[srcObj.selectedIndex].value;

	var hiddenSrcObj=eval("document.forms['"+formName+"']."+hiddenSrcObjName);

	hiddenSrcObj.value=srcObjSelkey;

	var destObjOpts = destObj.options;
	var selId = 0;
	if (!isCcpDefaultOptsLoaded) {
		ccpDefaultOption = destObjOpts[0];
		isCcpDefaultOptsLoaded = true;
	}
	destObjOpts.length = 0;
	destObjOpts[0] = ccpDefaultOption;
	if (isCcpFirstLoad && srcObj.selectedIndex == 0) {
		// Show 'Tallinn' cityparts on page load
    //disabled to allow for ajax-loading the properties
    //srcObj.selectedIndex=1;
		//srcObjSelkey = "CITY_TALLINN";
	}

 /** variable selCityparts(Array) is generated from servlet and holds multiple selected cityparts */
 var selCityparts;
 try {
    selCityparts = selectedCityparts;
 } catch(err) {
    selCityparts = new Array();
 }

	var hiddenDestObj=eval("document."+formName+"."+hiddenDestObjName);

 if (hiddenDestObj.value.indexOf(";") > -1 && selCityparts.length == 0) {
 	selCityparts = hiddenDestObj.value.split(";");
 }
	if (!(srcObjSelkey == null || srcObjSelkey.length == 0 || c_cp[srcObjSelkey] == null)) {
		for (i=0; i<c_cp[srcObjSelkey].length; i++) {
			var val = eval("c_cp['"+srcObjSelkey+"']["+i+"]");
			destObjOpts[i+1] = new Option(val[1], val[0]);

         if (selCityparts.length == 0) {
			    if (hiddenDestObj.value == val[0]) {
				   selId = i+1;
			    }
         } else {
             for (j=0; j<selCityparts.length; j++) {
                 if (selCityparts[j] == val[0]) {
                     destObjOpts[i+1].selected = true;
                 }
             }
         }

		}
	}
	if (!destObj.multiple) {
		destObj.selectedIndex = selId;
	} else {
		selIndex = selId;
	}
	isCcpFirstLoad = false;
}


function loadDataForCounty(id){
  obj = new AjaxObject("GET", "city/js/cityparts/" + id + ".js", dataLoaded);
  loadedCounties[id]=true;
}

function dataLoaded(resp){
  eval(resp.responseText);
}



function AjaxObject(method, url, callback){


	var xmlHttp;
	var callback;

	try{  // Firefox, Opera 8.0+, Safari
		xmlHttp=new XMLHttpRequest();
	}
	catch (e){    // Internet Explorer
		try{
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e){
			try{
				xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e){
				Alert("Ajaxi tugi puudub!");
			}
		}
	}

	this.setCallback = function(f){
      this.callback = f;
  }

  this.send = function(method, url, callback){


      if(callback){
        this.setCallback(callback);
      }

      xmlHttp.open(method, url, true);


      if(this.callback){

          xmlHttp.onreadystatechange = function(){

              if(xmlHttp.readyState == 4 && xmlHttp.status==200){
                  callback(xmlHttp);
              }
          }
      }

      xmlHttp.send(null);

  }


  if(method && url){
    this.send(method, url, callback);
  }
}
