var xmlHttp;
var loading_string = "<table id=\"loading\">\n" +
                     "<tr>\n" +
                     "<td id=\"loading_cell\">Loading...</td>\n" +
                     "</tr>\n" +
                     "</table>";
var dragging = false;
var mouse_x = false;
var slide = false;
var gallery_active = 'bubble_0';
var current_screen = 1;
var moving = false;
var fade_in_progress = false;
                 
function init()
{
  try
  {
    xmlHttp = new XMLHttpRequest();
  }
  catch( e )
  {
    try
    {
      xmlHttp = new ActiveXObject( "Msxml2.XMLHTTP" );
    }
    catch( e )
    {
      try
      {
        xmlHttp = new ActiveXObject( "Microsoft.XMLHTTP" );
      }
      catch( e )
      {
        alert( "Your browser does not support AJAX!" );
        return false;
      }
    }
  }
}
function control_drag( event )
{
    if( dragging == false)
    {
        dragging = true;
        mouse_x = event.clientX;
    }   
    else
    {
        dragging = false;
        mouse_x = false;
    } 
}
function move_drag( event )
{
    clearTimeout( slide );
    if( dragging == true )
    {
        drag = mouse_x - event.clientX;
        scroll( drag );
        mouse_x = event.clientX;
    }
}
function scroll( value )
{
    value = Number( value );
    var st  = "";
    var obj = document.getElementById( 'screenshots' );
    if( obj.style.left == "" ) obj.style.left = "0px;";
    var integer = Number( obj.style.left.substr( 0, obj.style.left.length - 2 ) ) - value;
    if( integer <= 0 && Math.abs( integer ) <= ( ( document.getElementById( 'number_of_pictures' ).value - 1 ) * 322 ) )
    {
      obj.style.left = integer.toString() + "px";
      if( Math.abs( value ) > 1 )
      {
        for( i = 1; i <= Math.abs( value ); i++ ) 
        {
          if( value < 0 ) st = "-"; 
          setTimeout( "scroll( '" + st + "1' );", 100 * i );
        }
      }
    }
}
function gallery_scroll( value )
{
    if( moving == false )
    {
      var obj = document.getElementById( 'screenshot_list' );
      if( obj.style.left == "" ) obj.style.left = "0px;";
      var current = Number( obj.style.left.substr( 0, obj.style.left.length - 2 ) );
      var integer = current - value;
      var temp;
      if( integer <= 0 && Math.abs( integer ) <= ( ( document.getElementById( 'number_of_pictures' ).value - 1 ) * 320 ) )
      {
        moving = true;
        for( i = 0; i <= Math.abs( value ); i++ )
        {
            if( value > 0 ) temp = current - i;
            else temp = current + i;
            setTimeout( "document.getElementById( 'screenshot_list' ).style.left = '" + temp.toString() + "px'" , i );
        }
        setTimeout( "moving = false;", Math.abs( value ) + 1 );
        var id = Math.abs( integer / 320 );
        change_bubble( id );
      }
    }
}
function change_fade( direction )
{
    if( fade_in_progress == false && direction != current_screen )
    {
        if( direction == 'forward' && document.getElementById( 'number_of_pictures' ).value == current_screen ) direction = 1;
        if( direction == 'backward' && current_screen == 1 ) direction = document.getElementById( 'number_of_pictures' ).value;  
        fade_in_progress = true;
        var b = 1;
        if( direction == 'backward' ) b = -1;
        else 
        {
          if( direction == 'forward') b = 1;
          else b = direction - current_screen; 
        }
        for( i = 0; i <= 100; i++ )
        {
          setTimeout( "document.getElementById( 'screenshot_" + ( current_screen + b ) + "' ).style.opacity = '" + ( i / 100 ) + "';", i * 5 );
          setTimeout( "document.getElementById( 'screenshot_" + current_screen + "' ).style.opacity = '" + ( ( 100 - i ) / 100 ) + "';", i * 5);
        }
        setTimeout( "fade_in_progress = false;", 101 );
        current_screen += b;
        $( '#gallery' ).height( $( '#screenshot_' + current_screen ).height() );
        change_bubble( current_screen - 1 );
    }
}
function click_scroll( value )
{
    var obj = document.getElementById( 'screenshots' );
    if( obj.style.left == "" ) obj.style.left = "0px;";
    var current = Number( obj.style.left.substr( 0, obj.style.left.length - 2 ) );
    if( value > 0 ) var diff = ( current / 322 ) - Math.floor( current / 322 );
    else var diff = ( current / 322 ) - Math.ceil( current / 322 ); 
    if( diff != 0 ) 
    {
      value = diff * 322;
    }
    var integer = current - value;
    if( integer <= 0 && Math.abs( integer ) <= ( ( document.getElementById( 'number_of_pictures' ).value - 1 ) * 322 ) )
    {
      obj.style.left = integer.toString() + "px";
    }
}
function _load( span, location )
{
  document.getElementById( span ).innerHTML = loading_string;
  init();

  xmlHttp.onreadystatechange = function()
  {
    if( xmlHttp.readyState == 4 ) {
    	document.getElementById( span ).innerHTML = xmlHttp.responseText;
	var YWATracker = YWA.getTracker("1000890279339");
	YWATracker.setDocumentName(location);
  	YWATracker.setDocumentGroup("");
    	YWATracker.submit();
    	//alert("1");
    }
  }
  

  xmlHttp.open( "GET", "main.php?inc=" + location, true );
  xmlHttp.send( null );
  return true;
}
function __load( span, params )
{
  document.getElementById( span ).innerHTML = loading_string;
  init();
  xmlHttp.onreadystatechange = function()
  {
    if( xmlHttp.readyState == 4 ) document.getElementById( span ).innerHTML = xmlHttp.responseText;
  }
  xmlHttp.open( "POST", "main.php", true );
  xmlHttp.setRequestHeader( "Content-type", "application/x-www-form-urlencoded" );
  xmlHttp.setRequestHeader( "Content-length", params.length );
  xmlHttp.setRequestHeader( "Connection", "close" );
  xmlHttp.send( params );
  return true;
}


function load_menu( location )
{
    select_menu( location );
    _load( "ajax_content", location );
}

function change( object )
{
    if( menu != object.id )
    {
        var pic = object.src.substring( object.src.lastIndexOf( "/" ) + 1 );
        var over = object.src.substring( object.src.lastIndexOf( "_" ) + 1 ) == "over.png"?true:false;
        if( over ) object.src = object.src.substring( 0, object .src.lastIndexOf( "_" ) ) + ".png";
        else object.src = object.src.substring( 0, object .src.lastIndexOf( "." ) ) + "_over.png";
    }
}

function button_over( id )
{
    document.getElementById( 'left_' + id ).src = 'img/button_left_over.png';
    document.getElementById( 'button_' + id ).style.backgroundImage = 'url( "img/button_middle_over.png" )';
    document.getElementById( 'right_' + id ).src = 'img/button_right_over.png';
}

function button_out( id )
{
    document.getElementById( 'left_' + id ).src = 'img/button_left.png';
    document.getElementById( 'button_' + id ).style.backgroundImage = 'url( "img/button_middle.png" )';
    document.getElementById( 'right_' + id ).src = 'img/button_right.png';
}

function change_bubble( id )
{
    if( gallery_active != 'bubble_' + id )
    {
        var obj     = document.getElementById( 'bubble_' + id );
        var old_obj = document.getElementById( gallery_active );
        change( obj );
        change( old_obj );
        gallery_active = 'bubble_' + id;
    }
}

function select_menu( object )
{
    var old_menu = menu;
    menu = object;
    change( document.getElementById( old_menu ) );
}
function check_login( name, pass )
{
  init();
  var params = 'name=' + name + '&pass=' + pass;
  xmlHttp.onreadystatechange = function()
  {
    if( xmlHttp.readyState == 4 )
    {
      alert( xmlHttp.responseText.substr( 2 ) );
      if( xmlHttp.responseText.substr( 0, 2 ) == "ok" ) document.getElementById( 'login_form' ).submit();
      else
      {
          document.getElementById( 'login_name' ).value = name;
          document.getElementById( 'login_password' ).value = '';
      }
    }
  }
  xmlHttp.open( "POST", "include/login.check.php", true );
  xmlHttp.setRequestHeader( "Content-type", "application/x-www-form-urlencoded" );
  xmlHttp.setRequestHeader( "Content-length", params.length );
  xmlHttp.setRequestHeader( "Connection", "close" );
  xmlHttp.send( params );
  return true;
}
function save_field( id, code )
{
  var value = document.getElementById( id ).value;
  var params = 'inc=save_field&name=' + id + '&code=' + code + '&value=' + escape( encodeURI( value ) );
  document.getElementById( id ).value = "Saving...";
  document.getElementById( id ).disabled = true;
  
  init();
  xmlHttp.onreadystatechange = function()
  {
    if( xmlHttp.readyState == 4 )
    {
      if( xmlHttp.responseText == "ok" )
      {
          document.getElementById( id ).value = value;
          document.getElementById( id ).disabled = false;
      }
    }
  }
  xmlHttp.open( "POST", "main.php", true );
  xmlHttp.setRequestHeader( "Content-type", "application/x-www-form-urlencoded" );
  xmlHttp.setRequestHeader( "Content-length", params.length );
  xmlHttp.setRequestHeader( "Connection", "close" );
  xmlHttp.send( params );
  return false;
}
function upload_logo( frame, name )
{
  document.getElementById( frame ).innerHTML = "<iframe id=\"" + name + "\" name=\"" + name + "\" src=\"blank.php\"></iframe>";
}
function save_data( obj, table, data_field, id_field, id_value )
{
  var value = document.getElementById( obj ).value;
  document.getElementById( obj ).value = "Saving...";
  document.getElementById( obj ).disabled = true;
  
  var params = "inc=save_data&table=" + table + "&data_field=" + data_field + "&data_value=" + escape( encodeURI( value ) ) + "&id_field=" + id_field + "&id_value=" + id_value; 
  init();
  xmlHttp.onreadystatechange = function()
  {
    if( xmlHttp.readyState == 4 )
    {
      if( xmlHttp.responseText == "ok" )
      {
          document.getElementById( obj ).value = value;
          document.getElementById( obj ).disabled = false;
      }
    }
  }
  xmlHttp.open( "POST", "main.php", true );
  xmlHttp.setRequestHeader( "Content-type", "application/x-www-form-urlencoded" );
  xmlHttp.setRequestHeader( "Content-length", params.length );
  xmlHttp.setRequestHeader( "Connection", "close" );
  xmlHttp.send( params );
  return false;
}
function save_article( appid, lang, obj )
{
  var value = document.getElementById( obj ).value;
  document.getElementById( obj ).value = "Saving...";
  document.getElementById( obj ).disabled = true;
  
  var params = "inc=save_article&appid=" + appid + "&lang=" + lang + "&article=" + escape( encodeURI( value ) ); 
  init();
  xmlHttp.onreadystatechange = function()
  {
    if( xmlHttp.readyState == 4 )
    {
      if( xmlHttp.responseText == "ok" )
      {
          document.getElementById( obj ).value = value;
          document.getElementById( obj ).disabled = false;
      }
    }
  }
  xmlHttp.open( "POST", "main.php", true );
  xmlHttp.setRequestHeader( "Content-type", "application/x-www-form-urlencoded" );
  xmlHttp.setRequestHeader( "Content-length", params.length );
  xmlHttp.setRequestHeader( "Connection", "close" );
  xmlHttp.send( params );
  return false;
}
function load_product( appid )
{
 gallery_active = 'bubble_0';
 change( document.getElementById( 'products' ) );
  select_menu( 'products' );
  _load( 'ajax_content', 'products&appid=' + appid );
}
function load_hiscore( appid )
{
  change( document.getElementById( 'scores' ) );
  select_menu( 'scores' );
  _load( 'ajax_content', 'scores&appid=' + appid );
}
function del_screenshot( appid, location, number )
{
  if( confirm( 'Delete ' + location + '?' ) ) document.location.href='main.php?inc=product_gallery&appid=' + appid + '&location=' + location + '&delete=' + number;
}
function new_product( text )
{
  if( confirm( text + '?' ) ) _load( "admin_field", "edit_product&new=true" );
}
function new_language()
{
  _load( 'ajax_content', 'admin&new=true&name=' + document.getElementById( 'language' ).value + '&code=' + document.getElementById( 'language_code' ).value );
  return false;
}
function save_forum( id, obj )
{
  var value = document.getElementById( obj ).value;
  document.getElementById( obj ).value = "Saving...";
  document.getElementById( obj ).disabled = true;
  
  var params = "inc=save_forum&id=" + id + "&name=" + escape( encodeURI( value ) ); 
  init();
  xmlHttp.onreadystatechange = function()
  {
    if( xmlHttp.readyState == 4 )
    {
      if( xmlHttp.responseText == "ok" )
      {
          document.getElementById( obj ).value = value;
          document.getElementById( obj ).disabled = false;
      }
    }
  }
  xmlHttp.open( "POST", "main.php", true );
  xmlHttp.setRequestHeader( "Content-type", "application/x-www-form-urlencoded" );
  xmlHttp.setRequestHeader( "Content-length", params.length );
  xmlHttp.setRequestHeader( "Connection", "close" );
  xmlHttp.send( params );
  return false;
}
function close_forum( id )
{
  document.getElementById( 'forum_' + id ).innerHTML = '<a href="#" onClick="_load( \'forum_' + id + '\', \'edit_topic&id=' + id + '\' ); return false;\">+</a>';
}
function close_topic( id )
{
  document.getElementById( 'topic_' + id ).innerHTML = '<a href="#" onClick="_load( \'topic_' + id + '\', \'edit_post&id=' + id + '\' ); return false;\">+</a>';
}
function edit_post( id )
{
  var string = document.getElementById( 'post_' + id ).innerHTML;
  string = string.replace( /<br>/g, "" ); 
  string = string.slice( string.indexOf( '>' ) + 1 );
  string = string.replace( /<\/font>/g, "" );
  document.getElementById( 'post_' + id ).innerHTML = '<textarea id="post_' + id + '_input" onBlur="save_post( \'' + id + '\' );">' + string + '</textarea>'; 
  document.getElementById( 'post_' + id + '_input' ).focus();
}
function save_post( id )
{
  var obj   = 'post_' + id + '_input';
  var value = document.getElementById( obj ).value;
  document.getElementById( obj ).value = "Saving...";
  document.getElementById( obj ).disabled = true;
  
  var params = "inc=save_data&table=posts&data_field=message&data_value=" + escape( encodeURI( value ) ) + "&id_field=id&id_value=" + id; 
  init();
  xmlHttp.onreadystatechange = function()
  {
    if( xmlHttp.readyState == 4 )
    {
      if( xmlHttp.responseText == "ok" )
      {
          document.getElementById( 'post_' + id ).innerHTML = "<font onClick=\"edit_post( '" + id + "' );\">" + value.replace(/([^>])\n/g, '$1<br>\n') + "</font>";
      }
    }
  }
  xmlHttp.open( "POST", "main.php", true );
  xmlHttp.setRequestHeader( "Content-type", "application/x-www-form-urlencoded" );
  xmlHttp.setRequestHeader( "Content-length", params.length );
  xmlHttp.setRequestHeader( "Connection", "close" );
  xmlHttp.send( params );
  return false;
}
function save_readonly_status( id )
{
  var value = 0;
  var obj = 'forum_readonly_' + id;
  if( document.getElementById( obj ).checked ) value = 1;
  document.getElementById( obj ).disabled = true;
  var params = "inc=save_data&table=forums&data_field=readonly&data_value=" + escape( encodeURI( value ) ) + "&id_field=id&id_value=" + id;
  init();
  xmlHttp.onreadystatechange = function()
  {
    if( xmlHttp.readyState == 4 )
    {
      if( xmlHttp.responseText == "ok" )
      {
        document.getElementById( obj ).disabled = false;
      }
    }
  }
  xmlHttp.open( "POST", "main.php", true );
  xmlHttp.setRequestHeader( "Content-type", "application/x-www-form-urlencoded" );
  xmlHttp.setRequestHeader( "Content-length", params.length );
  xmlHttp.setRequestHeader( "Connection", "close" );
  xmlHttp.send( params );
  return false;
}
function save_new_status( id )
{
  var value = 0;
  var obj = 'enabled_' + id;
  if( document.getElementById( obj ).checked ) value = 1;
  document.getElementById( obj ).disabled = true;
  var params = "inc=save_data&table=news&data_field=enabled&data_value=" + escape( encodeURI( value ) ) + "&id_field=id&id_value=" + id;
  init();
  xmlHttp.onreadystatechange = function()
  {
    if( xmlHttp.readyState == 4 )
    {
      if( xmlHttp.responseText == "ok" )
      {
        document.getElementById( obj ).disabled = false;
      }
    }
  }
  xmlHttp.open( "POST", "main.php", true );
  xmlHttp.setRequestHeader( "Content-type", "application/x-www-form-urlencoded" );
  xmlHttp.setRequestHeader( "Content-length", params.length );
  xmlHttp.setRequestHeader( "Connection", "close" );
  xmlHttp.send( params );
  return false;
}
function save_product_status( id )
{
  var value = 0;
  var obj = 'application_enabled';
  if( document.getElementById( obj ).checked ) value = 1;
  document.getElementById( obj ).disabled = true;
  var params = "inc=save_data&table=applications&data_field=enabled&data_value=" + escape( encodeURI( value ) ) + "&id_field=id&id_value=" + id;
  init();
  xmlHttp.onreadystatechange = function()
  {
    if( xmlHttp.readyState == 4 )
    {
      if( xmlHttp.responseText == "ok" )
      {
        document.getElementById( obj ).disabled = false;
      }
    }
  }
  xmlHttp.open( "POST", "main.php", true );
  xmlHttp.setRequestHeader( "Content-type", "application/x-www-form-urlencoded" );
  xmlHttp.setRequestHeader( "Content-length", params.length );
  xmlHttp.setRequestHeader( "Connection", "close" );
  xmlHttp.send( params );
  return false;
  }
function save_product_hiscore_status( id )
{
  var value = 0;
  var obj = 'application_hiscore_enabled';
  if( document.getElementById( obj ).checked ) value = 1;
  document.getElementById( obj ).disabled = true;
  var params = "inc=save_data&table=applications&data_field=hiscore_enabled&data_value=" + escape( encodeURI( value ) ) + "&id_field=id&id_value=" + id;
  init();
  xmlHttp.onreadystatechange = function()
  {
    if( xmlHttp.readyState == 4 )
    {
      if( xmlHttp.responseText == "ok" )
      {
        document.getElementById( obj ).disabled = false;
      }
    }
  }
  xmlHttp.open( "POST", "main.php", true );
  xmlHttp.setRequestHeader( "Content-type", "application/x-www-form-urlencoded" );
  xmlHttp.setRequestHeader( "Content-length", params.length );
  xmlHttp.setRequestHeader( "Connection", "close" );
  xmlHttp.send( params );
  return false;
  }
function disable_user( id )
{
  var value = 0;
  var obj = 'disabled_user_' + id;
  if( document.getElementById( obj ).checked ) value = 1;
  document.getElementById( obj ).disabled = true;
  var params = "inc=save_data&table=users&data_field=disabled&data_value=" + escape( encodeURI( value ) ) + "&id_field=id&id_value=" + id;
  init();
  xmlHttp.onreadystatechange = function()
  {
    if( xmlHttp.readyState == 4 )
    {
      if( xmlHttp.responseText == "ok" )
      {
        document.getElementById( obj ).disabled = false;
      }
    }
  }
  xmlHttp.open( "POST", "main.php", true );
  xmlHttp.setRequestHeader( "Content-type", "application/x-www-form-urlencoded" );
  xmlHttp.setRequestHeader( "Content-length", params.length );
  xmlHttp.setRequestHeader( "Connection", "close" );
  xmlHttp.send( params );
  return false;  
}
function switch_forum( id )
{
  obj = document.getElementById( 'forum_' + id );
  if( obj.innerHTML == '' ) __load( 'forum_' + id, 'inc=topic&id=' + id );
  else obj.innerHTML = '';
}
function switch_topic( id )
{
  obj = document.getElementById( 'topic_' + id );
  if( obj.innerHTML == '' ) __load( 'topic_' + id, 'inc=post&id=' + id );
  else obj.innerHTML = '';
}
function switch_schema( id )
{
  obj = document.getElementById( 'schema_' + id );
  if( obj.innerHTML == '' ) __load( 'schema_' + id, 'inc=view_schema&id=' + id );
  else obj.innerHTML = '';
}
function save_motd( id )
{
  obj = document.getElementById( 'motd_' + id );
  var value = 0;
  obj.disabled = true;
  var params = "inc=save_motd&id=" + id + "&message=" + escape( encodeURI( obj.value ) );
  init();
  xmlHttp.onreadystatechange = function()
  {
    if( xmlHttp.readyState == 4 )
    {
      if( xmlHttp.responseText != "" )
      {
        obj.disabled = false;
        document.getElementById( 'motd_date_' + id ).innerHTML = xmlHttp.responseText;
      }
    }
  }
  xmlHttp.open( "POST", "main.php", true );
  xmlHttp.setRequestHeader( "Content-type", "application/x-www-form-urlencoded" );
  xmlHttp.setRequestHeader( "Content-length", params.length );
  xmlHttp.setRequestHeader( "Connection", "close" );
  xmlHttp.send( params );
  return false; 
}
function watch( span, target, loc )
{
    if( document.getElementById( span ).innerHTML == loading_string ) setTimeout( "watch( '" + span + "', '" + target + "', '" + loc.toString() + "' );", 100 );
    else __load( target, loc.toString() );
}
function new_topic( id, message )
{
  var value = 0;
  var params = "inc=newtopic&id=" + id + "&name=" + escape( encodeURI( document.getElementById( 'topic_name' ).value ) );
  init();
  xmlHttp.onreadystatechange = function()
  {
    if( xmlHttp.readyState == 4 )
    {
      if( xmlHttp.responseText == "ok" ) __load( 'ajax_content', 'inc=forum&forum_id=' + id + '&name=' + escape( encodeURI( document.getElementById( 'topic_name' ).value ) ) + '&post=' + escape( encodeURI( document.getElementById( 'topic_post' ).value ) ) );
      else alert( message );
    }
  }
  xmlHttp.open( "POST", "main.php", true );
  xmlHttp.setRequestHeader( "Content-type", "application/x-www-form-urlencoded" );
  xmlHttp.setRequestHeader( "Content-length", params.length );
  xmlHttp.setRequestHeader( "Connection", "close" );
  xmlHttp.send( params );
  return true; 
}