var userAgent = window.navigator.userAgent ;

function getPageSize(){	
	var xScroll, yScroll;
	
	if (window.innerHeight && window.scrollMaxY) {
		// navigateurs "firefox win";
		xScroll = window.innerWidth + window.scrollMaxX;
		yScroll = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight){
		// navigateurs "safari";
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	} else { 
	    // navigateurs "firefox mac, IE6, IE7";
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}
	
	var windowWidth, windowHeight;
	
//	console.log(self.innerWidth);
//	console.log(document.documentElement.clientWidth);

	if (self.innerHeight) {
	    // navigateurs "safari, firefox mac et win";
		if(document.documentElement.clientWidth){
			windowWidth = document.documentElement.clientWidth; 
		} else {
			windowWidth = self.innerWidth;
		}
		windowHeight = self.innerHeight;
	} else if(userAgent.search("MSIE") > 0) {
		if(userAgent.search("MSIE") > 7) { 
			// navigateurs "IE 7+";
			windowWidth = document.documentElement.clientWidth;
			windowHeight = document.documentElement.clientHeight;			
		} else {
			// navigateurs "IE 6-";
			windowWidth = document.body.clientWidth - document.body.scrollLeft;
			windowHeight = document.body.clientHeight - document.body.scrollTop;
		}	
	} else if (document.body) { 
	    // navigateurs  = "autres";
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}	
	
	// for small pages with total height less then height of the viewport
	if(yScroll < windowHeight){
		pageHeight = windowHeight;
	} else { 
		pageHeight = yScroll;
	}

//	console.log("xScroll " + xScroll)
//	console.log("windowWidth " + windowWidth)

	// for small pages with total width less then width of the viewport
	if(xScroll < windowWidth){	
		pageWidth = xScroll;		
	} else {
		pageWidth = windowWidth;
	}
//	console.log("pageWidth " + pageWidth)

    arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight) 
	return arrayPageSize;
}

function changeclass(id, newClass) {
	identity=document.getElementById(id);	
	identity.className=newClass;
}
function DefineObjById(id) {
	identity=document.getElementById(id);
	if(identity.style) {
		identity = identity.style ;
	}
	return identity ;
}

function DisplayMsg(id,statebutton,statetable,stateffect) {

	var buttonclose = "";	
	if(statebutton) {
		buttonclose = "<input type=|button| class=|closelayer| name=|closebtn| onclick=|RemoveMsg();| />";
	}
	
	var ctitle = '<div class=|titlelayer|>'+getDesc('MsgTitle'+id)+'</div>';
	var cbody = '';
	if(stateffect) {
		cbody = '<div class=|innerlayer|>'+getDesc('MsgBody'+id)+'</div>';
	}	
	var content = buttonclose+ctitle+cbody;	

	setDesc('messglayer',content);
	var timerIDserveur = null;
	timerIDserveur = setTimeout(function()	{
		LayerBulle(id,statetable,stateffect);
	},500);
	
}

setTimeout('FixedBoxes()',1500);

function FixedBoxes() {
//	if(userAgent.search("MSIE") > 0) {
		FixedBox('callback');
		FixedBox('callhelp');
		FixedBox('panierdevis');
//	}
}

function FixedBox(id) {
	if(document.getElementById(id)) {		
		var mainelmt = document.getElementById('main');
		var mainwidth = mainelmt.offsetWidth;
		
		var sidelmt = document.getElementById('sideright');
		var sidewidth = sidelmt.offsetWidth;
		
		var arrayPageSize = getPageSize();
		var pagewidth = arrayPageSize[0];
		
		var headelmt = document.getElementById('header');
		var headwidth = headelmt.offsetWidth;
		
		var colwidth = mainwidth-sidewidth;		
		var margewidth = (pagewidth-mainwidth)/2;	
		var borderwidth = (colwidth-headwidth)/2;
		var cokwidth = colwidth-borderwidth;
		
		var fixwidth = Math.floor(margewidth+cokwidth);
		
		if(fixwidth < cokwidth) {
		    fixwidth = cokwidth;
		}
		var fixelmt = DefineObjById(id);
		fixelmt.left = fixwidth+'px';		
	}
}


function getDesc(tab) {
	var fromThis = document.getElementById(tab).innerHTML;
	return fromThis.replace(/\"/g,"|");
}

function setDesc(tab,fromThis) {
	var toThis = fromThis.replace(/\|/g,"\"");
	if (document.getElementById) {
		document.getElementById(tab).innerHTML = toThis;
	} else if (document.all) {
		document.all[tab].innerHTML = toThis;
	}
}

$(document).ready(function(){
	var ident = '#shadolayer';
	$(ident).click(function () { 
		RemoveMsg();
	});
	$(window).resize(function () { 
		FixedBoxes();
	});
});

function RemoveMsg() {
	var timerIDserveur = null;
	timerIDserveur = setTimeout('ChangeClasses()',300);
	$('#shadolayer').fadeTo('slow',0);
}
function ChangeClasses() {
	changeclass('shadolayer','displayko');
	changeclass('messglayer','displayko');
	changeclass('cochelayer','displayko');
}
function SetLayerSize(id) {
	var arrayPageSize = getPageSize();
	var elmt = DefineObjById(id);
	elmt.width = arrayPageSize[0]+'px';
	elmt.height = arrayPageSize[1]+'px';
	
	var ident = '#'+id;
	$(ident).fadeTo('slow',0.6);	
}

function LayerBulle(id,statetable,stateffect) {	
	var item ;
	var posX ;
	var posY ;	
	if(stateffect) {
		SetLayerSize('shadolayer');
	}
	changeclass('shadolayer','shadolayer displayok');	
		
	if(statetable) {
		var table = document.getElementById('Garanties');
		posX = table.offsetLeft;
		posY = table.offsetTop;
		rows = table.getElementsByTagName('tr'); 
		for (var i=0; i < rows.length; i++) { 
			var ident = rows[i].getAttribute('id'); 
			if(ident == id) {
			//	posX+= rows[i].offsetWidth/2;
				posY+= rows[i].offsetTop;
			}
		}
	} else {
		var itemRef = document.getElementById(id);
		var itemChild = itemRef;
		if(stateffect) {
			// cherche une div
			while (itemChild){
				if(itemChild.nodeName == 'DIV') {
					break;				
				} else {
					itemChild = itemChild.parentNode;
				}			
			}
		}
				
		posX = itemChild.offsetLeft;
		posY = itemChild.offsetTop;
		// for IE
		id = itemChild.getAttribute('id'); 				
	}

	if(userAgent.search("MSIE") > 6) {	
		var objRef = document.getElementById(id);

		var objChild = objRef;
		var TotalTop = 0;
		var TotalLeft = 0;
		
		// do this as long as the current object is in a container
		while (objChild){
			TotalTop = TotalTop + objChild.offsetTop;
			TotalLeft = TotalLeft + objChild.offsetLeft;
			objChild = objChild.offsetParent;
		}
		// add the height of the menu item jpeg
		//TotalTop = TotalTop + objRef.offsetHeight;
		posX = TotalLeft;
		posY = TotalTop;
	} 
	
	aObject = DefineObjById('cochelayer') ;
	mObject = DefineObjById('messglayer') ;

	// over	
	var arrayPageSize = getPageSize();
	var heightscreen = arrayPageSize[3];
			
	var delta = parseInt(10);
	
	if(stateffect) {
		window.scrollTo(0,50);
		var nposY = posY-450 ;	
		window.scrollTo(0,nposY);
	}
		
	var arroposX = posX+10;
	var arroposY = heightscreen-posY-10+delta ;
	aObject.left = arroposX+'px' ;
	aObject.bottom = arroposY+'px' ;
	changeclass('cochelayer','cochelayer displayok');
	
	var bullposY = heightscreen-posY+delta ;
	mObject.left = posX+'px' ; 
	mObject.bottom = bullposY+'px' ;
	changeclass('messglayer','messglayer displayok');
}
var volet = 'close';

function PreventClick(bool) {
	var radiolmt = document.forms["formSouscrire"].elements["preselect"];
	for(var i=0; i<radiolmt.length; i++) {
		var elmtid = radiolmt[i].id;
		var elmt = document.getElementById(elmtid);
		if(bool) {
			elmt.setAttribute('disabled','disabled');
		} else {
			elmt.removeAttribute('disabled');
		}
	}
}
//
function ExpandLayer(layer,bloc,buttid) {
	if(bloc == 'Options') {
		var numcol = ReturnFormule();
	}	
	var dynalay = document.getElementById(layer);
	var realdiv = document.getElementById(bloc);
	var posA = dynalay.offsetHeight ;
	var posZ = realdiv.offsetHeight ;
	var timerIDserveur = null;
	if(posA < posZ) { // Expand	
	   actionDeroule(layer,posA,posZ,30);
	   // changer le bouton apres un temps -> Reduire 	   
	   timerIDserveur = setTimeout(function()	{
		   var newTxt = getDesc(buttid+'txtcollap'); 
		   setDesc(buttid,newTxt);
		   changeclass(buttid,'lessaction');
	   },1500);	   
	   volet = 'open';
	} else { // Collapse
		if(bloc == 'Infos') {
			posA = 0;
		} else if(bloc == 'Garanties') {
			posA = 61;
		} else if(bloc == 'Options') {
			if(numcol == '1' || numcol == '2') {
				posA = 132;
			} else {
				posA = 206;
			}			
		} else {
			posA = Math.ceil(posA*0.08);
		}
		actionDeroule(layer,posZ,posA,30);
		// changer le bouton apres un temps -> Agrandir
		timerIDserveur = setTimeout(function()	{
			var newTxt = getDesc(buttid+'txtexpand'); 
			setDesc(buttid,newTxt);
			changeclass(buttid,'moreaction');
	   },1500);	
	   volet = 'close';
	}
}

function actionDeroule(id, initHeight, finalHeight, interval) {	
	// Identification de l'objet
	var oElem = document.getElementById(id);
	if(!oElem) return;
	
	// Contr™le des valeurs de variables
	if(typeof(initHeight || finalHeight || interval) != 'number') return false;
	
	// Contr™le d'ˇxˇcution de la mˇthode
	if(oElem.movement) clearTimeout(oElem.movement);
	
	// Initialisation des param¸tres
	if( !oElem.style.height ) oElem.style.height = parseInt(initHeight)+'px';
	var iDimY = parseInt(oElem.style.height);
	
	// Condition de fin de la mˇthode
	if(iDimY == finalHeight) {
		PreventClick(false);
		return true;
	}
	
	// Conditions d'incrˇmentation et dˇcrˇmentation
	if(iDimY < finalHeight)	{ // increment
		var dist = Math.ceil((finalHeight - iDimY)/10);
		iDimY = iDimY + dist;
	}
	if(iDimY > finalHeight) { // decrement
		var dist = Math.ceil((iDimY - finalHeight)/10);
		iDimY = iDimY - dist;
	}
		
	oElem.style.height = iDimY+'px';
	
/*	elmPosY = oElem.offsetTop;
	nPosY = elmPosY+iDimY;	
	window.scrollTo(0,nPosY);*/
	
	// Rˇpˇtition de la mˇthode
	var timerIDserveur = null;
	timerIDserveur = setTimeout(function()	{
		PreventClick(true);
		actionDeroule(id,initHeight,finalHeight,interval);
	},30);
	return true;
}