/**
 * Copyright 2006 Easyvoyage S.A.
 * http://www.easyvols.fr
 *
 * Author : Yannick GALLY (ygally@easyvoyage.fr)
 *
 * Sources:
 *   - prototype framwork
**/

//-------------------- util.commons.js
var EasyCommons={
  Version:'1.0.1'
}
function $(){
	var elements=new Array();
	for (var i=0; i<arguments.length; ++i){
		var element=arguments[i];
		if(typeof element=='string'){
			if(document.getElementById) element=document.getElementById(element);
			else if(document.all) element=document.all[element];
		}
		elements.push(element);
	}
	if(arguments.length==1&&elements.length>0) return elements[0];
	else return elements;
}
function $C(elType){ return document.createElement(elType); }

function exists(something){ if(something) return true; return false; }
function canUseDHTML(){ return exists(document.getElementById) || exists(document.all) || exists(document.layers); }
function canUseW3CDOM(){ return exists(document.getElementById) && exists(document.createElement); }
function ObjectReference(name){
  this.obj=null;
  this.style=null;
  if(document.getElementById){
  	this.obj=document.getElementById(name);
  }
  else if (document.all){
		this.obj=document.all[name];
		this.style=document.all[name].style;
  }
  else if(document.layers){
   	this.obj=document.layers[name];
   	this.style=this.obj;
  }
  else if(document.layers){
		this.obj=getObjNN4(document,name);
		this.style=this.obj;
  }
}
function getObjNN4(obj,name){
	var x=obj.layers;
	var foundLayer;
	for(var i=0;i<x.length;i++){
		if(x[i].id==name) foundLayer=x[i];
		else if(x[i].layers.length){
			var tmp=getObjNN4(x[i],name);
			if(tmp)foundLayer=tmp;
		}
	}
	return foundLayer;
}
function findPosX(obj){
	var curleft=0;
	if(obj.offsetParent){
		while(obj.offsetParent){
			curleft+=obj.offsetLeft
			obj=obj.offsetParent;
		}
	}
	else if(obj.x) curleft+=obj.x;
	return curleft;
}
function findPosY(obj){
	var curtop=0;
	if(obj.offsetParent){
		while(obj.offsetParent){
			curtop+=obj.offsetTop
			obj=obj.offsetParent;
		}
	}
	else if(obj.y) curtop+=obj.y;
	return curtop;
}
function findObjectLeft(id){
	var obj=new ObjectReference(id).obj;
	return obj==null? 0: findPosX(obj);
}
function getObjectLeft(id){
	var obj=new ObjectReference(id).obj;
	return obj==null? 0: obj.offsetLeft;
}
function findObjectTop(id){
	var obj=new ObjectReference(id).obj;
	return obj==null? 0: findPosY(obj);
}

function getObjectTop(id){
	var obj=new ObjectReference(id).obj;
	return obj==null? 0: obj.offsetTop;
}

var util_groups=new Array();
function initGroup(name){
  var a=initGroup.arguments;
  if(a.length<3) return;
  util_groups[name]=new Array();
  for(var i=1; i<a.length; ++i){
    util_groups[name][i-1]=a[i];
  }
}
