var checked_image = 'http://images.carprices.com/configurator/selected_icon.gif';
var unchecked_image = 'http://images.carprices.com/configurator/selectable_icon.gif';
var required_image = 'http://images.carprices.com/configurator/required_selection_icon.gif';
var included_image = 'http://images.carprices.com/configurator/included_icon.gif';
var excluded_image = 'http://images.carprices.com/configurator/excluded_icon.gif';

var required_top_coordinates="20px";
var required_left_coordinates="10px";

var intervalID;
var popupImage;
function showImg(i, name) {
    var b = document.getElementById(name);
    b.src = i;
}

function uncheckRadio(radiobtn) {
	var obj = document.getElementsByName(radiobtn);
	for (var i = 0; i < obj.length; i++) {
		obj[i].checked = false;
	}
}

function toggleInventoryRows(tag){
	var element=document.getElementById(tag);
	if (element) {
	if (element.style.display == '') {
		element.style.display='none';
	} else {
		element.style.display='';
	}
	}
}

function closeThisRow(tag){
	var element=document.getElementById(tag);
	if (element) { element.style.display='none'; }
}

function openThisRow(tag){
    var element=document.getElementById(tag);
	if (element) { element.style.display=''; }
}

function mouseOverExclude(obj) {
	document.getElementById('plus').innerHTML='This option is excluded.<BR>Click for more information.';
	showInfoPop(document.getElementById(obj));
}

function mouseOverRequire(obj) {
    document.getElementById('plus').innerHTML='This option is required.<BR>Click for more information.';
    showInfoPop(document.getElementById(obj));
}

function mouseOverInclude(obj) {
    document.getElementById('plus').innerHTML='This option is included.<BR>Click for more information.';
    showInfoPop(document.getElementById(obj));
}

function quoteVerify(formname) {
  formname.dayphone.value=formname.dayphone_area.value+formname.dayphone_pre.value+formname.dayphone_post.value;
  if (req_text("Your First Name", formname.firstname) && req_text("Your Last Name", formname.lastname) &&
  (formname.address.value==-1 || req_text("Your Address", formname.address)) && 
  (formname.zipcode.value==-1 || req_num("Your Zip Code", formname.zipcode)) &&
  req_num_len("Your Day Phone Number", formname.dayphone, 10) && req_email("Your Email", formname.email)) {
   if (formname.privacy) {
  	if (formname.privacy.value == 'Yes') {
      return true;
    } else {
	  window.open('/privacy_disclosure.html?form='+formname.name,'privacy_policy');
	}
   } else {
     return true;
    }
  }
  return false;
}

function quoteInventoryVerify(formname) {
  formname.dayphone.value=formname.dayphone_area.value+formname.dayphone_pre.value+formname.dayphone_post.value;
  if (req_text("Your First Name", formname.firstname) && req_text("Your Last Name", formname.lastname) &&
  (formname.address.value==-1 || req_text("Your Address", formname.address)) &&
  (formname.zipcode.value==-1 || req_num("Your Zip Code", formname.zipcode)) &&
  req_num_len("Your Day Phone Number", formname.dayphone, 10) && req_email("Your Email", formname.email)) {
    if (formname.privacy.value == 'Yes') {
      return true;
    } else {
      window.open('/privacy_disclosure.html?form=inventory','privacy_policy');
    }
  }
  return false;
}

function req_email (name, id) {
	var pat = /^[^\@]+\@[^\.]+\.\S+$/;
	if (!pat.test(id.value)) {
		id.focus();
		if (id.value == '') {
			alert('Please enter: ' + name);
		} else {
			alert('Please re-enter: ' + name);
		}
		return false;
	}
	return true;
}

function opt_email (name, id) {
	if (id.value != '') {
		return req_email(name, id);
	}
	return true;
}

function req_filled (name, id) {
	var pat = /^\s*$/;
	if (pat.test(id.value)) {
		id.focus();
		if (id.value == '') {
			alert('Please enter: ' + name);
		} else {
			alert('Please re-enter: ' + name);
		}
		return false;
	}
	return true;
}

function opt_filled (name, id) {
	if (id.value != '') {
		return req_filled(name, id);
	}
	return true;
}

function req_text (name, id) {
	var pat1 = /^\s*$/;
	var pat2 = /^\d+$/;
	if (pat1.test(id.value) || pat2.test(id.value)) {
		id.focus();
		if (id.value == '') {
			alert('Please enter: ' + name);
		} else {
			alert('Please re-enter: ' + name);
		}
		return false;
	}
	return true;
}

function opt_text (name, id) {
	if (id.value != '') {
		return req_text(name, id);
	}
	return true;
}

function req_num (name, id) {
	var pat = /^\d+$/;
	if (!pat.test(id.value)) {
		id.focus();
		if (id.value == '') {
			alert('Please enter numeric value: ' + name);
		} else {
			alert('Please re-enter numeric value: ' + name);
		}
		return false;
	}
	return true;
}

function opt_num (name, id) {
	if (id.value != '' && id.value != '0') {
		return req_num(name, id);
	}
	return true;
}

function req_num_len (name, id, length) {
	id.value = id.value.replace(/\D/g, '');
	var pat = /^\d+$/;
	if (!pat.test(id.value) || id.value.length != length) {
//		id.focus();
		if (id.value == '') {
			alert('Please enter numeric value: ' + name);
		} else {
			alert('Please re-enter numeric value: ' + name);
		}
		return false;
	}
	return true;
}

function opt_num_len (name, id, length) {
	if (id.value != '' && id.value != '0') {
		return req_num_len(name, id, length);
	}
	return true;
}

function req_money (name, id) {
	var pat = /^\d+(\.\d\d)?$/;
	if (!pat.test(id.value)) {
		id.focus();
		if (id.value == '') {
			alert('Please enter monetary value: ' + name);
		} else {
			alert('Please re-enter monetary value: ' + name);
		}
		return false;
	}
	return true;
}

function opt_money (name, id) {
	if (id.value != '' && id.value != '0' && id.value != '0.00') {
		return req_money(name, id);
	}
	return true;
}

function req_rate (name, id) {
	var pat = /^\d\d?(\.\d\d)?$/;
	if (!pat.test(id.value)) {
		id.focus();
		if (id.value == '') {
			alert('Please enter rate value: ' + name);
		} else {
			alert('Please re-enter rate value: ' + name);
		}
		return false;
	}
	return true;
}

function opt_rate (name, id) {
	if (id.value != '' && id.value != '0' && id.value != '0.00') {
		return req_rate(name, id);
	}
	return true;
}

function req_selected (name, id) {
	var pat = /^\s*$/;
	var val = '';
	for (var i = 0; i < id.options.length; i++) {
		if (id.options[i].selected) {
			val = id.options[i].value;
		}
	}
	if (pat.test(val)) {
		id.focus();
		alert('Please select: ' + name);
		return false;
	}
	return true;
}

function req_checked (name, id) {
	if (!id.checked) {
		id.focus();
		alert('Please check box: ' + name);
		return false;
	}
	return true;
}

function req_time_length (name, id1, id2) {
	var num1 = 0;
	var num2 = 0;
	var pat = /^\d+$/;
	if (pat.test(id1.value)) {
		num1 = parseInt(id1.value);
	}
	if (pat.test(id2.value)) {
		num2 = parseInt(id2.value);
	}
	if (num1 + (num2 * 12) <= 0) {
		id2.focus();
		alert('Please Enter: ' + name);
		return false;
	}
	return true;
}

function opt_time_length (name, id1, id2) {
	if ((id1.value != '' && id1.value != '0') || (id2.value != '' && id2.value != '0')) {
		return req_time_length(name, id1, id2);
	}
	return true;
}

function blinkNow() {
	var interval=300;
	var speed=interval;
	setTimeout('priceBlink()',speed);
	speed=speed+interval;
	setTimeout('priceBlink()',speed);
	speed=speed+interval;
	setTimeout('priceBlink()',speed);
	speed=speed+interval;
	setTimeout('priceBlink()',speed);
	speed=speed+interval;
	setTimeout('priceBlink()',speed);
	speed=speed+interval;
	setTimeout('priceBlink()',speed);
	speed=speed+interval;
	setTimeout('priceBlink()',speed);
    speed=speed+interval;
	setTimeout('priceBlinkEnd()',speed);
	speed=speed+interval;
}

function priceBlinkEnd() {
	if (document.all) {
	var blink=document.all.tags("FONT");
	for (var i=0; i<blink.length; i++) {
		blink[i].style.color='';
	}
	}
}

function priceBlink() {
	if (document.all) {
	var blink=document.all.tags("FONT");
	for (var i=0; i<blink.length; i++) {
		blink[i].style.color= blink[i].style.color == '' ? "#FF9999":"";
	}
	}
}

function getCookie (name) {
	var result = "";
	var allcookies = document.cookie;
	allcookies = " " + allcookies + ";";
	var searchName = " " + name + "=";
	var startOfCookie = allcookies.indexOf(searchName);
	var endOfCookie;

	if (startOfCookie != -1) {
		startOfCookie += searchName.length;
		endOfCookie = allcookies.indexOf(";", startOfCookie);
		result = unescape(allcookies.substring(startOfCookie, endOfCookie));
	}
	return result;
}

function setCookie (name, value) {
	value = escape(value);
	document.cookie = name + "=" + value + "; path=/";
	document.cookie = name + "=" + value + "; path=/; domain=.carprices.com";
}

function listAdd (listname, item) {
	var list=getCookie(listname);
	if (list) {
		var search = "," + list + ",";
		var index = search.indexOf("," + item + ",");
		if (index < 0) {
			list += "," + item;
		}
	} else {
		list = item;
	}
	setCookie(listname,list);
}

function listDel (listname, item) {
	var list=getCookie(listname);
	if (list != null && list.length != 0) {
		var search = "," + list + ",";
		var index = search.indexOf("," + item + ",");
		if (index >= 0) {
			if (index == 0) {
				list = list.substring(item.length + 1);
			} else if (index + item.length == list.length) {
				list = list.substring(0, index - 1);
			} else {
				list = list.substring(0, index) + list.substring(index + item.length + 1, list.length);
			}
		}
	}
	setCookie(listname,list);
}

function displayMoney (value) {
	if (value == -0.01) {
		return "TBD";
	} else {
		if (value < 0) {
			var pos = value * -1;
			return "-$" + formatMoney(pos);
		} else {
			return "$" + formatMoney(value);
		}
	}
}

function formatMoney (value) {
	if (!value) {
		return "0";
	}
	var sign = '';
	if (value < 0) {
		sign = '-';
		value = value * -1;
	}
		var intString = "" + Math.round(value);
		var loopCount = (intString.length - (intString.length % 3)) / 3;
		var result = "";
		for (var i = 1; i <= loopCount; i++) {
			var start = intString.length - (3 * i);
			if (intString.length > 3*i) {
				result = "," + intString.substring(start, start + 3) + result;
			} else {
				result = intString.substring(start, start + 3) + result;
			}
		}
		if (intString.length > loopCount * 3) {
			result = intString.substring(0, intString.length % 3) + result;
		}
	return sign + result;
}

function chooseColor(imgObj, image_type) {
  id=imgObj.name.substring(1);
  imgObj.src=sw[id][image_type];
}
function refreshcolors(file) {
    var url="/carresearch/components/"+file+"&session="+new Date().getTime();
    var aj=new ajax();
    document.colors.action=url;
    aj.formsubmit(document.colors, "", true);
}
function showPopup(tr, topOffset, leftOffset) {
		if (document.colors) {
        	document.colors.pause.value="1";
		}
		if (document.options) {
			document.options.pause.value="1";
		}
        var myDiv=document.getElementById('popup');
        myDiv.style.visibility = 'visible';
		var top=getOffsetTop(tr)+topOffset;
        myDiv.style.top = top+"px";
		var left=getOffsetLeft(tr)+leftOffset;
        myDiv.style.left = left+"px";
}
function closePopup() {
		if (document.colors) {
        	document.colors.pause.value="";
		}
		if (document.options) {
			document.options.pause.value="";
		}
        document.getElementById('popup').style.visibility='hidden';
}
function getOffsetLeft (el) {
  var ol = el.offsetLeft;
  var count=0;
  while ((el = el.offsetParent) != null) {
  	  if (count == 7) {
	  	break;
	  }
  	  ol += el.offsetLeft;
//	  ol -=13;
	  count++;
  }
//  var ol=0;
//  if (el.offsetParent) {
//  	do {
//		ol+=el.offsetLeft;
//		alert(ol+"="+el.offsetLeft);
//	} while (el=el.offsetParent);
 // }
  return ol;
}
function getOffsetTop (el) {
	var ot = el.offsetTop;
	var count=0;
    while((el = el.offsetParent) != null) {
	  if (count == 7) {
	          break;
	  }
	 ot += el.offsetTop;
	 count++;
	}
//	ot -= 210;
    return ot;
}

function over(tr) {
        tr.className='over';
}
    function notover(tr) {
        tr.className='notover';
    }
    function showInfoPop(tr) {
        var myDiv=document.getElementById('plus');
		var top= getOffsetTop(tr)-20;
        myDiv.style.top = top+"px";
		var left=getOffsetLeft(tr)+22;
        myDiv.style.left = left+"px";
        myDiv.style.visibility = 'visible';
    }
    function closeInfoPop() {
        document.getElementById('plus').style.visibility='hidden';
    }
	function showFloat(tr, img) {
		document.getElementById('floater').src=img;
		var myDiv = document.getElementById('imgfloat');
		myDiv.style.visibility = 'visible';
		var top=getOffsetTop(tr)-30;
		var left=getOffsetLeft(tr)+90;
		myDiv.style.top = top+"px";
		myDiv.style.left = left+"px";
	}
    function hideFloat(tr,color) {
        var myDiv = document.getElementById('imgfloat');
        myDiv.style.visibility = 'hidden';
    }
function refreshoptions(file) {
    var url="/carresearch/components/"+file+"&session="+new Date().getTime();
    var aj=new ajax();
    document.options.action=url;
	try {
    	aj.formsubmit(document.options, "", true);
	} catch(epre) {
		try {
			aj.fetch(url,"");
		} catch(err) {
			var message="Line Number: "+err.lineNumber+"\n";
	        message+="Description: "+err.description+"\n";
	        message+="Message: "+err.message+"\n";
	        message+="Name: "+err.name+"\n";
	        message+="Number: "+err.number+"\n";
			alert(message);
		}
	}
}
function quoteSubmit(file,formname,divname) {
	var url="/carresearch/components/"+file;
    var aj=new ajax();
    formname.action=url;
	aj.formsubmit(formname, divname, true);
}
function addCommas(nStr)
{
    nStr += '';
    x = nStr.split('.');
    x1 = x[0];
    x2 = x.length > 1 ? '.' + x[1] : '';
    var rgx = /(\d+)(\d{3})/;
    while (rgx.test(x1)) {
        x1 = x1.replace(rgx, '$1' + ',' + '$2');
    }
    return x1 + x2;
}
function eBrochure(vin) {
    var url = "/inventory/details.php/VIN_"+vin+"/UI_brochure/ID_"+getCookie("confid");
	openWindow(url,"ebrochure","650","600");
}
function openWindow(theUrl,id,w,h) {
   	var options = "width=" + w + ",height=" + h + ",toolbar=yes,resizable=yes,scrollbars=yes,left=0,top=0,screenX=0,screenY=0";
   	var win = window.open(theUrl, id, options);
   	win.focus();
}
function populate(file) {
    var url="/carresearch/components/"+file+"&session="+new Date().getTime();
    var aj=new ajax();
    aj.fetch(url, "datadisplay");
}
function fetch(file, div) {
	var url="/carresearch/components/"+file+"&session="+new Date().getTime();
    var aj=new ajax();
    aj.fetch(url, div);
}

