// ********************************************************************************************* //
// ** Holds all configuration information and hardcoded values, plus some browser information ** //
// ********************************************************************************************* //

var data = {
	viewport: {},
	album: {},
	opening: {},
	renderer: {},
	areas: {},
	mats: {},
	pics: {},
	toolAndMats: {},
	storyboard: {},
	commands: {},
	matThumbs: {},
	picThumbs: {},
	openingThumbs: {},
	guiIds: {},
	availabilities: {},
	pageOperationErrors: {},
	albumInfo: {},
	pageRendererControls: {},
	notificationArea: {},
	notificationAreaPagesExceeded: {},
	openingTool: {},
	safetyMargin: {},
	croppingTool: {}
};

// This needs to be called *after* the page is fully loaded for some of the values to be correct on all browsers
function initData() {
//	data.PIS = "http://gw1.pictage.com.ar:8000/servlet/PIS";
	data.useAnnotateExtendedForPIS = true;

	data.autoSaveInterval = 300000; //10000 //
	data.slideshowDelay = 7;

	data.viewport.minWidth = 950;
	data.viewport.minHeight = 550;

	data.croppingTool.maxWidth = 400;
	data.croppingTool.maxHeight = 400;

	data.reloadSize();

	data.album.maxPixelSize = 250;
	data.album.maxPixelSizeLarge = 390;		// Default value. Can be changed inside the application
	data.album.maxMaxPixelSizeLarge = 600;
	data.album.minMaxPixelSizeLarge = 390;	// The left side panels need 417 pixels, so 387 is the minimum that makes sense (smaller than that will not move the tools and pics further up)
	data.album.workingPixelSize = 480;
	data.album.storyBoardPixelScaleFactor = 0.5;
	data.album.slideshowPixelScaleFactor = 1.6;
	data.album.matViewPixelScaleFactor = 1.3;
	data.album.pageZoomPixelScaleFactor = 1.92;
	data.album.numPagesTreshold = 5;

	data.opening.defaultW = 4;
	data.opening.defaultH = 4;
	data.opening.defaultFontFace = 'Bodoni-MT-Regular';
	data.opening.defaultFontSize = 36;
	data.opening.defaultFontColor = 'FF.FF.FF.00';
	data.opening.defaultFontUnderline = 0;
	data.opening.defaultFontAlign = 'left';
	data.opening.defaultFontTransparency = 0;
	data.opening.defaultFontEffectType = null;
	data.opening.defaultFontEffectColor = "00.00.00.00";
	data.opening.defaultFontEffectStrokeWeight = 0;
	data.opening.defaultBorder = 'Bleed';	//** PATCH! this should be assigned in a setter, and be put in a gui object with gui defaults
	data.opening.defaultShape = 'rect'; //** PATCH! this should be assigned in a setter, and be put in a gui object with gui defaults
	data.opening.minFontSize = 10;
	data.opening.maxFontSize = 1296;
	data.opening.maxCaptionLength = 1000;
	data.opening.maxOpeningsInMatSingle = 14;
	data.opening.maxOpeningsInMatPano = 24;

	data.renderer.topMargin = 10;
	data.renderer.highlightThickness = 4;
	data.renderer.selectedThickness = 4;
	data.renderer.highlightColor = 'yellow';
	data.renderer.selectedColor = '#FD720B';	//'#00ff66';
	data.renderer.pairsX = 0;
	data.renderer.pairsY = 20;
	data.renderer.imageBorderThickness = 1;
	data.renderer.imageBorderColor = 'white';
	data.renderer.imageBorderColorSlideshow = 'gray';
	data.renderer.albumPagesInfoHeight = 30;

	data.albumInfo.width = 180;
	data.albumInfo.margin = 15;

	data.pageRendererControls.width = 180;
	data.pageRendererControls.largeViewToggleButton = true;		// True: use toggle button. False: use "large view" tab
	
	data.notificationArea.width = 200;
	data.notificationArea.height = 150;
	data.notificationArea.largeView = new Object();
	data.notificationArea.largeView.width = 180;
	data.notificationArea.largeView.height = 175;
	data.notificationArea.borderThickness = 1;
	data.notificationArea.border = data.notificationArea.borderThickness + 'px solid #666666';
	data.notificationArea.padding = 10;
	data.notificationArea.textPadding = 5;

	data.notificationAreaPagesExceeded.width = 180;
	data.notificationAreaPagesExceeded.height = 50;
	data.notificationAreaPagesExceeded.largeView = new Object();
	data.notificationAreaPagesExceeded.largeView.width = 290;
	data.notificationAreaPagesExceeded.largeView.height = 40;

	data.areas.zIndex = 300;
	data.areas.offsetX = data.renderer.imageBorderThickness;	// Compensate for the renderer image borders
	data.areas.offsetY = data.renderer.imageBorderThickness;	// Compensate for the renderer image borders

	data.mats.separation = 14;
	data.mats.borderThickness = 1;	//** remove
	data.mats.marginTop = 8;
	data.mats.scrollbarHeight = 36;
	data.mats.toolbarHeight = 20;
	data.mats.toolbarBgColor = '#e9ebf3';
	data.mats.padding = 2;	//** remove
	data.mats.width = 50;
	data.mats.height = 50
	data.mats.highlightThickness = 5;
	data.mats.highlightColor = '#FD720B';	//'#00ff66';
	data.mats.font= '10px arial,geneva,helvetica';	//** remove
	this.data.mats.batchCreationSize = 10;

	data.matThumbs.textAlign = 'center';
	data.matThumbs.borderThickness = 1;
	data.matThumbs.border = 'solid ' + data.matThumbs.borderThickness + 'px #9e9e9e';
	data.matThumbs.fontHeight = 10;
	data.matThumbs.font = data.matThumbs.fontHeight + 'px arial,geneva,helvetica';
	data.matThumbs.padding = 6;
	data.matThumbs.bgColor = '#e0e0e0';
	data.matThumbs.taggedBgColor = '#cdd8f3';
	data.matThumbs.highlightedBgColor = '#F8F8F8';
	data.matThumbs.highlightedTaggedBgColor = '#edf8ff';
	data.matThumbs.highlightedBorder = 'solid ' + data.matThumbs.borderThickness + 'px #bebebe';
	data.matThumbs.width = data.mats.width + 20;
	data.matThumbs.height = data.mats.height;

	data.openingThumbs.textAlign = 'center';
	data.openingThumbs.borderThickness = 1;
	data.openingThumbs.border = 'solid ' + data.matThumbs.borderThickness + 'px #9e9e9e';
	data.openingThumbs.fontHeight = '5px';
	data.openingThumbs.font = data.matThumbs.fontHeight + 'px arial,geneva,helvetica';
	data.openingThumbs.padding = 0;
	data.openingThumbs.bgColor = '#bed3e6';
	data.openingThumbs.taggedBgColor = '#cdd8f3';
	data.openingThumbs.highlightedBgColor = '#cfe4f7';
	data.openingThumbs.highlightedTaggedBgColor = '#edf8ff';
	data.openingThumbs.highlightedBorder = 'solid ' + data.matThumbs.borderThickness + 'px #bebebe';
	data.openingThumbs.width = 0;
	data.openingThumbs.height = 0;

	data.pics.separation = 7;
//	data.pics.border = 1;	//** remove
	data.pics.marginTop = 10;
//	data.pics.borderThickness = 1;	//** remove
//	data.pics.padding = 3;	//** remove
	data.pics.width = 140;
	data.pics.height = 140;
	data.pics.filtersHeight = 20;
	data.pics.paginationHeight = 30;
	data.pics.toolbarHeight = 20;
	data.pics.highlightThickness = 5;
	data.pics.highlightColor = '#FD720B';	//'#00ff66';
	data.pics.font= '10px arial,geneva,helvetica';	//** remove

	data.picThumbs.textAlign = 'center';
	data.picThumbs.borderThickness = 1;
	data.picThumbs.border = 'solid ' + data.picThumbs.borderThickness + 'px #aaaaaa';
	data.picThumbs.fontHeight = 10;
	data.picThumbs.font = data.picThumbs.fontHeight + 'px arial,geneva,helvetica';
	data.picThumbs.padding = 7;
	data.picThumbs.bgColor = '#e3e3e3';
	data.picThumbs.taggedBgColor = '#acb5cc';//'#cdd8f3';
	data.picThumbs.highlightedBgColor = '#F8F8F8';
	data.picThumbs.highlightedTaggedBgColor = '#ccd5ec';
	data.picThumbs.highlightedBorder = 'solid ' + data.matThumbs.borderThickness + 'px #cacaca';
	data.picThumbs.width = data.pics.width;	// Must be taken from pics properties

	data.toolAndMats.marginTop = 10;
	data.toolAndMats.tabHeight = 20;

	data.availabilities.PUBLIC = 1;
	data.availabilities.PRIVATE = 2;
	data.availabilities.DELETED = 4;

	data.pageOperationErrors.OUT_OF_BOUNDARIES = 1;
	data.pageOperationErrors.REPLACING_IC = 2;
	data.pageOperationErrors.JUST_PANOS = 3;
	data.pageOperationErrors.PAGE_CANT_BE_MOVED = 4

	data.openingTool.handleSize = 10;
	data.openingTool.handleColor = '#FD720B';	//'#00ff66';
	data.openingTool.borderThickness = 4;

	data.guiIds = { headerControls: {}, browser: {}, editPage: {}, tabs: {}, pictures: {}, mats: {}, areas: {}, toolsPicture: {}, toolsMat: {}, toolsOpening: {} };
	data.guiIds.headerControls.del = { click: 'deleteAlbum', id: 'gui_deleteAlbum'};
	data.guiIds.browser.pageNumber = { change: 'gui_goAlbumPageNumber', page: 'fromTextbox', id: 'gui_goAlbumPageNumber' };
	data.guiIds.editPage.remove = { click: 'edit_removePage', id: 'edit_removePage' };
	data.guiIds.editPage.removeImage = { click: 'edit_removeImage', id: 'edit_removeImage' };
	data.guiIds.pictures.categories = { change: 'setPicturesList', type: 'categories', id: 'picturesCategories' };
	data.guiIds.pictures.folders = { change: 'setPicturesList', type: 'folders', id: 'picturesFolders' };
	data.guiIds.pictures.used = { change: 'setPicturesList', type: 'used', id: 'picturesUsed' };
	data.guiIds.pictures.userScanList = { change: 'setPicturesList', type: 'userList', id: 'userScanList' };
	data.guiIds.pictures.availabilityPublic = { click: 'setAvailability', type: data.availabilities.PUBLIC, id: 'availabilityPublic' };
	data.guiIds.pictures.availabilityPrivate = { click: 'setAvailability', type: data.availabilities.PRIVATE, id: 'availabilityPrivate' };
	data.guiIds.pictures.availabilityDeleted = { click: 'setAvailability', type: data.availabilities.DELETED, id: 'availabilityDeleted' };
	data.guiIds.pictures.picsPerPage = { change: 'setPictureRowsPerPage', id: 'picturesPerPage' };
	data.guiIds.pictures.paginationButton = { click: 'goPicturesPage', id: 'goPicturesPage'};
	data.guiIds.pictures.pageNumber = { change: 'goPicturesPage', pageNumber: 'fromTextbox', id: 'goPicsPageNumber'};
	data.guiIds.pictures.thumbs = '';
	data.guiIds.mats.single = { click: 'updateMatsFilter', id: 'mat_filter_' };
	data.guiIds.mats.singleAll = { click: 'updateMatsFilter', id: 'mat_filter_' };
	data.guiIds.mats.pano = { click: 'updateMatsFilter', id: 'mat_filter_' };
	data.guiIds.mats.panoAll = { click: 'updateMatsFilter', id: 'mat_filter_' };
	data.guiIds.mats.thumbs = '';
	data.guiIds.areas = { click: 'setSelectedAlbumItem', mouseover: 'setHighlightArea', mouseout: 'unsetHighlightArea', mousemove: 'showToolTipOpening', id: 'opening_area_' };
	data.guiIds.toolsPicture.border = { change: 'setBorderTool', id: 'toolBorder' };
	data.guiIds.toolsPicture.shape = { change: 'changeShapeOpening', id: 'toolShape' };

	data.safetyMargin.width = 0.25; // Inches

	data.font = new Object();
	data.font.fontStyles = new Object();
	data.font.fontStyles['Adine-Kinsberg'] =        { label: 'Adine Kinsberg',      regular: 'AdineKirnberg-Script-Regular',        bold: null,                         italic: null,                                 boldItalic: null };
	data.font.fontStyles['Bodoni'] =                { label: 'Bodoni',              regular: 'Bodoni-MT-Regular',                   bold: 'Bodoni-MT-Bold',             italic: 'Bodoni-MT-Italic',                   boldItalic: 'Bodoni-MT-Bold-Italic' };
	data.font.fontStyles['Bradley-Hand-itc'] =      { label: 'Bradley Hand itc',    regular: 'Bradley-Hand-ITC-Medium',             bold: null,                         italic: null,                                 boldItalic: null };
	//data.font.fontStyles['Carpenter'] =           { label: 'Carpenter',           regular: null,                                  bold: null,                         italic: null,                                 boldItalic: null };
	data.font.fontStyles['Century-Schoolbook'] =    { label: 'Century Schoolbook',  regular: 'Century-Schoolbook-Medium',           bold: 'Century-Schoolbook-Bold',    italic: 'Century-Schoolbook-Medium-Italic',   boldItalic: 'Century-Schoolbook-Bold-Italic' };
	data.font.fontStyles['Cezanne-Regular'] =       { label: 'Cezanne',             regular: 'Cezanne-Regular',                     bold: null,                         italic: null,                                 boldItalic: null };
	data.font.fontStyles['Copperplate-Gothic'] =    { label: 'Copperplate Gothic',  regular: 'Copperplate-Gothic-Light',            bold: 'Copperplate-Gothic-Bold',    italic: null,                                 boldItalic: null };
	data.font.fontStyles['Edwardian-Script'] =      { label: 'Edwardian Script',    regular: 'Edwardian-Script-ITC-Regular',        bold: null,                         italic: null,                                 boldItalic: null };
	data.font.fontStyles['Fiolex-Girls'] =          { label: 'Fiolex Girls',        regular: 'Fiolex-Girls-Regular',                bold: null,                         italic: null,                                 boldItalic: null };
	data.font.fontStyles['Futura-MD-BT'] =          { label: 'Futura MD BT',        regular: 'Futura-Md-BT-Medium',                 bold: 'Futura-Md-BT-Bold',          italic: 'Futura-Md-BT-Medium-Italic',         boldItalic: 'Futura-Md-BT-Bold-Italic' };
	data.font.fontStyles['Garamond'] =              { label: 'Garamond',            regular: 'Garamond-Medium',                     bold: 'Garamond-Bold',              italic: 'Garamond-Medium-Italic',             boldItalic: null };
	//data.font.fontStyles['Geneva'] =              { label: 'Geneva',              regular: 'Geneva',                              bold: null,                         italic: null,                                 boldItalic: null };
	data.font.fontStyles['Modern-No.-20'] =         { label: 'Modern No. 20',       regular: 'Modern-Number-20-Medium',             bold: null,                         italic: null,                                 boldItalic: null };
	data.font.fontStyles['Papyrus'] =               { label: 'Papyrus',             regular: 'Papyrus-Medium',                      bold: null,                         italic: null,                                 boldItalic: null };
	data.font.fontStyles['Scriptina'] =             { label: 'Scriptina',           regular: 'Scriptina-Regular',                   bold: null,                         italic: null,                                 boldItalic: null };
	data.font.fontStyles['Tall-Paul'] =             { label: 'Tall Paul',           regular: 'Tall-Paul-Regular',                   bold: null,                         italic: null,                                 boldItalic: null };
	data.font.fontStyles['Viner-Hand-itc'] =        { label: 'Viner Hand itc',      regular: 'Viner-Hand-ITC-Medium',               bold: null,                         italic: null,                                 boldItalic: null };

	data.font.fontSizes = new Array();
	data.font.fontSizes.push( { label: 24, id: 24});
	data.font.fontSizes.push( { label: 36, id: 36});
	data.font.fontSizes.push( { label: 48, id: 48});
	data.font.fontSizes.push( { label: 60, id: 60});
	data.font.fontSizes.push( { label: 72, id: 72});
	data.font.fontSizes.push( { label: 96, id: 96});
	data.font.fontSizes.push( { label: 108, id: 108});
	data.font.fontSizes.push( { label: 144, id: 144});
}

data.reloadSize = function () {
	if (self.innerHeight)  { // all except Explorer
		data.viewport.h = self.innerHeight;
		data.viewport.w = self.innerWidth;
	}
	else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
		data.viewport.w = document.documentElement.clientWidth;
		data.viewport.h = document.documentElement.clientHeight;
	}

	if (data.viewport.w < data.viewport.minWidth) { data.viewport.w = data.viewport.minWidth; }
	if (data.viewport.h < data.viewport.minHeight) { data.viewport.h = data.viewport.minHeight; }
}


