var modalDivGet = function ($url) {
	$('screen').style.display='block';
	ajaxGet_sync ($url, modalDivGetCB);
} 			
var modalDivGetCB = function(response) {
	$('modalDiv').innerHTML=response.responseText;
	response.responseText.evalScripts();
	$('modalDiv').style.display='block';

} 

var modalDivClose = function() {
	$('screen').style.display='none';
	$('modalDiv').style.display='none';
}

var modalDivShow = function(content) {
		$('screen').style.display='block';
		$('modalDiv').innerHTML=content;
		$('screen').style.display='block';
		$('modalDiv').style.display='block';
}



//  If you want to call a function after the content is returned and displayed, ust modalDivGet_sync
var globalVar_modalDivGet_syncCallBackFunction;

var modalDivGet_sync = function ($url, callBackFunction) {
	$('screen').style.display='block';
	globalVar_modalDivGet_syncCallBackFunction = callBackFunction;
	ajaxGet_sync ($url, modalDivGet_syncCB);
}
 			
var modalDivGet_syncCB = function(response) {
	$('modalDiv').innerHTML=response.responseText;
	//new Effect.BlindDown('modalDiv',{duration:0});
	$('modalDiv').style.display='block';
	globalVar_modalDivGet_syncCallBackFunction();
	
} 
//  End modalDivGet_sync



var ajaxGet = function (url, returnID) {
	
  var ajax = new Ajax.Updater(
					{success: returnID}, 
					url, 
					{method: 'get', onFailure:reportError, evalScripts:true }
				);
 
}


//-------------------------------------------------------------------------------------------
var ajaxGet_sync = function (url, callbackFunction) {
	var req = new Ajax.Request(url,
		{
			method:'get',
			onSuccess : callbackFunction,
			onFailure : reportError
		});
	
}

//-------------------------------------------------------------------------------------------
var ajaxPost = function (returnID, url, formID) {
	var ajax = new Ajax.Updater(returnID, url, {method:'post', parameters:$(formID).serialize()} );
}


//-------------------------------------------------------------------------------------------
var ajaxPost_sync = function (url, formID, callbackFunction) {
	var req = new Ajax.Request(url,
		{
			method		:	'post',
			enctype		:	'multipart/form-data',
			parameters	:	$(formID).serialize(),
			onSuccess 	: 	callbackFunction,
			onFailure 	: 	reportError
		});
}



//-------------------------------------------------------------------------------------------
var reportError = function (request) {
	alert("onFailure was called with "+request.responseText);

}


//-------------------------------------------------------------------------------------------
var ajaxGetResponseValue = function(needle, haystack) {
	openTag_position  = haystack.indexOf(needle);
	startValue_position =  openTag_position + needle.length;
	closeTag_position  = haystack.indexOf("</"+needle);
	lengthOfValue = closeTag_position - startValue_position ;
	value = haystack.substr(startValue_position+1,lengthOfValue-1);
	return value;
}
















var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{
			string: navigator.userAgent,
			subString: "Chrome",
			identity: "Chrome"
		},
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari",
			versionSearch: "Version"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			   string: navigator.userAgent,
			   subString: "iPhone",
			   identity: "iPhone/iPod"
	    },
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};
BrowserDetect.init();




















/**
*
*  AJAX IFRAME METHOD (AIM)
*  http://www.webtoolkit.info/
*
**/

AIM = {

	   frame : function(c) {
	   
			   var n = 'f' + Math.floor(Math.random() * 99999);
			   var d = document.createElement('DIV');
			   d.innerHTML = '<iframe style="display:none" src="about:blank" id="'+n+'" name="'+n+'" onload="AIM.loaded(\''+n+'\')"></iframe>';
			   document.body.appendChild(d);
	   
			   var i = $(n);
			   if (c && typeof(c.onComplete) == 'function') {
					   i.onComplete = c.onComplete;
	   }
	   
			   return n;
	   },
	   
	   form : function(f, name) {
			   f.setAttribute('target', name);
	   },
	   
	   submit : function(f, c) {
			   
			   AIM.form(f, AIM.frame(c));
			   targ = c.targetObj;
									   
			   if (c && typeof(c.onStart) == 'function') {
					   return c.onStart();
			   } else {
					   return true;
			   }
	   },
	   
	   loaded : function(id) {
			   var i = $(id);
			   
			   if (i.contentDocument) {
					   var d = i.contentDocument;
			   } else if (i.contentWindow) {
					   var d = i.contentWindow.document;
			   } else {
					   var d = window.frames[id].document;
			   }
			   if (d.location.href == "about:blank") {
					   return;
			   }
	   
			   if (typeof(i.onComplete) == 'function') {
					   i.onComplete(d.body.innerHTML,targ);
			   }
	   }

}



