var PV = null;

/**
 * @param  pc Combo de paises
 * @param  rc Ccombo de regiones
 * @param  lc Ccombo de localidades
 */
var PuntosVenta = new Class({
	
	_pc : null,
	_rc : null,
	_lc : null,
	_lang: null,
	
	initialize : function(pc, rc, lc, lang) {

		//alert(rc);
		this._pc = pc;
		this._rc = rc;
		this._lc = lc;
		this._lang = lang;
		
		if(pc) {
			pc.addEvent('change', function(){PV.getRegiones(lang);}, false);
			pc.addEvent('change', function(){PV.getLocalidades(lang);}, false);
// 			rc.addEvent('change', function(){PV._lc.selectedIndex=0;}, false);
// 			lc.addEvent('change', function(){PV._rc.selectedIndex=0;}, false);
			rc.addEvent('change', function(){PV.getLocalidadesWithRegion(rc.options[rc.selectedIndex].value,lang)}, false);
			//lc.addEvent('change', function(){PV.getRegionesWithLocalidad(lc.options[lc.selectedIndex].value,lang)}, false);
			//lc.addEvent('change', function(){PV._rc.selectedIndex=0;}, false);
		}
	},
	
	createNode : function(id, name) {		
		var node = new Element('option').setProperties({
			'value' : id
		}).setHTML(name);
				
		return node;
	},
	
	addNode : function(combo, value, text) {
		var opt = this.createNode(value, text);
		combo.appendChild(opt);
	},
	
	cleanCombo : function(combo) {
		for(var i = (combo.childNodes.length-1); i >= 0 ; i--) {
			combo.removeChild(combo.childNodes[i]);
		}
	},
	
	fillCombo : function(xml, combo) {	
		var xml = xml.documentElement;
		var elemento = xml.firstChild;
		
		//this.addNode(combo, 0, 'Seleccione una opciÃ³n');
		
		while(elemento) {
			if(elemento.firstChild){
			var id = elemento.getAttribute('id');
			var nombre = elemento.firstChild.nodeValue;
			
			this.addNode(combo, id, nombre);
			}
			elemento = elemento.nextSibling;
			
		}
	},
	
	setPaises : function(texto, xml) {
		/**
		  * Limpiamos los combos
		  */
		PV.cleanCombo(PV._pc);
		PV.cleanCombo(PV._rc);
		PV.cleanCombo(PV._lc);
		PV.fillCombo(xml, PV._pc);
	},
		
	getPaises : function(continente, lang) {
		var cnt = null;
		switch(continente) {
			case 0:
				cnt = "Europa"
				break;
			case 1:
				cnt = "America"
				break;
			case 2:
				cnt = "Ãfrica"
				break;
			case 3:
				cnt = "Asia"
				break;
			case 4:
				cnt = "OceanÃ­a"
				break;
		}
		$('continente').setHTML(cnt);
		
		var url = "/src/getPaises.php?continente=" + continente + "&lang=" + lang;
		Ajaxhttp = new Ajax(url, {method: 'get', onComplete: this.setPaises}).request();
	},
	
	setRegiones : function(texto, xml) {
		PV.cleanCombo(PV._rc);
		PV.fillCombo(xml, PV._rc);
	},
	
	getRegiones : function(lang) {
		var pais = this._pc.options[this._pc.selectedIndex].value;
		
		var url = "/src/getRegiones.php?pais=" + pais + "&lang=" + lang;
		Ajaxhttp = new Ajax(url, {method: 'get', onComplete: this.setRegiones}).request();
	},

	getRegionesWithLocalidad : function(localidad,lang) {
		var pais = this._pc.options[this._pc.selectedIndex].value;		
		
		var url = "/src/getRegiones.php?localidad="+ localidad +"&pais=" + pais + "&lang=" + lang;
		Ajaxhttp = new Ajax(url, {method: 'get', onComplete: this.setRegiones}).request();
	},

	setLocalidades : function(texto, xml) {
		PV.cleanCombo(PV._lc);
		PV.fillCombo(xml, PV._lc);
	},
	
	getLocalidades : function(lang) {
		var pais = this._pc.options[this._pc.selectedIndex].value;
		
		var url = "/src/getLocalidades.php?pais=" + pais + "&lang=" + lang;
		Ajaxhttp = new Ajax(url, {method: 'get', onComplete: this.setLocalidades}).request();
	},
	
	getLocalidadesWithRegion : function(region,lang) {
		var pais = this._pc.options[this._pc.selectedIndex].value;
		
		var url = "/src/getLocalidades.php?region="+region+"&pais=" + pais + "&lang=" + lang;
		Ajaxhttp = new Ajax(url, {method: 'get', onComplete: this.setLocalidades}).request();
	}
});

//Window.onDomReady(function(){
function initPuntosVenta(lang) {
	//alert($ES('.selectorPais'));
	$ES('.selectorPais').setStyle('display', 'none');

	PV = new PuntosVenta($('pais'), $('region'), $('localidad'), lang);

	
	if($('europaArea')) {
		$('europaArea').addEvent('click', function(){
			PV.getPaises(0, lang);
			$ES('.selectorPais').setStyle('display', 'block');
			$ES('.textoContinente').setStyle('display', 'none');
		}, false);
		$('europaArea').addEvent('mouseover', function(){
			MM_swapImage('Image1','','/imgs/mapaMundi.europaOn.gif',1);
		}, false);
		$('europaArea').addEvent('mouseout', function(){
			MM_swapImgRestore()
		}, false);
	}
	
	if($('europaArea')) {
		$('americaArea').addEvent('click', function(){
			PV.getPaises(1, lang);
			$ES('.selectorPais').setStyle('display', 'block');
			$ES('.textoContinente').setStyle('display', 'none');
		}, false);
		$('americaArea').addEvent('mouseover', function(){
			MM_swapImage('Image1','','/imgs/mapaMundi.americaOn.gif',1);
		}, false);
		$('americaArea').addEvent('mouseout', function(){
			MM_swapImgRestore()
		}, false);
	}
	
	if($('europaArea')) {
		$('africaArea').addEvent('click', function(){
			PV.getPaises(2, lang);
			$ES('.selectorPais').setStyle('display', 'block');
			$ES('.textoContinente').setStyle('display', 'none');
		}, false);
		$('africaArea').addEvent('mouseover', function(){
			MM_swapImage('Image1','','/imgs/mapaMundi.africaOn.gif',1);
		}, false);
		$('africaArea').addEvent('mouseout', function(){
			MM_swapImgRestore()
		}, false);
	}
	
	if($('europaArea')) {
		$('asiaArea').addEvent('click', function(){
			PV.getPaises(3, lang);
			$ES('.selectorPais').setStyle('display', 'block');
			$ES('.textoContinente').setStyle('display', 'none');
		}, false);
		$('asiaArea').addEvent('mouseover', function(){
			MM_swapImage('Image1','','/imgs/mapaMundi.asiaOn.gif',1);
		}, false);
		$('asiaArea').addEvent('mouseout', function(){
			MM_swapImgRestore()
		}, false);
	}
	
	if($('europaArea')) {
		$('oceaniaArea').addEvent('click', function(){
			PV.getPaises(4, lang);
			$ES('.selectorPais').setStyle('display', 'block');
			$ES('.textoContinente').setStyle('display', 'none');
		}, false);
		$('oceaniaArea').addEvent('mouseover', function(){
			MM_swapImage('Image1','','/imgs/mapaMundi.oceaniaOn.gif',1);
		}, false);
		$('oceaniaArea').addEvent('mouseout', function(){
			MM_swapImgRestore()
		}, false);
	}
}

function continuar(form){

	   if (form.elements["localidad"].value!=0 || form.elements["region"].value>0){
		   form.submit();
	    
	  }
}
