/******************************************************
 * Name: Envelop Cards Script
 * Version: 0.1
 * Date: October 13th, 2007
 * Author: Envelop Cards, Inc.
 * Copyright 2006-2010.  All rights reserved.
 ******************************************************/

var cachedate = "20100707";

function roundCorners()
{
	var rounds = new Array();

	var divs = document.getElementsByTagName("div");
	for(var i = 0; i < divs.length; i++)
	{
		if(divs[i].className.indexOf("rounded") >= 0)
		{
			rounds.push(divs[i]);
		}
	}

	var isIE = !!window.ActiveXObject;

	var html = "";
	
	for(var i = 0; i < rounds.length; i++)
	{
		if(isIE)
		{
			rounds[i].style.border = "1px solid #aaa";
			continue;
		}


		var className = rounds[i].className.replace("rounded", "");

		html = "";
		html += "<b class=\"b1\"></b>";
		html += "<b class=\"b2\"></b>";
		html += "<b class=\"b3\"></b>";
		html += "<b class=\"b4\"></b>";
		html += "<div class=\"" + className + "\">";
		html += rounds[i].innerHTML;
		html += "</div>"
		html += "<b class=\"b4\"></b>";
		html += "<b class=\"b3\"></b>";
		html += "<b class=\"b2\"></b>";
		html += "<b class=\"b1\"></b>";

		rounds[i].className = "";
		rounds[i].innerHTML = html;
	}
}
function setupNav()
{
	var nav = document.getElementById("nav");
	if(nav)
	{
		var links = nav.getElementsByTagName("a");
		for(var i = 0; i < links.length; i++)
		{
			links[i].className = "";
		}

		switch(document.body.className)
		{
			case "cards":
				document.getElementById("nav_cards").className = "selected";
				break;
			case "invitations":
				document.getElementById("nav_invitations").className = "selected";
				break;
			case "classes":
				document.getElementById("nav_classes").className = "selected";
				break;
		}
	}
}
function setupThumbs()
{
	var links = document.getElementsByTagName("a");
	for(var i = 0; i < links.length; i++)
	{
		if(links[i].className == "thumb")
		{
			//links[i].onmouseover = function() { this.getElementsByTagName("img")[0].className = "hover"; }
			//links[i].onmouseout = function() { this.getElementsByTagName("img")[0].className = ""; }
			links[i].onmouseover = function() { this.className = "thumb hover"; }
			links[i].onmouseout = function() { this.className = "thumb"; }
		}
	}
}

Date.prototype.toString = displayDate;
function displayDate()
{
    var days = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];
    var months = ["January","February","March","April","May","June","July","August","September","October","November","December"];

    var string = days[this.getDay()] + ", ";
    string += months[this.getMonth()] + " ";
    string += this.getDate();

    switch(this.getDate())
    {
        case 1:
        case 21:
        case 31:
            string += "st, ";
            break;
        case 2:
        case 22:
            string += "nd, ";
            break;
        case 3:
        case 23:
            string += "rd, ";
            break;
        default:
            string += "th, ";
            break;
    }

    string += this.getFullYear();

    return string;
}
Date.prototype.toIDString = getIDStringFromDate;
function getIDStringFromDate()
{
	var year = this.getFullYear();
	var month = this.getMonth() + 1;
	var day = this.getDate();

	if(month < 10)
	{
		month = "0" + month;
	}
	if(day < 10)
	{
		day = "0" + day;
	}

	return year + "" + month + "" + day;
}
Date.prototype.DayName = getDayNameFromDate;
function getDayNameFromDate()
{
    var days = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];
    return days[this.getDay()];
}
Date.prototype.MonthName = getMonthNameFromDate;
function getMonthNameFromDate()
{
    var months = ["January","February","March","April","May","June","July","August","September","October","November","December"];
    return months[this.getMonth()];
}
function getDateFromID(id)
{
    var year = id.substring(0,4);
    var month = id.substring(4,6);
    var day = id.substring(6,8);

    var date = new Date();
    date.setYear(year);
    date.setDate(day);
    date.setMonth(month-1);

    return date;
}


var classes = new Array();
function LoadAllClassData(response)
{
    // For running without a web-server...
    //var xmlContent = document.getElementById("xml");
    //
    //xmlContent.innerHTML = response.text;

    // For running with a web-server...
    var xmlContent = response.XML;

    var _classes = xmlContent.getElementsByTagName("class");
    for(var i = 0; i < _classes.length; i++)
    {
	var _class = BuildClassDataFromXML(_classes[i]);
	classes.push(_class);
    }
}


function BuildClassDataFromXML(xmlNode)
{
	var dateid = xmlNode.getAttribute("date");
	var date = getDateFromID(dateid);

	var title = xmlNode.getElementsByTagName("title")[0].firstChild.nodeValue;
	title = (title) ? title : "";

	var description = xmlNode.getElementsByTagName("description")[0].firstChild.nodeValue;
	description = (description) ? description : "";

	var _image = xmlNode.getElementsByTagName("image")[0];
	var image, thumb;
	if(_image.getAttribute("file") != "")
	{
		image = "images/classes/" + _image.getAttribute("file") + ".jpg";
		thumb = "images/classes/thumbs/" + _image.getAttribute("file") + "_thumb.jpg";
	}
	else
	{
		image = "#";
		thumb = "images/na.gif";
	}

	var price = xmlNode.getElementsByTagName("price")[0].firstChild.nodeValue;
	price = (price) ? price : "";

	var _times = xmlNode.getElementsByTagName("time");
	var times = new Array();
	for(var i = 0; i < _times.length; i++)
	{
		times.push(_times[i].firstChild.nodeValue);
	}
	
	var location = xmlNode.getElementsByTagName("location")[0].firstChild.nodeValue;
	location = (location) ? location : "";

	var skill = xmlNode.getElementsByTagName("skill")[0].firstChild.nodeValue;
	skill = (skill) ? skill : "";

	var ages = xmlNode.getElementsByTagName("ages")[0].firstChild.nodeValue;
	ages = (ages) ? ages : "";

	var register = xmlNode.getElementsByTagName("registerlink");
	var registerlink = "";
	var registersite = "";
	if(register && register.length > 0 && register[0].firstChild)
	{
		register = register[0];		
		registerlink = register.firstChild.nodeValue;
		registersite = register.getAttribute("site");
	}

	var _class = 
	{
		"date" : date,
		"title" : title,
		"image" : image,
		"thumb" : thumb,
		"description" : description,
		"price" : price,
		"times" : times,
		"location": location,
		"skill" : skill,
		"ages" : ages,
		"registerlink" : registerlink,
		"registersite" : registersite
	}

	return _class;
}

function displayClass(_class, _parentNode)
{
	html = "";
	html += "<div class=\"cardClass rounded\">";

	html += "<a class=\"thumb\" ";
	if(_class.image != "#")
	{
		html += "href=\"" + _class.image + "\" target=\"photobox\"";
	}
	html += ">";
	html += "<img src=\"" + _class.thumb + "\" />";
	html += "</a>";

	html += "<h3>" + _class.title + "</h3>";

	html += "<div class=\"details\">";
	html += "<div><b>Date:</b> " + _class.date.toString() + "</div>";
	html += "<div><b>Place:</b> " + _class.location + "</div>";
	html += "<div><b>Time:</b> "
	for(var i = 0; i < _class.times.length; i++)
	{
		if(i > 0)
		{
			html += " and ";
		}
		html += _class.times[i];
	}
	html += "</div>";
	html += "<div><b>Price:</b> $" + _class.price + "</div>";
	//html += "<div><b>Skill Level:</b> " + _class.skill + "</div>";
	html += "<div><b>Ages:</b> " + _class.ages + "</div>";
	html += "</div>";

	html += "<div class=\"body\">" + _class.description + "</div>";

	if(_class.registerlink != "")
	{
		html += "<div class=\"register\">";
		html += "<a href=\"" + _class.registerlink + "\">";
		html += "Register for this class";
		if(_class.registersite != "")
		{
			html += " at " + _class.registersite;
		}
		html += "</a>";
		html += "</div>";
	}

	html += "</div>";
	html += "<br />";

	_parentNode = (_parentNode) ? _parentNode : document.body;

	_parentNode.innerHTML += html;
}

function buildFooter()
{
	var footer = document.getElementById("footer");
	if(footer)
	{
		var footertext = "";

		footertext += "For orders, comments, or any other inquiry, please contact us at envelopcards";
		footertext += "@";
		footertext += "gmail.com.";
	
		footertext += "<br /><br />";

		footertext += "Envelop Cards, Inc. | ";
		footertext += "Portland, OR | ";
		footertext += "copyright &copy;" + (new Date()).getFullYear();

		footer.innerHTML = footertext;
	}
}

var QueryString = [];
function ParseQueryString()
{
	var search = window.location.search;

	if(search.indexOf('?') == 0)
	{
	    search = search.substr(1);
	}

	var pairs = search.split('&');
	var pair, key, value;
	for(var i = 0; i < pairs.length; i++)
	{
		key = "", value = "";

		pair = pairs[i].split('=');
		key = pair[0];
		if(pair.length > 1)
		{
			value = pair[1];
		}
	
		QueryString[key] = value;
	}
}


var cards = new Array();
function LoadAllCardData(response)
{
    var xmlContent = response.XML;

    var _cards = xmlContent.getElementsByTagName("card");
    for(var i = 0; i < _cards.length; i++)
    {
	var _card = BuildCardDataFromXML(_cards[i]);
	cards.push(_card);
    }
}
function BuildCardDataFromXML(xmlNode)
{
	var cardid = xmlNode.getAttribute("id");
	var category = xmlNode.getAttribute("category");
	var price = xmlNode.getAttribute("price");
	
	if(price && !isNaN(price))
	{
		price = Number(price).toFixed(2);
	}
	else
	{
		price = null;
	}

	var _card = 
	{
		"thumb" : "images/cards/thumbs/" + cardid + "_thumb.jpg",
		"image" : "images/cards/" + cardid + ".jpg",
		"id" : cardid,
		"category" : category,
		"price" : price
	}

	return _card;
}
function displayCard(_card, _parentNode)
{
	var link = document.createElement("a");
	link.className = "thumb";
	link.href = _card.image;
	link.target = "photobox";
	link.rel = _card.category;
	link.title = _card.id;

	var image = document.createElement("img");
	image.src = _card.thumb;
	image.alt = _card.id;

	var p = document.createElement("p");
	p.innerHTML = _card.id + "<br />";
	p.innerHTML += (_card.price != null) ? "($" + _card.price + ")" : "&nbsp;";

	link.appendChild(image);
	link.appendChild(p);

	_parentNode = (_parentNode) ? _parentNode : document.body;
	_parentNode.appendChild(link);
}

function init()
{
	roundCorners();
	setupNav();
	buildFooter();
	ParseQueryString();
}

window.onload = init;



