/*
// $RCSfile: ajax.js,v $
// $Source: /cvs/cyplonweb-live/includes/ajax.js,v $, $Revision: 1.2 $, $Date: 2010/07/27 10:51:32 $, $State: Exp $ 
*/

function doSearchCountry(elt, base) {
    var form = document.forms['frmName'];
    if(!form) {
        form = document.forms['frmCategory'];
    }
    
    if(form) {
        // If COUNTRY set to ALL, also reset RESORT
        if(form.country.value=='') {
            form.resort.value='';
        }
    }

    doSearch(base);
}
function doSearch(base) {

  // Obtain an XMLHttpRequest instance
  //var req = newXMLHttpRequest();
  
  //if(req) { // Can do AJAX: carry on
  if(Ajax.Request) {
	  // Set the handler function to receive callback notifications
	  // from the request object
	  //var handlerFunction = getReadyStateHandler(req, updateSearch);
	  //req.onreadystatechange = handlerFunction;
	  
	  // Open an HTTP POST connection to the shopping cart.
	  // Third parameter specifies request is asynchronous.
	  //req.open("POST", base+"ajax.php", true);
	
	  // Specify that the body of the request contains form data
	  //req.setRequestHeader("Content-Type",
	  //					 "application/x-www-form-urlencoded");
	
	  // Send form encoded data stating that I want to add the 
	  // specified item to the cart.
	  var form = document.forms['frmName'];
	  var resort='', country='', when='';
	  
	  if(form) {
		  resort = form.resort.value;
		  country = form.country.value;
	  }
	  var hotel='',allinc='', boutique='', catering='',villa='',town='',village='',family='';
	  var bar='',gym='',barber='',health='',inpool='',outpool='',service='',kids='',squash=''
	  var tennis='',tabletennis='',water='',baby='',kidspool='',wedding='';
	  var three='', four='', five='', e='', f='', d='', aa='', bb='', cc='';
		  
	  form = document.forms['frmCategory'];
	  if(form) {
		  resort = form.resort.value;
		  country = form.country.value;
          when = form.when.value;
		  
		  if(form.ishotel.checked) hotel = 'Y';
          if(form.ishotelallinclusive.checked) allinc = 'Y';
          if(form.ishotel.boutiquehotel) boutique = 'Y';
		  if(form.iscatering.checked) catering = 'Y';
		  if(form.isvilla.checked) villa = 'Y';
		  if(form.istown.checked) town = 'Y';
		  if(form.isvillage.checked) village = 'Y';
		  if(form.isfamily.checked) village = 'Y';
		  
		  //if(form.hasall.checked) hasall = 'Y';
		  if(form.hasbar.checked)bar = 'Y';
		  if(form.hasgym.checked) gym = 'Y';
		  if(form.hasbarber.checked) barber = 'Y';
		  if(form.hashealth.checked) health = 'Y';
		  if(form.hasinpool.checked) inpool = 'Y';
		  if(form.hasoutpool.checked) outpool = 'Y';
		  if(form.hasservice.checked) service = 'Y';
		  if(form.haskids.checked) kids = 'Y';
		  if(form.hassquash.checked) squash = 'Y';
		  if(form.hastennis.checked) tennis = 'Y';
		  if(form.hastabletennis.checked) tabletennis = 'Y';
		  if(form.haswater.checked) water = 'Y';
		  if(form.hasbaby.checked) baby = 'Y';
		  if(form.haskidspool.checked) kidspool = 'Y';
		  if(form.haswedding.checked) wedding = 'Y';
		  
		  //if(form.one.checked) one = 'Y';
		  //if(form.two.checked) two = 'Y';
		  if(form.three.checked) three = 'Y';
		  if(form.four.checked) four = 'Y';
		  if(form.five.checked) five = 'Y';
          if(form.e.checked) e = 'Y';
          if(form.f.checked) f = 'Y';
          if(form.d.checked) d = 'Y';
		  if(form.aa.checked) aa = 'Y';
		  if(form.bb.checked) bb = 'Y';
		  if(form.cc.checked) cc = 'Y';
	  }
	  
	  var query = "country="+country+"&resort="+resort+'&ishotel='+hotel+'&ishotelallinclusive='+allinc+'&isboutiquehotel='+boutique
        +'&iscatering='+catering+'&isvilla='+villa+'&istown='+town
	  	+'&isvillage='+village+'&isfamily='+family+'&hasbar='+bar+'&hasgym='+gym+'&hasbarber='+barber+'&hashealth='+health
		+'&hasinpool='+inpool+'&hasoutpool='+outpool+'&hasservice='+service+'&haskids='+kids+'&hassquash='+squash+'&hastennis='+tennis
		+'&hastabletennis='+tabletennis+'&haswater='+water+'&hasbaby='+baby+'&haskidspool='+kidspool+'&haswedding='+wedding
		+'&three='+three+'&four='+four+'&five='+five+'&e='+e+'&f='+f+'&d='+d+'&aa='+aa+'&bb='+bb+'&cc='+cc+'&when='+when;
	//alert(query);
	  //req.send(query);
      var req = new Ajax.Request( base+"ajax.php", {
          method: 'post',
          parameters: query,
          onLoading: function() {
              var span = $('ajax');
              if(span) {
                  span.innerHTML = "checking...";
              }
          },
          onError: function(response) {
            alert('HTTP Error: '+response.error);
          },
          onComplete: function(response) {
              var span = $('ajax');
              if(span) {
                  span.innerHTML = "&nbsp;";
              }
              updateSearch(response.responseXML);
          }
      });
//alert(req);
  } else {	 // can't do AJAX; just submit the form*/
	  	//document.forms['fSearch'].submit();
  }
}

function updateSearch(searchXML) {

 // Get the root "cart" element from the document
 var cart = searchXML.getElementsByTagName("search")[0];

	  var form = document.forms['frmName'];
	  if(form) {
		  updateOptions(form.country, cart.getElementsByTagName("country")[0]);
		  updateOptions(form.resort, cart.getElementsByTagName("resort")[0]);
		  updateOptions(form.accomodation, cart.getElementsByTagName("accomodation")[0]);
	  }


	  form = document.forms['frmCategory'];
	if(form) {
		updateOptions(form.country, cart.getElementsByTagName("country")[0]);
		updateOptions(form.resort, cart.getElementsByTagName("resort")[0]);
		
		updateCheck(form.ishotel, cart.getElementsByTagName("ishotel")[0]);
        updateCheck(form.ishotelallinclusive, cart.getElementsByTagName("ishotelallinclusive")[0]);
        updateCheck(form.isboutiquehotel, cart.getElementsByTagName("isboutiquehotel")[0]);
		updateCheck(form.iscatering, cart.getElementsByTagName("iscatering")[0]);
		updateCheck(form.isvilla, cart.getElementsByTagName("isvilla")[0]);
		updateCheck(form.istown, cart.getElementsByTagName("istown")[0]);
		updateCheck(form.isvillage, cart.getElementsByTagName("isvillage")[0]);
		updateCheck(form.isfamily, cart.getElementsByTagName("isfamily")[0]);
		
		//updateCheck(form.hasall, cart.getElementsByTagName("hasall")[0]);
		updateCheck(form.hasbar, cart.getElementsByTagName("hasbar")[0]);
		updateCheck(form.hasgym, cart.getElementsByTagName("hasgym")[0]);
		updateCheck(form.hasbarber, cart.getElementsByTagName("hasbarber")[0]);
		updateCheck(form.hashealth, cart.getElementsByTagName("hashealth")[0]);
		updateCheck(form.hasinpool, cart.getElementsByTagName("hasinpool")[0]);
		updateCheck(form.hasoutpool, cart.getElementsByTagName("hasoutpool")[0]);
		updateCheck(form.hasservice, cart.getElementsByTagName("hasservice")[0]);
		updateCheck(form.haskids, cart.getElementsByTagName("haskids")[0]);
		updateCheck(form.hassquash, cart.getElementsByTagName("hassquash")[0]);
		updateCheck(form.hastennis, cart.getElementsByTagName("hastennis")[0]);
		updateCheck(form.hastabletennis, cart.getElementsByTagName("hastabletennis")[0]);
		updateCheck(form.haswater, cart.getElementsByTagName("haswater")[0]);
		updateCheck(form.hasbaby, cart.getElementsByTagName("hasbaby")[0]);
		updateCheck(form.haskidspool, cart.getElementsByTagName("haskidspool")[0]);
		updateCheck(form.haswedding, cart.getElementsByTagName("haswedding")[0]);
		
		//updateCheck(form.one, cart.getElementsByTagName("one")[0]);
		//updateCheck(form.two, cart.getElementsByTagName("two")[0]);
		updateCheck(form.three, cart.getElementsByTagName("three")[0]);
		updateCheck(form.four, cart.getElementsByTagName("four")[0]);
		updateCheck(form.five, cart.getElementsByTagName("five")[0]);
        updateCheck(form.e, cart.getElementsByTagName("e")[0]);
        updateCheck(form.f, cart.getElementsByTagName("f")[0]);
        updateCheck(form.d, cart.getElementsByTagName("d")[0]);
        //
		updateCheck(form.aa, cart.getElementsByTagName("aa")[0]);
		updateCheck(form.bb, cart.getElementsByTagName("bb")[0]);
		updateCheck(form.cc, cart.getElementsByTagName("cc")[0]);
	}
}

function updateCheck(elt, box) {
		var num = box.firstChild.nodeValue;
		if(num>0) {
			elt.disabled = false;
			if (elt.parentNode.className != 'searchCell') {
				if(elt.parentNode.className.indexOf('starRow')>0){
				elt.parentNode.className = 'advRow';
				}
                if(elt.parentNode.className.indexOf('wideratingdiv')>0){
                    elt.parentNode.className = 'advRow ratingdiv wideratingdiv';
                } else if(elt.parentNode.className.indexOf('ratingdiv')>0){
                    elt.parentNode.className = 'advRow ratingdiv';
                } else if(elt.parentNode.className.indexOf('advRow')>0){
					elt.parentNode.className = 'advRow';
				}
				
			}
		} else {
			elt.disabled = true;
			elt.checked = false;
            if(elt.parentNode.className.indexOf('wideratingdiv')>0){
                elt.parentNode.className = 'advRow ratingdiv wideratingdiv disabled';
            }else if(elt.parentNode.className.indexOf('ratingdiv')>0){
				elt.parentNode.className = 'advRow ratingdiv disabled';
			}else if (elt.parentNode.className != 'searchCell') {
				elt.parentNode.className = 'advRow disabled';
			}
		}
}

function updateOptions(elt, list) {
		var opt, node, elts, val;
		elt.options.length = 0;
		elts = list.getElementsByTagName("option");
		for(var i=0; i < elts.length; i++) {
			node = elts[i];
			val = node.firstChild.nodeValue;
			val = val.replace('&amp;','&');
			opt = new Option(val,
							 node.getAttribute("value"),
							 false,
							 node.getAttribute("selected")=="selected");
			elt.options[elt.options.length] = opt;
		}
}

