/* written by Jon Pearson */

var id = 'MyCoverme20';
var selectedColor = "";
var selectedSize = "";
var sizeInvalid = "0";

var inventory = new Array();
var borderStyle = '1px solid #666';
var selectedBorderStyle = '2px solid #0050b1';
var invalidSelectedBorderStyle = '2px dotted #0050b1';
var invalidBorderStyle = '1px dotted #666';
var invalidSizeBgColor = '#FF8080';
var sizeBgColor = '#BFBFBF';
var colors = new Array();
var scoop_sizes = new Array();
var sizes = new Array('0','1');

$(function() {
	var options = {
	    zoomWidth: 250,
	    zoomHeight: 250,
	    xOffset: 10,
	    showEffect:'show',
            hideEffect:'fadeout',
            fadeoutSpeed: 'slow',
	    yOffset: 0 };
	$(".jqzoom").jqzoom(options);
});

function refreshPage(url)
{
	url = url.replace(/#force-refresh/,"");
	window.location.href = url; 
}

function createCookie(name,value,days)
{
	var expires;
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		expires = "; expires="+date.toGMTString();
	}
	else
	{ 
		expires = "";
	}
	document.cookie = name+"="+value+expires+"; path=/";
}

function areCookiesEnabled()
{
	var cookieEnabled = (navigator.cookieEnabled) ? true : false;

	if (typeof navigator.cookieEnabled == "undefined" && !cookieEnabled)
	{ 
		document.cookie="testcookie";
		cookieEnabled = (document.cookie.indexOf("testcookie") != -1) ? true : false;
	}
	return (cookieEnabled);
}

function readCookie(name)
{
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for (var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ')
		{
			c = c.substring(1,c.length);
		}
		if (c.indexOf(nameEQ) == 0)
		{
			return c.substring(nameEQ.length,c.length);
		}
	}
	return null;
}

function eraseCookie(name)
{
	createCookie(name,"",-1);
	var regex = /_num_items/g;
	if(regex.exec(name) != null)
	{
		document.getElementById('NUMITEMS').innerHTML = "0 items";
	}
}

function showPopup(id)
{
	document.getElementById('blanket').style.visibility = 'visible';
	document.getElementById(id).style.visibility = 'visible';
	self.scroll(0,0);
}

function enableAddToCart()
{
	document.getElementById('addToCartButton').innerHTML = 'add to cart';
	document.getElementById('addToCartButton').style.backgroundColor = sizeBgColor;
}

function disableAddToCart()
{
	document.getElementById('addToCartButton').innerHTML = "out of stock";
	document.getElementById('addToCartButton').style.backgroundColor = invalidSizeBgColor;
}

function setFabricOptions(type, color, size)
{
	document.fabricForm.fabric.options.length=0;
	if(color == 'bright pink')
	{
		document.fabricForm.fabric.options[0] = new Option("cotton spandex", "cotton spandex", true, false);
	}
	else if(color == 'aqua' || color == 'lime' || color == 'coral' || color == 'navy' || color == 'red')
	{
		document.fabricForm.fabric.options[0] = new Option("polyester", "polyester", true, false);
	}
	else if(type == 'swimsuit')
	{
		document.fabricForm.fabric.options[0] = new Option("polyester spandex", "polyester spandex", true, false);
	}
	else if(type == 'straight' && (color == 'white' || color == 'black'))/* && size == 'regular')*/
	{
                document.fabricForm.fabric.options[0] = new Option("cotton", "cotton", true, false);
		document.fabricForm.fabric.options[1] = new Option("polyester", "polyester", false, false);
	}
	else if(type == 'lace')/* && (color == 'white' || color == 'black') && size == 'regular')*/
	{
                document.fabricForm.fabric.options[0] = new Option("cotton", "cotton", true, false);
		document.fabricForm.fabric.options[1] = new Option("polyester", "polyester", false, false);
	}
	else
	{
		document.fabricForm.fabric.options[0] = new Option("cotton", "cotton", true, false);
		document.fabricForm.fabric.options[1] = new Option("polyester", "polyester", false, false);
	}
}

function colorClick(small, large, color)
{
	selectedColor = color;
	document.getElementById('smallImage').src = small;
	document.getElementById('largeImage').href = large;
	var selectedType = document.getElementById('s_type').value;
	document.getElementById('fullCoverme').src = '/covermemodest/covermes/' + selectedType + '/' + color + '.jpg';

	setFabricOptions(selectedType, selectedColor, selectedSize); 
	
	for (var c in colors)
	{
		document.getElementById('color_' + colors[c]).style.border = borderStyle;
	}
	document.getElementById('color_' + color).style.border = selectedBorderStyle;

	var scoop_pat = new RegExp("/scoop/");
	if( scoop_pat.exec(small) != null )
	{
		sizes = scoop_sizes;
	}

	sizeInvalid = "0";
	enableAddToCart();

	for (var s in sizes)
	{
		if( inventory[color + '_' + sizes[s]] == 0 )
		{
			document.getElementById(sizes[s]).style.border = invalidBorderStyle;
			document.getElementById(sizes[s]).style.backgroundColor = invalidSizeBgColor;
			document.getElementById(sizes[s]).title = 'out of stock';
			if(selectedSize == sizes[s])
			{
				sizeInvalid = "1";
				disableAddToCart();
				document.getElementById(sizes[s]).style.border = invalidSelectedBorderStyle;
			}
		}
		else
		{
			if(selectedSize == sizes[s])
			{
				document.getElementById(sizes[s]).style.border = selectedBorderStyle;
			}
			else
			{
				document.getElementById(sizes[s]).style.border = borderStyle;
			}
			document.getElementById(sizes[s]).style.backgroundColor = sizeBgColor;
			document.getElementById(sizes[s]).title = document.getElementById('size_desc_' + sizes[s]).value;
		}
	}
}

function colorOver(large, color)
{
	document.getElementById('color_' + color ).style.border=selectedBorderStyle;
}

function colorOut(color)
{
	if(color == selectedColor)
	{
		document.getElementById('color_' + color ).style.border=selectedBorderStyle;
	}
	else
	{
		document.getElementById('color_' + color ).style.border=borderStyle;
	}
}

function sizeOver(id)
{
	if( inventory[selectedColor + "_" + id] == 0 )
	{
		document.getElementById(id).style.border=invalidSelectedBorderStyle;
	}
	else
	{
		document.getElementById(id).style.border=selectedBorderStyle;
	}
}

function sizeOut(size)
{
	if(size == selectedSize)
	{
		if( inventory[selectedColor + "_" + size] == 0 )
		{
			document.getElementById(size).style.border=invalidSelectedBorderStyle;
		}
		else
		{
			document.getElementById(size).style.border=selectedBorderStyle;
		}
	}
	else
	{
		if( inventory[selectedColor + "_" + size] == 0 )
		{
			document.getElementById(size).style.border=invalidBorderStyle;
		}
		else
		{
			document.getElementById(size).style.border=borderStyle;
		}
	}
}

function sizeClick(size)
{
	selectedSize = size;
	sizeInvalid = "0";
	enableAddToCart();
	if( inventory[selectedColor + "_" + size] == 0 )
	{
		sizeInvalid = "1";
		disableAddToCart();
		document.getElementById(size).style.border=invalidSelectedBorderStyle;
		document.getElementById(size).style.backgroundColor = invalidSizeBgColor;
	}
	else
	{
		document.getElementById(size).style.border=selectedBorderStyle;
		document.getElementById(size).style.backgroundColor = sizeBgColor;
	}
	
	for (var s in sizes)
	{
		if(sizes[s] != size)
		{
			if( inventory[selectedColor + "_" + sizes[s]] == 0 )
			{
				document.getElementById(sizes[s]).style.border=invalidBorderStyle;
			}
			else
			{
				document.getElementById(sizes[s]).style.border=borderStyle;
			}
		}
	}
}

function addToCart()
{
	if(! areCookiesEnabled())
	{
		alert("You must enable cookies in your browser before you can add items to your cart!");
		return;
	}
	

	if(sizeInvalid == '0' && selectedSize != "")
	{
		var quan;
		quan = parseInt(document.getElementById('quantity').value, 10);

		var fagrit = document.getElementById('fabric').value.toString();

		var selectedType = document.getElementById('s_type').value;

		var value = readCookie(id + '_' + selectedType + '_' + selectedColor + '_' + fagrit + '_' + selectedSize + '_' + document.getElementById('price').value);
		

		if(value == "" || value == null)
		{
			value = 0;
		}
		else
		{
			value = parseInt(value, 10);
		}
		value = quan + value;

		
		createCookie(id + '_' + selectedType + '_' + selectedColor + '_' + fagrit + '_' + selectedSize + '_' + document.getElementById('price').value, value.toString(10), 3);
		
		var num_items = readCookie(id + '_num_items');
		if(num_items == "" || num_items == null)
		{
			num_items = 0;
		}
		else
		{
			num_items = parseInt(num_items, 10);
		}
		num_items = quan + num_items;
		createCookie(id + '_num_items', num_items.toString(10), 3); 
		document.getElementById('NUMITEMS').innerHTML = num_items.toString(10) + " items";
		parent.location.hash = 'force-refresh';

		document.getElementById("addImage").src = "/covermemodest/covermes/" + selectedType + "/" + selectedSize + "/in_stock/" + selectedColor + ".jpg";		
		document.getElementById("addCartWindowText").innerHTML = selectedSize.replace(/_/, " ") + ", " + fagrit + ", quantity: " + quan;
		showPopup('addedCartWindow');
	}
	else if(selectedSize != "")
	{
		alert("Choose a size that is in stock!");
	}
	else
	{
		alert("Choose a size!");
	}
}

function showTextPopup(id)
{
	document.getElementById(id).style.visibility = 'visible';
}

function closePopup(id)
{
	document.getElementById('blanket').style.visibility = 'hidden';
	document.getElementById(id).style.visibility = 'hidden';
}

function pageLoad()
{
	var sPath = window.location.pathname;
	var sPage = sPath.substring(sPath.lastIndexOf('/') + 1);
	var shopEx = /covermeshop/g;
	var cartEx = /cart/g;
	var loadEx = /force-refresh/g;
	var refEx = /refreshed/g;
	var url = window.location.href + " ";
	if(shopEx.exec(sPage) !== null)
	{
		selectedColor = document.getElementById('s_color').value; 
		selectedSize = document.getElementById('s_size').value; 
		selectedType = document.getElementById('s_type').value; 
		var image = '/covermemodest/covermes/' + selectedColor + '-default-' + selectedType + '.jpg';
		colorClick(image, image, selectedColor);
	}
	if(loadEx.exec(url) !== null)
	{ 
		refreshPage(url);
	}
}

function qtyChanged(qty, cookie)
{
	var changed = document.getElementById('qtyInput_' +cookie).value;
	changed = changed.replace(/ /, "");
	document.getElementById('qtyInput_' +cookie).value = changed;

	if(changed == "" || changed == null)
	{
		changed = 0;
		document.getElementById('qtyInput_' +cookie).value = '0';
	}
	if(isNaN(changed) == true)
	{
		changed = qty;
		document.getElementById('qtyInput_' +cookie).value = qty;
	}
	
	var num = parseInt(changed, 10);
	createCookie(cookie, num, 3);

	var cookieStr = document.getElementById('allcookies').value;
	var cookies = cookieStr.split("#");
	
	var num_items = 0;
	var totalprice = 0;
	for (var c in cookies)
	{
		var value = readCookie(cookies[c]);
		if(value == "" || value == null)
		{
			value = 0;
		}
		else
		{
			value = parseInt(value, 10);
		}
		var pr = cookies[c];
		pr = pr.replace(/.*_/,"");
		if(pr == null || pr == "")
		{
			pr = 0;
		}
		pr = parseFloat(pr);
		totalprice = totalprice + (pr * value);
		num_items = value + num_items;
	}
	createCookie(id + "_num_items", num_items, 3);
	document.getElementById('NUMITEMS').innerHTML = num_items + " items";
	totalprice = totalprice.toFixed(2);
	document.getElementById('totalPriceDesc').innerHTML = '$' + totalprice;

	var price = document.getElementById('price_' +cookie).value;
	price = parseFloat(price);
	price = num * price;
	price = price.toFixed(2);
	
	document.getElementById('price_desc_' +cookie).innerHTML = 'price: $' + price;
	parent.location.hash = 'force-refresh';
}

function removeItem(cookie)
{
	var value = readCookie(cookie);
	if(value == "" || value == null)
	{
		value = 0;
	}
	else
	{
		value = parseInt(value, 10);
	}
	var num_items = readCookie(id + "_num_items");
	if(num_items == "" || num_items == null)
	{
		num_items = 0;
	}
	else
	{
		num_items = parseInt(num_items, 10);
	}
	num_items = num_items - value;
	createCookie(id + "_num_items", num_items, 3);
	document.getElementById('NUMITEMS').innerHTML = num_items + " items";
	eraseCookie(cookie);
	window.location.href = '/cgi-bin/covermemodest/cart.cgi';
}

function checkOutCart()
{
	//window.location.href = 'https://www.paypal.com/cgi-bin/webscr?&cmd=_cart&upload=1&business=leerobyn@comcast.net&item_name_1=first item&amount_1=3.50&quantity_1=5&item_name_2=second item&amount_2=5.50&quantity_2=2';
	var url = 'https://www.paypal.com/cgi-bin/webscr?cmd=_cart&upload=1&business=leerobyn@frontiernet.net&return=http://www.covermemodest.com/cgi-bin/covermemodest/cart.cgi?paymentComplete=1';
	var cookieStr = document.getElementById('allcookies').value;
	var cookies = cookieStr.split("#");
	
	var count = 1;
	for (var c in cookies)
	{
		var qty = readCookie(cookies[c]);
		if(qty == "" || qty == null)
		{
			qty = 0;
		}
		else
		{
			qty = parseInt(qty, 10);
		}
		if(qty == 0)
		{
			continue;
		}

		var price = cookies[c];
		price = price.replace(/.*_/,"");

		var desc = document.getElementById('desc_' + cookies[c]).innerHTML;

		url = url + "&item_name_" + count + "=" + desc;
		url = url + "&amount_" + count + "=" + price;
		url = url + "&quantity_" + count + "=" + qty;
		count++;
	}
	parent.location.hash = 'force-refresh';
	window.location.href = url;
}

function showFullText(text)
{
	document.getElementById('typeText').innerHTML = text;
}

function signUpForEmails()
{
	var email = document.getElementById('emailSignUp').value;
	var mailEx = /\w\@\w/g;
	if(mailEx.exec(email) == null)
	{
		alert("Please type a valid email address!");
		return;
	}
	if(email == "" || email == null)
	{
		alert("Please fill out all fields!");
	}
	else
	{
		var message = "SUbjEct:Add to mailing list - " + email + "MEssAge:EMaIl:" + email;
		
		window.location.href = "/cgi-bin/covermemodest/home.cgi?sendMail=" + message; 
		alert("Thank you for joining our mailing list!");
		document.getElementById('emailSignUp').value = "";
		closePopup('signUpForEmails');
	}
}

function sendMail()
{
	var email = document.getElementById('email').value;
	var subject = document.getElementById('subject').value;
	var message = document.getElementById('message').value;

	var missing = 0;	
	if(email == "" || email == null)
	{
		missing = 1;
	}
	if(subject == "" || subject == null)
	{
		missing = 1;
	}
	if(message == "" || message == null)
	{
		missing = 1;
	}
	var mailEx = /\w\@\w/g;
	if(mailEx.exec(email) == null)
	{
		alert("Please type a valid email address!");
		return;
	}

	if(missing == 1)
	{
		alert("Please fill out all fields!");
	}
	else
	{
		var line = "SUbjEct:" + subject + " FROM - " + email + "MEssAge:" + message + "EMaIl:" + email;
		
		window.location.href = "/cgi-bin/covermemodest/home.cgi?sendMail=" + line; 
		alert("Thank you for your message! We'll get back to you as soon as we can.");
		document.getElementById('email').value = "";
		document.getElementById('subject').value = "";
		document.getElementById('message').value = "";
		closePopup('contactUs');
	}
}

