imagePreLoad('/images/progress_circle.gif');
var fileCount;
var startFileCount;
var endFileCount;
var totalFileCount;
var storageUsed;
var maxStorage;
var RENAME_FILE_SCRIPT = "/cgi-bin/renameFile.pl";
var EMAIL_FILE_SCRIPT = "/cgi-bin/emailFile.pl";
var DELETE_FILE_SCRIPT = "/cgi-bin/deleteFile.pl";
var LOADFILES_SCRIPT = "/manage/loadUserFiles.php";
var NO_CHECKBOXES_MSG = "Please select the files you want to delete before pressing the delete button";
var INVALID_STRING_ARRAY=new Array("^","!","*","\\","/","+","`","<",">","%","@","#","$","&","~",";","?",":","\"","'","{","}","|","=");
var INVALID_STRING_MSG="Your renamed file contains one of the following invalid characters\n\n^ ! * \ / + ` < > % @ # $ & ~ ; ? : \" ' \ { } | =\n\nPlease replace it and try again";
var ERROR_RENAMING_FILE_MSG="ERROR: There was a problem renaming your file\n\nPlease try again.";
var ERROR_DELETING_FILE_MSG="ERROR: There was a problem deleting your file\n\nPlease try again.";
var ERROR_DELETING_FILE_MSG2="ERROR: There was a problem deleting your file (filesystem error)\n\nPlease try again.";
var ERROR_DELETE_IN_PROGRESS_MSG="There is currently a file deletion in progress\n\nPlease wait until this has been completed and then try again.";
var ERROR_RENAME_IN_PROGRESS_MSG="There is currently a file rename in progress\n\nPlease wait until this has been completed and then try again.";
var SEARCH_BUTTON="searchButton";

function showShareForFile(filename,fileID,targetID) {
    closeOpenShares();
    var shareLink = document.getElementById(fileID+"ShareLink");
    var fileurl = "http://www.zamzar.com/getFiles.php?uid="+shareLink.type+'&targetID='+targetID+'&fileID='+shareLink.name;
    var fileRow = document.getElementById(fileID+"Row2");
    shareLink.blur();
    var shareRow = document.getElementById('manageFilesTable').insertRow(fileRow.rowIndex + 1);
    shareRow.id = "shareRow"+fileID;
    shareTD1 = shareRow.insertCell(0);
    shareTD2 = shareRow.insertCell(1);
    shareTD3 = shareRow.insertCell(2);
    shareTD2.colSpan = "11";
    shareTD1.className = fileRow.className;
    shareTD2.className = fileRow.className;
    shareTD3.className = fileRow.className;
    shareLink.innerHTML = 'Share <span class="shareButtons">-</span>';
    shareLink.onclick = function () {
        shareLink.blur();
        closeShareForFile(shareRow,filename,fileID,targetID);
    }
    //fileurl=fileurl+"&fileID="+filename;
    var shareFileurl=fileurl.replace(/&/g,"%26").replace(/ /g,"%2B");
    var deliciousFileurl=fileurl.replace(/http:\/\//,"");

    shareTD2.innerHTML = '&nbsp;<br>' +
                         '<div class="whiteBox">' +
                         '<form name="emailFileForm" id="emailFileForm" class="form" onsubmit="handleEmailFileFormSubmit(); this.target = \'emailFileFormTarget\'; return true;" action="" method="post">' +
                         '<table cellspacing="0" cellpadding="0" border="0"><tr><td><img src="/images/clear.gif" width="10" height="5"></td></tr><tr><td valign="top"><span class="vsmallHeaderGrey">Email this file</span><table cellspacing="2" cellpadding="2" border="0">' +
                         '<tr><td><img src="/images/clear.gif" width="1" height="2"</td></tr>' +
                         '<tr><td>Your email</td><td><input id="yourZamzarEmail" class="formBackground" value="'+userEmail+'" type="text" size="26"></td></tr>' +
                         '<tr><td></td><td id="yourZamzarEmailTD"></td></tr>' +
                         '<tr><td valign="top">Friend\'s email(s)<br><a href="javascript:void(0)" onclick="showPlaxoABChooser(\'friendZamzarEmail\', \'/plaxo/plaxo-widget.html\'); return false"><img src="http://www.plaxo.com/images/abc/buttons/add_button.gif" alt="Add from my address book" border="0" style="padding-top:5px"/></a></td><td><textarea id="friendZamzarEmail" rows="2" cols="27" class="body" style="overflow: auto;background:#FFFFA0"></textarea></td></tr>' +
                         '<tr><td></td><td class="bodysm">(Separate addresses with commas)</td></tr>' +
                         '<tr><td></td><td id="friendZamzarEmailTD"></td></tr>' +
                         '<tr><td><img src="/images/clear.gif" width="1" height="1"</td></tr>' +
                         '<tr><td valign="top"><input id="submitButton" type="submit" value="Send Link"></td><td><div id="emailFileProgressDiv" style="margin:0px;padding:0px"></div></td></tr></table></td>' +                         
                         '<td><img src="/images/clear.gif" width="15"></td>' +
                         '<td bgcolor="#CCCCCC"><img src="/images/clear.gif" width="1"></td>' +
                         '<td><img src="/images/clear.gif" width="15"></td>' +
                         '<td valign="top"><span class="vsmallHeaderGrey">Share this file</span><table cellspacing="2" cellpadding="2" border="0">' +
                         '<tr><td><img src="/images/clear.gif" width="1" height="1"</td></tr>' +
                         '<tr><td><a href="http://digg.com/submit?phase=2&url='+shareFileurl+'" target="_blank" class="body" title="Share this file on Digg"><img src="/images/digg.gif" class="centerImg" border="0">&nbsp; On Digg</a></td><td><a href="http://del.icio.us/post?url='+shareFileurl+'" target="_blank" class="body" title="Share this file on del.icio.us"><img src="/images/delicious.gif" class="centerImg" border="0">&nbsp; On del.icio.us</a></td></tr>' +
                         '<tr><td><a href="http://www.facebook.com/share.php?u='+shareFileurl+'" target="_blank" class="body" title="Share this file on Facebook"><img src="/images/facebook.gif" class="centerImg" border="0">&nbsp; On Facebook</a></td><td><a href="http://www.stumbleupon.com/submit?url='+shareFileurl+'" target="_blank" class="body" title="Share this file on Stumbleupon"><img src="/images/su.gif" class="centerImg" border="0">&nbsp; On Stumbleupon</a></td></tr>' +
                         '<tr><td><img src="/images/clear.gif" width="1" height="4"</td></tr>' +
                         '<tr><td colspan="2"><span class="vsmallHeaderGrey">HTML Link code</span> (for blogs, MySpace, Messenger)</td></tr>' +
                         '<tr><td colspan="2"><input id="filename" name="filename" type="hidden" value="'+shareLink.name+'"><input id="copyTextInputField-'+shareLink.name+'" type="text" size="40" readonly value="'+fileurl+'" onclick="this.focus();this.select()">&nbsp;&nbsp; <a href="javascript:copyTextToClipboard(\'copyTextInputField-'+shareLink.name+'\')" class="body" title="Copy link to your clipboard"> Copy link &nbsp;<img src="/images/clipboard.gif" border="0" class="centerImg"></a></td>' +
                         '</tr></table>' +
                         '</td></tr><tr><td><img src="/images/clear.gif" width="10" height="5"></td></tr></table>' +
                         '</form>' +
                         '</div>';
}

function closeShareForFile(shareRow,filename,fileID,targetID) {    
    var shareLink = document.getElementById(fileID+"ShareLink");
    document.getElementById('manageFilesTableBody').removeChild(shareRow);
    shareLink.innerHTML = 'Share <span class="shareButtons">+</span>';        
    shareLink.onclick = function () {
        showShareForFile(filename,fileID,targetID);            
    }
}

function copyTextToClipboard(ObjName) {
  if( window.clipboardData && clipboardData.setData ) {
	clipboardData.setData("Text", document.getElementById(ObjName).value);
  }
  else {
    try {
	var holdtext = document.getElementById('holdtext');
	holdtext.value = document.getElementById(ObjName).value;
	var Copied = holdtext.createTextRange();
	Copied.execCommand("Copy");
	alert("The code/link was copied to your clipboard");
    } catch (err) {
	if (window.netscape) { 
	  try {
		user_pref("signed.applets.codebase_principal_support", true);
		var clip = Components.classes['@mozilla.org/widget/clipboard;[[[[1]]]]'].createInstance(Components.interfaces.nsIClipboard);
		if (!clip) {
			alert("Copy Link will not work with your web browser.\n\nPlease select the text and press 'Ctrl-C' (on a PC) or 'Command-C' (on a Mac)  to copy it instead.");
			return;
		}
		var trans = Components.classes['@mozilla.org/widget/transferable;[[[[1]]]]'].createInstance(Components.interfaces.nsITransferable);
		if (!trans) {
			alert("Copy Link will not work with your web browser.\n\nPlease select the text and press 'Ctrl-C' (on a PC) or 'Command-C' (on a Mac)  to copy it instead.");
			return;
		}
		trans.addDataFlavor('text/unicode');
		var str = new Object();
		var len = new Object();
		var str = Components.classes["@mozilla.org/supports-string;[[[[1]]]]"].createInstance(Components.interfaces.nsISupportsString);
		var copytext=meintext;
		str.data=copytext;
		trans.setTransferData("text/unicode",str,copytext.length*[[[[2]]]]);
		var clipid=Components.interfaces.nsIClipboard;
		if (!clip) {
			alert("Copy Link will not work with your web browser.\n\nPlease select the text and press 'Ctrl-C' (on a PC) or 'Command-C' (on a Mac)  to copy it instead.");
			return;
		}
		clip.setData(trans,null,clipid.kGlobalClipboard);
	  }
	  catch (err2) {
		alert("Copy Link will not work with your web browser.\n\nPlease select the text and press 'Ctrl-C' (on a PC) or 'Command-C' (on a Mac)  to copy it instead.");
	  }
	}
	else 
		alert("Copy Link will not work with your web browser.\n\nPlease select the text and press 'Ctrl-C' (on a PC) or 'Command-C' (on a Mac)  to copy it instead.");
    }
  }
}

function handleEmailFileFormSubmit() {
    var requiredFieldsEmpty = false;
    document.getElementById('emailFileProgressDiv').innerHTML = "";

    var form = document.emailFileForm;
    for (var i = 0 ; i < form.elements.length ; i += 1) {
        if (form.elements[i].id.indexOf("ZamzarEmail") != -1) {
            if (form.elements[i].value == '') {
                requiredFieldsEmpty = true;
                document.getElementById(form.elements[i].id + "TD").innerHTML = "&nbsp;<span class='bodyrd'>Field Empty !</span>";             
            } else {
                document.getElementById(form.elements[i].id + "TD").innerHTML = "";
            }
        }
    }

    if (requiredFieldsEmpty) {
        alert(EMPTY_FORMFIELD_MSG);
        return false;
    } else {
        for (var i = 0 ; i < form.elements.length ; i += 1) {
            if (form.elements[i].id.indexOf("ZamzarEmail") != -1 && form.elements[i].value != "") {
                if (form.elements[i].id.indexOf("friend") != -1) {
                    var emailArray = form.elements[i].value.split(",");
                    for (var j=0;j< emailArray.length; j+=1){
                        var isEmailValidMessage = checkValidEmail(emailArray[j]);
                    }
                } else {
                    var isEmailValidMessage = checkValidEmail(form.elements[i].value);
                }
                if (isEmailValidMessage.indexOf("false") == -1) {
                    if (form.elements[i].id.indexOf("friend") != -1) document.getElementById("friendZamzarEmailTD").innerHTML = "&nbsp;<span class='bodyrd'>Invalid Email !</span>";
                    else document.getElementById("yourZamzarEmailTD").innerHTML = "&nbsp;<span class='bodyrd'>Invalid Email !</span>";
                    alert(isEmailValidMessage + "\n\n(Invalid address is: " + form.elements[i].value + ")");
                    return false;
                } else {
                    if (form.elements[i].id.indexOf("friendZamzarEmailTD") != -1) document.getElementById("friendZamzarEmail1TD").innerHTML = "";
                    else document.getElementById("yourZamzarEmailTD").innerHTML = "";
                }
            }
        }    
        var submissionString = "";
        for (var i = 0 ; i < form.elements.length ; i += 1) {
            if (form.elements[i].id.indexOf("submit") == -1 && form.elements[i].id != "") {
                submissionString += form.elements[i].value + ";";
            }
        }
        form.action = EMAIL_FILE_SCRIPT + '?' + submissionString;
    }
}

function deleteRow(fileID) {

    // Get handle on file table
    var manageFilesTable = document.getElementById('manageFilesTable');
    var manageFilesTableBody = document.getElementById('manageFilesTableBody');

    // Close any open share divs first
    closeOpenShares();

    // Check if we have multiple file IDs
    if (fileID.indexOf(";") != 0) {
        var fileIDArray = fileID.split(";");
    } else {
        var fileIDArray = new Array(fileID);
    }

    // Process each file
    for (var i=0;i<fileIDArray.length;i+=1) {
        // Delete the file row from the managefiles table
        var r1 = document.getElementById(fileIDArray[i]+"Row1");
        var r2 = document.getElementById(fileIDArray[i]+"Row2");
        var r3 = document.getElementById(fileIDArray[i]+"Row3");
        var rowRefNum = r2.rowIndex;
    
        // Is this the last or first row ? If so just delete it, don't try to change any colors
        if (rowRefNum != manageFilesTable.rows.length && rowRefNum != 6) {
            // Modify the background colours of all rows after the deleted row
            if (manageFilesTable.rows[rowRefNum].className.indexOf("lt-bg") != -1) {                
                convertRowsToLight(rowRefNum + 3, manageFilesTable);
                convertRowsToDark(rowRefNum + 6, manageFilesTable);
            } else {
                convertRowsToDark(rowRefNum + 3, manageFilesTable);
                convertRowsToLight(rowRefNum + 6, manageFilesTable);
            }
        }      

        // Get filesize of file to be deleted
        var filesize = document.getElementById(fileIDArray[i]+"FSTD").innerHTML;

        // Remove file from visible table (3 rows in total)
        manageFilesTableBody.removeChild(r1);
        manageFilesTableBody.removeChild(r2);
        manageFilesTableBody.removeChild(r3);
    
        // Update the file total variables
        fileCount--;
        endFileCount--;
        totalFileCount--;

        // Check whether table is empty - if it is reload the page for new files
        if (fileCount == 0) {
            window.location = "/manage/";            
        }

        // Update the storage used variable and display
        if (convertToKB(filesize) != 0) {
            storageUsed -= convertToKB(filesize);
            var storagePercent = (100/maxStorage) * storageUsed;
            if (storageUsed < maxStorage) {
                // If error box is showing remove it
                var box = document.getElementById("storageErrorMsg");
                if(box) {
                    box.innerHTML = "";
                }
            }
            document.getElementById("storageSize").innerHTML = KBtoMBorGB(storageUsed);
            document.getElementById("storagePercentage").innerHTML = Math.round(storagePercent);
            setProgressBarPercent(Math.round(storagePercent)); 
        }

        // Update the file number display
        if(totalFileCount > 1) {
            var fileText = "files";
        } else {
            var fileText = "file";
        }
        if (fileCount != 0) {
            document.getElementById("fileCountTextInner").innerHTML = "<b>Showing " + startFileCount + "-" + fileCount + " of " + totalFileCount + " " + fileText;
        }
    }

}

function deleteSingleFile(fileID,filename) {
    if (isActionInProgress("DELETING")) {
        alert(ERROR_DELETE_IN_PROGRESS_MSG);
    } else {
        if (confirm("Are you sure you want to permanently delete "+filename+" from Zamzar ?")) {
            deleteFile(fileID);
        }
    }
}

function deleteMultiFile() {
    var fileIDs = "";

    // Get handle on file table
    var manageFilesTable = document.getElementById('manageFilesTable');

    // See whether any checkboxes have been selected 
    var fileIDString = "";
    for (var i=0;i<manageFilesTable.rows.length;i+=1) {
        if(manageFilesTable.rows[i].id.indexOf("Row2") != -1) {            
            fileIDString = manageFilesTable.rows[i].id.replace("Row2","");
            if(document.getElementById(fileIDString).checked) {
                fileIDs += fileIDString + ";";
            }            
        }           
    }

    // If we have files to delete then delete them otherwise throw an alert
    if (fileIDs != "") {
        if (isActionInProgress("DELETING")) {
            alert(ERROR_DELETE_IN_PROGRESS_MSG);
        } else {
            if (confirm("Are you sure you want to delete multiple files from Zamzar ?")) {
                deleteFile(fileIDs.substring(0,fileIDs.length-1));    
            }
        }
    } else {
        alert(NO_CHECKBOXES_MSG);
    }
}

function deleteFile(fileID) {

    var submissionString = "";

    // Check if we have any open file rename dialogues. If so close them
    closeOpenRenameFields();

    // Check if we have multiple file IDs
    if (fileID.indexOf(";") != 0) {
        var fileIDArray = fileID.split(";");
    } else {
        var fileIDArray = new Array(fileID);
    }

    // Process the files
    for (var i=0;i<fileIDArray.length;i+=1) {
        // Give visual clue to user that we're deleting file
        var fileObj = document.getElementById(fileIDArray[i]+"File");
        fileObj.style.backgroundColor = "#80A1CA";
        fileObj.style.color = "#FFFFFF";
        fileObj.style.textDecoration = "none";
        fileObj.innerHTML = "<b>DELETING FILE ... " + fileObj.innerHTML + " &nbsp;</b>";         

        // Grab details for the submission string
        var fileForm = document.getElementById(fileIDArray[i]+"dff");        
        for (var j=0;j<fileForm.elements.length;j+=1) {
            submissionString += fileForm.elements[j].value + ";";
        }
        submissionString += ",";
    }

    // Submit the form to actually delete the file on the servers
    fileForm.action = DELETE_FILE_SCRIPT + '?' + submissionString;        
    fileForm.target = 'deleteFileFormTarget';
    fileForm.submit();

    // If the server for the file delete is down we'll get a 404 - Deal with it here after 45 seconds
    setTimeout("checkFileActionOK('"+fileID+"File"+"','DELETING')",45000); 
}

function renameFile(filename,fileID,targetID) {
    if(isActionInProgress("RENAMING")) {
        alert(ERROR_RENAME_IN_PROGRESS_MSG);
    } else {
        closeOpenRenameFields();
        closeOpenShares();
        var fileRow = document.getElementById(fileID+"FileTD");
        if(fileRow.innerHTML.indexOf("RenameBox") == -1 && fileRow.innerHTML.indexOf("RENAMING FILE ...") == -1) {
            fileRow.innerHTML = "<input id='"+fileID+"RenameBox' type='text' value='"+filename+"' name='"+fileRow.innerHTML+"'>&nbsp;&nbsp;<a href='javascript:void(0)' class='bodysm' onclick=\"renameSave('"+filename+"','"+fileID+"','"+targetID+"')\">Save</a>&nbsp;|&nbsp;<a href='javascript:void(0)' class='bodysm' onclick=\"renameCancel('"+fileID+"')\">Cancel</a>";
        } 
    }
}

function renameSave(filename,fileID,targetID) {
    // Get a handle on new filename
    var fileRow = document.getElementById(fileID+"FileTD");
    var inputBox = document.getElementById(fileID+"RenameBox");
    var newFileName = inputBox.value;

    // Make sure that it's valid
    if(checkValidString(newFileName)) {
        alert(INVALID_STRING_MSG);
    } else {
        // Get handle on file details
        fileRow.innerHTML = inputBox.name;
        var fileObj = document.getElementById(fileID+"File");

        // Get old filename
        var currentFilename = fileObj.innerHTML;

        // Give visual clue to user that we're renaming the file
        fileObj.style.backgroundColor = "#80A1CA";
        fileObj.style.color = "#FFFFFF";
        fileObj.style.textDecoration = "none";
        fileObj.innerHTML = "<b>RENAMING FILE ... " + fileObj.innerHTML + "&nbsp;</b>";

        // Submit the form to actually rename the file on the servers
        var fileForm = document.getElementById("renameFileForm");
        var submissionString = newFileName + ";" + fileID + ";" + targetID + ";" + currentFilename;
        fileForm.action = RENAME_FILE_SCRIPT + '?' + submissionString;       
        fileForm.target = 'renameFileFormTarget';
        fileForm.submit();

        // If the server for the file rename is down we'll get a 404 - Deal with it here after 45 seconds
        setTimeout("checkFileActionOK('"+fileID+"File"+"','RENAMING')",45000); 
    }
}

function checkFileActionOK(fileRow,action) {    
    var fileObj = document.getElementById(fileRow);
    if (fileObj && fileObj.innerHTML.indexOf("<b>"+action+" FILE ...") != -1) {
        if (fileObj.innerHTML.indexOf("<b>DELETING FILE ...")  != -1) {
            alert(ERROR_DELETING_FILE_MSG);
        }
        if (fileObj.innerHTML.indexOf("<b>RENAMING FILE ...")  != -1) {
            alert(ERROR_RENAMING_FILE_MSG);
        }        
        fileObj.innerHTML = fileObj.innerHTML.replace("<b>"+action+" FILE ... ","");
        fileObj.innerHTML = fileObj.innerHTML.replace("&nbsp;</b>","");
        fileObj.innerHTML = fileObj.innerHTML.replace("&nbsp;","");
        fileObj.style.color = "";
        fileObj.style.backgroundColor = "";
        fileObj.style.textDecoration = "";
    }
}

function renameCancel(fileID) {
    var fileRow = document.getElementById(fileID+"FileTD");
    var inputBox = document.getElementById(fileID+"RenameBox");
    fileRow.innerHTML = inputBox.name;
}

function updateRenameRow(returnCode,fileID,newFilename,$uid,$uid2) {
    var fileObj = document.getElementById(fileID+"File");
    if(returnCode == 0) {
        document.getElementById(fileID+"filename").value=newFilename;
        document.getElementById(fileID+"filenameLink").name=newFilename;
        document.getElementById(fileID+"RenameLink").name=newFilename;
        document.getElementById(fileID+"ShareLink").name=newFilename;

        var convertLink = document.getElementById(fileID+"ConvertLink");
        convertLink.href = convertLink.href.replace(/fileID=.*/g,"fileID="+newFilename);
        convertLink.href = convertLink.href.replace(/uid=.*\&target/g,"uid="+$uid+"&target");

        var fileLink = document.getElementById(fileID+"File")
        fileLink.href = fileLink.href.replace(/fileID=.*/g,"fileID="+newFilename);
        fileLink.href = fileLink.href.replace(/uid=.*\&target/g,"uid="+$uid+"&target");

        var shareLink = document.getElementById(fileID+"ShareLink");
        shareLink.type = $uid2;

        fileObj.innerHTML = newFilename;
    } else if (returnCode==2||returnCode==3||returnCode==4) {
        alert(ERROR_RENAMING_FILE_MSG);
        fileObj.innerHTML = fileObj.innerHTML.replace("<b>RENAMING FILE ... ","");
        fileObj.innerHTML = fileObj.innerHTML.replace("&nbsp;</b>","");
        fileObj.innerHTML = fileObj.innerHTML.replace("&nbsp;","");
        fileObj.style.color = "";
        fileObj.style.backgroundColor = "";
        fileObj.style.textDecoration = "";
    } else {
        alert(INVALID_STRING_MSG);
        fileObj.innerHTML = fileObj.innerHTML.replace("<b>RENAMING FILE ... ","");
        fileObj.innerHTML = fileObj.innerHTML.replace("&nbsp;</b>","");
        fileObj.innerHTML = fileObj.innerHTML.replace("&nbsp;","");
        fileObj.style.color = "";
        fileObj.style.backgroundColor = "";
        fileObj.style.textDecoration = "";
    }

    fileObj.style.color = "";
    fileObj.style.backgroundColor = "";
    fileObj.style.textDecoration = "";
}

function closeOpenRenameFields() {
    // Get handle on file table
    var manageFilesTable = document.getElementById('manageFilesTable');

    for (var i=0;i<manageFilesTable.rows.length;i+=1) {
        if(manageFilesTable.rows[i].innerHTML.indexOf("RenameBox") != -1) {  
            var fileID = manageFilesTable.rows[i].id.replace("Row2","");          
            renameCancel(fileID);
        }           
    }
}

function isActionInProgress(action) {   

    var result = false;

    // Get handle on file table
    var manageFilesTable = document.getElementById('manageFilesTable');

    for (var i=0;i<manageFilesTable.rows.length;i+=1) {
        if(manageFilesTable.rows[i].innerHTML.indexOf(action + " FILE ...") != -1) {  
            result = true;
        }           
    }

    return result;
}

function changeCheck(checkValue) {
    // Get handle on file table
    var manageFilesTable = document.getElementById('manageFilesTable');

    for (var i=0;i<manageFilesTable.rows.length;i+=1) {
        if(manageFilesTable.rows[i].id.indexOf("Row2") != -1) {  
            document.getElementById(manageFilesTable.rows[i].id.replace("Row2","")).checked = checkValue;          
        }           
    }
}

function convertRowsToDark(rowRefNum, fileTable) {
    for (var i = rowRefNum; i < fileTable.rows.length ; i += 6) {
        fileTable.rows[i].className = "dk-bg";
        fileTable.rows[i-1].childNodes[0].className = "dk-tl-corner";
        fileTable.rows[i-1].childNodes[1].className = "dk-bg";
        fileTable.rows[i-1].childNodes[2].className = "dk-tr-corner";
        fileTable.rows[i+1].childNodes[0].className = "dk-bl-corner";
        fileTable.rows[i+1].childNodes[1].className = "dk-bg";
        fileTable.rows[i+1].childNodes[2].className = "dk-br-corner";
    }
}

function convertRowsToLight(rowRefNum, fileTable) {
    for (var i = rowRefNum; i < fileTable.rows.length ; i += 6) {
        fileTable.rows[i].className = "lt-bg";
        fileTable.rows[i-1].childNodes[0].className = "lt-tl-corner";
        fileTable.rows[i-1].childNodes[1].className = "lt-bg";
        fileTable.rows[i-1].childNodes[2].className = "lt-tr-corner";
        fileTable.rows[i+1].childNodes[0].className = "lt-bl-corner";
        fileTable.rows[i+1].childNodes[1].className = "lt-bg";
        fileTable.rows[i+1].childNodes[2].className = "lt-br-corner";
    }
}

function closeOpenShares() {
    // Get handle on file table
    var manageFilesTable = document.getElementById('manageFilesTable');

    // Close any open "share file" boxes
    for (var i = 0; i < manageFilesTable.rows.length ; i += 1) {
        if(manageFilesTable.rows[i].id.indexOf("shareRow") != -1) {
            var shareFileID=manageFilesTable.rows[i-2].id;
            shareFileID=shareFileID.substring(0,shareFileID.indexOf("Row1"));
            var shareFile=document.getElementById(shareFileID+"File");
            var shareFilename=shareFile.innerHTML;
            var targetID=document.getElementById("copyTextInputField-"+shareFilename).value;
            var re=/.*targetID=/i;
            targetID=targetID.replace(re,"");
            re=/&fileID.*/i;
            targetID=targetID.replace(re,"");
            closeShareForFile(manageFilesTable.rows[i],shareFilename,shareFileID,targetID);
        }           
    }
}

function prepareSubmitLoadFilesFormPrefs(prefsNo) {
    document.fileNumberForm.elements.fileNumber.value = prefsNo;    
    if(document.getElementById('fileSearchString').innerHTML != "") {
        document.fileSearchForm.search.value = document.getElementById('fileSearchString').innerHTML;
        document.fileSearchForm.searchButton.click();
    } else { 
        document.loadFilesForm.loadFilesFormButton.click();
    }   
}

function prepareSubmitLoadFilesFormNo(fileStartNo) {
    startFile = fileStartNo;
    if(document.getElementById('fileSearchString').innerHTML != "") {
        document.fileSearchForm.search.value = document.getElementById('fileSearchString').innerHTML;
        document.fileSearchForm.searchButton.click();
    } else { 
        document.loadFilesForm.loadFilesFormButton.click();
    }   
}

function prepareSubmitLoadFilesFormOrder(orderByString) {
    orderBy = orderByString;
    if(document.getElementById('fileSearchString').innerHTML != "") {
        document.fileSearchForm.search.value = document.getElementById('fileSearchString').innerHTML;
        document.fileSearchForm.searchButton.click();
    } else { 
        document.loadFilesForm.loadFilesFormButton.click();
    }
}

function handleLoadUserFiles(startFile,orderBy) {
    // Initialise file number var
    if(typeof(document.fileNumberForm) != "undefined") {
        var fileNo = document.fileNumberForm.elements.fileNumber.value;
    } else {
        var fileNo = "none";
    }
    
    // Show the user we're loading files
    document.getElementById("loadFilesDiv").innerHTML='<p>&nbsp;</p><p>&nbsp;</p><div align="center" class="tabTxt">Loading Files&nbsp;&nbsp;&nbsp;<img src="/images/progress_circle.gif"></div><p>&nbsp;</p><p>&nbsp;</p>';

    // Call the load files script
    var form = document.loadFilesForm;
    form.action = LOADFILES_SCRIPT + '?qs=' + startFile + ';' + orderBy + ";none" + ";" + fileNo;  
}

function loadFilesDiv(html,totalUserFiles,startFileNumber,endFileNumber,displayedFilesNumber,storageNumber,maxStorageNumber) {    
    document.getElementById('loadFilesDiv').innerHTML=html;
    startFileCount = startFileNumber;
    endFileCount = endFileNumber;
    totalFileCount = totalUserFiles;
    fileCount = displayedFilesNumber;
    storageUsed = storageNumber;
    maxStorage = maxStorageNumber;
}

function handlefileSearchFormSubmit(startFile,orderBy) {

    // Get handle on file table
    var manageFilesTableDiv = document.getElementById('manageFilesTableDiv');

    // Show the user we're searching files
    manageFilesTableDiv.innerHTML='<p>&nbsp;</p><div align="center" class="tabTxt">Searching Files&nbsp;&nbsp;&nbsp;<img src="/images/progress_circle.gif"></div><p>&nbsp;</p><p>&nbsp;</p>';
    document.getElementById("controlFilesTableDiv").innerHTML='';
    document.getElementById("searchButton").style.visibility = "hidden";
    document.getElementById("smartInput").style.visibility = "hidden";
    document.getElementById("storageTableDiv").innerHTML='';

    // Get current search value
    var currentSearchString = document.getElementById('fileSearchString').innerHTML;
    var re=/<b>/i;
    currentSearchString=currentSearchString.replace(re,"");
    document.fileSearchForm.search.value=document.fileSearchForm.search.value.replace(re,"");
    var re=/<\/b>/i;
    currentSearchString=currentSearchString.replace(re,"");
    document.fileSearchForm.search.value=document.fileSearchForm.search.value.replace(re,"");

    // If we request a new search from anything but page1 of a files page reset the start from number
    if (currentSearchString == '' || currentSearchString != document.fileSearchForm.search.value) {
        startFile=0;
    }

    // Initialise file number var
    if(document.fileNumberForm.elements.fileNumber.value != "") {
        var fileNo = document.fileNumberForm.elements.fileNumber.value;
    } else {
        var fileNo = "none";
    }

    // Hide the file count text and search form
    document.getElementById("fileCountText").innerHTML='&nbsp;'; 

    // Call the load files script
    var form = document.fileSearchForm;
    form.action = LOADFILES_SCRIPT + '?qs=' + startFile + ';' + orderBy + ";" + form.elements.search.value + ";" + fileNo;  
}

function checkValidString(myString){
    var invalidChar=false;
    for(var i=0;i<INVALID_STRING_ARRAY.length;i+=1){
        if(myString.indexOf(INVALID_STRING_ARRAY[i])!=-1){
            invalidChar=true;
        }
    }    
    return invalidChar;
}

function convertToKB(fileSizeString) {

    var KBValue = 0;

    sizeArray = fileSizeString.split(" ");

    if (sizeArray[1].indexOf("KB") != -1) {
        KBValue = sizeArray[0];
    } else if (sizeArray[1].indexOf("MB") != -1) {
        KBValue = sizeArray[0]*1024;
    } else if (sizeArray[1].indexOf("GB") != -1) {
        KBValue = (sizeArray[0]*1024)*1024;
    }

    return Math.ceil(KBValue);

}

function setProgressBarPercent(loaded) {
    var blocksize=(175-2)/100
    if(loaded<0)loaded=0;
    if(loaded>=100)loaded=100;
    document.getElementById('progressBar').style.width = blocksize*loaded + "px";
}

function KBtoMBorGB(kb) {

   sizeString = 0;

   if (kb < 1024) {
      sizeString = Math.round(kb)+" KB";
   } else if (kb < 1048576) {
      sizeString = Math.round(kb/1024)+" MB";
   } else {
      sizeString = Math.round(kb/1048576)+" GB";
   }

   return sizeString;
}
function manageInit() {    
    imagePreLoad('/images/trashcan.gif','http://www.plaxo.com/images/abc/buttons/add_button.gif','/images/su.gif','/images/facebook.gif','/images/digg.gif','/images/delicious.gif','/images/clipboard.gif');
}
function onABCommComplete() {
  var emailContent=document.getElementById('friendZamzarEmail').value;
  var newEmailContent = "";
  var emailArray = emailContent.split(", ");
  for (var i=0;i< emailArray.length; i+=1){
      newEmailContent += emailArray[i].replace(/^".*</g,'').replace(/>/g,',');
  }
  document.getElementById('friendZamzarEmail').value = newEmailContent.replace(/,$/g,'');
}

