/* MBAB 2008 */
/* SEARCH JAVASCRIPT FUNCTIONS */

/* SEARCH FORM MANIPULATIONS */
function searchFormManipulation(elt) {

	// operations in #moreCrit div
	moreCritInForms('.moreCritLink','#moreCrit');
	// déactivate rubs, object and crit select if no cat is selected
	if(jQuery('.searchCats input:checkbox:checked').size() <= 0 || jQuery('.searchCats input:checkbox:checked').size() > 1) {//!jQuery('.searchCats input:checkbox').attr('checked')
		jQuery('#rubSearch').attr('disabled','disabled').attr('readonly','readonly').addClass('inputDisabled');
		jQuery('#rubSearch').parent();
		jQuery('#objectSearch').attr('disabled','disabled').attr('readonly','readonly').addClass('inputDisabled');
		jQuery('#objectSearch').parent();
		jQuery('#critSearch').attr('disabled','disabled').attr('readonly','readonly').addClass('inputDisabled');
		jQuery('#critSearch').parent();
		rubDisabled = 1;
		objDisabled = 1;
		critDisabled = 1;
		
	}
	// déactivate district proximity checking if no district is chosen
	if (jQuery('#districtSearch').val() == 0) {
		jQuery('#proximAddressesDistrict').attr('disabled','disabled').attr('readonly','readonly').addClass('inputDisabled');
		jQuery('#proximAddressesDistrict').parent().addClass('inputDisabled');
		districtDisabled = 1;
	}
	// deactivate all geographical proximity if no region is chosen
    if (jQuery('#regionSearch').val() == 0) {
		jQuery('#proximAddresses').attr('disabled','disabled').attr('readonly','readonly').addClass('inputDisabled');
		jQuery('#proximAddresses').parent().addClass('inputDisabled');
		jQuery('#moreCrit li li input').each(function() {
			jQuery(this).attr('disabled','disabled').attr('readonly','readonly').addClass('inputDisabled');
			jQuery(this).parent().addClass('inputDisabled');
		});
		jQuery('#districtSearch').attr('disabled','disabled').addClass('inputDisabled');
	}
	jQuery('.searchCats input:checkbox').click(function() {
		var selectVal = jQuery(this).val();

	// light up selected cats
   		jQuery(this).parent().parent('li').toggleClass('activeCat');
		// filling rub select depending on chosen cats : http://www.texotela.co.uk/code/jquery/select/
		if (jQuery(this).attr('checked') && jQuery('.searchCats input:checkbox:checked').size()==1) {
			jQuery('#rubSearch').removeAttr('disabled').removeAttr('readonly').removeClass('inputDisabled');
			jQuery('#rubSearch').parent().removeClass('inputDisabled');
			rubDisabled = 0;
            
			var param = "";
			if(jQuery("#citySearch").val() != 0) param = "&ville="+jQuery("#citySearch").val();
			else if(jQuery("#regionSearch").val() != 0) param = "&region="+jQuery("#regionSearch").val();
			else if(jQuery("#countrySearch").val() != 0) param = "&pays="+jQuery("#countrySearch").val();

	        getSelectList(selectVal+param,'/templates/Accueil/get_rubriques_search.php?idcat=','#rubSearch');
		} else {
			//if(jQuery('.searchCats input:checkbox:checked').size() <= 0) {
			if(jQuery('.searchCats input:checkbox:checked').size() <= 0 || jQuery('.searchCats input:checkbox:checked').size() > 1) {
				jQuery('#rubSearch').attr('disabled','disabled').attr('readonly','readonly').addClass('inputDisabled');
				jQuery('#rubSearch').parent().addClass('inputDisabled');
				jQuery('#rubSearch').removeOption(/./).addOption("0", "--");
				rubDisabled = 1;
				
				jQuery('#objectSearch').attr('disabled','disabled').attr('readonly','readonly').addClass('inputDisabled');
				jQuery('#objectSearch').parent().addClass('inputDisabled');
				jQuery('#objectSearch').removeOption(/./).addOption("0", "--");
				objDisabled = 1;
				
				jQuery('#critSearch').attr('disabled','disabled').attr('readonly','readonly').addClass('inputDisabled');
				jQuery('#critSearch').parent().addClass('inputDisabled');
				jQuery('#critSearch').removeOption(/./).addOption("0", "--");
				critDisabled = 1;
			}
			else{
				jQuery('#rubSearch').removeAttr('disabled').removeAttr('readonly').removeClass('inputDisabled');
				jQuery('#rubSearch').parent().removeClass('inputDisabled');
				rubDisabled = 0;
				selectVal = jQuery('.searchCats input:checkbox:checked').val();
	            
				var param = "";
				if(jQuery("#citySearch").val() != 0) param = "&ville="+jQuery("#citySearch").val();
				else if(jQuery("#regionSearch").val() != 0) param = "&region="+jQuery("#regionSearch").val();
				else if(jQuery("#countrySearch").val() != 0) param = "&pays="+jQuery("#countrySearch").val();

		        getSelectList(selectVal+param,'/templates/Accueil/get_rubriques_search.php?idcat=','#rubSearch');
			}
		}
	});
	jQuery('#rubSearch').change(function() {

		var selectVal = jQuery(this).val();

		// filling object select depending on chosen rub : http://www.texotela.co.uk/code/jquery/select/
		if (selectVal != 0) {
			jQuery('#objectSearch').removeAttr('disabled').removeAttr('readonly').removeClass('inputDisabled');
			jQuery('#objectSearch').parent().removeClass('inputDisabled');
			objDisabled = 0;
            // populate objects select options

			var param = "";
			if(jQuery("#citySearch").val() != 0) param = "&ville="+jQuery("#citySearch").val();
			else if(jQuery("#regionSearch").val() != 0) param = "&region="+jQuery("#regionSearch").val();
			else if(jQuery("#countrySearch").val() != 0) param = "&pays="+jQuery("#countrySearch").val();
			
	        getSelectList(selectVal+param,'/templates/Accueil/get_activites_search.php?idrub=','#objectSearch');
		} else {
			jQuery('#objectSearch').attr('disabled','disabled').attr('readonly','readonly').addClass('inputDisabled');
			jQuery('#objectSearch').parent().addClass('inputDisabled');
			objDisabled = 1;
            // "empty" object select options (BUT keep the first one, with "--" and value="0")
			jQuery('#objectSearch').removeOption(/./).addOption("0", "--");
		}
	});
	jQuery('#objectSearch').change(function() {

		var selectVal = jQuery(this).val();

		// filling crit select depending on chosen object : http://www.texotela.co.uk/code/jquery/select/
		if (selectVal != 0) {
			jQuery('#critSearch').removeAttr('disabled').removeAttr('readonly').removeClass('inputDisabled');
			jQuery('#critSearch').parent().removeClass('inputDisabled');
			critDisabled = 0;
            // populate crit select options

			var param = "";
			if(jQuery("#citySearch").val() != 0) param = "&ville="+jQuery("#citySearch").val();
			else if(jQuery("#regionSearch").val() != 0) param = "&region="+jQuery("#regionSearch").val();
			else if(jQuery("#countrySearch").val() != 0) param = "&pays="+jQuery("#countrySearch").val();

	        getSelectList(selectVal+param,'/templates/Accueil/get_criteres_search.php?idact=','#critSearch');
	
	        getSelectList(selectVal+param,'/templates/Accueil/get_quartiers_search.php?idact=','#districtSearch');
		} else {
			jQuery('#critSearch').attr('disabled','disabled').attr('readonly','readonly').addClass('inputDisabled');
			jQuery('#critSearch').parent().addClass('inputDisabled');
			critDisabled = 1;
            // "empty" crit select options (BUT keep the first one, with "--" and value="0")
			jQuery('#objectSearch').removeOption(/./).addOption("0", "--");
		}
	});
	
	jQuery('#critSearch').change(function() {

		var selectVal = jQuery(this).val();

		if (selectVal != 0) {

			var param = "";
			if(jQuery("#citySearch").val() != 0 && jQuery("#objectSearch").val() != 0){
				param += "&ville="+jQuery("#citySearch").val();
				param += "&idact="+jQuery("#objectSearch").val();
			} 
	
	        getSelectList(selectVal+param,'/templates/Accueil/get_quartiers_search.php?idtag=','#districtSearch');
		} 
	});

	/* modify region if country select is modified */
    jQuery('#countrySearch').change(function() {
	
		majCategorie();

		var selectVal = jQuery(this).val();

		if (selectVal != 0) {
            // populate region select options
	        getSelectList(selectVal,'/templates/Accueil/get_regions.php?idcountry=','#regionSearch');
	        getSelectList(selectVal,'/templates/Accueil/get_cities.php?idcountry=','#citySearch');
		} else {
        	jQuery('#proximAddresses').attr('disabled','disabled').attr('readonly','readonly').addClass('inputDisabled');
			jQuery('#proximAddresses').parent().addClass('inputDisabled');
			jQuery('#proximAddresses').removeAttr('checked');
			jQuery('#moreCrit li li input').each(function() {
				if (jQuery(this).attr('id') != 'proximAddressesDistrict') {
					jQuery(this).attr('disabled','disabled').attr('readonly','readonly').addClass('inputDisabled');
					jQuery(this).parent().addClass('inputDisabled');
				}
				jQuery(this).removeAttr('checked');
			});
            // "empty" district select options (BUT keep the first one, with "--" and value="0")
			jQuery('#districtSearch').removeOption(/./).addOption("0", "--");
			jQuery('#districtSearch').attr('disabled','disabled').addClass('inputDisabled');
            // "empty" region and cities select options (BUT keep the first one, with "--" and value="0")
			jQuery('#regionSearch').removeOption(/./).addOption("0", "--");
			jQuery('#citySearch').removeOption(/./).addOption("0", "--");
		}

	});
	jQuery('#regionSearch').change(function() {
		
		majCategorie();

		var selectVal = jQuery(this).val();

		if (selectVal != 0) {
            jQuery('#proximAddresses').removeAttr('disabled').removeAttr('readonly').removeClass('inputDisabled');
			jQuery('#proximAddresses').parent().removeClass('inputDisabled');
			jQuery('#moreCrit li li input').each(function() {
				if (jQuery(this).attr('id') != 'proximAddressesDistrict') {
					jQuery(this).removeAttr('disabled').removeAttr('readonly').removeClass('inputDisabled');
					jQuery(this).parent().removeClass('inputDisabled');
				}
			});
            // populate city select options
	        getSelectList(selectVal,'/templates/Accueil/get_cities.php?idreg=','#citySearch');
		} else {
        	jQuery('#proximAddresses').attr('disabled','disabled').attr('readonly','readonly').addClass('inputDisabled');
			jQuery('#proximAddresses').parent().addClass('inputDisabled');
			jQuery('#proximAddresses').removeAttr('checked');
			jQuery('#moreCrit li li input').each(function() {
				if (jQuery(this).attr('id') != 'proximAddressesDistrict') {
					jQuery(this).attr('disabled','disabled').attr('readonly','readonly').addClass('inputDisabled');
					jQuery(this).parent().addClass('inputDisabled');
				}
				jQuery(this).removeAttr('checked');
			});
            // "empty" district select options (BUT keep the first one, with "--" and value="0")
			jQuery('#districtSearch').removeOption(/./).addOption("0", "--");
			jQuery('#districtSearch').attr('disabled','disabled').addClass('inputDisabled');
            // "empty" city select options (BUT keep the first one, with "--" and value="0")
			jQuery('#citySearch').removeOption(/./).addOption("0", "--");
		}
	});
    jQuery('#citySearch').change(function() {
	
		majCategorie();

		var selectVal = jQuery(this).val();
		
		var param = "";
		if(jQuery("#citySearch").val() != 0) param = "&ville="+jQuery("#citySearch").val();
		else if(jQuery("#regionSearch").val() != 0) param = "&region="+jQuery("#regionSearch").val();
		else if(jQuery("#countrySearch").val() != 0) param = "&pays="+jQuery("#countrySearch").val();

		if (selectVal != 0) {
			jQuery('#districtSearch').removeAttr('disabled').removeClass('inputDisabled');
            // populate district select options
	        getSelectList(selectVal+param,'/templates/Accueil/get_quartiers_search.php?idcity=','#districtSearch');
		} else {
            // "empty" district select options (BUT keep the first one, with "--" and value="0")
			jQuery('#districtSearch').removeOption(/./).addOption("0", "--");
			jQuery('#districtSearch').attr('disabled','disabled').addClass('inputDisabled');
		}
	});
	jQuery('#districtSearch').change(function() {
		if (jQuery(this).val() != 0) {
			jQuery('#proximAddressesDistrict').removeAttr('disabled').removeAttr('readonly').removeClass('inputDisabled');
			jQuery('#proximAddressesDistrict').parent().removeClass('inputDisabled');
			districtDisabled = 0;
		} else {
			jQuery('#proximAddressesDistrict').attr('disabled','disabled').attr('readonly','readonly').addClass('inputDisabled');
			jQuery('#proximAddressesDistrict').parent().addClass('inputDisabled');
			districtDisabled = 1;
		}
	});
	// geographical proximity
	var proximCheck = 0;
	var regionCheck = 0;
	var deptCheck = 0;
	var districtCheck = 0;
	jQuery('#proximAddresses').click(function() {
		if (proximCheck == 0) {
			jQuery(this).parent().children().checkCheckboxes(':not(.inputDisabled)');
			proximCheck = 1;
			regionCheck = 1;
			deptCheck = 1;
			if (districtDisabled == 0) { districtCheck = 1; }
		}
		else if (proximCheck == 1) {
			jQuery(this).parent().children().unCheckCheckboxes();
			proximCheck = 0;
			regionCheck = 0;
			deptCheck = 0;
			districtCheck = 0;
		}
	});
       jQuery('#proximAddressesRegion').click(function() {
		if (regionCheck == 0) {
			jQuery(this).parent().parent().parent().checkCheckboxes(':not(.inputDisabled)');
			proximCheck = 1;
			regionCheck = 1;
			deptCheck = 1;
			if (districtDisabled == 0) { districtCheck = 1; }
		}
	});
       jQuery('#proximAddressesDepart').click(function() {
		if (deptCheck == 0) {
			jQuery(this).parent().parent().parent().checkCheckboxes('#proximAddresses');
			if (districtDisabled == 0) {
				jQuery(this).parent().parent().parent().checkCheckboxes('#proximAddressesDistrict');
				districtCheck = 1;
			}
			proximCheck = 1;
			regionCheck = 0;
			deptCheck = 1;
		}
		else if (deptCheck == 1) {
			jQuery(this).parent().parent().parent().unCheckCheckboxes('#proximAddressesRegion');
			if (districtDisabled == 1) {
				jQuery(this).parent().parent().parent().unCheckCheckboxes('#proximAddresses');
				proximCheck = 0;
			}
			regionCheck = 0;
			deptCheck = 0;
		}
	});
	jQuery('#proximAddressesDistrict').click(function() {
		if (districtCheck == 0) {
			jQuery(this).parent().parent().parent().checkCheckboxes('#proximAddresses');
			proximCheck = 1;
			districtCheck = 1;
		}
		else if (districtCheck == 1) {
			jQuery(this).parent().parent().parent().unCheckCheckboxes();
			proximCheck = 0;
			regionCheck = 0;
			deptCheck = 0;
			districtCheck = 0;
		}
	});
}

/* SCROLLPANE */
function simpleScrollPane(elt) {
	// close and open cats and rubs
	jQuery(elt+' .catClosed').next('.rubList').addClass('offLeft');
	jQuery(elt+' .rubClosed').children('.actList').addClass('offLeft');
    jQuery(elt+' h2').click(function() {
    	if (jQuery(this).hasClass('catClosed')) {
    		jQuery(this).removeClass('catClosed').addClass('catOpened').next('.rubList').removeClass('offLeft');
			jQuery(elt).jScrollPane({scrollbarWidth : 7, showArrows : true,scrollbarMargin : 2});
    	} else if (jQuery(this).hasClass('catOpened')) {
    		jQuery(this).removeClass('catOpened').addClass('catClosed').next('.rubList').addClass('offLeft');
			jQuery(elt).jScrollPane({scrollbarWidth : 7, showArrows : true,scrollbarMargin : 2});
    	}
    });
    jQuery(elt+' .rubList > li').click(function() {
    	if (jQuery(this).hasClass('rubClosed')) {
    		jQuery(this).removeClass('rubClosed').addClass('rubOpened').children('.actList').removeClass('offLeft');
			jQuery(elt).jScrollPane({scrollbarWidth : 7, showArrows : true,scrollbarMargin : 2});
    	} else if (jQuery(this).hasClass('rubOpened')) {
    		jQuery(this).removeClass('rubOpened').addClass('rubClosed').children('.actList').addClass('offLeft');
			jQuery(elt).jScrollPane({scrollbarWidth : 7, showArrows : true,scrollbarMargin : 2});
    	}
    });
	jQuery(elt+' .rubList > li').hover(
    	function() { jQuery(this).addClass('rubHover'); },
    	function() { jQuery(this).removeClass('rubHover'); }
	);
	jQuery(elt+' .actList li').hover(
    	function() { jQuery(this).addClass('actHover'); },
    	function() { jQuery(this).removeClass('actHover'); }
	);
	// scrollpane
	var scrollPaneSize = jQuery('#searchResults').height();    
	jQuery(elt).css('height',scrollPaneSize).jScrollPane({scrollbarWidth : 7, showArrows : true,scrollbarMargin : 2,animateTo : true});
}

/* PHOTOS IN ADDRESS DETAIL */
function adressDetailPhotos(elt) {
	jQuery(elt+' ul li a').each(function() {
		jQuery(this).hover(
			function() {
            	var newSrc = jQuery(this).attr('href');
            	var newAlt = jQuery(this).children('img').attr('alt');
				jQuery('#bigIllusImg').attr('src',newSrc).attr('alt',newAlt);
				jQuery(this).parent().parent().children('li').removeClass('active');
				jQuery(this).parent('li').addClass('active');
				//alert('newSrc = '+newSrc+' / newAlt = '+newAlt);
			},
            function() { }
		);
        jQuery(this).click(function() {
        	return false;
		});
	});
}


function majCategorie(){
	var param = "";
	if(jQuery("#citySearch").val() != 0) param = "ville="+jQuery("#citySearch").val();
	else if(jQuery("#regionSearch").val() != 0) param = "region="+jQuery("#regionSearch").val();
	else if(jQuery("#countrySearch").val() != 0) param = "pays="+jQuery("#countrySearch").val();
	
	jQuery.ajax({
   		type: "POST",
	   	url: "/templates/Accueil/get_categorie_search.php",
	   	data: param,
	   	success: function(msg){
	     	//alert( "Data Saved: " + msg );
			var tableau=msg.split(";");
			
			jQuery('.searchCats input:checkbox').each(function(){
				c = 0;
				for(i=0;i<msg.length;i++){
					if(jQuery(this).val() == tableau[i]){
						c++;
					}
				}
				if(c == 0){ 
					//si la categorie n'existe pas pour cette ville/region/pays on la desactive.
					jQuery(this).attr('disabled','disabled');
					jQuery(this).removeAttr('checked');
					jQuery(this).parent().parent().removeClass('activeCat');
					
					// grise les select rub/obj/crit si il existe plus d'une cat ou 0
					if(jQuery('.searchCats input:checkbox:checked').size() <= 0 || jQuery('.searchCats input:checkbox:checked').size() > 1) {
						jQuery('#rubSearch').attr('disabled','disabled').attr('readonly','readonly').addClass('inputDisabled');
						jQuery('#rubSearch').parent().addClass('inputDisabled');
						jQuery('#rubSearch').removeOption(/./).addOption("0", "--");
						rubDisabled = 1;

						jQuery('#objectSearch').attr('disabled','disabled').attr('readonly','readonly').addClass('inputDisabled');
						jQuery('#objectSearch').parent().addClass('inputDisabled');
						jQuery('#objectSearch').removeOption(/./).addOption("0", "--");
						objDisabled = 1;

						jQuery('#critSearch').attr('disabled','disabled').attr('readonly','readonly').addClass('inputDisabled');
						jQuery('#critSearch').parent().addClass('inputDisabled');
						jQuery('#critSearch').removeOption(/./).addOption("0", "--");
						critDisabled = 1;
					}
				}
				else {
					jQuery(this).removeAttr('disabled');
				}
				
				// filling rub select depending on chosen cats : http://www.texotela.co.uk/code/jquery/select/
				if (jQuery(this).attr('checked') && jQuery('.searchCats input:checkbox:checked').size()==1) {
					jQuery('#rubSearch').removeAttr('disabled').removeAttr('readonly').removeClass('inputDisabled');
					jQuery('#rubSearch').parent().removeClass('inputDisabled');
					
					rubDisabled = 0;
					
					jQuery('#objectSearch').removeOption(/./).addOption("0", "--");
					jQuery('#critSearch').removeOption(/./).addOption("0", "--");
					jQuery('#objectSearch').attr('disabled','disabled').addClass('inputDisabled');
					jQuery('#critSearch').attr('disabled','disabled').addClass('inputDisabled');
					rubDisabled = 1;
					critDisabled = 1;

					var param = "";
					if(jQuery("#citySearch").val() != 0 && jQuery("#citySearch").val() != null) param = "&ville="+jQuery("#citySearch").val();
					else if(jQuery("#regionSearch").val() != 0 && jQuery("#regionSearch").val() != null) param = "&region="+jQuery("#regionSearch").val();
					else if(jQuery("#countrySearch").val() != 0 && jQuery("#countrySearch").val() != null) param = "&pays="+jQuery("#countrySearch").val();

			        getSelectList(jQuery(this).val()+param,'/templates/Accueil/get_rubriques_search.php?idcat=','#rubSearch');
				}
			});
	   	}
	 });
}

jQuery(document).ready(function() {

    /* SAME HEIGHT ON CAT BOXES */
    if (jQuery('.searchCats li').size() > 0) { initSameHeight = sameHeight(".searchCats li"); }
    
    /* SEARCH FORM MANIPULATIONS & VALIDATION */
    if (jQuery('#mainSearch').size() > 0) {
    	initSearchFormManipulation = searchFormManipulation('#mainSearch');
		//initFormValidation = formValidation('#mainSearch',["required,countrySearch,Vous devez choisir un pays.","required,searchCat,Vous devez choisir au moins une catégorie."],"Merci de corriger les erreurs suivantes :"s);
   }

    /* SIMPLE SCROLLPANE ON SEARCH SUBNAV */
    if (jQuery('#searchSubnav').size() > 0) { initSimpleScrollPane = simpleScrollPane("#searchSubnav","#searchSubnav .scrollPane"); }

	/* NOTATION IN ADDRESS DETAIL AND COMMENT */
	if (jQuery('.starRating ul').size() > 0) { initStarRating = starRating('.starRating ul'); }
	
	if ( (jQuery('.star').size() > 0) || (jQuery('.ui-stars-star a').size() > 0) ) {
		jQuery(".star, .ui-stars-star a").each(function() {
			jQuery(this).click(function() {
				if(jQuery('.star').size() > 0) {var vote = jQuery(this).val();}
				if(jQuery('.ui-stars-star a').size() > 0) {var vote = jQuery(this).html();}
				
				var adr = jQuery("#adr").val();
				
	    		jQuery.ajax({
			   		type: "POST",
				   	url: "/note-adresse.php",
				   	data: "note="+vote+"&adr="+adr,
				   	success: function(msg){
				     	//alert( "Data Saved: " + msg );
				   	}
				 });
			});
		});
	}

	/* PHOTOS IN ADDRESS DETAIL */
	if (jQuery('#illusImg').size() > 0) { initAdressDetailPhotos = adressDetailPhotos('#illusImg'); }


});
