/*!
 * jQuery Tools dev - The missing UI library for the Web
 * 
 * tooltip/tooltip.js
 * tooltip/tooltip.dynamic.js
 * tooltip/tooltip.slide.js
 * 
 * NO COPYRIGHTS OR LICENSES. DO WHAT YOU LIKE.
 * 
 * http://flowplayer.org/tools/
 * 
 */
(function(a){a.tools=a.tools||{version:"dev"},a.tools.tooltip={conf:{effect:"toggle",fadeOutSpeed:"fast",predelay:0,delay:30,opacity:1,tip:0,fadeIE:!1,position:["top","center"],offset:[0,0],relative:!1,cancelDefault:!0,events:{def:"mouseenter,mouseleave",input:"focus,blur",widget:"focus mouseenter,blur mouseleave",tooltip:"mouseenter,mouseleave"},layout:"<div/>",tipClass:"tooltip"},addEffect:function(a,c,d){b[a]=[c,d]}};var b={toggle:[function(a){var b=this.getConf(),c=this.getTip(),d=b.opacity;d<1&&c.css({opacity:d}),c.show(),a.call()},function(a){this.getTip().hide(),a.call()}],fade:[function(b){var c=this.getConf();!a.browser.msie||c.fadeIE?this.getTip().fadeTo(c.fadeInSpeed,c.opacity,b):(this.getTip().show(),b())},function(b){var c=this.getConf();!a.browser.msie||c.fadeIE?this.getTip().fadeOut(c.fadeOutSpeed,b):(this.getTip().hide(),b())}]};function c(b,c,d){var e=d.relative?b.position().top:b.offset().top,f=d.relative?b.position().left:b.offset().left,g=d.position[0];e-=c.outerHeight()-d.offset[0],f+=b.outerWidth()+d.offset[1],/iPad/i.test(navigator.userAgent)&&(e-=a(window).scrollTop());var h=c.outerHeight()+b.outerHeight();g=="center"&&(e+=h/2),g=="bottom"&&(e+=h),g=d.position[1];var i=c.outerWidth()+b.outerWidth();g=="center"&&(f-=i/2),g=="left"&&(f-=i);return{top:e,left:f}}function d(d,e){var f=this,g=d.add(f),h,i=0,j=0,k=d.attr("title"),l=d.attr("data-tooltip"),m=b[e.effect],n,o=d.is(":input"),p=o&&d.is(":checkbox, :radio, select, :button, :submit"),q=d.attr("type"),r=e.events[q]||e.events[o?p?"widget":"input":"def"];if(!m)throw"Nonexistent effect \""+e.effect+"\"";r=r.split(/,\s*/);if(r.length!=2)throw"Tooltip: bad events configuration for "+q;d.bind(r[0],function(a){clearTimeout(i),e.predelay?j=setTimeout(function(){f.show(a)},e.predelay):f.show(a)}).bind(r[1],function(a){clearTimeout(j),e.delay?i=setTimeout(function(){f.hide(a)},e.delay):f.hide(a)}),k&&e.cancelDefault&&(d.removeAttr("title"),d.data("title",k)),a.extend(f,{show:function(b){if(!h){l?h=a(l):e.tip?h=a(e.tip).eq(0):k?h=a(e.layout).addClass(e.tipClass).appendTo(document.body).hide().append(k):(h=d.next(),h.length||(h=d.parent().next()));if(!h.length)throw"Cannot find tooltip for "+d}if(f.isShown())return f;h.stop(!0,!0);var o=c(d,h,e);e.tip&&h.html(d.data("title")),b=a.Event(),b.type="onBeforeShow",g.trigger(b,[o]);if(b.isDefaultPrevented())return f;o=c(d,h,e),h.css({position:"absolute",top:o.top,left:o.left}),n=!0,m[0].call(f,function(){b.type="onShow",n="full",g.trigger(b)});var p=e.events.tooltip.split(/,\s*/);h.data("__set")||(h.unbind(p[0]).bind(p[0],function(){clearTimeout(i),clearTimeout(j)}),p[1]&&!d.is("input:not(:checkbox, :radio), textarea")&&h.unbind(p[1]).bind(p[1],function(a){a.relatedTarget!=d[0]&&d.trigger(r[1].split(" ")[0])}),e.tip||h.data("__set",!0));return f},hide:function(c){if(!h||!f.isShown())return f;c=a.Event(),c.type="onBeforeHide",g.trigger(c);if(!c.isDefaultPrevented()){n=!1,b[e.effect][1].call(f,function(){c.type="onHide",g.trigger(c)});return f}},isShown:function(a){return a?n=="full":n},getConf:function(){return e},getTip:function(){return h},getTrigger:function(){return d}}),a.each("onHide,onBeforeShow,onShow,onBeforeHide".split(","),function(b,c){a.isFunction(e[c])&&a(f).bind(c,e[c]),f[c]=function(b){b&&a(f).bind(c,b);return f}})}a.fn.tooltip=function(b){var c=this.data("tooltip");if(c)return c;b=a.extend(!0,{},a.tools.tooltip.conf,b),typeof b.position=="string"&&(b.position=b.position.split(/,?\s/)),this.each(function(){c=new d(a(this),b),a(this).data("tooltip",c)});return b.api?c:this}})(jQuery);
(function(a){var b=a.tools.tooltip;b.dynamic={conf:{classNames:"top right bottom left"}};function c(b){var c=a(window),d=c.width()+c.scrollLeft(),e=c.height()+c.scrollTop();return[b.offset().top<=c.scrollTop(),d<=b.offset().left+b.width(),e<=b.offset().top+b.height(),c.scrollLeft()>=b.offset().left]}function d(a){var b=a.length;while(b--)if(a[b])return!1;return!0}a.fn.dynamic=function(e){typeof e=="number"&&(e={speed:e}),e=a.extend({},b.dynamic.conf,e);var f=e.classNames.split(/\s/),g;this.each(function(){var b=a(this).tooltip().onBeforeShow(function(b,h){var i=this.getTip(),j=this.getConf();g||(g=[j.position[0],j.position[1],j.offset[0],j.offset[1],a.extend({},j)]),a.extend(j,g[4]),j.position=[g[0],g[1]],j.offset=[g[2],g[3]],i.css({visibility:"hidden",position:"absolute",top:h.top,left:h.left}).show();var k=c(i);if(!d(k)){k[2]&&(a.extend(j,e.top),j.position[0]="top",i.addClass(f[0])),k[3]&&(a.extend(j,e.right),j.position[1]="right",i.addClass(f[1])),k[0]&&(a.extend(j,e.bottom),j.position[0]="bottom",i.addClass(f[2])),k[1]&&(a.extend(j,e.left),j.position[1]="left",i.addClass(f[3]));if(k[0]||k[2])j.offset[0]*=-1;if(k[1]||k[3])j.offset[1]*=-1}i.css({visibility:"visible"}).hide()});b.onBeforeShow(function(){var a=this.getConf(),b=this.getTip();setTimeout(function(){a.position=[g[0],g[1]],a.offset=[g[2],g[3]]},0)}),b.onHide(function(){var a=this.getTip();a.removeClass(e.classNames)}),ret=b});return e.api?ret:this}})(jQuery);
(function(a){var b=a.tools.tooltip;a.extend(b.conf,{direction:"up",bounce:!1,slideOffset:10,slideInSpeed:200,slideOutSpeed:200,slideFade:!a.browser.msie});var c={up:["-","top"],down:["+","top"],left:["-","left"],right:["+","left"]};b.addEffect("slide",function(a){var b=this.getConf(),d=this.getTip(),e=b.slideFade?{opacity:b.opacity}:{},f=c[b.direction]||c.up;e[f[1]]=f[0]+"="+b.slideOffset,b.slideFade&&d.css({opacity:0}),d.show().animate(e,b.slideInSpeed,a)},function(b){var d=this.getConf(),e=d.slideOffset,f=d.slideFade?{opacity:0}:{},g=c[d.direction]||c.up,h=""+g[0];d.bounce&&(h=h=="+"?"-":"+"),f[g[1]]=h+"="+e,this.getTip().animate(f,d.slideOutSpeed,function(){a(this).hide(),b.call()})})})(jQuery);

/*
  Custom ready function
  This should be used to reposition elements or to define and use custom functions
*/
$(document).ready(function(){
  // Element repositioning
  $('.box').prepend($('.box-top'));
  $('.logo').after($('.mainnav'));
  $('.content-left').prepend($('#interior_photo'));
  $('.header').after($('#temp').html());
  $('#temp').remove();
  
  $('input[name=carried], input[name=insured]').click(function(){
    if($('input[name=carried]:radio:checked').val() == "Yes" || 
      $('input[name=insured]:radio:checked').val() == "Y"){
      $('.carried_yes select').addClass('std_input required ieselectfix');
      $('.carried_yes input').addClass('std_input required');
      $('#dur_insured_yr').addClass('required');
      $('#dur_ins_company_yr').addClass('required');
      $('.carried_yes').show();
    }else{
      $('.carried_yes select').removeClass('std_input required ieselectfix');
      $('.carried_yes input').removeClass('std_input required');
      $('#dur_insured_yr').removeClass('required');
      $('#dur_ins_company_yr').removeClass('required');
      $('.carried_yes').hide();
    }
  });
	
  //number of claims
  $('#reportedClaims').showClaims();
  $('#reportedClaims').bind('click change', jQuery.fn.showClaims);
	
  //property type
  $('#propType').showPropType();
  $('#propType').bind('click change', jQuery.fn.showPropType);
	
  //dog breeds
  $('input[name=dogs]').click(function(){
    if($('input[name=dogs]:radio:checked').val() == "Yes")
      $('#dogs').show();
    else
      $('#dogs').hide();
  });

	
  //Tooltip stuff
  var html_agents = "<p><strong>Excellent</strong> - Established credit history. No past or current problems</p>";
  html_agents += "<p><strong>Good</strong> - An occasional missed credit card payment, but no collection activity.</p>";
  html_agents += "<p><strong>Some Problems</strong> - Any judgment or collection activity filed against you.</p>";
  html_agents += "<p><strong>Major Problems</strong> - Loan defaults, bankruptcy or nonpayment of taxes in the last 7 years.</p>";
  $("#cred_history_agents").setToolTip(html_agents, -80, 7);
	
  var html_credit_moss = "<p><strong>Excellent</strong> - Established credit history. No past or current problems</p>";
  html_credit_moss += "<p><strong>Good</strong> - An occasional missed credit card payment, but no collection activity.</p>";
  html_credit_moss += "<p><strong>Poor</strong> - Any judgment or collection activity filed against you in the past.</p>";
  html_credit_moss += "<p><strong>Unsure</strong> - Select this if you are unsure of your current credit rating.</p>";
  $("#cred_history_moss").setToolTip(html_credit_moss, -75, 7);
	
  var html_liability_moss = "<p>$300,000 is the most common personal liability coverage amount.</p>";
  html_liability_moss += "<p>Not sure how much you need?</p>";
  html_liability_moss += "<p>Feel free to estimate.</p>";
  $("#p_liability_moss").setToolTip(html_liability_moss, -65, 0);
	
  var html_dedcutible_moss = "<p>$500 is the most common choice.</p>";
  //html_dedcutible_moss += "<p>Not sure what it should be?</p>";
  html_dedcutible_moss += "<p>Feel free to estimate and our agents will help you determine the best deductible for your situation.</p>";
  $("#d_deductible_moss").setToolTip(html_dedcutible_moss, -65, 0);
	
  var html_property_moss = "<p>$200,000 is the most common choice for landlords.";
  //html_property_moss += "<p>Not sure what it should be?</p>";
  html_property_moss += " Are you unsure? Feel free to estimate and we will assist you with your choice.</p>";
  $("#p_property_moss").setToolTip(html_property_moss, -65, 0);

});//ready

//Tooltip function takes html as a tooltip message
//x and y offset (from top center of trigger anchor)
jQuery.fn.setToolTip = function(html, x, y){
  return this.each(function(){
    jQuery(this).after('<div class="tooltip">'+html+'</div>');
    jQuery(this).tooltip({
	  position: 'top center', 
	  offset: [y, x], 
	  relative: true
	});
  });//return each function - used to maintain jQuery chaining
}//setToolTip

jQuery.fn.showClaims = function(){
  if($('#reportedClaims').val() == "0" || $('#reportedClaims').val() == "None"){
    $('#claims').hide();
    $('#claims select').removeClass('std_input required ieselectfix');
    $('#claims input').removeClass('std_input required');
    $('#claims select').val('');
    $('#claims input').val('');
  }else if($('#reportedClaims').val() == "1"){
    $('#claims').show();
    $('#claims div').hide();
    $('#claims select').removeClass('std_input required ieselectfix');
    $('#claims input').removeClass('std_input required');
    $('#claim_1').show();
    $('#claim_1 select').addClass('std_input required ieselectfix');
    $('#claim_1 input').addClass('std_input required');
    $('#claim_2 select, #claim_3 select, #claim_4 select').val('');
    $('#claim_2 input, #claim_3 input, #claim_4 input').val('');
  }else if($('#reportedClaims').val() == "2"){
    $('#claims').show();
    $('#claims div').hide();
    $('#claims select').removeClass('std_input required ieselectfix');
    $('#claims input').removeClass('std_input required');
    $('#claim_1').show();
    $('#claim_1 select').addClass('std_input required ieselectfix');
    $('#claim_1 input').addClass('std_input required');
    $('#claim_2').show();
    $('#claim_2 select').addClass('std_input required ieselectfix');
    $('#claim_2 input').addClass('std_input required');
    $('#claim_3 select, #claim_4 select').val('');
    $('#claim_3 input, #claim_4 input').val('');
  }else if($('#reportedClaims').val() == "3"){
    $('#claims').show();
    $('#claims div').hide();
    $('#claims select').removeClass('std_input required ieselectfix');
    $('#claims input').removeClass('std_input required');
    $('#claim_1').show();
    $('#claim_1 select').addClass('std_input required ieselectfix');
    $('#claim_1 input').addClass('std_input required');
    $('#claim_2').show();
    $('#claim_2 select').addClass('std_input required ieselectfix');
    $('#claim_2 input').addClass('std_input required');
    $('#claim_3').show();
    $('#claim_3 select').addClass('std_input required ieselectfix');
    $('#claim_3 input').addClass('std_input required');
    $('#claim_4 select').val('');
    $('#claim_4 input').val('');
  }else if($('#reportedClaims').val() == "4"){
    $('#claims').show();
    $('#claims div').show();
    $('#claims select').addClass('std_input required ieselectfix');
    $('#claims input').addClass('std_input required');
  }
}//showClaims

jQuery.fn.showPropType = function(){
  if($('#propType').val() == "MultiFamilyHome" || 
    $('#propType').val() == "Apartment" ||
    $('#propType').val() == "Condominium" ||
    $('#propType').val() == "Townhome" ||
    $('#propType').val() == "Other"){
    $('#multi').show();
    $('#multi input').addClass('std_input required');
  }else{
    $('#multi').hide();
    $('#multi input').removeClass('std_input required');
	$('#multi input').val('');
  }
}//showPropType

function range_check_int(el, low, high){
  //replace all non digits with a 1 in the input
  $('#'+el).val($('#'+el).val().replace(/\D/g, '1'));
  
  var sText = parseFloat($('#'+el).val());
  //first check to see if we got a floating point
  if(sText % 1 != 0){
    $('#'+el).val('');
	return;
  }else{
    if(sText >= low && sText <= high)
      return;
    else{
      $('#'+el).val('');
	  $('#'+el).addClass('error');
	} 
  }
}//range_check

function range_check_float(el, low, high){
  //replace all non digits with a 1 in the input
  $('#'+el).val($('#'+el).val().replace(/\D/g, '1'));
  
  if($('#'+el).val() == '') return;
  var sText = parseFloat($('#'+el).val());
  if(high == 0)
    high = sText; //for unbound upper limit
  if(sText >= low && sText <= high)
    return;
  else{
    $('#'+el).val('');
	$('#'+el).addClass('error');
  } 
}//range_check

function cont_ins_check(comp_yr, cont_yr){
  if($('#'+comp_yr).val() == '' ||
	 $('#'+cont_yr).val() == '') return;
  var comp_val = parseInt($('#'+comp_yr).val());
  var cont_val = parseInt($('#'+cont_yr).val());
  if(comp_val > cont_val){
    $('#'+comp_yr).val('');
	$('#'+comp_yr).addClass('error');
  }
}//cont_ins_check

function check_DOB(m, d, y, age){
  var month = $('#'+m).val();
  var day = $('#'+d).val();
  var year = $('#'+y).val();
  if(month == '' || day == '' || year == '') return;
  var dte = new Date(year, month-1, day);
  var age_years_ago = new Date();
  age_years_ago.setYear(age_years_ago.getFullYear()-age);
  //check to see if the user is age years old and gave us a valid date
  if(!valid_date(m, d, y) || age_years_ago < dte){
    $('#'+m).val('');
    $('#'+d).val('');
    $('#'+y).val('');
    $('#'+m).addClass('error');
    $('#'+d).addClass('error');
    $('#'+y).addClass('error');
  }//if
  return;
}//check DOB

function check_claim_date(m, d, y){
  var month = $('#'+m).val();
  var day = $('#'+d).val();
  var year = $('#'+y).val();
  if(month == '' || day == '' || year == '') return;
  var claim_date = new Date(year, month-1, day);
  var today = new Date();
  //javascript will change a date if it is invalid, 
  //if the date passed to the function is different than the date javascript created, it was invalid to start
  if(claim_date > today || !valid_date(m, d, y)){
    $('#'+m).val('');
    $('#'+d).val('');
    $('#'+y).val('');
    $('#'+m).addClass('error');
    $('#'+d).addClass('error');
    $('#'+y).addClass('error');
  }
  return;
}//check claim date

function check_claim_date_agents(m, y){
  mth = $('#'+m).val();
  year = parseInt($('#'+y).val());
  var month= new Array(12);
  month[0]  = "January";
  month[1]  = "February";
  month[2]  = "March";
  month[3]  = "April";
  month[4]  = "May";
  month[5]  = "June";
  month[6]  = "July";
  month[7]  = "August";
  month[8]  = "September";
  month[9]  = "October";
  month[10] = "November";
  month[11] = "December";
  for(var $i=0; $i<12; $i++){
    if(month[$i] == mth)
	  mth = $i;
  }//for
  var today = new Date();
  if(year == today.getFullYear() && mth > today.getMonth()){
    $('#'+m).val('');
    $('#'+y).val('');
    $('#'+m).addClass('error');
    $('#'+y).addClass('error');
  }
  return;
}//check claim date

function check_claim_amount(el){
  var sText = $('#'+el).val();
  var ValidChars = "0123456789";  
  var Char;
  var sNewText='';
	
  for (i = 0; i < sText.length; i++){ 
    Char = sText.charAt(i);
	if(Char == '.')
	  break;
    else if(ValidChars.indexOf(Char) > -1) {
    	sNewText += sText.charAt(i);
    }//if
  }//for
  $('#'+el).val(sNewText);
}//check claim amount

function check_claim_amount_decimal(el){
  var sText = $('#'+el).val();
  var ValidChars = "0123456789.";  
  var Char;
  var sNewText='';
	
  for (i = 0; i < sText.length; i++){ 
    Char = sText.charAt(i);
    if(ValidChars.indexOf(Char) > -1) {
    	sNewText += sText.charAt(i);
    }//if
  }//for
  $('#'+el).val(sNewText);
}//check claim amount decimal

function check_expire(m, d, y){
  var month = $('#'+m).val();
  var day = $('#'+d).val();
  var year = $('#'+y).val();
  if(month == '' || day == '' || year == '') return;
  
  var expire = new Date(year, month-1, day);
  var today = new Date();
  var thirty_days_ago = new Date();
  var two_years_future = new Date();
  thirty_days_ago.setDate(today.getDate()-30);
  two_years_future.setYear(today.getFullYear()+2);
  
  //javascript will change a date if it is invalid, 
  //if the date passed to the function is different than the date javascript created, it was invalid to start
  if(expire < thirty_days_ago     ||
     expire > two_years_future    ||
     !valid_date(m, d, y)){
    $('#'+m).val('');
    $('#'+d).val('');
    $('#'+y).val('');
    $('#'+m).addClass('error');
    $('#'+d).addClass('error');
    $('#'+y).addClass('error');
  }
  return;
}//check expire

function valid_date(m, d, y){
  var month = $('#'+m).val();
  var day = $('#'+d).val();
  var year = $('#'+y).val();
  var dte = new Date(year, month-1, day);
  
  //javascript will change a date if it is invalid, 
  //if the date passed to the function is different than the date javascript created, it was invalid to start
  if(day != dte.getDate() || month-1 != dte.getMonth() || year != dte.getFullYear())
	 return false;
  return true;
}//valid date


