1import se.datadosen.jalbum.JAFilter;
2import se.datadosen.jalbum.*;
3import se.datadosen.util.*;
4import java.text.*;
5
6String skinVersion=(new SkinProperties(skinDirectory).getProperty(SkinProperties.VERSION));
7String styleName=style.substring(0,style.indexOf("."));
8String lang=Config.getConfig().getInterpretedLanguage();
9
10ZoomFilter zoom = new ZoomFilter();
11zoom.setZoomPercent(10);
12engine.addFilter(zoom, JAFilter.THUMBNAILS_PRESCALE_STAGE);
13
14FixedShapeFilter fixed = new FixedShapeFilter();
15engine.addFilter(fixed, JAFilter.THUMBNAILS_PRESCALE_STAGE);
16
17String getBreadcrumbPath(File dir, String prefix, int level) {
18	StringBuffer sb = new StringBuffer();
19	if(level>0)
20		sb.append(getBreadcrumbPath(dir.getParentFile(), prefix + "../", level-1) + " » ");
21	sb.append("<a href=\""+((prefix.length()>0)? (prefix+engine.getIndexPageName()+engine.getPageExtension()):indexPage)+"\">"+((level>0)? dir.getName():album.get("rootName"))+"</a>");
22	return sb.toString();
23}
24
25boolean isEmpty(Object obj) {
26	return obj==null || obj.toString().trim().equals("");
27}
28
29String getText(String name) {
30	String text="";
31	try { text = texts.getString(name);
32	} catch (MissingResourceException e) {}
33	return text;
34}
35
36String getMeta(String key) {
37	if(meta==null) return null;
38	String[] keys=key.split("\\|");
39	String label;
40	Object val;
41	for(String name : keys) {
42		name=name.trim();
43		if(name.charAt(0)=='#') return null;
44		if((val=current.get(name))!=null)
45			val=val.toString();
46		if(((val!=null)&&val.length()>0&&!val.equals(" x ")) || (val=meta.get(name))!=null || (val=meta.get("Iptc." + name))!=null ||
47			(val=meta.get("Xmp." + name))!=null || (val=meta.get("Windows XP " + name))!=null) {
48			val=val.toString().replaceAll("\"","&quot;").replaceAll("'","&apos;");
49			if(showMetaLabel) {
50				label=getText(name);
51				return "<b>"+(isEmpty(label)? name:label)+"</b> "+val;
52			}
53			else
54				return val;
55		}
56	}
57	return null;
58}
59
60String getMetas() {
61	if((iconPath!=void && iconPath!=null)||meta==void||meta==null||metadata.length()==0) return null;
62	StringBuffer sb=new StringBuffer(1024);
63	String key, val;
64	String[] metaFields=metadata.split("[,;]");
65	for(String key : metaFields) {
66		key=key.trim();
67		if((val=getMeta(key))!=null) {
68			if(sb.length()>0) sb.append("<br/>");
69			sb.append(val);
70		}
71	}
72	return sb.toString();
73}
74
75String audioExt=".mp3.wma";
76String imageExt=".jpg.gif.png";
77String videoExt=".flv.mp4.wmv.avi.mov.swf";
78
79Boolean isAudio(String s) {
80	int i;
81	if((i=s.lastIndexOf("."))!=-1)
82		return audioExt.indexOf(s.substring(i).toLowerCase())>=0;
83	else
84		return false;
85}
86Boolean isImage(String s) {
87	int i;
88	if((i=s.lastIndexOf("."))!=-1)
89		return imageExt.indexOf(s.substring(i).toLowerCase())>=0;
90	else
91		return false;
92}
93Boolean isVideo(String s) {
94	int i;
95	if((i=s.lastIndexOf("."))!=-1)
96		return videoExt.indexOf(s.substring(i).toLowerCase())>=0;
97	else
98		return false;
99}
100String getMoviePath(s) {
101	return s.replace('.','_')+engine.getPageExtension();
102}
103Boolean processVideo() {
104	File template=new File(skinDirectory, "originalmovie.htt");
105	String s;
106	if(template.exists()) {
107		s=getMoviePath(fileName);
108		try {
109			engine.processTemplateFile(template, new File(outputDirectory, s));
110			return true;
111		}
112		catch (IOException e) {
113			log("Error opening originalmovie.htt", e);
114		}
115		catch (ElementException e) {
116			log("Syntax error in originalmovie.htt", e);
117		}
118	}
119	return false;
120}