onerror= handle_error;

function handle_error(HL_Message, HL_URL, HL_Line)
{
HL_ErrorText="An error has been encountered... please report this.\n\n";
HL_ErrorText+="Error: " + HL_Message + "\n";
HL_ErrorText+="URL: " + HL_URL + "\n";
HL_ErrorText+="Line: " + HL_Line + "\n\n";

alert(HL_ErrorText);

return true;
}

function xml_request()
{
if(window.XMLHttpRequest)
{
XR_XMLRequest= new XMLHttpRequest();
}

else
{
try { XR_XMLRequest= new ActiveXObject("msxml2.XMLHTTP"); }
catch(e) { XR_XMLRequest= new ActiveXObject("Microsoft.XMLHTTP"); }
}

return XR_XMLRequest;
}

function ajax_encode(AE_String)
{
AE_String= escape(encodeURI(AE_String));

return AE_String;
}

function accent_e(AE_String)
{
AE_String= AE_String.replace(/accent_e/g, "é");

return AE_String;
}

function in_array(IS_Needle, IS_Haystack)
{
for(IS_CurrentElement in IS_Haystack)
{
if(IS_Haystack[IS_CurrentElement]== IS_Needle) { return true; }
}

return false;
}

function disable_arrow_keys()
{
DAK_Holder= document.createElement("P");

DAK_Holder.appendChild(document.createTextNode(""));

for(DAK_Increment1= 0; DAK_Increment1 < 100; DAK_Increment1++)
{
document.body.appendChild(DAK_Holder.cloneNode(true));
}

add_event(document.body, "keydown", key_down);
add_event(window, "keydown", key_down);
}

function add_event(AE_Object, AE_EventType, AE_Function)
{
if(AE_Object.addEventListener) { AE_Object.addEventListener(AE_EventType, AE_Function, false); return true; }
else if(AE_Object.attachEvent) { AE_EventParameter="on" + AE_EventType; AE_Result= AE_Object.attachEvent(AE_EventParameter, AE_Function); return AE_Result; }
}

function key_down(e)
{
AE_Event= (window.event) ? event : e;

AE_KeyCode= (window.event) ? event.keyCode : e.keyCode;

AE_Escape1= 0;
AE_Escape2= true;

if(AE_KeyCode== 37 || AE_KeyCode== 38 || AE_KeyCode== 39 || AE_KeyCode== 40) { AE_Escape1= 1; AE_Escape2= false; }

if(navigator.appName=="Microsoft Internet Explorer") { AE_Escape= AE_Escape2; }
else { AE_Escape= AE_Escape1; }

if(AE_Escape && AE_Event.preventDefault) { AE_Event.preventDefault(); }

return AE_Escape;
}
