
// globals
var thisIs = getBrowser();
var parmsArray = new Array();

function rpc(parmStr) {
	//alert('start callToServer');
	parmsArray = explodeParms(parmStr);
  var URL = parmsArray['url']+'?cb='+parmsArray['callback'];
  var myIframe = document.getElementById(parmsArray['rpcTarget']);
  var IFrameDoc;
  //alert('rpc: url = '+URL);
  if (myIframe.contentDocument || thisIs.konq) {
		// For NS6
		var msg = 'NS6';
		IFrameDoc = myIframe.contentDocument; 
	} else if (myIframe.contentWindow) {
		// For IE5.5 and IE6
		var msg = 'IE5/IE6';
		IFrameDoc = myIframe.contentWindow.document;
	} else if (myIframe.document) {
		// For IE5
		var msg = 'IE5';
		IFrameDoc = myIframe.document;
	} else {
		alert('Browser is not DOM compliant');
	}
	//alert('browser looks like: '+msg);
	IFrameDoc.location.replace(URL);
}

function rpcCallback(parmStr) {
  //if (payload) { alert(payload); }
  //if (error) { alert(error); }
  //alert('handleResppnse: ready to try callback');
  var cbParms = explodeParms(parmStr);
  eval(cbParms['callback']+'();');
}

function getBrowser(){
 d=document;
 this.agt=navigator.userAgent.toLowerCase();
 this.major=parseInt(navigator.appVersion);
 this.dom=(d.getElementById);
 this.ns=(d.layers);
 this.ns4up=(this.ns && this.major>=4);
 this.ns6=(this.dom&&navigator.appName=="Netscape");
 this.op=(window.opera);
 if(d.all)this.ie=1;else this.ie=0;
 this.ie4=(d.all&&!this.dom);
 this.ie4up=(this.ie&&this.major>=4);
 this.ie5=(d.all&&this.dom);
 this.ie6=(d.nodeType);
 this.sf=(this.agt.indexOf("safari")!=-1);
 this.win=((this.agt.indexOf("win")!=-1)||(this.agt.indexOf("16bit")!=-1));
 this.winme=(this.agt.indexOf("win 9x 4.90")!=-1);
 this.xpsp2=(this.agt.indexOf("sv1")!=-1);
 this.mac=(this.agt.indexOf("mac")!=-1);
 this.ie = (this.agt.indexOf("msie") != -1) && (!this.op);
this.gecko = (this.agt.indexOf('ecko') != -1);
this.firefox = (this.agt.indexOf('irefox') != -1);
this.macppc = (this.mac && ((this.agt.indexOf("ppc")!=-1) || (this.agt.indexOf("powerpc")!=-1)));
this.konq = (this.agt.indexOf('onqueror') != -1);
this.linux = (this.agt.indexOf("inux")!=-1);
}

function explodeParms(parmStr) {
	if (parmStr) {
		var tmpArray = new Array();
		var parmsArray = new Array();
		var regex = /\s/g;
		parmStr = parmStr.replace(regex,'');
		pairs = parmStr.split(';');
		for (var i=0;i<pairs.length;i++) {
			tmpArray = pairs[i].split(':');
			parmsArray[tmpArray[0]] = tmpArray[1];
			//alert ('parsing initParms: '+tmpArray[0]+'='+tmpArray[1]);
		}
		return parmsArray;
	} else { return false; }
}

function noop() { return false; }
