
function getDefaultCookieExpiration() {
  var d = new Date();
  d.setTime(d.getTime()+1000*60*60*24*7*4);//4 weeks
  return ';expires='+d.toGMTString();
}
function getDefaultCookiePath() {
  return ';path=/';
}
function getCookieValue(name, defvalue) {
  if (document.cookie) {
    var i = document.cookie.indexOf(name);
    if (i >= 0) {
      var s = document.cookie.substr(i);
      i = s.indexOf('=');
      if (i > 0) {
        s = s.substr(i+1);
        i = s.indexOf(';');
        if (i > 0) {
          s = s.substr(0,i);
        }
        if (s.length > 0) {
          return s;
        }
      }
    }
  }
  return defvalue;
}
function setCookieValue(name,value) {
  document.cookie = name+'='+value+getDefaultCookiePath()+getDefaultCookieExpiration();
}

/* these are here because some styles are not 
 * available directly from the style object in IE
 */
function getStyle(e, name, defval) {
  var s = e.style.cssText;
  if (s.length) s = ' ' + s;
  var i = s.indexOf(' '+name+':');
  if (i < 0) {
    return defval;
  }
  var v = s.substr(i+name.length+2);
  i = v.indexOf(';');
  if (i > 0) v = v.substr(0,i);
  var vlen = v.length;
  for (i=0; i < vlen && v.substr(i,1) == ' '; ++i);
  if (i) {
    v = v.substr(i);
    vlen = v.length;
  }
  for (i=vlen-1; i >= 0 && v.substr(i,1) == ' '; --i);
  if (i < 0) {
    return defval;
  }
  return v.substr(0,i+1);
}

function setStyle(e, name, value) {
  var b = false;
  var s = e.style.cssText;
  if (s.length) s = ' ' + s;
  var i = s.indexOf(' '+name+':');
  if (i >= 0) {
    var p = '';
    if (i > 0) {
      p = s.substr(0,i);
    }
    s = s.substr(i+name.length+2);
    i = s.indexOf(';');
    if (i > 0) {
      s = s.substr(i+1);
    }else{
      s = '';
    }
    s = p + s;
    b = true;
  }
  if (value.length) {
    if (s.length) {
      if (s.substr(s.length-1,1) != ';') {
        s += ';';
      }
      s += ' ';
    }
    s += name + ': ' + value + ';';
    b = true;
  }
  if (b) {
    e.style.cssText = s;
  }
}

function getServerFile(url) {
  //// check for existing requests
  //if(xmlobj!=null&&xmlobj.readyState!=0&&xmlobj.readyState!=4){
  //    xmlobj.abort();
  //}
  var xmlobj = null;
  try{
      // instantiate object for Firefox, Nestcape, etc.
      xmlobj=new XMLHttpRequest();
  }
  catch(e){
      try{
          // instantiate object for Internet Explorer 6.0-
          xmlobj=new ActiveXObject('Microsoft.XMLHTTP');
      }
      catch(e){
          // Ajax is not supported by the browser
          xmlobj=null;
          return false;
      }
  }
  //// assign state handler
  //xmlobj.onreadystatechange=stateChecker;
  // open socket connection
  xmlobj.open('GET',url,false);//true=async, use false for sync
  // send request
  xmlobj.send(null);
  // get data
  return xmlobj.responseText;
}

