/**
 * @author jmagner
 */
(function ($) {
    $.fn.template = function (opts) {
        return this.clone().each(function () {
            for (var i in opts) {
                if (typeof opts[i] === 'string') {
                    $(this).find(i).html(opts[i]);
                } else if (typeof opts[i] === 'object') {
                    for (var x in opts[i]) {
                        if (x === 'val' || x === 'css' || x === 'html' || x === 'text' || x === 'data' || x === 'width' || x === 'height' || x === 'offset') {
                            $(this).find(i)[x](opts[i][x]);
                        } else if (typeof opts[i][x] === 'function') {
                            $(this).find(i).bind(x, opts[i][x]);
                        } else {
                            $(this).find(i).attr(x, opts[i][x]);
                        }
                    }
                }
            }
        });
    };
})(jQuery);
$(function () {
    var loan_specialist = {
        "Andover": "David Johndrow",
        "Ansonia": "Sue Morin",
        "Ashford": "David Johndrow",
        "Avon": "Dan Danillowicz",
        "Barkhamsted": "Dan Danillowicz",
        "Beacon Falls": "Sue Morin",
        "Berlin": "Anna Podkowiak",
        "Bethany": "Sue Morin",
        "Bethel": "Sue Morin",
        "Bethlehem": "Sue Morin",
        "Bloomfield": "Dan Danillowicz",
        "Bolton": "David Johndrow",
        "Bozrah": "David Johndrow",
        "Branford": "Anna Podkowiak",
        "Bridgeport": "Sue Morin",
        "Bridgewater": "Sue Morin",
        "Bristol": "Sue Morin",
        "Brookfield": "Sue Morin",
        "Brooklyn": "David Johndrow",
        "Burlington": "Dan Danillowicz",
        "Canaan": "Dan Danillowicz",
        "Canterbury": "David Johndrow",
        "Canton": "Dan Danillowicz",
        "Chaplin": "David Johndrow",
        "Cheshire": "Sue Morin",
        "Chester": "Anna Podkowiak",
        "Clinton": "Anna Podkowiak",
        "Colchester": "David Johndrow",
        "Colebrook": "Dan Danillowicz",
        "Columbia": "Anna Podkowiak",
        "Cornwall": "Dan Danillowicz",
        "Coventry": "David Johndrow",
        "Cromwell": "Anna Podkowiak",
        "Danbury": "Sue Morin",
        "Darien": "Sue Morin",
        "Deep River": "Anna Podkowiak",
        "Derby": "Sue Morin",
        "Durham": "Anna Podkowiak",
        "East Granby": "Sue Morin",
        "East Haddam": "David Johndrow",
        "East Hampton": "David Johndrow",
        "East Hartford": "David Johndrow",
        "East Haven": "Anna Podkowiak",
        "East Lyme": "David Johndrow",
        "East Windsor": "David Johndrow",
        "Eastford": "David Johndrow",
        "Easton": "Sue Morin",
        "Ellington": "David Johndrow",
        "Enfield": "David Johndrow",
        "Essex": "Anna Podkowiak",
        "Fairfield": "Sue Morin",
        "Farmington": "OPEN",
        "Franklin": "David Johndrow",
        "Glastonbury": "David Johndrow",
        "Goshen": "Dan Danillowicz",
        "Granby": "Sue Morin",
        "Greenwich": "Sue Morin",
        "Griswold": "David Johndrow",
        "Groton": "David Johndrow",
        "Guilford": "Anna Podkowiak",
        "Haddam": "Anna Podkowiak",
        "Hamden": "Sue Morin",
        "Hampton": "David Johndrow",
        "Hartford": "Dan Danillowicz",
        "Hartland": "Dan Danillowicz",
        "Harwinton": "Dan Danillowicz",
        "Hebron": "David Johndrow",
        "Kent": "Dan Danillowicz",
        "Killingly": "David Johndrow",
        "Killingworth": "Anna Podkowiak",
        "Lebanon": "David Johndrow",
        "Ledyard": "David Johndrow",
        "Lisbon": "David Johndrow",
        "Litchfield": "Dan Danillowicz",
        "Lyme": "David Johndrow",
        "Madison": "Anna Podkowiak",
        "Manchester": "David Johndrow",
        "Mansfield": "David Johndrow",
        "Marlborough": "David Johndrow",
        "Meriden": "Anna Podkowiak",
        "Middlebury": "Sue Morin",
        "Middlefield": "Anna Podkowiak",
        "Middletown": "Anna Podkowiak",
        "Milford": "Sue Morin",
        "Monroe": "Sue Morin",
        "Montville": "David Johndrow",
        "Morris": "Dan Danillowicz",
        "Naugatuck": "Sue Morin",
        "Newington": "Anna Podkowiak",
        "Newtown": "Sue Morin",
        "New Britain": "Anna Podkowiak",
        "New Canaan": "Sue Morin",
        "New Fairfield": "Sue Morin",
        "New Hartford": "Dan Danillowicz",
        "New Haven": "Sue Morin",
        "New London": "David Johndrow",
        "New Milford": "Dan Danillowicz",
        "Norfolk": "Dan Danillowicz",
        "North Branford": "Anna Podkowiak",
        "North Canaan": "Dan Danillowicz",
        "North Haven": "Anna Podkowiak",
        "North Stonington": "David Johndrow",
        "Norwalk": "Sue Morin",
        "Norwich": "David Johndrow",
        "Old Lyme": "David Johndrow",
        "Old Saybrook": "Anna Podkowiak",
        "Orange": "Sue Morin",
        "Oxford": "Sue Morin",
        "Plainfield": "David Johndrow",
        "Plainville": "Sue Morin",
        "Plymouth": "Sue Morin",
        "Pomfret": "David Johndrow",
        "Portland": "David Johndrow",
        "Preston": "David Johndrow",
        "Prospect": "Sue Morin",
        "Putnam": "David Johndrow",
        "Redding": "Sue Morin",
        "Ridgefield": "Sue Morin",
        "Rocky Hill": "Anna Podkowiak",
        "Roxbury": "Sue Morin",
        "Salem": "David Johndrow",
        "Salisbury": "Dan Danillowicz",
        "Scotland": "David Johndrow",
        "Seymour": "Sue Morin",
        "Sharon": "Dan Danillowicz",
        "Shelton": "Sue Morin",
        "Sherman": "Dan Danillowicz",
        "Simsbury": "Sue Morin",
        "Somers": "David Johndrow",
        "South Windsor": "David Johndrow",
        "Southbury": "Sue Morin",
        "Southington": "Sue Morin",
        "Sprague": "David Johndrow",
        "Stafford": "David Johndrow",
        "Stamford": "Sue Morin",
        "Sterling": "David Johndrow",
        "Stonington": "David Johndrow",
        "Stratford": "Sue Morin",
        "Suffield": "Dan Danillowicz",
        "Thomaston": "Sue Morin",
        "Thompson": "David Johndrow",
        "Tolland": "David Johndrow",
        "Torrington": "Dan Danillowicz",
        "Trumbull": "Sue Morin",
        "Union": "David Johndrow",
        "Vernon": "David Johndrow",
        "Voluntown": "David Johndrow",
        "Wallingford": "Anna Podkowiak",
        "Warren": "Dan Danillowicz",
        "Washington": "Dan Danillowicz",
        "Waterbury": "Sue Morin",
        "Waterford": "David Johndrow",
        "Watertown": "Sue Morin",
        "West Hartford": "Dan Danillowicz",
        "West Haven": "Sue Morin",
        "Westbrook": "Anna Podkowiak",
        "Weston": "Sue Morin",
        "Westport": "Sue Morin",
        "Wethersfield": "Anna Podkowiak",
        "Willington": "David Johndrow",
        "Wilton": "Sue Morin",
        "Winchester": "Dan Danillowicz",
        "Windham": "David Johndrow",
        "Windsor": "Dan Danillowicz",
        "Windsor Locks": "Dan Danillowicz",
        "Wolcott": "Sue Morin",
        "Woodbridge": "Sue Morin",
        "Woodbury": "Sue Morin",
        "Woodstock": "David Johndrow"
    };
    String.prototype.trim = function () {
        return this.replace(/^\s+|\s+$/g, "");
    };
    $('.request-an-appointment').click(function (e) {
        e.preventDefault();
		$.get("modal-data/request-an-appointment.html", function(data){
			$('#modalTemplate #modalContentArea').html(data);
			$('#modal-content').modal({
				closeHTML: "<img src='images/clear.gif' class='modal-close' />",
				containerId: 'arm-request',
				onShow: function () {
					$('.request-available a').toggle(function (e) {
						e.preventDefault();
						$(this).addClass('selected');
					}, function (e) {
						e.preventDefault();
						$(this).removeClass('selected');
					});
					$('.request-interest p').click(function (e) {
						if (!e) var e = window.event;
						e.cancelBubble = true;
						if (e.stopPropagation) e.stopPropagation();
						$('.property-details .property-drop-down').fadeOut(150);
						$('.request-interest .drop-down').fadeIn(150);
					});
					$('.request-interest .drop-down ul li').click(function (e) {
						if (!e) var e = window.event;
						e.cancelBubble = true;
						if (e.stopPropagation) e.stopPropagation();
						var text = $(this).text();
						if (text.length > 26) {
							text = text.substr(0, 23) + '...';
						}
						$('.request-interest p').css('color', '#646464').html(text);
						$('.request-interest .drop-down').fadeOut(150);
					});
					$('.property-details p').click(function (e) {
						if (!e) var e = window.event;
						e.cancelBubble = true;
						if (e.stopPropagation) e.stopPropagation();
						$('.request-interest .drop-down').fadeOut(150);
						$('.property-details .property-drop-down').fadeIn(150);
					});
					$('.property-details .property-drop-down ul li').click(function (e) {
						if (!e) var e = window.event;
						e.cancelBubble = true;
						if (e.stopPropagation) e.stopPropagation();
						$('.property-details p').css('color', '#646464').html($(this).html());
						$('.property-details .property-drop-down').fadeOut(150);
					});
					$('body').click(function () {
						$('.request-interest .drop-down').fadeOut(150);
						$('.property-details .property-drop-down').fadeOut(150);
					});
					$('.autoclear').each(function () {
						$(this).val($(this).attr('title'));
					});
					$('.autoclear').focus(function () {
						$(this).css("color", "#646464");
						if ($(this).val() == $(this).attr("title")) {
							$(this).val("");
						}
					});
					$('.autoclear').blur(function () {
						if ($(this).val() == $(this).attr("title") || $(this).val() == '') {
							$(this).css("color", "#a0a0a0");
							$(this).val($(this).attr("title"));
						}
					});
					$('input').blur();
					$('.submit-btn').click(function () {
						function validate() {
							var name, phone, email, interest, details;
							// name
							if ($('#input-request-name').val() != '' && $('#input-request-name').val() != $('#input-request-name').attr('title')) {
								name = true;
							} else {
								$('#input-request-name').css('color', '#cc0000');
								name = false;
							}
							// phone
							if ($('#input-request-phone').val().match(/^\(?(\d{3})\)?[- ]?(\d{3})[- ]?(\d{4})$/) && $('#input-request-phone').val() != $('#input-request-phone').attr('title')) {
								phone = true;
							} else {
								$('#input-request-phone').css('color', '#cc0000');
								phone = false;
							}
							// e-mail
							if ($('#input-request-email').val().match(/^[a-z\d]+([\.\-\_][a-z\d]+)*@[a-z\d]+([\.\-\_][a-z\d]+)*(\.[a-z]{2,4})+$/i) && $('#input-request-email').val() != $('#input-request-email').attr('title')) {
								email = true;
							} else {
								$('#input-request-email').css('color', '#cc0000');
								email = false;
							}

							// interest
							if ($('.request-interest p').html() != 'Select') {
								interest = true;
							} else {
								$('.request-interest p').css('color', '#cc0000');
								interest = false;
							}
							// details
							if ($('#p-property-details').html() != 'Select') {
								details = true;
							} else {
								$('#p-property-details').css('color', '#cc0000');
								details = false;
							}

							if (name && interest && phone && email && details) return true;
							return false;
						}
						if (validate()) {
							var terr = loan_specialist[$('#p-property-details').text().trim()];
							var a = '';
							$('.request-available a.selected').each(function () {
								a += $(this).html() + ',';
							});
							if (a.charAt(a.length - 1) == ',') {
								a = a.substr(0, a.length - 1);
							}
							$('#arm-request').fadeOut(400, function () {
								$('#modal-content').after($('#thankyou-content').template({
									'.portrait': {
										src: 'images/' + terr.replace(/ /g, '').toLowerCase() + '.jpg'
									},
									'h2 span': $('#input-request-name').val(),
									'.specialist': terr,
									'.close-modal': {
										click: function () {
											$.modal.close();
										}
									}
								}));
								$('.portrait').attr("src", 'images/' + terr.replace(/ /g, '').toLowerCase() + '.jpg');
								$('.specialist').html(terr);
								$('#modal-content').remove();
								$(this).attr('id', 'arm-thankyou-container').height('474px').fadeIn(400);
							});
							$.post('about_locationshours_submit.php', {
								name: $('#input-request-name').val(),
								phone: $('#input-request-phone').val(),
								email: $('#input-request-email').val(),
								interest: $('.request-interest p').text(),
								details: $('#p-property-details').text(),
								lender: terr,
								available: a
							}, function (data) {
								$('#arm-request').fadeOut(400, function () {
									$('#modal-content').after($('#thankyou-content').template({
										'h2 span': $('#input-request-name').val(),
										'.close-modal': {
											click: function () {
												$.modal.close();
											}
										}
									}));
									$('#modal-content').remove();
									$(this).attr('id', 'arm-thankyou-container').fadeIn(400);
								});
							});
						}
					});
				},
				onOpen: function (dialog) {
					dialog.overlay.fadeIn(200, function () {
						dialog.container.fadeIn(200, function () {
							dialog.data.fadeIn(200, function () {
							});
						});
					});
				},
				onClose: function (dialog) {
					dialog.data.fadeOut(200, function () {
						dialog.container.fadeOut(200, function () {
							dialog.overlay.fadeOut(200, function () {
								$.modal.close();
							});
						});
					});
				}
			});
		});	
    });
});

