﻿$('document').ready(function(){
    var $ems_content = $('#ems_content');
    $('.accordian_header', $ems_content).click(function(){      
        var $this = $(this);
        var $this_accordian = $this.next();
        if(!$this_accordian.hasClass('open')){
            $('.accordian', $ems_content).removeClass('open').slideUp('normal')
            $('.accordian_header img', $ems_content).attr('src', '../images/arrow_rt.gif');;
            $this_accordian.slideDown('normal').addClass('open'); 
            $('img', $this).attr('src', '../images/arrow_dwn.gif'); 
        }
        else{
            $this_accordian.removeClass('open').slideUp('normal');
            $('img', $this).attr('src', '../images/arrow_rt.gif');
        }
        return false;
    });
    
    $('#tab_box_top button', $ems_content).click(function(){
        var $tab_box = $('#tab_box_top', $ems_content);
        var $tab_box_btn = $tab_box.find('button');
        this.blur(); //prevent focus lines from displaying
        if( ! $tab_box_btn.hasClass('pi') && validate_ai()){
            $tab_box.css({'background-position': '0px -42px'})
            $tab_box_btn.css({float: 'left'}).addClass('pi');
            $('#tab_box_ai', $ems_content).fadeOut('fast', function(){
                $('#tab_box_pi', $ems_content).fadeIn('normal');
            });
        }
        else{
            $tab_box.css({'background-position': '0 0'})
            $tab_box_btn.css({float: 'right'}).removeClass('pi');
            $('#tab_box_pi', $ems_content).fadeOut('fast', function(){
                $('#tab_box_ai').fadeIn('normal');
            });  
        }
    });
    
    $('#tab_box_ai button', $ems_content).click(function(){
        if(validate_ai()){
            $('#tab_box_top button', $ems_content).trigger('click');
        }
    });
   
    var registry = {};
    $('#text_message, #voice_message', $ems_content).click(function(){
        if(this.checked){
            $('span#cell_phone_required', $ems_content).show();
            registry[$(this).attr('id')] = 'checked';
            if( ! bus_service_selected()){
                alert('Text and Voice messages are available for Bus Service Alerts only! Please select one or more Bus Service Alerts on the Area of Interest screen(blue tab above).');
            }
        }
        else{
            registry[$(this).attr('id')] = 'unChecked';
            for(var key in registry){
                if(registry[key] === 'checked'){
                    return;
                }
            }
            $('span#cell_phone_required', $ems_content).hide();      
        }
    });
    
    $('input.btn_submit', $ems_content).click(function(){
        var msg = '';
        
        var email_address = $('#txt_email_address', $ems_content).val();
        if( ! email_address){
            msg = build_message(msg, 'Email Address is a required field!');
        }
        else{
            if( ! /^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/.test(email_address)){
                msg = build_message(msg, 'Please check the formatting of your email address!');
            }
        }
        
        var zip_code = $('#txt_zip_code', $ems_content).val();
        if(zip_code){
            if( ! /^\d{5}(-\d{4})?$/.test(zip_code)){
                msg = build_message(msg, 'Please check the formatting of your ZIP Code! (#####[-####])');
            }
        }
        
        if($('#text_message:checked, #voice_message:checked, #contest_message:checked', $ems_content).length > 0){
            var cell_phone_val = $('#txt_cell_phone', $ems_content).val();
            if( ! cell_phone_val){
                msg = build_message(msg, 'Cell Phone is a required field! (You elected to receive Text or Voice Message alerts or have entered the sweepstakes)')
            }
            else if( ! /^\(?\d{3}\)?[\s\-]?\d{3}[\s\-]?\d{4}$/.test(cell_phone_val)){
                msg = build_message(msg, 'Please check the formatting of your Cell Phone number! (### ### ####)');
            }
        }
        
        if($('input#privacy_policy:checked', $ems_content).length < 1){
            msg = build_message(msg, 'You must accept the terms of use!');
        }
        if(msg){
            alert(msg);
            return false;
        }
    });
    
    if(BrowserDetect.browser === 'Safari' || BrowserDetect.browser === 'Opera'){
        $(':checkbox + span', $ems_content).css({'vertical-align':'0px'});
    }
    
    function build_message(msg, new_line){
        if(msg){
            return msg += '\n\n' + new_line;
        }
        return new_line;
    }

    function validate_ai(){
        if($('#tab_box_ai :checkbox:checked', $ems_content).length > 0){
            return true;
        }
        alert('You must select at least one Area of Interest!');
        return false;
    }

    function bus_service_selected(){
        if($('div.bus_service :checkbox:checked', $ems_content).length > 0){
            return true;
        }
        return false;
    }
});


var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{
			string: navigator.userAgent,
			subString: "Chrome",
			identity: "Chrome"
		},
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari",
			versionSearch: "Version"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			   string: navigator.userAgent,
			   subString: "iPhone",
			   identity: "iPhone/iPod"
	    },
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};
BrowserDetect.init();      