$(document).ready(function(){

	/*
 	 * ************* SIGN UP ***********************
 	 */	
 	 
 	$(".colorboxconditions").colorbox({width:"720px", height:"80%"});	
	
	$("#lostpassword").validationEngine({ 
		scroll : false,
		inlineValidation: false,
		unbindEngine: false,
		success :  function(){ userRegistrationClass.validateLostPassword()}, 
		failure : function(){} 
	});
	
	$("#signup").validationEngine({ 
		scroll: true,
		unbindEngine: false,
		success :  function(){ userRegistrationClass.validateSignUp();}, 
		failure : function(){} 
	});
	
	$("#changeProfil").validationEngine({ 
		unbindEngine: false,
		success :  function(){ $.formsClassJson.saveAction(formsClassChangeSignup)}, 
		failure : function(){} 
	});
	
	$("#loginform").validationEngine({ 
		unbindEngine: false,
		inlineValidation: false,
		success :  function(){ $.formsClassJson.saveAction(formsClassLogin)}, 
		failure : function(){} 
	});
	
	$("#changePassword").validationEngine({ 
		unbindEngine: false,
		success :  function(){$.formsClassJson.saveAction(formsClassChangePassword)},
		failure : function(){} 
	});
	
/*
 * ************* ADS ***********************
 */	
	$(".modifyadsclass").live("click", function() {
		$('#membersEditAdsDiv').html('<img src="/modules/core/admin/images/ajax-loader.gif" alt="loader" />');
		$('#membersProfileAdsListID, #membersProfileAdsAddBtn').fadeOut("slow");
		var adsID = $(this).attr("rel");
		genericPrototype(membersClass.url4+'/ads/' + adsID, 'genericJson', 'post');
		$('html,body').animate({scrollTop: 0});
	});
	
	
	$(".cboxAdsElement").live("click", function() {
		$.fn.colorbox(
			{href:this.href, 
			 open:true,
			 height:"200px", 
			 width:"500px",
			 onComplete : function() {
					$('#submitnoads').bind('click', function() {
						$.fn.colorbox.close();
						return false;
					});
				}
			});
		return false; 
	});
	
/*
 * ************* EVENT ***********************
 * Modify event
 */
	$(".modifycalendarclass").live("click", function() {
		$('#membersEditCalendarDiv').html('<img src="/modules/core/admin/images/ajax-loader.gif" alt="loader" />');
		$('#membersProfileCalendarListID, #membersProfileCalendarAddBtn').hide();
		var calendarUrl = $(this).attr("rel");
		genericPrototype(calendarUrl);
		$('html,body').animate({scrollTop: 0});
	});
	
	
	//change tabs
	$("#calendarTabs").click(function(){
			$('#membersEditCalendarDiv').html('<img src="/modules/core/admin/images/ajax-loader.gif" alt="loader" />');
			$('#membersEditCalendarDiv').hide();
			$('#membersProfileCalendarListID, #membersProfileCalendarAddBtn').show();
	});
	
	$("#adsTabs").click(function(){
		$('#membersEditAdsDiv').html('<img src="/modules/core/admin/images/ajax-loader.gif" alt="loader" />');
		$('#membersEditAdsDiv').hide();
		$('#membersProfileAdsListID, #membersProfileAdsAddBtn').show();
	});
	
	$(".cboxCalendarElement").live("click", function() {
		$.fn.colorbox(
			{href:this.href, 
			 open:true,
			 height:"200px", 
			 width:"500px",
			 onComplete : function() {
					$('#submitnocalendar').bind('click', function() {
						$.fn.colorbox.close();
						return false;
					});
				}
			});
		return false; 
	});

	
	/*
	 * ************* PROFIL ***********************
	 * Modify event
	 */	
	
	$(".cboxAdsElementPassword").live("click", function() {
		$.fn.colorbox(
			{href:this.href, 
			 open:true,
			 height:"400px", 
			 width:"500px"
			});
		return false; 
	});	

	
});

/*
 * ************* FUNCTION***********************
 */


// EVENT ****************************

//google load map
	google.load("maps", "2");
//Call this function when the page has been loaded
function initialize(reload,x,y,content) {
	if((empty(x) || empty(y)) && reload!='reload'){
		$('#map').hide();
	}else{
		$('#map').show();
		var map = new google.maps.Map2(document.getElementById("map"));
		    if(reload=='reload'){
		    	address = buildAddress();
		    	geocoder = new GClientGeocoder();
		    	var point = geocoder.getLatLng(address,
		    		    function(point) {
		    	      if (!point) {
		    	        //alert(address + " not found");
		    	      } else{
		    	    	  addmarker(map,point);
		        	      }
		    	});
		    }else{
		    	var point =new google.maps.LatLng(x,y);
		    	addmarker(map,point);
		     }
			/* click event */
		GEvent.addListener(map, 'click', function(overlay, point) {
			      if (overlay) {
			      	map.removeOverlay(overlay);
			      } else if (point) {
			    	map.clearOverlays();
			        var marker = new GMarker(point);
			        map.addOverlay(marker);
			        $('#lat').val(point.y);
			        $('#lon').val(point.x);
			     }
			});
		map.checkResize();
	}
}


/* ADD MARKER MAP */
function addmarker(map,point) {
		map.setCenter(point, 16);
		var marker = new GMarker(point);
		map.addOverlay(marker);
		map.addControl(new GLargeMapControl());
    $('#lat').val(point.y);
    $('#lon').val(point.x);
	}

/* ADRESS MAP */
function buildAddress() {
		var postalCode = $('#zip').val();
		var address = $('#address').val() + ',' + $('#city').val() + ',' + $('#province').val() + ',' + postalCode;
		return address;
}




// registation **********************************


var dummyLayer;

//class registration
function registrationClass() {
	var host;
	return {
		$ : function() {
			host = this;
			return this;
		},
		validateLostPassword : function() {
			genericPrototype(host.url3, 'genericJson', 'post', $('#lostpassword').serialize());
		},
		validateLogin : function() {
			//fbLogout();
			genericPrototype(host.url1, 'genericJson', 'post', $('#login').serialize());
		},
		validateLoginform : function() {
			//fbLogout();
			genericPrototype(host.url1, 'genericJson', 'post', $('#loginform').serialize());
		},
		validateSignUp : function() {
			genericPrototype(host.url2, 'genericJson', 'post', $('#signup').serialize());
		},
		validatePasswordChange : function() {
			genericPrototype(host.url5, 'genericJson', 'post', $('#changePassword').serialize());
		},
		validateProfilChange : function() {
			genericPrototype(host.url4, 'genericJson', 'post', $('#changeProfil').serialize());
		},
		validateSubmitRecipe : function () {
			genericPrototype(host.url6, 'genericJson', 'post', $('#submitRecipe').serialize());
		},
		url1 : null,
		url2 : null,
		url3 : null,
		url4 : null,
		url5 : null,
		url6 : null
	}.$();
}

//class member
function membersClass() {
	var host;

	return {
		$ : function() {
			return host = this;
		},
		loadAdsListAction : function(page) {
			genericPrototype(host.url1+'/page/'+page, 'genericJson', 'post');
		},
		flagAdsSoldAction : function(ads) {
			genericPrototype(host.url2+'/ads/'+ads, 'genericJson', 'post');
		},
		deleteAdsAction : function(ads) {
			genericPrototype(host.url3+'/ads/'+ads, 'genericJson', 'post');
		},
		saveModifyAdsAction : function() {
			$('#modifyadssubmitsave').hide();
			$('#modifyadssubmitsavemsg').show();
			genericPrototype(host.url5, 'genericJson', 'post', $('#membersmodifyads').serialize());
		},
		
		url1 :null,
		url2 :null,
		url3 :null,
		url4 :null,
		url5 :null
	}.$();
}

// pager load
function pagerload(page,target,url){
	genericPrototype(url+'/page/'+page, 'genericJson', 'post','target='+target);
}





