function OnYUILoad()
{
    var loader = new YAHOO.util.YUILoader({
        require: ["event", "json", "get", "layout", "container", "resize"],
        loadOptional: true,
        onSuccess: function() {
          main();
        },
        timeout: 10000,
        combine: true
    });
    loader.insert();    
}

function $include(url, callback) 
{
    if(document.body) 
    {
       var script = document.createElement("script");
       var head   = document.getElementsByTagName('head').item(0);     
       script.onload = callback;
       script.onreadystatechange = function () 
       {    
            if (script.readyState == 'complete' || script.readyState == 'loaded') callback();
       }
       script.src = url;       
       head.appendChild(script);  
    }
    else document.write("<script type='text/javascript' src='" + url + "' ></sc" + "ript>"); 
}

function main()
{
    document.body.className = "yui-skin-sam";
    showDialog();
    return;
    var myDialog = new YAHOO.widget.Dialog("blogWindow",
    {
        effect:{effect:YAHOO.widget.ContainerEffect.FADE, duration:0.25}, 
	    fixedcenter: true,
	    modal: false,
        visible: true,
        constraintoviewport: true,
        autofillheight: true,
	    draggable:true
	});
	
    myDialog.render(document.body);
    myDialog.show();
}

function showDialog()
{
    // Create a panel Instance, from the 'resizablepanel' DIV standard module markup
    var panel = new YAHOO.widget.Panel("resizablepanel", {
        draggable: true,
        fixedcenter: true,
        width: "500px",
        height: "150px",
        autofillheight: "body", // default value, specified here to highlight its use in the example
        constraintoviewport:true,
        context: ["showbtn", "tl", "bl"]
    });
    panel.render();

    // Create Resize instance, binding it to the 'resizablepanel' DIV 
    var resize = new YAHOO.util.Resize("resizablepanel", {
        handles: ["br"],
        autoRatio: false,
        minWidth: 300,
        minHeight: 100,
        status: false 
    });

    // Setup startResize handler, to constrain the resize width/height
    // if the constraintoviewport configuration property is enabled.
    resize.on("startResize", function(args) {

        if (this.cfg.getProperty("constraintoviewport")) {
            var D = YAHOO.util.Dom;

            var clientRegion = D.getClientRegion();
            var elRegion = D.getRegion(this.element);

            resize.set("maxWidth", clientRegion.right - elRegion.left - YAHOO.widget.Overlay.VIEWPORT_OFFSET);
            resize.set("maxHeight", clientRegion.bottom - elRegion.top - YAHOO.widget.Overlay.VIEWPORT_OFFSET);
        } else {
            resize.set("maxWidth", null);
            resize.set("maxHeight", null);
	    }

    }, panel, true);

    // Setup resize handler to update the Panel's 'height' configuration property 
    // whenever the size of the 'resizablepanel' DIV changes.

    // Setting the height configuration property will result in the 
    // body of the Panel being resized to fill the new height (based on the
    // autofillheight property introduced in 2.6.0) and the iframe shim and 
    // shadow being resized also if required (for IE6 and IE7 quirks mode).
    resize.on("resize", function(args) {
        var panelHeight = args.height;
        this.cfg.setProperty("height", panelHeight + "px");
    }, panel, true);

    YAHOO.util.Event.on("showbtn", "click", panel.show, panel, true);   
}

document.write = function(str)
{

    alert(str);
}

window.onload = function()
{
    /* $include("http://yui.yahooapis.com/2.7.0/build/yuiloader/yuiloader-min.js", function()
    { OnYUILoad(); });
    */
    $include("http://api.flickr.com/services/feeds/photos_public.gne?id=60174443@N00&format=json", function()
    {});
    
    $include("http://www.twitter.com/statuses/user_timeline/vivekjishtu.json?callback=jsonTwitterFeed&count=5", function()
    {});
    
    $include("http://blog.vivekjishtu.com/feeds/posts/default?alt=json-in-script&callback=jsonBloggerFeed", function()
    {});
  /*  
    $include("http://jabbify.com/side.js", function()
    {
        $include("http://jabbify.com/clients/side.js");
    });
    */
}

function jsonBloggerFeed(response)
{
    var max = 15;
    if(response.feed.entry < max) max = response.items.length;    
    var lstBlogPosts = document.getElementById("lstBlogPosts");
    
    for(var x = 0; x < max; x++)
    {
        var entry = response.feed.entry[x];
        var li = document.createElement("li");
        var title = document.createElement("a");
        title.innerHTML = entry.title.$t;
        title.href = entry.link[4].href;
        var category = document.createElement("span");
        category.className = "blog_labels";
        var date = new Date(entry.published.$t);
        
        if(entry.category)
        {   
            for(var y = 0; y < entry.category.length; y++)
            {
                var a = document.createElement("a");
                a.href =  "http://blog.vivekjishtu.com/search/label/" + entry.category[y].term;
                a.innerHTML += entry.category[y].term;
                category.appendChild(a);
            }
        }
        else
        { 
            category.innerHTML =  "";
        }
        
        li.appendChild(title);
        li.appendChild(category);             
        lstBlogPosts.appendChild(li); 
        
    }
    
    document.getElementById("bloggerFeed").style.display = "block"; 

}

function jsonFlickrFeed(response)
{
    var max = 5;
    if(response.items.length < max) max = response.items.length;    
    var pnlFlickrPhotos = document.getElementById("pnlFlickrPhotos");
    pnlFlickrPhotos.innerHTML = "";
    
    for(var x = 0; x < max; x++)
    {
        var a = document.createElement("a");
        a.href = response.items[x].link;
        var img = document.createElement("img");
        img.src = response.items[x].media.m.replace("_m", "_s");
        img.title = response.items[x].title;
        a.appendChild(img);
        pnlFlickrPhotos.appendChild(a);
    } 
    
    document.getElementById("flickrFeed").style.display = "block"; 
}

function relative_time(time_value) 
{
  var values = time_value.split(" ");
  time_value = values[1] + " " + values[2] + ", " + values[5] + " " + values[3];
  var parsed_date = Date.parse(time_value);
  var relative_to = (arguments.length > 1) ? arguments[1] : new Date();
  var delta = parseInt((relative_to.getTime() - parsed_date) / 1000);
  delta = delta + (relative_to.getTimezoneOffset() * 60);
  
  var r = '';
  if (delta < 60) {
	r = 'a minute ago';
  } else if(delta < 120) {
	r = 'couple of minutes ago';
  } else if(delta < (45*60)) {
	r = (parseInt(delta / 60)).toString() + ' minutes ago';
  } else if(delta < (90*60)) {
	r = 'an hour ago';
  } else if(delta < (24*60*60)) {
	r = '' + (parseInt(delta / 3600)).toString() + ' hours ago';
  } else if(delta < (48*60*60)) {
	r = '1 day ago';
  } else {
	r = (parseInt(delta / 86400)).toString() + ' days ago';
  }
  
  return r;
}

function jsonTwitterFeed(response)
{
    var lstTwitter = document.getElementById("lstTwitter");
    for(var x = 0; x < response.length; x++)    
    {
        var a = document.createElement("a");
        var li = document.createElement("li");        
        a.href = "http://twitter.com/vivekjishtu/status/" + response[x].id;
        a.innerHTML = response[x].text; 
        var when = document.createElement("span");
        when.innerHTML = " - " + relative_time(response[x].created_at);
        li.appendChild(a);
        li.appendChild(when);
        lstTwitter.appendChild(li);    
    }
    document.getElementById("twitterFeed").style.display = "block";    
}

function main1()
{

  setLayout();
  //getLastFMInfo();
  
}

function setLayout()
{
  YAHOO.util.Get.css("style/cool.css");
  var Dom = YAHOO.util.Dom, Event = YAHOO.util.Event;

  var layout = new YAHOO.widget.Layout({
            units: [
                { position: 'top', height: 24, body: 'top1', gutter: '0px', collapse: false, resize: false },
                { position: 'right', width: 150, resize: true, gutter: '5px', footer: 'Footer', collapse: true, scroll: true, body: 'right1', animate: true },
                { position: 'bottom', height: 16, resize: false, body: 'footer', gutter: '0px', collapse: false },
                { position: 'left',  width: 200, resize: true, body: 'left1', gutter: '5px', collapse: true, close: true, collapseSize: 50, scroll: true, animate: true },
                { position: 'center', body: 'center' }
            ]
        });
        layout.on('render', function() {
            layout.getUnitByPosition('left').on('close', function() {
                closeLeft();
            });
        });
        layout.render();
        Event.on('tLeft', 'click', function(ev) {
            Event.stopEvent(ev);
            layout.getUnitByPosition('left').toggle();
        });
        Event.on('tRight', 'click', function(ev) {
            Event.stopEvent(ev);
            layout.getUnitByPosition('right').toggle();
        });
        Event.on('padRight', 'click', function(ev) {
            Event.stopEvent(ev);
            var pad = prompt('CSS gutter to apply: ("2px" or "2px 4px" or any combination of the 4 sides)', layout.getUnitByPosition('right').get('gutter'));
            layout.getUnitByPosition('right').set('gutter', pad);
        });
        var closeLeft = function() {
            var a = document.createElement('a');
            a.href = '#';
            a.innerHTML = 'Add Left Unit';
            Dom.get('closeLeft').parentNode.appendChild(a);

            Dom.setStyle('tLeft', 'display', 'none');
            Dom.setStyle('closeLeft', 'display', 'none');
            Event.on(a, 'click', function(ev) {
                Event.stopEvent(ev);
                Dom.setStyle('tLeft', 'display', 'inline');
                Dom.setStyle('closeLeft', 'display', 'inline');
                a.parentNode.removeChild(a);
                layout.addUnit(layout.get('units')[3]);
                layout.getUnitByPosition('left').on('close', function() {
                    closeLeft();
                });
            });
        };
        
        Event.on('closeLeft', 'click', function(ev) {
            Event.stopEvent(ev);
            layout.getUnitByPosition('left').close();
        });

}

function getLastFMInfo()
{
//http://www.twitter.com/statuses/user_timeline/vivekjishtu.json?callback=twitterCallback&count=5
  var lastfm = YAHOO.util.Get.script("http://ws.audioscrobbler.com/2.0/?method=user.getrecenttracks&user=vivekjishtu&api_key=d2cfde3643e78101986396bf6623c789&format=json&callback=lastfm_Callback", 
  { onSuccess: function() 
    { 
       //alert("file loaded"); 
    },
    onFailure: function() 
    { 
       //alert("file could not be loaded"); 
    }
  }); 
}

function lastfm_Callback(response)
{
  alert(response);
}


