///////////////////////////////////////////////////////////////////////////////
// COPYRIGHT 2008 www.FloatingActionButton.com                               //
// A WebCodeTechnology.com product                                           //
//                                                                           //
// All Rights Reserved                                                       //
///////////////////////////////////////////////////////////////////////////////

// Position Constants
var LEFT = 1;
var MIDDLE = 2;
var RIGHT = 3;
var TOP = 1;
var BOTTOM =3;

// Selected Position of Button
var hAlign =  LEFT;
var vAlign = TOP;

// Padding/Margin   Left/Right Margin     Top/Bottom Margin
var fabHMargin = 10; 
var fabVMargin = 50;

var fabStartDelay = 1000;
var fabSlideTime = 700;
var fabOpacity = 0.9; 

xAddEventListener(window, 'load',
  function () {
    
    var e = xCreateElement('DIV');
    e.id = "divActionButton";
    e.style.backgroundColor = "#FFFFFF";
    e.style.padding = "10";
    xInnerHtml(e, "<div style=\"text-align:right;\"><a onclick=\"closeFab();\" style=\"cursor: pointer;\"\"><b>Close X</b></a></div><style type=\"text/css\">#WFItem104090 html{color:#000 !important;background:#FFF  !important;} #WFItem104090 body, #WFItem104090 div, #WFItem104090 dl, #WFItem104090 dt, #WFItem104090 dd, #WFItem104090 ul, #WFItem104090 ol, #WFItem104090 li, #WFItem104090 h1, #WFItem104090 h2, #WFItem104090 h3, #WFItem104090 h4, #WFItem104090 h5, #WFItem104090 h6, #WFItem104090 pre, #WFItem104090 code, #WFItem104090 form, #WFItem104090 fieldset, #WFItem104090 legend, #WFItem104090 input, #WFItem104090 textarea, #WFItem104090 p, #WFItem104090 blockquote, #WFItem104090 th, #WFItem104090 td{margin-left:0 !important;margin-right:0 !important;margin-top:0 !important;margin-bottom:0 !important;padding-left:0 !important;padding-bottom:0 !important;padding-right:0 !important;padding-top:0 !important;width:auto !important;background-image:none  !important;} #WFItem104090 div, #WFItem104090 dl, #WFItem104090 dt, #WFItem104090 dd, #WFItem104090 ul, #WFItem104090 ol, #WFItem104090 li, #WFItem104090 h1, #WFItem104090 h2{border:none !important;background:none !important;float:none !important;width:auto !important;-moz-box-shadow:0 !important;-webkit-box-shadow:0 !important;box-shadow:0  !important;} #WFItem104090 table{border-collapse:collapse !important;border-spacing:0  !important;} #WFItem104090 fieldset, #WFItem104090 img{border:0  !important;} #WFItem104090 address, #WFItem104090 caption, #WFItem104090 cite, #WFItem104090 code, #WFItem104090 dfn, #WFItem104090 em, #WFItem104090 th, #WFItem104090 var{font-style:normal !important;font-weight:normal  !important;} #WFItem104090 strong{font-style:normal !important;font-weight:bold  !important;} #WFItem104090 em{font-style:italic !important;font-weight:normal !important;position:static  !important;} #WFItem104090 li{list-style:none  !important;}caption, #WFItem104090 th{text-align:left  !important;} #WFItem104090 h1, #WFItem104090 h2, #WFItem104090 h3, #WFItem104090 h4, #WFItem104090 h5, #WFItem104090 h6{font-size:100% !important;font-weight:normal  !important;} #WFItem104090 q:before, #WFItem104090 q:after{content: \" \"  !important;} #WFItem104090 abbr, #WFItem104090 acronym{border:0 !important;font-variant:normal  !important;} #WFItem104090 sup{vertical-align:text-top  !important;} #WFItem104090 sub{vertical-align:text-bottom  !important;} #WFItem104090 input, #WFItem104090 textarea, #WFItem104090 select{font-family:inherit !important;font-size:inherit !important;font-weight:inherit !important;height:auto !important;line-height:auto  !important;} #WFItem104090 input, #WFItem104090 textarea, #WFItem104090 select{*font-size:100%  !important;} #WFItem104090 legend{color:#000  !important;} #WFItem104090 .clearfix:after { visibility: hidden !important; display: block !important; font-size: 0 !important; content: \" \" !important; clear: both !important; height: 0  !important;} #WFItem104090 .clearer { clear:both !important; font-size:0.1px !important; height:0.1px !important; line-height:0.1px !important; width:100%  !important;} #WFWrapper .close { background:url(http://www.getresponse.com/images/common/highslide/close.png) repeat scroll 0 0 transparent !important; cursor:pointer !important; height:30px !important; position:absolute !important; right:-15px !important; top:-15px !important; width:30px !important;z-index:1  !important;} #WFItem104090 .clrB {clear:both !important;text-align:left  !important;} #WFItem104090 * html .clearfix { zoom: 1  !important;} #WFItem104090 *:first-child+html .clearfix { zoom: 1  !important;} #WFItem104090 .wf-contbox { width:100%  !important;} li:before {content: \"\"  !important;} #WFItem104090 form { display:inline-block !important; width:100%  !important;} #WFItem104090 label { margin:0  !important;} #WFItem104090 p { line-height:18px !important; font-size:11px  !important;} #WFItem104090 input[type=\"submit\"] { cursor:pointer  !important;} #WFItem104090 {width:230px  !important;} #WFItem104090 { color:#555555 !important; font-family:Arial,Helvetica,sans-serif !important; font-size:12px  !important;} #WFItem104090 .wf-body li { padding:10px 15px !important; clear:both  !important;} #WFItem104090 .actTinyMceElBodyContent ul li { padding:3px !important; list-style-type:disc  !important;} #WFItem104090 .actTinyMceElBodyContent ol li { padding:3px !important; list-style-type:decimal  !important;} #WFItem104090 .actTinyMceElBodyContent ul { margin-left: 20px  !important;} #WFItem104090 .actTinyMceElBodyContent ol { margin-left: 25px  !important;} #WFItem104090 .actTinyMceElBodyContent ol ol { margin-top: 0 !important; margin-bottom: 0  !important;} #WFItem104090 .wf-body { background-color:#a6979b !important; background-image:none !important; background-position:left top !important; background-repeat:no-repeat !important; border-color:#92757d !important; border-width:0px !important; border-style:None !important; padding-left:0 !important; padding-right:0 !important; padding-top:0 !important; padding-bottom:0 !important; -webkit-border-top-left-radius: 0px !important; -moz-border-radius-topleft: 0px !important; border-top-left-radius: 0px !important;-webkit-border-top-right-radius: 0px !important; -moz-border-radius-topright: 0px !important; border-top-right-radius: 0px !important;-webkit-border-bottom-left-radius: 0px !important; -moz-border-radius-bottomleft: 0px !important; border-bottom-left-radius: 0px !important;-webkit-border-bottom-right-radius: 0px !important; -moz-border-radius-bottomright: 0px !important; border-bottom-right-radius: 0px  !important;} #WFItem104090 .wf-header { color:#ffffff !important;background-color:rgb(87, 46, 46) !important;background-image:none !important;background-position:left top !important;background-repeat:no-repeat !important;border-color:#6b6262 !important;border-width:0px !important;border-style:none !important;padding-left:10px !important;padding-right:10px !important;padding-top:10px !important;padding-bottom:10px !important;display:block !important;min-height:42px !important;-webkit-border-top-left-radius: 0px !important;-moz-border-radius-topleft: 0px !important;border-top-left-radius:8px !important;-webkit-border-top-right-radius: 0px !important;-moz-border-radius-topright: 0px !important;border-top-right-radius:8px !important;-webkit-border-bottom-left-radius: 0px !important;-moz-border-radius-bottomleft: 0px !important;border-bottom-left-radius:0px !important;-webkit-border-bottom-right-radius: 0px !important;-moz-border-radius-bottomright: 0px !important;border-bottom-right-radius:0px  !important;} #WFItem104090 .wf-header { -webkit-border-top-left-radius: 8px !important; -moz-border-radius-topleft: 8px !important; border-top-left-radius: 8px !important;-webkit-border-top-right-radius: 8px !important; -moz-border-radius-topright: 8px !important; border-top-right-radius: 8px !important;-webkit-border-bottom-left-radius: 0px !important; -moz-border-radius-bottomleft: 0px !important; border-bottom-left-radius: 0px !important;-webkit-border-bottom-right-radius: 0px !important; -moz-border-radius-bottomright: 0px !important; border-bottom-right-radius: 0px  !important;} #WFItem104090 .wf-footer { color:#ffffff !important;background-color:#6b6262 !important;background-image:none !important;background-position:left top !important;background-repeat:no-repeat !important;border-color:rgb(255, 255, 255) !important;border-width:0px !important;border-style:None !important;padding-left:10px !important;padding-right:10px !important;padding-top:10px !important;padding-bottom:10px !important;display:block !important;min-height:25px !important;-webkit-border-top-left-radius: 0px !important;-moz-border-radius-topleft: 0px !important;border-top-left-radius: 0px !important;-webkit-border-top-right-radius: 0px !important;-moz-border-radius-topright: 0px !important;border-top-right-radius: 0px !important;-webkit-border-bottom-left-radius: 8px !important;-moz-border-radius-bottomleft: 8px !important;border-bottom-left-radius: 8px !important;-webkit-border-bottom-right-radius: 8px !important;-moz-border-radius-bottomright: 8px !important;border-bottom-right-radius: 8px  !important;} #WFItem104090 .wf-input { padding:2px 0 !important; font-family:Arial !important; font-size:12px !important; color:#000000 !important; font-weight:normal !important; font-style:normal !important; text-decoration:none !important; background-color:#FFFFFF !important; border-width:1px !important; border-color:#919191 !important; border-style:solid !important; width:100% !important; -webkit-border-top-left-radius: 0px !important; -moz-border-radius-topleft: 0px !important; border-top-left-radius: 0px !important;-webkit-border-top-right-radius: 0px !important; -moz-border-radius-topright: 0px !important; border-top-right-radius: 0px !important;-webkit-border-bottom-left-radius: 0px !important; -moz-border-radius-bottomleft: 0px !important; border-bottom-left-radius: 0px !important;-webkit-border-bottom-right-radius: 0px !important; -moz-border-radius-bottomright: 0px !important; border-bottom-right-radius: 0px  !important;} #WFItem104090 .wf-input { font-family:Arial !important; font-size:12px !important; color:#000000 !important; font-weight:normal !important; font-style:normal !important; text-decoration:none !important; background-color:#FFFFFF !important; border-width:1px !important; border-color:#919191 !important; border-style:solid !important; width:100% !important; -webkit-border-top-left-radius: 0px !important; -moz-border-radius-topleft: 0px !important; border-top-left-radius: 0px !important;-webkit-border-top-right-radius: 0px !important; -moz-border-radius-topright: 0px !important; border-top-right-radius: 0px !important;-webkit-border-bottom-left-radius: 0px !important; -moz-border-radius-bottomleft: 0px !important; border-bottom-left-radius: 0px !important;-webkit-border-bottom-right-radius: 0px !important; -moz-border-radius-bottomright: 0px !important; border-bottom-right-radius: 0px  !important;} #WFItem104090 .wf-label { font-family:Arial !important; font-size:12px !important; color:#ffffff !important; font-weight:bold !important; font-style:normal !important; text-decoration:none !important; padding-top:3px !important; padding-bottom:3px !important; padding-left:0 !important; padding-right:3px !important; display:block  !important;} #WFItem104090 .wf-button { font-family:Arial !important; font-size:16px !important; color:#565050 !important; font-weight:bold !important; font-style:normal !important; text-decoration:none !important; background-color:#fce731 !important; border-width:1px !important; border-color:#000000 !important; border-style:solid !important; padding-left:10px !important; padding-right:10px !important; padding-top:4px !important; padding-bottom:4px !important; font-size:14px !important; font-family:Arial !important; -webkit-border-top-left-radius: 0px !important; -moz-border-radius-topleft: 0px !important; border-top-left-radius: 0px !important;-webkit-border-top-right-radius: 0px !important; -moz-border-radius-topright: 0px !important; border-top-right-radius: 0px !important;-webkit-border-bottom-left-radius: 0px !important; -moz-border-radius-bottomleft: 0px !important; border-bottom-left-radius: 0px !important;-webkit-border-bottom-right-radius: 0px !important; -moz-border-radius-bottomright: 0px !important; border-bottom-right-radius: 0px  !important;} #WFItem104090 .wf-submit { text-align:right  !important;} #WFItem104090 .wf-labelpos { float:none !important; width:auto !important; text-align:left  !important;} #WFItem104090 .wf-inputpos { float:none !important; width:auto  !important;} #WFItem104090 .wf-privacy { font-family:Arial !important; font-size:12px !important; color:#ffffff !important; font-weight:normal !important; font-style:italic !important; text-decoration:none !important; text-align:center  !important;} #WFItem104090 .wf-privacyico { padding:4px 0 0 20px !important; background:url(http://www.getresponse.com/images/core/webforms/lock.png) no-repeat left center  !important;} #WFItem104090 .wf-counter { font-family:Arial !important; font-size:12px !important; color:#44454f !important; font-weight:bold !important; font-style:normal !important; text-decoration:none !important; text-align:center  !important;} #WFItem104090 .wf-poweredby { font-family:Arial !important; font-size:10px !important; color:#ffffff !important; font-weight:normal !important; font-style:italic !important; text-decoration:none !important; text-align:center  !important;} #WFItem104090 .wf-link { font-family:Arial !important; font-size:12px !important; color:#ffffff !important; font-weight:normal !important; font-style:normal !important; text-decoration:none  !important;} #WFItem104090 .wf-link:hover { font-family:Arial !important; font-size:12px !important; color:#ffffff !important; font-weight:normal !important; font-style:normal !important; text-decoration:none  !important;} #WFItem104090 .wf-text { font-family:Arial !important; font-size:12px !important; color:#ffffff  !important;} #WFItem104090 .wf-divider { border-top-width:1px !important; border-color:#ffffff !important; border-style:solid  !important;} #WFItem104090 .wf-image { text-align:center  !important;} #WFItem104090 .wf-privacylink { color:#ffffff !important; font-style:italic  !important;} #WFItem104090 .wf-imgbox { overflow:hidden  !important;} #WFItem104090 .wf-rc-reload { display:inline-block !important; width:16px !important; height:16px !important; overflow:hidden !important; text-indent:-99999px !important; position:relative !important; top:3px !important; margin-left:3px !important; background: url(http://www.getresponse.com/images/core/webforms/captchaico.png) no-repeat 0 -32px  !important;} #WFItem104090 .wf-rc-audio { display:inline-block !important; width:16px !important; height:16px !important; overflow:hidden !important; text-indent:-99999px !important; position:relative !important; top:3px !important; margin-left:3px !important; background: url(http://www.getresponse.com/images/core/webforms/captchaico.png) no-repeat 0 0  !important;} #WFItem104090 .wf-rc-image { display:inline-block !important; width:16px !important; height:16px !important; overflow:hidden !important; text-indent:-99999px !important; position:relative !important; top:3px !important; margin-left:3px !important; background: url(http://www.getresponse.com/images/core/webforms/captchaico.png) no-repeat 0 -16px  !important;} #WFItem104090 #recaptcha_image { width:200px !important; height:38px  !important;} #WFItem104090 #recaptcha_image img { width:200px !important; height:38px  !important;} #WFItem104090 .wf-rc-boxm { width:200px !important; margin:0 auto !important; overflow:hidden  !important;} #WFItem104090 em { color:inherit !important; font-style:italic  !important;} </style><div id=\"WFItem104090\" class=\"wf-formTpl\"><form accept-charset=\"utf-8\" action=\"http://www.getresponse.com/add_contact_webform.html\" method=\"post\"> <div class=\"box\"><div id=\"WFIheader\" class=\"wf-header el\" style=\"height: 43px; display:  block !important;\"> <div class=\"actTinyMceElBodyContent\"><p style=\"text-align: center;\"><span style=\"font-size: 24px;\">Subscribe To Our Newsletter<br /></span></p></div> <em class=\"clearfix clearer\"></em></div><div id=\"WFIcenter\" class=\"wf-body\"><ul class=\"wf-sortable\" id=\"wf-sort-id\"> <li class=\"wf-name\" rel=\"undefined\" style=\"display:  block !important;\"><div class=\"wf-contbox\"> <div class=\"wf-labelpos\"> <label class=\"wf-label\">Name:</label> </div> <div class=\"wf-inputpos\"> <input type=\"text\" class=\"wf-input wf-valid__length1to255\" name=\"name\"></input> </div> <em class=\"clearfix clearer\"></em> </div></li><li class=\"wf-email\" rel=\"undefined\" style=\"display:  block !important;\"><div class=\"wf-contbox\"> <div class=\"wf-labelpos\"> <label class=\"wf-label\">Email:</label> </div> <div class=\"wf-inputpos\"> <input type=\"text\" class=\"wf-input wf-req wf-valid__email\" name=\"email\"></input> </div> <em class=\"clearfix clearer\"></em> </div></li><li class=\"wf-submit\" rel=\"undefined\" style=\"display:  block !important;\"><div class=\"wf-contbox\"> <div class=\"wf-inputpos\"> <input type=\"submit\" style=\"width: 99px ! important; display:  inline !important;\" value=\"Subscribe\" class=\"wf-button\" name=\"submit\"></input> </div> <em class=\"clearfix clearer\"></em> </div></li><li class=\"wf-counter\" rel=\"undefined\" style=\"display:  none !important;\"><div class=\"wf-contbox\"><div><span style=\"padding: 4px 6px 8px 24px; background: url(http://www.getresponse.com/images/core/webforms/countertemplates.png) no-repeat scroll left 0pt transparent;\" class=\"wf-counterbox\"><span class=\"wf-counterboxbg\" style=\"padding: 4px 12px 8px 5px; background: url(http://www.getresponse.com/images/core/webforms/countertemplates.png) no-repeat scroll right -36px transparent;\"><span class=\"wf-counterbox0\" style=\"padding: 5px 0pt;\"></span><span style=\"padding: 5px;\" name=\"http://www.getresponse.com/display_subscribers_count.js?campaign_name=samsarticles&var=0\" class=\"wf-counterbox1 wf-counterq\">38</span><span style=\"padding: 5px 0pt;\" class=\"wf-counterbox2\"> subscribers</span></span></span></div></div></li><li class=\"wf-captcha\" rel=\"undefined\" style=\"display:  none !important;\"> <div wf-captchaerror=\"Incorrect please try again\" wf-captchasound=\"Enter the numbers you hear:\" wf-captchaword=\"Enter the words above:\" class=\"wf-contbox wf-captcha-1\" id=\"wf-captcha-1\"> </div> </li><li class=\"wf-privacy\" rel=\"undefined\" style=\"display:  block !important;\"><div class=\"wf-contbox\"><div><a style=\"height: 19px ! important; display: inline ! important;\" class=\"wf-privacy wf-privacyico\" href=\"http://www.getresponse.com/permission-seal\">We respect your privacy<em class=\"clearfix clearer\"></em></a></div><em class=\"clearfix clearer\"></em></div></li><li class=\"wf-poweredby\" rel=\"undefined\" style=\"display:  block !important;\"><div class=\"wf-contbox\"><div><span class=\"wf-poweredby wf-poweredbyico\"><a style=\"display:  inline !important;\" class=\"wf-poweredbylink wf-poweredby\" href=\"http://www.getresponse.com/\">Email Marketing</a> by GetResponse</span></div></div></li> </ul></div><div id=\"WFIfooter\" class=\"wf-footer el\" style=\"height: 65px; display:  block !important;\"> <div class=\"actTinyMceElBodyContent\"><p style=\"text-align: center;\"><a href=\"http://www.floatingactionbutton.com/?rid=9418\" class=\"wf-link\"> <img src=\"http://www.floatingactionbutton.com/getimg.php?id=2\"></img></a></p></div> <em class=\"clearfix clearer\"></em></div></div> <input type=\"hidden\" name=\"webform_id\" value=\"104090\"/></form></div>");    
    document.body.appendChild(e);
       
    xOpacity("divActionButton",fabOpacity);
    setTimeout("winOnResize()",fabStartDelay);    
    xAddEventListener(window, 'resize', winOnResize, false);
    xAddEventListener(window, 'scroll', winOnScroll, false);
 
  }, false
);

function closeFab() {
   xVisibility('divActionButton', false);	 
}

function winOnResize() {
  xMoveTo('divActionButton', calculateXpos(), calculateYpos());
  xVisibility('divActionButton', true);	  
  winOnScroll(); // initial slide
}

function winOnScroll() {
  xSlideTo('divActionButton', calculateXpos(), calculateYpos(), fabSlideTime);
}

function calculateXpos() {
  
  switch(hAlign) {
      case LEFT: return fabHMargin;
      case MIDDLE: return (xClientWidth()/2) -  (xWidth('divActionButton')/2);
      case RIGHT: return xClientWidth()-xWidth('divActionButton') - fabHMargin;
  }
}

function calculateYpos() {
  
  switch(vAlign) {
      case TOP: return xScrollTop() + fabVMargin;
      case MIDDLE: return xScrollTop() + ((xClientHeight()/2) -  (xHeight('divActionButton')/2));
      case BOTTOM: return xScrollTop() + xClientHeight()-xHeight('divActionButton') - fabVMargin;
  }  
}


// XBrowser Functions below

/* Compiled from X 4.17 by XC 1.06 on 17Nov07 */
xLibrary={version:'4.17',license:'GNU LGPL',url:'http://cross-browser.com/'};
// xAddEventListener r8, Copyright 2001-2007 Michael Foster (Cross-Browser.com)
// Part of X, a Cross-Browser Javascript Library, Distributed under the terms of the GNU LGPL

function xAddEventListener(e,eT,eL,cap)
{
  if(!(e=xGetElementById(e)))return;
  eT=eT.toLowerCase();
  if(e.addEventListener)e.addEventListener(eT,eL,cap||false);
  else if(e.attachEvent)e.attachEvent('on'+eT,eL);
  else {
    var o=e['on'+eT];
    e['on'+eT]=typeof o=='function' ? function(v){o(v);eL(v);} : eL;
  }
}
// xCamelize r1, Copyright 2007 Michael Foster (Cross-Browser.com)
// Part of X, a Cross-Browser Javascript Library, Distributed under the terms of the GNU LGPL

function xCamelize(cssPropStr)
{
  var i, c, a = cssPropStr.split('-');
  var s = a[0];
  for (i=1; i<a.length; ++i) {
    c = a[i].charAt(0);
    s += a[i].replace(c, c.toUpperCase());
  }
  return s;
}
// xClientHeight r5, Copyright 2001-2007 Michael Foster (Cross-Browser.com)
// Part of X, a Cross-Browser Javascript Library, Distributed under the terms of the GNU LGPL

function xClientHeight()
{
  var v=0,d=document,w=window;
  if((!d.compatMode || d.compatMode == 'CSS1Compat') && !w.opera && d.documentElement && d.documentElement.clientHeight)
    {v=d.documentElement.clientHeight;}
  else if(d.body && d.body.clientHeight)
    {v=d.body.clientHeight;}
  else if(xDef(w.innerWidth,w.innerHeight,d.width)) {
    v=w.innerHeight;
    if(d.width>w.innerWidth) v-=16;
  }
  return v;
}
// xClientWidth r5, Copyright 2001-2007 Michael Foster (Cross-Browser.com)
// Part of X, a Cross-Browser Javascript Library, Distributed under the terms of the GNU LGPL

function xClientWidth()
{
  var v=0,d=document,w=window;
  if((!d.compatMode || d.compatMode == 'CSS1Compat') && !w.opera && d.documentElement && d.documentElement.clientWidth)
    {v=d.documentElement.clientWidth;}
  else if(d.body && d.body.clientWidth)
    {v=d.body.clientWidth;}
  else if(xDef(w.innerWidth,w.innerHeight,d.height)) {
    v=w.innerWidth;
    if(d.height>w.innerHeight) v-=16;
  }
  return v;
}
// xDef r1, Copyright 2001-2007 Michael Foster (Cross-Browser.com)
// Part of X, a Cross-Browser Javascript Library, Distributed under the terms of the GNU LGPL

function xDef()
{
  for(var i=0; i<arguments.length; ++i){if(typeof(arguments[i])=='undefined') return false;}
  return true;
}
// xGetComputedStyle r7, Copyright 2002-2007 Michael Foster (Cross-Browser.com)
// Part of X, a Cross-Browser Javascript Library, Distributed under the terms of the GNU LGPL

function xGetComputedStyle(e, p, i)
{
  if(!(e=xGetElementById(e))) return null;
  var s, v = 'undefined', dv = document.defaultView;
  if(dv && dv.getComputedStyle){
    s = dv.getComputedStyle(e,'');
    if (s) v = s.getPropertyValue(p);
  }
  else if(e.currentStyle) {
    v = e.currentStyle[xCamelize(p)];
  }
  else return null;
  return i ? (parseInt(v) || 0) : v;
}

// xGetElementById r2, Copyright 2001-2007 Michael Foster (Cross-Browser.com)
// Part of X, a Cross-Browser Javascript Library, Distributed under the terms of the GNU LGPL

function xGetElementById(e)
{
  if(typeof(e)=='string') {
    if(document.getElementById) e=document.getElementById(e);
    else if(document.all) e=document.all[e];
    else e=null;
  }
  return e;
}
// xHeight r6, Copyright 2001-2007 Michael Foster (Cross-Browser.com)
// Part of X, a Cross-Browser Javascript Library, Distributed under the terms of the GNU LGPL

function xHeight(e,h)
{
  if(!(e=xGetElementById(e))) return 0;
  if (xNum(h)) {
    if (h<0) h = 0;
    else h=Math.round(h);
  }
  else h=-1;
  var css=xDef(e.style);
  if (e == document || e.tagName.toLowerCase() == 'html' || e.tagName.toLowerCase() == 'body') {
    h = xClientHeight();
  }
  else if(css && xDef(e.offsetHeight) && xStr(e.style.height)) {
    if(h>=0) {
      var pt=0,pb=0,bt=0,bb=0;
      if (document.compatMode=='CSS1Compat') {
        var gcs = xGetComputedStyle;
        pt=gcs(e,'padding-top',1);
        if (pt !== null) {
          pb=gcs(e,'padding-bottom',1);
          bt=gcs(e,'border-top-width',1);
          bb=gcs(e,'border-bottom-width',1);
        }
        // Should we try this as a last resort?
        // At this point getComputedStyle and currentStyle do not exist.
        else if(xDef(e.offsetHeight,e.style.height)){
          e.style.height=h+'px';
          pt=e.offsetHeight-h;
        }
      }
      h-=(pt+pb+bt+bb);
      if(isNaN(h)||h<0) return;
      else e.style.height=h+'px';
    }
    h=e.offsetHeight;
  }
  else if(css && xDef(e.style.pixelHeight)) {
    if(h>=0) e.style.pixelHeight=h;
    h=e.style.pixelHeight;
  }
  return h;
}
// xLeft r2, Copyright 2001-2007 Michael Foster (Cross-Browser.com)
// Part of X, a Cross-Browser Javascript Library, Distributed under the terms of the GNU LGPL

function xLeft(e, iX)
{
  if(!(e=xGetElementById(e))) return 0;
  var css=xDef(e.style);
  if (css && xStr(e.style.left)) {
    if(xNum(iX)) e.style.left=iX+'px';
    else {
      iX=parseInt(e.style.left);
      if(isNaN(iX)) iX=xGetComputedStyle(e,'left',1);
      if(isNaN(iX)) iX=0;
    }
  }
  else if(css && xDef(e.style.pixelLeft)) {
    if(xNum(iX)) e.style.pixelLeft=iX;
    else iX=e.style.pixelLeft;
  }
  return iX;
}
// xMoveTo r1, Copyright 2001-2007 Michael Foster (Cross-Browser.com)
// Part of X, a Cross-Browser Javascript Library, Distributed under the terms of the GNU LGPL

function xMoveTo(e,x,y)
{
  xLeft(e,x);
  xTop(e,y);
}
// xNum r2, Copyright 2001-2007 Michael Foster (Cross-Browser.com)
// Part of X, a Cross-Browser Javascript Library, Distributed under the terms of the GNU LGPL

function xNum()
{
  for(var i=0; i<arguments.length; ++i){if(isNaN(arguments[i]) || typeof(arguments[i])!='number') return false;}
  return true;
}
// xOpacity r1, Copyright 2006-2007 Michael Foster (Cross-Browser.com)
// Part of X, a Cross-Browser Javascript Library, Distributed under the terms of the GNU LGPL

function xOpacity(e, o)
{
  var set = xDef(o);
  //  if (set && o == 1) o = .9999; // FF1.0.2 but not needed in 1.5
  if(!(e=xGetElementById(e))) return 2; // error
  if (xStr(e.style.opacity)) { // CSS3
    if (set) e.style.opacity = o + '';
    else o = parseFloat(e.style.opacity);
  }
  else if (xStr(e.style.filter)) { // IE5.5+
    if (set) e.style.filter = 'alpha(opacity=' + (100 * o) + ')';
    else if (e.filters && e.filters.alpha) { o = e.filters.alpha.opacity / 100; }
  }
  else if (xStr(e.style.MozOpacity)) { // Gecko before CSS3 support
    if (set) e.style.MozOpacity = o + '';
    else o = parseFloat(e.style.MozOpacity);
  }
  else if (xStr(e.style.KhtmlOpacity)) { // Konquerer and Safari
    if (set) e.style.KhtmlOpacity = o + '';
    else o = parseFloat(e.style.KhtmlOpacity);
  }
  return isNaN(o) ? 1 : o; // if NaN, should this return an error instead of 1?
}
// xScrollTop r3, Copyright 2001-2007 Michael Foster (Cross-Browser.com)
// Part of X, a Cross-Browser Javascript Library, Distributed under the terms of the GNU LGPL

function xScrollTop(e, bWin)
{
  var offset=0;
  if (!xDef(e) || bWin || e == document || e.tagName.toLowerCase() == 'html' || e.tagName.toLowerCase() == 'body') {
    var w = window;
    if (bWin && e) w = e;
    if(w.document.documentElement && w.document.documentElement.scrollTop) offset=w.document.documentElement.scrollTop;
    else if(w.document.body && xDef(w.document.body.scrollTop)) offset=w.document.body.scrollTop;
  }
  else {
    e = xGetElementById(e);
    if (e && xNum(e.scrollTop)) offset = e.scrollTop;
  }
  return offset;
}
// xSlideTo r3, Copyright 2001-2007 Michael Foster (Cross-Browser.com)
// Part of X, a Cross-Browser Javascript Library, Distributed under the terms of the GNU LGPL

function xSlideTo(e, x, y, uTime)
{
  if (!(e=xGetElementById(e))) return;
  if (!e.timeout) e.timeout = 25;
  e.xTarget = x; e.yTarget = y; e.slideTime = uTime; e.stop = false;
  e.yA = e.yTarget - xTop(e); e.xA = e.xTarget - xLeft(e); // A = distance
  if (e.slideLinear) e.B = 1/e.slideTime;
  else e.B = Math.PI / (2 * e.slideTime); // B = period
  e.yD = xTop(e); e.xD = xLeft(e); // D = initial position
  var d = new Date(); e.C = d.getTime();
  if (!e.moving) _xSlideTo(e);
}
function _xSlideTo(e)
{
  if (!(e=xGetElementById(e))) return;
  var now, s, t, newY, newX;
  now = new Date();
  t = now.getTime() - e.C;
  if (e.stop) { e.moving = false; }
  else if (t < e.slideTime) {
    setTimeout("_xSlideTo('"+e.id+"')", e.timeout);

    s = e.B * t;
    if (!e.slideLinear) s = Math.sin(s);
//    if (e.slideLinear) s = e.B * t;
//    else s = Math.sin(e.B * t);

    newX = Math.round(e.xA * s + e.xD);
    newY = Math.round(e.yA * s + e.yD);
    xMoveTo(e, newX, newY);
    e.moving = true;
  }  
  else {
    xMoveTo(e, e.xTarget, e.yTarget);
    e.moving = false;
    if (e.onslideend) e.onslideend();
  }  
}

// xStr r1, Copyright 2001-2007 Michael Foster (Cross-Browser.com)
// Part of X, a Cross-Browser Javascript Library, Distributed under the terms of the GNU LGPL

function xStr(s)
{
  for(var i=0; i<arguments.length; ++i){if(typeof(arguments[i])!='string') return false;}
  return true;
}
// xTop r2, Copyright 2001-2007 Michael Foster (Cross-Browser.com)
// Part of X, a Cross-Browser Javascript Library, Distributed under the terms of the GNU LGPL

function xTop(e, iY)
{
  if(!(e=xGetElementById(e))) return 0;
  var css=xDef(e.style);
  if(css && xStr(e.style.top)) {
    if(xNum(iY)) e.style.top=iY+'px';
    else {
      iY=parseInt(e.style.top);
      if(isNaN(iY)) iY=xGetComputedStyle(e,'top',1);
      if(isNaN(iY)) iY=0;
    }
  }
  else if(css && xDef(e.style.pixelTop)) {
    if(xNum(iY)) e.style.pixelTop=iY;
    else iY=e.style.pixelTop;
  }
  return iY;
}
// xVisibility r1, Copyright 2003-2007 Michael Foster (Cross-Browser.com)
// Part of X, a Cross-Browser Javascript Library, Distributed under the terms of the GNU LGPL

function xVisibility(e, bShow)
{
  if(!(e=xGetElementById(e))) return null;
  if(e.style && xDef(e.style.visibility)) {
    if (xDef(bShow)) e.style.visibility = bShow ? 'visible' : 'hidden';
    return e.style.visibility;
  }
  return null;
}

//function xVisibility(e,s)
//{
//  if(!(e=xGetElementById(e))) return null;
//  var v = 'visible', h = 'hidden';
//  if(e.style && xDef(e.style.visibility)) {
//    if (xDef(s)) {
//      // try to maintain backwards compatibility (???)
//      if (xStr(s)) e.style.visibility = s;
//      else e.style.visibility = s ? v : h;
//    }
//    return e.style.visibility;
//    // or...
//    // if (e.style.visibility.length) return e.style.visibility;
//    // else return xGetComputedStyle(e, 'visibility');
//  }
//  else if (xDef(e.visibility)) { // NN4
//    if (xDef(s)) {
//      // try to maintain backwards compatibility
//      if (xStr(s)) e.visibility = (s == v) ? 'show' : 'hide';
//      else e.visibility = s ? v : h;
//    }
//    return (e.visibility == 'show') ? v : h;
//  }
//  return null;
//}
// xWidth r6, Copyright 2001-2007 Michael Foster (Cross-Browser.com)
// Part of X, a Cross-Browser Javascript Library, Distributed under the terms of the GNU LGPL

function xWidth(e,w)
{
  if(!(e=xGetElementById(e))) return 0;
  if (xNum(w)) {
    if (w<0) w = 0;
    else w=Math.round(w);
  }
  else w=-1;
  var css=xDef(e.style);
  if (e == document || e.tagName.toLowerCase() == 'html' || e.tagName.toLowerCase() == 'body') {
    w = xClientWidth();
  }
  else if(css && xDef(e.offsetWidth) && xStr(e.style.width)) {
    if(w>=0) {
      var pl=0,pr=0,bl=0,br=0;
      if (document.compatMode=='CSS1Compat') {
        var gcs = xGetComputedStyle;
        pl=gcs(e,'padding-left',1);
        if (pl !== null) {
          pr=gcs(e,'padding-right',1);
          bl=gcs(e,'border-left-width',1);
          br=gcs(e,'border-right-width',1);
        }
        // Should we try this as a last resort?
        // At this point getComputedStyle and currentStyle do not exist.
        else if(xDef(e.offsetWidth,e.style.width)){
          e.style.width=w+'px';
          pl=e.offsetWidth-w;
        }
      }
      w-=(pl+pr+bl+br);
      if(isNaN(w)||w<0) return;
      else e.style.width=w+'px';
    }
    w=e.offsetWidth;
  }
  else if(css && xDef(e.style.pixelWidth)) {
    if(w>=0) e.style.pixelWidth=w;
    w=e.style.pixelWidth;
  }
  return w;
}

// xCreateElement r1, Copyright 2001-2007 Michael Foster (Cross-Browser.com)
// Part of X, a Cross-Browser Javascript Library, Distributed under the terms of the GNU LGPL

function xCreateElement(sTag)
{
  if (document.createElement) return document.createElement(sTag);
  else return null;
}

// xInnerHtml r1, Copyright 2001-2007 Michael Foster (Cross-Browser.com)
// Part of X, a Cross-Browser Javascript Library, Distributed under the terms of the GNU LGPL

function xInnerHtml(e,h)
{
  if(!(e=xGetElementById(e)) || !xStr(e.innerHTML)) return null;
  var s = e.innerHTML;
  if (xStr(h)) {e.innerHTML = h;}
  return s;
}

