function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
	var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
	if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
	d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

function MM_jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+".location='productinfo-new.php?frameCol="+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}



function update_price_field() {
	var frame_price = Number(document.getElementById("frame_price").innerHTML);

	//var del_price = Number(document.getElementById("del_price").innerHTML);
	//var lens_price = additional_price/100
	var subtotal_price = lens_price + frame_price + (accessory_price/100);
	var total_price = subtotal_price;// + del_price;


	document.getElementById("lens_price").innerHTML = (lens_price).toFixed(2);
	document.getElementById("accessory_price").innerHTML = (accessory_price/100).toFixed(2);
	document.getElementById("subtotal_price").innerHTML = (subtotal_price).toFixed(2);
	document.getElementById("total_price").innerHTML = (total_price).toFixed(2);
}



// start somewhere sensiable
var lens_price = 0;

var accessory_price = 0;
var vdata = new Array();

// sets allowed option on order
function set_allowed_options(this_select)
{
	var selectboxes = document.getElementsByName("lens_id[]");
	var selectcount = selectboxes.length;
	additional_price=0;
	// reset any disabled items
	for(var i=0; i < selectcount; i++)
	{
		if (selectboxes[i].id != this_select)
		{
			var options = selectboxes[i].options;
			for(var j=0; j < options.length; j++)
			{
				//options[j].selected=false;
				options[j].disabled = false;
			}
			selectboxes[i].disabled = false;
		}
	}
	// go through selects and  diabled items as needed
	for(var i=0; i< selectcount; i++)
	{
		var select = selectboxes[i];

		if (select &&  select.selectedIndex >= 0)
		{
			var id = select.options[select.selectedIndex].value;
			var rule = select.options[select.selectedIndex].getAttribute("rule");
			var price = Number(select.options[select.selectedIndex].getAttribute("price"));
			//alert("id="+id+" - rule="+rule);
			if (id > 0 && rule != "")
			{
				//alert("running rule " + rule + " - lensid:" + id);
				lens_rule_exec(id);
			}
			additional_price += price;
		}
	}
	update_price_field();
}

function lens_rule_exec(from_lensid)
{
	if (!from_lensid > 0) return false;
	//get the rule from the attribute in html
	var option = document.getElementById("lensid_" + from_lensid);
	if (!option) return false;

	var rulelist = option.getAttribute("rule").toLowerCase();

	// only proceed if we have a rule
	if (rulelist != "")
	{
		// break ruleslist into rules
		var rules = rulelist.split(',');
		var rulescount = rules.length;
		for(var i=0; i< rulescount; i++)
		{
			// split this rule into rule elements
			rule = rules[i].split('/');
			if (rule.length >= 2)
			{
				switch(rule[0])
				{
					// disable a type
					case 'dt':
						//alert("disabling " + "lenstype_" + rule[1]);
						var disable = document.getElementById("lenstype_" + rule[1]);
						if (disable)
						{
							disable.disabled = true;
							disable.selectedIndex = 0;
						}
						break;
					case 'dn':
						//alert("disabling " + "lensid_" + rule[1]);
						var disable = document.getElementById("lensid_" + rule[1]);
						if (disable) disable.disabled = true;
						break;
				}
			}
		}
	}
}


// if source.value is true then disable items in id_array
function disable_items(state, id_array)
{
	//if (!isArray(id_array)) return false;

	for(var i=0; i<id_array.length; i++)
	{
		document.getElementById(id_array[i]).disabled = state;
	}
}


/*
	Developed by Robert Nyman, http://www.robertnyman.com
	Code/licensing: http://code.google.com/p/getelementsbyclassname/
*/
var getElementsByClassName = function (className, tag, elm){
	if (document.getElementsByClassName) {
		getElementsByClassName = function (className, tag, elm) {
			elm = elm || document;
			var elements = elm.getElementsByClassName(className),
				nodeName = (tag)? new RegExp("\\b" + tag + "\\b", "i") : null,
				returnElements = [],
				current;
			for(var i=0, il=elements.length; i<il; i+=1){
				current = elements[i];
				if(!nodeName || nodeName.test(current.nodeName)) {
					returnElements.push(current);
				}
			}
			return returnElements;
		};
	}
	else if (document.evaluate) {
		getElementsByClassName = function (className, tag, elm) {
			tag = tag || "*";
			elm = elm || document;
			var classes = className.split(" "),
				classesToCheck = "",
				xhtmlNamespace = "http://www.w3.org/1999/xhtml",
				namespaceResolver = (document.documentElement.namespaceURI === xhtmlNamespace)? xhtmlNamespace : null,
				returnElements = [],
				elements,
				node;
			for(var j=0, jl=classes.length; j<jl; j+=1){
				classesToCheck += "[contains(concat(' ', @class, ' '), ' " + classes[j] + " ')]";
			}
			try	{
				elements = document.evaluate(".//" + tag + classesToCheck, elm, namespaceResolver, 0, null);
			}
			catch (e) {
				elements = document.evaluate(".//" + tag + classesToCheck, elm, null, 0, null);
			}
			while ((node = elements.iterateNext())) {
				returnElements.push(node);
			}
			return returnElements;
		};
	}
	else {
		getElementsByClassName = function (className, tag, elm) {
			tag = tag || "*";
			elm = elm || document;
			var classes = className.split(" "),
				classesToCheck = [],
				elements = (tag === "*" && elm.all)? elm.all : elm.getElementsByTagName(tag),
				current,
				returnElements = [],
				match;
			for(var k=0, kl=classes.length; k<kl; k+=1){
				classesToCheck.push(new RegExp("(^|\\s)" + classes[k] + "(\\s|$)"));
			}
			for(var l=0, ll=elements.length; l<ll; l+=1){
				current = elements[l];
				match = false;
				for(var m=0, ml=classesToCheck.length; m<ml; m+=1){
					match = classesToCheck[m].test(current.className);
					if (!match) {
						break;
					}
				}
				if (match) {
					returnElements.push(current);
				}
			}
			return returnElements;
		};
	}
	return getElementsByClassName(className, tag, elm);
};
