/****************************************************************************
 * Socdir (c) Amaury Depresle - All rights reserved
 * Web Store Scripts
 ***************************************************************************/

gDoneOnce = false;
gX = null;
gEnableCompletion = 300;
gLocCompleter = null;
gLocServletName = "completeLocServlet";
gLog = null;
gLogLevel = 100; //show nothing
gIsIE = document.all ? true : false;
gPagesDivId = "pagesdiv";

/**
 * This function will be called at body onload ()
 */
 


function doOnce ()
{
	if (gDoneOnce) return;
	gDoneOnce = true;

	//Logger--------
	var logDiv = document.createElement("div");
	var footer = document.getElementById("footer");
	if (footer!=null)
	{
		footer.appendChild(logDiv);
	
		logDiv.id="logDiv";
		gLog = new Logger (logDiv, gLogLevel);
		gLog.fine ("Log Initializated");
	}
	//Fin Logger----

	
}

function init ()
{
	gLoadFunc ();
}



function unload ()
{
	clearWebMessage ();
}


function clearWebMessage ()
{
	var elt = $("WebMessage");
	if (elt != null)
	{
		elt.innerHTML = "";
		elt.style.display="none";
	}
}


function setWebMessage (message, classe)
{
	var elt = $("WebMessage");
	if (elt != null)
	{
		var realmsg = "";
		if (message != null) realmsg = message;
		elt.innerHTML = '<p class="'+classe+'">'+message+'</p>';
		elt.style.display="block";
	}
}



/**
 *	@return true
 */
function checkForm (form)
{
	return true;
}

function doClick ()
{
	if (gLocCompleter != null) gLocCompleter.UserClicked ();
}

if (document.addEventListener) {
	document.addEventListener('click', doClick, false);
} else if (document.attachEvent) {
	document.attachEvent('onclick', doClick, false);
}

/*
 * url the url to be modified
 * name the name of the injected attibute
 * value the attribute's value
 */
function injectUrl (url, name, value)
{
	var search = document.location.search;
	var new_url = "";

	//si il n'y a pas de param dans l'url courante.
	if (search == null || search=="")
	{
		new_url = url+"?"+name+"="+value;
	}
	else
	{//il y a des param dans notre url mais pas de param de notre nom
		if (-1==(search).search(name))
			new_url = url+"&"+name+"="+value;
		else
		{//il y a des param et l'un d'eux est de notre nom, il faut donc le remplacer.
			new_url = url.slice(0,cur_url.indexOf("?"));

			var str = new String ((search).substring(1));//on enlève le ?
			var params = str.split("&");
			var firstparam = true;
			for (var i = 0; i<params.length; i++)//on réécrit chaque param.
			{
				if (firstparam == true)	{	firstparam = false; new_url+="?";}
				else new_url +="&";
				var keytoVal = (new String(params[i])).split("=");

				if (keytoVal[0] == name){new_url+= name+"="+value;}
				else						{new_url+=keytoVal[0]+"="+keytoVal[1];}
			}
		}
	}
	return new_url;
}

function createcssmenu()
{
	var menuids=new Array("verticalmenu") //Enter id(s) of UL menus, separated by commas
	var submenuoffset=-2 //Offset of submenus from main menu. Default is -2 pixels.
	for (var i=0; i<menuids.length; i++)
	{
		var ultags=$(menuids[i]).getElementsByTagName("ul")
			for (var t=0; t<ultags.length; t++)
			{
				var spanref=document.createElement("span")
				spanref.className="arrowdiv"
				spanref.innerHTML="&nbsp;&nbsp;"
				ultags[t].parentNode.getElementsByTagName("a")[0].appendChild(spanref)
				ultags[t].parentNode.onmouseover=function(){
				this.getElementsByTagName("ul")[0].style.left=this.parentNode.offsetWidth+submenuoffset+"px"
				this.getElementsByTagName("ul")[0].style.display="block"
				}
				ultags[t].parentNode.onmouseout=function(){
				this.getElementsByTagName("ul")[0].style.display="none"
				}
			}
	}
}

function ChangeLang (elem)
{//elem should be a select
	if (elem == null) return;

	var servlet = "userUtilsServlet";
	var name  	= "weblanguage";							//name to inject
	var value 	= elem.options[elem.selectedIndex].value;	//value to inject
	var url   	= servlet+"?"+name+"="+value+"&action=changelang";

	document.location.replace(url);
}

var map = null;
var geocoder = null;

function MapShowAddress()
{
	if (address == null) return ;
	if (GBrowserIsCompatible())
	{
		map = new GMap2(document.getElementById("googleMap"));
		geocoder = new GClientGeocoder();
		map.addControl(new GLargeMapControl());
		map.addControl(new GMapTypeControl());
	}

	if (geocoder)
	{
		geocoder.getLatLng(
			address,
			function(point) {
				if (!point) {
//					setWebMessage(address + " non trouvé", "warning");
					setWebMessage("addresse non trouvée", "warning");
				} else {
					map.setCenter(point, 13);
					var marker = new GMarker(point);
					map.addOverlay(marker);
					
//					marker.openInfoWindowHtml(address);
				}
			}
		);
	}
}


function removeAd(adId)
{

	var servlet = "userUtilsServlet";
	var pars = "action=removead";
	pars	+= "&adid="+adId;
 	pars	+= "&startindex="+gup("startindex");

	var myAjax = new Ajax.Request(
							servlet,
							{
								method: 'post',
								parameters: pars,
								onComplete: removedAd
							});
}

function removedAd(response)
{
	if (response != null)
	{
		response = response.responseText;
		if (response.length > 3)//response should be 'OK-1209002*htmlcode' if removed Ad ID is 1209002		
		if (response.substr(0,2) == 'OK')
		{
			setWebMessage(removeAdSuccess, "info");
		
			response = response.substr(3);
			var pos = (response.indexOf('*'));

			AdDiv = $( ("ad"+response.substr(0, pos)) );
			//alert(("ad"+response.substr(0, pos)) + " --- " + AdDiv);
			if (AdDiv != null)
			{	
				AdDiv.style.display = 'none';
				if (responselength>=(response.indexOf('*')+1));
				htmlCode = response.substr(response.indexOf('*')+1);
				
				pages = $(gPagesDivId);
				if (pages != null) pages.innerHTML = htmlCode;
			}
		//	else alert("could not get div : " + response);
		}
		else
		{	setWebMessage(removeAdErr, "error");
		}
	} else setWebMessage(removeAdErr, "error");
}

function saveAd(adId)
{

	var servlet = "userUtilsServlet";
	var pars = "action=addad";
	pars	+= "&adid="+adId;


	var myAjax = new Ajax.Request(
							servlet,
							{
								method: 'post',
								parameters: pars,
								onComplete: savedAd
							});
}

function savedAd(response)
{
	if (response != null)
	{	setWebMessage(response.responseText, "info");
	}
}

//Change country------------------------------------------------------------
function changeCountry(countrySelectId)
{
		var countrySelect = document.getElementById(countrySelectId);
		var countryOption = countrySelect.options[countrySelect.selectedIndex];
		var countryId = countryOption.attributes.getNamedItem('value').value;

		/**
		 * call locationServlet
		 * param: cmd = 'regions'
		 * param: country = countryId
		 *
		 * get back:
		 *  <regions country='countryId'>
		 *      <region id='regionID'>AL</region>
		 *      <region id='regionID'>AK</region>
		 *      <region id='regionID' selected='true'>OR</region>
		 *  </regions>
		 */
		 
	var pars = "cmd=regions";
	pars	+= "&country="+countryId;

		
	var myAjax = new Ajax.Request(
						"locationServlet",
						{
							method: 'get',
							parameters: pars,
							onComplete: changeCountryCallback
						});
}

function changeCountryCallback(response)
{
	updateSelect(response, "regions", "C_Region_ID");
}

function updateSelect(ajax, xmlTagName, selectId)
{
	var xml = ajax.responseXML;
	var error = xml.getElementsByTagName("error")[0];
	if(error)
	{
			return;
	}
	var xmlOptions = xml.getElementsByTagName(xmlTagName)[0];
	 if(!xmlOptions)
	 {
			 return;
	 }

	// first we remove existing entries
	var htmlSelect = $(selectId);
	while(htmlSelect.options.length > 0)
	{
		htmlSelect.removeChild(htmlSelect.options[0]);
	}

		 for(var i=0; i<xmlOptions.childNodes.length; i++)
		 {
			 var xmlOption = xmlOptions.childNodes[i];

			 var attrs = xmlOption.attributes;
			 if(!attrs) continue; // otherwise Firefox bails with more children than IE

			 var htmlOption = document.createElement("option");

			 var attrId = attrs.getNamedItem('id');
			 if(attrId != null) htmlOption.setAttribute('value', attrId.value);

			 var attrSelected = attrs.getNamedItem('selected');
			 if(attrSelected != null) htmlOption.setAttribute('selected', 'selected');

			 var name = xmlOption.firstChild.data;
			 htmlOption.appendChild(document.createTextNode(name));
			 htmlSelect.appendChild(htmlOption);
		 }
}
//FIN Change Country--------------------------------------------------------------------

function gup( name )
{
	name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
	var regexS = "[\\?&]"+name+"=([^&#]*)";
	var regex = new RegExp( regexS );
	var results = regex.exec( window.location.href );
	if( results == null )
		return "";
	else
		return results[1];
}

login = new Array();

login.sentPWEmail = function (response)
{
	var loginDiv = $("login");
	setWebMessage (response.responseText, "info");
}
login.showPWForm = function(visible)
{
	if (visible == true)
	{
		var EMail = ($("EMail")==null)?"null":$("EMail").value;
		var pars = "mode=SendEMail";
		pars   += "&EMail="+EMail;
		var myAjax = new Ajax.Request(
					"loginServlet",
					{
						method: 'post',
						parameters: pars,
						onComplete: login.sentPWEmail
					});
	}
	else
	{
		
	}
}


function getElementsByName_iefix(tag, name) {
		
		 var elem = document.getElementsByTagName(tag);
		 var arr = new Array();
		 for(i = 0,iarr = 0; i < elem.length; i++) {
					att = elem[i].getAttribute("name");
					if(att == name) {
							 arr[iarr] = elem[i];
							 iarr++;
					}
		 }
		 return arr;
}


function photoShowLarge (url)
{	
	var large = $('adlargephoto');
	if (large == null) return;
	
	if (url == null) return;
	
	large.src = url;
}

function situationFocus (elt)
{
	if (elt == null) return;
	if (elt.value == situationMsg)
	{
		elt.value = "";
	}
}

function situationBlur (elt)
{
	if (elt == null) return;
	if (elt.value == "")
	{
		elt.value = situationMsg;
	}
}




	(function(i) {
	var u = navigator.userAgent.toLowerCase();
	var ie = /*@cc_on!@*/false;
	if (/webkit/.test(u)) {
		// safari
		timeout = setTimeout(function(){
			if ( document.readyState == "loaded" || 
				document.readyState == "complete" ) {
				i();
			} else {
				setTimeout(arguments.callee,10);
			}
		}, 10); 
	} else if ((/mozilla/.test(u) && !/(compatible)/.test(u)) ||
						 (/opera/.test(u))) {
		// opera/moz
		document.addEventListener("DOMContentLoaded",i,false);
	} else if (ie) {
		// IE
		(function (){ 
			var tempNode = document.createElement('document:ready'); 
			try {
				tempNode.doScroll('left'); 
				i(); 
				tempNode = null; 
			} catch(e) { 
				setTimeout(arguments.callee, 0); 
			} 
		})();
	} else {
		window.onload = i;
	}
})(init);






addLoadEvent(doOnce);


window.onunload = unload;

