/* <-- global functions for the homeshq site -->
 * The following scriopting is copyright homesHQ.com, IMG(Interactive Media Group) 
 * and Forum Communiations and may not be reproduced.
 */
/*global jQuery window document */
// insertAfter can be used when insertBefore can not be used
function insertAfter(newElement, targetElement)
{
	var parent = targetElement.parentNode;
	if ( parent.lastChild == targetElement )
	{
		parent.appendChild(newElement);
	}
	else
	{
		parent.insertBefore(newElement, targetElement.nextSibling);
	}
}

var head = document.getElementsByTagName("head")[0];

// reusable funtion to insert javascript into head of document;
// to use, simpy call the script and insert source as the argument
// example insertJavascript("/javascript/animatedcollapse.js");
function insertJavascript(srcN)
{
    var nScript = document.createElement("script");
    nScript.setAttribute("src", srcN);
    nScript.setAttribute("type", "text/javascript");
    nScript.setAttribute("charset", "utf-8");
    head.appendChild(nScript);
}

// reusable funtion to insert stylesheet into head of document;
// to use, simpy call the script and insert href as the first argument
// the second option is optional to describe media. If it is ommitted then
// the media will default to screen (media="screen")
// example insertStylesheet("/global_site/template/css/sBillboard.css", "screen,handheld");
// or insertStylesheet("/global_site/template/css/sBillboard.css");
function insertStylesheet(hrefN, media)
{ // reusable function to insert stylesheet into head of document
    var nStyle = document.createElement("link");
    if (media)
    {
        nStyle.setAttribute("media", media);
    }
    else
    {
        nStyle.setAttribute("media", "screen");
    }
    nStyle.setAttribute("rel", "stylesheet");
    nStyle.setAttribute("href", hrefN);
    nStyle.setAttribute("type", "text/css");
    head.appendChild(nStyle);
}
function showLink(whichlink)
{
    var externalHref = jQuery(whichlink).attr('href');
    window.open(externalHref, "_blank");
    return false;
}
function externalLinks()
{
    var anchors = jQuery('a');
    for ( var i = 0; i < anchors.length; i++)
    {
        var anchor = anchors[i];
        if ( jQuery(anchor).attr('href') && jQuery(anchor).attr('rel') == 'external' )
        {
			jQuery(anchor).click( function() {
                return showLink(this);
            });
        }
    }
}
function replaceLink(thisLink)
{
	var newForm=jQuery('<form></form>').addClass('changeRegion displayInline');
	//get regions via AJAX REQUEST
	jQuery.get('/buildRegion.cfm', function(xml){
			jQuery(xml).find('response').each( function() {
					var error = jQuery(this).find('error').text();
					
					if( error == 'false' )
					{
						//build region response
						var regionSelect=jQuery('<select></select>')
								.attr('name','zeeID')
								.addClass('displayInline')
								.change( function(){

										var regionID = jQuery('select[name=zeeID] option:selected:selected').val();
										var thisError = [];
										if ( regionID === '' )
										{
											thisError.push("You must choose region!");
										}			
										if( thisError.length > 0 )
										{
											jQuery.showMessage( {'thisMessage':thisError} );
										}
										else
										{
											// removed jQuery.get
											window.parent.location = "http://www.homeshq.com/?zeeID=" + regionID;
										}
										return false;									
							});
							//end of regionSelect
						jQuery(this).find('regionInfo').each( function() {
								var zeeID=jQuery(this).attr('zeeID');
								var regionName=jQuery(this).text();
								var newOption=jQuery('<option></option').val(zeeID).text(regionName);
								jQuery(regionSelect).append(newOption);
						});
						jQuery(newForm).append(regionSelect);
					}
			});
	});
	jQuery(thisLink).replaceWith(newForm);
	return false;
}
function changeLink()
{
	var changeLinks = jQuery('a');
    for ( var i = 0; i < changeLinks.length; i++)
    {
        var thisLink = changeLinks[i];
        if ( jQuery(thisLink).attr('href') && jQuery(thisLink).attr('title') == 'Change Region' )
        {
			jQuery(thisLink).click( function() {
                return replaceLink(this);
            });
        }
    }
}
jQuery(function(){
	externalLinks();
	changeLink();
	/* HOVER AFFECT FOR LISTINGS */
	jQuery('div.listing').hover(function () {
			var index = jQuery('div.listing').index(this);
			jQuery(this).css({'background-color':'#fffae7','border':'#087700 2px solid'});
			if ( index !== 0 )
			{
				jQuery(this).prev().css('border','#ffffff 2px solid');
			}
		}, function () {
			var index = jQuery('div.listing').index(this);
			jQuery(this).css({'background-color':'#ffffff','border':'#ffffff 2px solid','border-bottom':'#cccccc 2px dotted'});
			if ( index !== 0 )
			{
				jQuery(this).prev().css('border-bottom','#cccccc 2px dotted');
			}
	});
	/* CHANGE USER DROP DOWN */
	jQuery('#toolbarRegion').text('Change Region');
	jQuery('.loginLink').text('Login');
	jQuery('.loginLink').click(function(){
		var loginPosition = jQuery('#loginLink').position();
		jQuery('#signin').css({'top': (loginPosition.top + 22) + 'px', 'left': (loginPosition.left - jQuery('#signin').width()/2) + 'px'});
		jQuery('#signin').toggle();
		if( jQuery('#signin').css('display') == "none")
		{
			jQuery('#loginLink').parent().css('background-color','#087700');
		}
		else
		{
			jQuery('#loginLink').parent().css('background-color','#d7ceaf');
		}
		jQuery('#signin').click(function(event) {
			event.stopPropagation();
		});
		jQuery(document).click(function(){  
			jQuery('#loginLink').parent().css('background-color','#087700');
			jQuery('#signin').fadeOut();
		});
		return false;
	});
	/* USER SIGN IN FORM */
	jQuery('#signin input[type=submit]').click(function() {
		var errorMessage=[];
		var loginData = jQuery('#signin').serializeArray();
		if( jQuery('#signin input[name=email]').val() === '' )
		{
			errorMessage.push('Please enter a valid email address');
		}
		if( jQuery('#signin input[name=password]').val() === '' )
		{
			errorMessage.push('Please enter your password');
		}
		if( errorMessage.length > 0 )
		{
			jQuery.showMessage({thisMessage: errorMessage, className: 'error', displayNavigation: false, autoClose: true});
		}
		else
		{
			// HIDE FORM AND REPLACE WITH LOADING IMAGE
			jQuery('.dl-signin').hide();
			jQuery('.forgot').hide();
			jQuery('#signin img').show();
			jQuery.get('module/logincheck.cfm', loginData, function(xml) {
				jQuery(xml).find('response').each( function() {
					var error = jQuery(this).find('error').text();
					var returnMessage = [jQuery(this).find('returnMessage').text()];
					if( error == 'false' )
					{
						window.location.reload(true);
					}
					else
					{
						jQuery('#signin img').hide();
						jQuery('.dl-signin').show();
						jQuery('.forgot').show();
						jQuery.showMessage({thisMessage: returnMessage, className: 'error', displayNavigation: false, autoClose: true});
					}
				});
			});
		}
		return false;
	});
});