var isIE6 = /msie|MSIE 6/.test(navigator.userAgent);
var isIE=false;
if(document.all)isIE=true;
var grjPopup;
function bottomText () {
    if (document.getElementById('bottomtext') != null) {
        elm = document.getElementById('bottomtext');
        elmHeight = elm.offsetHeight;
        elmContentWrap = document.getElementById('content');
        
		isIE6 = /msie|MSIE 6/.test(navigator.userAgent);

		if (isIE6) {
			
			elm.style.top = (elmContentWrap.offsetHeight + (104 - 480)) + "px";		
		}  else { 
			elm.style.top = (elmContentWrap.offsetHeight + (104 - 480)) + "px";	
		
		}
		elmContentWrap.style.paddingBottom = (elmHeight + 10) + "px";
    } else {
        elmContentWrap = document.getElementById('content');
      elmContentWrap.style.paddingBottom ="20px";
    }
}
function bottomTextTab () {
    if (document.getElementById('bottomtext') != null) {
        elm = document.getElementById('bottomtext');
        elmHeight = elm.offsetHeight;
        elmContentWrap = document.getElementById('content');
        
		isIE6 = /msie|MSIE 6/.test(navigator.userAgent);

		if (isIE6) {
			
			elm.style.top = (elmContentWrap.offsetHeight + 104 - elmHeight) + "px";		
		}  else { 
			elm.style.top = (elmContentWrap.offsetHeight + 104 - elmHeight) + "px";	
		
		}
    } 
}
function addJSScript(url) {
	var newElm = document.createElement("SCRIPT");
	newElm.type = "text/javascript";
	newElm.src = url;
	document.body.appendChild(newElm);
}
function initPopups(){
	var links = document.getElementsByTagName("a");
	for(var i=links.length-1;i>=0;i--){
		if(links[i].target=="grjPopup"){
			if(isIE) links[i].attachEvent("onclick",openPopUp); // IE
			else links[i].addEventListener("click",openPopUp,false); // FF, Safari etc.
		}
	}
}
function openPopUp(event){
	var a=(isIE)?event.srcElement:event.target;
	if(a.tagName=="IMG") a=a.parentNode;
	if(a.tagName=="SPAN") a=a.parentNode;
	grjPopup=window.open(a.href,'grjPopup','scrollbars=1,menubar=no,height=600,width=850,resizable=no,toolbar=no,location=no,status=no');
	grjPopup.focus();
	
	//prevent default action
	if (event.preventDefault) event.preventDefault();
	return false;
}
function PreventEvent(e){
    if(e.preventDefault){ e.preventDefault()}
    else{e.stop()};

    e.returnValue = false;
    e.stopPropagation();        
}
function findatour(event){
	var elem=document.getElementById("tourcode");
	if (elem.value!="" && elem.value!=elem.title) window.location="/tours.aspx?tours="+elem.value.toUpperCase()+"&QB=1";
	try {	
		PreventEvent(event); 
	} catch (err) {}
	return false;
}
function tourlist(){url=document.getElementById("countryid").value;window.location=url;}
var pricesDropdownTimer;
function pricesDropdownHide () {
document.getElementById("PricesDropDown").style.display = "none";
document.getElementById("menu_price").className = "";
}
function pricesDropdownShow () {
document.getElementById("PricesDropDown").style.display = "block";
document.getElementById("menu_price").className = "selected";
try {
clearTimeout(pricesDropdownTimer);

} catch(err) {


}

}
function pricesDropdown () {
var menuLink = document.getElementById("menu_price").getElementsByTagName('A')[0];
var menuItems = document.getElementById("PricesDropDown").getElementsByTagName("a");
document.getElementById("PricesDropDown").className = "dropDown";

addEvent(menuLink, "mouseover", function () {
clearTimeout(pricesDropdownTimer);
pricesDropdownTimer = setTimeout(pricesDropdownShow,200);
});
addEvent(menuLink, "mouseout", function () {
	clearTimeout(pricesDropdownTimer);
	pricesDropdownTimer = setTimeout(pricesDropdownHide, 500);
	});
for (i in menuItems) {
	addEvent(menuItems[i], "mouseout", function () {
	pricesDropdownTimer = setTimeout(pricesDropdownHide, 500);
	});
	addEvent(menuItems[i], "mouseover", function () {
	clearTimeout(pricesDropdownTimer);
	
	});
}
}
function enterPressed(event){ var kc=(isIE)?event.keyCode:event.which; return(kc==13); }
// Utility Select elements by class
var getElementsByClassName = function(className, tag, elm) {
    if (document.getElementsByClassName) {
        getElementsByClassName = function(className, tag, elm) {
            elm = elm || document;
            var elements = elm.getElementsByClassName(className),
            nodeName = (tag) ? new RegExp("\\b" + tag + "\\b", "i") : null,
            returnElements = [],
            current;
            for (var i = 0, il = elements.length; i < il; i += 1) {
                current = elements[i];
                if (!nodeName || nodeName.test(current.nodeName)) {
                    returnElements.push(current);
                }
            }
            return returnElements;
        };
    } else if (document.evaluate) {
        getElementsByClassName = function(className, tag, elm) {
            tag = tag || "*";
            elm = elm || document;
            var classes = className.split(" "),
            classesToCheck = "",
            xhtmlNamespace = "http://www.w3.org/1999/xhtml",
            namespaceResolver = (document.documentElement.namespaceURI === xhtmlNamespace) ? xhtmlNamespace: null,
            returnElements = [],
            elements,
            node;
            for (var j = 0, jl = classes.length; j < jl; j += 1) {
                classesToCheck += "[contains(concat(' ', @class, ' '), ' " + classes[j] + " ')]";
            }
            try {
                elements = document.evaluate(".//" + tag + classesToCheck, elm, namespaceResolver, 0, null);
            } catch(e) {
                elements = document.evaluate(".//" + tag + classesToCheck, elm, null, 0, null);
            }
            while ((node = elements.iterateNext())) {
                returnElements.push(node);
            }
            return returnElements;
        };
    } else {
        getElementsByClassName = function(className, tag, elm) {
            tag = tag || "*";
            elm = elm || document;
            var classes = className.split(" "),
            classesToCheck = [],
            elements = (tag === "*" && elm.all) ? elm.all: elm.getElementsByTagName(tag),
            current,
            returnElements = [],
            match;
            for (var k = 0, kl = classes.length; k < kl; k += 1) {
                classesToCheck.push(new RegExp("(^|\\s)" + classes[k] + "(\\s|$)"));
            }
            for (var l = 0, ll = elements.length; l < ll; l += 1) {
                current = elements[l];
                match = false;
                for (var m = 0, ml = classesToCheck.length; m < ml; m += 1) {
                    match = classesToCheck[m].test(current.className);
                    if (!match) {
                        break;
                    }
                }
                if (match) {
                    returnElements.push(current);
                }
            }
            return returnElements;
        };
    }
    return getElementsByClassName(className, tag, elm);
};
// Utility add Event
function addEvent( obj, type, fn ) {
	if (obj.addEventListener) {
		obj.addEventListener( type, fn, false );
		EventCache.add(obj, type, fn);
	}
	else if (obj.attachEvent) {
		obj["e"+type+fn] = fn;
		obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
		obj.attachEvent( "on"+type, obj[type+fn] );
		EventCache.add(obj, type, fn);
	}
	else {
		obj["on"+type] = obj["e"+type+fn];
	}
}

var EventCache = function(){
	var listEvents = [];
	return {
		listEvents : listEvents,
		add : function(node, sEventName, fHandler){
			listEvents.push(arguments);
		},
		flush : function(){
			var i, item;
			for(i = listEvents.length - 1; i >= 0; i = i - 1){
				item = listEvents[i];
				if(item[0].removeEventListener){
					item[0].removeEventListener(item[1], item[2], item[3]);
				};
				if(item[1].substring(0, 2) != "on"){
					item[1] = "on" + item[1];
				};
				if(item[0].detachEvent){
					item[0].detachEvent(item[1], item[2]);
				};
				item[0][item[1]] = null;
			};
		}
	};
}();
addEvent(window,'unload',EventCache.flush);
if (document.all) {
    isIE = true;
}
function home_boxes() {
    var late_avail_content = document.getElementById("late_avail").getElementsByTagName("div");
    var home_copy = document.getElementById("home_copy");

    if (home_copy.offsetHeight > document.getElementById("late_avail").offsetHeight) {
        late_avail_content[1].style.height = (home_copy.offsetHeight - 35) + "px";
    } else {
        if (isIE6) {
            home_copy.getElementsByTagName("div")[1].style.height = (document.getElementById("late_avail").offsetHeight - 98) + "px";
        } else {
            home_copy.getElementsByTagName("div")[1].style.height = (document.getElementById("late_avail").offsetHeight - 80) + "px";
        }
    }
}
function inputRoll() {
    var rollovers = getElementsByClassName("roll");
    for (i in rollovers) {
        try {

            addEvent(rollovers[i], "mouseover",
            function(e) {
                try {
                    var elm;
                    if (e && e.which) {
                        e = e;
                    } else {
                        e = event;
                    }
                    elm = e.target || e.srcElement;

                    elm.src = elm.src.replace(".gif", "-rollover.gif");
                } catch(err) {

                    }

            });

            addEvent(rollovers[i], "mouseout",
            function(e) {
                try {
                    var elm;
                    if (e && e.which) {
                        e = e;
                    } else {
                        e = event;
                    }
                    elm = e.target || e.srcElement;

                    elm.src = elm.src.replace("-rollover.gif", ".gif");
                } catch(err) {

                    }

            });
        } catch(err) {}
    }

}

function bigLink() {
    var big_links = getElementsByClassName("biglink");
    for (i in big_links) {
        try {
            big_links[i].parentNode.parentNode.style.cursor = "pointer";
            addEvent(big_links[i].parentNode.parentNode, "click",
            function(e) {
                try {
                    var elm;
                    if (e && e.which) {
                        e = e;
                    } else {
                        e = event;
                    }
                    elm = e.target || e.srcElement;

                    document.location = elm.getElementsByTagName("a")[0].href;
                } catch(err) {

                    }

            });
        } catch(err) {}
    }
}


var tabLinks = new Array();
var contentDivs = new Array();

function tab_init(tab_id) {
    try {
		addEvent(document.getElementById("pricesIFrame"), 'load',tabframeload);
    } catch (err) {}
    try {
    
    var tabListItems = document.getElementById(tab_id).childNodes;
    document.getElementById(tab_id).className = document.getElementById(tab_id).className + " tabs";
    for (i in tabListItems) {

        if (tabListItems[i].nodeName == "LI") {
            var tabLink = getFirstChildWithTagName(tabListItems[i], 'A');
            var id = getHash(tabLink.getAttribute('href'));
            tabLinks[id] = tabLink;

            contentDivs[id] = document.getElementById(id);

        }
    }
    var i = 0;
    for (var id in tabLinks) {
        tabLinks[id].onclick = showTab;
        tabLinks[id].onfocus = function() {
            this.blur()
        };
        if (i == 0) tabLinks[id].parentNode.className = 'currenttab';
        i++;
    }
    var i = 0;
    for (var id in contentDivs) {
        if (i != 0) contentDivs[id].className = 'tab_content hide';
        i++;
    }
    var url = window.location.toString();
    var hashID = getHash(url);
    var hashPos = url.lastIndexOf ( '#' );
    if (hashPos > -1 &&  hashID == "price") { 
		if (document.getElementById("prices") != null) {
		showTabLink("prices");
		}
    }
	var Holder = document.getElementById("tab_holder");

	var elements = Holder.getElementsByTagName("IFRAME");

	for (i in elements) {
		try {      

			elements[i].style.height = (elements[i].contentWindow.document.body.scrollHeight) + 'px';
		} catch (err) {}
	}
	} catch (err) {}
}
function tabframeload() {
	try {
	var Holder = document.getElementById("tab_holder");
	var elements = Holder.getElementsByTagName("IFRAME");

	for (i in elements) {
		try {      

			elements[i].style.height = (elements[i].contentWindow.document.body.scrollHeight) + 'px';
		} catch (err) {}
	}
	} catch (err) { }
	bottomTextTab ();
}
function showTab() {
    var selectedId = getHash(this.getAttribute('href'));
    for (var id in contentDivs) {
        if (id == selectedId) {
            tabLinks[id].parentNode.className = 'currenttab';
            contentDivs[id].className = 'tab_content';
        } else {
            tabLinks[id].parentNode.className = '';
            contentDivs[id].className = 'tab_content hide';
        }
    }
    
   if (selectedId == "prices" && (document.getElementById("pricesIFrame").getAttribute("src") == null || document.getElementById("pricesIFrame").getAttribute("src") == "/tabblank.aspx") ) {
	
		document.getElementById("pricesIFrame").src = document.getElementById("pricesIFrame").getAttribute("_src");
	
	}
	
	var Holder = document.getElementById("tab_holder");

	var elements = Holder.getElementsByTagName("IFRAME");

	for (i in elements) {
		try {      

			elements[i].style.height = (elements[i].contentWindow.document.body.scrollHeight) + 'px';
		} catch (err) {}
	}
	bottomTextTab ();
    return false;
}
function showTabLink(selectedId) {

	for ( var id in contentDivs ) {
		if ( id == selectedId ) {
			tabLinks[id].parentNode.className = 'currenttab';
			contentDivs[id].className = 'tab_content';
		} else {
			tabLinks[id].parentNode.className = '';
			contentDivs[id].className = 'tab_content hide';
		}
	}
	if (selectedId == "prices" && (document.getElementById("pricesIFrame").getAttribute("src") == null || document.getElementById("pricesIFrame").getAttribute("src") == "/tabblank.aspx") ) {
	
		document.getElementById("pricesIFrame").src = document.getElementById("pricesIFrame").getAttribute("_src");
	
	}
	var Holder = document.getElementById("tab_holder");

	var elements = Holder.getElementsByTagName("IFRAME");

	for (i in elements) {
		try {      

			elements[i].style.height = (elements[i].contentWindow.document.body.scrollHeight) + 'px';
		} catch (err) {}
	}
	bottomTextTab ();
	return false;
}
function getFirstChildWithTagName(element, tagName) {
    for (var i = 0; i < element.childNodes.length; i++) {
        if (element.childNodes[i].nodeName == tagName) return element.childNodes[i];
    }
}
function getHash(url) {
    var hashPos = url.lastIndexOf('#');
    return url.substring(hashPos + 1);
}
//Image Gallery
var currentimage = 0;
var fadespeed = 1000;
var imagegallery,
imagegalleryid,
imagegallerycount,
imagegalleryanimation;
var imagegalleryrotationspeed;
function imagegallery_init(imggalid, speed) {
    imagegallery = document.getElementById(imggalid);
    imagegalleryid = imggalid;
    var images = imagegallery.getElementsByTagName("img");
    imagegallerycount = images.length;
    imagegallery.className = imagegallery.className + " imggallery";
    var i = 0;
    var height = 0;
    var width = 0;
    for (i = 0; i <= images.length - 1; i++) {
        images[i].id = imagegalleryid + "_image_" + i;
        if (i > 0) {
            images[i].style.opacity = 0;
            images[i].style.MozOpacity = 0;
            images[i].style.KhtmlOpacity = 0;
            images[i].style.filter = "alpha(opacity=0)";
            images[i].style.zIndex = "0";

        } else {
            images[i].style.opacity = 1;
            images[i].style.MozOpacity = 1;
            images[i].style.KhtmlOpacity = 1;
            images[i].style.filter = "alpha(opacity=100)";
            images[i].style.zIndex = "5";
        }
        if (images[i].clientWidth > width) {
            width = images[i].clientWidth;
        }
        if (images[i].clientHeight > height) {
            height = images[i].clientHeight;
        }

    }

    newDiv = document.createElement("div");
    newDiv.setAttribute("id", imagegalleryid + "_switcher");
    var switchercontent = "";
    for (i = 0; i <= images.length - 1; i++) {
        if (i == 0) {
            switchercontent += "<li><a id='" + imagegalleryid + "_selector_" + i + "' class='selected' href='javascript:showimage(" + i + ");'>" + (i + 1) + "</a></li>";
        } else {
            switchercontent += "<li><a id='" + imagegalleryid + "_selector_" + i + "' href='javascript:showimage(" + i + ");'>" + (i + 1) + "</a></li>";

        }
    }
    newDiv.innerHTML = "<ul>" + switchercontent + "</ul>";
    newDiv.className = "switcher";
    imagegallery.appendChild(newDiv);
    
    //Tryen needs set size images
    //imagegallery.style.width = width + "px";
    
    //imagegallery.style.height = height + "px";

    imagegalleryrotationspeed = speed;
    if (imagegalleryrotationspeed > 0) {

        imagegalleryanimation = setTimeout("imagegalleryrotate(" + currentimage + ")", imagegalleryrotationspeed);
    }
    var slideHolder,
    slides;
    slides = getElementsByClassName("slide");
    for (i in slides) {
        //slides[i].style.height = height + "px";
    }

    slideHolder = document.getElementById("slideHolder");
    if (typeof slideHolder != "undefined" && slideHolder != null) {
        //slideHolder.style.height = height + "px";
    }
}
function showimage(image) {
    if (imagegalleryrotationspeed > 0) {
        clearTimeout(imagegalleryanimation);
    }
    if (currentimage != image) {
        opacity(imagegalleryid + "_image_" + currentimage, 100, 0, fadespeed);
        document.getElementById(imagegalleryid + "_image_" + currentimage).style.zIndex = "0";
        document.getElementById(imagegalleryid + "_selector_" + currentimage).className = '';
        document.getElementById(imagegalleryid + "_selector_" + image).className = 'selected';
        document.getElementById(imagegalleryid + "_image_" + image).style.zIndex = "5";
        opacity(imagegalleryid + "_image_" + image, 0, 100, fadespeed);
        currentimage = image;
        if (imagegalleryrotationspeed > 0) {
            imagegalleryanimation = setTimeout("imagegalleryrotate(" + currentimage + ")", (imagegalleryrotationspeed * 2));
        }
    }
}
function imagegalleryrotate(image) {
    if ((image + 1) <= (imagegallerycount - 1)) {
        image = image + 1;
    } else {
        image = 0;
    }
    opacity(imagegalleryid + "_image_" + currentimage, 100, 0, fadespeed);
    document.getElementById(imagegalleryid + "_image_" + currentimage).style.zIndex = "0";
    document.getElementById(imagegalleryid + "_selector_" + currentimage).className = '';
    document.getElementById(imagegalleryid + "_selector_" + image).className = 'selected';
    document.getElementById(imagegalleryid + "_image_" + image).style.zIndex = "5";
    opacity(imagegalleryid + "_image_" + image, 0, 100, fadespeed);
    currentimage = image;
    imagegalleryanimation = setTimeout("imagegalleryrotate(" + currentimage + ")", imagegalleryrotationspeed);

}
function opacity(id, opacStart, opacEnd, millsecs) {
    var speed = Math.round(millsecs / 100);
    var timer = 0;
    if (opacStart > opacEnd) {
        for (i = opacStart; i >= opacEnd; i--) {
            setTimeout("changeOpac(" + i + ",'" + id + "')", (timer * speed));
            timer++;
        }
    } else if (opacStart < opacEnd) {
        for (i = opacStart; i <= opacEnd; i++) {
            setTimeout("changeOpac(" + i + ",'" + id + "')", (timer * speed));
            timer++;
        }
    }
}
function changeOpac(opacity, id) {
    var object = document.getElementById(id).style;
    object.opacity = (opacity / 100);
    object.MozOpacity = (opacity / 100);
    object.KhtmlOpacity = (opacity / 100);
    object.filter = "alpha(opacity=" + opacity + ")";
}
var aslSlider = function(classN, container, width, controlcon, speed, slidecount, delay, anispeed) {
    var _self = this;
    this.position = 0;
    this.items = [];
    this.itemClass = classN;
    this.itemContainer = container;
    this.itemWidth = width;
    this.slideCount = slidecount;
    this.animation;
    this.animationDir = "right";
    this.controlContainer = controlcon;
    this.speed = speed;
    this.delay = delay || 0;
    this.aniSpeed = anispeed || 9000;
    this.anifirst = true;
    this.timerPos = 0;
    this.wait = false;
    this.init = function() {
        this.items = getElementsByClassName(this.itemClass);
        this.setup();
        this.setup();
		this.items = getElementsByClassName(this.itemClass);
        var tmpitemsWidth;
        tmpitemsWidth = (this.itemWidth) * (this.items.length +  this.slideCount);
        document.getElementById(this.itemContainer).style.width = tmpitemsWidth + "px";
        document.getElementById(this.itemContainer).style.left = "0";
        this.position =  (this.items.length / 3) ;
        document.getElementById(this.itemContainer).style.left = "-" +  ((this.position  * this.itemWidth) + 1 ) + "px"; 
        this.timerPos = (this.position  * this.itemWidth) + 1 ;
        document.getElementById(this.controlContainer).innerHTML += "<span class=\"aslSliderControls\" id=\"aslSliderControls_"+this.itemContainer+"\"><a title=\"Left\" class=\"aslSliderMoveLeft\" id=\"aslSliderMoveLeft_"+this.itemContainer+"\" href=\"javascript:void(0);\"></a> <a href=\"javascript:void(0);\" class=\"aslSliderMoveRight\" title=\"Right\" id=\"aslSliderMoveRight_"+this.itemContainer+"\"></a></span>";
        addEvent(document.getElementById("aslSliderMoveLeft_"+this.itemContainer), "click",
        function() {
            _self.left();

        });
        addEvent(document.getElementById("aslSliderMoveRight_"+this.itemContainer), "click",
        function() {
            _self.right();

        });
        this.controls();
    };
    this.setup = function () {
		ref = this.items[0];
		var clone; 
		for (i in this.items) {
			
				clone = this.items[i].cloneNode(true);
				ref.parentNode.appendChild(clone);
		
		}  
    };
    this.controls = function() {
        if (this.position <= 0) {
            document.getElementById("aslSliderMoveLeft_"+this.itemContainer).style.backgroundPosition = "right";
            document.getElementById("aslSliderMoveLeft_"+this.itemContainer).style.cursor = "default";
            document.getElementById("aslSliderMoveRight_"+this.itemContainer).style.backgroundPosition = "left";
            document.getElementById("aslSliderMoveRight_"+this.itemContainer).style.cursor = "pointer";
        } else if (this.position + this.slideCount  >= this.items.length) {
            document.getElementById("aslSliderMoveLeft_"+this.itemContainer).style.backgroundPosition = "left";
            document.getElementById("aslSliderMoveLeft_"+this.itemContainer).style.cursor = "pointer";
            document.getElementById("aslSliderMoveRight_"+this.itemContainer).style.backgroundPosition = "right";
            document.getElementById("aslSliderMoveRight_"+this.itemContainer).style.cursor = "default";
        } else {
            document.getElementById("aslSliderMoveLeft_"+this.itemContainer).style.backgroundPosition = "left";
            document.getElementById("aslSliderMoveLeft_"+this.itemContainer).style.cursor = "pointer";
            document.getElementById("aslSliderMoveRight_"+this.itemContainer).style.backgroundPosition = "left";
            document.getElementById("aslSliderMoveRight_"+this.itemContainer).style.cursor = "pointer";
        }
        clearTimeout(this.animation);
		if (this.anifirst) {
        this.animation = setTimeout(function () {
			_self.animate();        
        }, (this.aniSpeed + this.delay ));
        this.anifirst = false;
        } else {
        this.animation = setTimeout(function () {
			_self.animate();        
        }, (this.aniSpeed));
        
        }
    };
    this.animate = function () {
		if (this.animationDir == "right" && (this.position  < this.items.length)) {
			this.right();
		/*	if (this.position + this.slideCount >= this.items.length) {
				this.animationDir = "left";
			}			*/
		} else {
			this.left();
			if (this.position <= 0) {
				this.animationDir = "right";
			}
		}
    };
    this.left = function() {
		if (!this.wait) {
			if (this.position < (this.items.length / 3)) {
				this.position = this.position + (this.items.length / 3);
				this.timerPos = (this.position  * this.itemWidth) + 1 ;
			}
 			this.move((this.position * this.itemWidth), ((this.position - this.slideCount ) * (this.itemWidth)) + 1, this.speed);             
			this.controls();
		}
    };
    this.right = function() {
		if (!this.wait) {
			if (this.position > (this.items.length / 3)) {
				this.position = this.position - (this.items.length / 3);
				this.timerPos = (this.position  * this.itemWidth) + 1 ;
			}
			this.move((this.position * this.itemWidth), ((this.position + this.slideCount) * (this.itemWidth))- 1, this.speed);
			this.controls();
		}
    };
    this.change = function(dir, id, wait) {
        var object = document.getElementById(id).style;
        if (dir == "+") {
            this.timerPos++;
        } else {
            this.timerPos--;
        }
        if (!wait) {
			this.wait = wait;
			
		}
        
        object.left = "-" + this.timerPos + "px";
    };
    this.move = function(posStart, posEnd, millsecs) {
        var id = this.itemContainer;
       
        var timer = 0;
        var wait = true;
        this.wait = true;
        if (posStart < posEnd) {
			var speed = Math.round(millsecs / (posEnd - posStart ));
			this.position = this.position + this.slideCount;
            for (i = posStart; i <= posEnd; i++) {
				if (i == posEnd) {
					wait = false;
				} else {
					wait = true;
				}
				val = function (x) {
					return function() {
						_self.change("+", id, x);
					};
				}(wait);
                setTimeout(val,
                (timer * speed));
                timer++;
            }
        } else if (posStart > posEnd) {
			var speed = Math.round(millsecs / (posStart - posEnd ));
			this.position = this.position - this.slideCount;
            for (i = posStart; i >= posEnd; i--) {
				if (i == posEnd) {
					wait = false;
				} else {
					wait = true;
				}
				val = function (x) {
					return function() {
						_self.change("-", id, x);
					};
				}(wait);
                setTimeout(val,
                (timer * speed));
                timer++;
            }
        }
    };
    this.init();
};
function inputClear() {
	var inputs = getElementsByClassName("clearinput");
	for (i in inputs) {
		addEvent(inputs[i], "blur", function (e) {
			if (typeof e == 'undefined') {  
				var e = window.event;  
			}  
			var source;  
			if (typeof e.target != 'undefined') {  
				source = e.target;  
			} else if (typeof e.srcElement != 'undefined') {  
				source = e.srcElement;  
			} else {  
				return;  
			} 
			if (source.value == "" || source.value == source.title) {
				source.value = source.title;
				source.style.color = "#999";
				source.style.fontStyle = "italic";
			}
		});
		addEvent(inputs[i], "focus", function (e) {
			if (typeof e == 'undefined') {  
				var e = window.event;  
			}  
			var source;  
			if (typeof e.target != 'undefined') {  
				source = e.target;  
			} else if (typeof e.srcElement != 'undefined') {  
				source = e.srcElement;  
			} else {  
				return;  
			}  
			if (source.value == source.title) {
				source.value = "";
				source.style.color = "#4d4d4d";
				source.style.fontStyle = "normal";
			}
		});
		inputs[i].value = inputs[i].title;
		inputs[i].style.color = "#999999";
		inputs[i].style.fontStyle = "italic";
	}
}
var el;
function animate(elementID, newLeft, newTop, newWidth, newHeight, time, callback)
{
 el = document.getElementById(elementID);
  if(el == null)
    return;
  var cLeft = parseInt(el.style.left) || 0;
  var cTop = parseInt(el.style.top) || 0 ;
  var cWidth = parseInt(el.style.width) || 0;
  var cHeight = parseInt(el.style.height) || 0;
  var totalFrames = 1;
  if(time > 0)
    totalFrames = time/40;

  var fLeft = newLeft - cLeft;
  if(fLeft != 0)
    fLeft /= totalFrames;
 
  var fTop = newTop - cTop;
  if(fTop != 0)
    fTop /= totalFrames;
 
  var fWidth = newWidth - cWidth;
  if(fWidth != 0)
    fWidth /= totalFrames;
 
  var fHeight = newHeight - cHeight;
  if(fHeight != 0)
    fHeight /= totalFrames;
   
  doFrame(elementID, cLeft, newLeft, fLeft, cTop, newTop, fTop,
      cWidth, newWidth, fWidth, cHeight, newHeight, fHeight, callback);
}

function doFrame(eID, cLeft, nLeft, fLeft, cTop, nTop, fTop,
    cWidth, nWidth, fWidth, cHeight, nHeight, fHeight, callback)
{
  var el = document.getElementById(eID);
  if(el == null)
    return;

  cLeft = moveSingleVal(cLeft, nLeft, fLeft);
  cTop = moveSingleVal(cTop, nTop, fTop);
  cWidth = moveSingleVal(cWidth, nWidth, fWidth);
  cHeight = moveSingleVal(cHeight, nHeight, fHeight);

  el.style.left = Math.round(cLeft) + 'px';
  el.style.top = Math.round(cTop) + 'px';
  el.style.width = Math.round(cWidth) + 'px';
  el.style.height = Math.round(cHeight) + 'px';

  if(cLeft == nLeft && cTop == nTop && cHeight == nHeight
    && cWidth == nWidth)
  {
    if(callback != null)
      callback();
    return;
  }
   
  setTimeout( 'doFrame("'+eID+'",'+cLeft+','+nLeft+','+fLeft+','+cTop+','
      +nTop+','+fTop+','+cWidth+','+nWidth+','+fWidth+','+cHeight+','
      +nHeight+','+fHeight+','+callback+')', 40);
}

function moveSingleVal(currentVal, finalVal, frameAmt)
{
  if(frameAmt == 0 || currentVal == finalVal)
    return finalVal;
 
  currentVal += frameAmt;
  if((frameAmt > 0 && currentVal >= finalVal)
      || (frameAmt < 0 && currentVal <= finalVal))
  {
    return finalVal;
  }
  return currentVal;
}
function RemoveParameterFromUrl( url, parameter ) {

    if( typeof parameter == "undefined" || parameter == null || parameter == "" ) throw new Error( "parameter is required" );

    url = url.replace( new RegExp( "\\b" + parameter + "=[^&;]+[&;]?", "gi" ), "" );

    url = url.replace( /[&;]$/, "" );

    return url;
}
function trim(str) {
    try {
        if (str != null)
            str = str.replace(/^\s*|\s*$/g, '').replace(/^\xA0*|\xA0*$/, "");

        return str;
    }
    catch (ex) {
    }
}
function echeck(src) {
	try {
		var regex = /^((?:(?:(?:[a-zA-Z0-9][\.\-\+_]?)*)[a-zA-Z0-9])+)\@((?:(?:(?:[a-zA-Z0-9][\.\-_]?){0,62})[a-zA-Z0-9])+)\.([a-zA-Z0-9]{2,6})$/;
		return regex.test(src);
	}
	catch (ex){ }
}
// Used by the Accreditation logos, to open on the correct tab
function setTab(aId,val){
	try {
		var a=document.getElementById(aId);
		if(a.href.indexOf("?tab=") > 0)	a.href = a.href.substring(0, a.href.indexOf("?tab="));
		a.href += "?tab=" + val;
	} catch (ex) { }
}

// Colour rollovers for the Accreditation logos
function initLogos(){
	if(document.getElementById("accreditations")){
		var imgs = document.getElementById("accreditations").getElementsByTagName("img");
		for(var i=imgs.length-1;i>=0;i--){
			if(isIE) { // IE
				imgs[i].attachEvent("onmouseover",logoOver);
				imgs[i].attachEvent("onmouseout",logoOut);
			}else{ // FF, Safari etc.
				imgs[i].addEventListener("mouseover",logoOver,false);
				imgs[i].addEventListener("mouseout",logoOut,false);
			}
		}
	}
	if(document.getElementById("aceLogo")){
			var aceLogo = document.getElementById("aceLogo");
			if(isIE) { // IE
				aceLogo.attachEvent("onmouseover",logoOver);
				aceLogo.attachEvent("onmouseout",logoOut);
			}else{ // FF, Safari etc.
				aceLogo.addEventListener("mouseover",logoOver,false);
				aceLogo.addEventListener("mouseout",logoOut,false);
			}
	}
}
function logoOver(event){
	var img = (isIE) ? event.srcElement : event.target;
	img.src = img.src.replace("bw","colour");
}
function logoOut(event){
	var img = (isIE) ? event.srcElement : event.target;
	img.src = img.src.replace("colour","bw");
}
// Initialise the tabs
var HomeDefaultTab = "";
var tabContent = new Array();
var galleryContent = new Array();
function initULs(){
	var uls = document.getElementsByTagName("ul");
	
	for(var i=uls.length-1;i>=0;i--){
		if(uls[i].className.indexOf("tabTop")>=0){
			var tabSelected = false;
			var lis = uls[i].getElementsByTagName("li");
			
			for(var x=lis.length-1;x>=0;x--){
				var a = lis[x].getElementsByTagName("a");
				if(a.length==0)continue;

				var content = document.getElementById(a[0].href.substr(a[0].href.indexOf("#")+1));
				if(content==null)continue;
				
				// Default select the specified tab
				if(HomeDefaultTab!=""){
					lis[x].className = lis[x].className.replace(" selected","");
					if(content.id==HomeDefaultTab) lis[x].className += " selected";
				}

				// Hide/show the content div (One div will always be displayed)
				if((lis[x].className.indexOf("selected")>=0)||(x==0 && !tabSelected)){
					content.style.display = "block";
					tabSelected = true;
				}
				else content.style.display = "none";

				// Add the content to an array for toggling later
				tabContent[tabContent.length] = content;

				// Attach the display toggle event to the anchor
				if(isIE) a[0].attachEvent("onclick",toggleTab); // IE
				else a[0].addEventListener("click",toggleTab,false); // FF, Safari etc.
			}
		}else if(uls[i].className.indexOf("gallery")>=0){
			var gallerySelected = false;
			var lis = uls[i].getElementsByTagName("li");
			
			for(var x=lis.length-1;x>=0;x--){
				var a = lis[x].getElementsByTagName("a");
				if(a.length==0)continue;

				var content = document.getElementById(a[0].href.substr(a[0].href.indexOf("#")+1));
				if(content==null)continue;

				// Hide/show the content div (One div will always be displayed)
				if((lis[x].className.indexOf("selected")>=0)||(x==0 && !gallerySelected)){
					content.style.display = "block";
					tabSelected = true;
				}
				else content.style.display = "none";

				// Add the content to an array for toggling later
				galleryContent[galleryContent.length] = content;

				// Attach the display toggle event to the anchor
				if(isIE) a[0].attachEvent("onclick",toggleGallery); // IE
				else a[0].addEventListener("click",toggleGallery,false); // FF, Safari etc.
			}
		}
	}
}//initTabs

function toggleTab(event){
	var a = (isIE) ? event.srcElement.parentNode : event.target.parentNode;
	var id = a.href.substr(a.href.indexOf("#")+1);
	var lis = a.parentNode.parentNode.getElementsByTagName("li");
	
	// Select the tab
	for(i=lis.length-1;i>=0;i--){
		if(lis[i]==a.parentNode) lis[i].className = lis[i].className + " selected";
		else lis[i].className = lis[i].className.replace(" selected","");
	}		
	
	// Display the tab content
	for(i=tabContent.length-1;i>=0;i--){
		if(tabContent[i].id==id) tabContent[i].style.display = "block";
		else tabContent[i].style.display = "none";
	}
	
	//prevent default action
	if (event.preventDefault) event.preventDefault();
	
	return false;
}//toggleTab