﻿function Release(index){
  this.index = index;
  this.date = "";
  this.versionname = "";
  this.internalname = "";
  this.state = "";
  this.path = [];
  this.description= "";
  this.newfeatures = {items:[]};
  this.loaded = false;
  this.load = function(xml_node){
    this.loaded = true;
    this.date = Xml.getNodeXml(xml_node.getElementsByTagName("date")[0]) || "";
    this.versionname = Xml.getNodeXml(xml_node.getElementsByTagName("versionname")[0]) || "";
    this.internalname = Xml.getNodeXml(xml_node.getElementsByTagName("internalname")[0]) || "";
    this.state = Xml.getNodeXml(xml_node.getElementsByTagName("state")[0]) == "1";
    this.path = $A(xml_node.getElementsByTagName("path")).collect(function(item){ return Xml.getNodeXml(item); }) || [];
    this.description= Xml.getNodeXml(xml_node.getElementsByTagName("description")[0]) || "";
    var allChanges = [];
    allChanges = allChanges.concat($A(xml_node.getElementsByTagName("newfeatures")[0].getElementsByTagName("item")).collect(function(item){return Xml.getNodeXml(item);}));
    allChanges = allChanges.concat($A(xml_node.getElementsByTagName("fixes")[0].getElementsByTagName("item")).collect(function(item){return Xml.getNodeXml(item);}));
    allChanges = allChanges.concat($A(xml_node.getElementsByTagName("modulatefeature")[0].getElementsByTagName("item")).collect(function(item){return Xml.getNodeXml(item);}));
    this.newfeatures.items = allChanges;
  };
  this._generateHomePageTemplate = function(country){
	   var str  = {GER:"für Metin2 DE",UK:"Easymetin2  for UK",TUR:"Tr EasyMetin2 İndir",PL:"Easymetin2  for PL"}[country];
	   var str1 = {GER:"Veröffentlicht am",UK:"released at",TUR:"Çıkış",PL:"released at"}[country];
	   var str2 = {GER:"Neueste Version",UK:"Latest Version",TUR:"Son versiyon",PL:"Najnowsza wersj"}[country];
	   if(this.path.length == 1){ this.path[1] = this.path[0];};
    return "<h1>"+str2+": "+this.versionname+"</span></h1>\
			<p class='release_time'>"+str1+": "+this.date+"</p>\
			<p class='release_time'>"+this.description+"</P>\
			<a href='"+this.path[0]+"' onClick='javascript: pageTracker._trackPageview(\"" +this.path[0]+ "\");'  \
			class='index_download'><span class='country_bunting_"+country.toLowerCase()+"'>\
			Download1</span></a>\
			<a href='"+this.path[1]+"' onClick='javascript: pageTracker._trackPageview(\"" +this.path[1]+ "\");'  \
			class='index_download'><span class='country_bunting_"+country.toLowerCase()+"'>\
			Download2</span></a>\
			<div style=\"display:block;clear:both\"></div>";
  };
  this._generateIndexTemplate = function(country){
    return "<p>Latest version:</p>\
  		<h1>"+this.versionname+"</h1>\
  		<p class='release_date_text'>("+this.date+")</p>\
  		<ol>"+ this.newfeatures.items.inject("",function(result,item){
  		  return result += "<li>"+item+"</li>"
  		}) + "</ol>\
  		<div class='download_link_container'><a href='"+this.path+"'>"+country+" Download</a></div>";
  };
  this._generateDownLoadTemplate = function(){
	  return "\
	<p>Test Version:<span class=\"fwhite\">"+this.versionname+"</span></p>\
	<p class=\"f333\">"+this.date+"</p>\
	<ol class=\"downpage_ol\">"+
	this.newfeatures.items.inject("",function(result,item){
		return result += "<li>"+item+"</li>";
	})+"</ol>\
	<div><a href=\""+this.path[0]+"\" class=\"aimportant\">Test version download</a></div>\
	<div><a href=\""+this.path[1]+"\" class=\"aimportant\">Test version download</a></div>";
  };
  this._generateLatestDownLoadTemplate = function(country){
      return '<h2><span>Latest Version:</span>'+this.versionname+'<span class="a">('+this.date+')</span></h2>\
                <p>New Features:</p>\
                <ol class="downpage_ol">'+
        	        '<li>'+this.newfeatures.items.join("</li><li>")+'</li>\
                </ol>\
                <div><a href="'+this.path+'" class="download_btn">'+country+' download</a></div>';
  };
  this._generateReleaseHistory = function(){
    return '<div class="history_down">\
                <p>'+this.versionname+'</p>\
                <div>new features:</div>\
                <ol>'+
                	'<li>'+this.newfeatures.items.join("</li><li>")+'</li>\
                </ol>\
                <p><a href="'+this.path+'">download</a></p>\
            </div>';
  }
  this.insertElement = function(container,page_name){
    if (this.loaded) {
      this.ele = document.createElement("div");
        var country = arguments[2];
      switch(page_name){
        case "home_page":
            if (country == undefined) return;
            this.ele.innerHTML = this._generateHomePageTemplate(country.toUpperCase());
            break;
        case "index":
            if (country == undefined) {return};
            this.ele.innerHTML = this._generateIndexTemplate(country.toUpperCase());
            break;
        case "download":
            this.ele.innerHTML = this._generateDownLoadTemplate(country.toUpperCase());
            break;
        case "latest_download":
            this.ele.innerHTML = this._generateLatestDownLoadTemplate(country.toUpperCase());
            break;
        case "release_history_download":
            this.ele.innerHTML = this._generateReleaseHistory();
            break;
        default:
            break;
      }
      container.appendChild(this.ele);
    };
  }
}
