/*
$() does not return a DOM element. It returns a jQuery object.
$().get(0)  returns the underlying DOM element(s) for a jQuery object
$("input[name='newsletter']"); Henter alle elementer med name=newsletter
$("#myDiv"); Henter alle elementer med id=myDiv (Der er jo kun en)
$(domElement) converts domElement to JQueryElement

var intSportID = $("input[name='sportid']:checked").val(); //Selected radio value
*/

$(document).ready(function() {
  // put all your jQuery goodness in here.
 
 //Validate form elements on blur
    $(":input").each(function() {
        var element = $(this);
        element.blur(function() {
            JQ_validateElement(element);
        })
    })
    $(":select").each(function() {
        var element = $(this);
        element.blur(function() {
            JQ_validateElement(element);
        })
    })
 
  //Select default radio buttons
  JQ_SelectDefaultRadioButtons()
  //Selects all radiobuttons with the attribute radioDefaultChecked=1 if no radio in the group is checked.
  function JQ_SelectDefaultRadioButtons(){
    $("input[type='radio'][radioDefaultChecked=1]").each(function(){
      var rb = $(this);
      var strRadioName = rb.attr('name');
      var boolChecked=false;
      
      /*
      $("[name='"+strRadioName+"']").each(function(j){
        var rb1= $(this);
        if(rb1.is(':checked')) boolChecked=true;
      })
      if(boolChecked==false){
        rb.attr("checked", true)
      }
      
      */
      
      var checkedValue = $("[name='"+strRadioName+"']:checked").val();
      if(checkedValue==null){
       rb.attr("checked", true)
      }
    })
  }

  //Hide all divs that require a radio button or a select to be selected.
  //<input type=radio id=radioID>
  //<div requireIDSelected=radioID>Show hide me by clicking the radio</div>
  UpdateAllRequireIDSelectedInstantly()
  
  $("input[type='checkbox']").each(function() {
    var cb = $(this)
    cb.click(function(e){
      var id =  $(this).attr('id');
      $("[requireIDSelected="+id+"]").each(function(){
        var slideObject = $(this);
        var boolChecked = cb.is(':checked');
        if(boolChecked){
          //slideObject.show();
          slideObject.slideDown('slow',function(){slideObject.width(slideObject.width())});
        }else{
          //slideObject.hide();
          slideObject.slideUp('slow');
        }
      })
      //UpdateRequireIDSelected(cb.attr('name'))
    })
  
  });
  $("input[type='radio']").each(function() {
    var cb = $(this)
    var groupName = cb.attr('name')
    cb.click(function(e){
      UpdateRequireIDSelected(groupName);
    })
  
  });
  
  function UpdateRequireIDSelected(strRadioGroupname){
    
    $("input[name="+strRadioGroupname+"]").each(function(i){
      var boolChecked = $(this).is(':checked');
      var radioID = $(this).attr('id');
      $("[requireIDSelected="+radioID+"]").each(function(){
        var slideObject = $(this);
        if(boolChecked){
          //slideObject.show();
          slideObject.slideDown('slow',function(){slideObject.width(slideObject.width())});
          
        }else{
          //slideObject.hide();
          slideObject.slideUp('slow');
        }
      })
      
    })
  }
    
  function UpdateAllRequireIDSelectedInstantly(){
    $('[requireIDSelected]').each(function(i){
      var slideObject = $(this)
      var requiredID = slideObject.attr('requireIDSelected');
      var cb = $("#"+requiredID)
      var boolChecked = cb.is(':checked');
      if(boolChecked){
        //if(!slideObject.is(':visible')){  
          slideObject.show();
        //}
      }else{
        //if(slideObject.is(':visible')) 
        slideObject.hide();
      }
    })
  }
  
  
  //Nedenstående to funktioner håndterer en radiobutton/checkbox har et "tag" der fortæller at en div skal expande/collapse når radiobutton er checked eller ikke checked
  //eksempel: <input type=radio name=testButton value=1 targetDiv="div_nr_1">
  $('[targetDiv]').each(function(i){
    
    var boolChecked = $(this).is(':checked');
    var targetDiv = $(this).attr('targetDiv'); 
    
    if(!boolChecked){
      var tdiv = $("#"+targetDiv)
      if (tdiv!=null) tdiv.hide();
    }
    $(this).click(function(e){
      var groupName = $(this).attr('name')
      UpdateRadioDivs(groupName);
    })
  })
  function UpdateRadioDivs(strRadioGroupname){
    
    //var var_name = $("input[name="+strRadioGroupname+"]:checked").val(); 
    $("input[name="+strRadioGroupname+"]").each(function(i){
      var boolChecked = $(this).is(':checked');
      var targetDiv = $(this).attr('targetDiv');
      var tdiv = $("#"+targetDiv)
      if (tdiv!=null){
        if (boolChecked){
          $("#"+targetDiv).slideDown('slow');
        }else{
          $("#"+targetDiv).slideUp('slow');
        }
      }
    }) 
  }
  

            $("input[type=text], input[type=password], input[type=checkbox], textarea, select").focus(function(){
                $(this).addClass("jq_activeField");
	    }).blur(function(){
                $(this).removeClass("jq_activeField");
	    }).mouseover(function(){
        $(this).addClass("jq_mouseoverField");
      }).mouseout(function(){
        $(this).removeClass("jq_mouseoverField")
      })
      ;


});


