var khnEmailForm = function(){
	var el = $('a.khnEmailLink')[0];
	this.formHTML = $("#khnEmailContainer");
	
	if ($(this.formHTML).length) {
		this.createBub(el);
		this.setEvents();
		$('a.khnEmailLink').bind('click', function(){khnEmail.bub.BlowBubble();});
	}
}
khnEmailForm.prototype.createBub = function(el){
	this.bub = new InfoBubble(); // commonFunc.js
	this.bub.bubbleWidth = 300;
	this.bub.title = $(this.formHTML).attr("titletxt");
	this.bub.enableRollOutPop = false;
	this.bub.SetContent($(this.formHTML).html());
	var xy = Element.getXY(el);
	var size = Element.getSize(el);
	this.bub.SetPoint = "none";
	this.bub.Init();
	this.bub.AttachBubble(Element.get("main"));
	this.bub.MoveBubble(xy.x, xy.y + 15, size);
	// all form content has been moved over to the InfoBubble
	$(this.formHTML).empty();
}
khnEmailForm.prototype.setEvents = function(bub){
	$('#khnEmailBtnSubmit').live('click', function(){
		var valid = true;
		var sendName = $('#khnEmailSendName').val();
		var sendEmail = $('#khnEmailSendEmail').val();
		var recipient = $('a.khnEmailLink').attr('rel');

		if(sendName == '' || sendName == ' '){
			alert($("#khnEmailSendName").attr("errortxt"));
			valid = false;
		}
		if(!khnEmail.validateEmail(sendEmail)){
			alert($("#khnEmailSendEmail").attr("errortxt"));
			valid = false;
		}
		
		var data = {
			recEmail: recipient
			,sendName: sendName
			,sendEmail: sendEmail
			,url: document.location.href
			,pot: $('#khnEmailPot').val()
		}

		if(valid){
			showLoading('infoBubble');
			if(data.pot == ''){
				$.ajax({
					type: 'POST'
					,url: '../../common/buffer/kcNew/khnEmailBuffer.asp'
					,data: data
					,error: function(){
						hideLoading('infoBubble');
						khnEmail.bub.PopBubble();
						alert('Error sending email.');
					}
					,success: function(data){
						hideLoading('infoBubble');

						//get bubble container
						$cc = $('#ibContentContainer');
						var height = $cc.css('height');
						height = height.replace('px','');
						height = Number(height - 10);
						height = height + 'px';

						var form = $("form.khnEmailForm");
						if (data == 1 || data == '1') {
							responseTxt = $(form).attr("successtxt");
						} else {
							responseTxt = $(form).attr("errortxt");
						}
						
						$cc.empty();
						$cc.append("<div style='margin-top:10px;text-align:center;'>" + responseTxt + "</div>");

						//set timeout to turn off bubble
						setTimeout(function(){
							khnEmail.bub.PopBubble();
							$('#ibContentContainer').empty().append(khnEmail.formHTML);
						}, 4000);
					}
				})
			}
		}
	});
}
khnEmailForm.prototype.validateEmail = function(email){
	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if (filter.test(email)){return true;}
	return false;
}

var PastIssues = function(){
  var btnPast = "#pastLink"
  $(btnPast).bind("click", function(){$("#pastPanel").toggle();});
  $("#pastClose").bind("click", function(){$("#pastPanel").hide();});
  $("#btnGetPast").bind("click", function(){
    var month = $("[name=month]").val();
    var year = $("[name=year]").val();
    $("[name=vol]").val(month + '_' + year);
    $("#frmPast").submit();
  });
  
  var d = new Date();
  var m = d.getMonth() + 1;
  var y = d.getFullYear();
  
  $("#yearSel").bind("change", function(){
    var selYear = this.value;
    $("#monthSel").empty();
    if(selYear == y){
      for(var i = 1; i <= m; i++){$("#monthSel").append('<option value="' + i + '">' + i + '</option>');}
      $("#monthSel").val(m);
    } else {
      for(var i = 1; i <= 12; i++){$("#monthSel").append('<option value="' + i + '">' + i + '</option>');}
    }
  });
}
var Ask = function(){
  $('.khnAExpandLink').bind("click", function(){
    var idx = this.id.split('_')[1];
    $("#answerPanel" + idx).css("border-color", "#e7e7e7");
    $('#expand_' + idx + '_panel').hide();
    $('#collapse_' + idx + '_panel').show();
  });
  $('.khnACollapseLink').bind("click", function(){
    var idx = this.id.split('_')[1];
    $("#answerPanel" + idx).css("border-color", "#fff");
    $('#collapse_' + idx + '_panel').hide();
    $('#expand_' + idx + '_panel').show();
  });
}
var Poll = function(){
  $("#seeResults").bind("click", function(){ShowResults()});
  $("#seeVote").bind("click", function(){ShowPoll()});
  $("#btnPollSubmit").bind("click", function(){
    var pId = $("#pollId").val();
    var curResults = $("#currentResults").val();
    if(curResults && curResults.indexOf('|') > -1){
      curResults = curResults.split('|');
      for(var i = 0; i < curResults.length; i++){if(curResults[i] < 0 || isNaN(Number(curResults[i])) || curResults[i] == undefined){curResults[i] = 0;}}
    }
    else {
      var cCt = Number($("pChoiceCt").val());
      curResults = [];
      for(var i = 0; i < cCt; i++){curResults.push(0);}
    }
    var choice = Number($('input[name=choicesgrp]:checked').val());
    curResults[(choice - 1)]++;
    $("#currentResults").val(curResults.join('|'));
    $.ajax({
      url: "../../common/buffer/knowhownewsBuffer.asp",
      data: {action:"saveresults", id: encodeURIComponent(pId), results: encodeURIComponent(curResults.join('|'))},
      type:"POST",
      error:function(){ShowResults()},
      success: function(data){
        if(data){
          var s = new Serializer();
          data = s.deserialize(data);
          if(data && data.status == 1){
            var results = decodeURIComponent(data.pollResults);
            if(results && results.indexOf('|') > -1){results = results.split('|');}
            if(results && results.length > 0){
              var largest = -1;
              var totalVotes = 0;
              for(var i = 0; i < results.length; i++){if(results[i] > largest){largest = results[i];}totalVotes += Number(results[i]);}
              var largeClass = ''; var width = ''; var percentVal = '';
              var classMap = [];classMap["off"] = "on";classMap["on"] = "off";
              ShowResults();
              var maxWidth = parseInt($(".pollGraphDiv").width());
              for(var i = 0; i < results.length; i++){
                largeClass = 'off';
                if(results[i] == largest){largeClass = "on";}
                if(results[i] == 0){percentVal = 0;}else{percentVal = results[i]/totalVotes;}
                width = Math.round(percentVal * maxWidth);
                percentVal = Math.round(percentVal * 100) + "%";
                if(width < 0){width = 0;}
                $("#pollBar_" + i).attr("style", "width:" + width + "px");
                if(!$("#pollBar_" + i).hasClass(largeClass)){$("#pollBar_" + i).removeClass(classMap[largeClass]);$("#pollBar_" + i).addClass(largeClass)}
                $('#pollVal_' + i).text(percentVal);
                if(width > 18){$('#pollVal_' + i).css({"margin":"0 5px 0 0", "color":"#fff","text-align":"right","display":"block"})}
                $("#currentResults").val(decodeURIComponent(data.pollResults))
              }
            }  
          }
        }
      }
    });
  });
  function ShowPoll(){$("#pollResults").hide();$("#poll").show();}
  function ShowResults(){$("#poll").hide();$("#pollResults").show();}
}

$(document).ready(function(){
  var pi = new PastIssues();
  var ak = new Ask();
  var pl = new Poll();
	khnEmail = new khnEmailForm();
});
