

BrowserController = function(){}
BrowserController.prototype.DOMLevel = function(){
	var dlevel = 0;
	if (document.getElementById) dlevel++;
	if (document.createElement) dlevel++;
	
	return (dlevel) ;
}
BrowserController.prototype.DOMMode = function(){
	var dmode = "quirks";
	if (document.documentElement.clientHeight);
	return (dmode) ;
}
BrowserController.prototype.OS = function(){
	var rOS = "UNKN";
	var UA = navigator.userAgent;
	if (UA.toLowerCase().indexOf("linux")) rOS = "Linux";
	if (UA.toLowerCase().indexOf("x11")) rOS = "Unix";
	if (UA.toLowerCase().indexOf("mac")) rOS = "Mac";
	if (UA.toLowerCase().indexOf("win")) rOS = "Windows";
	return (rOS);
}

BrowserController.prototype.UA = function(){
	return (navigator.userAgent);
}

BrowserController.prototype.BroswerName=function(){
	var ua = navigator.userAgent;
	if (ua.toLowerCase().indexOf("opera")>-1) return ("Opera");
	if (ua.toLowerCase().indexOf("msie")>-1) return ("Internet Explorer");
	if (ua.toLowerCase().indexOf("firefox")>-1) return ("Firefox");
	if (ua.toLowerCase().indexOf("safari")>-1) return ("Safari");
	if (ua.toLowerCase().indexOf("netscape")>-1) return ("Netscape");
	if (ua.toLowerCase().indexOf("flock")>-1) return ("Flock");
	if (ua.toLowerCase().indexOf("camino")>-1) return ("camino");
	return ("UNKN");
	
}
BrowserController.prototype.BroswerVersion=function(){
	switch (this.BroswerName()){
		case "Internet Explorer":
		
		break;
		case "FireFox":
			
		break;
		case "Safari":
		
		break;
		case "Opera":
		
		break;
		case "Flock":
		
		break;
		case "Camino":
		
		break;
		case "Netscape":
			
		break;
		default:
		break;
	}
}
var BrowserControl = new BrowserController();


ScreenController = function(){}

ScreenController.prototype.resolution = function(){return (screen.width + "x" + screen.height);}
ScreenController.prototype.resolutionY = function(){return (screen.height);}
ScreenController.prototype.resolutionX = function(){return (screen.width);}

ScreenController.prototype.availSize = function(){return (screen.availWidth + "x" + screen.availHeight )}
ScreenController.prototype.availY = function(){return (screen.availHeight);}
ScreenController.prototype.availX = function(){return (screen.availWidth);}

ScreenController.prototype.viewportSize = function(d){
	
	
	var x,y;

	if (self.innerHeight) // all except Explorer
	{
		x = self.innerWidth;
		y = self.innerHeight;
	}

	else if (document.documentElement && document.documentElement.clientHeight)
		// Explorer 6 Strict Mode
	{
		x = document.documentElement.clientWidth;
		y = document.documentElement.clientHeight;
	}
	else if (document.body) // other Explorers
	{
		x = document.body.clientWidth;
		y = document.body.clientHeight;
	}
	
	switch (d){
		case "y":
			return y;
		break;
		case "x":
			return x;
		break;
		default:
			return (x + "x" + y )
		break;
	}
}
ScreenController.prototype.viewportY = function(){return this.viewportSize("y")}
ScreenController.prototype.viewportX = function(){return this.viewportSize("x")}

ScreenController.prototype.scrollOffset = function(d){
	var x,y;
	if (self.pageYOffset) // all except Explorer
	{
		x = self.pageXOffset;
		y = self.pageYOffset;
	}
	else if (document.documentElement && document.documentElement.scrollTop)
		// Explorer 6 Strict
	{
		x = document.documentElement.scrollLeft;
		y = document.documentElement.scrollTop;
	}
	else if (document.body) // all other Explorers
	{
		x = document.body.scrollLeft;
		y = document.body.scrollTop;
	}
	
	switch (d){
		case "y":
			return y;
		break;
		case "x":
			return x;
		break;
		default:
			return (x + "x" + y )
		break;
	}
}
ScreenController.prototype.scrollOffsetY = function(){return this.scrollOffset("y")}
ScreenController.prototype.scrollOffsetX = function(){return this.scrollOffset("x")}

ScreenController.prototype.pageSize =function(d){
	var x,y;
	var test1 = document.body.scrollHeight;
	var test2 = document.body.offsetHeight
	if (test1 > test2)
	{
		x = document.body.scrollWidth;
		y = document.body.scrollHeight;
	}
	else 
	{
		x = document.body.offsetWidth;
		y = document.body.offsetHeight;
	}
	switch (d){
		case "y":
			return y;
		break;
		case "x":
			return x;
		break;
		default:
			return (x + "x" + y )
		break;
	}
}
ScreenController.prototype.pageSizeY=function(){return this.pageSize("y");}
ScreenController.prototype.pageSizeX=function(){return this.pageSize("x");}

var ScreenControl = new ScreenController();




FlashController = function(){
	
}

FlashController.prototype.flashVersion = function(){
	return ( this.checkFlash("version") );
}

FlashController.prototype.detectFlash = function(ver){
	return ( this.checkFlash(ver) );
}

FlashController.prototype.createSWFObject = function(swfPath,swfAttributes,divID,detectionAttributes){
	var detectionNumber = 0
	var detectedNumber = 0
	var errors = new Array()
	var _err = ""
	if (detectionAttributes.detectFlash==true){
		detectionNumber++
		if (this.detectFlash(detectionAttributes.flashVersion)){
			detectedNumber++
		}else{
			errors.push("invalidFlash")
			if (_err=="") _err = "invalidFlash"
			
		}
	}
	
	if (detectionAttributes.detectResolution==true){
		if (detectionAttributes.resolutionY!=undefined){
			detectionNumber++
			if (ScreenControl.resolutionY() >= detectionAttributes.resolutionY){
				detectedNumber++
			}else{
				errors.push("invalidResolutionY")
				if (_err=="") _err = "invalidResolution"
			}
		}
		if (detectionAttributes.resolutionX!=undefined){
			detectionNumber++
			if (ScreenControl.resolutionX() >= detectionAttributes.resolutionX){
				detectedNumber++
			}else{
				errors.push("invalidResolutionX")
				if (_err=="") _err = "invalidResolution"
			}
		}
	}
	
	if (detectionAttributes.detectViewport==true){
		if (detectionAttributes.viewportY!=undefined){
			detectionNumber++
			if (ScreenControl.viewportY() >= detectionAttributes.viewportY){
				detectedNumber++
			}else{
				errors.push("invalidViewportY")
				if (_err=="") _err = "invalidViewport"
			}
		}
		if (detectionAttributes.viewportX!=undefined){
			detectionNumber++
			if (ScreenControl.viewportX() >= detectionAttributes.viewportX){
				detectedNumber++
			}else{
				errors.push("invalidViewportX")
				if (_err=="") _err = "invalidViewport"
			}
		}
	}
	
	
	//alert(detectionNumber + " | " + detectedNumber)
	if (detectionNumber==detectedNumber){
		
		this.outputSWF(swfPath,swfAttributes,divID)
	}else{
		//alert(detectionAttributes.onError)
		detectionAttributes.onError(_err,errors)
	}
	
}

FlashController.prototype.setVar = function(varname,val){
	this._FlashVars[varname] = val;
}

FlashController.prototype.setProperty = function(ver){
	
}





/**
	WORKER METHODS
	do not call
*/

FlashController.prototype.outputSWF = function(swfPath,swfAttributes,divID)
{
	var flashDIV = document.getElementById(divID);
	
	
	var _objectHTML = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0"'
	var _paramHTML = ""
	var _embedHTML = '<embed '
							
	
	for (var attrib in swfAttributes){
		switch (attrib){
			case "id":
				_objectHTML+= ' ' + attrib + '="' + swfAttributes[attrib] + '" ';
				_embedHTML+= ' name="' + swfAttributes[attrib] + '" ';
			break;
			case "width":
			case "height":
				_objectHTML+= ' ' + attrib + '="' + swfAttributes[attrib] + '" ';
				_embedHTML+= ' ' + attrib + '="' + swfAttributes[attrib] + '" ';
			break;
			default:
				_paramHTML+='<param name="' + attrib + '" value="' + swfAttributes[attrib] + '" />';
				_embedHTML+= ' ' + attrib + '="' + swfAttributes[attrib] + '" ';
			break;
		}
	}
	_paramHTML+='<param name="movie" value="' + swfPath + '" />';
	_embedHTML+= ' src="' + swfPath + '"></embed>';
	_objectHTML +='>'
	
	var _html_ = _objectHTML + _paramHTML + _embedHTML + '</object>'
//	alert(_html_)
	flashDIV.innerHTML=_html_;
}

FlashController.prototype.checkFlash = function(ver)
{
		
	
		var myflashversion =0;
		var vNumber;
		var MM_contentVersion = ver;
		
		var plugin = (navigator.mimeTypes && navigator.mimeTypes["application/x-shockwave-flash"]) ? navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin : 0;

		if ( plugin ) {

					var words = navigator.plugins["Shockwave Flash"].description.split(" ");
					for (var i = 0; i < words.length; ++i)
					{
					if (isNaN(parseInt(words[i])))
					continue;
					var MM_PluginVersion = words[i]; 
					}
					vNumber = MM_PluginVersion;
					var MM_FlashCanPlay = MM_PluginVersion >= MM_contentVersion;
			
			}
			else if (navigator.userAgent && navigator.userAgent.indexOf("MSIE")>=0 && (navigator.appVersion.indexOf("Win") != -1)) {

				try
				{
					var flash = new ActiveXObject("ShockwaveFlash.ShockwaveFlash")
					vNumber =  parseInt(flash.GetVariable("$version").split(",")[0].split(" ")[1]);
					
				}
				catch(e)
				{
					vNumber=0;
				}
			
				if (vNumber >=MM_contentVersion){
					MM_FlashCanPlay=true
				}

				
				
			}

		var returnVar;
		switch (ver){
			case "version":
				returnVar = vNumber;
			break;
			default:
				returnVar = MM_FlashCanPlay;
			break;
		}
		
		return (returnVar);

}


var FlashControl = new FlashController();








function initFlash(detection){
	switch (detection){
		case "fulldetect":
			FlashControl.createSWFObject(
				"cult_ads_des.swf",
				{
					width:"100%",
					height:"100%",
					bgcolor:"#ffffff",
					quality:"high",
					align:"middle",
					salign:"t",
					allowScriptAccess:"sameDomain",
					id:"cultswf"
				},
				"content_wrapper",
				{
					detectFlash:true,
					flashVersion:8,
					detectResolution:true,
					resolutionY:800,
					resolutionX:900,
					//detectViewport:true,
					//viewportY:400,
					//viewportX:600,
					onError:errorHandler
				}
			)
		break;
		case "nodetect":
			FlashControl.createSWFObject(
				"cult_ads_des.swf",
				{
					width:"100%",
					height:"100%",
					bgcolor:"#ffffff",
					quality:"high",
					align:"middle",
					salign:"t",
					allowScriptAccess:"sameDomain",
					id:"cultswf"
				},
				"content_wrapper",
				{
					detectFlash:false,
					detectResolution:false
				}
			)
		break;
	}
}
function errorHandler(err,erros){
	var wrapper = document.getElementById("content_wrapper")
	var _html=""
	
	switch (err){
		case "invalidFlash":
			_html+= '<div id="header"><a href="http://www.macromedia.com/go/getflashplayer" target="_blank"><img src="data/htmlimages/needflash.gif" alt="Cultivator Advertising and Design" /></a></div>'
			_html+=	'<div id="footer"><a href="mailto:info@cultivatorads.com"><img src="data/htmlimages/footer.gif" alt="Cultivator Advertising and Design" /></a></div>'
			wrapper.innerHTML = _html
		break;
		case "invalidResolution":
			if (ScreenControl.resolutionY()>700){
				
				_html+= '<div id="header"><a href="javascript:popSite()"><img src="data/htmlimages/1024only.gif" alt="Cultivator Advertising and Design" /></a></div>'
				_html+=	'<div id="footer"><a href="mailto:info@cultivatorads.com"><img src="data/htmlimages/footer.gif" alt="Cultivator Advertising and Design" /></a></div>'
				wrapper.innerHTML = _html
				popSite();
				
			}else{
				_html+= '<div id="header"><img src="data/htmlimages/needbetterresolution.gif" alt="Cultivator Advertising and Design" /></div>'
				_html+=	'<div id="footer"><a href="mailto:info@cultivatorads.com"><img src="data/htmlimages/footer.gif" alt="Cultivator Advertising and Design" /></a></div>'
				wrapper.innerHTML = _html
			}
		break;
	}
	
	

}

function expandWindow(){
	//var w = screen.availWidth;
	//var h = screen.availHeight;
	//window.resizeTo(w, h);	
	//window.moveTo(0,0);
  //self.moveTo(0,0);
  //self.resizeTo(screen.availWidth,screen.availHeight);
}

function popSite(){
	var cultSite=window.open("index.aspx?action=nodetect","_cultads","width=" + screen.width + ",height=" + screen.width + ",toolbars=no,scrolling=no,addressbar=no,statusbar=no")
	if (cultSite){
		cultSite.focus()
	}else{
		alert("It appears you have a pop-up blocker installed. \r\nPlease enable popups to view our fancy new site.");
	}
}


	
