function get_param( name ) {
    name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
    var regexS = "[\\?&]"+name+"=([^&#]*)";
    var regex = new RegExp( regexS );
    var results = regex.exec( window.location.href );
    if( results == null )
        return "";
    else
        return results[1];
}

function loadValue(thisfield, defaulttext) {
    if (get_param('q') != null)
        thisfield.value = get_param('q')
    else
        thisfield.value = defaulttext;
}

function clickClear(thisfield, defaulttext) {
    if (thisfield.value == defaulttext) {
        thisfield.value = "";
    }
}

function clickRecall(thisfield, defaulttext) {
    if (thisfield.value == "") {
        thisfield.value = defaulttext;
    }
}

function changeClass(thisfield, newclass) {
    thisfield.className = newclass;
}

function hideDiv(id) {
	if (document.getElementById) { // DOM3 = IE5, NS6
		document.getElementById(id).style.display = 'none';
	} else {
		var tempobj = document.all? document.all[id] : document.getElementById(id);
		if (document.layers) { // Netscape 4
			tempobj.display = 'none';
		} else { // IE 4
			document.all.tempobj.style.display = 'none';
		}
	}
}

function showDiv(id) {
	if (document.getElementById) { // DOM3 = IE5, NS6
		document.getElementById(id).style.display = 'block';
	} else {
		var tempobj = document.all? document.all[id] : document.getElementById(id);
		if (document.layers) { // Netscape 4
			tempobj.display = 'block';
		} else { // IE 4
			document.all.tempobj.style.display = 'block';
		}
	}
}

function validateForm(form) {
	result = true;
	for (var i = 0; i < form.elements.length; i++) {
		objTemp = form.elements[i];
		if (objTemp.title != null) {
			if (objTemp.type.toLowerCase()  != 'button' && objTemp.type.toLowerCase()  != 'submit') {
				//Check if the item has a value
				if ((objTemp.value == '') && (objTemp.title != '')) {
					//alert(objTemp.title + " has not been entered");
					inlineMsg(form.elements[i], objTemp.title + " has not been entered", 2);
					result = false;
					break;
				}
				//Check if item is an 
				var strTemp = objTemp.title.toLowerCase();
				if (strTemp.indexOf('e-mail') != -1 || strTemp.indexOf('email') != -1) {
					if (!validateEmail(objTemp.value)) {
						inlineMsg(form.elements[i], objTemp.title + " is not valid", 2);
						result = false;
						break;
					}
				}
			}
		}
	}
	return result;
}

var MSGTIMER = 20;
var MSGSPEED = 5;
var MSGLEFTOFFSET = 0;
var MSGTOPOFFSET = -5;
var MSGHIDE = 3;

function inlineMsg(target,string,autohide) {
	var msg;
	var msgcontent;
	if(!document.getElementById('msg')) {
		msg = document.createElement('div');
		msg.id = 'msg';
		msgcontent = document.createElement('div');
		msgcontent.id = 'msgcontent';
		document.body.appendChild(msg);
		msg.appendChild(msgcontent);
		msg.style.filter = 'alpha(opacity=0)';
		msg.style.opacity = 0;
		msg.alpha = 0;
	} else {
		msg = document.getElementById('msg');
		msgcontent = document.getElementById('msgcontent');
	}
	msgcontent.innerHTML = string;
	msg.style.display = 'block';
	var msgheight = msg.offsetHeight;
	var targetdiv = target;
	targetdiv.focus();
	var targetheight = targetdiv.offsetHeight;
	var targetwidth = targetdiv.offsetWidth;
	var topposition = topPosition(targetdiv) - ((msgheight - targetheight) / 2);
	var topposition = topPosition(targetdiv) + targetheight + MSGTOPOFFSET;
	var leftposition = leftPosition(targetdiv) + MSGLEFTOFFSET;
	msg.style.top = topposition + 'px';
	msg.style.left = leftposition + 'px';
	clearInterval(msg.timer);
	msg.timer = setInterval("fadeMsg(1)", MSGTIMER);
	if(!autohide) {
		autohide = MSGHIDE;  
	}
	window.setTimeout("hideMsg()", (autohide * 1000));
}

// hide the form alert //
function hideMsg(msg) {
	var msg = document.getElementById('msg');
	if(!msg.timer) {
		msg.timer = setInterval("fadeMsg(0)", MSGTIMER);
	}
}

// face the message box //
function fadeMsg(flag) {
	if(flag == null) {
		flag = 1;
	}
	var msg = document.getElementById('msg');
	var value;
	if(flag == 1) {
		value = msg.alpha + MSGSPEED;
	} else {
		value = msg.alpha - MSGSPEED;
	}
	msg.alpha = value;
	msg.style.opacity = (value / 100);
	msg.style.filter = 'alpha(opacity=' + value + ')';
	if(value >= 99) {
		clearInterval(msg.timer);
		msg.timer = null;
	} else if(value <= 1) {
		msg.style.display = "none";
		clearInterval(msg.timer);
	}
}

// calculate the position of the element in relation to the left of the browser //
function leftPosition(target) {
	var left = 0;
	while (target) {
		left += target.offsetLeft;
		target = target.offsetParent;
	}
	return left;
}
  
  
// calculate the position of the element in relation to the top of the browser window //
function topPosition(target) {
	var top = 0;
	while (target) {
		top += target.offsetTop;
		target = target.offsetParent;
	}
	return top;
}

function validateEmail(address) {
	var filter = /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/;
	return filter.test(address);
}

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}

function onScrollUnload(id, title) {
	createCookie(title+'-log-ypos', document.getElementById(id).scrollTop, 1);	
}

function onScrollLoad(id, title) {				
	document.getElementById(id).scrollTop = readCookie(title+'-log-ypos');	
	eraseCookie(title+'-log-ypos');	
}

var slideDelay;
var fadeDelay = 50;
var currIndex = 0;
var slides;

function setSlideshow(id, delay) {
	slides = document.getElementById(id).getElementsByTagName("div");	
	
	slideDelay = delay;
		
	setTimeout(function() { nextSlide() }, slideDelay);
}

function nextSlide() {
	
	fadeOut(slides[currIndex], 100)		
	
	currIndex++;
	
	if (currIndex == slides.length) {
		currIndex = 0;	
	}
	
	fadeIn(slides[currIndex], 0)		
	
	setTimeout(function() { nextSlide() }, slideDelay);
}

function fadeIn(object, opacity) {
	object.style.display = "block";	
	
	setOpacity(object, opacity);

	opacity = opacity + 5;
	
	if (opacity > 100) 
		setOpacity(object, 100)
	else 		
		setTimeout(function() { fadeIn(object, opacity) }, fadeDelay);
}

function fadeOut(object, opacity) {					
	setOpacity(object, opacity)
	
	opacity = opacity - 5;	

	if (opacity < 0) {
		setOpacity(object, 0);
		object.style.display = "none";
	} else 		
		setTimeout(function() { fadeOut(object, opacity) }, fadeDelay);
}

function setOpacity(object, opacity) {		
	object.style.opacity = opacity / 100;
	object.style.filter = 'alpha(opacity=' + opacity * 10 + ')';
}

