if (!!document.evaluate) {
  document._getElementsByXPath = function(expression, parentElement) {
    var results = [];
    var query = document.evaluate(expression, parentElement || document,
      null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
    for (var i = 0, length = query.snapshotLength; i < length; i++)
      results.push(query.snapshotItem(i));
    return results;
  }
}

document.getElementsByClassName = function(className, parentElement) {
  if (!!document.evaluate) {
    var q = ".//*[contains(concat(' ', @class, ' '), ' " + className + " ')]";
    return document._getElementsByXPath(q, parentElement);
  } else {
    var children = (parentElement || document.body).getElementsByTagName('*');
    var elements = [], child;
    for (var i = 0, length = children.length; i < length; i++) {
      child = children[i];
      if (child.className.length != 0 &&
          (child.className == className ||
           child.className.match(new RegExp("(^|\\s)" + className + "(\\s|$)")))) {      
        elements.push(child);
      }
    }
    return elements;
  }
}

document.getDimensions = function (element) {
  var display = element.style.display;
  if (display != 'none' && display != null) { // Safari bug
    return {width: element.offsetWidth, height: element.offsetHeight};
  }

  return {width: originalWidth, height: originalHeight};
}

function getCookie(Name){ 
	var re=new RegExp(Name+"=[^;]+", "i"); //construct RE to search for target name/value pair
	if (document.cookie.match(re)) //if cookie found
		return document.cookie.match(re)[0].split("=")[1] //return its value
	return null
}

function setCookie(name, value){
	document.cookie = name+"="+value+"; path=/";
}

function setSessionValues() {
	var aValues = new Object;
	var aElements = $('#JS_SESSION_VALUES div');

	for (var i = 0; i < aElements.length; i++) {
		aValues[$(aElements[i]).attr('className')] = $(aElements[i]).text();
	}
	aValues['JSMODE'] = 'write';

	$.post('js.php', aValues,
		function(data){
			//alert($('#JS_SESSION_VALUES .JS_SESSION_RETURN').text());
	}, "html");
}

function setSessionValue(name, value) {
	name = name.replace('#', '');
	$('#JS_SESSION_VALUES .' + name).remove();
	$('#JS_SESSION_VALUES').append('<div class="' + name + '"></div>');
	$('#JS_SESSION_VALUES .' + name).text(value);
}

function getSessionValue(name, value) {
	name = name.replace('#', '');
	return($('#JS_SESSION_VALUES .' + name).text());
}