﻿
String.format = function()
{

    if( arguments.length == 0 )
    {
        return null; 
    }
    
    var str = arguments[0]; 

    for(var i=1;i<arguments.length;i++)
    {

        var re = new RegExp('\\{' + (i-1) + '\\}','gm');
        str = str.replace(re, arguments[i]);
    }
    return str;
};

$.picasaAlbums = {
    settings : {
		id: null, //the picasaAlbums object id
		initTime:3000, //the albums of intial time
		albumnaccount:'rumbleshock', //your picasa account name		
		cssUrl:"picasav3.css",
		loadingImg:"loadingAnimation.gif",
		loadingMsg:"Loading...", //the select text
		selectText:"Select Album",
		selectImage:"select.png"
	},
	actId:null,
    ddlObj:null,
    initsec:null,
    
	init: function(options){
	    if (typeof options != undefined) {
			$.extend($.picasaAlbums.settings, options);
            }
			
		$.picasaAlbums.requestCss($.picasaAlbums.settings.cssUrl);	
	    //document.write('<div id="'+$.picasaAlbums.settings.id+'" style="margin:0 0 0 14px;"><div class="myalbums"><img src="'+$.picasaAlbums.settings.loadingImg+'" /><br/><span class="loadingMessage" style=" font-size:16px;"></span></div><br/><div class="myphotos"></div></div>');
	    $("#"+$.picasaAlbums.settings.id).html('<div class="myalbums"><img src="'+$.picasaAlbums.settings.loadingImg+'" /><br/><span class="loadingMessage" style=" font-size:16px;"></span></div><br/><div class="myphotos"></div>');
        $.picasaAlbums.initsec=$.picasaAlbums.settings.initTime/1000;
        $(".loadingMessage",$("#"+$.picasaAlbums.settings.id)).html($.picasaAlbums.settings.loadingMsg+"("+$.picasaAlbums.initsec+")");

        $.picasaAlbums.actId=setInterval($.picasaAlbums.callrequestcontent,1000);
	    
	},
	
	callrequestcontent : function (){
        
        if($.picasaAlbums.initsec<=2)  
        {
            
            $.picasaAlbums.requestContent('http://picasaweb.google.com/data/feed/api/user/'+$.picasaAlbums.settings.albumnaccount+'?kind=album&access=public&alt=json-in-script&callback=$.picasaAlbums.showalbums');        
        }
            
        $(".loadingMessage",$("#"+$.picasaAlbums.settings.id)).html($.picasaAlbums.settings.loadingMsg+"("+($.picasaAlbums.initsec--)+")");  
          
    },
    
    showalbums : function (json){   
       
       $.picasaAlbums.ddlObj=$(".myalbums",$("#"+$.picasaAlbums.settings.id)).finalselect({id:$.picasaAlbums.settings.id+"ddlAlbums",viewHeight:"300px",viewLeft:"305px",selectText:$.picasaAlbums.settings.selectText ,selectImage:$.picasaAlbums.settings.selectImage});
       $.picasaAlbums.ddlObj.onClick($.picasaAlbums.requestphoto);
        
        
        var template="<table style='width:100%;'><tr><td style='width:54px;'><img src='{0}' style='width:50px;height:50px;' /></td><td><span class='thistext'>{1}</span></td></tr></table>";
        
        var numentries = json.feed.entry.length;   
        for (var i = 0; i < numentries; i++) {
                 
            var entry = json.feed.entry[i];
            
            $.picasaAlbums.ddlObj.addItem(String.format(template,entry.media$group.media$thumbnail[0].url,entry.title.$t),entry.gphoto$name.$t);


        }//end for     
        
        clearInterval($.picasaAlbums.actId);
        
    },    
    
    requestphoto : function(){
        
        $.blockUI();    
       
        $.picasaAlbums.requestContent(String.format('http://picasaweb.google.com/data/feed/api/user/{0}/album/{1}?kind=photo&access=public&alt=json-in-script&callback=$.picasaAlbums.showPhotos'
        ,$.picasaAlbums.settings.albumnaccount,$.picasaAlbums.ddlObj.getValue()));
    },    
    
    
    showPhotos : function (json){
    
        var galleryTemplate="<a class='thickbox' rel='gallery-plants' href='{0}' title='{1}'><img src='{2}' alt='' /></a>";    
              
        var htmlStr="";   
        
        var numentries = json.feed.entry.length;
        for (var i = 0; i < numentries; i++) {
           
            var entry = json.feed.entry[i];
            
            var thumbnail=entry.media$group.media$thumbnail[0];

            htmlStr=htmlStr+String.format(galleryTemplate, entry.media$group.media$content[0].url+'?imgmax=576' ,""/*entry.title.$t*/,thumbnail.url);    
        }
         
        $(".myphotos",$("#"+$.picasaAlbums.settings.id)).html(""); 
        $(".myphotos",$("#"+$.picasaAlbums.settings.id)).html("<span class='finalevilalbum'>"+htmlStr+"</span>");


        
        //on page load call tb_init	
	    $('a.thickbox',$('.finalevilalbum')).click(function(){
	    var t = this.title || this.name || null;
	    var a = this.href || this.alt;
	    var g = this.rel || false;
	    tb_show(t,a,g);
	    this.blur();
	    return false;
	    });
    	
	    imgLoader = new Image();// preload image
	    imgLoader.src = $.picasaAlbums.settings.loadingImg;

        $.unblockUI();
    },

    requestCss : function (url){    
        var headID = document.getElementsByTagName("head")[0]; 
        var newCss = document.createElement('link');
        newCss.type = 'text/css';
        newCss.rel = "stylesheet";
        newCss.href = url;
        headID.appendChild(newCss);
    },
    
    requestContent : function ( url ){
        var script = document.createElement('script');
        script.src = url;
        document.getElementsByTagName('head')[0].appendChild(script);
    }
    
    
};