// JavaScript Document

var slider;
var lgImgCount;
var currentImage = 1;
var imgList;
var lgImg;

function sliderInit() {
   var target;
   var imgCount;
   target = YAHOO.util.Dom.get("listing-pics");
   imgCount = target.getElementsByTagName("img");
   target.style.width = (130 * Math.round(imgCount.length / 2)) + "px";
   slider = YAHOO.widget.Slider.getHorizSlider("sliderbg", "sliderthumb", 0, 150);
   slider.subscribe("change", moveContent);

   imageFlipperInit();
}

function imageFlipperInit() {
	var imgHolder = YAHOO.util.Dom.get("large-pics-holder");
	var flipperBtns = ["flip-left","flip-right"];
	var thumbs = YAHOO.util.Dom.get("listing-pics");
	var flipperText = YAHOO.util.Dom.get("flipper-text");
	
	lgImg = YAHOO.util.Dom.get("large-pic");
	imgList = imgHolder.getElementsByTagName("img");
	lgImgCount = imgList.length;
	flipperText.innerHTML = currentImage + " of " + lgImgCount + " pictures";
	
	YAHOO.util.Event.addListener(flipperBtns, "click", flipper);
	YAHOO.util.Event.addListener("listing-pics", "click", flipper); 
}

function flipper(e) {
	var countDesc = YAHOO.util.Dom.get("flipper-text");
	if (this.id == "flip-right" && currentImage < lgImgCount) {
		currentImage++;
		lgImg.src = imgList[currentImage-1].src;
	}
	if (this.id == "flip-left" && currentImage > 1) {
		currentImage--;
		lgImg.src = imgList[currentImage-1].src;
	}
	if (this.id == "listing-pics") {
		frame = document.getElementById("listing-pics-frame");
		frameContent = document.getElementById("listing-pics");
		x = YAHOO.util.Event.getPageX(e) - frame.offsetLeft - parseInt(frameContent.style.left + 0);
		x = Math.floor(x/130)+1;
		y = YAHOO.util.Event.getPageY(e) - frame.offsetTop;
		y = Math.floor(y/90);
		clickIndex = x + y * (Math.round(lgImgCount/2));
		if (clickIndex <= lgImgCount) {
			currentImage = clickIndex;
			lgImg.src = imgList[currentImage-1].src
		}
	}
	if (countDesc.textContent) {
		countDesc.textContent = currentImage + " of " + lgImgCount + " pictures";
	} else if (countDesc.innerText) {
		countDesc.innerText = currentImage + " of " + lgImgCount + " pictures";
	} else if(countDesc.innerHtml) {
		countDesc.innerHtml = currentImage + " of " + lgImgCount + " pictures";
	}
}	

function moveContent(offsetFromStart) {

	var scaleFactor;
	var target;
	var targetFrame;
	
	target = document.getElementById("listing-pics");
	targetFrame = document.getElementById("listing-pics-frame");
	
	scaleFactor = (target.scrollWidth - targetFrame.offsetWidth) / 150;
	target.style.left = -offsetFromStart*scaleFactor + "px";
}
	
YAHOO.util.Event.onDOMReady(sliderInit);

function floor(number)
{
  return Math.floor(number*Math.pow(10,2))/Math.pow(10,2);
}

function currencyFmt (num) {
	num += '';
	x = num.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 getValue(num)
{
    var noJunk = ""
    var withDollar = ""
    var foundDecimal = 0
    var foundAlphaChar = 0
    num += "";

    if (num == "") { return(0); }
    for (i=0; i <= num.length; i++)
    {
        var thisChar = num.substring(i, i+1);
        if (thisChar == ".")
        {
          foundDecimal = 1;
          noJunk = noJunk + thisChar;
        }
        if ((thisChar < "0") || (thisChar > "9"))
        {
          if ((thisChar != "$") && (thisChar !=".") && (thisChar != ",") && (thisChar != " ") && (thisChar !="")) foundAlphaChar = 1;
        }
        else
 {
    withDollar = withDollar + thisChar
    noJunk = noJunk + thisChar
 }

 if ((thisChar == "$") || (thisChar == ".") || (thisChar == ","))
 {
   withDollar = withDollar + thisChar
 }
  }
     if (foundDecimal) { return parseFloat(noJunk); }
     else if (noJunk.length > 0) { return parseFloat(noJunk); }
     else return 0;
}

function checkForZero(field) {
	if (field.value == 0 || field.value.length == 0) {
		alert ("This field can't be 0!");
		field.focus(); }
	else
	calculatePayment(field.form);
}

function cmdCalc() {
	var form = document.getElementById("calcform");
	var err = document.getElementById("calcerr");
	var price = getValue(form.calcprice.value);
	var taxes = getValue(form.calctax.value);
	var pct;
	var rate = form.calcrate.value;
	var term = form.calcterm.options[form.calcterm.selectedIndex].value;
	var dwnpmt = document.getElementById("calcdwnpmt");
	var mortgage = document.getElementById("calcmortgage");
	var total = document.getElementById("calctotal");
	
	err.innerHTML = "";
	
	if (form.calcrate.value == 0 || form.calcrate.value.length == 0) {
		err.innerHTML = "Please enter a non-zero rate.";
		return;
	}
	if (price == 0) {
		err.innerHTML = "Please enter a non-zero price.";
		form.calcprice.focus(); 
		return;
	}
	if (form.calcpctdwn.value.length == 0) {
		form.calcpctdwn.value = 0;
	}
	pct = parseInt(form.calcpctdwn.value)
	form.calcpctdwn.value = pct;

	princ = price - (price * (pct/100));
	intRate = (rate/100) / 12;
	months = term * 12;
	payments = Math.floor((princ*intRate)/(1-Math.pow(1+intRate,(-1*months)))*100)/100;
	mortgage.innerHTML = currencyFmt(payments.toFixed(2));
	dwnpmt.innerHTML = currencyFmt(Math.floor(price * (pct/100)));
	total.innerHTML = currencyFmt((payments + taxes/12).toFixed(2));
}



