
/*
 * ---------- Configuration ---------
 */

var chemin = "extension/cofinoga_shop/design/cofinoga_shop/";
var images_preload=[
    "submenu_bottom_hover.png",
    "submenu_middle_hover.png",
    "submenu_top_hover.png",
    "menu_g_b_h.jpg",
    "menu_g_h_h.jpg",
    "menu_g_m_h.jpg"
];



var MyGMap = false;
var centre = false;


var onsub=0; onprim=0; // Pr le menu

/** Variables pour Google Analytics **/
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
var pageTracker;

window.addEvent('domready', function() {
	
    // Preload des images hover
    preload_array(images_preload, chemin+"images/");

	init_cp_form();
                              
    /**
     * Script pour le menu horizontal
     */
    if($("showsmenu1") != null) {   
    
    $("showsmenu1").addEvent('mouseover', function() { onsub=0; onprim=1; $("smenu1").setStyle('display', 'block'); });
    $("showsmenu1").addEvent('mouseout', function() { onprim=0; setTimeout("if (onsub==0 && onprim==0) $('smenu1').setStyle('display', 'none');", 500); });
   
    $$("#smenu1 a").each(function(el) {
       el.addEvent('mouseover', function(el) { onsub=1; $("smenu1").setStyle('display', 'block'); });
       el.addEvent('mouseout', function(el) { onsub=0; setTimeout("if (onsub==0 && onprim==0) $('smenu1').setStyle('display', 'none');", 500); });
    });
    
    /**
     * Script pour le sous-menu horizontal
     */  
     $$("li.menuunivers").each(function(el) {
     	
     	if(el.getElement('ul') != null)	//signifie que le menu a au moins un sous-menu
     	{     		
     		var ul = el.getElement('ul');
     		el.addEvent('mouseover', function() { onsub=0; onprim=1; ul.setStyle('display', 'block'); });
    		el.addEvent('mouseout', function() { onprim=0; if (onsub==0 && onprim==0)ul.setStyle('display', 'none'); });
    		
    		ul.getElements('li>a').each(function(sel) {
			    sel.addEvent('mouseover', function(sel) { onsub=1; ul.setStyle('display', 'block'); });
			    sel.addEvent('mouseout', function(sel) { onsub=0; if (onsub==0 && onprim==0)ul.setStyle('display', 'none'); });
			 });
		}
	});
}
    
    /*
    * Tooltips
    */
	var tips = new Tips($$('.tips'), {
	});
    
   /**
	 * Google analytic en lazy-loading
	 */

     /*
    new Asset.javascript(gaJsHost + "google-analytics.com/ga.js", {
        onload: function() {
            pageTracker = _gat._getTracker("UA-10063809-1"); 
            pageTracker._setDomainName("cofinoga.nsylvander.php5.loc");
            pageTracker._initData();
            pageTracker._trackPageview();
        }
    });
    */
   
    
});






/*
 *  ------------------------ Fonctions ---------------------
 */
 
 /*
 * Preload d'une liste d'images
 * @param 	Array  liste_src : liste des images
 */
function preload_array ( liste_src, chemin ) {

	var taille = liste_src.length;
	var preload = new Array(taille);
	
	for (var i=0; i<taille;i++) {
		preload[i] = new Image();
		preload[i].src = chemin+liste_src[i];
	}
}

function get_minimum(table)
{
	var min = table[0];
 	for(i=0; i < table.length; i++){
		if(table[i] < min) min = table[i];
	}
	return min;
}

function get_maximum(table)
{
	var max = table[0];
 	for(i=0; i < table.length; i++){
		if(table[i] > max) max = table[i];
	}
	return max;
}

function submitFormulaire(id,url)
{
	var champs = $(id).getElements("input, select");
	var params = '';
    for(var i = 0; i < champs.length; i++) 
    {
		if(champs[i].value != "")
		{
			params += '/('+champs[i].name+')/'+champs[i].value;
		}
    }

    document.location = 'http://' + document.domain + url + params;
}

function lancerRedirection(url)
{
	setTimeout("document.location.replace('"+url+"')", 2500);
}

function succesPdv(result){
	if(result[0][0] == 0 ){
		$('GM').setStyle('display', 'block');	
		$('GMTitre').innerHTML = '<h3>Aucun point de vente trouvé</h3>';
		$('GMLegende').innerHTML ='<p>Veuillez dézoomer la carte pour afficher les points de vente ou entrer <br />un autre code postal</p>';

//		$('map_canvas').setStyle('display', 'none');	
		}
	else if(result[0][0] == -1)
	{
		$('GM').setStyle('display', 'block');	
		$('map_canvas').setStyle('display', 'block');	
		$('GMTitre').innerHTML = '<h3>Trop de points de vente</h3>';
		$('GMLegende').innerHTML ='<p>Veuillez zoomer la carte pour afficher les points de vente</p>';

	}
	else if(result[0][0] < 99 && result[0][0] >0)
	{
		if( !MyGMap )
		{
			centre = get_center(result);
			MyGMap.setCenter(centre, 17);
			place_marker(result, MyGMap, true);
		}
		else
		{
			if(result[2] == "cp")
			{
				centre = get_center(result);
				MyGMap.setCenter(centre, 17);
				place_marker(result, MyGMap, true);
			}
			else
			{
				place_marker(result, MyGMap, false);
			}
		}
	}
}

function init_cp_form()
{

	if($('pvcp'))
	{
		MyGMap = create_map();
		MyGMap.setCenter(new GLatLng('47.144897', '3.076172'), 5);

		$('pvcp').addEvent('submit', function(e){

			e = new Event(e).stop();
			cp = $('pvcp').code_postal.value;
			url_send = $('pvcp').action+'?bounds=no&code_postal='+cp;
			new Request.JSON({
				url:url_send,
				method:'post',
				onComplete:function(){
					//console.log('complete');
				},				
				onSuccess:function(){
					//console.log('ok');
					result= JSON.decode(this.response.text);
					//console.log(result);
					
					succesPdv(result);
				}
			}).send();


		});
	}

}


function get_center(result){
	latitudes = new Array();
	longitudes = new Array();
	for(i = 0; i < result[1].length; i++){
		latitudes[i] = result[1][i][6];
		longitudes[i] = result[1][i][7];

	}
	lat_min = get_minimum(latitudes);
	lng_min = get_minimum(longitudes);
	lat_max = get_maximum(latitudes);
	lng_max = get_maximum(longitudes);
	centre_lat = lat_max - (lat_max - lat_min)/2;
	centre_lng = lng_max - (lng_max - lng_min)/2;
	centre = new GLatLng(centre_lat, centre_lng); 
	return centre;
	
}


function create_map(){
				
	$('GM').setStyle('display', 'block');	
	$('map_canvas').setStyle('display', 'block');	

		
	MyGMap = new GMap2(document.getElementById("map_canvas"));
 	MyGMap.setUIToDefault();



	GEvent.addListener(MyGMap, 'moveend', function(){
		Mymoveend(this);
	});

	return MyGMap;

}

function Mymoveend(MyGMap)
{
	var coins = MyGMap.getBounds();
	var sW = coins.getSouthWest();
	var nE = coins.getNorthEast();
	var url_params = "/pdv.php?bounds=ok&ne_lng="+nE.lng()+"&ne_lat="+nE.lat()+"&so_lng="+sW.lng()+"&so_lat="+sW.lat();

	new Request.JSON({
		url:url_params,
		method:'post',
		onComplete:function(){
		//console.log('complete');
		},				
		onSuccess:function(){
			//console.log('ok');
			//console.log(this.response.text);
			result= JSON.decode(this.response.text);
			succesPdv(result);
		}
	}).send();
}




function place_marker(result, map, changeZoom){
	$('GMTitre').innerHTML = '<h3>'+result[0][0]+' points de vente trouvés</h3>';
	$('GMLegende').innerHTML = '';
   var bounds = new GLatLngBounds();
	for(i = 0; i<result[1].length; i++){
		map.addOverlay(create_marker(result,i));
		if( changeZoom )
		{
			bounds.extend(new GLatLng(result[1][i][6], result[1][i][7]));
		}
	}
	if( changeZoom )
	{
		map.setZoom(map.getBoundsZoomLevel(bounds));
	}
}

function create_marker(result, i){
	var text ='<p>'+result[1][i][1]+'<br />'+result[1][i][2]+'<br />'+result[1][i][3]+' '+result[1][i][4]+'</p>';
	var marker = new GMarker(new GLatLng(result[1][i][6], result[1][i][7]));
	 GEvent.addListener(marker, "click", function() {
		marker.openInfoWindowHtml(text);
	 });
	return marker;
}


function setCentre(code_postal){
        var div_map = document.getElementById("GM");
		div_map.style.display='block';
        var map = new GMap2(document.getElementById("map_canvas"));
        map.setUIToDefault();
		var geocoder = new GClientGeocoder();
		adresse = code_postal+", France";
		geocoder.getLatLng( code_postal, 
			function(point){
				if(!point){
					alert('Adresse non trouvée');
				}
				else
				{
					map.setCenter(point, 13);
				}
			} 
		);

}

function FAISelect(){
	
	var A=document.getElementById("FAI_select");

	if(A.selectedIndex==A.options.length-1){document.getElementById("FAI_select").style.display="none";

	document.getElementById("FAI_autre").style.display="inline";

	document.getElementById("FAI_autre").style.height="100%";

	document.getElementById("FAI_autre").focus()
	}
}

function concatDateNaiss(){
	document.getElementById("datenaiss").value = document.getElementById("jourNaissance").value+"/"+document.getElementById("moisNaissance").value+"/"+document.getElementById("anneeNaissance").value;
}

function concatMail(){
	if(document.getElementById("FAI_select").style.display!="none"){
		document.getElementById("email").value=document.getElementById("prefix").value+"@"+document.getElementById("FAI_select").value;
	}
	else {
		document.getElementById("email").value=document.getElementById("prefix").value+"@"+document.getElementById("FAI_autre").value;
	}
}

function verifieForm(id)
{
	var champs = $(id).getElements("input, select");
	var valide = true;
	var isCheck = false;
    for(var i = 0; i < champs.length; i++)
    {
    	if(champs[i].get('name') == 'nom' || champs[i].get('name') == 'prenom' || champs[i].get('name') == 'deptNaissance' || champs[i].get('name') == 'villeNaissance' || champs[i].get('name') == 'adresse1' || champs[i].get('name') == 'codePostal' || champs[i].get('name') == 'ville')
    	{
    		$('erreur'+champs[i].get('name')).setStyle('display','none');
    		if(champs[i].get('value') == '')
    		{
    			valide = false;
    			$('erreur'+champs[i].get('name')).setStyle('display','inline');
			}
		}
		else if(champs[i].get('name') == 'datenaissance')
		{
			$('erreur'+champs[i].get('name')).setStyle('display','none');
			if(!verifierDateNaissance(champs[i].get('value')))
			{
    			valide = false;
    			$('erreur'+champs[i].get('name')).setStyle('display','inline');
			}
		}
		else if(champs[i].get('name') == 'email')
		{
			$('erreur'+champs[i].get('name')).setStyle('display','none');
			if(!verifierAdresseMail(champs[i].get('value')))
			{
				valide = false;
				$('erreur'+champs[i].get('name')).setStyle('display','inline');
			}
		}
		else if(champs[i].get('name') == 'cu')
		{
			//$('erreur'+champs[i].get('name')).setStyle('display','none');
			//if(champs[i].checked)
				isCheck = true;	
		}
	}

	if(isCheck == false)
	{
		$('erreurcu').setStyle('display','inline');
		valide = false;
	}
	
	return valide;
}

function verifierAdresseMail(adresse)
{
	var place = adresse.indexOf("@",1);
	var point = adresse.indexOf(".",place+1);
	return ((place > -1)&&(adresse.length >2)&&(point > 1)) && adresse == $('confirmationEmail').value;
}

function verifierDateNaissance(date)
{
   var d = new RegExp('^[0-9]{2}/[0-9]{2}/[0-9]{4}$');
   return d.test(date);  
   	
}

function concatCentreInt(id)
{
	var champs = $(id).getElements("input");
	var preferences = '';
    for(var i = 0; i < champs.length; i++)
    {
    	if(champs[i].get('name') == 'preference' && champs[i].checked)
    	{
    		if(preferences != '')
    		{
    			preferences += ',';
    		}
    		preferences += champs[i].get('value');
    	}
    	
	}
	$("preferences").value=preferences;
	
}

function submitForm(id)
{
	var champs = $$('#'+id+' input');
	var data = '';
    for(var i = 0; i < champs.length; i++)
    {
    	if(i!=0 && champs[i].get('name') != 'preference') data += '&';
    	if(champs[i].get('name') != 'preference')
    		data += champs[i].get('name') + '=' + champs[i].get('value');
	}

	var url = 'http://' + document.location.hostname + '/ajaxProxy.php?url=http://www.cofinoga.fr/newsletter/inscriptionSave.do';
	var options = { method:'post', url: url, async: false };
	var ajax= new Request(options).send(data);
	$(id).submit();
}

function checkFormNewsletter(idForm){
	if(verifieForm(idForm)){
		document.getElementById("formNewsletter").submit();
	}
}

function openHighslide()
{
	var isIE6 = navigator.userAgent.toLowerCase().indexOf('msie 6') != -1;
	hs.htmlExpand(null, { contentId: 'highslide-html' } );
	if(isIE6)
		setTimeout("hs.htmlExpand(null, { contentId: 'highslide-html' } )", 1000);
	 
}

var timer;
var myEffect;

function openOffre(element)
{
	timer = openOffreGo.delay(300, element, element);
}

var openOffreGo = function (element)
{
	var lien = $(element);	
	var offre = lien.getNext();
	
	if(offre != null)
	{
		offre.setStyle('visibility','visible');

		myEffect = new Fx.Morph(offre, {duration: 500, transition: Fx.Transitions.Sine.easeOut});

		myEffect.set({
			'opacity': 0
		});

		myEffect.start({
			'opacity': 1 
		});
	}
	
}

function closeOffre(element)
{
	$clear(timer);
		
	var lien = $(element);
	var offre = lien.getNext();
	
	if(offre != null)
		if(offre.getStyle('opacity') > 0 && myEffect != null)
		{
			myEffect.cancel();
			myEffect.start({
				'opacity': 0 
			});
		}
	
}

var maxCookie = 9;	//correspond à 8 produits dans l'historique, car on exclut le produit en cours de visualisation

function ajoutProduitCookie(id)
{
	var cookie = Cookie.read('parcoursProduit');
	if(cookie != null)
	{
		var tabId = cookie.split(';');
		if(!tabId.contains(id))	//le node id n'existe pas encore, on l'ajoute
		{
			tabId.push(id);
			
			if(tabId.length > maxCookie+1)
			{
				var tmpId = tabId[0];
				tabId.erase(tmpId);
			}
				
			var newCookie = '';
			tabId.each(function(item, index){
				if(item!= '') 
					newCookie += item+';';
			});
			
			Cookie.write('parcoursProduit', newCookie, {duration: 365, domain: document.location.hostname , path: '/'});
		}
		else
		{
			tabId.erase(id);
			tabId.push(id);
			
			var newCookie = '';
			tabId.each(function(item, index){
				if(item!= '') 
					newCookie += item+';';
			});
			
			Cookie.write('parcoursProduit', newCookie, {duration: 1, domain: document.location.hostname , path: '/'});
		}
		
	}
	else
		Cookie.write('parcoursProduit', id+';', {duration: 1, domain: document.location.hostname ,path: '/'});

}

function afficheHistorique(id,node_id)
{	
	var cookie = Cookie.read('parcoursProduit');
	if(cookie != null)
	{	
		var tabId = cookie.split(';');
		if(tabId.length > 2) // on a au moins 2 produits en historique, donc on peut afficher l'historique
		{
			$("historique").setStyle('display','block');
			var url = 'http://' + document.location.hostname + '/historique/affiche_historique/' + cookie +'/'+node_id;
			var myHTMLRequest = new Request.HTML({evalScripts:true, update:id}).get(url);
		}
	}	
}
