

function Overlay(){
	
	var ov	= getObj('pageoverlay');
	var body = document.getElementsByTagName('body')[0];
	
	if ( ov == null ) {
		
		ov	= document.createElement('div');
		ov.id				= 'pageoverlay';
		ov.setAttribute('id','pageoverlay');
		body.appendChild(ov);
		return ov;
	}
	
	return ov;
}

function Dialog(title,message) {
	
	var div	= getObj('MessageBox');
	var body = document.getElementsByTagName('body')[0];
	
	if ( div == null ) {
		
		div = document.createElement('div');
		h1 	= document.createElement('h1');
		span= document.createElement('span');	

		div.id 				= 'MessageBox';
		div.setAttribute('id','MessageBox');
		div.style.width 	= '200px';
		
		//force width here, it's ignored in the css at this point.
		div.style.left		=  (( parseInt( document.body.offsetWidth) - ( parseInt( div.style.width.split('px')[0] ) ))  / 2 ) +'px'       ;
		
		body.appendChild(div);
		div.appendChild(h1);
		div.appendChild(span);
		
		div.onclick = new Function('hideObject("MessageBox"); hideObject("pageoverlay");');
		
	}
	
    h1.innerHTML 		= title;
	span.innerHTML		= message;	
	return div;
	
}

function Form( params ) {
	
	// NOTE: PARAMS IS FOR FUTURE USE AND IS NOT IMPLEMENTED
	
	// get object form
	var div			= getObj('Form');
	//get IHTMLElement <body>
	var body 		= document.getElementsByTagName('body')[0];
	//get IHTMLElement <html>
	var html		= document.getElementsByTagName('html')[0];		
	// check we have the object
	if ( div == null ) {
		//create IHTMLELEMENT <div>
		div = document.createElement('div');
		//set attributes
		div.id 				= 'Form';
		div.setAttribute('id','Form');
		
		//force width here, it's ignored in the css at this point.
		div.style.width		= '400px';
		div.style.left		=  ( ( parseInt( document.body.offsetWidth) - ( parseInt( div.style.width.split('px')[0] ) ))  / 2  )+'px'    ;
		//take into considerationscroll height
		div.style.top = ( 200 +  html.scrollTop ) + 'px';
		
		
		body.appendChild(div);
		
		
	}
	
	div.innerHTML = '<center><img src="/loader.gif" /></center>';
	return div;	
	
}

function iForm(url, vheight, vwidth) {

	
	// get object form
	var div			= getObj('iForm');
	//get IHTMLElement <body>
	var body 		= document.getElementsByTagName('body')[0];
	//get IHTMLElement <html>
	var html		= document.getElementsByTagName('html')[0];		
	// check we have the object
	if ( div == null ) {
		//create IHTMLELEMENT <iframe>
		div = document.createElement('iframe');
		//set attributes
		div.id 				= 'iForm';
		div.setAttribute('id','iForm');
		div.setAttribute('frameborder','0');
		
		//force width here, it's ignored in the css at this point.
		div.style.width		= vwidth +'px';
		div.style.left		=  ( ( parseInt( document.body.offsetWidth) - ( parseInt( vwidth ) ))  / 2  )+'px'    ;
		div.style.top 		= ( 200 +  html.scrollTop ) + 'px';
		div.style.height 	= vheight +'px';
		
		
		body.appendChild(div);
		
		
	}
	else
	{
		
		div.style.width		= vwidth + 'px';
		div.style.left		=  ( ( parseInt( document.body.offsetWidth) - ( parseInt( vwidth ) ))  / 2  )+'px'    ;	
		div.style.top = ( 200 +  html.scrollTop ) + 'px';
		div.style.height 	= vheight + 'px';
		
	}
	
	
	
	div.src = url;
	return div;	
	
}



function showMessage(title,message){
	
	var over = Overlay();
	var mb	 = Dialog(title,message);

	
	showObject(mb.id);
	showObject(over.id);
	
  }
  

function showiForm( url, vheight, vwidth ) {
	
	var frm 		= iForm( url, vheight, vwidth );
	var over 		= Overlay();
	
	showObject('iForm');
	showObject(over.id);
	
	document.getElementsByTagName('body')[0].style.overflow = 'hidden';
	document.getElementsByTagName('html')[0].style.overflow = 'hidden';
	
}


function hideiForm() {
	
	hideObject('iForm'); 
	hideObject('pageoverlay');
	
	document.getElementsByTagName('body')[0].style.overflow = '';
	document.getElementsByTagName('html')[0].style.overflow = '';
}
  
function showForm( Content ) {
	
	var frm 		= Form('');
	var over 		= Overlay();
	
	showObject('Form');
	showObject(over.id);
	
	frm.innerHTML	= Content;
	
	document.getElementsByTagName('body')[0].style.overflow = 'hidden';
	document.getElementsByTagName('html')[0].style.overflow = 'hidden';
	
}

//breaking our own rules we add a dependance outside files

function hideForm() {
	
	hideObject('Form'); 
	hideObject('pageoverlay');
	
	document.getElementsByTagName('body')[0].style.overflow = '';
	document.getElementsByTagName('html')[0].style.overflow = '';
}

function hideMessage() {
	
	hideObject('MessageBox'); 
	hideObject('pageoverlay');
	
	document.getElementsByTagName('body')[0].style.overflow = '';
	document.getElementsByTagName('html')[0].style.overflow = '';
	
}


//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// requires the claling page to include Http.js
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

function DisplayResponse( request, displayElement ) {

if (request){
				if ( request.readyState == 4 ) {
				
					if ( request.status == 200 || request.status == 304 ) {
						//ok set the curretn chat text
						
						if ( displayElement != null ) {
							displayElement.innerHTML = request.responseText;

						}

						
					} else
					{
						displayElement.innerHTML =request.responseText;
					}
				}
}
}


function FormsLoadFromUrl( URL , params) {
	//alert('1:' + params );
	var frm 		= Form(params);
	var request 	= getHTTPObject();
					
							if ( request ) 
							{
							
											request.onreadystatechange = function() {  DisplayResponse( request, frm );  };
											// check if we already have query string, if we do then append cache breaker
											if ( URL.indexOf('?') == -1 ) {
												request.open("GET", URL + '?cache='+Date(), true);
											}
											else
											{
												request.open("GET", URL + '&cache='+Date(), true);
											}
											
											request.send(null);	


							
							}		
	
	
}
  
  
  
  
