jQuery(document).ready(function() {

// disable title field	
	jQuery('#edit-title-wrapper').css({height:'1px',overflow:'hidden'});
	jQuery('#edit-title').attr({disabled:'disabled'});

// disable access key field
	jQuery('#edit-field-status-key-wrapper').css({height:'1px',overflow:'hidden'});
	jQuery('#edit-field-status-key').attr({disabled:'disabled'});

// hide assigned salesperson field
	// jQuery('#edit-field-assigned-saleperson-uids-wrapper').css({height:'1px',overflow:'hidden'});
	// jQuery('#edit-field-assigned-saleperson-uids').attr({disabled:'disabled'});

// remove the preview button ... it is causing problems with access key and in unnecessary anyway
	jQuery('#edit-preview').remove();
	
// hide the access key field
	jQuery('#edit-field-accesskey-0-value-wrapper').css({height:'1px',overflow:'hidden'});
	jQuery('#edit-field-accesskey-0-value').attr({disabled:'disabled'});

// if you are not logged in then
if(!GBL.user.uid){

	// re-label the followup date
	jQuery('#edit-field-date-0-value-wrapper label').html('Please Follow-up Before:');

	// disable the follow-up date
	// jQuery('#edit-field-date-0-value-wrapper').css({height:'1px',overflow:'hidden'});
	// jQuery('#edit-field-date-0-value').attr({disabled:'disabled'});

	// hide the Follow-up notes
	jQuery('#edit-field-follow-up-notes-0-value-wrapper').css({height:'1px',overflow:'hidden'});
	// jQuery('#edit-field-date-0-value').attr({disabled:'disabled'});

	// hide the Sales notes	
	jQuery('#edit-field-sales-notes-0-value-wrapper').css({height:'1px',overflow:'hidden'});
	// jQuery('#edit-field-date-0-value').attr({disabled:'disabled'});
	
	// remove the tips and the instructions for #edit-field-follow-up-notes-0-value and  #edit-field-sales-notes-0-value
	jQuery('.group-sales-info ul.tips,.group-sales-info p').remove();	
}

// hide the log field...WTF Mate
	jQuery('#edit-log-wrapper').css({height:'1px',overflow:'hidden'});
	
// set delimiters into the title field if there is no title
	if(jQuery('#edit-title').attr('value') == ''){
		jQuery('#edit-title').attr({value:',,'});					
	}

// bind an onchange to:
	// firstname: 
	jQuery('#edit-field-first-name-0-value').bind('change',function(){
		setTitle(this,{field:'fname'});
	});
	
	// lastname: 
	jQuery('#edit-field-last-name-0-value').bind('change',function(){
		setTitle(this,{field:'lname'});		
	});
	
	// phone_number_1: 
	jQuery('#edit-field-phone-0-value').bind('change',function(){
		setTitle(this,{field:'phone'});
	});

// bind the re-enable the data fields so that they can be submitted
	jQuery('#node-form').bind('submit',function(){
		// handle the title
		jQuery('#edit-title').removeAttr('disabled');
		// force the title to have the correct composition
		var lname = jQuery('#edit-field-last-name-0-value').attr('value');
		var fname = jQuery('#edit-field-first-name-0-value').attr('value');
		var phone = jQuery('#edit-field-phone-0-value').attr('value');
		var title = lname+','+fname+','+phone;
		jQuery('#edit-title').attr({value:title});
		jQuery('#edit-field-status-key').removeAttr('disabled');
		// jQuery('#edit-field-assigned-saleperson-uids').removeAttr('disabled');
		jQuery('#edit-field-accesskey-0-value').removeAttr('disabled');
	});

// label the color choices
	labelChoices('#edit-field-exterior-colors-0-value-wrapper');
	labelChoices('#edit-field-interior-colors-0-value-wrapper');
		
// close the "Where you referred by anyone?" and "Are you trading in a vehicle?" items	
	// get the sizes of #edit-field-who-referred-you-0-value-wrapper and #edit-field-trade-in-description-0-value-wrapper as openHeight values for the 
	whoReferredYouStartHeight = jQuery('#edit-field-who-referred-you-0-value-wrapper').height();
	tradeInDescriptionStartHeight =  jQuery('#edit-field-trade-in-description-0-value-wrapper').height();

	// hide the overflow for the items
	jQuery('#edit-field-who-referred-you-0-value-wrapper').css({overflow:'hidden'});
	jQuery('#edit-field-trade-in-description-0-value-wrapper').css({overflow:'hidden'});
	
	// fold #edit-field-who-referred-you-0-value-wrapper down to 0
	var whoReferredYouSelectionNo = jQuery('#edit-field-referred-key-No-wrapper label input').attr('checked');
	if(whoReferredYouSelectionNo){ // if the no option is selected then hide the attached field
		manageFold({selector:'#edit-field-who-referred-you-0-value-wrapper',mode:'close'});		
	}
	// fold #edit-field-trade-in-description-0-value-wrapper down to 0
	var tradeInDescriptionSelectionNo = jQuery('#edit-field-trade-in-key-No-wrapper label input').attr('checked');
	if(tradeInDescriptionSelectionNo){ // if the no option is selected then hide the attached field
		manageFold({selector:'#edit-field-trade-in-description-0-value-wrapper',mode:'close'});
	}
	
// pre select the assigned sales person box if the uid > 0
	if(GBL.user.uid){
		jQuery('#edit-field-assigned-saleperson-uids option[value='+GBL.user.uid+']').attr({selected:'selected'});		
	}

// alter the label and select option to make sense for an incoming customer
	if(!GBL.user.uid){
		jQuery('#edit-field-assigned-saleperson-uids-wrapper label').html('Assign a Sales Persion?');
		jQuery('#edit-field-assigned-saleperson-uids-wrapper option[value=none]').html('First available Sales Person');		
	}

// bind handlers to the "Where you referred by anyone?" and "Are you trading in a vehicle?"
	jQuery('#edit-field-referred-key-Yes-wrapper input').bind('change',function(){
		manageFold({selector:'#edit-field-who-referred-you-0-value-wrapper',mode:'open'});
	});

	jQuery('#edit-field-referred-key-No-wrapper input').bind('change',function(){
		manageFold({selector:'#edit-field-who-referred-you-0-value-wrapper',mode:'close'});
	});

	jQuery('#edit-field-trade-in-key-Yes-wrapper input').bind('change',function(){
		manageFold({selector:'#edit-field-trade-in-description-0-value-wrapper',mode:'open',speed:0});
	});

	jQuery('#edit-field-trade-in-key-No-wrapper input').bind('change',function(){
		manageFold({selector:'#edit-field-trade-in-description-0-value-wrapper',mode:'close',speed:0});
	});
	
});

function labelChoices(selector){
	
	var items = jQuery(selector).parent().children('div').children('input');
	
	jQuery(items).each(function(index){
		// console.log(this);
		jQuery(this).before('<span class="label">Choice '+(index+1)+'</span>');
	});
}

var whoReferredYouStartHeight = 0;
var tradeInDescriptionStartHeight = 0;
function getHeight(selector,mode){

	var height = 0;
	if(mode=='open'){
		
		switch(selector){
			case '#edit-field-trade-in-description-0-value-wrapper':
				height = tradeInDescriptionStartHeight;
			break;
			
			case '#edit-field-who-referred-you-0-value-wrapper':
				height = whoReferredYouStartHeight;
			break;
			
			default:
				height = 0;
				alert('No StartHeight defined for selector:'+selector);
		}
		
	}
	return height;
}

function manageFold(settings){
	var defaults = {
		selector:'#some_id' // some dom id
		,mode:'close' // open|!open
		,speed:200 //ms
	}

	if(settings) jQuery.extend(defaults, settings);
	
	var mode = defaults.mode;
	var selector = defaults.selector;
	var speed = defaults.speed;	
	
	jQuery(selector).animate({ 
		height: getHeight(selector,mode)
	}, speed);

}



function setTitle(el,settings){

	// parse settings
	var defaults = {
		field: false
	}
	if(settings) jQuery.extend(defaults, settings);
	var field = defaults.field;

	// cut the title field into parts
	var ctitle = jQuery('#edit-title').attr('value');	
	var parts = ctitle.split(',');

	// assign the new informtion int the array
	switch(field){
		case 'fname': parts[1] = jQuery(el).attr('value'); break;
		case 'lname': parts[0] = jQuery(el).attr('value'); break;
		case 'phone': parts[2] = jQuery(el).attr('value'); break;
	}

	// assign new data into title field
	var newtitle = parts.join(',');
	jQuery('#edit-title').attr({value:newtitle});
}	
