// declare public variables
jsB 		= new Object() ;
jsB.init 	= false;
var warnEmail = "please check e-mail" ; 

// java startup code when page loaded and DOMload not fired
jsB.initpage = function() { 
//	if (jsB.init) return false;
	jsB.init = true;
	if (typeof onloading_contact== 'function') 		onloading_contact();		
	if (typeof onloading_home== 'function') 		onloading_home();		
	if (typeof onloading_newreg== 'function') 		onloading_newreg();			
	return (jsB.init);
}
 
function LTrim(str) {
    if (str==null){return null;}
    for(var i=0;str.charAt(i)==" ";i++);
    return str.substring(i,str.length);
}
function RTrim(str) {
    if (str==null){return null;}
    for(var i=str.length-1;str.charAt(i)==" ";i--);
    return str.substring(0,i+1);
}
function Trim(str) {
    return LTrim(RTrim(str));
}

function isEmail(str){
	if( str.length > 0 ) {
       reEmail =  /^.+\@.+\..+$/ ;
       return reEmail.test(str) ;
      } return false;
} 

function getID(divID) {
    if( document.getElementById ) { //DOM; IE5, NS6, Mozilla, Opera
        return document.getElementById(divID); }
    if( document.all ) { //Proprietary DOM; IE4
        return document.all[divID]; }
    if( document.layers ) { //Netscape layers
        return document.layers[divID]; }
    if( document[divID] ) { //Netscape alternative
        return document[divID]; }
    return false;
}


// ==================================== ajax library ==========================
var myAjaxXML = null;
function myAjax (url, callback) {
	var sid = "&sid="+Math.random();
	if (myAjaxXML) if (myAjaxXML.readyState>0 && myAjaxXML.readyState<4) { /* myAjaxXML.abort();*/ myAjaxXML=null; return false; }
	/* if (myAjaxXML==null) */ myAjaxXML=GetXmlHttpObject(); 
	if (myAjaxXML==null) { alert("AJAX required!"); return; }
	// do not send Ajax if one request still pending
	if (myAjaxXML.readyState==4 || myAjaxXML.readyState==0) { 
		myAjaxXML.onreadystatechange=function(){ myAjaxReady(callback); };
		myAjaxXML.open("GET",url+sid,true);
		myAjaxXML.send(null);
	}	
}

function myAjaxReady (callback) {
if (!myAjaxXML) return false;
if (myAjaxXML.readyState==4 || myAjaxXML.readyState=="complete") {
	if (myAjaxXML.status != 200) { alert(myAjaxXML.status + '  ' + myAjaxXML.statusText); return false; }
	callback(myAjaxXML.responseXML.documentElement,myAjaxXML.responseText);
	}
} 

function myAjaxID (tag) {
	var result = null;
	try { result = myAjaxXML.responseXML.getElementsByTagName(tag)[0].firstChild.data; 
	} catch(err){}
	return result;
}


// new Ajax object, concurrency enabled. Sep.25,2009
function ajaxObject(url, callbackFunction) {
	var that=this;      
	this.updating = false;
	this.abort = function() 
	{	if (that.updating) 
		{	that.updating=false;
			that.AJAX.abort();
			that.AJAX=null;
		}
	}
	this.update = function(passData,postMethod) 
	{ 	if (that.updating) { return false; }
		that.AJAX = GetXmlHttpObject();                          
		if (that.AJAX==null) { return false; } else 
		{	that.AJAX.onreadystatechange = function() 
			{  	if (that.AJAX.readyState==4 || that.AJAX.readyState=="complete") 
				{	that.updating=false;                
					if (that.AJAX.status == 200) that.callback(that.AJAX.responseText, that.AJAX.responseXML, that.AJAX.status);        
					that.AJAX=null;                                         
				}                                                      
			}                                                        
			that.updating = new Date();                              
			if (/post/i.test(postMethod)) 
			{	var uri=urlCall+'?'+that.updating.getTime();
				that.AJAX.open("POST", uri, true);
				that.AJAX.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=UTF-8");
				that.AJAX.setRequestHeader("Content-Length", passData.length);
				that.AJAX.send(passData);
			} else {
				var uri=urlCall+'?'+passData+'&timestamp='+(that.updating.getTime()); 
				that.AJAX.open("GET", uri, true);                             
				that.AJAX.send(null);                                         
			}              
			return true;                                             
    	}                                                                           
  	}
	var urlCall = url;        
	this.callback = callbackFunction || function () { };
	this.dataset = null; // can be used to pass external variables in an array
}

// ==================================== public functions ==========================
// create AJAX-Object
function GetXmlHttpObject() {
 var crossxhr = false;
 if (window.XMLHttpRequest) {         // Firefox, Opera 8.0+, Safari
    crossxhr = new XMLHttpRequest();
    if (crossxhr.overrideMimeType) { crossxhr.overrideMimeType('text/xml'); }
 } else if (window.ActiveXObject) {   // Internet Explorer 
  try {
   crossxhr = new ActiveXObject('Msxml2.XMLHTTP');
  } catch(e) {
   try {
    crossxhr = new ActiveXObject('Microsoft.XMLHTTP');
   } catch(e) {
    crossxhr = false;
   }
  }
 }
 return crossxhr;
}


var DomLoaded = {
	onload: [],
	loaded: function()
	{
		if (arguments.callee.done) return;
		arguments.callee.done = true;
		for (i = 0;i < DomLoaded.onload.length;i++) DomLoaded.onload[i]();
	},
	load: function(fireThis)
	{
		this.onload.push(fireThis);
		if (document.addEventListener) 
			document.addEventListener("DOMContentLoaded", DomLoaded.loaded, null);
		if (/KHTML|WebKit/i.test(navigator.userAgent))
		{ 
			var _timer = setInterval(function()
			{
				if (/loaded|complete/.test(document.readyState))
				{
					clearInterval(_timer);
					delete _timer;
					DomLoaded.loaded();
				}
			}, 10);
		}
	   window.onload = DomLoaded.loaded;
	}
};
window.onload =function() { jsB.initpage(); }
DomLoaded.load(function() { jsB.initpage(); });


