/** * 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.showAlbumTitles ? $scAlbums.push("
" + j.feed.entry[i].title.$t + "
" + (settings.showAlbumdate ? $album_date : "") + ( settings.showAlbumPhotoCount ? "    " + j.feed.entry[i].gphoto$numphotos.$t + " "+ settings.labels.photos : "")) : false; $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("
" + $ppage + settings.labels.page + " "); for (var i = 1; i < $pageCount + 1; i++) { if (i == settings.page) { $navRow.push("" + i + " "); } else { $navRow.push("" + i + " "); }; }; $navRow.push($npage + "
"); $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("
Add"); //$scPhotos.push('<Add'); $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(""); $scPhotos.push(""); $scPhotos.push("
"+$c); $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("Delete this item from the cart by clicking this icon.") $scImg.push("
6x8 @ $10 each.
8x12 @ $20 each.

"); 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