function validateEmail( str )
{
  var at   = "@";
  var dot  = ".";
  var lat  = str.indexOf( at );
  var lstr = str.length;
  var ldot = str.indexOf( dot );
  if ( str.indexOf( at ) == -1 || str.indexOf( at ) == 0 || str.indexOf( at ) == lstr ) return false;
  if ( str.indexOf( dot ) == -1 || str.indexOf( dot ) == 0 || str.indexOf( dot ) == lstr ) return false;
  if ( str.indexOf( at, ( lat + 1 ) ) != -1 ) return false;
  if ( str.substring( lat - 1, lat ) == dot || str.substring( lat + 1, lat + 2 ) == dot ) return false;
  if ( str.indexOf( dot, ( lat + 2 ) ) == -1 ) return false;
  if ( str.indexOf( " " ) != -1 ) return false;
  return true;
}

var PmgJsClient = function()
{
  this.confirmDelete = function()
  {
    return confirm( "really?" );
  }
  this.checkPasswordChange = function()
  {
    if ( $("#newpassword1").val() != $("#newpassword2").val() )
    {
      alert( "Password mismatch!" );
      document.getElementById( "newpassword1" ).focus();
      return false;
    }
    return true;
  }
  this.checkRegistrationData = function()
  {
    if ( $("#tf_pass1").val() != $("#tf_pass2").val() )
    {
      alert( "Password mismatch!" );
      document.getElementById( "tf_pass1" ).focus();
      return false;
    }
    if ( $("#tf_email_reg").val() == "" )
    {
      alert( "Email address required!" );
      document.getElementById( "tf_email_reg" ).focus();
      return false;
    }
    if ( !validateEmail( $("#tf_email_reg").val() ) )
    {
      alert( "Email address invalid!" );
      document.getElementById( "tf_email_reg" ).focus();
      return false;
    }
    return true;
  }
}
var client = new PmgJsClient();

$(document).ready(
  function()
  {
    /* Authentication */
    $("#loginbutton").click( function() { $("#loginscreen").show( "slow" ); return false; } );
    $("#loginbutton").hover( function() { $(this).css( "textDecoration", "underline" ); }, function() { $(this).css( "textDecoration", "none" ); } );
    $("#logincancelbutton").click( function() { $("#loginscreen").hide( "slow" ); return false; } );

    /* Registration */
    $("#registerbutton").click( function() { $("#registerscreen").show( "slow" ); return false; } );
    $("#registerbutton").hover( function() { $(this).css( "textDecoration", "underline" ); }, function() { $(this).css( "textDecoration", "none" ); } );
    $("#registercancelbutton").click( function() { $("#registerscreen").hide( "slow" ); return false; } );
  }
);

function setLoggedIn( username )
{
  $("#userstatusline_username").html( username );
  $("#userstatusline_loggedout").hide();
  $("#userstatusline_loggedin").show();
  $("#userlistmenu").show();
}

function addClipToFavorites( clipname )
{
  $.ajax({ url: "/addfavourite/" + clipname, type: "GET", timeout: 6000, dataType: "html",
    success: function( html )
    {
      $(".favremovelink_"+clipname).css("display","block");
      $(".favaddlink_"+clipname).css("display","none");
    },
    error: function( a, b, c ) { alert( a + " " + b + " " + c ) }
  });
}

function removeClipFromFavorites( instancename )
{
  $.ajax({ url: "/removefavourite/" + instancename, type: "GET", timeout: 6000, dataType: "html",
    success: function( html )
    {
      $(".favremovelink_"+instancename).css("display","none");
      $(".favaddlink_"+instancename).css("display","block");
    },
    error: function( a, b, c ) { alert( a + " " + b + " " + c ) }
  });
}

function publishClip( instancename )
{
  $.ajax({ url: "/publishclip/" + instancename, type: "GET", timeout: 6000, dataType: "html",
    success: function( html )
    {
      $(".clippublishlink_"+instancename).css("display","none");
      $(".clipunpublishlink_"+instancename).css("display","block");
    },
    error: function( a , b , c ) { alert( a + " " + b + " " + c ) }
  });
}

function unpublishClip( instancename )
{
  $.ajax({ url: "/unpublishclip/" + instancename, type: "GET", timeout: 6000, dataType: "html",
    success: function( html )
    {
      $(".clippublishlink_"+instancename).css("display","block");
      $(".clipunpublishlink_"+instancename).css("display","none");
    },
    error: function( a , b , c ) { alert( a + " " + b + " " + c ) }
  });
}

function instanceTitleClicked ( instancename )
{
  $('.renamediv').hide();
  $("#renamediv_"+instancename).show();
}

function renameTitle( instancename )
{
  document.body.style.cursor = "wait";
  var str = $('#tf_title_'+instancename).val();
  //alert( str );
  $.ajax({
    url: "/changeinstancetitle/"+instancename,
    type: "POST",
    data: { newtitle : str },
    timeout: 6000,
    dataType: "html",
    success: function( html )
    {
      $('#title_'+instancename).html( str );
      $("#renamediv_"+instancename).hide();
      document.body.style.cursor = "default";
    },
    error: function( a, b, c )
    {
      alert( a + " " + b + " " + c );
    }
  });
}



