/*         ___
 *        /  /
 *       /__/
 *      ___________   _______    _______   ________
 *     /     __   /| /  __  /|  /  __  /| /  __   /|
 *    /  /  /_/  / //  /_/ / / /  / / / //  /_/  / /
 *   /  /  _____/ //     _/ / /  / / / //  _____/ /
 *  /  /  /|____|//  /\  \|/ /  /_/ / //  /|____|/
 * /_____/ /     /__/ /\__\ /______/ //__/ /
 * |_____|/      |__|/ |__| |______|/ |__|/ services
 *                                    
 *
 *      http://www.ipropservices.com
 */
 
 //////////////////////////////////////UTILITIES//////////////////////////////////////
 function msieversion()
// return Microsoft Internet Explorer (major) version number, or 0 for others
// This function works by finding the "MSIE " string and extracting the version number
// following the space, up to the decimal point for the minor version which is ignored.
{
	var ua = window.navigator.userAgent
	var msie = ua.indexOf ( "MSIE " )
	if ( msie > 0 )		// is Microsoft Internet Explorer; return version number
		return parseInt ( ua.substring ( msie+5, ua.indexOf ( ".", msie ) ) )
	else
		return 0	// is other browser
}
var IEVer = msieversion();
//////////////////////////////////////ONLOAD FUNCTIONS///////////////////////////////////
function loadHome(){
	<!--
	var replaceImg = function(){
		//replace picture
		var container = $('splash');
		var pics = $$('#splash div');
		var pic = pics[pics.length-1].clone();
		pic.injectBefore(pics[0]);
		pics[pics.length-1].remove();
	}

	var animateCommercials = function(){
		var fxPic = new Fx.Style($('splash'),'opacity',{duration:200});
		fxPic.custom(1,0);
		
		replaceImg.delay(700);
		fxPic.custom.delay(700,fxPic,[0,1]);
	}
	
	for(var i = 1; i<1000; i++){
		animateCommercials.delay(i*6800);
	}
	
	loadNav();
	$('listingThumbs').setStyle('opacity',0)
	importXML_Listings(loadImages);
	-->
}

function loadContentPage(){

	loadNav();

	if($('featured_listing'))
	{
		importXML_Listings(loadFeaturedListing);		
	}

}

////////////////////////////////////////////XML PARSING//////////////////////////////////////
function listing_filter(xml){
	return xml.getElementsByTagName(namespace+"small")[0] 
		 && xml.getElementsByTagName(namespace+"saleStatus")[0] 
		 && xml.getElementsByTagName(namespace+"saleStatus")[0].firstChild.nodeValue != 'Sold'
		 && xml.getElementsByTagName(namespace+"display")[0] 
		 && xml.getElementsByTagName(namespace+"display")[0].firstChild.nodeValue != '0'
}


function loadImages(){
	var xmlObj = xmlDoc_Listings.documentElement;
	var listings_xml = xmlObj.getElementsByTagName("item");
	var functions = {};
	var thumbnails = [];
	var z = 0;
	for(var i = 0; i<listings_xml.length; i++){
		if(listing_filter(listings_xml[i])){
			var title;
			if(listings_xml[i].getElementsByTagName('title')[0]){
				title = listings_xml[i].getElementsByTagName('title')[0].firstChild.nodeValue +
					'<br />';
				if(listings_xml[i].getElementsByTagName(namespace+'city')[0]){
					title += listings_xml[i].getElementsByTagName(namespace+'city')[0].firstChild.nodeValue;
					if(listings_xml[i].getElementsByTagName(namespace+'state')[0])
						title += ', ';
					else
						title += '<br/>';
				}
				if(listings_xml[i].getElementsByTagName(namespace+'state')[0]){
					title += listings_xml[i].getElementsByTagName(namespace+'state')[0].firstChild.nodeValue + '<br/>';
				}
				title += '<i>click for details</i>';
			}else{
				title = '<i>click for details</i>';
			}
			thumbnails[z] = new Element('img').setProperties({
				'src' : listings_xml[i].getElementsByTagName(namespace+'small')[0].firstChild.nodeValue,
				'title' : title 
			});
			
			thumbnails[z].addClass('toolTipImg');
			listings[z] = new item(listings_xml[i], listings_xml[i].getElementsByTagName(namespace+'medium')[0].firstChild.nodeValue);
			functions[thumbnails[z].getProperty('src')] = listings[z].swap.bind(listings[z]);
			z++;
		}
	}
	listings.getRandom().listing.injectInside($('currentlyAvailable'))
	kar0us3l.init($('listingThumbs'),thumbnails,functions);
}

function loadFeaturedListing(){
	var xmlObj = xmlDoc_Listings.documentElement;
	var listings_xml = xmlObj.getElementsByTagName("item");
	var scrubbed_listings = [];
	for(var i = 0; i<listings_xml.length; i++){
		if(listing_filter(listings_xml[i])){
			scrubbed_listings.extend([listings_xml[i]]);
		}
	}
	var random_listing = scrubbed_listings.getRandom();
	var image = new Element('div');
	image.setHTML(
		'<img src="'+random_listing.getElementsByTagName(namespace+'medium')[0].firstChild.nodeValue+'" style="border:3px solid #fff"/>'
	)
	var details = new Element('div');
	details.addClass('description')
	var html = ''
	if(random_listing.getElementsByTagName("title")[0])
		html += 
			'<strong>' +
				random_listing.getElementsByTagName("title")[0].firstChild.nodeValue +
			'</strong><br />';
	if(random_listing.getElementsByTagName(namespace+"askingPrice")[0])
		html +=
			'Offered At '+ 
			formatCurrency(random_listing.getElementsByTagName(namespace+"askingPrice")[0].firstChild.nodeValue) +
			'<br/>';
	if(random_listing.getElementsByTagName(namespace+"leaseRate")[0])
		html +=
			'Offered At '+ 
			formatCurrency(random_listing.getElementsByTagName(namespace+"leaseRate")[0].firstChild.nodeValue) +
			'<br/>';
	if(random_listing.getElementsByTagName(namespace+"city")[0] && random_listing.getElementsByTagName(namespace+"state")[0])
		html += random_listing.getElementsByTagName(namespace+"city")[0].firstChild.nodeValue + ', ' +
			random_listing.getElementsByTagName(namespace+"state")[0].firstChild.nodeValue;
	if(random_listing.getElementsByTagName(namespace+"postalcode")[0])
		html += ' ' + random_listing.getElementsByTagName(namespace+"postalcode")[0].firstChild.nodeValue; 
	if(random_listing.getElementsByTagName(namespace+"fullName")[0])
		html += '<br/>Presented By : '+
			random_listing.getElementsByTagName(namespace+"fullName")[0].firstChild.nodeValue;
	if(random_listing.getElementsByTagName("guid")[0])
		html += '<br/><a href="'+
			random_listing.getElementsByTagName("guid")[0].firstChild.nodeValue +
				'">click here for more details</a>';
	details.setHTML(html);
	
	image.injectInside($('featured_listing'));
	details.injectInside($('featured_listing'));
}

////////////////////////////////////////NAVIGATION ANIMATIONS/////////////////////////////////
function loadNav(){
	var live = {};
	$$('#navlist div').each(function(el,i){
		if(!el.getProperty('title')){return;}
		var menu_fx;
		var height = 0;
		var name = el.getProperty('title');
		live[name] = false;
		if($(name)){
			if(name == 'Profile')
				height = 96;
			if(name == 'Services')
				height = 82;
			if(name == 'Listings')
				height = 46;
			if(name == 'Contact')
				height = 42;
			
			menu_fx = new Fx.Style($(name),'height',{duration:500,wait:false});
			$(name).setStyle('overflow','hidden');
			$(name).addEvent('mouseenter',function(e){
				live[name] = true;
			});
			$(name).addEvent('mouseleave',function(e){
				live[name]=false;
				var func = function(){
					if(!live[false])
						menu_fx.start('0px')
				}
				func.delay(100)
			});
		}
		var fx = new Fx.Styles(el.getElements('a')[0],{duration:200,wait:false})
		el.addEvent('mouseenter',function(e){
			e = new Event(e).stop();
			if(menu_fx)
				menu_fx.start(height+'px')
			fx.start({
				'border-bottom-width':'10px',
				'top':'0'
			});
		});
		el.addEvent('mouseleave',function(e){
			e = new Event(e).stop();
			var func = function(){
				if(menu_fx && !live[name])
					menu_fx.start('0px')
			}
			func.delay(200);
			fx.start({
				'border-bottom-width':'4px',
				'top':'6px'
			});
		});
	});
	
}
/////////////////////////////////////////LISTING CONTAINER////////////////////////////
var xmlDoc_Listings;
var namespace = document.all ? 'ps:':'';
var listings = [];

function formatCurrency(num) {
	num = num.toString().replace(/\$|\,/g,'');
	if(isNaN(num))
		num = "0";
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	cents = num%100;
	num = Math.floor(num/100).toString();
	if(cents<10)
		cents = "0" + cents;
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
		num = num.substring(0,num.length-(4*i+3))+','+num.substring(num.length-(4*i+3));
	return (((sign)?'':'-') + '$' + num + '.' + cents);
}
var item = new Class({
	initialize : function(xml,image_m){
		this.image = new Element('div');
		this.image.setStyle('float','left');
		this.image.setHTML(
			'<img src="'+image_m+'" style="border:3px solid #fff"/>'
		)
		this.details = new Element('div');
		this.details.addClass('description')
		var html = ''
		if(xml.getElementsByTagName("title")[0])
			html += 
				'<strong>' +
					xml.getElementsByTagName("title")[0].firstChild.nodeValue +
				'</strong><br />';
		if(xml.getElementsByTagName(namespace+"askingPrice")[0])
			html +=
				'Offered At '+ 
				formatCurrency(xml.getElementsByTagName(namespace+"askingPrice")[0].firstChild.nodeValue) +
				'<br/>';
		if(xml.getElementsByTagName(namespace+"leaseRate")[0])
			html +=
				'Offered At '+ 
				formatCurrency(xml.getElementsByTagName(namespace+"leaseRate")[0].firstChild.nodeValue) +
				'<br/>';
		if(xml.getElementsByTagName(namespace+"city")[0] && xml.getElementsByTagName(namespace+"state")[0])
			html += xml.getElementsByTagName(namespace+"city")[0].firstChild.nodeValue + ', ' +
				xml.getElementsByTagName(namespace+"state")[0].firstChild.nodeValue;
		if(xml.getElementsByTagName(namespace+"postalCode")[0])
			html += ' ' + xml.getElementsByTagName(namespace+"postalCode")[0].firstChild.nodeValue; 
		if(xml.getElementsByTagName(namespace+"fullName")[0])
			html += '<br/>Presented By : '+
				xml.getElementsByTagName(namespace+'fullName')[0].firstChild.nodeValue;
		if(xml.getElementsByTagName("guid")[0])
			html += '<br/><a href="'+
				xml.getElementsByTagName("guid")[0].firstChild.nodeValue +
					'">click here for more details</a>';
		this.details.setHTML(html);
		
		this.listing = new Element('div');
		this.listing.setProperty('id','listing');
		this.image.injectInside(this.listing)
		this.details.injectInside(this.listing)
	},
	swap : function(){
		var fx = new Fx.Style($('listing'),'opacity',{duration:500,wait:false});
		var fx_2 = new Fx.Style(this.listing,'opacity',{duration:500,wait:false});
		this.listing.setStyle('opacity','0')
		fx.start(0)
		var func = function(){
			$('listing').remove();
			this.listing.injectInside($('currentlyAvailable'))
		}.bind(this)
		func.delay(600);
		fx_2.start.delay(700,fx_2,1);
	}
});
//////////////////////////////////////////IMPORT XML//////////////////////////////////
function importXML_Listings(func){
	if (window.ActiveXObject)
	{
		xmlDoc_Listings = new ActiveXObject("Microsoft.XMLDOM");
		xmlDoc_Listings.onreadystatechange = function () {
			if (xmlDoc_Listings.readyState == 4) func()
		};
 	}else if (document.implementation && document.implementation.createDocument)
	{
		xmlDoc_Listings = document.implementation.createDocument("", "", null);
		xmlDoc_Listings.onload = func;
	}
	else
	{
		alert('Your browser can\'t handle this script');
		return;
	}
	xmlDoc_Listings.load("iProp/listings.xml");
}