$(document).ready(function() {
	mac_pc();
	if ($('#arrow').length > 0) home_slideshow();
	if ($('#email_form').length > 0) email_form();
	if ($('a.tooltip').length > 0) tooltips();
	if ($('ul#mycarousel').length > 0) {
		jQuery('#mycarousel').jcarousel({
	        wrap: 'circular',
			scroll: 1,
			buttonNextHTML:'<a id="arrow" href="#">Next</a>',
	        itemVisibleInCallback: {onBeforeAnimation: mycarousel_itemVisibleInCallback},
	        itemVisibleOutCallback: {onAfterAnimation: mycarousel_itemVisibleOutCallback}
	    });
	}
	if ($('ul#thumbnails_mini').length > 0) {
		green_overs();
		SWFAddress.addEventListener(SWFAddressEvent.CHANGE, handleChange);
	}
	if ($('img.image_header').length > 0) products_slideshow();
	if ($('#tweet').length > 0) {
		$("#tweet").tweet({
            username: "PPS_StLouis",
            count: 1,
            loading_text: "Loading..."
        });
		$('#social_links a').hover(function() {
			$(this).fadeTo(200,.5);
		},function() {
			$(this).fadeTo(200,1);
		});
	}
});

var addthis_config = {
    services_compact: 'email, facebook, twitter, tumblr, digg, blogger, wordpress, delicious, googlereader, linkedin',
    services_exclude: 'print'
}

function products_slideshow() {	
	$('.image_header').each(function() {
		$(this).fadeOut(0);
		if ($(this).hasClass('active')) $(this).fadeIn(0);
	});
	
	// start slideshow
	var my_int = window.setInterval('auto_products_slideshow()',5000);
}

function fade(index) {
	$('.image_header').attr('class','image_header');
	$('.image_header').eq(index).fadeIn(750);
	$('.image_header').eq(index).attr('class','image_header active')
}

function auto_products_slideshow(timeint) {
	var total = ($('.image_header').length)-1;

	$('#image_header img.active').each(function() {
		$(this).fadeOut(750);
		var index = $('.image_header').index(this);
		if (index >= total) {
			fade(0);
		} else {
			fade(index+1);
		}
	});
}

function tooltips() {
	$('a.tooltip').tooltip({
		showURL:false,
		track:true,
		fade:150
	});
}

function green_overs() {
	$('ul#thumbnails_mini li a').mouseover(function() { $(this).fadeTo(0,.5); });
	$('ul#thumbnails_mini li a').mouseout(function() { $(this).fadeTo(0,1); });
	$('ul#thumbnails_mini li a').click(function() {
		$('ul#thumbnails_mini li a').attr('class','tooltip')
		$(this).attr('class','active tooltip');
		make_active();
		return false;
	});
	make_active();
}

function make_active() {
	$('ul#thumbnails_mini li a.active').mouseover(function() { $(this).fadeTo(0,.5); });
	$('ul#thumbnails_mini li a.active').mouseout(function() { $(this).fadeTo(0,.5); });
	$('ul#thumbnails_mini li a').fadeTo(0,1);
	$('ul#thumbnails_mini li a.active').fadeTo(0,.5);
}

function email_form() {	
	$('#b_send_note').click(function() {
		$(this).toggleClass('shift');
		//$('#toggle').toggleClass('hide');
		if ($(this).hasClass('shift')) {
			$('#toggle').slideDown(800);
		} else {
			$('#toggle').slideUp(800);
		}	
		return false;
	});
	
	$('#full_name').click(function() { $(this).css('background-image','none'); });
	$('#email_address').click(function() { $(this).css('background-image','none'); });
	$('#phone_number').click(function() { $(this).css('background-image','none'); });
	
	$('#full_name').blur(function() { if ($(this).val() == '') { $(this).css('background-image','url(/library/images/background-input-full-name.gif)'); } });
	$('#full_name').focus(function() { if ($(this).val() == '') { $(this).css('background-image','url(/library/images/background-input-full-name.gif)'); } });
	$('#email_address').blur(function() { if ($(this).val() == '') { $(this).css('background-image','url(/library/images/background-input-email-address.gif)'); } });
	$('#email_address').focus(function() { if ($(this).val() == '') { $(this).css('background-image','url(/library/images/background-input-email-address.gif)'); }});
	$('#phone_number').blur(function() { if ($(this).val() == '') { $(this).css('background-image','url(/library/images/background-input-phone-number.gif)'); } });
	$('#phone_number').focus(function() { if ($(this).val() == '') { $(this).css('background-image','url(/library/images/background-input-phone-number.gif)'); } });
	
	$('#submit').click(function() {
		var email = $('#email_address').val();
		var full_name = $('#full_name').val();
		var phone = $('#phone_number').val();
		var comment = $('#comment_question').val();
		var about = $('#about').val();
		var account = $('#account').val();
		var error = 0;
		var exp = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;

		if (full_name == '' || full_name == ' ') {
			$('#full_name').animate({
				borderTopColor:'#DD0303',
				borderRightColor:'#DD0303',
				borderBottomColor:'#DD0303',
				borderLeftColor:'#DD0303'
			},{
				duration:1000,
				easing:'swing',
				complete:function() {
					//$(this).animate({border:'1px solid #FFFFFF'},{duration:500,easing:'swing'});
				}
			});
			error++;
		} else {
			$('#full_name').css('border-color','#F2F2F2');
		}

		if (email == '' || email == ' ' || !exp.test(email)) {
			$('#email_address').animate({
				borderTopColor:'#DD0303',
				borderRightColor:'#DD0303',
				borderBottomColor:'#DD0303',
				borderLeftColor:'#DD0303'
			},{
				duration:1000,
				easing:'swing',
				complete:function() {
					//$(this).animate({border:'1px solid #FFFFFF'},{duration:500,easing:'swing'});
				}
			});
			error++;
		} else {
			$('#email_address').css('border-color','#F2F2F2');
		}

		if (comment == '' || comment == ' ') {
			$('#comment_question').animate({
				borderTopColor:'#DD0303',
				borderRightColor:'#DD0303',
				borderBottomColor:'#DD0303',
				borderLeftColor:'#DD0303'
			},{
				duration:1000,
				easing:'swing',
				complete:function() {
					//$(this).animate({border:'1px solid #FFFFFF'},{duration:500,easing:'swing'});
				}
			});
			error++;
		} else {
			$('#comment_question').css('border-color','#F2F2F2');
		}

		if (error > 0) {
			return false;
		} else {
			$.ajax({
				type:"POST",
				url:"/library/ajax/contact.php",
				data:"email="+email+"&full_name="+full_name+"&phone="+phone+"&comment="+comment+"&about="+about+"&account="+account,
				success:function(results) {
					if (results == 'Success') {
						$('#toggle').slideUp(800,function() {
							$('#b_send_note').toggleClass('shift');
							var thankyou = '<div id="thankyou" class="hide"><span>Thank you for your submission</span></div>';
							$('#questions').append(thankyou);
							setTimeout('$(\'#thankyou\').fadeIn(500)',200);
							setTimeout('$(\'#thankyou\').fadeOut(500)',2000);
							$('#email_address').attr('value','');
							$('#full_name').attr('value','');
							$('#phone_number').attr('value','');
							$('#comment_question').attr('value','');
							$('#about').attr('value','');
						});					
					} else {
						// report error message
						var error = '<div id="thankyou"><span>An error occured</span></div>';
						$('#questions').append(error);
					}
				}
			});
			return false;
		}
	});
}


function home_slideshow() {
	$('a#arrow').click(function() {
		var p = $('ul#slideshow').position();
		var x = p.left-960;
		$('ul#slideshow').animate({
			left:x+'px'
		},500);
		return false;
	});
}

// Custom utility functions

function toTitleCase(str) {
    return str.substr(0,1).toUpperCase() + str.substr(1).toLowerCase();
}      

function formatTitle(title) {
    return 'SWFAddress Website' + (title != '/' ? ' / ' + toTitleCase(title.substr(1, title.length - 2).replace(/\//g, ' / ')) : '');
}


// Custom SWFAddress and Ajax handling
function getTransport() {
    if (window.XMLHttpRequest) {
        return new XMLHttpRequest();
    } else if (window.ActiveXObject) {
        try {
            return new ActiveXObject('Msxml2.XMLHTTP');
        } catch(e) {
            return new ActiveXObject('Microsoft.XMLHTTP');
        }
    }
}

function appear(content, value) {
    if (typeof value == 'undefined') value = 0;
    var property = content.filters ? 'filter' : 'opacity';
    if (value == 100) {
        if (content.style.removeAttribute) {
            content.style.removeAttribute(property);
        } else {
            content.style[property] = 1;
        }
    } else {
        content.style[property] = content.filters ? 'alpha(opacity=' + value + ')' : value/100;
        setTimeout(function () {appear(content, value + 20)}, 0);
    }
}

function updateChange(xhr) {
    if (xhr.readyState == 4) {
        if (xhr.status == 200) {
            var content = document.getElementById('product_content');
            content.innerHTML = xhr.responseText;
            appear(content);
			if ($('#social').length > 0) {
            var links = document.getElementById('social').getElementsByTagName('a');
            for (var i = 0, link, parts, pairs; link = links[i]; i++) {
                parts = link.href.split('?');
                pairs = parts[1].split('&');
                for (var j = 0, params; j < pairs.length; j++) {
                    params = pairs[j].split('=');
                    if (params[0] == 'url' || params[0] == 'u' || params[0] == 'bkmk')
                        pairs[j] = params[0] + '=' + SWFAddress.getBaseURL() + SWFAddress.getValue();
                    if (params[0] == 'title' || params[0] == 't')
                        pairs[j] = params[0] + '=' + SWFAddress.getTitle();
                }
                link.href = parts[0] + '?' + pairs.join('&');
            }
		}
        } else {
            alert('Error: ' + xhr.status + '!');
        }
    }
	
}

function handleChange(event) {
    var index, rel, links = document.getElementsByTagName('a'), path = event.path;
    if (path.substr(path.length - 1) != '/') {
        path += '/';
    }
    for (var i = 0, l, link; link = links[i]; i++) {
        index = link.rel.indexOf('?');
        rel = (index > -1) ? link.rel.substr(0, index) : link.rel;
        //link.className = (rel == path) ? 'selected' : '';

    }
    var parameters = '';
    for (var p in event.parameters) {
        parameters += '&' + p + '=' + event.parameters[p];
    }
    var xhr = getTransport();
    xhr.onreadystatechange = function() {
        updateChange(xhr);
    }
	
    xhr.open('get', '/library/ajax/products.php?base='+SWFAddress.getBaseURL()+'&swfaddress=' + event.path + parameters, true);
    xhr.send('');
    //SWFAddress.setTitle(formatTitle(event.path));
	
	$('a.addthis_button').attr('addthis:url',SWFAddress.getBaseURL() + '/#'+SWFAddress.getValue());
}

function copyLink() {
    if (window.clipboardData && clipboardData.setData) {
        clipboardData.setData('Text', SWFAddress.getBaseURL() + SWFAddress.getValue());
    } else {
        alert('Unsupported browser.');
    }
}

/* jcarousel */
var mycarousel_itemList = [
    {url: 'image-home-one.gif', link: '<a id="visit_showroom" class="blue_bar" href="/premier-plumbing-studio/">Visit our showroom</a>'},
    {url: 'image-home-two.jpg', link: '<a id="checkout_full" class="blue_bar" href="/our-products/">Check out our full line of product offerings</a>'},
    {url: 'image-home-three.jpg', link: '<a id="learn_more_about" class="blue_bar" href="/our-companies/">Learn more about our companies and history</a>'}
];

function mycarousel_itemVisibleInCallback(carousel, item, i, state, evt) {
    // The index() method calculates the index from a
    // given index who is out of the actual item range.
    var idx = carousel.index(i, mycarousel_itemList.length);
    carousel.add(i, mycarousel_getItemHTML(mycarousel_itemList[idx - 1]));
};

function mycarousel_itemVisibleOutCallback(carousel, item, i, state, evt)
{
    carousel.remove(i);
};


function mycarousel_getItemHTML(item) {
    return '<img src="/library/images/' + item.url + '" width="960" height="377" alt="" />'+item.link;
};
function mac_pc() {
	if (navigator.appVersion.indexOf("Mac")!=-1) {
		$('body').addClass('mac');
	} else {
		$('body').addClass('pc');
	}
	$.each($.browser, function(i,e) {
		if (i != 'version') {
			$('body').addClass(i);
		} else {
			var v = String(e).split('.');
			$('body').addClass('v'+v[0]);
		}
	});
}
