initPage = function(appId, news, faq, press, lang)
{
   if (!lang)
   {
     lang = "no";
   }	
	
   setup(appId, news, faq, press, lang);
   
   
   
   document.getElementById("button").onclick = Newsletter.signup;
}

setup = function(appId, news, faq, press, lang)
{
   var placeholder = document.getElementById("appDetails");
   
   if (!placeholder) 
   {
      return;
   }
   
   placeholder.style.display = 'none';
   
   var h = "";
   
   if (news)
   {
      h += '<div class="module">';
      h += '<div style="float:left;margin-right:14px;width:60%;">';
      
      h += '<div class="news_module">';
      h += '<div class="news_module_top"></div>';
	  
	  if (lang && "no" != lang)
	  {
	  	h += '<div class="news_module_header">Latest news <a href="http://www.apphuset.com/en/news/?app_id=' + appId + '&lang=' + lang + '">[All]</a></div>';	  
	  }
	  else
	  {
		h += '<div class="news_module_header">Siste nyheter <a href="http://www.apphuset.com/news/?app_id=' + appId + '">[Se alle]</a></div>';				
	  }
	  
      h += '<div class="news_module_middle">';
      h += '<div class="news_module_body">';
      
	  if (lang && "no" != lang)
	  {
	  	h += '<div id="newsListContainer" rel="6"><p>There are currently no news about the application</p></div>';
	  }
	  else
	  {
		h += '<div id="newsListContainer" rel="6"><p>Det er for tiden ingen nyheter om denne applikasjonen</p></div>';				  	
	  }	  
	  
	  h += '<div id="newsletter" style="float:right;margin-top:20px;">';
	  h += '<div id="newsletterBody">';

	  h += (lang && "no" != lang) ? 'Newsletter  ' : 'Nyhetsbrev  '; 
	  
	  var placeholder = (lang && "no" != lang) ? 'Email' : 'Epost';
	  
	  h += '<input type="text" id="txtEmail" placeholder="' + placeholder + '" style="margin-left:3px;">';
	  
	  var buttonTitle = (lang && "no" != lang) ? 'Sign up' : 'Send';
	  
	  h += '<input type="button" id="button" value="' + buttonTitle + '" style="margin-left:3px;">';
	  
	  h += '<br><span id="errorMessage"></span>';
	  
	  h += '</div>';  
      h += '</div>';
	  h += '<div style="clear:both;"></div>';
	  
      h += '</div>';
      h += '</div>';
	  
      h += '<div class="news_module_bottom"></div>';
      h += '</div>';   
   }
   
   if (faq) 
   {
      h += '<div class="news_module">';
      h += '<div class="news_module_top"></div>';
	  
	  if (lang && "no" != lang)
	  {
	  	h += '<div class="news_module_header">Latest FAQ <a href="http://www.apphuset.com/en/faq/?app_id=' + appId + '&lang=' + lang + '">[All]</a></div>';
	  }
	  else
	  {
		h += '<div class="news_module_header">Siste FAQ <a href="http://www.apphuset.com/faq/?app_id=' + appId + '">[Se alle]</a></div>';				  	
	  }
	  
      h += '<div class="news_module_middle">';
      h += '<div class="news_module_body">';
      
	  if (lang && "no" != lang)
	  {
		h += '<div id="faqListContainer" rel="6"><p>There are currently no FAQs. Contact us by using the <a href="http://www.apphuset.com/support">support</a> form</p></div>';	  	
	  }
	  else
	  {
	  	h += '<div id="faqListContainer" rel="6"><p>Ingen FAQ på nåværende tidspunkt. Kontakt oss ved å bruke skjemaet under <a href="http://www.apphuset.com/support">support</a> i menyen.</p></div>';
	  }
      
      h += '</div>';
      h += '</div>';
      h += '<div class="news_module_bottom"></div>';
      h += '</div>';
   }
   
   h += '</div>';

   if (press) 
   {
      h += '<div style="float:left;">';
        
      h += '<div class="blog_module">';
      h += '<div class="blog_module_top"></div>';
	  
	  if (lang && "no" != lang)
	  {
	  	h += '<div class="news_module_header">Latest press <a href="http://www.apphuset.com/en/press/?app_id=' + appId + '&lang=' + lang + '">[All]</a></div>';	
	  }
	  else
	  {
		h += '<div class="news_module_header">Siste i pressen <a href="http://www.apphuset.com/press/?app_id=' + appId + '">[Se alle]</a></div>';			  	
	  }
	  
      h += '<div class="blog_module_middle">';
      h += '<div class="blog_module_body" id="lastestPressContainer">';
      
	  if (lang && "no" != lang)
	  {
		h += '<div id="pressListContainer"><p>Currently this application has no press. Did you see it mentioned somewhere in the press or online? <a href="http://www.apphuset.com/support">Tell us</a></p></div>';
	  }
	  else
	  {
	  	h += '<div id="pressListContainer"><p>Ikke omtalt i pressen enda.<br> Har du sett applikasjonen vår i pressen eller på nettet? <a href="http://www.apphuset.com/support">Tips oss</a></p></div>';	
	  }	  
      
      h += '</div>';
      h += '</div>';
      h += '<div class="blog_module_bottom"></div>';
      h += '</div>';
      
      h += '</div>';
      h += '</div>';
   }
   
   document.getElementById("appDetails").innerHTML = h;
   
   if (news) 
   {
      loadLatestNews(appId, lang);
   }
   
   if (press) 
   {
      loadLatestPress(appId, lang);
   }

   if (faq) 
   {
      loadLatestFaq(appId, lang);
   }  
}

handleLatestNews = function(data)
{
   var newsItems = data.news_items;
   
   if (0 < newsItems.length) 
   {
      var placeholder = document.getElementById("newsListContainer");
      
      var h = "";
      
      for (var i = 0, l = newsItems.length; i < l; ++i) 
      {
         var date = newsItems[i].date;
         
         var parts = date.toString().split('-');
         var year = parts[0];
         var month = parts[1];
         var day = parts[2];
         
         date = day + ". " + AH.Date.getMonthFromNumber(parseInt(month, 10)) + " " + year;
         
         h += '<div class="news_item">';
         h += '<img height="111" width="59" src="' + newsItems[i].img_url + '" alt="' + newsItems[i].heading + ' class="news_icon">';
         h += '<span class="date">' + date + '</span>';
         h += '<h1>' + newsItems[i].heading + '</h1>';
         h += newsItems[i].body + '<br>';
         
         var link = newsItems[i].link;
         
         if (link) 
         {
		 	if ("en" == newsItems[i].lang)
			{
				h += '<a href="' + link + '">[More]</a>';	
			}
			else
			{
				h += '<a href="' + link + '">[Les mer]</a>';
			}
         }
         
         h += '</div>';
      }
      
      placeholder.innerHTML = h;
   }
}

handleLatestPress = function(data)
{
   var MAX_CHARS_ORIGINAL_SIZE = 39;
   var pressItems = data.press_items;
   
   if (0 < pressItems.length) 
   {
      var placeholder = document.getElementById("pressListContainer");
      
      var h = "";
      
      for (var i = 0, l = pressItems.length; i < l; ++i) 
      {
         var date = pressItems[i].date;
         
         var parts = date.toString().split('-');
         var year = parts[0];
         var month = parts[1];
         var day = parts[2];
         
         date = day + ". " + AH.Date.getMonthFromNumber(parseInt(month, 10)) + " " + year;
         
         h += '<div class="news_item">';
         h += '<span class="date">' + date + '</span>';
         
		 if (pressItems[i].heading && (MAX_CHARS_ORIGINAL_SIZE <= pressItems[i].heading.length))         
		 {
			 h += '<h1 style="font-size:14px;">' + pressItems[i].heading + '</h1>';	
		 }
		 else
		 {
			h += '<h1>' + pressItems[i].heading + '</h1>';		 
		 }
         
         h += pressItems[i].body + '<br/>';
         
         var link = pressItems[i].link;
         
		 if ("en" == pressItems[i].lang)
		{
			h += '<a href="' + link + '">[More]</a>';	
		}
		else
		{
			h += '<a href="' + link + '">[Les mer]</a>';
		}
         
         h += '</div>';
      }
      
      placeholder.innerHTML = h;
   }
   
   document.getElementById("appDetails").style.display = '';
}

handleLatestFaq = function(data)
{
   var faqItems = data.faq_items;
   
   if (0 < faqItems.length) 
   {
      var placeholder = document.getElementById("faqListContainer");
      
      var h = "";
      
      for (var i = 0, l = faqItems.length; i < l; ++i) 
      {
         var date = faqItems[i].date;
         
         var parts = date.toString().split('-');
         var year = parts[0];
         var month = parts[1];
         var day = parts[2];
         
         date = day + ". " + AH.Date.getMonthFromNumber(parseInt(month, 10)) + " " + year;
         
         h += '<div class="news_item">';
         h += '<span class="date">' + date + '</span>';
         h += '<h1><span class="question">Q: </span>' + faqItems[i].question + '</h1>';
         h += '<span class="answer">A: </span>' + faqItems[i].answer + '<br>';
         
         var link = faqItems[i].link;
         
         if (link)
         {
            if ("en" == faqItems[i].lang)
            {
                h += '<a href="' + link + '">[More]</a>';	
            }
            else
            {
                h += '<a href="' + link + '">[Les mer]</a>';
            }
        }
         
         h += '</div>';
      }
      
      placeholder.innerHTML = h;
   }
}

failureHandler = function(o)
{
   //alert(o.responseText);
}

loadLatestNews = function(appId, lang)
{
   var placeholder = document.getElementById("appDetails");
   
   if (!placeholder) 
   {
      return;
   }   
   
   var sUrl = "/services/news/?limit=6&page=1&format=json&app_id=" + appId + "&lang=" + lang;
   
   $.getJSON(sUrl, handleLatestNews);
}

loadLatestPress = function(appId, lang)
{
   var placeholder = document.getElementById("appDetails");
   
   if (!placeholder) 
   {
      return;
   }
   
   var sUrl = "/services/press/?limit=6&page=1&format=json&app_id=" + appId + "&lang=" + lang;
   
   $.getJSON(sUrl, handleLatestPress);
}

loadLatestFaq = function(appId, lang)
{
   var placeholder = document.getElementById("appDetails");
   
   if (!placeholder) 
   {
      return;
   }
   
   var sUrl = "/services/faq/?limit=6&page=1&format=json&app_id=" +  + appId + "&lang=" + lang;
   $.getJSON(sUrl, handleLatestFaq);
}

AH.Validator = function()
{
   var emailPattern = /^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;   
   
   return {
      isEmailAddress: function(str)
      {
         return emailPattern.test(str);
      }      
   }; 
}();

AH.Validator = function()
{
   var emailPattern = /^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;   
   
   return {
      isEmailAddress: function(str)
      {
         return emailPattern.test(str);
      }      
   }; 
}();

var Newsletter = {

	handleSuccess:function(o)
   {
		this.processResult(o);
	},

	handleFailure:function(o)
   {
      document.getElementById('errorMsg').innerHTML = "Noe gikk gale, vennligst prøv igjen";
      document.getElementById('errorMsg').style.display = "inline";
	},

	processResult:function(o)
   {
      document.getElementById("newsletterBody").innerHTML = "Takk for din interesse...";
 
      setTimeout(function(){
            document.getElementById("newsletter").style.display = "none";
         }, 4000
      );
	},

	signup: function()
   {
      var email = document.getElementById("txtEmail").value;

      if (!AH.Validator.isEmailAddress(email))
      {
         document.getElementById('errorMsg').style.display = "inline";
         return; 
      }
      
      $.post("/php/services/newsletter/xml/register.php", { 'email':email }, 
         function(data)
         {
            Newsletter.handleSuccess(data);
         }
      );
   }
};

