


String.prototype.isArgument=function()
{
	return /^([a-zA-Z]){1,}=([0-9]){1,}$/.test(this);
}


/*
call this function just work like window.open(url,name,feature);
however, for IE5.0+, it will open a showModelessDialog window;
and For Gecko(Mozilla or Netscape), the child window will stay on top focus untill user close it.
programmed by hedger
hedger@yahoo-inc.com
*/


function dialog(url,name,refreshButtonID,feature,isModal)
{
    if(url==null){return false;}

    url = url
    if(name==null){name=""}
    if(feature==null){feature=""};
    if(window.showModelessDialog)
    {
        var WindowFeature = new Object();
        WindowFeature["width"] = 400;
        WindowFeature["height"]  =400;
        WindowFeature["left"]  = "";
        WindowFeature["top"]  =  "";
        WindowFeature["resizable"]  = "";

	    if(feature !=null && feature!="")
	    {
              feature = ( feature.toLowerCase()).split(",");
        	
              for(var i=0;i< feature.length;i++)
		        {
                  if( feature[i].isArgument())
			        {
                       var featureName = feature[i].split("=")[0];
			           var featureValue = feature[i].split("=")[1];
        			  
			           if(WindowFeature[featureName]!=null){WindowFeature[featureName] = featureValue; }
			        }
		        }
        }
 
        if(WindowFeature["resizable"]==1 || WindowFeature["resizable"]=="1" || WindowFeature["resizable"].toString().toLowerCase()=="yes"){WindowFeature["resizable"] = "resizable:1;minimize:1;maximize:1;"}
        if(WindowFeature["left"]!=""){WindowFeature["left"] ="dialogLeft:" +  WindowFeature["left"] +"px;";}
        if(WindowFeature["top"]!=""){WindowFeature["top"] ="dialogTop:" +  WindowFeature["Top"] +"px;"; }
        if(window.ModelessDialog ==null){window.ModelessDialog = new Object() ; };
        if(name!="")
        {
            if(window.ModelessDialog[name]!=null && !window.ModelessDialog[name].closed )
            {
                window.ModelessDialog[name].focus();
                return window.ModelessDialog[name];
            }
        }
        
	    var F = WindowFeature["left"] +WindowFeature["top"] +  "titlebar:no;scroll:no;dialogWidth:"+WindowFeature["width"] +" px;dialogHeight:"+WindowFeature["height"]+"px;center:1;help:0;" + WindowFeature["resizable"] +"status:0;unadorned:0;edge: raised; ;border:thick;"
	    
	    if(isModal)
	    {
	        grayOut(true);
		    window.showModalDialog(url,self,F);
		    grayOut(false);
		     __doPostBack(refreshButtonID,'');
		    return false;
	    }
	    else
	    {
		    window.ModelessDialog[name] = window.showModelessDialog(url,self,F);
		    return window.ModelessDialog[name];
	    }	
    }
    else
    {
        if(document.getBoxObjectFor)
        {
            if(isModal)
            {	
                grayOut(true);
                var Modal = window.open(url,name,"modal=1," + feature);
                 var ModalFocus = function()
                 {
	                if(Modal && !Modal.closed){Modal.focus();}
	                else
	                {	                    
	                    window.removeEventListener("focus", ModalFocus, false);
	                    grayOut(false);
 	                    __doPostBack(refreshButtonID,'');
                        
	                    Modal =null;
	                    ModalFocus = null;
	                }					
                 }
             //    EventManager.add("Modal", "unload", ModalFocus);
                window.addEventListener( "focus",ModalFocus, false ); 
                return false;
            }
            else
            {
                var ret = window.open(url,name,"modal=1," + feature);
                return ret;
            }	 
        }
        else
        { 
            return window.open(url,name,feature);
        }
    }
    return null;
}

   
function modal(url,feature, refreshButtonID)
{
	dialog(url,"",refreshButtonID,feature,true);
	return false;
}