
function initSearchForms()
{
	if( document.getElementById('map') != undefined)
	{
		var frmEl = document.getElementById('searchform');
		frmEl.onsubmit = function() {	return false; 	}			
		$('searchform').addEvent('submit', sendSearchForms);
	}
}

function sendSearchForms()
{
	searchValues = $('search').value;
	allowMapReplace = true;
	reloadMarkers( 'map', searchValues);
}

function sendSMSForm( id){
	
	new Request(
	{
		url:contextPath+'/sms/recall/',
		method: 'post',
		encoding:'ISO-8859-1',
		onFailure:manageSMSFormErrors,
		onSuccess:function(responseTree, responseElements, responseHTML, responseJavaScript) {
				processSMSForm(id);
			}
	}).send( $('formSMS'+id));
}

function processSMSForm( id)
{
	$('formSMSBlock'+id).setStyle('display', 'none');
	$('formSMSBlockValid'+id).setStyle('display', 'block');
}

function manageSMSFormErrors()
{
	
}

function sendEmailForm(id){
	
	new Request(
	{
		url:contextPath+'/mail/recall/',
		method: 'post',
		encoding:'ISO-8859-1',
		onFailure:manageEmailFormErrors,
		onSuccess:function(responseTree, responseElements, responseHTML, responseJavaScript) {
				processEmailForm(id);
			}
	}).send( $('formEmail'+id));
	
	return false;	
}

function processEmailForm(id)
{
	$('formEmailBlock'+id).setStyle('display', 'none');
	$('formEmailBlockValid'+id).setStyle('display', 'block');
}

function manageEmailFormErrors()
{
	
}

function sendShareForm(id){
	
	new Request(
	{
		url:contextPath+'/mail/share/',
		method: 'post',
		encoding:'ISO-8859-1',
		onFailure:manageShareFormErrors,
		onSuccess: function(responseTree, responseElements, responseHTML, responseJavaScript) {
				processShareForm(id);
			}
	}).send( $('formShare'+id));
	
	return false;
}

function processShareForm(id)
{
	$('formShareBlock'+id).setStyle('display', 'none');
	$('formShareBlockValid'+id).setStyle('display', 'block');
}

function manageShareFormErrors()
{
	
}



var mediaSwiffHash = new Hash();

function getMediaSwiff( userid, eventid, reinit)
{
	var mediaSwiff = mediaSwiffHash.get( '_'+eventid);	
	if( mediaSwiff == null || reinit == true)
	{
		mediaSwiff = loadMediaSwiff( userid, eventid);
		if( mediaSwiff!=null)
			mediaSwiffHash.set( '_'+eventid, mediaSwiff);
	}
	return mediaSwiff;
}

function initMediaSwiff( userid, eventid)
{
	getMediaSwiff( userid, eventid, true);	
}

function loadMediaSwiff( userid, eventid)
{
	if( $('formMedia'+eventid) == null)
		return null;
		
	var swiffy = new FancyUpload2($('media-status'+eventid), $('media-list'+eventid), {
		container:'media_flashcontainer'+eventid,
		limitFiles: 250,
		limitSize: 100 * 1024 * 1024, // 35Mb
		url: $('formMedia'+eventid).action,
		fieldName: 'userfile',
		data:  $('formMedia'+eventid),
		path: '/medias/flash/Swiff.Uploader.swf',
		target: 'media-browse'+eventid, // the element for the overlay (Flash 10 only) 
		typeFilter:  {'Images (*.jpg, *.jpeg, *.png) Audio (*.mp3, *.amr) Vidéos (*.3gp, *.mp4 (H264), *.m4v, *.mov, *.wmv, *.avi)': '*.jpg; *.jpeg; *.png; *.mp3; *.amr; *.3gp; *.mp4; *.m4v; *.mov; *.avi; *.wmv'},
		onAllComplete: function() {
		//	$('media-status'+id).addClass('hide');
		//	$('media-list'+id).addClass('hide');	
			var level = $('formMedia'+eventid).getElement('select').get('value');
			
			new Request.HTML(
			{
				url:contextPath+'/media/get2/'+userid+'/'+eventid+'/'+level+'/0',
				method: 'get',
				encoding:'ISO-8859-1',
				onFailure:manageMediaFormErrors,
				onComplete: function(responseTree, responseElements, responseHTML, responseJavaScript) {
						processMediaForm( userid, eventid, level, responseHTML);
						initMediaSwiff( eventid);
					}
			}).send();
		}

	});
	
 	
	$('media-browse'+eventid).removeEvents('click'); 
	$('media-browse'+eventid).addEvent('click', function() {
		swiffy.browse();
		return false;
	});
   
	$('media-upload'+eventid).removeEvents('click');
	$('media-upload'+eventid).addEvent('click', function() {
		$('media-status'+eventid).removeClass('hide');
		swiffy.upload();
		return false;
	});
	
	
	return swiffy;
}

function loadMedia( userid, eventid, level, offset, count)
{
	if( offset == null)
		offset = 0;
		
	new Request.HTML(
	{
		url:contextPath+'/media/get2/'+userid+'/'+eventid+'/'+level+'/'+offset+'/'+count,
		method: 'get',
		encoding:'ISO-8859-1',
		onFailure:manageMediaFormErrors,
		onComplete: function(responseTree, responseElements, responseHTML, responseJavaScript) {
				processMediaForm(userid, eventid, level, responseHTML);
			}
	}).send();

	return;
}


function loadValidationMedia( userid, eventid, level, offset, count)
{
	if( offset == null)
		offset = 0;
		
	new Request.HTML(
	{
		url:contextPath+'/media/getwaitingforvalidation/'+eventid+'/'+offset+'/'+count,
		method: 'get',
		encoding:'ISO-8859-1',
		onFailure:manageMediaFormErrors,
		onComplete: function(responseTree, responseElements, responseHTML, responseJavaScript) {
				processMediaForm(userid, eventid, level, responseHTML);
			}
	}).send();

	return;
}


function processMediaForm( userid, eventid, level, responseHTML)
{
	var el = $('mediaContainer'+eventid+'_'+userid+'_'+level);
	
	el.get('tween', {property: 'opacity', duration: 'short'}).start(0).chain(function(){
		
		//var height = el.getStyle( 'height');
		el.set( 'html', responseHTML);
		el.setStyle( 'height', 'auto');
		
		SqueezeBox.parsers.swf = function(preset) {
			return (preset || this.url.test(/\.swf/)) ? this.url : false;
		};
		 
		SqueezeBox.handlers.swf = function( url) {
			var size = this.options.size; 
			var swiff = new Swiff('/medias/flash/player.swf', {
				id: 'sbox-swf',
				width: size.x,
				height: size.y,
				params: {
					allowfullscreen: 'true',
					allowscriptaccess: 'always',
					flashvars: 'file='+url,
					autostart: 'true'
				}
			});
			return swiff;
		};						
		
		SqueezeBox.assign($$('a.boxed'), {
			parse: 'rel'
		});
		
		el.get('tween', {property: 'opacity', duration: 'short'}).start(1);		
	});
	
}

function manageMediaFormErrors()
{
	
}

var loadMediaPlace = function loadMediaPlace( id, latitude, longitude, offset, count)
{
	if( offset == null)
		offset = 0;
		
	new Request.HTML(
	{
		url:contextPath+'/media/getbyplace/'+latitude+'/'+longitude+'/'+offset+'/'+count,
		method: 'get',
		encoding:'ISO-8859-1',
		onFailure:manageMediaFormErrors,
		onComplete: function(responseTree, responseElements, responseHTML, responseJavaScript) {
				processMediaPlace(id, latitude, longitude, responseHTML);
			}
	}).send();

	return;
}

function processMediaPlace( id, latitude, longitude, responseHTML)
{
	var el = $('mediaPlaceContainer'+id);
	
	el.get('tween', {property: 'opacity', duration: 'short'}).start(0).chain(function(){
		
		var height = el.getStyle( 'height');
		el.set( 'html', responseHTML);
		el.setStyle( 'height', height);
		
		SqueezeBox.parsers.swf = function(preset) {
			return (preset || this.url.test(/\.swf/)) ? this.url : false;
		};
		 
		SqueezeBox.handlers.swf = function( url) {
			var size = this.options.size; 
			var swiff = new Swiff('/medias/flash/player.swf', {
				id: 'sbox-swf',
				width: size.x,
				height: size.y,
				params: {
					allowfullscreen: 'true',
					allowscriptaccess: 'always',
					flashvars: 'file='+url,
					autostart: 'true'
				}
			});
			return swiff;
		};						
		
		SqueezeBox.assign($$('a.boxed'), {
			parse: 'rel'
		});
		
		new Tips('.Tips', {
    	    maxTitleChars: 80  
	    });	
		
		el.get('tween', {property: 'opacity', duration: 'short'}).start(1);		
	});
	
}

function showHand( id_string)
{
	$(id_string).addClass('formImageHandCursor');
}

function hideHand( id_string)
{
	$(id_string).removeClass('formImageHandCursor');
}

new Asset.images([
	'/medias/images/boutons/button.png', 
	'/medias/images/boutons/buttonmouseover.png', 
	'/medias/images/boutons/buttonselected.png', 
	'/medias/images/boutons/buttonmousedown.png'], 
				 { });



function actionRequestPrompt(source, value, id, message){
	
	var Sexy = new SexyAlertBox();
	Sexy.confirm(message ,{ onComplete: 
	    function(returnvalue) {
	      if(returnvalue)
	      {
		  	actionRequest( source, value, id);
		  }
		 }
		});
}

function actionRequest( source, value, id){
	if( _user.length >0)
	{
		var request = new Request.JSON(
		{
			url:contextPath+'/json/'+value+'/'+id,
			onComplete: function(jsonObj) {
				processActionRequest(source, jsonObj);
			}
		}).send();
	}else{
		this.location = '/auth/login/';	
	}
}

function processActionRequest( source, actionObject)
{
	if( actionObject == null)
		return;
	
	var style = '';
	if( actionObject.style != null)
		style = actionObject.style;
	
	if( $(source))
		$(source).empty().set('html',  "<a class=\"action_link "+style+"\" href=\"javascript:actionRequest( '"+source+"', '"+actionObject.value+"',"+actionObject.objectid+");\">"+actionObject.name+"&nbsp;&raquo;</a>");
	
	// updating main display
	if( source != (actionObject.id+actionObject.objectid)
		   && $(actionObject.id+actionObject.objectid))
		$(actionObject.id+actionObject.objectid).empty().set('html',  "<a class=\"action_link "+style+"\" href=\"javascript:actionRequest( '"+actionObject.id+actionObject.objectid+"', '"+actionObject.value+"',"+actionObject.objectid+");\">"+actionObject.name+"&nbsp;&raquo;</a>");
		
	// updating popup
	if( source != (actionObject.id+actionObject.objectid+'Popup')
		   && $(actionObject.id+actionObject.objectid+'Popup'))
		$(actionObject.id+actionObject.objectid+'Popup').empty().set('html',  "<a class=\"action_link "+style+"\" href=\"javascript:actionRequest( '"+actionObject.id+actionObject.objectid+'Popup'+"', '"+actionObject.value+"',"+actionObject.objectid+");\">"+actionObject.name+"&nbsp;&raquo;</a>");
		
	// updating detail
	if( source != (actionObject.id+actionObject.objectid+'Detail')
		   && $(actionObject.id+actionObject.objectid+'Detail'))
		$(actionObject.id+actionObject.objectid+'Detail').empty().set('html',  "<a class=\"action_link "+style+"\" href=\"javascript:actionRequest( '"+actionObject.id+actionObject.objectid+'Detail'+"', '"+actionObject.value+"',"+actionObject.objectid+");\">"+actionObject.name+"&nbsp;&raquo;</a>");
	
	// updating menu
	if( $(actionObject.id+'Menu')
			&& actionObject.number)
	{
		$(actionObject.id+'Menu').set( 'html', actionObject.number);
	}
	
	// removing list item
	if( actionObject.hide == true)
	{
		if( $(actionObject.id+actionObject.objectid+'Item'))
			$(actionObject.id+actionObject.objectid+'Item').setStyle('display', 'none');
		
		if( $('element'+actionObject.objectid+'Item'))
			$('element'+actionObject.objectid+'Item').setStyle('display', 'none');

		if( $(actionObject.id+'ItemNumber'))
		{
			var number = parseInt( $(actionObject.id+'ItemNumber').get( 'html'));
			if( number)
				$(actionObject.id+'ItemNumber').set( 'html', number-1);
		}
	}
}

function initActionWidget( source, value, id, usecache)
{
	ret = true;
	
	if( usecache)
	{
		ret = actionKeys.some(function(item, index){
			return item.value == value && item.objectid==id;
		});
	}
		
	if( ret)
	{
		var request = new Request.JSON(
		{
			url:contextPath+'/json/'+value+'Init/'+id, 
			onComplete: function(jsonObj) {
				processActionRequest(source, jsonObj);
			}
		}).send();
	}
}

function initActionKeys( value)
{	
	new Request.JSON(
	{
		url:contextPath+'/json/'+value+'Init/',
		onComplete: function(jsonObj) {
			actionKeys = jsonObj;			
			actionHash.each(function(value, key){    	
				initActionWidget( value.source, value.action, key, true);
				actionHash.erase(key);			
			});
		}
	}).send();
}


function edit_comment(id)
{
	$("save_link"+id).setStyle( 'display', 'block');
	$("edit_link"+id).setStyle( 'display', 'none');
	$("comment"+id).setStyle( 'max-width', '133px');
	
	var comment = '<input type="text" class="comment_input" name="commentform'+id+'" id="commentform'+id+'" size="30" value="'+$('comment'+id).innerHTML+'" >';
	$("comment"+id).innerHTML = comment;
}


function sendCommentForm( id){
	
	new Request.HTML(
	{
		url:contextPath+'/comment/post/',
		method: 'post',
		encoding:'ISO-8859-1',
		onFailure:manageCommentFormErrors,
		onComplete: function(responseTree, responseElements, responseHTML, responseJavaScript) {
				processCommentForm(id, responseHTML);
			}
	}).post($('formComment'+id));
	
	return false;
}

function processCommentForm(id, responseHTML)
{
	$('commentContainer'+id).empty().set( 'html', responseHTML);
}
function manageCommentFormErrors()
{
	
}
function save_comment( id)
{
	new Request(
	{
		url:contextPath+'/media/edit_comment/'+id,
		method: 'post',
		encoding:'ISO-8859-1',
		onSuccess:function(responseTree, responseElements, responseHTML, responseJavaScript) {
				processMediaCommentForm(id);
			}
	}).send( 'comment='+$("commentform"+id).value);
}

function processMediaCommentForm(id)
{
	if( $("save_link"+id))
		$("save_link"+id).setStyle( 'display', 'none');
	if( $("edit_link"+id))
		$("edit_link"+id).setStyle( 'display', 'block');
	if ($("comment" + id)) 
	{
		$("comment" + id).setStyle('max-width', '121px');
		$("comment" + id).innerHTML = $("commentform" + id).value;
	}
}


