/**
* ProspectListRender
* 
* Writes/renderers the project name from the project xml in to html.
*
*/

function ProspectEvaluationRender(){
	this.maxNrOfFirmsPerRow = 4;
}


ProspectEvaluationRender.prototype.render = function render(object,htmlElementId){
	
	var textBox = document.getElementById(htmlElementId);
	
	while(textBox.childNodes.length > 0){
	  	textBox.removeChild(textBox.childNodes.item(0));
	}

	var projectList = object.getElementsByTagName("project");

	var tableTag;
	var tbodyTag;

	var elementList = object.getElementsByTagName("prospect");

	if(projectList && projectList.length > 0){
		var projectNode = projectList[0];
	
		var projectId = projectNode.getAttribute("id");
		var projectName = projectNode.getAttribute("name");
		var projectCreated = projectNode.getAttribute("created");
		var projectStatus = projectNode.getAttribute("pstatusname");
		var projectCity = projectNode.getAttribute("city");
		
		var skillcategories = projectNode.getAttribute("skillcategories"); 
		
		tableTag = document.createElement("table");
  	  	
  	  	tableTag.setAttribute("border","0");
  	  	tableTag.setAttribute("width","650");
  	  	tableTag.setAttribute("cellspacing","0");
		tableTag.setAttribute("cellpadding","0");
		
		tableTag.cellspacing = "0";
		tableTag.cellpadding = "0";
	
		//must have tbody tag for tables to work in IE.6.
	  	tbodyTag = document.createElement("tbody");
	  
	  	var trHeader1 = document.createElement("tr");
	  	var tdHeader1 = document.createElement("td");
	  	tdHeader1.setAttribute("colspan","2");
	  	tdHeader1.colSpan = 2;
	  	
	  	var pageHeader = $c("h1");
	  	pageHeader.appendChild($t(projectName));
	  	tdHeader1.appendChild(pageHeader);
	  
	  	var headerTable = $c("table");
	  	headerTable.setAttribute("border","0");
	  	headerTable.setAttribute("width","650");
	  	var headerBody = $c("tbody");
	  	
	  	if(projectName != null && projectName != ""){
		
			var trHeader2 = document.createElement("tr");
	  		var tdHeader2 = document.createElement("td"); 
	  		tdHeader2.setAttribute("valign","top");
	  		
			var spant = $c("span");
			spant.className = "rubrik";
			spant.appendChild($t("Skapat: "));
			tdHeader2.appendChild(spant);
			tdHeader2.appendChild($t(projectCreated));
			
			tdHeader2.appendChild($c("br"));
			
			var spanstatus = $c("span");
	  		spanstatus.className = "rubrik";
	  		spanstatus.appendChild($t("Status: "));
	  		tdHeader2.appendChild(spanstatus);
	  		tdHeader2.appendChild($t(projectStatus));
	  		tdHeader2.appendChild($c("br"));
	  		tdHeader2.appendChild($c("br"));
	  		
	  		

	  		if(projectNode.getAttribute("pstatus") != "1"){
	  			var button2 = $c("input");
	  			button2.type = "button";
	  			button2.value = "St\u00e4ng jobbf\u00f6rfr\u00e5gan"; 
	  			button2.onclick = function(event){setDisplay('popup_end_project',1,((getPosition(event)).x-100) +"px", ((getPosition(event)).y-90) +"px");};
	  			
	  			if(window.isloggedin && window.isloggedin == true){
					tdHeader2.appendChild(button2);	
	  			}
	  		}
	  		
	  		var tdHeader3 = document.createElement("td"); 
	  		tdHeader3.setAttribute("valign","top");
	  		
	  		var categories = skillcategories.split(",");
	  		
	  		
	  		if(categories && categories.length > 0){
	  			tdHeader3.innerHTML = "<b>Föreslå fler hantverkare:</b><br/>"
	  				for(n in categories) 
	  					tdHeader3.innerHTML += "<a href='"+window["contextPath"]+"/do/search?q="+encodeURI(categories[n])+"&l="+encodeURI(projectCity)+"&r=4'>" + categories[n] + "</a><br/>";
	  		}
	  		var tdHeader4 = document.createElement("td"); 
	  		
	  		var sent_p = 0;
	  		var new_p = 0;
	  		var accept_p = 0;
	  		var notaccept_p = 0;
	  		
	  		for(var j = 0 ; j != elementList.length ; j++){	
	  			var status = elementList[j].getAttribute("status");
	  			if(status == "NEW")
	  				new_p++;
	  			else if(status == "SENT")
	  				sent_p++;
	  			else if(status == "ACCEPTED")
	  				accept_p++;	
	  			else if(status == "DECLINED")
	  				notaccept_p++;	
	  		}
	  		
	  		var statc = "<table border='0'>";
	  		statc += "<tr class='listrowon'><td >Skickat till: </td><td>&nbsp;&nbsp;" + sent_p + "st. </td></tr>";
	  		//statc += "<tr class='listrowon'><td >Ej skickade: </td><td>&nbsp;&nbsp;" + new_p + "st. </td></tr>";
	  		statc += "<tr class='confirmmessage'><td >Tackat ja: </td><td>&nbsp;&nbsp;" + accept_p  + "st. </td></tr>";
	  		statc += "<tr class='listrowon'><td >Tackat nej: </td><td>&nbsp;&nbsp;" + notaccept_p  + "st. </td></tr>";
	  		statc +="</table>"
	  		
	  		tdHeader4.innerHTML = statc;
	  		
	  	  	trHeader2.appendChild(tdHeader2);
			trHeader2.appendChild(tdHeader3);
			trHeader2.appendChild(tdHeader4);
			
		  	headerBody.appendChild(trHeader2);
		  	headerTable.appendChild(headerBody);
	  	}

  	  	tdHeader1.appendChild(headerTable);
	  	trHeader1.appendChild(tdHeader1);
	  	tbodyTag.appendChild(trHeader1);
	  	
		//hr  	
	  	var hr = $c("hr");
	  	hr.setAttribute("noshade","noshade");
	  	hr.setAttribute("size","1");
	  	hr.style.width = "650px";
		tdhr = $c("td");
		tdhr.setAttribute("colspan","2");
		tdhr.colSpan = 3;
		tdhr.appendChild($c("br"));
		tdhr.appendChild(hr);
		var trhr = $c("tr").appendChild(tdhr);
		
		tbodyTag.appendChild(trhr);	  	
		
		var tdTagButtonRubrik = document.createElement("td");
	  	tdTagButtonRubrik.className = "smalbuttonheadercell";
	  	
	  	var tdTagCompanyRubrik = document.createElement("td");
	  	tdTagCompanyRubrik.className = "rubrikcell";
	  		  	
	  	var spanCompnayRubrik = document.createElement("span");
	  	spanCompnayRubrik.className = "rubrik";
	  	spanCompnayRubrik.appendChild(document.createTextNode("Valda"));
	  
	  	var spanButtonRubrik = document.createElement("span");
	  	spanButtonRubrik.className = "rubrik";
	  	spanButtonRubrik.appendChild(document.createTextNode(""));
 	
	  	tdTagButtonRubrik.appendChild(spanButtonRubrik);
	  	tdTagCompanyRubrik.appendChild(spanCompnayRubrik);
	  	
	  	var trRubrik = document.createElement("tr");

	  	trRubrik.appendChild(tdTagCompanyRubrik);
	  	trRubrik.appendChild(tdTagButtonRubrik);
	  	
	  	tbodyTag.appendChild(trRubrik);	
	}
	
	if($("firmids_select")){
		var optionsselect = $("firmids_select");
		while(optionsselect.childNodes.length > 0){
	  		optionsselect.removeChild(optionsselect.childNodes.item(0));
		}
	}
	
	if($("pid_field")){
		var field = $("pid_field");
		field.value = projectId;
	}
	
	var select = $("firmids_select");
	if (elementList != null && elementList != undefined && elementList.length > 0) {
		
			
		
			for(var i = 0 ; i != elementList.length ; i++){
	  			ProspectEvaluationRender.renderTableRow(tbodyTag,elementList[i]);
	  			if(select){
	  				var option = $c("option");
	  				var firm = elementList[i].getElementsByTagName("firm")[0];
	  				option.value = firm.getAttribute("id");
	  				option.appendChild($t(firm.getAttribute("name")));

					select.appendChild(option);
	  			}
	  		}
	  		tableTag.appendChild(tbodyTag);
	  		textBox.appendChild(tableTag);
	  		
  		} else {
  		
  			tableTag.appendChild(tbodyTag);
  			textBox.appendChild(tableTag);
  			textBox.appendChild($c("br"));
 	  	  	textBox.appendChild(document.createTextNode('Inga f\u00f6retag.'));
 	  	}

	var option = $c("option");
	option.value="reason1";
	option.appendChild($t("Ingen, Jag fick inga svar."));
	select.appendChild(option);
	
	var option = $c("option");
	option.value="reason2";
	option.appendChild($t("Jag utförde jobbet själv "));
	select.appendChild(option);
	
	var option = $c("option");
	option.value="reason3";
	option.appendChild($t("En annan hantverkare"));
	select.appendChild(option);
	
	
 	  FirmListRender.openAllFirmInfos();
}
/**
* ProspectEvaluationRender.renderTableRow buildTable
*/
ProspectEvaluationRender.renderTableRow =  function(tableTag,nodeObj){

	//do not build table if there are not firms in list.
	if(nodeObj == null) return;
	
  	// var isDeclined = (nodeObj.getAttribute("status") == "DECLINED");
	var firstRow = document.createElement("tr");
  	var status = nodeObj.getAttribute("status");
	var firmNode = nodeObj.getElementsByTagName("firm")[0];
	var firmId = firmNode.getAttribute("id");
	var prospectId = nodeObj.getAttribute("prospectid");		
	var infocell = document.createElement("td");
	infocell.className = "firminfocell";

	var buttoncell = document.createElement("td");
	buttoncell.className = "smalbuttoncell";

	if(status != null && status == "NEW"){
		var linkTag = document.createElement("a");
		linkTag.setAttribute("href","javascript:prospectHandler.removeProspectByFirmId('"+firmId+"');");
		var imgTag = document.createElement("img");
		imgTag.setAttribute("src",window["contextPath"]+"/images/ikon_remove.png");
		imgTag.setAttribute("alt","Ta bort");
		imgTag.setAttribute("title","Ta bort");
	    linkTag.appendChild(imgTag);
 		buttoncell.appendChild(linkTag);
  	}
 
  	var firmdiv = ProspectEvaluationRender.renderFirmInfo(firmNode,nodeObj,prospectId);
	
	infocell.setAttribute("valign","top");
	infocell.appendChild(firmdiv);

	firstRow.appendChild(infocell);
	firstRow.appendChild(buttoncell);
 	tableTag.appendChild(firstRow);
};

ProspectEvaluationRender.renderFirmInfo = function renderFirm(node,nodeObj, prospectId){
	
	var id = node.getAttribute("id");
	var hash = node.getAttribute("hash");

	var firminfoDiv = document.createElement("div");		
  	firminfoDiv.className = "firminfoclosed";
  	firminfoDiv.id = id;
  	firminfoDiv.fid = id; // not to get same id...

 	var openCloseDetailInfoLinkTag = document.createElement("a");
 	openCloseDetailInfoLinkTag.setAttribute("href","#");
 	openCloseDetailInfoLinkTag.onclick = function() { FirmListRender.openFirmInfo(id); return false;};
			
	FirmListRender.firmIdsInPage.put(id);

 	var openCloseImg = document.createElement("img");
	openCloseImg.setAttribute("src",window["contextPath"]+"/images/pilhoger.gif");
	openCloseImg.id = id+"open";
	openCloseImg.setAttribute("hspace","5");
	openCloseImg.setAttribute("vspace","0");
	openCloseImg.setAttribute("border","0");
	
	openCloseDetailInfoLinkTag.appendChild(openCloseImg);   			
	firminfoDiv.appendChild(openCloseDetailInfoLinkTag);
   	//firminfoDiv.onclick = function() { showHandyBox();firmHandler.loadFirmInfoDetails('firmdetailinfo',this.fid);};
	
	var spanrubrik2 = document.createElement("span");
	spanrubrik2.className = "rubrik"; 
	spanrubrik2.appendChild(document.createTextNode(" ["));
	spanrubrik2.appendChild(document.createTextNode(ProspectListRender.translateProspectStatusForCustomer((nodeObj.getAttribute("status")))));
	spanrubrik2.appendChild(document.createTextNode("] "));
	firminfoDiv.appendChild(spanrubrik2);

	var header = $c("a");
	header.className = "rubrik";
  	header.setAttribute("target","_new");
  	header.href=window["contextPath"]+"/firm/?id="+id+"."+hash;	  	
	header.appendChild($t(node.getAttribute("name") + " "));
	firminfoDiv.appendChild(header);
	
  	var creditA = $c("a");
	creditA.appendChild($t("kreditupplysning"));
	creditA.setAttribute("target","_new");
  	creditA.href=window["contextPath"]+"/creditreport/?fid="+id+"."+hash;	
	firminfoDiv.appendChild(creditA);
	
	/*
	var rank = parseInt(node.getAttribute("rankCat"));
	for(var i = 0 ; i < rank; i++){
		var imgs = new Image();
		imgs.src = window["contextPath"] + "/images/ikon_rank.png";
		firminfoDiv.appendChild(imgs);
	}
	*/
	
	firminfoDiv.appendChild($c("br"));
	
	
	//firm presentation.
	var firminfotextSpan = document.createElement("span");
  	firminfotextSpan.className = "firminfotext";
	
	var profile = node.getElementsByTagName("profile");
  	if(profile != null && profile != undefined && profile.length > 0){
  			
  		var profileNode = profile[0];
  		var presentation = profileNode.getAttribute("description");
  			
  		if(presentation==null || "" == presentation || presentation == undefined){
  			presentation = profileNode.getAttribute("presentation");
  		}
  			
  		if(presentation!=null && "" != presentation && presentation != undefined){
  			//presentation = (presentation.length>30) ? presentation.substring(0,30)+"..." : presentation; 	
  			firminfotextSpan.appendChild(document.createTextNode(presentation));
  			firminfotextSpan.appendChild(document.createElement("br"));
			firminfoDiv.appendChild(firminfotextSpan);			
		}
  	}
	
	//firm address	
	var addresses = node.getElementsByTagName("address");
	var firmTown = "";
	var street = "";
	var streetnr = "";
	var zip = "";
	
  	if(addresses != null && addresses.length > 0){
  		var addressNode = addresses[0];
  		firmAddressId = addressNode.getAttribute("id");
  		geo = addressNode.getAttribute("geo");
  		firmTown = addressNode.getAttribute("city");
  		street = addressNode.getAttribute("street");
  		zip = addressNode.getAttribute("zip");
  		streetnr = addressNode.getAttribute("streetnr");
  		if (streetnr == "-1") streetnr = "";
  	}
  			
	var firmaddressSpan = document.createElement("div");
	firmaddressSpan.className = "firmaddress";
	firmaddressSpan.id = id + "div";
	
	var firmaddressSpanHeader = document.createElement("span");
	firmaddressSpanHeader.className = "rubrik";
	firmaddressSpanHeader.appendChild(document.createTextNode("Adress: "));
	
	firmaddressSpan.appendChild(firmaddressSpanHeader);

	firmaddressSpan.appendChild(document.createTextNode(street  + " "+streetnr+", "));
	
	firmaddressSpan.appendChild(document.createTextNode(zip  + " "));
	firmaddressSpan.appendChild(document.createTextNode(" " + firmTown));
	
	firmaddressSpan.appendChild(document.createElement("br"));
	
	var wwwAddressWrapper = document.createElement("span");
  	var contactInfoSpanWrapper = document.createElement("span");
	
	var contacts = node.getElementsByTagName("contact");
  	if(contacts != null && contacts.length > 0){
  			
  		for(var i = 0; i != contacts.length ; i++){	
  			var contactNode = contacts[i];
  			if(contactNode.getAttribute("type")!=null && contactNode.getAttribute("type")!="HTTP" && contactNode.getAttribute("type")!="MAIL" && (contactNode.getAttribute("url") != null || "" != contactNode.getAttribute("url"))){
  		
  				var contactInfo = document.createElement("span");
				var contactInfoHeader = document.createElement("span");
  						
  				contactInfoHeader.appendChild(document.createTextNode(FirmListRender.getTranslatedContactInfoType(contactNode.getAttribute("type"))+": "));
  				contactInfo.appendChild(document.createTextNode(FirmListRender.washContactInfoUrl(contactNode.getAttribute("url"))));
  				//contactInfo.appendChild(document.createElement("br"));
  						
  				contactInfoSpanWrapper.appendChild(contactInfoHeader);
  				contactInfoSpanWrapper.appendChild(contactInfo);
  			}
  			
  			if(contactNode.getAttribute("type")!=null && contactNode.getAttribute("type")=="MAIL"){
  			
  				var emaillink = document.createElement("a");
  				emaillink.className = "emailaddresslink";
  				emaillink.setAttribute("href","#");
  				
  				var emaillinkSpanHeader = document.createElement("span");
				emaillinkSpanHeader.className = "emailaddressheader";
				
				var emailheader = FirmListRender.getTranslatedContactInfoType(contactNode.getAttribute("type"));
  				emaillinkSpanHeader.appendChild(document.createTextNode(emailheader+": "));
  			
  				emaillink.appendChild(document.createTextNode(FirmListRender.washContactInfoUrl(contactNode.getAttribute("url"))));
  				
  				//emaillink.setAttribute("href","mailto:" + );
  				
  				var str = FirmListRender.washContactInfoUrl(contactNode.getAttribute("url"));
  				var str1 = str.substring(0,(str.indexOf("@")));
  				var str2 = str.substring((str.indexOf("@")+1));
  				
  				str = "function() { onClickEmail('"+str1+"','"+str2+"'); return false; }";
	  		
		  		if(window.execScript){
					window.execScript("tmp="+str);
					emaillink.onclick = tmp;			 	    
				} else {
		 			window.eval("window.tmp="+str);
					emaillink.onclick = window.tmp;
					delete window["tmp"];	    		    
				}
  				contactInfoSpanWrapper.appendChild($t(", "));
  				contactInfoSpanWrapper.appendChild(emaillinkSpanHeader);
  				contactInfoSpanWrapper.appendChild(emaillink);
  			
  			}
  			
  			if(contactNode.getAttribute("type")!=null && contactNode.getAttribute("type")=="HTTP"){
  				//firm contacts address
				var wwwaddressLink = document.createElement("a");
  				wwwaddressLink.className = "wwwaddress";
				var wwwaddressSpanHeader = document.createElement("span");
				wwwaddressSpanHeader.className = "wwwaddressheader";
  				header = FirmListRender.getTranslatedContactInfoType(contactNode.getAttribute("type"));
  				wwwaddressSpanHeader.appendChild(document.createTextNode(header+": "));
  				wwwaddressLink.setAttribute("href",contactNode.getAttribute("url"));
  				wwwaddressLink.setAttribute("target","new");			
  				wwwaddressLink.appendChild(document.createTextNode(FirmListRender.washContactInfoUrl(contactNode.getAttribute("url"))));
  				wwwAddressWrapper.appendChild($t(", "));
  				wwwAddressWrapper.appendChild(wwwaddressSpanHeader);
  				wwwAddressWrapper.appendChild(wwwaddressLink);
  				// wwwAddressWrapper.appendChild(document.createElement("br"));
  			}
  		}
  	}
  			
  	firmaddressSpan.appendChild(contactInfoSpanWrapper);
	firmaddressSpan.appendChild(wwwAddressWrapper);

	// anteckningsblock
	
  	var extraInfo = document.createElement("div");
	extraInfo.className =  "firminfoopen";
	extraInfo.appendChild(document.createElement("br"));
	
	var spanrubrik = document.createElement("span");
	spanrubrik.className = "underubrik"; 
	spanrubrik.appendChild(document.createTextNode("Anteckningar:"));
	extraInfo.appendChild(spanrubrik);
	extraInfo.appendChild(document.createElement("br"));
	var textarea =  document.createElement("textarea");
	var elementid = "input_note_"+id; // firm-id
	textarea.setAttribute("id",elementid);
	textarea.setAttribute("rows","2");
	textarea.setAttribute("cols","60");
	textarea.appendChild(document.createTextNode(nodeObj.getAttribute("note")));
	
	str = "function() { prospectHandler.saveValue('note','"+elementid+"','"+prospectId+"','"+id+"'); }";
	var func = null;
	
	if(window.execScript){
		window.execScript("tmp="+str);
		func = tmp;			 	    
	} else {
		window.eval("window.tmp="+str);
		func = window.tmp;
		delete window["tmp"];	    		    
	}
  
	textarea.onblur = func;
	
	extraInfo.appendChild(textarea);
	extraInfo.appendChild(document.createElement("br"));

	firmaddressSpan.appendChild(extraInfo);
	
  	firminfoDiv.appendChild(firmaddressSpan);
 
	return firminfoDiv;
};





