var global_progress_id;
var interval;
var rp_int;
var rp_timerv=30;
var global_lastbytes = 0;
var global_upid = '';
var global_check_process;

function pop_up(url,w,h){
var left = Math.ceil(screen.width-w)/2;
var top = Math.ceil(screen.height-h)/2;
var rand_name = ""+Math.random();
    rand_name = rand_name.split(".");
window.open(url, rand_name[1], 'toolbar=0,location=1,statusbar=0,menubar=0,resizable=1,width='+w+',height='+h+',left = '+left+',top = '+top+',scrollbars=yes');
}

function show(id) {
var item = null;
item = document.getElementById(id);
item.style.display = "";
}


function hide(id){
var item = null;
item = document.getElementById(id);
item.style.display = "none";
}


function no_cache(){
var unID = ""+Math.random() * 99999;
unID_array = unID.split('.');
return unID_array[1];
}

function ajax(url, ret, params, progress_id){
// AJAX v4.0
// Coded by www.wos.lv , www.rapidshare.lv developer
// Created: 30.05.2006, Updated: 22.11.2009
// Support: IE 5/6/7/8, Firefox, Opera, Safari, Google Chrome
// Feature: Auto reconnect on connection failed.

var _ajax;

function reconnect(){
setTimeout("ajax('"+url+"', "+ret+", '"+params+"', '"+progress_id+"');", 2000);
}

function _ajax_no_cache(){
var unID = ""+Math.random() * 99999;
unID_array = unID.split('.');
return unID_array[1];
}

function db(){	
if(_ajax.readyState == 4){ 
if(_ajax.status == 200){

if(ret!=false){
ret(_ajax.responseText);
}

}else{
reconnect();
}
}
}

try
{
	_ajax = new XMLHttpRequest(); // ff, ie7, ie8, opera, safari, chrome
}
// on error, try another function
catch(e)
{  
	try
	{    
		_ajax = new ActiveXObject("Msxml2.XMLHTTP");    
	}
	// on again error, try another function
	catch(e)
	{    
		try
		{
			_ajax = new ActiveXObject("Microsoft.XMLHTTP");      
		}
		// and if again error, then alert.
		catch(e)
		{      
			alert("Your browser does not support AJAX. Download Firefox from www.firefox.com");
			return false;      
		}    
	}  
}


try
{
	// ie5,6,7,8 opera, safari, chrome
	_ajax.onreadystatechange = db;
}

catch(e)
{
	try
	{
		_ajax.onload = db; // mozilla ff
		_ajax.onerror = reconnect; // mozilla ff reconnect fix
	}
	
	catch(e)
	{
		return false;
	}
}

_ajax.open((params ? "POST" : "GET"), url+"&no_cache="+_ajax_no_cache(), true);
_ajax.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
_ajax.setRequestHeader("Pragma", "no-cache");
_ajax.setRequestHeader("Cache-Control", "must-revalidate");
_ajax.setRequestHeader("Cache-Control", "no-cache");
_ajax.setRequestHeader("Cache-Control", "no-store");
_ajax.setRequestHeader("Expires", 0);

if(progress_id){
_ajax.setRequestHeader("X-Progress-Id", progress_id);
}

if(params){
_ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
_ajax.setRequestHeader("Content-length", params.length);
}

_ajax.send(params ? params : null);
}



function get_progress(progress_id){
function ret(str){
var progress_info = "";
var upload = eval(str);
if(upload.state=='uploading' && !isNaN(upload.received) && !isNaN(upload.size)){
bar = document.getElementById('progressbar');
w = 200 * upload.received / upload.size;
bar.style.width = w+'px';

progress_info += '<table cellspacing=5 width=300><tr><td colspan=2 align=center height=35><b><font size=3 color=#F71F20>'+Math.round(upload.received / (upload.size / 100))+'%</td></tr>'+
                 '<tr><td align=right width=100><b>Timeleft:</td><td><b><font color=#2F4FEF>'+get_time(Math.round((upload.size - upload.received) / (upload.received - global_lastbytes))) +'</td></tr>'+
                 '<tr><td align=right><b>Uploaded:</td><td><b><font color=#2F4FEF>'+get_size(upload.received) + " of " + get_size(upload.size)+'</td></tr>'+
                 '<tr><td align=right><b>Speed:</td><td><b><font color=#2F4FEF>'+get_size(upload.received - global_lastbytes)+'/sec</td></tr></table>';


global_lastbytes = upload.received;

document.getElementById('tp').innerHTML = '<b>'+progress_info;

}
if(upload.state=='done'){
document.getElementById('progressbar').style.width = '200px';
document.getElementById('tp').innerHTML = 'Upload done. Processing...';
clearInterval(interval);
global_check_process = setInterval(function(){check_process();}, 2000);
}

// if POST is too big
if(upload.status=='413'){
show('error_big_size');hide("loading");setTimeout("show('prepare'); document.getElementById(\"rp_f\").reset(); hide('error_big_size');", 5000);
clearInterval(interval);
}
}
ajax('/progress?', ret, false, progress_id);
}

function get_size(size){
    kb=1024;
    mb=1048576;
    gb=1073741824;
    tb=1099511627776;

    if(size < kb) {
        return size+" B";
    } else if(size < mb) {
        return round_decimals(size/kb,2)+" Kb";
    } else if(size < gb) {
        return round_decimals(size/mb,2)+" Mb";
    } else if(size < tb) {
        return round_decimals(size/gb,2)+" Gb";
    } else {
        return round_decimals(size/tb,2)+" Tb";
    }
}

function round_decimals(original_number, decimals) {
var result1 = original_number * Math.pow(10, decimals)
var result2 = Math.round(result1)
var result3 = result2 / Math.pow(10, decimals)
return result3
}

function get_time(a){
var hours=Math.floor(a/3600);
var minutes=Math.floor(a/60)-(hours*60);
var seconds=a-(hours*3600)-(minutes*60);
var hs=' h';var ms=' min';var ss=' sec';
var r='';
if(hours!=0){r = ''+hours+hs+' ';}
if(minutes!=0){r = r +minutes+ms+' ';}
return r+seconds+ss
}

function id32(){
unid = "";
for(i=0; i<32; i++){
unid += Math.floor(Math.random() * 16).toString(16);
}
return unid;
}

function new_upid(){
global_upid = id32();
document.getElementById("rp_f").action = document.getElementById("rp_action").value+'&X-Progress-ID='+global_upid;
}

function loading(global_progress_id){
interval = setInterval(function(){get_progress(global_progress_id)},1000);
}


function oc(a)
{
  var o = {};
  for(var i=0;i<a.length;i++)
  {
    o[a[i]]='';
  }
  return o;
}

function w_d(formObj){
	var ext_array=formObj.value.split(".");
	ext = ext_array[ext_array.length-1].toLowerCase();
	if(ext in oc(['mp3', 'avi','mpeg', 'wma', 'wav', 'mp4', 'flv', 'mov', 'mpg', 'qt', 'rm', 'swf', 'vob', 'wmv', 'iso', 'flv', 'swf'])){
		alert("Media files is not allowed here !");
		document.getElementById("rp_f").reset();
		document.getElementById("bt").disabled=true;
		return false;
	}
	document.getElementById("bt").disabled=false;
}

function rp_timer(){
rp_timerv--;
rp_int = setInterval(function(){rp_count()}, 1000);
}

function rp_count(){
document.getElementById("rp_timer").innerHTML = rp_timerv+' '+document.getElementById("rp_sec").value;
if(rp_timerv==0){
hide("timer_ar");
show("gc");
document.getElementById("free_c").focus();
clearInterval(rp_int);
}
rp_timerv--;
}



function check_process(){
function ret(str){
if(str=='yes'){
clearInterval(global_check_process);
location.href='/?q=done&uploadid='+global_upid;
}
}
ajax('/?q=done&check='+global_upid, ret, false);
}