var open_menu = 0;

var pending_images = [];

var pending_links = [];

var pending_crop_img;

var pending_crop_id;

var pending_error = false;

var pending_error_content = {};

var pending_param = '';

var categoryList = [];

var reelsCategoryList = [];

var pending_param_delete = '';

var uploads_in_progress = 0;

var slideshow_type = "automatic";

var isValid = true;

var selected_package = '';

var pkg_name = '';

var cart_total = 0;

var pkg_term = '';

var selected_store = '';

//global functions

var AdminActions =	{ 
	
	'quick_help':{ bcrumb: 'Edit Mode', ele_id: 'quick_help'},
	'uname_passwd':{ bcrumb: 'Account Settings / Username Password',  ele_id: '7|1'},
	'email':{ bcrumb: 'Account Settings / Change Email',  ele_id: '7|2'},
	'personal_info':{ bcrumb: 'Account Settings / Personal Info',  ele_id: '7|3'},
	'billing_info':{ bcrumb: 'Account Settings / Billing Info',  ele_id: '7|4'},
	'payment_history':{ bcrumb: 'Account Settings / Payment History',  ele_id: '7|5'},
	'send_reel':{ bcrumb: 'Account Settings / Send Reel',  ele_id: '7|7'},
	'storage_monitor':{ bcrumb: 'Account Settings / Storage Monitor',  ele_id: '7|9'},
	'cancel':{ bcrumb: 'Account Settings / Cancel Account',  ele_id: '7|8'},
	'upgrade_package':{bcrumb: 'Upgrade Package', ele_id: '8|1'},
	
	//home
	
	'home_privacy':{ bcrumb: 'Home / Manage Privacy',  ele_id: '1|1'},
	'home_slideshow':{ bcrumb: 'Home / Manage Slideshow',  ele_id: '1|2'},
	'home_slideshow_manual':{ bcrumb: 'Home / Manage Slideshow / Manual',  ele_id: '1|2'},
	'home_slideshow_add':{ bcrumb: 'Home / Manage Slideshow / Manual / Add',  ele_id: '1|2'},
	'home_slideshow_edit':{ bcrumb: 'Home / Manage Slideshow / Manual / Edit',  ele_id: '1|2'},
	'home_blog_fix':{ bcrumb: 'Home / Manage Blog',  ele_id: '1|3'},
	'home_add_blog':{ bcrumb: 'Home / Manage Blog / Add Blog',  ele_id: '1|3'},
	'home_edit_blog':{ bcrumb: 'Home / Manage Blog / Edit Blog',  ele_id: '1|3'},
	
	//reels
	
	'reels_privacy':{ bcrumb: 'Reels / Manage Privacy',  ele_id: '2|1'},
	'reels_cats':{ bcrumb: 'Reels / Manage Categories',  ele_id: '2|2'},
	'reels_projects':{ bcrumb: 'Reels / Manage Projects / {reelscategory}',  ele_id: '2|3'},
	'reels_add_cat':{ bcrumb: 'Reels / Manage Categories / Add Category',  ele_id: '2|2'},
	'reels_edit_cat':{ bcrumb: 'Reels / Manage Categories / Edit Category',  ele_id: '2|2'},
	'reels_projects_edit':{ bcrumb: '<a href="javascript: GFAload(\reels_projects\')">Reels / Manage Projects / {reelscategory}</a> / Edit Project',  ele_id: '2|3'},
	'reels_projects_add':{ bcrumb: '<a href="javascript: GFAload(\'reels_projects\')">Reels / Manage Projects / {reelscategory}</a> / Add Project',  ele_id: '2|3'},
	
	//stills
	'stills_cats':{ bcrumb: 'Stills / Manage Categories',  ele_id: '3|2'},
	'stills_projects':{ bcrumb: 'Stills / Manage Projects / {category}',  ele_id: '3|3'},
	'stills_projects_add2':{ bcrumb: '<a href="javascript: GFAload(\'stills_projects\')">Stills / Manage Projects / {category}</a> / Add Project / Add Stills',  ele_id: '3|3'},
	'stills_projects_add':{ bcrumb: '<a href="javascript: GFAload(\'stills_projects\')">Stills / Manage Projects / {category}</a> / Add Project',  ele_id: '3|3'},
	'stills_add_cat':{ bcrumb: 'Stills / Manage Categories / Add Category',  ele_id: '3|2'},
	'stills_edit_cat':{ bcrumb: 'Stills / Manage Categories / Edit Category',  ele_id: '3|2'},
	'stills_privacy':{ bcrumb: 'Stills / Manage Privacy',  ele_id: '3|1'},
	'stills_projects_edit':{ bcrumb: '<a href="javascript: GFAload(\'stills_projects\')">Stills / Manage Projects / {category}</a> / Edit Project',  ele_id: '3|3'},
	'stills_projects_edit2':{ bcrumb: '<a href="javascript: GFAload(\'stills_projects\')">Stills / Manage Projects / {category}</a> / Edit Project / Edit Stills',  ele_id: '3|3'},
	
	//resume
	
	'resume_privacy':{ bcrumb: 'Resume / Manage Privacy',  ele_id: '4|1'},
	'resume':{ bcrumb: 'Resume / Manage Resume',  ele_id: '4|2'},
	'resume_add':{ bcrumb: 'Resume / Manage Resume / Add',  ele_id: '4|2'},
	'resume_edit':{ bcrumb: 'Resume / Manage Resume / Edit',  ele_id: '4|2'},
			
	//profile

	'profile_privacy':{ bcrumb: 'Profile / Manage Privacy',  ele_id: '5|1'},
	'profile':{ bcrumb: 'Profile / Manage Profile',  ele_id: '5|2'},
	'profile_add':{ bcrumb: 'Profile / Manage Profile / Add',  ele_id: '5|2'},
	'profile_add2':{ bcrumb: 'Profile / Manage Profile / Add Details',  ele_id: '5|2'},
	'profile_edit':{ bcrumb: 'Profile / Manage Profile / Edit',  ele_id: '5|2'},
	'profile_edit2':{ bcrumb: 'Profile / Manage Profile / Edit / Edit Details',  ele_id: '5|2'},
	
	//contact
	
	'contact_privacy':{ bcrumb: 'Contact / Manage Privacy',  ele_id: '6|1'},
	'contact':{ bcrumb: 'Contact / Manage Contact',  ele_id: '6|2'},
	'contact_edit':{ bcrumb: 'Contact / Manage Contact / Edit',  ele_id: '6|2'},
	'contact_edit2':{ bcrumb: 'Contact / Manage Contact / Edit Step 2',  ele_id: '6|2'},
	'contact_add':{ bcrumb: 'Contact / Manage Contact / Add',  ele_id: '6|2'},
	'contact_add2':{ bcrumb: 'Contact / Manage Contact / Add Step 2',  ele_id: '6|2'}
	
};



function GFAtoggle_account_nav(menu_num) {
	
	// close the open menu if there is one
	
	if((menu_num != open_menu)&&open_menu!=0) {

		new Effect.BlindUp('account_nav'+open_menu,{ duration: 0.3});
		
		$('color_ind'+open_menu).innerHTML = '+';
		
	}
	
	// close this menu if it's open 
	
	if((menu_num==open_menu) && $('account_nav'+open_menu).hasClassName('openmenu')) {
	
	} else {
	
		// open this menu
	
		$('account_nav'+menu_num).addClassName('openmenu');
	
		new Effect.BlindDown('account_nav'+menu_num,{ duration: 0.3 });
		
		$('color_ind'+menu_num).innerHTML = '<span style="color: #dd9d30;">-</span>';
		
	}
	
	open_menu = menu_num;
	
	// xhr set open menu 
	
	GFAxhrCookie('acct_openmenu',menu_num,'set');
	
}

function GFAload(action) {
	
	
	// clear highlight from other actions
	
	function hide_subnavs() {
		if($('stills_projects_subnav').visible()) {
		
			$('stills_projects_subnav').hide();
			
		}
		if($('reels_projects_subnav').visible()) {
		
			$('reels_projects_subnav').hide();
			
		}
	}
	
	if($('error_tip_top')) {
	$('error_tip_top').remove();
	}
	
		if($('save_tip_top')) {
	$('save_tip_top').remove();
	}
	
	
	function initMCE(transport) {
		
		
				if((action=='stills_projects_add')||(action=='stills_projects_edit')||(action=='reels_projects_add')||(action=='reels_projects_edit')||(action=='resume_add')||(action=='resume_edit')||(action=='home_add_blog'||action=='home_edit_blog')||(action=='profile_add'||action=='profile_edit')||(action=='contact_add'||action=='contact_edit')) {
			
					tinyMCE.idCounter = 0;
					tinyMCE.execCommand('mceAddControl', false, 'project_desc_fld');
			
				}
				else if((action=='cancel')) {
		
					tinyMCE.idCounter = 0;
					tinyMCE.execCommand('mceAddControl', false, 'cancel_reason_fld');
			
				}	
		

	}
	
	if(pending_param == '') {
		new Ajax.Updater(
			'account_area', 
			'/giantfin/ajax/gfa_load/'+action+'/', 
			{
				evalScripts:true,
				asynchronous:true, 
				parameters: 'cat_to_load='+cat_to_load+'&reels_cat_to_load='+reels_cat_to_load, 
				onComplete: initMCE});
	} else {
		new Ajax.Updater(
			'account_area', 
			'/giantfin/ajax/gfa_load/'+action+'/', 
			{
				evalScripts:true,
				asynchronous:true, 
				parameters: 'cat_to_load='+cat_to_load+'&pending_param='+pending_param+'&reels_cat_to_load='+reels_cat_to_load, 
				onComplete: initMCE}
			);
		pending_param = '';		
		
	}

	// remove selected from all elements
	
	var navvies = $('account_nav').select('.nav_item');

	navvies.each(function(navvy) {
	
		navvy.removeClassName('selected');
		
	});

	
	// highlight nav
	if(!(action.startsWith('quick')))
	{
		hide_subnavs();
		$(AdminActions[action].ele_id).addClassName('selected');
	}
	// load categories and change breadcrumb
	
	if(action.startsWith('stills')) {
		if($('reels_projects_subnav').visible()) {
		
			$('reels_projects_subnav').hide();
			
		}
		if(action.startsWith('stills_projects'))
		{	
			if(cat_to_load != 0)
			{
				$('account_breadcrumb').innerHTML = AdminActions[action].bcrumb.sub('{category}',categoryList[cat_to_load]);
			} else {
				$('account_breadcrumb').innerHTML = 'Stills / Manage Projects';
			}
		}
		else {
			$('account_breadcrumb').innerHTML = AdminActions[action].bcrumb;
		}
	}
	else if(action.startsWith('reels')) {
		if($('stills_projects_subnav').visible()) {
		
			$('stills_projects_subnav').hide();
			
		}
		if(categoryList[reels_cat_to_load] != '') 
		{
			$('account_breadcrumb').innerHTML = AdminActions[action].bcrumb.sub('{reelscategory}',reelsCategoryList[reels_cat_to_load]);
		}
	}
	else
	{
			hide_subnavs();
			$('account_breadcrumb').innerHTML = AdminActions[action].bcrumb;
	}
	
	// xhr set current action
	
	if(action == "reels_projects" || action == "stills_projects") {
	GFAxhrCookie('acct_curraction',action,'set');
	
	GFAxhrCookie('acct_curraction',action,'set');
	
	GFAxhrCookie('acct_curraction',action,'set');
	}
	GFAxhrCookie('acct_curraction',action,'set');
	
	// load action-specific html bits
	
	if(action.startsWith('home_slideshow')) {
		
		
			$('home_slideshow_subnav').show();
			if(action.startsWith('home_slideshow_add')||action.startsWith('home_slideshow_manual')||action.startsWith('home_slideshow_edit'))
			{
				$('1|2|automatic').removeClassName('selectedsub');
				$('1|2|manual').addClassName('selectedsub');
			}
			else{
				$('1|2|manual').removeClassName('selectedsub');
				$('1|2|automatic').addClassName('selectedsub');
			}
		
	} else {
		
	if($('home_slideshow_subnav').visible()) {
			
				$('home_slideshow_subnav').hide();
		}
				
	}
			
	if(action.startsWith('stills')) {
	
		if(action.startsWith('stills_projects')) {
		
			$('stills_projects_subnav').show();
		
		} else {
		
			if($('stills_projects_subnav').visible()) {
			
				$('stills_projects_subnav').hide();
				
			}
		
		}
		//check for other content navs
		if($('reels_profile_content_nav').visible()) {
			new Effect.BlindUp('reels_profile_content_nav',{ duration: 0.6 });
			new Effect.BlindUp('reels_scroller_left',{ duration: 0.6 });						
			new Effect.BlindUp('reels_scroller_right',{ duration: 0.6 });		
		}
		
		if(cat_to_load!= 0)
		{
			if(!$('profile_content_nav').visible()) {
			
				new Effect.BlindDown('profile_content_nav',{ duration: 0.4 })
				new Effect.BlindDown('scroller_left',{ duration: 0.4 });						
				new Effect.BlindDown('scroller_right',{ duration: 0.4 });	
				$('profile_contact_border').hide();
			
			}
			
		}

		
	}
	else{
		if(cat_to_load != 0)
		{
			if($('profile_content_nav').visible()) {
				new Effect.BlindUp('profile_content_nav',{ duration: 0.1 });	
				new Effect.BlindUp('scroller_left',{ duration: 0.1 });						
				new Effect.BlindUp('scroller_right',{ duration: 0.1 });			
			}
			$('profile_contact_border').show();
		}

	}
	
	 if(action.startsWith('reels')) {
		
		if(action.startsWith('reels_projects'))
		{
			$('reels_projects_subnav').show();
		
		} else {
		
			if($('reels_projects_subnav').visible()) {
			
				$('reels_projects_subnav').hide();
				
			}
			
		}
		if(categoryList[reels_cat_to_load]!= '')
		{
			if(!$('reels_profile_content_nav').visible()) {
			
				new Effect.BlindDown('reels_profile_content_nav',{ duration: 0.4 });
				new Effect.BlindDown('reels_scroller_left',{ duration: 0.4 });						
				new Effect.BlindDown('reels_scroller_right',{ duration: 0.4 });	
				$('profile_contact_border').hide();
			
			}
		}
	}
	else{
		if(categoryList[reels_cat_to_load]!= '')
		{
			if($('reels_profile_content_nav').visible()) {
				new Effect.BlindUp('reels_profile_content_nav',{ duration: 0.1 });	
				new Effect.BlindUp('reels_scroller_left',{ duration: 0.1 });						
				new Effect.BlindUp('reels_scroller_right',{ duration: 0.1 });				
			}
		}
	}
	
	
	// check for pending error
	
	if(pending_error == true) {
	
		GFAerror_tip(pending_error_content.message,pending_error_content.x,pending_error_content.y,pending_error_content.id);
		pending_error == false;
		pending_error_content = {};
	
	}
	
	
	
}

function GFAerror_tip(message,x,y,id) {

	errboxHTML = '<div class="error_tip" id="error_tip_'+id+'" style="display:none;"><div id="header">&nbsp;</div><div id="body">'+message+'</div><div id="footer">&nbsp;</div></div>';

	new Insertion.After('account_holder',errboxHTML);

	Element.setStyle('error_tip_'+id,{left:x+'px',top:y+'px'});
	
	new Draggable('error_tip_'+id);
	//new Effect.Appear('error_tip_'+id);
	$('error_tip_'+id).show();
	
}

function GFAwarning_tip(message,x,y,id) {

	errboxHTML = '<div class="warning_tip" id="error_tip_'+id+'" style="display:none;"><div id="header">&nbsp;</div><div id="body">'+message+'</div><div id="footer">&nbsp;</div></div>';

	new Insertion.After('account_holder',errboxHTML);

	Element.setStyle('error_tip_'+id,{left:x+'px',top:y+'px'});
	
	new Draggable('error_tip_'+id);
	//new Effect.Appear('error_tip_'+id);
	$('error_tip_'+id).show();
	
}

function GFAsave_tip(message,x,y,id,section) {
	
	if($('error_tip_top')) {
		$('error_tip_top').remove();
	}
				var sec_name = new String;
					if(section == '0') {
						sec_name = "GFAload('home_privacy')";
					}
					else if(section == '1') {
						sec_name = "GFAload('stills_privacy')";
					}
					else if(section == '2') {
						sec_name = "GFAload('reels_privacy')";
					}
					else if(section == '3') {
						sec_name = "GFAload('resume_privacy')";
					}
					else if(section == '4') {
						sec_name = "GFAload('profile_privacy')";
					}
					else if(section == '5') {
						sec_name = "GFAload('contact_privacy')";
					} else if(section == 'slideshow') {
						sec_name = "GFAload('home_slideshow')";
					} else if (section == 'email') {
						sec_name = "GFAload('email')";
					} else if (section == 'personal') {
						sec_name = "GFAload('personal_info')";
					}
					else if (section == "password") {
						sec_name = "GFAload('uname_passwd')";
					} else if (section == "billing_info") {
						sec_name = "GFAload('billing_info')";
					}
	
	errboxHTML = '<div class="save_tip" id="save_tip_'+id+'" style="display:none;"><div id="header"><a href="javascript: '+sec_name+'"><img src="'+base_url+'res/img/savetip_close-trans.png" border="0"></a></div><div id="body">'+message+'</div><div id="footer">&nbsp;</div></div>';

	new Insertion.After('account_holder',errboxHTML);

	Element.setStyle('save_tip_'+id,{left:x+'px',top:y+'px'});
	
	new Draggable('save_tip_'+id);
	//new Effect.Appear('error_tip_'+id);
	$('save_tip_'+id).show();
	
}

function GFAsave_privacy() {

	//console.log($F('current_uname_fld')+$F('current_passwd_fld')+$F('privacy_on_fld')+$F('privacy_off_fld'));

	if($('error_tip_top')) {
	$('error_tip_top').remove();
	}
		if($('save_tip_top')) {
	$('save_tip_top').remove();
	}

	if($F('privacy_on_fld')) {

		var errors = [];
	
		// validate uname/passwd 
		
		var saveFields = ['current_uname_fld','current_passwd_fld'];
		
		var isValid = true;
		var required = true;
		var cor_length = true;
		var alphanum = true;
		
		
		//validate
		
		saveFields.each(function(field) {
			
			if(!Field.present(field)) {
										
				isValid = false;
				required = false;	
							
			}

		});
		
		if(required) {
		
			saveFields.each(function(field) {
			
				if($F(field).length < 3) {
				
					isValid = false;
					cor_length = false;
				
				}
				
				if(!GFGalphanumeric($F(field))) {
					isValid = false;
					alphanum = false;
				}

			});	

		}
		
		if(isValid) {
		
			// save
			
			var params = Object.toQueryString({uname: $F('current_uname_fld'), passwd: $F('current_passwd_fld'), setto: 'on', sect: $F('section')});
			
			function processRespondino(originalRequest) {				
			
				var reqStatus = originalRequest.responseText.evalJSON();		
	
				if(reqStatus.status == 'ok') {
					
					
				GFAsave_tip('Your privacy has been saved correctly click X in the top right corner to close box.',344,-818,'top', $F('section'));	
				
							
				}
								
			}
				
			var xhr = new Ajax.Request(base_url + 'ajax/store_stills_privacy/',{
		
				method: 'post',
				parameters: params,
				
				onComplete: processRespondino
			});
		
		} else {
		
			if(!alphanum) errors.push('Please ensure that your username and password are comprised of letters and numbers only.');
			if(!cor_length) errors.push('Please ensure that your username and password are at least 3 charactes in length.');
			if(!required) errors.push('Please enter both a username and password.');
			
			var error_txt = new String;
		
			errors.each(function(error) {
			
				error_txt += error + '<br /><br />';
				
			});
			
			GFAerror_tip(error_txt,584,-988,'top');		
		
		}
		
		
	} else if($F('privacy_off_fld')) {
		
		// post (check for record and set inactive if present)
		
			
		var params = Object.toQueryString({setto: 'off', sect: $F('section')});
		
		function processRespondino(originalRequest) {				
		
			var reqStatus = originalRequest.responseText.evalJSON();		

			if(reqStatus.status == 'ok') {

				// load step 2
				
					GFAsave_tip('Your privacy has been saved correctly click X in the top right corner to close box.',344,-818,'top', $F('section'));	
						
			}
							
		}
			
		var xhr = new Ajax.Request(base_url + 'ajax/store_stills_privacy/',{
	
			method: 'post',
			parameters: params,
			
			onComplete: processRespondino
		});
		
	}else {
		
		// post (check for record and set inactive if present)
		
			
		var params = Object.toQueryString({setto: 'hide', sect: $F('section')});
		
		function processRespondino(originalRequest) {				
		
			var reqStatus = originalRequest.responseText.evalJSON();		

			if(reqStatus.status == 'ok') {

				// load step 2
				
				GFAsave_tip('Your privacy has been saved correctly click X in the top right corner to close box.',344,-818,'top', $F('section'));	
						
			}
							
		}
			
		var xhr = new Ajax.Request(base_url + 'ajax/store_stills_privacy/',{
	
			method: 'post',
			parameters: params,
			
			onComplete: processRespondino
		});
		
	}

}


function GFAsave_new_uname() {

	var required = true;	
	
	var errors = [];
	
	if($('error_tip_bottom')) {
	$('error_tip_bottom').remove();
	}

	if($('error_tip_top')) {
	$('error_tip_top').remove();
	}

	// validate existence of fields
	
	var saveFields = ['current_uname','new_uname'];
	
	var isValid = true;
	
	//validate
	
	saveFields.each(function(field) {
		
		if(!Field.present(field+'_fld')) {
									
			isValid = false;
			required = false;
						
		}

	});
	
	if(!required) {
	
		errors.push('Please enter both your current username and your desired new username.');
		
	}	
	
	// make sure they aren't the same
	
	if(required) {
	
		if( $('current_uname_fld').value == $('new_uname_fld').value) {
		
			errors.push('You have entered the same value for new and old username.');
			isValid = false;
			
		}
	
	}
	
	// check current username, ensure new username isn't taken
	
	if(required) {

		// check username	
			
		function processRespondo(originalRequest) {				
		
			var reqStatus = originalRequest.responseText.evalJSON();		

			if(reqStatus.status == 'bad') {

				errors.push('Please make sure you have entered your current username correctly.');
				isValid = false;
		
			}

			if(reqStatus.status == 'taken') {

				errors.push('The new username you have selected is not available.  Please select a new name.');
				isValid = false;
		
			}
			
			GFAcontinueCheck();
							
		}
			
		var xhr = new Ajax.Request(base_url + 'ajax/check_user_name/' + $('current_uname_fld').value + '/' + $('new_uname_fld').value + '/',{
	
			method: 'get',
			
			onComplete: processRespondo
		});
	
	} else {
	
		GFAcontinueCheck();	
	
	}
	
	function GFAcontinueCheck() {

		if(isValid) {
		
			// serialize and send, listen for image validation issues
			
			form_vals = Form.serialize('new_uname_form');
			
			// post
		
			function finishSave(originalRequest) {
		
				var reqStatus = originalRequest.responseText.evalJSON();
						
				if(reqStatus.status == 'ok') {
				
					// refresh page
					
					window.location = Math.floor(21*Math.random(2));;
					
				} else if (reqStatus.status == 'error') {
				
					// TODO: launch general error, refresh
					
				}	
		
			}
		
			var ajaxsave = new Ajax.Request(base_url + 'ajax/store_uname/',{
		
				parameters: form_vals,
				method: 'post',
				onComplete: finishSave 
			});
				
		} else {
			
			var error_txt = new String;
			
			errors.each(function(error) {
			
				error_txt += error + '<br /><br />';
				
			});
			
			GFAerror_tip(error_txt,568,-963,'top');
		
		}
	
	}
	
}
	
function GFAsave_new_passwd() {

	$('save_passwd_button').hide();
	
	var required = true;	
	
	var errors = [];
	
	if($('error_tip_bottom')) {
	$('error_tip_bottom').remove();
	}

	if($('error_tip_top')) {
	$('error_tip_top').remove();
	}
	
		if($('save_tip_bottom')) {
	$('savetip_bottom').remove();
	}

	if($('save_tip_top')) {
	$('save_tip_top').remove();
	}

	// validate existence of fields
	
	var saveFields = ['current_passwd','new1_passwd','new2_passwd'];
	
	var isValid = true;
	
	//validate
	
	saveFields.each(function(field) {
		
		if(!Field.present(field+'_fld')) {
									
			isValid = false;
			required = false;
						
		}

	});
	
	if(!required) {
	
		errors.push('Please enter both your current password and your desired new password twice.');
		$('save_passwd_button').show();
				
	}	
	
	// make sure they aren't the same
	
	if(required) {
	
		if(( $('current_passwd_fld').value == $('new1_passwd_fld').value)||( $('current_passwd_fld').value == $('new2_passwd_fld').value)) {
		
			errors.push('You have entered the same value for new and old password.');
			isValid = false;
			$('save_passwd_button').show();
		}
	
	}
	
	// check new passwords match
	
	if($('new1_passwd_fld').value != $('new2_passwd_fld').value) {
	
		errors.push('New passwords do not match.  Please carefully type the new password twice.');
		isValid = false;
		$('save_passwd_button').show();
		
		
	}
	

	// test if current passwd is right
	
	if(required) {

		// check username	
			
		function processRespondo(originalRequest) {				
		
			var reqStatus = originalRequest.responseText.evalJSON();		

			if(reqStatus.status == 'wrongo') {

				errors.push('Please make sure you have entered your current password correctly.');
				isValid = false;
				$('save_passwd_button').show();
				
		
			}
			
			GFAcontinueCheck();
							
		}
			
		var xhr = new Ajax.Request(base_url + 'ajax/check_passwd/',{
	
			method: 'post',
			parameters: 'passwd='+ $('current_passwd_fld').value,
			
			onComplete: processRespondo
		});
	
	} else {
	
		GFAcontinueCheck();	
	
	}
	
	function GFAcontinueCheck() {
	
	
		if(isValid) {
				
			// serialize and send, listen for image validation issues
			
			form_vals = Form.serialize('new_passwd_frm');
			
			// post
		
			function finishSave(originalRequest) {
		
				var reqStatus = originalRequest.responseText.evalJSON();
						
				if(reqStatus.status == 'ok') {
				
					// refresh page
					
					GFAsave_tip('Your password has been saved correctly click X in the top right corner to close box.',344,-818,'top','password');
					$('save_passwd_button').show();
					
				} else if (reqStatus.status == 'error') {
				
					// TODO: launch general error, refresh
					
				}	
		
			}
		
			var ajaxsave = new Ajax.Request(base_url + 'ajax/store_passwd/',{
		
				parameters: form_vals,
				method: 'post',
				onComplete: finishSave 
			});
				
		} else {
			
			var error_txt = new String;
			
			errors.each(function(error) {
			
				error_txt += error + '<br /><br />';
				
			});
			
			GFAerror_tip(error_txt,568,-779,'bottom');
		
		}
		
	}
	
}		
	
function GFAsave_new_email() {

	var required = true;	
	
	var errors = [];
	
	if($('error_tip_top')) {
	$('error_tip_top').remove();
	}

	// validate existence of fields
	
	var saveFields = ['new_email'];
	
	var isValid = true;
	
	//validate
	
	saveFields.each(function(field) {
		
		if(!Field.present(field+'_fld')) {
									
			isValid = false;
			required = false;
						
		}

	});
	
	if(!required) {
	
		errors.push('Please enter your new email address to make a change.');
		
	}		

	// check if valid addy
	
	if(!GFGcheckMail($('new_email_fld').value)) {
	
		errors.push('Please enter a valid email address.');
		isValid = false;
		
	}

	if(isValid) {
			
		// serialize and send, listen for image validation issues
		
		form_vals = Form.serialize('email_form');
		
		// post
	
		function finishSave(originalRequest) {
	
			var reqStatus = originalRequest.responseText.evalJSON();
					
			
			if(reqStatus.status == 'ok') {
					
					
				GFAsave_tip('Your e-mail has been saved correctly click X in the top right corner to close box.',344,-818,'top','email');	
				
				} else if (reqStatus.status == 'error') {
			
				// TODO: launch general error, refresh
				
			}	
	
		}
	
		var ajaxsave = new Ajax.Request(base_url + 'ajax/store_email/',{
	
			parameters: form_vals,
			method: 'post',
			onComplete: finishSave 
		});
			
	} else {
		
		var error_txt = new String;
		
		errors.each(function(error) {
		
			error_txt += error + '<br /><br />';
			
		});
		
		GFAerror_tip(error_txt,588,-963,'bottom');
	
	}
	
}

function GFAsave_personal_info() {
	
	//var saveFields = ['first_name_fld','last_name_fld','phone_fld','phone_ext_fld','email_address_fld','address_1_fld','address_2_fld','city_fld','state_province_fld','zip_postal_fld'];
		
	var params = Object.toQueryString({fname: $F('first_name_fld'), lname: $F('last_name_fld'), email: $F('email_address_fld'), phone: $F('phone_fld'), ext: $F('phone_ext_fld'), address1: $F('address_1_fld'), address2: $F('address_2_fld'), city: $F('city_fld'), state: $F('state_province_fld'), zip: $F('zip_postal_fld')});
	
	var ajax = new Ajax.Request(base_url+'ajax/store_edit_personal_info/',{
		
		parameters: params,
		method: 'post',
		onComplete: finishUpdate
		 
	});
		
	function finishUpdate(originalRequest) {
	
		//refresh page and queue confirmation message
		
		GFAsave_tip('Your personal info has been saved correctly click X in the top right corner to close box.',394,-518,'top','personal');							
	
	}
}

function GFAcancel_account() {
	
	$('cancel_reason_fld').value = tinyMCE.getContent('cancel_reason_fld');
	
	var params = Object.toQueryString({reason: $F('cancel_reason_fld')});
	
	var ajax = new Ajax.Request(base_url+'ajax/store_cancel_account/',{
		
		parameters: params,
		method: 'post',
		onComplete: finishCancel
		 
	});
	
	function finishCancel(originalRequest) {
		window.location = base_url;
	}
	
}

function GFAxhrCookie(key,val,dir) {
	
	var retval;
	
	function returnVal(originalRequest) {
	
		var reqStatus = originalRequest.responseText.evalJSON();
				
		if(dir=='get'&&reqStatus.status=='ok') {
		
			// still can't figure out how to use this value
			
		}
	
	}
	
	var ajaxsave = new Ajax.Request(base_url + 'ajax/xhr_jsvar/'+dir+'/',{
	
		parameters: 'key='+key+'&val='+val,
		method: 'post',
		onComplete: returnVal 
	});
	
}

function GFAxhrPostCookie(key,params) {

	var ajaxsave = new Ajax.Request(base_url + 'ajax/xhr_post_jsvar/'+key+'/',{
	
		parameters: params,
		method: 'post'
	});
	
}

function GFAstillscat_start_reorder() {

	GFAclearProjTabs();

	//$('account_pointy').hide();
	
	$('sortcats_holder').setStyle('cursor: move;');
	
	// switch button state
	$('stillscat_reorder_button').addClassName('lg_on');
	
	// show reorder button
	//new Effect.Appear('reorder_button_holder');
	$('reorder_button_holder').show();
	
	$('sortcats_holder').immediateDescendants().each(function(ele){		
				
		ele.stopObserving('click');
		
	});
	
	// create sortable
	 
	Sortable.create('sortcats_holder', {
		
		overlap:'vertical',
		constraint: false
	
	});

	// bind listener func.
	
}

function GFAstillscat_save_reorder() {

	sortorder = (Sortable.serialize('sortcats_holder'));
	
	// post new order
	
	var ajax = new Ajax.Request(base_url+'ajax/store_sort_stillscat/',{

		parameters: sortorder,
		method: 'post',
		onComplete: finishUpdate 
	});
		
	function finishUpdate(originalRequest) {
	
		//refresh page and queue confirmation message
		
		window.location = Math.floor(21*Math.random(2));;
	
	}


}

function GFAstillsprojects_start_reorder() {

	GFAclearProjTabs();

	//$('account_pointy').hide();
	
	$('project_thumb_holder').setStyle('cursor: move;');
	
	// switch button state
	$('stillsprojects_reorder_button').addClassName('lg_on');
	
	// show reorder button
	//new Effect.Appear('reorder_button_holder');
	$('reorder_button_holder').show();
	
	
	// create sortable
	 
	Sortable.create('project_thumb_holder', {
		
		overlap:'horizontal',
		constraint: false
	
	});

	// bind listener func.
	
}

function GFAstillsprojects_save_reorder() {

	sortorder = (Sortable.serialize('project_thumb_holder'));
	
	// post new order
	
	var ajax = new Ajax.Request(base_url+'ajax/store_sort_stillsprojects/',{

		parameters: sortorder,
		method: 'post',
		onComplete: finishUpdate 
	});
		
	function finishUpdate(originalRequest) {
	
		//refresh page and queue confirmation message
		
		window.location = Math.floor(21*Math.random(2));;
	
	}


}

function GFAstillsprojects_load_new_img(img_sid) {
	
	if($('error_tip_top')) {
	$('error_tip_top').remove();
	}
	
	function show_img(transport) {
		
		var imgDat = transport.responseText.evalJSON();		
		
		if(imgDat.status == 'ok') {
		
			// save image url to form field
			
			$('filename').value = imgDat.file;
		
			if(imgDat.loadcrop==1) {			
					
				// load el croppo	
				
				$('overlay').update('<div id="crop_holder"><br /><br /><br /><br /><br /><br /><br /><br /><img id="cropimg" src="'+base_url+'s_images/'+imgDat.file+'" /><br /><br /><div id="cropper_header"><div id="cropper_submit"><a href="javascript: GFAfinishCrop(\'stills_projects_add1\')"><img src="http://n1.protocol0.com/giantfin/res/img/cropper_submit.gif" width="170" height="37" border="0" /></a></div></div><div style="display:none;"><input type="text" name="x1" id="x1" /><input type="text" name="y1" id="y1" /><input type="text" name="x2" id="x2" /><input type="text" name="y2" id="y2" /><input type="text" name="width" id="width" /><input type="text" name="height" id="height" /></div></div>');		
				
				// with a supplied ratio
		
				function onEndCrop( coords, dimensions ) {
					$( 'x1' ).value = coords.x1;
					$( 'y1' ).value = coords.y1;
					$( 'x2' ).value = coords.x2;
					$( 'y2' ).value = coords.y2;
					$( 'width' ).value = dimensions.width;
					$( 'height' ).value = dimensions.height;
				}
		
				new Cropper.Img( 
				
					'cropimg', 
					{ 
						ratioDim: { x: 300, y: 200 }, 
						displayOnInit: true,
						onEndCrop: onEndCrop
					} 
				);			

				//new Effect.Appear('overlay',{ duration: 0.32 });
				$('overlay').show();
				
			} {
			
				// image is correct, display
			
				$('img_preview').innerHTML = '<img src="'+base_url+'s_images/'+imgDat.thumb+'" width="104" height="69" />';
			
				new Effect.BlindDown('img_preview');
				
			}

		} else if(imgDat.status == 'toosmall') {
			
				// queue error box
				GFAerror_tip('The image you have uploaded is too small.  Please upload a larger image.',584,-988,'top');
			
			} else {

				// queue error box, for bad file.
				GFAerror_tip('Please upload a valid JPG file less than 4 MB.  The file you have uploaded is invalid.',584,-988,'top');			
			
			}
		
	}

	var ajax = new Ajax.Request('/giantfin/ajax/temp_img/'+img_sid+'/', { asynchronous:true, onComplete:show_img });

}

function GFAstillsprojects_load_new_pimg(img_sid) {

	// clear all error boxes

	if($('error_tip_top')) {
	$('error_tip_top').remove();
	}
	
	
	function show_img(transport) {
		
		var imgDat = transport.responseText.evalJSON();		

		if(imgDat.status == 'ok') {
				
			if(imgDat.loadcrop==1) {			
					
				// load el croppo	
				
				$('overlay').update('<div id="crop_holder"><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><div id="cropper_header"><div id="cropper_submit"><a href="javascript: GFAfinishCrop(\'stills_projects_add2\')"><img src="http://n1.protocol0.com/giantfin/res/img/cropper_submit.gif" width="170" height="37" border="0" /></a></div></div><div style="display:none;"><input type="text" name="x1" id="x1" /><input type="text" name="y1" id="y1" /><input type="text" name="x2" id="x2" /><input type="text" name="y2" id="y2" /><input type="text" name="width" id="width" /><input type="text" name="height" id="height" /></div></div><img id="cropimg" src="'+base_url+'s_images/'+imgDat.file+'" style="z-index:-1;"/>');		
				
				pending_crop_img = imgDat.file;
				
				// with a supplied ratio				
		
				function onEndCrop( coords, dimensions ) {
					$( 'x1' ).value = coords.x1;
					$( 'y1' ).value = coords.y1;
					$( 'x2' ).value = coords.x2;
					$( 'y2' ).value = coords.y2;
					$( 'width' ).value = dimensions.width;
					$( 'height' ).value = dimensions.height;
				}
		
				new Cropper.Img( 
				
					'cropimg', 
					{ 
						ratioDim: { x: 600, y: 400 }, 
						displayOnInit: true,
						onEndCrop: onEndCrop
					} 
				);			

				//new Effect.Appear('overlay',{ duration: 0.32 });
				$('overlay').show();
				
			} else {
			
			
				// add to pending images array
			
				pending_images.push(imgDat.file);
				
			}
						
		} else {
		
			if(imgDat.status == 'toosmall') {
			
				// queue error box
				GFAqueuebox('The image you have uploaded is too small.  Please upload a larger image.',584,-988,'top');
			
			}  else {

				// queue error box, for bad file.
				GFAqueuebox('Please upload a valid JPG file less than 4 MB.  The file you have uploaded is invalid.',584,-988,'top');			
			
			}
			
		}
		
		GFAload('stills_projects_add2');
		
	}

	var ajax = new Ajax.Request('/giantfin/ajax/temp_pimg/'+img_sid+'/', { asynchronous:true, onComplete:show_img });

}

function GFAstillsprojects_load_edit_img(img_sid) {
	
	if($('error_tip_top')) {
	$('error_tip_top').remove();
	}
	
	function show_img(transport) {
		
		var imgDat = transport.responseText.evalJSON();		
		
		if(imgDat.status == 'ok') {
		
			// save new image url to form field
			
			$('filename').value = imgDat.file;
		
			if(imgDat.loadcrop==1) {			
					
				// load el croppo	
				
				$('overlay').update('<div id="crop_holder"><br /><br /><br /><br /><br /><br /><br /><br /><img id="cropimg" src="'+base_url+'s_images/'+imgDat.file+'" /><br /><br /><div id="cropper_header"><div id="cropper_submit"><a href="javascript: GFAfinishCrop(\'stills_projects_edit1\')"><img src="http://n1.protocol0.com/giantfin/res/img/cropper_submit.gif" width="170" height="37" border="0" /></a></div></div><div style="display:none;"><input type="text" name="x1" id="x1" /><input type="text" name="y1" id="y1" /><input type="text" name="x2" id="x2" /><input type="text" name="y2" id="y2" /><input type="text" name="width" id="width" /><input type="text" name="height" id="height" /></div></div>');		
				
				// with a supplied ratio
		
				function onEndCrop( coords, dimensions ) {
					$( 'x1' ).value = coords.x1;
					$( 'y1' ).value = coords.y1;
					$( 'x2' ).value = coords.x2;
					$( 'y2' ).value = coords.y2;
					$( 'width' ).value = dimensions.width;
					$( 'height' ).value = dimensions.height;
				}
		
				new Cropper.Img( 
				
					'cropimg', 
					{ 
						ratioDim: { x: 300, y: 200 }, 
						displayOnInit: true,
						onEndCrop: onEndCrop
					} 
				);			

				//new Effect.Appear('overlay',{ duration: 0.32 });
				$('overlay').show();
				
			} else {
			
				// image is correct, display new
			
				$('img_preview').innerHTML = '<img src="'+base_url+'s_images/'+imgDat.thumb+'" width="104" height="69" />';
			
				new Effect.BlindDown('img_preview');
				
			}

		} else {
		
			GFAerror_tip('Please upload a valid JPG file less than 4 MB.  The file you have uploaded is invalid.',584,-988,'top');
		
		}
		
	}

	var ajax = new Ajax.Request('/giantfin/ajax/temp_img/'+img_sid+'/', { asynchronous:true, onComplete:show_img });

}

function GFAreelsprojects_load_edit_img(img_sid) {
	
	if($('error_tip_top')) {
	$('error_tip_top').remove();
	}
	
	function show_img(transport) {
		
		var imgDat = transport.responseText.evalJSON();		
		
		if(imgDat.status == 'ok') {
		
			// save new image url to form field
			
			$('filename').value = imgDat.file;
		
			if(imgDat.loadcrop==1) {			
					
				// load el croppo	
				
				$('overlay').update('<div id="crop_holder"><br /><br /><br /><br /><br /><br /><br /><br /><img id="cropimg" src="'+base_url+'s_images/'+imgDat.file+'" /><br /><br /><div id="cropper_header"><div id="cropper_submit"><a href="javascript: GFAfinishCrop(\'reels_projects_edit1\')"><img src="http://n1.protocol0.com/giantfin/res/img/cropper_submit.gif" width="170" height="37" border="0" /></a></div></div><div style="display:none;"><input type="text" name="x1" id="x1" /><input type="text" name="y1" id="y1" /><input type="text" name="x2" id="x2" /><input type="text" name="y2" id="y2" /><input type="text" name="width" id="width" /><input type="text" name="height" id="height" /></div></div>');		
				
				// with a supplied ratio
		
				function onEndCrop( coords, dimensions ) {
					$( 'x1' ).value = coords.x1;
					$( 'y1' ).value = coords.y1;
					$( 'x2' ).value = coords.x2;
					$( 'y2' ).value = coords.y2;
					$( 'width' ).value = dimensions.width;
					$( 'height' ).value = dimensions.height;
				}
		
				new Cropper.Img( 
				
					'cropimg', 
					{ 
						ratioDim: { x: 540, y: 405 }, 
						displayOnInit: true,
						onEndCrop: onEndCrop
					} 
				);			

				//new Effect.Appear('overlay',{ duration: 0.32 });
				$('overlay').show();
				
			} else {
			
				// image is correct, display new
			
				$('img_preview').innerHTML = '<img src="'+base_url+'s_images/'+imgDat.thumb+'" width="104" height="69" />';
			
				new Effect.BlindDown('img_preview');
				
			}

		} else if(imgDat.status == 'toosmall') {
			
				// queue error box
				GFAerror_tip('The image you have uploaded is too small.  Please upload a larger image.',584,-988,'top');
			
			} else {

				// queue error box, for bad file.
				GFAerror_tip('Please upload a valid JPG file less than 4 MB.  The file you have uploaded is invalid.',584,-988,'top');			
			
			}
		
	}

	var ajax = new Ajax.Request('/giantfin/ajax/temp_reels_img/'+img_sid+'/', { asynchronous:true, onComplete:show_img });

}

function GFAstillsprojects_load_edit_pimg(img_sid) {

	// clear all error boxes

	if($('error_tip_top')) {
	$('error_tip_top').remove();
	}

	function show_img(transport) {
		
		var imgDat = transport.responseText.evalJSON();		

		if(imgDat.status == 'ok') {
				
			if(imgDat.loadcrop==1) {			
					
				// load el cropoo	
				
				$('overlay').update('<div id="crop_holder"><br /><br /><br /><br /><br /><br /><br /><br /><img id="cropimg" src="'+base_url+'s_images/'+imgDat.file+'" /><br /><br /><div id="cropper_header"><div id="cropper_submit"><a href="javascript: GFAfinishCrop(\'stills_projects_edit2_add\')"><img src="http://n1.protocol0.com/giantfin/res/img/cropper_submit.gif" width="170" height="37" border="0" /></a></div></div><div style="display:none;"><input type="text" name="x1" id="x1" /><input type="text" name="y1" id="y1" /><input type="text" name="x2" id="x2" /><input type="text" name="y2" id="y2" /><input type="text" name="width" id="width" /><input type="text" name="height" id="height" /></div></div>');		
				
				pending_crop_img = imgDat.file;
				
				// with a supplied ratio				
		
				function onEndCrop( coords, dimensions ) {
					$( 'x1' ).value = coords.x1;
					$( 'y1' ).value = coords.y1;
					$( 'x2' ).value = coords.x2;
					$( 'y2' ).value = coords.y2;
					$( 'width' ).value = dimensions.width;
					$( 'height' ).value = dimensions.height;
				}
		
				new Cropper.Img( 
				
					'cropimg', 
					{ 
						ratioDim: { x: 600, y: 400 }, 
						displayOnInit: true,
						onEndCrop: onEndCrop
					} 
				);			

				//new Effect.Appear('overlay',{ duration: 0.32 });
				$('overlay').show();
				
			} else {
			
			
				// nothing to be done.
			
				//pending_images.push(imgDat.file);
				
			}
						
		} else {
		
			if(imgDat.status == 'toosmall') {
			
				// queue error box
				GFAqueuebox('The image you have uploaded is too small.  Please upload a larger image.',584,-988,'top');
			
			} else {

				// queue error box, for bad file.
				GFAqueuebox('Please upload a valid JPG file less than 4 MB.  The file you have uploaded is invalid.',584,-988,'top');			
			
			}
			
		}
		
		GFAload('stills_projects_edit2');
		
	}

	var ajax = new Ajax.Request('/giantfin/ajax/temp_peimg/'+img_sid+'/', { asynchronous:true, onComplete:show_img });

}

function GFAfinishCrop(cropaction) {

	if(cropaction == 'stills_projects_add1') {
	
		//new Effect.Fade('overlay');
		$('overlay').hide();
		
		// post cropping stats to server
		
		var params = Object.toQueryString({img: $F('filename'), x1: $F('x1'), y1: $F('y1'), x2: $F('x2'), y2: $F('y2'), width: $F('width'), height: $F('height')});
					
		function processRespondino(originalRequest) {				
		
			var reqStatus = originalRequest.responseText.evalJSON();		

			if(reqStatus.status == 'ok') {
				
				$('filename').value = reqStatus.image;
				
				// display the fine results
				
				$('img_preview').innerHTML = '<img src="'+base_url+'s_images/'+reqStatus.thumb+'" width="104" height="69" />';
			
				new Effect.BlindDown('img_preview');
												
			}
							
		}
			
		var xhr = new Ajax.Request(base_url + 'ajax/cropimage/',{
	
			method: 'post',
			parameters: params,
			
			onComplete: processRespondino
		});
	
	}
	
	if(cropaction == 'stills_projects_add2') {
	
		//new Effect.Fade('overlay');
		$('overlay').hide();
		
		// post cropping stats to server
		
		var params = Object.toQueryString({img: pending_crop_img, x1: $F('x1'), y1: $F('y1'), x2: $F('x2'), y2: $F('y2'), width: $F('width'), height: $F('height'), step: 2});
		
		pending_crop_img ='';
		
		function processRespondino(originalRequest) {				
		
			var reqStatus = originalRequest.responseText.evalJSON();		

			if(reqStatus.status == 'ok') {
				
				pending_images.push(reqStatus.image);
				
				GFAload('stills_projects_add2');
																	
			}
							
		}
			
		var xhr = new Ajax.Request(base_url + 'ajax/cropimage/',{
	
			method: 'post',
			parameters: params,
			
			onComplete: processRespondino
		});
	
	}
	
	if(cropaction == 'stills_projects_edit1') {
	
		//new Effect.Fade('overlay');
		$('overlay').hide();
		
		// post cropping stats to server
		
		var params = Object.toQueryString({img: $F('filename'), x1: $F('x1'), y1: $F('y1'), x2: $F('x2'), y2: $F('y2'), width: $F('width'), height: $F('height')});
					
		function processRespondino(originalRequest) {				
		
			var reqStatus = originalRequest.responseText.evalJSON();		

			if(reqStatus.status == 'ok') {
				
				$('filename').value = reqStatus.image;
				
				// display the fine results
				
				$('img_preview').innerHTML = '<img src="'+base_url+'s_images/'+reqStatus.thumb+'" width="104" height="69" />';
			
				new Effect.BlindDown('img_preview');
												
			}
							
		}
			
		var xhr = new Ajax.Request(base_url + 'ajax/cropimage/',{
	
			method: 'post',
			parameters: params,
			
			onComplete: processRespondino
		});
	
	}

	if(cropaction == 'stills_projects_edit2_add') {
	
		//new Effect.Fade('overlay');
		$('overlay').hide();
		
		// post cropping stats to server
		
		var params = Object.toQueryString({img: pending_crop_img, x1: $F('x1'), y1: $F('y1'), x2: $F('x2'), y2: $F('y2'), width: $F('width'), height: $F('height'), step: 'edit2_add'});
		
		pending_crop_img ='';
		
		function processRespondino(originalRequest) {				
		
			var reqStatus = originalRequest.responseText.evalJSON();		

			if(reqStatus.status == 'ok') {
				
				//pending_images.push(reqStatus.image);
				
				GFAload('stills_projects_edit2');
																	
			}
							
		}
			
		var xhr = new Ajax.Request(base_url + 'ajax/cropimage/',{
	
			method: 'post',
			parameters: params,
			
			onComplete: processRespondino
		});
	
	}
	
	if(cropaction == 'stills_projects_edit2_edit') {	
	
		//new Effect.Fade('overlay');
		$('overlay').hide();
		
		// post cropping stats to server
		
		var params = Object.toQueryString({img: pending_crop_img, x1: $F('x1'), y1: $F('y1'), x2: $F('x2'), y2: $F('y2'), width: $F('width'), height: $F('height'), step: 'edit2_edit', imgid: pending_crop_id});
		
		pending_crop_img ='';
		pending_crop_id ='';
		
		function processRespondino(originalRequest) {				
		
			var reqStatus = originalRequest.responseText.evalJSON();		

			if(reqStatus.status == 'ok') {
				
				//pending_images.push(reqStatus.image);
								
				GFAload('stills_projects_edit2');
																	
			}
							
		}
			
		var xhr = new Ajax.Request(base_url + 'ajax/cropimage/',{
	
			method: 'post',
			parameters: params,
			
			onComplete: processRespondino
		});

	}
	
	if(cropaction == 'home_slideshow_manual') {
	
		//new Effect.Fade('overlay');
		$('overlay').hide();
		
		// post cropping stats to server
		
		var params = Object.toQueryString({img: pending_crop_img, x1: $F('x1'), y1: $F('y1'), x2: $F('x2'), y2: $F('y2'), width: $F('width'), height: $F('height')});
					
		pending_crop_img = '';
		
		function processRespondino(originalRequest) {				
		
			var reqStatus = originalRequest.responseText.evalJSON();		

			if(reqStatus.status == 'ok') {
				
				pending_images.push(reqStatus.image);
				GFAload('home_slideshow_add');

			}
							
		}
			
		var xhr = new Ajax.Request(base_url + 'ajax/cropimage/',{
	
			method: 'post',
			parameters: params,
			
			onComplete: processRespondino
		});
	
	}
	
	if(cropaction == 'reels_projects_edit1') {
	
		//new Effect.Fade('overlay');
		$('overlay').hide();
		
		// post cropping stats to server
		
		var params = Object.toQueryString({img: $F('filename'), x1: $F('x1'), y1: $F('y1'), x2: $F('x2'), y2: $F('y2'), width: $F('width'), height: $F('height'), step: 'reels'});
					
		function processRespondino(originalRequest) {				
		
			var reqStatus = originalRequest.responseText.evalJSON();		

			if(reqStatus.status == 'ok') {
				
				$('filename').value = reqStatus.image;
				
				// display the fine results
				
				$('img_preview').innerHTML = '<img src="'+base_url+'s_images/'+reqStatus.thumb+'" width="104" height="69" />';
			
				new Effect.BlindDown('img_preview');
												
			}
							
		}
			
		var xhr = new Ajax.Request(base_url + 'ajax/cropimage/',{
	
			method: 'post',
			parameters: params,
			
			onComplete: processRespondino
		});
	
	}
	
}

function GFAstillsprojects_save_new_project_1() {
	
	
	$('project_desc_fld').value = tinyMCE.getContent('project_desc_fld');
	//tinyMCE.idCounter = 0;
	
	if($('error_tip_top')) {
	$('error_tip_top').remove();
	}

	var saveFields = ['filename','project_title_fld'];
	
	var errors = [];
	
	var isValid = true;
	var required = true;
	
	//validate
	
	saveFields.each(function(field) {
		
		if(!Field.present(field)) {
									
			isValid = false;
			required = false;
						
		}

	});
	
	if(!required) {
	
		errors.push('Please upload an image, and enter a title.');
		
	} else { // ..additional checks
	
		//check that title is text only
		
		if(!GFGalphanumeric($F('project_title_fld'))) {
		
			errors.push('Please use only letters and numbers in your title.');
			isValid = false;
		
		}
		
		// make sure the file isn't invalido
		
		if($F('filename') == 'INVALIDO_MANG') {
		
			errors.push('The file you have uploaded is invalid.  Please upload only a JPG File.');
			isValid=false;
			
		}
		
	}

	if(isValid) {
	
		// save to cookie and go stg. II
		
		var params = Object.toQueryString({title: $F('project_title_fld'), image: $F('filename'), desc: $F('project_desc_fld')});
		
		function processRespondino(originalRequest) {				
		
			var reqStatus = originalRequest.responseText.evalJSON();		

			if(reqStatus.status == 'ok') {

				// load step 2
				
				GFAload('stills_projects_add2');
						
			}
							
		}
			
		var xhr = new Ajax.Request(base_url + 'ajax/store_add_stillsproject_step1/',{
	
			method: 'post',
			parameters: params,
			
			onComplete: processRespondino
		});
			
	} else {
		
		var error_txt = new String;
		
		errors.each(function(error) {
		
			error_txt += error + '<br /><br />';
			
		});
		
		GFAerror_tip(error_txt,584,-988,'top');
	
	}
	
}

function GFAstillsprojects_save_new_project_2() {
	
	errors = [];
	
	isValid = true;
	
	if($('error_tip_top')) {
	$('error_tip_top').remove();
	}

	// its valid if they've uploaded an image
	
	if(!pending_images.length) {
	
		errors.push('Please upload at least one image to put into your project.');
		isValid = false;
		
	}
	
	if(isValid) {
	
		function processRespondino(originalRequest) {				
		
			var reqStatus = originalRequest.responseText.evalJSON();		

			if(reqStatus.status == 'ok') {

				pending_images = [];
				
				GFAsetActReload('stills_projects');	
						
			}
							
		}
			
		var xhr = new Ajax.Request(base_url + 'ajax/store_add_stillsproject_step2/',{
	
			method: 'post',
			onComplete: processRespondino
		});
			
	} else {
		
		var error_txt = new String;
		
		errors.each(function(error) {
		
			error_txt += error + '<br /><br />';
			
		});
		
		GFAerror_tip(error_txt,584,-988,'top');
	
	}
	
}

function GFAstillsprojects_save_edit_project_1() {

	if($('error_tip_top')) {
	$('error_tip_top').remove();
	}
	
	$('project_desc_fld').value = tinyMCE.getContent('project_desc_fld');
	//tinyMCE.idCounter = 0;


	var saveFields = ['project_title_fld'];
	
	var errors = [];
	
	var isValid = true;
	var required = true;
	
	//validate
	
	saveFields.each(function(field) {
		
		if(!Field.present(field)) {
									
			isValid = false;
			required = false;
						
		}

	});
	
	if(!required) {
	
		errors.push('Please enter a title.');
		
	} else { // ..additional checks
	
		//check that title is text only
		
		if(!GFGalphanumeric($F('project_title_fld'))) {
		
			errors.push('Please use only letters and numbers in your title.');
			isValid = false;
		
		}
		
		// make sure the file isn't invalido
		
		if($F('filename') == 'INVALIDO_MANG') {
		
			errors.push('The file you have uploaded is invalid.  Please upload only a JPG File.');
			isValid=false;
			
		}
		
	}

	if(isValid) {
	
		// save to cookie and go stg. II
		
		var params = Object.toQueryString({project_id: $F('project_id'),title: $F('project_title_fld'), image: $F('filename'), desc: $F('project_desc_fld')});
		
		function processRespondino(originalRequest) {				
		
			var reqStatus = originalRequest.responseText.evalJSON();		

			if(reqStatus.status == 'ok') {

				// load step 2
				
				GFAload('stills_projects_edit2');
						
			}
							
		}
			
		var xhr = new Ajax.Request(base_url + 'ajax/store_edit_stillsproject_step1/',{
	
			method: 'post',
			parameters: params,
			
			onComplete: processRespondino
		});
			
	} else {
		
		var error_txt = new String;
		
		errors.each(function(error) {
		
			error_txt += error + '<br /><br />';
			
		});
		
		GFAerror_tip(error_txt,584,-988,'top');
	
	}


}

function GFAstillsprojects_save_edit_project_2() {

	function processRespondino(originalRequest) {				
	
		var reqStatus = originalRequest.responseText.evalJSON();		

		if(reqStatus.status == 'ok') {

			pending_images = [];
			
			// back to projects ... may have to force the category
			
			GFAload('stills_projects');
					
		}
						
	}
		
	var xhr = new Ajax.Request(base_url + 'ajax/store_edit_stillsproject_step2/',{

		method: 'post',
		onComplete: processRespondino
	});


}

function GFAstills_set_cat(category) {
	
	var params = Object.toQueryString({cat_to_load: category});
	
	var ajax = new Ajax.Request(base_url+'ajax/stills_projects_cancel_pending/',{ method: 'get', parameters: params });
	
	cat_to_load = category;
	
	// set cookie
	
	GFAxhrCookie('current_cat',category,'set');
	
	$$('#stills_projects_subnav div').each(function(nav_item) {
	
		nav_item.removeClassName('selectedsub');
		
		replacestr = nav_item.innerHTML.sub('&gt','&nbsp');
	
		nav_item.innerHTML = replacestr;
		
	});	
	
	// change nav
	
	$('3|3|'+category).addClassName('selectedsub');
	
	// change little arrow
	
	replacestr = $('3|3|'+category).innerHTML.sub('&nbsp;&nbsp;&nbsp;','&gt;&nbsp;&nbsp;');
	
	$('3|3|'+category).innerHTML = replacestr;
				
	// load stills projects
	
	GFAload('stills_projects');
	
}

function GFAqueuebox(message,x,y,id) {
	
	pending_error = true;
	
	pending_error_content = {message: message, x: x, y: y, id: id};

}

function GFAsave_add_stills_cat() {


	if($('error_tip_top')) {
		$('error_tip_top').remove();
	}

	var saveFields = ['cat_title_fld'];
	
	var errors = [];
	
	var isValid = true;
	var required = true;
	
	//validate
	
	saveFields.each(function(field) {
		
		if(!Field.present(field)) {
									
			isValid = false;
			required = false;
						
		}

	});
	
	if(!required) {
	
		errors.push('Please enter a category title.');
		
	} else { // ..additional checks
	
		//check that title is text only
		
		if(!GFGalphanumeric($F('cat_title_fld'))) {
		
			errors.push('Please use only letters and numbers in your category.');
			isValid = false;
		
		}
		
		if($F('cat_title_fld').length > 20) {
		
			errors.push('Please select a title less than 20 characters.');
			isValid = false;
		
		}
				
	}

	if(isValid) {
	
		// save category
		
		var params = Object.toQueryString({title: $F('cat_title_fld')});
		
		function processRespondino(originalRequest) {				
		
			var reqStatus = originalRequest.responseText.evalJSON();		

			if(reqStatus.status == 'ok') {

				// load step 2
				
				GFAsetActReload('stills_cats');				
				
						
			}
							
		}
			
		var xhr = new Ajax.Request(base_url + 'ajax/store_add_stills_cat/',{
	
			method: 'post',
			parameters: params,
			
			onComplete: processRespondino
		});
			
	} else {
		
		var error_txt = new String;
		
		errors.each(function(error) {
		
			error_txt += error + '<br /><br />';
			
		});
		
		GFAerror_tip(error_txt,550,-999,'top');
	
	}

}

function GFAsave_edit_stills_cat() {

	if($('error_tip_top')) {
		$('error_tip_top').remove();
	}

	var saveFields = ['cat_title_fld'];
	
	var errors = [];
	
	var isValid = true;
	var required = true;
	
	//validate
	
	saveFields.each(function(field) {
		
		if(!Field.present(field)) {
									
			isValid = false;
			required = false;
						
		}

	});
	
	if(!required) {
	
		errors.push('Please enter a category title.');
		
	} else { // ..additional checks
	
		//check that title is text only
		
		if(!GFGalphanumeric($F('cat_title_fld'))) {
		
			errors.push('Please use only letters and numbers in your category.');
			isValid = false;
		
		}
		
		if($F('cat_title_fld').length > 20) {
		
			errors.push('Please select a title less than 20 characters.');
			isValid = false;
		
		}
				
	}

	if(isValid) {
	
		// save category
		
		var params = Object.toQueryString({title: $F('cat_title_fld'),cat_id: $F('cat_id')});
		
		function processRespondino(originalRequest) {				
		
			var reqStatus = originalRequest.responseText.evalJSON();		

			if(reqStatus.status == 'ok') {

				// load step 2
				
				GFAsetActReload('stills_cats');				
				
						
			}
							
		}
			
		var xhr = new Ajax.Request(base_url + 'ajax/store_edit_stills_cat/',{
	
			method: 'post',
			parameters: params,
			
			onComplete: processRespondino
		});
			
	} else {
		
		var error_txt = new String;
		
		errors.each(function(error) {
		
			error_txt += error + '<br /><br />';
			
		});
		
		GFAerror_tip(error_txt,550,-999,'top');
	
	}

}

function GFAsetActReload(section) {
	
	function reloadoPager(originalRequest) {
		
		window.location = Math.floor(21*Math.random(2));
	
	}
	
	var ajaxsave = new Ajax.Request(base_url + 'ajax/xhr_jsvar/set/',{
	
		parameters: 'key=acct_curraction&val='+section,
		method: 'post',
		onComplete: reloadoPager 
	});
	
}

function GFAstills_edit_cat_select() {
	
	GFAclearProjTabs();
	
	$('sortcats_holder').setStyle('cursor: pointer;');
	$('stillscat_edit_button').addClassName('sm_on');	
	// show reorder button
	//new Effect.Appear('edit_button_holder');
	//$('edit_button_holder').show();
	
	$('sortcats_holder').immediateDescendants().each(function(ele){		
		
		// add click binding for edit select to all items
		
		//Event.observe(ele, 'click', function(event){ GFAstills_edit_cat(ele.id);});
		//ele.onclick = function() {return false;};		
		
		ele.observe('click', setEdit);
		
	});
	
	function setEdit(event) {
	
		$('sortcats_holder').immediateDescendants().each(function(ele){		
		
			ele.removeClassName('selectedli');
			
		});

		$(event.element().id).addClassName('selectedli');

		cat = event.element().id.sub('sortcat_','');
		pending_param = cat;
		GFAstills_edit_cat();
		
	}

}

function GFAstills_delete_cat_select() {
	
	GFAclearProjTabs();
	
	$('sortcats_holder').setStyle('cursor: pointer;');
	$('stillscat_del_button').addClassName('lg_on');	
	// show button
	//new Effect.Appear('delete_button_holder');
	$('delete_button_holder').show();
	
	$('sortcats_holder').immediateDescendants().each(function(ele){		
				
		ele.observe('click', setDelete);
		
	});
	
	function setDelete(event) {
	
		if(!$('error_tip_top')) {
		
			GFAwarning_tip(' All content within this category will be deleted. <br /><br />Click \'DELETE NOW\' to confirm.',543,-882,'top');
			
		}
	
		$('sortcats_holder').immediateDescendants().each(function(ele){		
		
			ele.removeClassName('selectedli');
			
		});

		$(event.element().id).addClassName('selectedli');

		cat = event.element().id.sub('sortcat_','');
		pending_param_delete = cat;
		
	}

}

function GFAstills_edit_cat() {
	
	GFAload('stills_edit_cat');
	
}

function GFAstills_delete_cat() {
	
	function processRespondino(originalRequest) {				
		
		pending_param_delete = '';
		
		var reqStatus = originalRequest.responseText.evalJSON();		

		if(reqStatus.status == 'ok') {

			// back to projects
				
			GFAsetActReload('stills_cats');				
					
		}
						
	}
		
	var xhr = new Ajax.Request(base_url + 'ajax/delete_stills_cat/',{

		method: 'post',
		parameters: 'cat='+pending_param_delete,
		onComplete: processRespondino
	});
	
}

function GFAstills_projects_delete_select() {
	
	GFAclearProjTabs();
	
	$('project_thumb_holder').setStyle('cursor: pointer;');
	$('stillsprojects_del_button').addClassName('lg_on');	
	// show button
	//new Effect.Appear('delete_button_holder');
	$('delete_button_holder').show();
	
	$$('#project_thumb_holder li.project_thumb').each(function(ele){		
		ele.observe('click', setDelete);
		
	});
	
	function setDelete(event) {
	
		if(!$('error_tip_top')) {
		
			GFAwarning_tip('All content within this project will be deleted. <br /><br />Click \'DELETE NOW\' to confirm.',543,-882,'top');
			
		}
	
		$$('#project_thumb_holder li.project_thumb div.thumb_img img').each(function(ele){		
		
			ele.removeClassName('selectedimg');
			
		});

		$(event.element().id).addClassName('selectedimg');

		cat = event.element().id.sub('projimg_','');
		pending_param = cat;
		
	}

}

function GFAstills_projects_edit_select() {

	GFAclearProjTabs();
	
	$('project_thumb_holder').setStyle('cursor: pointer;');
	$('stillsprojects_edit_button').addClassName('sm_on');	
	// show button
	//new Effect.Appear('delete_button_holder');
	//$('edit_button_holder').show();
	
	$$('#project_thumb_holder li.project_thumb').each(function(ele){		
		ele.observe('click', setEdit);
		
	});
	
	function setEdit(event) {	
	
		$$('#project_thumb_holder li.project_thumb div.thumb_img img').each(function(ele){		
		
			ele.removeClassName('selectedimg');
			
		});

		$(event.element().id).addClassName('selectedimg');

		cat = event.element().id.sub('projimg_','');
		
		pending_param = cat;
		GFAstills_edit_project();
		
	}

}

function GFAstills_delete_project() {

	function processRespondino(originalRequest) {				
		
		pending_param = '';
		
		var reqStatus = originalRequest.responseText.evalJSON();		

		if(reqStatus.status == 'ok') {

			// back to projects
				
			GFAsetActReload('stills_projects');				
					
		}
						
	}
		
	var xhr = new Ajax.Request(base_url + 'ajax/delete_stills_projects/',{

		method: 'post',
		parameters: 'proj='+pending_param,
		onComplete: processRespondino
	});

}

function GFAstills_edit_project() {

	if(!pending_param) {
	
		GFAerror_tip('Please select a project to edit.',543,-882,'top');
	
	} else {
	
		GFAload('stills_projects_edit');
		
	}
	
}

function GFAstills_projects_edit2_selectedit() {

	GFAclearProjTabs();
	
	$('uploado_elholder').hide();
	
	$('project_thumb_holder').setStyle('cursor: pointer;');
	$('stillsprojects_edit_button').addClassName('sm_on');	

	// show button

	//$('stills_edit_button_holder').show();
	
	$$('#project_thumb_holder li.project_thumb').each(function(ele){		
		ele.observe('click', GFAstills_projects_edit2_setEdit);
		
	});


}

function GFAstills_projects_edit2_setEdit(event) {	

	$$('#project_thumb_holder li.project_thumb div.thumb_img img').each(function(ele){		
	
		ele.removeClassName('selectedimg');
		
	});

	$(event.element().id).addClassName('selectedimg');

	img_id = event.element().id.sub('img_','');
	
	pending_param = img_id;
	
	GFAstills_edit_edit_still();
	
}

function GFAstills_projects_edit2_selectdelete() {
	
	GFAclearProjTabs();
	
	$('uploado_elholder').hide();
	
	$('project_thumb_holder').setStyle('cursor: pointer;');
	$('stillsprojects_del_button').addClassName('lg_on');	

	// show button

	$('delete_button_holder').show();
	
	$$('#project_thumb_holder li.project_thumb').each(function(ele){		
		ele.observe('click', GFAstills_projects_edit2_setDelete);
		
	});
	


	
	

}

function GFAstills_projects_edit2_setDelete(event) {

	if(!$('error_tip_top')) {
	
		GFAwarning_tip('This image will be deleted permanently! <br /><br />Click \'DELETE NOW\' to confirm.',561,-1012,'top');
		
	}

	$$('#project_thumb_holder li.project_thumb div.thumb_img img').each(function(ele){		
	
		ele.removeClassName('selectedimg');
		
	});

	$(event.element().id).addClassName('selectedimg');

	img_id = event.element().id.sub('img_','');
	pending_param = img_id;
	
}

function GFAstills_edit_delete_still() {

	function processRespondino(originalRequest) {				
		
		pending_param = '';
		
		var reqStatus = originalRequest.responseText.evalJSON();		

		if(reqStatus.status == 'ok') {

			// back to projects
				
			GFAload('stills_projects_edit2');				
					
		}
						
	}
		
	var xhr = new Ajax.Request(base_url + 'ajax/delete_pending_still/',{

		method: 'post',
		parameters: 'idx='+pending_param,
		onComplete: processRespondino
	});


}

function GFAstills_projects_edit2_add() {

	GFAclearProjTabs();

	// switch button
	$('stillsprojects_add_button').addClassName('sm_on');	
	// show uploadar
	new Effect.BlindDown('uploado_elholder');

}

function GFAstills_edit_edit_still() {

	function triggerCrop(transport) {		
	
		var imgDat = transport.responseText.evalJSON();		
	
		// trigger crop
		
		//$('overlay').update('<div id="crop_holder"><br /><br /><br /><br /><br /><br /><br /><br /><img id="cropimg" src="'+base_url+'s_images/'+imgDat.file+'" /><br /><br /><div id="cropper_header"><div id="cropper_submit"><a href="javascript: GFAfinishCrop(\'stills_projects_edit2_edit\')"><img src="http://n1.protocol0.com/giantfin/res/img/cropper_submit.gif" width="170" height="37" border="0" /></a></div></div><div style="display:none;"><input type="text" name="x1" id="x1" /><input type="text" name="y1" id="y1" /><input type="text" name="x2" id="x2" /><input type="text" name="y2" id="y2" /><input type="text" name="width" id="width" /><input type="text" name="height" id="height" /></div></div>');		
		
		$('overlay').update('<div id="crop_holder"><br /><br /><br /><br /><br /><br /><br /><br /><img id="cropimg" src="'+base_url+'s_images/'+imgDat.file+'" /><br /><br /><div id="cropper_header"><div id="cropper_submit"><a href="javascript: GFAfinishCrop(\'stills_projects_edit2_edit\')"><img src="http://n1.protocol0.com/giantfin/res/img/cropper_submit.gif" width="170" height="37" border="0" /></a></div><div id="cropper_back"><a href="javascript: GFAcancelCrop(\'stills_projects_edit2\')"><img src="http://n1.protocol0.com/giantfin/res/img/cropper_back_button.gif" width="126" height="37" border="0" /></a></div></div><div style="display:none;"><input type="text" name="x1" id="x1" /><input type="text" name="y1" id="y1" /><input type="text" name="x2" id="x2" /><input type="text" name="y2" id="y2" /><input type="text" name="width" id="width" /><input type="text" name="height" id="height" /></div></div>');	
		
		pending_crop_img = imgDat.file;
		pending_crop_id = pending_param;
		pending_param = '';
		
		// with a supplied ratio				
	
		function onEndCrop( coords, dimensions ) {
			$( 'x1' ).value = coords.x1;
			$( 'y1' ).value = coords.y1;
			$( 'x2' ).value = coords.x2;
			$( 'y2' ).value = coords.y2;
			$( 'width' ).value = dimensions.width;
			$( 'height' ).value = dimensions.height;
		}
	
		new Cropper.Img( 
		
			'cropimg', 
			{ 
				ratioDim: { x: 600, y: 400 }, 
				displayOnInit: true,
				onEndCrop: onEndCrop
			} 
		);			
	
		//new Effect.Appear('overlay',{ duration: 0.32 });
		$('overlay').show();
		
	}
		
	var xhr = new Ajax.Request(base_url + 'ajax/get_pending_image/',{

		method: 'post',
		parameters: 'idx='+pending_param,
		onComplete: triggerCrop
	});

}

function GFAstills_projects_edit2_startreorder() {
	
	GFAclearProjTabs();
	
	$('uploado_elholder').hide();
	
	$('project_thumb_holder').setStyle('cursor: move;');
	
	// switch button state
	$('stillsprojects_reorder_button').addClassName('lg_on');
	
	// show reorder button
	//new Effect.Appear('reorder_button_holder');
	$('reorder_button_holder').show();
	
	
	// create sortable
	 
	Sortable.create('project_thumb_holder', {
		
		overlap:'horizontal',
		constraint: false
	
	});

}

function GFAstills_edit_reorder_stills() {


	sortorder = (Sortable.serialize('project_thumb_holder'));
	
	// post new order
	
	var ajax = new Ajax.Request(base_url+'ajax/store_stillsedit_reorder/',{

		parameters: sortorder,
		method: 'post',
		onComplete: finishUpdate 
	});
		
	function finishUpdate(originalRequest) {
	
		//refresh page and queue confirmation message
		
		GFAload('stills_projects_edit2');
	
	}

}

function GFAstillsprojects_cancel_pending() {
	 
	var ajax = new Ajax.Request(base_url+'ajax/stills_projects_cancel_pending/',{

		method: 'get',
		onComplete: finishUpdate 
	});
		
	function finishUpdate(originalRequest) {
	
		GFAload('stills_projects');
		
	}

}

function GFAcancelCrop(action) {

	GFAclearProjTabs();
	$('overlay').hide();
	//$('overlay').update('');
	GFAload(action);

}

function GFAclearProjTabs() {
	
	pending_param = '';
	
	$$('div.error_tip').invoke('remove');
	$$('div.warning_tip').invoke('remove');

	$$('#sortcats_holder li').invoke('removeClassName','selectedli');
	$$('#project_thumb_holder li.project_thumb div.thumb_img img').invoke('removeClassName','selectedimg');

	$$('#tabnav div').each(function(ele) {

		ele.removeClassName('sm_on');
		ele.removeClassName('lg_on');

	});
	
	$$('#project_thumb_holder li.project_thumb').each(function(ele){		
		ele.stopObserving('click');
	});
	
	$('reorder_button_holder').hide();
	$('delete_button_holder').hide();
	if($('edit_button_holder')) {
	$('edit_button_holder').hide();
	}

}


function GFAsave_stills_privacy() {

	//console.log($F('current_uname_fld')+$F('current_passwd_fld')+$F('privacy_on_fld')+$F('privacy_off_fld'));

	if($('error_tip_top')) {
	$('error_tip_top').remove();
	}

	if($F('privacy_on_fld')) {

		var errors = [];
	
		// validate uname/passwd 
		
		var saveFields = ['current_uname_fld','current_passwd_fld'];
		
		var isValid = true;
		var required = true;
		var cor_length = true;
		var alphanum = true;
		
		
		//validate
		
		saveFields.each(function(field) {
			
			if(!Field.present(field)) {
										
				isValid = false;
				required = false;	
							
			}

		});
		
		if(required) {
		
			saveFields.each(function(field) {
			
				if($F(field).length < 3) {
				
					isValid = false;
					cor_length = false;
				
				}
				
				if(!GFGalphanumeric($F(field))) {
					isValid = false;
					alphanum = false;
				}

			});	

		}
		
		if(isValid) {
		
			// save
			
			var params = Object.toQueryString({uname: $F('current_uname_fld'), passwd: $F('current_passwd_fld'), setto: 'on'});
			
			function processRespondino(originalRequest) {				
			
				var reqStatus = originalRequest.responseText.evalJSON();		
	
				if(reqStatus.status == 'ok') {
	
					// load step 2
					
					GFAload('stills_privacy');
							
				}
								
			}
				
			var xhr = new Ajax.Request(base_url + 'ajax/store_stills_privacy/',{
		
				method: 'post',
				parameters: params,
				
				onComplete: processRespondino
			});
		
		} else {
		
			if(!alphanum) errors.push('Please ensure that your username and password are comprised of letters and numbers only.');
			if(!cor_length) errors.push('Please ensure that your username and password are at least 3 charactes in length.');
			if(!required) errors.push('Please enter both a username and password.');
			
			var error_txt = new String;
		
			errors.each(function(error) {
			
				error_txt += error + '<br /><br />';
				
			});
			
			GFAerror_tip(error_txt,584,-988,'top');		
		
		}
		
		
	} else {
		
		// post (check for record and set inactive if present)
		
			
		var params = Object.toQueryString({setto: 'off'});
		
		function processRespondino(originalRequest) {				
		
			var reqStatus = originalRequest.responseText.evalJSON();		

			if(reqStatus.status == 'ok') {

				// load step 2
				
				GFAload('stills_privacy');
						
			}
							
		}
			
		var xhr = new Ajax.Request(base_url + 'ajax/store_stills_privacy/',{
	
			method: 'post',
			parameters: params,
			
			onComplete: processRespondino
		});
		
	}

}

function GFAstills_show_privacydat() {

	$('current_uname_fld').value = $F('old_uname');
	
	$('current_passwd_fld').value = $F('old_passwd');



}
//End of Stills Functions
//Beginning of Reels Functions
function GFAreelscat_start_reorder() {

	GFAclearProjTabs();

	//$('account_pointy').hide();
	
	$('sortcats_holder').setStyle('cursor: move;');
	
	// switch button state
	$('reelscat_reorder_button').addClassName('lg_on');
	
	// show reorder button
	//new Effect.Appear('reorder_button_holder');
	$('reorder_button_holder').show();
	
	$('sortcats_holder').immediateDescendants().each(function(ele){		
				
		ele.stopObserving('click');
		
	});
	
	// create sortable
	 
	Sortable.create('sortcats_holder', {
		
		overlap:'vertical',
		constraint: false
	
	});

	// bind listener func.
	
}

function GFAreels_edit_cat_select() {
	
	GFAclearProjTabs();
	
	$('sortcats_holder').setStyle('cursor: pointer;');
	$('reelscat_edit_button').addClassName('sm_on');	
	// show reorder button
	//new Effect.Appear('edit_button_holder');
	//$('edit_button_holder').show();
	
	$('sortcats_holder').immediateDescendants().each(function(ele){		
		
		// add click binding for edit select to all items
		
		//Event.observe(ele, 'click', function(event){ GFAstills_edit_cat(ele.id);});
		//ele.onclick = function() {return false;};		
		
		ele.observe('click', setEdit);
		
	});
	
	function setEdit(event) {
	
		$('sortcats_holder').immediateDescendants().each(function(ele){		
		
			ele.removeClassName('selectedli');
			
		});

		$(event.element().id).addClassName('selectedli');

		cat = event.element().id.sub('sortcat_','');
		pending_param = cat;
		GFAreels_edit_cat();
		
	}

}

function GFAreels_delete_cat_select() {
	
	GFAclearProjTabs();
	
	$('sortcats_holder').setStyle('cursor: pointer;');
	$('reelscat_del_button').addClassName('lg_on');	
	// show button
	//new Effect.Appear('delete_button_holder');
	$('delete_button_holder').show();
	
	$('sortcats_holder').immediateDescendants().each(function(ele){		
				
		ele.observe('click', setDelete);
		
	});
	
	function setDelete(event) {
	
		if(!$('error_tip_top')) {
		
			GFAwarning_tip('All content within this category will be deleted! <br /><br />Click \'DELETE NOW\' to confirm.',543,-882,'top');
			
		}
	
		$('sortcats_holder').immediateDescendants().each(function(ele){		
		
			ele.removeClassName('selectedli');
			
		});

		$(event.element().id).addClassName('selectedli');

		cat = event.element().id.sub('sortcat_','');
		pending_param_delete = cat;
		
	}

}

function GFAreels_edit_cat() {
	
	GFAload('reels_edit_cat');
	
}

function GFAreels_delete_cat() {
	
	function processRespondino(originalRequest) {				
		
		pending_param_delete = '';
		
		var reqStatus = originalRequest.responseText.evalJSON();		

		if(reqStatus.status == 'ok') {

			// back to projects
				
			GFAsetActReload('reels_cats');				
					
		}
						
	}
		
	var xhr = new Ajax.Request(base_url + 'ajax/delete_reels_cat/',{

		method: 'post',
		parameters: 'cat='+pending_param_delete,
		onComplete: processRespondino
	});
	
}
function GFAreelscat_save_reorder() {

	sortorder = (Sortable.serialize('sortcats_holder'));
	
	// post new order
	
	var ajax = new Ajax.Request(base_url+'ajax/store_sort_reelscat/',{

		parameters: sortorder,
		method: 'post',
		onComplete: finishUpdate 
	});
		
	function finishUpdate(originalRequest) {
	
		//refresh page and queue confirmation message
		
		window.location = Math.floor(21*Math.random(2));;
	
	}


}
function GFAsave_add_reels_cat() {


	if($('error_tip_top')) {
		$('error_tip_top').remove();
	}

	var saveFields = ['cat_title_fld'];
	
	var errors = [];
	
	var isValid = true;
	var required = true;
	
	//validate
	
	saveFields.each(function(field) {
		
		if(!Field.present(field)) {
									
			isValid = false;
			required = false;
						
		}

	});
	
	if(!required) {
	
		errors.push('Please enter a category title.');
		
	} else { // ..additional checks
	
		//check that title is text only
		
		if(!GFGalphanumeric($F('cat_title_fld'))) {
		
			errors.push('Please use only letters and numbers in your category.');
			isValid = false;
		
		}
		
		//check title length
		
		if($F('cat_title_fld').length > 20) {
		
			errors.push('Please select a title less than 20 characters.');
			isValid = false;
		
		}
				
	}

	if(isValid) {
	
		// save category
		
		var params = Object.toQueryString({title: $F('cat_title_fld')});
		
		function processRespondino(originalRequest) {				
		
			var reqStatus = originalRequest.responseText.evalJSON();		

			if(reqStatus.status == 'ok') {

				// load step 2
				
				GFAsetActReload('reels_cats');				
				
						
			}
							
		}
			
		var xhr = new Ajax.Request(base_url + 'ajax/store_add_reels_cat/',{
	
			method: 'post',
			parameters: params,
			
			onComplete: processRespondino
		});
			
	} else {
		
		var error_txt = new String;
		
		errors.each(function(error) {
		
			error_txt += error + '<br /><br />';
			
		});
		
		GFAerror_tip(error_txt,550,-999,'top');
	
	}

}

function GFAsave_edit_reels_cat() {

	if($('error_tip_top')) {
		$('error_tip_top').remove();
	}

	var saveFields = ['cat_title_fld'];
	
	var errors = [];
	
	var isValid = true;
	var required = true;
	
	//validate
	
	saveFields.each(function(field) {
		
		if(!Field.present(field)) {
									
			isValid = false;
			required = false;
						
		}

	});
	
	if(!required) {
	
		errors.push('Please enter a category title.');
		
	} else { // ..additional checks
	
		//check that title is text only
		
		if(!GFGalphanumeric($F('cat_title_fld'))) {
		
			errors.push('Please use only letters and numbers in your category.');
			isValid = false;
		
		}
		
		if($F('cat_title_fld').length > 20) {
		
			errors.push('Please select a title less than 20 characters.');
			isValid = false;
		
		}
				
	}

	if(isValid) {
	
		// save category
		
		var params = Object.toQueryString({title: $F('cat_title_fld'),cat_id: $F('cat_id')});
		
		function processRespondino(originalRequest) {				
		
			var reqStatus = originalRequest.responseText.evalJSON();		

			if(reqStatus.status == 'ok') {

				// load step 2
				
				GFAsetActReload('reels_cats');				
				
						
			}
							
		}
			
		var xhr = new Ajax.Request(base_url + 'ajax/store_edit_reels_cat/',{
	
			method: 'post',
			parameters: params,
			
			onComplete: processRespondino
		});
			
	} else {
		
		var error_txt = new String;
		
		errors.each(function(error) {
		
			error_txt += error + '<br /><br />';
			
		});
		
		GFAerror_tip(error_txt,550,-999,'top');
	
	}

}

function GFAreels_set_cat(category) {
	
	var ajax = new Ajax.Request(base_url+'ajax/reels_projects_cancel_pending/',{ method: 'get' });
	
	reels_cat_to_load = category;
	
	// set cookie
	
	GFAxhrCookie('reels_current_cat',category,'set');
	
	$$('#reels_projects_subnav div').each(function(nav_item) {
	
		nav_item.removeClassName('selectedsub');
		
		replacestr = nav_item.innerHTML.sub('&gt','&nbsp');
	
		nav_item.innerHTML = replacestr;
		
	});	
	
	// change nav
	
	$('2|3|'+category).addClassName('selectedsub');
	
	// change little arrow
	
	replacestr = $('2|3|'+category).innerHTML.sub('&nbsp;&nbsp;&nbsp;','&gt;&nbsp;&nbsp;');
	
	$('2|3|'+category).innerHTML = replacestr;
				
	// load stills projects
	
	GFAload('reels_projects');
	
}

function GFAreels_show_privacydat() {

	$('current_uname_fld').value = $F('old_uname');
	
	$('current_passwd_fld').value = $F('old_passwd');



}

function GFAreelsprojects_start_reorder() {

	GFAclearProjTabs();

	//$('account_pointy').hide();
	
	$('project_thumb_holder').setStyle('cursor: move;');
	
	// switch button state
	$('reelsprojects_reorder_button').addClassName('lg_on');
	
	// show reorder button
	//new Effect.Appear('reorder_button_holder');
	$('reorder_button_holder').show();
	
	
	// create sortable
	 
	Sortable.create('project_thumb_holder', {
		
		overlap:'horizontal',
		constraint: false
	
	});

	// bind listener func.
	
}

function GFAreelsprojects_save_reorder() {

	sortorder = (Sortable.serialize('project_thumb_holder'));
	
	// post new order
	
	var ajax = new Ajax.Request(base_url+'ajax/store_sort_reelsprojects/',{

		parameters: sortorder,
		method: 'post',
		onComplete: finishUpdate 
	});
		
	function finishUpdate(originalRequest) {
	
		//refresh page and queue confirmation message
		
		window.location = Math.floor(21*Math.random(2));;
	
	}


}



function GFAreels_projects_delete_select() {
	
	GFAclearProjTabs();
	
	$('project_thumb_holder').setStyle('cursor: pointer;');
	$('reelsprojects_del_button').addClassName('lg_on');	
	// show button
	//new Effect.Appear('delete_button_holder');
	$('delete_button_holder').show();
	
	$$('#project_thumb_holder li.project_thumb').each(function(ele){		
		ele.observe('click', setDelete);
		
	});
	
	function setDelete(event) {
	
		if(!$('error_tip_top')) {
		
			GFAwarning_tip('All content within this project will be deleted! <br /><br />Click \'DELETE NOW\' to confirm.',543,-882,'top');
			
		}
	
		$$('#project_thumb_holder li.project_thumb div.thumb_img img').each(function(ele){		
		
			ele.removeClassName('selectedimg');
			
		});

		$(event.element().id).addClassName('selectedimg');

		cat = event.element().id.sub('projimg_','');
		pending_param = cat;
		
	}

}

function GFAreels_show_delete() {
		$('error_tip_top').hide();
		$('delete_tip').show();
}

function GFAreels_cat_show_delete() {
		$('error_tip_top').hide();
		$('delete_tip').show();
}

function GFAreels_hide_delete() {
		GFAclearProjTabs();
		$('delete_tip').hide();
		window.location = Math.floor(21*Math.random(2));;		
}

function GFAstills_hide_exceeded() {
	$('exceeded_tip').hide();
}

function GFAcancel_show() {
		$('cancel_tip').show();
}

function GFAcancel_hide() {
		$('cancel_tip').hide();
}

function GFAreels_projects_edit_select() {

	GFAclearProjTabs();
	
	$('project_thumb_holder').setStyle('cursor: pointer;');
	$('reelsprojects_edit_button').addClassName('sm_on');	
	// show button
	//new Effect.Appear('delete_button_holder');
	//$('edit_button_holder').show();
	
	$$('#project_thumb_holder li.project_thumb').each(function(ele){		
		ele.observe('click', setEdit);
		
	});
	
	function setEdit(event) {	
	
		$$('#project_thumb_holder li.project_thumb div.thumb_img img').each(function(ele){		
		
			ele.removeClassName('selectedimg');
			
		});

		$(event.element().id).addClassName('selectedimg');

		cat = event.element().id.sub('projimg_','');
		
		pending_param = cat;
		GFAreels_edit_project();
		
	}

}

function GFAreels_delete_project() {

	function processRespondino(originalRequest) {				
		
		pending_param = '';
		
		var reqStatus = originalRequest.responseText.evalJSON();		

		if(reqStatus.status == 'ok') {

			// back to projects
				
			GFAsetActReload('reels_projects');				
					
		}
						
	}
		
	var xhr = new Ajax.Request(base_url + 'ajax/delete_reels_projects/',{

		method: 'post',
		parameters: 'proj='+pending_param,
		onComplete: processRespondino
	});

}

function GFAreels_edit_project() {

	if(!pending_param) {
	
		GFAerror_tip('Please select a project to edit.',543,-882,'top');
	
	} else {
	
		GFAload('reels_projects_edit');
		
	}
	
}

function GFAreels_projects_edit2_selectedit() {

	GFAclearProjTabs();
	
	$('uploado_elholder').hide();
	
	$('project_thumb_holder').setStyle('cursor: pointer;');
	$('reelsprojects_edit_button').addClassName('sm_on');	

	// show button

	//$('stills_edit_button_holder').show();
	
	$$('#project_thumb_holder li.project_thumb').each(function(ele){		
		ele.observe('click', GFAreels_projects_edit2_setEdit);
		
	});


}

function GFAprofile_edit2_setEdit(event) {	

	/*$$('#project_thumb_holder li.project_thumb div.thumb_img img').each(function(ele){		
	
		ele.removeClassName('selectedimg');
		
	});

	$(event.element().id).addClassName('selectedimg');

	img_id = event.element().id.sub('img_','');
	
	pending_param = img_id;*/
	
	GFAprofile_edit_edit_still();
	
}

function GFAprofile_edit_edit_still() {

	function triggerCrop(transport) {		
	
		var imgDat = transport.responseText.evalJSON();		
	
		// trigger crop
		
		//$('overlay').update('<div id="crop_holder"><br /><br /><br /><br /><br /><br /><br /><br /><img id="cropimg" src="'+base_url+'s_images/'+imgDat.file+'" /><br /><br /><div id="cropper_header"><div id="cropper_submit"><a href="javascript: GFAfinishCrop(\'profile_edit2_edit\')"><img src="http://n1.protocol0.com/giantfin/res/img/cropper_submit.gif" width="170" height="37" border="0" /></a></div></div><div style="display:none;"><input type="text" name="x1" id="x1" /><input type="text" name="y1" id="y1" /><input type="text" name="x2" id="x2" /><input type="text" name="y2" id="y2" /><input type="text" name="width" id="width" /><input type="text" name="height" id="height" /></div></div>');		
		
		$('overlay').update('<div id="crop_holder"><br /><br /><br /><br /><br /><br /><br /><br /><img id="cropimg" src="'+base_url+'s_images/'+imgDat.file+'" /><br /><br /><div id="cropper_header"><div id="cropper_submit"><a href="javascript: GFAfinishCrop(\'profile_edit2_edit\')"><img src="http://n1.protocol0.com/giantfin/res/img/cropper_submit.gif" width="170" height="37" border="0" /></a></div><div id="cropper_back"><a href="javascript: GFAcancelCrop(\'profile_edit2\')"><img src="http://n1.protocol0.com/giantfin/res/img/cropper_back_button.gif" width="126" height="37" border="0" /></a></div></div><div style="display:none;"><input type="text" name="x1" id="x1" /><input type="text" name="y1" id="y1" /><input type="text" name="x2" id="x2" /><input type="text" name="y2" id="y2" /><input type="text" name="width" id="width" /><input type="text" name="height" id="height" /></div></div>');	
		
		pending_crop_img = imgDat.file;
		pending_crop_id = pending_param;
		pending_param = '';
		
		// with a supplied ratio				
	
		function onEndCrop( coords, dimensions ) {
			$( 'x1' ).value = coords.x1;
			$( 'y1' ).value = coords.y1;
			$( 'x2' ).value = coords.x2;
			$( 'y2' ).value = coords.y2;
			$( 'width' ).value = dimensions.width;
			$( 'height' ).value = dimensions.height;
		}
	
		new Cropper.Img( 
		
			'cropimg', 
			{ 
				ratioDim: { x: 600, y: 400 }, 
				displayOnInit: true,
				onEndCrop: onEndCrop
			} 
		);			
	
		//new Effect.Appear('overlay',{ duration: 0.32 });
		$('overlay').show();
		
	}
		
	var xhr = new Ajax.Request(base_url + 'ajax/get_pending_image/',{

		method: 'post',
		parameters: 'idx='+pending_param,
		onComplete: triggerCrop
	});

}

function GFAreels_projects_edit2_selectdelete() {
	
	GFAclearProjTabs();
	
	$('uploado_elholder').hide();
	
	$('project_thumb_holder').setStyle('cursor: pointer;');
	$('stillsprojects_del_button').addClassName('lg_on');	

	// show button

	$('delete_button_holder').show();
	
	$$('#project_thumb_holder li.project_thumb').each(function(ele){		
		ele.observe('click', GFAreels_projects_edit2_setDelete);
		
	});
	
}

function GFAreels_projects_edit2_setDelete(event) {

	if(!$('error_tip_top')) {
	
		GFAwarning_tip('This image will be deleted permanently! <br /><br />Click \'DELETE NOW\' to confirm.',561,-1012,'top');
		
	}

	$$('#project_thumb_holder li.project_thumb div.thumb_img img').each(function(ele){		
	
		ele.removeClassName('selectedimg');
		
	});

	$(event.element().id).addClassName('selectedimg');

	img_id = event.element().id.sub('img_','');
	pending_param = img_id;
	
}

function GFAreels_edit_delete_reel() {

	function processRespondino(originalRequest) {				
		
		pending_param = '';
		
		var reqStatus = originalRequest.responseText.evalJSON();		

		if(reqStatus.status == 'ok') {

			// back to projects
				
			GFAload('reels_projects_edit2');				
					
		}
						
	}
		
	var xhr = new Ajax.Request(base_url + 'ajax/delete_pending_reel/',{

		method: 'post',
		parameters: 'idx='+pending_param,
		onComplete: processRespondino
	});


}


function GFAreels_edit_edit_reel() {

	function triggerCrop(transport) {		
	
		var imgDat = transport.responseText.evalJSON();		
	
		// trigger crop
		
		//$('overlay').update('<div id="crop_holder"><br /><br /><br /><br /><br /><br /><br /><br /><img id="cropimg" src="'+base_url+'s_images/'+imgDat.file+'" /><br /><br /><div id="cropper_header"><div id="cropper_submit"><a href="javascript: GFAfinishCrop(\'stills_projects_edit2_edit\')"><img src="http://n1.protocol0.com/giantfin/res/img/cropper_submit.gif" width="170" height="37" border="0" /></a></div></div><div style="display:none;"><input type="text" name="x1" id="x1" /><input type="text" name="y1" id="y1" /><input type="text" name="x2" id="x2" /><input type="text" name="y2" id="y2" /><input type="text" name="width" id="width" /><input type="text" name="height" id="height" /></div></div>');		
		
		$('overlay').update('<div id="crop_holder"><br /><br /><br /><br /><br /><br /><br /><br /><img id="cropimg" src="'+base_url+'s_images/'+imgDat.file+'" /><br /><br /><div id="cropper_header"><div id="cropper_submit"><a href="javascript: GFAfinishCrop(\'stills_projects_edit2_edit\')"><img src="http://n1.protocol0.com/giantfin/res/img/cropper_submit.gif" width="170" height="37" border="0" /></a></div><div id="cropper_back"><a href="javascript: GFAcancelCrop(\'stills_projects_edit2\')"><img src="http://n1.protocol0.com/giantfin/res/img/cropper_back_button.gif" width="126" height="37" border="0" /></a></div></div><div style="display:none;"><input type="text" name="x1" id="x1" /><input type="text" name="y1" id="y1" /><input type="text" name="x2" id="x2" /><input type="text" name="y2" id="y2" /><input type="text" name="width" id="width" /><input type="text" name="height" id="height" /></div></div>');	
		
		pending_crop_img = imgDat.file;
		pending_crop_id = pending_param;
		pending_param = '';
		
		// with a supplied ratio				
	
		function onEndCrop( coords, dimensions ) {
			$( 'x1' ).value = coords.x1;
			$( 'y1' ).value = coords.y1;
			$( 'x2' ).value = coords.x2;
			$( 'y2' ).value = coords.y2;
			$( 'width' ).value = dimensions.width;
			$( 'height' ).value = dimensions.height;
		}
	
		new Cropper.Img( 
		
			'cropimg', 
			{ 
				ratioDim: { x: 600, y: 400 }, 
				displayOnInit: true,
				onEndCrop: onEndCrop
			} 
		);			
	
		//new Effect.Appear('overlay',{ duration: 0.32 });
		$('overlay').show();
		
	}
		
	var xhr = new Ajax.Request(base_url + 'ajax/get_pending_image/',{

		method: 'post',
		parameters: 'idx='+pending_param,
		onComplete: triggerCrop
	});

}

function GFAreels_edit_reorder_stills() {


	sortorder = (Sortable.serialize('project_thumb_holder'));
	
	// post new order
	
	var ajax = new Ajax.Request(base_url+'ajax/store_reelsedit_reorder/',{

		parameters: sortorder,
		method: 'post',
		onComplete: finishUpdate 
	});
		
	function finishUpdate(originalRequest) {
	
		//refresh page and queue confirmation message
		
		GFAload('reels_projects_edit2');
	
	}

}

function GFAreelsprojects_cancel_pending(slideshow) {
	 
	var ajax = new Ajax.Request(base_url+'ajax/reels_projects_cancel_pending/',{

		method: 'get',
		onComplete: finishUpdate 
	});
		
	function finishUpdate(originalRequest) {
	
		if(slideshow) {
			GFAload('home_slideshow_manual')
		} else {
			GFAload('reels_projects');
		}
		
	}

}

function GFAreelsprojects_save_edit_project_1() {

	if($('error_tip_top')) {
	$('error_tip_top').remove();
	}
	
	$('project_desc_fld').value = tinyMCE.getContent('project_desc_fld');
	//tinyMCE.idCounter = 0;


	var saveFields = ['project_title_fld'];
	
	var errors = [];
	
	var isValid = true;
	var required = true;
	
	//validate
	
	saveFields.each(function(field) {
		
		if(!Field.present(field)) {
									
			isValid = false;
			required = false;
						
		}

	});
	
	if(!required) {
	
		errors.push('Please enter a title.');
		
	} else { // ..additional checks
	
		//check that title is text only
		
		if(!GFGalphanumeric($F('project_title_fld'))) {
		
			errors.push('Please use only letters and numbers in your title.');
			isValid = false;
		
		}
		
			
	}

	if(isValid) {
	
		// save to cookie and go stg. II
		
		reels_cat_to_load = $F('category_fld');

		var params = Object.toQueryString({project_id: $F('project_id'),title: $F('project_title_fld'), category: $F('category_fld'),image: $F('filename'), desc: $F('project_desc_fld')});
		
		function processRespondino(originalRequest) {				
	
		var reqStatus = originalRequest.responseText.evalJSON();		

		if(reqStatus.status == 'ok') {

		
			
		
		
		
	
			pending_images = [];
			
			// back to projects ... may have to force the category
			
			GFAsetActReload('reels_projects');
					
		}
						
	}
		
	var xhr = new Ajax.Request(base_url + 'ajax/store_edit_reelsproject_step2/',{

		method: 'post',
		parameters: params,
		onComplete: processRespondino
	});

									
	
	} else {
		
		var error_txt = new String;
		
		errors.each(function(error) {
		
			error_txt += error + '<br /><br />';
			
		});
		
		GFAerror_tip(error_txt,584,-988,'top');
	
	}


}



//End of Reels Functions

//Begginning of Resume Functions

function GFAsave_resume_edit() {

	$('project_desc_fld').value = tinyMCE.getContent('project_desc_fld');
	
	var errors = [];
		
	var isValid = true;
	
	//validate
	
	

	if(isValid) {
	
		// save category
		
		var params = Object.toQueryString({body: $F('project_desc_fld')});
		
		function processRespondino(originalRequest) {				
		
			var reqStatus = originalRequest.responseText.evalJSON();		

			if(reqStatus.status == 'ok') {

				// load step 2
				
				GFAsetActReload('resume');				
				
						
			}
							
		}
			
		var xhr = new Ajax.Request(base_url + 'ajax/store_edit_resume/',{
	
			method: 'post',
			parameters: params,
			
			onComplete: processRespondino
		});
			
	} 
}

function GFAsave_resume_add() {


	if($('error_tip_top')) {
		$('error_tip_top').remove();
	}
	
	$('project_desc_fld').value = tinyMCE.getContent('project_desc_fld');

	var saveFields = ['project_desc_fld'];
	
	var errors = [];
	
	
	var isValid = true;
	var required = true;
	


	if(isValid) {
	
		// save category
		
		var params = Object.toQueryString({body: $F('project_desc_fld')});
		
		function processRespondino(originalRequest) {				
		
			var reqStatus = originalRequest.responseText.evalJSON();		

			if(reqStatus.status == 'ok') {

				// load step 2
				
				GFAsetActReload('resume');				
				
						
			}
							
		}
			
		var xhr = new Ajax.Request(base_url + 'ajax/store_add_resume/',{
	
			method: 'post',
			parameters: params,
			
			onComplete: processRespondino
		});
			
	} else {
		
		var error_txt = new String;
		
		errors.each(function(error) {
		
			error_txt += error + '<br /><br />';
			
		});
		
		GFAerror_tip(error_txt,550,-999,'top');
	
	}

}

function GFAresume_load_pdf(img_sid) {
	
	// clear all error boxes

	if($('error_tip_top')) {
	$('error_tip_top').remove();
	}

	function show_img(transport) {
		
		var imgDat = transport.responseText.evalJSON();		

		if(imgDat.status == 'ok') {
				
					
			$('pdf_thumb').show();
			
						
		} else {


				// queue error box, for bad file.
				GFAqueuebox('There was an error uploading your PDF.',584,-988,'top');			
			
		}
		
	}

	var ajax = new Ajax.Request('/giantfin/ajax/temp_pdf/'+img_sid+'/', { asynchronous:true, onComplete:show_img });

	
}

function GFAresume_select_delete() {
		if($('error_tip_top')) {
			$('error_tip_top').remove();
		}
		
		var account_holder = document.getElementById("account_holder");
		var height = account_holder.getAttribute("height");
		//GFAerror_tip("Resume and all content will be permanently deleted",543,-1200,'top');
		
		$('delete_button_holder').show();
		

}

function GFAresume_delete() {
	
	function processRespondino(originalRequest) {				
		
		var reqStatus = originalRequest.responseText.evalJSON();		

		if(reqStatus.status == 'ok') {
				
			GFAsetActReload('resume');				
					
		}
						
	}
		
	var xhr = new Ajax.Request(base_url + 'ajax/delete_resume/',{

		method: 'post',
		onComplete: processRespondino
	});
	
}

//End of Resume Functions


function beginAsyncUpload(ul,sid,ele_id,callback) {		

  ul.form.submit();
	uploads_in_progress = uploads_in_progress + 1;
	var pb = document.getElementById(ul.name + "_progress");
	pb.parentNode.style.display='block';
	new ProgressTracker(sid,{
		progressBar: pb,
		onComplete: function() {
			var inp_id = pb.id.replace("_progress","");
			uploads_in_progress = uploads_in_progress - 1;
			var inp = document.getElementById(inp_id);
			if(inp) {
				inp.value = sid;
			}
			pb.parentNode.style.display='none';
			
			eval(callback + '(\''+sid + '\')');
		},
		onFailure: function(msg) {
			pb.parentNode.style.display='none';
			alert(msg);
			uploads_in_progress = uploads_in_progress - 1;
		}
	});
}

function GFAhome_set_slideshow(type) {
	
	
	if(type == "automatic") {
		
		$('1|2|manual').removeClassName('selectedsub');
		$('1|2|automatic').addClassName('selectedsub');
		
		slideshow_type = "automatic";
		
		GFAload('home_slideshow');
		
	} else {
		
		$('1|2|automatic').removeClassName('selectedsub');
		$('1|2|manual').addClassName('selectedsub');
		
		slideshow_type = "manual";
		
		GFAload('home_slideshow_manual');
				
	}
		
}

function GFAhome_slideshow() {
	
	if(slideshow_type == "automatic") {
		
		GFAload('home_slideshow');	
		
	} else {
		
		GFAload('home_slideshow_manual');
		
	}
}

function GFAsave_slideshow() {

	if($('error_tip_top')) {
	$('error_tip_top').remove();
	}
		if($('save_tip_top')) {
	$('save_tip_top').remove();
	}

	if($F('reel_fld')) {

		var isValid = true;

		if(isValid) {
		
			// save
			
			var params = Object.toQueryString({setto: 'r'});
			
			function processRespondino(originalRequest) {				
			
				var reqStatus = originalRequest.responseText.evalJSON();		
	
				if(reqStatus.status == 'ok') {
					
					
					GFAsave_tip('Your slideshow has been saved correctly click X in the top right corner to close box.',344,-818,'top','slideshow');							
				}
								
			}
				
			var xhr = new Ajax.Request(base_url + 'ajax/store_home_slideshow/',{
		
				method: 'post',
				parameters: params,
				
				onComplete: processRespondino
			});
		
		} else {
		
		}
		
		
	} else if($F('still_fld')) {
		
		// post (check for record and set inactive if present)
		
			
		var params = Object.toQueryString({setto: 's'});
		
		function processRespondino(originalRequest) {				
		
			var reqStatus = originalRequest.responseText.evalJSON();		

			if(reqStatus.status == 'ok') {

				GFAsave_tip('Your slideshow has been saved correctly click X in the top right corner to close box.',344,-818,'top','slideshow');											
			}
							
		}
			
		var xhr = new Ajax.Request(base_url + 'ajax/store_home_slideshow/',{
	
			method: 'post',
			parameters: params,
			
			onComplete: processRespondino
		});
		
	} else if($F('reel_still_fld')) {
		
		// post (check for record and set inactive if present)
		
			
		var params = Object.toQueryString({setto: 'b'});
		
		function processRespondino(originalRequest) {				
		
			var reqStatus = originalRequest.responseText.evalJSON();		

			if(reqStatus.status == 'ok') {

				GFAsave_tip('Your slideshow has been saved correctly click X in the top right corner to close box.',344,-818,'top','slideshow');					
						
			}
							
		}
			
		var xhr = new Ajax.Request(base_url + 'ajax/store_home_slideshow/',{
	
			method: 'post',
			parameters: params,
			
			onComplete: processRespondino
		});
		
	} else if($F('manual_fld')) {
		
		// post (check for record and set inactive if present)
			
		var params = Object.toQueryString({setto: 'm'});
		
		function processRespondino(originalRequest) {				
		
			var reqStatus = originalRequest.responseText.evalJSON();		

			if(reqStatus.status == 'ok') {

				GFAsave_tip('Your slideshow has been saved correctly click X in the top right corner to close box.',344,-818,'top','slideshow');
								
			}
							
		}
			
		var xhr = new Ajax.Request(base_url + 'ajax/store_home_slideshow/',{
	
			method: 'post',
			parameters: params,
			
			onComplete: processRespondino
		});
		
	}

}

function GFAhomeslideshow_load_new_pimg(img_sid) {

	// clear all error boxes

	if($('error_tip_top')) {
	$('error_tip_top').remove();
	}
	
	var params = Object.toQueryString({title: $F('project_title_fld'),link: $F('project_link_fld'), file: $F('filename')});
	
	function show_img(transport) {
		
		var imgDat = transport.responseText.evalJSON();		

		if(imgDat.status == 'ok') {
				
			if(imgDat.loadcrop==1) {			
					
				
			} else {
			
			
				// image is correct, display
				if(imgDat.thumb != ''){
				$('img_preview').innerHTML = '<img src="'+base_url+'s_images/'+imgDat.thumb+'" width="104" height="69" />';
			
				new Effect.BlindDown('img_preview');
				}
				
			}
						
		} else {
		
			if(imgDat.status == 'toosmall') {
			
				// queue error box
				GFAqueuebox('The image you have uploaded is too small.  Please upload a larger image.',584,-988,'top');
			
			}  else {

				// queue error box, for bad file.
				GFAqueuebox('Please upload a valid JPG file less than 4 MB.  The file you have uploaded is invalid.',584,-988,'top');			
			
			}
			
		}
		
		GFAload('home_slideshow_add');
		
	}

	var ajax = new Ajax.Request('/giantfin/ajax/temp_slideshow_pimg/'+img_sid+'/', { asynchronous:true, parameters: params, onComplete:show_img });

}

function GFAhomeslideshow_load_edit_pimg(img_sid) {

	// clear all error boxes

	if($('error_tip_top')) {
	$('error_tip_top').remove();
	}
	
	var params = Object.toQueryString({title: $F('project_title_fld'),link: $F('project_link_fld')});
	
	function show_img(transport) {
		
		var imgDat = transport.responseText.evalJSON();		

		if(imgDat.status == 'ok') {
				
			if(imgDat.loadcrop==1) {			
					
				
			} else {
			
			
				// image is correct, display
			
				$('img_preview').innerHTML = '<img src="'+base_url+'s_images/'+imgDat.thumb+'" width="104" height="69" />';
			
				new Effect.BlindDown('img_preview');
				
			}
						
		} else {
		
			if(imgDat.status == 'toosmall') {
			
				// queue error box
				GFAqueuebox('The image you have uploaded is too small.  Please upload a larger image.',584,-988,'top');
			
			}  else {

				// queue error box, for bad file.
				GFAqueuebox('Please upload a valid JPG file less than 4 MB.  The file you have uploaded is invalid.',584,-988,'top');			
			
			}
			
		}
		
		GFAload('home_slideshow_edit');
		
	}

	var ajax = new Ajax.Request('/giantfin/ajax/temp_slideshow_pimg/'+img_sid+'/', { asynchronous:true, parameters: params, onComplete:show_img });

}

function GFAhomeslideshow_save_new_image() {
	
	if($('error_tip_top')) {
	$('error_tip_top').remove();
	}
	
	if($F('filename') == '') 
	{
		GFAerror_tip("Please enter an image",550,-999,'top');
		exit();
	}
	var params = Object.toQueryString({title: $F('project_title_fld'),link: $F('project_link_fld'),image: $F('filename')});
	
	function processRespondino(originalRequest) {				
	
		var reqStatus = originalRequest.responseText.evalJSON();		

		if(reqStatus.status == 'ok') {

			pending_images = [];
			
			// back to projects ... may have to force the category
			
			GFAload('home_slideshow_manual');
					
		}
						
	}
		
	var xhr = new Ajax.Request(base_url + 'ajax/store_add_homeslideshow/',{

		method: 'post',
		parameters: params,
		onComplete: processRespondino
	});


}

function GFAhomeslideshow_save_edit_image() {
	
	var params = Object.toQueryString({title: $F('project_title_fld'),link: $F('project_link_fld'),id: $F('project_id_fld'),image: $F('filename')});
	
	function processRespondino(originalRequest) {				
	
		var reqStatus = originalRequest.responseText.evalJSON();		

		if(reqStatus.status == 'ok') {

			pending_images = [];
				
			GFAload('home_slideshow_manual');
					
		}
						
	}
		
	var xhr = new Ajax.Request(base_url + 'ajax/store_edit_homeslideshow/',{

		method: 'post',
		parameters: params,
		onComplete: processRespondino
	});


}

function GFAhome_slideshow_selectedit() {

	GFAclearProjTabs();
	
//	$('uploado_elholder').hide();
	
	$('project_thumb_holder').setStyle('cursor: pointer;');
	$('stillsprojects_edit_button').addClassName('sm_on');	

	// show button

	//$('stills_edit_button_holder').show();
	
	$$('#project_thumb_holder li.project_thumb').each(function(ele){		
		ele.observe('click', GFAhome_slideshow_setEdit);
		
	});


}

function GFAhome_slideshow_setEdit(event) {	

	$$('#project_thumb_holder li.project_thumb div.thumb_img img').each(function(ele){		
	
		ele.removeClassName('selectedimg');
		
	});

	$(event.element().id).addClassName('selectedimg');

	img_id = event.element().id.sub('projimg_','');
	
	pending_param = img_id;
	GFAload('home_slideshow_edit');
	
}

function GFAhome_slideshow_edit_slide() {

	function triggerCrop(transport) {		
	
		var imgDat = transport.responseText.evalJSON();		
	
		// trigger crop
		
		//$('overlay').update('<div id="crop_holder"><br /><br /><br /><br /><br /><br /><br /><br /><img id="cropimg" src="'+base_url+'s_images/'+imgDat.file+'" /><br /><br /><div id="cropper_header"><div id="cropper_submit"><a href="javascript: GFAfinishCrop(\'stills_projects_edit2_edit\')"><img src="http://n1.protocol0.com/giantfin/res/img/cropper_submit.gif" width="170" height="37" border="0" /></a></div></div><div style="display:none;"><input type="text" name="x1" id="x1" /><input type="text" name="y1" id="y1" /><input type="text" name="x2" id="x2" /><input type="text" name="y2" id="y2" /><input type="text" name="width" id="width" /><input type="text" name="height" id="height" /></div></div>');		
		
		$('overlay').update('<div id="crop_holder"><br /><br /><br /><br /><br /><br /><br /><br /><img id="cropimg" src="'+base_url+'s_images/'+imgDat.file+'" /><br /><br /><div id="cropper_header"><div id="cropper_submit"><a href="javascript: GFAfinishCrop(\'home_slideshow_manual\')"><img src="http://n1.protocol0.com/giantfin/res/img/cropper_submit.gif" width="170" height="37" border="0" /></a></div><div id="cropper_back"><a href="javascript: GFAcancelCrop(\'home_slideshow_manual\')"><img src="http://n1.protocol0.com/giantfin/res/img/cropper_back_button.gif" width="126" height="37" border="0" /></a></div></div><div style="display:none;"><input type="text" name="x1" id="x1" /><input type="text" name="y1" id="y1" /><input type="text" name="x2" id="x2" /><input type="text" name="y2" id="y2" /><input type="text" name="width" id="width" /><input type="text" name="height" id="height" /></div></div>');	
		
		pending_crop_img = imgDat.file;
		pending_crop_id = pending_param;
		pending_param = '';
		
		// with a supplied ratio				
	
		function onEndCrop( coords, dimensions ) {
			$( 'x1' ).value = coords.x1;
			$( 'y1' ).value = coords.y1;
			$( 'x2' ).value = coords.x2;
			$( 'y2' ).value = coords.y2;
			$( 'width' ).value = dimensions.width;
			$( 'height' ).value = dimensions.height;
		}
	
		new Cropper.Img( 
		
			'cropimg', 
			{ 
				ratioDim: { x: 600, y: 400 }, 
				displayOnInit: true,
				onEndCrop: onEndCrop
			} 
		);			
	
			// image is correct, display
			
			$('img_preview').innerHTML = '<img src="'+base_url+'s_images/'+imgDat.thumb+'" width="104" height="69" />';
			
			new Effect.BlindDown('img_preview');
		
	}
		
	var xhr = new Ajax.Request(base_url + 'ajax/get_slideshow_image/',{

		method: 'post',
		parameters: 'idx='+pending_param,
		onComplete: triggerCrop
	});

}


function GFAhome_slideshow_delete_select() {
	
	GFAclearProjTabs();
	
	$('project_thumb_holder').setStyle('cursor: pointer;');
	$('stillsprojects_del_button').addClassName('lg_on');	
	// show button
	//new Effect.Appear('delete_button_holder');
	$('delete_button_holder').show();
	
	$$('#project_thumb_holder li.project_thumb').each(function(ele){		
		ele.observe('click', setDelete);
		
	});
	
	function setDelete(event) {
	
		if(!$('error_tip_top')) {
		
			GFAwarning_tip('This Image Will Be Deleted! <br /><br />Click \'DELETE NOW\' to confirm.',543,-882,'top');
			
		}
	
		$$('#project_thumb_holder li.project_thumb div.thumb_img img').each(function(ele){		
		
			ele.removeClassName('selectedimg');
			
		});

		$(event.element().id).addClassName('selectedimg');

		cat = event.element().id.sub('projimg_','');
		pending_param = cat;
		
	}

}

function GFAhome_delete_slideshow() {

	function processRespondino(originalRequest) {				
		
		pending_param = '';
		
		var reqStatus = originalRequest.responseText.evalJSON();		

		if(reqStatus.status == 'ok') {

			// back to projects
				
			GFAload('home_slideshow_manual');
					
		}
						
	}
		
	var xhr = new Ajax.Request(base_url + 'ajax/delete_home_slideshow/',{

		method: 'post',
		parameters: 'proj='+pending_param,
		onComplete: processRespondino
	});

}

function GFAhomeslideshow_save_reorder() {

	sortorder = (Sortable.serialize('project_thumb_holder'));
	
	// post new order
	
	var ajax = new Ajax.Request(base_url+'ajax/store_sort_homeslideshow/',{

		parameters: sortorder,
		method: 'post',
		onComplete: finishUpdate 
	});
		
	function finishUpdate(originalRequest) {
	
		//refresh page and queue confirmation message
		
			GFAload('home_slideshow_manual');
	
	}


}



function GFAsave_blog_add() {


	if($('error_tip_top')) {
		$('error_tip_top').remove();
	}
	
	$('project_desc_fld').value = tinyMCE.getContent('project_desc_fld');

	var saveFields = ['project_desc_fld','project_title_fld'];
	
	var errors = [];
	
	
	var isValid = true;
	var required = true;
	


	if(isValid) {
	
		// save category
		
		var params = Object.toQueryString({body: $F('project_desc_fld'), title: $F('project_title_fld')});
		
		function processRespondino(originalRequest) {				
		
			var reqStatus = originalRequest.responseText.evalJSON();		

			if(reqStatus.status == 'ok') {

				// load step 2
				
				GFAsetActReload('home_blog_fix');				
				
						
			}
							
		}
			
		var xhr = new Ajax.Request(base_url + 'ajax/store_add_blog/',{
	
			method: 'post',
			parameters: params,
			
			onComplete: processRespondino
		});
			
	} else {
		
		var error_txt = new String;
		
		errors.each(function(error) {
		
			error_txt += error + '<br /><br />';
			
		});
		
		GFAerror_tip(error_txt,550,-999,'top');
	
	}

}

function GFAsave_blog_edit() {


	if($('error_tip_top')) {
		$('error_tip_top').remove();
	}
	
	$('project_desc_fld').value = tinyMCE.getContent('project_desc_fld');

	var saveFields = ['project_desc_fld','project_title_fld'];
	
	var errors = [];
	
	
	var isValid = true;
	var required = true;
	


	if(isValid) {
	
		// save category
		
		var params = Object.toQueryString({body: $F('project_desc_fld'), title: $F('project_title_fld')});
		
		function processRespondino(originalRequest) {				
		
			var reqStatus = originalRequest.responseText.evalJSON();		

			if(reqStatus.status == 'ok') {

				// load step 2
				
				GFAsetActReload('home_blog_fix');				
				
						
			}
							
		}
			
		var xhr = new Ajax.Request(base_url + 'ajax/store_edit_blog/',{
	
			method: 'post',
			parameters: params,
			
			onComplete: processRespondino
		});
			
	} else {
		
		var error_txt = new String;
		
		errors.each(function(error) {
		
			error_txt += error + '<br /><br />';
			
		});
		
		GFAerror_tip(error_txt,550,-999,'top');
	
	}

}

function GFAhome_blog_edit_select() {

	//GFAclearProjTabs();

	$('entries_holder').setStyle('cursor: pointer;');

	//$$('div.email_delete_button').invoke('hide');
	//$('email_add_button').hide();
	//$('email_reorder_button').hide();

	
	
	$('home_edit_button').addClassName('sm_on');
	
	
	$$('#entries_holder div.entry_title').each(function(ele){		
		ele.observe('click', setEdit);
		
	});
	
	function setEdit(event) {
	
		blog = event.element().id.sub('blog_','');
		pending_param = blog;
		GFAload('home_edit_blog');
		
	}
		
	
}

function GFAhome_delete_blog_select() {
	
	//GFAclearProjTabs();
	
	$('entries_holder').setStyle('cursor: pointer;');
	$('home_del_button').addClassName('lg_on');	
	// show button
	//new Effect.Appear('delete_button_holder');
	
	$('entries_holder').immediateDescendants().each(function(ele){		
				
		ele.observe('click', setDelete);
		
	});
	
	function setDelete(event) {
	
		if(!$('error_tip_top')) {
		
			GFAwarning_tip('All content within this blog will be deleted! <br /><br /> Click \'DELETE NOW\' to confirm.',543,-882,'top');
			
		}
		$('delete_button_holder').show();
		
	
		$('entries_holder').immediateDescendants().each(function(ele){		
		
			ele.removeClassName('selectedli');
			
		});

		$(event.element().id).addClassName('selectedli');

		cat = event.element().id.sub('blog_','');
		pending_param_delete = cat;
		
	}

}

function GFAhome_delete_blog() {
	
	function processRespondino(originalRequest) {				
		
		pending_param_delete = '';
		
		var reqStatus = originalRequest.responseText.evalJSON();		

		if(reqStatus.status == 'ok') {

			// back to projects
				
			GFAsetActReload('home_blog_fix');				
					
		}
						
	}
		
	var xhr = new Ajax.Request(base_url + 'ajax/delete_home_blog/',{

		method: 'post',
		parameters: 'blog='+pending_param_delete,
		onComplete: processRespondino
	});
	
}
//Profile

function GFAprofile_back(){
	
	if($('error_tip_top')) {
	$('error_tip_top').remove();
	}
	
	pending_error = false;	
	GFAload('profile_edit');
	
}
function GFAprofile_cancel_pending() {
	 
	var ajax = new Ajax.Request(base_url+'ajax/profile_cancel_pending/',{

		method: 'get',
		onComplete: finishUpdate 
	});
		
	function finishUpdate(originalRequest) {
	
		GFAload('profile');
		
	}

}

function GFAprofile_save_new_1() {
	
	
	$('project_desc_fld').value = tinyMCE.getContent('project_desc_fld');
	//tinyMCE.idCounter = 0;
	
	if($('error_tip_top')) {
	$('error_tip_top').remove();
	}

	var saveFields = ['profile_born_fld','project_desc_fld','profile_genres_fld','profile_awards_fld'];
	
//	var errors = [];
	
	var isValid = true;
	var required = true;
	
	//validate
	
/*	saveFields.each(function(field) {
		
		if(!Field.present(field)) {
									
			isValid = false;
			required = false;
						
		}

	});
	
	if(!required) {
	
		
	} else { // ..additional checks
	
		//check that title is text only
		
		if(!GFGalphanumeric($F('project_title_fld'))) {
		
			errors.push('Please use only letters and numbers in your title.');
			isValid = false;
		
		}
		
		// make sure the file isn't invalido
				
	}*/

	if(isValid) {
	
		// save to cookie and go stg. II
		
		var params = Object.toQueryString({born: $F('profile_born_fld'), genres: $F('profile_genres_fld'), awards: $F('profile_awards_fld'), bio: $F('project_desc_fld')});
		
		function processRespondino(originalRequest) {				
		
			var reqStatus = originalRequest.responseText.evalJSON();		

			if(reqStatus.status == 'ok') {

				// load step 2
				
				GFAload('profile_add2');
						
			}
							
		}
			
		var xhr = new Ajax.Request(base_url + 'ajax/store_add_profile_step1/',{
	
			method: 'post',
			parameters: params,
			
			onComplete: processRespondino
		});
			
	} else {
		
		var error_txt = new String;
		
		errors.each(function(error) {
		
			error_txt += error + '<br /><br />';
			
		});
		
		GFAerror_tip(error_txt,584,-988,'top');
	
	}
	
}

function GFAprofile_save_new_2() {
	
	
//tinyMCE.idCounter = 0;
	
	if($('error_tip_top')) {
	$('error_tip_top').remove();
	}

//	var errors = [];
	
	var isValid = true;
	var required = true;
	
	//validate
	
/*	saveFields.each(function(field) {
		
		if(!Field.present(field)) {
									
			isValid = false;
			required = false;
						
		}

	});
	
	if(!required) {
	
		
	} else { // ..additional checks
	
		//check that title is text only
		
		if(!GFGalphanumeric($F('project_title_fld'))) {
		
			errors.push('Please use only letters and numbers in your title.');
			isValid = false;
		
		}
		
		// make sure the file isn't invalido
				
	}*/

	if(isValid) {
	
		// save to cookie and go stg. II
		
		var params = '';
				
		function processRespondino(originalRequest) {				
		
			var reqStatus = originalRequest.responseText.evalJSON();		

			if(reqStatus.status == 'ok') {

				// load step 2
				
				GFAsetActReload('profile');
						
			}
							
		}
			
		var xhr = new Ajax.Request(base_url + 'ajax/store_add_profile_step2/',{
	
			method: 'post',
			parameters: params,
			
			onComplete: processRespondino
		});
			
	} else {
		
		var error_txt = new String;
		
		errors.each(function(error) {
		
			error_txt += error + '<br /><br />';
			
		});
		
		GFAerror_tip(error_txt,584,-988,'top');
	
	}
	
}

function GFAprofile_load_new_link() {
	
	if($('error_tip_top')) {
			$('error_tip_top').remove();
		}
		
	var saveFields = ['link_title_fld','link_desc_fld','link_url_fld'];
	
	var isValid = true;
	var required = true;
	
	if($('link_url_fld').value == '') {
		error_txt = "Please enter a link url";
		isValid = false;
	}
	if($('link_title_fld').value == '') {
		error_txt = "Please enter a link title"
		isValid = false;
	}
	if($('link_desc_fld').value == '') {
		error_txt = "Plase enter a link description"
		isValid = false;
	}

	if(isValid) {
	
		// save to cookie and go stg. II
		
		var params = Object.toQueryString({title: $F('link_title_fld'), url: $F('link_url_fld'), desc: $F('link_desc_fld')});
		
		function processRespondino(originalRequest) {				
		
			var reqStatus = originalRequest.responseText.evalJSON();		

			if(reqStatus.status == 'ok') {

				// load step 2
				
				GFAload('profile_add2');
						
			}
							
		}
			
		var xhr = new Ajax.Request(base_url + 'ajax/store_add_profile_link/',{
	
			method: 'post',
			parameters: params,
			
			onComplete: processRespondino
		});
			
	} else {
		
		var error_txt = new String;
		
		errors.each(function(error) {
		
			error_txt += error + '<br /><br />';
			
		});
		
		GFAerror_tip(error_txt,584,-988,'top');
	
	}
	
}

function GFAprofile_select_delete() {
		if($('error_tip_top')) {
			$('error_tip_top').remove();
		}
		
	//	GFAerror_tip("Profile and all content will be permanently deleted",543,-882,'top');
		
		$('delete_button_holder').show();
		

}

function GFAprofile_delete() {
	
	function processRespondino(originalRequest) {				
		
		var reqStatus = originalRequest.responseText.evalJSON();		

		if(reqStatus.status == 'ok') {
				
			GFAsetActReload('profile');				
					
		}
						
	}
		
	var xhr = new Ajax.Request(base_url + 'ajax/delete_profile/',{

		method: 'post',
		onComplete: processRespondino
	});
	
}

function GFAprofile_save_edit_1() {
	
	
	$('project_desc_fld').value = tinyMCE.getContent('project_desc_fld');
	//tinyMCE.idCounter = 0;
	
	if($('error_tip_top')) {
	$('error_tip_top').remove();
	}

	var saveFields = ['profile_born_fld','project_desc_fld','profile_genres_fld','profile_awards_fld'];
	
//	var errors = [];
	
	var isValid = true;
	var required = true;
	
	//validate
	
/*	saveFields.each(function(field) {
		
		if(!Field.present(field)) {
									
			isValid = false;
			required = false;
						
		}

	});
	
	if(!required) {
	
		
	} else { // ..additional checks
	
		//check that title is text only
		
		if(!GFGalphanumeric($F('project_title_fld'))) {
		
			errors.push('Please use only letters and numbers in your title.');
			isValid = false;
		
		}
		
		// make sure the file isn't invalido
				
	}*/

	if(isValid) {
	
		// save to cookie and go stg. II
		
		var params = Object.toQueryString({born: $F('profile_born_fld'), genres: $F('profile_genres_fld'), awards: $F('profile_awards_fld'), bio: $F('project_desc_fld')});
		
		function processRespondino(originalRequest) {				
		
			var reqStatus = originalRequest.responseText.evalJSON();		

			if(reqStatus.status == 'ok') {

				// load step 2
				
				GFAload('profile_edit2');
						
			}
							
		}
			
		var xhr = new Ajax.Request(base_url + 'ajax/store_add_profile_step1/',{
	
			method: 'post',
			parameters: params,
			
			onComplete: processRespondino
		});
			
	} else {
		
		var error_txt = new String;
		
		errors.each(function(error) {
		
			error_txt += error + '<br /><br />';
			
		});
		
		GFAerror_tip(error_txt,584,-988,'top');
	
	}
	
}

function GFAprofile_save_edit_2() {
	
	
//tinyMCE.idCounter = 0;
	
	if($('error_tip_top')) {
	$('error_tip_top').remove();
	}

//	var errors = [];
	
	var isValid = true;
	var required = true;
	
	//validate


	if(isValid) {
	
		// save to cookie and go stg. II
		
		var params = '';
				
		function processRespondino(originalRequest) {				
		
			var reqStatus = originalRequest.responseText.evalJSON();		

			if(reqStatus.status == 'ok') {

				// load step 2
				
				GFAload('profile');
						
			}
							
		}
			
		var xhr = new Ajax.Request(base_url + 'ajax/store_edit_profile_step2/',{
	
			method: 'post',
			parameters: params,
			
			onComplete: processRespondino
		});
			
	} else {
		
		var error_txt = new String;
		
		errors.each(function(error) {
		
			error_txt += error + '<br /><br />';
			
		});
		
		GFAerror_tip(error_txt,584,-988,'top');
	
	}
	
}

function GFAprofile_edit2_startreorder() {
	
	GFAclearProjTabs();
	
	$('uploado_elholder').hide();
	$('link_flds_wrapper').hide();
	$('link_edit_button').hide();
	$$('div.delete_button').invoke('hide');
	$('project_thumb_holder').show();	
	
	
	
	$('project_thumb_holder').setStyle('cursor: move;');
	$('link_holder').setStyle('cursor: move;');
	
	
	// switch button state
	$('stillsprojects_reorder_button').addClassName('lg_on');
	
	// show reorder button
	//new Effect.Appear('reorder_button_holder');
	$$('div.reorder_button').invoke('show');
	

	// create sortable
	 
	Sortable.create('project_thumb_holder', {
		
		overlap:'horizontal',
		constraint: false
	
	});
	
	Sortable.create('link_holder', {
		
		overlap:'vertical',
		constraint: false
	
	});

}

function GFAprofile_link_save_reorder() {
	

	sortorder = (Sortable.serialize('link_holder'));
	
	// post new order
	
	var ajax = new Ajax.Request(base_url+'ajax/store_sort_profile_link/',{

		parameters: sortorder,
		method: 'post',
		onComplete: finishUpdate 
	});
		
	function finishUpdate(originalRequest) {
	
		//refresh page and queue confirmation message
		
		GFAload('profile_edit2');
	
	}


}

function GFAprofile_photo_save_reorder() {
	

	sortorder = (Sortable.serialize('project_thumb_holder'));
	
	// post new order
	
	var ajax = new Ajax.Request(base_url+'ajax/store_sort_profile_photo/',{

		parameters: sortorder,
		method: 'post',
		onComplete: finishUpdate 
	});
		
	function finishUpdate(originalRequest) {
	
		//refresh page and queue confirmation message
		
		GFAload('profile_edit2');
	
	}


}

function GFAprofile_edit2_add() {

	GFAclearProjTabs();
	
	$$('div.delete_button').invoke('hide');
	$$('div.reorder_button').invoke('hide');
	$('link_edit_button').hide();
	$('project_thumb_holder').show();	
	
	$('link_title_fld').value = '';
		
	$('link_url_fld').value = '';
	
	
	$('link_desc_fld').value = '';
	
	$('file_file_1').onclick = function onclick(event) { $('link_flds_wrapper').hide(); };
	
//	var str = $('file_file_1').onchange.toString();
	
	//var replace = str.replace("\n}"," $('link_flds_wrapper').hide(); }");
	
//	replace = replace.toFunction();
	
	//alert(typeof(replace));
	
//	$('file_file_1').onchange = replace;
	
//	alert($('file_file_1').onchange);

	// switch button
	$('stillsprojects_add_button').addClassName('sm_on');	
	// show uploadar
	new Effect.BlindDown('uploado_elholder');
	if(!$('link_flds_wrapper').visible()){
	new Effect.BlindDown('link_flds_wrapper');
	}
	new Effect.BlindDown('link_add_button');
	

}

function GFAprofile_edit2_selectedit() {

	GFAclearProjTabs();
	
	$('uploado_elholder').hide();
	$$('div.delete_button').invoke('hide');
	$$('div.reorder_button').invoke('hide');
	$('link_add_button').hide();
	$('link_edit_button').hide();
	$('project_thumb_holder').hide();	
	
	$('link_flds_wrapper').show();
	//$('project_thumb_holder').setStyle('cursor: pointer;');
	$('link_holder').setStyle('cursor: pointer;');
	
	
	$('stillsprojects_edit_button').addClassName('sm_on');	

	// show button

	$('link_edit_button').show();
	
	//$$('#project_thumb_holder li.project_thumb').each(function(ele){		
	//	ele.observe('click', GFAprofile_edit2_setEdit);
		
	//});
	
	$$('#link_holder li.link').each(function(ele){		
		ele.observe('click', setEdit);
		
	});
	
	function setEdit(event) {	
	
		$$('#link_holder li.link').each(function(ele){		
		
			ele.removeClassName('selected');
	//		ele.addClassName(event.element().id);
			
		});
		
		$('link_edit_button').show();
		
//		var li_id = event.element().id.sub('value_','email_');		
		$(event.element().id).addClassName('selected');
		
		var title = event.element().id.sub('link_','link_title_');
		$('link_title_fld').value = $(title).value;
//		$('email_replace_button').show();
		
		var url = event.element().id.sub('link_','link_url_');
		$('link_url_fld').value = $(url).value;
		
		var desc = event.element().id.sub('link_','link_desc_');
		$('link_desc_fld').value = $(desc).value;

		link_position = event.element().id.sub('link_','');
		
		
	    pending_param = link_position;

		// save to cookie and go stg. II
		
			
		}


}

function GFAprofile_edit_load_edit_link() {
	
	var saveFields = ['link_title_fld','link_desc_fld','link_url_fld'];
	
	if($('link_url_fld').value == '') {
		error_txt = "Please enter a link url";
		isValid = false;
	}
	if($('link_title_fld').value == '') {
		error_txt = "Please enter a link title"
		isValid = false;
	}
	if($('link_desc_fld').value == '') {
		error_txt = "Plase enter a link description"
		isValid = false;
	}

	if(isValid) {
	
		// save to cookie and go stg. II
		
		var params = Object.toQueryString({title: $F('link_title_fld'), url: $F('link_url_fld'), desc: $F('link_desc_fld'), id: link_position});
		
		function processRespondino(originalRequest) {				
		
			var reqStatus = originalRequest.responseText.evalJSON();		

			if(reqStatus.status == 'ok') {

				// load step 2
				
				GFAload('profile_edit2');
						
			}
							
		}
			
		var xhr = new Ajax.Request(base_url + 'ajax/store_edit_profile_link/',{
	
			method: 'post',
			parameters: params,
			
			onComplete: processRespondino
		});
			
	} else {
		
		var error_txt = new String;
		
		errors.each(function(error) {
		
			error_txt += error + '<br /><br />';
			
		});
		
		GFAerror_tip(error_txt,584,-988,'top');
	
	}
	
}


function GFAprofile_edit2_selectdelete() {
	
	GFAclearProjTabs();
	
	$('uploado_elholder').hide();
	$('link_flds_wrapper').hide();
	$('link_edit_button').hide();
	$$('div.reorder_button').invoke('hide');
	$('project_thumb_holder').show();	
	
	$$('div.delete_button').invoke('show');
	

	$('project_thumb_holder').setStyle('cursor: pointer;');
	$('link_holder').setStyle('cursor: pointer;');
	
	$('stillsprojects_del_button').addClassName('lg_on');	

	// show button

	
	$$('#project_thumb_holder li.project_thumb').each(function(ele){		
		ele.observe('click', GFAprofile_photo_edit2_setDelete);
		
	});
	
	$$('#link_holder li.link').each(function(ele){		
		ele.observe('click', GFAprofile_link_edit2_setDelete);
		
	});
}

function GFAprofile_photo_edit2_setDelete(event) {

	if(!$('error_tip_top')) {
	
		GFAwarning_tip('This image will be deleted permanently! <br /><br />Click \'DELETE NOW\' to confirm.',561,-1012,'top');
		
	}

	$$('#project_thumb_holder li.project_thumb div.thumb_img img').each(function(ele){		
	
		ele.removeClassName('selectedimg');
		
	});

	$(event.element().id).addClassName('selectedimg');

	img_id = event.element().id.sub('img_','');
	pending_param = img_id;
	
}

function GFAprofile_link_edit2_setDelete(event) {

	if(!$('error_tip_top')) {
	
		GFAwarning_tip('This link will be deleted permanently! <br /><br /> Click \'DELETE NOW\' to confirm.',561,-612,'top');
		
	}

	$$('#link_holder li.link').each(function(ele){				
	
		ele.removeClassName('selected');
		
	});

	$(event.element().id).addClassName('selected');

	link_id = event.element().id.sub('link_','');
	pending_param = link_id;
	
}

function GFAprofile_edit_delete_link() {

	function processRespondino(originalRequest) {				
		
		pending_param = '';
		
		var reqStatus = originalRequest.responseText.evalJSON();		

		if(reqStatus.status == 'ok') {

			// back to projects
				
			GFAload('profile_edit2');				
					
		}
						
	}
		
	var xhr = new Ajax.Request(base_url + 'ajax/delete_link/',{

		method: 'post',
		parameters: 'id='+pending_param,
		onComplete: processRespondino
	});


}

function GFAprofile_edit_delete_photo() {

	function processRespondino(originalRequest) {				
		
		pending_param = '';
		
		var reqStatus = originalRequest.responseText.evalJSON();		

		if(reqStatus.status == 'ok') {

			// back to projects
				
			GFAload('profile_edit2');				
					
		}
						
	}
		
	var xhr = new Ajax.Request(base_url + 'ajax/delete_pending_still/',{

		method: 'post',
		parameters: 'idx='+pending_param,
		onComplete: processRespondino
	});


}




function GFAprofile_load_edit_link() {
	
	if($('error_tip_top')) {
	$('error_tip_top').remove();
	}
	
	var saveFields = ['link_title_fld','link_desc_fld','link_url_fld'];
	
	var isValid = true;
	var required = true;
	
	if($('link_url_fld').value == '') {
		error_txt = "Please enter a link url";
		isValid = false;
	}
	if($('link_title_fld').value == '') {
		error_txt = "Please enter a link title"
		isValid = false;
	}
	if($('link_desc_fld').value == '') {
		error_txt = "Plase enter a link description"
		isValid = false;
	}
	

	if(isValid) {
	
		// save to cookie and go stg. II
		
		var params = Object.toQueryString({title: $F('link_title_fld'), url: $F('link_url_fld'), desc: $F('link_desc_fld')});
		
		function processRespondino(originalRequest) {				
		
			var reqStatus = originalRequest.responseText.evalJSON();		

			if(reqStatus.status == 'ok') {

				// load step 2
				
				GFAload('profile_edit2');
						
			}
							
		}
			
		var xhr = new Ajax.Request(base_url + 'ajax/store_add_profile_link/',{
	
			method: 'post',
			parameters: params,
			
			onComplete: processRespondino
		});
			
	} else {
		
		GFAerror_tip(error_txt,584,-988,'top');
	
	}
	
}

function submitUpload(frm) {
  if(uploads_in_progress > 0) {
	alert("File upload in progress. Please wait until upload finishes and try again.");
  } else {
	frm.submit();
  }
}

function GFAprofile_load_new_pimg(img_sid) {

	// clear all error boxes

	if($('error_tip_top')) {
	$('error_tip_top').remove();
	}
	
	
	function show_img(transport) {
		
		var imgDat = transport.responseText.evalJSON();		

		if(imgDat.status == 'ok') {
				
			if(imgDat.loadcrop==1) {			
					
				// load el croppo	
				
				$('overlay').update('<div id="crop_holder"><br /><br /><br /><br /><br /><br /><br /><br /><img id="cropimg" src="'+base_url+'s_images/'+imgDat.file+'" /><br /><br /><div id="cropper_header"><div id="cropper_submit"><a href="javascript: GFAfinishCrop(\'home_slideshow_manual\')"><img src="http://n1.protocol0.com/giantfin/res/img/cropper_submit.gif" width="170" height="37" border="0" /></a></div></div><div style="display:none;"><input type="text" name="x1" id="x1" /><input type="text" name="y1" id="y1" /><input type="text" name="x2" id="x2" /><input type="text" name="y2" id="y2" /><input type="text" name="width" id="width" /><input type="text" name="height" id="height" /></div></div>');		
				
				pending_crop_img = imgDat.file;
				
				// with a supplied ratio				
		
				function onEndCrop( coords, dimensions ) {
					$( 'x1' ).value = coords.x1;
					$( 'y1' ).value = coords.y1;
					$( 'x2' ).value = coords.x2;
					$( 'y2' ).value = coords.y2;
					$( 'width' ).value = dimensions.width;
					$( 'height' ).value = dimensions.height;
				}
		
				new Cropper.Img( 
				
					'cropimg', 
					{ 
						ratioDim: { x: 600, y: 400 }, 
						displayOnInit: true,
						onEndCrop: onEndCrop
					} 
				);			

				//new Effect.Appear('overlay',{ duration: 0.32 });
				$('overlay').show();
				
			} else {
			
			
				// add to pending images array
			
				pending_images.push(imgDat.file);
				
			}
						
		} else {
		
			if(imgDat.status == 'toosmall') {
			
				// queue error box
				GFAqueuebox('The image you have uploaded is too small.  Please upload a larger image.',584,-988,'top');
			
			}  else {

				// queue error box, for bad file.
				GFAqueuebox('Please upload a valid JPG file less than 4 MB.  The file you have uploaded is invalid.',584,-988,'top');			
			
			}
			
		}
		
		GFAload('profile_add2');
		
	}

	var ajax = new Ajax.Request('/giantfin/ajax/temp_profile_pimg/'+img_sid+'/', { asynchronous:true, onComplete:show_img });

}

function GFAprofile_load_edit_new_pimg(img_sid) {

	// clear all error boxes

	if($('error_tip_top')) {
	$('error_tip_top').remove();
	}
	
	function show_img(transport) {
		
		var imgDat = transport.responseText.evalJSON();		
		
		if(imgDat.status == 'ok') {
				
			if(imgDat.loadcrop==1) {			
					
				// load el croppo	
				
				$('overlay').update('<div id="crop_holder"><br /><br /><br /><br /><br /><br /><br /><br /><img id="cropimg" src="'+base_url+'s_images/'+imgDat.file+'" /><br /><br /><div id="cropper_header"><div id="cropper_submit"><a href="javascript: GFAfinishCrop(\'home_slideshow_manual\')"><img src="http://n1.protocol0.com/giantfin/res/img/cropper_submit.gif" width="170" height="37" border="0" /></a></div></div><div style="display:none;"><input type="text" name="x1" id="x1" /><input type="text" name="y1" id="y1" /><input type="text" name="x2" id="x2" /><input type="text" name="y2" id="y2" /><input type="text" name="width" id="width" /><input type="text" name="height" id="height" /></div></div>');		
				
				pending_crop_img = imgDat.file;
				
				// with a supplied ratio				
		
				function onEndCrop( coords, dimensions ) {
					$( 'x1' ).value = coords.x1;
					$( 'y1' ).value = coords.y1;
					$( 'x2' ).value = coords.x2;
					$( 'y2' ).value = coords.y2;
					$( 'width' ).value = dimensions.width;
					$( 'height' ).value = dimensions.height;
				}
		
				new Cropper.Img( 
				
					'cropimg', 
					{ 
						ratioDim: { x: 600, y: 400 }, 
						displayOnInit: true,
						onEndCrop: onEndCrop
					} 
				);			

				//new Effect.Appear('overlay',{ duration: 0.32 });
				$('overlay').show();
				
			} else {
			
			
				// add to pending images array
			
				pending_images.push(imgDat.file);
				
			}
						
		} else {
		
			if(imgDat.status == 'toosmall') {
			
				// queue error box
				GFAqueuebox('The image you have uploaded is too small.  Please upload a larger image.',584,-988,'top');
			
			}  else {

				// queue error box, for bad file.
				GFAqueuebox('Please upload a valid JPG file less than 4 MB.  The file you have uploaded is invalid.',584,-988,'top');			
			
			}
			
		}
		
		GFAload('profile_edit2');
		
	}

	var ajax = new Ajax.Request('/giantfin/ajax/temp_profile_pimg/'+img_sid+'/', { asynchronous:true, onComplete:show_img });

}

//contact section

function GFAcontact_load_new_email() {
	
	if($('error_tip_top')) {
	$('error_tip_top').remove();
	}
	
	var saveFields = ['email_fld'];
	
	var isValid = true;
	var required = true;
	
	if (!GFGcheckMail($('email_fld').value)) {
	
		GFAerror_tip('Invalid E-mail Address',684,-1008,'top');
		isValid = false;
		
	}

	if(isValid) {
	
		// save to cookie and go stg. II
		
		var params = Object.toQueryString({email: $F('email_fld')});
		
		function processRespondino(originalRequest) {				
		
			var reqStatus = originalRequest.responseText.evalJSON();		

			if(reqStatus.status == 'ok') {

				// load step 2
				
				GFAload('contact_add2');
						
			}
							
		}
			
		var xhr = new Ajax.Request(base_url + 'ajax/store_add_contact_email/',{
	
			method: 'post',
			parameters: params,
			
			onComplete: processRespondino
		});
			
	} else {
		
		var error_txt = new String;
		
		errors.each(function(error) {
		
			error_txt += error + '<br /><br />';
			
		});
		
		GFAerror_tip(error_txt,684,-998,'top');
	
	}
	
}

function GFAcontact_delete_email(id) {
	
	var isValid = true;
		
	if(isValid) {
	
		// save to cookie and go stg. II
		
		var params = Object.toQueryString({id: id});
		
		function processRespondino(originalRequest) {				
		
			var reqStatus = originalRequest.responseText.evalJSON();		

			if(reqStatus.status == 'ok') {

				// load step 2
				
				GFAload('contact_edit2');
						
			}
							
		}
			
		var xhr = new Ajax.Request(base_url + 'ajax/store_delete_contact_email/',{
	
			method: 'post',
			parameters: params,
			
			onComplete: processRespondino
		});
			
	} else {
		
		var error_txt = new String;
		
		errors.each(function(error) {
		
			error_txt += error + '<br /><br />';
			
		});
		
		GFAerror_tip(error_txt,584,-988,'top');
	
	}
	
}

function GFAcontact_edit_load_new_email() {
	
	if($('error_tip_top')) {
	$('error_tip_top').remove();
	}
	
	var saveFields = ['email_fld'];
	
	var isValid = true;
	var required = true;
	
	if (!GFGcheckMail($('email_fld').value)) {
	
		GFAerror_tip('Invalid E-mail Address',684,-988,'top');
		isValid = false;
		
	}
	

	if(isValid) {
	
		// save to cookie and go stg. II
		
		var params = Object.toQueryString({email: $F('email_fld')});
		
		function processRespondino(originalRequest) {				
		
			var reqStatus = originalRequest.responseText.evalJSON();		

			if(reqStatus.status == 'ok') {

				// load step 2
				
				GFAload('contact_edit2');
						
			}
							
		}
			
		var xhr = new Ajax.Request(base_url + 'ajax/store_add_contact_email/',{
	
			method: 'post',
			parameters: params,
			
			onComplete: processRespondino
		});
			
	} else {
		
		var error_txt = new String;
		
		errors.each(function(error) {
		
			error_txt += error + '<br /><br />';
			
		});
		
		GFAerror_tip(error_txt,594,-998,'top');
	
	}
	
}
function GFAcontact_save_new_1(){
	$('project_desc_fld').value = tinyMCE.getContent('project_desc_fld');
	//tinyMCE.idCounter = 0;
	
	if($('error_tip_top')) {
	$('error_tip_top').remove();
	}

	var saveFields = ['project_desc_fld'];
	
//	var errors = [];
	
	var isValid = true;
	var required = true;
	
	//validate

	if(isValid) {
	
		// save to cookie and go stg. II
		
		var params = Object.toQueryString({info: $F('project_desc_fld')});
		
		function processRespondino(originalRequest) {				
		
			var reqStatus = originalRequest.responseText.evalJSON();		

			if(reqStatus.status == 'ok') {

				// load step 2
				
				GFAload('contact_add2');
						
			}
							
		}
			
		var xhr = new Ajax.Request(base_url + 'ajax/store_add_contact_step1/',{
	
			method: 'post',
			parameters: params,
			
			onComplete: processRespondino
		});
			
	} else {
		
		var error_txt = new String;
		
		errors.each(function(error) {
		
			error_txt += error + '<br /><br />';
			
		});
		
		GFAerror_tip(error_txt,584,-988,'top');
	
	}
}

function GFAcontact_save_edit_1(){
	$('project_desc_fld').value = tinyMCE.getContent('project_desc_fld');
	//tinyMCE.idCounter = 0;
	
	if($('error_tip_top')) {
	$('error_tip_top').remove();
	}

	var saveFields = ['project_desc_fld'];
	
//	var errors = [];
	
	var isValid = true;
	var required = true;
	
	//validate

	if(isValid) {
	
		// save to cookie and go stg. II
		
		var params = Object.toQueryString({info: $F('project_desc_fld')});
		
		function processRespondino(originalRequest) {				
		
			var reqStatus = originalRequest.responseText.evalJSON();		

			if(reqStatus.status == 'ok') {

				// load step 2
				
				GFAload('contact_edit2');
						
			}
							
		}
			
		var xhr = new Ajax.Request(base_url + 'ajax/store_add_contact_step1/',{
	
			method: 'post',
			parameters: params,
			
			onComplete: processRespondino
		});
			
	} else {
		
		var error_txt = new String;
		
		errors.each(function(error) {
		
			error_txt += error + '<br /><br />';
			
		});
		
		GFAerror_tip(error_txt,584,-988,'top');
	
	}
}

function GFAcontact_save_new_2(){
	
	if($('error_tip_top')) {
	$('error_tip_top').remove();
	}


//	var errors = [];
	
	var params = [];
	var isValid = true;
	var required = true;
	
	//validate

	if(isValid) {
	
		// save to cookie and go stg. II
				
		function processRespondino(originalRequest) {				
		
			var reqStatus = originalRequest.responseText.evalJSON();		

			if(reqStatus.status == 'ok') {

				// load step 2
				
				GFAsetActReload('contact');				
						
			}
							
		}
			
		var xhr = new Ajax.Request(base_url + 'ajax/store_add_contact_step2/',{
	
			method: 'post',
			parameters: params,			
			onComplete: processRespondino
		});
			
	} else {
		
		var error_txt = new String;
		
		errors.each(function(error) {
		
			error_txt += error + '<br /><br />';
			
		});
		
		GFAerror_tip(error_txt,584,-988,'top');
	
	}
}

function GFAcontact_save_edit_2(){
	
	if($('error_tip_top')) {
	$('error_tip_top').remove();
	}


//	var errors = [];
	
	var params = [];
	var isValid = true;
	var required = true;
	
	//validate

	if(isValid) {
	
		// save to cookie and go stg. II
				
		function processRespondino(originalRequest) {				
		
			var reqStatus = originalRequest.responseText.evalJSON();		

			if(reqStatus.status == 'ok') {

				// load step 2
				
				GFAload('contact');
						
			}
							
		}
			
		var xhr = new Ajax.Request(base_url + 'ajax/store_edit_contact_step2/',{
	
			method: 'post',
			parameters: params,			
			onComplete: processRespondino
		});
			
	} else {
		
		var error_txt = new String;
		
		errors.each(function(error) {
		
			error_txt += error + '<br /><br />';
			
		});
		
		GFAerror_tip(error_txt,584,-988,'top');
	
	}
}

function GFAclearContTabs() {
	pending_param = '';
	
	$$('div.error_tip').invoke('remove');
	$$('div.warning_tip').invoke('remove');

	$$('#tabnav div').each(function(ele) {

		ele.removeClassName('sm_on');
		ele.removeClassName('lg_on');

	});
	
	$$('#contact_email_holder li.contact_email').each(function(ele){		
		ele.stopObserving('click');		
		ele.removeClassName('selected');
	});
	
	$('email_replace_button').hide();
	$('email_reorder_button').hide();
	$$('div.email_delete_button').invoke('hide');
	$('email_add_button').hide();
	
}


function GFAcontact_delete_select() {
	
	$('resume_del_button').addClassName('lg_on');	
	// show button
	//new Effect.Appear('delete_button_holder');
	$('delete_button_holder').show();
	
	GFAwarning_tip('Your contact information will be deleted. <br /><br /> <em>Click \'DELETE NOW\' to confirm.</em>',543,-882,'top');
	
}

function GFAcontact_delete() {
	
	function processRespondino(originalRequest) {				
		
		var reqStatus = originalRequest.responseText.evalJSON();		

		if(reqStatus.status == 'ok') {
				
			GFAsetActReload('contact');				
					
		}
						
	}
		
	var xhr = new Ajax.Request(base_url + 'ajax/delete_contact/',{

		method: 'post',
		onComplete: processRespondino
	});
	
}

function GFAcontact_start_reorder() {

	GFAclearContTabs()
	
	$('email_reorder_button').show();
	
	$('contact_email_holder').setStyle('cursor: move;');
	
	// switch button state
	$('stillscat_reorder_button').addClassName('lg_on');
	
	// show reorder button
	//new Effect.Appear('reorder_button_holder');
//	$('reorder_button_holder').show();
	
	// create sortable
	 
	Sortable.create('contact_email_holder', {
		
		overlap:'vertical',
		constraint: false
	
	});

	// bind listener func.
	
}

function GFAcontact_email_save_reorder() {
	
	GFAclearContTabs()
	
	sortorder = (Sortable.serialize('contact_email_holder'));
	
	// post new order
	
	var ajax = new Ajax.Request(base_url+'ajax/store_sort_contact_email/',{

		parameters: sortorder,
		method: 'post',
		onComplete: finishUpdate 
	});
		
	function finishUpdate(originalRequest) {
	
		//refresh page and queue confirmation message
		
		GFAload('contact_edit2');
	
	}


}

function GFAcontact_email_delete() {

	GFAclearContTabs()
	
	$('stillscat_del_button').addClassName('lg_on');
	
	$$('div.email_delete_button').invoke('show');
	
	
	
	
}

function GFAcontact_email_add() {

	GFAclearContTabs()

	
	$('email_fld').value = '';
		
	$('stillscat_add_button').addClassName('sm_on');
	
	$('email_add_button').show();
	
	
}

function GFAcontact_email_edit_select() {

	GFAclearContTabs()

	$('contact_email_holder').setStyle('cursor: pointer;');

	$('stillscat_edit_button').addClassName('sm_on');
	
	
	$$('#contact_email_holder li.contact_email').each(function(ele){		
		ele.observe('click', setEdit);
		
	});
	
	function setEdit(event) {	
	
		$$('#contact_email_holder li.contact_email ').each(function(ele){		
		
			ele.removeClassName('selected');
	//		ele.addClassName(event.element().id);
			
		});
		
		var li_id = event.element().id.sub('value_','email_');		
		$(li_id).addClassName('selected');
		
		var value = event.element().id.sub('email_','value_');
		$('email_fld').value = $(value).innerHTML;
		$('email_replace_button').show();
		

		email_position = li_id.sub('email_','');
		
		
	    //	pending_param = email_position;
    	//	GFAreels_edit_project();
	
		// save to cookie and go stg. II
		
			
		}
		
	
}

function GFAcontact_edit_load_edit_email() {
	
	var saveFields = ['email_fld'];
	
	var isValid = true;
	var required = true;
	
	if (!GFGcheckMail($('email_fld').value)) {
	
		GFAerror_tip('Invalid E-mail Address',584,-988,'top');
		isValid = false;
		
	}
	if(isValid) {
	
		// save to cookie and go stg. II
		
		var params = Object.toQueryString({email: $F('email_fld'), id: email_position});
		
		function processRespondino(originalRequest) {				
		
			var reqStatus = originalRequest.responseText.evalJSON();		

			if(reqStatus.status == 'ok') {

				// load step 2
				
				GFAload('contact_edit2');
						
			}
							
		}
			
		var xhr = new Ajax.Request(base_url + 'ajax/store_edit_contact_email/',{
	
			method: 'post',
			parameters: params,
			
			onComplete: processRespondino
		});
			
	} else {
		
		var error_txt = new String;
		
		errors.each(function(error) {
		
			error_txt += error + '<br /><br />';
			
		});
		
		GFAerror_tip(error_txt,584,-988,'top');
	
	}
	
}

function GFAinit() {

	function returnVal1(originalRequest) {
		
		var reqStatus = originalRequest.responseText.evalJSON();
		
		if(reqStatus.status=='ok') {
		
			// load action
			
			GFAload(reqStatus.value);
			
		}
	
	}
	
	var ajaxsave = new Ajax.Request(base_url + 'ajax/xhr_jsvar/get/',{
	
		parameters: 'key=acct_curraction&val=get',
		method: 'post',
		onComplete: returnVal1 
	});	
	
	function returnVal2(originalRequest) {
		
		var reqStatus = originalRequest.responseText.evalJSON();
		
		if(reqStatus.status=='ok') {
		
			// load action
			
			GFAtoggle_account_nav(reqStatus.value);
			
		}
	
	}
	
	var ajaxsave = new Ajax.Request(base_url + 'ajax/xhr_jsvar/get/',{
	
		parameters: 'key=acct_openmenu&val=get',
		method: 'post',
		onComplete: returnVal2 
	});	
	
}

function GFSprint(id){
	str=document.getElementById(id).innerHTML
	newwin=window.open('','printwin','left=100,top=100,width=915,height=815');
	newwin.document.write('<HTML><HEAD');
	newwin.document.write(id);
	newwin.document.write('</HEAD>\n');
	newwin.document.write('<script>\n')
	newwin.document.write('function chkstate(){\n')
	newwin.document.write('if(document.readyState=="complete"){\n')
	newwin.document.write('window.close()\n')
	newwin.document.write('}\n')
	newwin.document.write('else{\n')
	newwin.document.write('setTimeout("chkstate()",2000)\n')
	newwin.document.write('}\n')
	newwin.document.write('}\n')
	newwin.document.write('function print_win(){\n')
	newwin.document.write('window.print();\n')
	newwin.document.write('chkstate();\n')
	newwin.document.write('}\n')
	newwin.document.write('<\/script>\n')
	newwin.document.write('</HEAD>\n')
	newwin.document.write('<BODY onload="print_win()">\n')
	newwin.document.write(str)
	newwin.document.write('</BODY>\n')
	newwin.document.write('</HTML>\n')
	newwin.document.close()	
}

function GFSshow_csc() {
			$('csc_holder').show();
}

function GFShide_csc() {
			$('csc_holder').hide();
}

function GFSroll_package(id,onoff) {

	if(onoff ==1) {
	
		$(id+'_package').addClassName('selected');
		
	} else {
	
		if(id != selected_package) {
	
			$(id+'_package').removeClassName('selected');
			
		}
		
	}
		
}

function GFSroll_term(id,onoff) {

	if(onoff ==1) {
	
		$('payment_'+id).addClassName('selected');
		
	} else {
	
		if(id != pkg_term) {
	
			$('payment_'+id).removeClassName('selected');
			
		}
		
	}
		
}

function GFSselect_term(term) {
	
	cart_total -= pkg_price;
	
	if(term == 'month') {
			
			if(pkg_name.toLowerCase()=='basic') {
			
				if($F('old_pkg_fld') != 'Premium' && $F('old_pkg_fld') != 'Plus') {
					
					pkg_term = 'month';
					$('payment_'+term).addClassName('checkmarkshow');
					$('payment_'+term).addClassName('selected');
					pkg_price = 30.00;
				
				} else {
					
					return;
									
				}
			}
			if(pkg_name.toLowerCase()=='plus') {
			
				if($F('old_pkg_fld') != 'Premium' && $F('old_pkg_fld') != 'Plus' && $F('old_pkg_fld') != 'Basic') 
				{	
					pkg_term = 'month';	
					$('payment_'+term).addClassName('checkmarkshow');
					$('payment_'+term).addClassName('selected');	
					pkg_price = 50.00;
					
				} else {
				
					return;
				}
			}
			if(pkg_name.toLowerCase() =='premium') {
			
				pkg_term = 'month';
				$('payment_'+term).addClassName('checkmarkshow');
				$('payment_'+term).addClassName('selected');	
				pkg_price = 65.00;
			}
			$('payment_year').removeClassName('checkmarkshow');
			$('payment_year').removeClassName('selected');
			
 		}
 		else if(term == 'year') {
 			
 			$('payment_'+term).addClassName('checkmarkshow');
			$('payment_'+term).addClassName('selected');
			
			pkg_term = 'year';
			if(pkg_name.toLowerCase()=='basic') {
				pkg_price = 330.00 - $F('prepay_fld');;
			}
			if(pkg_name.toLowerCase()=='plus') {
				pkg_price = 550.00 - $F('prepay_fld');;			
			}
			if(pkg_name.toLowerCase() =='premium') {
				pkg_price = 715.00 - $F('prepay_fld');;
				
			}
			$('payment_month').removeClassName('checkmarkshow');
			$('payment_month').removeClassName('selected');
			
 		}
 	
	cart_total += pkg_price;
}

function GFSselect_package(ipkg) {

	$('payment_month').removeClassName('checkmarkshow');
	$('payment_month').removeClassName('selected');
	$('payment_year').addClassName('checkmarkshow');
	$('payment_year').addClassName('selected');
	pkg_term = 'year';
	
	pkgs = ['basic','plus','premium'];
	if(cart_total != 0)
	{
		cart_total -= pkg_price;
	}
	pkgs.each(function(pkg) {
	
		if(pkg == ipkg) {
			
			$(pkg+'_package').addClassName('selected');
			$(pkg+'_check').addClassName('checkmarkshow');
			pkg_name = ipkg.toUpperCase();
			selected_package = ipkg;
			if(ipkg=='basic') {
				pkg_price = 330.00 - $F('prepay_fld');;
				$('year_amount').innerHTML = '<span class="blue"> $'+pkg_price+' </span>';
			
				$('month_amount').innerHTML = '<span class="blue"> Not Available </span>';
				
			}
			if(ipkg=='plus') {
				pkg_price = 550.00 - $F('prepay_fld');;
				$('year_amount').innerHTML = '<span class="blue"> $'+pkg_price+' </span>';
				
				if($F('old_pkg_fld') != 'Plus' && $F('old_pkg_fld') != 'Premium') 
				{	
					$('month_amount').innerHTML = '<span class="blue"> $50 </span>';
				} else  {
				
					$('month_amount').innerHTML = '<span class="blue"> Not Available </span>';
				
				}

			}
			if(ipkg=='premium') {
				pkg_price = 715.00 - $F('prepay_fld');
				$('year_amount').innerHTML = '<span class="blue"> $'+pkg_price+' </span>';
				$('month_amount').innerHTML = '<span class="blue"> $65 </span>';
				
			}
			
 		} else {

			$(pkg+'_package').removeClassName('selected');
			$(pkg+'_check').removeClassName('checkmarkshow');
		}
		
		if(!$('payment_wrapper').visible()) {
				new Effect.BlindDown('payment_wrapper', {duration: 0.3});
		}
		
	});
	cart_total += pkg_price;

}

function GFAupgrade_account() {
// validate existence of fields
	document.getElementById("checkout_button").onclick= function() {};
	
	var saveFields = ['card_fname','card_lname','address1','city','state','zip','country','ccard','csc','exp_month','exp_year'];
	
	var isValid = true;
	
	//inital loop to clean up last run

	saveFields.each(function(field) {
	
		if($(field+'_lb')!=null) {
	
			$(field+'_lb').removeClassName('error_orgtxt');
			
		}
		
	});
	
	// hide boxes from last run
	
	var errBoxen = ['state','zip','ccard','csc'];
	
	errBoxen.each(function(box) {
	
		$(box+'_ebox').hide();
		$(box+'_ebox').innerHTML='';
		
	});	
	
	$('general_ebox').hide();	

	
	//validate
	
	saveFields.each(function(field) {
		
		if(!Field.present(field+'_fld')) {
									
			new Effect.Appear('general_ebox'), {duration: 0.12};
			isValid = false;
			document.getElementById("checkout_button").onclick = function onclick(event) { GFAupgrade_account() };
			
			if($(field+'_lb')!=null) {
			
				$(field+'_lb').addClassName('error_orgtxt');
				
			}
			
		}

	});
	
	if(isValid) {
	
		// serialize and send, listen for image validation issues
		
		form_vals = Form.serialize('signup2_form')+'&total='+pkg_price+'&term='+pkg_term+'&pkgtype='+pkg_name;
		
		// post
		
		function finishSave2(originalRequest) {
	
			var reqStatus = originalRequest.responseText.evalJSON();
					
			if(reqStatus.status == 'ok') {
			
				// redirect to step3
				
				GFAload('upgrade_success');
				
			} else {
			
				new Effect.Appear('ccard_ebox'), {duration: 0.12};
				document.getElementById("checkout_button").onclick = function onclick(event) { GFAupgrade_account() };
				isValid = false;
								
			}	
	
		}
	
		function finishSave(originalRequest) {
			
				var reqStatus = originalRequest.responseText.evalJSON();
				
				if(reqStatus.status == 'ok') {
					
				 	GFAload('upgrade_success');
				 	
				}else {
			
					$('general_ebox').hide();	
					$('ccard_ebox').innerHTML = reqStatus.status; 
					document.getElementById("checkout_button").onclick = function onclick(event) { GFAupgrade_account() };
					new Effect.Appear('ccard_ebox'), {duration: 0.12};
								
				}
							
			}	
	
		var ajaxsave = new Ajax.Request(base_url + 'ajax/store_upgrade_package/',{
	
			parameters: form_vals,
			method: 'post',
			onComplete: finishSave 
		});
			
	} 
}

function GFAclose_warning() {
	$('category_warning').hide();
}

function GFAsave_billing_info () {

	var required = true;	
	
	var errors = [];
	
	if($('error_tip_top')) {
	$('error_tip_top').remove();
	}

	// validate existence of fields
	
	var saveFields = ['ccard','csc'];
	
	var isValid = true;
	
	//validate
	
	saveFields.each(function(field) {
		
		if(!Field.present(field+'_fld')) {
									
			isValid = false;
			required = false;
						
		}

	});
	
	if(!required) {
	
		errors.push('Please enter your new card info to make a change.');
		
	}		

	// check if valid addy


	if(isValid) {
			
		// serialize and send, listen for image validation issues
		
			// post
		var params = Object.toQueryString({cc: $F('ccard_fld'), exp_month: $F('exp_month_fld'), exp_year: $F('exp_year_fld')});
		
		function finishSave(originalRequest) {
	
			var reqStatus = originalRequest.responseText.evalJSON();
					
			
			if(reqStatus.status == 'ok') {
					
					
				GFAsave_tip('Your info has been saved correctly click X in the top right corner to close box.',344,-818,'top','billing_info');	
				
				} else  {
			
				// TODO: launch general error, refresh
				GFAerror_tip("There was an error updating your information. Please verify your information or try again later",588,-963,'bottom');
				
			}	
	
		}
	
		var ajaxsave = new Ajax.Request(base_url + 'ajax/store_billing_info/',{
	
			parameters: params,
			method: 'post',
			onComplete: finishSave 
		});
			
	} else {
		
		var error_txt = new String;
		
		errors.each(function(error) {
		
			error_txt += error + '<br /><br />';
			
		});
		
		GFAerror_tip(error_txt,588,-963,'bottom');
	
	}	
}

function GFSroll_store(id,onoff) {

	if(onoff ==1) {
		$(id).removeClassName('off');
		$(id).addClassName('selected');
		
	} else {
	
		if(id != selected_store) {
	
			$(id).removeClassName('selected');
			$(id).addClassName('off');
			
		}
		
	}
		
}
