/** Here are geathered js methods that perform common tasks independent of booking proccess.  **/

/**
 * Returns value in double type
 */
function toDouble(num) {
  num = Math.round(num * 100);
  num = parseFloat(num / 100);
  if (num == parseInt(num)) {
    return(num + ".00");
  }
  else if ((num * 10) == parseInt(num * 10)) {
    return(num + "0");
  }
  return(num);
}

/**
 * Cuts out string from another string, if cutting part not found - initial string is returned.
 *
 * @param initial string
 * @param str cutting part.
 */
function cutString(initial, str) {
  var fromIndex = initial.indexOf(str);
  if (fromIndex == -1) {
    return initial;
  }
  var toIndex = fromIndex + str.length;
  var newstr = initial.substring(0, fromIndex) + initial.substring(toIndex, initial.length);
  return newstr;
}

/**
 * Performs text parts replacement.
 *
 * @param text initial text.
 * @param substring initial text substring, which will be replaced.
 * @param replacement found substrings replacement.
 */
function replaceAll(text, substring, replacement) {
  while (text.indexOf(substring) > -1) {
    text = text.replace(substring, replacement);
  }
  return text;
}

/**
 * Trims string white space from the left.
 *
 * @param value string for triming from the left.
 */
function LTrim(value) {
  var re = /\s*((\S+\s*)*)/;
  return value.replace(re, "$1");
}

/**
 * Finds html element position on screen and returns this as an array of coordinates [x, y].
 *
 * @param obj html object
 */
function findPos(obj) {
  var curleft = curtop = 0;
  while (obj = obj.offsetParent) {
    curleft += obj.offsetLeft;
    curtop += obj.offsetTop;
  }
  return [curleft,curtop];
}

var body_height = 0;

function sendActiveRequest(request) {
  try {
    xmlHttp = new ActiveXObject('Msxml2.XMLHTTP');
  }
  catch(e) {
    try {
      xmlHttp = new ActiveXObject('Microsoft.XMLHTTP');
    }
    catch(e) {
      if (typeof XMLHttpRequest != 'undefined') {
        xmlHttp = new XMLHttpRequest();
      }
      else {
        alert('Ajax disabled!');
        return false;
      }
    }
  }

  xmlHttp.open('POST', request, false);
  xmlHttp.send(null);

  return xmlHttp.responseText;
}

function getActiveTerms(supplierId, priceListId) {
  // Show popup
  getObj('divContent').innerHTML = '';
  getObj('divWnd').style.left = curX;
  getObj('divWnd').style.top = curY;
  showDiv('divWnd');

  var url = projectPath + "/terms.do?carSupplierId=" + supplierId;

  if (priceListId) {
    url += "&priceListId=" + priceListId;
  }

  var response = sendActiveRequest(url);

  elem = document.getElementById('terms_n_conditions');
  elem.innerHTML = response;
  getObj('divContent').innerHTML = getObj('term').innerHTML;
  return false;
}

function getPackageInfo(locationId, elementId) {
  return getPackageInfo(locationId, elementId, true);
}

function getPackageInfo(locationId, elementId, rightSide) {
  getObj('divContent').innerHTML = '';
  if (rightSide) {
    setPos('divWnd', findPosX(elementId) - 216, findPosY(elementId) + 21);
  }                                                              
  else {
    setPos('divWnd', findPosX(elementId), findPosY(elementId) + 21);
  }
  showDiv('divWnd');

  var url = projectPath + "/packageInfo.do?locationId=" + locationId;
  var response = sendActiveRequest(url);

  var elem = document.getElementById('package_info');
  elem.innerHTML = response;
  getObj('divContent').innerHTML = getObj('packageInfo').innerHTML;
  return false;
}

function getAorBooking(aorId) {
  getObj('divContent').innerHTML = '';
  var elementId = 'aorDesc' + aorId;
  setPos('divWnd', findPosX(elementId), findPosY(elementId));
  showDiv('divWnd');

  var url = projectPath + "/newRentalSelection.do?id=" + aorId;
  var response = sendActiveRequest(url);

  var elem = document.getElementById('aorBooking_info');
  elem.innerHTML = response;
  getObj('divContent').innerHTML = getObj('aorBookingInfo').innerHTML;
  return false;
}

function getAorExtras(aorId) {
  getObj('divContent').innerHTML = '';
  getObj('divWnd').style.left = curX;
  getObj('divWnd').style.top = curY;
  showDiv('divWnd');

  var elem = document.getElementById('extra_info');
  elem.innerHTML = $('extra' + aorId).innerHTML;
  getObj('divContent').innerHTML = getObj('extraInfo').innerHTML;
  return false;
}

function getActiveVoucher(resNum, email) {
  // Show popup
  getObj('divContent').innerHTML = '';
  getObj('divWnd').style.left = curX;
  getObj('divWnd').style.top = curY;
  showDiv('divWnd');

  var url = projectPath + "/voucher.do?email=" + email + "&resnum=" + resNum;
  var response = sendActiveRequest(url);

  elem = document.getElementById('voucher');
  elem.innerHTML = response;
  getObj('divContent').innerHTML = getObj('voucherWnd').innerHTML;
  return false;
}

/**
 * Returns date in format dd/MM/yyyy
 * Date is taken from day_id,mon_id,year_id input fields
 */
function get_date_from_fields(day_id, mon_id, year_id) {
  var d = document.getElementById(day_id).value;
  var m = document.getElementById(mon_id).value;
  var y = document.getElementById(year_id).value;

  var dd = new Date(y, m - 1, d);

  return formatDate(dd, "dd/MM/yyyy");
}

/**
 * Call id calendar button for dropoff date is clicked
 * Opens calendar widget
 */
function choose_dropoff_date() {
  var dropoff_date_value = document.getElementById('dropoff_date_value');
  dropoff_date_value.value = get_date_from_fields('dropOffDay', 'dropOffMon', 'dropOffYear');

  var d = document.getElementById('pickUpDay').value
  var m = document.getElementById('pickUpMon').value
  var y = document.getElementById('pickUpYear').value

  var now = new Date(y, m - 1, d);
  now.setDate(now.getDate() - 1);

  dropoff_cal.addDisabledDates(null, formatDate(now, "yyyy-MM-dd"));
  dropoff_cal.select(dropoff_date_value, 'dropoff_date_link', 'dd/MM/yyyy');
  return false;
}

/**
 * Called by calendar. Makes selected date active
 * in dropdowns
 */
function dropoff_cal_return(y, m, d) {
  select_item('dropOffYear', y);
  manageDate('dropOffDay', 'dropOffMon', 'dropOffYear');
  select_item('dropOffMon', m);
  manageDate('dropOffDay', 'dropOffMon', 'dropOffYear');
  select_item('dropOffDay', d);
  update_dropoff_hours();
}

/**
 * Called if calendar pickup button clicked
 * Opens calendar
 */
function choose_pickup_date() {
  var pickup_date_value = document.getElementById('pickup_date_value');
  pickup_date_value.value = get_date_from_fields('pickUpDay', 'pickUpMon', 'pickUpYear');

  var now = new Date();
  with (now) setDate(getDate() - 1);

  pickup_cal.addDisabledDates(null, formatDate(now, "yyyy-MM-dd"));
  pickup_cal.select(pickup_date_value, 'pickup_date_link', 'dd/MM/yyyy');
  return false;
}

/**
 * Called by calendar after choosing date.
 * Makes selected date active in dropdowns
 */
function pickup_cal_return(y, m, d) {
  select_item('pickUpYear', y);
  manageDate('pickUpDay', 'pickUpMon', 'pickUpYear');
  select_item('pickUpMon', m);
  manageDate('pickUpDay', 'pickUpMon', 'pickUpYear');
  select_item('pickUpDay', d);

  update_dropoff();
  update_pickup_hours();
}

/**
 * Update dropoff time
 */
function update_dropoff() {
  var d = document.getElementById('pickUpDay').value;
  var m = document.getElementById('pickUpMon').value;
  var y = document.getElementById('pickUpYear').value;

  var drop_d = document.getElementById('dropOffDay').value;
  var drop_m = document.getElementById('dropOffMon').value;
  var drop_y = document.getElementById('dropOffYear').value;

  var drop_time = new Date(drop_y, drop_m - 1, drop_d);
  var time = new Date(y, m - 1, d);

  if (drop_time <= time) {
    time.setDate(time.getDate() + 1);
    dropoff_cal_return(time.getFullYear(), time.getMonth() + 1, time.getDate());
  }
}

/**
 * Fill hours
 */
function update_pickup_hours() {
  reloadLocationPickUpTime('pickUpLocationId');
  if ($('is_same_loc').checked) {
    reloadLocationDropOffTime('pickUpLocationId');
  }
  checkPickUpTime();
  checkDropOffTime();
}

function update_dropoff_hours() {
  if ($('is_same_loc').checked) {
    reloadLocationDropOffTime('pickUpLocationId');
  }
  else {
    reloadLocationDropOffTime('dropOffLocationId');
  }
  checkPickUpTime();
  checkDropOffTime();
}

/**
 * Crossbrowser height sending
 */
function listen_height() {
  var new_height = 0;

  if (navigator.appName && navigator.appName == "Opera") {
    new_height = document.body.offsetHeight;
  }
  else {
    new_height = document.body.clientHeight;
  }

  if (body_height == new_height) {
    return;
  }

  send_height();
  body_height = new_height;
}

function init_height_listener() {
  if (top != self) {
    setInterval('listen_height()', 500);
  }
}


/**
 * Selects value in dropdown list
 */
function select_item(id, value) {
  var obj = getObj(id);

  for (var i = 0; i < obj.options.length; i++) {
    obj.options[i].selected = obj.options[i].value == value;
  }
}


function setInitialValues(bookingBean) {
  return;
  //	fillCarSubgroup('carSubgroup');
  fillDropCountry('pickUpCountryId');
  fillDropCountry('dropOffCountryId');
  var time = new Date();

  time.setDate(time.getDate() + 1);
  year = time.getFullYear();
  month = time.getMonth();
  day = time.getDate();

  for (i = 0; i < 3; i++) getObj('pickUpYear').options[i] = new Option(year + i, year + i);
  select_item('pickUpMon', month + 1);
  select_item('pickUpDay', day);

  time.setDate(time.getDate() + 1);
  var year = time.getFullYear();
  var month = time.getMonth();
  var day = time.getDate();

  for (i = 0; i < 3; i++) getObj('dropOffYear').options[i] = new Option(year + i, year + i);
  select_item('dropOffMon', month + 1);
  select_item('dropOffDay', day);
}

function fillCarSubgroup(objID) {
  var obj = getObj(objID);
  var request = "<CarGroupRQ />";
  var rqnode = getDocElement(request);

  obj.remove(1);

  var x;
  for (var i = 0; i < rqnode.childNodes.length; i++) {
    if (rqnode.childNodes.item(i).childNodes.length == 0) continue;
    x = rqnode.childNodes.item(i).childNodes.item(0).nodeValue;
    obj.options[i + 1] = new Option(x, x);
  }
}

function fillDropCountry(objID) {
  var obj = getObj(objID);
  var request = "<CountryRQ lang='" + activeLang + "'/>";
  var rqnode = getDocElement(request);
  emptyDropDown(2, obj);

  var x;
  for (var i = 0; i < rqnode.childNodes.length; i++) {
    x = rqnode.childNodes.item(i).childNodes.item(0).nodeValue;
    obj.options[i + 1] = new Option(x, x);
  }
}

function fillDropCountry2(countryID, cityID, locID, objID) {
  var obj = getObj(objID);
  var country = getObj(countryID).value;
  var city = getObj(cityID).value;
  var loc = getObj(locID).value;

  var request = "<DropCountryRQ lang='" + activeLang + "'><LocID>" + loc + "</LocID><City>" + city + "</City><Country>" + country + "</Country></DropCountryRQ>";
  var rqnode = getDocElement(request);

  emptyDropDown(2, obj);

  var x;
  for (var i = 0; i < rqnode.childNodes.length; i++) {
    x = rqnode.childNodes.item(i).childNodes.item(0).nodeValue;
    obj.options[i + 1] = new Option(x, x);

    if (x == country) obj.options[i + 1].selected = true;
  }
}

function fillDropCity(countryID, objID) {
  var obj = getObj(objID);
  var country = getDropDownValue(countryID);

  var request = "<CityRQ lang='" + activeLang + "'><CountryName>" + country + "</CountryName></CityRQ>"
  var rqnode = getDocElement(request);
  emptyDropDown(2, obj);

  var x;
  for (var i = 0; i < rqnode.childNodes.length; i++) {
    x = rqnode.childNodes.item(i).childNodes.item(0).nodeValue;
    obj.options[i + 1] = new Option(x, x);
  }
}

function fillDropCity2(countryID, cityID, locID, objID) {
  var obj = getObj(objID);
  var country = getObj(countryID).value;
  var city = getObj(cityID).value;
  var loc = getObj(locID).value;

  var request = "<DropCityRQ lang='" + activeLang + "'><LocID>" + loc + "</LocID><City>" + city + "</City><Country>" + country + "</Country><DropCountry>" + country + "</DropCountry></DropCityRQ>";
  var rqnode = getDocElement(request);

  emptyDropDown(2, obj);

  var x;
  for (var i = 0; i < rqnode.childNodes.length; i++) {
    x = rqnode.childNodes.item(i).childNodes.item(0).nodeValue;
    obj.options[i + 1] = new Option(x, x);
    if (x == city) obj.options[i + 1].selected = true;
  }
}

function fillDropLoc(countryID, cityID, objID) {
  var obj = getObj(objID);
  var country = getDropDownValue(countryID);
  var city = getDropDownValue(cityID);

  var request = "<LocRQ lang='" + activeLang + "'><CountryName>" + country + "</CountryName><CityName>" + city + "</CityName></LocRQ>";
  var rqnode = getDocElement(request);
  emptyDropDown(2, obj);

  var locName;
  var id;
  for (var i = 0; i < rqnode.childNodes.length; i++) {
    locName = rqnode.childNodes.item(i).childNodes.item(0).nodeValue;
    id = rqnode.childNodes.item(i).attributes.getNamedItem('id').nodeValue;
    obj.options[i + 1] = new Option(locName, id);
  }
}

function fillDropLoc2(countryID, cityID, locID, objID) {
  var obj = getObj(objID);
  var country = getObj(countryID).value;
  var city = getObj(cityID).value;
  var loc = getObj(locID).value;

  var request = "<DropLocRQ lang='" + activeLang + "'><LocID>" + loc + "</LocID><City>" + city + "</City><Country>" + country + "</Country><DropCountry>" + country + "</DropCountry><DropCity>" + city + "</DropCity></DropLocRQ>";
  var rqnode = getDocElement(request);
  emptyDropDown(2, obj);

  var locName;
  var id;
  for (var i = 0; i < rqnode.childNodes.length; i++) {
    locName = rqnode.childNodes.item(i).childNodes.item(0).nodeValue;
    id = rqnode.childNodes.item(i).attributes.getNamedItem('id').nodeValue;
    obj.options[i + 1] = new Option(locName, id);
    if (id == loc) obj.options[i + 1].selected = true;
  }
}

function selectDropoff(pickId, dropId) {
  var pickup = getObj(pickId);
  var dropoff = getObj(dropId);

  if (pickup.selectedIndex) {
    var pickName = pickup.options[pickup.selectedIndex].text;

    for (var i = 0; i < dropoff.options.length; i++) {
      if (dropoff.options[i].text == pickName) {
        dropoff.options[i].selected = true;
        break;
      }
    }
  }
//  getObj('_dropOffCountry').value = getObj('dropOffCountry').value;
//  getObj('_dropOffCity').value = getObj('dropOffCity').value;
//  getObj('_dropOffLocId').value = getObj('dropOffLocId').value;
}

function searchLoc(searchID, resultID) {
  var search = getObj(searchID);
  var result = getObj(resultID);
  var text = search.value;

  if (text.length < 3) {
    return;
  }

  var type = text.length == 3 ? 1 : 0;

  var request = '<SearchLocRQ lang="' + activeLang + '" type="' + type + '" pickLoc="" >' + text + '</SearchLocRQ>';
  var rqnode = getDocElement(request);

  result.options.length = 0;

  var loc;
  var id;
  var city;
  var country;
  var code;
  for (var i = 0; i < rqnode.childNodes.length; i++) {
    loc = rqnode.childNodes.item(i).childNodes.item(0).nodeValue;
    id = rqnode.childNodes.item(i).attributes.getNamedItem('id').nodeValue;
    city = rqnode.childNodes.item(i).attributes.getNamedItem('city').nodeValue;
    country = rqnode.childNodes.item(i).attributes.getNamedItem('country').nodeValue;
    code = rqnode.childNodes.item(i).attributes.getNamedItem('airportcode').nodeValue;
    if (code.length > 0) code = " [" + code + "]";
    result.options[i] = new Option(loc + code + ", " + city + ", " + country, id);
  }

  result.options[result.options.length] = new Option("Can't find it?", "_ADVANCED_SEARCH_");

  result.size = result.options.length > 20 ? 20 : result.options.length;

  showDiv(resultID + 'Div');
}

function manageDate(dayID, monthID, yearID) {
  //  var dayObj = getObj(dayID);
  //  emptyDropDown(31, dayObj);
  //  var daysInMonth = getDaysInMonth(getDropDownValue(monthID) - 1, getDropDownValue(yearID));

  //  for (var i = 28; i < daysInMonth + 1; i++) {
  //    dayObj.options[i - 1] = new Option(i, i);
  //  }
}

function getDaysInMonth(month, year) {
  var daysInMonth = [31,28,31,30,31,30,31,31,30,31,30,31];
  return (month == 1) && (year % 4 == 0) && ((year % 100 != 0) || (year % 400 == 0)) ? 29 : daysInMonth[month];
}

function emptyDropDown(from, obj) {
  for (; ;) {
    if (obj.options.length >= from) {
      obj.remove(obj.options.length - 1);
    }
    else {
      return;
    }
  }
}

function setPickUpParam(loc, countryID, cityID, locID) {
  var request = "<UpdateLocInfoRQ><LocId>" + loc + "</LocId></UpdateLocInfoRQ>";
  var rqnode = getDocElement(request);
  var country = rqnode.childNodes.item(0).childNodes.item(0).nodeValue;
  var city = rqnode.childNodes.item(1).childNodes.item(0).nodeValue;
  loc = rqnode.childNodes.item(2).childNodes.item(0).nodeValue;

  getObj(countryID).value = country;
  getObj(cityID).value = city;
  getObj(locID).value = loc;
}

function send_height() {
  var height = 0;

  height = navigator.appName && navigator.appName == "Opera" ? document.body.offsetHeight + 100 : document.body.clientHeight + 50;

  if (top != self) {
    var x = "http://www.atlaschoice.com/resp.htm#height=" + height;
    var iframe_str = '<iframe id="returndata" style="visibility: hidden;width: 192px; height: 1px" src="' + x + '"></iframe>';
    document.getElementById('divframe').innerHTML = iframe_str;
  }
}

function submit_to_car_hire() {
  var pickUpCountry = $F('pickUpCountryId');
  var pickUpCity = $F('pickUpCityId');
  var pickUpLocId = $F('pickUpLocationId');

  var dropOffCountry;
  var dropOffCity;
  var dropOffLocId;

  if (getObj('is_same_loc').checked) {
    dropOffCountry = pickUpCountry;
    dropOffCity = pickUpCity;
    dropOffLocId = pickUpLocId;
  }
  else {
    dropOffCountry = $F('dropOffCountryId');
    dropOffCity = $F('dropOffCityId');
    dropOffLocId = $F('dropOffLocationId');
  }

  var pickUpDay = getObj('pickUpDay').value;
  var pickUpMon = getObj('pickUpMon').value;
  var pickUpYear = getObj('pickUpYear').value;

  var dropOffDay = getObj('dropOffDay').value;
  var dropOffMon = getObj('dropOffMon').value;
  var dropOffYear = getObj('dropOffYear').value;

  var pickUpHour = getObj('pickUpHour').value;
  var pickUpMin = getObj('pickUpMin').value;
  var dropOffHour = getObj('dropOffHour').value;
  var dropOffMin = getObj('dropOffMin').value;

  var fineSearchCarClass = getObj('fineSearchCarClass').value;
  var driverAge = getObj('driverAge').value;
  var promCode = getObj('promCode').value;
  var residenceCountry = getObj('residenceCountry').value;

  var error = '';
  if (!pickUpLocId || pickUpLocId == '0') error += $("msg_selectPickUpLocation").innerHTML + "\n";
  if (!dropOffLocId || dropOffLocId == '0') error += $("msg_selectDropOffLocation").innerHTML + "\n";
  if (driverAge == '') error += $("msg_emptyDriverAge").innerHTML + "\n";

  if (pickUpHour == 'closed') error += $("msg_pickUpLocationClosed").innerHTML + "\n";
  if (dropOffHour == 'closed') error += $("msg_dropOffLocationClosed").innerHTML + "\n";

  pickupTime = pickUpYear + pickUpMon + pickUpDay + pickUpHour + pickUpMin;
  dropoffTime = dropOffYear + dropOffMon + dropOffDay + dropOffHour + dropOffMin;

  var pickupTime = new Date(pickUpYear, pickUpMon - 1, pickUpDay, pickUpHour, pickUpMin);
  var dropoffTime = new Date(dropOffYear, dropOffMon - 1, dropOffDay, dropOffHour, dropOffMin);
  var currentTime = new Date();

  if (dropoffTime < pickupTime) error += $("msg_dropOffTimeBeforePickUpTime").innerHTML + "\n";

  if (pickupTime < currentTime || dropoffTime < currentTime) {
    error += $("msg_pickUpTimeInThePast").innerHTML + "\n";
  }

  if (error != '') {
    alert(error);
    return;
  }

  var url = "deeplink.do?";

  url += "fineSearchCarClass=" + fineSearchCarClass;
  url += "&driverAge=" + driverAge;
  url += "&lang=" + activeLang;
  url += "&marketId=" + marketId;
  url += "&residenceCountry=" + residenceCountry;

  url += "&pickupCountryId=" + pickUpCountry;
  url += "&pickupCityId=" + pickUpCity;
  url += "&pickupLocationId=" + pickUpLocId;
  url += "&pickupDateTime=" + pickUpYear + "-" + pickUpMon + "-" + pickUpDay + " " + pickUpHour + ":" + pickUpMin;

  url += "&dropoffCountryId=" + dropOffCountry;
  url += "&dropoffCityId=" + dropOffCity;
  url += "&dropoffLocationId=" + dropOffLocId;
  url += "&dropoffDateTime=" + dropOffYear + "-" + dropOffMon + "-" + dropOffDay + " " + dropOffHour + ":" + dropOffMin;

  if (getObj('jsessionid')) {
    url += "&;jsessionid=" + getObj('jsessionid').value;
  }

  if (getObj('amendBooking')) {
    url += "&amendBooking=1";
  }

  url += "&promCode=" + promCode;

  if (top != self) {
    top.location.href = url;
  }
  else {
    window.location.href = url;
  }
}

function fillHours(locId, yearID, monthID, dayID, timeID, minID, what) {
  var locationId = $F(locId);

  var year = getObj(yearID).value;
  var month = getObj(monthID).value;
  var day = getObj(dayID).value;
  var timeObj = getObj(timeID);
  var minObj = getObj(minID);

  var action = what == 0 ? 'LocationOpenTimeRQ' : 'LocationDropTimeRQ';

  var request = "<" + action + " lang='" + activeLang + "' locationId='" + locationId + "' date='" + year + "-" + month + "-" + day + "'></" + action + ">";
  var rqnode = getDocElement(request);

  var closed = false;

  var time;
  if (rqnode.childNodes.item(0).childNodes.item(0)) {
    time = rqnode.childNodes.item(0).childNodes.item(0).nodeValue;

    closed = true;
    for (var i = 0; i < time.length; i++) {
      if (time.charAt(i) == 1) closed = false;
    }

    if (!closed) {
      minObj.style.display = 'block';
    }
  }
  else {
    closed = true;
  }

  if (closed) {
    timeObj.options.length = 0;
    timeObj.options[0] = new Option($("msg_closed").innerHTML, 'closed');
    minObj.style.display = 'none';
    return;
  }
  timeObj.options.length = 0;
  var index = 0;
  for (i = 0; i < time.length; i++) {
    j = (i < 10) ? "0" + i : i;
    if (time.charAt(i) == '1') {
      timeObj.options[index] = new Option(j, i);
      if (j == '12') timeObj.options[index].selected = true;
      index++;
    }
  }
}

function showExtra(image, name, comments) {
  getObj('divContent').innerHTML = '';
  document.getElementById('extraImage').src = image;
  document.getElementById('extraName').innerHTML = '<b>' + name + '</b>';
  document.getElementById('extraComments').innerHTML = comments;
}

function goToQuote(carId, carName, carImage, carSupplierId, dropCarSupplierId, carPrice, currency, driverFee, dropOffFee, outOfHoursFee, discount, reasonForDiscount, paymentType, realDeposit, balancePaymentDate) {
  var url = '';
  url += '&carId=' + carId;
  url += '&carName=' + carName;
  url += '&carImage=' + carImage;
  url += '&carSupplierId=' + carSupplierId;
  url += '&dropCarSupplierId=' + dropCarSupplierId;
  url += '&carPrice=' + carPrice;
  url += '&currency=' + currency;
  url += '&driverFee=' + driverFee;
  url += '&dropOffFee=' + dropOffFee;
  url += '&outOfHoursFee=' + outOfHoursFee;
  url += '&discount=' + discount;
  url += '&reasonForDiscount=' + reasonForDiscount;
  url += '&paymentType=' + paymentType;
  url += '&realDeposit=' + realDeposit;
  url += '&balancePaymentDate=' + balancePaymentDate;

  window.open(sslDomain + '/' + tomcatProjectName + '/quote.do?' + url, 'mywindow', 'width=400,height=240');
}

function goToDeal(carId, carName, carImage, carSupplierId, dropCarSupplierId, carPrice, deposit, currency, driverFee, dropOffFee, outOfHoursFee, discount, reasonForDiscount, paymentType, realDeposit, balancePaymentDate) {
  var url = '';
  url += '&carId=' + carId;
  url += '&carName=' + carName;
  url += '&carImage=' + carImage;
  url += '&carSupplierId=' + carSupplierId;
  url += '&dropCarSupplierId=' + dropCarSupplierId;
  url += '&carPrice=' + carPrice;
  url += '&deposit=' + deposit;
  url += '&currency=' + currency;
  url += '&driverFee=' + driverFee;
  url += '&dropOffFee=' + dropOffFee;
  url += '&outOfHoursFee=' + outOfHoursFee;
  url += '&discount=' + discount;
  url += '&reasonForDiscount=' + reasonForDiscount;
  url += '&paymentType=' + paymentType;
  url += '&realDeposit=' + realDeposit;
  url += '&balancePaymentDate=' + balancePaymentDate;

  window.open(sslDomain + '/' + tomcatProjectName + '/deal.do?' + url, 'mywindow', 'width=400,height=240');
}

function getLocRQ(country, city) {
  return "<LocRQ lang=" + activeLang + "><CountryName>" + country + "</CountryName><CityName>" + city + "</CityName></LocRQ>";
}

function selectValue(element, loc) {
  if (!element.options) {
    return false;
  }
  for (var i = 0; i < element.options.length; i++) {
    if (element.options[i].text == loc) {
      element.options[i].selected = true;
      return true;
    }
  }
  return false;
}

function Location(id) {
  this.id = id;

  this.country = '';
  this.city = '';
  this.location = '';
  this.street = '';
  this.specinfo = '';
  this.email = '';
  this.ophours = '';
  this.telephone = '';
  this.fax = '';
  this.description = '';

  this.load = function() {
    var request = "<LocationInfoRQ lang='" + activeLang + "' locId='" + this.id + "' />";

    var rqnode = getDocElement(request);

    for (var i = 0; i < rqnode.childNodes.length; i++) {
      var item = rqnode.childNodes.item(i);
      switch (item.tagName) {
        case 'Address':
          this.country = item.getAttribute('country');
          this.city = item.getAttribute('city');
          this.location = item.getAttribute('location');
          this.street = item.getAttribute('street');
          this.specinfo = item.getAttribute('specinfo');
          break;
        default:
          if (item.childNodes.item(0)) {
            switch (item.tagName) {
              case 'Email':
                this.email = item.childNodes.item(0).nodeValue;
                break;
              case 'OpHours':
                this.ophours = item.childNodes.item(0).nodeValue;
                break;
              case 'Telephone':
                this.telephone = item.childNodes.item(0).nodeValue;
                break;
              case 'Fax':
                this.fax = item.childNodes.item(0).nodeValue;
                break;
              case 'Description':
                this.description = item.childNodes.item(0).nodeValue;
                break;
            }
          }
          break;
      }
    }
  }
}

function checkPickUpTime() {
  checkTime("pickUp");
}

function checkDropOffTime() {
  checkTime("dropOff");
}

function checkTime(elementPrefix) {
  if ($F(elementPrefix + "Hour") == "0" && $(elementPrefix + "Min").options.length == 4) {
    $(elementPrefix + "Min").remove(0);
  }
  else if ($F(elementPrefix + "Hour") != "0" && $(elementPrefix + "Min").options.length == 3) {
    var option = document.createElement('option');
    option.text = "00";
    $(elementPrefix + "Min").options.add(option, 0);
  }
}

function getLocationInfo(id) {
  var loc = new Location(id);

  loc.load();

  var content = '';

  content = '<div style="width: 150px">';
  content = content + '<p style="font-weight: bold">' + loc.street + '</p>';
  content = content + '<p>' + loc.ophours + '</p>';
  content = content + '</div>';

  getObj('divContent').innerHTML = content;
  getObj('divWnd').style.left = curX;
  getObj('divWnd').style.top = curY;
  showDiv('divWnd');
  return false;
}
