/*
* Created on 2004-okt-19
*
* To change the template for this generated file go to
* Window - Preferences - Java - Code Generation - Code and Comments
*/
package se.idega.idegaweb.ehealth.presentation;
import java.util.ArrayList;
import java.util.Iterator;
import javax.faces.component.UIComponent;
import se.idega.util.PIDChecker;
import com.idega.business.IBOLookup;
import com.idega.presentation.IWContext;
import com.idega.presentation.Image;
import com.idega.presentation.Layer;
import com.idega.presentation.Page;
import com.idega.presentation.Script;
import com.idega.presentation.Table;
import com.idega.presentation.text.Break;
import com.idega.presentation.text.Link;
import com.idega.presentation.ui.Form;
import com.idega.user.business.UserBusiness;
import com.idega.user.data.User;
import com.idega.util.Age;
/**
* @author Malin
*
* To change the template for this generated type comment go to
* Window - Preferences - Java - Code Generation - Code and Comments
*/
public class HealthCareOverview extends EHealthBlock {
private String prefix = "patient_";
private String prmForm = prefix + "form_care_overview";
private String keySet1Text1U1 = prefix + "h_care_o_set1_text_1U1";
private String keySet1Text2U1 = prefix + "h_care_o_set1_text_2U1";
private String keySet1Text3U1 = prefix + "h_care_o_set1_text_3U1";
private String keySet1Text4U1 = prefix + "h_care_o_set1_text_4U1";
private String keySet1Text5U1 = prefix + "h_care_o_set1_text_5U1";
private String keySet2Text1U1 = prefix + "h_care_o_set2_text_1U1";
private String keySet2Text2U1 = prefix + "h_care_o_set2_text_2U1";
private String keySet2Text3U1 = prefix + "h_care_o_set2_text_3U1";
private String keySet2Text4U1 = prefix + "h_care_o_set2_text_4U1";
private String keySet2Text5U1 = prefix + "h_care_o_set2_text_5U1";
private String keySet1Text1U2 = prefix + "h_care_o_set1_text_1U2";
private String keySet1Text2U2 = prefix + "h_care_o_set1_text_2U2";
private String keySet1Text3U2 = prefix + "h_care_o_set1_text_3U2";
private String keySet1Text4U2 = prefix + "h_care_o_set1_text_4U2";
private String keySet1Text5U2 = prefix + "h_care_o_set1_text_5U2";
private String keySet2Text1U2 = prefix + "h_care_o_set2_text_1U2";
private String keySet2Text2U2 = prefix + "h_care_o_set2_text_2U2";
private String keySet2Text3U2 = prefix + "h_care_o_set2_text_3U2";
private String keySet2Text4U2 = prefix + "h_care_o_set2_text_4U2";
private String keySet2Text5U2 = prefix + "h_care_o_set2_text_5U2";
private int userID = -1;
private User user;
IWContext _iwc = null;
private Image imageCircleD = null;
private Image imageCircleU = null;
private Image imageBgVert = null;
private Image imageBgVertOut = null;
Age age = null;
public void main(IWContext iwc) throws Exception {
_iwc = iwc;
userID = iwc.getUserId();
if (userID > 0) {
user = ((UserBusiness) IBOLookup.getServiceInstance(iwc, UserBusiness.class)).getUser(userID);
}
imageCircleD = getBundle(iwc).getImage("circleDown.gif");
imageCircleU = getBundle(iwc).getImage("circleUp.gif");
imageBgVert = getBundle(iwc).getImage("bgbeigeVert.gif");
imageBgVertOut = getBundle(iwc).getImage("bgbeigeVert1.gif");
// add(getOverviewForm(iwc));
if (user != null && user.getDateOfBirth() != null)
age = new Age(user.getDateOfBirth());
else if (user != null && user.getPersonalID() != null)
age = new Age(PIDChecker.getInstance().getDateFromPersonalID(user.getPersonalID()));
add(getOverviewForm());
}
public UIComponent getOverviewForm(){
Form myForm = new Form();
myForm.setName(prmForm);
Table T = new Table(3, 3);
T.setCellpadding(0);
T.setCellspacing(0);
T.setBorder(0);
T.setBorderColor("#000000");
T.setVerticalAlignment(1, 1, Table.VERTICAL_ALIGN_TOP);
T.setVerticalAlignment(3, 1, Table.VERTICAL_ALIGN_TOP);
//T.setVerticalAlignment(1, 4, Table.VERTICAL_ALIGN_BOTTOM);
//T.add(getNavigationTree(iwc), 1, 1);
T.add(getNavigationTree(), 1, 1);
// T.add(getInfoLayer(), 2, 1);
T.add(new Break(3), 3, 1);
// T.setHeight(1, 3, "130");
//T.setHeight(1, 4, "90");
T.setWidth(2, 1, "40");
myForm.add(T);
Page pVisit = this.getParentPage();
if (pVisit != null) {
Script S = pVisit.getAssociatedScript();
//pVisit.setOnLoad("setRowColor(document.getElementById('inf1_1'));");
S.addFunction("setRowColor(obj)", setRowColorScript());
S.addFunction("showHideLayer(obj)", showHideLayerScript());
Script timeScript = myForm.getAssociatedFormScript();
if (timeScript == null) {
timeScript = new Script();
myForm.setAssociatedFormScript(timeScript);
}
}
ArrayList texts1 = new ArrayList();
ArrayList texts2 = new ArrayList();
if (age != null && age.getYears() >= 70){
texts1.add(localize(keySet1Text1U1, "Texten"));
texts1.add(localize(keySet1Text2U1, "Texten"));
texts1.add(localize(keySet1Text3U1, "Texten"));
texts1.add(localize(keySet1Text4U1, "Texten"));
texts1.add(localize(keySet1Text5U1, "Texten"));
texts2.add(localize(keySet2Text1U1, "Texten"));
texts2.add(localize(keySet2Text2U1, "Texten"));
texts2.add(localize(keySet2Text3U1, "Texten"));
texts2.add(localize(keySet2Text4U1, "Texten"));
texts2.add(localize(keySet2Text5U1, "Texten"));
}
else{
texts1.add(localize(keySet1Text1U2, "Texten"));
texts1.add(localize(keySet1Text2U2, "Texten"));
texts1.add(localize(keySet1Text3U2, "Texten"));
texts1.add(localize(keySet1Text4U2, "Texten"));
texts1.add(localize(keySet1Text5U2, "Texten"));
texts2.add(localize(keySet2Text1U2, "Texten"));
texts2.add(localize(keySet2Text2U2, "Texten"));
texts2.add(localize(keySet2Text3U2, "Texten"));
texts2.add(localize(keySet2Text4U2, "Texten"));
texts2.add(localize(keySet2Text5U2, "Texten"));
}
Layer layerOut = new Layer(Layer.DIV);
layerOut.setVisibility("visible");
layerOut.setOverflow("scroll");
layerOut.setPositionType("absolute");
layerOut.setWidth("280");
layerOut.setHeight("170");
layerOut.setMarkupAttribute("class", "ehealth_div");
Layer layer = new Layer(Layer.DIV);
layer.setVisibility("hidden");
layer.setOverflow("hidden");
layer.setPositionType("absolute");
layer.setWidth("250");
layer.setHeight("145");
layer.setMarkupAttribute("class", "ehealth_div_no_border");
int theRow = 1;
int i = 1;
Iterator iter1 = texts1.iterator();
Iterator iter2 = texts2.iterator();
while (iter1.hasNext()) {
Layer layers = (Layer) layer.clone();
layers.setID("info" + i + "_"+ theRow);
String text = (String) iter1.next();
layers.add(text);
layerOut.add(layers);
theRow++;
}
i++;
theRow = 1;
while (iter2.hasNext()) {
Layer layers = (Layer) layer.clone();
layers.setID("info" + i + "_"+ theRow);
String text = (String) iter2.next();
layers.add(text);
layerOut.add(layers);
theRow++;
}
T.add(layerOut, 3, 1);
return myForm;
}
//private Layer getNavigationTree(IWContext iwc) {
private Layer getNavigationTree() {
Layer layersNav = new Layer(Layer.DIV);
layersNav.setOverflow("scroll");
layersNav.setPositionType("relative");
layersNav.setWidth("320");
layersNav.setHeight("400");
layersNav.setStyleClass("ehealth_div_no_border");
//layersNav.setMarkupAttribute("class", "ehealth_div");
layersNav.setBackgroundImage(imageBgVertOut);
Table table = new Table(3, 20);
table.setNoWrap();
table.setCellpadding(0);
table.setCellspacing(0);
table.setBorder(0);
table.setWidth("280");
table.setHeight("350");
int row = 1;
int i = 1;
for (i = 1; i <= 4; i++){
table.mergeCells(2, row, 3, row);
if (i <= 2){
table.add(getLayer1(i), 2, row);
table.setHeight(1, row, "16");
table.setHeight(2, row, "16");
table.setWidth(1, row, "16");
table.setWidth(2, row, "16");
table.setVerticalAlignment(1, row, Table.VERTICAL_ALIGN_TOP);
table.add(imageCircleD, 1, row++);
}
//table.setBackgroundImage(1, row, imageBgVert);
table.setHeight(2, row, "16");
table.setVerticalAlignment(1, row, Table.VERTICAL_ALIGN_TOP);
table.add(getLayer2(i), 2, row++);
table.setBackgroundImage(1, row, imageBgVert);
table.setHeight(1, row, "20");
table.setVerticalAlignment(1, row, Table.VERTICAL_ALIGN_TOP);
table.add(getLayer3(i), 2, row++);
table.setHeight(1, row, "10");
table.setVerticalAlignment(1, row, Table.VERTICAL_ALIGN_TOP);
table.setBackgroundImage(1, row++, imageBgVert);
/*table.add(getLayer1(i), 2, row);
table.add(getLayer2(i), 2, row);
table.add(getLayer3(i), 2, row);
*/
}
table.setVerticalAlignment(1, row, Table.VERTICAL_ALIGN_TOP);
table.setHeight(1, row, "25");
table.setBackgroundImage(1, row++, imageBgVert);
layersNav.add(table);
return layersNav;
}
private Layer getLayer1(int i){
Layer layerInfo = new Layer(Layer.DIV);
//layerInfo.setOverflow("hidden");
//layerInfo.setVisibility("visible");
layerInfo.setPositionType("relative");
//layerInfo.setHeight("16");
layerInfo.setWidth("240");
layerInfo.setID("lay" + i + "_1");
//layerInfo.setMarkupAttribute("class", "ehealth_div_top");
layerInfo.setStyleClass("ehealth_div_top");
Link text1 = new Link();
text1.setNoURL();
text1.setID("text" + i + "_1");
if (age != null && age.getYears() >= 70){
if (i == 1){
text1.setText("V�RDBEG�RAN 2004-05-05 L�k mott.bes�k");
}
else if (i == 2){
text1.setText("V�rdbeg�ran 2004-06-05 L�k mott.bes�k");
}
else
text1.setText("");
}
else{
if (i == 1){
text1.setText("V�rdbeg�ran 2004-05-05 L�k mott.bes�k");
}
else if (i == 2){
text1.setText("V�rdbeg�ran 2004-06-18 Inskrivning");
}
else
text1.setText("");
}
text1.setOnClick("javascript:showHideLayer("+ i +", 1);return false;");
layerInfo.add(text1);
return layerInfo;
}
private Layer getLayer2(int i){
Layer layerInfo = new Layer(Layer.DIV);
layerInfo.setOverflow("hidden");
layerInfo.setVisibility("hidden");
layerInfo.setPositionType("relative");
layerInfo.setHeight("25");
layerInfo.setID("lay" + i + "_2");
//layerInfo.setMarkupAttribute("class", "ehealth_div_no_border");
layerInfo.setStyleClass("ehealth_div_top");
Link text1 = new Link();
text1.setNoURL();
text1.setID("text" + i + "_2");
if (age != null && age.getYears() >= 70){
if (i == 1){
text1.setText("Bes�k 2004-05-05");
}
else if (i == 2){
text1.setText("Bes�k 2004-06-05");
}
else
text1.setText("Bes�k 03-01-30 14.00-15.00 Gimo VC");
}
else {
if (i == 1){
text1.setText("Bes�k 2004-05-05");
}
else if (i == 2){
text1.setText("Inskrivning 2004-06-18");
}
else
text1.setText("Bes�k 03-01-30 14.00-15.00 Gimo VC");
}
text1.setOnClick("javascript:showHideLayer("+ i +", 2);return false;");
layerInfo.add(imageCircleU);
layerInfo.add(text1);
return layerInfo;
}
private Layer getLayer3(int i){
Layer layerInfo = new Layer(Layer.DIV);
layerInfo.setOverflow("hidden");
layerInfo.setVisibility("hidden");
layerInfo.setPositionType("relative");
layerInfo.setHeight("20");
layerInfo.setWidth("260");
layerInfo.setID("lay" + i + "_3");
//layerInfo.setStyleClass("ehealth_div_no_border");
layerInfo.setStyleClass("ehealth_row_outer_div");
//layerInfo.setLeftPosition("10");
layerInfo.setTopPosition("0");
layerInfo.add(getInfoLayer(i));
return layerInfo;
}
private Layer getInfoLayer(int theCase){
Layer layerInfo = new Layer(Layer.DIV);
//layerInfo.setOverflow("hidden");
//layerInfo.setVisibility("hidden");
layerInfo.setPositionType("relative");
layerInfo.setWidth("270");
layerInfo.setHeight("100");
layerInfo.setStyleClass("ehealth_row_outer_div");
Table tableInfo = new Table(1, 10);
tableInfo.setNoWrap();
tableInfo.setCellpadding(0);
tableInfo.setCellspacing(0);
tableInfo.setBorder(0);
//tableInfo.setWidth(200);
int column = 1;
tableInfo.setWidth(column, 1, "200");
//tableInfo.setWidth(column++, 1, "70");
Image transpImg = Table.getTransparentCell(_iwc);
transpImg.setWidth(15);
transpImg.setHeight(16);
Layer layer = new Layer(Layer.DIV);
layer.setOnMouseOver("setRowColor(this);");
layer.setPositionType("relative");
//layer.setHeight(20);
layer.setStyleClass("ehealth_row_div");
Image corners = getBundle(_iwc).getImage("thirdLevel.gif");
corners.setBorder(0);
corners.setHeight(16);
corners.setWidth(19);
layer.setBackgroundImage(corners);
int theRow = 1;
ArrayList cases = new ArrayList();
if (age != null && age.getYears() >= 70){
if (theCase == 1){
cases.add("V�rdplats:");
cases.add("Journalanteckningar:");
cases.add("Remisser och svar:");
//cases.add("L�kemedel:");
}
else if (theCase == 2){
cases.add("V�rdplats:");
cases.add("Journalanteckningar:");
cases.add("Remisser och svar:");
}
}
else{
if (theCase == 1){
cases.add("V�rdplats:");
cases.add("Journalanteckningar:");
//cases.add("L�kemedel:");
}
else if (theCase == 2){
cases.add("V�rdplats:");
cases.add("Journalanteckningar:");
//cases.add("L�kemedel:");
}
}
Iterator iter = cases.iterator();
while (iter.hasNext()) {
Layer layers = (Layer) layer.clone();
layers.setID("inf" + theCase + "_"+ theRow);
String text = (String) iter.next();
layers.add(text);
tableInfo.add(layers, column, theRow);
theRow++;
}
layerInfo.add(tableInfo);
return layerInfo;
}
private String showHideLayerScript() {
StringBuffer s = new StringBuffer();
s.append("function showHideLayer(cases, level){").append(" \n\t");
s.append("stringThelayer = 'lay' + cases + '_' + level;").append(" \n\t");
s.append("theLayer = findObj(stringThelayer);").append(" \n\t");
s.append("var info = -1;").append("\n\t");
s.append("var inf = -1;").append("\n\t");
s.append("if (theLayer.style) { ").append(" \n\t"); //IE
/*
s.append("for(info=1;info<document.all.tags('div').length;info++){").append(" \n\t");
s.append("if (document.all.tags('div')[info].id.substr(0, 4) == 'info'){").append(" \n\t");
//s.append("alert(document.all.tags('div')[info].id.substr(0, 4))").append(" \n\t");
s.append("for(inf=1;inf<=5;inf++){").append(" \n\t");
s.append("alert('info' + cases + '_' + inf)").append(" \n\t");
s.append("showlayer = eval('info' + cases + '_' + inf + '.id');").append(" \n\t");
s.append("showlayer = findObj(showlayer);").append(" \n\t");
s.append("if (showlayer && showlayer.style.visibility == 'visible'){ ").append(" \n\t");
s.append("document.all(showlayer).style.visibility = 'hidden';").append(" \n\t");
s.append("}").append("\n\t");
s.append("}").append("\n\t");
s.append("}").append("\n\t");
s.append("}").append("\n\t\t");
*/
s.append("for(i=1;i<document.all.tags('div').length;i++){").append(" \n\t");
//hide the layers that contains all the info, the naming of the layers is lay1_, lay2_, lay3_ etc
s.append("if (document.all.tags('div')[i].id.substr(0, 4) == 'info'){").append(" \n\t");
s.append("document.all.tags('div')[i].style.visibility = 'hidden'");
s.append("}").append("\n\t");
s.append("}").append("\n\t");
s.append("for(i=1;i<document.all.tags('div').length;i++){").append(" \n\t");
//s.append("alert(document.all.tags('div').length)").append(" \n\t");
//s.append("if (document.all.tags('div')[i].id.substr(0, 4) == 'info'){").append(" \n\t");
//s.append("alert('info' + cases + '_' + i)").append(" \n\t");
//s.append("showlayer = eval('info' + cases + '_' + i + '.id');").append(" \n\t");
// s.append("if (showlayer){ ").append(" \n\t");
// s.append("document.all(showlayer).style.visibility = 'hidden';").append(" \n\t");
// s.append("}").append("\n\t");
// s.append("}").append("\n\t");
s.append("if (document.all.tags('div')[i].id.substr(0, 3) == 'lay'){").append(" \n\t");
//s.append("if (document.all.tags('div')[i].id.substr(document.all.tags('div')[i].id.length-1, 1) == '2' || document.all.tags('div')[i].id.substr(document.all.tags('div')[i].id.length-1, 1) == '3'){ ").append(" \n\t");
s.append("if (i <= 3){").append(" \n\t");
s.append("if (level == 1){").append(" \n\t");
s.append("showLayer = eval('lay' + cases + '_' + i + '.id');").append(" \n\t");
s.append("layer3 = eval('lay' + cases + '_' + 3 + '.id');").append(" \n\t");
s.append("layer3 = findObj(layer3);").append(" \n\t");
s.append("layer2 = eval('lay' + cases + '_' + 2 + '.id');").append(" \n\t");
s.append("layer2 = findObj(layer2);").append(" \n\t");
s.append("if (layer2.style.visibility == 'visible'){").append(" \n\t");
s.append("layer3.style.visibility = 'hidden';").append(" \n\t");
s.append("layer3.style.position = 'absolute';").append(" \n\t");
s.append("layer3.style.height = '0';").append(" \n\t");
s.append("}else {").append("\n\t").append(" \n\t");
s.append("layer3.style.position = 'relative';").append(" \n\t");
s.append("layer3.style.height = '100';").append(" \n\t");
s.append("}").append("\n\t");
s.append("var showDiv = findObj(showLayer);").append(" \n\t");
s.append("if (showDiv){ ").append(" \n\t");
s.append("if (showDiv.style.visibility == 'hidden') {").append(" \n\t");
s.append("showDiv.style.visibility = 'visible';").append(" \n\t");
s.append("}else {").append("\n\t").append(" \n\t");
s.append("showDiv.style.visibility = 'hidden';").append(" \n\t");
s.append("showDiv.style.height = '0';").append(" \n\t");
s.append("}").append("\n\t");
s.append("}").append("\n\t");
s.append("return false;").append("\n\t");
s.append("}").append("\n\t");
s.append("else if (level == 2){").append("\n\t");
//s.append("showLayer = eval('lay' + cases + '_' + 3 + '.id');").append(" \n\t");
s.append("layer3 = eval('lay' + cases + '_' + 3 + '.id');").append(" \n\t");
s.append("layer3 = findObj(layer3);").append(" \n\t");
s.append("if (layer3.style.visibility == 'visible'){").append(" \n\t");
s.append("layer3.style.visibility = 'hidden';").append(" \n\t");
s.append("layer3.style.position = 'absolute';").append(" \n\t");
//s.append("layer3.style.height = '0';").append(" \n\t");
s.append("}else {").append("\n\t").append(" \n\t");
s.append("layer3.style.position = 'relative';").append(" \n\t");
s.append("layer3.style.visibility = 'visible';").append(" \n\t");
//s.append("layer3.style.height = '100';").append(" \n\t");
s.append("}").append("\n\t");
/*
s.append("var showDiv = findObj(showLayer);").append(" \n\t");
s.append("if (showDiv){ ").append(" \n\t");
s.append("if (showDiv.style.visibility == 'hidden') {").append(" \n\t");
s.append("showDiv.style.visibility = 'visible';").append(" \n\t");
s.append("showDiv.style.height = '100';").append(" \n\t");
s.append("}else {").append("\n\t").append(" \n\t");
s.append("showDiv.style.visibility = 'hidden';").append(" \n\t");
s.append("showDiv.style.height = '0';").append(" \n\t");
s.append("}").append("\n\t");
s.append("}").append("\n\t");
*/
s.append("return false;").append("\n\t");
s.append("}").append("\n\t");
s.append("else if (level == 3){").append("\n\t");
s.append("showLayer = eval('lay' + cases + '_' + 3 + '.id');").append(" \n\t");
s.append("var showDiv = findObj(showLayer);").append(" \n\t");
s.append("if (showDiv){ ").append(" \n\t");
s.append("alert(showDiv.id);").append(" \n\t");
s.append("if (showDiv.style.visibility == 'hidden') {").append(" \n\t");
s.append("showDiv.style.visibility = 'visible';").append(" \n\t");
s.append("}else {").append("\n\t").append(" \n\t");
s.append("showDiv.style.visibility = 'hidden';").append(" \n\t");
//s.append("showDiv.style.height = '0';").append(" \n\t");
s.append("}").append("\n\t");
s.append("}").append("\n\t");
s.append("return false;").append("\n\t");
s.append("}").append("\n\t");
s.append("}").append("\n\t");
s.append("}").append("\n\t");
s.append("}").append("\n\t");
s.append("}").append("\n\t");
s.append("return false;").append(" \n\t");
s.append("}").append("\n\t\t\t");
//s.append("}").append("\n\t"); //end of else, not ie
return s.toString();
}
private String setRowColorScript() {
StringBuffer s = new StringBuffer();
s.append("function setRowColor(obj){").append(" \n\t");
s.append("elementBase = obj.id.substring(0, 5);").append(" \n\t");
s.append("elementEnd = obj.id.substr(3, 3);").append(" \n\t");
s.append("if (elementBase.indexOf('_') <= 0)").append(" \n\t"); //if inf10 and higher
s.append("elementBase = elementBase + '_';").append(" \n\t");
s.append("for(i=1;i<document.all.tags('div').length;i++){").append(" \n\t");
//hide the layers that contains all the info, the naming of the layers is lay1_, lay2_, lay3_ etc
s.append("if (document.all.tags('div')[i].id.substr(0, 4) == 'info'){").append(" \n\t");
s.append("document.all.tags('div')[i].style.visibility = 'hidden'");
s.append("}").append("\n\t");
s.append("document.all.tags('div')[i].style.backgroundColor = '#ffffff';");
s.append("}").append("\n\t");
//s.append("for (i = 1; i <= 1; i++){").append(" \n\t");
//s.append("elementName = eval(elementBase + i);").append(" \n\t");
s.append("document.getElementById(obj.id).style.backgroundColor = '#CCCCCC';").append(" \n\t");
//s.append("}").append("\n\t");
s.append("showlayer = eval('info' + elementEnd + '.id');").append(" \n\t");
s.append("document.all(showlayer).style.visibility = 'visible';").append(" \n\t");
s.append("}").append("\n\t\t\t");
return s.toString();
}
}