function browser_check( ) {
	if( isIE_and_isVersion6orLess( ) ) {
		var yabody = document.getElementsByTagName( 'body' );
		yabody = yabody[ 0 ];
		
		var msg = document.createElement( 'div' );
		msg.id = 'ie6_msg';
		
		msg.appendChild(
			document.createTextNode(
				'die'
			)
		);
		
		yabody.insertBefore( msg, yabody.firstChild );
	}
}
//document.onload = chainHandlers( document.onload, browser_check );

function uvflash_attach( ) {
	if( typeof( flashUpshift ) != "undefined" ) {
		for( var ii = 0; ii < flashUpshift.length; ii++ ) {
			var d			= flashUpshift[ii];
			var hardpoint	= d[0];
			var flashObj	= d[1];
			var version		= d[2];
			var dx			= d[3];
			var dy			= d[4];
			
			if( getFlashVersion( ) < version )
				return uvflash_prompt();
				
			var obj = getObj( hardpoint );
			
			if( obj ) {
				clearNode( obj );
				
				var params = {
					 allowScriptAccess	: 'sameDomain'
					,movie				: flashObj
					,quality			: 'high'
					,bgcolor			: '#FFFFFF'
					/**
					 *	@browser IE
					 *	Allows drop-downs to work.
					 */
					,wmode				: 'transparent'
					};
				
				if( !isIE() && !isOpera() ) {
					var fbase = obj.appendChild(
						document.createElement( 'object' )
					);

					fbase.classid
						= 'clsid:d27cdb6e-ae6d-11cf-96b8-444553540000';

					fbase.codebase
						= 'http://fpdownload.macromedia.com/'
						+ 'pub/shockwave/cabs/flash/swflash.cab'
						+ '#version=7,0,0,0'
						;

					fbase.width 	= dx;
					fbase.height	= dy;
					
					var p;
					
					for( var k in params ) {
						p = fbase.appendChild(
							document.createElement( 'param' )
							);
						p.name	= k;
						p.value	= params[ k ];
					}
					
					var emb = fbase.appendChild(
						document.createElement( 'embed' )
					);
					
					emb.src			= flashObj;
					emb.quality		= 'high';
					emb.bgcolor		= '#FFFFFF';
					emb.type		= 'application/x-shockwave-flash';
					emb.pluginspage	= 
						'http://www.macromedia.com/go/getflashplayer';
					emb.width		= dx;
					emb.height		= dy;
					emb.wmode		= 'transparent';
				} else {
					
					phtml = '';
					for( var k in params ) {
						phtml = phtml + '<param name="' + k
							+ '" value="' + params[k] + '" />'
							;
						}
				
					obj.innerHTML =
'<object	classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"' +
'			codebase="http://download.macromedia.com/pub/shockwave/cabs/flash' +
		   '/swflash.cab#version="' + version +',0,0,0"' +
'			width="' + dx + '"' +
'			height="' + dy + '">' +
'	' + phtml +
'	<embed	src="' + flashObj + '"' +
'			quality="high"' +
'			width="' + dx + '"' +
'			height="' + dy + '"' +
'			type="application/x-shockwave-flash"' +
'			pluginspage="http://www.macromedia.com/go/getflashplayer"' +
'			wmode="transparent" />' +
'</object>';
				}
			}
		}
	}
}

function uvflash_prompt() {
	obj = getObj( 'uvPromptFlash' )
	
	if( !obj )
		return;
	
	obj.style.display = 'block';
}
	
var _flashVersion  = null;
function getFlashVersion( ) {
	if( _flashVersion != null ) return _flashVersion;
	
	if( navigator.plugins
	&&	navigator.plugins.length ) {
		var p = navigator.plugins;
		for( var ii = 0; ii < p.length; ii++ ) {
			if( p[ ii ].name.indexOf( 'Shockwave Flash' ) != -1 ) {
				_flashVersion = p[ ii ].description.split(
					'Shockwave Flash' )[1];
				break;
				}
			}
		}
	else
	if( window.ActiveXObject ) {
		for( var ii = 12; ii--; ) {
			try {
				if( eval(	
					 'new ActiveXObject('
					+'"ShockwaveFlash.ShockwaveFlash.' + ii + '"'
					+');'
					) ) {
					_flashVersion = ii;
					break;
					}
				}
			catch( e ) { }
			}
		}
		
	_flashVersion = parseInt( _flashVersion );
	return _flashVersion;
	}

function uvqt_attach( video ) {
    if( video ) {
        qtUpshift = video;
    }
    
	if( typeof( qtUpshift ) != 'undefined' ) {
		for( var ii = 0; ii < qtUpshift.length; ii++ ) {
			var d			= qtUpshift[ii];
			var hardpoint	= d[0];
			var qtObj		= d[1];
			var dx			= d[2];
			var dy			= d[3];
			
			var obj = getObj( hardpoint );
			
			if( obj ) {
				classid = ( isIE() ) ? 'classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B"' : '';
				
				obj.innerHTML
					=	'<object	' + classid +
						'			data="' + qtObj + '" ' +
						'			width="' + dx + '" ' +
						'			height="' + dy + '">' + "\n" +
						'	<param	name="src" ' +
						'			value="' + qtObj + '" />' +
						'</object>';
			}
		}
	}
	
}
	

function uvhoverable_attach( ) {
	var imgArr	= document.getElementsByTagName( 'img' );
	var inptArr	= document.getElementsByTagName( 'input' );
	
	arr = new Array( imgArr, inptArr );
	
	if( arr ) {
		for( var ii = 0; ii < arr.length; ii++ ) {
			
			for( var kk = 0; kk < arr[ ii ].length; kk++ ) {
				if( arr[ ii ][ kk ].className
				&&	arr[ ii ][ kk ].className.indexOf( 'uvHoverable' ) != -1 ) {
	
					var p = arr[ ii ][ kk ].src.split( '.' );
					if( p.length > 1 ) {
						p[ p.length - 2 ] += '_h';
						}
					l = p.join( '.' );
	
					arr[ ii ][ kk ].uvhoverable_off	= arr[ ii ][ kk ].src;
					arr[ ii ][ kk ].uvhoverable_on	= l;
					
					arr[ ii ][ kk ]._preload			= new Image( );
					var _t = arr[ ii ][ kk ]._preload;

					arr[ ii ][ kk ]._preload.onerror	= bind(
						 null
						,function( _t ) {
							uv_error(
								'Unable to load image: ' + _t.src
								);
							}
						,arr[ ii ][ kk ]
						);
					
					arr[ ii ][ kk ]._preload.src 	= l;
	
					arr[ ii ][ kk ].onmouseover =
						chainHandlers(
							 uvhoverable_activate
							,arr[ ii ][ kk ].onmouseover
							);
	
					arr[ ii ][ kk ].onmouseout =
						chainHandlers(
							 uvhoverable_deactivate
							,arr[ ii ][ kk ].onmouseout
							);
					}
				}
			}
		}
	}
	
function uvhoverable_activate( ) {
	this.src = this.uvhoverable_on;
	}
	
function uvhoverable_deactivate( ) {
	this.src = this.uvhoverable_off;
	}
	
function uv_error( err ) {
/*	uv_log(
		 'error'
		,err
		,window.location
		);
*/	}

function uv_log( what, which, where ) {
	if( typeof( uvUniq ) == "undefined" ) {
		uvUniq = null;
		}
	
	if( typeof( uvWho ) == 'undefined' )
		uvWho = null;
	
/*	AJAX ready
	uri =
		 AURI
		+'resource/ultraviolet/'
		+'?which='+escape( which )
		+'&what='+escape( what )
		+'&where='+escape( where )
		+'&referrer='+escape( document.referrer )
		+'&agent='+escape( navigator.userAgent )
		+'&uniq='+escape( uvUniq )
		;
	
	XMLReq.pullURI( uri, function( xml ) { } );
*/		
	(new Image()).src = s =
		 AURI
		+'resource/ultraviolet/'
		+Math.random()
		+'/?who='+escape( uvWho )
		+'&which='+escape( which )
		+'&what='+escape( what )
		+'&where='+escape( where )
		+'&referrer='+escape( document.referrer )
		+'&uniq='+escape( uvUniq )
		;
	
	setCookie( '_uv', uvUniq );
	}
	
function uv_attach_links( ) {
	
	if( typeof( uvUniq ) == "undefined" ) {
		uv_error( 'No uvUniq.' );
		}
		
	if( typeof( AURI ) == "undefined" ) {
		uv_error( 'No AURI.' );
		}
	
	var formArr = document.getElementsByTagName( 'form' );
	if( formArr ) {
		
		for( var ii = 0; ii < formArr.length; ii++ ) {
			var _f = formArr[ ii ];
			
			_uvf = new Object();
			
			_uvf.what = 'form';
			
			_uvf.which = _f.name
			if( !_uvf.which )
				_uvf.which = 'form[ ' + ii + ' ]';
			
			_uvf.where = _f.action;
			
			_f.onsubmit = chainHandlers(
				 bind(
				 	 null
				 	,function( _uvf ) {
				 	 	uv_log(
				 	 		 _uvf.what
				 	 		,_uvf.which
				 	 		,_uvf.where
				 	 		)
				 	 	}
				 	,_uvf
				 	)
				,_f.onsubmit
			);
		}
		
	}
	
	var linkArr = document.getElementsByTagName( 'a' );
	if( linkArr ) {
		
		server	= window.location.toString().split( '/' )[2];
		regtyp	= new RegExp( 'uvt_([a-z]+)', 'i' );
		regkey	= new RegExp( 'uvk_([a-z0-9]+)', 'i' );
		regloc	= new RegExp( '^(javascript:|http(s)?://'+server+')', 'i' );
		
		for( var ii = 0; ii < linkArr.length; ii++ ) {
			if( linkArr[ii].href && !linkArr[ii].onclick ) {
				var _t = linkArr[ii];
				
				if( what = _t.className.match( regtyp ) ) {
					what = what[1];
					}
				else {
					what = regloc.test( _t.href )
						? 'link'
						: 'exit'
						;
					}
					
				where = _t.href;
				
				_t.uv_log = uv_log;
				_t.uv_what = what;
				_t.uv_where = where;

				if( which = _t.className.match( regkey ) ) {
					_t.uv_which = which[1];
					}
				else
				if( !_t.innerText || !(_t.uv_which = _t.innerText.trim( )) ) {

					if( n = _t.firstChild ) {
						do {
							if( n.alt ) {
								_t.uv_which = n.alt;
								break;
								}
							else
							if( n.nodeType == 3 ) {
								if( n.nodeValue ) {
									if( x = n.nodeValue.toString().trim( ) ) {
										_t.uv_which = x;
										break;
										}
									}
								}
							} while( n = n.nextSibling );
						}
					
					if( !_t.uv_which ) {
						_t.uv_which = '?';
						}

					}
				
				_t.onclick = bind(
					 null
					,function( _t ) {
					 	return _t.uv_log(
					 		 _t.uv_what
					 		,_t.uv_which
					 		,_t.uv_where
					 		);
					 	}
					,_t
					);
				}
			}
		}
	}

document.onload = chainHandlers( uvattach_alpha_img, document.onload );
function uvattach_alpha_img( ) {

	if( !isIE( ) || isAtLeastVersion( 7 ) ) {
		return;
	}
	
	var imgs	= document.images;
	var alpha	= new Array( );
	var links	= new Array( );
	
	if( !imgs ) {
		return;
	}
	
	for( var i = 0; i < imgs.length; i++ ) {
		img = imgs[ i ];
		
		if( img.className
		&&  img.className.indexOf( 'uvTransparent' ) != -1 ) {
			
			img._s = document.createElement( 'span' );
			
			var keys = new Array(
				 'id'
				,'className'
				,'title'
				,'src'
				,'style'
				,'alt'
			);
			
			for( var j = 0; j <= keys.length; j++ ) {
				key = keys[ j ];
				
				switch( key ) {
					case 'src':
						img._s.style.filter =
							'progid:DXImageTransform.Microsoft.AlphaImageLoader('
								+'  src="' + img.src + '"'
								+', sizingMethod="image"'
							+' )';
						break;
					case 'style':
						img._s.style.visibility = 'visible';
						img._s.style.display = 'inline-block';
						
						img._s.style.width = img.style.width;
						img._s.style.height = img.style.height;
						
						if( img.parentNode.href ) {
							img._s.style.cursor = 'pointer';
						}
						break;
					case 'alt':
						img._s[ 'title' ] = img[ key ];
					default:
						if( img[ key ] ) {
							img._s[ key ] = img[ key ]
						}
					break;
				}
			}
			
			if( img.parentNode.href ) {
				links.push( img );
			}
			else {
				alpha.push( img );
			}
		}
	}
	
	if( isAtLeastVersion( 7 ) ) {
		return;
	}
	
	for( var i = 0; i < alpha.length; i++ ) {
		img = alpha[ i ];
		replaceNode( img, img._s );
	}
	
	var pad;
	for( var i = 0; i < links.length; i++ ) {
		img				= links[ i ];
		pad				= document.createElement( 'div' );
		pad.style.width	= img._s.style.width;
		
		pad.appendChild( img._s );
		img.parentNode.appendChild( pad );
		removeNode( img );
	}
}

/*
function uvAttachReports( ) {
	var linkArr = document.getElementsByTagName( 'a' );
	if( linkArr ) {
		for( var ii = 0; ii < linkArr.length; ii++ ) {
			var div = document.createElement( 'div' );
			div.className = 'uvLinkReport';
			div.style.left = (getObjWidth( linkArr[ ii ] ) + 5) + 'px';
			
			var key = 'h_' + hex_md5( linkArr[ii].href );
			var N = 0;
			var P = 0;
			
			if( uvExit
			&&	uvExit[ key ] ) {
				var N = uvExit[ key ][ 0 ];
				var P = parseInt((parseFloat( uvExit[ key ][ 1 ] ) * 100));
				}
			
			setHTML( div, '&laquo; (' + N + '; ' + P + '%)' );
			linkArr[ii].insertBefore( div, linkArr[ii].firstChild );
			linkArr[ii].style.position = 'relative';
			}
		}
	}
*/

//document.onload = chainHandlers( uvflash_attach, document.onload );
//document.onload	= chainHandlers( uvqt_attach, document.onload );
document.onload = chainHandlers( uvhoverable_attach, document.onload );








/*
function agentMatches( str ) {
	return (navigator.userAgent.toLowerCase().indexOf( str.toLowerCase() )
		!= -1);
	}

function isIE( )
	{ return agentMatches( 'MSIE' ); }

function isSafari( )
	{ return agentMatches( 'Safari' ); }

function isFirefox( )
	{ return agentMatches( 'Firefox' ); }

function isMac( )
	{ return agentMatches( 'Mac' ); }
	
function getBrowserVersion( ) {
	if( isIE( ) ) {
		var p = navigator.userAgent.toLowerCase().indexOf( 'msie' );
		return parseInt( navigator.substring( p ) );
		}
	else {
		return parseInt( navigator.userAgent );
		}
	}


function keys( o ) {
	var r = [];
	for( var k in o ) {
		r.push( k );
		}
	return r;
	}

function intrude( dst, src ) {
	for( var k in src ) {
		dst[k] = src[k];
		}
	return dst;
	}
	
function getObj( id ) {
	return document.getElementById( id );
	}

function getObjX( obj ) {
	var x = 0;

	if( obj.offsetParent ) {
		while( obj.offsetParent ) {
			x += obj.offsetLeft;
			obj = obj.offsetParent;
			}
		x += obj.offsetLeft;
		}
	else
	if( obj.x ) {
		x += obj.x;
		}
	
	return x;
	}

function getObjY( obj ) {
	var y = 0;

	if( obj.offsetParent ) {
		while( obj.offsetParent ) {
			y += obj.offsetTop;
			obj = obj.offsetParent;
			}
		y += obj.offsetTop;
		}
	else
	if( obj.y ) {
		y += obj.y;
		}
		
	return y;
	}
	
function getEventX( e ) {
	var e = getEvent( e );

	if( e && e.clientX )
		return e.clientX;
	else
		return false;
	}

function getEventY( e ) {
	var e = getEvent( e );

	if( e && e.clientY )
		return e.clientY;
	else
		return false;
	}
	
function getEvent( e ) {
	if( window.event )
		return window.event;
		
	if( isFirefox( ) && e )
		return e;
	
	return null;
	}

function chainHandlers( first, last ) {
	return f = function( e ) {
		var r = true;

		if( first ) {
			this.__t_call = first;
			r = this.__t_call( e );
			if( r === false ) {
				return r;
				}
			}

		if( last ) {
			this.__t_call = last;
			r = this.__t_call( e );
			}

		return r;
		}
	}

function abortEvent( e ) {
	if( !e ) 
		var e = window.event;

	e.cancelBubble = true;
	if( e.stopPropagation )
		e.stopPropagation();
	
	return false;
	}

function setCookie( n, v ) {
	document.cookie = n + '=' + v + '; path=/';
	}

function getCookie( n ) {
	var nameEQ = n+'=';
	var ca = document.cookie.split(';');
	for( var ii = 0; ii < ca.length; ii++ ) {
		var c = ca[ii];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0)
			return c.substring(nameEQ.length,c.length);
		}

	return null;
	}

function eraseCookie(name) {
	setCookie(name,'');
	}


function getText( obj ) {

	if( obj.innerText )
		return obj.innerText;

	if( obj.textContent )
		return obj.textContent;

	return null;
	}

function setText( obj, text ) {
	obj.innerText = obj.textContent = text;
	}

function setHTML( obj, html ) {
	obj.innerHTML = html;
	}

var _lockedObjects = null;

function adjustLockedPositions( ) {
	if( typeof( _lockedObjects ) == 'object' ) {
		var dx = getScrollOffsetX( );
		var dy = getScrollOffsetY( );
		for( var k in _lockedObjects ) {
			_lockedObjects[ k ].style.top = z = 
				(_lockedObjects[ k ]._lockBaseOffsetY + dy) + 'px';
			_lockedObjects[ k ].style.left =
				(_lockedObjects[ k ]._lockBaseOffsetX + dx) + 'px';
			}
		}
	}

function lockPosition( obj ) {
	
	if( typeof( _lockedObjects ) != 'array' ) {

		window.onscroll = chainHandlers(
			adjustLockedPositions, window.onscroll
			);

		_lockedObjects = [];
		}
	
	if( !in_array( obj, _lockedObjects ) ) {
		obj._lockBaseOffsetX = getObjX( obj.style.top );
		obj._lockBaseOffsetY = getObjY( obj.style.left );
		_lockedObjects.push( obj );
		adjustLockedPositions( );
		}
	}


function clearNode( node ) {
	if( node.removeChild ) {
		while( node.firstChild ) {
			node.removeChild( node.firstChild );
			}
		}
	return node;
	}

function removeNode( node ) {
	if( node ) {
		node.style.display = 'none';
		if( node.parentNode ) {
			if( node.parentNode.removeChild ) {
				node.parentNode.removeChild( node );
				}
			}
		}
	}

function in_array( obj, arr ) {
	for( var k in arr ) {
		if( arr[k] == obj )
			return true;
		}
	return false;
	}

function objlen( obj ) {
	var N = 0;
	for( var k in obj ) N++;
	return N;
	}

function getWindowWidth( ) {
	if( document.body ) {
		return document.body.clientWidth;
		}
	}

function getWindowHeight( ) {
	if( document.body ) {
		return document.body.clientHeight;
		}
	}

function getScrollOffsetY( ) {
	return document.body.scrollTop;
	}
function getScrollOffsetX( ) {
	return document.body.scrollLeft;
	}


function getObjWidth( obj ) {
	return obj.clientWidth;
	}

function getObjHeight( obj ) {
	return obj.clientHeight;
	}

function bind( f, g ) {
	return function( ) { return f( g ); }
	}

function uvlog( which, what ) {
	(new Image()).src = AURI+'resource/ultraviolet/' + Math.random() + '/?which='+escape( which )+'&what='+escape( what )+'&where='+escape( window.location )+'&uniq='+escape( uvUniq )
	
	setCookie( '_uv', uvUniq );
	
	return true;
	}
	
function uvAttachLinks( ) {
	eraseCookie( '_uv' );
	var linkArr = document.getElementsByTagName( 'a' );
	if( linkArr ) {
		for( var ii = 0; ii < linkArr.length; ii++ ) {
			if( linkArr[ii].href && !linkArr[ii].onclick ) {
				var _t = linkArr[ii];
				_t.uvlog = uvlog;
				_t.onclick = bind(
					 function( _t ) {
					 	_t.uvlog( _t.href, 'click' );
					 	}
					 ,_t
					 );
				}
			}
		}
	}

function uvAttachReports( ) {
	var linkArr = document.getElementsByTagName( 'a' );
	if( linkArr ) {
		for( var ii = 0; ii < linkArr.length; ii++ ) {
			var div = document.createElement( 'div' );
			div.className = 'uvLinkReport';
			div.style.left = (getObjWidth( linkArr[ ii ] ) + 5) + 'px';
			
			var key = 'h_' + hex_md5( linkArr[ii].href );
			var N = 0;
			var P = 0;
			
			if( uvExit
			&&	uvExit[ key ] ) {
				var N = uvExit[ key ][ 0 ];
				var P = parseInt((parseFloat( uvExit[ key ][ 1 ] ) * 100));
				}
			
			setHTML( div, '&laquo; (' + N + '; ' + P + '%)' );
			linkArr[ii].insertBefore( div, linkArr[ii].firstChild );
			linkArr[ii].style.position = 'relative';
			}
		}
	}
*/
//document.onload = chainHandlers( document.onload, uvAttachLinks );
/*(document.onload = chainHandlers( document.onload, uvAttachReports );
*/

