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();

var img1 ="/es-uk/img/Buttons/usersearches/arrowDown.gif";
var img2 ="/es-uk/img/Buttons/usersearches/arrowRight.gif";
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 = "1px";
        }

        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 slideHeight =Math.round(elapsed / slideAniLen * endHeight[objname]);
                if(dir[objname] == "up")
                        slideHeight = endHeight[objname] - slideHeight;

                obj[objname].style.height = slideHeight + "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;
}

function toggleSlide(objname){
  if(document.getElementById(objname).style.display == "none"){
    // div is hidden, so let's slide down
    toggleTitle(objname, 'closed');
    slidedown(objname);
  }else{
    // div is not hidden, so slide up
    toggleTitle(objname, 'open');
    slideup(objname);    
  }
}

function toggleTitle(objname, actionText) 
{
	var displayTextField = document.getElementById("displayText" + objname);
	var imageUrl = actionText == 'open' ? img2 : img1;
	
	var showHide = (actionText == 'open' ? 'Show' : 'Hide');	
	displayTextField.innerHTML = '<img id="' + actionText + 'Button'+ objname + '" src="' + imageUrl + '" alt="' + showHide + ' saved search criteria" title="' + showHide + ' saved search criteria"/>';
}
function flashToggle(isVisible) 
{
	var flashIds = new Array('tempLandingTopRightMPU','tempFormFooterMPUContainer','topBannerContainer','tempResultsTopRightMPU', 'mpuPosSsMt', 'tempSkyScraper', 'ATDad-Middle2', 'tempBanner2Container','vehicleCountContainer');
	
	if(isVisible) 
	{
		_relocateAll();
	}
	
	for (var i = 0; i < flashIds.length; i++)
	{
		var container = document.getElementById(flashIds[i]);
		if (container != null)
		{
			container.style.zIndex = isVisible ? 99999 : 1;
			container.style.visibility = isVisible ? 'visible' : 'hidden';
				
			if (!isVisible)
				container.style.top='-1000px';
		}
	}
}

function frameToggle(isVisible)
{
	var selectElements = document.getElementsByTagName('select');
	for(var i = 0; i < selectElements.length; i++)
 	{
 		selectElements[i].style.visibility = isVisible ? 'visible' : 'hidden';
 	}	

	var toggleElements = {
			toggleflash : function (wdocument){
				// toggle iframe elements
				this.togglevisibility(wdocument,'iframe');
			},
		
			togglevisibility : function (wdocument, tagname){
				objects = wdocument.getElementsByTagName(tagname);
				for(i = 0; i < objects.length; i++) {
					this.toggle(objects[i]);
				}
			},
			
			toggle : function (object){
				// check whether it has been hidden purposefully
				if(!isVisible && object.style.display != 'none' && object.style.visibility != 'hidden'){
					// hidden purposefully, add a class name to detect then when toggling
					object.className = object.className + " tempniclass";
					// hide the element
					object.style.visibility = 'hidden';	
				}
				
				// If the call is to set it to visible, check whether the element has 'tempniclass' class
				if(isVisible && object.className.match(/tempniclass/g)){
					// remove the 'tempniclass' class as its not needed anymore
					object.className = object.className.replace(/tempniclass/g, "");
					// set the element to be visible.
					object.style.visibility = 'visible';
				}	
			}
		}

	// toggle all flash on the current window
	toggleElements.toggleflash(window.document);

}
