// JavaScript Document
var validate_messages={};
var open_upload=false;
var debug=function(s){if(window.console)console.log(s);};
var dialog_rounded=null;
var close_dialogs;
 (function($){ 
		$.fn.focusBlurInputs = function(){
			inputs=$(this).filter('input[type=text],textarea');;
			
			return this.each(function(i,item){
					
					input=$(item);
					if(input.val()){
					if(input.attr('title')){
						input.focus(function(){
							_this=$(this);
							if(_this.val()==_this.attr('title'))
							_this.val('');				   
						});
						
						input.blur(function(){
							_this=$(this);
							if(_this.val()=='')
							_this.val(_this.attr('title'));				   
						});
					}
					}
			 });
		}
			
	})(jQuery);  
 	//end of focusBlurInputs plugin

(function($){
$(document).ready(function(){
	debug('ready');
	$.validator.addMethod("phone", function(phone_number, element) {
	var phone_filter=/^([0-9-\(\)\s]){8,}$/;
	return this.optional(element) || phone_filter.test(phone_number);
	}, "Please enter a valid phone number");
	
	$('input[type=text]','#send-to-friend').focusBlurInputs();
	$('input[type=text],input[type=password]','#login').focusBlurInputs();	
	//$('input[type=text],input[type=password],textarea','#register-form').focusBlurInputs();	
	var alert_overlay=$('<div/>',{'class':'alert-overlay'});
	var _page=$('#page');
	var _body=$('body');
	_body.delegate('.popup-trigger','click',function(){
		target=($(this).attr('href'));
		$(this).after(alert_overlay);
		if(target!='#'){
		target=(target.match(/#.+$/))[0];
		$(target).show();
		alert_overlay.show(); 
		_page.addClass('static');
	
		}
	return false});
	_body.delegate('.close','click',function(){
			_page.removeClass('static');alert_overlay.remove();$(this).parent().hide();  return false;});
	
	var open_dialogs=Array(),external=$('#external');

	close_dialogs=function(){for(i in open_dialogs)open_dialogs[i].dialog('destroy');}
	var dialog=function(a,o){
		
		if(a.addClass)a.addClass('loading');
		
		if(a.attr)
		target=(a.attr('href'));
		else
		target=a;
		internal=target.match(/#.+$/);
		close_dialogs();
		if(target!='#'){
			
			
			if(internal){
				target=(target.match(/#.+$/))[0];
				open_dialogs.push($(target).dialog(o));
				if(dialog_rounded)dialog_rounded();
				if(a.removeClass)a.removeClass('loading');
			}//end if internal
			else{
				
			$.get(target,{},function(data){
									 
									 external.empty().append(data);
									// external.find('.ajax-result').empty();
									 open_dialogs.push(external.dialog(o));
									if(dialog_rounded)dialog_rounded();
									if(a.removeClass)a.removeClass('loading');
									 });
			}//end else
			
		}//end if target
		
		
		return false;
	}
	//$('a','.thumbnails ul').click(function(){dialog($(this),{width:800,modal:true})});
	var my_photos=$('#my-photos');
	my_photos.delegate('.delete','click',function(){dialog($(this),{modal:true});return false;});
	my_photos.delegate('.edit,.upload','click',function(){
											
											dialog($(this),{width:800,modal:true}); return false;});
	
	
	
	if(open_upload)
		$('.upload',my_photos).click();
		
	$('.modal').click(function(){dialog($(this),{})});
	
	var  reg_form=$('#register-form'),$step=$('#step',reg_form);
	var legends_ol=$('ol','#legends'), legends_li,leg,rel,steps=$('.step','#register-form');
	
	
	var validate=function(form){
		var input,no_error=true,_input_p,error;		
		var email_filter=/^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/;
		var phone_filter=/^([0-9-\(\)\s]){8,}$/;
		form.find('.req').each(function(ind,obj){
			input=$(this);
			error=false;
			_input_p=input.parent()
			_input_p.removeClass('error').find('span.error').remove();
			
			if(input.val()==='')
				error=true;
			else{
				if(input.attr('type')=='checkbox'){
					if(!input.is(':checked'))
						error=true;
				}
				if(input.attr('type')=='password'){
					if((input.val()).length<input.attr('minlength'))
						error=true;
				}
				if(input.hasClass('email')){
					if(!email_filter.test(input.val()))error=true;
				}
				if(input.hasClass('phone')){
					if(!phone_filter.test(input.val()))error=true;
				}
				}
			if(error){
				_input_p.addClass('error').append('<span class="error">*</span>');
				no_error=false;
			}
			
		});
		
		return no_error;
	}
	var ajax_result=$('#ajax-result');
	
	var before_submit=function(formData, jqForm, options){
		/*var step=($step.val()).toLowerCase();
		debug(formData);
		debug(step in formData);
			formData.push({name:'step',value:step});*/
		
		
		valid=true;

		jqForm.addClass('loading').removeClass('success');
		valid=jqForm.validate({errorElement:'span'
							 })
					.form();
		ajax_result.empty();
		if(!valid){
		jqForm.removeClass('loading');
		//is_upload_form
		if(jqForm.is('#upload-form')){
			if(jqForm.validate().numberOfInvalids()=='1'&&!jqForm.validate().element('#photoupload-agree'))
				$('.popup-trigger',jqForm).click();
		}
		
		
		}
		return valid;
	}
	
	
	var after_submit=function(responseText, statusText, xhr, $form){
		$form.removeClass('loading').addClass(statusText);
		
		var update_thumbs=true;
		click_upload_flag=false;
		if(update_thumbs){
			refresh_thumbs('#my-photos');
			
		}
		
		if(ajax_result.text()!=''){
			
		dialog('#ajax-result',{width:400,modal:true});}
	}
	var refresh_thumbs=function(toload){
		var $toload=$(toload),
			rel=$toload.attr('rel');
		var random_num=Math.floor(Math.random()*100+1);
			rel=rel+'/'+(random_num);
		
		$('body > #upload-photo').remove();
		$toload.addClass('loading').load(rel,function(){$toload.removeClass('loading');$('body > #upload-photo').remove();});
	}
	$('#login').bind('submit', function() {
		return validate($(this));
			
		});
	
	
	var t_id;
	
	var edit_delete_form_submit_handler=function(){
			F=$(this);
			t='#ajax-result';	
			if(F.hasClass('edit-form')){
				t='#ajax-result';	
			}
			
			F.ajaxSubmit({
				target: t,
				beforeSubmit:  before_submit,  // pre-submit callback 
        		success:       after_submit  // post-submit callback 
			
			});
			return false; // <-- important!												  
	
	
	};
	_body.delegate('.edit-form,.delete-form','submit',edit_delete_form_submit_handler);
	if(document.all)
		$('.edit-form,.delete-form').live('submit',edit_delete_form_submit_handler);
	
	var click_upload_flag=false;
	var upload_form_submit_handler= function() {
			click_upload_flag=true;
			$(this).ajaxSubmit({
				target: '#ajax-result',
				beforeSubmit:  before_submit,  // pre-submit callback 
        		success:       after_submit , // post-submit callback 
				resetForm:true
			});
			return false; // <-- important!
		};
	_body.delegate('#upload-form','submit',upload_form_submit_handler);
	
	if(document.all)
		$('#upload-form').live('submit',upload_form_submit_handler);
	
	var agree_check=function() {
			chk=$(this);
			if(chk.is(':checked')) chk.parent().siblings('a.close').click();
			debug(click_upload_flag);
			if(click_upload_flag) $('#upload-form').submit();
		}
	_body.delegate('#photoupload-agree,#rules-agree','change',agree_check );
	if(document.all)/*FOR IE*/
		_body.delegate('#photoupload-agree,#rules-agree','click',agree_check );
	
	$('#send-to-friend').submit(function(){
	$(this).ajaxSubmit({
				target: '#send-result',
				beforeSubmit:  before_submit,  // pre-submit callback 
        		success:       after_submit  // post-submit callback 
				//resetForm:true
			});
			return false; // <-- important!
	
	});
	//$('#register-form').validate({errorElement:'span'});
	var _form,_general_error,reg_valid;
	reg_form.bind('submit', function() {
		_form=$(this);
		_general_error=_form.find('.buttons >.general_error');
		_general_error.hide();
		reg_valid=_form.validate({errorElement:'span'}).form();
		if(!reg_valid){debug('reg_valid');_general_error.show();}
		return reg_valid;
			
		});
	//$("select, :radio, :checkbox").uniform({selectClass: "select-state", focusClass: "focus-state"});
	var nav=$('#nav'),an;
	$('li',nav).each(function(){
		_li=$(this);
		if(_li.children('ul').length){
			
			_li.addClass('parent')
			//.children('a').click(function(){$(this).next().toggle(); return false;})
			;
		}
							  
	});
	var toggle_nav=function(){
			if(nav.hasClass('open')) an={width:0}; else an={width:280};
			nav.stop().animate(an,500,function(){nav.toggleClass('open')}); 
		return false;								 
	};
	nav.hover(function(){toggle_nav()},function(){toggle_nav()});
	
	//$('.menu',nav).click(toggle_nav);
	
	var _filter_topic=$('#filter-topic');
	var _topics=$('option',_filter_topic)
		,_ext=_topics.filter('.ext')
		,_int=_topics.filter('.int')
		,_topic,_selected;
	var hide_int=function(){_int.each(function(){$(_int.val()).hide();});}
	//hide_int();
	
	$('#filter-topic').change(function(){
		//hide_int();
		_topic=$(this).find(':selected');
		if(_topic.hasClass('ext')) {if($(this).val())window.location=$(this).val();}
		else $(_topic.val()).show();
									   
	});
	
	//$(this).bind("contextmenu", function(e) {e.preventDefault();});
	 _body.delegate('.ui-widget-overlay,.alert-overlay','click',function(){
			$('.alert,.popup').filter(':visible').find('.close').click();
			close_dialogs();
			});
	 $('.photo','.photo-details').hover(function(){$(this).prev().fadeIn('fast');},function(){$(this).prev().fadeOut('fast');});
	 var diff,_wrap=$('#wrap'); var offset = _wrap.offset();
		var wrap_bottom_offset= (offset.top+_wrap.height());
		
		var nav_offset,nav_bottom_offset,nav_height=nav.height();
		
	 $(window).scroll(function(){
		
		nav_offset=nav.offset();
		diff=$(window).scrollTop();
		nav_bottom_offset=parseInt(nav_offset.top)+parseInt(nav_height)+parseInt(diff);	
		if(nav_bottom_offset<wrap_bottom_offset)
		nav.stop().animate({top:diff},'medium',function(){});
		});
	 
});//end ready
})(jQuery);//end anonymous call