// restore the window.open method just in case it has been changed by norton
//window.onerror = null;
//window.open    = sida_realopen;

if (document.images) {
  imgup = new Image; imgup.src = "/images/dn.gif";
  imgdn = new Image; imgdn.src = "/images/up.gif";
  imgcl = new Image; imgcl.src = "/images/x.gif";
}

function setVisibility(name, onoff) {
  var elem = document.getElementById( name );
  if (elem != null) {
    if (onoff) elem.style.visibility='visible';
    else       elem.style.visibility='hidden';
  }
}

function setDisplay(name, onoff) {
  var elem = document.getElementById( name );
  if (elem != null) {
    if (onoff) elem.style.display='block';
    else       elem.style.display='none';
  }
}

function getCookie(name, value) {
  var res = document.cookie.match ( name + '=(.*?)(;|$)' );
  if ( res ) return ( unescape ( res[1] ) );
  return null;
}

function setCookie(name, value) {
  var today = new Date();
  var expires_date = new Date( today.getTime() + (1000*60*60*24) );
  var expires = expires_date.toGMTString();
  document.cookie = name+'='+value+'; expires='+expires+'; path=/;';
//  alert(name+'='+value+'; expires='+expires+'; path=/');
}


function clearImage( imgName ) {
  if (!document.images) { return; }
  if (imgName == '')    { return; }
  document.images[imgName].src = imgcl.src;
}

function setSort() {
  if (sortdir == 'ascending') sortdir = 'up';
  else                        sortdir = 'dn';
  if (sortby != '') {
    if (document.images) { 
      imgSort = eval("img" + sortdir + ".src");
      document.images[sortby].src = imgSort;
    }
  }
}

function changeSort(imgName, link) {
  if (sortby == imgName) {
    if (sortdir == 'dn') sortdir = 'up';
    else                 sortdir = 'dn';
  }
  else sortdir = 'dn';

  // Now send the request to the server

  var sd = 'descending';
  if (sortdir == 'up') sd = 'ascending'; 
  var so = imgName;

  var href = 'main_Result.jds?jsid=';
  href += jsid;
  href += '&';
  href += replace(sc, '&amp;', '&');
  var l    = href.indexOf('so');

  if (l >= 0) href = href.substring(0, l);
  link.href = href+'&_at=results&_so='+so+'&_sd='+sd;
}

function replace(str, subold, subnew) {
  var i=0;
  while (1) {
    if ((i=str.indexOf(subold)) < 0) break;    
    str = str.substring(0,i) + subnew + str.substring(i + subold.length);
  }
  return str;
}

String.prototype.rtrim = function() {
  return this.replace(/\s*$/, ''); // trim trailing white space
}

String.prototype.ltrim = function () {
  return this.replace(/^\s*/, ''); // trim leading white space
}


function setSel( name, value ) {
  args = copySel.arguments;
  var sname = 'sel-'+name;
  sel = document.forms[0].elements[ sname ];

  for (var j=0; j<sel.options.length; j++) {
    if (sel.options[j].value == value) {
      sel.options[j].selected = true;
      copySel ( sel );
      break;
    }
  }
  if (sel.options.length > 0) {
    sel.options[0].selected = true;
  }
}

function copySel( sel ) {
  args = copySel.arguments;
  var name = sel.name.substring( 4 );
  sel2 = document.forms[0].elements[ name ];

  var i = sel2.options?sel2.options.length:0;
  var k = sel.selectedIndex;
  if (args.length == 2) k = args[1];

  if (sel.options[k].value == '') return;

  for (var j=0; j<i; j++) {
    if (sel2.options[j].value ==  sel.options[k].value) return;
  }

  sel2.options[i] = new Option( sel.options[k].value );
  sel2.options[i].text = sel.options[k].text;
  sel2.options[i].value = sel.options[k].value;
  sel2.options[i].selected = true;
}

function delSel( sel ) {
  if (sel.selectedIndex > -1) {
    var i = sel.options.length;
    for (var j=0; j<i; j++) {
      if (sel.options[j].selected) {
        sel.options[j] = null;
        break;
      }
    }

    i = sel.options.length;
    for (var j=0; j<i; j++) {
      sel.options[j].selected = true;
    }
  }
}

function delClick( sel ) {
  if (sel.options.length == 1) sel.options[0] = null;
}

function copyAll( selname ) {
  sel  = document.forms[0].elements[ selname ];
  sel2 = document.forms[0].elements[ selname.substring( 4 ) ];
  var i = sel.options.length;

  for (var j=0; j<i; j++) {
    copySel( sel, j );
  } 
}

function delAll( selname ) {
  sel  = document.forms[0].elements[ selname.substring( 4 ) ];
  var i = sel.options.length;

  for (var j=i-1; j>=0; j--) {
    sel.options[j] = null;
  } 
}

function validateInt(iString) {
  if (iString == '') return false;
  while (iString.indexOf("0") == 0) { iString = iString.substring(1); }
  if (iString == '') return true;
  return (("" + parseInt(iString)) == iString);
}

function setOKSelect(selname, value) {
  var form = findForm("okform");
  if (form != null) {
    var sel = form.elements[ selname ];
    if ((sel != null) && (typeof(sel) != 'undefined')) {
      setThisSelect( sel, value );
    }
  }
}

function setThisSelect(select, value) { 
  for (var i=0; i<select.length; i++) { 
    if (select.options[i].value == value) { 
      select.options[i].selected = true; 
      break; 
    } 
  } 
} 

function setOKChecked(chkname, value) {
  var form = findForm("okform");
  if (form != null) {
    var chk = form.elements[ chkname ];
    if ((chk != null) && (typeof(chk) != 'undefined')) {
      if (value == 1) chk.checked=true;
    }
  }
}

function putSelectDate( item ) {
  var name = item.name;
  name = name.substring(4);

  secs = item.form.elements[ 'sec-'+name ];
  hors = item.form.elements[ 'hor-'+name ];
  mins = item.form.elements[ 'min-'+name ];
  days = item.form.elements[ 'day-'+name ];
  mons = item.form.elements[ 'mon-'+name ];
  yers = item.form.elements[ 'yer-'+name ];

  sec = '00'; if (secs != null) sec = checkTimeValue(secs.value, 60);
  min = '00'; if (mins != null) min = checkTimeValue(mins.value, 60);
  hor = '00'; if (hors != null) hor = checkTimeValue(hors.value, 24);
  day = days.options[ days.selectedIndex ].value;
  mon = mons.options[ mons.selectedIndex ].value;
  yer = checkYear( yers.value );

  inp = item.form.elements[ name ];
  inp.value = yer+'-'+mon+'-'+day+' '+hor+':'+min+':'+sec;
}

function setSelectDate( name, value ) {
  //if ((value == 'null') || (value == '')) {
    // value = nextYear(2)+'-01-01';
   // value = '2006-04-07';
 // }
  form = findForm('okform');
  yers = form.elements[ 'yer-'+name ];
  mons = form.elements[ 'mon-'+name ];
  days = form.elements[ 'day-'+name ];
  hors = form.elements[ 'hor-'+name ];
  mins = form.elements[ 'min-'+name ];
  secs = form.elements[ 'sec-'+name ];
  // When the register page is loaded first time
  //  value will be empty, so need to display empty inbox
  // for year. the rest is already taken care in xsl for day and month.
  var yer = ''; 
  if (value != ''){
  yer = checkYear( value.substring(0,4) );
  }
  mon = value.substring(5,7);
  day = value.substring(8,10);
  hor = checkTimeValue( value.substring(11,13), 24);
  min = checkTimeValue( value.substring(14,16), 60);
  sec = checkTimeValue( value.substring(17,19), 60);
 
  yers.value = yer;   
  setThisSelect(mons, mon);
  setThisSelect(days, day);
  day = days.options[ days.selectedIndex ].value;
  mon = mons.options[ mons.selectedIndex ].value;

  if (hors != null) hors.value = hor;
  if (mins != null) mins.value = min;
  if (secs != null) secs.value = sec;

  inp = form.elements[ name ];
  inp.value = yer+'-'+mon+'-'+day+' '+hor+':'+min+':'+sec;
}

function checkYear( year ) {
  var today = new Date();
  var yer = today.getFullYear();
  if ( !validateInt(year) ) return yer;
  if ((year < 1900) || (year > 2050)) return yer;
  return year;
}

function nextYear( inc ) {
  var today = new Date();
  var yer = today.getYear() + inc;
  if ((yer > 50) && (yer < 150)) yer -= 100;
  if (yer < 50) yer += 2000;
  return yer;
}

function checkTimeValue( t, tmax ) {
  if ( !validateInt(t) ) return '00';
  if (t >= tmax) return '00';
  if ((t < 10) && (t.length == 1)) t = '0'+t;
  return t;
}

function checkSelect(sel) {
  var t = sel.options[ sel.selectedIndex ].value;
  if (t == '') return false;
  return true;
}

function findForm (formName) {
  return fndForm(top, formName);
}
function fndForm( parentFrame, formName ) {
  var i, j;

  forms = parentFrame.document.forms;
  if (forms != null) {
    for (j=0; j<forms.length; j++) {
      if (forms[j].name == formName) {
        return forms[j];
      }
    }
  }
  
  for (i=0; i<parentFrame.frames.length; i++) {
    frame = parentFrame.frames[i]
    form = fndForm( frame, formName);
    if (form != null) return form;
  }
  return null;
}


/**

note: !!!! commented this section out and 
           deleted createHTTPObject to make things work with FF3

function issueRead(url, rxHandler) {
  rxData = createHTTPObject();
  var r = Math.floor(Math.random() * 1000000);
  if (url.indexOf('?') > -1)
       url += '&rand='+r;
  else url += '?rand='+r;
	rxData.open("GET", url, true);
  rxData.onreadystatechange = rxHandler; 
  rxData.send(null);                                
}

function checkPromoCode(promocode) {
  if (!typeof(promocode) == 'undefined') {
    issueRead('/pub?pg=promocode&pc='+promocode, checkPromoCode);  
  }
  else {
    if (rxData.readyState == 4) {
      var tmp = rxData.responseText;
      var elem = document.getElementById('genpromodiscount');
      elem.innerHTML = tmp;
    }
  }
}
**/

// inserting a comma in a number

function addCommas(nStr)
{
	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + ',' + '$2');
	}
	return x1 + x2;
}

function clearCard() {
  var s = '<h2><span>booking card</span></h2>';
  s += '<div><div><div><div>';
  s += '<div class="simplenotice">empty</div>';
  s += '<a href="/basket.view/">view</a>';
  s += '</div></div></div></div>';
  
  var elem = top.document.getElementById("bookingcard");
  elem.innerHTML = s;
}

function removeitem(item) {
  var theform = item.form;
  theform.action = '/basket.del/';
  theform.elements['delbutton'].value = item.name;
  theform.elements['submit'].click();
  return true;
}

function changeVatStatus(theform) {
  theform.action = '/basket.vat/';
  theform.elements['submit'].click();
  return true;
}

function submitForm(theForm) {
  var elem = theForm.elements['submit'];
  if ((elem != null) && (typeof(elem) != 'undefined')) {
    elem.click();
  }
}
