#target photoshop;
app.bringToFront();
if(documents.length){
var w = new Window("dialog","Usermask");
w.bu1 = w.add("button",undefined,"Toggle usermask");
w.bu2 = w.add("button",undefined,"Close");
w.bu1.onClick=function(){
if(!userMask()){
alert("This layer does not have an usermask!");
w.close(0);
}
if(userMask())disEnableMask(userMaskEnabled());
app.refresh();
}
w.bu2.onClick=function(){
w.close(0);
}
w.show();
}
function userMask(){
var ref = new ActionReference();
ref.putProperty(charIDToTypeID('Prpr'),stringIDToTypeID("hasUserMask"));
ref.putEnumerated( charIDToTypeID("Lyr "), charIDToTypeID("Ordn"), charIDToTypeID("Trgt") );
return executeActionGet(ref).getBoolean (stringIDToTypeID("hasUserMask"));
};
function userMaskEnabled(){
var ref = new ActionReference();
ref.putProperty(charIDToTypeID('Prpr'),stringIDToTypeID("userMaskEnabled"));
ref.putEnumerated( charIDToTypeID("Lyr "), charIDToTypeID("Ordn"), charIDToTypeID("Trgt") );
return executeActionGet(ref).getBoolean (stringIDToTypeID("userMaskEnabled"));
};
function disEnableMask(Bool) {
var desc3 = new ActionDescriptor();
var ref2 = new ActionReference();
ref2.putEnumerated( charIDToTypeID('Lyr '), charIDToTypeID('Ordn'), charIDToTypeID('Trgt') );
desc3.putReference( charIDToTypeID('null'), ref2 );
var desc4 = new ActionDescriptor();
desc4.putBoolean( charIDToTypeID('UsrM'), !Bool );
desc3.putObject( charIDToTypeID('T '), charIDToTypeID('Lyr '), desc4 );
executeAction( charIDToTypeID('setd'), desc3, DialogModes.NO );
};