﻿// JScript File
//overriding the defaultbutton feature for Panels
//The orginal function looks solely for the srcElement which is not recognized in firefox
//Therefore, hitting enter in a textarea will submit the form in FF but not IE.
//Original function
//function WebForm_FireDefaultButton(event, target) {
//if (event.keyCode == 13 && !(event.srcElement &&
//(event.srcElement.tagName.toLowerCase() == "textarea"))) {
//var defaultButton;
//if (__nonMSDOMBrowser) {
//defaultButton = document.getElementById(target);
//}
//else {
//defaultButton = document.all[target];
//}
//if (defaultButton && typeof(defaultButton.click) !=
//"undefined") {
//defaultButton.click();
//event.cancelBubble = true;
//if (event.stopPropagation) event.stopPropagation();
//return false;
//}
//}
//return true;
//}
//Fixed function
function WebForm_FireDefaultButton(event, target) {
    var element = event.target || event.srcElement;
    if (event.keyCode == 13 && !(element && (element.tagName.toLowerCase() == "textarea"))) {
        // hack to prevent posting back when hitting "enter" in a autocompleter
        if (element.getAttribute) {
            if (element.getAttribute('disable_default_button') != null) {
                return false;
            }
        }
        var defaultButton;
        if (__nonMSDOMBrowser) {
            defaultButton = document.getElementById(target);
        }else{
            defaultButton = document.all[target];
        }
        if (defaultButton && typeof(defaultButton.click) != "undefined") {
            defaultButton.click();
            event.cancelBubble = true;
            if (event.stopPropagation) { 
                event.stopPropagation();
            }
            return false;
        }
    }
    return true;
}


// fix chrome autopostback bug
function ValidatorHookupEvent(control, eventType, functionPrefix) {
var is_chrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1;  
    if (is_chrome) {
        var ev;
        eval("ev = control." + eventType + ";");
        if (typeof (ev) == "function") {
            ev = ev.toString();
            ev = ev.substring(ev.indexOf("{") + 1, ev.lastIndexOf("}"));
         } else {
            ev = "";
         }
         var func;
         if (navigator.appName.toLowerCase().indexOf('explorer') > -1) {
                func = new Function(functionPrefix + " " + ev);
         } else {
                  func = new Function("event", " var evt = event; " + functionPrefix + " " + ev);
         }
         eval("control." + eventType + " = func;");
        }
    }

