
var index = webroot+"/server.php?";

Ajax.Responders.register({
	onComplete: function(request, response) {
	   // alert(response.responseJSON._m);
	    if(response.responseJSON.popup == undefined)
	    {
	    	showMsg(response.responseJSON._m, null);
	    }
	    else {	    	    	
	    	showMsg(response.responseJSON._m, response.responseJSON.popup);
	    }
	}
});

function showForm(d) {
	//$(d + '_content').appear();
	//$(d + '_form_frame').hide();
	if($(d + '_form_frame').visible() && $(d + '_form_close').visible())
	{
		Effect.Fade(d + '_form_frame', 
				{	duration: 1, 
					//from: 1, 
					to:0.01,
					afterFinish: function() 
					{	
						$(d + '_content_frame').appear();						
						setTimeout("$('"+d+"_form_frame').hide()", 200);
						
					}
				}
		);
	}
	else {
		$(d + '_form_frame').appear();
		//$(d + '_content_frame').hide();
		Effect.Fade(d + '_content_frame',{duration:0.2, from:1, to:0.01});
		setTimeout("$('"+d+"_content_frame').hide()", 200);
	}
}

function editForm(d) {
	$(d + '_content_frame').toggle();
	$(d + '_form_frame').toggle();
}

function closeForm(d) {
	Effect.ScrollTo(d + '_frame', { duration: 1, offset: -15 } );
	Effect.Fade(d + '_form_frame', 
				{	duration: 1, 
					//from: 1, 
					to:0.01,
					afterFinish: function() 
					{	
						$(d + '_content_frame').appear();						
						setTimeout("$('"+d+"_form_frame').hide()", 200);
						
					}
				}
	);
}

function saveForm(f) {
	
	var data = $(f + '_form').serialize(true);
	new Ajax.Request(index, {
  		method: 'get',
  		parameters: {f:'saveForm', s:session, form:f, data:Object.toJSON(data)},
  		onSuccess: function(transport) {
  			jd = transport.responseJSON;   			
  			if (jd.status == 1) {  		
  				Effect.ScrollTo(f + '_frame', { duration: 1, offset: -15 } );
  				Effect.Fade( f + '_frame', 
  							{	duration: 1, 
  			  					//from: 1, 
  			  					to:0.01,
  			  					afterFinish: function() 
  			  					{  									 
  									$(f + '_frame').update(jd.code.content);
  									$(f + '_frame').appear();
  									
  									if ($(f + '_form_close'))
  										$(f + '_form_close').appear();
  									//setTimeout("$('"+f+"_form_frame').hide()", 200);
  			  					}
  							}
				);
  				
  			} 
  			else if (jd.deactivateAccount == 1) {  
  				location.href = "http://www.partnervermittlung.de";
  			}
  			else {  				
  				/*$('fe_login_form').addClassName('error');*/	
  				$(f + '_form_close').hide();
  			}
  			
        }
    });
}

function axSendGirlContact(gid) {
	$('bContact').hide();
	$('info_content_frame').hide();
	
	var data = $('up_contact_form').serialize(true);
	
	showLoading('info_form_frame');
	new Ajax.Request(index, {
  		method: 'get',
  		parameters: {f:'sendGirlContact', s:session, gid:gid, data:Object.toJSON(data)},
  		onSuccess: function(transport) {
  			jd = transport.responseJSON;   			
  			if (jd.status == 1) {
  				$('info_form_frame').hide();
	  			$('info_form_frame').update(jd.code.content);	  			
	  			$('info_form_frame').appear();
	  			
	  			$('girl_action_container').hide();
	  			$('girl_action_container').update(jd.code.message);	  
	  			$('girl_action_container').appear();
	  			
	  			
  			} else {  				
  				//$('fe_login_form').addClassName('error');	  				
  			}
  			
        }
    });
	
}

function axShowMessageComplete(mid) {

	if ($('read_message_'+mid).visible())
	{
		$('read_message_'+mid).fade();
	}
	else
	{
	
		$('read_message_'+mid).show();
		showLoading('read_message_'+mid);
		
		setTimeout(function(){ 
		
		new Ajax.Request(index, {
	  		method: 'get',
	  		parameters: {f:'showMessageComplete', s:session, mid:mid},
	  		onSuccess: function(transport) {
	  			jd = transport.responseJSON;   			
	  			if (jd.status == 1) {
		  			$('read_message_'+mid).update(jd.code.message);	  
	  			} else {  				
	  				//$('fe_login_form').addClassName('error');	  				
	  			}
	  			
	        }
	    });
		
		}, 500);
	}
	
}




function showLoading(id)
{
	//$(id).addClassName('loading');	
	$(id).insert( { bottom: '<div class="loading"></div>' } ); 
}

function axResendActivation() {
	
	new Ajax.Request(index, {
  		method: 'get',
  		parameters: {f:'resendActivation', s:session},
  		onSuccess: function(transport) {
  			//jd = transport.responseJSON; 
  		}
    });
}

function asShowPasswordForget() 
{
	new Ajax.Request(index, {
  		method: 'get',
  		parameters: {f:'showPasswordForget', s:session},
  		onSuccess: function(transport) {
  			jd = transport.responseJSON;   			
  		
  			$('cu_menu').hide();
	  		$('cu_menu').update(jd.code.content);	  			
	  		$('cu_menu').appear();
        }
    });
}

function asShowMemberLogin() 
{
	new Ajax.Request(index, {
  		method: 'get',
  		parameters: {f:'showMemberLogin', s:session},
  		onSuccess: function(transport) {
  			jd = transport.responseJSON;   			
  		
  			$('cu_menu').hide();
	  		$('cu_menu').update(jd.code.content);	  			
	  		$('cu_menu').appear();
        }
    });
}

function axPasswordForget(form) 
{
	var data = $(form).serialize(true);

	new Ajax.Request(index, {
  		method: 'get',
  		parameters: {f:'passwordForget', s:session, data:Object.toJSON(data)},
  		onSuccess: function(transport) {
  			jd = transport.responseJSON;   			
  		
  			$('cu_menu').hide();
	  		$('cu_menu').update(jd.code.content);	  			
	  		$('cu_menu').appear();
        }
    });
}

function axShowContactForm(gid) 
{
	if(typeof scForm == 'undefined') scForm = true;
	else return false;
	
	$('info_content_frame').hide();
	$('info_form_frame').show();
	$('bContact').addClassName('inactive');
	
	showLoading('info_form_frame');
	new Ajax.Request(index, {
  		method: 'get',
  		parameters: {f:'showContactForm', s:session, gid:gid},
  		onSuccess: function(transport) {
  			jd = transport.responseJSON;   			
  			if (jd.status == 1) {
  				//setTimeout("", 5500);
  				$('info_form_frame').hide();
	  			$('info_form_frame').update(jd.code.content);	  			
	  			$('info_form_frame').appear();
  			} else {  				
  				//$('fe_login_form').addClassName('error');	  				
  			}
  			
        }
    });
}

function axAddGirlToAlbum(id) {
	
	new Ajax.Request(index, {
  		method: 'get',
  		parameters: {f:'addGirlToAlbum', s:session, id:id},
  		onSuccess: function(transport) {
  			jd = transport.responseJSON;   			
  			if (jd.status == "1") {
  				$('girl_action_album').fade();
  			} else {  				
  				//$('fe_login_form').addClassName('error');	  				
  			}
  			
        }
    });
}

function axDelGirlFromAlbum(id) {
	if (confirm("Dame wirklich löschen?"))
	{
		new Ajax.Request(index, {
	  		method: 'get',
	  		parameters: {f:'delGirlFromAlbum', s:session, id:id},
	  		onSuccess: function(transport) {
	  			jd = transport.responseJSON;   			
	  			if (jd.status == "1") {
	  				if ($('girl_'+id))
	  					$('girl_'+id).fade();
	  				if ($('girl_action_album'))
	  					$('girl_action_album').fade();
		  			
	  			} else {  				
	  				//$('fe_login_form').addClassName('error');	  				
	  			}
	  			
	        }
	    });
	}
}

function axLogin(fid) {		
	var data = $(fid).serialize(true);
	new Ajax.Request(index, {
  		method: 'get',
  		parameters: {f:'login', s:session, data:Object.toJSON(data)},
  		onSuccess: function(transport) {
  			jd = transport.responseJSON;   			
  			if (jd.status == 1) {
  				location.href=jd.url;
  				/*
  				$('cu_menu').hide();
	  			$('cu_menu').update(jd.code.content);	  			
	  			$('cu_menu').appear();
	  			*/
  			} else {  		
  				if(fid=='fe_login_form2') displayErrors('', jd.errors);  		
  				else $(fid).addClassName('error');	  				
  			}
  			
        }
    });
}



function axLogout() {
	new Ajax.Request(index, {
  		method: 'get',
  		parameters: {f:'logout', s:session},
  		onSuccess: function(transport) {
  			jd = transport.responseJSON;   			
  			if (jd.status == 1) {  				
  				location.href=jd.url;
  			} 
        }
    });
}

function axRegister(rtype) {
	var data = $('up_account_form').serialize(true);
	
	if (data.accept_agb)
	{
		new Ajax.Request(index, {
	  		method: 'get',
	  		parameters: {f:'register', s:session, data:Object.toJSON(data)},
	  		onSuccess: function(transport) {
	  			jd = transport.responseJSON;   			
	  			if (jd.status == 1) {  		
	  				location.href=jd.url;
	  			} 
	  			else {
	  				displayErrors('', jd.errors);  				
	  			}
	        }
	    });
	} else
		alert("Bitte AGB und Datenschutz akzeptieren!");
}

function axSendContactForm() {
	var data = $('up_contact_form').serialize(true);
	new Ajax.Request(index, {
  		method: 'get',
  		parameters: {f:'contact', s:session, data:Object.toJSON(data)},
  		onSuccess: function(transport) {
  			jd = transport.responseJSON;   			
  			if (jd.status == 1) {  		
  				location.href=jd.url;
  			} 
  			else {
  				displayErrors('', jd.errors);  				
  			}
        }
    });
}

function sendGirlSearchForm() {
	document.fe_girlsearch.submit();
}

function clearError(element) {
	//alert(element.name);
	var label = $$('label[for='+element.name+']');
	var edit = element.name+"_edit";
	
	if ($(edit)) 	$(edit).remove();
	if (label[0]) 	
	{
		Element.writeAttribute(label[0], 'title', '');
		label[0].removeClassName('error');
	}
	if (element)
	{
		element.removeClassName('error');
		element.onfocus =  function () { };
	}
}

function displayErrors(elements, errors){
	
	/*
	elements.each(function(element) {
			
	//	var label = $$('LABEL[rel='+element+']');
		var label = $$('label[for='+element+']');
       	var edit = element+"_edit";
	
		if ($(edit)) 	$(edit).remove();
		if ($(element)) $(element).removeClassName('error');
		
		if (label[0]) 	Element.writeAttribute(label[0], 'title', '');
		if (label[0]) 	label[0].removeClassName('error');
	});
	*/
       
    if (errors)
       {
       	var e = new Hash(errors);
       	
       	//GLog.write(Object.toJSON(e));
       	
       	e.each(function(pair) {
       		var element = pair.key;
       		var label = $$('label[for='+element+']');
       		var edit = element+"_edit";
       	
 				if ($(element)) 
 				{
 					$(element).addClassName('error');
 					//alert($(element).name);
 					$(element).onfocus = function () { clearError(this) };
 				}
 					
 				if (label[0]) 
 				{
 					label[0].addClassName('error');
 				
 					var code = "<img src=\""+webroot+"/inc/bilder/icons/mini-alert.png\" id=\""+edit+"\" />";
 				
 					if (!$(edit))
 						Element.insert(label[0], {top: code});
 				
 					Element.writeAttribute(label[0], 'title', pair.value);
 				}
		});
		
		return false;
       }
       
       return true;
	}