//$Id: pageoptionsex.js,v 1.9 2009/03/09 12:15:07 sasha@netcomposite.com Exp $
var PageNamesEx =
{
 'my_profile':
 {
  'basic_information':'Basic information',
  'social_information':'Social information',
  'profile_photo':'Profile photo',
  'profile_avator':'Profile avator',
  'signature':'Signature'
 },
 'account_settings':
 {
  'accepted_agreements':'Accepted agreements',
  'change_member_id':'Change Member ID',
  'change_email':'Change e-mail',
  'change_password':'Change password',
  'close_account':'Close account'
 }
};

var waitHTMLEx =
 '<div id="PageOptionsLoading">' +
  '<p><img src="/assets/images/icons/ic_loading_processing_gray.gif" width="48" height="48" alt="Please wait" />' +
   'Please wait...' +
  '</p>' +
 '</div>';

var pagesEx = new Array();
var currentIDEx = {'my_profile':'basic_information','account_settings':'accepted_agreements'};
var upLoadFiles = new Array();
var TimerInterval = 500;
var currentImage  = 0;
var imagesList;

function restoreTabsEx()
{
 var ul = $('OptionsUlEx');
 for (var i=0; i < ul.childNodes.length; i++)
 {
  var t = ul.childNodes[i];
  if (t.nodeType == 1)
  {
   var id1 = t.id;
   var s = '<a class="Open" href="?opt='+ currentID +'&optex='+ id1 +'" onClick="return openPageEx(\'' + id1 + '\')">' + PageNamesEx[currentID][id1] +'</a>';
   t.innerHTML = s;
  }
 }
}

function openPageEx(id, addon)
{
 restoreTabsEx();
 var tab = $(id);
 tab.innerHTML = '<a class="Close" name="' + PageNamesEx[currentID][id] +'">' + PageNamesEx[currentID][id] +'</a>';
 if (!pagesEx[id])
 {
  $('OptionsContentEx').innerHTML = waitHTMLEx;
  if (addon)
  {
   var value = addon;
   value['id'] = id;
  } else
  {
   var value = new Array();
   value['id'] = id;
  }
  loadPageEx('uri', value);
 } else
 {
  $('OptionsContentEx').innerHTML = pagesEx[id];
  pages[currentID] = $('OptionsContent').innerHTML;
 }
 currentIDEx[currentID] = id;
 return false;
}

function loadPageEx(mode, value)
{
 var req=new j2httpRequest_js;
 var method=null;
 if (typeof (mode)!='object')
 {
  method='GET';
 }
 req.onreadystatechange = function()
 {
  if (req.readyState == 4)
  {
   var result=req.responseJS;
   if (result['html'])
   {
    if (currentIDEx[currentID] == result['id'])
    {
     $('OptionsContentEx').innerHTML=result['html'];
     pages[currentID] = $('OptionsContent').innerHTML;
    }
    pagesEx[result['id']] = result['html'];
    if (result['id'] == 'profile_avator')
    {
     imagesList=result['items'].split(',');
     currentImage  = 0;
    }
   }
  }
 }
 if (this.script_name)
 {
  value['script_name'] = this.script_name;
 }
 if (this.tab_name)
 {
  value['tab_name'] = this.tab_name;
 }
 if (this.meta_data)
 {
  value['meta_data'] = this.meta_data;
 }
 req.open(method, '/assets/templ/include_globals/options.php', true);
 req.send({'mode':mode,'value':value});
 return false;
}

function requestSendEx(field, id, message)
{
 var sendHTML =
  '<div id="PageOptionsLoading">' +
   '<img src="/assets/images/icons/ic_loading_processing_gray.gif" />' +
   message +
  '</div>';
 try {
  pagesEx[currentID][id] = false;
 } catch (ex) {}
 var params={'sendname':field.name, 'sendvalue':field.value, 'formname':$(field.form.id).name, 'id':id}
 loadPageEx($(field.form.id), params);
 $('OptionsContentEx').innerHTML = sendHTML;
 return false;
}

function imageOnClick(elem)
{
 try{
  $("currentAvator").src=elem.firstChild.src;
  var name = elem.firstChild.src.replace(/^\s*|\s*$/g,"");
  while (name.indexOf('\\')!=-1)
  {
   name = name.replace('\\','/');
  }
  if (name.lastIndexOf('/') != -1)
  {
   name = name.slice(name.lastIndexOf('/')+1);
  }
  $("currentAvatorInput").value=name;
 } catch(ex) {}
}

function photoDel(fname,message)
{
 okdelete = confirm(message);
 if (okdelete)
 {
  loadPageEx($('userPhotoLoad'),{'unl':fname,'id':currentIDEx[currentID]});
 }
 return false;
}

function photoPub(refer,fname,file)
{
 var table = document.getElementById('tableAttachmentsPostTable');
 var trList= table.getElementsByTagName('tr');
 var tdData= null;
 for (var j=0;j<trList.length;j++)
 {
  var find = false;
  var tdList = trList[j].getElementsByTagName('td');
  for (var k=0;k<tdList.length;k++)
  {
   if (k==0) find = searchUploadFile(file,tdList[k].innerHTML);
   if (k==2)
   {
    if (find) tdData = tdList[k];
    tdList[k].innerHTML=tdList[k].innerHTML.replace(' private',' public');
   }
  }
 }
 if ($("idProfilePhoto").src.indexOf(fname)==-1)
 {
   $("idProfilePhoto").src='/assets/images/attachments/'+fname;
   $("nftProfilePhoto").value=fname;
   if (tdData) tdData.innerHTML = tdData.innerHTML.replace(' public',' private'); 
 } else
 {
   $("idProfilePhoto").src='/assets/images/pics/no_profile_photo.jpg';
   $("nftProfilePhoto").value='';
 }
 return false;
}

function uploadForm()
{
 var input = null;
 if (document.getElementById('iduplFile').value.length>0) input = document.getElementById('iduplFile');
 if (document.getElementById('iduplURL').value.length>0)  input = document.getElementById('iduplURL');
 if (input != null && input.value.length)
 {
  var name = input.value.replace(/^\s*|\s*$/g,"");
  while (name.indexOf('\\')!=-1)
  {
   name = name.replace('\\','/');
  }
  if (name.lastIndexOf('/') != -1)
  {
   name = name.slice(name.lastIndexOf('/')+1);
  }
  for (var i=upLoadFiles.length-1;i>=0;i--)
  {
   if (upLoadFiles[i].name == name)
   {
    return false;
   }
  }
  upLoadFiles[upLoadFiles.length++] = {'name':name,'progress':1};
  addUploadTable(name,1);
  loadPageEx($('userPhotoLoad'),{'id':currentIDEx[currentID]});
 }
 updateProgress();
 return false;
}

function printUploadFile()
{
 if (upLoadFiles.length)
 {
  for (var i=upLoadFiles.length-1;i>=0;i--)
  {
   addUploadTable(upLoadFiles[i].name,upLoadFiles[i].progress);
  }
 }
}

function searchUploadFile(name,text)
{
 if (text)
 {
  var tbody = text.toLowerCase();
 } else
 {
  var tbody = document.getElementById('tableAttachmentsPostTable').getElementsByTagName("tbody")[0].innerHTML.toLowerCase();
 }
 var sfind = name+'</a>';
 return tbody.indexOf(sfind.toLowerCase()) != -1;
}

function packUploadFile()
{
 var tmpAr = new Array();
 for (var i=0;i<upLoadFiles.length;i++)
 {
  if (!searchUploadFile(upLoadFiles[i].name))
  {
   tmpAr[tmpAr.length++] = upLoadFiles[i];
  }
 }
 upLoadFiles = tmpAr;
}

function addUploadTable(name,progress)
{
 var table = document.getElementById('tableAttachmentsPostTable');
 var tbody = document.getElementById('tableAttachmentsPostTable').getElementsByTagName("tbody")[0];
 if (tbody)
 {
     var row = document.createElement("tr");
     var td1 = document.createElement("td");
     td1.setAttribute('class','File');
     var a = document.createElement("a");
     a.setAttribute('name',name);
     a.appendChild(document.createTextNode(name));
     td1.appendChild(a);
     var td2 = document.createElement("td");
     td2.setAttribute('class','Size');
     td2.appendChild (document.createTextNode("Uploading..."));
     var td3 = document.createElement("td");
     td3.setAttribute('class','Tools');
    var span = document.createElement("span");
   span.setAttribute("class", "AttachmentUploading");
   span.setAttribute("style", 'width: '+progress+'%');
    var textNode = document.createTextNode(progress+'%');
    span.appendChild(textNode);
     td3.appendChild (span);
     row.appendChild(td1);   
     row.appendChild(td2);
     row.appendChild(td3);  
  if (table.getElementsByTagName('tr').length > 1)
  {
   tbody.insertBefore(row,table.getElementsByTagName('tr')[1]);
  } else
  {
   tbody.appendChild(row);
  }
    }
}

function updateProgress()
{
 if (upLoadFiles.length)
 {
  var table = document.getElementById('tableAttachmentsPostTable');
  var trList= table.getElementsByTagName('tr');
  var count = 0;
   for (var i=upLoadFiles.length-1;i>=0;i--)
  {
   if (upLoadFiles[i].progress > 75 && upLoadFiles[i].progress < 100)
   {
    upLoadFiles[i].progress += 1;
   } else
   {
    upLoadFiles[i].progress += 2;
   }
   if (upLoadFiles[i].progress > 100) upLoadFiles[i].progress = 1;
   for (var j=0;j<trList.length;j++)
   {
    var tdList = trList[j].getElementsByTagName('td');
    var find = false;
                for (var k=0;k<tdList.length;k++)
    {
     if (k==0) find = searchUploadFile(upLoadFiles[i].name,tdList[k].innerHTML);
     if (find && k==2 && tdList[k].firstChild.nodeName=='SPAN')
     {
      tdList[k].firstChild.setAttribute("style", 'width: '+upLoadFiles[i].progress+'%');
      tdList[k].firstChild.innerHTML = upLoadFiles[i].progress+'%';
      count++;
     }
    }     
   }
  }
  if (count) window.setTimeout(updateProgress,TimerInterval);
 }
 return false;
}

function rollImage(delta)
{
 var pos = currentImage+delta;
 var collection = $('AccountAvatorGallery');
 var total = 0;
 for (i=0;i<collection.childNodes.length;i++)
 {
  if (collection.childNodes[i].nodeType == 1 && collection.childNodes[i].className == "Thumbnail") total = total+1;
 }
 if (pos < 0) pos = 0;
 if (pos+total > imagesList.length) pos = imagesList.length-total;
 if (pos < 0) pos = 0;
 if (pos != currentImage)
 {
  currentImage = pos;
  for (i=0;i<collection.childNodes.length;i++)
  {
   if (collection.childNodes[i].nodeType == 1 && collection.childNodes[i].className == "Thumbnail")
   {
    collection.childNodes[i].firstChild.setAttribute("src","/assets/images/attachments/"+imagesList[pos]);
    pos = pos + 1;
   }
  }
 } 
 return false;
}

function uploadFormAv()
{
 loadPageEx($('userAvatorLoad'),{'id':currentIDEx[currentID]});
 return false;
}
