/**
 * @projectDescription This is the Common functions for WebbAdmin 2.0
 * @version     1.0
 * @copyright   Webbstudion 2007-2017 
 * @author      Patrik Skoog
 * @sdoc        wsCommon.sdoc
 */

/* Internal Holder for the Selectboxes */
var __SelectBoxes = new Array();

/* ************************************************************************** *
 * ** Public Methods ******************************************************** *
 * ************************************************************************** */
function wsEase(minValue,maxValue,totalSteps,actualStep,powr) { 
  var delta = maxValue - minValue; 
  var stepp = minValue+(Math.pow(((1 / totalSteps) * actualStep), powr) * delta); 
  return Math.ceil(stepp) 
} /*wsEase*/

/** @id wsShowSelect */
function wsShowSelect() {
  var i = 0;
  
  /* If we don't have any items, we won't need to process */
  if ( __SelectBoxes.length == 0 ) {
    return;   
  }
  
  /* Show all the select boxes */
  for (i=0; i<__SelectBoxes.length; i++) {
   __SelectBoxes[i].style.visibility='visible';          
  }

  /* Clean Up */
  delete i;
  __SelectBoxes = new Array();
} /*showSelect*/

/** @id wsHideSelect */
function wsHideSelect() {
  var i = 0;
  
  /* First check if we have any items in the array. if we do, return */
  if ( __SelectBoxes.length != 0 ) {
    return;   
  }
  
  /* Hide all visible select boxes */
  var _select = document.getElementsByTagName('select');        
  for( i=0; i<_select.length;i++ ) {
    if ( _select[i].style.visibility != 'hidden' ) {
     _select[i].style.visibility='hidden';            
     __SelectBoxes.push(_select[i]); 
    }          
  } 
  
  /* Clean Up */
  delete i;
  
} /*hideSelect*/

/** @id wsCenterElement */
function wsCenterElement(el) {
  with ( el ) {
    if ( _isIE ) {      
      style.left = ((document.body.offsetWidth / 2) - (offsetWidth /2)) + 'px';
      style.top = ((document.body.offsetHeight / 2) - (offsetHeight /2)) + 'px';          
    }
    else {      
      style.left = ((window.innerWidth / 2) - (offsetWidth /2)) + 'px';
      style.top = ((window.innerHeight / 2) - (offsetHeight /2)) + 'px';
    }
  }
} /*centerElement*/

/** @id wsSetOpacity */
function wsSetOpacity(el, alpha) {	
  if (el.filters) {
    el.style.filter="alpha(opacity="+ alpha +")";
  }
  else if (el.style.Opacity || el.style.MozOpacity || el.style.MozOpacity == "") {
    el.style.MozOpacity = alpha / 101;
  }
  else if (el.style.KhtmlOpacity) {
    el.style.KhtmlOpacity = alpha / 100;
  }
} /*setOpacity*/

/** @id ws$ */
function $(el) {
  return document.getElementById(el);
} /*$*/

/** @id wsF$ */
function $F(el) {
  return document.getElementById(el).value;
} /*$F*/

/** @id wsT$ */
function $T(el) {
  return window.parent.document.getElementById(el);
} /*$*/

/** @id wsAddEventListener */
function wsAdd_EventListener(el, eventType, eventFunction, eventBubbles) {
  if (document.addEventListener) {
		el.addEventListener(eventType, eventFunction, eventBubbles);
	} else if (document.attachEvent) {
		el.attachEvent("on"+eventType, eventFunction, eventBubbles);
	} else {
		el["on"+eventType] = eventFunction;
	}	
} /*wsAdd_EventListener*/

/** @id wsRemoveEventListener */
function wsRemove_EventListener(el, eventType, eventFunction, eventBubbles) {
	if (document.removeEventListener) {
		el.removeEventListener(eventType, eventFunction, eventBubbles);
	} else if (document.detachEvent) {
		el.detachEvent("on"+eventType, eventFunction, eventBubbles);
	} else {
		el["on"+eventType] = null;
	}
}/*wsRemove_EventListener*/
