// javascript functions for officialgeri.com


// cookiecutter  ///////////////////////////////////////////////
/*
   name - name of the cookie
   value - value of the cookie
   [expires] - expiration date of the cookie
     (defaults to end of current session)
   [path] - path for which the cookie is valid
     (defaults to path of calling document)
   [domain] - domain for which the cookie is valid
     (defaults to domain of calling document)
   [secure] - Boolean value indicating if the cookie transmission requires
     a secure transmission
   * an argument defaults when it is assigned null as a placeholder
   * a null placeholder is not required for trailing omitted arguments
*/

function setCookie(name, value, expires, path, domain, secure) {
  rollByName ( 'head_img',gallery_image_full[value] )
  var curCookie = name + "=" + escape(value) +
      ((expires) ? "; expires=" + expires.toGMTString() : "") +
      ((path) ? "; path=" + path : "") +
      ((domain) ? "; domain=" + domain : "") +
      ((secure) ? "; secure" : "");
  document.cookie = curCookie;
}


/*
  name - name of the desired cookie
  return string containing value of specified cookie or null
  if cookie does not exist
*/

function getCookie(name) {
  var dc = document.cookie;
  var prefix = name + "=";
  var begin = dc.indexOf("; " + prefix);
  if (begin == -1) {
    begin = dc.indexOf(prefix);
    if (begin != 0) return null;
  } else
    begin += 2;
  var end = document.cookie.indexOf(";", begin);
  if (end == -1)
    end = dc.length;
  return unescape(dc.substring(begin + prefix.length, end));
}


/*
   name - name of the cookie
   [path] - path of the cookie (must be same as path used to create cookie)
   [domain] - domain of the cookie (must be same as domain used to
     create cookie)
   path and domain default if assigned null or omitted if no explicit
     argument proceeds
*/

function deleteCookie(name, path, domain) {
  if (getCookie(name)) {
    document.cookie = name + "=" +
    ((path) ? "; path=" + path : "") +
    ((domain) ? "; domain=" + domain : "") +
    "; expires=Thu, 01-Jan-70 00:00:01 GMT";
  }
}

// date - any instance of the Date object
// * hand all instances of the Date object to this function for "repairs"

function fixDate(date) {
  var base = new Date(0);
  var skew = base.getTime();
  if (skew > 0)
    date.setTime(date.getTime() - skew);
}


// cookiecutter  ///////////////////////////////////////////////

function roll(argThis,argState){
			aImg = argThis.firstChild.name
			switch(argState){
				case 0: aSrc = "img/nav_"+aImg+".gif";
					break;
				case 1: aSrc = "img/nav_"+aImg+"_o.gif";
					
					break;
				case 2: aSrc = "img/nav_"+aImg+"_o.gif";
					window.frames[0].src = this.href
					if (document.images) {
						titleSrc = "img/title_"+aImg+".gif"
						document.images['page_title'].src = titleSrc
					}
				break;
			}
			rollByName(aImg,aSrc)
		}

function rollImg(argThis,argState){
			aImg = argThis.firstChild.name
			switch(argState){
				case 0: aSrc = "img/"+aImg+".gif";
					break;
				case 1: aSrc = "img/"+aImg+"_o.gif";
					break;
			}
			if (document.images) {
				argThis.firstChild.src = aSrc
			}
		}

function rollByName (argImg,argSrc) {
	if (document.images) {
		document.images[argImg].src = argSrc
	}
}

// function to write out the geriwood section
function showGeriwood () {
	var gw_item = "";
	gw_item = bio_text[0];
	document.write(gw_item);
}
// function to extract latest news information from ECM
function showNews () {
	// make some space
	var news_item;
	var news_list = "";
	// find out how many we have
	var limit = news_id.length
	for ( var i=0; i<limit; i++) {
		news_item = makeNewsItem( news_from_date[i], news_title[i], news_teaser[i], news_id[i], news_category[i]);
		// add this item to the list
		news_list += news_item
	}	
	// render the list
	document.write(news_list);
}

function makeNewsItem (argDate,argTitle,argTeaser,argID,argCategory) {
	var output = "";
	if (argCategory.indexOf("News")!=-1)	{
		argCategory +=": " 
	} else {
		argCategory = "Event: "
	}
	// build the list item
	output += "<li>";
	output += "<p class='title'>"+argCategory+argTitle+" <span>"+argDate+"</span></p>";
	output += "<p class='text'>"+argTeaser+"</p>";
	output += "<p class='more'><a href=\"item.html?view=javascript&item="+argID+"\">read more</a></p><img src=\"./img/news_border.gif\" height=\"1px\" width=\"556\" alt=\"Border\">";
	output += "</li>";
	// spit it back out
	return output;
}

// function to extract live event diary information from ECM
function showEvents () {
	// make some space
	var item;
	var event_list = "";
	// find out how many we have
	var limit = diary_id.length
	for ( var i=0; i<limit; i++) {
		item = makeEventItem( diary_venue[i], diary_town[i], diary_show_date[i], diary_info[i], diary_id[i] );
		// add this item to the list
		event_list += item
	}	
	// render the list
	document.write(event_list);
}

function makeEventItem (argVenue,argTown,argDate,argInfo,argID) {
	var output = "";
	// build the list item
	output += "<li>";
	output += "<p class='date'>"+argDate+"</p>";
	output += argVenue;
	output += "<p class='city'>"+argTown+"</p>";
	output += "<p class='notes'>"+argInfo+"</p>";
	output += "</li>";
	// spit it back out
	return output;
}