
function runStackAction()
{
  var action = $F('tag-select');
  switch(action)
  {
    case '+':
      $('new-stack').show();
      $('new-stack-name').activate();
    break;
    case '-':
      return true;
    break;
    default:
      $('new-stack').hide();
    break;
  }
}
function addNewStackStatic()
{
  
  
  var field_array = $('new-stack-form').serialize(true);

  console.log(field_array);
  $('comment-list-loading').show();
  new Ajax.Request('/update.addNewTag', { parameters : field_array,
    onSuccess: function(transport) {
      $('comment-list-loading').hide();
      $('new-stack').hide();
      $('tag-select-ajax').innerHTML = transport.responseText;
      $('tag-select').activate();
      $('new-stack-name').value='';
      
      if(transport.responseText == 'authentication-fail')
      {
        alert(__msg_authentication_failed);
        return true;
      }  
      if(transport.responseText == 'owner-fail')
      {
        alert(__msg_owner_failed);
        return true;
      }  

    },
    on404: function(transport) {
      alert('System Error occured.');
      $('comment-list-loading').hide();
    }
  });
  return false;
  
}
function addNewStackSidebar()
{  
  
  var field_array = $('new-stack-inline-form').serialize(true);

  $('comment-list-loading').show();
  new Ajax.Request('/update.addNewTag', { parameters : field_array,
    onSuccess: function(transport) {
      $('comment-list-loading').hide();
      $('new-stack-inline').hide();
      $('stack-list-wrapper').innerHTML = transport.responseText;
      $('tag-select').activate();
      $('new-stack-inline-name').value='';
      $('new-stack-inline-issecure').checked=false;
      
      if(transport.responseText == 'authentication-fail')
      {
        alert(__msg_authentication_failed);
        return true;
      }  
      if(transport.responseText == 'owner-fail')
      {
        alert(__msg_owner_failed);
        return true;
      }  

    },
    on404: function(transport) {
      alert('System Error occured.');
      $('comment-list-loading').hide();
    }
  });
  return false;
  
}

var clip = null;
var verticalOffset = 185; //372
var horizontalOffset = 360; //93
var __msg_authentication_failed = 'Your session timed out. Please refresh the page and login again.';
var __msg_owner_failed = 'You are not authorised to perform that action.';
var original_label = false;

function my_load(client) {
	debugstr("Flash movie loaded and ready.");
}

function my_mouse_over(client) {
	// we can cheat a little here -- update the text on mouse over
	clip.setText( $('fe_text').value );
}

function my_complete(client, text) {
	debugstr("Copied text to clipboard: " + text );
}

function debugstr(msg) {
	var p = document.createElement('p');
	p.innerHTML = msg;
	$('d_debug').appendChild(p);
}

var TweetController = {
  showModalDialog: function(dialog_name,idtweet)
  {
    this.hideAllModalDialogs();
    $('tweet-'+idtweet).addClassName('active');
    var el = $('tweet-'+idtweet);
    
    switch(dialog_name)
    {
      case 'comment':
        var modalBox = $('comment-box');
        modalBox.show();
        modalBox.style.left = ((el.positionedOffset()['left'])+horizontalOffset)+'px';
        modalBox.style.top = ((el.positionedOffset()['top'])+verticalOffset)+'px';
        $('comment-box-textarea').activate();
        break;

      case 'twitter':
        var modalBox = $('twitter-box');
        $('ptt-id').value=idtweet;
        $('twitter-box-textarea').value = $('tiny-'+idtweet).href + ' ';
        modalBox.show();
        modalBox.style.left = ((el.positionedOffset()['left'])+horizontalOffset+23)+'px';
        modalBox.style.top = ((el.positionedOffset()['top'])+verticalOffset)+'px';
        $('twitter-box-textarea').activate();
        break;

      case 'stack':
        var modalBox = $('add-to-stack-window');
        modalBox.show();
        modalBox.style.left = ((el.positionedOffset()['left'])+horizontalOffset+46)+'px';
        modalBox.style.top = ((el.positionedOffset()['top'])+verticalOffset)+'px';
        $('add-to-stack-idtweet').value = idtweet;
        $('add-to-stack-select').activate();
        break;

    }
    
  },
  hideAllModalDialogs: function()
  {
    $('comment-box').hide();
    $('twitter-box').hide();
    $('add-to-stack-window').hide();
    $$('#user-tweet-list .user-tweet').each(function(el)
    {
      // console.log(el);
      el.removeClassName('active');
    });
  },
  makeLabelEditable: function(idtweet)
  {
    var label_div = 'label-'+idtweet;

    original_label = $(label_div).firstDescendant().innerHTML == 'Untitled' ? '' : $(label_div).firstDescendant().innerHTML;
    $(label_div).innerHTML =  '<form action="" method="post" class="block-label-form" name="label-form-'+idtweet+'" id="label-form-'+idtweet+'">'+
                              '<input type="hidden" name="otk" value="nil" "><input type="hidden" name="id" value="'+idtweet+'" ">'+
                              '<input type="text" class="tweet-label-textarea" id="label-input-'+idtweet+'" type="text" '+
                              'name="tweet" onblur="TweetController.saveTitle('+idtweet+')" value="'+original_label+'" />'+
                              '</form>';
    $('label-input-'+idtweet).activate();
  },
  makeStackDescriptionEditable: function(id)
  {
    var label_div = 'label-'+id;

    original_label = $(label_div).firstDescendant().innerHTML == 'Untitled' ? '' : $(label_div).firstDescendant().innerHTML;
    $(label_div).innerHTML =  '<form name="label-form-'+id+'" id="label-form-'+id+'">'+
                              '<input type="hidden" name="otk" value="nil" "><input type="hidden" name="id" value="'+id+'" ">'+
                              '<textarea rows="0" cols="0" class="stack-description-textarea" id="label-input-'+id+'" type="text" '+
                              'name="tweet" onblur="TweetController.saveStackDescription('+id+')">'+original_label+'</textarea> '+
                              '</form>';
    $('label-input-'+id).activate();
  },
  saveStackDescription: function (idtag)
  {    
    var label_div = 'label-'+idtag;
    var field_array = $('label-form-'+idtag).serialize(true);
    $('comment-list-loading').show();

    if($('label-input-'+idtag).value == '')
    {
      $(label_div).innerHTML = '<a title="" class="no-title" href="javascript:;" onclick="TweetController.makeStackDescriptionEditable('+idtag+');" >Untitled</a>';
      return true;
    }
    new Ajax.Request('/update.updateStackDescription', { parameters : field_array,
      onSuccess: function(transport) {

        if(transport.responseText == 'authentication-fail')
        {
          alert(__msg_authentication_failed);
          return true;
        }  
        if(transport.responseText == 'owner-fail')
        {
          alert(__msg_owner_failed);
          return true;
        }  

        $(label_div).innerHTML = '<p class="stack_description editable" id="title" onclick="TweetController.makeStackDescriptionEditable('+idtag+');">'+field_array.tweet+'</p>';
      },
      on404: function(transport) {
        alert('System Error occured.');
      }
    });
    $('comment-list-loading').hide();
    
  },
  saveTitle: function (idtweet)
  {    
    var label_div = 'label-'+idtweet;
    var field_array = $('label-form-'+idtweet).serialize(true);
    $('comment-list-loading').show();

    if($('label-input-'+idtweet).value == '')
    {
      $(label_div).innerHTML = '<a title="" class="no-title" href="javascript:;" onclick="TweetController.makeLabelEditable('+idtweet+');" >Untitled</a>';
      return true;
    }
    new Ajax.Request('/update.updateTweet', { parameters : field_array,
      onSuccess: function(transport) {

        if(transport.responseText == 'authentication-fail')
        {
          alert(__msg_authentication_failed);
          return true;
        }  
        if(transport.responseText == 'owner-fail')
        {
          alert(__msg_owner_failed);
          return true;
        }  

        $(label_div).innerHTML = '<a title="'+field_array.tweet+'" class="no-title" href="javascript:;" onclick="TweetController.makeLabelEditable('+idtweet+');" >'+field_array.tweet+'</a>';
      },
      on404: function(transport) {
        alert('System Error occured.');
      }
    });
    $('comment-list-loading').hide();
    
  },
  createNewStack: function()
  {
    var field_array = $('add-new-stack-form').serialize(true);

    $('comment-list-loading').show();
    new Ajax.Request('/update.addNewTag', { parameters : field_array,
      onSuccess: function(transport) {
        $('comment-list-loading').hide();

        if(transport.responseText == 'authentication-fail')
        {
          alert(__msg_authentication_failed);
          return true;
        }  
        if(transport.responseText == 'owner-fail')
        {
          alert(__msg_owner_failed);
          return true;
        }  

      },
      on404: function(transport) {
        alert('System Error occured.');
        $('comment-list-loading').hide();
      }
    });
    this.hideAllModalDialogs();
    return false;
  },
  updateTagsForTweet: function()
  {
    var field_array = $('choose-stacks-form').serialize(true);

    $('comment-list-loading').show();
    new Ajax.Request('/update.updateTagForTweet', { parameters : field_array,
      onSuccess: function(transport) {
        $('comment-list-loading').hide();

        if(transport.responseText == 'authentication-fail')
        {
          alert(__msg_authentication_failed);
          return true;
        }  
        if(transport.responseText == 'owner-fail')
        {
          alert(__msg_owner_failed);
          return true;
        }  

      },
      on404: function(transport) {
        alert('System Error occured.');
        $('comment-list-loading').hide();
      }
    });
    this.hideAllModalDialogs();
    return false;
  },
  toggleVideoPreview: function (id)
  {
    if($('video-preview-'+id).visible())
    {  // then show movie
      $('video-preview-'+id).hide();
      $('video-'+id).show();
    }
    else
    {  // then hide movie
      $('video-preview-'+id).show();
      $('video-'+id).hide();
    }
    
  },
  toggleStackGroupPreview: function (id,type)
  {
    if($('video-preview-'+id).visible())
    {  // then show movie
      $('video-preview-'+id).hide();
      $('video-'+id).show();
    }
    else
    {  // then hide movie
      $('video-preview-'+id).show();
      $('video-'+id).hide();
    }
    
  },
  postToTwitter: function ()
  {
    var field_array = $('post-twitter').serialize(true);
    $('comment-list-loading').show();
    new Ajax.Request('/update.postToTwitter', { parameters : field_array,
      onSuccess: function(transport) {
        $('comment-list-loading').hide();
        $('comment-list').innerHTML = transport.responseText;
        $('twitter-box').hide();
      },
      on404: function(transport) {
        alert('System Error occured.');
        $('comment-list-loading').hide();
        $('twitter-box').hide();
      }
    });
    TweetController.hideAllModalDialogs();
  },
  updateTwitterCharacterCount: function ()
  {
    var lower_limit = 140;
    var usage = $('twitter-box-textarea').value.length;

    $('character-count').innerHTML = lower_limit - usage;
  },
  
  openShareOnTwitterDialog: function ()
  {
    $('twitter-modal').addClassName('shown');
    $('tweet-area').activate();
  },
  shareItemOnTwitter: function()
  {
    var field_array = $('post-twitter-modal').serialize(true);
    console.log(field_array);
    $('comment-list-loading').show();
    new Ajax.Request('/update.postToTwitter', { parameters : field_array,
      onSuccess: function(transport) {
        $('comment-list-loading').hide();
        $('twitter-modal').removeClassName('shown');
        $('top-buttons').innerHTML = transport.responseText;
      },
      on404: function(transport) {
        alert('System Error occured.');
        $('comment-list-loading').hide();
        $('twitter-modal').removeClassName('shown');
      }
    });
    
  },
  retrievePageTitle: function(idtweet,url)
  {
    $('comment-list-loading').show();
    // Sanitation
    var url = '/proxy?url=' + encodeURIComponent(url);
    new Ajax.Request(url, { 
      onSuccess: function(transport) {
        $('comment-list-loading').hide();

        TweetController.makeLabelEditable(idtweet);
        $('label-input-'+idtweet).value = transport.responseText;
        TweetController.saveTitle(idtweet);
        
      },
      on404: function(transport) {
        $('comment-list-loading').hide();
      }
    });

  },
  retrieveYouTubePageTitle: function(idtweet,url)
  {
    $('comment-list-loading').show();
    // Sanitation
    var url = '/proxy?url=' + encodeURIComponent(url);
    new Ajax.Request(url, { 
      onSuccess: function(transport) {
        $('comment-list-loading').hide();

        TweetController.makeLabelEditable(idtweet);
        $('label-input-'+idtweet).value = transport.responseText;
        TweetController.saveTitle(idtweet);
        
      },
      on404: function(transport) {
        $('comment-list-loading').hide();
      }
    });
    $('comment-list-loading').hide();
  },
  closePostToTwitterModalBox: function(idtweet)
  {
    $('twitter-modal').removeClassName('shown');
  },
  openPostToTwitterModalBox: function(idtweet)
  {
    var twitter_content = $('tweet-area').value;
    $('tweet-area').value = twitter_content + $('title').innerHTML;
    $('twitter-modal').addClassName('shown');
    $('short-url-copy').activate();
  },
  closeDeleteModalBox: function(idtweet)
  {
    $('twitter-modal').removeClassName('shown');
  },
  openDeleteModalBox: function(idtweet)
  {
    var twitter_content = $('tweet-area').value;
    $('tweet-area').value = twitter_content + $('title').innerHTML;
    $('twitter-modal').addClassName('shown');
    $('tweet-area').activate();
  },
  deleteItem: function(idtweet)
  {
    if(!confirm("Are you sure you would like to delete this item?"))
      return false;
      
    $('comment-list-loading').show();
    new Ajax.Request('/update.deleteItem.'+idtweet, { 
      onSuccess: function(transport) {
        jQuery('#comment-list-loading').hide();
        jQuery('#comment-area-'+idtweet).value='';
        jQuery('#tweet-'+idtweet).fadeOut(500);
        jQuery('#tweet-avatar-'+idtweet).fadeOut();
      },
      on404: function(transport) {
        alert('System Error occured.');
        $('comment-list-loading').hide();
        $('tweet-'+idtweet).fade();
        $('tweet-avatar-'+idtweet).fade();
      }
    });

  },
  openDirectMessageModalBox: function(idtweet)
  {
    var twitter_content = $('tweet-area').value;
    $('tweet-area').value = twitter_content + $('title').innerHTML;
    $('twitter-modal').addClassName('shown');
    $('tweet-area').activate();
  },
  toggleAddBoxVisible: function()
  {
    if(document.getElementById('new-item-top').style.display == 'none')
    {
      $('top-add-button').removeClassName('green');
      $('top-add-button').addClassName('red');
      $('top-add-button').innerHTML = '<strong>x</strong>';
      $('new-item-top').show();
    }
    else
    {
      $('top-add-button').removeClassName('red');
      $('top-add-button').addClassName('green');
      $('top-add-button').innerHTML = '<strong>+</strong>';
      $('new-item-top').hide();
    }
    return false;
  },
  changeVisibleShareTab: function(new_tab)
  {
    if(new_tab == 'share')
    {
      $('share-tab').addClassName('active');
      $('directmessage-tab').removeClassName('active');
      $('post-to-twitter').show();
      $('post-as-directmessage').hide();
    }
    else if(new_tab == 'directmessage')
    {
      $('share-tab').removeClassName('active');
      $('directmessage-tab').addClassName('active');
      $('post-to-twitter').hide();
      $('post-as-directmessage').show();
    }
    return false;
  }

}

function postComment(id,field_name)
{
  
  var field_array = $('post-comment-'+id).serialize(true);
  
  $('comment-list-loading').show();
  new Ajax.Request('/update', { parameters : field_array,
    onSuccess: function(transport) {
      $('comment-list-loading').hide();
      $(field_name).innerHTML = transport.responseText;
      jQuery('#comment-area-'+id).val('');
    },
    on404: function(transport) {
      alert('System Error occured.');
      $('comment-list-loading').hide();
    }
  });
}

function postToTwitter()
{
  var field_array = $('post-comment').serialize(true)

  $('comment-list-loading').show();
  new Ajax.Request('/update', { parameters : field_array,
    onSuccess: function(transport) {
      $('comment-list-loading').hide();
      $('comment-list').innerHTML = transport.responseText;
      $('tweet-area').value='';
    },
    on404: function(transport) {
      alert('System Error occured.');
      $('comment-list-loading').hide();
    }
  });
}

function saveTitle()
{
	var field_array = $('create-form').serialize(true)
	// alert('Posting: '+comment);
	$('comment-list-loading').show();
	new Ajax.Request('/update', { parameters : field_array,
	  onSuccess: function(transport) {
			$('comment-list-loading').hide();
			$('comment-list').innerHTML = transport.responseText;
			
	  },
	  on404: function(transport) {
	    alert('System Error occured.');
			$('comment-list-loading').hide();
	  }
	});
}


function toggleSideBarIsVisible()
{
	if($('sidebar').visible())
	{
		$('sidebar').hide();	
		$('chatty').style.width = '880px';
	}
	else
	{
		$('sidebar').show();	
		$('chatty').style.width = '610px';
	}
	
}

function toggleLanguageBarIsVisible()
{
	if($('languages-bar').visible())
		$('languages-bar').hide();	
	else
		$('languages-bar').show();	
}
var isEditing=false;

function makeEditable(el)
{
	if(isEditing)
		return false;
	var original_content = el.innerHTML;
	el.innerHTML = '<form action="" method="post"><input type="hidden" name="tweet_secret_key" value="as08k3jhhsujhklj3hhhh" /><input id="new_content" type="text" name="class" value="'+original_content+'" /> <a href="javascript:;" onclick="$(\'tweet_name\').innerHTML=$(\'new_content\').value;isEditing=false;">save</a> <a href="javascript:;" onclick="$(\'tweet_name\').innerHTML=\''+original_content+'\';isEditing=false;">cancel</a> ';
	isEditing = true;
}

function showInlineComments(idtweet)
{    
  var label_div = $('inline-comment-'+idtweet);

  if(label_div.style.display != 'none')
  {
    label_div.hide();
    return;
  }
  // Not sure why, but this can't be run synchronously..
	setTimeout(function(){
		$('comment-area-'+idtweet).focus();
	},0);
	
  label_div.show();

  new Ajax.Request('/update.showInlineComments?id='+idtweet, { 
    onSuccess: function(transport) {

      label_div.removeClassName('loading');
      $('inline-comment-ajax-'+idtweet).innerHTML = transport.responseText;
    },
    on404: function(transport) {
      alert('System Error occured.');
    }
  });
  
}


function addFriendToStack(sid,uid)
{    
	$('comment-list-loading').show();
  new Ajax.Request('/update.addUserToStack.'+sid+'.'+uid, { 
    onSuccess: function(transport) {

      // label_div.removeClassName('loading');
      // $('inline-comment-ajax-'+idtweet).innerHTML = transport.responseText;
      $('comment-list-loading').hide();
    },
    on404: function(transport) {
      alert('System Error occured.');
    	$('comment-list-loading').hide();
    }
  });
  
}


function deleteStack(el)
{
  if(!confirm('Are you sure you wish to delete this stack and move all items to your Public Items?'))
    return false;
  window.location.href = el.rel;

}

function updateTagsForTweet()
{
  var field_array = $('image-stack-form').serialize(true);

  $('comment-list-loading').show();
  new Ajax.Request('/update.updateTagForTweet', { parameters : field_array,
    onSuccess: function(transport) {
      $('comment-list-loading').hide();
      
      // $('move-to-stack').style.display = 'block';
      $('edit-link').style.display = 'block';
      // $('image-stack-form').style.display = 'none';
      location.reload(true);
      if(transport.responseText == 'authentication-fail')
      {
        alert(__msg_authentication_failed);
        return true;
      }  
      if(transport.responseText == 'owner-fail')
      {
        alert(__msg_owner_failed);
        return true;
      }  

    },
    on404: function(transport) {
      alert('System Error occured.');
      $('comment-list-loading').hide();
    }
  });

  return false;
  
}

jQuery(document).ready(function(){
	
	if (jQuery('#user-tweet-list').length)
	{
		jQuery('#user-tweet-list span.edit-tweet').click(function(){
			var id=jQuery(this).attr('rel');
			if ( jQuery('#action_div_'+id).is(':visible')){
				jQuery('#action_div_'+id).hide();
				jQuery('#auth_action_div_'+id).fadeIn(500);
			}
			else{
				jQuery('#action_div_'+id).fadeIn(500);
				jQuery('#auth_action_div_'+id).hide();
			}
			
		});
	}	
});

jQuery(document).ready(function(){    
  
  jQuery('a.like_button').click(function(){
    
    if (jQuery(this).hasClass('user_liked')){
      // Do nothing for now..
    }
    else  {
      jQuery(this).addClass('user_liked');
      
      var id=jQuery(this).attr('rel');
      var el = jQuery(this);
      
      jQuery.post('update.new-like?id='+id+'&otk=123',function(data){
        
        if (data == 1)
          el.html('&#10084; You like this');
        else
          el.html('&#10084; You and '+(data-1)+' others Like this');
      })
    }
    
  });

	jQuery('.block-label-form').live('submit',function(){
		alert('saving label..');
	});
	
});

jQuery(window).load(function(){
	
	if (jQuery('a.external_link.fullsize').length)
	{
		jQuery('a.external_link.fullsize').click(function(){
			jQuery('#sidebar').hide();
			jQuery('#video-embed-fullscreen').css('width','910px').css('height','514px');
			jQuery('.return_to_normal_mode a').show();
		});
		jQuery('.return_to_normal_mode a').click(function(){
			jQuery('#sidebar').show();
			jQuery('#video-embed-fullscreen').css('width','650px').css('height','430px');
			jQuery('.return_to_normal_mode a').hide();
		});
		
	}
	
	if (jQuery('.video-link').length) {
		jQuery('.video-link').click(function(){
			var ytid=jQuery(this).attr('rel');
			var id=jQuery(this).parent().attr('rel');
			jQuery(this).after('<div class="video-embed" id="video-'+id+'" style="margin-left: 50px;">\
        <object id="video-embed-fullscreen" type="application/x-shockwave-flash" style="width:450px; height:330px;" data="http://www.youtube.com/v/'+ytid+'&hl=en_US&fs=1&autoplay=1&autohide=1">\
          <param name="movie" value="http://www.youtube.com/v/'+ytid+'" />\
          <param name="allowfullscreen" value="true" />\
          <param name="allowscriptaccess" value="always"></param>\
          <embed src="http://www.youtube.com/v/'+ytid+'&hl=en_US&fs=1&autoplay=1&autohide=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="650" height="430"></embed>\
        </object><br /></div>');
				jQuery('#tweet-'+id).addClass('open-video');
				jQuery(this).hide();
		});
	}
});
