
function invalid(str) {
  var reg1 = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/; // not valid
  var reg2 = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/; // valid
  if (!reg1.test(str) && reg2.test(str)) { // if syntax is valid
    return false;
  }
  return true;
}

function validate(fObj) {
	  
	  	// First and Last Name
	  	if(fObj.name.value === "") {
			
			alert("Please enter your name.");
			return false;
		}
		
		// Emaill address
		if(invalid(fObj.jllEmail.value) || fObj.jllEmail.value === ""){
			alert("Please enter a valid E-Mail address.");
			return false;
	  	}	

		return true;
		
}


function send(fObj) {
	
	
		var sUrl = YAHOO.util.Dom.getAttribute(YAHOO.util.Dom.get("contactForm"), "action");
		
		function baCareerFormSuccess(o) {
			
			
		
			if(o.responseText !== undefined){ 
						
			
				//If the transaction was successfull
				if(o.responseText == "SUCCESS"){
					
				
					
					alert("Your registration has been successfully sent!");
					YAHOO.jll.container.contact.hide();
					
					fObj.reset();
				
				}
			} // end if


		} // end function
		
		function handleFailure(o) {}
			
		var callback = 
		{ 
		  success:baCareerFormSuccess
		}
		
		
		// the second argument is true to indicate file upload. 
		YAHOO.util.Connect.setForm(fObj); 

		
		var transaction = YAHOO.util.Connect.asyncRequest('POST', sUrl, callback); 	
		
	}
	
function sendCallback(e) {
		
		YAHOO.util.Event.stopEvent(e);
		
		var sendButton = document.getElementById("submit");
		
		if (validate(YAHOO.util.Dom.get("contactForm"))) {send(YAHOO.util.Dom.get("contactForm"));}
		
	} 
	
	 


var initForm = function(){

	YAHOO.util.Dom.addClass(document.body, "yui-skin-sam");

	YAHOO.namespace("jll.container")

	YAHOO.jll.container.contact =  
	        new YAHOO.widget.Panel("contact",   
	            { width:"630px",  
	              fixedcenter:true,  
	              close:true,  
	              draggable:false,  
	              zindex:4, 
	              modal:true, 
	              visible:false ,
				  effect:{effect:YAHOO.widget.ContainerEffect.FADE,duration:0.25}
            }  
        );
	
				
	var kl = new YAHOO.util.KeyListener(document, { keys:27 },                               
	                                              { fn:YAHOO.jll.container.contact.hide, 
	                                                scope:YAHOO.jll.container.contact, 
	                                                correctScope:true } ); 
	 
	YAHOO.jll.container.contact.cfg.queueProperty("keylisteners", kl);
	

	YAHOO.jll.container.contact.render(document.body); 

	
}

var showForm = function(e, o){
	
	YAHOO.util.Event.stopEvent(e);
	
	if (o.state === "NSW"){
		YAHOO.jll.container.contact.setHeader("Register Your Interest ("+o.state+")"); 
		var content = 			'<div class="contact clearfix">Please fill out the form below to register your interest:';
		content = content + '<form action="php/email.php" method="post" id="contactForm">';
	}
	else {
		YAHOO.jll.container.contact.setHeader("Register Your Interest ("+o.state+")"); 
		var content = 			'<div class="contact clearfix">Please fill out the form below to register your interest:';
		content = content + '<form action="../php/email.php" method="post" id="contactForm">';
	}

	content = content + '<label><strong>Name</strong> (required):<input type="text" name="name" id="name" /></label>';
	content = content + '<label><strong>Phone Number</strong>:<input type="text" name="contactNumber" id="contactNumber" /></label>';
	content = content + '<label><strong>Email Address</strong> (required):<input type="text" name="jllEmail" id="jllEmail" /></label>';
		
		if (o.state === "NSW"){
		
			content = content + '<p>To: <strong>Michael Fenton, Managing Director NSW, Jones Lang LaSalle</strong><br/>';
			content = content + 'Subject: <strong>NSW Property Countdown 2011</strong></p>';
			content = content + '<input type="hidden" name="jllState" id="jllState" value="nsw" />';
		}
		else {
			content = content + '<p>To: <strong>Andrew Wood, Managing Director VIC, Jones Lang LaSalle</strong><br/>';
			content = content + 'Subject: <strong>VIC Property Countdown 2011</strong></p>';
			content = content + '<input type="hidden" name="jllState" id="jllState" value="vic" />';
		}
		
		content = content + '<label class="label-comments">Comments:<br /><textarea name="comments" id="comments" rows="5" cols="40"></textarea></label>';
		content = content + '<label class="checkbox"><input type="checkbox" name="subscribe" id="subscribe" checked="checked" value="yes" />';
		content = content + '<strong>Yes,</strong> I agree to allow <strong>Jones Lang LaSalle</strong> to contact me via<br />the contact details I have provided above.</label>';
		
		if (o.state === "NSW"){
			content = content + '<label class="submit-area"><a class="button" href="#" id="submit-button"><img src="images/button-tick.png" width="16" height="16" border="0" />Send Registration</a></label></form></div>';
		}
		else {
			content = content + '<label class="submit-area"><a class="button" href="#" id="submit-button"><img src="../images/button-tick.png" width="16" height="16" border="0" />Send Registration</a></label></form></div>';
		}

	
	YAHOO.jll.container.contact.setBody(content);
	YAHOO.jll.container.contact.render(document.body); 
	var theForm = YAHOO.util.Dom.get("contactForm");
	YAHOO.util.Event.on("submit-button", "click", sendCallback);
	
	YAHOO.jll.container.contact.show();

}

YAHOO.util.Event.onDOMReady(initForm);

YAHOO.util.Event.on("nsw-cta", "click", showForm, {"state":"NSW", "page":"main"});
YAHOO.util.Event.on("nsw-cta-sub", "click", showForm, {"state":"NSW", "page":"sub"});
YAHOO.util.Event.on("vic-cta-sub", "click", showForm, {"state":"VIC", "page":"main"});


var showListing = function(e, o){
	
	YAHOO.util.Event.stopEvent(e);
	YAHOO.jll.container.listing.cfg.setProperty("height", "200px");
	YAHOO.jll.container.listing.show();
	window.scrollTo(0, 0);
	
	YAHOO.jll.container.listing.setBody('<iframe src="' + o.url + '" frameborder="0" width="500" scrolling="no" name="listingFrame" id="listingFrame"></iframe>');

		function changeMe(){
		//OLD: 

			if (YAHOO.env.ua.gecko > 0 || YAHOO.env.ua.opera > 0) {
			
				var newHeight = YAHOO.util.Dom.getAncestorByTagName(YAHOO.util.Dom.get("listingFrame").contentWindow.document.body, "HTML").offsetHeight  + 12;
				
			}  // e.g. Firefox 
		    
			if (YAHOO.env.ua.webkit > 0 ){
				var newHeight = YAHOO.util.Dom.getAncestorByTagName(YAHOO.util.Dom.get("listingFrame").contentWindow.document.body, "HTML").offsetHeight  + 48;
			}
			if (YAHOO.env.ua.ie < 8 && YAHOO.env.ua.ie > 0) {
				
				var newHeight = YAHOO.util.Dom.get("listingFrame").contentWindow.document.body.offsetHeight + 24;
				
			}     // Microsoft Internet Explorer 
			if (YAHOO.env.ua.ie > 7) {
				
				var newHeight = YAHOO.util.Dom.get("listingFrame").contentWindow.document.body.offsetHeight + 12;
				
			}     // Microsoft Internet Explorer 
	
			var hdHandle = YAHOO.util.Dom.getElementsByClassName("hd", "div", "listing")[0];
			YAHOO.util.Dom.addClass(hdHandle, o.saleType);
	
			YAHOO.jll.container.listing.hideEvent.subscribe(function(){
																	 
					YAHOO.util.Dom.removeClass(hdHandle, o.saleType);												 
																	 
			});
	
			YAHOO.jll.container.listing.cfg.setProperty("height", newHeight + "px")
			YAHOO.util.Dom.setStyle("listingFrame", "height" , newHeight + "px");
			
			_gaq.push(['_trackEvent', o.state, 'Click', YAHOO.util.Dom.getAttribute(o.listingLink, "title")]);
		
		}
			
			
			YAHOO.util.Event.on("listingFrame", "load", changeMe);
	
}

var initProperties = function(e){
	
	if (YAHOO.util.Dom.get("properties") != null) {
		
		// Setup Lightbox for Listings
		YAHOO.util.Dom.addClass(document.body, "yui-skin-sam");
		YAHOO.namespace("jll.container")
		YAHOO.jll.container.listing =  
	        new YAHOO.widget.Panel("listing",   
	            { width:"500px",
	              fixedcenter:false,  
				  underlay: "none",
	              close:true,  
	              draggable:false,  
	              zindex:4, 
	              modal:true, 
	              visible:false ,
				   effect:{effect:YAHOO.widget.ContainerEffect.FADE,duration:0.25}
            }  
        );	
		var kl = new YAHOO.util.KeyListener(document, { keys:27 },                               
	                                              	  { fn:YAHOO.jll.container.listing.hide, 
	                                                	scope:YAHOO.jll.container.listing, 
	                                                	correctScope:true } ); 
	 
		YAHOO.jll.container.listing.cfg.queueProperty("keylisteners", kl);
		//YAHOO.jll.container.listing.cfg.setProperty("context", ["wrapper", "tl", "tl"]);

		YAHOO.jll.container.listing.render(document.body);
		YAHOO.jll.container.listing.setHeader(""); 
		// End LightBox Setup
		
		/*YAHOO.jll.container.listing.hideEvent.subscribe(function(){
																 YAHOO.jll.container.listing.setBody();
																 YAHOO.jll.container.listing.render(document.body);
														}); */
		
		//Assign rollover states
		function highlight(e, o){ YAHOO.util.Dom.addClass(o, 'over');}
		function unhighlight(e, o){YAHOO.util.Dom.removeClass(o, 'over');}
		
		// Assign click actions to properties
		var listingLinks = YAHOO.util.Dom.getElementsByClassName("listing-icon", "a", "properties");
		
		inVic = false;
		// Are we in victoria?
		if(YAHOO.util.Dom.get("victoria") != null){
			inVic = true;	
		}
		
		var saleType = "";
		
		for (i=0;i<=listingLinks.length;i++){
		
		   if(!YAHOO.util.Dom.hasClass(listingLinks[i], "blank")){
		
			// AUCTION
			if(YAHOO.util.Dom.hasClass(listingLinks[i], "auction")) {
				saleType = "auction";									
			}
			// EOI
			if(YAHOO.util.Dom.hasClass(listingLinks[i], "eoi")) {
				saleType = "eoi";									
			}
			// TENDER
			if(YAHOO.util.Dom.hasClass(listingLinks[i], "tender")) {
				saleType = "tender";									
			}
			// SALE 
			if(YAHOO.util.Dom.hasClass(listingLinks[i], "sale")) {
				saleType = "sale";									
			}
			// FOR SALE OR LEASE
			if(YAHOO.util.Dom.hasClass(listingLinks[i], "salelease")) {
				saleType = "salelease";									
			}
					// AUCTION
			if(YAHOO.util.Dom.hasClass(listingLinks[i], "lease")) {
				saleType = "lease";									
			}
					// AUCTION
			if(YAHOO.util.Dom.hasClass(listingLinks[i], "sold")) {
				saleType = "sold";									
			}
		
			if(!inVic){
				YAHOO.util.Event.on(listingLinks[i], "click", showListing, {"url":listingLinks[i].href, "state":"nsw", "saleType": saleType, "listingLink":listingLinks[i]});
			}
			else {
				YAHOO.util.Event.on(listingLinks[i], "click", showListing, {"url":listingLinks[i].href, "state":"vic", "saleType": saleType, "listingLink":listingLinks[i]});
			}
			
			YAHOO.util.Event.on(YAHOO.util.Dom.getAncestorByTagName(listingLinks[i], "li"), 'mouseover', highlight, YAHOO.util.Dom.getAncestorByTagName(listingLinks[i], "li"));
			YAHOO.util.Event.on(YAHOO.util.Dom.getAncestorByTagName(listingLinks[i], "li"), 'mouseout', unhighlight, YAHOO.util.Dom.getAncestorByTagName(listingLinks[i], "li"));
		
		   }
		}
		
	}
						   
}

YAHOO.util.Event.onDOMReady(initProperties);

