
var xmlLoader;

if ( !xmlLoader ) {
	
	xmlLoader = {};
	
}

xmlLoader.XMLDefinitions = ["MSXML2.XMLHTTP.5.0", "MSXML2.XMLHTTP.4.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP"];

xmlLoader.Microsoft = false;

xmlLoader.createXMLHttpRequest = function() {
	
	var AXRequest = null;
	
	try {
		
		if ( window.XMLHttpRequest ) {
			
			AXRequest = new XMLHttpRequest();
			
		} else if ( window.ActiveXObject ) {
			
			this.Microsoft = true;
			
			while (!AXRequest && this.XMLDefinitions.length) {
				
				try {
					
					AXRequest = new ActiveXObject( this.XMLDefinitions[0] );
					
				} catch ( error ) {
					
					AXRequest = null;
					
				}
				
				if ( !AXRequest ) {
					
					this.XMLDefinitions.splice(0, 1);
					
				} else {
					
					// alert( this.XMLDefinitions[0] );
				
				}
				
			}
			
		}
		
	} catch ( error ) {
		
		AXRequest = null;
		
	}

	if ( !AXRequest ) {
		
		// alert( "Failed to create an XMLHttpRequest object!" );
		
	}

	return AXRequest;
	
};

xmlLoader.pageSize = function () {
	
	if( typeof( window.innerWidth ) == 'number' ) {
		
		//Non-IE
		myWidth = window.innerWidth;
		myHeight = window.innerHeight;
		
	} else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
		
		//IE 6+ in 'standards compliant mode'
		myWidth = document.documentElement.clientWidth;
		myHeight = document.documentElement.clientHeight;
		
	} else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
		
		//IE 4 compatible
		myWidth = document.body.clientWidth;
		myHeight = document.body.clientHeight;
		
	}
	 
	 return [myWidth, myHeight];
	 
}

xmlLoader.loadURL = function( method, url, async, username, password, callback ) {
	
	this.comm = document.getElementById("xmlcomm");
	//this.comm.style.display = "block";
	this.comm.style.top = "6px";
	this.comm.style.left = ( this.pageSize()[0] - 106 ) + "px";
	this.comm.style.left = "6px";
	this.comm.style.width = "100px";
	this.comm.style.height = "14px";
		
	try {
		
		var AXRequest = this.createXMLHttpRequest();
		
		this.comm.innerHTML = "loading XMLObject";
		
		if ( !AXRequest ) {

			this.comm.innerHTML = "failed to create XMLObject";
			
			return "failed"; 
			
		} else {
	
			if ( this.Microsoft ) {
				
				AXRequest.open( method, url );
				
				AXRequest.onreadystatechange = function() {
					
					this.comm = document.getElementById("xmlcomm");
					
					if ( AXRequest.readyState == 4 ) {
						
						if ( AXRequest.status == 200 ) {
							
							this.comm.style.display = "none";
							callback.run();
							
						} else if ( AXRequest.status == 404 ) {
						
							this.comm.innerHTML = "URL doesn't exist!";
							
						} else {
							
							this.comm.innerHTML = "Status is " + AXRequest.status;
							
						}
						
					}
				
				}
				
				AXRequest.send(null);
				
			} else {
			
				function onProgress(e) {
					var percentComplete = (e.position / e.totalSize)*100;
					
					this.comm = document.getElementById("xmlcomm");
					this.comm.innerHTML = "loading "+percentComplete+"%";
					
				}
				
				function onError(e) {
				  alert("Error " + e.target.status + " occurred while receiving the document.");				  
				}
				
				function onLoad(e) {
					
					this.comm = document.getElementById("xmlcomm");
					this.comm.style.display = "none";
					callback.run();
						
				}
				
				function onReadyState(e) {
					
					this.comm = document.getElementById("xmlcomm");
					
					if ( XMLRequest.readyState == 4 ) {
						  
						if ( XMLRequest.status == 200 ) {
							 
							this.comm.innerHTML = "Load Complete";
							// alert( XMLRequest.responseText );
							
						} else {
						 
							this.comm.innerHTML = "Error loading page";
							
						}
					 
					}
				  
				};
				
				var XMLRequest = new XMLHttpRequest();
				
				XMLRequest.onprogress = onProgress;
				
				XMLRequest.open( "GET", url, true );
				
				XMLRequest.onload = onLoad;
				XMLRequest.onerror = onError;
				XMLRequest.onreadystatechange = onReadyState;
				
				XMLRequest.send( null );
			
			}
			
		}
		
	} catch ( error ) {
		
		AXRequest = "failed"; 
		
		this.comm.innerHTML = "xmlLoader ERROR \n" + url + "\n " + error.message;
		
	}

	return AXRequest;
	
};

var Logger;

if ( !Logger ) {
	
	Logger = {};
	
}

Logger.getURL = function ( $id, $obj ) {
		
	var n1, n2, n3, n4, n5, n6, n7, n8, n9, n10
		
	n1 = "";
	n2 = "";
	n3 = "";
	n4 = "";
	n5 = "";
	n6 = "";
	n7 = "";
	n8 = "";
	n9 = "";
	n10 = "";
		
	for ( var i in $obj ) {
		
		if ( i == "n1" ) {
			
			n1 = $obj[i];	
			
		} else if ( i == "n2" ) {
			
			n2 = $obj[i];	
			
		} else if ( i == "n3" ) {
			
			n3 = $obj[i];	
			
		} else if ( i == "n4" ) {
			
			n4 = $obj[i];	
			
		} else if ( i == "n5" ) {
			
			n5 = $obj[i];	
			
		} else if ( i == "n6" ) {
			
			n6 = $obj[i];	
			
		} else if ( i == "n7" ) {
			
			n7 = $obj[i];	
			
		} else if ( i == "n8" ) {
			
			n8 = $obj[i];	
			
		} else if ( i == "n9" ) {
			
			n9 = $obj[i];	
			
		} else if ( i == "n10" ) {
			
			n10 = $obj[i];	
			
		}
		
	}
	
	var logger_url = "flash_log.asp?id="+$id+"&n1="+n1+"&n2="+n2+"&n3="+n3+"&n4="+n4+"&n5="+n5+"&n6="+n6+"&n7="+n7+"&n8="+n8+"&n9="+n9+"&n10="+n10;
		
	return logger_url;
	
}
	
Logger.getCallBack = function ( $url, $target ) {
	
	var callback;
			
	if ( $url != "" && $url != null ) {
			
		if ( $target == "" || $target == null ) {
			
			callback = {};
			callback.url = $url;
			callback.target = $target;
			
			callback.run = function () {
				
				// alert(this.url);
					
				// window.location = this.url;
				
			}
			
			
		} else {
			
			callback = {};
			callback.url = $url;
			callback.target = $target;
			
			callback.run = function () {
				
				// alert(this.url);
					
				// window.open("new", this.url);
				
			}
			
		}
		
	} else {
	
		callback = {};
		callback.url = "";
		callback.target = "";
		
		callback.run = function () {
			
		}

	}
		
	return callback;
	
}

Logger.canlog = true;

Logger.addLOG = function ( $id, $obj, $url, $target ) {
	
	if ( this.canlog ) {
		
		var callback = this.getCallBack( $url, $target );	
		var myurl = this.getURL( $id, $obj );
		var username = "";
		var password = "";
		
		var mylog = xmlLoader.loadURL('GET', myurl, true, username, password, callback );
		
		// alert( "addLog " + mylog );
		
		// #include "Classes/Logger/Logger.as"
		// _root.Logger(1, {n1:_global.lang}, "", "");
			
	}
	
}


