// JavaScript Document
// Vikas Bose :: 08/June/11
checked=false;
function checkAll(field){
	 if (checked == false){checked = true}else{checked = false}
	for (i = 0; i < field.length; i++)
		document.getElementById(field[i]).checked = checked;

}

checked1=false;
function checkAll1(field){
	if (checked1 == false){checked1 = true}else{checked1 = false}
	for (i = 0; i < field.length; i++)
		document.getElementById(field[i]).checked = checked1;

}

checked2=false;
function checkAll2(field){
	if (checked2 == false){checked2 = true}else{checked2 = false}
	for (i = 0; i < field.length; i++)
		document.getElementById(field[i]).checked = checked2;

}
checked3=false;
function checkAll3(field){
	 if (checked3 == false){checked3 = true}else{checked3 = false}
	for (i = 0; i < field.length; i++)
		document.getElementById(field[i]).checked = checked3;

}

$(document).ready(function(){
 $("#advanceSearch").validate({
		rules: {
			zipcode:{				
				minlength:5,
				digits:true
			}
		},
		messages: {
			zipcode:{
				minlength:'Please enter at least 5 digits',
				digits:'Please enter the only digit'}
		}
	});
	$("#zipcode").keypress(function(e){
	 if( e.which!=8 && e.which!=0 && e.which!=46 && (e.which<48 || e.which>57)){
		 return false;
	 }	
 });

   $('#category1').click(function(){
      var docAge1 = document.getElementById('category1').checked;
	  var age1 = (docAge1 != false)?$('#category1').val()+',':'';
	  if(age1!= '' && docAge1 != false){
   	  	$("#sport_value").slideDown();
	  }else{
		$("#sport_value").slideUp();  
	  }
   });
  $('#age1').click(function(){
      var docAge1 = document.getElementById('age1').checked;
	  /*var docAge2 = document.getElementById('age2').checked;
	  var docAge3 = document.getElementById('age3').checked;*/
	  var age1 = (docAge1 != false)?$('#age1').val()+',':'';
	  /*var age2 = (docAge2 != false)?$('#age2').val()+',':'';
	  var age3 = (docAge3 != false)?$('#age3').val()+',':'';
      if(age1!= '' || age2!= '' || age3!= ''){	     */
	  if(age1!= '' && docAge1 != false){
   	  	$("#age_value").slideDown();
		//var total = age1+age2+age3;
		var total = age1;
		var strLen = total.length; 
		total_val = total.slice(0,strLen-1); 
		show_age_range(total_val);
	  }else{		
		$("#age_value").slideUp();
	  }	
	  
   });
  /* $('#age2').click(function(){		
	  var docAge1 = document.getElementById('age1').checked;
	  var docAge2 = document.getElementById('age2').checked;
	  var docAge3 = document.getElementById('age3').checked;
	  var age1 = (docAge1 != false)?$('#age1').val()+',':'';
	  var age2 = (docAge2 != false)?$('#age2').val()+',':'';
	  var age3 = (docAge3 != false)?$('#age3').val()+',':'';
      if(age1!= '' || age2!= '' || age3!= ''){	     
   	  	$("#age_value").slideDown();
		var total = age1+age2+age3;
		var strLen = total.length; 
		total_val = total.slice(0,strLen-1);
	  }else{		
		$("#age_value").slideUp();
	  }	  
	   show_age_range(total_val);
   });
   $('#age3').click(function(){	  
	  var docAge1 = document.getElementById('age1').checked;
	  var docAge2 = document.getElementById('age2').checked;
	  var docAge3 = document.getElementById('age3').checked;
	  var age1 = (docAge1 != false)?$('#age1').val()+',':'';
	  var age2 = (docAge2 != false)?$('#age2').val()+',':'';
	  var age3 = (docAge3 != false)?$('#age3').val()+',':'';
      if(age1!= '' || age2!= '' || age3!= ''){	     
   	  	$("#age_value").slideDown();
		var total = age1+age2+age3;
		var strLen = total.length;
		total_val = total.slice(0,strLen-1);
	  }else{		
		$("#age_value").slideUp();
	  }	
	 show_age_range(total_val);
   });*/
   
});

function show_age_range(ageType)
{
   /*var age_type = $('#'+ageType).val().toString();*///convert to string, for string related functions to work
    var age_type = ageType; 
    //checking if multiple values have been selected
    var multi_opt = age_type.search(/,/);
    if(multi_opt != -1)
    {
        //user has selected multiple values
        var age_opt = age_type.split(',');
        //reverse the array to pick the last value
        var age_opt_rev = age_opt.reverse();
        
        //pick the first value as the maximum selected and assign age range accordingly
        var age_range = age_opt_rev[0];
        
        //check if user has selected all value
        var select_all = age_type.search(/0/);
        if(select_all != -1)
        {
            //assign select all value to the age range
            age_range = '0';
            //remove the 0 entry from the age type array
            age_opt.splice(0, 1);
        }
        else
        {
            age_range = age_opt;
        }
    }    
    else
    {
        //user has selected a single value
        var age_range = age_type;
    }
    
    var age_min = 0;
    var age_max = 0;
        
    //check if age_range is an array
    if(age_range instanceof Array)
    {
        //get the last element of the array and get its age range
        age_temp = get_age_range(age_range[age_range.length - 1]);
        
        age_min = age_temp[0];
        
        //get the first element of the array and get its age range
        age_temp = get_age_range(age_range[0]);
        
        age_max = age_temp[1];
    }
    else
    {
        //check the age type selected and assign min and max value accordingly
        var set_age_range = get_age_range(age_range);
        
        age_min += set_age_range[0];
        age_max += set_age_range[1];
    }
    
    //keep the maximum age in a hidden element to be used by modify_max_age function
    $('#max_age_val').html(age_max);
    
    //enable the min age drop down
    $('#classStartAge').attr('disabled', false);
    
    //empty the min age drop down
    $('#classStartAge').html('');
    
    //traverse through the age range and append the value to the min age drop down
    for(var j = age_min; j <= age_max; j++)
    {
        $('#classStartAge').append('<option value="'+ j +'">' + j + '</option>');
    }
    
    //enable the max age drop down
    $('#classEndAge').attr('disabled', false);
    
    //empty the max age drop down
    $('#classEndAge').html('');
    
    //traverse through the age range and append the value to the max age drop down
    for(var j = age_min + 1; j <= age_max; j++)
    {
        $('#classEndAge').append('<option value="'+ j +'">' + j + '</option>');
    }
}

function modify_max_age()
{
    var min_age = $('#classStartAge').val();
    var max_age = $('#max_age_val').html();
    
    //empty the max age drop down
    $('#classEndAge').html('');
    
    if(min_age != max_age)
    {    
        //traverse through the age range and append the value to the max age drop down
        for(var j = parseInt(min_age) + 1; j <= max_age; j++)
        {
            $('#classEndAge').append('<option value="'+ j +'">' + j + '</option>');
        }
    }
    else
    {
        //in case minimum age is equal to maximum age, then show maximum age only
        $('#classEndAge').append('<option value="'+ max_age +'">' + max_age + '</option>');
    }
}

function get_age_range(age_type)
{

    switch(age_type)
        {
            //user has selected all values
            case '0':
                age_min = 0;
                age_max = 99;
            break;    
            //user has selected child
            case '1':
                age_min = 0;
                age_max = 17;
            break;
            //user has selected adult
            case '2':
                age_min = 18;
                age_max = 99;
            break;
            //user has selected senior
            case '3':
                age_min = 65;
                age_max = 99;
            break;
        }
        
        age_range = new Array();
        
        age_range[0] = age_min;
        age_range[1] = age_max;
        
        return age_range;
}
