1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
|
/**
* Initialize jQuery UI and Plugin elements
*
* @todo Standardize how elements requiring listeners are identified (class or id)
*/
var shortForms = new Array(
"#gQuickSearchForm",
"#gAddTagForm",
"#gSearchForm"
);
$(document).ready(function() {
// Initialize menus
$("ul.gMenu").addClass("sf-menu");
// Superfish menu options
$('ul.sf-menu').superfish({
delay: 500,
animation: {
opacity:'show',
height:'show'
},
speed: 'fast'
});
$("#gSiteMenu").css("display", "block");
// Round view menu buttons
if ($("#gViewMenu").length) {
$("#gViewMenu ul").removeClass("gMenu").removeClass("sf-menu");
$("#gViewMenu a").addClass("ui-icon ui-state-default");
$("#gViewMenu ul li:first a").addClass("ui-corner-left");
$("#gViewMenu ul li:last a").addClass("ui-corner-right");
}
// Short forms
handleShortFormEvent(shortForms);
$(".gShortForm input[type=text]").addClass("ui-corner-left");
$(".gShortForm input[type=submit]").addClass("ui-state-default ui-corner-right");
// Apply jQuery UI button css to submit inputs
$("input[type=submit]:not(.gShortForm input)").addClass("ui-state-default ui-corner-all");
// Album view only
if ($("#gAlbumGrid").length) {
// Vertical align thumbnails/metadata in album grid
$('.gItem').vAlign();
}
// Photo/Item item view only
if ($("#gItem").length) {
// Ensure that sized image versions
// fit inside their container
sizedImage();
// Collapse comments form, insert button to expand
if ($("#gAddCommentForm").length) {
var showCommentForm = '<a href="#add_comment_form" class="showCommentForm gButtonLink ui-corner-all ui-icon-left ui-state-default right"><span class="ui-icon ui-icon-comment"></span>Add a comment</a>';
$("#gAddCommentForm").hide();
$("#gComments").prepend(showCommentForm);
$(".showCommentForm").click(function(){
$("#gAddCommentForm").show(1000);
});
}
// Add scroll effect for links to named anchors
$.localScroll({
queue: true,
duration: 1000,
hash: true
});
}
// Apply modal dialogs
$(".gMenuLink").addClass("gDialogLink");
$("#gLoginLink").addClass("gDialogLink");
var dialogLinks = $(".gDialogLink");
for (var i=0; i < dialogLinks.length; i++) {
$(dialogLinks[i]).bind("click", handleDialogEvent);
}
// Add hover state for buttons
$(".ui-state-default").hover(
function(){
$(this).addClass("ui-state-hover");
},
function(){
$(this).removeClass("ui-state-hover");
}
);
});
// Vertically align a block element's content
(function ($) {
$.fn.vAlign = function(container) {
return this.each(function(i){
if (container == null) {
container = 'div';
}
$(this).html("<" + container + ">" + $(this).html() + "</" + container + ">");
var el = $(this).children(container + ":first");
var elh = $(el).height();
var ph = $(this).height();
var nh = (ph - elh) / 2;
$(el).css('margin-top', nh);
});
};
})(jQuery);
/**
* Reduce width of sized photo if it's wider than its parent container
*/
function sizedImage() {
var containerWidth = $("#gItem").width();
var oPhoto = $("#gItem img").filter(function() {
return this.id.match(/gPhotoId-/);
});
if (containerWidth < oPhoto.width()) {
var proportion = containerWidth / oPhoto.width();
oPhoto.width(containerWidth);
oPhoto.height(proportion * oPhoto.height());
}
}
/**
* Handle initialization of all short forms
*
* @param shortForms array Array of short form IDs
*/
function handleShortFormEvent(shortForms) {
for (var i in shortForms) {
shortFormInit(shortForms[i]);
}
}
/**
* Initialize a short form. Short forms may contain only one text input.
*
* @param formID string The form's ID, including #
*/
function shortFormInit(formID) {
$(formID).addClass("gShortForm");
// Get the input ID and it's label text
var labelValue = $(formID + " label:first").html();
var inputID = "#" + $(formID + " input[type=text]:first").attr("id");
// Set the input value equal to label text
if ($(inputID).val() == "") {
$(inputID).val(labelValue);
}
// Attach event listeners to the input
$(inputID).bind("focus blur", function(e){
var eLabelVal = $(this).siblings("label").html();
var eInputVal = $(this).val();
// Empty input value if it equals it's label
if (eLabelVal == eInputVal) {
$(this).val("");
// Reset the input value if it's empty
} else if ($(this).val() == "") {
$(this).val(eLabelVal);
}
});
}
|