function _preloader(list, path) {
	var preloadedPictures   = new Array();
    for (var i=0; i<list.length; i++) {
		preloadedPictures[i]     = new Image();
		preloadedPictures[i].src = path + list[i];
	}
	return true;
}
function emailValidator(email) {
	var RE = /^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$/;
	return RE.test(email);
}

function _emailContact(user, host, id) {
	var addr  = user + '@' + host;
	var obj   = document.getElementById(id);
	var email = document.createElement('a');
	
	email.setAttribute('href', 'mailto:' + addr);
	email.setAttribute('title', addr);
	email.innerHTML = addr;
	obj.appendChild(email);
}

function _defaultOver(ev) {
	ev || (ev = window.event);
	var obj;
  	obj=getObjectOfEvent(ev);
  	if (!obj) {return true;}
  	if (obj.alt) {
  		obj.title = obj.alt;
  	}
	window.status = obj.title; 
	killEvent(ev);
	return false;
}

function _defaultOut(ev) {
  	window.status = '';
  	return true;
}

function _globalOnLOad() {
	form = document.forms[0];
	var obj;
	
	if (obj = document.getElementById('spamdetect')) {
		form.robot_email.value = 'yes';
		obj.style.display = 'none';
	}
	
	obj = document.getElementsByTagName('a');
	for (var i in obj) {
		obj[i].onfocus = function() {
			this.blur();
		}
	}
	obj = form.elements;
	for (var i=0; i<obj.length; i++) {
		if (obj[i].type == 'button' || 
			obj[i].type == 'reset' || 
			obj[i].type == 'submit' || 
			obj[i].type == 'image' || 
			obj[i].type == 'radio' || 
			obj[i].type == 'checkbox') {
				
			if (obj[i].hideFocus) {
				obj[i].hideFocus = true;
			} else {
				obj[i].onfocus = function() {
					this.blur();
				}
			}
		}
	}
	if (window.onLoadEvents) {
		onLoadEvents();
	}
	return true;
}

addEvent(window, 'load', _globalOnLOad);

function _selectRange(textObj, firstChar, chars, newLines) {
	if (textObj.createTextRange) {
		var range = textObj.createTextRange();
		var max = (chars == 0) ? textObj.value.length  : chars + firstChar ;
		//alert('('+max+'):'+newLines);
		max = max - textObj.value.length + newLines;
		//alert(firstChar+','+max+'('+textObj.value.length+')');
		range.moveStart("character", firstChar);
		range.moveEnd("character", max);
		range.select();
	} else if (textObj.setSelectionRange) {
		var max = (chars == 0) ? textObj.value.length : chars + firstChar;
		textObj.setSelectionRange(firstChar, max);
	}
	textObj.focus();
}

function _insertAtCursor(textObj, newText, applySelect, leftTag, rightTag) {
	var scrollT = textObj.scrollTop;
	var scrollL = textObj.scrollLeft;
	if (document.selection && document.selection.createRange) {
		textObj.focus();
		// The current selection 
		var range = document.selection.createRange(); 
		// We'll use this as a 'dummy' 
		var stored_range = range.duplicate(); 
		// Select all text 
		stored_range.moveToElementText( textObj ); 
		// Now move 'dummy' end point to end point of original range 
		stored_range.setEndPoint( 'EndToEnd', range ); 
		// Now we can calculate start and end points 
		var startPos = stored_range.text.length - range.text.length; 
		var endPos   = startPos + range.text.length; 
		var textStart = textObj.value.substring(0, startPos);
		var textEnd   = textObj.value.substring(endPos);
		if (startPos != endPos && applySelect) {
			newText  = textObj.value.substring(startPos, endPos);
		}
		textObj.value = textStart + leftTag + newText + rightTag + textEnd;
		var newLinesL = textStart.match(/[\r]/gm);
		var newLinesR = textEnd.match(/[\r]/gm);
		newLinesL = (newLinesL) ? newLinesL.length : 0;
		newLinesR = (newLinesR) ? newLinesR.length : 0;
		_selectRange(textObj, textStart.length + leftTag.length - newLinesL, newText.length, newLinesR + newLinesL);
	} else if (textObj.selectionStart || textObj.selectionStart == '0') {
		var startPos  = textObj.selectionStart;
		var endPos    = textObj.selectionEnd;
		var textStart = textObj.value.substring(0, startPos);
		var textEnd   = textObj.value.substring(endPos);
		if (startPos != endPos && applySelect) {
			newText  = textObj.value.substring(startPos, endPos);
		}
		textObj.value = textStart + leftTag + newText + rightTag + textEnd;
		_selectRange(textObj, textStart.length + leftTag.length, newText.length);
	} else {
		textObj.value += newText;
		return;
	}
	textObj.scrollTop  = scrollT;
	textObj.scrollLeft = scrollL;
}

function getMousePos(ev) {
	if (!window.mPos) {
		window.mPos = {
			x : 0,
			y : 0
		};
	}
	
	if (window.event) {
		window.mPos.x = window.event.clientX;
		window.mPos.y = window.event.clientY;
	} else {
		window.mPos.x = ev.pageX;
		window.mPos.y = ev.pageY;
	}
}
document.onmousemove = getMousePos;


