// JavaScript Document

var timerlen = 5;
var slideAniLen = 250;

var timerID = new Array();
var startTime = new Array();
var obj = new Array();
var endHeight = new Array();
var moving = new Array();
var dir = new Array();

/*function slidedownMultiple(objname1,objname2,objname3){

  setTimeout("slidedown('"+objname1+"')",20);
  setTimeout("slideup('"+objname2+"')",20);
  setTimeout("slideup('"+objname3+"')",20);
}*/

/*function slidedownMultiple(objname1,objname2,objname3){

  setTimeout("slidedown('"+objname1+"')",20);
  setTimeout("slideup('"+objname2+"')",20);
  setTimeout("slideup('"+objname3+"')",20);
}*/
/*[KS] - hardcoded test should be removed */
var test_state = false;
var dates_state = false;
var lifestyle_state = false;
var subroom_state = true;
var subroomtwo_state = true;
var subroomthree_state = true;

var openImg = "/ahl_facets-open.png";
var closeImg = "/ahl_facets-close.png";

function slide(objname, imagename){
  var div = document.getElementById(objname);
  if(div) {
	  var img = document.getElementById(imagename);
	  if(img) {
		  var index = img.src.lastIndexOf("/");
		  var path = img.src.substring(0, index)
		  if(div.style.display == "none") {
	      slidedown(objname);
		    img.src = path + openImg;
		  } else {
		      slideup(objname);
		    img.src = path + closeImg;
		  }
	  }
  }
}

//var bookBaseURL="atgsearch/common/searchResultsPage.jsp";
//${containerVar }${startSep}trail=${trailVar}
function goToBooking(formFacet, resultsPage, containerVar, startSep, trailVar, question, category ){
  var newFacetVar = "";
  var prevFacetId = "";
  var newFacetId = "";
  for(i=0; i<document.forms[formFacet].elements.length; i++) {
  var box = document.forms[formFacet].elements[i];
    if(
      (box.type=="checkbox") &&
      (box.checked==true) ) {
        newFacetId = box.id.slice(0, box.id.indexOf(":") );
        if(newFacetId == prevFacetId){
          newFacetVar = newFacetVar + "|" + box.id.substring(box.id.indexOf(":")+1);  
        } else {
          //newFacetVar = newFacetVar + ":" + box.id;
          if(newFacetVar != "") {
            newFacetVar += ":";
          }
          newFacetVar += box.id;
          prevFacetId = newFacetId;
        }
    }
  }
  var newUrl = resultsPage+
    //containerVar+
    startSep+"trail="+trailVar;
    if(trailVar != null && trailVar != "") {
      newUrl += ":";
    }
    newUrl += newFacetVar + "&question="+question+"&pageNumber=1";
    if(category != null && category != '') {
      newUrl += "&categoryId="+category;
    } 
    document.location = newUrl;
}

//  document.location=bookBaseURL+"?trail=SRCH"+facetSeparator+question+facetSeparator+facId+
//    facetSeparator+facString+"&question="+question+"&pageNumber=1";

function slidedown(objname){
        if(moving[objname])
                return;

        if(document.getElementById(objname).style.display != "none")
                return; // cannot slide down something that is already visible

        moving[objname] = true;
        dir[objname] = "down";
        startslide(objname);
}

function slideup(objname){
        if(moving[objname])
                return;

        if(document.getElementById(objname).style.display == "none")
                return; // cannot slide up something that is already hidden

        moving[objname] = true;
        dir[objname] = "up";
        startslide(objname);
}

function startslide(objname){
        obj[objname] = document.getElementById(objname);

        endHeight[objname] = parseInt(obj[objname].style.height);
        startTime[objname] = (new Date()).getTime();

        if(dir[objname] == "down"){
                obj[objname].style.height = "auto";
        }

        obj[objname].style.display = "block";

        timerID[objname] = setInterval('slidetick(\'' + objname + '\');',timerlen);
}

function slidetick(objname){
        var elapsed = (new Date()).getTime() - startTime[objname];

        if (elapsed > slideAniLen)
                endSlide(objname)
        else {
                var d =Math.round(elapsed / slideAniLen * endHeight[objname]);
                if(dir[objname] == "up")
                        d = endHeight[objname] - d;

               // obj[objname].style.height = d + "px";
        }

        return;
}

function endSlide(objname){
        clearInterval(timerID[objname]);

        if(dir[objname] == "up")
                obj[objname].style.display = "none";

        //obj[objname].style.height = endHeight[objname] + "px";

        delete(moving[objname]);
        delete(timerID[objname]);
        delete(startTime[objname]);
        delete(endHeight[objname]);
        delete(obj[objname]);
        delete(dir[objname]);

        return;
}
