google.load('jquery', '1');
google.load('jqueryui', '1');

google.setOnLoadCallback(function() {
  $(document).ready(function() {
    var tmrCheck;
    var check = false;
    var openIDAuth, openIDAV;
    var openIDPopup = false;
    openIDRequest = function() {
      if ($('input.openIDname').length > 0 && $('input.approveDomain').length > 0) {
        $('input.openIDname, input.approveDomain').attr('disabled', 'disabled');
        openIDAV = $('input.openIDname').val();
        var approveDomain = $('input.approveDomain').val();
        $.ajax({
          url: 'openid/login.php',
          type: 'post',
          data: {
            'request':1,
            'av':openIDAV,
            'domain':approveDomain
          },
          cache: false,
          success: function(html) {
            var redirect = html;
            if (redirect.length > 0) {
              openIDAuth = window.open(redirect, 'openIDAuth');
              window.setTimeout('openIDCheck()', 1000);
            } else {
              alert('An error occured requesting the authentification URL for your IMVU Account. Please try again later.');
            }
          }
        });
      }
    }
    openIDErrorCheck = function() {
      if (getParam('openid.return_to').length > 0 && getParam('av').length == 0) {
        alert('Please make sure you entered a correct avatarname and that you are logged in into IMVU!');
      }
    }
    openIDCheck = function() {
      if (openIDAuth == null) {
        if (!openIDPopup) {
          openIDPopup = true;
          alert('To submit your application form you need to authentificate using the free OpenID Provider. Please allow this page to display popups and try again.');
        }
        window.setTimeout('openIDCheck()', 1000);
        return;
      }
      if (openIDAuth.closed) {
        $('span.approveboxClose')
          .fadeOut(1000, function() {
            $('div.approvebox').slideUp(1000, function() {
              $('span.notice').fadeIn();
            });
          });
      } else {
        window.setTimeout('openIDCheck()', 1000);
      }
    }
    getParam = function(name) {
      name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
      var regexS = "[\\?&]"+name+"=([^&#]*)";
      var regex = new RegExp( regexS );
      var results = regex.exec( window.location.href );
      if (results == null) {
        return '';
      } else {
        return results[1];
      }
    }
    preloadImages = function() {
      for (var i = 0; i < arguments.length; i++) {
        $('<img>').attr('src', arguments[i]);
      }
    }
    chgBoxBgr = function(hex) {
      $('div.textbox, input.text').stop().animate({
        backgroundColor:'#' + hex
      }, {duration:100});
    }
    chkBox = function() {
      try {
        var url = $('input.text').attr('value');
        check = false;
        if ($('input.text').length > 0) {
          if (typeof url == 'undefined' || url.length <= 4 || url.indexOf('.') == -1 || url.indexOf('/') == -1) {
            check = false;
            chgBoxBgr('FFDDDD');
          } else {
            check = true;
            chgBoxBgr('FFFFFF');
          }
        }
      } catch(e) {
        check = false;
      }
    }
    setCursorLoc = function() {
      $('input.text').eq(0).focus();
    }
    approveBox = function() {
      $('span.notice')
        .fadeOut()
        .parent().append(
          $('<div>')
            .addClass('approvebox')
            .hide()
            .slideDown()
            .append(
              $('<div>').addClass('load')
            )
        );
        $.ajax({
          url: 'approveform.php',
          type: 'post',
          data: 'request=1',
          cache: false,
          success: function(html) {
            $('div.approvebox > div.load').fadeOut(1000, function() {
              $(this).parent().append(html);
              $('span.approveboxClose').click(function() {
                $(this).fadeOut(1000, function() {
                  $('div.approvebox').slideUp(1000, function() {
                    $('span.notice').fadeIn();
                  });
                });
              });
              $('div.approveButton').click(function() {
                if ($('input.openIDname').length > 0 && $('input.approveDomain').length > 0 && $('input.openIDname').val().length > 0 && $('input.approveDomain').val().length > 0) {
                  openIDRequest();
                }
              });
            });
          }
        });
    }
    shorterRequest = function() {
      if (!check) { chkBox(); return; }
      var url = escape($('input.text').val());
      chgBoxBgr('FFFFFF');
      $('form')
        .unbind('submit')
        .submit(function() {
          return false;
        });
      $('input.image').attr('src', 'img/submit50.png');
      $('div.textbox')
        .text('')
        .append($('<div>').addClass('loadurl'));
      $.ajax({
        url: 'urlshorter.php',
        type: 'post',
        data: {
          'request':1,
          'url':url
        },
        cache: false,
        success: function(html) {
          $('div.textbox > div.loadurl').fadeOut(1000, function() {
            $(this).parent().append(html);
            if ($('div.shorterResult input').val().substring(0,7) != 'http://') {
              approveBox();
            } else {
              $('div.shorterResult input').click(function() {
                this.select();
              });
              $('div.shorterResult input').select();
              chgBoxBgr('FFFFFF');
            }
          });
        }
      });
    }
    $('input.text').parent().click(function() {
      setCursorLoc();      
    });
    $('input.text')
      .keydown(function() {
        tmrCheck = window.setTimeout('chkBox()', 500);
      });
    $('span.notice').click(function() {
      approveBox();
    });
    $('form').submit(function() {
      shorterRequest();
      return false;
    });
    preloadImages('img/approveback.png', 'img/load.gif');
    setCursorLoc();
    
    openIDErrorCheck();
  });
});
