//
// addEvent. removeEvent code courtesy of John Resig: 
// http://ejohn.org/projects/flexible-javascript-events/

function crtkraddEvent( obj, type, fn ) {
  if ( obj.attachEvent ) {
    obj['e'+type+fn] = fn;
    obj[type+fn] = function(){obj['e'+type+fn]( window.event );}
    obj.attachEvent( 'on'+type, obj[type+fn] );
  } else
    obj.addEventListener( type, fn, false );
}
function crtkrremoveEvent( obj, type, fn ) {
  if ( obj.detachEvent ) {
    obj.detachEvent( 'on'+type, obj[type+fn] );
    obj[type+fn] = null;
  } else
    obj.removeEventListener( type, fn, false );
}

function crtkrconfirm(e)
{
	var test= confirm("The website you are now entering is not maintained or funded by the Government of Western Australia.\nDo you wish to continue?");
	if (!test){
		if (e.preventDefault) {
			e.preventDefault(); // The W3C DOM way
		} else {
			e.returnValue = false; // The IE way
		}
	}
}

function crtkrprocessLinks()
{
	var count=0;
	var links = document.links;
	var externalLink = false;

	//var re= new RegExp('^[^(http)]');
	var re= new RegExp('javascript|wa\.gov\.au', 'i');
	for (var i = 0; i < links.length; i++) {
		if (document.links[i].getAttribute('onclick'))
		{
			if ( !re.test( document.links[i].getAttribute('onclick') ) )
			{
				count++;
				externalLink = true;

			}
		}
		
		if ( !re.test(document.links[i].href ))
		{
			count++;
			externalLink = true;
		}
		if ( externalLink ){
			count++;
			crtkraddEvent(document.links[i], 'click', crtkrconfirm);
			
		}
		externalLink = false;
	}
	//test: report number of changed links.
	//alert('External Links: ' + count);
	//window.status = 'External Links: ' + count;
}
function crtkrcleanupLinks()
{
	var count=0;
	var links = document.links;
	var externalLink = false;
	//var re= new RegExp('^[^(http)]');
	var re= new RegExp('wa\.gov\.au', 'i');
	for (var i = 0; i < links.length; i++) {
		if (document.links[i].getAttribute('onclick'))
		{
			if ( !re.test( document.links[i].getAttribute('onclick') ) )
			{
				count++;
				externalLink = true;

			}
		}
		
		if ( !re.test(document.links[i].href ))
		{
			count++;
			externalLink = true;
		}
			
		if ( externalLink ){
			crtkrremoveEvent(document.links[i], 'click', crtkrconfirm);
		}
		externalLink = false;
	}
	
}

crtkraddEvent( window, 'load', crtkrprocessLinks);
crtkraddEvent( window, 'unload', crtkrcleanupLinks);
