var IFrameObj; // our IFrame object
function buildQueryString(theFormName) {
    theForm = document.forms[theFormName];
    var qs = ''
    for(e=0;e<theForm.elements.length;e++) {
        if(theForm.elements[e].name!='') {
            if(theForm.elements[e].name.substring(0,8)=="checkbox"){
                if(theForm.elements[e].checked==true){
                    qs+=(qs=='')?'?':'&'
                    qs+=theForm.elements[e].name+'='+theForm.elements[e].value
                }
            }else{
                qs+=(qs=='')?'?':'&'
                tempValue=theForm.elements[e].value.replace(/\n/g,'\\n');
                tempValue=encodeURIComponent(tempValue);
                qs+=theForm.elements[e].name+'='+tempValue;
            }
        }
    }
    return qs
}

function callToServer(myURL,warningMessage,formName) {
	if(warningMessage!=""){
	    proceedRPC=confirm(warningMessage);
	} else {
	    proceedRPC=true;
	}
    if(proceedRPC==true){
    	if (!document.createElement) {
    	    return true;
    	}
    	var IFrameDoc;
    	if(formName.length>0){
    	    var URL = myURL + buildQueryString(formName);
    	} else {
    	    var URL = myURL;
    	}
    	if (!IFrameObj && document.createElement) {
    		// create the IFrame and assign a reference to the
    		// object to our global variable IFrameObj.
    		// this will only happen the first time
    		// callToServer() is called
    		try {
    			var tempIFrame=document.createElement('iframe');
    			tempIFrame.setAttribute('id','RSIFrame');
    			tempIFrame.style.border='0px';
    			tempIFrame.style.width='0px';
    			tempIFrame.style.height='0px';
    			IFrameObj = document.body.appendChild(tempIFrame);

    			if (document.frames) {
    				// this is for IE5 Mac, because it will only
    				// allow access to the document object
    				// of the IFrame if we access it through
    				// the document.frames array
    				IFrameObj = document.frames['RSIFrame'];
    			}
    		} catch(exception) {
    			// This is for IE5 PC, which does not allow dynamic creation
    			// and manipulation of an iframe object. Instead, we'll fake
    			// it up by creating our own objects.
    			iframeHTML='<iframe id="RSIFrame" style="';
    			iframeHTML+='border:0px;';
    			iframeHTML+='width:0px;';
    			iframeHTML+='height:0px;';
    			iframeHTML+='"><\/iframe>';
    			document.body.innerHTML+=iframeHTML;
    			IFrameObj = new Object();
    			IFrameObj.document = new Object();
    			IFrameObj.document.location = new Object();
    			IFrameObj.document.location.iframe = document.getElementById('RSIFrame');
    			IFrameObj.document.location.replace = function(location) {
    				this.iframe.src = location;
    			}
    		}
    	}

    	if (navigator.userAgent.indexOf('Gecko') !=-1 && !IFrameObj.contentDocument) {
    		// we have to give NS6 a fraction of a second
    		// to recognize the new IFrame
    		setTimeout('callToServer()',10);
    		return false;
    	}

    	if (IFrameObj.contentDocument) {
    		// For NS6
    		IFrameDoc = IFrameObj.contentDocument;
    	} else if (IFrameObj.contentWindow) {
    		// For IE5.5 and IE6
    		IFrameDoc = IFrameObj.contentWindow.document;
    	} else if (IFrameObj.document) {
    		// For IE5
    		IFrameDoc = IFrameObj.document;
    	} else {
    		return true;
    	}

        IFrameDoc.location.replace(URL);
        return false;
    } else{
        return false;
    }
}

function callToServerDeveloper(myURL,warningMessage,formName) {
	if(warningMessage!=""){
	    proceedRPC=confirm(warningMessage);
	} else {
	    proceedRPC=true;
	}
    if(proceedRPC==true){
    	if (!document.createElement) {
    	    return true;
    	}
    	var IFrameDoc;
    	if(formName.length>0){
    	    var URL = myURL + buildQueryString(formName);
    	} else {
    	    var URL = myURL;
    	}
    	if(IFrameObj && document.createElement){
			var node=document.getElementById("RSIFrame");
			node.parentNode.removeChild(node);
			IFrameObj=null;
    	}

    	if (!IFrameObj && document.createElement) {
    		// create the IFrame and assign a reference to the
    		// object to our global variable IFrameObj.
    		// this will only happen the first time
    		// callToServer() is called
    		try {
    			var tempIFrame=document.createElement('iframe');
    			tempIFrame.setAttribute('id','RSIFrame');
    			tempIFrame.style.border='0px';
    			tempIFrame.style.width='800px';
    			tempIFrame.style.height='400px';
    			IFrameObj = document.body.appendChild(tempIFrame);

    			if (document.frames) {
    				// this is for IE5 Mac, because it will only
    				// allow access to the document object
    				// of the IFrame if we access it through
    				// the document.frames array
    				IFrameObj = document.frames['RSIFrame'];
    			}
    		} catch(exception) {
    			// This is for IE5 PC, which does not allow dynamic creation
    			// and manipulation of an iframe object. Instead, we'll fake
    			// it up by creating our own objects.
    			iframeHTML='<iframe id="RSIFrame" style="';
    			iframeHTML+='border:0px;';
    			iframeHTML+='width:0px;';
    			iframeHTML+='height:0px;';
    			iframeHTML+='"><\/iframe>';
    			document.body.innerHTML+=iframeHTML;
    			IFrameObj = new Object();
    			IFrameObj.document = new Object();
    			IFrameObj.document.location = new Object();
    			IFrameObj.document.location.iframe = document.getElementById('RSIFrame');
    			IFrameObj.document.location.replace = function(location) {
    				this.iframe.src = location;
    			}
    		}
    	}

    	if (navigator.userAgent.indexOf('Gecko') !=-1 && !IFrameObj.contentDocument) {
    		// we have to give NS6 a fraction of a second
    		// to recognize the new IFrame
    		setTimeout('callToServer()',10);
    		return false;
    	}

    	if (IFrameObj.contentDocument) {
    		// For NS6
    		IFrameDoc = IFrameObj.contentDocument;
    	} else if (IFrameObj.contentWindow) {
    		// For IE5.5 and IE6
    		IFrameDoc = IFrameObj.contentWindow.document;
    	} else if (IFrameObj.document) {
    		// For IE5
    		IFrameDoc = IFrameObj.document;
    	} else {
    		return true;
    	}

        IFrameDoc.location.replace(URL);
        return false;
    } else{
        return false;
    }
}