/*
	TheLockUp.com - design.js
	Enhancement functions related to the layout and design of the site, requires mootools.js, mootools-more.js, mootools-sqeezebox.js
	11/12/09
*/

// Editable setup variables:
var CallbackURL = "/Callback/";
var LeadPopupURL = "/LeadPopup/";







// Non-editable:
var tradegothic = { src: '/images/tradegothic.swf' };
sIFR.activate(tradegothic);
sIFR.replace(tradegothic, {
	wmode: 'transparent',
	selector: '.signinform h1, .signinform h3',
	forceSingleLine: true,
	css: [
		'.sIFR-root { background-color:#28458f;font-size:18px;letter-spacing:-0.75;text-transform:uppercase;font-weight:bold;color:#FFFFFF; }',
		'.name { color:#C3D5EC; }'
	]
});
sIFR.replace(tradegothic, {
	wmode: 'transparent',
	selector: '.search_results h1',
	forceSingleLine: true,
	css: [
		'.sIFR-root { background-color:#28458f;font-size:19px;letter-spacing:-0.75;text-transform:uppercase;font-weight:bold;color:#FFFFFF; }',
		'.name { color:#C3D5EC; }'
	]
});
sIFR.replace(tradegothic, {
	wmode: 'transparent',
	selector: '.results_list h1, .regular_content h1, .fullwidth_content h1',
	css: [
		'.sIFR-root { background-color:#28458f;font-size:26px;letter-spacing:-0.75;text-transform:uppercase;font-weight:bold;color:#FFFFFF; }',
	]
});
sIFR.replace(tradegothic, {
	wmode: 'transparent',
	selector: '.loc_detail h1',
	css: [
		'.sIFR-root { background-color:#28458f;font-size:19px;letter-spacing:-0.75;text-transform:uppercase;font-weight:bold;color:#FFFFFF; }',
		'.name { color:#C3D5EC; }'
	]
});
sIFR.replace(tradegothic, {
	wmode: 'transparent',
	selector: '.rcol .tabcontent h3',
	css: [
		'.sIFR-root { background-color:#1f356f;font-size:15px;letter-spacing:-0.35;text-transform:uppercase;font-weight:bold;color:#FFFFFF; }',
		'a { color:#FFFFFF;text-decoration:none; }',
		'a:hover { color:#f6f280; }'
	]
});

window.addEvent("domready", function () {
    $$('img.mo').each(function (img) {
        var src = img.getProperty('src');
        var extension = src.substring(src.lastIndexOf('.'), src.length)
        img.addEvent('mouseenter', function () { img.setProperty('src', src.replace(extension, '-mo' + extension)); });
        img.addEvent('mouseleave', function () { img.setProperty('src', src); });
    });

    //Masthead and home page search form interactive styles and default text handling
    $$('#mast input[type=text]', '#homefindlocs input[type=text]').addEvents({
        'focus': function () {
            var mybound = hidesearchdefault.bind(this);
            mybound();
        },
        'blur': function () {
            var mybound = showsearchdefault.bind(this);
            mybound();
        }
    });
    hidesearchdefault = function () {
        if (this.value == 'City, state, or zip code') {
            this.value = '';
            this.addClass('selected');
        }
    };
    showsearchdefault = function () {
        if (this.value == '') {
            this.value = 'City, state, or zip code';
            this.removeClass('selected');
        }
    };
    if ($$('#homefindlocs .form')[0]) {
        $$('#homefindlocs .form')[0].addEvent('click', function () {
            $$('#homefindlocs input[type=text]')[0].focus();
        });
    }

    //Add nav and home page panel rollover capabilities for IE6
    sfHover = function () {
        var sfEls = $$(".nav li");
        for (var i = 0; i < sfEls.length; i++) {
            sfEls[i].onmouseover = function () {
                this.className += " hover";
            }
            sfEls[i].onmouseout = function () {
                this.className = this.className.replace(new RegExp(" hover\\b"), "");
            }
        }
    };
    if (Browser.Engine.trident4) {
        /*'#mast ul', '#mast li', */
        $$('#homefindlocs .form', '#homesecondary .block a').addEvents({
            'mouseover': function () {
                this.addClass('hover');
            },
            'mouseout': function () {
                this.removeClass('hover');
            }
        });
        sfHover();
    }


    //Tab nav event handlers
    if ($$('.tabnav').length > 0) {
        $$('.tabnav a').addEvent('click', function (e) {
            e.stop();
            this.getParent('.tabnav').getElements('a').removeClass('selected');
            this.addClass('selected');
            var targetcontent = this.href.slice(this.href.indexOf("#") + 1, this.href.length);
            this.getParent('.tabgroup').getElements('.tabcontent').addClass('hide');
            $(targetcontent).removeClass('hide');
        });
    }

    /* Nice tooltips
    var alltipels = $$('.loc_unitslist td.size');
    if (alltipels.length > 0) {
        var alltips = new Tips(alltipels, {
            className: 'tiptainer',
            hideDelay: 50,
            showDelay: 50,
            fixed: true,
            offsets: { 'x': 16, 'y': 0 }
        });
    }
    */

    //format phone
    function formatPhone(phone) {
        var theCount = 0;
        var myString = phone.value;
        var newString = "";

        var theLen = myString.length;
        for (var i = 0; i < theLen; i++) {
            // Character codes for ints 1 - 9 are 48 - 57
            if ((myString.charCodeAt(i) >= 48) && (myString.charCodeAt(i) <= 57))
                newString = newString + myString.charAt(i);
        }
        // Now the validation to determine that the remaining string is 9 characters.
        if (newString.length == 10) {
            // Now the string has been stripped of other chars it can be reformatted to ###-##-#### 
            var newLen = newString.length;
            var newPhone = "";
            for (var i = 0; i < newLen; i++) {
                if ((i == 2) || (i == 5)) {
                    newPhone = newPhone + newString.charAt(i) + "-";
                } else {
                    newPhone = newPhone + newString.charAt(i);
                }
            }
            phone.value = newPhone;
            return true;
        } else {
            phone.focus();
            return false;
        }
    }

    //Callback popup form setup
    initcallback = function () {
        //replace form submit with ajax request
        $$('.callbackpop .form')[0].addEvent('submit', function (e) {
            new Event(e).stop();
            submitcallback();
        });
        $$('.callbackpop button')[0].addEvent('click', function (e) {
            new Event(e).stop();
            submitcallback();
        });
    };
    //Callback form submit
    submitcallback = function () {
        if ($('strName').value !== '') {
            if ($('strPhone').value !== '') {
                if (formatPhone($('strPhone'))) {
                    $$('.callbackpop p')[0].set('class', 'okay');
                    $$('.callbackpop p')[0].set('html', 'Sending request...');
                    var myHTMLRequest = new Request.HTML({
                        //url: $$('.callbackpop form')[0].get('action'),
                        url: CallbackURL,
                        onSuccess: function (restree, resel, reshtml) {
                            var myElement;
                            resel.each(function (item) {
                                if (item.id == 'popupcontent') {
                                    myElement = item;
                                }
                            });
                            $('sbox-content').set('html', myElement.get('html'));
                        }
                    }).post($$('.callbackpop .form')[0]);
                } else {
                    $$('.callbackpop p')[0].set('class', 'error');
                    $$('.callbackpop p')[0].set('html', '<strong>Invalid Phone number [XXX-XXX-XXXX].</strong>');
                }
            } else {
                $$('.callbackpop p')[0].set('class', 'error');
                $$('.callbackpop p')[0].set('html', '<strong>Phone number is required.</strong>');
            }
        } else {
            $$('.callbackpop p')[0].set('class', 'error');
            $$('.callbackpop p')[0].set('html', '<strong>Your name is required.</strong>');
        }
    };

    //leadpop popup form setup
    initleadpop = function () {
        //replace form submit with ajax request
        $$('.leadpop .form')[0].addEvent('submit', function (e) {
            new Event(e).stop();
            submitleadpop();
        });
        $$('.leadpop button')[0].addEvent('click', function (e) {
            new Event(e).stop();
            submitleadpop();
        });
    };
    //leadpop form submit
    submitleadpop = function () {
        if ($('NameTextBox').value !== '') {
            if ($('EmailTextBox').value !== '') {
                if ($('ZipTextBox').value !== '') {
                    if ($('PhoneTextBox').value !== '') {
                        if (formatPhone($('PhoneTextBox'))) {
                            $$('.leadpop p')[0].set('class', 'okay');
                            $$('.leadpop p')[0].set('html', 'Sending request...');
                            var myHTMLRequest = new Request.HTML({
                                //url: $$('.leadpop form')[0].get('action'),
                                url: LeadPopupURL,
                                onSuccess: function (restree, resel, reshtml) {
                                    var myElement;
                                    resel.each(function (item) {
                                        if (item.id == 'popupcontent') {
                                            myElement = item;
                                        }
                                    });
                                    $('sbox-content').set('html', myElement.get('html'));
                                }
                            }).post($$('.leadpop .form')[0]);
                        } else {
                            $$('.leadpop p')[0].set('class', 'error');
                            $$('.leadpop p')[0].set('html', '<strong>Invalid Phone number [XXX-XXX-XXXX].</strong>');
                        }
                    } else {
                        $$('.leadpop p')[0].set('class', 'error');
                        $$('.leadpop p')[0].set('html', '<strong>Phone number is required.</strong>');
                    }
                } else {
                    $$('.leadpop p')[0].set('class', 'error');
                    $$('.leadpop p')[0].set('html', '<strong>Your zip code is required.</strong>');
                }
            } else {
                $$('.leadpop p')[0].set('class', 'error');
                $$('.leadpop p')[0].set('html', '<strong>Your email is required.</strong>');
            }
        } else {
            $$('.leadpop p')[0].set('class', 'error');
            $$('.leadpop p')[0].set('html', '<strong>Your name is required.</strong>');
        }
    };

    //Video player setup
    var videoobj;
    initvideoplayer = function () {

        //Replace title with sifr
        sIFR.replace(tradegothic, {
            selector: '.videoplayerpop h3',
            wmode: 'transparent',
            css: [
				'.sIFR-root { background-color:#d8d8d8;font-size:16px;letter-spacing:-0.35;text-transform:uppercase;font-weight:bold;color:#28458f; }'
			]
        });

        //Replace original swf instance with JS object instance
        var flashurl = $('swiffcontainer').get('rel');
        videoobj = new Swiff(flashurl, {
            id: 'player',
            width: 393,
            height: 332,
            container: $('swiffcontainer'),
            params: {
                wmode: 'opaque',
                bgcolor: '#000000'
            }
        });

        if ($('video-thumbs')) {
            var videosrclist = $$('#video-thumbs a');
            videosrclist.each(function (item, index) {
                item.addEvent('click', function (e) {
                    e.stop();
                    var url = item.getElement('img').get('src').replace(/t.jpg/, ".flv");
                    videoobj.remote('sendTextToFlash', url);
                    $$('.videoplayerpop h3')[0].set('html', item.getElement('span.title').get('html'));
                    $$('.videoplayerpop h3')[0].set('class', '');
                    sIFR.replace(tradegothic, {
                        selector: '.videoplayerpop h3',
                        wmode: 'transparent',
                        css: [
							'.sIFR-root { background-color:#d8d8d8;font-size:16px;letter-spacing:-0.35;text-transform:uppercase;font-weight:bold;color:#28458f; }'
						]
                    });
                });
            });
        }

    };

    //Size guide setup
    initsizeguide = function () {
        //Size guide
        pointerpos = '312px';
        var pointer = new Element('img', { 'src': '/images/sizearrow.gif' });
        var sizedivs = $$('#popupcontent .size');
        sizedivs.fade('hide');
        sizedivs.setStyle('display', 'block');
        $('Size10x10').fade('in');

        pointer.setStyles({
            'position': 'absolute',
            'bottom': '0px',
            'left': pointerpos
        });
        pointer.injectInside($('popupcontent'));
        $$('#popupcontent ul a').each(function (item, index) {
            item.addEvents({
                'mouseover': function () {
                    pointer.tween('left', this.getCoordinates($('popupcontent')).left + (this.getSize().x / 2) + 13 + 'px');
                },
                'mouseout': function () {
                    pointer.tween('left', pointerpos);
                },
                'click': function (e) {
                    e.stop();
                    pointerpos = this.getCoordinates($('popupcontent')).left + (this.getSize().x / 2) + 13 + 'px';
                    sizedivs.fade('out');
                    var target = this.get('href').substr(this.get('href').indexOf('#') + 1);
                    if ($(target)) {
                        var tfunc = (function () { $(target).fade('in') }).delay(500);
                    }
                }
            });
        });
    };

    //View all locations popup setup
    initviewlocs = function () {
        sIFR.replace(tradegothic, {
            wmode: 'transparent',
            selector: '.alllocspop h3',
            css: [
				'.sIFR-root { background-color:#d8d8d8;font-size:16px;letter-spacing:-0.35;text-transform:uppercase;font-weight:bold;color:#28458f; }',
				'a { color:#28458f;text-decoration:none; }',
				'a:hover { color:#B61D23; }'
			]
        });
        $('locationslist').set(0, 0);
    };



    //Squeezebox popup layer
    //Set w/h to be 20px less to offset built-in padding
    //All locations list version:
    if (!Browser.Platform.ipod) { //Scrolling window layers are difficult to use on iPhone, so disable the enhanced version for those browsers
        SqueezeBox.assign($$('.viewalllocations'), {
            size: { x: 720, y: 540 },
            classWindow: 'alllocspop',
            onUpdate: initviewlocs,
            ajaxOptions: { 'link': 'ignore' }
        });
    }
    //Click for callback version:
    SqueezeBox.assign($$('.callback'), {
        size: { x: 415, y: 205 },
        classWindow: 'callbackpop',
        onUpdate: initcallback,
        ajaxOptions: { 'link': 'ignore', 'evalScripts': false }
    });
    //Click for lead version:
    SqueezeBox.assign($$('.lead'), {
        size: { x: 415, y: 205 },
        classWindow: 'leadpop',
        onUpdate: initleadpop,
        ajaxOptions: { 'link': 'ignore', 'evalScripts': false }
    });
    //Click for video player version:
    //size: {x: 400, y: 495}, //Use this size for 3 or 4 videos, add 65px for every additional two thunbnails
    SqueezeBox.assign($$('.launchplayer'), {
        size: { x: 400, y: 435 },
        classWindow: 'videoplayerpop',
        onUpdate: initvideoplayer,
        ajaxOptions: { 'link': 'ignore' }
    });
    //Click for home video popup:
    SqueezeBox.assign($$('.hvideo'), {
        size: { x: 670, y: 385 },
        classWindow: 'videoplayerpop',
        onUpdate: null,
        ajaxOptions: { 'link': 'ignore' }
    });
    //Size guide version:
    SqueezeBox.assign($$('.launchguide'), {
        size: { x: 645, y: 450 },
        classWindow: 'sizeguidepop',
        onUpdate: initsizeguide,
        ajaxOptions: { 'link': 'ignore' }
    });
    //Function to fix body overflow when closing popup layers
    bodyoverflow = function () {
        $(document.body).style.overflowX = 'auto';
        $(document.body).style.overflowY = 'auto';
        $(document.body).style.overflow = 'auto';
    };



    // In-page scrolling
    var scrollWin = new Fx.Scroll(window);
    //Page top link
    if ($$('.toplink') && $('shell')) {
        $$('.toplink').addEvent('click', function (e) {
            e.stop();
            scrollWin.toElement($('shell'));
        });
    }
    //Services main page
    if ($('services_supplies') && $('Moving-Supplies')) {
        $('services_supplies').addEvent('click', function (e) {
            e.stop();
            scrollWin.toElement($('Moving-Supplies'));
        });
    }
    if ($('services_truck') && $('Free-Move-In-Truck')) {
        $('services_truck').addEvent('click', function (e) {
            e.stop();
            scrollWin.toElement($('Free-Move-In-Truck'));
        });
    }
    //Wine storage page
    if ($('wine_locations') && $('Locations')) {
        $('wine_locations').addEvent('click', function (e) {
            e.stop();
            scrollWin.toElement($('Locations'));
        });
    }
    if ($('wine_conditions') && $('Storage-Conditions')) {
        $('wine_conditions').addEvent('click', function (e) {
            e.stop();
            scrollWin.toElement($('Storage-Conditions'));
        });
    }
    if ($('wine_rates') && $('Rates')) {
        $('wine_rates').addEvent('click', function (e) {
            e.stop();
            scrollWin.toElement($('Rates'));
        });
    }
    if ($('wine_security') && $('Security')) {
        $('wine_security').addEvent('click', function (e) {
            e.stop();
            scrollWin.toElement($('Security'));
        });
    }
    //Click event handler for "Available Units and Pricing" button
    if ($('loc_units') && $('loc_pricing')) {
        $('loc_pricing').addEvent('click', function (e) {
            e.stop();
            scrollWin.toElement($('loc_tab_units'));
            $$('.rcol .tabnav a').removeClass('selected');
            $$('#loc_tab_units a')[0].addClass('selected');
            $$('.rcol .tabcontent').addClass('hide');
            $('loc_units').removeClass('hide');
        });
    }


    //Subnav top randomizer
    if ($$('.subnav h4').length && !$$('.winestorage', '.homestorage', '.officestorage').length) {
        var navtopint = $random(1, 4);
        var bgimg = 'url(/images/subnav-top' + navtopint + '.jpg)';
        $$('.subnav h4').setStyle('background-image', bgimg);
    }


});
