/*

COPYRIGHT 2008
--------------------------
Toute reproduction, distribution totale ou partielle de son contenu sans autorisation est illicite expose le contrevenant à des poursuites judiciaires. 

*/


function url(u)
{
	return formatUrl.replace("LINKY", u)
}

function getObj(id)
{
	if (document.all) { return document.all[id]; } 
	else {	return document.getElementById(id);	}
}

function validateJSON(jsonText)
{
	return !(/[^,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]/.test(jsonText.replace(/"(\\.|[^"\\])*"/g, '')));
}

function trim(myString) 
{ 
	return myString.replace(/^\s+/g,'').replace(/\s+$/g,''); 
} 

function getOffsetPosition(oObj, inTYPE)
{
	var iVal = 0;
	var sType = 'oObj.offset' + inTYPE;
	while (oObj && oObj.tagName != 'BODY')
	{
		iVal += eval(sType);
		oObj = oObj.offsetParent;
	}
	return iVal;
}

function is_numeric(num)
{
	var exp = new RegExp('^[0-9-.]+$','g');
	return exp.test(num);
}

function addslashes(string)
{
	return string.replace("'","\\'");
}

function stripslashes(string)
{
	return string.replace("\\'","'");
}

function displayBox(divName, iconName) 
{
	var box = getObj(divName);  
	if (iconName) var icon = getObj(iconName);
	
	if (box.style.display == 'block')
	{
		box.style.display = 'none';
		showSelects();
		return;
	}
	
	box.style.display = 'block';
	
	if (iconName)
	{
		box.style.top = (getOffsetPosition(icon, 'Top')+icon.height+1)+'px';
		box.style.left = getOffsetPosition(icon, 'Left') + 'px';
	}
	
	hideSelects();
}

function CDownloadUrl(method, url, func) {
	var httpObj;
	var browser = navigator.appName;
	if (browser.indexOf("Microsoft") > -1){
		httpObj = new ActiveXObject("Microsoft.XMLHTTP");
	} else {
		httpObj = new XMLHttpRequest();
	}
	httpObj.open(method, url, true);
	if (func !== null) {
		httpObj.onreadystatechange = function() {
			if(httpObj.readyState == 4){
				if (httpObj.status == 200) {
					var contenttype = httpObj.getResponseHeader('Content-Type');
					if (contenttype.indexOf('xml')>-1) {
						func(httpObj.responseXML);
					} else {
						func(httpObj.responseText);
					}
				} else {
					func('Error: '+httpObj.status);
				}
			}
		};
	}
	httpObj.send(null);   
}

function submitForm(form)
{
	var buttons = form.getElementsByTagName("button"); 
	var lenght = buttons.length;
	
	for (var i = 0; i < lenght; i++)
	{
    	buttons[i].disabled = 'disabled';
	}
}

function hideSelects()
{	
	var sel = document.getElementsByTagName('select');
	
	var l = sel.length;
	
	for (var i = 0; i < l; i++)
	{
		sel[i].style.visibility = 'hidden';
	}
	
	var parent = window.parent.document;
	
	if (parent)
	{
		var sel = parent.getElementsByTagName('select');
		
		var l = sel.length;
		
		for (var i = 0; i < l; i++)
		{
			sel[i].style.visibility = 'hidden';
		}
	}
}

function showSelects()
{
	var sel = document.getElementsByTagName('select');
	
	var l = sel.length;
	
	for (var i = 0; i < l; i++)
	{
		sel[i].style.visibility = 'visible';
	}
	
	var parent = window.parent.document;
	
	if (parent)
	{
		var sel = parent.getElementsByTagName('select');
		
		var l = sel.length;
		
		for (var i = 0; i < l; i++)
		{
			sel[i].style.visibility = 'visible';
		}
	}
}

function preLoadImage(src)
{
	i = new Image();
	i.src = src;
	return i;
}

getViewportScrollY = function()
{
	var scrollY = 0;
	var bodyheight = 0;
	if(document.documentElement && document.documentElement.scrollTop)
	{
		scrollY = document.documentElement.scrollTop;
		bodyheight = document.documentElement.scrollHeight;
	}
	else if(document.body && document.body.scrollTop)
	{
		scrollY = document.body.scrollTop;
		bodyheight = document.body.scrollHeight;
	}
	else if(window.pageYOffset)
	{
		scrollY = window.pageYOffset;
	}
	else if(window.scrollY) {
		scrollY = window.scrollY;
	}
	if(bodyheight > 0 && scrollY > bodyheight-620){
		scrollY = bodyheight-620;
	}
	else if(scrollY > 10000){
		scrollY=10000;
	}
	return scrollY;
};

getViewportWidth = function()
{
	var width = 0;
	if(document.documentElement && document.documentElement.clientWidth)
	{
		width = document.documentElement.clientWidth;
	}
	else if(document.body && document.body.clientWidth)
	{
		width = document.body.clientWidth;
	}
	else if(window.innerWidth)
	{
		width = window.innerWidth - 18;
	}
	return width;
};


//-------------------------------------------------------------------------------------


function mascotPosition()
{
	var mascotTopPosition = 0;
	var mascotLeftOffset = 400;
	var wrapperWidth = 800;
	var mascotWidth = 120;
	
	var mascot = getObj('mascot');
	
	if (document.body && document.body.clientWidth > wrapperWidth+(mascotWidth*2))
	{
		//mascot.style.top = (getViewportScrollY() < mascotTopPosition) ? mascotLeftOffset+'px': getViewportScrollY()+'px';
		//mascot.style.left = Math.round(wrapperWidth+((getViewportWidth()-wrapperWidth)/2))+"px";

		mascot.style.top = mascotTopPosition+'px';
		mascot.style.left = Math.round(wrapperWidth+((getViewportWidth()-wrapperWidth)/2)-20)+"px";
		mascot.style.display = '';
		mascot.style.visibility = 'visible';
	}
	else
	{
		mascot.style.display = 'none';
	}
	
	setTimeout('mascotPosition()', 1);
}

function pubSkyPosition()
{
	var skyTopPosition = 0;
	var skyLeftOffset = 400;
	var wrapperWidth = 800;
	var pubWidth = 120;
	
	var sky = getObj('skyRight');
	
	if (document.body && document.body.clientWidth > wrapperWidth+(pubWidth*2))
	{
		sky.style.top = (getViewportScrollY() < skyTopPosition) ? skyTopPosition+'px': getViewportScrollY()+'px';
		sky.style.left = Math.round(wrapperWidth+((getViewportWidth()-wrapperWidth)/2))+"px";
		sky.style.display = '';
		sky.style.visibility = 'visible';
	}
	else
	{
		sky.style.display = 'none';
	}
	
	setTimeout('pubSkyPosition()', 1);
}

function changeMapIn(id)
{
	getObj('imgMap').src=url('img/map/'+id+'.gif');
	getObj('link-region-'+id).className='textcolor';
}
function changeMapOut(id)
{
	getObj('imgMap').src=url('img/pix.gif');
	getObj('link-region-'+id).className='';
}



var PUI_CurrentNum = 0;

function pushUploadInput(pushId, restNb, textError)
{	
	if (PUI_CurrentNum < restNb)
	{		
		var pushElement = getObj(pushId);
				
		var br = document.createElement("br") ;
		pushElement.appendChild(br);
		
		var up=document.createElement("input") ;
		up.setAttribute("type","file") ;
		//up.setAttribute("id","ipt_file"+currentNb) ;
		up.setAttribute("name","pic[]") ;
		pushElement.appendChild(up);

		PUI_CurrentNum++;
	}
	else
	{
		alert(textError);
	}
}


function postAdPassword(email)
{ 	
	var emailValue = trim(email.value);
	
	if (emailValue != '')
	{
		CDownloadUrl('get', url('ajax?mailExist='+trim(emailValue)), function(result)
		{	
			if(result=='1')
			{
				getObj('passwordFieldHere').innerHTML=getObj('passwordFieldUser').innerHTML;
			}
			else
			{
				getObj('passwordFieldHere').innerHTML=getObj('passwordFieldNew').innerHTML;
			}
		});
	}
}

function postAdSendIdent()
{	
	var inputValue = trim(getObj('inputEmail').value);
	
	if (inputValue == '')
	{
		return;
	}
	
	CDownloadUrl('get', url('ajax?sendIdent='+inputValue), function(result)
	{	
		if(result=='1')
		{
			alert('Un email contenant votre mot de passe vous a été envoyé.');
			
		}
		else
		{
			alert('Un mail récapitulatif vous a déjà été envoyé.');
		}
	});
}



function postAdUpdateCity(cityName)
{
	postAdListCityHide();
	getObj('inputCity').value=cityName;
}

function postAdListCityHide()
{
	showSelects();
	getObj('divListCity').style.display = 'none';
}

function postAdListCityShow()
{
	hideSelects();
	getObj('divListCity').style.display = 'block';
}

function postAdListCity(input)
{
	var inputValue = trim(input.value);

	if (!getObj('divListCity'))
	{
		var div = document.createElement('div');
		div.setAttribute('id', 'divListCity');
		div.style.position = 'absolute';
		div.style.top = (getOffsetPosition(input, 'Top')+21)+'px';
		div.style.left = getOffsetPosition(input, 'Left')+'px';
		div.style.width = '190px';
		div.style.backgroundColor = '#ffffff';
		div.style.textAlign = 'left';
		div.style.border = '1px #000000 solid';
		div.style.padding = '5px';
		div.style.zIndex = '1000';
		document.getElementsByTagName('body')[0].appendChild(div);
	}

	var divList = getObj('divListCity');
	
	postAdListCityHide();
		
	if (inputValue.length != 5)
	{
		return;
	}
	
	CDownloadUrl('get', url('ajax?getCityWithPostalCode='+inputValue), function(result)
	{
		if (!validateJSON(result))
		{
			return;
		}
	
		var tab = eval('(' + result + ')');
	
		if (tab == 'undefined' && tab == false)
		{
			return;
		}
		
		var divListContent = '';

		var l = tab.length;
		
		if (l == 0) { return }
		
		for (i = 0; i < l; i++)
		{
			if (tab[i]=='undefined') { continue; }
				
			divListContent += '<a href="javascript:;" onclick="postAdUpdateCity(\''+addslashes(tab[i])+'\');">'+tab[i]+'</a><br />';
		}
		
		divListContent += '<a href="javascript:;" onclick="postAdListCityHide();">AUCUNE DE CES VILLES</a>';

		divList.innerHTML = divListContent;
		
		postAdListCityShow();
	});
}



function listAdInputLoqClick(input, valueDef)
{
	if (input.value == valueDef)
	{
		input.value = '';
		input.style.fontStyle='normal';
		input.style.color='#000000';
	}
}

function listAdInputLoqShow(selectLocId, inputLoqId)
{
	var inputLoq = getObj(inputLoqId);
	var selectLoc = getObj(selectLocId);
	
	inputLoq.style.display = 'block';
	inputLoq.style.top = (getOffsetPosition(selectLoc, 'Top')+23)+'px';
	inputLoq.style.left = getOffsetPosition(selectLoc, 'Left')+'px';
	inputLoq.disabled = '';
}

function listAdInputLoqHide(selectLocId, inputLoqId)
{
	var inputLoq = getObj(inputLoqId);
	
	inputLoq.disabled = 'disabled';
	inputLoq.style.display = 'none';
}

function listAdSelectLoc(selectLocId, inputLoqId)
{
	var sel = getObj(selectLocId);
	
	var index = sel.selectedIndex;
	var value = sel.options[index].value;

	if (value == -1)
	{
		listAdInputLoqShow(selectLocId, inputLoqId);
	}
	else
	{
		listAdInputLoqHide(selectLocId, inputLoqId);
	}
}

function listAdMoreOptions(moreOptDivId, moreOptInputId, moreOptTextSpanId)
{
	var moreOptDiv = getObj(moreOptDivId);
	var moreOptInput = getObj(moreOptInputId);
	var moreOptTextSpan = getObj(moreOptTextSpanId);
	var disabled;
	
	if (moreOptInput.value == '1')
	{
		moreOptInput.value = '0';
		moreOptInput.disabled = 'disabled';
		moreOptDiv.style.display = 'none';
		moreOptTextSpan.innerHTML = '+';   
		disabled = 'disabled';
	}
	else
	{
		moreOptDiv.style.display = 'block';
		moreOptInput.value = '1';
		moreOptInput.disabled = '';
		moreOptTextSpan.innerHTML = '-';
		disabled = '';
	}
	
	var tab = moreOptDiv.getElementsByTagName('input');
	var l = tab.length;
	for (i = 0; i < l; i++) {tab[i].disabled = disabled;} 
	
	var tab = moreOptDiv.getElementsByTagName('select');
	var l = tab.length;
	for (i = 0; i < l; i++) {tab[i].disabled = disabled;}  
}



function adChangePic(new_src, new_width, new_height, thumb_num, thumb_nb)
{
	imTemp = preLoadImage(new_src);
	
	var imMain = getObj('adPicMain');
	var divMain = getObj('adDivPicMain');
	
	for (i = 1; i <= thumb_nb; i++)
	{
		getObj('adPicThumb'+i).style.border = (thumb_num==i?'5px #ffbb04 solid':'1px #000000 solid');
	}
	
	imMain.width = new_width;
	imMain.height = new_height;
	imMain.src = new_src;
	
	return '';
	
	/*
	imTemp = preLoadImage(new_src);
	
	var imMain = getObj('adPicMain');
	var divMain = getObj('adDivPicMain');
	
	var srcLoading = url('img/big_loading.gif');
	var srcPix = url('img/pix.gif');

	for (i = 1; i <= thumb_nb; i++)
	{
		getObj('adPicThumb'+i).style.border = (thumb_num==i?'5px #ffbb04 solid':'1px #000000 solid');
	}
			
	if (imTemp.complete)
	{
		imMain.width = new_width;
		imMain.height = new_height;
		imMain.src = new_src;
	}
	else
	{
		imMain.width = new_width;
		imMain.height = new_height;
		imMain.src = srcPix;
		
		//divMain.style.width = new_width;
		//divMain.style.height = new_height;
		divMain.style.background = 'url('+srcLoading+') 10px 10px no-repeat';
				
		setTimeout('adChangePic("'+new_src+'", "'+new_width+'", "'+new_height+'", "'+thumb_num+'", "'+thumb_nb+'")', 10);
	}*/
}

function favDelAdId(adId)
{
	if (confirm('Supprimer cette annonce de vos favoris ?'))
	{
		CDownloadUrl('get', url('ajax?adIdToFav='+adId), null);
		
		getObj('adBlockId'+adId).style.display = 'none';
	}
}

function addAdIdToFav(adId, textSpanId)
{	
	CDownloadUrl('get', url('ajax?adIdToFav='+adId), function (result)
	{
		if (result == 'add')
		{
			var text1 = 'L\'annonce a bien été ajoutée à vos favoris.';
			var text2 = 'Retirer cette annonce de mes favoris';
		}
		else
		{
			var text1 = 'L\'annonce a bien été retirée de vos favoris.';
			var text2 = 'Ajouter cette annonce à mes favoris';
		}

		getObj(textSpanId).innerHTML = text2;
		
		alert(text1);
	});
}

function gMapInitialize(search_address, div_map_id) {
  if (GBrowserIsCompatible()) {
	map = new GMap2(document.getElementById(div_map_id));
	map.addControl(new GLargeMapControl());
	//map.addControl(new GSmallMapControl());
	//map.addControl(new GMapTypeControl());
	map.setCenter(new GLatLng(37.4419, -122.1419), 13);
	geocoder = new GClientGeocoder();
	geocoder.getLatLng(
	  search_address,
	  function(point) {
		if (!point) {
		  //alert(address + " non trouvée");
		} else {
		  map.setCenter(point, 8);
		  var marker = new GMarker(point);
		  map.addOverlay(marker);
		}
	  }
	);
  }
}
