/**
* Picasa Webalbum Integration jQuery plugin
* This library was inspired aon pwa by Dieter Raber
* @name jquery.pwi.js
* @author Jeroen Diderik - http://www.multiprof.nl/
* @revision 1.0.31
* @date June 01, 2009
* @copyright (c) 2009 Jeroen Diderik(www.multiprof.nl)
* @license Creative Commons Attribution-Share Alike 3.0 Netherlands License - http://creativecommons.org/licenses/by-sa/3.0/nl/
* @Visit http://pwi.googlecode.com/ for more informations, duscussions etc about this library
*/
(function($){
$.fn.pwi = function(options) {
var pg;
this.each(function() {
pg = $.data(this, "pwi");
if( pg ) return false;
new $.pwiGallery(this, options);
});
return pg || this;
};
$.pwi = {
version: "1.0.31",
setDefaults: function(options){
$.extend(defaults, options);
}
};
// set default options
var defaults = {
mode: 'albums',
username: '',
album: "",
authKey: "",
albums: [],
albumCrop: 1,
albumTitle: "",
albumThumbSize: 160,
albumMaxResults: 999,
albumStartIndex: 1,
albumTypes: "public",
page: 1,
photoSize: 640,
maxResults: 50,
thumbSize: 72,
thumbCrop: 0,
thumbCss: {'margin' : '5px'},
onclickThumb: "",
showAlbumTitles: true,
showAlbumdate: false,
showAlbumPhotoCount: true,
showAlbumDescription: true,
showAlbumLocation: false,
showSlideshowLink: false,
showPhotoCaption: false,
showPhotoDate: false,
labels: {photo:"photo",
photos: "photos",
albums: "Back to albums",
slideshow: "Display slideshow",
loading: "PWI fetching data...",
page: "Page",
prev: "Previous",
next: "Next",
devider: "|"
},
months: ["January","February","March","April","May","June","July","August","September","October","November","December"],
slimbox_config: {
loop: false,
overlayOpacity: 0.6,
overlayFadeDuration: 400,
resizeDuration: 400,
resizeEasing: "swing",
initialWidth: 250,
initlaHeight: 250,
imageFadeDuration: 400,
captionAnimationDuration: 400,
counterText: "{x}/{y}",
closeKeys: [27, 88, 67, 70],
prevKeys: [37, 80],
nextKeys: [39, 83]
},
blockUIConfig: {
message: "
loading...
",
css: "pwi_loader"
},
albumstore: "",
photostore: "",
token: ""
};
$.pwiGallery = function(el, options){
var $self, thisgallery = this, settings;
settings = $.extend({}, defaults, options);
$self = $(el);
$self.addClass('pwi_container');
if(settings.username == ''){
alert('Make sure you specify at least your username.'+'\n'+'See http://pwi.googlecode.com for more info');
return;
}
switch (settings.mode){
case 'latest':
getLatest();
break;
default:
$.historyInit(fromHistory);
break;
};
function formatDate($dt) {
var $today = new Date(Number($dt)),
$year = $today.getYear();
if ($year < 1000) {
$year += 1900;
};
return (settings.months[($today.getMonth())] + " " + $today.getDate() + ", " + $year);
};
function formatDateTime($dt) {
var $today = new Date(Number($dt)),
$year = $today.getYear();
if ($year < 1000) {
$year += 1900
};
return ($today.getDate() + "-" + ($today.getMonth() + 1) + "-" + $year + " " + $today.getHours() + ":" + ($today.getMinutes() < 10 ? "0" + $today.getMinutes() : $today.getMinutes()));
};
function albums(j) {
var $scAlbums = new StringCat();
for (var i = 0; i < j.feed.entry.length; i++) {
var $id_base = j.feed.entry[i].gphoto$name.$t,
$album_date = formatDate(j.feed.entry[i].gphoto$timestamp.$t),
$thumb = j.feed.entry[i].media$group.media$thumbnail[0].url.replace(new RegExp("/s160-c/", "g"), "/");
if($.inArray($id_base, settings.albums) > -1 || settings.albums.length==0){
$scAlbums.push("");
}
};
$scAlbums.push("
");
settings.albumstore = $scAlbums.toString();
show(false, settings.albumstore);
}
function album(j) {
var $scPhotos = new StringCat(),
$np = j.feed.openSearch$totalResults.$t,
$loc = j.feed.gphoto$location.$t == "undefined" ? "" : j.feed.gphoto$location.$t,
$ad = j.feed.subtitle.$t == "undefined" ? "" : j.feed.subtitle.$t,
$album_date = formatDate(j.feed.gphoto$timestamp.$t),
$item_plural = ($np == "1") ? false : true,
$len = j.feed.entry.length;
settings.albumTitle = j.feed.title.$t == "undefined" ? settings.albumTitle : j.feed.title.$t;
$scPhotos.push("");
if (settings.mode != 'album') $scPhotos.push("
" + settings.labels.albums + " > " + settings.albumTitle + "
");
if (settings.showAlbumDescription) {
$scPhotos.push("
" + settings.albumTitle + "
");
$scPhotos.push("
" + $np + " " + ($item_plural ? settings.labels.photos : settings.labels.photo) + (settings.showAlbumdate ? ", " + $album_date: "") + (settings.showAlbumLocation && $loc ? ", " + $loc: "") + "
");
$scPhotos.push("
" + $ad + "
");
if (settings.showSlideshowLink) $scPhotos.push("
" + settings.labels.slideshow + "");
};
$scPhotos.push("
");
if ($np > settings.maxResults) {
$pageCount = ($np / settings.maxResults);
var $ppage = settings.labels.prev + " " + settings.labels.devider + " ",
$npage = settings.labels.devider + " " + settings.labels.next,
$navRow = new StringCat();
if (settings.page > 1) {
$ppage = "" + settings.labels.prev + " | "
};
if (settings.page < $pageCount) {
$npage = "| " + settings.labels.next + ""
};
$navRow.push("");
$scPhotos.push($navRow.toString());
};
for (var i = 0; i < $len; i++) {
var $img_base = j.feed.entry[i].content.src,
$id_base = j.feed.entry[i].gphoto$id.$t,
$c = (j.feed.entry[i].summary.$t ? j.feed.entry[i].summary.$t: ""),
$dt = settings.showPhotoDate ? (j.feed.entry[i].exif$tags.exif$time ? formatDateTime(j.feed.entry[i].exif$tags.exif$time.$t) : j.feed.entry[i].published.$t) : "",
$d = $dt + " " + $c.replace(new RegExp("'", "g"), "'");
$title = j.feed.entry[i].title.$t;
$i = i
$scPhotos.push("");
$scPhotos.push("
");
$scPhotos.push("
");
$scPhotos.push("
");
//$scPhotos.push("
"+$title);
$scPhotos.push("

");
//$scPhotos.push('<

');
$scPhotos.push("

");
$scPhotos.push("
");
};
$scPhotos.push($navRow);
$scPhotos.push("
");
settings.photostore = $scPhotos.toString();
show(false, settings.photostore);
var $s = $(".pwi_photo");
$s.css(settings.thumbCss);
if(typeof(settings.onclickThumb) != "function" && $.slimbox){
$s.find("a[rel='lb-"+settings.username+"']").slimbox(settings.slimbox_config);
}else if(typeof(settings.onclickThumb) == "function"){
$s.find("a[rel='lb-"+settings.username+"']").bind('click',clickThumb);
}
};
function latest(j) {
var $scPhotos = new StringCat(),
$len = j.feed.entry.length ? j.feed.entry.length : 0;
for (var i = 0; i < $len; i++) {
var $img_base = j.feed.entry[i].content.src,
$id_base = j.feed.entry[i].gphoto$id.$t,
$c = settings.showPhotoCaption ? (j.feed.entry[i].summary.$t ? j.feed.entry[i].summary.$t: "") : "",
$dt = settings.showPhotoDate ? (j.feed.entry[i].exif$tags.exif$time ? formatDateTime(j.feed.entry[i].exif$tags.exif$time.$t) : j.feed.entry[i].published.$t) : "",
$d = $dt + " " + $c.replace(new RegExp("'", "g"), "'");
$scPhotos.push("");
}
$scPhotos.push("
");
show(false, $scPhotos.toString());
var $s = $("div.pwi_photo").css(settings.thumbCss);
if(typeof(settings.onclickThumb) != "function" && $.slimbox){
$s.find("a[rel='lb-"+settings.username+"']").slimbox(settings.slimbox_config);
}else if(typeof(settings.onclickThumb) == "function"){
$s.find("a[rel='lb-"+settings.username+"']").bind('click',clickThumb);
}
};
function clickThumb(){
settings.onclickThumb.call(this);
return false;
};
function getAlbums() {
if (settings.albumstore!="") {
show(false, settings.albumstore);
} else {
show(true, '');
var $url = 'http://picasaweb.google.com/data/feed/api/user/' + settings.username + '?kind=album&max-results=' + settings.albumMaxResults + '&access=' + settings.albumTypes + '&alt=json';
$.getJSON($url, 'callback=?', albums);
};
return $self;
};
function getAlbum() {
var $si = ((settings.page - 1) * settings.maxResults) + 1,
$url = 'http://picasaweb.google.com/data/feed/api/user/' + settings.username + '/album/' + settings.album + '?kind=photo&max-results=' + settings.maxResults + '&start-index=' + $si + '&alt=json' + ((settings.authKey!="") ? "&authkey="+settings.authKey : "");
show(true, '');
$.getJSON($url, 'callback=?', album);
return $self;
};
function getLatest() {
show(true, '');
var $url = 'http://picasaweb.google.com/data/feed/api/user/' + settings.username + (settings.album!="" ? '/album/'+settings.album : '') + '?kind=photo&max-results=' + settings.maxResults + '&alt=json&q=' + ((settings.authKey!="") ? "&authkey="+settings.authKey : "");
$.getJSON($url, 'callback=?', latest);
return $self;
};
function fromHistory($hash) {
if ($hash) {
if ($hash.split("/").length > 2) {
settings.username = $hash.split("/")[0];
settings.album = $hash.split("/")[1];
settings.page = $hash.split("/")[2];
getAlbum();
}else if ($hash.split("/").length > 1) {
settings.album = $hash.split("/")[0];
settings.page = $hash.split("/")[1];
getAlbum();
};
;
}else if(settings.album != '' && settings.mode == 'album'){
getAlbum();
}else{
getAlbums();
};
};
function show(loading, data) {
if (loading) {
if($.blockUI) $self.block(settings.blockUIConfig);
} else {
if($.blockUI) $self.unblock();
$self.html(data);
};
};
};
})(jQuery);
function checkboxchange($index){
chkbox = document.getElementsByName('box');
addPhoto(chkbox[$index].value);
}
function addPhoto(imgId) {
var abutton = document.getElementById("a_"+imgId)
var rbutton = document.getElementById("r_"+imgId)
abutton.style.visibility = "hidden"
rbutton.style.visibility = "visible"
if (!document.getElementById(imgId)){
var newdiv = document.createElement('div');
newdiv.setAttribute('name', "photos");
newdiv.setAttribute('id', imgId);
newdiv.style.padding = '5px';
if (imgId) {
$scImg = new StringCat();
$scImg.push(imgId) ;
$scImg.push("
")
$scImg.push("
");
newdiv.innerHTML =$scImg ;
document.getElementById('orderContainer').style.visibility = "visible";
updateTotal()
} else {
newdiv.innerHTML = "nothing";
}
document.getElementById('orderdiv').appendChild(newdiv);
}
}
function removePhoto(imgId) {
removeImg = document.getElementById(imgId);
orderdivJ = document.getElementById('orderdiv');
orderdivJ.removeChild(removeImg);
var abutton = document.getElementById("a_"+imgId)
var rbutton = document.getElementById("r_"+imgId)
if (abutton){
abutton.style.visibility = "visible"
rbutton.style.visibility = "hidden"
}
updateTotal()
if (document.getElementById('orderdiv').childNodes.length < 2){
document.getElementById('orderContainer').style.visibility = "hidden";
}
}
function chkVal(textBox){
chkValue = parseInt(textBox.value, 10);
if (isNaN(chkValue)){
textBox.value = 0;
}
else{
textBox.value = chkValue;
}
updateTotal()
}
function StringCat() {
var sp,ep,l = 0;
this.push = function(what) {
if (typeof(sp) == 'undefined') {
ep = new Array();
sp = ep;
} else {
var oep = ep;
ep = new Array();
oep[1] = ep;
}
ep[0] = what; ++l;
};
this.toString = function() {
if (l == 0) return;
while (l > 1) {
var ptr = sp,
nsp = new Array(),
nep = nsp,
nl = 0;
while (typeof(ptr) != 'undefined') {
if (typeof(nep[0]) == 'undefined') {
nep[0] = ptr[0]; ++nl;
} else {
if (typeof(ptr[0]) != 'undefined') nep[0] += ptr[0];
nep[1] = new Array();
nep = nep[1];
};
ptr = ptr[1];
};
sp = nsp;
ep = nep;
l = nl;
};
return sp[0];
};
};
function sendMsg(){
if (checkDetails()){
msg = createmsg()
var url = "http://gould.jitz.co.nz/sendemail.php";
var params = "emailTo=jigga222@hotmail.com&emailFrom=jitz222@gmail.com&subject=dd&message="+msg;
//ajaxRequest(url,"POST",params,true,msgR,false);
var cEmail = document.getElementsByName('cemail')[0].value;
var emailToS="jigga222@hotmail.com"
var emailFromS=cEmail
var subjectS="Band Order"
var messageS = msg
//$(document).ready(function() {
// $.post(url, { emailTo: emailToS, emailFrom: emailFromS,subject: subjectS,message: messageS },
// function(data) {
// msgR(data);
//});
// return false;
// });
$.blockUI();
$.ajax({
url: url,
dataType: "jsonp",
data: "emailTo=Band@gouldphoto.co.nz&emailFrom="+cEmail+"&subject="+subjectS+" &message="+msg,
success: function(data){
//$.unblockUI();
//msgR(data);
}
});
}
}
function msgR(response){
//alert(response);
document.getElementById('galleryMain').innerHTML=response;
// document.getElementById('orderdiv').style.visibility = "hidden";
// document.getElementById('customerDetails').style.visibility = "hidden";
}
function createmsg(){
$scMsg = new StringCat();
imgs = document.getElementById("orderdiv").getElementsByTagName('div');
$len = imgs.length
for (i=0; i<$len;i++) {
img = imgs[i];
$scMsg.push(img.id);
$scMsg.push(" 6x8 x");
$scMsg.push(document.getElementById(img.id+"68qty").value);
$scMsg.push(" 8x12 x");
$scMsg.push(document.getElementById(img.id+"812qty").value);
$scMsg.push("%0D");
}
var cr = String.fromCharCode(13);
var cName = document.getElementsByName('cName')[0];
var cPhone = document.getElementsByName('cPhone')[0];
var cEmail = document.getElementsByName('cemail')[0];
var cAddress = document.getElementsByName('cAddress')[0];
$scMsg.push("Name: ");
$scMsg.push(cName.value);
$scMsg.push("%0D Phone: ");
$scMsg.push(cPhone.value);
$scMsg.push("%0D Email: ");
$scMsg.push(cEmail.value);
$scMsg.push("%0D Address: ");
$scMsg.push(cAddress.value);
return($scMsg);
}
function checkDetails(){
var pass = true;
var cName = document.getElementsByName('cName')[0];
var cPhone = document.getElementsByName('cPhone')[0];
var cEmail = document.getElementsByName('cemail')[0];
var cAddress = document.getElementsByName('cAddress')[0];
var emailP=/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
var nameP =/[a-zA-Z-\s]+/;
var phoneP =/[()0-9\s]{7,}/;
var addressP = /[0-9a-zA-Z-\s.]+/
if(emailP.test(cEmail.value)){
if(document.getElementById('invalidE')){
cEmail.parentNode.removeChild(document.getElementById('invalidE'));}
}else{
pass = false;
if(!document.getElementById('invalidE')){
cEmail.parentNode.innerHTML = "invalid Email Address
"+cEmail.parentNode.innerHTML}
}
if(nameP.test(cName.value)){
if(document.getElementById('invalidN')){
cName.parentNode.removeChild(document.getElementById('invalidN'));}
}else{
pass = false;
if(!document.getElementById('invalidN')){
cName.parentNode.innerHTML = "Invalid Name
"+cName.parentNode.innerHTML}
}
if(addressP.test(cAddress.value)){
if(document.getElementById('invalidA')){
cAddress.parentNode.removeChild(document.getElementById('invalidA'));}
}else{
pass = false;
if(!document.getElementById('invalidA')){
cAddress.parentNode.innerHTML = "Invalid Address
"+cAddress.parentNode.innerHTML}
}
if(phoneP.test(cPhone.value)){
if(document.getElementById('invalidP')){
cPhone.parentNode.removeChild(document.getElementById('invalidP'));}
}else{
pass = false;
if(!document.getElementById('invalidP')){
cPhone.parentNode.innerHTML = "Invalid Phone Number
"+cPhone.parentNode.innerHTML}
}
total68 = document.getElementById('68total').innerHTML
total812= document.getElementById('812total').innerHTML
if (total68 == 0 && total812 == 0 && pass){
alert("You must order at least one photo")
pass = false;
}
return pass;
}
function updateTotal(){
var total68 = document.getElementsByName('68qty');
var sum68 = 0;
var total812 = document.getElementsByName('812qty');
var sum812 = 0;
var total68P= 0;
var total812P= 0;
var totalP= 0;
for (i=0; i