var $D = YAHOO.util.Dom;var $E = YAHOO.util.Event;var $A = YAHOO.util.Anim;var $M = YAHOO.util.Motion;var $DD = YAHOO.util.DD;var $ = $D.get;
var listingPhotos = [];
var photo_pos = 0;
var thumb_pos = 0;


function enlargePhoto(obj){
	var holder = $('listingPhotoHolder');
	holder.src = obj.getAttribute("org");
	var pos = obj.id.substr(5);
	holder.setAttribute("pos",pos);
	$('listingPhotoPos').innerHTML = parseInt(pos) + 1 ;
}

function displayPhoto(d) {
	var thumb_pos=parseInt($('listingPhotoHolder').getAttribute('pos'));
	var total = parseInt($('listingPhotoHolder').getAttribute('total'));
		
	if (d == 'p') {
		thumb_pos = ((thumb_pos == 0) ? total -1 : thumb_pos - 1);
	}else if (d == 'n') {
		thumb_pos = ((thumb_pos == (total - 1)) ? 0 : thumb_pos + 1);
	}
	$('listingPhotoHolder').setAttribute('pos',thumb_pos);

	$('listingPhotoHolder').src = $('slide'+thumb_pos).getAttribute("org");
	$('listingPhotoPos').innerHTML = thumb_pos + 1 ;
}

function displayThumbs(d) {
	var current_pos = thumb_pos;
	if (d == 'p') {
		thumb_pos = ((thumb_pos == 0) ? thumbnails -1 : thumb_pos - 1);
	}else if (d == 'n') {
		thumb_pos = ((thumb_pos == (thumbnails - 1)) ? 0 : thumb_pos + 1);
	}
	$('thumbnail_'+current_pos).style.display = "none";
	$('thumbnail_'+thumb_pos).style.display = "block";
}

//var listingsSlides = function() {
//	var slideshowTimeOut = 5;
//	var currentSlide = 0;
//	var currentZindex  = 900;
//	var slideshowTimer = null;
//	var slide_holder = null;
//	var slideshowBox = null;
//	var slideshowEffect =  { opacity: { from: 1, to: 1 }, width: { from: 0, to: 300 }, height: { from: 0, to: 200 } };
//	var slides;
//	var toggleView=1;
//
//	return {
//		loadNextSlide : function() {
//			var nextSlide = currentSlide + 1;
//			if (!slides[nextSlide]) {nextSlide = 0;}
//			$('slideshow_'+currentSlide).style.display = "none";
//			$('slideshow_'+nextSlide).style.display = "block";
//			listingsSlides.loadSlide(nextSlide);
//			currentSlide = nextSlide;
//		},
//
//		loadSlide : function(i) {
//			if (slides) {
//				var div = $('slideshow_' + i);
//				$D.setStyle(div, 'width', 0);
//				$D.setStyle(div, 'z-index', currentZindex);
//				var animSlide = new $A(div, slideshowEffect, 1, YAHOO.util.Easing.easeOut);
//				animSlide.animate();
//				currentZindex++;
//				slideshowTimer = setTimeout('listingsSlides.loadNextSlide()', (slideshowTimeOut * 1000));
//			}
//		},
//		
//		loadImages : function() {
//			for (var i = slides.length; i > -1; i-- ) {
//				if (!$('slideshow_' + i)) {
//					if (slides[i]) {
//						var div = $C('div');
//						div.id = 'slideshow_' + i;
//						div.style.display = "none";
//						slide_holder.appendChild(div);
//						var img = $C('img');
//						img.src= slides[i].src;
//						img.setAttribute('width', '300');
//						img.setAttribute('height', '200');
//						div.appendChild(img);
//						//$D.setStyle(div, "background-image", "url("+slides[i].src+")");
//					}
//				}
//			}
//		},
//
//
//		init : function() {
//			slideshowBox = new YAHOO.widget.Overlay("slideshow");
//			slideshowBox.cfg.setProperty("visible", true);
//			slide_holder =document.getElementById('slide_holder');
//		},
//
//		close : function() {
//		   slide_holder.parentNode.style.display = "none";
//		   slide_holder.style.display = "none";
//		   unLoadPage(slide_holder);		
//		   if (slideshowTimer){clearTimeout(slideshowTimer);}
//			toggleView = 1;
//			$('viewSlideShow').innerHTML = "View Slide Show";
//		},
//
//		show: function() {
//			if (toggleView ==1) {
//				slides = listingPhotos;
//				listingsSlides.loadImages();
//				slideshowBox.cfg.setProperty("xy",[$D.getX('listingPhotoHolder')+150,$D.getY('listingPhotoHolder')-100]);
//				slide_holder.style.display = "block";
//				slide_holder.parentNode.style.display = "block";
//				currentSlide = 0;
//				$('slideshow_'+currentSlide).style.display = "block";
//				listingsSlides.loadSlide(currentSlide);
//				toggleView = 0;
//				$('viewSlideShow').innerHTML = "Close Slide Show";
//			}else {
//				this.close();
////				toggleView = 1;
////				$('viewSlideShow').innerHTML = "View Slide Show";
//			}
//
//		}
//	}
//}();

function displayRoom(id) {
	var slides = YAHOO.util.Dom.getElementsByClassName("slide"+id,"img","property_photos");
	var slide = slides[0];
	var pos = slide.id.substr(5);
	Lightbox.show(slide,pos);
}


//$E.addListener(window, "load", preLoadListingPics);
//$E.addListener(window, 'load', listingsSlides.init, listingsSlides, true);
$E.addListener(window, 'load', oOptionWin.init, oOptionWin, true);

var iChars = "!#$%^&*()+=-[]\\;,/{}|\":<>?~`";

function sendEmailFromListingDetail(){
	var f = document.moreInfo;
	if(f.emailSubject.value == '0') {
		alertMessage.show({msg:"Please choose subject"},f.emailSubject);
		resetAlertMessagePos(f.emailSubject,{adjustX:0});
		f.emailSubject.focus();
		return;
	}
	if(!validateFieldWithSpecialChars(f.emailFirstName,"First Name","Please input first name")) {
		return;
	}
	if(!validateFieldWithSpecialChars(f.emailLastName,"Last Name","Please input last name")) {
		return;
	}
	if(isEmpty(f.emailTelephone.value)) {
		alertMessage.show({msg:"Please input telephone"},f.emailTelephone);
		resetAlertMessagePos(f.emailTelephone,{adjustX:0});
		f.emailTelephone.focus();
		return;
	}
	if(!validateFieldWithSpecialChars(f.emailEmail,"Email","Please input email")) {
		return;
	}
	if(!isEmail(f.emailEmail.value)) {
		alertMessage.show({msg:"Please input correct email"},f.emailEmail);
		resetAlertMessagePos(f.emailEmail,{adjustX:0});
		f.emailEmail.focus();
		return;
	}
	if(isEmpty(f.emailContent.value)) {
		alertMessage.show({msg:"Please input content"},f.emailContent);
		resetAlertMessagePos(f.emailContent,{adjustX:0});
		f.emailContent.focus();
		return;
	}

	var i		= Math.round(10000*Math.random());
	var url		= '/controlpanel/mylistings/listing_detail_info.ajax';
	var pars	= "mode=email&agentUserID="+f.agentUserID.value+"&agentName="+f.agentName.value+"&agentEmail="+f.agentEmail.value+"&subject="+f.emailSubject.value+"&firstName="+f.emailFirstName.value+"&lastName="+f.emailLastName.value+"&telephone="+f.emailTelephone.value+"&email="+f.emailEmail.value+"&content="+f.emailContent.value+"&address="+escape(f.address.value)+"&data="+escape(f.listingID.value)+"&domain="+parent.window.TOP_DOMAIN+"&i="+i;
	var onComplete = function(responseText) {		
		$("emailMessage").style.display = "block";
		$I("emailMessage",responseText);
		setTimeout("$('emailMessage').style.display='none';document.moreInfo.reset();document.moreInfo.emailContent.style.color='#999999';",5000);
	}
	MyAjax.post(url,pars,onComplete);
}

function mortgageCal(f) {
	if(!isInteger(f.loanAmount.value)) {
		alertMessage.show({msg:"Please input numbers only"},f.loanAmount);
		resetAlertMessagePos(f.loanAmount,{adjustX:0});
		f.loanAmount.focus();
		return;
	}
	if(!isInteger(f.downPayment.value)) {
		alertMessage.show({msg:"Please input numbers only"},f.downPayment);
		resetAlertMessagePos(f.downPayment,{adjustX:0});
		f.downPayment.focus();
		return;
	}
	if(f.termAndRate.value == '0') {
		alertMessage.show({msg:"Please choose interest rate"},f.termAndRate);
		resetAlertMessagePos(f.termAndRate,{adjustX:0});
		f.termAndRate.focus();
		return;
	}

	var temp			= f.termAndRate.value.split("|");
	var monthRate		= Number(temp[0])/100/12;
	var numPayments		= Number(temp[1])*12;
	var prin			= Number(f.loanAmount.value) - Number(f.downPayment.value);
	var monthlyPayment	= Math.floor((prin*monthRate)/(1-Math.pow((1+monthRate),(-1*numPayments)))*100)/100 ;

	$('mortgageAnswer').style.display = 'block';
	$I('numberOfPayments',numPayments);
	$I('monthlyPayment',monthlyPayment);
}

function saveListing(obj,type,data) {
	var i			= Math.round(10000*Math.random());
	var url			= "/controlpanel/mylistings/detail_save_listing.php";
	var pars		= "data="+data+"&type="+type+"&i="+i;
	MyAjax.post(url,pars);
	obj.disabled = true;
	obj.innerHTML = "Saved";
	var parentDoc = parent.window.document;
	parentDoc.getElementById("btn_save_"+data).disabled = true;

}

	function validateEmailAFriend(obj) {
//		if(!validateFieldWithSpecialChars(obj,'Email Address','Please input email address')) {
		if (isEmpty(obj.email.value)){
			alertMessage.show({msg:"Please input an email address."},obj);
			resetAlertMessagePos(obj.email,{adjustX:0});
			obj.focus();
			return false;
		}else if(!isEmail(obj.email.value)){
			alertMessage.show({msg:"Please input correct email address."},obj);
			resetAlertMessagePos(obj.email,{adjustX:0});
			obj.focus();
			return false;
		}

		$('btn_close').style.display = "none";
		$('btn_submit').style.display = "none";
		$('btn_loading').style.display = "block";
		var i			= Math.round(10000*Math.random());
		var url			= '/controlpanel/mylistings/detail_email.php';
		var pars		= "email="+obj.email.value+"&ac="+obj.ac.value+"&type="+obj.type.value+"&data="+obj.data.value+"&i="+i+"&domain="+obj.domain.value;
		var onComplete	= function(responseText) {
		$('btn_close').style.display = "block";
		$('btn_submit').style.display = "block";
		$('btn_loading').style.display = "none";
			oOptionWin.close();
		}
		MyAjax.post(url,pars,onComplete);
	}


function validateFindMore() {
	f = document.findMoreForm;
	if(!validateFieldWithSpecialChars(f.firstName,"First Name","Please input first name")) {
		return false;
	}
	if(!validateFieldWithSpecialChars(f.lastName,"Last Name","Please input last name")) {
		return false;
	}
	if(!validateField(f.phone,"Please input phone number")) {
		return false;
	}
	if(!validateFieldWithSpecialChars(f.email,"Email Address","Please input email address")) {
		return false;
	}else if(!isEmail(f.email.value)){
		alertMessage.show({msg:"Please input correct email address"},f.email);
		resetAlertMessagePos(f.email,{adjustX:0});
		f.email.focus();
		return false;
	}
}

function validateContact() {
	f = document.contactForm;
	if(!validateFieldWithSpecialChars(f.firstName,"First Name","Please input first name")) {
		return false;
	}
	if(!validateFieldWithSpecialChars(f.lastName,"Last Name","Please input last name")) {
		return false;
	}
	if(!validateField(f.phone,"Please input phone number")) {
		return false;
	}
	if(!validateFieldWithSpecialChars(f.email,"Email Address","Please input email address")) {
		return false;
	}else if(!isEmail(f.email.value)){
		alertMessage.show({msg:"Please input correct email address"},f.email);
		resetAlertMessagePos(f.email,{adjustX:0});
		f.email.focus();
		return false;
	}
	if(!validateField(f.subject,"Please input subject")) {
		return false;
	}
	if(!validateField(f.comments,"Please input comments")) {
		return false;
	}
	
	$('btn_close').style.display = "none";
	$('btn_submit').style.display = "none";
	$('btn_loading').style.display = "block";

	var i			= Math.round(10000*Math.random());
	var url			= '/controlpanel/mylistings/detail_contact.php';
	var pars		= "agentUserID="+$("agentUserID").value+"&agentName="+$("agentName").value+"&agentEmail="+$("agentEmail").value+"&firstName="+f.firstName.value+"&lastName="+f.lastName.value+"&phone="+f.phone.value+"&email="+f.email.value+"&subject="+f.subject.value+"&comments="+f.comments.value+"&address="+escape($("address").value)+"&domain="+parent.window.TOP_DOMAIN+"&data="+$('listingID').value+"&i="+i;
	var onComplete	= function(responseText) {
		$('btn_close').style.display = "block";
		$('btn_submit').style.display = "block";
		$('btn_loading').style.display = "none";
		f.reset();
		f.firstName.style.color	= "#999999";
		f.lastName.style.color	= "#999999";
		f.phone.style.color		= "#999999";
		f.email.style.color		= "#999999";
		f.subject.style.color	= "#999999";
		f.comments.style.color	= "#999999";
		oOptionWin.close();
	}
	MyAjax.post(url,pars,onComplete);
}

function validateSchedule() {
	f = document.scheduleForm;
	if(!validateFieldWithSpecialChars(f.firstName,"First Name","Please input first name")) {
		return false;
	}
	if(!validateFieldWithSpecialChars(f.lastName,"Last Name","Please input last name")) {
		return false;
	}
	if(!validateField(f.phone,"Please input phone number")) {
		return false;
	}
	if(!validateFieldWithSpecialChars(f.email,"Email Address","Please input email address")) {
		return false;
	}else if(!isEmail(f.email.value)){
		alertMessage.show({msg:"Please input correct email address"},f.email);
		resetAlertMessagePos(f.email,{adjustX:0});
		f.email.focus();
		return false;
	}
	if(!validateField(f.preferredDate,"Please input preferred date")) {
		return false;
	}
	if(!validateDropDown(f.preferredTime,"Please choose preferred time")) {
		return false;
	}
	/*
	if(!validateField(f.alternateDate,"Please input alternate date")) {
		return false;
	}
	if(!validateDropDown(f.alternateTime,"Please choose alternate time")) {
		return false;
	}
	*/
	if(!validateField(f.comments,"Please input comments")) {
		return false;
	}

	$('btn_close').style.display = "none";
	$('btn_submit').style.display = "none";
	$('btn_loading').style.display = "block";

	var i			= Math.round(10000*Math.random());
	var url			= '/controlpanel/mylistings/detail_schedule_show.php';
	var pars		= "agentInfo="+f.agentInfo.value+"&firstName="+f.firstName.value+"&lastName="+f.lastName.value+"&phone="+f.phone.value+"&email="+f.email.value+"&preferredDate="+f.preferredDate.value+"&preferredTime="+f.preferredTime.value+"&alternateDate="+f.alternateDate.value+"&alternateTime="+f.alternateTime.value+"&comments="+f.comments.value+"&i="+i;
	var onComplete	= function(responseText) {
		$('btn_close').style.display = "block";
		$('btn_submit').style.display = "block";
		$('btn_loading').style.display = "none";
		f.reset();
		f.firstName.style.color	= "#999999";
		f.lastName.style.color	= "#999999";
		f.phone.style.color	= "#999999";
		f.email.style.color	= "#999999";
		f.comments.style.color	= "#999999";
		oOptionWin.close();
	}
	MyAjax.post(url,pars,onComplete);

}

function validateFax(obj) {
	if(!validateField(obj,"Please input fax number.")) {
		return false;
	}
	if(!isInternationalPhoneNumber(obj.value)) {
		alertMessage.show({msg:"Wrong fax number."},obj);
		resetAlertMessagePos(obj,{adjustX:0});
		obj.focus();
		return false;
	}

	var i			= Math.round(10000*Math.random());
	var url			= '/controlpanel/mylistings/detail_fax.php';
	var pars		= "fax="+obj.value+"&pdfURL="+$("pdfURL").innerHTML+"&i="+i;	
	var onComplete	= function(responseText) {
		if(responseText < 0)
			alertMessage.show({msg:"Not send out, try again."},obj);
		else if(responseText > 0) {
			obj.value = $(obj.id+"Value").innerHTML;
			obj.style.color = "#999999";
			oOptionWin.close();
		}
	};
	MyAjax.post(url,pars,onComplete);
}

function validateMobile() {
	oOptionWin.close();
}

function validateDropDown(obj,message) {
	if(obj.value == '0') {
		alertMessage.show({msg:message},obj);
		resetAlertMessagePos(obj,{adjustX:0});
		obj.focus();
		return false;
	}
	return true;
}

function validateField(obj,message) {
	if(isEmpty(obj.value) || obj.value == $(obj.id+"Value").innerHTML) {
		alertMessage.show({msg:message},obj);
		resetAlertMessagePos(obj,{adjustX:0});
		obj.focus();
		return false;
	}
	return true;
}

function validateFieldWithSpecialChars(obj,fieldName,message) {
	if(isEmpty(obj.value) || obj.value == $(obj.id+"Value").innerHTML) {
		alertMessage.show({msg:message},obj);
		resetAlertMessagePos(obj,{adjustX:0});
		obj.focus();
		return false;
	}else {
	  if(obj.id == "email"){
		  iChars = iChars.replace("@","\'");
		  iChars = iChars.replace(".","");
	  }
	  for (var i = 0; i < obj.value.length; i++) {
		if (iChars.indexOf(obj.value.charAt(i)) != -1) {
			alertMessage.show({msg:fieldName+" has special characters. \nThese are not allowed.\n Please remove them and try again."},obj); 
			resetAlertMessagePos(obj,{adjustX:0});
			obj.focus();
			return false;
		}
	  }
	}
	return true;
}

function resetAlertMessagePos(obj,para){
	YAHOO.util.Dom.setXY('alertMessage',[(Math.floor(YAHOO.util.Dom.getX(obj)+(para["adjustX"]||0))),(Math.floor(YAHOO.util.Dom.getY(obj)-$('alertMessage').offsetHeight+obj.offsetHeight/2+(para["adjustY"]||0)))]);
}



var calPreferred;
var over_calPreferred = false;
function calendarPreferredInit() {
    calPreferred = new YAHOO.widget.Calendar("preferredDate","preferredDateContainer");
    calPreferred.selectEvent.subscribe(getPreferredDate, calPreferred, true);
    calPreferred.renderEvent.subscribe(setupPreferredListeners, calPreferred, true);
    $E.addListener('preferredDate', 'focus', showPreferredCal);
    $E.addListener('preferredDate', 'blur', hidePreferredCal);
    calPreferred.render();
}

function setupPreferredListeners() {
    $E.addListener('preferredDateContainer', 'mouseover', overPreferredCal);
    $E.addListener('preferredDateContainer', 'mouseout', outPreferredCal);
}

function getPreferredDate() {
        var calPreferredDate = this.getSelectedDates()[0];
        var returncalPreferredDate = (calPreferredDate.getMonth() + 1) + '/' + calPreferredDate.getDate() + '/' + calPreferredDate.getFullYear();
		document.scheduleForm.preferredDate.value = returncalPreferredDate;
        over_calPreferred = false;
        hidePreferredCal();
}

function showPreferredCal() {
    var xy = $D.getXY('preferredDate');
    $D.setStyle('preferredDateContainer', 'display', 'block');
    xy[1] = xy[1] + parseInt($T.getHeight('preferredDate')) + 3;
    $D.setXY('preferredDateContainer', xy);
}

function hidePreferredCal() {
    if (!over_calPreferred) {
        $D.setStyle('preferredDateContainer', 'display', 'none');
    }
}

function overPreferredCal() {
    over_calPreferred = true;
}

function outPreferredCal() {
    over_calPreferred = false;
}

	var calAlternate;
	var over_calAlternate = false;
	function calendarAlternateInit() {
		calAlternate = new YAHOO.widget.Calendar("alternateDate","alternateDateContainer");
		calAlternate.selectEvent.subscribe(getAlternateDate, calAlternate, true);
		calAlternate.renderEvent.subscribe(setupAlternateListeners, calAlternate, true);
		$E.addListener('alternateDate', 'focus', showAlternateCal);
		$E.addListener('alternateDate', 'blur', hideAlternateCal);
		calAlternate.render();
	}

	function setupAlternateListeners() {
		$E.addListener('alternateDateContainer', 'mouseover', overAlternateCal);
		$E.addListener('alternateDateContainer', 'mouseout', outAlternateCal);
	}

	function getAlternateDate() {
			var calAlternateDate = this.getSelectedDates()[0];
			var returncalAlternateDate = (calAlternateDate.getMonth() + 1) + '/' + calAlternateDate.getDate() + '/' + calAlternateDate.getFullYear();
			document.scheduleForm.alternateDate.value = returncalAlternateDate;
			over_calAlternate = false;
			hideAlternateCal();
	}

	function showAlternateCal() {
		var xy = $D.getXY('alternateDate');
		$D.setStyle('alternateDateContainer', 'display', 'block');
		xy[1] = xy[1] + parseInt($T.getHeight('alternateDate')) + 3;
		$D.setXY('alternateDateContainer', xy);
	}

	function hideAlternateCal() {
		if (!over_calAlternate) {
			$D.setStyle('alternateDateContainer', 'display', 'none');
		}
	}

	function overAlternateCal() {
		over_calAlternate = true;
	}

	function outAlternateCal() {
		over_calAlternate = false;
	}

	function toggleDisplay(img) {
		if (img.src.indexOf("_close") > -1){
			img.src = img.src.replace(/_close/,"_open");
			$(img.getAttribute('name')+"_content").style.display = "none";
		}else {
			img.src = img.src.replace(/_open/,"_close");
			$(img.getAttribute('name')+"_content").style.display = "block";
		}
	}



//var commentToolTip = function(){
//	var win;
//	var body;
//	var lastObj;
//	var status=0;
//
//	return {
//		init:function(){
//			win = new YAHOO.widget.Overlay("commentToolTip", {visible:false});
//			win.render(document.body);
//			body = $('commentToolTip');
//		},
//		open:function(obj,txt){
//			if(!txt) return;
//			if (lastObj == obj){
//				if (status == 1) {this.close();return;}
//				else if (status == 0) {win.show();status = 1; return;}
//			}
//			
//			var width = 130;
//			win.cfg.setProperty("width",width+"px");
//			body.innerHTML = txt;
//			var objX = YAHOO.util.Dom.getX(obj);
//			var objY = YAHOO.util.Dom.getY(obj);
//			var vptX = YAHOO.util.Dom.getViewportWidth();
//			var vptY = YAHOO.util.Dom.getViewportHeight ();
//			
////			var test = [objX,width,vptX,objX + width,objX + width - vptX];
//						
//			if (objX + width > vptX) {
//				var x = objX + obj.offsetWidth - width;
//			}
//			else
//				var x = objX;
//
//			if (objY + body.offsetHeight > vptY)
//				var y = objY - body.offsetHeight;
//			else
//				var y = objY + obj.offsetHeight;
//
//			win.cfg.setProperty("xy",[x,y]);
//			win.show();
//			lastObj = obj;
//			status = 1;
//		},
//		close:function(){
//			win.hide();
//			status = 0;
//		}
//	}
//}();
//$E.addListener(window, 'load', commentToolTip.init, commentToolTip, true);
