var _flickrPath = _absolutePath+'/includes/js/flickr';
var _flickrOn   = true;

function goNext (img) {
    var list = $w($(img+'Listing').innerHTML); // return as array..
    var curr = $(img+'Current').innerHTML;
    var i    = list.indexOf(curr); // current image index..
    var next = list[i+1];
    var next2 = list[i+2];

    if (i == -1) {
       alert('current id ['+curr+'] not exists in list');
       return false;
    } else if (i == 0) { // show Previous button..
       //alert('show!');
       $(img+'Prev').show();
    } else if (i+1 == list.length) {
       //alert('at last item');
       return false;
    }

    if (next == list.last()) { // this is last item, hide Next button..
       //$(img+'Next').hide();
    }
    if (_flickrOn == false) {
       setTimeout("goNext('"+img+"')", 300);
       return;
    }


    if (i+2 < list.length) { // preload next 2 item if exists..
       if ($('box'+next2).src.endsWith(_flickrPath+'/images/blank.gif')) { // blank image, call AJAX to get image path..
          var filename;

          new Ajax.Request(_absolutePath+'/ajax.lnk.php', {
             method: 'get',
             parameters: { option:'com_mypets', task:'feed', id:next2 },
             onSuccess: function(transport, json) {
                if (transport.responseText == -1) { return; }
                else if (!json) { return; }

                $('box'+next2).src = json.image;

                if (json.file) {
                   $(img+'ImageSet').update($(img+'ImageSet').innerHTML+"{'caption':'','url':'"+json.file+"'},");
                   $('url'+next2).rel  = 'shadowbox['+img+']';
                   $('url'+next2).href = json.file;
                   Shadowbox.setup($$('a.flick_'+img));
                }
             }
          });

          //$('box'+next2).src = 'sample3.jpg';
       }
    }

    _flickrOn = false;
    new Effect.MoveBy(img+'Frame', 0, -53, { duration:0.2 });
    new Effect.Scale('box'+curr, 67, { duration:0.3, scaleX:true, scaleY:true });
    new Effect.Scale('box'+next, 150, { duration:0.3, scaleX:true, scaleY:true, afterFinish: function(){ _flickrOn = true; } });

       //$('box'+curr).setStyle('background-color:#FFCC00;');
       //$('box'+next).setStyle('background-color:red;');

    $(img+'Current').innerHTML = next;
    //setTimeout("showme('"+img+"')", 300);
} // goNext

function goPrev (img) {
    var list = $w($(img+'Listing').innerHTML); // return as array..
    var curr = $(img+'Current').innerHTML;
    var i    = list.indexOf(curr); // current image index..
    var prev = list[i-1];

    if (i == -1) {
       alert('current id ['+curr+'] not exists in list');
       return false;
    } else if (i+1 == list.length) { // show Next button..
       //alert('show!');
       $(img+'Next').show();
    } else if (i == 0) {
       //alert('at first item');
       return false;
    }

    if (prev == list.first()) { // this is first item, hide Previous button..
       //$(img+'Prev').hide();
    }
    if (_flickrOn == false) {
       setTimeout("goPrev('"+img+"')", 300);
       return;
    }

    _flickrOn = false;
    new Effect.MoveBy(img+'Frame', 0, 53, { duration:0.2 });
    new Effect.Scale('box'+prev, 150, { duration:0.3, scaleX:true, scaleY:true });
    new Effect.Scale('box'+curr, 67, { duration:0.3, scaleX:true, scaleY:true, afterFinish: function(){ _flickrOn = true; } });

       //$('box'+prev).setStyle('background-color:red;');
       //$('box'+curr).setStyle('background-color:#FFCC00;');

    $(img+'Current').innerHTML = prev;
} // goPrev

function loadFlickr (img, uid) {
    new Ajax.Request(_absolutePath+'/ajax.lnk.php', {
       method: 'get',
       parameters: { option:'com_mypets', task:'init', id:uid },
       onLoading: function() { $(img+'First').update('loading..') },
       onFailure: function() { $(img+'First').update('error'); },
       onSuccess: function(transport, json) {
          if (json) { showFlickr(img, json); }
          else if (transport.responseText == -1) { setTimeout("delayedMesg('"+img+"First', 'loading error..')", 500); }
          else if (transport.responseText == 0) { setTimeout("delayedMesg('"+img+"First', 'no any pets at the moment.')", 500); }
          else { alert(transport.responseText); }
       }
    });
} // loadFlickr

function delayedMesg (elem, mesg) {
    $(elem).update(mesg);
} // delayMesg

function showFlickr (img, json) {
    var html  = '';
    //var ids  = '51 53 75 83 84 85';
    var list  = $w(json.ids);
    var imSet = json.files;
    var total = (json.total > 1) ? '<b>'+json.total+'</b><br />photos' : '<b>'+json.total+'</b><br />photo';
    var stImg = '<img src="'+_flickrPath+'/images/firstItem.png" class="thumb" />';

    if (list.length <= 0) { // no record found..
       $(img+'First').update('no record');
       return;
    }

    setTimeout("delayedMesg('"+img+"First', '"+stImg+"')", 100);
    $(img+'Last').update('<img src="'+_flickrPath+'/images/lastItem.png" class="thumb" />');
    $(img+'Total').update(total);

    list.each(function(value){
       html += '\n<td id="col'+value+'"><a id="url'+value+'" class="flick_'+img+'" target="_blank">'+
               '<img id="box'+value+'" src="'+_flickrPath+'/images/blank.gif" class="thumb enlarge" /></a></td>';
    });

    $(img+'First').insert({ after: html });

    $('box'+list[0]).src = json.image1;
    $('box'+list[0]).setStyle('width:75px; height:75px;');
    $('url'+list[0]).rel  = 'shadowbox['+img+']';
    $('url'+list[0]).href = imSet[0];

    if ($('box'+list[1]) && json.image2) {
       $('box'+list[1]).src    = json.image2;
       $(img+'Prev').className = 'prevBut';
       $(img+'Next').className = 'nextBut';
       $('url'+list[1]).rel    = 'shadowbox['+img+']';
       $('url'+list[1]).href   = imSet[1];
    }

    Shadowbox.setup($$('a.flick_'+img));

    $(img+'Current').innerHTML = list[0];
    $(img+'Listing').innerHTML = json.ids;
} // showFlickr

function uploadImage (type) {
    var type = (typeof(type) == 'undefined') ? 'pets' : type;

    addHiddenElement('uploadWindow', {href:_absolutePath+'/index2.php?option=com_page&task=upload&type='+type, value:'Upload'});
    Shadowbox.open($('uploadWindow'), { type:'iframe', height:330, width:750 });
} // uploadImage



function showme (img) {
    var curr = $(img+'Current').innerHTML;

    $('debug').update('id: '+curr+'; width: '+$('box'+curr).getWidth()+'; height: '+$('box'+curr).getHeight());
} // showme
