var _ = {
	'active' : false
};

$(document).ready(function(){
	_handle_top_level_expand();
	_handle_sub_level_item();
	_handle_content_popup();
	_handle_about();
	_handle_submit();
});

function _handle_blips(){
	$('.blips a').click(function(){
		if($(this).parent().is('.second')){
			$('p.first').css('display', 'none');
			$('p.second').css('display', 'block');
			$('.blips li').removeClass('current');
			$('.blips li.second').addClass('current');
		}else{
			$('p.second').css('display', 'none');
			$('p.first').css('display', 'block');
			$('.blips li').removeClass('current');
			$('.blips li.first').addClass('current');
		}
		return false;
	});
}

function _handle_submit(){
	$('.nav-submit a').bind('click',
		function(){
			var doc_width = Math.ceil($(window).width() / 2);
			$('#submit-1, #submit-2').css('left', ($(window).scrollLeft() + doc_width)+'px').css('display', 'none');
			$('#submit-1').css('display', 'block');
			return false;
		}
	);

	$('#submit-1 ul li').hover(
		function(){ $(this).css('cursor', 'pointer'); },
		function(){ $(this).css('cursor', 'default'); }
	);

	$('#submit-1 ul li, #submit-1 h5 a, #submit-2 h5 a').bind('click',
		function(){
			if($(this).parent().is('.curr')) return false;
			var inner = $(this).find('div.hover');
			if(inner.length){
				$(this).parent().find('div.hover').css('display', 'none');
				$(this).find('div.hover').css('display', 'block');
				$('#s_window').val($(this).find('input').val());
			}else{
				var doc_width = Math.ceil($(window).width() / 2);
				$('#submit-1, #submit-2').css('left', ($(window).scrollLeft() + doc_width)+'px').css('display', 'block');
				var par = $(this).parent().parent().attr('id');
				if($(this).parent().is('.submit-1')){
					$('#submit-1').css('display', 'block');
					$('#submit-2').css('display', 'none');
				}else{
					$('#submit-2').css('display', 'block');
					$('#submit-1').css('display', 'none');
				}
				return false;
			}
		}
	);
	
	$('#submit-2 #s_t_upload_submit').click(function(){
		$.ajaxFileUpload({
			url:'tpl/json.php?request=submissions.uploadImage&fileElementId=s_t_upload',
			secureuri:false,
			fileElementId:'s_t_upload',
			dataType: 'json',
			success: function (data, status){
				if(!data.error){
					$('#s_image').val(data.filename);
					$('.s_image').css('display', 'block').html('Uploaded successfully');
					$('#s_t_upload, #s_t_upload_submit').css('display', 'none');
				}
			},
			error: function (data, status, e){}
		});
		return false;
	});

	$('#submit-2 form').bind('submit', function(){
		var s_name = $('#s_name').val();
		var s_description = $('#s_description').val();
		var s_nickname = $('#s_nickname').val();
		var s_tel = $('#s_tel').val();
		var s_title = $('#s_title').val();
		var s_email = $('#s_email').val();
		var s_window = $('#s_window').val();
		var s_image = $('#s_image').val();
		var s_website = $('#s_website').val();
		var msg='';

		if(!s_description&&s_description.length<150) msg+='Please enter a description up to a maxium of 150 characters<br />';
		else if(!s_nickname){ msg+='Please enter a nickname<br />'; }
		else if(!s_tel){ msg+='Please enter a telephone number<br />'; }
		else if(!s_title){ msg+='Please enter a title<br />'; }
		else if(!s_email){ msg+='Please enter an email<br />'; }
		else if(!s_window){ msg+='Please choose a window, in step 1<br />'; }
		else if(!s_image){ msg+='Please upload an image<br />'; }
		
		if(msg.length>0){
			$('p.errors').html(msg);
		}else{
			$.getJSON('tpl/json.php?request=submissions.addSubmission&s_name='+s_name+'&s_email='+s_email+'&s_description='+s_description+'&s_nickname='+s_nickname+'&s_tel='+s_tel+'&s_title='+s_title+'&s_tel='+s_tel+'&s_window='+s_window+'&s_image='+s_image+'&s_website='+s_website+'',
				function(data){
					$('#submit-2 form input[type=submit]').attr('disabled', 'disabled');
					$('#submit-2 form').unbind('submit').bind('submit', function(){ return false;});
					$('p.errors').html('Thank you, your entry has been submitted');
				}
			);
		}
		return false;
	});
	
}

function _handle_about(){
	$('.nav-about a').bind('click',
		function(){
			var doc_width = Math.ceil($(window).width() / 2);
			$('#about-box').css('left', ($(window).scrollLeft() + doc_width)+'px')
							.css('display', 'block');
			return false;
		}
	);
}

function _handle_sub_level_item(){
	$('ul#main li.top div.item').hover(
		function(){
			$(this).find('.hover').css('display', 'block');
		},
		function(){
			$(this).find('.hover').css('display', 'none');
		}
	);
	$('ul#main li.windows div.item a, ul#main li.of div.item a').bind('click', _handle_sub_level_item_click);
}

function _handle_content_popup(){
	$('.close-box a').bind('click',
		function(){
			$(this).parent().parent().css('display', 'none')
							.find('.box-content');
			return false;
		}
	);
}

function _handle_content_popup_image(){

	$('#view-image .before').bind('click',
		function(){
			var image_obj = $('#view-image .full-view-image');
			if($(image_obj).is('.window-image')){
				$(image_obj).css('background-image', 'url(inc/img.php/'+$('input[name=submission_image]').val()+'/610/460/contain)')
								.removeClass('window-image');
			}else{
				$(image_obj).css('background-image', 'url(inc/img.php/'+$('input[name=window_image]').val()+'/610/460/contain)')
								.addClass('window-image');
			}
			return false;
		}
	);

	var next = parseInt($('input[name=submission_next]').val());
	var previous = parseInt($('input[name=submission_prev]').val());

	if(next==0){
		$('#view-image .next').fadeTo(300, 0.4);
	}else{
		$('#view-image .next').fadeTo(300, 1);
	}

	if(previous==0){
		$('#view-image .previous').fadeTo(300, 0.4);
	}else{
		$('#view-image .previous').fadeTo(300, 1);
	}

	$('#view-image .next').bind('click',
		function(){
			if(next>0){
				$.getJSON("tpl/json.php?request=submissions.getSingle&s_id="+next,
					function(data){
						$('#view-image .box-content').html(data.html);
						_handle_content_popup_image();
					}
				);
			}
			return false;
		}
	);

	$('#view-image .previous').bind('click',
		function(){
			if(previous>0){
				$.getJSON("tpl/json.php?request=submissions.getSingle&s_id="+previous,
					function(data){
						$('#view-image .box-content').html(data.html);
						_handle_content_popup_image();
					}
				);
			}
			return false;
		}
	);
	_handle_blips();
}

function _handle_sub_level_item_click(){
	$('#view-image .box-content').html('');
	var doc_width = Math.ceil($(window).width() / 2);
	$('#view-image').css('left', ($(window).scrollLeft() + doc_width)+'px');
	$('#view-image').css('display', 'block');
	var s_id = $(this).parent().find('input[name=submission_id]').val();
	$.getJSON('tpl/json.php?request=submissions.getSingle&s_id='+s_id,
		function(data){
			$('#view-image .box-content').html(data.html);
			_handle_content_popup_image();
		}
	);
	return false;
}

function _handle_top_level_expand(){
	$('ul#main li.top a.main, div#nav .actions a').bind(
		'click',
		function(){
			if(_['active']) return false;
			_['active']=true;
			if($(this).parent().is('.windows')){
				var classname = 'windows';
			}else if($(this).parent().is('.of')){
				var classname = 'of';
			}else if($(this).parent().is('.opportunities')){
				var classname = 'opportunities';
			}

			var top_list = $('ul#main').find('li.'+classname);
			var contents_width = $(top_list).find('ul').outerWidth(true);
			if($(top_list).is('.expanded')){
				$(top_list).removeClass('expanded');
				$(top_list).find('ul.sub').fadeOut(300, function(){
					$(top_list).animate({'width': '-='+contents_width+'px'}, 500,
						function(){
							_['active']=false;
							$('ul#main').animate({'width': '-='+contents_width+'px'}, 300);
						}
					);
				});
			}else{
				$(top_list).addClass('expanded');
				var contents_width = $(top_list).find('ul').outerWidth(true);
				$('ul#main').animate({'width': '+='+contents_width+'px'}, 300);
				$(top_list).animate({'width': '+='+contents_width+'px'}, 500,
					function(){
						$(top_list).find('ul.sub')
									.fadeIn(300, function(){
										var pos = $(this).offset();
										$('html,body').animate({scrollLeft: (pos.left-625)+'px'}, 500);
										_['active']=false;
									});
					}
				);
			}
			return false;
		}
	);	
}