/** Common tools */

var hasparent = false;
if (parent_tid != '') { tid = parent_tid; hasparent = true; }

//change the opacity for different browsers
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 + ")";
} 

/** picture sizing */

function resizeAndGo(url) {
	var elem = $('snapphoto');
	var w = elem.getWidth();
	var h = elem.getHeight();
	
	w -= 30;
	h -= 30;
	
	if (w < 305 || h < 270) {
		w = 305;
		h = 273;
	}
	
	elem.style.width = w +"px";
	elem.style.height = h + "px";
	
	if (w == 305 && h == 273) {
		location.href=url;
	} else {
		setTimeout('resizeAndGo(\'' + url + '\')',10);
	}
}

/** dangle */
var cancel = false;
var newX = -1;
function dangle_resettext() {
	$('dangletext').innerHTML = dangletext_default;
}
function dangle_updatetext(link) {
	if (link != tid) {
		$('dangletext').innerHTML = $('link_' + link).getElementsByTagName('span')[0].innerHTML;
	} else {
		dangle_resettext();
	}
}

// by default, show at current page with "you are here"
function dangle_reset() {
	$('dangle').absolutize();
	if (!$('link_' + tid)) return false;
	var arr = $('link_' + tid).positionedOffset();
	var left = arr[0];
	
	$('dangle').style.left = arr[0] + "px";
	$('dangle').style.top = "55px";
	dangle_resettext();
	
	$('dangle').style.visibility = "visible";
	
}

function dangle_slidereset() {
	if (cancel) return false;
	
	$('dangle').absolutize();
	if (!$('link_' + tid)) return false;
	var arr = $('link_' + tid).positionedOffset();
	var left = arr[0];
	
	newX = left;
	dangle_toX(true);
	dangle_resettext();
	
}

// slide the dangle to mouse pointer and update
function dangle_to(link, event) {
	cancel = true;
	newX = -1;
	var arrP = $('link_' + link).positionedOffset();
	var arrC = $('link_' + link).cumulativeOffset();
	
	var objectPX = arrP[0];
	var objectCX = arrC[0];
	var pointerX = Event.pointerX(event);	
	var tmp = objectCX - objectPX;
	var pointerPX = pointerX - tmp;

	$('dangle').style.left = pointerPX + "px";
	
	dangle_updatetext(link);
	
	//dangle_toX();
}	


// slide the dangle to an X position
function dangle_toX(reset) {
	if (newX == -1) return;
	
	var arr = $('dangle').positionedOffset();
	var curX = arr[0];
	
	//alert(curX + "," + newX);
	
	if (curX > newX + 10) {
		$('dangle').style.left = (curX - 10) + "px"
		setTimeout("dangle_toX(" + newX + ")",1);
	} else if (curX < newX - 10) {
	$('dangle').style.left = (curX + 10) + "px"
		setTimeout("dangle_toX(" + newX + ")",1);
	} else {
		newX = -1;
		// There
		if (reset) { dangle_resettext(); }
	}
}

/*
function hideService(id) {
	$(id).className = 'trsel';
	slideUp(id,20);
}*/

/*function toggleService(id) {


	if ($(id).className == 'trsel') {
		$(id).title = "click for more information";
		$(id).className = 'tr';
		slideUp(id);
	} else {
		$(id).title = "click to hide information";
		$(id).className = 'trsel';
		slideDown(id);
	}

}

function slideDown(id) {
	if ($(id).getHeight() >= 105) {
		$(id).style.height = "115px";
		return;
	}
	
	$(id).style.height = ($(id).getHeight() + 10) + "px";	
	setTimeout("slideDown('" + id + "')",1);
}
function slideUp(id) {
	if ($(id).getHeight() <= 30) {
		$(id).style.height = "20px";
		return;
	}
	
	$(id).style.height = ($(id).getHeight() - 15) + "px";	
	setTimeout("slideUp('" + id + "')",1);
}*/

window.onload = function() {
	// Rewrite links if we have javascript
	var links = document.getElementsByClassName('raglink');
	for (var i = 0; i < links.length; i++) {
		var href = links[i].href;
		links[i].setAttribute('newhref',href);
		links[i].observe('click', function(event){
			resizeAndGo(this.readAttribute('newhref'));
		});
		links[i].href = "javascript:void(0)";
	}
	
	// Make inputs pretty
	var inputs = document.getElementsByTagName('input');
	for (var i = 0; i < inputs.length; i++) {
		var input = inputs[i];
		input.observe('focus', function(event) {
			this.writeAttribute('oldcolor',this.style.backgroundColor);
			this.style.backgroundColor = '#ecd4c6';
		});
		input.observe('blur', function(event) {
			this.style.backgroundColor = this.readAttribute('oldcolor');
		});		
	}
	var inputs = document.getElementsByTagName('textarea');
	for (var i = 0; i < inputs.length; i++) {
		var input = inputs[i];
		input.observe('focus', function(event) {
			this.writeAttribute('oldcolor',this.style.backgroundColor);
			this.style.backgroundColor = '#ecd4c6';
		});
		input.observe('blur', function(event) {
			this.style.backgroundColor = this.getAttribute('oldcolor');
		});		
	}	
	
}

function resetError() {
	setError("");
	var elems = $('frmcontact').getElementsByTagName('input');
	$('f_querycontent').style.borderColor = "#1b2830";
	for (var i = 0; i < elems.length; i++) {
		elems[i].style.borderColor = "#1b2830";
	}
}
	
function setError(err) {
	$('errorinfo').innerHTML = err;
	$('outin').innerHTML = '<span style="color:red">' + err + '</span>' +
	'<br/><a href="javascript:void(0);" onclick="location.href=location.href">Click here to start again</a>';
}

function submitContactForm() {
	resetError();
	
	new Ajax.Request(path + '/lib/contact.pl', {
		method: 'post',
		parameters: $('frmcontact').serialize(true),
		onCreate: function() {
			$('normalin').style.display = 'none';
			$('loadingin').style.display = 'block';
		},
		onSuccess: function(transport){
		
			var response = transport.responseText || "FAIL";
			if (response == "CAPTCHA_WRONG") {
				// Captcha was incorrect
				$('code').style.borderColor = "red";
				setError("Please check you entered the code correctly");
				$('normalin').style.display = 'block';
			} else if (response == "CAPTCHA_EXPIRED") {
				// Captcha was incorrect
				$('code').style.borderColor = "red";
				setError("Your session has expired");
				$('outin').style.display = 'block';	
			} else if (response.search(/MISSING/) > -1) {
				var res = response.match(/MISSING_(.*)/);
				res = res[1];
				res = res.split(",");
				for (var i = 0; i < res.length; i++) {
					if ($('f_' + res[i])) $('f_' + res[i]).style.borderColor = "red";
				}
				setError("Some fields are missing");
				$('normalin').style.display = 'block';
			} else if (response == "OK") {	
				$('outin').innerHTML = '<span style="color:#00c000">' +
				'Your query has been sent.<br/>We\'ll get back to you as soon as possible.</span>';
				$('outin').style.display = 'block';	
			} else {
				// Captcha was incorrect
				$('code').style.borderColor = "red";
				setError("An unknown error has occured.");
				$('outin').style.display = 'block';	
			}
			
			//$('outin').innerHTML = response;
			
			$('loadingin').style.display = 'none';
			//$('outin').style.display = 'block';
			
		

		},
		onFailure: function(){ alert('Something went wrong...') }

	});
}