var isBatchMove = false;
var editItemCurrIndex = 0;
var tagItemTags = new Array();
var tagItemTagsAll = new Array();
var tagItemId =0;
var tagItemDXY =null;
var isTagVideo = false;
function shareHelp(msg,title) {
  $("shareHelp").innerHTML='<span class="bold">Share: '+title+'</span> <div class="l10">'+msg+'</div>';
}
function setPeriodIcon(userId,itemId,periodId){
  $('periodIcon').innerHTML='<img src="images/wait_g.gif" alt="waiting" style="margin-top:50px;">';
  var url = "updatePeriodIcon.htm?userId="+userId+"&itemId="+itemId;
  new Ajax.Updater("periodIcon",url,{onComplete: function(){
    mhide('loading');
    $('ipimg'+periodId).innerHTML="";
    $('ipimg'+periodId).style.backgroundImage="url(\""+$('periodIcon').getElementsByTagName('img')[0].src+"\")";
    $('periodIcon'+periodId).style.backgroundImage="url(\""+$('periodIcon').getElementsByTagName('img')[0].src+"\")";
  }});
}
function checkFriendType() {
  var objs=document.getElementsByName('friendType');
  var checkedCount = 0;
  for (var i=0; i<objs.length;i++) {
    if (objs[i].checked) checkedCount++;
  }
  if (checkedCount==0) {
    $('friendImg').src="images/friend.gif";
    $('checkAllImg').src="images/checkall.gif";
  }
  else {
    $('friendImg').src="images/relative.gif";
    $('checkAllImg').src="images/uncheckall.gif";
  }
}
function addTo(userId, itemId,ownerUserId,okTitle) {
  if (ownerUserId>-1) {
    var url = "grab.htm?editUserId="+userId+"&editUserItemId="+itemId;
    new Ajax.Updater("dummy",url,{onComplete: function(){ 
      var periodId = $('grabPeriodId').innerHTML;
      if (isInteger(periodId) && parseInt(periodId)>0) {
        $("grabInfo").innerHTML='<a href="itemList.htm?userId='+ownerUserId+'&periodId='+periodId+'&tagId=-100" title='+okTitle+'>'+okTitle+'</a>';
        alert("Grab successfully");
        mshow('grabInfo');
        new Effect.Highlight("grabInfo",{color:'yellow',duration:5});
        if (gAfterLoginRefresh) {
          location.reload();
        }
      }
      else {
        alert("Grab failed");
      }
    }
    });
  }
  else {
    $('lpbox').innerHTML=$('loginBody').innerHTML;
    mshow('editCoverPane');
    resizePaneScroll();
    mshow('lpbox');
    gItemListLoginFrom = 'grab';
    gAfterLoginMessage = 'grab item';
  }
}
/*
function itemSelectAll(flag,userId) {
 var objs=$('itemDiv').getElementsByTagName("input");
 for (var i=0; i<objs.length;i++) {
   if (objs[i].type.toLowerCase().indexOf("check")>-1) {
    objs[i].checked = flag;
    doCheck(objs[i].id.substr(3),userId);
   }
 }
 if (!flag) deleteCookie(hlightItemsCookieName+"_"+userId);
}
*/
/*
function doCheck(itemId,userId) {
  if ($("chk"+itemId)) {
  if ($("chk"+itemId).checked) {
    checkArr[checkArr.length]=itemId;
    toggleHlightIcon($('id_'+itemId).parentNode,true);
    setCookie(hlightItemsCookieName+"_"+userId,checkArr);
  }
  else {
    var idx =indexOfArray(checkArr,itemId);
    checkArr.splice(idx,1);
    toggleHlightIcon($('id_'+itemId).parentNode,false);
    setCookie(hlightItemsCookieName+"_"+userId,checkArr);
  }
  if (checkArr.length>0) {
    itemList_displayBatchAction(true);
  }
  else {
    itemList_displayBatchAction(false);
  }
  $('selectedCnt').innerHTML = checkArr.length;
  }
}
*/

function addItemGo(type,actionParam) {
  if (!isEmptyString($("userId").value))
    getLinks($('userId').value,$('periodId').value,type,1,'',actionParam);
}
function addItemDoValidate() {
  doAvoidDoubleSubmit();
  var objs= document.getElementsByName("extId");
  var v = "";
  for (var i=0; i<objs.length;i++) {
    if (objs[i].checked) return true;
  }
  return false;
}
function selectExt(idx) {
  var v = $("extId"+idx).value;
  if ($("extId"+idx).checked) {
    $("img"+idx).parentNode.style.border="4px solid #ffcc66";
    if (indexOfArray(selected,v)==-1) selected[selected.length]=v;
  }
  else {
    $("img"+idx).parentNode.style.border="4px solid #fff";
    selected.splice(indexOfArray(selected,v),1);
  }
}
function getLinks(userId, periodId,type,page,albumId,actionParam,existed) {  
  vshow('waiting');
  var s =  (albumId!=null) ? '&aid='+albumId :'';
  var a =  (actionParam!=null) ? '&actionParam='+actionParam:'';
  var e = (existed!=null)?'&ex=1':'';
  var url = "addItemExternal.htm?userId="+userId+"&periodId="+periodId+"&ajax=1&type="+type+"&page="+page+s+a+e;
  var divId = "linksBox";
  var divId1 = 'albumDiv';
  $(divId).innerHTML = '';
  if ($(divId1)) $(divId1).innerHTML = '';
  $('actionBox').style.display='none';
  if ($('actionBox1')) $('actionBox1').style.display='none';
  if (!isEmptyString(actionParam) && actionParam=='album') {
    divId=divId1;
  }
  new Ajax.Updater(divId,url,{onComplete: function(){ 
    if ($(divId).innerHTML.toLowerCase().indexOf("error")>-1) {
    }
    else if (!isEmptyString(actionParam) && actionParam=='album') {
      mshow(divId1);
    }
    else {
      if ($(divId1)) mhide(divId1);
      var n = $(divId).getElementsByTagName("img").length;
      if (n==0) {
        $(divId).innerHTML = '<div class="l20 t20">No result.</div>';
      }
      else {
        $('actionBox').style.display='block';
        if ($('pageNav').getElementsByTagName('a').length==0) mhide('pageNav');  
      }
    }
    vhide('waiting');
  }});
}
function editJournal(pId, itemId, from) {
  if (from.indexOf('#')==-1) from+='|j_'+itemId;
  else from=from.split('#')[0]+'|j_'+itemId;
  location.href='editItem.htm?periodId='+pId+'&itemId='+itemId+'&type='+gTAB_TYPE_JOURNAL+'&actionParam=edit&from='+from;
}
function deleteJournal(pId, userId, itemId,from) {
  if (from.indexOf('#')==-1) from+='|j_'+itemId;
  else from=from.split('#')[0]+'|j_'+itemId;
  if (!confirm("Delete the journal? \nContinue?")) return;
  location.href='deleteItem.htm?periodId='+pId+'&itemId='+itemId+'&type='+gTAB_TYPE_JOURNAL+'&actionParam=edit&from='+from;
}
/*
function addJournal(pId, userId, isPublicEdit,isOwner, fromKey) {
    location.href='addItem.htm?periodId='+pId+'&from='+fromKey+'&type='+gTAB_TYPE_JOURNAL;
}
*/
function addItem(tagId, pId, userId, isPublicEdit,isOwner, type,from, actionParam) { 
  var s ='addItem.htm?periodId='+pId+'&tagId='+tagId+'&type='+type+'&from=itemList.htm?'+from;
  if (actionParam!=null) {
    s+='&actionParam='+actionParam;
  }
  location.href = s;
}
function closeAddPeriod() {
  //mhide('addPeriodLine');
  $('tf').reset();
  var div = $('addPeriodLine');
  new Effect.BlindUp(div);
  mshow('firstArrow');
  mhide('callout');

}
function addPeriod(e,pId,userId,isPublicEdit,isOwner,flag) {
  periodList_setCookie(userId,pId);
  mhide('addPeriodYears');
  var div = $('addPeriodLine');
  theMGUIP.currPeriodId = pId;
  var curPeriod = theMGUIP.getPeriodById(pId);
  if (flag==gAddPeriodFlag_empty) {
    $$('#periodNavContent .bg')[0].appendChild(div);
    $('addyear').innerHTML=theMGUIP.birthYear;
  }
  else if (flag==gAddPeriodFlag_normal) {
    theMGUIP.currPeriodId = curPeriod.periodId;
    $$('#periodNavContent .bg')[0].insertBefore(div,$('p'+pId).nextSibling);

    minYear = curPeriod.startYear;
    var maxYear=minYear+parseInt(gMAX_PERIOD_YEAR_RANGE,10);
    if (curPeriod!=null) {
      maxYear = curPeriod.index<theMGUIP.thePeriodList.length-1 ? theMGUIP.thePeriodList[curPeriod.index+1].startYear : maxYear;
    }
    $('addyear').innerHTML= maxYear>minYear+1 ? minYear+1 :minYear;
  }
  else if (flag==gAddPeriodFlag_first) {
    $$('#periodNavContent .bg')[0].insertBefore(div,$('firstArrow').nextSibling);
    $('addyear').innerHTML=theMGUIP.birthYear;
    mhide('firstArrow');
  }
  periodList_changeYear($('addyear').innerHTML);
  var cur = getCursor(e);
  new Effect.BlindDown(div,{duration:1});
  if (getCookie(addPeriodTipDisdplayCookieName)==null || getCookie(addPeriodTipDisdplayCookieName)==0 ) {
    setTimeout(function(){  
      var left = cur[0];
      var top = cur[1]-70;
      callout(left,top,150,'Help','Click year link to select start year of the period',1);
      setCookie(addPeriodTipDisdplayCookieName,1);
    },1000);
  }
  else mhide('callout');
}
function periodList_doAddPeriod() {
  if (isEmptyString($('periodTitle').value)) {
    alert('Period Tile is required.');
    return false;
  }
  var curPeriod = theMGUIP.getCurrPeriodById();
  if (curPeriod!=null) $('periodId').value=curPeriod.periodId;
  $('addPeriodYearHidden').value=$('addyear').innerHTML;
  $('yearPeriodIds').value=periodList_getYearPeriodIds($('addyear').innerHTML,$('periodId').value);
  var params = Form.serialize($('tf'));
  new Ajax.Request('addPeriodInline.htm', {asynchronous:false, parameters:params, onComplete:function() {
    location.reload();
  }});
  return false;
}
function periodList_addPeriodYears(e) {
  mhide('callout');
  var curPeriod = theMGUIP.getCurrPeriodById();
  var minYear=theMGUIP.birthYear;
  var maxYear=Math.min(minYear+parseInt(gMAX_PERIOD_YEAR_RANGE,10),new Date().getFullYear());

  if (curPeriod!=null) {
    minYear = curPeriod.startYear;
    maxYear=Math.min(minYear+parseInt(gMAX_PERIOD_YEAR_RANGE,10),new Date().getFullYear());
    maxYear = curPeriod.index<theMGUIP.thePeriodList.length-1 ?
              theMGUIP.thePeriodList[curPeriod.index+1].startYear : maxYear;
  }
  if (curPeriod==null && theMGUIP.thePeriodList.length>0) {
    minYear=theMGUIP.birthYear;
    maxYear = theMGUIP.thePeriodList[0].startYear;
  }
  var s = '';
  for (var i=minYear;i<=maxYear;i++) {
    s+='<div onclick="periodList_changeYear('+i+')" onmouseover="periodList_yearmouse(1,this)" onmouseout="periodList_yearmouse(0,this)">'+i+'</div>';
  }
  $('addPeriodYears').innerHTML=s;
  var cur = getCursor(e);
  $('addPeriodYears').style.left=(cur[0]-30)+'px';
  $('addPeriodYears').style.top=(cur[1]+6)+'px';
  mshow('addPeriodYears');
}

function periodList_changeYear(year) {
  if (isEmptyString(year)) year=0;
  $('addyear').innerHTML=year;
  var y = parseInt($('addyear').innerHTML,10) - theMGUIP.birthYear;
  $('periodTitle').value= y + (y>1?' years old':' year old');
  mhide('addPeriodYears');
}
function editPeriod(pId,userId,isPublicEdit, isOwner,from,createdById, isEdit) {
  if (isEdit)
   location.href="editPeriod.htm?periodId="+pId;
  else
    location.href="mergePeriod.htm?periodId="+pId;
}
function deletePeriod(pId,userId,isPublicEdit, isOwner,from,createdById) {
  if (!confirm("Delete the period will delete all items in the period. \nContinue?")) return;
  location.href="deletePeriod.htm?periodId="+pId;
}
function moveItem(periodId) {
  var fromPId = theMGUItemList.periodId;
  var toPId = periodId;
  if (isBatchMove) {
    $('itemsForm').action="moveItem.htm";
    $('toPeriodId').value=toPId;
    $('itemsForm').submit();
  }
  else
    var url="moveItem.htm?toPeriodId="+toPId+"&itemId="+theMGUItemList.getCurrItem().itemId+"&periodId="+fromPId+"&tagId="+$('tagId').value+"&t="+$('type').value;
    new Ajax.Request(url,{asynchronous:false, evalScripts:true,onComplete: function(){
      itemList_refreshWindow();
     }
    });
}

/*
function count() {
  var objs = document.getElementsByName("email");
  var n=0;
  for (var i=0; i<objs.length; i++) {
    if (objs[i].checked) n++;
  }
  $("cnt").innerHTML=n;
}
*/
function showPeriodListForBatch() {
  if (theMGUItemList.theMGUIPeriods.length==0) {
    alert("You have no period. Please go to Periods page and add a period.");
    return;
  }
  isBatchMove = true;
  var left = getCookie(leftColumnExpand)!=0 ? (isFB || isBB||isOK||isMS?200:260) : 40;  //facebook
  $('periodListDiv').style.left = (left+$('bMove').offsetLeft+$('bMove').offsetWidth-10)+"px";
  $('periodListDiv').style.top = "150px";
  $("periodListDiv").show();
}
function showPeriodList(cursor,itemId) {
  if (theMGUItemList.theMGUIPeriods.length==0) {
//    if ($('periodList').length==0) {
    alert("You have no period. Please go to Periods page and add a period.");
    return;
  }
  isBatchMove = false;
  if (isEmptyString($('mInfo').innerHTML)) { // tiles view
    $('periodListDiv').style.left = (cursor[0]-4)+"px";
    $('periodListDiv').style.top = (cursor[1]-4)+"px";
    hlightIcon($('id_'+itemId).getElementsByTagName("img")[0]);
  }
  else { // detail view
    $('periodListDiv').style.left = "110px";
    $('periodListDiv').style.top = "200px";
  }
  $("periodListDiv").show();
}
function changeCountry() {
  disableLocation();
  var countryId= $("country").value;
  if (countryId>0) {
    var url = "loadStates.htm?countryId="+countryId+"&ajax=1";
    new Ajax.Updater("stateSpan",url,{onComplete: function(){disableLocation();}});
  }
}
function changeState() {
  disableLocation();
  var countryId= $("country").value;
  var stateId= $("state").value;
  if (countryId>0 && stateId>0) {
    var url = "loadCities.htm?countryId="+countryId+"&stateId="+stateId+"&ajax=1";
    new Ajax.Updater("citySpan",url,{onComplete: function(){
      var url = "loadColleges.htm?countryId="+countryId+"&stateId="+stateId+"&ajax=1";
      new Ajax.Updater("collegeSpan",url,{onComplete: function(){
        disableLocation();
      }});
    }});
  }
}
function changeCity() {
  $("cityEnter").value="";
  var countryId= $("country").value;
  var stateId= $("state").value;
  var cityId= $("city").value;
  disableLocation();
  if (countryId>0 && stateId>0 && cityId>0) {
    var url = "loadSchools.htm?countryId="+countryId+"&stateId="+stateId+"&cityId="+cityId+"&ajax=1";
    new Ajax.Updater("schoolSpan",url,{onComplete: function(){}});
  }
}
function changeSchool() {
  $('schoolEnter').value='';
  $('college').selectedIndex=0;
}
function changeSchoolEnter() {
  $('school').selectedIndex=0;
  $('college').selectedIndex=0;
}
function changeCollege() {
  $('schoolEnter').value='';
  $('school').selectedIndex=0;
}

function disableLocation() {
  $("state").disabled = true;
  $("city").disabled = true;
  $("school").disabled = true;
  $("college").disabled = true;
  $("cityEnter").disabled = true;
  $("schoolEnter").disabled = true;
  if ($('country').value==398) {   //usa
    $("state").disabled = false;
    if ($('state').selectedIndex>0) {
      $("city").disabled = false;
      $("cityEnter").disabled = false;
      $("college").disabled = false;
       if ($('city').selectedIndex>0) {
        $("school").disabled = false;
        $("schoolEnter").disabled = false;
        $("cityEnter").value = "";
        if ($('school').selectedIndex>0) {
          $("college").selectedIndex=0;
          $("schoolEnter").value="";
        }
        if ($('college').selectedIndex>0) {
          $("school").selectedIndex=0;
          $("schoolEnter").value="";
        }
      }
      else {
        if (isEmptyString($('cityEnter').value)) {
          $('school').selectedIndex=0;
          $('college').selectedIndex=0;
          $('schoolEnter').value="";
        }
        else {
          $('school').selectedIndex=0;
          $("schoolEnter").disabled = false;
        }
      }
    }
    else {
      $('city').selectedIndex=0;
      $('school').selectedIndex=0;
      $('college').selectedIndex=0;
      $('cityEnter').value="";
      $('schoolEnter').value="";
    }
  }
  else {
    $('state').selectedIndex=0;
    $('city').selectedIndex=0;
    $('school').selectedIndex=0;
    $('college').selectedIndex=0;
/*
    $('cityEnter').value="";
    $('schoolEnter').value="";
*/
    $("cityEnter").disabled = false;
    $("schoolEnter").disabled = false;
  }
}

function changeCityEnter() {
  if (!isEmptyString($('cityEnter').value)) {
    $("schoolEnter").disabled = false;
    $("college").disabled = false;
    $("school").disabled = true;
  }
}

function rotateItem(dir,itemId,imgDivId,isAjax,idx) {
  var url = "rotateImg.htm?dir="+dir+"&itemId="+itemId+"&ajax="+isAjax+"&rdm="+new Date().getTime();
  $('waiting').style.top=($(imgDivId).parentNode.parentNode.offsetTop+45)+"px";
  mshow("waiting");
  new Ajax.Updater("dummy",url,{evalScripts:true,onComplete: function(){
    $('imgg_'+itemId).src = replaceStr($("dummy").getElementsByTagName("img")[0].src,'m_','s_');
    mhide("waiting");
    $('name'+idx).value=$('newImageName').innerHTML;
    if (isAjax=='true' && $('isAjax').innerHTML.indexOf('true')>-1) {
      setTimeout(function() {
        $('img_'+itemId).src = $('imgg_'+itemId).src;
      },10)
    }
  }});
}

function count(textId, countId, len) {
  var cnt = $(textId).value.length;
  if (cnt>len) {
    cnt=len;
    $(textId).value=$(textId).value.substr(0,len);
  }
  $(countId).innerHTML = cnt;
}
function setMoveButtons() {
  $('toUnselect').disabled=($('selected').selectedIndex==-1);
  $('toSelect').disabled=($('unselected').selectedIndex==-1 || $('unselected').options[$('unselected').selectedIndex].className=="disabled");
  $('toUnselectAll').disabled=($('selected').length==0);
  $('toSelectAll').disabled=($('unselected').length==0);
}
function editPFT_setDisable(listId) {
  var listObj = $(listId);
  for (var i=0; i<listObj.options.length;i++) {
    var v = listObj.options[i].value;
    var idx = indexOfArray(allPeriodIds,v);
    if (allPeriodShares[idx]!=gSHARE_FRIEND) {
      listObj.options[i].className="disabled";
    }
  }
}
function editPFT_changeFriendType() {
  var currFt = $('friendType').value;
  if ($('friendType').selectedIndex==-1) return;
  var idx = indexOfArray(friendTypeIds, currFt);
  var currFriends = friendTypeFriendIds[idx];
  var currPeriods = friendTypePeriodIds[idx];
  var selectedFt = $('friendType').options[$('friendType').selectedIndex].text;
  if (selectedFt.length>10) selectedFt=selectedFt.substr(0,10)+"...";
  $('friendTypeSpan').innerHTML=selectedFt;
  $('friendList').innerHTML="";
  var selectedIdx=0;
  var unselectedIdx=0;
  if (currFt>0) {
    if (currPeriods!=null) {
      clearList($('selected'));
      clearList($('unselected'));
      for (var i=0; i<allPeriodIds.length;i++) {
        if (indexOfArray(currPeriods,allPeriodIds[i])>-1)
          $('selected').options[selectedIdx++]= new Option(allPeriodNames[i], allPeriodIds[i]);
        else {
          $('unselected').options[unselectedIdx]= new Option(allPeriodNames[i], allPeriodIds[i]);
          if (allPeriodShares[i]!=gSHARE_FRIEND) // not friend
            $('unselected').options[unselectedIdx].className="disabled";
          unselectedIdx++;
        }
      }
    }
    else
      for (var i=0; i<allPeriodIds.length;i++) {
        $('unselected').options[unselectedIdx]= new Option(allPeriodNames[i], allPeriodIds[i]);
        if (allPeriodShares[i]!=2) // not friend
          $('unselected').options[unselectedIdx].className="disabled";
        unselectedIdx++;
      }

    for (var i=0; i<allFriendIds.length;i++) {
      if (indexOfArray(currFriends,allFriendIds[i])>-1)
        $('friendList').innerHTML += '<div><a href="publicPeriodList.htm?userId='+allFriendIds[i]+'">'+allFriendNames[i]+'</a></div>';
    }

  }
  else if (currFt==0 && $('selected').length==0)
    for (var i=0; i<allPeriodIds.length;i++) {
      $('unselected').options[unselectedIdx]= new Option(allPeriodNames[i], allPeriodIds[i]);
      if (allPeriodShares[i]!=2) // not friend
        $('unselected').options[unselectedIdx].className="disabled";
      unselectedIdx++;
    }

  setMoveButtons();
  mshow('friendListDiv');
}
function editFriendType_changeFriendType() {
  mhide('desc');
  mhide('required');
  $('friendTypeName').disabled=false;

  var currFt = $('friendType').value;
  var currFtName = getSelectedName('friendType');
  if ($('friendType').selectedIndex==-1) return;
  var idx = indexOfArray(friendTypeIds, currFt);
  var currFriends = friendTypeFriendIds[idx];
  var selectedFt = $('friendType').options[$('friendType').selectedIndex].text;
  if (selectedFt.length>10) selectedFt=selectedFt.substr(0,10)+"...";
  $('friendTypeSpan').innerHTML=selectedFt;
  clearList($('selected'));
  clearList($('unselected'));
  if (currFt==0) {
    $('friendTypeName').value="";
    $('friendNameSpan').innerHTML='New friend type name (*) :';
    mshow('required');
  }
/*
  else if (currFtName==gFRIEND_DEFAULT_NAME) {
    $('desc').innerHTML='"'+gFRIEND_DEFAULT_NAME+'" is system default friend type name. You can not rename it.';
    $('friendTypeName').disabled=true;
    mshow('desc');
  }
*/
  else {
     $('friendNameSpan').innerHTML="Change selected friend type name:";
   }
  var selectedIdx=0;
  var unselectedIdx=0;
  if (currFt>0) {
    $('friendTypeName').value=currFtName;
    if (currFriends!=null) {
      for (var i=0; i<allFriendIds.length;i++) {
        if (indexOfArray(currFriends,allFriendIds[i])>-1)
          $('selected').options[selectedIdx++]= new Option(allFriendNames[i], allFriendIds[i]);
        else
          $('unselected').options[unselectedIdx++]= new Option(allFriendNames[i], allFriendIds[i]);
      }
    }
    else {
      for (var i=0; i<allFriendIds.length;i++)
        $('unselected').options[unselectedIdx++]= new Option(allFriendNames[i], allFriendIds[i]);
    }
  }
  else if (currFt==0 && $('selected').length==0) {
    for (var i=0; i<allFriendIds.length;i++)
      $('unselected').options[unselectedIdx++]= new Option(allFriendNames[i], allFriendIds[i]);
  }
  setMoveButtons();
  $('remove').disabled=(currFt==0);
}

// friend
function friend_addFriend() {
  gotoUrl('search.htm');
}
function friend_doEdit(id,item) {
  var url = "editFriend.htm?friendId="+id;
  var p = item=="group" ? '&g=true' : '';
  gotoUrl(url);
}
function friend_doDelete(id,item,isGroupOwner) {
  if (isGroupOwner==null) isGroupOwner=false;
  if (confirm("Remove selected "+item+"(s)?")) {
    var url = "deleteFriend.htm?friendId="+id;
    var p = isGroupOwner ? '&isGroupOwner=true' : '';
    gotoUrl(url);
  }
}

function itemList_organizeSort(userId, periodId,leftSubTab,reverse) {
  var sort = reverse==null ?$('sortList').value:-1;
  var url ="organizeItemAction.htm?userId="+userId+"&periodId="+periodId+"&actionParam=sortBy&sortBy="+sort+"&tagId="+$('tagId').value+"&t="+$('t').value+'&leftSubTab='+leftSubTab;
  gotoUrl(url);
}
function friendAction() {
  var v = $('friendActionList').value;
  if (v=="notify") {
    $('friendActionList').selectedIndex=0;
    notifyByEmail();
  }
  else if (v=="friendTypeManagement") {
    gotoUrl('editFriendType.htm?from=friendList.htm');
  }
  else if (v=="periodAssignment") {
    gotoUrl('editPFT.htm?from=friendList.htm');
  }
}
function claimAward() {
  var url = "claimAward.htm";
  if (growupWin!=null) growupWin.close();
  growupPopup(url, "claimAward",470,400);
}
function friendList_closePop(e) {
  var target = e.target ? e.target : e.srcElement;
  if (target.className!='dc' && isEmptyString(getParentAll(target,'friendsListDiv'))) {
    mhide('friendsListDiv');
  }
}
function friendList_displayFriends(friendTypeId,friendTypeName,e) {
  var idx = indexOfArray(friendTypeIds, friendTypeId);
  var currFriends = friendTypeFriendIds[idx];
  if (friendTypeName.length>14) friendTypeName=friendTypeName.substr(0,14)+"...";
  $('friendTypeSpan').innerHTML=friendTypeName;
  if (currFriends!=null) {
    $('friendsList').innerHTML="";
    for (var i=0; i<allFriendIds.length;i++) {
      if (indexOfArray(currFriends,allFriendIds[i])>-1)
        $('friendsList').innerHTML+='<div><a href="publicPeriodList.htm?userId='+allFriendIds[i]+'">'+allFriendNames[i]+'</a></div>';
    }
  }
  mshow("friendsListDiv");
  var cur = getCursor(e);
  $('friendsListDiv').style.left=(cur[0]+10)+"px";
  $('friendsListDiv').style.top=(cur[1]+10)+"px";
}
/*
function addItemFB(userId,periodId,type,page,aid) {
  vshow('waiting');
  var url = "addItemExternal.htm?userId="+userId+"&periodId="+periodId+"&ajax=1&type="+type+"&page="+page+"&aid="+aid;
  var divId = page==1 ? "linksBox" : "linksBox"+page;
  new Ajax.Updater(divId,url,{onComplete: function(){
    var n = $(divId).parentNode.getElementsByTagName("img").length;
    if (n==0) {
      $(divId).innerHTML = '<div class="l20 t20">No result.</div>';
    }
    else {
    mhide('albumDiv');
    $('actionBox').style.display='block';
    if ($('actionBox1') && n>40) $('actionBox1').style.display='block';
    page = parseInt($('page').innerHTML);
    $('page').id="page"+(page-1);
    if (page>1)
      getLinks(fbuid, periodId,type,page,aid);
    }
    vhide('waiting');
  }});
}
*/
function periodList_userTrackDetails(d) {
  if (d==null) d=9999;
  if (!isInteger(d)) {
    alert('Invalid data');
  }
  else {
    var div = "utdetails";
    mhide(div);
    var url = "userTrackDetails.htm?days="+d;
    new Ajax.Updater(div,url,{onComplete: function(){
      if (!$('whoVisitedMe')) {
       $('pvisitors').innerHMTL='<span style="margin-left:50px;">visitors</span>';
      }
      new Effect.BlindDown(div,{duration:1});
    }});
  }
}
function periodlist_closeUserTrack(){
  new Effect.BlindUp('utdetails',{duration:1});
}

function slideshowItems(userId,idx) {
  if (isEdit) {
    cancelSetSlideshow(userId,lastPeriodId);
  }
  var periodId = periods[idx];
  var div = "outer"+periodId;
  var url = "ajaxGetSlideshowItems.htm?userId="+userId+"&periodId="+periodId+'&all=0';
  new Ajax.Updater(div,url,{evalScripts:true,onComplete: function(){    
    lastPeriodId=periodId;
    var itemCount = $('period'+periodId).value;
    if (isEmptyString(itemCount) || itemCount==0) mhide(div);
    if (idx+1<periods.length) slideshowItems(userId,idx+1);
  }});
}

function getSlideshowItems(userId,periodId) {
  if (isEdit) {
    cancelSetSlideshow(userId,lastPeriodId);
  }
  var div = "outer"+periodId;
  var url = "ajaxGetSlideshowItems.htm?userId="+userId+"&periodId="+periodId+'&all=1';
  new Ajax.Updater(div,url,{evalScripts:true,onComplete: function(){
    lastPeriodId=periodId;
    isEdit = true;
    mhide('e'+periodId);
    mshow('u'+periodId);
    $('outer'+periodId).style.backgroundColor='lightyellow';
  }});
}

function toggleSlideshow(itemId) {
  toggle('img_'+itemId);
  var idx = indexOfArray(selected,itemId);
  if ($('img_'+itemId).style.display=='block') {
    if (idx==-1) {
      selected[selected.length]=itemId;
    }
  }
  else {
    if (idx>-1) {
      selected.splice(idx,1);
    }
  }
}
function cancelSetSlideshow(userId,periodId) {
  slideRollReset(periodId);
  var div = "outer"+periodId;
  var url = "ajaxGetSlideshowItems.htm?userId="+userId+"&periodId="+periodId+'&all=0';
  new Ajax.Updater(div,url,{evalScripts:true,onComplete: function(){
  }});
}
function slideRollReset(periodId) {
  isEdit = false;
  mshow('e'+periodId);
  mhide('u'+periodId);
  $('outer'+periodId).style.backgroundColor='#fff';
  selected = new Array();
}
function selectSlideshow(itemId) {
  var idx = indexOfArray(selected,itemId);
  if (idx==-1) {
    selected[selected.length] = itemId;
  }
  else {
    selected.splice(idx,1);
  }
}

function setSlideshowItems(userId,periodId) {
  var div = "outer"+periodId;
  var actionParam = '&actionParam=update';
  var url = "ajaxGetSlideshowItems.htm?userId="+userId+"&periodId="+periodId+'&ids='+selected.join(',')+actionParam;
  new Ajax.Updater(div,url,{evalScripts:true,onComplete: function(){
    slideRollReset(periodId);
  }});
}
function previewSlideRoll(userId){
  var div="preview";
  if (previewFlag==1) {
    var url = "previewSlideRoll.htm?userId="+userId;
    new Ajax.Updater(div,url,{evalScripts:true,onComplete: function(){
      mshow(div);
      $('previewLink').innerHTML='Close Preview';
      previewFlag = 0;
    }});
  }
  else {
    mhide('preview');
    $('previewLink').innerHTML='Preview';
    previewFlag = 1;
  }
}
function tagItem_click(e) {
  if (!tagItemStart) return;
  var target = e.target ? e.target : e.srcElement;
  if (!isEmptyString(getParentAll(target,'tagList0'))) return;

  mshow('tagList0');
  var c = getCursor(e);
  var o = $('imgg_'+tagItemId); 
  if (!o) return;
  var dxy = tagItem_getImageXYtoScreen(o);

  var x = c[0];
  var y = c[1];

  if (x<dxy[0] ||
      y<dxy[1] ||
      x>dxy[0]+o.offsetWidth ||
      y>dxy[1]+o.offsetHeight) return;

  x = x-dxy[0] <50 ? dxy[0]+50 : x;
  y = y-dxy[1] <50 ? dxy[1]+50 : y;

  var x1 = ((isFB||isBB||isMS||isOK) && x>350)?  x-340 :x;  // facebook
  $('tagList0').style.left=(x1+60)+'px';
  $('tagList0').style.top=(y-100)+'px';

  mshow('tagbox');
  $('tagbox').style.left=(x-50)+'px';
  $('tagbox').style.top=(y-100)+'px';
  $('newTag0').value='';
  $('newTag0').focus();
  tagItem_writeAllTags();
}
function tagSort(a,b) {
  var aName = a.name.toLowerCase();
  var bName = b.name.toLowerCase();
  if (aName>bName) return 1;
  if (aName<bName) return -1;
  return 0;
}

function tagItem_writeAllTags() {
  var s='';
  tagItemTagsAll.sort(tagSort);
  for (var i=0;i<tagItemTagsAll.length;i++) {
    var tag = tagItemTagsAll[i];                    
    var f = tag.isFriend?'(Friend)':'';
    s+='<a title="'+tag.alian+f+'" href="javascript:tagItem_selectTag(\''+tag.id+'\',\''+tag.name+'\',\''+tag.isFriend+'\')" style="display:block">'+tag.name+'</a>';
  }      
  $('tagListAll').innerHTML=s;
}
function tagItem_writeSelectedTags(tag) {
  var s = '';
  var inSelected = false;
  $('tagNames').innerHTML='';
  var dxy = tagItem_getImageXYtoScreen($('imgg_'+tagItemId));
  for (var i=0;i<tagItemTags.length;i++) {
    var theTag = tagItemTags[i];
    if (tag!=null && tag.id==theTag.id && tag.name.toLowerCase()==theTag.name.toLowerCase()) {
      theTag = tag;
      tagItemTags[i].x=tag.x<0?0:tag.x;
      tagItemTags[i].y=tag.y<0?0:tag.y;
      inSelected = true;
    }
    var span =  (theTag.x>0 && theTag.y>0) ?
                '<span class="tagItem" onmouseover="itemTag_overName('+theTag.x+','+theTag.y+')" onmouseout="mhide(\'tagbox\')">' :
                '<span>';
    s+=span+theTag.name+'<a href="javascript:tagItem_del('+theTag.id+')">(remove)</a></span>, ';
    var x = (parseInt(theTag.x))+dxy[0]-50;
    var y = (parseInt(theTag.y))+dxy[1]-100;
    var rdm = theTag.id;
    if (rdm==0) rdm=getRandom(10000);
    if (x>100 && y>100)
      $('tagNames').innerHTML+='<div style="width:100px;height:100px;background:transparent;position:absolute;left:'+x+'px;top:'+y+'px" onmouseover="ishow(\'tt'+rdm+'\')" onmouseout="mhide(\'tt'+rdm+'\')"><div style="position:relative;left:0;top:0;width:100px;height:100px"><span id="tt'+rdm+'" style="background:white;color:black;display:none;padding:2px;font-size:10px;border:1px solid #ff9900">'+theTag.name+'</span></div><img src="images/spacer.gif" width="100" height="100" style="position:absolute;left:0;top:0"></div>';
  }
  $('selected').innerHTML=s;
  if (tag!=null && !inSelected) {
    tagItemTags[tagItemTags.length]=tag;
    var rdm = tag.id;
    if (rdm==0) rdm=getRandom(10000);
    var span =  (tag.x>0 && tag.y>0) ?
                '<span class="tagItem" onmouseover="itemTag_overName('+tag.x+','+tag.y+')" onmouseout="mhide(\'tagbox\')">' :
                '<span>';
    $('selected').innerHTML+=span+tag.name+'<a href="javascript:tagItem_del('+tag.id+')">(remove)</a></span>, ';
    var x = (parseInt(tag.x))+dxy[0]-50;
    var y = (parseInt(tag.y))+dxy[1]-100;
    if (x>100 && y>100)
      $('tagNames').innerHTML+='<div style="width:100px;height:100px;background:transparent;position:absolute;left:'+x+'px;top:'+y+'px" onmouseover="ishow(\'tt'+rdm+'\')" onmouseout="mhide(\'tt'+rdm+'\')"><div style="position:relative;left:0;top:0;width:100px;height:100px"><span id="tt'+rdm+'" style="background:white;color:black;display:none;padding:2px;font-size:10px;border:1px solid #ff9900">'+tag.name+'</span></div><img src="images/spacer.gif" width="100" height="100" style="position:absolute;left:0;top:0"></div>';
  }

}
function itemTag_overName(x,y) {
  var xy = tagItem_getXYtoScreen(x,y); 
  $('tagbox').style.left=(xy[0]-50)+'px';
  $('tagbox').style.top=(xy[1]-100)+'px';
  mshow('tagbox');
}
function tagItem_del(tagId) {
  theMGUItemList.setTagChanged(true);
  for (var i=0;i<tagItemTags.length;i++) {
    if (tagId==tagItemTags[i].id) {
      tagItemTags.splice(i,1);
      break;
    }
  }
  tagItem_writeSelectedTags(null);
  if (!isTagVideo) {
    mhide('tagbox');
    mhide('tagList0');
  }
}
function tagItem_selectTag(tagId,tagName,isFriend) {
  theMGUItemList.setTagChanged(true);
  var tag = new ItemTag(tagId,tagName,isFriend);
  var dxy = tagItem_getImageXYtoScreen($('imgg_'+tagItemId));
  tag.x = $('tagbox').offsetLeft+50-dxy[0];
  tag.y = $('tagbox').offsetTop+100-dxy[1];
  if (tag.x<0) tag.x=0;
  if (tag.y<0) tag.y=0;
  $('newTag0').value="";
  tagItem_writeSelectedTags(tag);
  if (!isTagVideo) {
    mhide('tagbox');
    mhide('tagList0');
  }
}
function tagItem_getImageXYtoScreen(o) {
//  if (tagItemDXY!=null) return tagItemDXY;
  var ret = new Array();
  var outerW = $('editItemPane').offsetWidth;
  var innerW = $('editItemPaneIn').offsetWidth;;
  var dW = outerW-innerW<0?0:Math.round(0.5*(outerW-innerW));    
  var dH = $('imgContainer').parentNode.offsetTop;
  ret[0]= dW+24;
  ret[1]= dH+54;               
  tagItemDXY = ret;
  return ret;
}
function tagItem_getXYtoScreen(x,y) {
  var ret = new Array();
  var o = $('imgContainer').getElementsByTagName("img")[0];
  var refXY = tagItem_getImageXYtoScreen(o);
  ret[0]= x + refXY[0];
  ret[1]= y + refXY[1];
  return ret;
}

function tagItem_submit() {
  var tagXYs = '';
  var tagIds = ''
  var newTagName = '' ;
  tagItem_getPctXY()
  for (var i=0;i<tagItemTags.length;i++) {
    if (tagItemTags[i].id==0) newTagName+=tagItemTags[i].name+',';
    $('dummy').innerHTML='<input type="hidden" name="tagXY0" value="'+tagItemTags[i].pctX+'-'+tagItemTags[i].pctY+'">';
    $('tagList0').insertBefore($('dummy').firstChild,$('id0'));
    $('dummy').innerHTML='<input type="hidden" name="tags0" value="'+tagItemTags[i].id+'">';
    $('tagList0').insertBefore($('dummy').firstChild,$('id0'));
    $('dummy').innerHTML='<input type="hidden" name="isFriend0" value="'+tagItemTags[i].isFriend+'">';
    $('tagList0').insertBefore($('dummy').firstChild,$('id0'));
  }
  if (!isEmptyString(newTagName)) {
    $('newTag0').value=newTagName.substr(0,newTagName.length-1);
  }
  tagItemStart = false;
  return itemList_ajaxEditItemAction(true);
}
function tagItem_getPctXY() {
  var pictW = $('imgContainer').getElementsByTagName('img')[0].offsetWidth;
  var pictH = $('imgContainer').getElementsByTagName('img')[0].offsetHeight;
  for (var i=0;i<tagItemTags.length;i++) {
    tagItemTags[i].pctX = math_round(100*tagItemTags[i].x/pictW,2);
    tagItemTags[i].pctY = math_round(100*tagItemTags[i].y/pictH,2);
  }
}
function tagItem_getXYFromTag(xy,tag) {
  if (xy.indexOf('-')>0) {
    tag.pctX = xy.split('-')[0];
    tag.pctY = xy.split('-')[1];
    var pictW = $('imgContainer').getElementsByTagName('img')[0].offsetWidth;
    var pictH = $('imgContainer').getElementsByTagName('img')[0].offsetHeight;
    tag.x = tag.pctX*pictW/100;
    tag.y = tag.pctY*pictH/100;
  }
  return tag;
}
function tagItem_type() {
  var input = $('newTag0').value; 
  if (isEmptyString(input) || isInValidString(input)) {
    alert('Invalid name');
    return false;
  }
  for (var i=0; i<tagItemTagsAll.length;i++) {
    var tag = tagItemTagsAll[i];
    if (input.toLowerCase()==tag.name.toLowerCase()) {
      tagItem_selectTag(tag.id,tag.name,tag.isFriend);
      return false;
    }
  }
  theMGUItemList.setTagChanged(true);
  var tagId = 0;
  var newTag = new ItemTag(tagId,input);
  var tag = new ItemTag(tagId,input);
  var dxy = tagItem_getImageXYtoScreen($('imgg_'+tagItemId));
  tag.x = $('tagbox').offsetLeft+50-dxy[0];
  tag.y = $('tagbox').offsetTop+100-dxy[1];
  if (tag.x<0) tag.x=0;
  if (tag.y<0) tag.y=0;
  tagItemTags[tagItemTags.length]=tag;
  tagItemTagsAll[tagItemTagsAll.length]=tag;
  tagItem_writeSelectedTags(tag);
  $('newTag0').value="";
  if (!isTagVideo) {
    mhide('tagbox');
    mhide('tagList0');
  }
  return false;
}
function isValidTagName(s) {
  if (isEmptyString(s)) return true;
  if (s.indexOf("'")>-1 ||
      s.indexOf('"')>-1 ||
      s.indexOf(",")>-1 ||
      s.indexOf(";")>-1
   ) {
    alert("Invalid name");
    return false;
  }
  else return true;
}
function tagItem_inputChange() {
  theMGUItemList.setTagChanged(true);
  var input = $('newTag0').value;
  if (!isValidTagName(input)) return false;
  var ret0 = new Array();
  var ret1 = new Array();
  for (var i=0; i<tagItemTagsAll.length;i++) {
    var tag = tagItemTagsAll[i];
    var idx = tag.name.toLowerCase().indexOf(input.toLowerCase());
    if (idx>-1) {
      if (idx==0) ret0[ret0.length]=tag;
      else ret1[ret1.length]=tag;
    }
  }
  var filter = ret0.concat(ret1);
  var s='';   
  for (var i=0;i<filter.length;i++) {
    var tag = filter[i];
    s+='<a href="javascript:tagItem_selectTag('+tag.id+',\''+tag.name+'\',\''+tag.isFriend+'\')" style="display:block">'+tag.name+'</a>';
  }
  $('tagListAll').innerHTML=s;
  return true;
}
function tagItem_closeTagList() {
  //$('tagbox').innerHTML="";
  //$('tagList0').innerHTML="";
  mhide('tagbox');
  mhide('tagList0');
}
function tagItem_resizeTagName() {
  if ($('tagNames'))
    tagItem_writeSelectedTags(null);
}
function showBatchSelect(e) {
  var left = getCursor(e)[0]+10;
  var top = getCursor(e)[1]-130;
  setTimeout(function(){
    callout(left,top,150,'Help','<b>Select</b>: Ctrl Key + mouse over; <br><b>Unselect</b>: Shift Key + mouse over');
  },50);
}
function editItem_writeSelectedTags(tag){
  $('typeTag'+editItemCurrIndex).value="";
  editItem_writeAllTags();
  var s = '';
  var inSelected = false;
  var ids = new Array();
  var names = new Array();
  for (var i=0;i<tagItemTags.length;i++) {
    var theTag = tagItemTags[i];
    if (tag!=null && tag.id==theTag.id && tag.name.toLowerCase()==theTag.name.toLowerCase()) {
      theTag = tag;
      inSelected = true;
    }
    if (!isEmptyString(theTag.name)) {
      s+='<span>'+theTag.name+'<a href="javascript:editItem_del(\''+theTag.name+'\','+editItemCurrIndex+')">(remove)</a></span>, ';
      ids[ids.length]=theTag.id;
      names[names.length]=theTag.name;
    }
  }
  $('selected'+editItemCurrIndex).innerHTML=s;
  if (tag!=null && !inSelected) {
    tagItemTags[tagItemTags.length]=tag;
    var rdm = tag.id;
    if (rdm==0) rdm=getRandom(10000);
    $('selected'+editItemCurrIndex).innerHTML+='<span>'+tag.name+'<a href="javascript:editItem_del(\''+tag.name+'\','+editItemCurrIndex+')">(remove)</a></span>, ';
    ids[ids.length]=tag.id;
    names[names.length]=tag.name;
  }
  $('tags'+editItemCurrIndex).value=ids.join(',');
  $('tlabel'+editItemCurrIndex).value=names.join(',');
}

function editItem_writeAllTags() {
  var s='';
  tagItemTagsAll.sort(tagSort);
  for (var i=0;i<tagItemTagsAll.length;i++) {
    var tag = tagItemTagsAll[i];
    var bold = tag.isFeatured ? 'font-weight:bold':'';
    s+='<a title="'+tag.alian+'" href="javascript:editItem_selectTag('+tag.id+',\''+tag.name+'\',\''+tag.isFeatured+'\')" style="display:block;'+bold+'">'+tag.name+'</a>';
  }
  $('tagListAll').innerHTML=s;
}
function editItem_setSelectedTags() {
  var selectedIds = $('tags'+editItemCurrIndex).value.split(',');
  var selectedNames = $('tlabel'+editItemCurrIndex).value.split(',');
  tagItemTags = new Array();
  for (var i=0;i<selectedIds.length;i++) {
    tagItemTags[tagItemTags.length]=new ItemTag(selectedIds[i],selectedNames[i]);
  }
}
function editItem_inputChange(index,e) {
  if (typeof itemsInJournal!='undefined' && itemsInJournal) { // it is journal
    mhide('insertItemsDiv');
  }
  editItemCurrIndex = index;
  editItem_setSelectedTags(); 
  if (typeof theMGUItemList!='undefined' && theMGUItemList) theMGUItemList.setTagChanged(true);
  var input = $('typeTag'+index).value;
  if (!isValidTagName(input)) return false;
  var ret0 = new Array();
  var ret1 = new Array();
  for (var i=0; i<tagItemTagsAll.length;i++) {
    var tag = tagItemTagsAll[i];
    var idx = tag.name.toLowerCase().indexOf(input.toLowerCase());
    if (idx>-1) {
      if (idx==0) ret0[ret0.length]=tag;
      else ret1[ret1.length]=tag;
    }
  }
  var filter = ret0.concat(ret1);
  var s='';
  for (var i=0;i<filter.length;i++) {
    var tag = filter[i];
    var bold = tag.isFeatured ? 'font-weight:bold':'';
    s+='<a href="javascript:editItem_selectTag('+tag.id+',\''+tag.name+'\',\''+tag.isFeatured+'\')" style="display:block;'+bold+'">'+tag.name+'</a>';
  }
  $('tagListAll').innerHTML=s;
  editItem_displayCategoryList(index);
  return true;
}

function editItem_displayCategoryList(index) {
  var l = $('typeTag'+index).cumulativeOffset()[0];
  var t = $('typeTag'+index).cumulativeOffset()[1]+20;
  if ($('lpbox')) t=t-50;  // ajax
  else if (typeof itemsInJournal!='undefined' && itemsInJournal) { // it is journal
    t = t-60;
  }
  $('categoryList').style.left=l+'px';
  $('categoryList').style.top=t+'px'; 
  mshow('categoryList');
}
function editItem_selectTag(tagId,tagName,isFeatured) {
  if (typeof theMGUItemList!='undefined' && theMGUItemList) theMGUItemList.setTagChanged(true);

  var tag = new ItemTag(tagId,tagName,null,null,isFeatured);

  editItem_writeSelectedTags(tag);
}
function editItem_del(tagName,itemIndex) {
  editItemCurrIndex = itemIndex;
  if (typeof theMGUItemList!='undefined' && theMGUItemList) theMGUItemList.setTagChanged(true);
  editItem_setSelectedTags();
  for (var i=0;i<tagItemTags.length;i++) {
    if (tagName==tagItemTags[i].name) {
      tagItemTags.splice(i,1);
      break;
    }
  }
  editItem_writeSelectedTags(null);
}
function editItem_closeTagList() {
  mhide('categoryList');
}
function editItem_addTag() {
  var input = $('typeTag'+editItemCurrIndex).value;
  if (!isEmptyString(input)) {
    var existedTag = null;
    for (var i=0; i<tagItemTagsAll.length;i++) {
      var tag = tagItemTagsAll[i];
      if (tag.name.toLowerCase()==input.toLowerCase()) {
        existedTag = tag;
        break;
      }
    }
    if (existedTag==null) {
        var newTag = new ItemTag(0,input,null,null,false);
        tagItemTagsAll[tagItemTagsAll.length]=newTag;
        tagItemTags[tagItemTags.length]=newTag;
        editItem_writeSelectedTags();
    }
    else
      editItem_selectTag(existedTag.id,existedTag.name,existedTag.isFeatured)
  }
  return false;
}
function emptyTag(tag) {
  return isEmptyString(tag.id) && isEmptyString(tag.name);
}
function addBatchCateg(total) {
  var input = $('typeTag'+editItemCurrIndex).value;
  if ((tagItemTags.length==0 || (emptyTag(tagItemTags[0]) && tagItemTags.length==1)) && isEmptyString(input)) return;
  if ((tagItemTags.length==0 || (emptyTag(tagItemTags[0]) && tagItemTags.length==1)) && !isEmptyString(input)) {
    editItem_addTag();
  }
  var itemIds = '';
  var bTagIds = '';
  var bTagNames = '';
  for (var i=0;i<total;i++) {
    itemIds+=$('id'+i).value+',';
  }
  itemIds = itemIds.substr(0,itemIds.length-1);
  for (var i=0;i<tagItemTags.length;i++) {
    var theTag = tagItemTags[i];
    bTagIds+=theTag.id+',';
    bTagNames+=theTag.name+',';
  }
  bTagIds = bTagIds.substr(0,bTagIds.length-1);
  bTagNames = bTagNames.substr(0,bTagNames.length-1);
  if (bTagIds.indexOf(',')==0) bTagIds=bTagIds.substr(1);
  if (bTagNames.indexOf(',')==0) bTagNames=bTagNames.substr(1);
  $('itemIds').value=itemIds;
  $('bTagIds').value=bTagIds;
  $('bTagNames').value=bTagNames;
  var params = Form.serialize($('batchCategForm'));
  var url="batchCategory.htm";
  new Ajax.Request(url, {asynchronous:false, parameters:params, onComplete:function() {
      gotoUrl('itemList.htm?userId='+$('userId').value+'&periodId='+$('periodId').value+'&tagId='+$('tagId').value+'&t='+$('type').value+'&ids='+itemIds);
  }});
}
function uploadYt(actionParam) {
  if (actionParam=='auth') {
    mshow('loading');
    var url = "uploadYtAction.htm";
    new Ajax.Updater('uploadPanel',url,{asynchronous:false, parameters:Form.serialize($('uploadForm')), evalScripts:true,onComplete: function(){
      mhide('loading');
    }});
  }
  else if (actionParam=='detail') {
    mshow('loading');
    var url = "uploadYtAction.htm";
    new Ajax.Updater('uploadPanel',url,{asynchronous:false, parameters:Form.serialize($('uploadForm')), evalScripts:true,onComplete: function(){
      mhide('loading');
    }});

  }
}
function doCancelAccount() {
  location.href="cancelServiceEntry.htm";
}

function confirmCancel() {
  return (confirm("Your uploaded photos, videos, journals and all other items will be deleted on MyGrowUp server. Continue?"));
}

function quickAdd(e) { 
  var cur = getCursor(e);
  $('qAddBox').style.left=(cur[0]-30)+'px';
  $('qAddBox').style.top=(cur[1]+6)+'px';
  mshow('qAddBox');

}
// size:1:1024, 2:600, 3:100
function periodList_doDownload(periodId,size) {
  growupPopup('download.htm?periodId='+periodId+'&size='+size);
}
function periodList_download(periodId,e) {
    var cur = getCursor(e);
    var left=cur[0]-10;
    var top=cur[1];
    var aLine = '<div style="padding:10px;"><b>Download photos in the period:</b>';
/*
    aLine += '<div class="l10"><a href="javascript:dn()" onclick="periodList_doDownload('+periodId+',0)">Original photos</a></div>'
*/
    aLine += '<div class="l10"><a href="javascript:dn()" onclick="periodList_doDownload('+periodId+',1)">Big photos (1024x800)</a></div>'
    aLine += '<div class="l10"><a href="javascript:dn()" onclick="periodList_doDownload('+periodId+',2)">Medium photos (600x400)</a></div>'
    aLine += '<div class="l10"><a href="javascript:dn()" onclick="periodList_doDownload('+periodId+',3)">Small photos (100x80)</a></div>'
    aLine +='<div><input type="button" value="Close" onclick="vhide(\'calloutb\')" class="small l10 t4"></div>';
    aLine +='</div>';
    $$('#calloutb .co_mboxb')[0].firstChild.innerHTML = aLine;
    $('calloutb').style.left = left + 'px';
    $('calloutb').style.top = (top-$('calloutb').offsetHeight-40) + 'px';
   setTimeout(function(){
      periodList_mouseLine(1,periodId);
      vshow('calloutb');
     },10);
}
function editItem_doEditTag(msg,from) {
  if (confirm(msg)) {
    gotoUrl('editTag.htm?from='+escape(from));
  }
}
function eidtItem_editOneByOne() {
  mhide('summaryEdit');
  mshow('editItemsBox');
}
function organizeForAll() {
  alert('Please select "All" category to organize photos.');
}