(function(){
	
	var target = location.hash;	
	if (target.indexOf('-')>0)
	{
		if (target.charAt(0)=='#') target = target.substr(1);
		if (target = document.getElementById(target))
		{
			if (target.tagName && target.tagName.toLowerCase() == 'dt')
			{
				do
				{
					target = target.nextSibling;
				}
				while(target && (target.nodeType == 3 || target.tagName.toLowerCase() !== 'dd'));		
			}
			if (target)
			{
				target.className += " target";		
			}
		}
	}
	
	
	var attachLabel = function(input,label, labelobj)
	{
		
		var updlabel = function()
		{
			if (input.value == label && (input.ismoused || input.isfocused)) {input.className = ''; input.value = '';}
			else if (input.value == '' && (!input.ismoused && !input.isfocused)) {input.className = 'placeholder'; input.value = label;}
		}
		
		input.onfocus = function() {this.isfocused=true; updlabel();}
		input.onblur = function() {this.isfocused=false; updlabel();}
		input.onmouseover = function() {this.ismoused=true; setTimeout(updlabel,200);}
		input.onmouseout = function() {this.ismoused=false; setTimeout(updlabel,200);}
	  updlabel();
	}

	

	var zzz = function()
	{
		var labels = document.getElementsByTagName('label');	
		var i,input;
		for(i=0; i < labels.length; i++)
		{
			if (labels[i].htmlFor) 
			{				
				input = document.getElementById(labels[i].htmlFor); if (!input) continue;
				input.my_label = labels[i];
				if (/\bplaceholder\b/.test(input.className))
				{
					attachLabel(input, input.title || labels[i].textContent || labels[i].innerText || labels[i].innerHTML, labels[i]);
				}
			}
		}
		labels=null;
		
		var buttons = document.getElementsByTagName('input');
		for(i=0; i < buttons.length; i++)
		{
			if (buttons[i].type == 'submit')
			{
				buttons[i].onclick = function()	{
					var that = this;
					setTimeout(function(){that.disabled=true;},1);
					setTimeout(function(){that.disabled=false;},8000);
				}
			}
		}
	};
	zzz();
	
	var opacity = function(el, o)
	{
		if (el.style.opacity !== undefined) el.style.opacity = o;
		else o = Math.round(o);
//		else if (el.style.filter !== undefined) el.style.filter='alpha(opacity=' + (o*10) + ')';

		if (o != 0 && el.style.display !== '') {el.style.display='';}
		else if (o == 0 && el.style.display !== 'none') {el.style.display='none';}				
	}
	
	var hideElement = function(elid,hide, timer)
	{
			var el = document.getElementById(elid);
			if (!el) return;
		
			if (!hide) 
			{
				if (el.style.display != 'none') return;
				
				opacity(el,0);
				if (el.my_label) opacity(el.my_label,0);
			}
			else if (el.style.display == 'none') return;
			
			var n = 5;
			var tim = setInterval(function() 
			{
				if (n--)
				{
					opacity(el, (hide?n/6:1-n/6));
					if (el.my_label) opacity(el.my_label, (hide?n/6:1-n/6));
				}
				else
				{
					clearInterval(tim);
					opacity(el,hide?0:1);
					if (el.my_label) opacity(el.my_label,hide?0:1);
				}
			},timer);
	}

  /// find expert
	var findcountry = document.getElementById('find-country');
	if (findcountry)
	{
		findcountry.onchange = function()
		{
			var v = this.value || this.options[this.selectedIndex].text; /* IE doesnt support value! */
			hideElement('find-county',v != 'United Kingdom',50);
			hideElement('postcode',v != 'United Kingdom',60);
			if (v != 'United Kingdom') this.form.submit();
		}
	}
	
	var findcounty = document.getElementById('find-county');
	if (findcounty)
	{
		findcounty.onchange = function() 
		{
			hideElement('postcode', this.selectedIndex ,50);
			if (this.selectedIndex) this.form.submit();
		}
	}

/*
	/// event booking
	var p1 = document.getElementById('paymethod1');
	var p2 = document.getElementById('paymethod2');
	
	if (p1 && p2)
	{
		if (!p1.checked) document.getElementById('paymethod1-field').style.display='none';
		if (!p2.checked) document.getElementById('paymethod2-field').style.display='none';
		p1.onchange = p1.onclick = function() {
			hideElement('paymethod1-field',false,80);
			document.getElementById('paymethod2-field').style.display = 'none';
		}
		p2.onchange = p2.onclick = function() {
			hideElement('paymethod2-field',false,80);
			document.getElementById('paymethod1-field').style.display = 'none';		
		}
	}

	p1 = document.getElementById('same_addr');
	if (p1)
	{
		p1.onchange = p1.onclick = function() {
			var that = this;			
			setTimeout(function(){hideElement('ship_addr', that.checked, 80);},10);
		}
	}
	
	var c = document.getElementById('tickets');
	if (c)
	{
		c.onchange = function()
		{
			var num = parseInt(this.value);
			var txt;
			if (!(num > 0)) txt = 'Please enter number of tickets';
			else
			{
				num = parseInt(this.form.price_pence.value) * num;
				txt = '\u00A3' + Math.floor(num/100) + '.' + ((num%100)<10?'0'+(num%100):(num%100)) + ' total';
			}
			document.getElementById('totalprice').innerHTML = txt;
		}
		if (parseInt(c.value) != 1) c.onchange();
	}

    */
	
})();

