
//----- AddEventCode

// written by Dean Edwards, 2005
// http://dean.edwards.name/

function addEvent2(element, type, handler) {
    // assign each event handler a unique ID
    if (!handler.$$guid) handler.$$guid = addEvent2.guid++;
    // create a hash table of event types for the element
    if (!element.events) element.events = {};
    // create a hash table of event handlers for each element/event pair
    var handlers = element.events[type];
    if (!handlers) {
        handlers = element.events[type] = {};
        // store the existing event handler (if there is one)
        if (element["on" + type]) {
            handlers[0] = element["on" + type];
        }
    }
    // store the event handler in the hash table
    handlers[handler.$$guid] = handler;
    // assign a global event handler to do all the work
    element["on" + type] = handleEvent2;
};
// a counter used to create unique IDs
addEvent2.guid = 1;

function removeEvent2(element, type, handler) {
    // delete the event handler from the hash table
    if (element.events && element.events[type]) {
        delete element.events[type][handler.$$guid];
    }
};

function handleEvent2(event) {
    var returnValue = true;
    // grab the event object (IE uses a global event object)
    event = event || fixEvent2(window.event);
    // get a reference to the hash table of event handlers
    var handlers = this.events[event.type];
    // execute each event handler
    for (var i in handlers) {
        this.$$handleEvent2 = handlers[i];
        if (this.$$handleEvent2(event) === false) {
            returnValue = false;
        }
    }
    return returnValue;
};

function fixEvent2(event) {
    // add W3C standard event methods
    event.preventDefault = fixEvent2.preventDefault;
    event.stopPropagation = fixEvent2.stopPropagation;
    return event;
};
fixEvent2.preventDefault = function() {
    this.returnValue = false;
};
fixEvent2.stopPropagation = function() {
    this.cancelBubble = true;
};

//----- End AddEventCode


////////////////////////////////
// Pleas leave this notice.
// Browser Detection version 1.2
// By Essam Gamal .. Migoicons as a web user name
// Website: http://migoicons.tripod.com
// Email: migoicons@hotmail.com
// Tuesday, July 29, 2003
/////////////////////////////
//var msg="You are using" // Change this notifying message to suit you need.
function DisplayBrowserInfo(){
var mig_agt=navigator.userAgent.toLowerCase() 
var mig_os,mig_bn,mig_bv
var mig_opr=mig_agt.indexOf("opera")>-1
var mig_ie=mig_agt.indexOf("msie")>-1&&!mig_opr
var mig_ns4=navigator.appName.toLowerCase()=="netscape"&&!document.getElementById
var mig_nn6=mig_agt.indexOf("netscape")>-1
var mig_pho=mig_agt.indexOf("phoenix")>-1 
var mig_moz=mig_agt.indexOf("gecko")>-1&&!(mig_nn6||mig_pho) 
if(mig_agt.indexOf("win")>-1||mig_agt.indexOf("16bit")>-1){mig_os="Windows" 
if(mig_agt.indexOf("windows 95")>-1||mig_agt.indexOf("win95")>-1) mig_os="Windows 95"
if(mig_agt.indexOf("windows 98")>-1||mig_agt.indexOf("win98")>-1) mig_os="Windows 98"
if(mig_agt.indexOf("win 9x 4.90")>-1||mig_agt.indexOf("windows me")>-1) mig_os="Windows Me"
if(mig_agt.indexOf("windows nt")>-1||mig_agt.indexOf("winnt")>-1) mig_os="Windows NT"
if(mig_agt.indexOf("windows nt 5.0")>-1||mig_agt.indexOf("windows 2000")>-1) mig_os="Windows 2000"
if(mig_agt.indexOf("windows nt 5.1")>-1||mig_agt.indexOf("windows xp")>-1) mig_os="Windows Xp"}
else if(mig_agt.indexOf("mac")>-1) mig_os="Macintosh"
else mig_os="N/A"
mig_bn=mig_ie||mig_ns4||mig_nn6?navigator.appName:mig_opr?"Opera":mig_pho?"Phoenix":mig_moz?"Mozilla":"N/A"
if(mig_ie) mig_bv=parseFloat(mig_agt.substring(mig_agt.indexOf("msie")+5,mig_agt.length)) 
else if(mig_opr)mig_bv=parseFloat(mig_agt.substring(mig_agt.indexOf("opera")+6,mig_agt.length)) 
else if(mig_ns4)mig_bv=parseFloat(navigator.appVersion) 
else if(mig_agt.indexOf("netscape6")>-1)mig_bv=parseFloat(mig_agt.substring(mig_agt.indexOf("netscape")+10,mig_agt.length))
else if(mig_nn6)mig_bv=parseFloat(mig_agt.substring(mig_agt.indexOf("netscape")+9,mig_agt.length))   
else if(mig_moz)mig_bv=parseFloat(mig_agt.substring(mig_agt.indexOf("rv:")+3,mig_agt.length)) 
else if(mig_pho)mig_bv=parseFloat(mig_agt.substring(mig_agt.indexOf("phoenix")+8,mig_agt.length)) 
else mig_bv="N/A" 
return "BrowserInfo:"+mig_bn +" "+ mig_bv +"  "+mig_os+" [Java Enabled: "+navigator.javaEnabled()+"]";
}


//----- Error handler functions
function sendErrorReport(errorStr)
{
	/* Diable for now
	var oFrame = document.getElementById("errorReporter");
	if (oFrame)
	{
		var d = new Date();
		
		var clientData = "";
		
		if( typeof(buildItUserData) != 'undefined' )
		{
			clientData = AjaxPro.toJSON(buildItUserData);
		}
		
		errorStr = errorStr.replace('<','-');
		errorStr = errorStr.replace('>','-');
		oFrame.src = "ErrorLogger.aspx?error=" + escape(errorStr) + "&time=" + d.getTime().toString() + "&clientdata=" + escape(clientData);
	}
	*/
}

function ajaxTimeout()
{
	alert('The request has timed out. Please try again, if you continue to receive this error, please notify us at info@refacedepot.com');
}

function ajaxError(error)
{
	var errorMsg = 'An Error Has Occured! \n\nPlease try again, if you continue to receive this error, please notify us at info@refacedepot.com';
	var sendReport = true;
	
	if (error.Status == '12029' || error.Status == '12031')
	{
		errorMsg = 'There was an error connecting to the server. \n\nPlease try again, if you continue to receive this error, please check your network connection or personal firewall.';
		sendReport = false;
	}
	
	alert(errorMsg);
	if (sendReport)
	{
		sendErrorReport(AjaxPro.toJSON(error));
	}
}

function allErrors(desc,page,line,chr)
{
	alert('An Error Has Occured! \n\nPlease try again, if you continue to receive this error, please notify us at info@refacedepot.com');
	var msg =
		'JavaScript error occurred! \n'
		+'The error was handled by '
		+'a customized error handler.\n'
		+'\nError description: \t'+desc
		+'\nPage address:      \t'+page
		+'\nLine number:       \t'+line
		;
	
		
	msg = msg + "\n" + DisplayBrowserInfo();
	
	sendErrorReport(msg);
	return true
}

