var announcement = "http://"+window.location.host+"/servlet/Announcements";
var nPath = "/generated/js/news/";
var newsContent = null;
var sPath = ["current_news","ssn/archive_news","year/archive_news"];
var openImg = "images/ann_open-bttn.gif";
var closeImg = "images/ann_close-bttn.gif";
var itemPerPage = 15;
var currentPage = 0;
var filterCode = null;

function loadAnnouncement()
{
    getYearRange();
    populateCompanyOption();
    var queryString = window.location.search.substring(1);
    if(queryString!="" && queryString!=null)
    {
        var params = queryString.split("&");
        $(function(){
            for(var i =0;i<params.length;i++)
            {
                var paramPair = params[i].split("=");
                if(paramPair[0]=="prev")
                {
                    var tmp = paramPair[1];
                    var tmp2 = tmp.split("_");
                    var ssn = tmp.substring(0,1);
                    var year = null;
                    if(tmp2.length > 1)
                    {
                         filterCode = $.trim(tmp2[1]);
                         $("#companySelect").css("display","none");
                         getYearRange();
                    }
                    if(tmp2[0].length < 6 )
                    {
                        year = 0;
                        currentPage = tmp2[0].substring(2,3);
                    }
                    else
                    {
                        year = tmp2[0].substring(1,5);
                        currentPage = tmp2[0].substring(5,6);
                    }
                    if(year!=0)
                    {
                       $("select#year").val(year);
                       loadAnnouncementByYear(year);
                    }
                    else if(year == 0 && ssn !="-")
                    {
                       $("select#ssn").val(ssn);
                       loadAnnouncementByAlphabet(ssn);
                    }
                    else
                    {
                       loadCurrentAnnouncement();
                    }
                }
                else if(paramPair[0]=="stk")
                {
                    filterCode = $.trim(paramPair[1]);
                    $("#companySelect").css("display","none");
                    getYearRange();
                    loadCurrentAnnouncement();
                }
            }
        });
    }
    else
    {
       loadCurrentAnnouncement();
    }
}

function onNewsClick(id)
{
    $(function(){
         var target="http://"+window.location.host+"/listing-announcement_in.html?get=3&id="+id;
         target+="&prev="+($("select#ssn").find("option:selected").val());
         target+=($("select#year").find("option:selected").val());
         target+=currentPage;
         if(filterCode!= null)
         {
            target+="_"+filterCode;
         }
         window.location = target;          
    });
}

function populateCompanyOption()
{
    $(function(){
       var str = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	   var element = $("select#ssn").empty().append("<option value=\"-\">Select one</option>");
	   for(var i =0;i<26;i++)
	   {
           var option = "<option value=\""+str.charAt(i)+"\">"+str.charAt(i)+"</option>";
	       $(element).append(option);
	   }
	   $("select#ssn").change(function(){
	     $("select#year").val(0);
	     currentPage = 0;
	     var selectedAlphabet = $(this).find("option:selected").val();
		 $("table#newsList").children("tbody").empty();
		 if(selectedAlphabet == "-")
		 {
		      var selectedYear = $("select#year").find("option:selected").val();
		      if(selectedYear ==0)
		      {
			     loadCurrentAnnouncement();
		      }
		      else
		      {
			     loadAnnouncementByYear(selectedYear);
		      }
		 }
		 else
		 {
		      loadAnnouncementByAlphabet(selectedAlphabet);
		 }
	   });
    });
}

function getYearRange()
{
    $(function(){
           var param;
           if(filterCode!=null)
           {
               param = {"get": "0", "ssn":filterCode};
           }
           else
           {
               param = {"get": "0"};
           }
           $.getJSON(announcement,param,function(data){
                 var selectElement = $("select#year").empty();
                 $(selectElement).append("<option value=\"0\">Select one</option>")
                 for(var i=data.max;i>=data.min;i--)
                 {
                       var option = "<option value=\""+ i+ "\">"+i+"</option>";
		               $(selectElement).append(option);
                 }
                 $("select#year").change(function(){
                         $("select#ssn").val(0);
                         currentPage = 0;
                         var selectedYear = $(this).find("option:selected").val();
                         if(selectedYear == 0)
                         {
                            $("table#newsList").children("tbody").empty();
                            loadCurrentAnnouncement();
                         }
                         else
                         {
                            $("select#ssn").val(0);
                            $("table#newsList").children("tbody").empty();
                            loadAnnouncementByYear(selectedYear);
                         }
                 });
            });
      });
}

function loadCurrentAnnouncement()
{
     $(function(){
          var url = "http://"+window.location.host+nPath+sPath[0]+".json";
	      $.getScript(url,function(){
	         if(filterCode==null)
	         {
	            newsContent = newsList;	         
	         }
	         else
	         {
	                newsContent = $.grep(newsList,function(element,i){
	                return (element.ssn == filterCode);
	            });
	         }
	         doProcess();
	      });
      });
      
    function doProcess()
    {
       $("div#paging").pagination(newsContent.length,{
           items_per_page: itemPerPage,
           callback: doPagination,
           num_display_entries: 3,
           current_page : currentPage,
           num_edge_entries: 1
       });
    }
    
    function doPagination(index,pageContainer)
    {
         var selection = doSlice(index,pageContainer);
         displayAnnouncement(selection);
         currentPage = index;
         return false;
    }
    
    function displayAnnouncement(news)
    {
         var head = "";
	     var headerDate = "";
         var x = "";
         $(news).each(function(i,element){
	              var mainTable = $("table#newsList").children("tbody");
	              headerDate = element.newsid.substring(0,8);
                  if(element.date != head)
	  	          {
	                  head = element.date;
			          x = element.newsid;
    			      if(i> 0)
			          {
			             $("table#newsList>tfoot").find("tr:last").clone().css("display","").appendTo(mainTable);
			          }
			          $("tr#headerRow").clone().css("display","").appendTo(mainTable).attr("id","e_"+headerDate).find("th").css("text-align","left").html(
				         "&nbsp;&nbsp;"+head+"<br><br>").prepend(
			                '<img style="cursor:pointer" src="' + closeImg + '" alt="collapse this section" />'
				      ).find("img").click(function(){
					      var toggleSrc = $(this).attr('src');
					      if ( toggleSrc == closeImg )
					      {
					           $("tr[id^='"+element.newsid+"_']").each(function(i,data){
					               $(data).css("display","none");
					               return true;
					             });
					      }
					      else
					      {
					           $("tr[id^='"+element.newsid+"_']").each(function(i,data){
					               $(data).css("display","");
					               return true;
					           });
					      }
					      $(this).attr('src',toggleSrc==closeImg?openImg:closeImg);
				       });
		          }
		          var row = $("tr#contentRow").clone().attr("id",x+"_"+element.newsid).appendTo(mainTable).css("display","");
	              $(row).find("td:first").html("&nbsp;&nbsp;&nbsp;&nbsp;<a href=\"javascript:void(0);\" onclick=\"onNewsClick('"+element.newsid+"');\">"+element.date + "</a></b><br>");
		          $(row).find("td:last").html("<a href=\"javascript:void(0);\" onclick=\"onNewsClick('"+element.newsid+"');\"><b>"+element.ssn + "</b><br> " + element.title + "</a><br><br>");
		          if(filterCode != null && filterCode != "" && $(news).length == (i+1))
                  {
                     $("#backBtn").clone().attr("id","backbtn_termsheet").css("display","").appendTo(mainTable);    
                  }
	     });
     }
}

function loadAnnouncementByYear(selectedYear)
{
     $(function(){
          var url = "http://"+window.location.host+nPath+sPath[2]+"_"+selectedYear+".json";
	      $.getScript(url,function(){
	         if(filterCode==null)
	         {
	            newsContent = newsList;	         
	         }
	         else
	         {
	            newsContent = $.grep(newsList,function(element,i){
	                return (element.ssn == filterCode);
	            });
	         }
	         doProcess();
	      });
	 });
	 
    function doProcess()
    {
       $("div#paging").pagination(newsContent.length,{
           items_per_page: itemPerPage,
           callback: doPagination,
           current_page : currentPage,
           num_display_entries: 3,
           num_edge_entries: 1
       });
    }
    
    function doPagination(index,pageContainer)
    {
         var selection = doSlice(index,pageContainer);
         displayAnnouncement(selection);
         currentPage = index;
         return false;
    }
    
    function displayAnnouncement(news)
    {
  	      var head = "";
	      var headerDate = "";
	      var x = "";

         $(news).each(function(i,element){
             var mainTable = $("table#newsList").children("tbody");
             headerDate = element.newsid.substring(0,8);
		     x = element.date.substring(3).replace(" ","");
		     if(element.date.substring(3) != head)
		     {
	             head = element.date.substring(3);
    		     if(i> 0)
			     {
			    	  $("table#newsList>tfoot").find("tr:last").clone().css("display","").appendTo(mainTable);
			     }
			     $("tr#headerRow").clone().css("display","").appendTo(mainTable).attr("id","e_"+headerDate).find("th").css("text-align","left").html(
				    "&nbsp;&nbsp;"+head+"<br><br>").prepend(
			            '<img style="cursor:pointer" src="' + closeImg + '" alt="collapse this section" />'
				        ).find("img").click(function(){
					        var toggleSrc = $(this).attr('src');
					        if ( toggleSrc == closeImg )
					        {
                               $("tr[id^='"+element.date.substring(3).replace(" ","")+"_']").each(function(i,data){
                                    $(data).css("display","none");
						            return true;
 					           });
					        }
					        else
					        {
					           $("tr[id^='"+element.date.substring(3).replace(" ","")+"_']").each(function(i,data){
					                $(data).css("display","");
					                return true;
					           });
					        }
					        $(this).attr('src',toggleSrc==closeImg?openImg:closeImg);
				        });
		          }
		          var row = $("tr#contentRow").clone().attr("id",x+"_"+element.newsid).appendTo(mainTable).css("display","");
	              $(row).find("td:first").html("&nbsp;&nbsp;&nbsp;&nbsp;"+element.date + "</b><br>");
			      var html ="<a href=\"javascript:void(0);\" onclick=\"onNewsClick('"+ element.newsid+"');\" ><b>"+element.ssn+"</b><br>"+element.title+"<br><br></a>";
		          $(row).find("td:last").html(html);
		          if(filterCode != null && filterCode != "" && $(news).length == (i+1))
                  {
                     $("#backBtn").clone().attr("id","backbtn_termsheet").css("display","").appendTo(mainTable);    
                  }
	     });
    }
}

function loadAnnouncementByAlphabet(selectedAlphabet)
{
    $(function(){
          var url = "http://"+window.location.host+nPath+sPath[1]+"_"+selectedAlphabet.toLowerCase()+".json";
	      newsContent = null;
	      $.getScript(url,function(){
	         newsContent = newsList;
	         if(newsContent.length)
	         {
	            doProcess();
	         }
	         else
	         {
	            displayAnnouncement([]);
	         }
	     });
	});
	      
    function doProcess()
    {
       $("div#paging").pagination(newsContent.length,{
           items_per_page: itemPerPage,
           callback: doPagination,
           current_page : currentPage,
           num_display_entries: 3,
           num_edge_entries: 1
       });
    }
    
    function doPagination(index,pageContainer)
    {
         var selection = doSlice(index,pageContainer);
         displayAnnouncement(selection);
         currentPage = index;
         return false;
    }
   
    function displayAnnouncement(news)
    {
         var head = "";
         var mainTable = $("table#newsList").children("tbody");
         if(news.length>0)
	     {
            $(news).each(function(i,el){
	         $(el.news).each(function(j,element){
	           if(element.ssn != head)
	           {
		       head = element.ssn;
		       if(j> 0)
		       {
		           $("table#newsList>tfoot").find("tr:last").clone().css("display","").appendTo(mainTable);
		       }
		      $("tr#headerRow").clone().css("display","").appendTo(mainTable).attr("id","e_"+head).find("th").css("text-align","left").html(
		              "&nbsp;&nbsp;"+head+"<br><br>").prepend(
		              '<img style="cursor:pointer" src="' + closeImg + '" alt="collapse this section" />'
			  ).find("img").click(function(){
			       var toggleSrc = $(this).attr('src');
			       var x = $(this).parents("tr").attr('id').substring(2);
			       if ( toggleSrc == closeImg )
			       {
                         $("tr[title^='"+x+"']").each(function(j,data){
				            $(data).css("display","none");
				            return true;
			             });
			       }
			       else
			       {
			            $("tr[title^='"+x+"']").each(function(j,data){
			                $(data).css("display","");
                                        return true;
			            });
			       }
			       $(this).attr('src',toggleSrc==closeImg?openImg:closeImg);
		          });
	           }
	           var row = $("tr#contentRow").clone().attr("id",element.newsid).attr("title",element.ssn).appendTo(mainTable).css("display","");
               $(row).find("td:first").html("&nbsp;&nbsp;&nbsp;&nbsp;<a href=\"javascript:void(0);\" onclick=\"onNewsClick('"+element.newsid+"');\">"+element.date + "</a></b><br>");
	           $(row).find("td:last").html("<a href=\"javascript:void(0);\" onclick=\"onNewsClick('"+element.newsid+"');\">"+element.title + "</a><br>");
	        });
	      });
       }
       else
       {
	      mainTable.html("<tr><td colspan='3' align='left'><font color='#FF0000'>No Data Found</font></td></tr>");
       }
   }
}

function doSlice(index,paginationContainer)
{
    $("table#newsList").children("tbody").empty();
    var selection = null;
    if(((index+1) * itemPerPage) > newsContent.length)
    {
       selection = newsContent.slice(index * itemPerPage);
    }
    else
    {
       selection = newsContent.slice(index * itemPerPage, (index+1)*itemPerPage);
    }
    return selection;
}

function onBackClick()
{
    window.location = "http://"+window.location.host+"/listing-term_sheet.html";
}