var windows=0;
screen.bufferDepth = -1;

function getWindow(file, title, query, w, h, x, y){
  windows++;
  loadBack();
  var window=document.createElement('div');
  if(!w){
    w=500;
  }
  if(!h){
    h=100;
  }
  if(!x){
    x=200;
  }
  if(!y){
    y=200;
  }
  window.innerHTML='<table class="window" id="window-'+windows+'" cellspacing="0" cellpadding="0"><tr><td class="shadow-lt"></td><td class="shadow-ltt"></td><td class="shadow-t"></td><td class="shadow-rtt"></td><td class="shadow-rt"></td></tr><tr><td class="shadow-llt"></td><td class="shadow-ilt"></td><td class="shadow-null"></td><td class="shadow-irt"></td><td class="shadow-rrt"></td></tr><tr><td class="shadow-l"></td><td class="shadow-null"></td><td class="text"><h3 class="title">'+title+'</h3><a class="exit" href="javascript:void(0);" onclick="closeWindow();">x</a><div class="load" id="windowcontent-'+windows+'">loading...</div></td><td class="shadow-null"></td><td class="shadow-r"></td></tr><tr><td class="shadow-l"></td><td class="shadow-bl"></td><td class="shadow-bottom" rowspan="2"></td><td class="shadow-br"></td><td class="shadow-r"></td></tr><tr><td class="shadow-llb"></td><td class="shadow-ilb"></td><td class="shadow-irb"></td><td class="shadow-rrb"></td></tr><tr><td class="shadow-lb"></td><td class="shadow-lbb"></td><td class="shadow-b"></td><td class="shadow-rbb"></td><td class="shadow-rb"></td></tr></table>';
  window.style.position='absolute';
  window.getElementsByTagName('table')[0].style.width=w+'px';
  window.getElementsByTagName('table')[0].style.height=h+'px';
  window.style.top=getPageSize('browser')[1]/2-h/2+'px';
  window.style.left=getPageSize('browser')[0]/2-w/2+'px';

  setTimeout(function(){document.body.appendChild(window);getContent(file, 'windowcontent-'+windows, query, function(){resizeWindow(windows, 1);});}, 1);
}
function closeWindow(){
  if(document.getElementById('window-'+windows)){
    document.body.removeChild(document.getElementById('window-'+windows).parentNode);  
    document.body.removeChild(document.getElementById('loadwindow-'+windows));
    windows--;
  }
}
function loadBack(){
  var load=document.createElement('div');
  load.className='loadwindow';
  load.id='loadwindow-'+windows;
  load.style.filter="alpha(opacity:0)";
  load.style.KHTMLOpacity="0.0";
  load.style.MozOpacity="0.0";
  load.style.opacity="0.0";
  
  var xP=0;
  var yP=0;

  load.style.width=getPageSize('body')[0]-xP+'px';
  load.style.height=getPageSize('body')[1]-yP+'px';
  document.body.appendChild(load);
  
  alpha(0, 25, 10, [load.id]);
}
function resizeWindow(window, back){
  for(var i=1;i<=windows;i++){
    if($('window-'+i)){
      var repeat=0;
      if(!isIE){$('window-'+i).style.position='absolute';}else if(!$('window-'+i).offsetHeight){repeat=1;}
      $('window-'+i).parentNode.style.top=getPageSize('browser')[1]/2-parseInt($('window-'+i).offsetHeight)/2+'px';
      $('window-'+i).parentNode.style.left=getPageSize('browser')[0]/2-parseInt($('window-'+i).offsetWidth)/2+'px';
      if(repeat){
        $('window-'+i).parentNode.style.top=getPageSize('browser')[1]/2-parseInt($('window-'+i).offsetHeight)/2+'px';
        $('window-'+i).parentNode.style.left=getPageSize('browser')[0]/2-parseInt($('window-'+i).offsetWidth)/2+'px';
      }
      if(!isIE){$('window-'+i).style.position='fixed';}
      if(!back){
        $('loadwindow-'+i).style.width=getPageSize('body')[0]+'px';
        $('loadwindow-'+i).style.height=getPageSize('body')[1]+'px';
      }
    }
  }
  if(document.getElementById('igraph')){
    src=getiGraph();
    document.getElementById('igraph').src=src;
  }
}
onresize=resizeWindow;

function getParent(element, id){
  if(element.id==id){
    return element;
  }else{
    for(var parent=element.parentNode;parent;parent=parent.parentNode){
      if(parent.id==id){
        return parent;
      }
    }
  }
  return 0;
}
function alpha(start, end, point, elements, func){
  if(start<end){
    start=start+point;
    if(start<end){
      for(var x in elements){
        if(start){
          $(elements[x]).style.filter="alpha(opacity:"+start+")";
          $(elements[x]).style.KHTMLOpacity=start/100;
          $(elements[x]).style.MozOpacity=start/100;
          $(elements[x]).style.opacity=start/100;
        }
      }
      setTimeout(function(){alpha(start, end, point, elements, func);}, 10);
    }else{
      for(var x in elements){
        $(elements[x]).style.filter="alpha(opacity:"+end+")";
        $(elements[x]).style.KHTMLOpacity=end/100;
        $(elements[x]).style.MozOpacity=end/100;
        $(elements[x]).style.opacity=end/100;
      }
      if(func){eval(func);}
    }
  }else if(start>end){
    start=start-point;
    if(start>end){
      for(var x in elements){
        if(start && $(elements[x])){
          $(elements[x]).style.filter="alpha(opacity:"+start+")";
          $(elements[x]).style.KHTMLOpacity=start/100;
          $(elements[x]).style.MozOpacity=start/100;
          $(elements[x]).style.opacity=start/100;
        }
      }
      setTimeout(function(){alpha(start, end, point, elements, func);}, 10);
    }else{
      for(var x in elements){
        if($(elements[x])){
          $(elements[x]).style.filter="alpha(opacity:"+end+")";
          $(elements[x]).style.KHTMLOpacity=end/100;
          $(elements[x]).style.MozOpacity=end/100;
          $(elements[x]).style.opacity=end/100;
        }
      }
      if(func){eval(func(end));}
    }
  }
}