/* Libraries private*/

/*Initialize*/
na=navigator.appName;
if (na== 'Netscape') 
{
	var Name_browser='ns';	
}
else if (na== 'Microsoft Internet Explorer') 
{
	var Name_browser='ie';	
}

/* End Initialize*/
function getScreenHeight()
{
	if(Name_browser=='ns')
	{
		var height=window.innerHeight;
	}
	else if(Name_browser=='ie'){
	
		var height=document.body.clientHeight;
	}
	return height;
}
function getScreenWidth()
{
	if(Name_browser=='ns')
	{
		var width=window.innerWidth;
	}
	else if(Name_browser=='ie'){
		var width=document.body.clientWidth;
	}
	return width;
}
//==============================================================================================//
// FONCTION QUI PERMET LA VERIFICATION D'UNE ADRESSE EMAIL
//===============================================================================================//
function verify_email(emailStr) {
	var checkTLD = 1;
	var knownDomsPat = /^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|­pro|museum|fr)$/;
	var emailPat = /^(.+)@(.+)$/;
	var specialChars = "\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
	var validChars = "\[^\\s" + specialChars + "\]";
	var quotedUser = "(\"[^\"]*\")";
	var ipDomainPat = /^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	var atom = validChars + '+';
	var word = "(" + atom + "|" + quotedUser + ")";
	var userPat = new RegExp("^" + word + "(\\." + word + ")*$");
	var domainPat = new RegExp("^" + atom + "(\\." + atom +")*$");
	var matchArray = emailStr.match(emailPat);
	if (matchArray == null) { return false; }
	var user = matchArray[1];
	var domain = matchArray[2];
	for (i=0; i<user.length; i++) {
		if (user.charCodeAt(i) > 127) { return false; }
	}
	for (i=0; i<domain.length; i++) {
		if (domain.charCodeAt(i) > 127) { return false; }
	}
	if (user.match(userPat) == null) { return false; }
	var IPArray=domain.match(ipDomainPat);
	if (IPArray != null) {
		for (var i=1; i<=4; i++) {
			if (IPArray[i] > 255) { return false; }
		}
		return true;
	}
	var atomPat = new RegExp("^" + atom + "$");
	var domArr = domain.split(".");
	var len = domArr.length;
	for (i=0; i<len; i++) {
		if (domArr[i].search(atomPat) == -1) { return false; }
	}
	if (checkTLD && domArr[domArr.length-1].length!=2 && domArr[domArr.length-1].search(knownDomsPat)==-1) { return false; }
	if (len < 2) { return false; }
	return true;
}
//Fonction permettant de faire de l'héritage de de classe au niveau du prototype des classes;
function heriter(destination, source) { 

    for (var element in source) { 

        destination[element] = source[element]; 

    } 

} 

function dataSendEchoBack(data,target_file,back_div,method)
{
				
				var object_ajax=new ajax_object();
				object_ajax.setData(data);
				object_ajax.setMethod(method);
				object_ajax.setFilename(target_file);
				object_ajax.setDiv(back_div);
				object_ajax.setXhr();
				object_ajax.send();
				window.location.reload();
}


//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
//========================================================================//
//----------------------------OBJECT AJAX---------------------------------
//========================================================================//
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
 
function ajax_object()
{	

	//Properties//
	this.method=null;
	this.filename=null;
	this.data=null;
	this.div=null;
	this.xhr=null;
	
}
ajax_object.prototype ={

	send:function() { 
		
		
		var div=this.div;
		var xhr_object=this.xhr;
		xhr_object.open(this.method,this.filename, true); 
		xhr_object.onreadystatechange = function() {
			   if(xhr_object.readyState == 4) { 
				  var tmp = xhr_object.responseText;
				  document.getElementById(div).innerHTML=tmp;

			   } 
		} 
		this.xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
		this.xhr.send(this.data); 

    },
	get_xml:function(){
		var xhr_object=this.xhr;
		var div=this.div;
		xhr_object.onreadystatechange  = function()
		{ 
			 if(xhr_object.readyState  == 4)
			 {
				  if(xhr_object.status  == 200) {
								var doc = xhr_object.responseXML;                          	//  Assigner le fichier XML à une variable
						var element = doc.getElementsByTagName(choix_langue).item(0);  		//  Lire le premier élément avec DOM
						var second =element.getElementsByTagName(balise).item(0);
						document.getElementById(div).innerHTML=second.firstChild.nodeValue; //  afficher le contenu
			 }
        }
    }; 

   xhr.open("GET",chemin,true); 
   xhr.send(null); 
	
	
	},
	setXhr:function() { 

       try {  this.xhr = new ActiveXObject('Msxml2.XMLHTTP');   }
		catch (e) 
		{
			try {   this.xhr = new ActiveXObject('Microsoft.XMLHTTP');    }
			catch (e2) 
			{
			  try {  this.xhr = new XMLHttpRequest();     }
			  catch (e3) {  this.xhr = false;   }
			}
		 }

    },

	setMethod:function(m) { 

        this.method=m;

    }, 

	setFilename:function(f) { 

		this.filename=f;

    }, 

	setData:function(d) { 

        this.data=d; 

    }, 

	setDiv:function(d) { 

        this.div=d;

    }
};
//========================================================================//
//---------------------------- OBJECT DIV---------------------------------
//========================================================================//
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
function div_object(div,div_width,div_height,screen_view_toolbar,screen_view_width,screen_view_height,div_font_size)
{	

	//Properties//
	
	this.div=div;
	this.div_height=div_height;
	this.div_width=div_width;
	this.screen_view_width=screen_view_width;
	this.screen_view_height=screen_view_height;
	this.screen_view_toolbar=screen_view_toolbar;//reference toolabar
	this.div_font_size=div_font_size;
	this.new_width_div=null;
	this.new_height_div=null;
	this.new_font_size=null;
	
	
	
	
}
div_object.prototype = {

	setNewWidth:function() { 
		//alert("2.1");
		if(this.div_width!=null)
		{
			//alert("2.2");
			var name_div=this.div;
			var width=(this.div_width/this.screen_view_width)*getScreenWidth();
			//alert("width:"+width);
			//alert("nom_div:"+name_div);
			//alert("width :"+ width);
			this.new_width_div=width + "px";
		}
	},	
	setNewHeight:function(){
		if(this.div_height!=null)
		{
			var name_div=this.div;
			var supplement=0;
			var height=(this.div_height/this.screen_view_height)*getScreenHeight();
			
			var toolbar_new=screen.height - getScreenHeight();
			if(toolbar_new>this.screen_view_toolbar)
			{
				
				supplement=(toolbar_new-this.screen_view_toolbar)/2;	
				
			}
			else if(toolbar_new<this.screen_view_toolbar)
			{
				supplement=-((this.screen_view_toolbar-toolbar_new)/2);
			
			}
			height=height+supplement;
			this.new_height_div=height + "px";
			
		}	
	},
	setFontSize:function(){
		if(this.div_font_size!=null)
		{
			
			var font=getScreenWidth()-this.screen_view_width;
				font=font/getScreenWidth();
				font=parseInt((100*font)+this.div_font_size);
				this.new_font_size=font+"%";
				
		}
		
	},
	getScreenWidth:function(){	
		getScreenWidth();
    },
	
	getScreenHeight:function(){
		getScreenHeight();
		
	}
}


