//
//	GEO COUNTRY
//
function onGeoCountryChange(obj){
	
	field_arr_name = (obj && obj.data && obj.data.field_arr_name && typeof obj.data.field_arr_name === 'string' && 
						obj.data.field_arr_name.length > 0)?obj.data.field_arr_name:'arrGeoData';	
	
	if($(field_arr_name+'[GeoCountryId]')){
		//console.log('ManageGeoFormData country : '+field_arr_name+" Add event");
		$(field_arr_name+'[GeoCountryId]').addEvents({
			'change'	:	function(){
				if($(this).value && $(field_arr_name+'[OldGeoCountryId]').value !=$(this).value){ // SI LE CONTINENT EST DIFFERENT DE NULLE
					// REFRESH ANCIEN CONTINENT SELECTIONNE
					$(field_arr_name+'[OldGeoCountryId]').value = $(this).value;
					// LOAD LE NOUVEAU DROP
					LoadContent({
						id 			: 'tool-geo-state',
						ajax_file	: 'tool.geo.validation',
						loading_div : 'cell[GeoStateId]',
						class_name	: 'cell',
						styles		: {'width':'200px'},
						data		: {
							key				:'GeoCountryId',
							value			:$(this).value,
							field_arr_name 	: field_arr_name,
							print_html		:1
						},
						fnDone		: ManageGeoFormData
					});
					['GeoStateId','GeoRegionId','GeoCityId'].each(function(item,index){
						//console.log('ManageGeoFormData continent : '+field_arr_name+" Add event");
						if($('cell['+item+']')){									
							// FADE DROP
							$('cell['+item+']').fade(0);
							$('cell['+item+']').set('html','&nbsp;');
							// CHANGE OLD VALUE
							$(field_arr_name+'[Old'+item+']').value = -1;
						}
					});																																
				}
			}
		});
	}
	if($('link[NewGeoCountry]')){
		$('link[NewGeoCountry]').addEvents({
			'click'	: function(){
				// CHANGE LE DROP, POUR UN INPUT
				LoadContent({
					id 			: 'tool-geo-country',
					ajax_file	: 'tool.geo.validation',
					loading_div : 'cell[GeoCountryId]',
					class_name	: 'cell',
					styles		: {'width':'200px'},
					data		: {
						key				:'NewGeoCountry',
						value			:'',
						field_arr_name 	: field_arr_name,
						print_html		:1
					},
					fnDone		: ManageGeoFormData
				});
				return false;																	
			}														
		});		
	}	
	if($('link[SaveGeoCountry]')){
		$('link[SaveGeoCountry]').addEvents({
			'click'	: function(){						
				// CHANGE LE DROP, POUR UN INPUT
				validate_form({
					ajax_file		:'tool.geo.validation',
					key				:field_arr_name+'[GeoCountryLabelName]',
					data			:{
						key :'SaveGeoCountry',
						value:$(field_arr_name+'[GeoCountryLabelName]').value,
						GeoContinentId	: $(field_arr_name+'[GeoContinentId]').value,
						field_arr_name 	: field_arr_name
					},
					msg_holder_id	:'msg[GeoCountryLabelName]',		
					fnDone			:{
						fnName:myLoadContent,
						fnObj:{	id 			: 'tool-geo-country',
								ajax_file	: 'tool.geo.validation',
								loading_div : 'cell[GeoCountryId]',
								class_name	: 'cell',
								styles		: {'width':'200px'},
								data		: {
									key:'GeoContinentId',
									/*GeoContinentId	: $(field_arr_name+'[GeoContinentId]').value,*/
									field_arr_name 	: field_arr_name,
									print_html:1
								},
								
								fnDone		: ManageGeoFormData
							}
					}							
				});
				return false;
			}														
		});		
	}	
	if($('link[BackGeoCountry]')){
		$('link[BackGeoCountry]').addEvents({
			'click'	: function(){
				// LOAD LE NOUVEAU DROP
				LoadContent({
					id 			: 'tool-geo-country',
					ajax_file	: 'tool.geo.validation',
					loading_div : 'cell[GeoCountryId]',
					class_name	: 'cell',
					styles		: {'width':'200px'},
					data		: {
						key:'GeoContinentId',
						value:$(field_arr_name+'[GeoContinentId]').value,
						field_arr_name 	: field_arr_name,
						print_html:1
					},
					
					fnDone		: ManageGeoFormData
				});	
				return false;													
			}														
		});		
	}		
}
//
//	GEO STATE
//
function onGeoStateChange(obj){
	
	field_arr_name = (obj && obj.data && obj.data.field_arr_name && typeof obj.data.field_arr_name === 'string' && 
						obj.data.field_arr_name.length > 0)?obj.data.field_arr_name:'arrGeoData';	
	
	if($(field_arr_name+'[GeoStateId]')){
		$(field_arr_name+'[GeoStateId]').addEvents({
			'change'	:	function(){
				if($(this).value && $(field_arr_name+'[OldGeoStateId]').value !=$(this).value){ // SI LE CONTINENT EST DIFFERENT DE NULLE
					// REFRESH ANCIEN CONTINENT SELECTIONNE
					$(field_arr_name+'[OldGeoStateId]').value = $(this).value;
					// LOAD LE NOUVEAU DROP
					LoadContent({
						id 			: 'tool-geo-region',
						ajax_file	: 'tool.geo.validation',
						loading_div : 'cell[GeoRegionId]',
						class_name	: 'cell',
						styles		: {'width':'200px'},
						data		: {
							key:'GeoStateId',
							value:$(this).value,
							field_arr_name 	: field_arr_name,
							print_html:1
						},
						
						fnDone		: ManageGeoFormData
					});
					// FLUSH LES ENFANTS
					['GeoRegionId','GeoCityId'].each(function(item,index){
						//console.log('ManageGeoFormData continent : '+field_arr_name+" Add event");
						if($('cell['+item+']')){									
							// FADE DROP
							$('cell['+item+']').fade(0);
							$('cell['+item+']').set('html','&nbsp;');
							// CHANGE OLD VALUE
							$(field_arr_name+'[Old'+item+']').value = -1;
						}
					});																															
				}
			}
		});
	}
	if($('link[NewGeoState]')){
		$('link[NewGeoState]').addEvents({
			'click'	: function(){
				// CHANGE LE DROP, POUR UN INPUT
				LoadContent({
					id 			: 'tool-geo-state',
					ajax_file	: 'tool.geo.validation',
					loading_div : 'cell[GeoStateId]',
					class_name	: 'cell',
					styles		: {'width':'200px'},
					data		: {
						key:'NewGeoState',
						value:'',
						field_arr_name 	: field_arr_name,
						print_html:1
					},
					
					fnDone		: ManageGeoFormData
				});	
				return false;																
			}														
		});		
	}	
	if($('link[SaveGeoState]')){
		$('link[SaveGeoState]').addEvents({
			'click'	: function(){						
				// CHANGE LE DROP, POUR UN INPUT
				validate_form({
					ajax_file		:'tool.geo.validation',
					key				:field_arr_name+'[GeoStateLabelName]',
					data			:{	key :'SaveGeoState',
										value:$(field_arr_name+'[GeoStateLabelName]').value,
										/*GeoContinentId	: $(field_arr_name+'[GeoContinentId]').value,*/
										GeoCountryId	: $(field_arr_name+'[GeoCountryId]').value
					},
					msg_holder_id	:'msg[GeoStateLabelName]',							
					fnDone			:{
						fnName:myLoadContent,
						fnObj:{	id 			: 'tool-geo-state',
								ajax_file	: 'tool.geo.validation',
								loading_div : 'cell[GeoStateId]',
								class_name	: 'cell',
								styles		: {'width':'200px'},
								data		: {
									key:'GeoCountryId',
									value:$(field_arr_name+'[GeoCountryId]').value,
									field_arr_name 	: field_arr_name,
									print_html:1
								},
								fnDone		: ManageGeoFormData
							}
					}							
				});
				return false;
			}														
		});		
	}	
	if($('link[BackGeoState]')){
		$('link[BackGeoState]').addEvents({
			'click'	: function(){
				// LOAD LE NOUVEAU DROP
				LoadContent({
					id 			: 'tool-geo-state',
					ajax_file	: 'tool.geo.validation',
					loading_div : 'cell[GeoStateId]',
					class_name	: 'cell',
					styles		: {'width':'200px'},
					data		: {
						key:'GeoCountryId',
						value:$(field_arr_name+'[GeoCountryId]').value,
						field_arr_name 	: field_arr_name,
						print_html:1
					},
					fnDone		: ManageGeoFormData
				});		
				return false;												
			}														
		});		
	}				
}
//
//	GEO REGION
//
function onGeoRegionChange(obj){
	
	field_arr_name = (obj && obj.data && obj.data.field_arr_name && typeof obj.data.field_arr_name === 'string' && 
						obj.data.field_arr_name.length > 0)?obj.data.field_arr_name:'arrGeoData';	
	
	if($(field_arr_name+'[GeoRegionId]')){
		$(field_arr_name+'[GeoRegionId]').addEvents({
			'change'	:	function(){
				if($(this).value &&  $(field_arr_name+'[OldGeoRegionId]').value !=$(this).value){ // SI LE CONTINENT EST DIFFERENT DE NULLE
					// REFRESH ANCIEN CONTINENT SELECTIONNE
					$(field_arr_name+'[OldGeoRegionId]').value = $(this).value;
					// LOAD LE NOUVEAU DROP
					LoadContent({
						id 			: 'tool-geo-city',
						ajax_file	: 'tool.geo.validation',
						loading_div : 'cell[GeoCityId]',
						class_name	: 'cell',
						styles		: {'width':'200px'},
						data		: {
							key:'GeoRegionId',
							value:$(this).value,
							field_arr_name 	: field_arr_name,
							print_html:1
						},
					
						fnDone		: ManageGeoFormData
					});		
				
					['GeoCityId'].each(function(item,index){
						//console.log('ManageGeoFormData continent : '+field_arr_name+" Add event");
						if($('cell['+item+']')){									
							// FADE DROP
							$('cell['+item+']').fade(0);
							$('cell['+item+']').set('html','&nbsp;');
							// CHANGE OLD VALUE
							$(field_arr_name+'[Old'+item+']').value = -1;
						}
					});											
				}
			}
		});
	}
	if($('link[NewGeoRegion]')){
		$('link[NewGeoRegion]').addEvents({
			'click'	: function(){
				// CHANGE LE DROP, POUR UN INPUT
				LoadContent({
					id 			: 'tool-geo-region',
					ajax_file	: 'tool.geo.validation',
					loading_div : 'cell[GeoRegionId]',
					class_name	: 'cell',
					styles		: {'width':'200px'},
					data		: {
						key:'NewGeoRegion',
						value:'',
						field_arr_name 	: field_arr_name,
						print_html:1
					},
					fnDone		: ManageGeoFormData
				});	
				return false;																
			}														
		});		
	}	
	if($('link[SaveGeoRegion]')){
		$('link[SaveGeoRegion]').addEvents({
			'click'	: function(){						
				// CHANGE LE DROP, POUR UN INPUT
				validate_form({
					ajax_file		:'tool.geo.validation',
					key				:field_arr_name+'[GeoRegionLabelName]',
					data			:{	key :'SaveGeoRegion',
										value:$(field_arr_name+'[GeoRegionLabelName]').value,
										/*GeoContinentId	: $(field_arr_name+'[GeoContinentId]').value,*/
										GeoCountryId	: $(field_arr_name+'[GeoCountryId]').value,
										GeoStateId		: $(field_arr_name+'[GeoStateId]').value,
										field_arr_name 	: field_arr_name
					},
					field_arr_name : field_arr_name,
					msg_holder_id	:'msg[GeoRegionLabelName]',							
					fnDone			:{
						fnName:myLoadContent,
						fnObj:{	id 			: 'tool-geo-region',
								ajax_file	: 'tool.geo.validation',
								loading_div : 'cell[GeoRegionId]',
								class_name	: 'cell',
								styles		: {'width':'200px'},
								data		: {
									key:'GeoStateId',
									value:$(field_arr_name+'[GeoStateId]').value,
									field_arr_name 	: field_arr_name,
									print_html:1
								},
								fnDone		: ManageGeoFormData
							}
					}							
				});
				return false;
			}														
		});		
	}	
	if($('link[BackGeoRegion]')){
		$('link[BackGeoRegion]').addEvents({
			'click'	: function(){
				// LOAD LE NOUVEAU DROP
				LoadContent({
					id 			: 'tool-geo-region',
					ajax_file	: 'tool.geo.validation',
					loading_div : 'cell[GeoRegionId]',
					class_name	: 'cell',
					styles		: {'width':'200px'},
					data		: {
						key:'GeoStateId',
						value:$(field_arr_name+'[GeoStateId]').value,
						field_arr_name 	: field_arr_name,
						print_html:1
					},
					fnDone		: ManageGeoFormData
				});	
				return false;													
			}														
		});		
	}					
}
//
//	GEO CITY
//
function onGeoCityChange(obj){
	
	field_arr_name = (obj && obj.data && obj.data.field_arr_name && typeof obj.data.field_arr_name === 'string' && 
						obj.data.field_arr_name.length > 0)?obj.data.field_arr_name:'arrGeoData';	
	
	if($(field_arr_name+'[GeoCityId]')){
		$(field_arr_name+'[GeoCityId]').addEvents({
			'change'	:	function(){
				if($(this).value && $(field_arr_name+'[OldGeoCityId]').value !=$(this).value){ // SI LE CONTINENT EST DIFFERENT DE NULLE
					// REFRESH ANCIEN CONTINENT SELECTIONNE
					$(field_arr_name+'[OldGeoCityId]').value = $(this).value;																	
				}
			}
		});
	}
	if($('link[NewGeoCity]')){
		$('link[NewGeoCity]').addEvents({
			'click'	: function(){
				// CHANGE LE DROP, POUR UN INPUT
				LoadContent({
					id 			: 'tool-geo-city',
					ajax_file	: 'tool.geo.validation',
					loading_div : 'cell[GeoCityId]',
					class_name	: 'cell',
					styles		: {'width':'200px'},
					data		: {
						key:'NewGeoCity',
						value:'',
						field_arr_name 	: field_arr_name,
						print_html:1
					},					
					fnDone		: ManageGeoFormData
				});
				return false;															
			}														
		});		
	}	
	if($('link[SaveGeoCity]')){
		$('link[SaveGeoCity]').addEvents({
			'click'	: function(){						
				// CHANGE LE DROP, POUR UN INPUT
				validate_form({
					ajax_file		:'tool.geo.validation',
					key				:field_arr_name+'[GeoCityLabelName]',
					data			:{	key :'SaveGeoCity',
										value:$(field_arr_name+'[GeoCityLabelName]').value,
										/*GeoContinentId	: $(field_arr_name+'[GeoContinentId]').value,*/
										GeoCountryId	: $(field_arr_name+'[GeoCountryId]').value,
										GeoStateId		: $(field_arr_name+'[GeoStateId]').value,
										GeoRegionId		: $(field_arr_name+'[GeoRegionId]').value,
										field_arr_name 	: field_arr_name
					},
					msg_holder_id	:'msg[GeoCityLabelName]',							
					field_arr_name : field_arr_name,
					fnDone			:{
						fnName:myLoadContent,
						fnObj:{	id 			: 'tool-geo-city',
								ajax_file	: 'tool.geo.validation',
								loading_div : 'cell[GeoCityId]',
								class_name	: 'cell',
								styles		: {'width':'200px'},
								data		: {
									key:'GeoRegionId',
									value:$(field_arr_name+'[GeoRegionId]').value,
									field_arr_name 	: field_arr_name,
									print_html:1
								},
								fnDone		: ManageGeoFormData
							}
					}							
				});
				return false;
			}														
		});		
	}	
	if($('link[BackGeoCity]')){
		$('link[BackGeoCity]').addEvents({
			'click'	: function(){
				// LOAD LE NOUVEAU DROP
				LoadContent({
					id 			: 'tool-geo-city',
					ajax_file	: 'tool.geo.validation',
					loading_div : 'cell[GeoCityId]',
					class_name	: 'cell',
					styles		: {'width':'200px'},
					data		: {
						key:'GeoRegionId',
						value:$(field_arr_name+'[GeoRegionId]').value,
						field_arr_name 	: field_arr_name,
						print_html:1
					},
					fnDone		: ManageGeoFormData
				});
				return false;													
			}														
		});		
	}				
}

var ManageGeoFormData = function (obj) {
	
	//console.log('ManageGeoFormData inn '+obj.data.field_arr_name);

	
	field_arr_name = (obj && obj.data && obj.data.field_arr_name && typeof obj.data.field_arr_name === 'string' && 
						obj.data.field_arr_name.length > 0)?obj.data.field_arr_name:'arrGeoData';
	
	
	switch(obj.id){
		case 'tool-geo-continent':			
			if($(field_arr_name+'[GeoContinentId]')){
				//console.log('ManageGeoFormData continent : '+field_arr_name+" Add event");
				$(field_arr_name+'[GeoContinentId]').addEvents({
					'change'	:	function(){
						if($(this).value && $(field_arr_name+'[OldGeoContinentId]').value !=$(this).value){ // SI LE CONTINENT EST DIFFERENT DE NULLE
							// REFRESH ANCIEN CONTINENT SELECTIONNE
							$(field_arr_name+'[OldGeoContinentId]').value = $(this).value;
							// LOAD LE NOUVEAU DROP
							LoadContent({
								id 			: 'tool-geo-country',
								ajax_file	: 'tool.geo.validation',
								loading_div : 'cell[GeoCountryId]',
								class_name	: 'cell',
								styles		: {'width':'200px'},
								data		: {
									key				:'GeoContinentId',
									value			:$(this).value,
									field_arr_name 	: field_arr_name,
									print_html		:1
								},								
								fnDone		: ManageGeoFormData
							});
							// FLUSH LES ENFANTS
							//[$('arrContact[GeoCountryId]'),$('arrContact[GeoStateId]'),$('arrContact[GeoRegionId]'),$('arrContact[GeoCityId]')].each(function(item,index){
							//[$('cell[GeoCountryId]'),$('cell[GeoStateId]'),$('cell[GeoRegionId]'),$('cell[GeoCityId]')].each(function(item,index){
							//	if($(item)){
							//		$(item).fade(0);
							//		$(item).set('html','&nbsp;');
							//	}
							//});																																
							['GeoCountryId','GeoStateId','GeoRegionId','GeoCityId'].each(function(item,index){
								//console.log('ManageGeoFormData continent : '+field_arr_name+" Add event");
								if($('cell['+item+']')){									
									// FADE DROP
									$('cell['+item+']').fade(0);
									$('cell['+item+']').set('html','&nbsp;');
									// CHANGE OLD VALUE
									$(field_arr_name+'[Old'+item+']').value = -1;
								}
							});
						}
					}
				});
				onGeoCountryChange(obj);
				onGeoStateChange(obj);	
				onGeoRegionChange(obj);	
				onGeoCityChange(obj);	
			}
			
		break;
		case 'tool-geo-country':
			onGeoCountryChange(obj);																																			
		break;		
		case 'tool-geo-state':
			onGeoStateChange(obj);		
		break;	
		case 'tool-geo-region':
			onGeoRegionChange(obj);		
		break;	
		case 'tool-geo-city':
			onGeoCityChange(obj);
		break;																																															
		default:
		
		break;
										
	}
}