function insertAtCaret(obj, text) {
	if(document.selection) {
		obj.focus();
		var orig = obj.value.replace(/\r\n/g, "\n");
		var range = document.selection.createRange();

		if(range.parentElement() != obj) {
			return false;
		}

		range.text = text;
		
		var actual = tmp = obj.value.replace(/\r\n/g, "\n");

		for(var diff = 0; diff < orig.length; diff++) {
			if(orig.charAt(diff) != actual.charAt(diff)) break;
		}

		for(var index = 0, start = 0; 
			tmp.match(text) 
				&& (tmp = tmp.replace(text, "")) 
				&& index <= diff; 
			index = start + text.length
		) {
			start = actual.indexOf(text, index);
		}
	} else if(obj.selectionStart) {
		var start = obj.selectionStart;
		var end   = obj.selectionEnd;

		obj.value = obj.value.substr(0, start) 
			+ text 
			+ obj.value.substr(end, obj.value.length);
	}
	
	if(start != null) {
		setCaretTo(obj, start + text.length);
	} else {
		obj.value += text;
	}
	obj.focus();
}

function setCaretTo(obj, pos) {
	if(obj.createTextRange) {
		var range = obj.createTextRange();
		range.move('character', pos);
		range.select();
	} else if(obj.selectionStart) {
		obj.focus();
		obj.setSelectionRange(pos, pos);
	}
}


function f_mjs_set_cookie(name, value, expiration_days, path, domain, secure ) {
  var cookie_string = name + "=" + escape (value);
  if(expiration_days){
    var expires = new Date(new Date().getTime() + 1000*60*60*24*expiration_days)
    cookie_string += "; expires=" + expires.toGMTString();
  }

  if (path)
	cookie_string += "; path=" + escape (path);

  if(domain)
	cookie_string += "; domain=" + escape (domain);
  
  if(secure)
	cookie_string += "; secure";
  
  document.cookie = cookie_string;
}

function f_mjs_get_cookie(cookie_name){
  var results = document.cookie.match ( '(^|;) ?' + cookie_name + '=([^;]*)(;|$)' );

  if (results)
    return (unescape(results[2]));
  else
    return null;
}                               

if(f_mjs_get_cookie('tzoffset') == null)
	f_mjs_set_cookie('tzoffset', new Date().getTimezoneOffset(), 30, '/');