var CONSTANTS = {
	AuthUser:'' 
}

$(document).ready(function() {
	initPopup();
	initSlider();
	FormsView.init();	
	FormsSends.init();
	Asynchrone.init();
	Expand.init();
	initLightbox();
	CenterImage.init();
	
	$('#promotioncodes').submit(function(event){return false});
	
	
});


function initLightbox(){	
	$('.lightbox a').lightBox({
		imageLoading: '/all/images/lightbox/lightbox-ico-loading.gif',
		imageBtnClose: '/all/images/lightbox/lightbox-btn-close.gif',
		imageBtnPrev: '/all/images/lightbox/lightbox-btn-prev.gif',
		imageBtnNext: '/all/images/lightbox/lightbox-btn-next.gif'
	});
	
	$('a.lightbox').lightBox({
		imageLoading: '/all/images/lightbox/lightbox-ico-loading.gif',
		imageBtnClose: '/all/images/lightbox/lightbox-btn-close.gif',
		imageBtnPrev: '/all/images/lightbox/lightbox-btn-prev.gif',
		imageBtnNext: '/all/images/lightbox/lightbox-btn-next.gif'
	});
}

/*
 * function _registration_loadSubfamilies(){ var idFamilies =
 * $("input:radio:checked").val(); if($('#subfamilies-container').length>0){
 * $('#subfamilies-container').hide('fast');
 * $('#subfamilies-container').load("/subfamilies/ajaxcheckform/idFamilies/"+idFamilies+"/publish/2",{},function(){$('#subfamilies-container').show('fast')}); } }
 */



function _registration_checkCode(){
	
	
}


function _registration_checkCode_onCheck(event){
	var json = jQuery.parseJSON(event.datas);			
	if(json.status=="ok"){
		document.location.href=json.url.replace('\\','');
	}else{
		$('#code-result').html(json.status);
		$('#code-result').show('fast');
	}
}


var _registration_code_isOpen=false;
function _registration_showCode(){	
	if(!_registration_code_isOpen){
		$("#promotionscodes").show("fast");
		_registration_code_isOpen=true;
	}else{
		$("#promotionscodes").hide("fast");
		_registration_code_isOpen=false;
	}
}

/*
 * 
 * PROFILE
 * 
 */

function _profile_ondeletepicture(event){	
	var json = jQuery.parseJSON(event.datas);
	var date = new Date();			
	$('#picture').attr("src",json.url+"?r="+date.valueOf());
}

/*
 * PLANNING
 * 
 */

function _planning_onsend(event){	
	Popup.Open(null, '/planning/confirmpopup',{_class:"popup-confirm"});	
}


/*
 * 
 * MEDIAS
 * 
 * 
 */

function _medias_ondelete(event){		
	var json = jQuery.parseJSON(event.datas);		
	var container = $('#medias_'+json.id);		
	container.hide('fast');	
}

/*
 * SOUNDS
 * 
 */

function _sounds_onadd(serverData){
	$('#sounds').append(serverData);	
	_sounds_onload();
}
function _sounds_onupdate(event){	
	var json = jQuery.parseJSON(event.datas);		
	var flashObject = document.getElementById("player_"+json.id);	
	flashObject.update(json.id,json.title);
	// Expand.expand($('#medias_'+json.id+" .Expand"));
	
}

function _sounds_onload(){
	FormsSends.init($('#sounds'));
	Asynchrone.init($('#sounds'));	
	Expand.init($('#sounds'));
	FormsView.init();
	$("#sounds").sortable({ items: '.medias-container', handle: '.move',  stop: _sounds_onsort });	
}

function _sounds_onsort(event, ui){	
	
	$('#sounds .medias-container').each(function(i) {
		var parameters = "id="+$(this).attr("id").replace(/medias_/,'');
		parameters += "&nameUr="+$('#medias_3 #nameUr').val();
		parameters += "&order="+i;
		parameters += "&update=1";
		parameters+="&asynchrone";
			
		var url = "/medias/sort";
		
		$.ajax({
		  url: url,
		  cache: false,
		  type:'POST',
		  data:parameters,
		  success: _sounds_onsorted
		});
	});
}

function _sounds_onsorted(response){
	
}

/*
 * VIDEOS
 * 
 */


function _videos_onadd(event){	
	// alert(event.datas);
	$("#warning-videos").hide();
	
	try{ 
		var json = jQuery.parseJSON(event.datas);
		$("#warning-videos").html(json.errors);
		$("#warning-videos").show('fast');
		
	}catch(err){
		$('#videos').append(event.datas);
		
		Expand.expand($('#expand-videos'));
		$('#medias_3 #name').val('');
		$('#medias_3 #link').val('');
		
		_videos_onload();
	}
}

function _videos_onupdate(event){	
	// alert(event.datas);
	var json = jQuery.parseJSON(event.datas);
	$(".warning", $("#medias_"+json.id)).hide();
	
	if(json.errors==undefined){
		$(".name", $("#videos_"+json.id)).html(json.title);
	}else{
		$(".warning", $("#medias_"+json.id)).html(json.errors);
		$(".warning", $("#medias_"+json.id)).show('fast');
	}
}

function _videos_onload(){
	FormsSends.init($('#videos'));
	Asynchrone.init($('#videos'));
	initPopup($('#videos'));
	Expand.init($('#videos'));
	FormsView.init();
	$("#videos").sortable({ items: '.medias-container', handle: '.move',  stop: _videos_onsort });	
}

function _videos_onsort(event, ui){	
	$('#videos .medias-container').each(function(i) {
		var parameters = "id="+$(this).attr("id").replace(/medias_/,'');
		parameters += "&nameUr="+$('#medias_3 #nameUr').val();
		parameters += "&order="+i;
		parameters += "&update=1";
		parameters+="&asynchrone";
			
		var url = "/medias/sort";
		
		$.ajax({
		  url: url,
		  cache: false,
		  type:'POST',
		  data:parameters,
		  success: _videos_onsorted
		});
	});
}

function _videos_onsorted(response){
		
}


/*
 * IMAGES
 * 
 */

function _images_onadd(serverData){	
	$('#images').append(serverData);
	_images_onload();
}

function _images_onupdate(event){	
	var json = jQuery.parseJSON(event.datas);	
	$(".name", $("#images_"+json.id)).html(json.title);
}


function _images_onload(){	
	FormsSends.init($('#images'));
	Asynchrone.init($('#images'));
	initPopup($('#images'));
	Expand.init($('#images'));
	initLightbox();
	FormsView.init();
	$("#images").sortable({ items: '.medias-container', handle: '.move',  stop: _images_onsort });	
	
}

function _images_onsort(event, ui){	
		
	$('#images .medias-container').each(function(i) {
		var parameters = "id="+$(this).attr("id").replace(/medias_/,'');
		parameters += "&nameUr="+$('#medias_3 #nameUr').val();
		parameters += "&order="+i;
		parameters += "&update=1";
		parameters+="&asynchrone";
			
		var url = "/medias/sort";
		
		$.ajax({
		  url: url,
		  cache: false,
		  type:'POST',
		  data:parameters,
		  success: _images_onsorted
		});
	});
}

function _images_onsorted(response){
	
}


/*
 * 
 * SELECTIONS
 * 
 */

function _selections_organizations_onadd(event){
	
	var json = jQuery.parseJSON(event.datas);
		
	$('.add').hide();
	$('.delete').attr('href',unescape(json.deleteUrl));
	$('.delete').show();
	
}

function _selections_organizations_ondelete(event){			
	$('.add').show();
	$('.delete').hide();	
}

function _selections_artists_onadd(event){
	var json = jQuery.parseJSON(event.datas);
	
	$('#artists_'+json.idSelection+" .userFirstName").html("( "+CONSTANTS.AuthUser+" )");
	
	$('#artists_'+json.idSelection+" .description").removeClass('refused');
	$('#artists_'+json.idSelection+" .description ").addClass('accepted');
	
	$('.add',$('#artists_'+json.idSelection)).hide();
	$('.delete',$('#artists_'+json.idSelection)).attr('href',unescape(json.deleteUrl));
	$('.delete',$('#artists_'+json.idSelection)).show();
}

function _selections_artists_ondelete(event){
	var json = jQuery.parseJSON(event.datas);
	
	$('#artists_'+json.idSelection+" .description").removeClass('accepted');
	$('#artists_'+json.idSelection+" .description ").addClass('refused');
	
	$('.add',$('#artists_'+json.idSelection)).show();
	$('.delete',$('#artists_'+json.idSelection)).hide();
}

function _selections_conferences_onadd(event){
	var json = jQuery.parseJSON(event.datas);
	
	$('#conferences_'+json.idSelection+" .userFirstName").html("( "+CONSTANTS.AuthUser+" )");
	
	$('#conferences_'+json.idSelection+" .description").removeClass('refused');
	$('#conferences_'+json.idSelection+" .description ").addClass('accepted');
	
	
	$('.add',$('#conferences_'+json.idSelection)).hide();
	$('.delete',$('#conferences_'+json.idSelection)).attr('href',unescape(json.deleteUrl));
	$('.delete',$('#conferences_'+json.idSelection)).show();
}

function _selections_conferences_ondelete(event){
	var json = jQuery.parseJSON(event.datas);
	$('#conferences_'+json.idSelection+" .description").removeClass('accepted');
	$('#conferences_'+json.idSelection+" .description ").addClass('refused');
	
	$('.add',$('#conferences_'+json.idSelection)).show();
	$('.delete',$('#conferences_'+json.idSelection)).hide();
}

function _selections_networkings_onadd(event){
	var json = jQuery.parseJSON(event.datas);
	
	$('#networkings_'+json.idSelection+" .userFirstName").html("( "+CONSTANTS.AuthUser+" )");
	
	$('#networkings_'+json.idSelection+" .description").removeClass('refused');
	$('#networkings_'+json.idSelection+" .description ").addClass('accepted');
	
	$('.add',$('#networkings_'+json.idSelection)).hide();
	$('.delete',$('#networkings_'+json.idSelection)).attr('href',unescape(json.deleteUrl));
	$('.delete',$('#networkings_'+json.idSelection)).show();
}

function _selections_networkings_ondelete(event){
	var json = jQuery.parseJSON(event.datas);
	
	$('#networkings_'+json.idSelection+" .description").removeClass('accepted');
	$('#networkings_'+json.idSelection+" .description ").addClass('refused');
	
	$('.add',$('#networkings_'+json.idSelection)).show();
	$('.delete',$('#networkings_'+json.idSelection)).hide();
}

/*
 * APPOINTMENTS
 * 
 */

function _appointments_onupdate(event){	
	
	var json = jQuery.parseJSON(event.datas);
		
	$('#apointments_'+json.id+' .refused').hide();
	$('#apointments_'+json.id+' .accepted').hide();
	
	$('#apointments_'+json.id+' .subject').removeClass('noviewed');
	$('#apointments_'+json.id+' .detail').removeClass('noviewed');	
	
	if(json.status=="-1"){
		$('#apointments_'+json.id+' .refused').show();
		$('#apointments_'+json.id+' .refuse').hide();
		$('#apointments_'+json.id+' .accept').show();
	}
	if(json.status=="1"){
		
		$('#apointments_'+json.id+" .userFirstName").html("( "+CONSTANTS.AuthUser+" )");
		
		$('#apointments_'+json.id+' .accepted').show();
		$('#apointments_'+json.id+' .accept').hide();
		$('#apointments_'+json.id+' .refuse').show();
	}
		
}

function _appointments_ondelete(event){	
	var json = jQuery.parseJSON(event.datas);	
	$('#apointments_'+json.id).remove();
	if($('.apointments').size()==0)$('#noresults').show();
}

/*
 * EMAILS
 * 
 */

function _emails_ondelete(event){	
	var json = jQuery.parseJSON(event.datas);
	$('#emails_'+json.id).remove();
	if($('.emails').size()==0)$('#noresults').show();
}

/*
 * 
 * ACTIVITIES
 * 
 */

function _activities_ondelete(event){
	var json = jQuery.parseJSON(event.datas);
	$('#activities_'+json.id).hide('fast');	
}


function _activities_onaddpicture(serverData){
	var date = new Date();
	$('#picture').attr("src",serverData+"?r="+date.valueOf());
	$('#picture-container').show();
	$('#picture-default').hide();
}

function _activities_ondeletepicture(event){	
	$('#picture-container').hide();
	$('#picture-default').show();		
}

/*
 * 
 * Asynchrone
 * 
 * 
 */

var Asynchrone = {
	SUCCESS:'success',	
	element:null,
	init:function(parent){
		if(parent==undefined)parent=$('body');
		
		var initSize = $('a.Asynchrone').size();
		
		$('a.Asynchrone',parent).each(function(i) {
			 if($(this).attr('id') == undefined || $(this).attr('id') == "" )$(this).attr('id',"Asynchrone_"+(initSize+i));			 
			 $(this).unbind( "click" )			 
			 $(this).click(function(event){
				 if($(this).hasClass('confirm')){
					 Asynchrone.confirm($(this));return false;
				 }else{
					 Asynchrone.send($(this));return false
				 }				 
			});	 
			 if($(this).attr('rel')!==undefined)Events.addEvent(Asynchrone.SUCCESS, eval($(this).attr('rel')),$(this));
		});	
	},
	confirm:function(element){		
		Asynchrone.element = $(element);		
		Popup.Open(null, '/index/confirmpopup',{_class:"popup-confirm"});
	},
	confrimed:function(){
		Popup.Close();
		Asynchrone.send(Asynchrone.element);
	},
	send:function(element){
		Asynchrone.element = $(element);		
		Loading.Show();
		var parameters = element.attr("href").split("?")[1];
		parameters+="&asynchrone";
			
		var url = element.attr("href").split("?")[0];
		
		$.ajax({
		  url: url,
		  cache: false,
		  type:'POST',
		  data:parameters,
		  success: Asynchrone._onSuccess
		});
		
	},
	_onSuccess:function(datas){
		Loading.Hide();		
		Events.dispatchEvent(Asynchrone.SUCCESS,{datas:datas}, Asynchrone.element);
	}
}


/*
 * 
 * 
 * FORMS
 * 
 * 
 */

var FormsView = {
	BACKGROUND_COLOR_OVER:'#10697a',
	BACKGROUND_COLOR_OUT:'#2193a3',
	init:function(parent){	
		if(parent==undefined)parent=$('body');
		var elements = $(':text:not(.noView) , :password:not(.noView), textarea:not(.noView)',parent);			
		for(i=0;i<elements.length;i++){						
			$(elements[i]).unbind( "focus" );
			$(elements[i]).unbind( "blur" );
			$(elements[i]).focus(function(event){
				if($(event.target).hasClass('warning'))$(event.target).removeClass('form-warning');
				
				$(event.target).animate({ backgroundColor: FormsView.BACKGROUND_COLOR_OVER }, 500);
				
				// $(this).removeClass("input-over").addClass("input-over",500);
				
				// $(event.target).addClass('input-over',500);
			});
			$(elements[i]).blur(function(event){
				$(event.target).animate({ backgroundColor: FormsView.BACKGROUND_COLOR_OUT }, 500);
				
				 // $(this).addClass("input-out").removeClass("input-over",500);
				
				// $(event.target).removeClass('input-over',500);
			});
		}
	}
}


/*
 * 
 * 
 * AJAX FORMS
 * 
 * 
 */

var FormsSends = {
	SUCCESS:'success',
	form:null,
	init:function(parent){
		if(parent==undefined)parent=$('body');		
		$('form.Asynchrone',parent).each(function(i) {			
			$(':button[type=submit]', $(this)).unbind( "click" );			
			$(':button[type=submit]', $(this)).click(function(event){FormsSends.send($(this).parents('form')) ;return false});
			$(this).submit(function(event){FormsSends.send($(this));return false});			
			if($(this).attr('onsubmit')!==undefined)Events.addEvent(FormsSends.SUCCESS, eval($(this).attr('onsubmit')),$(this));			
		});	
	},
	send:function(formElement){
		Loading.Show();
		FormsSends.form = formElement = $(formElement);
		var parameters = formElement.serialize();		
		$.ajax({
		  url: formElement.attr("action"),
		  cache: false,
		  type:'POST',
		  data:parameters,
		  success: FormsSends._onSuccess
		});		
	},
	_onSuccess:function(datas){
		Loading.Hide();
		Events.dispatchEvent(FormsSends.SUCCESS,{datas:datas}, FormsSends.form);
	}
}

var Events={
	events:{},
	addEvent:function(eventType, callBack, element){		
		if(Events.events[eventType]==undefined)Events.events[eventType]={};		
		if($(element).attr('id') == undefined || $(element).attr('id') == "" )$(element).attr('id',"Event_"+eventType);
		if(Events.events[eventType][$(element).attr('id')]==undefined)Events.events[eventType][$(element).attr('id')]=new Array();
		Events.events[eventType][$(element).attr('id')].push(callBack);		
	},
	dispatchEvent:function(eventType,event, element){
		if(Events.events[eventType]==undefined)return;		
		if(Events.events[eventType][$(element).attr('id')]==undefined)return;
		
		event.target = $(element);
		
		for(i=0;i<Events.events[eventType][$(element).attr('id')].length;i++){
			Events.events[eventType][$(element).attr('id')][i](event);
		}
	}		
}





/*
 * 
 * CENTER IMAGE
 * 
 */

var CenterImage = {	
	init:function(parent){
		if(parent==undefined)parent=$('body');		
		$('.CenterImage',parent).each(function(i) {			
			var imageUrl = $('img', $(this)).attr('src');			
			$(this).html('');			
			$(this).css('background',"center url("+imageUrl+") no-repeat");			
		});	
	}		
}



/*
 * EXPAND
 * 
 */
var Expand={
	init:function(parent){
		if(parent==undefined)parent=$('body');		
		$('a.Expand',parent).each(function(i) {			
			$(this).unbind( "click" );	
			$(this).click(function(event){Expand.expand($(this)) ;return false});						
		});	
	},
	expand:function(element){
		element = $(element);		
		var elementToExpand = $("#"+$(element).attr('rel'));		
		if(element.hasClass('expanded')){			
			element.removeClass('expanded');
			elementToExpand.hide();			
		}else{
			element.addClass('expanded');
			elementToExpand.show();
		}		
	}	
}


