
// extract the sidparam


function extractParamFromURL(href,name)
{
	// we take all the parameters from the URL directly

 var value=null;
  var query=href;
  if(query != "") {
    var kk=query.indexOf(name+"=");
    if(kk >= 0) {
      kk=kk+name.length+1;
      var ll=query.indexOf("&", kk);
      if(ll < 0)ll=query.length;
      value=query.substring(kk, ll);
      for(kk=0; kk<value.length; kk++) {
        if(value.charAt(kk) == '+') {
          value=value.substring(0, kk)+" "+value.substring(kk+1,value.length);
        }
      }
      value=unescape(value);
    }
  }
  return value;	
}

function addParameterToAllLinksInPage(doc,param,value)
{

	for(var i=0;i<doc.links.length;i++)
		{

		if(allowAddParameterToLink(doc.links[i]))
			{
			addParameterToLink(doc.links[i],param,value);
			}
		}

}

function allowAddParameterToLink(link)
{
	// must be our same machine

	if(link.hostname==window.location.hostname)
		return true;

	return false;
}

function addParameterToLink(link,param,value)
{
	link.href=addParameterToHRef(link.href,param,value);
}

function addParameterToHRef(href,param,value)
{
	// if it is already there we don't care


	var parmval=extractParamFromURL(href,param);

	if(parmval!=null)
		{
		return href;
		}

	// does it have a ?

	var idx=href.indexOf('?');

	var concat=(idx==-1)?'?':'&';

	href=href+concat+param+"="+value;

	return href;
}


function addParameterToAllFormsInPage(doc,param,value)
{
	for(var i=0;i<doc.forms.length;i++)
		addParameterToForm(doc.forms[i],param,value);

}

function addParameterToForm(form,param,value)
{
	for(var i=0;i<form.elements.length;i++)
		{
		var el=form.elements[i];

		if(el.name==param)
			{
			if(el.value=="")
				el.value=value;
			}
		}
}

function processPageWitSID(sid)
{
	if(sid!=null)
		{
		addParameterToAllLinksInPage(document,"sid",sid);
		addParameterToAllFormsInPage(document,"sid",sid);
		}

	var ie=(document.all)?true:false;
	if(!ie)
		{
		var nlayers=document.layers.length;
	
		for(var i=0;i<nlayers;i++)	
			{
			addParameterToAllLinksInPage(document.layers[i].document,"sid",sid);		
			addParameterToAllFormsInPage(document.layers[i].document,"sid",sid);
			}
		}
}


function processPage()
{
var sids=null;
var xsid;

	xsid=window.sid;
	if(xsid!=null)
		{
		sids=xsid;
		}

	if(sids==null && document.location)
		sids=extractParamFromURL(document.location.href,"sid");

	if(sids!=null)
		processPageWitSID(sids);
}



processPage();
