// Current Issue Class
function CurrentIssueClass(){
	var parent;
	var resource_holder;
	var recommresource_holder;
	var currxmlHttp;
	var resourceXmlHttp;
	var imgheight;
	var imgwidth;
	var thumbwidth;
	var thumbheight;
	var moviewidth;
	var movieheight;
	var loading;
	
	var comments;
	
	this.construct();
	return (this);
}
	
	CurrentIssueClass.prototype.construct = function (){
		this.parent = objId('current_issue');
		this.resource_holder = objId('resource_holder');
		this.historicaresource_holder = objId('recommended_resources');
		this.imgheight = 400;
		this.imgwidth = 300;
		this.moviewidth = 327;
		this.movieheight = 293;
		this.thumbwidth = 50;
		this.thumbheight = 50;
		this.loading = new LoadingClass();
		
		this.comments = new Comments(objId('comments_list'),'poll');
			
		this.getData(curissue);
	}
	
	CurrentIssueClass.prototype.getData = function (issuenumber){
		var this_ = this;
		
		this.currxmlHttp=GetXmlHttpObject();
		var url = urlc;
		url=url+"?id="+issuenumber;
		url=url+"&sid="+Math.random();
		this.currxmlHttp.onreadystatechange= function () { this_.current_construct(); }
		this.currxmlHttp.open("GET",url,true);
		this.currxmlHttp.send(null);
	}
	
	CurrentIssueClass.prototype.current_construct = function (){
		if (this.currxmlHttp.readyState==4)
		{
			this.parent.removeChild(this.loading.element);
				
			var issueDoc=this.currxmlHttp.responseXML;
			issueDoc.preserveWhiteSpace = false;
			
			/* Show comments */
			//build comments
			var comments_xml = issueDoc.getElementsByTagName('comment');
			this.comments.id = curissue;
			this.comments.commentsXML = comments_xml;
			this.comments.show_comments(true);
			
			var f = objId('comment_form');
			if (f != null) {
				f.style.display = "";
			}

			
			//build links
			var links = issueDoc.getElementsByTagName('link');
			if (links.item(0)!=null){
				this.showResources(links);
			} else {
				this.resource_holder.innerHTML = '';
			}
			
			//build recommended resources by historica
			var recommresource = issueDoc.getElementsByTagName('resource');
			if (recommresource.item(0) != null ) {
				this.showHistoricaResources(recommresource);
			} else {
				this.historicaresource_holder.innerHTML = '';
			}
			//build current issue
			var submitterId = issueDoc.getElementsByTagName('submitterId');
			var submitterName = issueDoc.getElementsByTagName('submitterName');
			var submitterCity = issueDoc.getElementsByTagName('submitterCity');
			var submitterProvince = issueDoc.getElementsByTagName('submitterProvince');
			var submitDate = issueDoc.getElementsByTagName('submitDate');
			var submitTime = issueDoc.getElementsByTagName('submitTime');
			var theme = issueDoc.getElementsByTagName('theme');
			var title = issueDoc.getElementsByTagName('title');
			var issuebody = issueDoc.getElementsByTagName('text');
			var imageId = issueDoc.getElementsByTagName('imageId');
			var video = issueDoc.getElementsByTagName('video');
			var _type = issueDoc.getElementsByTagName('type')[0].childNodes[0].nodeValue;
			
			var cissue_holder = document.createElement('div');
			cissue_holder.id = 'cissue_holder';
			//link to this
			// <p id="link_to_this"><a href="#" class="link_to_this">Link to this</a></p>
			var ltt = document.createElement('p');
			ltt.id = "link_to_this";
			ltt.innerHTML = "<a href=\"#\" onclick=\"show_linktothis(event); return false;\" class=\"link_to_this\">"+linktothis_txt+"</a>";
			cissue_holder.appendChild(ltt);
			
			//theme
			
			if(theme.item(0)!=null){
			var h2_ = document.createElement('h2');
			h2_.innerHTML = thetheme + theme.item(0).firstChild.nodeValue;;
			cissue_holder.appendChild(h2_);
			}
			//title
			var h3_ = document.createElement('h3');
			h3_.innerHTML = title.item(0).firstChild.nodeValue;
			cissue_holder.appendChild(h3_);
			
			
			
			//credits
			
			cissue_holder.appendChild(credits(submitterProvince,submitterId,submitterName,submitterCity,submitDate,submitTime));
			
			//video
			if(_type == "video"){
				var frontvideo =document.createElement('div');
				frontvideo.className = "front_video";
				var version = deconcept.SWFObjectUtil.getPlayerVersion();
				if (version['major'] >= 8) { 
					var vid_id = video.item(0).getElementsByTagName("id").item(0).firstChild.nodeValue;
					var vid_caption = (video[0].getElementsByTagName('caption').item(0).firstChild)? (video[0].getElementsByTagName('caption').item(0).firstChild.nodeValue): "";
					frontvideo.innerHTML = this.showVid(vid_id, vid_caption);
				} else {
					var frontvideoText = document.createTextNode('You need the Flash Player 8 to view this movie.');
					frontvideo.appendChild(frontvideoText);
				}
				cissue_holder.appendChild(frontvideo);
			
			}
			
			//image
			if (_type == "image"){
				var frontimg = document.createElement('div');
				frontimg.className = "front_img";
				var img = document.createElement('img');
				img.src = mediapath + '?id=' + imageId.item(0).firstChild.nodeValue + '&maxImgHeight=' + this.imgheight + '&maxImgWidth=' + this.imgwidth;
				frontimg.appendChild(img);
				cissue_holder.appendChild(frontimg);
			}
			
			
			
			//text
			if(issuebody.item(0).hasChildNodes()){
			var span = document.createElement('span');
			span.innerHTML = issuebody.item(0).firstChild.nodeValue;
			cissue_holder.appendChild(span);
			}
			
			this.parent.replaceChild(cissue_holder,this.parent.childNodes.item(1));
		} else {
			//this.parent.childNodes.item(1).innerHTML = loading;
			this.parent.appendChild(this.loading.element);
		}
	
	}
	
	CurrentIssueClass.prototype.showVid = function (vidId, vidcap) {
		
		var objinnerhtml = '<object width="'+this.moviewidth+'" height="'+this.movieheight+'" codeBase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"><param name="movie" value="'+ hiplayer +'" /><param name="loop" value="false" /><param name="quality" value="high" /><param name="bgcolor" value="#333333" /><param name="scale" value="noborder" /><param name="wmode" value="transparent" /><param name="FlashVars" value="moviePath='+mediapath+'?id='+vidId+'&conn_msg='+connmsg+'" /><embed src="'+ hiplayer +'" loop="false" bgcolor="#333333" width="'+ this.moviewidth +'" height="'+ this.movieheight +'" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" FlashVars="moviePath='+mediapath+'?id='+vidId+'&conn_msg='+connmsg+'" play="false" menu="false" quality="high" scale="noborder" wmode="transparent" /></object>';
		if (vidcap != null){
		objinnerhtml = objinnerhtml + '<div class="videocaption">'+vidcap+'</div>';
		}
		return objinnerhtml;
	}
	
	CurrentIssueClass.prototype.addResource = function (){
		var url = document.forms['addlink_form'].elements['url_resource'].value;
		var title = document.forms['addlink_form'].elements['title_resource'].value;
		var done = false;
		/*var urlRegxp = /^(http:\/\/www.|https:\/\/www.|ftp:\/\/www.|www.){1}([\w]+)(.[\w]+){1,2}$/;
		if (urlRegxp.test(url) != true){
			*/
			
		if (url == ''){
			alert(enterURL); 
			done = false;
		} else {
			if(title == ''){
				alert(enterTitle);	
				done = false;
			} else {
				done = true;
			}
		}
		if (done == true) {
			this.sendResource(title,url);
			hidePop();
		}
	}
	
	CurrentIssueClass.prototype.sendResource = function (title_,url_){
			
			var this_ = this;
			var poststr = "";
			poststr += "collectorClassName=ca.histori.fyi.entity.Issue";
			poststr += "&language="+langu;  // langu is global variable set in the HEAD (top.jsp)
			poststr += "&collectorId="+curissue;
			poststr += "&title="+title_;
			poststr += "&locator="+url_;
			this.resourceXmlHttp = GetXmlHttpObject();
			var url = urladdlink; // global
			this.resourceXmlHttp.onreadystatechange=function () {this_. handleSendResource(); }
			this.resourceXmlHttp.open("POST",url,true);
			this.resourceXmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			this.resourceXmlHttp.setRequestHeader("Content-length", poststr.length);
			this.resourceXmlHttp.setRequestHeader("Connection", "close");
			this.resourceXmlHttp.send(poststr);
			
	}
	
	CurrentIssueClass.prototype.handleSendResource = function (){
		if (this.resourceXmlHttp.readyState==4)
		{
			this.parent.removeChild(this.loading.element);
			var resourcexmlDoc=this.resourceXmlHttp.responseXML;
			resourcexmlDoc.preserveWhiteSpace = false;
			var success = resourcexmlDoc.getElementsByTagName('success');
			success = checkvalueforempty(success);
			
			if(success == 'false'){
				var error_message = "There was a problem with: "
				var error_ = resourcexmlDoc.getElementsByTagName('error'); 
				var err = checkvalueforempty(error_);
				error_message += err;
				alert(error_message);
			} 
			this.getResource(curissue);
		
		} else {
			//this.resource_holder.innerHTML = loading;
			this.parent.appendChild(this.loading.element);
		}
	
	}
	
	CurrentIssueClass.prototype.getResource = function (id){
		var this_ = this;
		this.currxmlHttp=GetXmlHttpObject();
		var url = urlc;
		url=url+"?id="+id;
		url=url+"&sid="+Math.random();
		this.currxmlHttp.onreadystatechange = function () { this_.handleGetResource(); }
		this.currxmlHttp.open("GET",url,true);
		this.currxmlHttp.send(null);
	}
	
	CurrentIssueClass.prototype.handleGetResource = function (){
		if (this.currxmlHttp.readyState==4)
		{
			var issueDoc=this.currxmlHttp.responseXML;
			issueDoc.preserveWhiteSpace = false;
			var links = issueDoc.getElementsByTagName('link');
			if (links.item(0)!=null){
				this.showResources(links);
			} else {
				this.resource_holder.innerHTML = '';
			}
		}
			
	}
	
	 CurrentIssueClass.prototype.showResources = function (linkscollection){
		if(linkscollection){
			var ul_links = document.createElement('ul');
			for (var x=0;x<linkscollection.length;x++){
				var title = linkscollection[x].getElementsByTagName('title').item(0).firstChild.nodeValue;
				var url = linkscollection[x].getElementsByTagName('url').item(0).firstChild.nodeValue;
			
				ul_links.appendChild(this.showLinks(title,url));	
			}
			replaceChildren(this.resource_holder,ul_links);
		}
	 }
	
	CurrentIssueClass.prototype.showHistoricaResources = function (linkscollection){
		if(linkscollection){
			var ul_links = document.createElement('ul');
			for (var x=0;x<linkscollection.length;x++){
				var title = linkscollection[x].getElementsByTagName('title').item(0).firstChild.nodeValue;
				var url = linkscollection[x].getElementsByTagName('url').item(0).firstChild.nodeValue;
				var summary = linkscollection[x].getElementsByTagName('summary');
				summary = checkvalueforempty(summary);
				var imageId = linkscollection[x].getElementsByTagName('imageId');
				imageId = checkvalueforempty(imageId);
				ul_links.appendChild(this.showHLinks(title,url,summary,imageId));	
			}
			replaceChildren(this.historicaresource_holder,ul_links);
			
		}
	 }
	
	CurrentIssueClass.prototype.showLinks = function (title_,url_){
		var li = document.createElement('li');
		li.innerHTML = '<a href="'+url_+'">'+title_+'</a>';
		return li;	
	}
	
	CurrentIssueClass.prototype.showHLinks = function (title_,url_,summary_,imageId_){
		var li = document.createElement('li');
		var image;
		image = (imageId_ != "")? "<span class=\"r_img\"><img src=\""+ mediapath + "?id=" + imageId_ + "&maxImgWidth=" + this.thumbwidth + "&maxImgHeight=" + this.thumbheight +"\" /></span>" : "<span class=\"r_img\">&nbsp;</span>" ;
		li.innerHTML = image + '<span class=\"r_txt\"><a href="'+url_+'">'+title_+'</a><br />'+summary_+'</span><span style=\"clear:both; display: block;\"></span>';
		return li;	
	}

CurrentIssueClass.prototype.submit_comment = function (f) {
	return this.comments.comment_submit(f);
}
