var urlHighRes = "/cms/controller/services/Thumbnail.ashx?width=683&fileName=/media/rouleau_photo.photo/";
var urlLowRes = "/cms/controller/services/Thumbnail.ashx?width=139&height=98&fileName=/media/rouleau_photo.photo/";
function switchImage(index)
{
	var imgBig = document.getElementById("imgBig");
	if (imgBig)
	{
		imgBig.style.display = "block";
		imgBig.src = urlHighRes + photos[index];
	}
}

function preLoadImages()
{
	for (var i = 0; i < photos.length; i++)
	{
		if (i > 0)
		{
			var imgHigh = new Image();
			imgHigh.src = urlHighRes + photos[i];
		}
		var imgLow = new Image();
		imgLow.src = urlHighRes + photos[i];
	}
}
var COOKIE_STEP_IMG = "STEP_NUMBER_IMG_";
var COOKIE_STEP_DESC = "STEP_NUMBER_DESC_";

function LoadProduct(sender)
{
	if (sender != null)
	{
		$("#imgProduct").fadeOut("slow", function(e) {
			document.getElementById("imgProduct").src = sender.src.replace("width=160", "width=274");
			
			/* Record this value for further steps */			
			var qs = new Querystring();
			var step = qs.get("step");
			if (step)
			{
				setCookie(COOKIE_STEP_IMG + step, sender.src);
				setCookie(COOKIE_STEP_DESC + step, sender.alt);
				if (step == 1)
				{
					setCookie("stoneKeySelected", qs.get("stoneKey"));
				}
			}

			/* Set other data */		
			var prefix = sender.id.substr(0, sender.id.indexOf("ctlpicture"));
			var ctlintroduction = document.getElementById(prefix + "ctlintroduction");		
			var description = "";
			if (ctlintroduction)
				ctlintroduction.innerHTML;
			document.getElementById("spanName").innerHTML = sender.alt;	
			var ctlPrice = document.getElementById(prefix + "ctlprice");
			var ctlproductKey = document.getElementById(prefix + "ctlproductKey");
			var priceStr = "";
			var pnlCartAdd = document.getElementById("ctl00_MainPlaceHolder_pnlCartAdd");
			if (pnlCartAdd)
			{
				if (ctlPrice.innerHTML != "")
				{
					priceStr = "$" + ctlPrice.innerHTML;
					pnlCartAdd.style.display = "block";
				}
				else
				{
					pnlCartAdd.style.display = "none";
				}
			}
			document.getElementById("spanPrice").innerHTML = priceStr;
			document.getElementById("spanKey").innerHTML = ctlproductKey.innerHTML;
			var lnkRouleauDetail = document.getElementById("ctl00_MainPlaceHolder_lnkRouleauDetail");
			if (lnkRouleauDetail) /* functionality disabled for now, but this will make it easy to re-enable */
			{
				lnkRouleauDetail.href = ctlPrice.href;
			}
			var lnkMaintenance = document.getElementById("ctl00_MainPlaceHolder_lnkMaintenance");
			if (lnkMaintenance != null)
			{
				lnkMaintenance.href = ctlPrice.href;
			}
			document.getElementById("spanDescription").innerHTML = description;
			$("#imgProduct").fadeIn("slow"); 
		});
		}
		else
		{
			document.getElementById("divProductDetails").style.display = "none";
		}
}

function LoadSteps()
{
	var divItems = document.getElementById("divItems");
	for (var step = 1; step < 4; step++)
	{
		divItems.innerHTML += String.format("<div style='float: left; padding: 3px;'>{0}<br /><img src='{1}' /></div>\n", getCookie(COOKIE_STEP_DESC + step), getCookie(COOKIE_STEP_IMG + step).replace("width=160", "width=110"));
	}
}

function showStoneChooser()
{
	document.getElementById("divStoneChooseInner").style.display = "block";
}

function hideStoneChooser()
{
	document.getElementById("divStoneChooseInner").style.display = "none";
}

function showAddress(sender)
{
	var divAddress = document.getElementById("divAddress");
	if (sender.checked)
	{
		divAddress.style.display = "block";
	}
	else
	{
		divAddress.style.display = "";
	}
}

var YORN_YES = "Oui";
function check2yorn(id)
{
	if (document.getElementById(id).checked)
	{
		return YORN_YES;
	}
	else
	{
		return "Non";
	}
}

function hasRequiredData(input)
{
	if (input.getAttribute("required") == "yes")
	{
		if (input.tagName.toLowerCase() == "textarea")
		{
			return input.innerHTML != "";
		}
		else
		{
			return input.value != "";
		}
	}
	else
	{
		return true;
	}
}

function sendRequest()
{
	var pnlForm = document.getElementById("ctl00_MainPlaceHolder_pnlMiscInfo");
	var tags = new Array("input", "textarea");
	var filledOut = true; 
	for (var t = 0; t < tags.length; t++)
	{
		var inputs = pnlForm.getElementsByTagName(tags[t]);
		for (var i = 0; i < inputs.length; i++)
		{
			var hasRequired = hasRequiredData(inputs[i]);
			filledOut = filledOut && hasRequired;
			if (!hasRequired)
			{
				alert(String.format(SBPhrases["REQUIRED_FIELD"], inputs[i].name));
			}
		}
	}
	
	if (filledOut)
	{
		$(".divMiscInfo").fadeOut("slow", function(e) {
			var msg = "<h1>Demande de soumission</h1>\n";
			msg += document.getElementById("divItems").innerHTML;
			msg += "<br style='clear: both;'>\n<b>Mesures:</b> " + document.getElementById("txtMeasurements").value + "<br />\n";
			msg += "<b>Lavabo?:</b> " + check2yorn("chkSink") + "<br />\n";
			var install = check2yorn("chkInstallation");
			msg += "<b>Template et installation?:</b> " + install + "<br />\n";
			if (install == YORN_YES)
			{
				msg += "<b>Adresse:</b> " + document.getElementById("txtAddress").value + "<br />\n";
			}
			msg += "<b>Nom:</b> " + document.getElementById("txtName").value + "<br />\n";
			var email = document.getElementById("txtEmail").value;
			msg += "<b>Courriel:</b> " + email + "<br />\n";
			msg += "<b>Téléphone:</b> " + document.getElementById("txtPhone").value + "<br />\n";
			
			var pl = new SOAPClientParameters();
			pl.add("Subject", "Demande de soumission");
			pl.add("Message", msg);
			pl.add("ReplyTo", email);
			SOAPClient.invoke(URL_SOAP_TOOLBOX, "SendHtmlEmail", pl, true, ajaxQuote_CallBack);
		});
	}
}

function ajaxQuote_CallBack(data)
{
	var msg = SBPhrases["ROULEAU_QUOTED"];
	if (data)
	{
		msg = data.toSource();
	}
	document.getElementById("ctl00_MainPlaceHolder_pnlMiscInfo").innerHTML = msg;
	$(".divMiscInfo").fadeIn("slow");
}






/////////// CART/LOGIN /////////////////

function rouleau_add2cart()
{
	var productKey = document.getElementById("spanKey").innerHTML;;
	var description = document.getElementById("ctl00_MainPlaceHolder_ctlname1").innerHTML + " / " + document.getElementById("spanName").innerHTML;
	var price = document.getElementById("spanPrice").innerHTML;
	add2cart(productKey, 1, description, price);
}

function doLogin()
{
	UserLogin(document.getElementById("txtUser").value, document.getElementById("txtPass").value, UserLogin_CallBack)
}

function doLogout()
{
	UserLogout(UserLogout_CallBack)
}

function UserLogin_CallBack(data)
{
	if (data.toString().toLowerCase() == trueStr.toLowerCase())
	{
		window.location.reload();
	}
	else
	{
		$('.invalidPassword')[0].style.display = "block";
	}
}

function UserLogout_CallBack(data)
{
	window.location.reload();
}












//Portfolio

var SWATCH_WIDTH = 168;
var SWATCH_PER_PAGE = 4;

var currentMargin = 0;
var currentIndex = 0;
function moveLeft()
{
	if (currentIndex <=  0)
	{
		currentIndex = swatches.length - SWATCH_PER_PAGE;
		movePhoto(-(SWATCH_WIDTH * (currentIndex)));
	}
	else
	{
		movePhoto(SWATCH_WIDTH);
		currentIndex--;
	}
}

function moveRight()
{
	if (currentIndex >= (swatches.length - SWATCH_PER_PAGE))
	{
		currentIndex = 0;
		movePhoto(SWATCH_WIDTH * (swatches.length - SWATCH_PER_PAGE));
	}
	else
	{
		movePhoto(-SWATCH_WIDTH);
		currentIndex++;
	}
}

function movePhoto(offset)
{
	currentMargin += offset;
	var val = currentMargin + "px";
	var duration = 1000;
	if ((offset != SWATCH_WIDTH) && (offset != -SWATCH_WIDTH))
	{
		duration = 2500;
	}
	$("#divPortfolioSlide").animate({marginLeft: val}, duration, "swing");
}

var values = new Object();
function clearValue(e)
{
	//http://www.quirksmode.org/js/events_properties.html
	if (!e) var e = window.event;
	if (e.target) targ = e.target;
	else if (e.srcElement) targ = e.srcElement;
	if (targ.nodeType == 3) // defeat Safari bug
		targ = targ.parentNode;
	if ((!values[targ.name]) || (targ.value == values[targ.name]))
	{
		if (targ.getAttribute("type") != "button")
		{
			values[targ.name] = targ.value;
			targ.value = "";
		}
	}
}
//not working
function setValue(e)
{
	//http://www.quirksmode.org/js/events_properties.html
	if (!e) var e = window.event;
	if (e.target) targ = e.target;
	else if (e.srcElement) targ = e.srcElement;
	if (targ.nodeType == 3) // defeat Safari bug
		targ = targ.parentNode;
	if (targ.value == "")
	{
		targ.value = values[targ.name];
	}
}

jQuery.fn.blindToggle = function(speed, easing, callback) 
{
	var h = this.height() + parseInt(this.css('paddingTop')) + parseInt(this.css('paddingBottom'));
	return this.animate({marginTop: parseInt(this.css('marginTop')) < 0 ? 0 : -h}, speed, easing, callback); 
};

/* Client-side access to querystring name=value pairs
	Version 1.3
	28 May 2008
	
	License (Simplified BSD):
	http://adamv.com/dev/javascript/qslicense.txt
*/
function Querystring(qs) { // optionally pass a querystring to parse
	this.params = {};
	
	if (qs == null) qs = location.search.substring(1, location.search.length);
	if (qs.length == 0) return;

// Turn <plus> back to <space>
// See: http://www.w3.org/TR/REC-html40/interact/forms.html#h-17.13.4.1
	qs = qs.replace(/\+/g, ' ');
	var args = qs.split('&'); // parse out name/value pairs separated via &
	
// split out each name=value pair
	for (var i = 0; i < args.length; i++) {
		var pair = args[i].split('=');
		var name = decodeURIComponent(pair[0]);
		
		var value = (pair.length==2)
			? decodeURIComponent(pair[1])
			: name;
		
		this.params[name] = value;
	}
}

Querystring.prototype.get = function(key, default_) {
	var value = this.params[key];
	return (value != null) ? value : default_;
}

Querystring.prototype.contains = function(key) {
	var value = this.params[key];
	return (value != null);
}


function setCookieAddr(sender)
{
	setCookie(sender.id, sender.value);
	loadCookieAddr();
}

var arrFields = new Array("txtName", "txtAddress", "txtEmail", "ctl00_MainPlaceHolder_wizCart_lstsbstate", "txtPostal");
function loadCookieAddr()
{
	var hasAllVals = true;
	for (var i = 0; i < arrFields.length; i++)
	{
		var val = getCookie(arrFields[i]);
		if (val)
		{
			document.getElementById(arrFields[i]).value = val;
		}
		else
		{
			hasAllVals = false;
		}
	}
	
	/* Let .net handle validation */
	var txtDummy = document.getElementById("ctl00_MainPlaceHolder_wizCart_txtDummy");
	if (hasAllVals)
	{
		txtDummy.value = "OK";
	}
	else
	{
		txtDummy.value = "";
	}
}
function clearCookieAddr()
{
	for (var i = 0; i < arrFields.length; i++)
	{
		setCookie(arrFields[i], "");
	}
}
function enableFinish(sender)
{
	var finishButton = document.getElementById("ctl00_MainPlaceHolder_wizCart_FinishNavContainer_FinishButtonButton");
	if (!finishButton)
	{
		finishButton = document.getElementById("ctl00_MainPlaceHolder_wizCart_FinishNavigationTemplateContainerID_FinishButton");
	}
	if (sender.checked)
	{
		finishButton.style.display = "inline-block";
	}
	else
	{
		finishButton.style.display = "";
	}
}

function calcTax()
{
	var cartSubTotal = currencyToFloat(document.getElementById("spanCartSubTotal").innerHTML);
	var taxesRate = $(".spanTaxRate");
	var taxesAmount = $(".spanTaxAmount");
	var totalTax = 0;
	for (var i = 0; i < taxesRate.length; i++)
	{
		var taxPercent = parseFloat(taxesRate[i].innerHTML.replace(",", "."));
		var taxAmount = (cartSubTotal + totalTax) * (taxPercent / 100);
		taxAmount = Math.round((taxAmount + 0.0049) * 100) / 100; /* Round up */
		totalTax += taxAmount;
		taxesAmount[i].innerHTML = floatToCurrency(taxAmount);
	}
	document.getElementById("spanGrandTotal").innerHTML = floatToCurrency(Math.round((cartSubTotal + totalTax)* 100) / 100);
}

function cancelOrder()
{
	clearCookieAddr();
	parent.cartString = "";
	refreshCart();
	parent.$.nyroModalRemove();
}
