
function doSearch(myform)
{
	var query = "http://www.google.com/search?hl=en&q=site:www.ceilingshowerrod.com+";
	query += myform.search.value;
	query += "&aq=f";
	_gaq.push(['_trackEvent', 'Search', 'Do Search', myform.search.value]);
    self.location = query;
    return false;
}

function trackPDF(anchor)
{
    var doc = anchor.href;
    doc = unescape( doc.split("/").pop() );
	_gaq.push(['_trackEvent', 'PDF', 'View', doc]);
}

function trackArticle(name)
{
	_gaq.push(['_trackEvent', 'Article', 'View', name]);
}

var youTubePlayerLoggers = {}; //http://groups.google.com/group/youtube-api-gdata/browse_thread/thread/e8a8c85b801b9e25
var totalvideos = 0;
var videoid = new Array();
var videoplayed = new Array();

function onYouTubePlayerReady(id)
{
	id = unescape(id);
	var sid = "v" + id.replace("-","");
	var video = document.getElementById(id);

	//State constants
	var unstarted = -1;
	var ended 	  = 0;
	var playing   = 1;
	var paused    = 2;
	var buffering = 3;
	var cued      = 5; //Page loaded, video has not been played yet

	//Video array default values being set for first time
	videoid[totalvideos] = id;
	videoplayed[totalvideos] = false;

	totalvideos = totalvideos + 1;

	youTubePlayerLoggers[sid] = function(state)
	{
		//document.getElementById("state").innerHTML="youTubePlayerLoggers[id]"; //FOR TESTING
		var el = document.getElementById(id);
		var url = "http://www.youtube.com/watch?v=" + getYoutubeVideoID(el.getVideoUrl());
		var videoname = document.getElementById( getYoutubeVideoID(el.getVideoUrl()) ).name;
		var arrayindex = findVideoID(id);
		var currenttime = Math.ceil(el.getCurrentTime());

		if (state == playing)
		{
			if (videoplayed[arrayindex] == false)
			{
				//document.getElementById("state").innerHTML = "URL = "+url+"<br />State = "+state+"<br />Value = unique_play_per_page"; //FOR TESTING
				_gaq.push(['_trackEvent', 'Video', 'Unique Play', videoname]);
			}

			//document.getElementById("state").innerHTML = "URL = "+url+"<br />State = "+state+"<br />Value = play"; //FOR TESTING
			_gaq.push(['_trackEvent', 'Video', 'Play', videoname]);

			//Flag video as having been played once
			videoplayed[arrayindex] = true;
		}

		if (state == ended)
		{
			//document.getElementById("duration").innerHTML = "Duration = "+currenttime; //FOR TESTING
			//document.getElementById("state").innerHTML = "URL = "+url+"<br />State = "+state+"<br />Value = ended"; //FOR TESTING
			_gaq.push(['_trackEvent', 'Video', 'Ended', videoname, currenttime]);
		}

		if (state == paused)
		{
			//document.getElementById("duration").innerHTML = "Duration = "+currenttime; //FOR TESTING
			//document.getElementById("state").innerHTML = "URL = "+url+"<br />State = "+state+"<br />Value = paused"; //FOR TESTING
			_gaq.push(['_trackEvent', 'Video', 'Paused', videoname, currenttime]);
		}
	};

	video.addEventListener("onStateChange", "youTubePlayerLoggers."+sid);
	video.addEventListener('onError', 'onPlayerError');
}

function onPlayerError(errorCode)
{
	//alert(errorCode);
}

function getYoutubeVideoID(url)
{
	var urlArr = url.split("v=");
	var urlArr2 = urlArr[1].split("&");
	return urlArr2[0];
}

function findVideoID(what)
{
	for (var i=0, len=totalvideos; i<len; ++i)
	{
		if(videoid[i].indexOf(what) >= 0) return i;
	}
}


var preloadimagenames = new Array();
function preloadImages() {
	for (x=0; x < preloadImages.arguments.length; x++) {
		preloadimagenames[x] = preloadImages.arguments[x];
	}
}
function preloadImage(src) {
	var idx = preloadimagenames.length;
	preloadimagenames[idx] = src;
}

//Ex: preloadImages("image1.gif","image2.gif","image3.gif");
var myimages = new Array();
function preloadImages4Real() {
	for (x=0; x < preloadimagenames.length; x++) {
		myimages[x] = new Image();
		myimages[x].src = preloadimagenames[x];
	}
}
/*
function preloadImages4Real() {
	for (x=0; x < preloadImages.arguments.length; x++) {
		myimages[x] = new Image();
		myimages[x].src = preloadImages.arguments[x];
	}
}
function preloadImage4Real(src) {
	var idx = myimages.length;
	myimages[idx] = new Image();
	myimages[idx].src = src;
}
*/

function calcPrice(throw_alert) {
	var price = parseFloat(document.cart.calcprice.value);
	var perfoot = parseFloat(document.cart.calcperfoot.value);
	if (isNaN(price)) { price = 0; }
	if (isNaN(perfoot)) { perfoot = 0; }
	var uwidth = document.getElementById('userwidth');
	var lengthA = 0;
	var lengthB = 0;
	var lengthC = 0;
	var ulengthA = document.getElementById('userlengthA');
	if (ulengthA != null) {
		lengthA = parseInt(ulengthA.value,10);
		lengthA = isNaN(lengthA) ? 0 : lengthA;
		ulengthA.className = (lengthA == 0) ? "input_bad" : "input_good";
	}
	var ulengthB = document.getElementById('userlengthB');
	if (ulengthB != null) {
		lengthB = parseInt(ulengthB.value,10);
		lengthB = isNaN(lengthB) ? 0 : lengthB;
		ulengthB.className = (lengthB < 1) ? "input_bad" : "input_good";
		// Oval: B must be >= 29
		if (productname.indexOf("oval") >= 0) {
			ulengthB.className = (lengthB < 29) ? "input_bad" : "input_good";
		}
		// U-trax: B must be >= 29
		if (productname.indexOf("u-shaped") >= 0) {
			ulengthB.className = (lengthB < 29) ? "input_bad" : "input_good";
		}
		// Neo-angle: B must be >= 15
		if (productname.indexOf("neo-angle") >= 0) {
			ulengthB.className = (lengthB < 15) ? "input_bad" : "input_good";
		}
	}
	var ulengthC = document.getElementById('userlengthC');
	if (ulengthC != null) {
		lengthC = parseInt(ulengthC.value,10);
		lengthC = isNaN(lengthC) ? 0 : lengthC;
		ulengthC.className = (lengthC < 1) ? "input_bad" : "input_good";
	}
	var length = lengthA + lengthB + lengthC;
	
	if (productname.indexOf("oval") >= 0) {
	    // if oval, double the A x B
		length = length * 2;
	}

	if (uwidth == null) {
		// this is trax , per-foot
		if (throw_alert == 1) {
			if ((ulengthA != null) && (lengthA < 1)) {
				alert("Please specify Length A in Inches!");
				return false;
			}
			if ((ulengthB != null) && (lengthB < 1)) {
				alert("Please specify Length B in Inches!");
				return false;
			}
			if ((ulengthC != null) && (lengthC < 1)) {
				alert("Please specify Length C in Inches!");
				return false;
			}
			// Oval: B must be >= 29
			if ((productname.indexOf("oval") >= 0) && (ulengthB != null) && (lengthB < 29)) {
				alert("Length B must be >= 29 Inches for " + productname + "!");
				return false;
			}
			// U-trax: B must be >= 29
			if ((productname.indexOf("u-shaped") >= 0) && (ulengthB != null) && (lengthB < 29)) {
				alert("Length B must be >= 29 Inches for " + productname + "!");
				return false;
			}
			// Neo-angle: B must be >= 15
			if ((productname.indexOf("neo-angle") >= 0) && (ulengthB != null) && (lengthB < 15)) {
				alert("Length B must be >= 15 Inches for " + productname + "!");
				return false;
			}
		}

		// ceil(length/12) rounds up to nearest foot
		price += (perfoot * Math.ceil(length / 12));
	} else {
		// this is custom curtain ...
		var trax_curtain_lookup = GetTraxCurtainArray();
		var lookup_price = trax_curtain_lookup[uwidth.selectedIndex][2];
		if (throw_alert == 1) {
			if (lookup_price < 1) {
				alert("Please specify Curtain Width!");
				return false;
			}
		}
		price = lookup_price;
	}

	var pricestr = price.toString();
	if (price != Math.floor(price)) {
		pricestr = price.toFixed(2);
	}
	document.cart.price.value = pricestr;
	document.getElementById('unitprice').innerHTML = "$" + pricestr;

	// update totalprice
	var totalprice = document.getElementById('totalprice');
	if (totalprice != null) {
		var qty = document.getElementById('qty');
		var quantity = (isNaN(qty.value)) ? 0 : parseFloat(qty.value);
		price *= quantity;
		totalprice.innerHTML = "$" + price.toString();
	}

	_gaq.push(['_trackEvent', 'Price', 'Calc', pricestr]);
	return true;
}

function submitCart()
{
	//var newLine = "<br />\r\n   ";
	var newLine = "  ";
	var cts = "Click to Specify";

	var price_is_valid = calcPrice(1);
	if (!price_is_valid) {
		return false;
	}

	var finish = document.getElementById('userfinish');
	if (finish != null) {
		if (finish.options[finish.selectedIndex].value == cts) {
			document.getElementById('userfinish').className = "input_bad";
			alert("Please specify Finish!");
			return false;
		}
		document.getElementById('userfinish').className = "input_good";
		document.getElementById('finish').value = newLine + "Finish = " + finish.options[finish.selectedIndex].value;
	}

	// length validity is covered in calcPrice()
	var lengthA = document.getElementById('userlengthA');
	if (lengthA != null) { document.getElementById('lengthA').value = newLine + "Length A = " + lengthA.value + "\""; }
	var lengthB = document.getElementById('userlengthB');
	if (lengthB != null) { document.getElementById('lengthB').value = newLine + "Length B = " + lengthB.value + "\""; }
	var lengthC = document.getElementById('userlengthC');
	if (lengthC != null) { document.getElementById('lengthC').value = newLine + "Length C = " + lengthC.value + "\""; }

	var corner = document.getElementById('usercorner');
	if (corner != null) {
		if (corner.options[corner.selectedIndex].value == cts) {
			document.getElementById('usercorner').className = "input_bad";
			alert("Please specify Corner!");
			return false;
		}
		document.getElementById('usercorner').className = "input_good";
		document.getElementById('corner').value = newLine + "Corner = " + corner.options[corner.selectedIndex].value;
	}

	var color = document.getElementById('usercolor');
	if (color != null) {
		if (color.options[color.selectedIndex].value == cts) {
			document.getElementById('usercolor').className = "input_bad";
			alert("Please specify Color!");
			return false;
		}
		document.getElementById('usercolor').className = "input_good";
		document.getElementById('color').value = newLine + "Color = " + color.options[color.selectedIndex].value;
	}

	var tubshower = document.getElementById('usertubshower');
	if (tubshower != null) {
		if (tubshower.options[tubshower.selectedIndex].value == cts) {
			document.getElementById('usertubshower').className = "input_bad";
			alert("Please specify Tub / Shower!");
			return false;
		}
		document.getElementById('usertubshower').className = "input_good";
		document.getElementById('tubshower').value = newLine + "Tub/Shower = " + tubshower.options[tubshower.selectedIndex].value;
	}

	var traxlength = document.getElementById('usertraxlength');
	if (traxlength != null) {
		raw_height = parseInt(traxlength.value,10);
		raw_height = isNaN(raw_height) ? 0 : raw_height;
		if (raw_height < 1) {
			document.getElementById('traxlength').className = "input_bad";
			alert("Please specify TRAX Length!");
			return false;
		}
		document.getElementById('usertraxlength').className = "input_good";
		document.getElementById('traxlength').value = newLine + "TRAX Length = " + traxlength.value;
	}

	var width = document.getElementById('userwidth');
	if (width != null) {
		if (width.options[width.selectedIndex].value == cts) {
			document.getElementById('userwidth').className = "input_bad";
			alert("Please specify Curtain Width!");
			return false;
		}
		document.getElementById('userwidth').className = "input_good";
		document.getElementById('width').value = newLine + "Curtain Width = " + width.options[width.selectedIndex].value;
	}

	var height = document.getElementById('userheight');
	if (height != null) {
		raw_height = parseInt(height.value,10);
		raw_height = isNaN(raw_height) ? 0 : raw_height;
		if (raw_height < 1) {
			document.getElementById('userheight').className = "input_bad";
			alert("Please specify Height!");
			return false;
		}
		document.getElementById('userheight').className = "input_good";
		document.getElementById('height').value = newLine + "Ceiling Height = " + height.value;
	}

	var message = document.getElementById('usermessage');
	if (message != null) { document.getElementById('message').value = newLine + "Message = " + message.value; }
	
	document.cart.submit();
}

function areYouSure(text)
{
	var answer = confirm ("Are you use you want to " + text + "?");
	return answer;
}

function getInput(text, name)
{
	var input = prompt (text);
	if ((input != null) && (input != "")) {
		document.getElementById(name).value = input;
		return true;
	}
	return false;
}

function setFinish(name, source)
{
	var finish = document.getElementById('userfinish');
	finish.value = name;

	source = (typeof source == 'undefined') ? 'image' : source;
	if (source == 'image') {
		_gaq.push(['_trackEvent', 'Trax Finish', 'Image Click', name]);
	} else if (source == 'update') {
		_gaq.push(['_trackEvent', 'Trax Finish', 'Combo Box Select', name]);
	}
}

function updateFinish()
{
	var finish = document.getElementById('userfinish');
	if (finish != null) {
		setFinish( finish.options[finish.selectedIndex].value, 'update' );
	}
}

function setColor(name, source)
{
	var color = document.getElementById('usercolor');
	var curtain_image = "overview_meshcurtain.png";
	if (name == "Click to Specify") { return false; } // just to be safe
    // curtain liners:
	if (name == "Dynasty White") { curtain_image = "curtain_liner_white_dynasty"; }
	if (name == "Solid White") { curtain_image = "curtain_liner_white_solid"; }
	if (name == "White with Mesh") { curtain_image = "curtain_liner_white_mesh"; }
	if (name == "Parchment") { curtain_image = "curtain_liner_parchment"; }
	if (name == "Parchment with Mesh") { curtain_image = "curtain_liner_parchment_mesh"; }
	if (name == "Champagne") { curtain_image = "curtain_liner_champagne"; }
	if (name == "Vinyl White") { curtain_image = "curtain_liner_vinyl_white"; }
	if (name == "Vinyl Frosty") { curtain_image = "curtain_liner_vinyl_frosty"; }
	if (name == "Vinyl Beige") { curtain_image = "curtain_liner_vinyl_beige"; }
    // outer curtains:
	if (name == "Waffle White") { curtain_image = "outer_curtain_waffle_white"; }
	if (name == "Waffle Buttercream") { curtain_image = "outer_curtain_waffle_buttercream"; }
	if (name == "Nuevo White") { curtain_image = "outer_curtain_nuevo_white"; }
	if (name == "Nuevo Ivory") { curtain_image = "outer_curtain_nuevo_ivory"; }
	if (name == "Nuevo Dune") { curtain_image = "outer_curtain_nuevo_dune"; }
	if (name == "Nuevo Brown") { curtain_image = "outer_curtain_nuevo_brown"; }
	if (name == "Satein White") { curtain_image = "outer_curtain_satein_white"; }

	var small_image = "images/" + curtain_image + "_small.jpg";
	var large_image = "images/" + curtain_image + "_large.jpg";
	
	var image_box = document.getElementById('image_box');
	image_box.src = small_image;
	image_box.alt = name;
	image_box.title = name;
	color.value = name;

	var image_box_wrapper = document.getElementById('image_box_wrapper');
	// this is for fancybox ...
	if (image_box_wrapper != null) {
		preloadImage(large_image);
		image_box_wrapper.href = large_image;
		image_box_wrapper.alt = name;
		image_box_wrapper.title = name;
	}

	source = (typeof source == 'undefined') ? 'image' : source;
	if (source == 'image') {
		_gaq.push(['_trackEvent', 'Curtain Color', 'Image Click', name]);
	} else if (source == 'update') {
		_gaq.push(['_trackEvent', 'Curtain Color', 'Combo Box Select', name]);
	}
}

function updateColor()
{
	var color = document.getElementById('usercolor');
	if (color != null) {
		setColor( color.options[color.selectedIndex].value, 'update' );
	}
}

function defaultColor()
{
	var color = document.getElementById('usercolor');
	if (color != null) {
		if (color.options.length == 2) {
			setColor( color.options[1].value, 'default' );
			color.options[0] = null;
		}
	}
}

//          TRAX,  Curtain,         Price
// Must be in ascending order of TRAX Length
var curtain_liner_lookup = new Array();
curtain_liner_lookup[0] = [0,  'Click to Specify',        0];
curtain_liner_lookup[1] = [30,  '36" Custom ($70)',      70];
curtain_liner_lookup[2] = [42,  '48" Custom ($70)',      70];
curtain_liner_lookup[3] = [65,  '72" Standard ($60)',    60];
curtain_liner_lookup[4] = [74,  '84" Custom ($100)',    100];
curtain_liner_lookup[5] = [84,  '96" Custom ($100)',    100];
curtain_liner_lookup[6] = [98,  '108" Standard ($90)',   90];
curtain_liner_lookup[7] = [119, '132" Custom ($130)',   130];
curtain_liner_lookup[8] = [132, '144" Standard ($120)', 120];
curtain_liner_lookup[9] = [164, '180" Standard ($150)', 150];
curtain_liner_lookup[10] = [204, '216" Standard ($180)', 180];

var outer_curtain_lookup = new Array();
outer_curtain_lookup[0] = [0,  'Click to Specify',        0];
outer_curtain_lookup[1] = [30,  '36" Custom ($80)',      80];
outer_curtain_lookup[2] = [42,  '48" Custom ($80)',      80];
outer_curtain_lookup[3] = [65,  '72" Standard ($70)',    70];
outer_curtain_lookup[4] = [74,  '84" Custom ($110)',    110];
outer_curtain_lookup[5] = [84,  '96" Custom ($110)',    110];
outer_curtain_lookup[6] = [98,  '108" Standard ($100)',   100];
outer_curtain_lookup[7] = [119, '132" Custom ($150)',   150];
outer_curtain_lookup[8] = [132, '144" Standard ($140)', 140];
outer_curtain_lookup[9] = [164, '180" Standard ($170)', 170];
outer_curtain_lookup[10] = [204, '216" Standard ($200)', 200];

function GetTraxCurtainArray()
{
	var trax_curtain_lookup = Array();
	if (productname.indexOf("outer") >= 0) {
		trax_curtain_lookup = outer_curtain_lookup;
	} else {
		trax_curtain_lookup = curtain_liner_lookup;
	}
	return trax_curtain_lookup;
}

function TraxCurtainLookup()
{
	var usertraxlength = document.getElementById('usertraxlength');
	var userwidth = document.getElementById('userwidth');
	if (usertraxlength != null) {
		traxlength = parseInt(usertraxlength.value,10);
		traxlength = isNaN(traxlength) ? 0 : traxlength;

		var trax_curtain_lookup = GetTraxCurtainArray();
		var item_index = -1;
		for (var index = 0; index < trax_curtain_lookup.length; index++) {
			if (traxlength <= trax_curtain_lookup[index][0]) {
				item_index = index;
				break;
			}
		}

		// now to handle the actual combo box 'userwidth'

		for (var index = 0; index < trax_curtain_lookup.length; index++) {
			var item = userwidth.children[index];
			if (index < item_index) {
				item.className = 'not_recommended';
			} else if (index == item_index) {
				item.className = 'recommended';
				userwidth.selectedIndex = item_index;
			} else {
				item.className = '';
			}
		}

	}
		
}

function populateTraxCurtainLookup()
{
	var userwidth = document.getElementById('userwidth');
	if (userwidth != null) {
		var trax_curtain_lookup = GetTraxCurtainArray();
		for (var index = 0; index < trax_curtain_lookup.length; index++) {
			userwidth.options[index] = new Option(trax_curtain_lookup[index][1], trax_curtain_lookup[index][1], false, false);
		}
	}
}

// things to run on page load...
window.onload = function() {
	defaultColor();
	populateTraxCurtainLookup();
	preloadImages4Real();
}

// this is for fancybox ...
jQuery(document).ready(function($){
	var $anchors=$('a.create_image_box')
	$anchors.each(function(){
		$(this).fancybox({
				'opacity'		: true,
				'transitionIn'	: 'elastic',
				'transitionOut'	: 'none',
				'titlePosition'	: 'inside',
				'hideOnContentClick' : 'true',
				'onComplete'    : function(){
					_gaq.push(['_trackEvent', 'Image Box', 'Magnify', this.title]);
				}
			});
	})
    //$("a.create_image_box").fancybox();
})

