function ReplaceInnerHtml(id, innerHtml)
{
    if(document.getElementById && document.getElementById(id))
    {
        document.getElementById(id).innerHTML = innerHtml; 
    }
}

function KeyDownHandler(controlName)
{
    // process only the Enter key
    if (event.keyCode == 13)
    {
        // cancel the default submit
        event.returnValue=false;
        event.cancel = true;
        // submit the form by programmatically clicking the specified button
       controlName.click();
    }
}

function SetFocus(defaultControlID)
{
    if(document.getElementById && document.getElementById(defaultControlID))
        if(document.getElementById(defaultControlID).disabled==false)
            document.getElementById(defaultControlID).focus();
}

function ReplaceImage(id, src)
{
    if(document.getElementById && document.getElementById(id))
    {
        document.getElementById(id).src = src; 
    }
}

function SaveScrollXY(idScrollX, idScrollY) 
{
    if(document.getElementById && document.getElementById(idScrollX) && document.getElementById(idScrollY))
    {
	    document.getElementById(idScrollX).value=document.body.scrollLeft;
	    document.getElementById(idScrollY).value=document.body.scrollTop;
	}
}
	
function ResetScrollPosition(idScrollX, idScrollY) 
{
	if(document.getElementById && document.getElementById(idScrollX) && document.getElementById(idScrollY))
	{
		if(document.getElementById(idScrollX).value!=0 || document.getElementById(idScrollY).value!=0)
		{
		    window.scrollTo(document.getElementById(idScrollX).value, document.getElementById(idScrollY).value);
		}
	}
}

function AddEvent(obj, evType, fn, useCapture)
{
    if(obj.addEventListener)
    {
        obj.addEventListener(evType, fn, useCapture);
        return true;
    }
    else if(obj.attachEvent)
    {
        var r=obj.attachEvent('on'+evType, fn);
        return r;
    }
    else
    {
        obj['on'+evType]=fn;
    }
}

/*display textarea charactor count while composing message*/
function DisplayMsgLength(textAreaID, limit, statusID, originalStatusText, buttonID)
{
    var charCntPH='{CurrentCharacterCount}';
    var msgLen=GetTextAreaLength(textAreaID, limit);
    
    if(msgLen==null)
    {
        return;
    }
    DisplayStatus(statusID, originalStatusText, charCntPH, msgLen);
    ActionButtonStatusForTextInput(textAreaID, buttonID);
}

function GetTextAreaLength(textAreaID, limit)
{
    if(!document.getElementById || !document.getElementById(textAreaID))
    {
        return null;
    }
    
    var m=document.getElementById(textAreaID);
    var newlineCntOffset=0;

    var mText=m.value.replace(/^\s+/g,'');
    if(mText.length>0)
    {
        var newlineS=mText.replace(/[\r\n]/g,'');        
        if(mText.length!=newlineS.length)
        {
            var arrayS=mText.split('\r\n');
            if(arrayS.length==1)
            {
                newlineCntOffset=mText.length-newlineS.length;
                limit=limit-newlineCntOffset;
            }
        }

        if(mText.length>limit)
        {
            mText=mText.substring(0,limit);
        }
    }

    if(m.value.length!=mText.length)
    {
        m.value=mText;
    }

    return mText.length+newlineCntOffset;
}

function DisplayStatus(statusID, originalStatusText, oldValue, newValue)
{
    if(document.getElementById && document.getElementById(statusID))
    {
        var mStatus=document.getElementById(statusID);
        mStatus.innerHTML=originalStatusText.replace(oldValue, newValue);
    }
}

/* action button status  - send message*/
function ActionButtonStatusForTextInput(textID, buttonID)
{
    if(document.getElementById && document.getElementById(textID) && document.getElementById(buttonID))
    {
        var txt=document.getElementById(textID);
        var btn=document.getElementById(buttonID);

        if(txt.value.length>0)
        {
            btn.disabled=false;
        }
        else
        {
            btn.disabled=true;
        }
    }
}

function ActionButtonStatusForList(listID, buttonID)
{
    if(document.getElementById && document.getElementById(listID) && document.getElementById(buttonID))
    {
        var list=document.getElementById(listID);
        var btn=document.getElementById(buttonID);

        if(list.selectedIndex>=0)
        {
            btn.disabled=false;
        }
        else
        {
            btn.disabled=true;
        }
    }
}


/* vairables for XbvNav */
var XbcNavInitialized = false;
var XbcNavmn='XbcNavMain';
var XbcNavmd='XbcNavMainDefault';
var XbcNavms='XbcNavMainSelected';
var XbcNavsh='XbcNavSub';
var XbcNavss='XbcNavSubSelectedUL';
var XbcNavse='XbcNavSubSelected';
var XbcNavsd='XbcNavSubDefault';
var XbcNavrbid='XbcNavRaised';
var XbcNavrbprefix='XbcNavRaised';
var XbcNavSelectedMain,XbcNavSelectedSub,XbcNavPageStateMain,XbcNavPageStateSub;
var XbcNavd,XbcNavULs,XbcNavLIs;
var XbcNavIntervalSpeed = 240;
var XbcNavIntervalPageReset = 3000;
var XbcNavRB;
/* end variables for XbcNav */

/* initialization function needs to be executed onload */
function XbcNav_init() {

    if (XbcNavInitialized == true) {return true;}
    
	if(!document.getElementById && !document.createTextNode) 
	{
    XbcNavInitialized = false;
	} 
	else 
	{
    XbcNavd=document.getElementById('XbcNavMainUL');
    /* if no nav, then stop */
    if (!XbcNavd) 
    {
    	XbcNavInitialized = false;
        }
        else
    {
    	XbcNavRB=document.getElementById(XbcNavrbid);
    	XbcNavULs=XbcNavd.getElementsByTagName('ul');
    	for (i=0;i<XbcNavULs.length;i++) {
        if(XbcNav_checkCurrent(XbcNavULs[i])) {
        	XbcNavSelectedMain = XbcNavULs[i];
        	XbcNavPageStateMain = XbcNavULs[i];
        	XbcNavLIs=XbcNavULs[i].getElementsByTagName('li');
        	for(j=0;j<XbcNavLIs.length;j++) {
            if(XbcNav_checkCurrentSub(XbcNavLIs[j])) {
            	XbcNavSelectedSub = XbcNavLIs[j];
            	XbcNavPageStateSub = XbcNavLIs[j];
            }
        	}
        }
    	}
    	
    	XbcNavInitialized = true;
    }        
	}
    return XbcNavInitialized;
}

/* function used to reset the nav, called from "pageResetTimeout" */
function XbcNav_reset()
{
	if(XbcNavPageStateMain) {
    XbcNav_changeCurrentMain(XbcNavPageStateMain);
    if(XbcNav_checkChildren(XbcNavPageStateMain)) {
    	if(XbcNavPageStateSub) { XbcNav_changeCurrentSub(XbcNavPageStateSub); }
    	XbcNavLIs=XbcNavPageStateMain.getElementsByTagName('li');
    	for(j=0;j<XbcNavLIs.length;j++) {
        if(XbcNav_checkCurrentSub(XbcNavLIs[j])) {
        	XbcNavSelectedSub = XbcNavLIs[j];
        }
    	}
    }
	} else {
    XbcNav_hideCurrentMain();
    XbcNavSelectedMain=null;
    XbcNavSelectedSub=null;
    if(XbcNavRB)
    {
        XbcNavRB.className = XbcNavrbprefix+(0);
    }
	}
}

function XbcNav_changeCurrentMain(o)
{
	if(XbcNavSelectedMain) { XbcNav_hideCurrentMain(); }
	XbcNav_showCurrentMain(o);
}

function XbcNav_changeCurrentSub(o)
{
	if(XbcNavSelectedSub) { XbcNav_swapclass(XbcNavSelectedSub,XbcNavse,XbcNavsd); }
	XbcNav_swapclass(o,XbcNavse,XbcNavsd);
}

function XbcNav_hideCurrentMain()
{
	if(XbcNavSelectedMain) {
    XbcNav_swapclass(XbcNavSelectedMain.parentNode,XbcNavms,XbcNavmd);
    if(XbcNav_checkChildren(XbcNavSelectedMain)) { XbcNav_swapclass(XbcNavSelectedMain,XbcNavsh,XbcNavss); }
    if(XbcNavSelectedSub) XbcNav_swapclass(XbcNavSelectedSub,XbcNavse,XbcNavsd);
	}
}

function XbcNav_showCurrentMain(o) {
	XbcNav_swapclass(o.parentNode,XbcNavmd,XbcNavms);
	if(XbcNav_checkChildren(o)) { XbcNav_swapclass(o,XbcNavss,XbcNavsh); }
	XbcNavSelectedMain = o;
	XbcNavSelectedSub = null;
	if(XbcNavULs)
	{
	    for(i=0;i<XbcNavULs.length;i++) { 
        if(XbcNavULs[i]==o) {
    	    XbcNavRB.className = XbcNavrbprefix+(i+1);
        }
	    }
	}
}

/* function used to check if a UL has LI children */
function XbcNav_checkChildren(o)
{
	childLis = o.getElementsByTagName('li');
	if(childLis.length>0) {	return true; } else { return false; }
}

/* function for checking if this is the currently up UL */
function XbcNav_checkCurrent(o)
{
	if(XbcNav_check(o.parentNode,XbcNavms)){return true;} else { return false; }
}

/* function for checking if this is the currently up SUB LI */
function XbcNav_checkCurrentSub(o){
	if(XbcNav_check(o,XbcNavse)){return true;} else { return false; }
}

/* function for testing for and then swaping two classes "c1" and "c2" on an object "o" */
function XbcNav_swapclass(o,c1,c2)
{
	var cn=o.className
	o.className=!XbcNav_check(o,c1)?cn.replace(c2,c1):cn.replace(c1,c2);
}

/* function for adding a class "c" to an object "o" */
function XbcNav_addclass(o,c)
{
	if(!XbcNav_check(o,c)){o.className+=o.className==''?c:' '+c;}
}

// name - name of the desired cookie, returns null if name is not a valid cookie.
function getCookie(name) {
  var dc = document.cookie;
  var prefix = name + "=";
  var begin = dc.indexOf("; " + prefix);
  if (begin == -1) {
    begin = dc.indexOf(prefix);
    if (begin != 0) return null;
  } else
    begin += 2;
  var end = document.cookie.indexOf(";", begin);
  if (end == -1)
    end = dc.length;
  return unescape(dc.substring(begin + prefix.length, end));
}

/* function for testing if class "c" applies to an object "o" */
function XbcNav_check(o,c)
{
	return new RegExp('\\b'+c+'\\b').test(o.className);
}

/* mouseover event called from each main level a tag*/
function XbcNav_mainOver(o)
	{
	    if (!XbcNav_init()) {return;}
	    
    if(typeof(pageResetTimeout) != 'undefined') { clearTimeout(pageResetTimeout); }
    thisUL = o.parentNode.getElementsByTagName('ul')[0];
    if (thisUL!=XbcNavSelectedMain) {
    	if(typeof(mainSelectTimeout) != 'undefined') { clearTimeout(mainSelectTimeout); }
        mainSelectTimeout = setTimeout( function(){ XbcNav_changeCurrentMain(thisUL); }, XbcNavIntervalSpeed);
    	}
    return false; 
	}
/* mouseout event called from each main level a tag */
function XbcNav_mainOut(o)
	{
	    if (!XbcNav_init()) {return;}
	    
    if(typeof(mainSelectTimeout) != 'undefined') { clearTimeout(mainSelectTimeout);
    pageResetTimeout = setTimeout( function(){ XbcNav_reset(); }, XbcNavIntervalPageReset); }
    return false;
	}
/* mouseover event called from each sub level a tag */
function XbcNav_subOver(o)
	{
	    if (!XbcNav_init()) {return;}
	    
    if(typeof(pageResetTimeout) != 'undefined') { clearTimeout(pageResetTimeout); }
    return false;
	}
function XbcNav_subOut(o)
	{
	    if (!XbcNav_init()) {return;}

    pageResetTimeout = setTimeout( function(){ XbcNav_reset(); }, XbcNavIntervalPageReset);
    return false;
	}


function wpMenu_keydown(element, event)
{
	if (!document.getElementById) return;
	if ((event.keyCode == 13) || (event.keyCode == 32))
	{
    wpMenu_toggleMenu(element);
	}
}
function wpMenu_toggleMenu(element)
{
	if ((!document.getElementById) || (!element)) return;
	var liElement = element.parentNode;
	var ulElement = liElement.parentNode;
	var curClass = liElement.className;
	for (var i = 0; i < ulElement.childNodes.length; i++)
	{
    var curNode = ulElement.childNodes[i];
    if ((curNode.nodeType == 1) && (curNode.className == 'XbcExpandoMenuOpen'))
    {
    	curNode.className = 'XbcExpandoMenuClosed';
    }
	}
	liElement.className = 'XbcExpandoMenuOpen';
}
function XbcOpenFriendsLinkFromFirstChildHref(element, bWebPart)
{
    if (arguments.length < 2)
    {
        bWebPart = false;
    }
    
	if ((!document.getElementsByTagName) || (!element)) return;
	As = element.getElementsByTagName('a');
	
	if (bWebPart)
	{
	    window.top.location = As[0].href;
	}
	else
	{
	    OpenWithAuth(As[0].href);
	}

	if (window.event) window.event.returnValue = false;
}

function XbcGetFirstChildHref(element)
{
	if ((!document.getElementsByTagName) || (!element)) return;
	As = element.getElementsByTagName('a');
	
	window.location = As[0].href;
}

function XbcCreateFlashControl(DivID, CODEBASE,
                       WIDTH, HEIGHT, MOVIE, QUALITY, BGCOLOR,
                       MENU, SALIGN, ALTLINK, OPENINNEWWINDOW,
                       ALTIMAGE, ALTIMAGEWIDTH, ALTIMAGEHEIGHT, ALTTEXT)
{
  var szInnerHTML = '';
  var d = document.getElementById(DivID);
  
  szInnerHTML = 
    '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="' + WIDTH + '" height="' + HEIGHT +'" codebase="' + CODEBASE + '">';

  szInnerHTML += '<param name="movie" value="' + MOVIE + '">';
  szInnerHTML += '<param name="quality" value="' + QUALITY + '">';

  if (BGCOLOR != '')
  {
      szInnerHTML += '<param name="bgcolor" value="' + BGCOLOR + '">';
  }
  
  szInnerHTML += '<param name="salign" value="' + MENU + '">';
  szInnerHTML += '<param name="menu" value="' + SALIGN + '">';

  if (ALTLINK != '')
  {
      szInnerHTML += '<a href="' + ALTLINK + '"';
      if (OPENINNEWWINDOW)
      {
          szInnerHTML += ' target="_blank"';
      }
      szInnerHTML += '>';
      if (ALTIMAGE != '')
      {
          szInnerHTML += '<img src="' + ALTIMAGE + '" alttext="' + ALTTEXT + '"';
          
          if (ALTIMAGEWIDTH != '')
          {
              szInnerHTML += ' WIDTH="' + ALTIMAGEWIDTH + '"';
          }

          if (ALTIMAGEHEIGHT != '')
          {
              szInnerHTML += ' HEIGHT="' + ALTIMAGEHEIGHT + '"';
          }
          
          szInnerHTML += '></img>';
      }
      else
      {
          szInnerHTML += '<span>' + ALTTEXT + '</span>';
      }
     
      szInnerHTML += '</a>';
  } 

  szInnerHTML += '</object>';
  
  d.innerHTML = szInnerHTML;
}

function OpenWithAuth(Gh,Hh,Ih,Jh)
{
    Hh=Hh||0;
    var we=window.external;
    if(we&&we.MsgrHost)
    {
        we.MsgrHost.OpenWithAuth(Gh,Hh);
    }
    else
    {
        Gh=unescape(Gh);var w=window.open(Gh);w.opener=null;w=null;
    }
}
