var Soccer=new Object();


Soccer.getFlexApp=function(appName)
{
  if (navigator.appName.indexOf ("Microsoft") !=-1)
  {
    return document[appName];
  }
  else
  {
    return document[appName];
  }
}


Soccer.lang=function(id)
{
	
	var cap=false;
	var acap=false;
	var upper=false;
	if( id.endsWith("_cap") )
	{
		id=id.substr(0,id.length-4);
		cap=true;
	}
	if( id.endsWith("_acap") )
	{
		id=id.substr(0,id.length()-5);
		acap=true;
	}
	if( id.endsWith("_upp") )
	{
		id=id.substr(0,id.length()-4);
		upp=true;
	}
	
	
	var tmp=Soccer.langs[id];
	
	
	if( tmp==null )
		return id;
	
	if( tmp.length==0 )
		return "";
	
	if( upper )
	{
		tmp=tmp.toUpperCase();
	}
	else if( cap )
	{
		tmp=tmp.substr(0,1).toUpperCase() + tmp.substr(1);
	}
	else if( acap )
	{
		var ar=tmp.split(" ");
		
		
		tmp="";
		ar.each( function(a) { a=a.substr(0,1).toUpperCase() + a.substr(1); tmp+=a+" "; }  )
		tmp=tmp.trim();
	}
	
	return tmp;
		
}

var Lang=new Object();
Lang.lang=function(id,params)
{
	if( params==null )
		return Soccer.lang(id);
	var tmp=Soccer.lang(id);
	
	for(var i=0;i<params.length;i++)
	{
		tmp=tmp.replace('{'+(i+1)+'}',params[i]);
	}
	
	return tmp;
}


Soccer.msgClear=function(where)
{
	if( where=null )
		return;
	where.update('');
}

Soccer.msgOk=function(where,msg)
{
	if( where==null )
		return;
	where.removeClassName('msgError');
	where.addClassName('msgOk');
	where.update(msg);
	where.show();
}
Soccer.msgError=function(where,msg)
{
	if( where==null )
		return;
	where.removeClassName('msgOk');
	where.addClassName('msgError');
	where.update(msg);
}

Soccer.getWaitIconSmall=function()
{
	if( Soccer.waitIconSmall==null )
	{
		var img=new Image();
		img.src=RootNL+'assets/img/wait-icon-small.gif';
		Soccer.waitIconSmall=img;
	}
	return Soccer.waitIconSmall.clone();
}


Soccer.registerCoach=function()
{
	var validator=new Validator({formName:"registerCoach"});
	
	var r=validator.validate();
	
	if( !r.validAll )
		return;
	
	if( document.registerCoach.password.value!=document.registerCoach.userPasswordRepeat.value )
	{
		validator.reportEntryError('userPasswordRepeat');
		return;
	}
	
	document.registerCoach.submit();
}
Soccer.registerManager=function()
{
	var validator=new Validator({formName:"registerManager"});
	
	var r=validator.validate();
	
	if( !r.validAll )
		return;
	
	if( document.registerManager.password.value!=document.registerManager.userPasswordRepeat.value )
	{
		validator.reportEntryError('userPasswordRepeat');
		return;
	}
	
	document.registerManager.submit();
}

Soccer.registerPlayer=function()
{
	var validator=new Validator({formName:"registerPlayer"});
	
	
	if( document.registerPlayer.adult.value=='1' )
	{
		validator.removeEntry('parent_first_name');
		validator.removeEntry('parent_last_name');
		validator.removeEntry('parent_telephone');
	}
	
	var r=validator.validate();
	
	if( !r.validAll )
	{
		return;
	}
	
	if( document.registerPlayer.password.value!=document.registerPlayer.userPasswordRepeat.value )
	{
		validator.reportEntryError('userPasswordRepeat');
		return;
	}

	document.registerPlayer.submit();
}

Soccer.login=function()
{
	$('loginMessage').update('');
	$('loginButton').src=RootNL+'assets/img/wait-icon-small.gif';
	
	jsWorkspace.requestPost('loginForm',null,{callback:Soccer.loginAction});
}

Soccer.loginAction=function(content)
{
	$('loginButton').src=RootNL+'assets/img/button.png';
	$('loginMessage').update('');

	var m=JSWorkspace.parseJSON(content);
	if( m!=null )
	{

		if( m['result']==0 || m['success'] )
		{
			$('loginButton').remove();
			
			if( m['from'])
				window.location=m['from'];
			else
				window.location=Root;
			return;
		}
		else
		{
			Soccer.msgError($('loginMessage'),m['msg']);
		}
	}
	
}

Soccer.profileStepFinish=function()
{
	/*
	var validator=new Validator({formName:"profileStep"});
	
	var r=validator.validate();
	
	if( !r.validAll )
		return;
	*/
	document.profileStep.finish.value='1';
	document.profileStep.submit();
}

Soccer.profileStepForward=function()
{
	var validator=new Validator({formName:"profileStep"});
	
	if( validator!=null )
	{
		if( document.profileStep.adult!=null )
			if( document.profileStep.adult.value=='1' )
			{
				validator.removeEntry('parent_first_name');
				validator.removeEntry('parent_last_name');
				validator.removeEntry('parent_telephone');
			}
		
		var r=validator.validate();
		
		if( !r.validAll )
			return;
	}
	
	
	document.profileStep.submit();	

}

Soccer.uploadSec1=function(resp,uploaderId)
{
	

	if( uploaderId!=null )
		if( uploaderId>0 )
		{
			if( Soccer.mediaUploaders[uploaderId]!=null )
				Soccer.mediaUploaders[uploaderId].uploadSec1(resp);
			return;
		}
	
	Soccer.uploadType=0;
	Soccer.uploadId=0;
	
	$('uploadSec2Forward').show('');
	$('uploadSec2Wait').hide();
	
	$('uploadSec3Msg').update('');
	$('uploadPreview').update('');
	
	document.uploadSec2Form.elements['fileTitle'].value='';
	document.uploadSec2Form.elements['fileDescription'].value='';
	
	if( resp=='1' )
	{
		Soccer.msgError($('uploadMsg'),Soccer.lang('ids:js_upload_no_file_cap'));
		return;
	}
	if( resp=='2' )
	{
		Soccer.msgError($('uploadMsg'),Soccer.lang('ids:js_upload_file_too_big_cap'));
		return;
	}
	if( resp=='3' )
	{
		Soccer.msgError($('uploadMsg'),Soccer.lang('ids:js_upload_wrong_type_cap'));
		return;
	}
	if( resp=='4' )
	{
		Soccer.msgError($('uploadMsg'),Soccer.lang('ids:js_upload_directory_not_set_cap'));
		return;
	}	
	
	if( resp=='-1' )
	{
		$('uploadSec2').hide();
		// Uploader loaded
		return;
	}
	if( resp=='-2' )
	{
		$('uploadSec2').hide();
		// Uploader ready (file picked) start now
		Soccer.getFlexApp('upload').start();
		return;
	}
	
	//Soccer.msgOk($('uploadMsg'),Soccer.lang('js:upload_success_cap'));
	var ar=resp.split(/,/);
	
	if( ar.length<3 )
	{
		Soccer.msgError($('uploadMsg'),Soccer.lang('ids:js_upload_error_cap'));
		return;
	}	
	
	if( parseInt(ar[0])=="NaN" )
	{
		Soccer.msgError($('uploadMsg'),Soccer.lang('ids:js_upload_error_cap'));
		return;
	}	
	
	if( parseInt(ar[1])=="NaN" )
	{
		Soccer.msgError($('uploadMsg'),Soccer.lang('ids:js_upload_error_cap'));
		return;
	}	
	
	if( parseInt(ar[3])=="NaN" )
	{
		Soccer.msgError($('uploadMsg'),Soccer.lang('ids:js_upload_error_cap'));
		return;
	}	
	
	if( parseInt(ar[0])!=0 )
	{
		Soccer.msgError($('uploadMsg'),Soccer.lang('ids:js_upload_error_cap'));
		return;
	}	

	
	$('uploadMsg').update('');
	
	
	
	Soccer.uploadType=ar[2];
	Soccer.uploadId=ar[1];
	
	if( Soccer.uploadType==2 )
		$('uploadSec2Title').update(Soccer.lang('ids:js_upload_sec2_title_image_cap'));
	else
		$('uploadSec2Title').update(Soccer.lang('ids:js_upload_sec2_title_video_cap'));
	
	$('uploadSec2').show();
	
}

Soccer.uploadSec2=function(uploaderId)
{
	
	
	if( uploaderId!=null )
		if( uploaderId>0 )
		{
			Soccer.mediaUploaders[uploaderId].uploadSec1(resp);
			return;
		}

	
	document.uploadSec2Form.elements['id'].value=Soccer.uploadId;
	$('uploadSec2Forward').hide('');
	$('uploadSec2Wait').show();
	
	jsWorkspace.requestPost('uploadSec2Form',null,{callback:Soccer.uploadSec3});
}

Soccer.uploadSec3=function(resp)
{
	if( Soccer.uploadType==2 )
	{
		// Request do podgladu obrazka
		Soccer.uploadRequestPreview();
	}
	else
	{
		$('uploadSec2Wait').hide();
		// Odsloniamy info o dodanym filmie
		$('uploadSec3Msg').update(Soccer.lang('ids:js_upload_finish_movie_cap'));
		Soccer.uploadRequestPreview();
	}
}

Soccer.uploadRequestPreview=function()
{
	jsWorkspace.requestGet(Root+'media/preview/'+Soccer.uploadId,null,{callback:Soccer.uploadSec4});
}

Soccer.uploadSec4=function(resp)
{
	if( Soccer.uploadType==2 )
	{
		$('uploadSec2Wait').hide();
		$('uploadSec3Msg').update(Soccer.lang('ids:js_upload_finish_image_cap'));
		$('uploadPreview').update(resp);
	}
	else
	{
		if( resp.trim().empty() )
		{
			// Film jeszcze nie gotowy
			setTimeout('Soccer.uploadRequestPreview()',3000);
		}
		else
		{
			// Wyswietlamy podglad filmu
			$('uploadSec3Msg').update(Soccer.lang('ids:js_upload_finish_movie_done_cap'));
			$('uploadPreview').update(resp);
		}
		
	}
}


Soccer.toggleNormalWait=function(what)
{
	if( $(what+'Normal').visible() )
	{
		$(what+'Normal').hide();
		$(what+'Wait').show();
	}
	else
	{
		$(what+'Normal').show();
		$(what+'Wait').hide();
	}
}

Soccer.favMedia=function(id,msg)
{
	Soccer.toggleNormalWait('favMedia');
	jsWorkspace.requestGet(Root+'fav/media/'+id,null,{expression:'Soccer.toggleNormalWait("favMedia"); Soccer.msgOk($("favMediaMsg"),Soccer.lang("'+msg+'"));'});
}
Soccer.favProfile=function(id,msg)
{
	//Soccer.toggleNormalWait('favProfile');
	//jsWorkspace.requestGet(Root+'fav/profile/'+id,null,{expression:'Soccer.toggleNormalWait("favProfile"); Soccer.msgOk($("favProfileMsg"),Soccer.lang("ids:js_misc_profile_added_to_fav_cap"));'});
	Soccer.RequestAjax({url:Root+'fav/profile/'+id,hideWaitNr:2,hideWait:$('favMsg'),afterMsg:'ids:js_misc_profile_added_to_fav_cap',msgObj:$('favMsg')});
}
Soccer.moderate=function(id)
{
	Soccer.toggleNormalWait('modMedia');
	jsWorkspace.requestGet(Root+'mod/media/'+id,null,{expression:'Soccer.toggleNormalWait("modMedia"); Soccer.msgOk($("favMediaMsg"),Soccer.lang("ids:js_sent_to_mod_cap"));'});
}
Soccer.moderateProfile=function(id)
{
	//Soccer.toggleNormalWait('modProfile');
	//jsWorkspace.requestGet(Root+'mod/profile/'+id,null,{expression:'Soccer.toggleNormalWait("modProfile"); Soccer.msgOk($("favProfileMsg"),Soccer.lang("ids:js_sent_to_mod_cap"));'});
	Soccer.RequestAjax({url:Root+'mod/profile/'+id,hideWaitNr:2,hideWait:$('modMsg'),afterMsg:'ids:js_sent_to_mod_cap',msgObj:$('modMsg')});
}

Soccer.favRemove=function(link,id)
{
	var div=Element.extend(link).up();
	div.update('<img src="'+RootNL+'assets/img/wait-2.gif"/>');
	
	jsWorkspace.requestGet(Root+'fav/remove/'+id,null,{expression:'window.location=window.location'});
}



Soccer.featureShowRelated=function(fid)
{
	var doc=Element.extend(document.body);
	
	var l=doc.select('[relatedFeature=divRelated'+fid+']');
	l.each(function(o) {o.show();});	
}
Soccer.featureHideRelated=function(fid)
{
	var doc=Element.extend(document.body);
	
	var l=doc.select('[relatedFeature=divRelated'+fid+']');
	l.each(function(o) {o.hide();});	
}
Soccer.featureRelatedInit=function()
{
	var doc=Element.extend(document.body);
	

	var l=doc.select('[featureHidding]');
	l.each(function(o) {if( o.checked ) Soccer.featureHideRelated(o.readAttribute('featureHidding'));});	

}

Soccer.mediaUploaders=new Array();
function SoccerMediaUploader(container, parameters)
{
	Soccer.mediaUploaders[parameters.featureId]=this;
	
	if( parameters.objectId==null || parameters.objectId=='' )
		parameters.objectId=0;
	
	if( parameters.maxItems=='' )
		parameters.maxItems=1;
	
	this.uploadResponse=function(resp)
	{
		if( resp=='1' )
		{
			Soccer.msgError(container.select('[id=uploaderMsg]')[0],Soccer.lang('ids:js_upload_no_file_cap'));
			return;
		}
		if( resp=='2' )
		{
			Soccer.msgError(container.select('[id=uploaderMsg]')[0],Soccer.lang('ids:js_upload_file_too_big_cap'));
			return;
		}
		if( resp=='3' )
		{
			Soccer.msgError(container.select('[id=uploaderMsg]')[0],Soccer.lang('ids:js_upload_wrong_type_cap'));
			return;
		}
		if( resp=='4' )
		{
			Soccer.msgError(container.select('[id=uploaderMsg]')[0],Soccer.lang('ids:js_upload_directory_not_set_cap'));
			return;
		}	
		
		if( resp=='-1' )
		{
			// Uploader loaded
			return;
		}
		if( resp=='-2' )
		{
			// File selected
			if( parameters.startAutomatically )
				Soccer.getFlexApp('upload'+id).start();
			else
				container.select('[id=uploaderButtonsUpload]')[0].show();
			
			
			container.select('[id=uploaderMsg]')[0].update('');
			return;
		}
		
		
		//Soccer.msgOk($('uploadMsg'),Soccer.lang('js:upload_success_cap'));
		var ar=resp.split(/,/);
		
		if( ar.length<3 )
		{
			Soccer.msgError(container.select('[id=uploaderMsg]')[0],Soccer.lang('ids:js_upload_error_cap'));
			return;
		}	
		
		if( parseInt(ar[0])=="NaN" )
		{
			Soccer.msgError(container.select('[id=uploaderMsg]')[0],Soccer.lang('ids:js_upload_error_cap'));
			return;
		}	
		
		if( parseInt(ar[1])=="NaN" )
		{
			Soccer.msgError(container.select('[id=uploaderMsg]')[0],Soccer.lang('ids:js_upload_error_cap'));
			return;
		}	
		
		if( parseInt(ar[3])=="NaN" )
		{
			Soccer.msgError(container.select('[id=uploaderMsg]')[0],Soccer.lang('ids:js_upload_error_cap'));
			return;
		}	
		
		if( parseInt(ar[0])!=0 )
		{
			Soccer.msgError(container.select('[id=uploaderMsg]')[0],Soccer.lang('ids:js_upload_error_cap'));
			return;
		}	
		
		container.select('[id=uploaderMsg]')[0].update('');
		
		thisObj.afterUpload(ar[1]);
	}
	
	
	// wyknywana po klilnieciu na przycisk 'Anuluj'
	this.buttonCancel=function(e)
	{
		container.select('[id=uploaderMsg]')[0].update('');
		showHide(false);
		
		if( container.select('[id=uploaderMediaTitle]').length>0 )
		{
			container.select('[id=uploaderMediaTitle]')[0].value='';
			container.select('[id=uploaderMediaDescription]')[0].value='';
		}

		
		
	}
	
	
	// wyknywana po klilnieciu na przycisk 'Zmien'
	this.buttonChange=function(e)
	{
		container.select('[id=uploaderMsg]')[0].update('');
		// odczytujemy mediaId
		var entityId=Event.element(e).readAttribute('entityId');
		
		
		container.select('[id=uploaderMsg]')[0].update('<img src="'+RootNL+'assets/img/wait-2.gif"/>');
		
		// wysylamy ajaxem pobranie entity w formacie json
		jsWorkspace.requestGet(Root+'profile/edit/entity/view/'+entityId+'/json',null,{callback:thisObj.buttonChangeResponse});
	}
	
	// odpowiedz serwera z mediami w formacie json na przycisk 'Zmien'
	this.buttonChangeResponse=function(content)
	{
		container.select('[id=uploaderMsg]')[0].update('');
		
		var m=JSWorkspace.parseJSON(content);
		if( m!=null )	
		{
			// ustawiamy id forma 
			container.select('[id=uploaderEntityId]')[0].value=m.entityId;
			
			// ustawiamy dane na formularzu
			if( container.select('[id=uploaderMediaTitle]').length>0 )
			{
				container.select('[id=uploaderMediaTitle]')[0].value=m.mediaTitle;
				container.select('[id=uploaderMediaDescription]')[0].value=m.mediaDescription;
			}
			
			
			showHide(true);
			
			// ustawiamy sie w polu tytulu
			container.select('[id=uploaderMediaTitle]')[0].focus();
		}
	}
	
	// po klikniciu na przycisk submit w dodawania
	this.buttonUploadSubmit=function(e)
	{
		
		// chowamy przycski
		container.select('[id=uploaderButtonsUpload]')[0].hide();
	
		container.select('[id=uploaderMsg]')[0].update('<img src="'+RootNL+'assets/img/wait-2.gif"/>');
		// startujemy upload
		Soccer.getFlexApp('upload'+parameters.featureId).start();
	}
	
	// po klikniciu na przycisk submit w formularzu zmiany
	this.buttonChangeSubmit=function(e)
	{
		// chowamy przycski
		container.select('[id=uploaderButtonsChange]')[0].hide();
	
		container.select('[id=uploaderMsg]')[0].update('<img src="'+RootNL+'assets/img/wait-2.gif"/>');
		// wysylamy formularz
		if( container.select('[id=uploaderMediaTitle]').length>0 )
		{
			var url=Root+'profile/edit/entity/update/'+container.select('[id=uploaderEntityId]')[0].value+'?title='+JSWorkspace.encodeUrl(container.select('[id=uploaderMediaTitle]')[0].value)+'&description='+JSWorkspace.encodeUrl(container.select('[id=uploaderMediaDescription]')[0].value)
			jsWorkspace.requestGet(url,null,{callback:thisObj.afterUpdate,msgKey:'ids:js_upload_msg_after_change'});
		}
		else
			// Nie ma tytulu i opisu
			thisObj.afterUpdate("",{msgKey:'ids:js_upload_msg_after_change'});
			
	}
	

	
	// Metda po poprawnym wyslaniu na serwer pliku, wysyla do serwera jego tytul i opis
	this.afterUpload=function(mediaId)
	{
		if( container.select('[id=uploaderMediaTitle]').length>0 )
			var url=Root+'profile/edit/entity/create/'+mediaId+'/'+parameters.objectId+'/'+parameters.featureId+'?title='+JSWorkspace.encodeUrl(container.select('[id=uploaderMediaTitle]')[0].value)+'&description='+JSWorkspace.encodeUrl(container.select('[id=uploaderMediaDescription]')[0].value)
		else
			var url=Root+'profile/edit/entity/create/'+mediaId+'/'+parameters.objectId+'/'+parameters.featureId+'?title=&description=';
			
		// ustawiamy tytul i opis, ustawiamy wiadomosc o tym ze nowwe media (zdjecie lub film) zostaly dodane
		jsWorkspace.requestGet(url,null,{callback:thisObj.afterUpdate,msgKey:'ids:js_upload_msg_after_upload'});
	}
	
	// Metoda wykonywana po modyfkacji tytulu i opisu
	this.afterUpdate=function(content,args)
	{
		// Pobieramy thumbsy
		jsWorkspace.requestGet(Root+parameters.thumbsUrl+parameters.objectId+'/'+parameters.featureId,null,{callback:thisObj.displayThumbs,msgKey:args.msgKey});
	}
	
	// Callback po ustawieniu opisu i nazwy lub po usunieciu
	this.displayThumbs=function(respHtmlPreview,args)
	{
		// Ustawiamy po aktualizacji tytaulu i opisu message
		Soccer.msgOk(container.select('[id=uploaderMsg]')[0],Soccer.lang(args.msgKey+'_cap'));
		
		// aktualizujemy zawartosc podgladu
		container.select('[id=uploaderPreviewContent]')[0].update(respHtmlPreview);
		
		// podpinamy sie pod przyciski usuniecie i edycji
		observeThumbs();
		
		if( container.select('[id=uploaderMediaTitle]').length>0 )
		{
			container.select('[id=uploaderMediaTitle]')[0].value='';
			container.select('[id=uploaderMediaDescription]')[0].value='';
		}
		
		
		
		if( container.select('[type="uploaderLinkDelete"]').length>0 )
			container.select('[id=uploaderPreviewContentNoMedia]')[0].hide();
		else
			container.select('[id=uploaderPreviewContentNoMedia]')[0].show();
		
		showHide(false);
				
	}
	
	var showHide=function(change)
	{
		if( change )
		{
			container.select('[id=uploaderButtonsChange]')[0].show();
			container.select('[id=uploaderButtonsUpload]')[0].hide();
			container.select('[id=uploaderForm]')[0].show();
			container.select('[id=uploaderFile]')[0].hide();
			container.select('[id=uploaderFormTitleUpload]')[0].hide();
			container.select('[id=uploaderFormTitleChange]')[0].show();
			
			container.select('[id=uploaderAddChange]')[0].show();
			
		}
		else
		{
			if( container.select('[type=uploaderLinkDelete]').length<parameters.maxItems )
			{
				container.select('[id=uploaderButtonsChange]')[0].hide();
				container.select('[id=uploaderButtonsUpload]')[0].hide();
				container.select('[id=uploaderForm]')[0].show();
				container.select('[id=uploaderFile]')[0].show();
				container.select('[id=uploaderFormTitleUpload]')[0].show();
				container.select('[id=uploaderFormTitleChange]')[0].hide();
				
				container.select('[id=uploaderAddChange]')[0].show();
			}
			else
			{
				container.select('[id=uploaderButtonsChange]')[0].hide();
				container.select('[id=uploaderButtonsUpload]')[0].hide();
				container.select('[id=uploaderForm]')[0].hide();
				container.select('[id=uploaderFile]')[0].hide();
				container.select('[id=uploaderFormTitleUpload]')[0].hide();
				container.select('[id=uploaderFormTitleChange]')[0].hide();

				container.select('[id=uploaderAddChange]')[0].hide();
			}
		}
	}
	
	// Metoda podpina sie pod przycski usuniecie i edycji w podgladzie
	var observeThumbs=function()
	{
		container.select('[type=uploaderLinkDelete]').each(function(el){el.observe('click',thisObj.buttonRemove)});
		container.select('[type=uploaderLinkChange]').each(function(el){el.observe('click',thisObj.buttonChange)});
	}
	
	// uzytkownik kliiknal usuwanie mediow
	this.buttonRemove=function(e)
	{
		// chowamy przyciski
		container.select('[id=uploaderButtonsChange]')[0].hide();
		container.select('[id=uploaderButtonsUpload]')[0].hide();
		
		// odczytujemy entityId
		var entityId=Event.element(e).readAttribute('entityId');
		
		jsWorkspace.requestGet(Root+parameters.removeEntryUrl+'/'+entityId,null,{callback:thisObj.afterUpdate,msgKey:'ids:js_upload_msg_after_remove'});
	}

	var thisObj=this;
	container.select('[type=uploaderLinkUpload]').each(function(o){o.observe('click',thisObj.buttonUploadSubmit)});
	container.select('[type=uploaderLinkChangeSubmit]').each(function(o){o.observe('click',thisObj.buttonChangeSubmit)});
	container.select('[type=uploaderLinkCancel]').each(function(o){o.observe('click',thisObj.buttonCancel)});
	
	
	showHide(false);
	observeThumbs();

}
SoccerMediaUploader.uploadResponse=function(resp,id)
{
	Soccer.mediaUploaders[id].uploadResponse(resp);
}
SoccerMediaUploader.scan=function()
{
	var doc=Element.extend(document.body);
	var l=doc.select('[type=containerFeatureMedia]');
	l.each(function(o){
		new SoccerMediaUploader(o,{featureType:o.readAttribute('featureType'),maxItems:o.readAttribute('maxItems'),removeEntryUrl:'profile/edit/entity/remove',thumbsUrl:'profile/edit/entity/thumbs/',featureId:o.readAttribute('featureId'),objectId:o.readAttribute('objectId')});
		
	});
}




///////////////
var PhotoPreview=new Object();
PhotoPreview.photoPreview=function(url, name, description)
{
	$('photoPreviewDiv').tCover=JSWorkspace.coverWithTransparent(Element.extend(document.body),50);
//	$('photoPreviewDiv').show();


	if( name!=null )
		$('photoPreviewDiv').select('[type=photoPreviewName]')[0].update(name);
	else
		$('photoPreviewDiv').select('[type=photoPreviewName]')[0].update("");

	if( description!=null )
		$('photoPreviewDiv').select('[type=photoPreviewDescription]')[0].update(description);
	else
		$('photoPreviewDiv').select('[type=photoPreviewDescription]')[0].update("");

	$('photoPreviewDiv').select('[type=photoPreviewName]')[0].setStyle({width:"250px",paddingLeft:"8px"});
	$('photoPreviewDiv').select('[type=photoPreviewDescription]')[0].setStyle({width:"250px",paddingLeft:"8px"});

	if( $('photoPreviewDiv').select('[type=photoPreviewName]')[0].innerHTML.strip().empty() )
		$('photoPreviewDiv').select('[type=photoPreviewName]')[0].setStyle({height: "0px"});
	else
		$('photoPreviewDiv').select('[type=photoPreviewName]')[0].setStyle({height: "auto"});

	if( $('photoPreviewDiv').select('[type=photoPreviewDescription]')[0].innerHTML.strip().empty() )
		$('photoPreviewDiv').select('[type=photoPreviewDescription]')[0].setStyle({height: "0px"});
	else
		$('photoPreviewDiv').select('[type=photoPreviewDescription]')[0].setStyle({height: "auto"});



	$('photoPreviewDiv').oldUrl=$('photoPreviewDiv').select('[type=photoPreviewImg]')[0].src;

	$('photoPreviewDiv').setStyle({top:JSWorkspace.getDocumentScrollOffset()[1]+"px"});
	$('photoPreviewDiv').setStyle({left:JSWorkspace.getDocumentScrollOffset()[0]+"px"});

	$('photoPreviewDiv').url=url;


	if( $('photoPreviewDiv').urls==null )
		$('photoPreviewDiv').urls=new Array();

	if( $('photoPreviewDiv').urls[url] ) {
		$('photoPreviewDiv').setOpacity(0);
		$('photoPreviewDiv').show();

		$('photoPreviewDiv').tmpImg=new Image();
		$('photoPreviewDiv').tmpImg.onload=PhotoPreview.photoPreviewLoadedTmp1;
		$('photoPreviewDiv').tmpImg.src=$('photoPreviewDiv').url;
	}
	else
		new Effect.Appear($('photoPreviewDiv'),{afterFinish: PhotoPreview.photoPreviewLoadedTmp2});
}
PhotoPreview.photoPreviewLoadedTmp2=function()
{
	if( $('photoPreviewDiv').visible() )
		$('photoPreviewDiv').oldDim=[$('photoPreviewDiv').select('[type=photoPreviewDiv2]')[0].getWidth(),$('photoPreviewDiv').select('[type=photoPreviewDiv2]')[0].getHeight()];

	$('photoPreviewDiv').tmpImg=new Image();
	$('photoPreviewDiv').tmpImg.onload=PhotoPreview.photoPreviewLoaded;
	$('photoPreviewDiv').tmpImg.src=$('photoPreviewDiv').url;
}

PhotoPreview.photoPreviewLoadedTmp1=function()
{
	$('photoPreviewDiv').select('[type=photoPreviewName]')[0].setStyle({width:$('photoPreviewDiv').tmpImg.width+"px"});
	$('photoPreviewDiv').select('[type=photoPreviewDescription]')[0].setStyle({width:$('photoPreviewDiv').tmpImg.width+"px"});

	$('photoPreviewDiv').select('[type=photoPreviewDiv2]')[0].setStyle({width: $('photoPreviewDiv').tmpImg.width+16+"px", height: $('photoPreviewDiv').tmpImg.height+"px"});
	$('photoPreviewDiv').select('[type=photoPreviewImg]')[0].src=$('photoPreviewDiv').tmpImg.src;
	new Effect.Appear($('photoPreviewDiv'));
}

PhotoPreview.photoPreviewLoaded=function()
{
	if( !$('photoPreviewDiv').visible() )
		return;


	$('photoPreviewDiv').urls[$('photoPreviewDiv').url]=true;


	new Effect.Fade($('photoPreviewDiv'), { afterFinish: PhotoPreview.photoPreviewLoadedTmp1 });



}
PhotoPreview.photoPreviewClose=function()
{
	if( !$('photoPreviewDiv').visible() )
		return;
	$('photoPreviewDiv').hide();
	$('photoPreviewDiv').tCover.remove();

	$('photoPreviewDiv').select('[type=photoPreviewImg]')[0].src=$('photoPreviewDiv').oldUrl;

	$('photoPreviewDiv').select('[type=photoPreviewDiv2]')[0].setStyle({width: $('photoPreviewDiv').oldDim[0]+"px", height: $('photoPreviewDiv').oldDim[1]+"px"});
}

////////////////////////////////////
// Object
ObjectEdit=function(container)
{
	var thisObj=this;
	
	var bindList=function()
	{
		container.select('[type=objectEditLink]').each(function(o){o.observe('click',thisObj.addOrEdit)});
		container.select('[type=objectRemoveLink]').each(function(o){o.observe('click',thisObj.remove)});
	}
	
	this.remove=function(e)
	{
		var id=Event.element(e).readAttribute('objectId');
		
		if( id!=null )
			jsWorkspace.requestGet(Root+'profile/edit/object/remove/'+id,null,{callback:thisObj.objectAfterUpdate});
		
		
	}
	
	this.thumbsResult=function(content)
	{
		container.select('[type=objectList]')[0].update(content);
		container.select('[type=objectForm]')[0].hide();
		
		bindList();
	}

	this.objectAfterUpdate=function(content,args)
	{
		var cId=container.readAttribute('categoryId');
		jsWorkspace.requestGet(Root+'profile/edit/object/list/'+cId,null,{callback:thisObj.thumbsResult});
	}

	this.objectSubmit=function()
	{
		var validator=new Validator({containerElement:form});
		var r=validator.validate();
		if( !r.validAll )
			return;

		
		container.select('[type=objectForm]')[0].update('<img src="'+RootNL+'assets/img/wait-2.gif"/>');
		jsWorkspace.requestPost(form,null,{callback:thisObj.objectAfterUpdate});	
	}
	
	var form=null;
	this.bindForm=function(content)
	{
		if( content!=null )
			container.select('[type=objectForm]')[0].update(content);
		
		SoccerMediaUploader.scan();
		
		form=container.select('form')[0];
		container.select('[type=objectFormLinkUpdate]').each(function(o){o.observe('click',thisObj.objectSubmit)});
		container.select('[type=objectFormLinkCancel]').each(function(o){o.observe('click',thisObj.cancel);});
	}
	
	
	this.cancel=function()
	{
		container.select('[type=objectForm]')[0].hide();
	}
	
	this.addOrEdit=function(e)
	{
		var cId=container.readAttribute('categoryId');
		var id=Event.element(e).readAttribute('objectId');
		if( id==null ) id="";
		container.select('[type=objectForm]')[0].update('<img src="'+RootNL+'assets/img/wait-2.gif"/>');
		container.select('[type=objectForm]')[0].show();
		jsWorkspace.requestGet(Root+'profile/edit/object/form/'+cId+'/'+id,null,{callback:thisObj.bindForm});
	}
	
	
	this.bindForm();
	container.select('[type=objectFormNew]').each(function(o){o.observe('click',thisObj.addOrEdit)});
	
	bindList();
}


ObjectEdit.scan=function()
{
	var doc=Element.extend(document.body);
	var l=doc.select('[type=objectEditContainer]');
	l.each(function(o){
		new ObjectEdit(o);
	});
	
}
	
//////////////////////////////////////////

Soccer.hideMoreLinks3=function()
{
	Soccer._p1=false;
}
Soccer.hideMoreLinks2=function()
{
	Effect.SlideUp($('moreLinks'),{duration:0.4,afterFinish:Soccer.hideMoreLinks3});
}
Soccer.hideMoreLinks=function()
{
	
	GMouseTrapEventManager.add([$('moreLinksContainer')],null,null,Soccer.hideMoreLinks2,null,[5,5],false);
}


Soccer.confirmAndGoAndRedirect=function(text,url,urlAfter,waitOver,waitNr)
{
	Soccer.confirm(text,Soccer.ajax,null,{urlAfter:urlAfter,waitOver:waitOver,waitNr:waitNr,urlAndBack:url} );	
}

Soccer.confirmAndGo=function(text,url,ajax,waitOver,waitNr)
{
	if( ajax )
		Soccer.confirm(text,Soccer.ajax,null,{waitOver:waitOver,waitNr:waitNr,urlAndBack:url} );
	else
		Soccer.confirm(text,null,url,{} );
}

Soccer.confirm=function(text,callback,url,args)
{
	
	$('confirmationText').update(Soccer.lang(text));
	Soccer.confirmArgs=args;
	Soccer.confirmCallback=callback;
	Soccer.confirmUrl=url;
	Soccer.confirmId=jsWorkspace.coverElement({what:$('confirmation'), where:document.body, vcenter: true, hcenter: true});
	
}

Soccer.confirmHide=function()
{
	jsWorkspace.coverHide(Soccer.confirmId.id);
}
Soccer.confirmAccepted=function()
{
	jsWorkspace.coverHide(Soccer.confirmId.id);
	
	if( Soccer.confirmCallback!=null )
		Soccer.confirmCallback(Soccer.confirmArgs);
	if( Soccer.confirmUrl!=null )
		window.location=Soccer.confirmUrl;
}


Soccer.ajax=function(args)
{
	if( args.waitOver!=null )
	{
		if( args.waitNr)
			args.waitOver.update('<img src="'+RootNL+'assets/img/wait-'+args.waitNr+'.gif"/>');
		else
			args.waitOver.update('<img src="'+RootNL+'assets/img/wait-2.gif"/>');
	}
	if( args.urlAfter )
		jsWorkspace.requestGet(args.urlAndBack,null,{expression:'window.location="'+args.urlAfter+'"'});
	else
	{
		if( args.urlAndBack )
			jsWorkspace.requestGet(args.urlAndBack,null,{expression:'window.location="'+window.location+'"'});
	}

}

Soccer.mediaChangeSubmit=function()
{
	$('mediaChangeSubmitDiv').hide();
	$('mediaChangeWait').show();
	
	document.mediaChange.submit();
}


Soccer.objectSubmitStandalone=function()
{
	var validator=new Validator({containerElement:$('divObjectForm')});
	var r=validator.validate();
	if( !r.validAll )
		return;
	document.objectForm.submit();
}


Soccer._p2TrueFunc=function() {Soccer._p2=true;}
Soccer._p1FalseFunc=function() {Soccer._p1=false;}


Soccer.passwordRemind=function()
{
	document.passwordForm.email.value=document.loginForm.userEmail.value;
	$('loginMessage').update('');
	$('loginButton').src=RootNL+'assets/img/wait-icon-small.gif';
	jsWorkspace.requestPost('passwordForm',null,{callback:Soccer.passwordRemindSent});
}
Soccer.passwordRemindSent=function(content)
{
	$('loginButton').src=RootNL+'assets/img/button.png';
	$('loginMessage').update('');

	var m=JSWorkspace.parseJSON(content);
	if( m!=null )
	{

		if( m['result']==0 || m['success'] )
		{
			Soccer.msgOk($('loginMessage'),m['msg']);
		}
		else
		{
			Soccer.msgError($('loginMessage'),m['msg']);
		}
	}
	
}

Soccer.FilterAdvanced=function(container)
{
	var id=container.select('[name=filterSessionId]')[0].value;
	var div=container.select('[type=fiterAdvanced]')[0];
	div.update('<img src="'+RootNL+'assets/img/wait-3.gif"/>');
	jsWorkspace.requestGet(Root+'filter/advanced/'+id,null,{dest:div});
}

Soccer.Search=function(link)
{
	var filter=JSWorkspace.FindAncestor(link,'[type=filter]');
	var form=filter.select('form')[0];

	form.action=Root+'filter/onsearch';
	form.submit();

}


Soccer.SearchSettingsSaveAs=function(link)
{
	var filter=JSWorkspace.FindAncestor(link,'[type=filter]');
	var form=filter.select('form')[0];
	
	form.action=Root+'filter/saveas';
	form.submit();
}
Soccer.SearchFilter=function(id)
{
	window.location=Root+'filter/filter/'+id;
}
Soccer.SearchSettingsSave=function(link)
{
	var filter=JSWorkspace.FindAncestor(link,'[type=filter]');
	var form=filter.select('form')[0];
	
	form.action=Root+'filter/save';
	form.submit();
}

Soccer.SearchSettingsDelete=function(link)
{
	var filter=JSWorkspace.FindAncestor(link,'[type=filter]');
	var form=filter.select('form')[0];
	
	window.location=Root+'filter/delete/'+form.elements['filterId'].value;
}




CountryMultiSelect=function(container)
{
	var thisObj=this;
	
	var tmp1=container.readAttribute('values');
	var values=tmp1.split(',');
	
	
	this.onUpdate=function(content,args)
	{
		args.d.update(content);
		
		var prefix=container.readAttribute('namePrefix');

		
		
		args.d.select('[type=hidden]').each(function(o) {

			var id=o.readAttribute('name');
			
			o.writeAttribute('name',prefix+id);
			
			if( o.next()==null )
			{
				return;
			}
			
			var imgObj=o.next().select('img')[0];
			
			
			if( values.inArray(id) )
			{
				o.value='1';
				imgObj.src=RootNL+'assets/img/cb_1.png';
			}
			else
			{
				o.value='0';
				imgObj.src=RootNL+'assets/img/cb_0.png';
			}
		});		
		
		/*
		values.each(function(id) {
			if( id.empty() )
				return;
			var o=args.d.select('[name='+id+']');
			if( o.length==0 )
				return;
			o=o[0];
			
			o.writeAttribute('name',prefix+id);
			
			if( o.next()==null )
			{
				alert('d22:'+id);
				return;
			}
			
			var imgObj=o.next().select('img')[0];
			if( values.inArray(name) )
			{
				o.value='1';
				imgObj.src=RootNL+'assets/img/cb_1.png';
			}
			else
			{
				o.value='0';
				imgObj.src=RootNL+'assets/img/cb_0.png';
			}
		});
		*/
		
	}
	
	this.onClick=function(e)
	{
		var cId=Event.element(e).readAttribute('continentId');
		var columns=Event.element(e).readAttribute('columns');
		
		var div=Event.element(e).up().next();

		if( !div.empty() )
		{
			if( div.visible() )
				div.hide();
			else
				div.show();
			return;
		}	
		
		div.show();
		div.update('<img src="'+RootNL+'assets/img/wait-3.gif"/>');
		
		if( columns==null )
			columns='';

		jsWorkspace.requestGet(Root+'country/filter/'+cId+'/'+columns,null,{d:div,callback:thisObj.onUpdate});
		
	}
	container.select('[type=linkContinent]').each(function(o){o.observe('click',thisObj.onClick)});

}
CountryMultiSelect.Scan=function()
{
	Element.extend(document.body).select('[type=countryMultiSelect]').each(function(o){new CountryMultiSelect(o);});
}


Soccer.SlideUp=function(button,params)
{
	Effect.SlideUp(params.obj,{duration: 0.2});
}

Soccer.ShowBelowDone=function(effect)
{
	GMouseTrapEventManager.add([effect.options.trigger,effect.element],null,null,Soccer.SlideUp,{obj:effect.element},[5,5],false);
}

Soccer.ShowBelow=function(trigger,object)
{
	if( GMouseTrapEventManager==null )
		return;
	if( object.visible() )
		return;
	object.setStyle({top:(trigger.cumulativeOffset()[1]+trigger.getHeight()+1)+'px'});
	object.setStyle({left:(trigger.cumulativeOffset()[0])+'px'});
	
	var tmp1=object.getWidth();
	var tmp2=trigger.getWidth();
	
	if( tmp1<tmp2 )
		object.setStyle({width:tmp2+'px'});
	
	Effect.SlideDown(object,{duration:0.2,afterFinish:Soccer.ShowBelowDone,trigger:trigger});
}


Soccer.MsgSend=function()
{
	if( document.msgForm.elements['msg'].value.empty() ) Soccer.msgError($('errMsg'),Soccer.lang('ids:js_message_body_can_not_be_empty_cap')); else document.msgForm.submit();
}

Soccer.RequestAjaxAfter=function(content,args)
{
	if( args.afterMsg!=null && args.afterMsgObj!=null )
		Soccer.msgOk(args.afterMsgObj, Soccer.lang(args.afterMsg));

	if( args.afterHide!=null )
		args.afterHide.hide();
}
Soccer.RequestAjax=function(args)
{
	
	if( args.confirmText!=null )
	{
		var text=args.confirmText;
		args.confirmText=null;
		Soccer.confirm(text,Soccer.RequestAjax,null,args);
		return;
	}
	
	var obj=new Object();

	if( args.hide )
		args.hide.hide();
	if( args.hideWait )
	{
			
		if( args.hideWaitNr )
			args.hideWait.update('<img src="'+RootNL+'assets/img/wait-'+args.hideWaitNr+'.gif"/>');
		else
			args.hideWait.update('<img src="'+RootNL+'assets/img/wait-1.gif"/>');
		args.hideWait.show();
	}
	
	if( args.afterUrl )
		obj.expression='window.location="'+args.afterUrl+'"';
	if( args.afterRefresh )
		obj.expression='window.location=window.location';
	if( args.afterMsg )
	{
		
		obj.afterMsgObj=args.msgObj;
		obj.afterMsg=args.afterMsg;
	}
		
	obj.afterHide=args.afterHide;
	obj.callback=Soccer.RequestAjaxAfter;

	if( args.formName!=null )
		jsWorkspace.requestPost(args.formName,null,obj);
	else
		jsWorkspace.requestGet(args.url,null,obj);
}


Soccer.AnonsOffer=function(a,id)
{
	var div=Element.extend(a).up();
	Soccer.RequestAjax({hideWait:div,hideWaitNr:2,afterMsg:'ids:js_anons_offer_send_cap',msgObj:div,url:Root+'anons/offer/'+id});
}



var SoccerPay=new Object();


SoccerPay.Step1=function(link)
{
	var wait=Element.extend(link).up().next();
	wait.show();
	jsWorkspace.requestGet(Root+'paypal/step1',null,{wait:wait,callback:SoccerPay.Step1Response});
}
SoccerPay.Step1Response=function(content,args)
{
	if( args.wait!=null )
		args.wait.hide();
}


Soccer.contact=function()
{
	var validator=new Validator({formName:"contact"});
	
	var r=validator.validate();
	
	if( !r.validAll )
		return;
	
	Soccer.RequestAjax({formName:'contact',hideWait:$('contactButton'),msgObj:$('contactButton'),afterMsg:'You message has been sent'});
	
}

Soccer.bannerUpdate=function()
{
	var validator=new Validator({formName:"bannerEdit"});
	
	var r=validator.validate();
	
	if( !r.validAll )
		return;
	
	
	var w=document.bannerEdit.elements['custom_html'].value.escapeHTML();
	document.bannerEdit.elements['custom_html'].value=w;

	document.bannerEdit.submit();
}

