/*
Der er fejl i safari 10.3.6 med hensyn til at lede i frames..
Vi må bare følge med for at se hvad der sker
*/
Analyse = function(){
	
	this.debugging = false;
	
	this.Browser = null;
	
	this.OS = null;
	
	this.screenHeight = null;
	
	this.screenWidth = null;
	
	this.rootFrame = null;
	
	this.debug(this, "Analyse object created");
	
	this.Detect();
	
}
Analyse.prototype.debug = function(obj, str){
	
	if (this.debugging){
		alert( "Object: " + typeof(obj) + "\nDebug string: " + str); 
	}
	
}
Analyse.prototype.Detect = function(){
	
	this.debug(this, "Analyse.Detect");
	
	this.Browser = this.getBrowser();
	this.debug(this, "Analyse.Detect->Browser: " + this.Browser);
	
	this.OS = this.getOS();
	this.debug(this, "Analyse.Detect->OS: " + this.OS);
	
	this.screenHeight = screen.height;
	this.debug(this, "Analyse.Detect->screenHeight: " + this.screenHeight);
	
	this.screenWidth = screen.width;
	this.debug(this, "Analyse.Detect->screenWidth: " + this.screenWidth);
	
	this.rootFrame = this.getRootFrame(self);
	//this.debug(this, "Analyse.Detect->rootFrame: " + this.rootFrame.toString());
}
Analyse.prototype.getRootFrame = function(currentframe){
	
	this.debug(this, "Analyse.getRootFrame");
	return window.top;
}
Analyse.prototype.getBrowser = function(){
	
	var type = "unknown";

	//opera...
	if (navigator.userAgent.indexOf("Opera")!=-1 && document.getElementById)
	{
		type="opera";
	}

	//Internet Explorer e.g. IE4 upwards :
	if (document.all)
	{
		type="ie";
	}

	//For Netscape version 4 :
	if (document.layers)
	{
		type="navigator";
	}

	//Mozila e.g. Netscape 6 upwards
	if (!document.all && document.getElementById)
	{
		type="mozilla";
	}

	return type;
	
}
Analyse.prototype.getOS = function(){
	
	// get platform // 
	
	var platform = "unknown";

	if (navigator.userAgent.indexOf("Mac")!=-1)
	{
		platform = "mac";
	}

	if (navigator.userAgent.indexOf("Win")!=-1)
	{
		platform = "win";
	}

	if (navigator.userAgent.indexOf("Linux")!=-1)
	{
		platform = "linux";
	}

	return platform;
	
}
Analyse.prototype.getFrame = function(name){

	 // get frame refecence
	this.debug(this, "Analyse.getFrame: "+ name );
	return this.traceFrame( name, window.top ); 
	
}
Analyse.prototype.traceFrame = function( name, frame ){
	
	this.debug(this, "Analyse.traceFrame:");
	
	if (this.Browser == "mozilla" && this.OS == "mac"){
		
		return top.frames[name];
		
	} else {
		
		// Set variable to pas frame back throu //
		var frameFound = null;
	
		//this.debug(this, "Analyse.traceFrame->frame.frames:" + frame.toString());
		// if frame has eny frames run them throu // 
		for (var i=0; i<frame.frames.length; i++){
			
			this.debug(this, "Analyse.traceFrame->Loop:" + frame.frames[i].name);
			
			// Loop every frame in frame throu until its found //
			if (frame.frames[i].name == name){
				frameFound = frame.frames[i];
			} else {
				frameFound = this.traceFrame( name, frame.frames[i]);
			}
			
			// if found in frame break loop //
			if ( frameFound != null ){
				this.debug(this, "Analyse.traceFrame->return:" + frame.name );
				return frameFound;
			}
			
		}
	}
}
Analyse.prototype.getElementArray = function( name , tagname , frame )
{
	debug(this, "Analyse.getElementArray()");
	var temparray = new Array();
	var obj = frame.document.getElementsByTagName( tagname );
	
	for (var i=0; i<obj.length; i++){
	
		if(obj[i].name == name || obj[i].id == name){
					
			temparray.push(obj[i]);
			
		}
		
	}
	debug(this, "Analyse.getElementArray()->obj.length: "+ obj.length);
	return temparray;
	
}
Analyse.prototype.getElement = function( name , frame ){

	if (this.Browser == "ie")
	{
	
		return frame.document.all[name];
		
	} 
	else if( this.Browser == "opera")
	{
	
		return frame.document.getElementById(name);
		
	}
	else if( this.Browser == "navigator")
	{
	
		return frame.document.ids[name];
		
	}
	else if( this.Browser == "mozilla" )
	{
	
		return frame.document.getElementById(name);
		
	}
	
}


