function validateUpload()
{
    var hasuploads=false;
    if(currentmode==1)
    {
        for(var i=0;i<fileNum;i++)
        {
            var filename=document.getElementById('uploadfile_'+i).value;
            if(typeof(filename)=='undefined') continue;
            if(filename.length) hasuploads = true;
        }
    }
    if(currentmode==2)
    {
        for(var i=0;i<urlNum;i++)
        {
            var filename=document.getElementById('uploadurl_'+i).value;
            if(typeof(filename)=='undefined') continue;

            if(filename.length) hasuploads = true;
        }
    }
    if(currentmode==3)
    {
        for(var i=0;i<ftpNum;i++)
        {
            var filename=document.getElementById('uploadftp_'+i).value;
            if(typeof(filename)=='undefined') continue;
            if(filename.length) hasuploads = true;
        }
    }
    if(currentmode==4)
    {
        hasuploads = hasFlashUploads;
    }
    
    if(hasuploads==false)
    {
        alert(NoFileSelected);
        return false;
    }

    var fromemail=document.getElementById('fromemail').value;
    var toemail=document.getElementById('toemail').value;
    var terms=document.getElementById('terms');
    if(fromemail.length&&!checkmail(fromemail))
    {
        alert(EmailInvalid);
        document.getElementById('fromemail').focus();
        return false;
    }
    if(fromemail.length==0&&toemail.length)
    {
        alert(SenderRequired);
        document.getElementById('fromemail').focus();
        return false;
    }
    if(terms.checked==false)
    {
        alert(TOSUnchecked);
        return false;
    }
}
function showProgress(params)
{
    document.getElementById('progressbar').style.display= '';
    document.getElementById('progressbar2').style.display= '';

    parts = params.split(',');

    document.getElementById('bread').innerHTML = parts[0];
    document.getElementById('itotal').innerHTML = parts[1];
    document.getElementById('dtremainingf').innerHTML = parts[2];
    document.getElementById('dtelapsedf').innerHTML = parts[3];
    document.getElementById('bspeedf').innerHTML = parts[4];

    document.getElementById('progBar').innerHTML= "<div class='progInner' style='width: " + parts[5] + "%;'>" + parts[5] + "%</div>";
}

function RegisterNow()
{
    var ok = confirm(NeedRegister);
    if(ok==1) document.location = "register.php";
}

function toggle(el) {
    lyr = document.getElementById(el);

    if (lyr.style.display != 'block') { lyr.style.display = 'block'; }

    else { lyr.style.display = 'none'; }
}

function submitEmailForm()
{
    var fromemail=document.getElementById('fromemail').value;
    var toemail=document.getElementById('toemail').value;
    var terms=document.getElementById('terms');
    if(fromemail.length==0&&toemail.length!=0)
    {
        alert(FromemailNeeded);
        return false;
    }
    else
    {
        document.emailform.uploadmode.value=currentmode;
        setTimeout("document.emailform.submit();", 2000);
        //return document.emailform.submit();
    }
}

//generate new upload files
var attaIdx=1;
var fileNum=1;
var urlNum=1;
var ftpNum=1;
function newUploadField(type)
{
    if(type=='file') attaIdx = fileNum;
    if(type=='url')  attaIdx = urlNum;
    if(type=='ftp')  attaIdx = ftpNum;

    if(attaIdx>=max_uploads) {alert(MaxUploadsGot);return;}
    
    var fileobj=document.getElementById(type+'_'+'wraper0');
    var filelist=document.getElementById(type+'list');
    var filecode = fileobj.innerHTML;

    //file fields
    filecode = filecode.replace(/uploads_0/g,'uploads_'+attaIdx);
    filecode = filecode.replace(/uploadurl\[0\]/g,'uploadurl['+attaIdx+']');
    filecode = filecode.replace(/uploadftp\[0\]/g,'uploadftp['+attaIdx+']');
    
    //css id for html
    filecode = filecode.replace(/uploadfile\_0/g,'uploadfile_'+attaIdx);
    filecode = filecode.replace(/uploadurl\_0/g,'uploadurl_'+attaIdx);
    filecode = filecode.replace(/uploadftp\_0/g,'uploadftp_'+attaIdx);
    
    filecode = filecode.replace(/options0/g,'options'+attaIdx);
    filecode = filecode.replace(/attachId0/g,'attachId'+attaIdx);
    
    //name array for fields
    filecode = filecode.replace(/descr\[0\]/g,'descr['+attaIdx+']');
    filecode = filecode.replace(/password\[0\]/g,'password['+attaIdx+']');
    filecode = filecode.replace(/descr\_0/g,'descr_'+attaIdx);
    filecode = filecode.replace(/password\_0/g,'password_'+attaIdx);

    //alert( filecode);
    new Insertion.After(filelist, '<div id='+type+'_wraper'+attaIdx+'>'+filecode+'</div>');

    //clear out the filled values
    if(type!='file')
    document.getElementById('upload'+type+'_'+attaIdx).value='';
    
    document.getElementById(type+'_descr_'+attaIdx).value='';
    document.getElementById(type+'_password_'+attaIdx).value='';
    
    attaIdx++;
    
    if(type=='file') fileNum = attaIdx;
    if(type=='url')  urlNum  = attaIdx;
    if(type=='ftp')  ftpNum  = attaIdx;
}

function calsize(obj,str)
{
    var size=obj.value;
    var unit = 'B';
    if(size=='') size=0;
    if(size>1024) { size=size/1024; unit='KB'; }
    if(size>1024) { size=size/1024; unit='MB'; }
    if(size>1024) { size=size/1024; unit='GB'; }
    size = Math.round(size*100)/100;

    document.all[str].innerHTML=size+' '+unit;
}
function AjaxSubmit(formname)
{
    eval('var url=document.'+formname+'.action;');
    eval('var httpmethod=document.'+formname+'.method;');

    var Param = Form.serialize(formname);
    var myAjax = new Ajax.Updater (
                    'main',
                    url,
                    {method: httpmethod, parameters: Param,evalScripts: true}
                    );
}
function showResult(originalRequest)
{
    //put returned XML in the textarea
    params=(originalRequest.responseText);
    alert(originalRequest.responseText);
    String.evalScripts(originalRequest.responseText);

}
function showDownloadLinks()
{
    var uploadfrmdoc = document.getElementById('emailframe').contentWindow;

    try{

    document.getElementById('uploadresults').innerHTML = uploadfrmdoc.document.getElementById('linksholder').innerHTML;
    document.getElementById('uploadoverview').innerHTML = uploadfrmdoc.document.getElementById('uploadoverview').innerHTML;

    }
    catch (e) {alert(e)}

    document.getElementById('uploadresults').style.display='';
    document.getElementById('uploadoverview').style.display='';
    document.getElementById('helpwindow').style.display='none';
}

function showDownloadErrors()
{
    try{

    document.getElementById('uploaderror').style.display='';
    document.getElementById('uperror').innerHTML=document.getElementById('uploadframe').contentWindow.document.getElementById('upload_errors').innerHTML;

    resetUploadInterface();

    stopUpload();
    }catch (e) {
        alert('showDownloadErrors:'+e)
    }
}
function resetUploadInterface()
{
    try{

    document.getElementById('uploadwindow').style.display='';
    document.getElementById('emailwindow').style.display='';
    document.getElementById('uploadoverview').style.display='none';
    document.getElementById('uploadresults').style.display='none';
    document.getElementById('progressbar').style.display='none';
    document.getElementById('progressbar2').style.display='none';
    document.getElementById('helpwindow').style.display='none';
    
    }catch (e) {
        alert('resetUploadInterface:'+e)
    }
}
function startUploading()
{
    try{

    document.getElementById('uploaderror').style.display   ='none';
    document.getElementById('uploadwindow').style.display  ='none';
    document.getElementById('emailwindow').style.display   ='none';
    document.getElementById('uploadoverview').style.display='none';
    document.getElementById('uploadresults').style.display ='none';
    
    document.getElementById('progressbar').style.display   ='';
    document.getElementById('progressbar2').style.display  ='';
    document.getElementById('helpwindow').style.display    ='';
    
    stopupload = false;
    }catch (e) {
        alert(e)
    }
}

function ch_mode(id)
{
    for(var i=1;i<=4;i++)
    {
       if(i==id)
       {
          currentmode=id;
          setcookie('yab_uploadmode',id);
          document.getElementById('uploadmode'+i).style.display='';
          document.uploadform.action=actions[id];
          
          if(id==4)
          {
              var version = deconcept.SWFObjectUtil.getPlayerVersion();
              if (document.getElementById && (version['major'] > 0)) {
                  if(version['major']<8)
                  {
                      document.getElementById('uploadmode4').style.display='none';
                      document.getElementById('flashversion').style.display='block';
                  }
                  else
                  {
                      buildFlashUpload(flashPath);
                  }
              }
          }
       }
       else
       {
           document.getElementById('uploadmode'+i).style.display='none';
       }
    }
}
var rParam='';
function postIt()
{
    //if(uploadmode[currentmode]==0) return false;

    //ch_mode(currentmode);
    document.uploadform.action=actions[currentmode];
    
    var ok = validateUpload();

    if(ok==false) return false;

    startUploading();
    
    if(currentmode==4)
    {
        flashObj("flashUpload").uploadFiles();
        return;
    }
    
    var sid = document.uploadform.sessionid.value;
	iTotal = escape("-1");
	rParam = "iTotal=" + iTotal;
	rParam += "&iRead=0";
	rParam += "&iStatus=1";
    rParam += "&iMode="+currentmode;
	rParam += "&sessionid=" + sid;

    if(currentmode==1)
    AjaxRequest(rParam);
    //setTimeout("AjaxRequest(rParam);",5000);
    
 	document.uploadform.submit();
    return true;
}

function showResponse(originalRequest)
{
    var parts= new Array();
    var params=originalRequest.responseText;

    //alert(params);
    if(params.substring(0,5)=='start')
    {
        rParam = params.substring(6);
        setTimeout("AjaxRequest(rParam);",1000);
    }
    else
    {
        parts = params.split(',');
        if(parts.length>5)
        {
            showProgress(params);
        }
        
        var url = parts[6];
        if(url.length>5)
        {
            setTimeout("AjaxRequest('"+url+"');",2000);
        }
        else
        {
            url='';
        }
    }
}
function stopUpload()
{
    stopupload = true;
}
function AjaxRequest(rParam)
{
    if(stopupload) {
        //alert('Ajax is stoped!');
        return;
    }
    var url=document.uploadform.returnurl.value;
    //alert(url+rParam+'&url='+progress_url+'&r='+Math.random());
    var myAjax = new Ajax.Request(
                    url,
                    {method: 'get', parameters: rParam+'&url='+progress_url+'&r='+Math.random(), onComplete: showResponse,onFailure: reportError}
                    );
}
function reportError(request)
{   
    alert(originalRequest.responseText);
    alert('Sorry. There was an error.');
}

var tmpTag=new Array();
var tmpStore=new Array();
function makeEditable(id){
    tmpTag[id] = $(id).innerHTML?1:0;
    $(id).innerHTML=$(id).innerHTML?($(id).innerHTML):'Click here to edit!';
	Event.observe(id, 'click', function(){edit($(id))}, false);
	Event.observe(id, 'mouseover', function(){showAsEditable($(id))}, false);
	Event.observe(id, 'mouseout', function(){showAsEditable($(id), true)}, false);
}

function edit(obj){
	Element.hide(obj);
    tmpStore[obj.id]=obj.innerHTML;

	var textarea = '<div id="'+obj.id+'_editor"><textarea id="'+obj.id+'_edit" name="'+obj.id+'" rows="2" cols="30">'+(tmpTag[obj.id]==0?'':trim(obj.innerHTML))+'</textarea>';
	var button	 = '<div style="align:center;"><input id="'+obj.id+'_save" type="button" class=button value="SAVE" /> OR <input id="'+obj.id+'_cancel" type="button" class=button value="CANCEL" /></div></div>';

	new Insertion.After(obj, textarea+button);

	Event.observe(obj.id+'_save', 'click', function(){saveChanges(obj)}, false);
	Event.observe(obj.id+'_cancel', 'click', function(){cleanUp(obj)}, false);
}

function showAsEditable(obj, clear){
	if (!clear){
		Element.removeClassName(obj, 'editable');
	}else{
		Element.addClassName(obj, 'editable');
	}
}
var url='members.php';
function saveChanges(obj){

	var new_content	=  ($F(obj.id+'_edit'));

	obj.innerHTML	= "Saving...";
	cleanUp(obj, true);

	var success	= function(t){editComplete(t, obj);}
	var failure	= function(t){editFailed(t, obj);}


	var pars = 'id='+obj.id+'&content='+new_content;
	var myAjax = new Ajax.Request(url, {method:'post', postBody:pars, onSuccess:success, onFailure:failure});

}

function cleanUp(obj, keepEditable){
	Element.remove(obj.id+'_editor');
	Element.show(obj);
	if (!keepEditable) showAsEditable(obj, true);
}

function editComplete(t, obj){
	obj.innerHTML	= t.responseText;
    tmpTag[obj.id] = obj.innerHTML?1:0;
    obj.innerHTML=obj.innerHTML?obj.innerHTML:'Click here to edit!';
	showAsEditable(obj, true);
}

function editFailed(t, obj){
	alert('Sorry, the update failed.');
    obj.innerHTML   =  tmpStore[obj.id];
	cleanUp(obj,0);
}
function trim(inputString) {

   if (typeof inputString != "string") { return inputString; }
   var retValue = inputString;
   var ch = retValue.substring(0, 1);

   while (ch == " ") {
      retValue = retValue.substring(1, retValue.length);
      ch = retValue.substring(0, 1);
   }
   ch = retValue.substring(retValue.length-1, retValue.length);

   while (ch == " ") {
      retValue = retValue.substring(0, retValue.length-1);
      ch = retValue.substring(retValue.length-1, retValue.length);
   }

   while (retValue.indexOf("  ") != -1) {
      retValue = retValue.substring(0, retValue.indexOf("  ")) + retValue.substring(retValue.indexOf("  ")+1, retValue.length);
   }
   return retValue;
}
function ClipBoard(id)
{
	var ccc = MM_findObj(id);
    if (document.all){
	ccc.value = ccc.innerText;
	Copied = ccc.createTextRange();
	Copied.execCommand("Copy");
    alert("URL copied!");
    }
    else
    {
        alert('Close this box and press \'CTL-c\' to copy');
        ccc.focus();
        ccc.select();
    }
}
function MM_findObj(n, d) { //v4.01
    var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
    if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
    for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
    if(!x && d.getElementById) x=d.getElementById(n); return x;
}
function highlight(id) {
    var field = MM_findObj(id);
	field.focus();
  	field.select();
}
function checkAll()
{
    for (var i=0;i<document.myform.elements.length;i++)
    {
       var e = document.myform.elements[i];
       if (e.type == 'checkbox' && e.name != 'allbox'&& !e.disabled)
       e.checked = document.myform.allbox.checked;
    }
}
function opConfirm(text, conf)
{
    for (var i=0;i<document.myform.elements.length;i++)
    {
       var e = document.myform.elements[i];
       if (e.type == 'checkbox' && e.name != 'allbox' && e.checked == 1 ) {
          if (conf) {
             return confirm(text);
          } else {
             return 1;
          }
       }
    }
    return false;
}
var emailfilter=/^\w+[\+\.\w-]*@([\w-]+\.)*\w+[\w-]*\.([a-z]{2,4}|\d+)$/i

function checkmail(e){
var returnval=emailfilter.test(e)
return returnval;
}
function getexpirydate( nodays){
   var UTCstring;
   Today = new Date();
   nomilli=Date.parse(Today);
   Today.setTime(nomilli+nodays*24*60*60*1000);
   UTCstring = Today.toUTCString();
   return UTCstring;
}
function getcookie(cookiename) {
   var cookiestring=""+document.cookie;
   var index1=cookiestring.indexOf(cookiename);
   if (index1==-1 || cookiename=="") return "";
   var index2=cookiestring.indexOf(';',index1);
   if (index2==-1) index2=cookiestring.length;
   return unescape(cookiestring.substring(index1+cookiename.length+1,index2));
}
function setcookie(name,value)
{
   duration=30;

   cookiestring=name+"="+escape(value)+";EXPIRES="+getexpirydate(duration);
   document.cookie=cookiestring;

}
function delcookie(name)
{
   cookiestring=name+"="+escape('')+";EXPIRES="+getexpirydate(-1);
   document.cookie=cookiestring;
}
