var settings = {
	debug:0	
};


success = function(response, status){
	if(response.message) {
		if(!response.delay) {
			frontend.message(response.message);
		}
		else {
			frontend.message(response.message, parseInt(response.delay));
		}
	}
	if(response.update) {
		if(typeof(response.update)=='array'||typeof(response.update)=='object') {
			for(var i=0; i<response.update.length; i++) {
				$('#'+response.update[i]).html(response.content[i]);
				frontend.init(response.update[i]);
			}
		}
		else {
			$('#'+response.update).html(response.content);
			frontend.init(response.update);
		}
	}
	if(response.clear) {
		$('#'+response.clear+' :input').val('');
		//$('#'+response.clear+' :password').val('');
	}
	if(response.mceclear) {
		var ed = tinymce.EditorManager.get(response.mceclear);
		if(typeof(ed) != undefined){
			ed.setContent('');
		}
	}
	if(response.url) {
		if(!settings.debug){
			if(!response.delay) {
				setTimeout(function(){window.location = response.url;}, 1000);
			}
			else {
				setTimeout(function(){window.location = response.url;}, parseInt(response.delay));
			}
		}
	}
	if(settings.debug) {
		console.debug(response);
	}
};

var frontend = {
	message: function(msg, delay){
		$('#message').html(msg);
		document.getElementById('message').style.display = 'block';
		if(!delay){
			setTimeout(function(){$('#message').hide();}, 2000);
		}
		else {
			setTimeout(function(){$('#message').hide();}, delay);
		}
	},

/*	mce: {
		init: function(inst){
			inst.onChange.add(function(inst) {
				document.getElementById(inst.id).value = inst.getContent();
			});
		}
	},*/
		
	init: function(block){
		if(block != null) {
			block = '#' + block + ' ';
		}
		else {
			block = '';
		}
		
		$(block + '#message').click(function(){
			$('#message').hide();
		});
	
		$(block + '.down').click(function(){
			var el = document.getElementById('drop');
			if(el.style.display == 'none') {
				el.style.display = 'block';
			}
			else {
				el.style.display = 'none';
			}
		});
		
		$(block + '.ajaxSubmit').submit(function(){
			for (n in tinyMCE.editors) {
			    var inst = tinymce.EditorManager.get(n);
		    	document.getElementById(inst.id).value = inst.getContent();
			}
			frontend.forms.ajax(this);
			return false;
		});
		
		$(block + '.ajaxLink').click(function(){
			frontend.links.ajax(this);
			return false;
		});
		

		
		if(document.getElementById('displayArea')) {
			var api = $(block + "div.scrollable").scrollable({vertical:true, size: 3, items: '.items'});
			$(block + "#cdraw").click(function(){
				$(block + "#cform").show();
			});
			$(block + "#ccancel").click(function(){
				$(block + "#cform").hide();
				$(block + "#ctext").val('');
				return false;
			});
		}
		
		if(document.getElementById('regForm')) {
			$(block + '.selectMultiple').mousedown(function(){
				if($(this).attr('selected')){
					$(this).removeAttr('selected');
				}
				else{
					$(this).attr('selected', 'selected');
				}
				return false;
			});
			$(block + '.other').blur(function(){
				if(this.value){
					$(this).clone(true).insertAfter(this).val('');
					var e_name = this.name.substr(0, this.name.length-2);
					if($("input[name='"+e_name+"']").val()){
						$("input[name='"+e_name+"']").val($("input[name='"+e_name+"']").val()+','+this.value);
					}
					else {
						$("input[name='"+e_name+"']").val(this.value);
					}
				}
			});
			
			$(block + '#checkAvaibility').click(function(){
				frontend.forms.options.url = document.getElementById('regForm').action + 'check/1';
				$('#regForm').ajaxSubmit(frontend.forms.options);
			});
			$(block + '#paP').click(function(){
				document.getElementById('pictureAccess').value = "P";
				$(block + '#paP > img').attr('src', $(block + '#paP > img').attr('src').replace('gr_','col_'));
				$(block + '#paC > img').attr('src', $(block + '#paC > img').attr('src').replace('col_','gr_'));
				$(block + '#paE > img').attr('src', $(block + '#paE > img').attr('src').replace('col_','gr_'));
			});
			$(block + '#paC').click(function(){
				document.getElementById('pictureAccess').value = "C";
				$(block + '#paP > img').attr('src', $(block + '#paP > img').attr('src').replace('col_','gr_'));
				$(block + '#paC > img').attr('src', $(block + '#paC > img').attr('src').replace('gr_','col_'));
				$(block + '#paE > img').attr('src', $(block + '#paE > img').attr('src').replace('col_','gr_'));
			});
			$(block + '#paE').click(function(){
				document.getElementById('pictureAccess').value = "E";
				$(block + '#paP > img').attr('src', $(block + '#paP > img').attr('src').replace('col_','gr_'));
				$(block + '#paC > img').attr('src', $(block + '#paC > img').attr('src').replace('col_','gr_'));
				$(block + '#paE > img').attr('src', $(block + '#paE > img').attr('src').replace('gr_','col_'));
			});
			$(block + '#selStates').change(function(){
				$.ajax({success:success, type: 'get', dataType: 'json', url: document.getElementById('regForm').action + 'ajax_state/' + $('#selStates option:selected').val()});
				$('#selCounties').removeAttr('disabled');
			});
		}
		
		if(document.getElementById('eventForm')) {
			$(block + "#startDate").datepicker({ dateFormat: 'mm-dd-yy' });
			$(block + '#selStates').change(function(){
				$.ajax({success:success, type: 'get', dataType: 'json', url: document.getElementById('eventForm').action + 'ajax_state/' + $('#selStates option:selected').val()});
				$('#selCounties').removeAttr('disabled');
			});
		}
		
		if(document.getElementById('commForm')) {
			$(block + '#selStates').change(function(){
				$.ajax({success:success, type: 'get', dataType: 'json', url: document.getElementById('commForm').action + 'ajax_state/' + $('#selStates option:selected').val()});
				$('#selCounties').removeAttr('disabled');
			});
		}
		
		if(document.getElementById('current_community')) {
			$(block + '#current_community').change(function(){
				$.ajax({success:success, type: 'get', dataType: 'json', url: document.getElementById('curr_comm_form').action + 'ajax/1/current_community/' + $('#current_community option:selected').val()});
			});
		}
		
		if(document.getElementById('videoplayer')){
			flowplayer("videoplayer", baseUrl+"/public/player/flowplayer-3.0.7.swf", {
				clip: {
					autoPlay: false,
					autoBuffering: true
				}
			});
		}
		
		if(document.getElementById('checkall')){
			$(block + '#checkall').click(function(){
				if(document.getElementById('checkall').checked){
					$('.ch').attr('checked', 'checked');
				}
				else {
					$('.ch').removeAttr('checked');
				}
			});
		}
	},

	forms: {
		options:{
	        beforeSubmit:  function(formData, jqForm, options){
				/*if(document.getElementById('reg_form')){
					var oth_h = document.getElementByName('other_hobbies_i');
					var oth_b = document.getElementByName('other_behaviors_i');
					var oth_i = document.getElementByName('other_interventions_i');
					var oth_f = document.getElementByName('other_factors_i');
				}*/
			},
			success:	success,
			error:		function(XMLHttpRequest, textStatus, errorThrown){
				if(settings.debug){
					frontend.message('Sorry, some error occured...');
					console.debug(textStatus);
					console.debug(errorThrown);
				}
			},
			type:      'post', 
			dataType:  'json' 
		},
		
		ajax: function(form){
			frontend.forms.options.url = form.action;
			$(form).ajaxSubmit(frontend.forms.options);
		}
	},
	
	links: {
		options:{
			success:	success,
			type:      'post', 
			dataType:  'json' 
		},
		
		ajax: function(link){
			frontend.links.options.url = link.href;
			$.ajax(frontend.links.options);
		}
	}
};


$(document).ready(function(){
	frontend.init();
});