
function layOutPage()
{
    var events =  constructEvents();
    var ob = null;
    for(var i = 0; i < events.length; i++)
    {
        ob = document.getElementById(getEventId(i));
        ob.innerHTML = events[i].toHtml();
    }  
    
   // TODO make this work!
    //doLastYearEvents();
}

function doLastYearEvents()
{
    
   // getElementsById(EVENT_DIM_ID_AND_STYLE);
   // alert("doLastYearEvents() elems.length ") + elems.length;
    for(var i = 1; i < 11; i++)
    {
    
        var str = EVENT_DIM_ID_AND_STYLE + i;
        if(!isNullOrNotDefined(document.getElementById(str)))
        {
            return str;        
        }    
    }

}

function getElementsById(idStr)
{
   // alert("getElementsById idStr " + idStr);
    var ret = new Array();
    var indx = -1;
    // while(!isNullOrNotDefined(document.getElementById(EVENT_DIM_ID_AND_STYLE)))
    if
    (
        (document.getElementById(EVENT_DIM_ID_AND_STYLE) != null) && 
        (document.getElementById(EVENT_DIM_ID_AND_STYLE) != undefined)
    )
    {
        indx += 1;
        //alert("indx" + indx);
        ret[indx] = document.getElementById(EVENT_DIM_ID_AND_STYLE);
    }
    alert("getElementsById ret.length " + ret.length);
    for(var i = 0; i < ret.length; i++)
    {
        var titleNode = ret[i];
        titleNode.style = EVENT_DIM_ID_AND_STYLE;
    }  
    
   // return ret;
}

function isNullOrNotDefined(input)
{
   // alert("isNullOrNotDefined input " + input);
    if(input == null) return true;
    if(input == undefined) return true;
    return false;
}

function wrapInDiv(theClass, content)
{

    var str = "<div align=\"center\" class=\"";
    str += theClass;
    str += "\">";
    str += content;
    str += "</div>";
    return str;

}

function wrapInDivWithId(theClass, content, theId)
{

    var str = "<div align=\"center\" class=\"";
    str += theClass;
    str += "\" ";
    str += "id =\"";
    str += theId;
    str += "\">";
    str += content;
    str += "</div>";
    return str;

}

function isLastYear(dateStr)
{
    var thisYear = new Date().getFullYear();
    //alert("thisYear " + thisYear);
    if(getYearFromDateString(dateStr) < thisYear)
    {
        return true;
    
    }
   return false;
}

function getYearFromDateString(dateStr)
{
    var x = dateStr.lastIndexOf("200");
    var year = dateStr.substring(x, dateStr.length);
    //alert("year " + year);
    return parseInt(year);

}

function getNextEventDimId()
{
    
    for(var i = 1; i < 11; i++)
    {
    
        var str = EVENT_DIM_ID_AND_STYLE + i;
        if(isNullOrNotDefined(document.getElementById(str)))
        {
            return str;        
        }    
    }
}


function _toHtml()
{    

    var strurl = "";
    if(this.addHref())
    {
      strurl += "<a href=\"";        
    }

    strurl += this.url;
    var classNamePostFix = "";
    var dimmit = isLastYear(this.date);

    if(dimmit)
    {
        classNamePostFix = "Dim";
    }
    var eventTitleStr = "eventTitle" + classNamePostFix;
   // alert("eventTitleStr " + eventTitleStr);
    var str = "";

    if(!isEmptyString(this.title))
    {
        
        if(this.addHref())
        {
            strurl += "\" target=\"_blank\" class=\"";
            strurl += eventTitleStr;
            strurl += "\">";
            strurl += this.title;
            strurl += "</a>";
        
        } else
        {
            strurl += this.title;    
        }
        
        if(dimmit)
        {
            str = wrapInDivWithId(eventTitleStr, strurl, getNextEventDimId());
        } else
        {
            str = wrapInDiv(eventTitleStr, strurl);
        
        }
        
        if(!isEmptyString(this.galleryName))
         {
                str += wrapInDiv("galleryName" + classNamePostFix, this.galleryName);
         }        
    

    } else // there better be a galleryName
    {
        
        if(this.addHref())
        {
            strurl += "\" target=\"_blank\" class=\"";
            strurl += eventTitleStr;
            strurl += "\">";
            strurl += this.galleryName;
            strurl += "</a>";
        
        } else
        {
            strurl += this.galleryName;   
        }
        
        if(dimmit)
        {
            str = wrapInDivWithId(eventTitleStr, strurl, getNextEventDimId());
        } else
        {
            str = wrapInDiv(eventTitleStr, strurl);
        
        }    
    }
    
    if(!isEmptyString(this.secondLine))
    {
        str += wrapInDiv("eventSecondLine" + classNamePostFix, this.secondLine);
    }    

    if(!isEmptyString(this.date))
    {
        str += wrapInDiv("eventDate" + classNamePostFix, this.date);  
    }  
    if(!isEmptyString(this.address))
    {
        str += wrapInDiv("eventAddress" + classNamePostFix, this.address);  
    }   
    return str;
}

function _report()
{
    var str = this.title;
    var sep = ": ";
    str += "\n";
    str += "galleryName";
    str += sep;
    str += this.galleryName;
    str += "\n";
    str += "address";
    str += sep;
    str += this.address;
    str += "\n";
    str += "date";
    str += sep;
    str += this.date;
    str += "\n";
    str += "url";
    str += sep;
    str += this.url;

    alert(str);
}

function _addHref()
{
 if(isEmptyString(this.url)) return false;
 return true
}



function getEventId(indx)
{
    return BASE_EVENT_ID + (indx + 1);
}

function isEmptyString(str)
{
    if(str == null) return true;
     if(str == undefined) return true;
    if(str == "") return true;
    return false;   
}


function testPressArticle()
{   
    var pic = new picture("500", "500", "Elegance 1", "01", "Elegance");
    pic.report();
}

// props constructor
function event(title, date, galleryName, address, url)
{
	// props
	this.title = title;
	this.galleryName = galleryName;
	this.address = address;
	this.date = date;
	this.url = url;
	this.secondLine = "";
	
	//functions
	this.report = _report;
	this.toHtml =  _toHtml;
	this.addHref =  _addHref;

}

