var appList = new Array();
var ongletsAppForm = null;
var idPodOpened = null;
var idApplicationToOpen = -1;
var paramsToAdd = '';
var selectedOnglet = 0;





function moveUp(){
  stepMove = Math.max(100, $('applicationForm.ongletScrollContainer').getHeight()-100);
  var limit = 0;
  var newPos = $('applicationForm.ongletScrollContainer').scrollTop - stepMove;
  moveOnglets(Math.max(newPos, limit));
}

function moveDown(){
  stepMove = Math.max(100, $('applicationForm.ongletScrollContainer').getHeight()-100);
  var limit = $('applicationForm.ongletScrollContainer').scrollHeight-$('applicationForm.ongletScrollContainer').getHeight();
  var newPos = $('applicationForm.ongletScrollContainer').scrollTop + stepMove;
  moveOnglets(Math.min(newPos, limit));
}

var timeoutOngletHandler;
function moveOnglets(pos){
  var delta = pos-$('applicationForm.ongletScrollContainer').scrollTop;
  var ratio=4;
  if(timeoutOngletHandler!=null){
    clearTimeout(timeoutOngletHandler);
    timeoutOngletHandler = null;
  }
  if(Math.abs(delta)>Math.floor(stepMove/4)){
    delta=(delta<0?-1:1)*Math.floor(stepMove/4);
    ratio = 2;
  }
  if(Math.abs(delta)>4){
    $('applicationForm.ongletScrollContainer').scrollTop += Math.floor(delta/ratio);
    timeoutOngletHandler = setTimeout('moveOnglets('+pos+');', 50);
  } else {
    $('applicationForm.ongletScrollContainer').scrollTop = pos;
  }
}





function refreshApplicationForm(idApplication){
  openWaitingForm();
  idApplicationToOpen = (idApplication==null)?-1:idApplication;
	controller.requestController('getPodApplications', 'idPod='+idPodOpened, refreshAppListLoaded);
}

function refreshAppListLoaded(newAppList){
  refreshAppList(newAppList);
  closeWaitingForm();
  switchOnglet();
}






function refreshAppList(newAppList){
  var ongletList = new Array();
  var ongletColors = new Array();
  var ongletTextColors = new Array();
  appList = newAppList;
  if(ongletsAppForm != null) delete ongletsAppForm;
  if(lookingForValue!='' && getPod(idPodOpened).nbResults>0){
    idApplicationToOpen = -1;
    selectedOnglet=-1;
  }
  if(myLoginStatus.administrator || (getPod(idPodOpened)!=null && !Object.isUndefined(getPod(idPodOpened).admin) && getPod(idPodOpened).admin==1)){
    appList.push({'idApplication':0, 'name':'Admin', url:'Applications/PodAdmin/', position:0, 'textColor':'#F00'});
  }
  for(var i=0; i<appList.length; i++){
    ongletList[i] = '<img border="0" width="64px" height="64px" src="http://shared.publing.com/AppLogos/'+appList[i].idApplication+'.png"><br />'+appList[i].name;
    ongletColors[i] = appList[i].color || '';
    ongletTextColors[i] = appList[i].textColor || '';
    if(appList[i].idApplication == idApplicationToOpen){
      selectedOnglet = i;
    }
  }
  ongletsAppForm = new COnglet(ongletList,'switchOngletApp', {
                                          'color':ongletColors,
                                          'textColor':ongletTextColors});
}

function switchOngletApp(onglet, parameters){
  openPoonMessage(22);
  switchOnglet(onglet, parameters);
}



function closeApplicationForm(){
  if(windowModalManager.activeWindowPile && windowModalManager.activeWindowPile.length>0 && windowModalManager.activeWindowPile[0]=='applicationForm'){
    closeWindowModal();
  }
}
function openApplicationForm(idPod, idApplication, params){
  openWaitingForm();
  idPodOpened = idPod;
  selectedOnglet = 0;
  idApplicationToOpen = (idApplication==null)?-1:idApplication;
  paramsToAdd = (params==null)?'':params;
	controller.requestController('getPodApplications', 'idPod='+idPod, appListLoaded);
}

function appListLoaded(newAppList){
  refreshAppList(newAppList);
  closeWaitingForm();
  $('applicationForm.onglets').style.paddingTop = '0px';
  openTheApplicationForm();
}

function openTheApplicationForm(){
  openWindowModal('applicationForm', {
                  'isPersistent':true,
                  'onMap':true,
                  'onOpen': function (){
                    switchOnglet();
                    $('applicationForm.ongletScrollContainer').scrollTop = 0;
                    loginAsVisitor();
                  },
                  'onClose': function (){
                    $('applicationForm.container').src = 'about:blank';
                    showPoonRandomMsgOnMap();
                  }
                });
}

function switchOnglet(onglet, parametres){
  selectedOnglet = (onglet==null)?selectedOnglet:onglet;
  
  $('applicationForm.container').src = 'about:blank';
  $('applicationForm.ongletContainer').innerHTML = ongletsAppForm.getOngletBar(selectedOnglet);

  
  if(idPodOpened!=-1){
    if(selectedOnglet==-1){
      $('applicationForm.container').src = 'Applications/SearchEngine/?search='+encodeURIComponent($('applicationForm.searchText').value)
                                                                      +'&idPod='+idPodOpened;
    } else {
      var params = '&idPod='+idPodOpened
                  +'&SessionID='+encodeURIComponent(readCookie('MySessionID'))
                  +'&dummy='+encodeURIComponent((new Date()).getTime())
                  +'&'+paramsToAdd;
      if(parametres) params+='&'+parametres;
      if(appList[selectedOnglet].url==''){
        $('applicationForm.container').src = 'API/?appName='+encodeURIComponent(appList[selectedOnglet].name)
                                            +params;
      } else {
        $('applicationForm.container').src = appList[selectedOnglet].url
                                            +((appList[selectedOnglet].url.indexOf('?')==-1)?'?':'&')
                                            +'auth='+encodeURIComponent(readCookie('auth'))
                                            +params;
      }
    }
  } else {
    $('applicationForm.container').src = appList[selectedOnglet].url
                                          +((appList[selectedOnglet].url.indexOf('?')==-1)?'?':'&')
                                          +'idUser='+idUserSelected
                                          +'&dummy='+encodeURIComponent((new Date()).getTime())
                                          +'&'+paramsToAdd;
  }
  
  $('applicationForm.container').focus();

  openWaitingForm();
}

function switchApp(idApplication, parametres){
  for(var i=0; i<appList.length; i++){
    if(appList[i].idApplication == idApplication){
      selectedOnglet = i;
    }
  }
  switchOnglet(selectedOnglet, parametres);
}

function appLoaded(){
  closeWaitingForm();
}
