/* AccesSite JavaScript code
 * Included with AccesSite main toolbar
 * Includes AccesSite toolbar to window interface
 ***************************************************/


function wr (c) {
  document.write(c);
}

function el (id) {
  return document.getElementById(id);
}

// Create invisible overlay 
if (!window.AS_CMS_Created) {
  wr('<div id="AS_Overlay" style="display:none;"></div>' +
     '<div id="AS_Loading" class="AsLayer AsForeColor" style="display:none;">' +
       '<div class="AsWidth"><div class="AsMainContainer" id="AS_LoadingInner">' +
         '<div class="AsTitle AsForeColor">' + window.AS_text.loading + '</div>' +
         '<div class="AsMainContent AsContent"><br><img src="' + 
         window.AS_config.as_files_url + '/images/loading.gif" align="middle" alt="' +
         window.AS_text.loading + '" hspace=10> ' +
         window.AS_text.please_wait + '<br><br></div>' +
         '<div class="AsBottomRowRight">' +
           '<form class="AsForm"><button onclick="AS_StopLoading();" class="AsButton AsMenuBgImg">' + window.AS_text.cancel + '</button></form>' +
         '</div>' +
         '<div class="AsClear"></div>' +
       '</div></div>' +
     '</div>' +
     '<div id="AS_Window" class="AsLayer" style="display:none;">' +
       '<iframe id="AS_Frame" frameborder="0" style="display:none;" class="AsWidth"></iframe>' +
     '</div>');
  
  //$("AS_Overlay").hide();
  
  // Todo: bugfix thats shows the last shown iFrame after hitting the browsers BACK button
  el("AS_Frame").style.display = "none";
  $("AS_Frame").hide();
  $("AS_Overlay").hide();
  
  //alert("Check");
  window.AS_CMS_Created = true;
}

//var PopframeHistory = "";
function AS_OpenPopframe (url,height) {
  if (!height) height = 500;

  // ToDo: Hide other elements:
  // $$('select', 'object', 'embed').each(function(node){ node.style.visibility = 'hidden' });
  //el("AS_Overlay").style.display = "";
  //overlay').hide()

  // stretch overlay to fill page and fade in
  var arrayPageSize = AS_getPageSize();
  $('AS_Overlay').setStyle({ width: arrayPageSize[0] + 'px', height: arrayPageSize[1] + 'px' });
  new Effect.Appear(el("AS_Overlay"), { duration: 0.7, from: 0.0, to: 0.8 });

  //el("AS_Overlay").style.visibility = "hidden";
 
  var arrayPageScroll = document.viewport.getScrollOffsets();
  var offsetTop = (arrayPageScroll[1] + 50) + "px";

        // Doesn't work due to security
  //alert(el("AS_Frame").getAttribute('src'));
  
  //if (el("AS_Frame").src != url) {
    el("AS_Frame").src = url;
    el("AS_Window").style.top = offsetTop;
    
    //el("AS_LoadingInner").style.height = height + "px";
    el("AS_Loading").style.display = "";
    el("AS_Loading").style.top = offsetTop;
  //  }
  //else {
  //  NotifyASLoaded();
  // }
  
  // ToDo: set to visible height
  el("AS_Frame").style.height = height + "px";
  //el("AS_Frame").style.height = (height / 100) + "px";
  //el("AS_Frame").style.width = "10px";
  //new Effect.Scale($("AS_Frame"), 1, {scaleX: false, duration: 0.01, queue: 'front'}); 
  //new Effect.Scale($("AS_Frame"), 1, {scaleY: false, duration: 0.01, delay: 0.01}); 
  
  // Doesn't work because of possible navigation in frame
  //PopframeHistory = url;
  return false;
}

function AS_NotifyLoaded (MainObj) {
  $("AS_Frame").show();
  el("AS_Loading").style.display = "none";
  el("AS_Window").style.display = "";
  
  // Screen height
  var screenH = document.viewport.getDimensions().height - 100;

  // Get Height of used area in doc
  var height = MainObj.clientHeight;
  if (height > 0) {
    if (height > screenH) height = screenH;
    
    el("AS_Frame").style.height = height + "px";
    
    //new Effect.Scale($("AS_Frame"), 100, { scaleFrom: 80, scaleX: false, scaleContent:false, duration: 0.2, scaleMode: "contents" });
    
    }
  return screenH;
  //new Effect.Scale($("AS_Frame"), yScale, {scaleX: false, duration: this.resizeDuration, queue: 'front'});
  //new Effect.Scale($("AS_Frame"), 10000, {scaleX: false, duration: 0.5, queue: 'front'}); 
  //new Effect.Scale($("AS_Frame"), 50, {scaleY: false, duration: 0.5, delay: 0.2}); 
}

function AS_ClosePopframe (url) {
  new Effect.Fade(el("AS_Overlay"), { duration: 0.3 });
  el("AS_Window").style.display = "none";
  if (url) {
    //alert("Nav to " + url);
    location.href = url;
    }
  else {
    //el("AS_Overlay").style.display = "none";
    el("AS_Frame").src = "";
    }
}

function AS_StopLoading () {
  el("AS_Frame").src = "";
  new Effect.Fade(el("AS_Overlay"), { duration: 0.2 });
  el("AS_Loading").style.display = "none";
  el("AS_Window").style.display = "none";
}

/* AccesSite Edit Element Interface */

function AS_SetEditElement (div_id,buttons) {
  // Create a copy of the DIV which we can use for visual feedback
  var fg_div = document.createElement('div');
  var bg_div = document.createElement('div');
  Element.extend(fg_div);
  Element.extend(bg_div);
  bg_div.setStyle({
    border: '1px dashed black',
    background:'url(' + window.AS_config.as_files_url + '/images/px50b.png)',
    cursor:'pointer',
    position:'absolute'
    });
  fg_div.setStyle({
    position:'absolute'
    });

  var html = '<div class="AsSubBar" style="float:right;margin-left:5px;">';
  if (buttons.edit) { 
    html += '<div title="' + window.AS_text.editrecord + '" class="AsMenuBgImg AsBtn AsBtnEdit" onclick="return AS_OpenPopframe(\'' + 
            buttons.edit + '\');" onmouseover="this.className=\'AsMenuBgImg AsBtn AsBtnEditOver\';" ' +
            'onmouseout="this.className=\'AsMenuBgImg AsBtn AsBtnEdit\';"></div>';
    }
  if (buttons['delete']) { 
    html += '<div title="' + window.AS_text.deleterecord + '" class="AsMenuBgImg AsBtn AsBtnDelete" onclick="return AS_OpenPopframe(\'' + 
            buttons['delete'] + '\');" onmouseover="this.className=\'AsMenuBgImg AsBtn AsBtnDeleteOver\';" ' +
            'onmouseout="this.className=\'AsMenuBgImg AsBtn AsBtnDelete\';"></div>';
    }
  if (buttons['move_up']) { 
    html += '<div title="' + window.AS_text.move + ' ' + window.AS_text.up + '" class="AsMenuBgImg AsBtn_Move AsPointer AsBtnMoveUp" onclick="return AS_OpenPopframe(\'' + 
            buttons['move_up'] + '\');" onmouseover="this.className=\'AsMenuBgImg AsBtn_Move AsPointer AsBtnMoveUpOver\';" ' +
            'onmouseout="this.className=\'AsMenuBgImg AsBtn_Move AsPointer AsBtnMoveUp\';"></div>';
    }
  if (buttons['move_down']) { 
    html += '<div title="' + window.AS_text.move + ' ' + window.AS_text.down + '" class="AsMenuBgImg AsBtn_Move AsPointer AsBtnMoveDown" onclick="return AS_OpenPopframe(\'' + 
            buttons['move_down'] + '\');" onmouseover="this.className=\'AsMenuBgImg AsBtn_Move AsPointer AsBtnMoveDownOver\';" ' +
            'onmouseout="this.className=\'AsMenuBgImg AsBtn_Move AsPointer AsBtnMoveDown\';"></div>';
    }
  if (buttons['add']) { 
    html += '<div title="' + window.AS_text.addrecord + '" class="AsMenuBgImg AsBtn AsBtnNew" onclick="return AS_OpenPopframe(\'' + 
            buttons['add'] + '\');" onmouseover="this.className=\'AsMenuBgImg AsBtn AsBtnNewOver\';" ' +
            'onmouseout="this.className=\'AsMenuBgImg AsBtn AsBtnNew\';"></div>';
    }
  html += '</div>';

  fg_div.insert(html);
  //bg_div.hide();
  document.body.appendChild(bg_div);
  document.body.appendChild(fg_div);
  bg_div.clonePosition($(div_id),{offsetLeft:-1,offsetTop:-1});
  fg_div.clonePosition($(div_id),{setHeight:false,setWidth:true});

  bg_div.observe("click", function() { 
    bg_div.hide();
    });
  bg_div.observe("mouseover", function() { 
    bg_div.hide();
    });
  $(div_id).observe("mouseout", function() { 
    bg_div.show();
    });
  fg_div.observe("mouseover", function() { 
    bg_div.show();
    });
  fg_div.observe("mouseout", function() { 
    bg_div.show();
    });

}

