Ext.onReady(function(){

var container = Ext.get("SelectContainer");

var publicite = Ext.get("SelectPublicite");

var buttonValid = Ext.get("validButton");

if(container){
	container.on("change",setContainer);
}

if(publicite){
	publicite.on("change",setPublicite);
}

if(buttonValid){
	buttonValid.on("click",validCampagne);
}

/*
var deb = Ext.get("dateDebut");

var debut = new Ext.DatePicker({
	renderTo : deb,
    fieldLabel: 'Date debut',
    id : "pickerDeb"
    });

var Ofin = Ext.get("dateFin");
var fin = new Ext.DatePicker({
	renderTo : Ofin,
    fieldLabel: 'Date fin',
    id : "pickerFin"
    });
*/
//debut.on("select",setDate);
//fin.on("select",setDate);

}); // fin du On ready
/*
function setDate(elem, date){
	var accroche = "";
	var idE = ""; 
	if(elem.id == "pickerDeb"){
		accroche += "debut de la campagne le ";
		idE = "debutD"; 
		Ext.get("hDateDebut").dom.value = date.format("Y/m/d") ;
	}else{
		accroche += "fin de la campagne le ";
		idE = "finD";
		Ext.get("hDateFin").dom.value = date.format("Y/m/d") ;
	}
	Ext.get(idE).update(accroche+date.format("d M Y"));
}*/


function setContainer(){
	var container = Ext.get("SelectContainer");
	
	// on affecte le container
	var containerHidden = Ext.get("container");
	var valcontainer = container.getValue();
	containerHidden.dom.value = container.getValue();
	
	// on présente le lien de visualisation
	var visu = Ext.get("containerVisualisation");
		
	if(valcontainer && valcontainer != ""){
	
	Ext.Ajax.request({
			url : '/Publicite/Data/container',
			params : {idcontainer : container.getValue()},
			success: function( result, request ) {
				var obj = Ext.util.JSON.decode(result.responseText);
				var str = "<a href='"+obj.url+"/numero/"+obj.numero+"/visu/up/page/"+obj.page+"' target='blank'>voir le container</a>";
				visu.update(str);
			 },

			failure: function ( result, request) { 
				Ext.MessageBox.alert('Failed',"une erreur est survenue"); 
			},
			callback: function (result, request){
			} 
		});
	}else{
		visu.update("");
	}		
}


function setPublicite(){
	var publicite = Ext.get("SelectPublicite");
	// on affecte le container
	var publiciteHidden = Ext.get("publicite");
	var valpub = publicite.getValue();
	publiciteHidden.dom.value = publicite.getValue();
	// on présente le lien de visualisation
	var visu = Ext.get("publiciteVisualisation");	
	
	if(valpub && valpub != ""){
	Ext.Ajax.request({
			url : '/Publicite/Data/publicite',
			params : {idpublicite : publicite.getValue()},
			success: function( result, request ) {
				var obj = Ext.util.JSON.decode(result.responseText);
				var str = "<a onclick=\"previsualisePub('"+obj.nom+"')\">pr&eacute;visualisez</a>";
				visu.update(str);
			 },

			failure: function ( result, request) { 
				Ext.MessageBox.alert('Failed',"une erreur est survenue"); 
			},
			callback: function (result, request){
			} 
		});
	}else{
		visu.update("");
	}		
}

/**
 * Function permettant la prévisualisation
 * des publicités
 * Lance la fenetre de previsualisation
 *
 */
function previsualisePub(nom){
	//alert('/Publicite/Index/previsualise/nom/'+nom);
	
	Ext.Ajax.request({
			url : '/Publicite/Index/previsualise/',
			params : {nom : nom},
			success: function( result, request ) {
				createWindow(result.responseText);
			 },

			failure: function ( result, request) { 
				Ext.MessageBox.alert('Failed',"Aucune pr&eacute;visualisation disponible !"); 
			},
			callback: function (result, request){
			} 
		});	
}

/**
 * Creation de la fenetre
 *
 */
 var createWindow = function(content){
	var e = Ext.DomHelper.insertFirst("entete",{
	 			id:"visualisationPub-win",
	 			tag : "div",
	 			cls : 'x-hidden', 
	 			children : {tag : "div",cls : "x-window-header",html : "Administration"}
	 		});	
    
  	var p = new Ext.Panel({
  	region : 'center',
  	id: 'mycomtent'}); 
	
    var win = new Ext.Window({
                el:'visualisationPub-win',
				layout:'border',
                width:850,
                height:400,
                //autoHeight : true,
//                closeAction:'hide',
//                plain: true,
                items : p
                ,buttons: [{
                    text: 'Close',
                    handler: function(){
						win.close();
                    }
                }]
            });
      win.show();
	  
       Ext.fly('mycomtent').update(content,null,function(){
        	/*listenBoutonsVilles();
			creerLiensSpansVilles();
			listenVerificationChamps();*/
        });
        
	}
/**
 * Permet de mettre en place la campagne 
 * relativement aux informtions données
 *
 */	
function validCampagne(){
	
	var pub = Ext.get("publicite");
	var cont = Ext.get("container");
		
	if( pub && cont && pub.getValue() != "" && cont.getValue() != ""){
	
	// on vérifie que les dates sont bonnes
	// c'est verifDate qui lance la sauvegarde
	verifDate();
		
	}else{
		var pub = Ext.get("publicite");
		if(pub && pub.getValue() == ""){
			myalerte("publicite",true);
		}else{
			myalerte("publicite",false);
		}
		
		var cont = Ext.get("container");
		if(cont && cont.getValue() == ""){
			myalerte("container",true)
		}else{
			myalerte("container",false);
		}
		
		Ext.MessageBox.alert('Failed',"Le conteneur ou la plucit&eacute; n&acute;est pas renseign&eacute;.");
	}
	
}

function loadDataCampagne(){
	var params = Ext.Ajax.serializeForm("form_add_campagne");
	Ext.Ajax.request({
			url : '/Publicite/Index/campagne/',
			params : params,
			success: function( result, request ) {
				if(result.responseText == "1"){
					Ext.MessageBox.alert('Success',"Votre campagne est cr&eacute;&eacute;e !");
					Ext.get("debutD").update("") ;
					Ext.get("finD").update("") ;
					Ext.get("publiciteVisualisation").update("");
					Ext.get("containerVisualisation").update("");
					document.form_add_campagne.reset();
				}
			 },

			failure: function ( result, request) { 
				Ext.MessageBox.alert('Failed',"Votre validation a &eacut;chou&eacute; !"); 
			},
			callback: function (result, request){
			} 
	});
}

function verifDate(){
	var hdatedebut = Ext.get("hDateDebut");
	var hdatefin = Ext.get("hDateFin");
	
	var dureeDebut = Date.parse(hdatedebut.getValue());
	var dureeFin = Date.parse(hdatefin.getValue());
	
	var objNow = new Date();
	var now = objNow.getTime();
	
	var doIt = true;
	
	if(dureeFin < now){
		doIt = false;
		Ext.MessageBox.alert('Erreur',"Votre p&eacute;riode de campagne est termin&eacute;e.");
	}
	
	if(doIt && dureeFin == dureeDebut){
		// debut de la confirmation
		var texte = "Attention les dates de d&eacute;but et de fin sont identiques.<br/>Continuer la saisie?";
		Ext.MessageBox.confirm("Confirmation",texte,function(button){
			if(button == "yes"){
				loadDataCampagne();
			}
		}); // fin de la confirmation.
		
	}else if(doIt){ 
	
		if(dureeFin < dureeDebut){
			myalerte("dateDebut",true);
			myalerte("dateFin",true);
			Ext.MessageBox.alert('Failed',"La date de fin est ant&eacute;rieure &agrave; la date de d&eacute;but");
		}else{
			loadDataCampagne();
			myalerte("dateDebut",false);
			myalerte("dateFin",false);
		}
	}
}


function myalerte(nom,doIt){
	var elem = Ext.get("label_"+nom);
	if(doIt && elem){
		elem.addClass("alerte");
	}else if(elem){
		elem.removeClass("alerte");
	}
}	
