// This is used by the XSL rendering and the dynamic menus.
var gObjLast;
gObjLast = null;

function show(message)
{
	alert(message);
	return false;
}

function swp(obj, back, color)
{
  gObjLast = obj;
  core_high(obj, back, color);
}

function unswp(back, color)
{
	if (gObjLast != null) {
		core_high(gObjLast, back, color);
	}
}

function core_high(obj, back, color)
{
	if (obj.style != null) {
		obj.style.backgroundColor=back;
		obj.style.color= color;
	}
  if (obj.hasChildNodes()) {
    var i;
    for (i=0; i < obj.childNodes.length; i++) {
      core_high(obj.childNodes.item(i), back, color);
    }
  }
}


//SideBarLogin Validation code
function submitSideBarLoginForm(){
	if (document.SideBarLoginForm.ueml.value == ""){
		alert("You must enter an email address!");
		return false;
	}
	if (document.SideBarLoginForm.upwd.value == ""){
		alert("You must enter a password!");
		return false;
	}
	return true;
}
		
//Open bfora space code
function openbfora(intMainCid, intUserId, intNid)
{
	if (self != top)
	{
		top.location.href = document.URL;
	} 
	else
	{
		//bforaPopUp("/bfora/non/non_info.asp");			
		window.location.href = 'http://www.bfora.net/bfora/non/default.asp?SiteURL=' + window.location.href + '&maincid=' + intMainCid + '&mainuid=' + intUserId + '&mainnid=' + intNid;
	}
}

//Closes bfora
function hidebfora()
{
	if (top.bFORA.eSynchedNode)
	{
		//window.alert("eSynchedNode.href: " + top.bFORA.GetNextA(top.bFORA.eSynchedNode));
		top.location.href = top.bFORA.GetNextA(top.bFORA.eSynchedNode)
	}	else {
		//window.alert("no current eSynchedNode");
		top.location.href = top.location.search.substring(9, top.location.search.indexOf('&'))
	}
}

function strIsEmailValid (emailStr, strFieldName) {
var emailPat=/^(.+)@(.+)$/
var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
var validChars="\[^\\s" + specialChars + "\]"
var quotedUser="(\"[^\"]*\")"
var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
var atom=validChars + '+'
var word="(" + atom + "|" + quotedUser + ")"
var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")

if (emailStr.length == 0){
	return ""
}
var matchArray=emailStr.match(emailPat)
if (matchArray==null) {
	return  ( "'" + strFieldName + "' address seems incorrect (check @ and .'s)." ) ;
}
var user=matchArray[1]
var domain=matchArray[2]

if (user.match(userPat)==null)  {  
    return ( "The username for '" + strFieldName + "' doesn't seem to be valid.") 
}

var IPArray=domain.match(ipDomainPat)
if (IPArray!=null) {
    // this is an IP address
	  for (var i=1;i<=4;i++) {
	    if (IPArray[i]>255) {
	        return ("Destination IP address for '" + strFieldName + "' is invalid!") 
	    }
    }
	return ("")
}
var domainArray=domain.match(domainPat)
if (domainArray==null) {
	return ("The domain name doesn't seem to be valid.") 
}

var atomPat=new RegExp(atom,"g")
var domArr=domain.match(atomPat)
var len=domArr.length
if (domArr[domArr.length-1].length<2 || 
    domArr[domArr.length-1].length>4) {
   return ("The address must end in a three or four-letter domain, or two letter country for '" + strFieldName + "'.")
}
if (len<2) {
   return ("This address is missing a hostname for '" + strFieldName + "'.") 
}
return ("")
}


//Netscape Nav 6 'Add to panel' code
function addNetscapePanel(strURL, strDesc)
{
if ((typeof window.sidebar == "object") && (typeof window.sidebar.addPanel == "function"))
	{
		window.sidebar.addPanel(strDesc, strURL,""); 
		window.alert('Bookmark added to \'My Sidebar\'');
	} else {
		window.alert('To bookmark this site, click \'Bookmarks | Add bookmark\' or press \'Ctrl+D\'.');
	}
}

//IE 4+ 'Add to favourites' code
function addIEFav(strURL, strDesc)
{
	if (event) event.cancelBubble = true;
	if (parseInt(navigator.appVersion) > 3)
	{
		//window.alert("trying to add favourite: " + strURL + ", " + strDesc);
		window.external.AddFavorite(strURL, strDesc);
	} else {
		window.alert('To add this site to your favourites, click \'Favorites | Add to favorites...\' or press \'Ctrl+D\'.');
	}
}

function addBookmark(strURL, strDesc)
{
	//window.alert(navigator.appName + ', ' + navigator.appVersion);
	if (navigator.appName=="Netscape" && parseInt(navigator.appVersion) > 4) addNetscapePanel(strURL, strDesc);
	if (navigator.appName=="Netscape" && parseInt(navigator.appVersion) <= 4) window.alert('To bookmark this site, click \'Bookmarks | Add bookmark\' or press \'Ctrl+D\'.');
	if (navigator.appName=="Microsoft Internet Explorer" && parseInt(navigator.appVersion) > 3) addIEFav(strURL, strDesc);
	if (navigator.appName=="Microsoft Internet Explorer" && parseInt(navigator.appVersion) <= 3) window.alert('To add this site to your favourites, click \'Favorites | Add to favorites...\' or press \'Ctrl+D\'.');
}


function vCopySelection(objA, objB)
	{

	var i;

	for (i=0; i < objA.length; )
		{
		if (objA.options[i].selected)
			{
			qMoveSingleItemByIndex (objA, objB, i);
			}
		else
			i++;
		}
	}

function vSelectAll (objList)
	{
	var i;

	for (i=0; i < objList.length; i++)
		objList.options[i].selected = true;
	}

function qMoveSingleItemByIndex (objSource, objTarget, iIndex)
	{
	if (iIndex == -1)
		return (false);

	var objElement = document.createElement("OPTION");
	var objSourceOption = objSource.options[iIndex];

	objElement.text = objSourceOption.text;
	objElement.value = objSourceOption.value;
	objTarget.add (objElement);

	objSource.remove (iIndex);
	return(true);
	}

function vMoveUp (objList)
	{
	var iCurrentIndex;
	
	iCurrentIndex = objList.selectedIndex; 
	if (iCurrentIndex == 0) return;

	vMoveElement (objList, iCurrentIndex, iCurrentIndex - 1);
	}	
	
function vMoveDown (objList)
	{
	var iCurrentIndex;
	
	iCurrentIndex = objList.selectedIndex; 
	if (iCurrentIndex >= objList.length - 1) return;

	vMoveElement (objList, iCurrentIndex, iCurrentIndex + 1);
	}	

function vMoveElement (objList, iOldIndex,  iNewIndex)
	{
	var objOptions = objList.options;
	
	if (iOldIndex == -1) return;
	
	var objStore = objCopyElement (objOptions (iOldIndex));	
	objList.remove (iOldIndex);
	objList.add (objStore, iNewIndex);
	objOptions (iNewIndex).selected = true;	
	
	}
	
function objCopyElement (objSource)
	{
	var objElement = document.createElement("OPTION");
	objElement.text = objSource.text;
	objElement.value = objSource.value;
	return (objElement);
	}



function vMoveAcross (qRight, objIsSel, objNotSel)
	{
	if (qRight)
		{
		vCopySelection (objNotSel, objIsSel);
		}
	else
		vCopySelection (objIsSel, objNotSel);
		
	}

function dsc(h,input)
{
	var nI;
	var oC;
	oC = input.form.elements[input.name];
	for (nI=0; nI < oC.length; nI++) {
		var b;
		b = 'bShow'+h[nI];
		if (b.length > 5) {
			eval(b+' = oC[nI].checked?true:false;');
		}
	}

	// Hide them
	for (nI=0; nI < oC.length; nI++) {
		var d;
		d = 'fd_'+h[nI];
		if (d.length > 3 && !(oC[nI].checked)) {
			var elem;
			elem = document.getElementById(d);
			if (elem != null) elem.style.display = 'none';
		}
	}

	// Show them
	for (nI=0; nI < oC.length; nI++) {
		var d;
		d = 'fd_'+h[nI];
		if (d.length > 3 && oC[nI].checked) {
			var elem;
			elem = document.getElementById(d);
			if (elem != null) elem.style.display = '';
		}
	}
	window.resizeBy(0,1);
	window.resizeBy(0,-1);
	return true;
}

function dss(h,input)
{
	var nI;
	var oC;
	var e,i,arr;
	oC = input.form.elements[input.name];
	for (nI=0; nI < oC.length; nI++) {
		var b;
		arr = h[nI].split(',');
		for(i=0;i<arr.length;i++) {
			e = arr[i];
			b = 'bShow'+e;
			if (b.length > 5) {
				eval(b+' = oC[nI].selected?true:false;');
			}
		}
	}
	// Hide them
	for (nI=0; nI < oC.length; nI++) {
		var d;
		arr = h[nI].split(',');
		for(i=0;i<arr.length;i++) {
			e = arr[i];
			d = 'fd_'+ e;
			if (d.length > 3 && !(oC[nI].selected)) {
				var elem;
				elem = document.getElementById(d);
				if (elem != null) elem.style.display = 'none';
			}
		}
	}
	// Then show them
	for (nI=0; nI < oC.length; nI++) {
		var d;
		arr = h[nI].split(',');
		for(i=0;i<arr.length;i++) {
			e = arr[i];
		
			d = 'fd_'+e;
			if (d.length > 3 && oC[nI].selected) {
				var elem;
				elem = document.getElementById(d);
				if (elem != null) elem.style.display = '';
			}
		}
	}
	
	window.resizeBy(0,1);
	window.resizeBy(0,-1);
	return true;
}

function SetTargetOnAnchor(element, strTgt)
{
	if (strTgt != "ignore")
	{
		if(typeof(element.nodeName)=="undefined") { return; }
		
		var bCarryOn = true ;
		while (bCarryOn)
		{	
			if (element.nodeName == "BODY" || element.nodeName == "HTML")
			{
				bCarryOn = false ;
			}
			else if (element.nodeName == "A")
			{
				//var href = element.href ;
				//var strDomain = 'http://'+ document.domain ;

				var tgt = element.target ;
				tgt.toLowerCase() ;
				
				if ( (tgt == "") )
				{
					element.target = strTgt ;
					
				}
				bCarryOn = false ;
				
			}
			else
			{
				element = element.parentNode ;
			}
		}
	}
	return (true) ;
}

var g_strTgtName = "" ;
function bLookForFrameName(objWindow, strFrameName)
{
	var bStatus = false ;
	if (objWindow.name == strFrameName)
	{
		bStatus = true ;
	}
	else
	{
		var iIndex ;
		for (iIndex = 0; !bStatus && (iIndex < objWindow.frames.length); iIndex++)
		{
			bStatus = bLookForFrameName(objWindow.frames[iIndex], strFrameName)
		}
	}
	return (bStatus) ;
}

function bLookForParentFrameName(objWindow, strFrameName)
{
	var bStatus = false ;
	while ((!bStatus) && (objWindow != objWindow.top) )
	{
		if (objWindow.name == strFrameName)
		{
			bStatus = true ;
		}
		else
		{
			objWindow = objWindow.parent ;
		}
	}
	return (bStatus) ;
}


function WorkOutAnchorsLinks()
{
	if (g_strTgtName == "")	//Need to see if we are in non
	{
		if (bLookForParentFrameName(window, "mainpage") )
		{
			g_strTgtName = "mainpage" ;
		}
	}
}

function WDP_AnchorOnClick()
{
	WorkOutAnchorsLinks() ;
	SetTargetOnAnchor(window.event.srcElement, g_strTgtName) ;
	
}


function WDP_AnchorOnClickNav(evt)
{
	WorkOutAnchorsLinks() ;
	SetTargetOnAnchor(evt.target, g_strTgtName) ;
	
}

function WDP_RTrim(objString)
{
	while(''+objString.charAt(objString.length-1)==' ')objString=objString.substring(0,objString.length-1);
	return objString ;
}

function WDP_LTrim(objString)
{
	while(''+objString.charAt(0)==' ')objString=objString.substring(1,objString.length);
	return objString ;
}

function WDP_Trim(objString)
{
	return WDP_RTrim(WDP_LTrim(objString)) ;
}

function toggleedit()
{
   var oOn=document.getElementById("cssediton");
   var oOf=document.getElementById("csseditof");
   if(oOn.disabled==true){
      document.getElementById("editor").src = "/bfora/images/edit_off.gif";
      oOn.disabled=false;
      oOf.disabled=true;
      setCookie('adminon',1);
   }
   else{
      document.getElementById("editor").src = "/bfora/images/edit_on.gif";
      oOn.disabled=true;
      oOf.disabled=false;
      delCookie('adminon');
   }
  // alert('hello' +  oOn.disabled + oOf.disabled);
}

function setCookie(name,value) {
	// Expires after 31 days
	var today = new Date();
	var expiry = new Date(today.getTime() + 31 * 24 * 60 * 60 * 1000); 
	
	document.cookie = name+"="+escape(value)+"; expires="+ expiry.toGMTString();
	
	//alert("setCookie "+name+"="+value+"; ::"+document.cookie);
}

function delCookie(name)
{
  document.cookie = name + "=; expires=Fri, 31 Dec 1999 23:59:59 GMT;";
}
