  //function init_checks() { gei("city_select_yes").checked = true; gei("city_select_yes").checked = false; }

  function first_click(obj) { if (obj.alt == 0) { obj.value = ""; obj.alt = 1; if (obj.name == "password") { obj.parentNode.innerHTML = "<input id='password' name='password' type='password' value='' class='login_field' onclick='first_click(this);' onkeypress='first_click(this);' onfocus='first_click(this);' alt='1' />"; setTimeout("gei('password').focus();",100); } } }

  function gei(v) { return document.getElementById(v); }
  function setPos(el,x,y) { if (window.ActiveXObject) { el.style.pixelLeft = x; el.style.pixelTop = y; } else { el.style.left = x+"px"; el.style.top = y+"px"; } }
  function div_hide(ele) { gei(ele).style.display = 'none'; }
  function div_show(ele) { gei(ele).style.display = 'block'; }
  function show_hide_faq(ele) { ele = "faq_"+ele.toString(); if (gei(ele).style.display == 'block') { div_hide(ele); } else { div_show(ele); } }
  function less(val) { gei(val).value = parseInt(gei(val).value)-1; if ((gei(val).value == "NaN") || (gei(val).value < 0)) { gei(val).value = 0; } }
  function more(val) { gei(val).value = parseInt(gei(val).value)+1; if ((gei(val).value == "NaN") || (gei(val).value < 0)) { gei(val).value = 0; } }
  function open_quote() {
    pageTracker._trackPageview('/quote_open');

    var nv = gei("qf_num_vehicles").value;

    if (IsNumeric(nv) == false) { nv = 1; }
    if (nv < 0) { nv = 1; }

    //init_checks();

    gei("q_error").innerHTML = "";
    gei("q_error_div").style.display = "none";
    gei("quote_vehicles").innerHTML = "You have chosen to receive a quotation for "+nv.toString()+" vehicle(s).";
    gei("q_units").value = nv;
    gei("q_contact").value = gei("qf_name").value;
    gei("q_phone").value = gei("qf_phone").value;
    gei("q_email").value = gei("qf_email").value;

    gei("q_name").value ="";
    gei("q_price_plan").value = 0;
    gei("q_rec").checked = false;
    //gei("q_city_display").style.display = "none";
    //gei("q_city_other_display").style.display = "none";
    gei("submit_quote_button").innerHTML = "Get Quotation";

    gei("quote_house").style.position = "absolute";
    div_show("quote_div_box");
  }

  function close_quote() { div_hide("quote_div_box"); }
   
  function getCookie(c_name) {
    if (document.cookie.length>0) {
      c_start=document.cookie.indexOf(c_name + "=");
      if (c_start!=-1) {
        c_start=c_start + c_name.length+1;
        c_end=document.cookie.indexOf(";",c_start);
        if (c_end==-1) c_end=document.cookie.length;
        return unescape(document.cookie.substring(c_start,c_end));
      }
    }
    return "__NOCOOKIE__";
  }
 
  //function show_city(val) { if (val == 1) { gei("q_city_display").style.display = "none"; gei("q_city_other_display").style.display = ""; } else { gei("q_city_display").style.display = ""; gei("q_city_other_display").style.display = "none"; } }

  function submit_done() {
    close_quote();
    gei("qf_name").value = "";
    gei("qf_phone").value = "";
    gei("qf_email").value = "";
    gei("qf_num_vehicles").value = "";
  }

  function submit_form() {
    if (submit_check()) {
      gei("submit_quote_button").innerHTML = "Thank you!";
      document.forms.quote_form.submit();
      setTimeout("submit_done()",1000);
    }
  }

  function submit_check() {
    var temp = getCookie("__utmz");

    pos = temp.indexOf(".");
    len = temp.length;
    if (pos > 0) {
      new_temp = temp.substr((pos+1),(len-pos-1));
      pos3 = new_temp.indexOf(".");
      if (pos3 <= 0) { site = new_temp; } else { site = new_temp.substr(0,(pos3)); }
      gei("q_visitor").value = site;    
    } else { gei("q_visitor").value = "__U__"; }

    pos = temp.indexOf("utmctr=");
    len = temp.length;
    if (pos > 0) {
      new_temp = temp.substr((pos+7),(len-pos-7));
      pos3 = new_temp.indexOf("|");
      if (pos3 <= 0) { site = new_temp; } else { site = new_temp.substr(0,(pos3)); }
      gei("q_search_terms").value = site;    
    } else { gei("q_search_terms").value = "__NOTERMS__"; }

    pos = temp.indexOf("utmcmd=");
    len = temp.length;
    if (pos > 0) {
      new_temp = temp.substr((pos+7),(len-pos-7));
      pos3 = new_temp.indexOf("|");
      if (pos3 <= 0) { site = new_temp; } else { site = new_temp.substr(0,(pos3)); }
      gei("q_search_source").value = site;    
    } else { gei("q_search_source").value = "__NOSOURCE__"; }

    pos = temp.indexOf("utmcsr=");
    len = temp.length;
    if (pos > 0) {
      new_temp = temp.substr((pos+7),(len-pos-7));
      pos3 = new_temp.indexOf("|");
      if (pos3 <= 0) { site = new_temp; } else { site = new_temp.substr(0,(pos3)); }
      gei("q_search_source").value = gei("q_search_source").value+" ("+site+")";
    }

    pos = temp.indexOf("utmcsr=");
    pos2 = temp.indexOf("utmcct=");
    if (pos2 > 0) {
      new_temp = temp.substr((pos+7),(len-pos-7));
      pos3 = new_temp.indexOf("|");
      if (pos3 <= 0) { site = new_temp; } else { site = new_temp.substr(0,(pos3)); }
      site = new_temp.substr(0,(pos3));
      new_temp = temp.substr((pos2+7),(len-pos2-7));
      pos3 = new_temp.indexOf("|");
      if (pos3 <= 0) { new_temp = new_temp; } else { new_temp = new_temp.substr(0,(pos3)); }
      gei("q_search_terms").value = gei("q_search_terms").value+" (ref) "+site+new_temp;
    }
    
    var error = "";
    if (gei("q_price_plan").value == 0) { error += "You have not specified a pricing plan<br />"; }
    //if (gei("city_select_yes").checked) {
      if (gei("q_city").value == "NA") { error += "You have not specified a city<br />"; }
    //}
    //if (gei("city_select_no").checked) {
    //  if (gei("q_city_other").value == "") { error += "You have not specified an area<br />"; }
    //}
    //if ((gei("city_select_yes").checked == false) && (gei("city_select_no").checked == false)) { error += "You have not specified a city<br />"; }
    //if (gei("q_city").value == "O") { if (gei("q_city_other").value.length == 0) { error += "You have not specified a city<br />"; } }
    if (gei("q_units").value == 0) { error += "You have not specified a number of vehicles<br />"; }
    if (IsNumeric(gei("q_units").value) == false) { error += "You have not specified a number of vehicles<br />"; }
    if (gei("q_units").value >= 100) { error += "For orders of 100 vehicles or more please contact iTrack Live directly<br />"; }
    //if (gei("q_name").value.length < 3) { error += "You have not specified a valid Company Name<br />"; }
    if (gei("q_contact").value.length < 3) { error += "You have not specified a valid contact person<br />"; }
    if (gei("q_phone").value.length < 6) { error += "You have not specified a valid contact number<br />"; }
    if (echeck(gei("q_email").value) == false) { error += "You have not entered a valid email address<br />"; }
    if (error.length > 0) {
      gei("q_error_div").style.display = "";
      gei("q_error").innerHTML = error;
      return false;
    } else {
      gei("q_error").innerHTML = "";
      gei("q_error_div").style.display = "none";
      return true;
    }
    return false;
  }

  function echeck(str) {
    var at="@"
		var dot="."
		var lat=str.indexOf(at)
		var lstr=str.length
		var ldot=str.indexOf(dot)
  	if ((str==null)||(str=="")){ return false; }
		if (str.indexOf(at)==-1){ return false; }
		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){ return false; }
		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){ return false; }
 	  if (str.indexOf(at,(lat+1))!=-1){ return false; }
		if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){ return false; }
		if (str.indexOf(dot,(lat+2))==-1){ return false; }	
		if (str.indexOf(" ")!=-1){ return false; }
		if (str[str.length-1]==dot){ return false; }
		return true					
	}

  function IsNumeric(sText)
  {
    var ValidChars = "0123456789";
    var IsNumber=true;
    var Char; 
    for (i=0;(i<sText.length)&&(IsNumber==true);i++) { if (ValidChars.indexOf(sText.charAt(i)) == -1) { IsNumber = false; } }
    return IsNumber;
   }

  testimonial_list = new Array();
  testimonial_list.push(new Array("iTrack Live has minimised our fuel expenses, and reduced the wear-and-tear on our fleet. It is a great investment, and one that I have not regretted.","Sheldon","Coast Guard Security, Ballito"));
  testimonial_list.push(new Array("We are using iTrack Live to monitor and maintain high service levels to our customers as well as our own company, and to report on vehicle usage.","Anthony Lakay","Tongaat Huletts Sugar"));
  testimonial_list.push(new Array("iTrack Live is the best investment I’ve ever made!! I use iTrack Live to monitor my deliveries, and save up to 2 hours on trips to Pretoria. I can also divert my trucks to do other pick-ups, because I know exactly where they are and what routes they can use.","Pieter","Paint & Equipment, Boksburg"));
  testimonial_list.push(new Array("I can track my driver on his deliveries, and see exactly how far, and where he is. I don’t have to call all the time to check up on him. It saves me a lot of frustration and irritation.","Inge Markgraaff","Westhouse South Africa"));
  testimonial_list.push(new Array("I can really say that we can watch exactly where our driver is going, what speed he is driving at, where he parked last, and for how long he was at an unsafe location. Please keep up the good service...","Sonja Madelein van Wyk","Revenue Consulting (Pty) Ltd, Pretoria"));
  testimonial_list.push(new Array("We use iTrack Live to check the taxi routes for our planning purposes. This allows us to reduce the travel distances and fuel costs. We also have alternative products in other vehicles and iTrack Live beats them hands down. We will definitely be moving to iTrack Live once the contracts are up.","Justyn Harrison","Port Elizabeth"));
  testimonial_list.push(new Array("iTrack Live has reduced our fuel consumption because of the speeding alert that I get emailed to me. My drivers are also no longer making turns at their houses because of the no-go zone alert I have setup using iTrack Live. I would recommend this product to anyone.","Oscar Jasman","365 Transport Solution, Cape Town"));
  testimonial_list.push(new Array("We track our Area Managers on doing their rounds to various sites in Gauteng. Wow, what an awesome tool. The day we went live their rounds increased ten fold. Thanks iTrack Live.","Clint Ralph","Smart Waste<br />www.smartwaste.co.za"));

  function populateTestimonials(sel) {    
    if (sel == -1) { sel = Math.floor(Math.random()*testimonial_list.length); }
    sel = sel + 1;
    if (sel >= testimonial_list.length) { sel = 0; }
    gei("testimonial").innerHTML = '"'+testimonial_list[sel][0]+'"';
    gei("testimonial_name").innerHTML = testimonial_list[sel][1];
    gei("testimonial_place").innerHTML = testimonial_list[sel][2];
    setTimeout("populateTestimonials("+sel+")",16000);
  }

  function init_wait() { setTimeout(init,100);  }
  function init()
  {
    var hash;
    var dispQuote = true;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    for(var i = 0; i < hashes.length; i++) {      
      hash = hashes[i].split('=');
      if (urldecode(hash[0]) == "result") { } // do nothing
      if (urldecode(hash[0]) == "webref") { document.getElementById('q_webref').href = urldecode(hash[1]); }
      if (urldecode(hash[0]) == "email") { if (urldecode(hash[1]).length > 0) { document.getElementById('q_email').innerHTML = "<p>A quotation has been generated and sent to the following email address: <a href='mailto:"+urldecode(hash[1])+"'>"+urldecode(hash[1])+"</a>.</p>"; } }
      if (urldecode(hash[0]) == "quotenum") { document.getElementById('q_quotenum').innerHTML = urldecode(hash[1]); document.getElementById('q_webref').innerHTML = "#"+urldecode(hash[1]); }
      if (urldecode(hash[0]) == "area") { if (urldecode(hash[1]) == "outside") { dispQuote = false; } }     
    }
    if (dispQuote) { gei("quote").style.display = ""; } else { gei("no_quote").style.display = ""; }
  }

  function urldecode(str) {    
    var histogram = {}, ret = str.toString(), unicodeStr='', hexEscStr='';
    
    var replacer = function(search, replace, str) {
        var tmp_arr = [];
        tmp_arr = str.split(search);
        return tmp_arr.join(replace);
    };
    
    histogram["'"]   = '%27';
    histogram['(']   = '%28';
    histogram[')']   = '%29';
    histogram['*']   = '%2A';
    histogram['~']   = '%7E';
    histogram['!']   = '%21';
    histogram['%20'] = '+';
    histogram['\u00DC'] = '%DC';
    histogram['\u00FC'] = '%FC';
    histogram['\u00C4'] = '%D4';
    histogram['\u00E4'] = '%E4';
    histogram['\u00D6'] = '%D6';
    histogram['\u00F6'] = '%F6';
    histogram['\u00DF'] = '%DF'; 
    histogram['\u20AC'] = '%80';
    histogram['\u0081'] = '%81';
    histogram['\u201A'] = '%82';
    histogram['\u0192'] = '%83';
    histogram['\u201E'] = '%84';
    histogram['\u2026'] = '%85';
    histogram['\u2020'] = '%86';
    histogram['\u2021'] = '%87';
    histogram['\u02C6'] = '%88';
    histogram['\u2030'] = '%89';
    histogram['\u0160'] = '%8A';
    histogram['\u2039'] = '%8B';
    histogram['\u0152'] = '%8C';
    histogram['\u008D'] = '%8D';
    histogram['\u017D'] = '%8E';
    histogram['\u008F'] = '%8F';
    histogram['\u0090'] = '%90';
    histogram['\u2018'] = '%91';
    histogram['\u2019'] = '%92';
    histogram['\u201C'] = '%93';
    histogram['\u201D'] = '%94';
    histogram['\u2022'] = '%95';
    histogram['\u2013'] = '%96';
    histogram['\u2014'] = '%97';
    histogram['\u02DC'] = '%98';
    histogram['\u2122'] = '%99';
    histogram['\u0161'] = '%9A';
    histogram['\u203A'] = '%9B';
    histogram['\u0153'] = '%9C';
    histogram['\u009D'] = '%9D';
    histogram['\u017E'] = '%9E';
    histogram['\u0178'] = '%9F';
 
    for (unicodeStr in histogram) {
        hexEscStr = histogram[unicodeStr];
        ret = replacer(hexEscStr, unicodeStr, ret);
    }
    ret = decodeURIComponent(ret); 
    return ret;
  }

  function popCities() {
    cities_array = new Array();

    cities_array.push("------------------------------------");

    cities_array.push("Bloemfontein");
    cities_array.push("Cape Town");
    cities_array.push("Durban");
    cities_array.push("East London");
    cities_array.push("Johannesburg");
    cities_array.push("Pietermaritzburg");
    cities_array.push("Port Elizabeth");
    cities_array.push("Pretoria");

    cities_array.push("------------------------------------");

    cities_array.push("Aankoms");
    cities_array.push("Aberdeen");
    cities_array.push("Acornhoek");
    cities_array.push("Addo");
    cities_array.push("Adelaide");
    cities_array.push("Afguns");
    cities_array.push("Aggeneys");
    cities_array.push("Albertina");
    cities_array.push("Alberton");
    cities_array.push("Alexander Bay");
    cities_array.push("Alexandra");
    cities_array.push("Alexandria");
    cities_array.push("Alice");
    cities_array.push("Allanridge");
    cities_array.push("Alldays");
    cities_array.push("Amalia");
    cities_array.push("Amalienstein");
    cities_array.push("Amanzimtoti");
    cities_array.push("Amersfoort");
    cities_array.push("Amsterdam");
    cities_array.push("Andriesvale");
    cities_array.push("Anysspruit");
    cities_array.push("Argent");
    cities_array.push("Arlington");
    cities_array.push("Arniston");
    cities_array.push("Ashton");
    cities_array.push("Askham");
    cities_array.push("Atlantis");
    cities_array.push("Atteridgeville");
    cities_array.push("Augrabies");
    cities_array.push("Aureus");
    cities_array.push("Aurora");
    cities_array.push("Avoca");
    cities_array.push("Avontuur");
    cities_array.push("Baardskeerdersbos");
    cities_array.push("Babanango");
    cities_array.push("Babelegi");
    cities_array.push("Badplaas");
    cities_array.push("Balfour");
    cities_array.push("Balgowan");
    cities_array.push("Ballito");
    cities_array.push("Balmoral");
    cities_array.push("Bandelierkop");
    cities_array.push("Bankkop");
    cities_array.push("Ba-Phalaborwa");
    cities_array.push("Barberton");
    cities_array.push("Barkly West");
    cities_array.push("Barrydale");
    cities_array.push("Bathurst");
    cities_array.push("Beaufort West");
    cities_array.push("Bedford");
    cities_array.push("Beeshoek");
    cities_array.push("Beestekraal");
    cities_array.push("Bekkersdal");
    cities_array.push("Bela-Bela");
    cities_array.push("Belfast");
    cities_array.push("Benoni");
    cities_array.push("Berbice");
    cities_array.push("Bergville");
    cities_array.push("Berlin");
    cities_array.push("Bethal");
    cities_array.push("Bethlehem");
    cities_array.push("Bethulie");
    cities_array.push("Bettiesdam");
    cities_array.push("Betty's Bay");
    cities_array.push("Bhisho");
    cities_array.push("Bhongweni");
    cities_array.push("Bitterfontein");
    cities_array.push("Bizana");
    cities_array.push("Black Rock");
    cities_array.push("Bloemfontein");
    cities_array.push("Bloemhof");
    cities_array.push("Bochum");
    cities_array.push("Boipatong");
    cities_array.push("Boksburg");
    cities_array.push("Bonnievale");
    cities_array.push("Bophelong");
    cities_array.push("Bosbokrand");
    cities_array.push("Boshof");
    cities_array.push("Boston");
    cities_array.push("Bot River");
    cities_array.push("Botha AH");
    cities_array.push("Bothaville");
    cities_array.push("Botshabelo");
    cities_array.push("Brakpan");
    cities_array.push("Branddraai");
    cities_array.push("Brandfort");
    cities_array.push("Brandvlei");
    cities_array.push("Brandwacht");
    cities_array.push("Braunschweig");
    cities_array.push("Bray");
    cities_array.push("Bredasdorp");
    cities_array.push("Breyten");
    cities_array.push("Brits");
    cities_array.push("Britstown");
    cities_array.push("Broederstroom");
    cities_array.push("Bronberg");
    cities_array.push("Brondal");
    cities_array.push("Bronkhorstspruit");
    cities_array.push("Buffelsjagbaai");
    cities_array.push("Bultfontein");
    cities_array.push("Bulwer");
    cities_array.push("Bushbuckridge");
    cities_array.push("Byrne");
    cities_array.push("Caledon");
    cities_array.push("Calitzdorp");
    cities_array.push("Calvinia");
    cities_array.push("Campbell");
    cities_array.push("Cape Town");
    cities_array.push("Carletonville");
    cities_array.push("Carnarvon");
    cities_array.push("Carolina");
    cities_array.push("Carolusberg");
    cities_array.push("Cathcart");
    cities_array.push("Cato Ridge");
    cities_array.push("Cedarville");
    cities_array.push("Centurion");
    cities_array.push("Ceres");
    cities_array.push("Charlestown");
    cities_array.push("Chintsa");
    cities_array.push("Chrissiesmeer");
    cities_array.push("Christiana");
    cities_array.push("Citrusdal");
    cities_array.push("Clanwilliam");
    cities_array.push("Clarens");
    cities_array.push("Clocolan");
    cities_array.push("Cloetesville");
    cities_array.push("Coffee Bay");
    cities_array.push("Colenso");
    cities_array.push("Colesberg");
    cities_array.push("Coligny");
    cities_array.push("Concordia");
    cities_array.push("Cookhouse");
    cities_array.push("Copperton");
    cities_array.push("Cornelia");
    cities_array.push("Cradock");
    cities_array.push("Culemborg Park");
    cities_array.push("Cullinan");
    cities_array.push("Dalsig");
    cities_array.push("Dalton");
    cities_array.push("Danielskuil");
    cities_array.push("Dannhauser");
    cities_array.push("Dargle");
    cities_array.push("Darling");
    cities_array.push("Davale");
    cities_array.push("Daveyton");
    cities_array.push("De Aar");
    cities_array.push("De Doorns");
    cities_array.push("De Kelders");
    cities_array.push("De Rust");
    cities_array.push("Dealesville");
    cities_array.push("Delareyville");
    cities_array.push("Delmas");
    cities_array.push("Delportshoop");
    cities_array.push("Dendron");
    cities_array.push("Deneysville");
    cities_array.push("Derby");
    cities_array.push("Despatch");
    cities_array.push("Devon");
    cities_array.push("Dewetsdorp");
    cities_array.push("Dibeng");
    cities_array.push("Die Boord");
    cities_array.push("Diepdale");
    cities_array.push("Diepgezet");
    cities_array.push("Dingleton");
    cities_array.push("Dohne");
    cities_array.push("Doonside");
    cities_array.push("Dordrecht");
    cities_array.push("Doringbaai");
    cities_array.push("Douglas");
    cities_array.push("Drummond");
    cities_array.push("Duduza");
    cities_array.push("Duiwelskloof");
    cities_array.push("Dullstroom");
    cities_array.push("Dundee");
    cities_array.push("Dundonald");
    cities_array.push("Durban");
    cities_array.push("Dwarskloof");
    cities_array.push("Dysselsdorp");
    cities_array.push("East London");
    cities_array.push("Edenburg");
    cities_array.push("Edenvale");
    cities_array.push("Edenville");
    cities_array.push("Eendekuil");
    cities_array.push("Eerstehoek");
    cities_array.push("Eikepark");
    cities_array.push("Ekangala");
    cities_array.push("Ekulindeni");
    cities_array.push("ekuPhakameni");
    cities_array.push("Eland");
    cities_array.push("Elandsbaai");
    cities_array.push("Elandslaagte");
    cities_array.push("Elgin");
    cities_array.push("Elim");
    cities_array.push("Elliot");
    cities_array.push("Elukwatini");
    cities_array.push("Embhuleni");
    cities_array.push("Empangeni");
    cities_array.push("Emphuluzi");
    cities_array.push("Enkhaba");
    cities_array.push("Ermelo");
    cities_array.push("Eshowe");
    cities_array.push("Estcourt");
    cities_array.push("Evaton");
    cities_array.push("Excelsior");
    cities_array.push("Fauresmith");
    cities_array.push("Ficksburg");
    cities_array.push("Finsbury");
    cities_array.push("Flagstaff");
    cities_array.push("Fochville");
    cities_array.push("Fort Beaufort");
    cities_array.push("Fouriesburg");
    cities_array.push("Frankfort");
    cities_array.push("Franklin");
    cities_array.push("Franschhoek");
    cities_array.push("Franskraal");
    cities_array.push("Fraserburg");
    cities_array.push("Gansbaai");
    cities_array.push("Ganyesa");
    cities_array.push("Ga-Rankuwa");
    cities_array.push("Garies");
    cities_array.push("Gcuwa");
    cities_array.push("Genadendal");
    cities_array.push("George");
    cities_array.push("Germiston");
    cities_array.push("Glencoe");
    cities_array.push("Glenmore");
    cities_array.push("Gonubie");
    cities_array.push("Gouda");
    cities_array.push("Graaff Reinet");
    cities_array.push("Graafwater");
    cities_array.push("Grabouw");
    cities_array.push("Grahamstown");
    cities_array.push("Graskop");
    cities_array.push("Gravelotte");
    cities_array.push("Great Brak River");
    cities_array.push("Green Hills");
    cities_array.push("Greylingstad");
    cities_array.push("Greyton");
    cities_array.push("Greytown");
    cities_array.push("Griquatown");
    cities_array.push("Groblershoop");
    cities_array.push("Groot Marico");
    cities_array.push("Groot-Elandsvlei AH");
    cities_array.push("Haarlem");
    cities_array.push("Haenertsburg");
    cities_array.push("Haga-Haga");
    cities_array.push("Hamburg");
    cities_array.push("Hammanskraal");
    cities_array.push("Hangklip");
    cities_array.push("Hankey");
    cities_array.push("Hanover");
    cities_array.push("Harburg");
    cities_array.push("Harding");
    cities_array.push("Harrismith");
    cities_array.push("Hartbeesfontein");
    cities_array.push("Hartbeespoort");
    cities_array.push("Hartebeeskop");
    cities_array.push("Hartenbos");
    cities_array.push("Hartswater");
    cities_array.push("Hattingspruit");
    cities_array.push("Hazyview");
    cities_array.push("Hectorspruit");
    cities_array.push("Hectorton");
    cities_array.push("Heidelberg");
    cities_array.push("Heilbron");
    cities_array.push("Hekpoort");
    cities_array.push("Hekpoort");
    cities_array.push("Helikon Park");
    cities_array.push("Hennenman");
    cities_array.push("Hermanus");
    cities_array.push("Hermon");
    cities_array.push("Hertzog");
    cities_array.push("Hertzogville");
    cities_array.push("Hibberdene");
    cities_array.push("Hillcrest");
    cities_array.push("Hillside");
    cities_array.push("Hilton");
    cities_array.push("Himeville");
    cities_array.push("Hluhluwe");
    cities_array.push("Hobhouse");
    cities_array.push("Hoedspruit");
    cities_array.push("Hogsback");
    cities_array.push("Home Lake");
    cities_array.push("Hondeklip");
    cities_array.push("Hoopstad");
    cities_array.push("Hopefield");
    cities_array.push("Hopetown");
    cities_array.push("Hotazel");
    cities_array.push("Howick");
    cities_array.push("Humansdorp");
    cities_array.push("Hutchinson");
    cities_array.push("Idas Valley");
    cities_array.push("Idutywa");
    cities_array.push("Ifafa Beach");
    cities_array.push("Illovo Beach");
    cities_array.push("Impendile");
    cities_array.push("Impumelelo");
    cities_array.push("Inanda");
    cities_array.push("Ingwavuma");
    cities_array.push("Irene");
    cities_array.push("Isando");
    cities_array.push("Isipingo Beach");
    cities_array.push("Itumeleng");
    cities_array.push("Ixopo");
    cities_array.push("Jacobsdal");
    cities_array.push("Jagersfontein");
    cities_array.push("Jan Kempdorp");
    cities_array.push("Jeffreys Bay");
    cities_array.push("Jericho");
    cities_array.push("Johannesburg");
    cities_array.push("Joubertina");
    cities_array.push("Kaapmuiden");
    cities_array.push("Kagiso");
    cities_array.push("Kakamas");
    cities_array.push("Kalbaskraal");
    cities_array.push("Kamieskroon");
    cities_array.push("Kanoneiland");
    cities_array.push("Kareedouw");
    cities_array.push("Karendal");
    cities_array.push("Karridene");
    cities_array.push("Katberg");
    cities_array.push("Kathu");
    cities_array.push("Katlehong");
    cities_array.push("Kayamandi");
    cities_array.push("Kei Mouth");
    cities_array.push("Keimoes");
    cities_array.push("Keiskammahoek");
    cities_array.push("Kelso");
    cities_array.push("Kempton Park");
    cities_array.push("Kenhardt");
    cities_array.push("Kentani");
    cities_array.push("Kenton-on-Sea");
    cities_array.push("Kestell");
    cities_array.push("Kgotsong");
    cities_array.push("Khutsong");
    cities_array.push("Kidds Beach");
    cities_array.push("Kimberley");
    cities_array.push("King William's Town");
    cities_array.push("Kingsburgh");
    cities_array.push("Kinross");
    cities_array.push("Kirkwood");
    cities_array.push("Klaarstroom");
    cities_array.push("Klaserie");
    cities_array.push("Klawer");
    cities_array.push("Kleinbaai");
    cities_array.push("Kleinmond");
    cities_array.push("Kleinzee");
    cities_array.push("Klerksdorp");
    cities_array.push("Kloof");
    cities_array.push("Knysna");
    cities_array.push("Kocksoord");
    cities_array.push("Koelenhof");
    cities_array.push("Koffiefontein");
    cities_array.push("Kokstad");
    cities_array.push("Komatipoort");
    cities_array.push("Komga");
    cities_array.push("Koppies");
    cities_array.push("Koringberg");
    cities_array.push("Kosmos");
    cities_array.push("Koster");
    cities_array.push("Krakeelrivier");
    cities_array.push("Kranskop");
    cities_array.push("Kromdraai");
    cities_array.push("Kroondal");
    cities_array.push("Kroonstad");
    cities_array.push("Krugersdorp");
    cities_array.push("Kuruman");
    cities_array.push("KwaDukuza");
    cities_array.push("KwaMashu");
    cities_array.push("KwaMhlanga");
    cities_array.push("KwaThema");
    cities_array.push("La Coline");
    cities_array.push("La Lucia");
    cities_array.push("La Mercy");
    cities_array.push("Ladismith");
    cities_array.push("Lady Frere");
    cities_array.push("Ladybrand");
    cities_array.push("Ladysmith");
    cities_array.push("L'Agulhas");
    cities_array.push("Laingsburg");
    cities_array.push("Lamberts Bay");
    cities_array.push("Langebaan");
    cities_array.push("Leeudoringstad");
    cities_array.push("Leeu-Gamka");
    cities_array.push("Lehurutshe");
    cities_array.push("Leipoldtville");
    cities_array.push("Lenasia");
    cities_array.push("Lephalale");
    cities_array.push("Lethabong/Haartebeesfontien");
    cities_array.push("Letsitele");
    cities_array.push("Leydsdorp");
    cities_array.push("Libode");
    cities_array.push("Lichtenburg");
    cities_array.push("Lime Acres");
    cities_array.push("Lindley");
    cities_array.push("Little Brak River");
    cities_array.push("Lochie");
    cities_array.push("Loeriesfontein");
    cities_array.push("Loopspruit");
    cities_array.push("Louis Trichardt");
    cities_array.push("Louisvale");
    cities_array.push("Loumarina");
    cities_array.push("Louwsburg");
    cities_array.push("Loxton");
    cities_array.push("Luckhoff");
    cities_array.push("Lusikisiki");
    cities_array.push("Lydenburg");
    cities_array.push("Lynedoch");
    cities_array.push("Maanhaarrand");
    cities_array.push("Mabopane");
    cities_array.push("Machadodorp");
    cities_array.push("Madadeni");
    cities_array.push("Mafikeng");
    cities_array.push("Magaliesburg");
    cities_array.push("Mahlabatini");
    cities_array.push("Makeleketla");
    cities_array.push("Makwassie");
    cities_array.push("Malelane");
    cities_array.push("Malgas");
    cities_array.push("Malmesbury");
    cities_array.push("Mamelodi");
    cities_array.push("Mamre");
    cities_array.push("Mandini");
    cities_array.push("Mangaung");
    cities_array.push("Marble Hall");
    cities_array.push("Mareetsane");
    cities_array.push("Margate");
    cities_array.push("Marikana");
    cities_array.push("Marquard");
    cities_array.push("Marydale");
    cities_array.push("Matatiele");
    cities_array.push("Matjiesfontein");
    cities_array.push("Mbhejeka");
    cities_array.push("McGregor");
    cities_array.push("Mdantsane");
    cities_array.push("Melkbosstrand");
    cities_array.push("Melmoth");
    cities_array.push("Memel");
    cities_array.push("Merrivale");
    cities_array.push("Merweville");
    cities_array.push("Messina");
    cities_array.push("Meyerton");
    cities_array.push("Middelburg");
    cities_array.push("Middelvlei");
    cities_array.push("Midrand");
    cities_array.push("Mier");
    cities_array.push("Millside");
    cities_array.push("Mkuze");
    cities_array.push("Mmabatho");
    cities_array.push("Modder River");
    cities_array.push("Moddergat");
    cities_array.push("Modimolle");
    cities_array.push("Modjadjiskloof");
    cities_array.push("Mogwadi");
    cities_array.push("Mogwase");
    cities_array.push("Mohlakeng");
    cities_array.push("Mokopane");
    cities_array.push("Montagu");
    cities_array.push("Mooinooi");
    cities_array.push("Mooiplaas");
    cities_array.push("Mooiriver");
    cities_array.push("Mookgophong");
    cities_array.push("Moorreesburg");
    cities_array.push("Morgan's Bay");
    cities_array.push("Morgenzon");
    cities_array.push("Mossel Bay");
    cities_array.push("Mostertsdrift");
    cities_array.push("Mothibastad");
    cities_array.push("Mount Edgecombe");
    cities_array.push("Mount Fletcher");
    cities_array.push("Mount Frere");
    cities_array.push("Mthatha (previously Umtata)");
    cities_array.push("Mtubatuba");
    cities_array.push("Mtunzini");
    cities_array.push("Muden");
    cities_array.push("Muldersdrift");
    cities_array.push("Munsieville");
    cities_array.push("Murraysburg");
    cities_array.push("Musina");
    cities_array.push("Nababeep");
    cities_array.push("Naboomspruit");
    cities_array.push("Napier");
    cities_array.push("Nature's Valley");
    cities_array.push("Nelspoort");
    cities_array.push("Nelspruit");
    cities_array.push("New Germany");
    cities_array.push("New Hanover");
    cities_array.push("Newcastle");
    cities_array.push("Ngcobo");
    cities_array.push("Nieu-Bethesda");
    cities_array.push("Nieuwoudtville");
    cities_array.push("Nigel");
    cities_array.push("Nongoma");
    cities_array.push("Noodsberg");
    cities_array.push("Norvalspont");
    cities_array.push("Nottingham Road");
    cities_array.push("Noupoort");
    cities_array.push("Nuwerus");
    cities_array.push("Nylstroom");
    cities_array.push("Odendaalsrus");
    cities_array.push("Ofcolaco");
    cities_array.push("Ohrigstad");
    cities_array.push("Okiep");
    cities_array.push("Olifantshoek");
    cities_array.push("Onseepkans");
    cities_array.push("Op die Berg");
    cities_array.push("Orania");
    cities_array.push("Oranjeville");
    cities_array.push("Orkney");
    cities_array.push("Ottosdal");
    cities_array.push("Ottoshoop");
    cities_array.push("Oudtshoorn");
    cities_array.push("Oyster Bay");
    cities_array.push("Paarl");
    cities_array.push("Palm Beach");
    cities_array.push("Pampierstad");
    cities_array.push("Panvlak Gold Mine");
    cities_array.push("Papendorp");
    cities_array.push("Park Rynie");
    cities_array.push("Parys");
    cities_array.push("Patensie");
    cities_array.push("Paternoster");
    cities_array.push("Paul Roux");
    cities_array.push("Paulpietersburg");
    cities_array.push("Pearly Beach");
    cities_array.push("Peddie");
    cities_array.push("Pella");
    cities_array.push("Pelzvale");
    cities_array.push("Pennington");
    cities_array.push("Perdekop");
    cities_array.push("Petrus Steyn");
    cities_array.push("Petrusburg");
    cities_array.push("Petrusville");
    cities_array.push("Phalaborwa");
    cities_array.push("Philippolis");
    cities_array.push("Philipstown");
    cities_array.push("Phuthaditjhaba");
    cities_array.push("Piet Retief");
    cities_array.push("Pietermaritzburg");
    cities_array.push("Piketberg");
    cities_array.push("Pilgrim's Rest");
    cities_array.push("Pinetown");
    cities_array.push("Plettenberg Bay");
    cities_array.push("Pofadder");
    cities_array.push("Polokwane");
    cities_array.push("Pomeroy");
    cities_array.push("Pongola");
    cities_array.push("Port Alfred");
    cities_array.push("Port Edward");
    cities_array.push("Port Elizabeth");
    cities_array.push("Port Nolloth");
    cities_array.push("Port Shepstone");
    cities_array.push("Port St Johns");
    cities_array.push("Porterville");
    cities_array.push("Postmasburg");
    cities_array.push("Potchefstroom");
    cities_array.push("Potgietersrus");
    cities_array.push("Pretoria");
    cities_array.push("Prieska");
    cities_array.push("Prince Albert");
    cities_array.push("Prince Alfred's Hamlet");
    cities_array.push("Pringle Bay");
    cities_array.push("Putsonderwater");
    cities_array.push("Qolora Mouth");
    cities_array.push("Queensburgh");
    cities_array.push("Ramokoka");
    cities_array.push("Ramsgate");
    cities_array.push("Randburg");
    cities_array.push("Randfontein");
    cities_array.push("Randgate");
    cities_array.push("Randpoort");
    cities_array.push("Ratanda");
    cities_array.push("Rawsonville");
    cities_array.push("Rayton");
    cities_array.push("Reddersburg");
    cities_array.push("Redelinghuys");
    cities_array.push("Refilwe");
    cities_array.push("Reiger Park");
    cities_array.push("Reitz");
    cities_array.push("Reivilo");
    cities_array.push("Richards Bay");
    cities_array.push("Richmond");
    cities_array.push("Riebeek Kasteel");
    cities_array.push("Riebeek West");
    cities_array.push("Riemvasmaak");
    cities_array.push("Rietpoort");
    cities_array.push("Rikasrus AH");
    cities_array.push("Riversdale");
    cities_array.push("Riviersonderend");
    cities_array.push("Robertson");
    cities_array.push("Robin Park");
    cities_array.push("Roedtan");
    cities_array.push("Roodepoort");
    cities_array.push("Rooiels");
    cities_array.push("Rosendal");
    cities_array.push("Rouxville");
    cities_array.push("Rustenburg");
    cities_array.push("Sabie");
    cities_array.push("Saldanha");
    cities_array.push("Salem");
    cities_array.push("Salt Rock");
    cities_array.push("Sandton");
    cities_array.push("Sannieshof");
    cities_array.push("Saron");
    cities_array.push("Sasolburg");
    cities_array.push("Schweizer-Reneke");
    cities_array.push("Scottburgh");
    cities_array.push("Sebokeng");
    cities_array.push("Secunda");
    cities_array.push("Sedgefield");
    cities_array.push("Senekal");
    cities_array.push("Senwabarwana");
    cities_array.push("Seshego");
    cities_array.push("Setlagole");
    cities_array.push("Seymour");
    cities_array.push("Sezela");
    cities_array.push("Sharpeville");
    cities_array.push("Shelly Beach");
    cities_array.push("Simonsig");
    cities_array.push("Siyabuswa");
    cities_array.push("Skeerpoort");
    cities_array.push("Skukuza");
    cities_array.push("Smithfield");
    cities_array.push("Soebatsfontein");
    cities_array.push("Somerset East");
    cities_array.push("Soshanguve");
    cities_array.push("Southbroom");
    cities_array.push("Soweto");
    cities_array.push("Springbok");
    cities_array.push("Springfontein");
    cities_array.push("Springs");
    cities_array.push("St Francis Bay");
    cities_array.push("St Helena Bay");
    cities_array.push("St Lucia");
    cities_array.push("St Michael's-on-Sea");
    cities_array.push("Standerton");
    cities_array.push("Stanford");
    cities_array.push("Steinkopf");
    cities_array.push("Stella");
    cities_array.push("Stellenbosch");
    cities_array.push("Steynsrus");
    cities_array.push("Steytlerville");
    cities_array.push("Stilbaai");
    cities_array.push("Stilfontein");
    cities_array.push("Strandfontein");
    cities_array.push("Struisbaai");
    cities_array.push("Strydenburg");
    cities_array.push("Stutterheim");
    cities_array.push("Sunland");
    cities_array.push("Sutherland");
    cities_array.push("Suurbraak");
    cities_array.push("Swartberg");
    cities_array.push("Swartruggens");
    cities_array.push("Swellendam");
    cities_array.push("Swinburne");
    cities_array.push("Tarkastad");
    cities_array.push("Tarlton");
    cities_array.push("Taung");
    cities_array.push("Tembisa");
    cities_array.push("Tenacre ");
    cities_array.push("Thaba Nchu");
    cities_array.push("Thabazimbi");
    cities_array.push("Theunissen");
    cities_array.push("Thohoyandou");
    cities_array.push("Thokoza");
    cities_array.push("Three Sisters");
    cities_array.push("Tlhabane");
    cities_array.push("Toekomsrus");
    cities_array.push("Tongaat");
    cities_array.push("Tosca");
    cities_array.push("Touws River");
    cities_array.push("Trawal");
    cities_array.push("Trichardt");
    cities_array.push("Trompsburg");
    cities_array.push("Tsakane");
    cities_array.push("Tsolo");
    cities_array.push("Tulbagh");
    cities_array.push("Tweeling");
    cities_array.push("Tweespruit");
    cities_array.push("Tzaneen");
    cities_array.push("Ubombo");
    cities_array.push("Uitenhage");
    cities_array.push("Ulundi");
    cities_array.push("Umbogintwini");
    cities_array.push("Umdloti");
    cities_array.push("Umgababa");
    cities_array.push("Umhlanga Rocks");
    cities_array.push("Umkomaas");
    cities_array.push("Umtentweni");
    cities_array.push("Umzimkulu");
    cities_array.push("Umzinto");
    cities_array.push("Umzumbe");
    cities_array.push("Underberg");
    cities_array.push("Uniondale");
    cities_array.push("Universiteitsoord");
    cities_array.push("Upington");
    cities_array.push("Utrecht");
    cities_array.push("Uvongo");
    cities_array.push("Vaalbank");
    cities_array.push("Vaalwater");
    cities_array.push("Van Reenen");
    cities_array.push("Van Stadensrus");
    cities_array.push("Van Wyksvlei");
    cities_array.push("Van Zylsrus");
    cities_array.push("Vanderbijlpark");
    cities_array.push("Vanderkloof");
    cities_array.push("Vanrhynsdorp");
    cities_array.push("Vanwyksdorp");
    cities_array.push("Velddrif");
    cities_array.push("Ventersburg");
    cities_array.push("Ventersdorp");
    cities_array.push("Vereeniging");
    cities_array.push("Verkeerdevlei");
    cities_array.push("Verulam");
    cities_array.push("Victoria Bay");
    cities_array.push("Victoria West");
    cities_array.push("Viljoenskroon");
    cities_array.push("Villiers");
    cities_array.push("Villiersdorp");
    cities_array.push("Virginia");
    cities_array.push("Vivo");
    cities_array.push("Vlottenburg");
    cities_array.push("Voëltjiesdorp");
    cities_array.push("Volksrust");
    cities_array.push("Vosburg");
    cities_array.push("Vosloorus");
    cities_array.push("Vrede");
    cities_array.push("Vredefort");
    cities_array.push("Vredenburg");
    cities_array.push("Vredendal");
    cities_array.push("Vryburg");
    cities_array.push("Vryheid");
    cities_array.push("Waenhuiskrans");
    cities_array.push("Wakkerstroom");
    cities_array.push("Warden");
    cities_array.push("Warner Beach");
    cities_array.push("Warrenton");
    cities_array.push("Wartburg");
    cities_array.push("Wasbank");
    cities_array.push("Waterval Boven");
    cities_array.push("Waterval Onder");
    cities_array.push("Wattville");
    cities_array.push("Weenen");
    cities_array.push("Welkom");
    cities_array.push("Wellington");
    cities_array.push("Wepener");
    cities_array.push("Wesselsbron");
    cities_array.push("West Porges");
    cities_array.push("Westergloor");
    cities_array.push("Westonaria");
    cities_array.push("Westville");
    cities_array.push("Wheatlands AH");
    cities_array.push("White River");
    cities_array.push("Whittlesea");
    cities_array.push("Widenham");
    cities_array.push("Wilbotsdal AH");
    cities_array.push("Wilderness");
    cities_array.push("Williston");
    cities_array.push("Willowmore");
    cities_array.push("Willowvale");
    cities_array.push("Winburg");
    cities_array.push("Windsorton");
    cities_array.push("Winkelspruit");
    cities_array.push("Winterton");
    cities_array.push("Witbank");
    cities_array.push("Witsand");
    cities_array.push("Wolmaransstad");
    cities_array.push("Wolseley");
    cities_array.push("Worcester");
    cities_array.push("Wupperthal");
    cities_array.push("York");
    cities_array.push("Yzerfontein");
    cities_array.push("Zastron");
    cities_array.push("Zebedeila");
    cities_array.push("Zeerust");
    cities_array.push("Zenzele");
    cities_array.push("Zion City Moria");
    cities_array.push("Zithobeni");
    cities_array.push("Zoar");
    build_cities = '';
    //gei('q_city').options.push(new Option('<option value="NA" selected>Please select your city...</option>'));
    //for (i=0;i<cities_array.length;i++) { build_cities += '<option value="'+cities_array[i]+'">'+cities_array[i]+'</option>'; }
    //gei('q_city').options[0] = new Option('Please select your city...');
    for (i=0;i<cities_array.length;i++) { gei('q_city').options[i+1] = new Option(cities_array[i]); gei('q_city').options[i+1].value = cities_array[i]; }
    //gei('q_city').innerHTML = gei('q_city').innerHTML + build_cities;
  }

