function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

/////////////////

function openUp(x, y, adress, name) {
	
	var newOpenUp = window.open(adress, name, 'width=' + x + ', height=' + y + 'resizable=no, scrollbars=yes, menubar=no, location=no, status=no, screenX=1, screenY=1');
	newOpenUp.focus();
}

function openUp1(x, y, adress, name) {
	
	var newOpenUp = window.open(adress, name, 'width=' + x + ', height=' + y + 'resizable=no, scrollbars=no, menubar=no, location=no, status=no, screenX=1, screenY=1');
	newOpenUp.focus();
}

function getBrowser()
{
	var browserName = navigator.appName; 
	if (browserName == "Netscape")
		return "mozilla";
	else 
	if (browserName == "Microsoft Internet Explorer")
		return "ie";
	else
		return "other";
}

function doTooltip(e, msg) {
  if ( typeof Tooltip == "undefined" || !Tooltip.ready ) return;
  Tooltip.show(e, msg);
}

function hideTip() {
  if ( typeof Tooltip == "undefined" || !Tooltip.ready ) return;
  Tooltip.hide();
}



function closePage(page)
{
	win=window.opener;
	win.document.location.href = page;
	window.close();
	win.focus();
}

function openParent(page)
{
	win = window.opener;
	win.document.location.href = page;
	win.focus();
}

/////////////////////////////////

function doFormFocus(obj) {
	if (obj.value == obj.defaultValue) 
		obj.value = '';
}

function doFormBlur(obj) {
	if (obj.value == '') obj.value = obj.defaultValue;
}

function openMailPopup(page)
{
	mailWindow = window.open('mail.php?page=' + page,'Mail','width=400,height=300,toolbar=No,location=No,scrollbars=Yes,status=No,resizable=No,fullscreen=No');
}


function checkSearch(form, message, defaultValue)
{
	if (form.search.value.length < 3) {
		alert(message);
		return false;
	}
	
	if (form.search.value == defaultValue) {
		return false;
	}
	
	return true;
}


	
function checkEmail(e) {
	ok = '1234567890qwertyuiop[]asdfghjklzxcvbnm.@-_QWERTYUIOPASDFGHJKLZXCVBNM';

	for(i = 0; i < e.length; i++){
		if(ok.indexOf(e.charAt(i)) < 0)
			return (false);
	} 

	if (document.images) {
		re = /(@.*@)|(\.\.)|(^\.)|(^@)|(@$)|(\.$)|(@\.)/;
		re_two = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
		if (!e.match(re) && e.match(re_two))
			return (-1);
	}
}


function verifyEmail(form,field)
{
	if (!checkEmail(eval('form.' + field + '.value'))) {
		alert('Va rugam sa introduceti o adresa de mail valida!');
		eval('form.' + field + '.focus()');
		document.getElementById(field).style.border = '1px solid #f00';
		return false;
	}
	else
		document.getElementById(field).style.border = '1px solid #999';
	
	return true;
}


function verifyFieldSelect(form, field, fieldName)
{
	var sel = eval('form.' + field + '.selectedIndex');
	
	if (sel == -1 || eval('form.' + field + '.options[form.' + field + '.selectedIndex].value') == 0) {
		alert('Va rugam sa selectati ' + fieldName + '!');
		eval('form.' + field + '.focus()');
		document.getElementById(field).style.border = '1px solid #f00';
		return false;
	}
	else
		document.getElementById(field).style.border = '1px solid #999';
		
	return true;
}

function verifyFieldText(form, field, fieldName, maxWordLen)
{
	var textField = eval('form.' + field + '.value');
	if (textField == '') {
		alert('Va rugam sa introduceti ' + fieldName + '!');
		eval('form.' + field + '.focus()');
		document.getElementById(field).style.border = '1px solid #f00';
		return false;
	}
	else
		document.getElementById(field).style.border = '1px solid #999';
	
	if (maxWordLen == undefined)
		maxWordLen = 30;
	
	var words = textField.split(' ');
	var index = 0;
	var word = '';
	
	for (var i = 0; i < words.length; i++) {
		if (words[i].length > maxWordLen) {
			alert('Ati introdus cuvinte mai lungi de ' + maxWordLen + ' caractere. Va rugam modificati.');
			eval('form.' + field + '.focus()');
			document.getElementById(field).style.border = '1px solid #f00';
			return false;
		}
		else
			document.getElementById(field).style.border = '1px solid #999';
	}
	
	return true;
}


function verifyFieldDate(form, field, fieldName, maxWordLen)
{
	var dateField = document.getElementById(field);
	
	/*if (getBrowser() == 'ie') {
		var mydate = new Date(parseInt(dateField.value));
		alert(mydate);
		alert(mydate.getFullYear());
		var dateFieldValue = mydate.getFullYear() + '-' + mydate.getMonth() +  '-' + mydate.getDay();
	}
	else*/
	var dateFieldValue = dateField.value;
	
	if (dateFieldValue == '') { 
		alert('Va rugam sa introduceti ' + fieldName + '!');
		eval('form.' + field + '.focus()');
		dateField.style.border = '1px solid #f00';
		return false;
	}
	else
		dateField.style.border = '1px solid #999';
	
	if (maxWordLen == undefined)
		maxWordLen = 30;
	
	var checkstr = "0123456789";
	var DateField = dateField;
	var Datevalue = '';
	var DateTemp = "";
	var seperator = ".";
	var day;
	var month;
	var year;
	var leap = 0;
	var err = 0;
	var i;
	
	err = 0;
	DateValue = dateFieldValue;
	
	/* Delete all chars except 0..9 */
	for (i = 0; i < DateValue.length; i++)
		if (checkstr.indexOf(DateValue.substr(i,1)) >= 0)
			DateTemp = DateTemp + DateValue.substr(i,1);

	DateValue = DateTemp;
	/* Always change date to 8 digits - string*/
	/* if year is entered as 2-digit / always assume 20xx */
	if (DateValue.length == 6)
		DateValue = DateValue.substr(0,4) + '20' + DateValue.substr(4,2);
	if (DateValue.length != 8)
		err = 19;
	
	/* year is wrong if year = 0000 */
	year = DateValue.substr(4,4);
	if (year == 0)
		err = 20;
	
	/* Validation of month*/
	month = DateValue.substr(2,2);
	if ((month < 1) || (month > 12))
		err = 21;
	
	/* Validation of day*/
	day = DateValue.substr(0,2);
	if (day < 1)
		err = 22;

	/* Validation leap-year / february / day */
	if ((year % 4 == 0) || (year % 100 == 0) || (year % 400 == 0))
		leap = 1;
	
	if ((month == 2) && (leap == 1) && (day > 29))
		err = 23;
	
	if ((month == 2) && (leap != 1) && (day > 28))
		err = 24;
	
	/* Validation of other months */
	if ((day > 31) && ((month == "01") || (month == "03") || (month == "05") || (month == "07") || (month == "08") || (month == "10") || (month == "12")))
		err = 25;
	
	if ((day > 30) && ((month == "04") || (month == "06") || (month == "09") || (month == "11")))
		err = 26;
	
	/* if 00 ist entered, no error, deleting the entry */
	/*if ((day == 0) && (month == 0) && (year == 00)) {
		err = 0; day = ""; month = ""; year = ""; seperator = "";
	}*/
	/* if no error, write the completed date to Input-Field (e.g. 13.12.2001) */
	if (err == 0) {
		//DateField.value = day + seperator + month + seperator + year;
		document.getElementById(field).style.border = '1px solid #999';
	}
	else { /* Error-message if err != 0 */
		alert('Va rugam sa introduceti o data corecta la rubrica ' + fieldName + ' (' + err + ')!');
		eval('form.' + field + '.focus()');
		document.getElementById(field).style.border = '1px solid #f00';
		return false;
	}
	
	return true;
}


function verifyFieldFile(form,field, fieldName, maxWordLen)
{
	var textField = eval('form.' + field + '.value');
	if (textField == '') {
		alert('Va rugam sa introduceti ' + fieldName + '!');
		eval('form.' + field + '.focus()');
		document.getElementById(field).style.border = '1px solid #f00';
		return false;
	}
	else
		document.getElementById(field).style.border = '1px solid #999';
		
	return true;
}


function isInteger(s)
{   
	var i;
	for (i = 0; i < s.length; i++) {   
		// Check that current character is number.
		var c = s.charAt(i);
		if (((c < "0") || (c > "9"))) return false;
	}
	
	// All characters are numbers.
	return true;
}


function stripCharsInBag(s, bag)
{   
	var i;
	var returnString = "";
	// Search through string's characters one by one.
	// If character is not in bag, append to returnString.
	for (i = 0; i < s.length; i++) {   
		// Check that current character isn't whitespace.
		var c = s.charAt(i);
		if (bag.indexOf(c) == -1) returnString += c;
	}
	
	return returnString;
}


function checkInternationalPhone(strPhone)
{
	// Declaring required variables
	var digits = "0123456789";
	// non-digit characters which are allowed in phone numbers
	var phoneNumberDelimiters = "()- ";
	// characters which are allowed in international phone numbers
	// (a leading + is OK)
	var validWorldPhoneChars = phoneNumberDelimiters + "+";
	// Minimum no of digits in an international phone no.
	var minDigitsInIPhoneNumber = 6;
	
	s = stripCharsInBag(strPhone, validWorldPhoneChars);
	return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
}


function verifyFieldPhone(form,field, fieldName, maxWordLen)
{
	var textField = eval('form.' + field + '.value');
	if (textField == '') {
		alert('Va rugam sa introduceti ' + fieldName + '!');
		eval('form.' + field + '.focus()');
		document.getElementById(field).style.border = '1px solid #f00';
		return false;
	}
	else
		document.getElementById(field).style.border = '1px solid #999';
	
	/**
	 * DHTML phone number validation script. Courtesy of SmartWebby.com (http://www.smartwebby.com/dhtml/)
	 */
	
	// Declaring required variables
	var digits = "0123456789";
	// non-digit characters which are allowed in phone numbers
	var phoneNumberDelimiters = "()- ";
	// characters which are allowed in international phone numbers
	// (a leading + is OK)
	var validWorldPhoneChars = phoneNumberDelimiters + "+";
	// Minimum no of digits in an international phone no.
	var minDigitsInIPhoneNumber = 6;


	if ((textField==null) || (textField == "")) {
		alert('Va rugam sa introduceti un numar de telefon valid!');
		eval('form.' + field + '.focus()');
		document.getElementById(field).style.border = '1px solid #f00';
		return false;
	}
	else
	if (checkInternationalPhone(textField) == false) {
		alert('Va rugam sa introduceti un numar de telefon valid (' + fieldName + ')!');
		eval('form.' + field + '.focus()');
		document.getElementById(field).style.border = '1px solid #f00';
		return false;
	}
	else
		document.getElementById(field).style.border = '1px solid #999';
	
	return true;
}



function verifyFieldNumber(form,field, fieldName, maxWordLen)
{
	var textField = eval('form.' + field + '.value');
	if (textField == '') {
		alert('Va rugam sa introduceti ' + fieldName + '!');
		eval('form.' + field + '.focus()');
		document.getElementById(field).style.border = '1px solid #f00';
		return false;
	}
	else
		document.getElementById(field).style.border = '1px solid #999';
	
	if (maxWordLen == undefined)
		maxWordLen = 12;
	
	if (textField.length > maxWordLen) {
		alert('Ati introdus cuvinte mai lungi de ' + maxWordLen + ' caractere in campul ' + fieldName + '.');
		eval('form.' + field + '.focus()');
		document.getElementById(field).style.border = '1px solid #f00';
		return false;
	}
	else {
	
		var validDelimiters = ".,";
		
		s = stripCharsInBag(textField, validDelimiters);
		
		if (!isInteger(s)) {
			alert('Va rugam sa introduceti un numar valid (' + fieldName + ') !');
			eval('form.' + field + '.focus()');
			document.getElementById(field).style.border = '1px solid #f00';
			return false;
		}
		else
			document.getElementById(field).style.border = '1px solid #999';
	}
	
	return true;
}



function verifyFieldPercent(form,field, fieldName, maxWordLen)
{
	if (!verifyFieldNumber(form, field, fieldName, maxWordLen))
		return false;
	
	var textField = eval('form.' + field + '.value');
	var value = parseFloat(textField);
	
	if (value < 0 || value > 100) {
		alert('Va rugam sa introduceti un procent intre 0 si 100 pentru ' + fieldName + '!');
		eval('form.' + field + '.focus()');
		document.getElementById(field).style.border = '1px solid #f00';
		return false;
	}
	else
		document.getElementById(field).style.border = '1px solid #999';
	
	return true;
}


function verifyFieldsGeneral(form, fields)
{
	
	/******* MODEL *******
	var fields = new Array();
	
	fields[0] = new Array();
	fields[0]['name'] = 'venit';
	fields[0]['title'] ='venitul salarial net';
	fields[0]['type'] ='text'; 
	
	fields[1] = new Array();
	fields[1]['name'] = 'credit_type';
	fields[1]['title'] ='tipul de credit';
	fields[1]['type'] ='select'; 
	
	***********************/
	
	for (var i = 0; i < fields.length; i++) {
		//alert(fields[i]['name']);
		
		if (fields[i]['type'] == 'select')
			if (!verifyFieldSelect(form, fields[i]['name'], fields[i]['title']))
				return false;
		
		if (fields[i]['type'] == 'text')
			if (!verifyFieldText(form, fields[i]['name'], fields[i]['title']))
				return false;
				
		if (fields[i]['type'] == 'email') {
			if (!verifyFieldText(form, fields[i]['name'], fields[i]['title']))
				return false;
				
			if (!verifyEmail(form, fields[i]['name'])) {
				return false;
			}
		}
		
		if (fields[i]['type'] == 'date')
			if (!verifyFieldDate(form, fields[i]['name'], fields[i]['title']))
				return false;
		
		if (fields[i]['type'] == 'file')
			if (!verifyFieldFile(form, fields[i]['name'], fields[i]['title']))
				return false;
				
		if (fields[i]['type'] == 'number')
			if (!verifyFieldNumber(form, fields[i]['name'], fields[i]['title']))
				return false;
				
		if (fields[i]['type'] == 'percent')
			if (!verifyFieldPercent(form, fields[i]['name'], fields[i]['title']))
				return false;
				
		if (fields[i]['type'] == 'phone')
			if (!verifyFieldPhone(form, fields[i]['name'], fields[i]['title']))
				return false;
				
		//alert('end ' + fields[i]['name']);
	}
		
	return true;
}



function resetForm(form)
{
	if (resetFields == undefined) {
		for (i = 0; i < form.elements.length; i++) {
			if (form.elements[i].type == 'select' || form.elements[i].type == 'select-one') {
				form.elements[i].selectedIndex = 0;
			}
			else
			if (form.elements[i].type == 'checkbox' || form.elements[i].type == 'radio') {
				form.elements[i].checked = false;
			}
			else
			if (form.elements[i].type == 'text')
				form.elements[i].value = '';
		}
	}
	else {
		for (i = 0; i < resetFields.length; i++) {
			var field = document.getElementById(resetFields[i]['name']);
			
			if (resetFields[i]['type'] == 'select')
				field.selectedIndex = resetFields[i]['init'];
			else
			if (resetFields[i]['type'] == 'checkbox' || resetFields[i]['type'] == 'radio')
				field.checked = resetFields[i]['init'];
			else
			if (resetFields[i]['type'] == 'text')
				field.value = resetFields[i]['init'];
			
			field.disabled = resetFields[i]['disabled'];
		}
	}
}


/*
function countMessageChars(text, charLabel, maxLen, maxWordLen)
{
	if (text.value.length > maxLen)
		text.value = text.value.substr(0, maxLen);
		
	if (maxWordLen != undefined) {
		var words = text.value.split(' ');
		
		for (var i = 0; i < words.length; i++)
			if (words[i].length > maxWordLen)
				words[i] = words[i].substr(0, maxWordLen);
		
		var str = '';
		for (var i = 0; i < words.length; i++)
			str += (i != 0 ? ' ' : '') + words[i];
		text.value = str;
	}
	
	document.getElementById(charLabel).innerHTML = text.value.length;
}
*/

///////////////////////
// textareas operations
//////////////////////

function insertAtCursor(myField, myValue) 
{
	//IE support
	if (document.selection) {
		myField.focus();
		sel = document.selection.createRange();
		sel.text = myValue;
	}
	//MOZILLA/NETSCAPE support
	else 
	if (myField.selectionStart || myField.selectionStart == '0') {
		var startPos = myField.selectionStart;
		var endPos = myField.selectionEnd;
		myField.value = myField.value.substring(0, startPos)
		+ myValue
		+ myField.value.substring(endPos, myField.value.length);
	} 
	else {
		myField.value += myValue;
	}
}

function getCursorPos(textElement) 
{
	//save off the current value to restore it later,
	var sOldText = textElement.value;
	
	//create a range object and save off it's text
	var objRange = document.selection.createRange();
	var sOldRange = objRange.text;
	
	//set this string to a small string that will not normally be encountered
	var sWeirdString = '#%~';
	
	//insert the weirdstring where the cursor is at
	//objRange.text = sOldRange + sWeirdString; 
	//objRange.moveStart('character', (0 - sOldRange.length - sWeirdString.length));
	insertAtCursor(textElement, sWeirdString);
	
	//save off the new string with the weirdstring in it
	var sNewText = textElement.value;
	
	//set the actual text value back to how it was
	objRange.text = sOldRange;
	
	//look through the new string we saved off and find the location of
	//the weirdstring that was inserted and return that value
	for (i=0; i <= sNewText.length; i++) {
		var sTemp = sNewText.substring(i, i + sWeirdString.length);
		if (sTemp == sWeirdString) {
			var cursorPos = (i - sOldRange.length);
			return cursorPos;
		}
	}
}

function countMessageChars(text, charLabel, maxLen, maxWordLen)
{
	if (text.value.length > maxLen)
		text.value = text.value.substr(0, maxLen);
		
	if (maxWordLen != undefined) {
		//var cursor = getCursorPos(text);
		var spaceIndex = text.value.lastIndexOf(' ');
		var newlineIndex = text.value.lastIndexOf('\n');
		var index = 0;
		var word = '';
		
		if (spaceIndex > newlineIndex) {
			word = text.value.substr(spaceIndex + 1);
			index = spaceIndex;
		}
		else {
			word = text.value.substr(newlineIndex + 1);
			index = newlineIndex;
		}
		
		if (word.length > maxWordLen)
			text.value = text.value.substr(0, index + maxWordLen + 1);
	}
	
	document.getElementById(charLabel).innerHTML = text.value.length;
}

/*
var words = textField.split(' ');
	var index = 0;
	var word = '';
	
	for (var i = 0; i < words.length; i++) {
		if (words[i].length > maxWordLen) {
		
		
function countMessageChars(text, charLabel, maxLen, maxWordLen)
{
	if (text.value.length > maxLen)
		text.value = text.value.substr(0, maxLen);
		
	if (maxWordLen != undefined) {
		var spaceIndex = text.value.lastIndexOf(' ');
		var newlineIndex = text.value.lastIndexOf('\n');
		var index = 0;
		var word = '';
		
		if (spaceIndex > newlineIndex) {
			word = text.value.substr(spaceIndex + 1);
			index = spaceIndex;
		}
		else {
			word = text.value.substr(newlineIndex + 1);
			index = newlineIndex;
		}
		
		if (word.length > maxWordLen)
			text.value = text.value.substr(0, index + maxWordLen + 1);
	}
	
	document.getElementById(charLabel).innerHTML = text.value.length;
}
*/


// JS Calendar
var calendar = null; // remember the calendar object so that we reuse
// it and avoid creating another

// This function gets called when an end-user clicks on some date
function selected(cal, date) {
	cal.sel.value = date; // just update the value of the input field
}

// And this gets called when the end-user clicks on the _selected_ date,
// or clicks the "Close" (X) button.  It just hides the calendar without
// destroying it.
function closeHandler(cal) {
	cal.hide();			// hide the calendar

	// don't check mousedown on document anymore (used to be able to hide the
	// calendar when someone clicks outside it, see the showCalendar function).
	Calendar.removeEvent(document, "mousedown", checkCalendar);
}

// This gets called when the user presses a mouse button anywhere in the
// document, if the calendar is shown.  If the click was outside the open
// calendar this function closes it.
function checkCalendar(ev) {
	var el = Calendar.is_ie ? Calendar.getElement(ev) : Calendar.getTargetElement(ev);
	for (; el != null; el = el.parentNode)
	// FIXME: allow end-user to click some link without closing the
	// calendar.  Good to see real-time stylesheet change :)
	if (el == calendar.element || el.tagName == "A") break;
	if (el == null) {
		// calls closeHandler which should hide the calendar.
		calendar.callCloseHandler(); Calendar.stopEvent(ev);
	}
}

// This function shows the calendar under the element having the given id.
// It takes care of catching "mousedown" signals on document and hiding the
// calendar if the click was outside.
function showCalendar(id) {
	var el = document.getElementById(id);
	if (calendar != null) {
		// we already have one created, so just update it.
		calendar.hide();		// hide the existing calendar
		calendar.parseDate(el.value); // set it to a new date
	} else {
		// first-time call, create the calendar
		var cal = new Calendar(true, null, selected, closeHandler);
		calendar = cal;		// remember the calendar in the global
		cal.setRange(1920, 2030);	// min/max year allowed
		calendar.create();		// create a popup calendar
	}
	calendar.sel = el;		// inform it about the input field in use
	calendar.showAtElement(el);	// show the calendar next to the input field

	// catch mousedown on the document
	Calendar.addEvent(document, "mousedown", checkCalendar);
	
	return false;
}


function smoothScroll(anchor)
{
	// Now loop all A tags until we find one with that name
	var allLinks = document.getElementsByTagName('a');
	var destinationLink = null;
	for (var i=0; i<allLinks.length; i++) {
		var lnk = allLinks[i];
		if (lnk.name && (lnk.name == anchor)) {
			destinationLink = lnk;
			break;
		}
	}
	
	// If we didn't find a destination, give up and let the browser do its thing
	if (!destinationLink) return true;
	
	// Find the destination's position
	var destx = destinationLink.offsetLeft; 
	var desty = destinationLink.offsetTop;
	var thisNode = destinationLink;
	
	while (thisNode.offsetParent && (thisNode.offsetParent != document.body)) {
		thisNode = thisNode.offsetParent;
		destx += thisNode.offsetLeft;
		desty += thisNode.offsetTop;
	}
	
	// Stop any current scrolling
	if (window.INTERVAL)
		clearInterval(window.INTERVAL);
	
	cypos = getCurrentYPos();
	
	ss_stepsize = parseInt((desty - cypos) / 25); // STEP SIZE
	window.INTERVAL = setInterval('scrollWindow(' + ss_stepsize + ',' + desty + ',"' + anchor + '")', 10);
}

function scrollWindow(scramount, dest, anchor)
{
	wascypos = getCurrentYPos();
	isAbove = (wascypos < dest);
	window.scrollTo(0,wascypos + scramount);
	iscypos = getCurrentYPos();
	isAboveNow = (iscypos < dest);
	
	if ((isAbove != isAboveNow) || (wascypos == iscypos)) {
		// if we've just scrolled past the destination, or
		// we haven't moved from the last scroll (i.e., we're at the
		// bottom of the page) then scroll exactly to the link
		window.scrollTo(0,dest);
		// cancel the repeating timer
		if (window.INTERVAL)
			clearInterval(window.INTERVAL);
		// and jump to the link directly so the URL's right
		location.hash = anchor;
	}
}

function getCurrentYPos() 
{
	if (document.body && document.body.scrollTop)
		return document.body.scrollTop;
	
	if (document.documentElement && document.documentElement.scrollTop)
		return document.documentElement.scrollTop;
	
	if (window.pageYOffset)
		return window.pageYOffset;
	
	return 0;
}


function findPosX(obj)
{
	var curleft = 0;
	
	if (obj.offsetParent)
		while (1) {
			curleft += obj.offsetLeft;
			
			if(!obj.offsetParent)
				break;
			
			obj = obj.offsetParent;
		}
	else 
	if (obj.x)
		curleft += obj.x;
	
	return curleft;
}


function findPosY(obj)
{
	var curtop = 0;
	if (obj.offsetParent)
		while (1) {
			curtop += obj.offsetTop;
			
			if (!obj.offsetParent)
				break;
			
			obj = obj.offsetParent;
		}
	else 
	if (obj.y)
		curtop += obj.y;
	
	return curtop;
}


///



function submitenter(myfield, e)
{
	var keycode;
	if (window.event)
		keycode = window.event.keyCode;
	else if (e) 
		keycode = e.which;
	else 
		return true;
	
	if (keycode == 13) {
		myfield.form.submit();
		return false;
	}
	else
		return true;
}



function getURL(mode, page, params)
{
	if (page == "")
		return host + (!mode ? 'index.php' : '/') + (params && params != '' ? (params.substr(0, 1) != '#' ? '&' : '') + params : '');
	
	return host + (!mode ? 'index.php?page=' : '') + (mode ? '/' : '') + page + (mode ? '.html' : '') + (params && params != '' ? (params.substr(0, 1) != '#' ? '&' : '') + params : '');
}

