﻿if(!Array.indexOf)
{
  Array.prototype.indexOf = function(obj)
  {
	  for(var i=0; i<this.length; i++)
	  {
	    if(this[i]==obj)
	    {
	      return i;
	    }
	  }
	  return -1;
	}
}
function gfGetElement(clientid)
{
    return ASPxClientControl.GetControlCollection().Get(clientid);
}
function gfShowPopup(clientid,headertext)
{
    var popup=gfGetElement(clientid);
    if(popup)
    {
        if (headertext!='' && headertext!=' ' )
            popup.SetHeaderText(headertext);
        popup.Show();
    }
}
function gfClosePopup(clientid)
{
    var popup=gfGetElement(clientid);
    if(popup)
    {
        popup.Hide();   
    }
}
function gfGetStrFromArray(arr)
{
    /*var result='';
    for(var i=0; i<arr.length;i++)
    {
        result+=arr[i]+'#$|';
    }
    return result;*/
    return arr.join('#$|');
}
function gfGetArrayFromStr(str)
{
    return str.split("#$|");
}
function gfDoCallback(clientid,paramarr)
{
    var elm=gfGetElement(clientid);
    if(elm)
    {
        if(paramarr)
        {
            elm.PerformCallback(gfGetStrFromArray(paramarr));
        }
        else
        {
            elm.PerformCallback();
        }
    }
}
function gfClearHidden(clienid)
{
    hf=document.getElementById(clienid);
    if(hf)
    {
        hf.value='';
    }
}

function gfAddEvent(el, evname, func) {
    if (el.attachEvent) { // IE
        el.attachEvent("on" + evname, func);
    } else if (el.addEventListener) { // Gecko / W3C
        el.addEventListener(evname, func, true);
    } else {
        el["on" + evname] = func;
    }
}

 function gfRemoveEvent(el, evname, func)
{
    if (el.detachEvent) { // IE
            el.detachEvent("on" + evname, func);
    } else if (el.removeEventListener) { // Gecko / W3C
            el.removeEventListener(evname, func, true);
    } else {
            el["on" + evname] = null;
    }
}
function _getKeyCode(evt) {
        return (typeof(evt.keyCode) != "undefined" && evt.keyCode != 0) ?
            evt.keyCode : evt.charCode;
    }
function checkIsNumber(e){
    var code = _getKeyCode(e.htmlEvent); 
    if( (code == 8 || code == 46 
		    || code == 37 || code == 39) 
	    ||
	    (code >= 48 && code <= 57)
      ) 
    {
	    return true; 
    }
    return _aspxPreventEvent(e.htmlEvent);
};
function OnPressOk(event, clientid)
{
    if (event.keyCode==13)
    {
        var btn=gfGetElement(clientid);
        btn.DoClick();
        if (navigator.appVersion.indexOf("MSIE") != -1)
        event.cancelBubble=true;
        else
        event.stopPropagation();
        return false;
    }
}
function WebForm_DoCallback2(eventTarget, eventArgument, eventCallback, context, errorCallback, useAsync) 
    {
        var postData = __theFormPostData +
            "__CALLBACKID=" + WebForm_EncodeCallback(eventTarget) +
            "&__CALLBACKPARAM=" + WebForm_EncodeCallback(eventArgument);
        if (theForm["__EVENTVALIDATION"]) {
            postData += "&__EVENTVALIDATION=" + WebForm_EncodeCallback(theForm["__EVENTVALIDATION"].value);
        }
        var xmlRequest,e;
        try {
            xmlRequest = new XMLHttpRequest();
        }
        catch(e) 
        {
            try {
              xmlRequest = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch(e) {}
        }
        var setRequestHeaderMethodExists = true;
        try {
            setRequestHeaderMethodExists = (xmlRequest && xmlRequest.setRequestHeader);
        }
        catch(e) {}
        var callback = new Object();
        callback.eventCallback = eventCallback;
        callback.context = context;
        callback.errorCallback = errorCallback;
        callback.async = useAsync;
        var callbackIndex = WebForm_FillFirstAvailableSlot(__pendingCallbacks, callback);
        if (!useAsync) {
            if (__synchronousCallBackIndex != -1) {
                __pendingCallbacks[__synchronousCallBackIndex] = null;
            }
            __synchronousCallBackIndex = callbackIndex;
        }
        if (setRequestHeaderMethodExists) {
            if (useAsync) {
                xmlRequest.onreadystatechange = WebForm_CallbackComplete;
            }
            callback.xmlRequest = xmlRequest;
            xmlRequest.open("POST", theForm.action, useAsync);
            xmlRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
            xmlRequest.send(postData);
            if (!useAsync) {
                WebForm_CallbackComplete();
            }
            return;
        }
        callback.xmlRequest = new Object();
        var callbackFrameID = "__CALLBACKFRAME" + callbackIndex;
        var xmlRequestFrame = document.frames[callbackFrameID];
        if (!xmlRequestFrame) {
            xmlRequestFrame = document.createElement("IFRAME");
            xmlRequestFrame.width = "1";
            xmlRequestFrame.height = "1";
            xmlRequestFrame.frameBorder = "0";
            xmlRequestFrame.id = callbackFrameID;
            xmlRequestFrame.name = callbackFrameID;
            xmlRequestFrame.style.position = "absolute";
            xmlRequestFrame.style.top = "-100px"
            xmlRequestFrame.style.left = "-100px";
            try {
                if (callBackFrameUrl) {
                    xmlRequestFrame.src = callBackFrameUrl;
                }
            }
            catch(e) {}
            document.body.appendChild(xmlRequestFrame);
        }
        var interval = window.setInterval(function() {
            xmlRequestFrame = document.frames[callbackFrameID];
            if (xmlRequestFrame && xmlRequestFrame.document) {
                window.clearInterval(interval);
                xmlRequestFrame.document.write("");
                xmlRequestFrame.document.close();
                xmlRequestFrame.document.write('<html><body><form method="post"><input type="hidden" name="__CALLBACKLOADSCRIPT" value="t"></form></body></html>');
                xmlRequestFrame.document.close();
                xmlRequestFrame.document.forms[0].action = theForm.action;
                var count = __theFormPostCollection.length;
                var element;
                for (var i = 0; i < count; i++) {
                    element = __theFormPostCollectionIdea;
                    if (element) {
                        var fieldElement = xmlRequestFrame.document.createElement("INPUT");
                        fieldElement.type = "hidden";
                        fieldElement.name = element.name;
                        fieldElement.value = element.value;
                        xmlRequestFrame.document.forms[0].appendChild(fieldElement);
                    }
                }
                var callbackIdFieldElement = xmlRequestFrame.document.createElement("INPUT");
                callbackIdFieldElement.type = "hidden";
                callbackIdFieldElement.name = "__CALLBACKID";
                callbackIdFieldElement.value = eventTarget;
                xmlRequestFrame.document.forms[0].appendChild(callbackIdFieldElement);
                var callbackParamFieldElement = xmlRequestFrame.document.createElement("INPUT");
                callbackParamFieldElement.type = "hidden";
                callbackParamFieldElement.name = "__CALLBACKPARAM";
                callbackParamFieldElement.value = eventArgument;
                xmlRequestFrame.document.forms[0].appendChild(callbackParamFieldElement);
                if (theForm["__EVENTVALIDATION"]) {
                    var callbackValidationFieldElement = xmlRequestFrame.document.createElement("INPUT");
                    callbackValidationFieldElement.type = "hidden";
                    callbackValidationFieldElement.name = "__EVENTVALIDATION";
                    callbackValidationFieldElement.value = theForm["__EVENTVALIDATION"].value;
                    xmlRequestFrame.document.forms[0].appendChild(callbackValidationFieldElement);
                }
                var callbackIndexFieldElement = xmlRequestFrame.document.createElement("INPUT");
                callbackIndexFieldElement.type = "hidden";
                callbackIndexFieldElement.name = "__CALLBACKINDEX";
                callbackIndexFieldElement.value = callbackIndex;
                xmlRequestFrame.document.forms[0].appendChild(callbackIndexFieldElement);
                xmlRequestFrame.document.forms[0].submit();
            }
        }, 10);
    }
    
    function openInNewWindow(link) {
        var newWindow = window.open(link, '_blank');
        newWindow.focus();
        return false;
    }
    
    var extensionRegExp = /.+\.([^.]+)$/;
    function isAllowUpload(uploadControl) {
        var result = true;
        for (var i = 0; i < uploadControl.GetFileInputCount(); i++) {
            var ext = getFileExtension(uploadControl.GetText(i)).toUpperCase();
            if (ext == "JPG"
                || ext == "GIF"
                || ext == "PNG")
                result = false;
        }
        return result;
    }
    function getFileExtension(fileName) {
        var matches = extensionRegExp.exec(fileName);
        if (matches.length == 2)
            return matches[1];
        else
            return "";
    }    