/*
function to validate the presence and numeric values in the user input form
function is called when form is submitted
*/
function validate()
{
	var r_3_5 = document.getElementsByName('review_3_5');
     r_3_5[0].disabled = false;

	var value = new Array(document.getElementsByName('company_name') , document.getElementsByName('team_size') , 
							document.getElementsByName('contact_person') , document.getElementsByName('email_id') , 
							document.getElementsByName('review_2_4') , document.getElementsByName('review_2_6') ,
							document.getElementsByName('review_2_7') , document.getElementsByName('review_2_8') ,
							document.getElementsByName('review_2_9') , document.getElementsByName('review_2_10') ,
							document.getElementsByName('review_2_13') , document.getElementsByName('review_2_15') ,
							document.getElementsByName('review_2_17') , document.getElementsByName('review_2_18') ,	 
							document.getElementsByName('review_2_19') , document.getElementsByName('review_2_20') ,
							document.getElementsByName('review_4_1') , document.getElementsByName('review_4_2') ,
							document.getElementsByName('review_4_3')
							);

	var flag = true;
	var numberPat = /^([0-9.]{1,})$/;
	var flag_numeric = true;
	var v;

	for(var i=0; i<=18; i++)
	{
		if (value[i][0].value == "")
		{
			flag = false;
			value[i][0].style.border = "2px solid RED";
		}
		else 
		{
			if (i != 0 && i != 2 && i != 3)
			{
				v = (value[i][0].value).match(numberPat);
				if ( v == null)
				{
					flag_numeric = false;
					value[i][0].style.border = "2px solid RED";
				}
				else if (i != 13 && i != 14 && i != 15)
				{
					if (value[i][0].value==0)
					{
						flag_numeric = false;
						value[i][0].style.border = "2px solid RED";
					}
					else value[i][0].style.border = "1px solid  #6699CC";
				} 
				else value[i][0].style.border = "1px solid  #6699CC";
			}
			else value[i][0].style.border = "1px solid  #6699CC";
		}
	}


	if (!flag)
	{
		alert("Please enter valid value for the reviews highlighted in red");
		return false;
	}
	if (!flag_numeric)
	{
		alert("Please enter valid numeric values for the reviews highlighted in red");
		return false;
	}
	var emailPat=/^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/;
	var match_email=(value[3][0].value).match(emailPat);
    if (match_email==null)
     {
        alert("Email format is incorrect");
		value[3][0].style.border = "2px solid RED";
		return false;
     }
	return true;
	
}


/*
function to fill the review of question 3.2
review 3.2 depends on the value of review 3.1
function is called on any change in 3.1
*/
function fill_3_2()
{
   var r_3_1= document.getElementsByName('review_3_1'); 
   var c_3_1= document.getElementsByName('comments_3_1'); 
   var r_3_2 = document.getElementsByName('review_3_2');
   var r_3_3 = document.getElementsByName('review_3_3');
   var r_3_3_2 = document.getElementsByName('review_3_3_2');
   if (r_3_1[0].value  == "selenium" || r_3_1[0].value  == "ruby/watir" || r_3_1[0].value  == "opensource")
	{
        r_3_2[0].value = "OpenSource"
        c_3_1[0].value = "Disclaimer: OpenSource tools are compatible with very few browsers or windows features. Exact compatibility needs to be checked once further details are provided to us" 
	}
   else
	{
         r_3_2[0].value = "Paid Tool";
         c_3_1[0].value = ""
	}
    if (r_3_1[0].value  == "qtp" || r_3_1[0].value  == "ruby/watir" || r_3_1[0].value  == "silktest" || r_3_1[0].value  == "rationalrobot" || r_3_1[0].value  == "winrunner")
        r_3_3[0].value = "Windows"
	else if (r_3_1[0].value  == "selenium")
	{
		 r_3_3[0].value = "Windows,Linux,Solaris"
	}
	else
           r_3_3[0].value = ""
	if (r_3_1[0].value  == "rationalrobot" || r_3_1[0].value  == "ruby/watir")
	  r_3_3_2[0].value = "Internet Explorer"
	else	if (r_3_1[0].value  == "qtp")
        	  r_3_3_2[0].value = "Internet Explorer, Firefox"
    else	if (r_3_1[0].value  == "silktest")
	   r_3_3_2[0].value = "Netscape, Internet Explorer, Firefox"
	else if (r_3_1[0].value  == "winrunner")
	   r_3_3_2[0].value = "Internet Explorer, Netscape"
	else if (r_3_1[0].value  == "selenium")
	   r_3_3_2[0].value = "Internet Explorer, Safari, Firefox, Chrome, Netscape, Konqueror, Opera"
   else 
  	   r_3_3_2[0].value = ""

}

/*
function is used to fill the value of review for question 3.5 
function is called when review 3.4 is changed
*/
function change_3_5()
{
   var r_3_4 = document.getElementsByName('review_3_4');
   var r_3_5 = document.getElementsByName('review_3_5');
   r_3_5[0].value = 100 - r_3_4[0].value
   r_3_5[0].disabled = true;
}

 


/*
function is used to calculate number of resources(question 3.7)
*/
function num_of_resources()
{
  var r_1_1 = document.getElementsByName('review_1_1');
  var r_1_3 = document.getElementsByName('review_1_3');
  var r_2_6 = document.getElementsByName('review_2_6');
  var r_2_10 = document.getElementsByName('review_2_10');
  var r_3_2 = document.getElementsByName('review_3_2');
  var r_3_5 = document.getElementsByName('review_3_5');
  var r_3_6 = document.getElementsByName('review_3_6');
  var r_3_7 = document.getElementsByName('review_3_7');
  var r_26 = (r_2_6[0].value?r_2_6[0].value:1);
  var r_210 = (r_2_10[0].value?r_2_10[0].value:4);
  var num_of_regression_test_cases_major_release_at1 = Math.round((r_26 * r_3_5[0].value)/100);
  var adjustment_factor_at1 = 0;
  if (r_210.value/4 > 20)
    var test_script_created_per_person_per_day_at1= 20;
  else
    var test_script_created_per_person_per_day_at1= Math.ceil(r_210/4);
 
  var time_available_to_create_automation_scripts_at1= r_3_6[0].value * 22;
  
  if (r_1_1[0].value == "desktop")
    adjustment_factor_at1 = 0;
  else
     adjustment_factor_at1 = 15;
  if (r_1_3[0].value == "yes")
     adjustment_factor_at1 = adjustment_factor_at1 + 10;
  if (r_3_2[0].value == "OpenSource")
     adjustment_factor_at1 = adjustment_factor_at1 + 40;
  adjustment_factor_at1 = adjustment_factor_at1/100;

  var time_required_for_creating_automatable_test_scripts_at1 
	= Math.ceil(((num_of_regression_test_cases_major_release_at1/test_script_created_per_person_per_day_at1)
        *(1+adjustment_factor_at1)));

  var difference_between_actual_time_and_expected_time_at1 =
	time_required_for_creating_automatable_test_scripts_at1 - time_available_to_create_automation_scripts_at1;

  var num_of_resources_required_to_complete_automation_in_expected_time_at1 =
	 Math.ceil((difference_between_actual_time_and_expected_time_at1/ time_available_to_create_automation_scripts_at1
	  )+1.5);

  r_3_7[0].value = num_of_resources_required_to_complete_automation_in_expected_time_at1;
 
}

/*
function is used to check valid numeric value for field
*/
function check_valid()
{
  var r_2_10 = document.getElementsByName('review_2_10');
  var numberPat = /^([0-9.]{1,})$/
  if ((r_2_10[0].value).match(numberPat) == null  || r_2_10[0].value <2)
  {
	r_2_10[0].style.border = "2px solid RED";
    alert("Please enter valid value for question no. 2.10");
	return false;
  }
  num_of_resources();
  return true;
}