// saleslead.js
var effectDuration 	= 	1;
var imgPath 		= 	"resources/img/";
var imgType 		= 	".jpg";
var green 			= 	"#32CD32";
var red 			= 	"#FF0000";
var gray 			= 	"#b5b5b5";
var productArray 	= 	new Array();

Event.observe(window, "load", function() {	
	// check to see if they've selected not a customer or don't know
	var form = $('saleslead');
	//var customerbuttons = form.getInputs('radio', 'current_customer');
	//customerbuttons.each(function(b){Event.observe(b, 'click', clientToggler.bindAsEventListener());});
	// is this a planned project
	Event.observe($('planned_project_yes'),"click",togglePlannedProject);
	// show product sections based on product line selection
	Event.observe($('products_interest_spindles'),"click",toggleSpindles);
	Event.observe($('products_interest_slides'),"click",toggleSlides);
	Event.observe($('products_interest_rebuild'),"click",toggleRebuild);
	Event.observe($('products_interest_airshield'),"click",toggleAirShield);	
	// rollover controls - show tips and add/remove items from productArray
	Event.observe($('pl_spindles_img_1'),"mouseover",toggleSP1Desc);
	Event.observe($('pl_spindles_img_1'),"mouseout",toggleSP1Desc);
	Event.observe($('pl_spindles_img_1'),"click",toggleSP1Selected);
	Event.observe($('pl_spindles_img_2'),"mouseover",toggleSP2Desc);
	Event.observe($('pl_spindles_img_2'),"mouseout",toggleSP2Desc);
	Event.observe($('pl_spindles_img_2'),"click",toggleSP2Selected);
	Event.observe($('pl_spindles_img_3'),"mouseover",toggleSP3Desc);
	Event.observe($('pl_spindles_img_3'),"mouseout",toggleSP3Desc);
	Event.observe($('pl_spindles_img_3'),"click",toggleSP3Selected);	
	Event.observe($('pl_spindles_img_4'),"mouseover",toggleSP4Desc);	
	Event.observe($('pl_spindles_img_4'),"mouseout",toggleSP4Desc);
	Event.observe($('pl_spindles_img_4'),"click",toggleSP4Selected);	
	Event.observe($('pl_spindles_img_5'),"mouseover",toggleSP5Desc);
	Event.observe($('pl_spindles_img_5'),"mouseout",toggleSP5Desc);
	Event.observe($('pl_spindles_img_5'),"click",toggleSP5Selected);	
	Event.observe($('pl_slides_img_1'),"mouseover",toggleSL1Desc);
	Event.observe($('pl_slides_img_1'),"mouseout",toggleSL1Desc);
	Event.observe($('pl_slides_img_1'),"click",toggleSL1Selected);
	Event.observe($('pl_slides_img_2'),"mouseover",toggleSL2Desc);
	Event.observe($('pl_slides_img_2'),"mouseout",toggleSL2Desc);
	Event.observe($('pl_slides_img_2'),"click",toggleSL2Selected);	
	Event.observe($('pl_slides_img_3'),"mouseover",toggleSL3Desc);
	Event.observe($('pl_slides_img_3'),"mouseout",toggleSL3Desc);
	Event.observe($('pl_slides_img_3'),"click",toggleSL3Selected);	
	Event.observe($('pl_slides_img_4'),"mouseover",toggleSL4Desc);
	Event.observe($('pl_slides_img_4'),"mouseout",toggleSL4Desc);
	Event.observe($('pl_slides_img_4'),"click",toggleSL4Selected);	
	Event.observe($('pl_rebuild_img_1'),"mouseover",toggleRB1Desc);
	Event.observe($('pl_rebuild_img_1'),"mouseout",toggleRB1Desc);
	Event.observe($('pl_rebuild_img_1'),"click",toggleRB1Selected);		
	Event.observe($('pl_airshield_img_1'),"mouseover",toggleAS1Desc);
	Event.observe($('pl_airshield_img_1'),"mouseout",toggleAS1Desc);
	Event.observe($('pl_airshield_img_1'),"click",toggleAS1Selected);
	// show/hide examples for goals, needs & obstacles
	// Event.observe($('goalExs'),"click",showGoalExs);
	// Event.observe($('needExs'),"click",showNeedExs);
	// /Event.observe($('obstacleExs'),"click",showObstacleExs);
	// add example to form field	
	// Event.observe($('goal_1'),"click",toggleEx2Form);
	// Event.observe($('goal_2'),"click",toggleEx2Form);
	// Event.observe($('goal_3'),"click",toggleEx2Form);
	// Event.observe($('need_1'),"click",toggleEx2Form);
	// Event.observe($('need_2'),"click",toggleEx2Form);
	// Event.observe($('need_3'),"click",toggleEx2Form);
	// Event.observe($('obstacle_1'),"click",toggleEx2Form);
	// Event.observe($('obstacle_2'),"click",toggleEx2Form);
	// Event.observe($('obstacle_3'),"click",toggleEx2Form);	
});

// description display handlers
function toggleSP1Desc(){rollNToggle(this,$('tip_spindles_1'));}
function toggleSP2Desc(){rollNToggle(this,$('tip_spindles_2'));}
function toggleSP3Desc(){rollNToggle(this,$('tip_spindles_3'));}
function toggleSP4Desc(){rollNToggle(this,$('tip_spindles_4'));}
function toggleSP5Desc(){rollNToggle(this,$('tip_spindles_5'));}
function toggleSL1Desc(){rollNToggle(this,$('tip_slides_1'));}
function toggleSL2Desc(){rollNToggle(this,$('tip_slides_2'));}
function toggleSL3Desc(){rollNToggle(this,$('tip_slides_3'));}
function toggleSL4Desc(){rollNToggle(this,$('tip_slides_4'));}
function toggleRB1Desc(){rollNToggle(this,$('tip_rebuild_1'));}
function toggleAS1Desc(){rollNToggle(this,$('tip_airshield_1'));}

// product selction handlers
function toggleSP1Selected(){toggleSelectProd(this);}
function toggleSP2Selected(){toggleSelectProd(this);}
function toggleSP3Selected(){toggleSelectProd(this);}
function toggleSP4Selected(){toggleSelectProd(this);}
function toggleSP5Selected(){toggleSelectProd(this);}
function toggleSL1Selected(){toggleSelectProd(this);}
function toggleSL2Selected(){toggleSelectProd(this);}
function toggleSL3Selected(){toggleSelectProd(this);}
function toggleSL4Selected(){toggleSelectProd(this);}
function toggleRB1Selected(){toggleSelectProd(this);}
function toggleAS1Selected(){toggleSelectProd(this);}

// examples display handlers
function showGoalExs(){showHideExs(this,$('goalExsList'))};
function showNeedExs(){showHideExs(this,$('needExsList'))};
function showObstacleExs(){showHideExs(this,$('obstacleExsList'))};

// only here to clean up the description display handler
function rollNToggle(elt,descid){
	imgRollover(elt);
	toggleProductDesc(descid);
}

// determine if this is a planned project
function plannedProjectValue() {
	if($("planned_project_yes").checked) {return "1";}
	return "0";
}

// show project time frame fields if it is a planned project
function togglePlannedProject() {
	if(plannedProjectValue() == "1") {
		DRYblinder($('isPlannedProject'),'down');
		//Effect.BlindDown('isPlannedProject', { duration: 1.5 });
		// $('isPlannedProject').BlindDown();
	} else {
		DRYblinder($('isPlannedProject'),'up');		
		//Effect.BlindUp('isPlannedProject', { duration: 1.5 });
		// $('isPlannedProject').BlindUp();
	}
}

//  show selected product group
function toggleSpindles(){
	theToggler("products_interest_spindles","pl_spindles");
	if($('cat1ArrwDn').visible()){
		$('cat1ArrwDn').hide();
		$('cat1ArrwUp').show();		
	}else{
		$('cat1ArrwDn').show();
		$('cat1ArrwUp').hide();
	}
};
function toggleSlides(){theToggler("products_interest_slides","pl_slides");
	if($('cat2ArrwDn').visible()){
		$('cat2ArrwDn').hide();
		$('cat2ArrwUp').show();		
	}else{
		$('cat2ArrwDn').show();
		$('cat2ArrwUp').hide();
	}
};
function toggleRebuild(){theToggler("products_interest_rebuild","pl_rebuild");
	if($('cat3ArrwDn').visible()){
		$('cat3ArrwDn').hide();
		$('cat3ArrwUp').show();		
	}else{
		$('cat3ArrwDn').show();
		$('cat3ArrwUp').hide();
	}
};
function toggleAirShield(){theToggler("products_interest_airshield","pl_airshield");
	if($('cat4ArrwDn').visible()){
		$('cat4ArrwDn').hide();
		$('cat4ArrwUp').show();		
	}else{
		$('cat4ArrwDn').show();
		$('cat4ArrwUp').hide();
	}
};

// UTILITY FUNCTIONS 
// repackaged functionality to keep things DRY

// generic blindup/down function
function DRYblinder(elt,direction){
	if(direction == 'up'){
		new Effect.BlindUp(elt,{duration:effectDuration, queue: "end"});
	} else {
		new Effect.BlindDown(elt,{duration:effectDuration, queue: "front"});		
	}
};


// show/hide an element
function theToggler(ctrl_elt,elt){
	toggleOn($(ctrl_elt));
	if($(ctrl_elt).hasClassName('on')){
		if(!$(elt).visible()){DRYblinder($(elt),'down')};
	}else{
		if($(elt).visible()) {DRYblinder($(elt),'up')};		
	}		
};

// show/hide product descriptions
function toggleProductDesc(elt){
	if(elt.visible()){
		elt.hide();
	} else {
		elt.show();
	}
}

// draw a border around an element
function brdr(elt,color){
	elt.setStyle({border:'1px solid '+color});
}

// mimics left() from other languages...
function Left(str, n){
	if (n <= 0)
	    return "";
	else if (n > String(str).length)
	    return str;
	else
	    return String(str).substring(0,n);
}

// mimics right() from other languages.
function Right(str, n){
    if (n <= 0)
       return "";
    else if (n > String(str).length)
       return str;
    else {
       var iLen = String(str).length;
       return String(str).substring(iLen, iLen - n);
    }
};

// add/delete a product from the productArray and set up the correct visual cues.
function toggleSelectProd(elt){
	if(elt.hasClassName('on')){
		elt.removeClassName('on');
		brdr(elt,'#b5b5b5');
		productArray = productArray.without(elt.alt);
	}else{
		elt.addClassName('on');
		brdr(elt,'#32CD32');
		productArray.push(elt.alt);		
	};
	$('productInterest').value = productArray;
};

//  a beast of a rollover function
//  this covers an element if it is/is not selected
function imgRollover(elt){
	img = Left(elt.src,elt.src.length-4);
	if(elt.hasClassName('on')){
		if(elt.src.include('_add')){
			img = Left(img,img.length-4);
			elt.src = img+'_selected'+imgType;
			brdr(elt,green);
		} else if(elt.src.include('_remove')){
			img = Left(img,img.length-7);
			elt.src = img+'_selected'+imgType;
			brdr(elt,green);
		} else if(elt.src.include('_selected')){
			img = Left(img,img.length-9);
			elt.src = img+'_remove'+imgType;
			brdr(elt,red);
		}else{
			elt.src = img+'_remove'+imgType;
			brdr(elt,red);
		}
	}else{
		if(elt.src.include('_add')){
			img = Left(img,img.length-4);
			elt.src = img+imgType;
			brdr(elt,gray);
		}else if(elt.src.include('_remove')){
			img = Left(img,img.length-7);
			elt.src = img+imgType;
			brdr(elt,gray);
		}else if(elt.src.include('_selected')){	
			// can this happen?
			alert('I did not think this was possible.');
		}else{
			elt.src = img+'_add'+imgType;
			brdr(elt,green);
		};
	};
};

// show/hide example answers
function showHideExs(elt,exs){
	toggleOn(elt);
	if(elt.hasClassName('on')){
		elt.update('hide examples');
		DRYblinder(exs,'down');
	}else{
		elt.update('view examples');
		DRYblinder(exs,'up');
	};	
};

// add/remove the 'on' class from an element
function toggleOn(elt){
	if(elt.hasClassName('on')){
	   elt.removeClassName('on');
	}else{
	   elt.addClassName('on');
	};
};

//display extra info needed for non-clients or those who aren't sure
function clientToggler(){
	var typeValue = Form.getInputs('saleslead','radio','current_customer').find(function(radio) { return radio.checked; }).value;
	if(typeValue == 'yes'){
		DRYblinder($('newClient'),'up');
	}else{
		DRYblinder($('newClient'),'down');
	}
};

function toggleEx2Form(){
	exTxt   = this.title;
	exClass = $w(this.className);
	frmFld  = 'application_'+exClass[0];
	if($(frmFld).value != ''){
		$(frmFld).value = $(frmFld).value+', '+exTxt;		
	} else {
		$(frmFld).value = exTxt;
	}
}

// FORM VALIDATION
function handleValidation(form_object, input_object, object_value){
	if(input_object.value == ''){
		return false;
	}else{
		return true;
	}
}
