<!DOCTYPE html>
<html lang="en-US" class="static detail-full-page contents">
<head>
    <meta charset="utf-8"/>
    <meta name="viewport" content="width=device-width, initial-scale=1.0,user-scalable=no">
    
<link rel="apple-touch-icon" sizes="57x57" href="/Media/Default/aiu/favicons/apple-touch-icon-57x57.png">
<link rel="apple-touch-icon" sizes="60x60" href="/Media/Default/aiu/favicons/apple-touch-icon-60x60.png">
<link rel="apple-touch-icon" sizes="72x72" href="/Media/Default/aiu/favicons/apple-touch-icon-72x72.png">
<link rel="apple-touch-icon" sizes="76x76" href="/Media/Default/aiu/favicons/apple-touch-icon-76x76.png">
<link rel="apple-touch-icon" sizes="114x114" href="/Media/Default/aiu/favicons/apple-touch-icon-114x114.png">
<link rel="apple-touch-icon" sizes="120x120" href="/Media/Default/aiu/favicons/apple-touch-icon-120x120.png">
<link rel="apple-touch-icon" sizes="144x144" href="/Media/Default/aiu/favicons/apple-touch-icon-144x144.png">
<link rel="apple-touch-icon" sizes="152x152" href="/Media/Default/aiu/favicons/apple-touch-icon-152x152.png">
<link rel="apple-touch-icon" sizes="180x180" href="/Media/Default/aiu/favicons/apple-touch-icon-180x180.png">
<link rel="icon" type="image/png" sizes="32x32" href="/Media/Default/aiu/favicons/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="192x192" href="/Media/Default/aiu/favicons/android-chrome-192x192.png">
<link rel="icon" type="image/png" sizes="16x16" href="/Media/Default/aiu/favicons/favicon-16x16.png">
<link rel="mask-icon" href="/Media/Default/aiu/favicons/safari-pinned-tab.svg" color="#5bbad5">
<meta name="msapplication-TileColor" content="#da532c">
<meta name="msapplication-TileImage" content="/Media/Default/aiu/favicons/mstile-144x144.png">
<meta name="theme-color" content="#ffffff">
    <meta name="google-site-verification" content="vD6gomc-z9j6Xme18BJt4QwIu8WYPnBGzPOyPfwRVtM"/>
    <link href="/Modules/FlexSlider/Styles/flexslider.min.css" rel="stylesheet" type="text/css" />
<link href="/Modules/Orchard.Modules/Styles/orchard-modules-admin.css" rel="stylesheet" type="text/css" />
<link href="/Modules/CEC.Base/Styles/theme-one.min.css" rel="stylesheet" type="text/css" />
<link href="/Modules/CEC.Resources/Styles/bootstrap.min.css" rel="stylesheet" type="text/css" />
<link href="/Themes/aiu-master/styles/Global/all.min.css" rel="stylesheet" type="text/css" />
<link href="/Modules/CEC.Resources/Styles/font-awesome.min.css" rel="stylesheet" type="text/css" />
<script src="/Modules/Orchard.Resources/scripts/jquery.min.js" type="text/javascript"></script>
<!--[if lt IE 9]>
<script src="/Core/Shapes/Scripts/html5.js" type="text/javascript"></script>
<![endif]-->
<script src="/Modules/Orchard.Resources/scripts/jquery-ui.min.js" type="text/javascript"></script>
<script src="/Modules/CEC.Resources/scripts/bootstrap.min.js" type="text/javascript"></script>
<script src="/Themes/aiu-master/scripts/Global/all.min.js" type="text/javascript"></script>
<meta content="Orchard" name="generator" />
<meta content="index,follow" name="robots" />
<meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible" />
<link href="https://www.aiuniv.edu/campus-locations" rel="canonical" />
<link href="/Media/Default/aiu/favicons/favicon.ico" rel="shortcut icon" type="image/x-icon" />
<title>Online & Campuses | AIU</title>
<meta content="Learn more about the American InterContinental University™ campuses - online and local campuses. Achieve your personal &amp; professional goals in our traditional classrooms or online courses." name="description"  />
	<style type="text/css">


		.flexslider .slides li {
			min-height: inherit;
			max-height: inherit;
			background-repeat: no-repeat;
			background-size: cover;
			background-position: top right;
		}

		#flex-c2dac05a-79b1-46c4-8327-f93c411f704e .slides li img.flexslider-bg {
				display: none;
		}

		@media (min-width: 768px) and (max-width: 1024px) {

			#flex-c2dac05a-79b1-46c4-8327-f93c411f704e .slides li {
		
				
				
				background-position: top center;
			}
		}
		
		@media (min-width: 1201px) {


			#flex-c2dac05a-79b1-46c4-8327-f93c411f704e .slides li {
				
				
			}
		}


	</style>



<script>
    var pl = ["9876543219","2222222222","3333333333","4444444444","5555555555","6666666666","7777777777","8888888888","9999999999"];
    var frmMsg = '';
    var degreeExcluded = [];
    var degreeException = [];
    var programExcluded = [];
    var programException = [];
    var degSafeVal = '';
    var progSafeVal = '';
    var CEC = CEC || {};
    CEC.dr = document.referrer;
    var dataLayer = {
        "pageData": {
            'siteSection': '',
            'sitePath': '',
            'siteQuery': '',
            'degreeLevel': '',
            'program': '',
            'areasOfStudy': '',
            'formItemId': '',
            'formName': '',
            'formIsTcpa': ''
        },
        "form": {
            'campus': '',
            'zip': '',
            'emailAddress': '',
            'degreeOfInterest': '',
            'concentration': ''
        }
    };
    dataLayer.form.httpReferrer = CEC.dr;
</script>

        <script>(function(d){d.className="dyn"+d.className.substring(6,d.className.length);})(document.documentElement);</script> 
    
    <script src="//cdn.optimizely.com/js/3013550378.js"></script>
    <script>
        var optiPop = function(itemId, path, finder) {
            var url = "/ajaxifycontent/"+itemId;
            $.ajax({
                url: url,
                success: function(html) {
                    var content = $('<div />').html(html).find(path);
                    $(finder).html(content);
                    $('input[name=jsEnabled').val('true').change();
                }
            });
        }
    </script>

    <script type="text/javascript">
    /*LiveEngageScript*/
    var lpTag = lpTag || {};
    lpTag.vars = lpTag.vars || [];
    lpTag.dbs = lpTag.dbs || [];
    lpTag.section = 'default';
    lpTag.tagletSection = 'aiu';
</script>
<script>
    lpTag.sdes = lpTag.sdes || [];
    lpTag.sdes.push(
        {
            "type": "lead",
            "lead": {
                "leadId": "AIU"
            }
        },
        {
            "type": "service",
            "service": {
                "topic": "",
                "category": "",
                "serviceId": ""
            }
        });
</script>
    <link href="/Themes/aiu-master/Styles/extend.css" rel="stylesheet" type="text/css"/>
</head>
<body itemscope itemtype="http://schema.org/WebSite">
<span style="display: none;" itemscope itemtype="https://schema.org/CollegeOrUniversity">
    <meta itemprop="name" content="American InterContinental University"/>
    <meta itemprop="url" content="https://www.aiuniv.edu/"/>
    <span itemprop="logo" itemscope itemtype="https://schema.org/ImageObject">
        <meta itemprop="url" content="https://www.aiuniv.edu/ui/aiu/basic/images/aiu-logo-b.png"/>
        <meta itemprop="height" content="56"/>
        <meta itemprop="width" content="197"/>
    </span>
    <meta itemprop="sameAs" content="https://www.facebook.com/AmericanInterContinentalUniversity"/>
    <meta itemprop="sameAs" content="http://www.linkedin.com/company/american-intercontinental-university"/>
    <meta itemprop="sameAs" content="http://www.twitter.com/aiuniv"/>
    <meta itemprop="sameAs" content="https://www.youtube.com/channel/UC-Lo3ztOvrvx3HOFFTRjn7A"/>
</span>

<!-- These are input hidden fields added to display or hide the phone number. The values come from Orchard admin and are used in JS for header-->
<input type="hidden" name="CallCenterOffTimeMon" id="CallCenterOffTimeMon" value="21:00,08:00"/>
<input type="hidden" name="CallCenterOffTimeTue" id="CallCenterOffTimeTue" value="21:00,08:00"/>
<input type="hidden" name="CallCenterOffTimeWed" id="CallCenterOffTimeWed" value="21:00,08:00"/>
<input type="hidden" name="CallCenterOffTimeThu" id="CallCenterOffTimeThu" value="21:00,08:00"/>
<input type="hidden" name="CallCenterOffTimeFri" id="CallCenterOffTimeFri" value="21:00,08:00"/>
<input type="hidden" name="CallCenterOffTimeSat" id="CallCenterOffTimeSat" value="18:00,08:00"/>
<input type="hidden" name="CallCenterOffTimeSun" id="CallCenterOffTimeSun" value="11:00,11:30"/>
<input type="hidden" name="CallCentreOffDay" id="CallCentreOffDay" value="sunday"/>
<input type="hidden" name="CallCentreOffDate" id="CallCentreOffDate" value="9/26/2017 12:00:00 AM"/>
<input type="hidden" name="ServerDateTime" id="ServerDateTime" value="11/24/2018 11:25:44"/>



<div class="main-body">
	<div id="navMain" class="pinned-navbar nav-down">
<div class="zone zone-header">
<section class="topbar white-background">
    <div class="container">
        <div class="row">
            <div class="col-sm-3 col-md-3">
                <a class="logo-wrap" href='/'>
                <div class="logo"><img alt="American Intercontinental University Logo" height="56" src="/Media/Default/AIU/logos/aiu-logo-b.png" width="197"></div></a>
            </div>
            <div class="col-sm-9 col-md-9 top-connect-links">
                <div class="pull-right">
                    <div class="header-buttons sched hidden-md" id="header-buttons-sched">
                        <a class="header" href="https://booknow.appointment-plus.com/9qzx01j0/" target="_blank">Talk To An Advisor</a>
                    </div>
                    <a class="phone" href="tel:855-377-1888" id="dt-phone" style="display:none">855-377-1888</a>
                    <div id="lpButtonDiv"></div>
                    <div class="header-buttons" id="lpGlobalHeader1"></div>
                    <div class="header-buttons">
                        <div class="navbar-wrap">
                            <div class="request-information">
                                <a class="trigger ui-uppercase" href="/request-information">Request Info</a>
                            </div>
                        </div>
                    </div>
                    <div class="header-buttons apply-now-wrap" id="header-buttons-apply">
                        <a class="button header request-applique header-button__apply">apply now</a>
                        <ul class="apply-now-dd">
                            <li>
                                    <a id="applynowOnline"  href='https://enrollment.aiuniv.edu/?code=4157'>Online</a>
                            </li>
                            <li>
                                <a href='https://my.atlanta.aiuniv.edu/mycampus/general/ec.aspx?src=242'>Atlanta</a>
                            </li>
                            <li>
                                <a href='https://my.houston.aiuniv.edu/mycampus/general/ec.aspx?src=242'>Houston</a>
                            </li>
                        </ul>
                    </div>
                </div>
            </div>
        </div>
    </div>
</section></div>		<div class="zone zone-navigation">
<section class="navbar loaded header-2">
<div class="container">
    <div class="row">
<div class="col-sm-12">
<nav class="flyout-nav clean-nav" id="cssmenu" aria-label="navigation">
<ul class="level1">
<li id="li1" class="degrees">
<a href="/degrees" class="tab">
    <span class="desktop">Degrees</span></a>
 <div class="menu-frame" style="padding:50px 50px 0 50px;">
  <div class="row">
   <section>
    <ul>
     <li><a href="/degrees" class="nav-sub-aiu list-heading">Areas of Study</a></li>
     <li><a href="/degrees/business" class="nav-sub-aiu">Business</a></li>
     <li><a href="/degrees/information-technology" class="nav-sub-aiu">Information Technology</a></li>
     <li><a href="/degrees/healthcare" class="nav-sub-aiu">Healthcare Management</a></li>
     <li><a href="/degrees/criminal-justice" class="nav-sub-aiu">Criminal Justice</a></li>
     <li><a href="/degrees/design" class="nav-sub-aiu">Design</a></li>
     <li><a href="/degrees/education" class="nav-sub-aiu">Education</a></li>
    </ul>
   </section>
   <section>
    <ul>
     <li><a href="/online-education/online-degree-programs" class="nav-sub-aiu list-heading">Online Degree Programs</a></li>
    </ul>
    <ul>
     <li><a href="/degrees/undergraduate-degrees" class="nav-sub-aiu list-heading">Undergraduate Degree Programs</a></li>
     <li><a href="/degrees/associate" class="nav-sub-aiu">Associate Degrees</a></li>
     <li><a href="/degrees/bachelors" class="nav-sub-aiu">Bachelor's Degrees</a></li>
    </ul>
    <ul>
     <li><a href="/degrees/graduate-degrees" class="nav-sub-aiu list-heading">Graduate Degree Programs</a></li>
     <li><a href="/degrees/masters" class="nav-sub-aiu">Master's Degrees</a></li>
    </ul>
   </section>
  </div>
 </div>
</li>
<li id="li2">
    <a href="/admissions" class="tab">
        <span class="desktop">Admissions</span></a>
    <div class="menu-frame">
        <div class="row">
            <section>
                <ul>
                    <li>
                        <a href="/admissions" class="nav-sub-aiu list-heading">Admissions at AIU</a>
                    </li>
                    <li>
                        <a href="/admissions/undergraduate-students/online" class="nav-sub-aiu">Admissions Process</a>
                    </li>
                    <li>
                        <a href="/admissions/prior-learning-credits" class="nav-sub-aiu">Prior Learning Credits</a>
                    </li>
                    <li>
                        <a href="/admissions/faq" class="nav-sub-aiu">Admissions FAQ</a>
                    </li>
                </ul>
            </section>
            <section>
                <ul>
                    <li>
                        <a href="/transfer-students" class="nav-sub-aiu">Transfer Students</a>
                    </li>
                    <li>
                        <a href="/military-students" class="nav-sub-aiu">Military Students</a>
                    </li>
                    <li>
                        <a href="/international-students" class="nav-sub-aiu">International Students</a>
                    </li>
                </ul>
            </section>
            <section>
                <ul>
                    <li>
                        <a href="http://aiuniv.smartcatalogiq.com/en/current/Catalog" class="nav-sub-aiu" target="_blank">University Catalog</a>
                    </li>
                    <li>
                        <a href="/admissions/military-students/benefits" class="nav-sub-aiu">Military Education Benefits</a>
                    </li>
                    <li>
                        <a href="/apply-now" class="nav-sub-aiu list-heading">APPLY NOW</a>
                    </li>
                </ul>
            </section>
        </div>
    </div>
</li>
<li id="li3">
    <a href="/tuition-financial-aid" class="tab">
        <span class="desktop">Tuition &amp; Financial Aid</span></a>
    <div class="menu-frame">
        <div class="row">
            <section>
                <ul>
                    <li>
                        <a href="/tuition-financial-aid/tuition-fees" class="nav-sub-aiu list-heading">AIU Tuition and Fees</a>
                    </li>
                    <li>
                        <a href="/tuition-financial-aid/tuition-fees" class="nav-sub-aiu">Tuition and Fees</a>
                    </li>
                    <li>
                        <a href="/graduation-and-tuition-calculator" class="nav-sub-aiu">Tuition &amp; Graduation Date Calculator</a>
                    </li>
                    <li>
                        <a href="/tuition-financial-aid/transfer-credit" class="nav-sub-aiu">Transfer Credits</a>
                    </li>
                </ul>
            </section>
            <section>
                <ul>
                    <li>
                        <a href="/tuition-financial-aid" class="nav-sub-aiu list-heading">Financial Aid</a>
                    </li>
                    <li>
                        <a href="/tuition-financial-aid/undergraduate-students" class="nav-sub-aiu">How to Apply for Financial Aid</a>
                    </li>
                    <li>
                        <a href="/tuition-financial-aid/financial-aid" class="nav-sub-aiu">Financial Aid Guide</a>
                    </li>
                    <li>
                        <a href="/tuition-financial-aid/fafsa" class="nav-sub-aiu">FAFSA Guide</a>
                    </li>
                    <li>
                        <a href="https://aiuniv.studentaidcalculator.com/survey.aspx?utm_source=website&utm_medium=npclandingpage&utm_campaign=nav_desktop" target="_blank" class="nav-sub-aiu">Net Price Calculator</a>
                    </li>
                </ul>
            </section>
            <section>
                <ul>
                    <li>
                        <a href="/tuition-financial-aid/scholarships-grants" class="nav-sub-aiu list-heading">Grants &amp; Scholarships</a>
                    </li>
                    <li>
                        <a href="/tuition-financial-aid/grants" class="nav-sub-aiu">Online Grants Guide</a>
                    </li>
                    <li>
                        <a href="/admissions/military-students/benefits" class="nav-sub-aiu">Military Benefits</a>
                    </li>
                    <li>
                        <a href="/tuition-financial-aid/tuition-reimbursement" class="nav-sub-aiu">Employer Tuition Reimbursement</a>
                    </li>
                </ul>
            </section>
        </div>
    </div>
</li>
<li id="li4">
    <a href="/campus-locations" class="tab">
        <span class="desktop">Online & Campuses</span></a>
    <div class="menu-frame">
        <div class="row">
            <section>
                <ul>
                    <li>
                        <a class="not-active list-heading" style="cursor: default;">ONLINE STUDENTS</a>
                    </li>
                    <li>
                        <a href="/online-education" class="nav-sub-aiu">Online education programs</a>
                    </li>
                    <!--
                    <li>
                        <a href="https://booknow.appointment-plus.com/9qzx01j0/" class="nav-sub-aiu" target="_blank">Schedule a phone interview</a>
                    </li>
                    -->
                </ul>
            </section>
            <section>
                <ul>
                    <li>
                        <a class="not-active list-heading" style="cursor: default;">Campus Students</a>
                    </li>
                    <li>
                        <a href="/campus-locations/atlanta" class="nav-sub-aiu">Atlanta campus</a>
                    </li>
                    <li>
                        <a href="/campus-locations/houston" class="nav-sub-aiu">Houston campus</a>
                    </li>
                    <!--
                    <li>
                        <a href="https://booknow.appointment-plus.com/3d7c3730/" class="nav-sub-aiu" target="_blank">Schedule a campus visit</a>
                    </li>
                    -->
                </ul>
            </section>
        </div>
    </div>
</li>
<li id="li5">
    <a href="/about" class="tab">
        <span class="desktop">About AIU</span></a>
    <div class="menu-frame">
        <div class="row">
            <section>
                <ul>
                    <li>
                        <a href="/about" class="nav-sub-aiu list-heading">About AIU</a>
                    </li>
                    <li>
                        <a href="/about/history" class="nav-sub-aiu">Mission &amp; History</a>
                    </li>
                    <li>
                        <a href="/about/leadership" class="nav-sub-aiu">Leadership</a>
                    </li>
                    <li>
                        <a href="/about/faculty" class="nav-sub-aiu">Faculty</a>
                    </li>
                    <li>
                        <a href="/educational-alliances" class="nav-sub-aiu">Educational Alliances</a>
                    </li>
                    <li>
                        <a href="/blog" class="nav-sub-aiu">Blog</a>
                    </li>
                    <li>
                        <a href="/alumni/transcripts" class="nav-sub-aiu">Request a Transcript</a>
                    </li>
                </ul>
            </section>
            <section>
                <ul>
                    <li>
                        <a href="/about/accreditation" class="nav-sub-aiu list-heading">Accreditation</a>
                    </li>
                    <li>
                        <a href="/awards" class="nav-sub-aiu">Awards &amp; Recognition</a>
                    </li>
                </ul>
            </section>
            <section>
                <ul>
                    <li>
                        <a href="/students" class="nav-sub-aiu">Current Students</a>
                    </li>
                    <li>
                        <a href="/online-education/career-support" class="nav-sub-aiu">Career Support</a>
                    </li>
                    <li>
                        <a href="/aiu-mobile/aiumobileapp" class="nav-sub-aiu">AIU Mobile App</a>
                    </li>
                    <li>
                        <a href="/about/aiustories" class="nav-sub-aiu">AIU Stories</a>
                    </li>
                    <li>
                        <a href="/alumni" class="nav-sub-aiu">Alumni</a>
                    </li>
                    <li>
                        <a href="/alumni/alumni-association" class="nav-sub-aiu">Alumni Association</a>
                    </li>
                    <li>
                        <a href="/reviews" class="nav-sub-aiu">Reviews</a>
                    </li>
                </ul>
            </section>
        </div>
    </div>
</li>
</ul>
</nav>
<div class="search-wrap">
    <ul class="student-login-nav">
        <li>
            <a class="trigger">Student Login</a>
            <ul>
                <li>
                    <a href="https://studentlogin.aiuniv.edu/_layouts/login/Login.aspx" target="_blank" rel="nofollow">Online</a>
                </li>
                <li>
                    <a href="https://my.atlanta.aiuniv.edu/_layouts/login/Login.aspx" target="_blank" rel="nofollow">Atlanta</a>
                </li>
                <li>
                    <a href="https://my.houston.aiuniv.edu/_layouts/login/Login.aspx" target="_blank" rel="nofollow">Houston</a>
                </li>
            </ul>
        </li>
    </ul>
    <div id="search_container" class="closed">
         <div id="nav1_ctl02_Panel1" class="search">
            <form action="/Search" id="search-form" class="search-form" method="get">
                <label for="q" class="sr-only">Search</label>
                <input name="q" type="text" id="q" class="search_input ui-autocomplete-input" placeholder="SEARCH" aria-label="Search"/>
                <a id="nav1_ctl02_lbSearch" class="search-button" href="#" style="display: inline;" aria-label="Start Search"></a>
                <a href="#" class="search-button-s-wrap" aria-label="Click to Search">
               </a>
            </form>
        </div>
    </div>
</div>
</div>
</div>
</div>
</section></div>	</div>

		<div class="main-content-wrap">
			<div class="zone zone-content"><!-- Views/Parts/LeadAttribution.cshtml -->



<lead_campaign_id id="lead_campaign_id" source="SiteSettings" value="c84" ></lead_campaign_id>
<lead_lead_source id="lead_lead_source" source="SiteSettings" value="4157" ></lead_lead_source>
<lead_site_id id="lead_site_id" source="SiteSettings" value="" ></lead_site_id>
<lead_vendor_id id="lead_vendor_id" source="SiteSettings" value="" ></lead_vendor_id>
<lead_sitesection_id id="lead_sitesection_id"  value="Online &amp; Campuses"></lead_sitesection_id>

<!-- eof.Views/Parts/LeadAttribution.cshtml -->
<lead_degree_level id="lead_degree_level" value="False"></lead_degree_level>
<lead_degree_name id="lead_degree_name"  value="False"></lead_degree_name>
<lead_ignore id="lead_ignore" value="True"></lead_ignore>
<lead_remove id="lead_remove" value="True"></lead_remove>

   


<div class="container">

<div class="row">
<div class=" col-xs-12 col-sm-12">

<ol class="breadcrumbs" itemscope itemtype="http://schema.org/BreadcrumbList" style="white-space: nowrap;">
    <li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
        <a href="/" itemprop="item"><span itemprop="name">Home</span></a>
        <meta content="1" itemprop="position">
    </li>
    <li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
        <span itemprop="name">Online &amp; Campuses</span>
        <meta content="2" itemprop="position">
    </li>
</ol>

</div>
</div>
</div>


<div class="container-fluid hero1-w-btns pl0 pr0" style="background: url(/Media/Default/AIU/hero/Hero_Campuses_1250x400.jpg) no-repeat 0 0; -webkit-background-size: cover;-moz-background-size: cover;-o-background-size: cover;background-size: cover;min-height: 400px;width: 100%;">
<div class="container">

<div class="row">
<div class=" col-xs-12 col-sm-6">

<div class="hero-banner-copy clearfix" style="margin-top: 10%;"><h1>Move Forward with Flexible Degree Programs</h1>
<p>Put school within reach with the help of our many financing options.</p>

<a class="ui-orange-btn flt-left width-30 mr5" href="/online-education">Online</a>
<a class="ui-orange-btn flt-left width-30 mr5" href="/campus-locations/atlanta">Atlanta</a>
<a class="ui-orange-btn flt-left width-30" href="/campus-locations/houston">Houston</a>
</div>
</div>
</div>
</div>

</div>
<div class="section aiu-secondary-background hrz-band img-slider">
<div class="container">

<div class="row">
<div class=" col-xs-12 col-sm-12">

<h2 class="txt-wht text-center">What are online classes like?</h2>

</div>
</div>
<div class="row">
<div class="col-xs-offset-0 col-sm-offset-1 col-xs-12 col-sm-10">

<div>




<div class="flexslider" id="flex-c2dac05a-79b1-46c4-8327-f93c411f704e">
	<ul class="slides" >
			<li style="background-image:none">

				<img  width="auto" height="auto" alt="CTU Start Date" draggable="false" class="flexslider-bg" />
				

<div>

<div class="row">
<div class=" col-xs-12 col-sm-6">

<img alt="AIU Virtual Campus" class="layout-content-image" src="/Media/Default/aiu/images/female/campuslocpg_slider_onlinecampus_slide1.jpg" />

</div>

<div class=" col-xs-12 col-sm-6">

<h3 class="txt-wht h5 mt0">Online Campus</h3>

<p>AIU’s Virtual Campus gives you access to a full range of services anywhere, anytime, from any device.</p> 
<ul>
<li>View course content</li>
<li>Communicate with your professors</li>
<li>Take part in group projects</li>
</ul>
<a class="btn aiu-white-background txt-org no-undl mt15 btn-trkng" href="/online-education">Online Education</a>

</div>
</div>
</div>



			</li>
			<li style="background-image:none">

				<img  width="auto" height="auto" alt="CTU Start Date" draggable="false" class="flexslider-bg" />
				

<div>

<div class="row">
<div class=" col-xs-12 col-sm-6">

<img alt="" class="layout-content-image" src="/Media/Default/aiu/images/male/efficient_online_education_3.jpg" />

</div>

<div class=" col-xs-12 col-sm-6">

<h3 class="txt-wht h5 mt0">Online Classrooms</h3>

<p>Our online classrooms give you room to explore, create, problem-solve and study, with:.</p> 
<ul>
    <li>Interactive lessons</li>
    <li>Individual and group projects</li>
    <li>Professor-led group chats </li>
    <li>Easy-to-track deadlines and to-do lists</li>
</ul>
<a class="btn aiu-white-background txt-org mt15 no-undl btn-trkng" href="/online-education">Online Education</a>

</div>
</div>
</div>



			</li>
			<li style="background-image:none">

				<img  width="auto" height="auto" alt="CTU Start Date" draggable="false" class="flexslider-bg" />
				

<div>

<div class="row">
<div class=" col-xs-12 col-sm-6">

<img alt="" class="layout-content-image" src="/Media/Default/aiu/images/male/efficient_online_education_2.jpg" />

</div>

<div class=" col-xs-12 col-sm-6">

<h3 class="txt-wht h5 mt0">Online Library</h3>

<p>Expand your studies in our digital library: </p> 
<ul>
<li>Ebooks</li>
<li>Trade journals</li>
<li>Videos &amp; interactive resources</li>
<li>Other reference materials</li>
</ul>
<a class="btn aiu-white-background txt-org mt15 no-undl btn-trkng" href="/online-education">Online Education</a>

</div>
</div>
</div>



			</li>
	</ul>
</div>

</div>
</div>
</div>
</div>

</div>
<div class="hrz-band">
<div class="container">

<div class="row">
<div class=" col-xs-12 col-sm-12">

<h2 class="text-center">Atlanta and Houston Campuses</h2>

</div>
</div>
<div class="row">
<div class=" col-xs-12 col-sm-6">

<style>
a.cp-ing{position:relative;display: block;margin-bottom:30px;}
.cp-txt {background:rgba(0,89,143,.9);color:#fff;position:absolute;bottom:30px;padding: 15px 0 15px 15px;
}
</style>
<a href="/campus-locations/atlanta" class="cp-ing" aria-label="Click to Visit AIU Atlanta Page">
<img src="/media/default/AIU/images/misc/atlanta.jpg" class="full-width" alt="AIU_Atlanta"/></a>
<div class="cp-txt mr15"><strong>Altanta Campus</strong><br><br>
     <span>The AIU Atlanta campus offers busy students a face-to-face learning experience with professors who bring real world experience to the classroom.</span>
</div>


</div>

<div class=" col-xs-12 col-sm-6">

<a href="/campus-locations/houston" class="cp-ing"  aria-label="Click to Visit AIU Houston Page" >
<img src="/media/default/AIU/images/misc/houston.jpg" class="full-width" alt="AIU_Houston"/></a>
<div class="cp-txt mr15"><strong>Houston Campus</strong><br><br>
        <span>AIU Houston puts flexibility first with part-time and full-time programs and specializations designed to work around your schedule.</span>
</div>

</div>
</div>
</div>

</div>
<div class="hrz-band">
<div class="container">

<div class="row">
<div class=" col-xs-12 col-sm-12">

<h2 class="text-center">Why AIU?</h2>

</div>
</div>
<div class="row">
<div class=" col-xs-12 col-sm-4">

<div class="tile"><h3 class="h5">Learn Anytime, Anywhere</h3>
<p>AIU's programs are <a href="/online-education/day-in-the-life">designed to fit your life</a>, giving you the flexibility you need to succeed, with 24/7 tech support.</p>

</div>
</div>

<div class=" col-xs-12 col-sm-4 lt-blue-cntr-clmn-bdr">

<h3 class="h5">Study with Industry Professionals</h3>
<p>You'll study under faculty who are specialists in their field, exploring <a href="/about/faculty"> relevant skills and knowledge </a>.</p>


</div>

<div class=" col-xs-12 col-sm-4">

<div class="tile"><h3 class="h5">Credit for Prior Learning &amp; Experience</h3>
<p>You can transfer in <a href="/tuition-financial-aid/transfer-credit">up to 75% of the qualifying credits</a> you need toward your degree,* allowing you to save up to 75% on tuition and earn your bachelor’s degree in as little as 9 months.**</p>
<p class="disclaimer"><i>*Transfer credit is evaluated on an individual basis. Not all credits are eligible to transfer. See the University Catalog for transfer credit policies.<br>
**As a bachelor’s degree program, this program is designed as a 48 month program; however; many factors will impact your time to completion, including course loads, proficiency and/or transfer credits and breaks.</i></p>

</div>
</div>
</div>
</div>

</div>
<div>

   
<div class="section aiu-primary-background form-bottom-wrap" id="blue-bottom-form">
<div class="container">

<div class="row">
<div class=" col-xs-12 col-sm-12 col-md-10 col-md-offset-1 start-date-wrap pt40">




<div id="startid6be13f66-110a-42cc-a6a6-7ffec8abafcd">
<span class="col-sm-12 aiu-start-time-banner-wrap text-center" style="background: rgb(0, 101, 164);">
<h3 class="text-white" style="margin:0 auto;font-size:18px;font-weight:400;line-height:1.1;">Take the next step. Classes Start December 5, 2018</h3>	</span></div>

</div>
</div>
<div class="row">
<div class=" col-xs-12 col-sm-12 col-md-10 col-md-offset-1 pb40">


    <script type="text/javascript">

        $(document).ready(function() {
            CEC.formReferrer.init();
        });
    </script>

<div class="dynamic-form">
<form action="/formscollection/submit" method="POST" enctype="multipart/form-data" id="2852">

<h2 class="text-center text-left-xs text-white">Request Information</h2>

<div class="form-bottom">
	<input type="hidden" name="referrer" id="referrer" value="" />
	<input type="hidden" name="Tcpa" id="Tcpa" value="true" />
	<input type="hidden" name="TcpaOverride" id="TcpaOverride" class="TcpaOverride" value="true" />

	<input type="hidden" name="siteid" id="siteid" value="" />
	<input type="hidden" name="campaignid" id="campaignid" value="" />
	<input type="hidden" name="vid" id="vendorid" value="" />
	<input type="hidden" name="code" id="leadsource" value="" />
	
	<input type="hidden" name="disableDropdownBinding" id="disableDropdownBinding" value="" />
	<input type="hidden" name="ProgramId" id="ProgramId" value="1085" data-dataLayerText="Undecided" />


	<div id="ddFormGroup">
		<!-- Form wrapper to capture enter key event -->
		<div class="totalFormErrorMessage" id="formErrorStart">
			<p class="rfv FormErrorMessage">
				<span>* </span>Please correct the following errors:
			</p>
		</div>
		<div class="form row" data-frmname="Bottom Banner Form">
			<div class="form_column_wrap col-sm-6 col-sm-push-3">
				
				<div class="form-field-element form-dropdown-wrap">
					<label for="CampusId" id="btmBlueFormCampusLabel"><span class="mobile-error">*</span>Campus of Interest</label>
					<div class="lblSelect">
						<select name="CampusId" id="CampusId" class="form-control input-required two-dropdown-filter ddl no-custom dropdown"
						        data-val="true" data-val-selectrequired="Please select the campus location of your choice."
						        selectrequired="true" sessioncam-name="bl-d-CampusId" aria-label="Campus of Interest" aria-labelledby="btmBlueFormCampusLabel">
							<option selected="selected" value="0">--Select--</option>
							<option value="5">AIU Online</option>
							<option value="39">AIU Atlanta</option>
							<option value="57">AIU Houston</option>
						</select>
						<span class="field-validation-valid" data-valmsg-for="CampusId" data-valmsg-replace="true"></span>
					</div>
				</div>
				
					<div class="form-field-element form-field-element-text-field form-field-element-first-name form-input-wrap first-name">
						<label for="FirstName" id="btmBlueFormfNameLabel" class="FirstNameLabel">First Name</label>
						<input class="text" data-val="true" data-val-nameeval="Please provide a valid Name"
							   data-val-required="First Name required" name="FirstName" type="text" id="FirstName" value="" nameeval="true" sessioncam-name="bl-d-FirstName"
							   aria-label="First Name" aria-labelledby="btmBlueFormfNameLabel" />
						<span class="field-validation-valid" data-valmsg-for="FirstName" data-valmsg-replace="true"></span>
					</div>
					<div class="form-field-element form-field-element-text-field form-field-element-last-name form-input-wrap last-name">
						<label for="LastName" id="btmBlueFormlNameLabel" class="LastNameLabel">Last Name</label>
						<input class="text" data-val="true"
							   data-val-nameeval="Please provide a valid Name"
							   data-val-required="Last Name required" name="LastName" type="text" id="LastName" value="" nameeval="true" sessioncam-name="bl-d-LastName"
							   aria-label="Last Name" aria-labelledby="btmBlueFormlNameLabel" />
						<span class="field-validation-valid" data-valmsg-for="LastName" data-valmsg-replace="true"></span>
					</div>
				
					<div class="form-field-element form-field-element-text-field form-field-element-email form-input-wrap email">
						<label for="Email" id="btmBlueFormEmailLabel" class="EmailAddressLabel">Email Address</label>
						<input class="text" data-val="true"
							   data-val-email="Please enter a valid email address."
							   data-val-emailval="Please enter a valid email address."
							   data-val-required="Email required" name="Email" id="Email" type="email" value="" emailval="true" sessioncam-name="bl-d-Email"
							   aria-label="Email Address" aria-labelledby="btmBlueFormEmailLabel" />
						<span class="field-validation-valid" data-valmsg-for="Email" data-valmsg-replace="true"></span>
					</div>
				
					<div class="form-field-element form-field-element-text-field form-field-element-phone form-input-wrap ph-two phone" style="width: 230px;" >
						<label for="Phone" id="btmBlueFormPhoneLabel" class="DayPhoneLabel">Phone Number</label>
						<input class="text" data-val="true"
							   data-val-required="Phone required" name="Phone" type="tel" id="Phone" value="" phoneval="true" placeholder="e.g. (855)377-1888" sessioncam-name="bl-d-Phone"
							   aria-label="Phone Number" aria-labelledby="btmBlueFormPhoneLabel"/>
						<span class="field-validation-valid" data-valmsg-for="Phone" data-valmsg-replace="true"></span>
					</div>
					<div class="form-field-element form-field-element-text-field form-field-element-zip-code form-input-wrap zip" style="width: 100px;">
						<label for="ZipCode" id="btmBlueFormZipLabel" class="ZipCodeLabel">ZIP Code</label>
						<input class="text" data-val="true"
							   data-val-number="Please use only digits."
							   data-val-required="ZIP Code required"
							   data-val-length-min="5" data-val-length-max="5" data-val-length="Please specify a valid 5-digit ZIP Code"
							   name="ZipCode" id="ZipCode" type="tel" placeholder="e.g. 60173" value="" zipmassval="true" sessioncam-name="bl-d-ZipCode"
							   aria-label="ZIP Code" aria-labelledby="btmBlueFormZipLabel" />
						<span class="field-validation-valid" data-valmsg-for="ZipCode" data-valmsg-replace="true"></span>
					</div>
				</div>
				
			</div>
			<div id="hFormFields3" class="col-sm-12 form_column_btn">
				<p class="tcpa-wrap">By clicking the button below you agree to be contacted by AIU about education services (including through automated and/or pre-recorded means, e.g. dialing and text messaging) via telephone, mobile device (including SMS and MMS), and/or email, even if your telephone number or email address is on a corporate, state or the National Do Not Call Registry, and you agree to our <a href="/terms-and-conditions" target="_blank" class="txt-wht">Terms of Use</a> and <a href="/privacy-statement" target="_blank" class="txt-wht">Privacy Policy</a>. You understand that your consent is not required as a condition to purchase a good or service.</p>
				<div class="text-center">
					<input type="submit" name="Submit" value="I Agree" id="Submit" class="btn-submit" sessioncam-name="bl-d-Submit" />
				</div>
			</div>
		</div>
</div>

    <input type="hidden" name="formName" value="InPage-Form-No-Prog-Field"/>
    <input type="hidden" name="contentId" value="2852"/>
    <input type="hidden" name="jsEnabled" value="false"/>
    <input name="__RequestVerificationToken" type="hidden" value="rJ-zN0TH2mxjd1wa4uh3rta7yUo1rNqpfFk3-F4ql_7uiRMYx6qa4ylOKzzFOUr0_EFPUfgu_s4Finkzveq5dGumL7SxllngW9DUrDT9VMs1" />
</form>
</div>
    <script>
        $("#2852").on('submit',
            function(event) {
                event.redirector = "/confirmation";
                event.formAction = "/formscollection/submit";
                event.formMethod = "POST";
                event.fs = "#2852";
                event.message = ".";
                if ($(event.fs).valid()) {
                    if (event.formAction === "/Orchard.DynamicForms/Form/Submit") {
                        return true;
                    } else {
                        postSequence(event);
                    }
                } else {
                    console.log("invalid form data");
                }
            });
        document.addEventListener('pageSubmitEnd',
            function() {
                var messageCheck = "";
                if (messageCheck !== "") {
                    $("#2852").hide();
                $(".").show();
                }
                
            });
    </script>
</div>
</div>
</div>

</div>
</div>

<div>

   

<div class="background-white container">

<div class="row">
<div class=" col-xs-12 col-sm-12">




<div id="startid0ccb37e9-734f-4a38-acdf-52aa3ce48cd9">
<div class="aiu-secondary-background white-text orange-ribbon-wrap">
				<div class="row">
					<div class="ribbon-content">
						<div class="col-xs-12 col-sm-5 col-md-5 col-lg-6">
							<p>Classes Start December 5, 2018</p>
						</div>
						<div class="enroll col-xs-12 col-sm-7 col-md-7 col-lg-6">
							<ul class="buttons-wrap text-center">
											<li>
												<a class="button secondary link-button" href="/request-information" target="_self">Request Info</a>
											</li>

											<li><span id="lpButton1"></span></li>

											<li>
												<a class="button secondary link-button" href="/apply-now" target="_self">Apply Now</a>
											</li>

							</ul>
						</div>
					</div>
				</div>
	</div></div>

</div>
</div>
</div>


</div>



<style type="text/css">
    .bc2c-container {
        width: 100%;
        max-width: 650px;
        border: 10px solid #e4e4e4;
        margin: 0 auto 50px auto;
        padding: 10px 25px 20px 25px;
    }

        .bc2c-container .bc2c-form .bc2c-form-desc, .bc2c-container .bc2c-form .bc2c-form-fields, .bc2c-container .bc2c-form .bc2c-form-fields div[class="^col-"], .bc2c-container .bc2c-form .bc2c-form-fields > .container-fluid {
            padding: 0;
        }

            .bc2c-container .bc2c-form .bc2c-form-desc h2, .bc2c-container .bc2c-thankyou h2 {
                font-weight: bold;
                font-size: 54px;
                line-height: 0.9em;
                color: #1294c5;
            }

        .bc2c-container .bc2c-thankyou h2 {
            text-align: center;
            font-size: 54px;
        }

        .bc2c-container .bc2c-form .bc2c-form-desc h3 {
            color: #f37321;
            font-size: 24px;
            line-height: 1.0em;
            font-family: 'Roboto-Bold', sans-serif;
            margin-top: 0;
        }        

        .bc2c-container .bc2c-form .bc2c-form-desc h3 .date-value {
            display: block;
        }

        .bc2c-container .bc2c-form .bc2c-form-desc p, .bc2c-container .bc2c-thankyou p {
            font-size: 18px;
            color: #0065a4;
        }

        .bc2c-container .bc2c-thankyou p {
            text-align: center;
            font-size: 24px;
            line-height: normal;
        }

        .bc2c-container .bc2c-form .bc2c-form-fields {
            border-top: 1px solid #1294c5;
            border-left: none;
        }

            .bc2c-container .bc2c-form .bc2c-form-fields .row {
                min-height: 0;
            }

            .bc2c-container .bc2c-form .bc2c-form-fields .location, .bc2c-container .bc2c-form .bc2c-form-fields .first-name, .bc2c-container .bc2c-form .bc2c-form-fields .last-name, .bc2c-container .bc2c-form .bc2c-form-fields .phone, .bc2c-container .bc2c-form .bc2c-form-fields .email, .bc2c-container .bc2c-form .bc2c-form-fields .zip {
                margin-top: 12px;
                margin-bottom: 12px;
            }

                .bc2c-container .bc2c-form .bc2c-form-fields .location label {
                    color: #0065a4;
                    font-size: 18px;
                    font-weight: normal;
                    position: relative;
                    font-family: 'Roboto-Medium', sans-serif;
                }

                .bc2c-container .bc2c-form .bc2c-form-fields .location .radio-btn {
                    margin-top: 7.5px;
                    margin-bottom: 7.5px;
                    margin-left: 15px;
                }

                    .bc2c-container .bc2c-form .bc2c-form-fields .location .radio-btn input[type="radio"] {
                        margin-right: -10px;
                        visibility: hidden;
                    }

                        .bc2c-container .bc2c-form .bc2c-form-fields .location .radio-btn input[type="radio"]:checked + label::before, .bc2c-container .bc2c-form .bc2c-form-fields .location .radio-btn input[type="radio"]:not(:checked) + label::before {
                            content: '\f10c';
                            font-family: 'FontAwesome';
                            color: #999;
                            padding-right: 15px;
                        }

                        .bc2c-container .bc2c-form .bc2c-form-fields .location .radio-btn input[type="radio"]:checked + label:after, [type="radio"]:not(:checked) + label:after {
                            content: '\f058';
                            font-family: 'FontAwesome';
                            position: absolute;
                            color: #0065a4;
                            top: 0px;
                            left: 0px;
                            transition: all 0.5s ease;
                            opacity: 0;
                            transform: scale(0);
                        }

                        .bc2c-container .bc2c-form .bc2c-form-fields .location .radio-btn input[type="radio"]:checked + label::after {
                            opacity: 1;
                            transform: scale(1);
                        }

                .bc2c-container .bc2c-form .bc2c-form-fields .first-name input, .bc2c-container .bc2c-form .bc2c-form-fields .last-name input, .bc2c-container .bc2c-form .bc2c-form-fields .phone input, .bc2c-container .bc2c-form .bc2c-form-fields .email input {
                    width: 100%;
                    background-color: #f5f5f5;
                    border: none;
                    color: #666;
                    font-size: 14px;
                    padding: 10px;
                }

                .bc2c-container .bc2c-form .bc2c-form-fields .zip input {
                    width: 70%;
                    background-color: #f5f5f5;
                    border: none;
                    color: #666;
                    font-size: 14px;
                    padding: 10px;
                }

            .bc2c-container .bc2c-form .bc2c-form-fields .tcpa-container {
                margin-top: 15px;
            }

                .bc2c-container .bc2c-form .bc2c-form-fields .tcpa-container .tcpa-wrap {
                    font-size: 12px;
                    line-height: 1.3em;
                }

                    .bc2c-container .bc2c-form .bc2c-form-fields .tcpa-container .tcpa-wrap, .bc2c-container .bc2c-form .bc2c-form-fields .tcpa-container .tcpa-wrap a, .bc2c-container .bc2c-form .bc2c-form-fields .tcpa-container .tcpa-wrap a:hover, .bc2c-container .bc2c-form .bc2c-form-fields .tcpa-container .tcpa-wrap a:visited, .bc2c-container .bc2c-form .bc2c-form-fields .tcpa-container .tcpa-wrap a:active, .bc2c-container .bc2c-form .bc2c-form-fields .tcpa-container .tcpa-wrap a:focus {
                        color: #606263;
                    }

            .bc2c-container .bc2c-form .bc2c-form-fields .btn-submit {
                background-color: #f37321;
                color: #fff;
                margin: 0 auto;
                width: 150px;
                text-transform: uppercase;
                font-weight: bold;
                font-size: 16px;
                display: block;
            }

        .bc2c-container .field-validation-error {
            color: #ffa263;
            font-size: 11px;
            font-family: "Helvetica Neue",Helvetica,Helvetica,Arial,sans-serif;
            margin: 1px 0 0 0;
            line-height: 11px;
            position: relative;
            margin-bottom: -16px;
            display: block;
            padding-top: 2px;
            padding-bottom: 5px;
        }
    @media only screen and (min-width: 768px) {
        .bc2c-container {
            width: 650px;
            padding: 20px 25px 20px 25px;
        }

        .bc2c-container .bc2c-form .bc2c-form-desc h2 {
            font-size: 46px;
        }

        .bc2c-container .bc2c-form .bc2c-form-desc h3 {
            font-size: 22px;
        }

        .bc2c-container .bc2c-form .bc2c-form-fields {
            border-left: 1px solid #1294c5;
            border-top: none;
        }

        .bc2c-container .bc2c-form .bc2c-form-desc, .bc2c-container .bc2c-form .bc2c-form-fields, .bc2c-container .bc2c-form .bc2c-form-fields div[class="^col-"], .bc2c-container .bc2c-form .bc2c-form-fields > .container-fluid {
            padding: 0 15px;
        }

        .bc2c-container .bc2c-form .bc2c-form-fields .location label {
            font-size: 14px;
            font-weight: 700;
        }

        .bc2c-container .bc2c-form .bc2c-form-fields .first-name input, .bc2c-container .bc2c-form .bc2c-form-fields .last-name input, .bc2c-container .bc2c-form .bc2c-form-fields .phone input, .bc2c-container .bc2c-form .bc2c-form-fields .email input, .bc2c-container .bc2c-form .bc2c-form-fields .zip input {
            font-size: 16px;
        }
    }
</style></div>
		</div>


<div class="zone zone-footer-nav">
<script>
$(window).bind("load", function() {
  CEC.leadAttribution.setEnrollmentLinksSrc("applynowOnline");
});
</script>

<div>

   

<style>
#footerMain .foot-menu-small li {margin: 0 10px;}
#footerMain .foot-menu-small li a {font-size: 12px;}
</style>

<footer id="footerMain" class="main-wrap foot-1">
	<div class="container">
		<div class="row">
			<div class="col-xs-12 col-sm-3">
				<div class="colwrap-0 small-centered-block">
					<div class="logo-foot-wrap">
						<a href="/">
							<img src="/Media/Default/AIU/logos/aiu-logo-w.png" alt="American Intercontinental University" class="img-responsive footer-logo" />
							<!--<img src="/Media/Default/AIU/logos/aiu-logo-w.png" alt="American Intercontinental University" width="197" height="56" />-->
							<!--<img src="/Themes/Content/Images/assets/aiu-logo-w.png" alt="American Intercontinental University" width="197" height="56" />-->
						</a>
					</div>
					<h3 class="stay-connected-heading">Stay Connected</h3>
					<ul class="social-icons-foot">
						<li class="soc-facebook">
							<a href="https://www.facebook.com/AmericanInterContinentalUniversity" target="_blank" aria-label="American InterContinental University Facebook Page"></a>
						</li>
						<li class="soc-linkedin">
							<a href="http://www.linkedin.com/company/american-intercontinental-university" target="_blank" aria-label="American InterContinental University LinkedIn Page"></a>
						</li>
						<li class="soc-twitter">
							<a href="http://www.twitter.com/aiuniv" target="_blank" aria-label="American InterContinental University Twitter Page"></a>
						</li>
						<li class="soc-youtube">
							<a href="https://www.youtube.com/channel/UC-Lo3ztOvrvx3HOFFTRjn7A" target="_blank" aria-label="American InterContinental University Youtube Page">
							</a>
						</li>
					</ul>
					<h3 class="show-for-small-only-cec"><a href="/blog">AIU Blog</a></h3>
				</div>
			</div>
			<div class="col-sm-9">
				<div class="colwrap-1">
					<figure>
						<figcaption>Areas of Study</figcaption>
						<ul class="foot-menu">
							<li>
								<a href="/degrees/business">Business</a>
							</li>
							<li>
								<a href="/degrees/information-technology">Information Technology</a>
							</li>
							<li>
								<a href="/degrees/healthcare">Healthcare Management</a>
							</li>
							<li>
								<a href="/degrees/criminal-justice">Criminal Justice</a>
							</li>
							<li>
								<a href="/degrees/design">Design</a>
							</li>
							<li>
								<a href="/degrees/education">Education</a>
							</li>
						</ul>
					</figure>
					<figure>
						<figcaption>Degree Levels</figcaption>
						<ul class="foot-menu">
							<li>
								<a href="/degrees/associate">Associate</a>
							</li>
							<li>
								<a href="/degrees/bachelors">Bachelor's</a>
							</li>
							<li>
								<a href="/degrees/masters">Master's</a>
							</li>
							<li>
								<a href="/degrees/undergraduate-degrees">Undergraduate</a>
							</li>
							<li>
								<a href="/degrees/graduate-degrees">Graduate</a>
							</li>
						</ul>
					</figure>
					<figure>
						<figcaption>Campus Locations</figcaption>
						<ul class="foot-menu">
							<li>
								<a href="/online-education">Online</a>
							</li>
                                                        <!--
							<li>
								<a href="https://booknow.appointment-plus.com/9qzx01j0/" target="_blank">Schedule a phone interview</a>
							</li>
                                                        -->
							<li>
								<a href="/campus-locations/atlanta">Atlanta</a>
							</li>
							<li>
								<a href="/campus-locations/houston">Houston</a>
							</li>
                                                        <!--
							<li>
								<a href="https://booknow.appointment-plus.com/3d7c3730/" target="_blank">Schedule a campus visit</a>
							</li>
                                                        -->
						</ul>
					</figure>
				</div>
				<div class="colwrap-2">
					<figure>
						<figcaption>Popular AIU Online Degrees</figcaption>
						<ul class="foot-menu">
							<li>
								<a href="/degrees/business/bachelors-business-administration-management-bba">Business Management Degree</a>
							</li>
							<li>
								<a href="/degrees/business/mba-management">MBA in Business Management</a>
							</li>
							<li>
								<a href="/degrees/healthcare/bachelors-health-services-administration-management">Health Service Management Degree</a>
							</li>
							<li>
								<a href="/degrees/healthcare/masters-healthcare-management-mhcm">Master's in Healthcare Management</a>
							</li>
							<li>
								<a href="/degrees/business/bachelors-business-administration-accounting-bba">Business Accounting Degree</a>
							</li>
							<li>
								<a href="/degrees/business/bachelors-business-administration-finance-bba">Business Finance Degree</a>
							</li>
							<li>
								<a href="/degrees/business/bachelors-business-administration-project-management-bba">Project Management Degree</a>
							</li>
							<li>
								<a href="/degrees/information-technology/bachelors-network-administration">Network Administration Degree</a>
							</li>
							<li>
								<a href="/degrees/criminal-justice/bachelors-forensic-science">Forensic Science Degree</a>
							</li>
							<li>
								<a href="/one-year-mba-programs">One Year MBA</a>
							</li>
						</ul>
					</figure>
					<figure>
						<figcaption>Tuition & Financial Aid</figcaption>
						<ul class="foot-menu">
							<li>
								<a href="/tuition-financial-aid/tuition-fees">Tuition and Fees</a>
							</li>
							<li>
								<a href="/graduation-and-tuition-calculator">Tuition &amp; Graduation Date Calculator</a>
							</li>
							<li>
								<a href="/tuition-financial-aid/transfer-credit">Transfer Credits</a>
							</li>
							<li>
								<a href="/tuition-financial-aid/undergraduate-students">How to Apply for Financial Aid</a>
							</li>
							<li>
								<a href="https://aiuniv.studentaidcalculator.com/survey.aspx?utm_source=website&utm_medium=npclandingpage&utm_campaign=desktop_footer">Net Price Calculator</a>
							</li>
							<li>
								<a href="/tuition-financial-aid/scholarships-grants">Grants & Scholarships</a>
							</li>
							<li>
								<a href="/tuition-financial-aid/tuition-reimbursement">Employer Tuition Reimbursement</a>
							</li>
							<li>
								<a href="https://www.vibeaccount.com/swc/doc/landing/doj0g9tefm0pi8tjc1ks" target="_blank">BankMobile Disclosure</a>
							</li>
						</ul>
					</figure>
				</div>
				<div class="colwrap-3">
					<figure>
						<figcaption>About AIU</figcaption>
						<ul class="foot-menu">
							<li>
								<a href="/about/accreditation">Accreditation</a>
							</li>
							<li>
								<a href="http://aiuniv.smartcatalogiq.com/en/current/Catalog" target="_blank">University Catalog</a>
							</li>
							<li>
								<a href="/educational-alliances">Educational Alliances</a>
							</li>
							<li>
								<a href="/reviews">Reviews</a>
							</li>
							<li>
								<a href="/blog">AIU Blog</a>
							</li>
							<li>
								<a href="/about/careers">Careers at AIU</a>
							</li>
							<li>
								<a href="/documents-and-resources">Documents and Resources</a>
							</li>
							<li>
								<a href="/alumni/transcripts" class="nav-sub-aiu">Request a Transcript</a>
							</li>
							<li>
								<a href="/contact-us">Contact AIU</a>
							</li>
						</ul>
					</figure>
					<figure>
						<figcaption>Admissions</figcaption>
						<ul class="foot-menu">
							<li>
								<a href="/admissions/requirements">Requirements</a>
							</li>
							<li>
								<a href="/admissions/prior-learning-credits">Prior Learning Credits</a>
							</li>
							<li>
								<a href="/admissions/military-students/online">Military Students</a>
							</li>
							<li>
								<a href="/admissions/transfer-students/online">Transfer Students</a>
							</li>
							<li>
								<a href="/admissions/international-students/online">International Students</a>
							</li>
							<li>
								<a href="/admissions/faq#3">School Codes</a>
							</li>
						</ul>
					</figure>
					<figure>
						<figcaption>Student Login</figcaption>
						<ul class="foot-menu">
							<li>
								<a href="https://studentlogin.aiuniv.edu/_layouts/login/login.aspx?ReturnUrl=%2f%3f_ga%3d1.159149562.15468530.1463429340&_ga=1.159149562.15468530.1463429340" target="_blank" rel="nofollow">Online</a>
							</li>
							<li>
								<a href="https://my.atlanta.aiuniv.edu/_layouts/login/Login.aspx?_ga=1.168142049.15468530.1463429340" target="_blank" rel="nofollow">Atlanta</a>
							</li>
							<li>
								<a href="https://my.houston.aiuniv.edu/_layouts/login/Login.aspx?_ga=1.159149562.15468530.1463429340" target="_blank" rel="nofollow">Houston</a>
							</li>
						</ul>
					</figure>
				</div>
			</div>
		</div>
		<div>
			<div class="row copyright">
				<p class="col-sm-12 copyrights">
					&copy;2018 Copyright American InterContinental University. All rights reserved. No information may be duplicated without AIU's permission. The AIU logo is a registered trademark of Career Education Corporation. AIU cannot guarantee employment or salary. Not all programs are available to residents of all states. AIU does not do business in the Commonwealth of Massachusetts or the European Union and does not accept applications from residents of these jurisdictions seeking to enroll at the University.  Programs vary by location and modality; see <a target="_blank" href="http://aiuniv.smartcatalogiq.com/en/current/Catalog">University Catalog</a> for details. Financial aid is available for those who qualify. See the Accreditation & Licensure section for information on the agencies that approve and regulate the school's programs, including complaint procedures <a href="/about/accreditation ">HERE</a>. For important information about the educational debt, earnings, and completion rates of students who attended these programs and other important disclosures, click the links below.<br /><br />
					<span itemprop="name">American InterContinental University</span> <span itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
						· <span itemprop="streetAddress">231 N. Martingale Road, 6th Floor</span> · <span itemprop="addressLocality">Schaumburg, IL <span itemprop="postalCode"> 60173</span></span> · <span itemprop="telephone">1-877-701-3800</span>.
					</span>
				</p>
				<ul class="foot-menu-small">
					<li>
						<a href='/privacy-statement'>Privacy Policy</a>
					</li>
					<li>
						<a href="/website-accessibility" target="_blank">Website Accessibility</a>
					</li>
					<li>
						<a href='/terms-and-conditions'>Terms of Use</a>
					</li>
					<li>
						<a href='/about-our-ads'>About Our Ads</a>
					</li>
					<li>
						<a href='/student-disclosures'>Student Disclosures</a>
					</li>
					<li>
						<a href='/media/default/aiu/documents/disclosures/AIU-student-outcomes-disclosure.pdf' rel="nofollow" target="_blank">Student Outcomes</a>
					</li>
					<li>
						<a href='/sitemap'>AIU Sitemap</a>
					</li>
					<li>
						<a href='/student-safety'>Student Safety</a>
					</li>
					<li>
						<a href='/contact-us'>Contact Us</a>
					</li>
				</ul>
			</div>
		</div>
	</div>
</footer>


</div></div>
<div class="zone zone-footer">
<script>
    var androiddevice;
    androiddevice = (/android/i.test(navigator.userAgent.toLowerCase()));
    var iosdevice;
    iosdevice = (/iphone|ipad|ipod/i.test(navigator.userAgent.toLowerCase()));
    var ar = new Array(37, 38, 39, 40);
    var disableArrowKeys = function(e) {
        if ($.inArray(e.keyCode, ar) >= 0) {
            e.preventDefault();
        }
    };
    var del = new Array(8);
    var disableBackspaceKeys = function(e) {
        if ($.inArray(e.keyCode, del) >= 0) {
            e.preventDefault();
        }
    };

    function detectIE() {
        var ua = window.navigator.userAgent;

        var msie = ua.indexOf('MSIE ');
        if (msie > 0) {
            // IE 10 or older => return version number
            return parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10);
        }

        var trident = ua.indexOf('Trident/');
        if (trident > 0) {
            // IE 11 => return version number
            var rv = ua.indexOf('rv:');
            return parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10);
        }

        var edge = ua.indexOf('Edge/');
        if (edge > 0) {
            // Edge (IE 12+) => return version number
            return parseInt(ua.substring(edge + 5, ua.indexOf('.', edge)), 10);
        }

        // other browser
        return false;
    };

    function setSelectedText(elem, selStart, selEnd) {
        if (elem.setSelectionRange) { //standard
            elem.focus();
            elem.setSelectionRange(selStart, selEnd);
        }
    };

    function validateNumCharacter(e) {
        return (/\d/.test(e) || /[A-Za-z]/.test(e));
    };

    document.onkeyup = function(evt) {
        var evt = evt || window.event, //window.event for IE
            el = evt.target || evt.srcElement, //srcElement for IE
            nn = el.nodeName.toLowerCase(),
            kc = evt.which || evt.keyCode; //keyCode for IE

        if (kc == 9 /*tab key*/ && nn == 'input' && (el.id == 'Phone' || el.id == 'ovrFormPhone' || el.id == 'inputPhone')) {
            //an input of type text has been tabbed into,
            //set it's text selection to the end of it:
            //console.log("Yep, thats phone input");
            //console.log("phone number value:"+el.value);
            if (el.value) {
                //setSelectedText(el, 1, el.value.length+1);
                //console.log("Phone input has value");
                //console.log(el.value);
                if (!validateNumCharacter(el.value) && detectIE()) {
                    setSelectedText(el, 1, 1);
                    //console.log("using IE, with no value in the input, set position to 1,1")
                }
            } else {
                setSelectedText(el, 1, 1);
                //console.log("set cursor to 1");
            }

        }
    };



    //IOS fix for cursor position on click

    //$('#requestFormPhoneLabel').text("Doriya833!!");

    $('#Phone, #ovrFormPhone, #inputPhone').on('click touchstart', function(event) {

        if (iosdevice) {

            $(this).addClass("iosstyle");
            var value = $(this).val();
            if ((!value) || value == '' || value == '(___) ___-____') {

                event.preventDefault();
                $(this).focus();
                $(this).prop('selectionStart', 1);
                $(this).prop('selectionEnd', 1);
            }
        }
    });


    $('#Phone, #ovrFormPhone, #inputPhone').on('blur change keyup', function() {
        //console.log("b/c/keyupevent in desktop");
        var value = $(this).val();

        if (detectIE()) {
            //console.log("IE detected in blur/change/keyup");
            if (value && value != '(___) ___-____') {
                //console.log("IE has value, unlock");
                $(this).unbind('keydown', disableArrowKeys);
            } else {
                //console.log("IE lock arrow");
                $(this).keydown(disableArrowKeys);
            }

        } else {
            if (value) {
                //console.log("has value");
                $(this).unbind('keydown', disableArrowKeys);
            } else {
                $(this).keydown(disableArrowKeys);
            }
        }

    });

    $('#Phone, #ovrFormPhone, #inputPhone').on('focus', function() {
        //console.log("focus on!");
        var value = $(this).val();
        if (!value) {
            //console.log("value is null");
            $(this).keydown(disableArrowKeys);
        }
        if (detectIE()) {
            //console.log("IE detected, value =" + value);
            if (value == '(___) ___-____') {
                //console.log("value=()__-__");
                $(this).keydown(disableArrowKeys);
            }
        }
    });

    //Change the cursor position when came across the ")" and "-"
    //temp position, refined version

    var tempFirstnum;
    if (androiddevice) {
        //console.log('android mobile device');

        $("#Phone, #ovrFormPhone, #inputPhone").bind("change paste keyup", function() {
            //console.log($(this).val()); 
            var tempPos;
            var curPos = $(this).prop('selectionStart');

            //console.log("Current position = " + curPos);
            tempPos = curPos;
            $(this).on('keydown', function() {
                curPos = $(this).prop('selectionStart');
                tempPos = curPos;

                var key = event.keyCode || event.charCode;
                //$('#requestFormEmailLabel').text("keydown,cur/temp = " + curPos +" and "+ tempPos + "Keynumber =" + key);
                if (key == 229 || key == 8) {
                    //console.log("Backspace key pressed");
                    if (tempPos == 6) {
                        //console.log("Cursor position at 5/6");
                        $(this).prop('selectionStart', 4);
                        $(this).prop('selectionEnd', 4);
                    } else if (tempPos == 10) {
                        //$('#requestFormPhoneLabel').text("jump, cur/temp = " + curPos +" and "+ tempPos);
                        $(this).prop('selectionStart', tempPos - 1);
                        $(this).prop('selectionEnd', tempPos - 1);
                    } else {
                        //$('#requestFormPhoneLabel').text("normal removal,cur/temp = " + curPos +" and "+ tempPos);
                        //$(this).prop('selectionStart', tempPos-1);
                        //$(this).prop('selectionEnd', tempPos-1);
                    }
                    curPos = $(this).prop('selectionStart');
                    //$('#requestFormEmailLabel').text("after removal, cur/temp = " + curPos +" and "+ tempPos);
                    tempPos = curPos;
                }

            });
        });
    } else {
        var tempPos;
        var curPos;

        //console.log("Current position = " + curPos);
        // tempPos = curPos;
        $("#Phone, #ovrFormPhone, #inputPhone").on('keydown', function(event) {
            curPos = $(this).prop('selectionStart');
            tempPos = curPos;
            var key = event.keyCode || event.charCode;
            // console.log("Key pressed code:" + key);
            // console.log("current cursor position:" + $(this).prop('selectionStart'));
            if (key == 8) {
                //console.log("Backspace key pressed");
                if (tempPos == 6 || tempPos == 5) {
                    //console.log("Cursor position at 5/6");
                    $(this).prop('selectionStart', 4);
                    $(this).prop('selectionEnd', 4);
                } else if (tempPos == 10) {
                    $(this).prop('selectionStart', tempPos - 1);
                    $(this).prop('selectionEnd', tempPos - 1);
                } else if (tempPos == 1) {
                    event.preventDefault();
                    $(this).prop('selectionStart', 2);
                    $(this).prop('selectionEnd', 2);
                    $(this).keydown(disableBackspaceKeys);
                    //event.preventDefault();
                    var tempValue = $(this).val();
                    tempFirstnum = tempValue.charAt(1);
                    //console.log("tempPos = 1,  TempValue = " + tempValue + "Key code = " + event.keyCode + "tempFirstnum = " + tempFirstnum);
                    return false;
                } else {
                    //$(this).prop('selectionStart', tempPos - 1);
                    //$(this).prop('selectionEnd', tempPos - 1);
                }
                //return false;
            }

        });
    }

    var tempupPos;
    var curupPos;
    $("#Phone, #ovrFormPhone, #inputPhone").on('keyup', function(event) {
        curupPos = $(this).prop('selectionStart');
        tempupPos = curupPos;
        var key = event.keyCode || event.charCode;
        // console.log("Key pressed code:" + key);
        // console.log("current cursor position:" + $(this).prop('selectionStart'));
        if (!detectIE()) {
            if (key == 8 && (!androiddevice)) {
                if (tempupPos == 1) {
                    //console.log("HeyHeyHey, key up pos1 value = " + $(this).val());
                    if ($(this).val() != "") {
                        var test = $(this).val();
                        //if test only contains 1
                        if (test.replace(/[^0,2-9]/g, '')) {
                            $(this).val(test);
                            //$(this).val(test.replace(/[^0,2-9]/g, ''));
                            //console.log("Value now = " + $(this).val());
                        } else {
                            //console.log("rest of the value only contains 1");
                            $(this).val(test);
                            $(this).blur();
                            $(this).focus();
                            //$(this).focus();
                        }


                        $(this).prop('selectionStart', 1);
                        $(this).prop('selectionEnd', 1);
                    } else {
                        //console.log('empty value');
                    }

                }
            }
        } else {
            if (key == 8) {
                if (tempupPos == 1) {
                   
                    //console.log("IE:HeyHeyHey, key up pos1 value = " + $(this).val());
                    if ($(this).val() != "") {
                        var test = $(this).val();
                        var test2 = test.replace(/[^0-9]/g, '');
                       // console.log("Test2 = " + test2);

                        //if test2 only contains 1
                        if (test2.replace(/[^0,2-9]/g, '')) {
                            //$(this).val(test);
                            //    $(this).val(test.replace(/[^0,2-9]/g, ''));
                            //    console.log("Value now = " + $(this).val());
                            //assign value test2
                            $(this).val(test2);
                            $(this).inputmask("(*99) 999-9999", {
                                definitions: {
                                    '#': {
                                        validator: "[0-9\uFF11-\uFF19A-Za-z\u0410-\u044F\u0401\u0451\u00C0-\u00FF\u00B5]",
                                        cardinality: 1
                                    },
                                    '*': {
                                        validator: "[0,2-9,A-Za-z]",
                                        cardinality: 1
                                    }
                                }
                            });
                        } else {
                            //console.log("rest of the value only contains 1");
                            $(this).val(test2);
                            $(this).val(test2);
                            $(this).inputmask("(*99) 999-9999", {
                                definitions: {
                                    '#': {
                                        validator: "[0-9\uFF11-\uFF19A-Za-z\u0410-\u044F\u0401\u0451\u00C0-\u00FF\u00B5]",
                                        cardinality: 1
                                    },
                                    '*': {
                                        validator: "[0,2-9,A-Za-z]",
                                        cardinality: 1
                                    }
                                }
                            });
                            $(this).blur();
                            $(this).focus();
                        }


                        $(this).prop('selectionStart', 1);
                        $(this).prop('selectionEnd', 1);
                    } else {
                        //console.log('IE:empty value');
                    }

                }
            }
        }


    });

    var phoneNumVal;
    $('#Phone, #ovrFormPhone, #inputPhone').on('keydown', function() {
        phoneNumVal = $(this).val();
    });
    var tPos;
    var cPos;
    //Fix an issue about first digit input 
    $("#Phone, #ovrFormPhone, #inputPhone").on('keyup', function(event) {
        cPos = $(this).prop('selectionStart');
        tPos = cPos;
        var key = event.keyCode || event.charCode;
        var tempvalue = $(this).val();
        if ((key >= 48 && key <= 57) || (key >= 96 && key <= 105)) {
            //console.log("Number key pressed");
            if (tPos == 2) {
                var firstDigit = tempvalue.replace(/[^0-9]/g, '').charAt(0);

                var tempValueFix = firstDigit + phoneNumVal.replace(/[^0-9]/g, '');
                if (detectIE()) {
                    $(this).val(tempValueFix);
                    $(this).inputmask("(*99) 999-9999", {
                        definitions: {
                            '#': {
                                validator: "[0-9\uFF11-\uFF19A-Za-z\u0410-\u044F\u0401\u0451\u00C0-\u00FF\u00B5]",
                                cardinality: 1
                            },
                            '*': {
                                validator: "[0,2-9,A-Za-z]",
                                cardinality: 1
                            }
                        }
                    });
                } else {
                    $(this).val(tempValueFix);
                }
                $(this).prop('selectionStart', 2);
                $(this).prop('selectionEnd', 2);
            }
        }
    });
    //Fix an issue for IE: tab key switch between input will trigger error message
    if (detectIE()) {
        var startVal;
        var errState;
        var validState;
        var endVal;
        var preErrState = false; // true = has error class
        $('#Phone, #ovrFormPhone, #inputPhone').on('focus', function() {
            startVal = $(this).val();
            //console.log("start val =" + startVal);
            errState = $(this).hasClass('input-validation-error'); //true = has error class
           // console.log("errState : " + errState);
            validState = $(this).hasClass('valid'); //true = has valid class
           // console.log("ValidState : " + validState);
            if (startVal == "(___) ___-____" && !($(this).hasClass('input-validation-error'))) {


            };
           //console.log("preErrState : " + preErrState);
            if ((!preErrState)) {

                //console.log("Focus, remove error class");
                $(this).closest('div').find('span').addClass("ie-hidden-style");
                $(this).removeClass('input-validation-error');
                $(this).closest('div').find('span').removeClass("field-validation-error").addClass("field-validation-valid");
                //find cousin element span, remove class add class 
                //$(this).closest('div').find('span').find('span').html("");
                $(this).closest('div').find('span').html("");
            };

        });
        $('#Phone, #ovrFormPhone, #inputPhone').on('blur', function() {
            endVal = $(this).val();
            //console.log("End val =" + endVal);
            //console.log("Inside of the blur event! Start val =" + startVal + " End val=" + endVal);
            if (startVal == "" && endVal == "(___) ___-____" && !errState) {
                //console.log("End val is empty, remove the error message");
                if (validState) {
                   // console.log("remove error class add valid");
                    $(this).removeClass('input-validation-error').addClass('valid');
                } else {
                    //console.log("remove error class");
                    $(this).removeClass('input-validation-error');
                }

                $(this).closest('div').find('span').removeClass("field-validation-error").addClass("field-validation-valid");
                //find cousin element span, remove class add class 
                //$(this).closest('div').find('span').find('span').html("");
                $(this).closest('div').find('span').html("");
            }
            if (endVal == "(___) ___-____" && errState) {
                $(this).closest('div').find('span').find('span').html("Phone required");
            }
            if ($(this).hasClass('input-validation-error')) {
                preErrState = true;
            } else {
                preErrState = false;
            }
            $(this).closest('div').find('span').removeClass("ie-hidden-style");
        });


    };

    //add disable backspace to the function
    var phoneNumFirstDigitVal;
    var oldvalue = "";

    var cursorPos;
    var oldcursorPos;

    var curAtFirstDigit = false;

    var cPos;
    $('#Phone, #ovrFormPhone, #inputPhone').on('keydown', function() {
        phoneNumFirstDigitVal = $(this).val().replace(/[^0-9]/g, '').charAt(0);
        //   phoneNumVal = $(this).val();
        oldcursorPos = cursorPos;


        cursorPos = $(this).prop('selectionStart');

        //IE only fix
        if (oldcursorPos == 0 && detectIE()) {
            oldcursorPos = oldcursorPos + 1;
        }
        cursorPos = cursorPos - 1;

        if (oldcursorPos == cursorPos && cursorPos == 1) {
            //console.log("Pos ==1");
            curAtFirstDigit = true;
        } else {
            curAtFirstDigit = false;
        }
        //console.log("CPK event " + cursorPos + " oldcursorPos" + oldcursorPos);

    });
    $('#Phone, #ovrFormPhone, #inputPhone').on('click', function() {
        cursorPos = $(this).prop('selectionStart');

    });
    //Fix an issue about first digit input 
    $("#Phone, #ovrFormPhone, #inputPhone").on('keyup', function(event) {
        cPos = $(this).prop('selectionStart');
        //tPos = cPos;  
        var key = event.keyCode || event.charCode;
        var tempvalue = $(this).val();
        //console.log("key down Phone value:" + phoneNumVal + " Tempvalue:" + tempvalue + " FirstDigit " + phoneNumFirstDigitVal);
        //console.log("cPos:"+cPos+" tPos:"+tPos);
        if (key == 8) {
            if ((cPos == 1 || cPos == 0) && curAtFirstDigit && oldvalue!="" && oldvalue!="(___) ___-____") {
                $(this).val(oldvalue);
                if (detectIE()) {
                    $(this).inputmask("(*99) 999-9999", {
                        definitions: {
                            '*': {
                                validator: "[0,2-9,A-Za-z]",
                                cardinality: 1
                            }
                        }
                    });
                }

                //$(this).blur();
                //$(this).focus();
                $(this).prop('selectionStart', 1);
                $(this).prop('selectionEnd', 1);
            }
        }
        //console.log('Old value' + oldvalue);
        oldvalue = $(this).val();
        cursorPos = $(this).prop('selectionStart');

    });

//Fix auto fill issue for Chrome/FF
$('#Phone, #ovrFormPhone, #inputPhone').on('input', function() {
    if (/chrom(e|ium)/.test(navigator.userAgent.toLowerCase())) {

        var value = $(this).val();
        $(this).val(value);
    }
    if (navigator.userAgent.toLowerCase().indexOf('firefox') > -1) {
        //FF
       // console.log("FF");
        var value = $(this).val();
        //console.log("Input Value = " + value);
        $(this).val(value);
    }
    if (navigator.userAgent.indexOf('Safari') != -1 && navigator.userAgent.indexOf('Chrome') == -1)  { 
   //i.e. apply safari class via jquery
        var value = $(this).val();
        //console.log("Input Value = " + value);
        $(this).val(value);
    }
});

    $(window).load(function() {
        var phones = [{
            "mask": "(*##) ###-####"
        }];
        $('#Phone, #ovrFormPhone, #inputPhone').inputmask({
            mask: phones,
            greedy: true,
            definitions: {
                '#': {
                    validator: "[0-9\uFF11-\uFF19A-Za-z\u0410-\u044F\u0401\u0451\u00C0-\u00FF\u00B5]",
                    cardinality: 1
                },
                '*': {
                    validator: "[0,2-9,A-Za-z]",
                    cardinality: 1
                }
            }
        });
    });


    $(document).ready(function() {
        /**
         * @license Input Mask plugin for jquery
         * http://github.com/RobinHerbots/jquery.inputmask
         * Copyright (c) 2010 - 2013 Robin Herbots
         * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
         * Version: 0.0.0
         */

        (function($) {
            if ($.fn.inputmask === undefined) {
                $.inputmask = {
                    //options default
                    defaults: {
                        placeholder: "_",
                        optionalmarker: {
                            start: "[",
                            end: "]"
                        },
                        quantifiermarker: {
                            start: "{",
                            end: "}"
                        },
                        groupmarker: {
                            start: "(",
                            end: ")"
                        },
                        escapeChar: "\\",
                        mask: null,
                        oncomplete: $.noop, //executes when the mask is complete
                        onincomplete: $.noop, //executes when the mask is incomplete and focus is lost
                        oncleared: $.noop, //executes when the mask is cleared
                        repeat: 0, //repetitions of the mask: * ~ forever, otherwise specify an integer
                        greedy: true, //true: allocated buffer for the mask and repetitions - false: allocate only if needed
                        autoUnmask: false, //automatically unmask when retrieving the value with $.fn.val or value if the browser supports __lookupGetter__ or getOwnPropertyDescriptor
                        clearMaskOnLostFocus: true,
                        insertMode: true, //insert the input or overwrite the input
                        clearIncomplete: false, //clear the incomplete input on blur
                        aliases: {}, //aliases definitions => see jquery.inputmask.extensions.js
                        onKeyUp: $.noop, //override to implement autocomplete on certain keys for example
                        onKeyDown: $.noop, //override to implement autocomplete on certain keys for example
                        showMaskOnFocus: true, //show the mask-placeholder when the input has focus
                        showMaskOnHover: false, //show the mask-placeholder when hovering the empty input
                        onKeyValidation: $.noop, //executes on every key-press with the result of isValid. Params: result, opts
                        skipOptionalPartCharacter: " ", //a character which can be used to skip an optional part of a mask
                        showTooltip: false, //show the activemask as tooltip
                        numericInput: false, //numericInput input direction style (input shifts to the left while holding the caret position)
                        //numeric basic properties
                        isNumeric: false, //enable numeric features
                        radixPoint: "", //".", // | ","
                        skipRadixDance: false, //disable radixpoint caret positioning
                        rightAlignNumerics: true, //align numerics to the right
                        //numeric basic properties
                        definitions: {
                            '9': {
                                validator: "[0-9]",
                                cardinality: 1
                            },
                            'a': {
                                validator: "[A-Za-z\u0410-\u044F\u0401\u0451]",
                                cardinality: 1
                            },
                            '*': {
                                validator: "[A-Za-z\u0410-\u044F\u0401\u04510-9]",
                                cardinality: 1
                            }
                        },
                        keyCode: {
                            ALT: 18,
                            BACKSPACE: 8,
                            CAPS_LOCK: 20,
                            COMMA: 188,
                            COMMAND: 91,
                            COMMAND_LEFT: 91,
                            COMMAND_RIGHT: 93,
                            CONTROL: 17,
                            DELETE: 46,
                            DOWN: 40,
                            END: 35,
                            ENTER: 13,
                            ESCAPE: 27,
                            HOME: 36,
                            INSERT: 45,
                            LEFT: 37,
                            MENU: 93,
                            NUMPAD_ADD: 107,
                            NUMPAD_DECIMAL: 110,
                            NUMPAD_DIVIDE: 111,
                            NUMPAD_ENTER: 108,
                            NUMPAD_MULTIPLY: 106,
                            NUMPAD_SUBTRACT: 109,
                            PAGE_DOWN: 34,
                            PAGE_UP: 33,
                            PERIOD: 190,
                            RIGHT: 39,
                            SHIFT: 16,
                            SPACE: 32,
                            TAB: 9,
                            UP: 38,
                            WINDOWS: 91
                        },
                        //specify keycodes which should not be considered in the keypress event, otherwise the preventDefault will stop their default behavior especially in FF
                        ignorables: [8, 9, 13, 19, 27, 33, 34, 35, 36, 37, 38, 39, 40, 45, 46, 93, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123],
                        getMaskLength: function(buffer, greedy, repeat, currentBuffer, opts) {
                            var calculatedLength = buffer.length;
                            if (!greedy) {
                                if (repeat == "*") {
                                    calculatedLength = currentBuffer.length + 1;
                                } else if (repeat > 1) {
                                    calculatedLength += (buffer.length * (repeat - 1));
                                }
                            }
                            return calculatedLength;
                        }
                    },
                    escapeRegex: function(str) {
                        var specials = ['/', '.', '*', '+', '?', '|', '(', ')', '[', ']', '{', '}', '\\'];
                        return str.replace(new RegExp('(\\' + specials.join('|\\') + ')', 'gim'), '\\$1');
                    }
                };

                $.fn.inputmask = function(fn, options) {
                    var opts = $.extend(true, {}, $.inputmask.defaults, options),
                        msie10 = navigator.userAgent.match(new RegExp("msie 10", "i")) !== null,
                        iphone = navigator.userAgent.match(new RegExp("iphone", "i")) !== null,
                        android = navigator.userAgent.match(new RegExp("android.*safari.*", "i")) !== null,
                        androidchrome = navigator.userAgent.match(new RegExp("android.*chrome.*", "i")) !== null,
                        pasteEvent = isInputEventSupported('paste') && !msie10 ? 'paste' : isInputEventSupported('input') ? 'input' : "propertychange",
                        masksets,
                        activeMasksetIndex = 0;

                    if (typeof fn === "string") {
                        switch (fn) {
                            case "mask":
                                //resolve possible aliases given by options
                                resolveAlias(opts.alias, options);
                                masksets = generateMaskSets();
                                if (masksets.length == 0) {
                                    return this;
                                }

                                return this.each(function() {
                                    maskScope($.extend(true, {}, masksets), 0).mask(this);
                                });
                            case "unmaskedvalue":
                                var $input = $(this),
                                    input = this;
                                if ($input.data('_inputmask')) {
                                    masksets = $input.data('_inputmask')['masksets'];
                                    activeMasksetIndex = $input.data('_inputmask')['activeMasksetIndex'];
                                    opts = $input.data('_inputmask')['opts'];
                                    return maskScope(masksets, activeMasksetIndex).unmaskedvalue($input);
                                } else return $input.val();
                            case "remove":
                                return this.each(function() {
                                    var $input = $(this),
                                        input = this;
                                    if ($input.data('_inputmask')) {
                                        masksets = $input.data('_inputmask')['masksets'];
                                        activeMasksetIndex = $input.data('_inputmask')['activeMasksetIndex'];
                                        opts = $input.data('_inputmask')['opts'];
                                        //writeout the unmaskedvalue
                                        input._valueSet(maskScope(masksets, activeMasksetIndex).unmaskedvalue($input, true));
                                        //clear data
                                        $input.removeData('_inputmask');
                                        //unbind all events
                                        $input.unbind(".inputmask");
                                        $input.removeClass('focus.inputmask');
                                        //restore the value property
                                        var valueProperty;
                                        if (Object.getOwnPropertyDescriptor)
                                            valueProperty = Object.getOwnPropertyDescriptor(input, "value");
                                        if (valueProperty && valueProperty.get) {
                                            if (input._valueGet) {
                                                Object.defineProperty(input, "value", {
                                                    get: input._valueGet,
                                                    set: input._valueSet
                                                });
                                            }
                                        } else if (document.__lookupGetter__ && input.__lookupGetter__("value")) {
                                            if (input._valueGet) {
                                                input.__defineGetter__("value", input._valueGet);
                                                input.__defineSetter__("value", input._valueSet);
                                            }
                                        }
                                        try { //try catch needed for IE7 as it does not supports deleting fns
                                            delete input._valueGet;
                                            delete input._valueSet;
                                        } catch (e) {
                                            input._valueGet = undefined;
                                            input._valueSet = undefined;

                                        }
                                    }
                                });
                                break;
                            case "getemptymask": //return the default (empty) mask value, usefull for setting the default value in validation
                                if (this.data('_inputmask')) {
                                    masksets = this.data('_inputmask')['masksets'];
                                    activeMasksetIndex = this.data('_inputmask')['activeMasksetIndex'];
                                    return masksets[activeMasksetIndex]['_buffer'].join('');
                                } else return "";
                            case "hasMaskedValue": //check wheter the returned value is masked or not; currently only works reliable when using jquery.val fn to retrieve the value 
                                return this.data('_inputmask') ? !this.data('_inputmask')['opts'].autoUnmask : false;
                            case "isComplete":
                                masksets = this.data('_inputmask')['masksets'];
                                activeMasksetIndex = this.data('_inputmask')['activeMasksetIndex'];
                                opts = this.data('_inputmask')['opts'];
                                return maskScope(masksets, activeMasksetIndex).isComplete(this[0]._valueGet().split(''));
                            case "getmetadata": //return mask metadata if exists
                                if (this.data('_inputmask')) {
                                    masksets = this.data('_inputmask')['masksets'];
                                    activeMasksetIndex = this.data('_inputmask')['activeMasksetIndex'];
                                    return masksets[activeMasksetIndex]['metadata'];
                                } else return undefined;
                            default:
                                //check if the fn is an alias
                                if (!resolveAlias(fn, options)) {
                                    //maybe fn is a mask so we try
                                    //set mask
                                    opts.mask = fn;
                                }
                                masksets = generateMaskSets();
                                if (masksets.length == 0) {
                                    return this;
                                }
                                return this.each(function() {
                                    maskScope($.extend(true, {}, masksets), activeMasksetIndex).mask(this);
                                });

                                break;
                        }
                    } else if (typeof fn == "object") {
                        opts = $.extend(true, {}, $.inputmask.defaults, fn);

                        resolveAlias(opts.alias, fn); //resolve aliases
                        masksets = generateMaskSets();
                        if (masksets.length == 0) {
                            return this;
                        }
                        return this.each(function() {
                            maskScope($.extend(true, {}, masksets), activeMasksetIndex).mask(this);
                        });
                    } else if (fn == undefined) {
                        //look for data-inputmask atribute - the attribute should only contain optipns
                        return this.each(function() {
                            var attrOptions = $(this).attr("data-inputmask");
                            if (attrOptions && attrOptions != "") {
                                try {
                                    attrOptions = attrOptions.replace(new RegExp("'", "g"), '"');
                                    var dataoptions = $.parseJSON("{" + attrOptions + "}");
                                    $.extend(true, dataoptions, options);
                                    opts = $.extend(true, {}, $.inputmask.defaults, dataoptions);
                                    resolveAlias(opts.alias, dataoptions);
                                    opts.alias = undefined;
                                    $(this).inputmask(opts);
                                } catch (ex) {} //need a more relax parseJSON
                            }
                        });
                    }

                    //helper functions
                    function isInputEventSupported(eventName) {
                        var el = document.createElement('input'),
                            eventName = 'on' + eventName,
                            isSupported = (eventName in el);
                        if (!isSupported) {
                            el.setAttribute(eventName, 'return;');
                            isSupported = typeof el[eventName] == 'function';
                        }
                        el = null;
                        return isSupported;
                    }

                    function resolveAlias(aliasStr, options) {
                        var aliasDefinition = opts.aliases[aliasStr];
                        if (aliasDefinition) {
                            if (aliasDefinition.alias) resolveAlias(aliasDefinition.alias); //alias is another alias
                            $.extend(true, opts, aliasDefinition); //merge alias definition in the options
                            $.extend(true, opts, options); //reapply extra given options
                            return true;
                        }
                        return false;
                    }

                    function getMaskTemplate(mask) {
                        if (opts.numericInput) {
                            mask = mask.split('').reverse().join('');
                        }
                        var escaped = false,
                            outCount = 0,
                            greedy = opts.greedy,
                            repeat = opts.repeat;
                        if (repeat == "*") greedy = false;
                        //if (greedy == true && opts.placeholder == "") opts.placeholder = " ";
                        if (mask.length == 1 && greedy == false && repeat != 0) {
                            opts.placeholder = "";
                        } //hide placeholder with single non-greedy mask
                        var singleMask = $.map(mask.split(""), function(element, index) {
                            var outElem = [];
                            if (element == opts.escapeChar) {
                                escaped = true;
                            } else if ((element != opts.optionalmarker.start && element != opts.optionalmarker.end) || escaped) {
                                var maskdef = opts.definitions[element];
                                if (maskdef && !escaped) {
                                    for (var i = 0; i < maskdef.cardinality; i++) {
                                        outElem.push(getPlaceHolder(outCount + i));
                                    }
                                } else {
                                    outElem.push(element);
                                    escaped = false;
                                }
                                outCount += outElem.length;
                                return outElem;
                            }
                        });

                        //allocate repetitions
                        var repeatedMask = singleMask.slice();
                        for (var i = 1; i < repeat && greedy; i++) {
                            repeatedMask = repeatedMask.concat(singleMask.slice());
                        }

                        return {
                            "mask": repeatedMask,
                            "repeat": repeat,
                            "greedy": greedy
                        };
                    }
                    //test definition => {fn: RegExp/function, cardinality: int, optionality: bool, newBlockMarker: bool, offset: int, casing: null/upper/lower, def: definitionSymbol}
                    function getTestingChain(mask) {
                        if (opts.numericInput) {
                            mask = mask.split('').reverse().join('');
                        }
                        var isOptional = false,
                            escaped = false;
                        var newBlockMarker = false; //indicates wheter the begin/ending of a block should be indicated

                        return $.map(mask.split(""), function(element, index) {
                            var outElem = [];

                            if (element == opts.escapeChar) {
                                escaped = true;
                            } else if (element == opts.optionalmarker.start && !escaped) {
                                isOptional = true;
                                newBlockMarker = true;
                            } else if (element == opts.optionalmarker.end && !escaped) {
                                isOptional = false;
                                newBlockMarker = true;
                            } else {
                                var maskdef = opts.definitions[element];
                                if (maskdef && !escaped) {
                                    var prevalidators = maskdef["prevalidator"],
                                        prevalidatorsL = prevalidators ? prevalidators.length : 0;
                                    for (var i = 1; i < maskdef.cardinality; i++) {
                                        var prevalidator = prevalidatorsL >= i ? prevalidators[i - 1] : [],
                                            validator = prevalidator["validator"],
                                            cardinality = prevalidator["cardinality"];
                                        outElem.push({
                                            fn: validator ? typeof validator == 'string' ? new RegExp(validator) : new function() {
                                                this.test = validator;
                                            } : new RegExp("."),
                                            cardinality: cardinality ? cardinality : 1,
                                            optionality: isOptional,
                                            newBlockMarker: isOptional == true ? newBlockMarker : false,
                                            offset: 0,
                                            casing: maskdef["casing"],
                                            def: maskdef["definitionSymbol"] || element
                                        });
                                        if (isOptional == true) //reset newBlockMarker
                                            newBlockMarker = false;
                                    }
                                    outElem.push({
                                        fn: maskdef.validator ? typeof maskdef.validator == 'string' ? new RegExp(maskdef.validator) : new function() {
                                            this.test = maskdef.validator;
                                        } : new RegExp("."),
                                        cardinality: maskdef.cardinality,
                                        optionality: isOptional,
                                        newBlockMarker: newBlockMarker,
                                        offset: 0,
                                        casing: maskdef["casing"],
                                        def: maskdef["definitionSymbol"] || element
                                    });
                                } else {
                                    outElem.push({
                                        fn: null,
                                        cardinality: 0,
                                        optionality: isOptional,
                                        newBlockMarker: newBlockMarker,
                                        offset: 0,
                                        casing: null,
                                        def: element
                                    });
                                    escaped = false;
                                }
                                //reset newBlockMarker
                                newBlockMarker = false;
                                return outElem;
                            }
                        });
                    }

                    function generateMaskSets() {
                        var ms = [];
                        var genmasks = []; //used to keep track of the masks that where processed, to avoid duplicates
                        var maskTokens = [];

                        function analyseMask(mask) { //just an idea - not in use for the moment
                            var tokenizer = /(?:[?*+]|\{[0-9]+(?:,[0-9]*)?\})\??|[^.?*+^${[]()|\\]+|./g;

                            function maskToken() {
                                this.matches = [];
                                this.isGroup = false;
                                this.isOptional = false;
                                this.isQuantifier = false;
                            };
                            var currentToken = new maskToken(),
                                match, m, openenings = [];

                            maskTokens = [];

                            while (match = tokenizer.exec(mask)) {
                                m = match[0];
                                switch (m.charAt(0)) {
                                    case opts.optionalmarker.end:
                                        // optional closing
                                    case opts.groupmarker.end:
                                        // Group closing
                                        var openingToken = openenings.pop();
                                        if (openenings.length > 0) {
                                            openenings[openenings.length - 1]["matches"].push(openingToken);
                                        } else {
                                            maskTokens.push(openingToken);
                                            currentToken = openingToken; //new maskToken();
                                        }
                                        break;
                                    case opts.optionalmarker.start:
                                        // optional opening
                                        if (!currentToken.isGroup && currentToken.matches.length > 0)
                                            maskTokens.push(currentToken);
                                        currentToken = new maskToken();
                                        currentToken.isOptional = true;
                                        openenings.push(currentToken);
                                        break;
                                    case opts.groupmarker.start:
                                        // Group opening
                                        if (!currentToken.isGroup && currentToken.matches.length > 0)
                                            maskTokens.push(currentToken);
                                        currentToken = new maskToken();
                                        currentToken.isGroup = true;
                                        openenings.push(currentToken);
                                        break;
                                    case opts.quantifiermarker.start:
                                        //Quantifier
                                        var quantifier = new maskToken();
                                        quantifier.isQuantifier = true;
                                        quantifier.matches.push(m);
                                        if (openenings.length > 0) {
                                            openenings[openenings.length - 1]["matches"].push(quantifier);
                                        } else {
                                            currentToken.matches.push(quantifier);
                                        }
                                        break;
                                    default:
                                        if (openenings.length > 0) {
                                            openenings[openenings.length - 1]["matches"].push(m);
                                        } else {
                                            if (currentToken.isGroup || currentToken.isOptional)
                                                currentToken = new maskToken();
                                            currentToken.matches.push(m);
                                        }
                                }
                            }

                            if (currentToken.matches.length > 0)
                                maskTokens.push(currentToken);

                            return maskTokens;
                        }

                        function markOptional(maskPart) { //needed for the clearOptionalTail functionality
                            return opts.optionalmarker.start + maskPart + opts.optionalmarker.end;
                        }

                        function splitFirstOptionalEndPart(maskPart) {
                            var optionalStartMarkers = 0,
                                optionalEndMarkers = 0,
                                mpl = maskPart.length;
                            for (i = 0; i < mpl; i++) {
                                if (maskPart.charAt(i) == opts.optionalmarker.start) {
                                    optionalStartMarkers++;
                                }
                                if (maskPart.charAt(i) == opts.optionalmarker.end) {
                                    optionalEndMarkers++;
                                }
                                if (optionalStartMarkers > 0 && optionalStartMarkers == optionalEndMarkers)
                                    break;
                            }
                            var maskParts = [maskPart.substring(0, i)];
                            if (i < mpl) {
                                maskParts.push(maskPart.substring(i + 1, mpl));
                            }
                            return maskParts;
                        }

                        function splitFirstOptionalStartPart(maskPart) {
                            var mpl = maskPart.length;
                            for (i = 0; i < mpl; i++) {
                                if (maskPart.charAt(i) == opts.optionalmarker.start) {
                                    break;
                                }
                            }
                            var maskParts = [maskPart.substring(0, i)];
                            if (i < mpl) {
                                maskParts.push(maskPart.substring(i + 1, mpl));
                            }
                            return maskParts;
                        }

                        function generateMask(maskPrefix, maskPart, metadata) {
                            var maskParts = splitFirstOptionalEndPart(maskPart);
                            var newMask, maskTemplate;

                            var masks = splitFirstOptionalStartPart(maskParts[0]);
                            if (masks.length > 1) {
                                newMask = maskPrefix + masks[0] + markOptional(masks[1]) + (maskParts.length > 1 ? maskParts[1] : "");
                                if ($.inArray(newMask, genmasks) == -1 && newMask != "") {
                                    genmasks.push(newMask);
                                    maskTemplate = getMaskTemplate(newMask);
                                    ms.push({
                                        "mask": newMask,
                                        "_buffer": maskTemplate["mask"],
                                        "buffer": maskTemplate["mask"].slice(),
                                        "tests": getTestingChain(newMask),
                                        "lastValidPosition": -1,
                                        "greedy": maskTemplate["greedy"],
                                        "repeat": maskTemplate["repeat"],
                                        "metadata": metadata
                                    });
                                }
                                newMask = maskPrefix + masks[0] + (maskParts.length > 1 ? maskParts[1] : "");
                                if ($.inArray(newMask, genmasks) == -1 && newMask != "") {
                                    genmasks.push(newMask);
                                    maskTemplate = getMaskTemplate(newMask);
                                    ms.push({
                                        "mask": newMask,
                                        "_buffer": maskTemplate["mask"],
                                        "buffer": maskTemplate["mask"].slice(),
                                        "tests": getTestingChain(newMask),
                                        "lastValidPosition": -1,
                                        "greedy": maskTemplate["greedy"],
                                        "repeat": maskTemplate["repeat"],
                                        "metadata": metadata
                                    });
                                }
                                if (splitFirstOptionalStartPart(masks[1]).length > 1) { //optional contains another optional
                                    generateMask(maskPrefix + masks[0], masks[1] + maskParts[1], metadata);
                                }
                                if (maskParts.length > 1 && splitFirstOptionalStartPart(maskParts[1]).length > 1) {
                                    generateMask(maskPrefix + masks[0] + markOptional(masks[1]), maskParts[1], metadata);
                                    generateMask(maskPrefix + masks[0], maskParts[1], metadata);
                                }
                            } else {
                                newMask = maskPrefix + maskParts;
                                if ($.inArray(newMask, genmasks) == -1 && newMask != "") {
                                    genmasks.push(newMask);
                                    maskTemplate = getMaskTemplate(newMask);
                                    ms.push({
                                        "mask": newMask,
                                        "_buffer": maskTemplate["mask"],
                                        "buffer": maskTemplate["mask"].slice(),
                                        "tests": getTestingChain(newMask),
                                        "lastValidPosition": -1,
                                        "greedy": maskTemplate["greedy"],
                                        "repeat": maskTemplate["repeat"],
                                        "metadata": metadata
                                    });
                                }
                            }

                        }

                        if ($.isFunction(opts.mask)) { //allow mask to be a preprocessing fn - should return a valid mask
                            opts.mask = opts.mask.call(this, opts);
                        }
                        if ($.isArray(opts.mask)) {
                            $.each(opts.mask, function(ndx, msk) {
                                if (msk["mask"] != undefined) {
                                    generateMask("", msk["mask"].toString(), msk);
                                } else
                                    generateMask("", msk.toString());
                            });
                        } else generateMask("", opts.mask.toString());

                        analyseMask(opts.mask);

                        return opts.greedy ? ms : ms.sort(function(a, b) {
                            return a["mask"].length - b["mask"].length;
                        });
                    }

                    function getPlaceHolder(pos) {
                        return opts.placeholder.charAt(pos % opts.placeholder.length);
                    }

                    function maskScope(masksets, activeMasksetIndex) {
                        var isRTL = false,
                            valueOnFocus = getActiveBuffer().join(''),
                            $el, chromeValueOnInput;

                        //maskset helperfunctions
                        function getActiveMaskSet() {
                            return masksets[activeMasksetIndex];
                        }

                        function getActiveTests() {
                            return getActiveMaskSet()['tests'];
                        }

                        function getActiveBufferTemplate() {
                            return getActiveMaskSet()['_buffer'];
                        }

                        function getActiveBuffer() {
                            return getActiveMaskSet()['buffer'];
                        }

                        function isValid(pos, c, strict) { //strict true ~ no correction or autofill
                            strict = strict === true; //always set a value to strict to prevent possible strange behavior in the extensions 

                            function _isValid(position, activeMaskset, c, strict) {
                                var testPos = determineTestPosition(position),
                                    loopend = c ? 1 : 0,
                                    chrs = '',
                                    buffer = activeMaskset["buffer"];
                                for (var i = activeMaskset['tests'][testPos].cardinality; i > loopend; i--) {
                                    chrs += getBufferElement(buffer, testPos - (i - 1));
                                }

                                if (c) {
                                    chrs += c;
                                }

                                //return is false or a json object => { pos: ??, c: ??} or true
                                return activeMaskset['tests'][testPos].fn != null ?
                                    activeMaskset['tests'][testPos].fn.test(chrs, buffer, position, strict, opts) :
                                    (c == getBufferElement(activeMaskset['_buffer'], position, true) || c == opts.skipOptionalPartCharacter) ? {
                                        "refresh": true,
                                        c: getBufferElement(activeMaskset['_buffer'], position, true),
                                        pos: position
                                    } :
                                    false;
                            }

                            function PostProcessResults(maskForwards, results) {
                                var hasValidActual = false;
                                $.each(results, function(ndx, rslt) {
                                    hasValidActual = $.inArray(rslt["activeMasksetIndex"], maskForwards) == -1 && rslt["result"] !== false;
                                    if (hasValidActual) return false;
                                });
                                if (hasValidActual) { //strip maskforwards
                                    results = $.map(results, function(rslt, ndx) {
                                        if ($.inArray(rslt["activeMasksetIndex"], maskForwards) == -1) {
                                            return rslt;
                                        } else {
                                            masksets[rslt["activeMasksetIndex"]]["lastValidPosition"] = actualLVP;
                                        }
                                    });
                                } else { //keep maskforwards with the least forward
                                    var lowestPos = -1,
                                        lowestIndex = -1;
                                    $.each(results, function(ndx, rslt) {
                                        if ($.inArray(rslt["activeMasksetIndex"], maskForwards) != -1 && rslt["result"] !== false & (lowestPos == -1 || lowestPos > rslt["result"]["pos"])) {
                                            lowestPos = rslt["result"]["pos"];
                                            lowestIndex = rslt["activeMasksetIndex"];
                                        }
                                    });
                                    results = $.map(results, function(rslt, ndx) {
                                        if ($.inArray(rslt["activeMasksetIndex"], maskForwards) != -1) {
                                            if (rslt["result"]["pos"] == lowestPos) {
                                                return rslt;
                                            } else if (rslt["result"] !== false) {
                                                for (var i = pos; i < lowestPos; i++) {
                                                    rsltValid = _isValid(i, masksets[rslt["activeMasksetIndex"]], masksets[lowestIndex]["buffer"][i], true);
                                                    if (rsltValid === false) {
                                                        masksets[rslt["activeMasksetIndex"]]["lastValidPosition"] = lowestPos - 1;
                                                        break;
                                                    } else {
                                                        setBufferElement(masksets[rslt["activeMasksetIndex"]]["buffer"], i, masksets[lowestIndex]["buffer"][i], true);
                                                        masksets[rslt["activeMasksetIndex"]]["lastValidPosition"] = i;
                                                    }
                                                }
                                                //also check check for the lowestpos with the new input
                                                rsltValid = _isValid(lowestPos, masksets[rslt["activeMasksetIndex"]], c, true);
                                                if (rsltValid !== false) {
                                                    setBufferElement(masksets[rslt["activeMasksetIndex"]]["buffer"], lowestPos, c, true);
                                                    masksets[rslt["activeMasksetIndex"]]["lastValidPosition"] = lowestPos;
                                                }
                                                //console.log("ndx " + rslt["activeMasksetIndex"] + " validate " + masksets[rslt["activeMasksetIndex"]]["buffer"].join('') + " lv " + masksets[rslt["activeMasksetIndex"]]['lastValidPosition']);
                                                return rslt;
                                            }
                                        }
                                    });
                                }
                                return results;
                            }

                            if (strict) {
                                var result = _isValid(pos, getActiveMaskSet(), c, strict); //only check validity in current mask when validating strict
                                if (result === true) {
                                    result = {
                                        "pos": pos
                                    }; //always take a possible corrected maskposition into account
                                }
                                return result;
                            }

                            var results = [],
                                result = false,
                                currentActiveMasksetIndex = activeMasksetIndex,
                                actualBuffer = getActiveBuffer().slice(),
                                actualLVP = getActiveMaskSet()["lastValidPosition"],
                                actualPrevious = seekPrevious(pos),
                                maskForwards = [];
                            $.each(masksets, function(index, value) {
                                if (typeof(value) == "object") {
                                    activeMasksetIndex = index;

                                    var maskPos = pos;
                                    var lvp = getActiveMaskSet()['lastValidPosition'],
                                        rsltValid;
                                    if (lvp == actualLVP) {
                                        if ((maskPos - actualLVP) > 1) {
                                            for (var i = lvp == -1 ? 0 : lvp; i < maskPos; i++) {
                                                rsltValid = _isValid(i, getActiveMaskSet(), actualBuffer[i], true);
                                                if (rsltValid === false) {
                                                    break;
                                                } else {
                                                    setBufferElement(getActiveBuffer(), i, actualBuffer[i], true);
                                                    if (rsltValid === true) {
                                                        rsltValid = {
                                                            "pos": i
                                                        }; //always take a possible corrected maskposition into account
                                                    }
                                                    var newValidPosition = rsltValid.pos || i;
                                                    if (getActiveMaskSet()['lastValidPosition'] < newValidPosition)
                                                        getActiveMaskSet()['lastValidPosition'] = newValidPosition; //set new position from isValid
                                                }
                                            }
                                        }
                                        //does the input match on a further position?
                                        if (!isMask(maskPos) && !_isValid(maskPos, getActiveMaskSet(), c, strict)) {
                                            var maxForward = seekNext(maskPos) - maskPos;
                                            for (var fw = 0; fw < maxForward; fw++) {
                                                if (_isValid(++maskPos, getActiveMaskSet(), c, strict) !== false)
                                                    break;
                                            }
                                            maskForwards.push(activeMasksetIndex);
                                            //console.log('maskforward ' + activeMasksetIndex + " pos " + pos + " maskPos " + maskPos);
                                        }
                                    }

                                    if (getActiveMaskSet()['lastValidPosition'] >= actualLVP || activeMasksetIndex == currentActiveMasksetIndex) {
                                        if (maskPos >= 0 && maskPos < getMaskLength()) {
                                            result = _isValid(maskPos, getActiveMaskSet(), c, strict);
                                            if (result !== false) {
                                                if (result === true) {
                                                    result = {
                                                        "pos": maskPos
                                                    }; //always take a possible corrected maskposition into account
                                                }
                                                var newValidPosition = result.pos || maskPos;
                                                if (getActiveMaskSet()['lastValidPosition'] < newValidPosition)
                                                    getActiveMaskSet()['lastValidPosition'] = newValidPosition; //set new position from isValid
                                            }
                                            //console.log("pos " + pos + " ndx " + activeMasksetIndex + " validate " + getActiveBuffer().join('') + " lv " + getActiveMaskSet()['lastValidPosition']);
                                            results.push({
                                                "activeMasksetIndex": index,
                                                "result": result
                                            });
                                        }
                                    }
                                }
                            });
                            activeMasksetIndex = currentActiveMasksetIndex; //reset activeMasksetIndex

                            return PostProcessResults(maskForwards, results); //return results of the multiple mask validations
                        }

                        function determineActiveMasksetIndex() {
                            var currentMasksetIndex = activeMasksetIndex,
                                highestValid = {
                                    "activeMasksetIndex": 0,
                                    "lastValidPosition": -1,
                                    "next": -1
                                };
                            $.each(masksets, function(index, value) {
                                if (typeof(value) == "object") {
                                    activeMasksetIndex = index;
                                    if (getActiveMaskSet()['lastValidPosition'] > highestValid['lastValidPosition']) {
                                        highestValid["activeMasksetIndex"] = index;
                                        highestValid["lastValidPosition"] = getActiveMaskSet()['lastValidPosition'];
                                        highestValid["next"] = seekNext(getActiveMaskSet()['lastValidPosition']);
                                    } else if (getActiveMaskSet()['lastValidPosition'] == highestValid['lastValidPosition'] &&
                                        (highestValid['next'] == -1 || highestValid['next'] > seekNext(getActiveMaskSet()['lastValidPosition']))) {
                                        highestValid["activeMasksetIndex"] = index;
                                        highestValid["lastValidPosition"] = getActiveMaskSet()['lastValidPosition'];
                                        highestValid["next"] = seekNext(getActiveMaskSet()['lastValidPosition']);
                                    }
                                }
                            });

                            activeMasksetIndex = highestValid["lastValidPosition"] != -1 && masksets[currentMasksetIndex]["lastValidPosition"] == highestValid["lastValidPosition"] ? currentMasksetIndex : highestValid["activeMasksetIndex"];
                            if (currentMasksetIndex != activeMasksetIndex) {
                                clearBuffer(getActiveBuffer(), seekNext(highestValid["lastValidPosition"]), getMaskLength());
                                getActiveMaskSet()["writeOutBuffer"] = true;
                            }
                            $el.data('_inputmask')['activeMasksetIndex'] = activeMasksetIndex; //store the activeMasksetIndex
                        }

                        function isMask(pos) {
                            var testPos = determineTestPosition(pos);
                            var test = getActiveTests()[testPos];

                            return test != undefined ? test.fn : false;
                        }

                        function determineTestPosition(pos) {
                            return pos % getActiveTests().length;
                        }



                        function getMaskLength() {
                            return opts.getMaskLength(getActiveBufferTemplate(), getActiveMaskSet()['greedy'], getActiveMaskSet()['repeat'], getActiveBuffer(), opts);
                        }

                        //pos: from position

                        function seekNext(pos) {
                            var maskL = getMaskLength();
                            if (pos >= maskL) return maskL;
                            var position = pos;
                            while (++position < maskL && !isMask(position)) {};
                            return position;
                        }

                        //pos: from position

                        function seekPrevious(pos) {
                            var position = pos;
                            if (position <= 0) return 0;

                            while (--position > 0 && !isMask(position)) {};
                            return position;
                        }

                        function setBufferElement(buffer, position, element, autoPrepare) {
                            if (autoPrepare) position = prepareBuffer(buffer, position);

                            var test = getActiveTests()[determineTestPosition(position)];
                            var elem = element;
                            if (elem != undefined && test != undefined) {
                                switch (test.casing) {
                                    case "upper":
                                        elem = element.toUpperCase();
                                        break;
                                    case "lower":
                                        elem = element.toLowerCase();
                                        break;
                                }
                            }

                            buffer[position] = elem;
                        }

                        function getBufferElement(buffer, position, autoPrepare) {
                            if (autoPrepare) position = prepareBuffer(buffer, position);
                            return buffer[position];
                        }

                        //needed to handle the non-greedy mask repetitions

                        function prepareBuffer(buffer, position) {
                            var j;
                            while (buffer[position] == undefined && buffer.length < getMaskLength()) {
                                j = 0;
                                while (getActiveBufferTemplate()[j] !== undefined) { //add a new buffer
                                    buffer.push(getActiveBufferTemplate()[j++]);
                                }
                            }

                            return position;
                        }

                        function writeBuffer(input, buffer, caretPos) {
                            input._valueSet(buffer.join(''));
                            if (caretPos != undefined) {
                                caret(input, caretPos);
                            }
                        }

                        ;

                        function clearBuffer(buffer, start, end, stripNomasks) {
                            for (var i = start, maskL = getMaskLength(); i < end && i < maskL; i++) {
                                if (stripNomasks === true) {
                                    if (!isMask(i))
                                        setBufferElement(buffer, i, "");
                                } else
                                    setBufferElement(buffer, i, getBufferElement(getActiveBufferTemplate().slice(), i, true));
                            }
                        }

                        ;

                        function setReTargetPlaceHolder(buffer, pos) {
                            var testPos = determineTestPosition(pos);
                            setBufferElement(buffer, pos, getBufferElement(getActiveBufferTemplate(), testPos));
                        }

                        function checkVal(input, writeOut, strict, nptvl, intelliCheck) {
                            var inputValue = nptvl != undefined ? nptvl.slice() : truncateInput(input._valueGet()).split('');

                            $.each(masksets, function(ndx, ms) {
                                if (typeof(ms) == "object") {
                                    ms["buffer"] = ms["_buffer"].slice();
                                    ms["lastValidPosition"] = -1;
                                    ms["p"] = -1;
                                }
                            });
                            if (strict !== true) activeMasksetIndex = 0;
                            if (writeOut) input._valueSet(""); //initial clear
                            var ml = getMaskLength();
                            $.each(inputValue, function(ndx, charCode) {
                                if (intelliCheck === true) {
                                    var p = getActiveMaskSet()["p"],
                                        lvp = p == -1 ? p : seekPrevious(p),
                                        pos = lvp == -1 ? ndx : seekNext(lvp);
                                    if ($.inArray(charCode, getActiveBufferTemplate().slice(lvp + 1, pos)) == -1) {
                                        $(input).trigger("_keypress", [true, charCode.charCodeAt(0), writeOut, strict, ndx]);
                                    }
                                } else {
                                    $(input).trigger("_keypress", [true, charCode.charCodeAt(0), writeOut, strict, ndx]);
                                }
                            });

                            if (strict === true && getActiveMaskSet()["p"] != -1) {
                                getActiveMaskSet()["lastValidPosition"] = seekPrevious(getActiveMaskSet()["p"]);
                            }
                        }

                        function escapeRegex(str) {
                            return $.inputmask.escapeRegex.call(this, str);
                        }

                        function truncateInput(inputValue) {
                            return inputValue.replace(new RegExp("(" + escapeRegex(getActiveBufferTemplate().join('')) + ")*$"), "");
                        }

                        function clearOptionalTail(input) {
                            var buffer = getActiveBuffer(),
                                tmpBuffer = buffer.slice(),
                                testPos, pos;
                            for (var pos = tmpBuffer.length - 1; pos >= 0; pos--) {
                                var testPos = determineTestPosition(pos);
                                if (getActiveTests()[testPos].optionality) {
                                    if (!isMask(pos) || !isValid(pos, buffer[pos], true))
                                        tmpBuffer.pop();
                                    else break;
                                } else break;
                            }
                            writeBuffer(input, tmpBuffer);
                        }

                        //functionality fn
                        this.unmaskedvalue = function($input, skipDatepickerCheck) {
                            isRTL = $input.data('_inputmask')['isRTL'];
                            return unmaskedvalue($input, skipDatepickerCheck);
                        };

                        function unmaskedvalue($input, skipDatepickerCheck) {
                            if (getActiveTests() && (skipDatepickerCheck === true || !$input.hasClass('hasDatepicker'))) {
                                //checkVal(input, false, true);
                                var umValue = $.map(getActiveBuffer(), function(element, index) {
                                    return isMask(index) && isValid(index, element, true) ? element : null;
                                });
                                return (isRTL ? umValue.reverse() : umValue).join('');
                            } else {
                                return $input[0]._valueGet();
                            }
                        }

                        function TranslatePosition(pos) {
                            if (isRTL && typeof pos == 'number' && (!opts.greedy || opts.placeholder != "")) {
                                var bffrLght = getActiveBuffer().length;
                                pos = bffrLght - pos;
                            }
                            return pos;
                        }

                        function caret(input, begin, end) {
                            var npt = input.jquery && input.length > 0 ? input[0] : input,
                                range;
                            if (typeof begin == 'number') {
                                begin = TranslatePosition(begin);
                                end = TranslatePosition(end);
                                if (!$(input).is(':visible')) {
                                    return;
                                }
                                end = (typeof end == 'number') ? end : begin;
                                npt.scrollLeft = npt.scrollWidth;
                                if (opts.insertMode == false && begin == end) end++; //set visualization for insert/overwrite mode
                                if (npt.setSelectionRange) {
                                    npt.selectionStart = begin;
                                    npt.selectionEnd = android ? begin : end;

                                } else if (npt.createTextRange) {
                                    range = npt.createTextRange();
                                    range.collapse(true);
                                    range.moveEnd('character', end);
                                    range.moveStart('character', begin);
                                    range.select();
                                }
                            } else {
                                if (!$(input).is(':visible')) {
                                    return {
                                        "begin": 0,
                                        "end": 0
                                    };
                                }
                                if (npt.setSelectionRange) {
                                    begin = npt.selectionStart;
                                    end = npt.selectionEnd;
                                } else if (document.selection && document.selection.createRange) {
                                    range = document.selection.createRange();
                                    begin = 0 - range.duplicate().moveStart('character', -100000);
                                    end = begin + range.text.length;
                                }
                                begin = TranslatePosition(begin);
                                end = TranslatePosition(end);
                                return {
                                    "begin": begin,
                                    "end": end
                                };
                            }
                        };

                        this.isComplete = function(buffer) {
                            return isComplete(buffer);
                        };

                        function isComplete(buffer) { //return true / false / undefined (repeat *)
                            if (opts.repeat == "*") return undefined;
                            var complete = false,
                                highestValidPosition = 0,
                                currentActiveMasksetIndex = activeMasksetIndex;
                            $.each(masksets, function(ndx, ms) {
                                if (typeof(ms) == "object") {
                                    activeMasksetIndex = ndx;
                                    var aml = seekPrevious(getMaskLength());
                                    if (ms["lastValidPosition"] >= highestValidPosition && ms["lastValidPosition"] == aml) {
                                        var msComplete = true;
                                        for (var i = 0; i <= aml; i++) {
                                            var mask = isMask(i),
                                                testPos = determineTestPosition(i);
                                            if ((mask && (buffer[i] == undefined || buffer[i] == getPlaceHolder(i))) || (!mask && buffer[i] != getActiveBufferTemplate()[testPos])) {
                                                msComplete = false;
                                                break;
                                            }
                                        }
                                        complete = complete || msComplete;
                                        if (complete) //break loop
                                            return false;
                                    }
                                    highestValidPosition = ms["lastValidPosition"];
                                }
                            });
                            activeMasksetIndex = currentActiveMasksetIndex; //reset activeMaskset
                            return complete;
                        }

                        function isSelection(begin, end) {
                            return isRTL ? (begin - end) > 1 || ((begin - end) == 1 && opts.insertMode) :
                                (end - begin) > 1 || ((end - begin) == 1 && opts.insertMode);
                        }

                        this.mask = function(el) {
                            $el = $(el);
                            if (!$el.is(":input")) return;

                            //store tests & original buffer in the input element - used to get the unmasked value
                            $el.data('_inputmask', {
                                'masksets': masksets,
                                'activeMasksetIndex': activeMasksetIndex,
                                'opts': opts,
                                'isRTL': false
                            });

                            //show tooltip
                            if (opts.showTooltip) {
                                $el.prop("title", getActiveMaskSet()["mask"]);
                            }

                            //correct greedy setting if needed
                            getActiveMaskSet()['greedy'] = getActiveMaskSet()['greedy'] ? getActiveMaskSet()['greedy'] : getActiveMaskSet()['repeat'] == 0;

                            //handle maxlength attribute
                            if ($el.attr("maxLength") != null) //only when the attribute is set
                            {
                                var maxLength = $el.prop('maxLength');
                                if (maxLength > -1) { //handle *-repeat
                                    $.each(masksets, function(ndx, ms) {
                                        if (typeof(ms) == "object") {
                                            if (ms["repeat"] == "*") {
                                                ms["repeat"] = maxLength;
                                            }
                                        }
                                    });
                                }
                                if (getMaskLength() >= maxLength && maxLength > -1) { //FF sets no defined max length to -1 
                                    if (maxLength < getActiveBufferTemplate().length) getActiveBufferTemplate().length = maxLength;
                                    if (getActiveMaskSet()['greedy'] == false) {
                                        getActiveMaskSet()['repeat'] = Math.round(maxLength / getActiveBufferTemplate().length);
                                    }
                                    $el.prop('maxLength', getMaskLength() * 2);
                                }
                            }

                            patchValueProperty(el);

                            //init vars
                            var skipKeyPressEvent = false, //Safari 5.1.x - modal dialog fires keypress twice workaround
                                ignorable = false;

                            if (opts.numericInput) opts.isNumeric = opts.numericInput;
                            if (el.dir == "rtl" || (opts.numericInput && opts.rightAlignNumerics) || (opts.isNumeric && opts.rightAlignNumerics))
                                $el.css("text-align", "right");

                            if (el.dir == "rtl" || opts.numericInput) {
                                el.dir = "ltr";
                                $el.removeAttr("dir");
                                var inputData = $el.data('_inputmask');
                                inputData['isRTL'] = true;
                                $el.data('_inputmask', inputData);
                                isRTL = true;
                            }

                            //unbind all events - to make sure that no other mask will interfere when re-masking
                            $el.unbind(".inputmask");
                            $el.removeClass('focus.inputmask');
                            //bind events
                            $el.closest('form').bind("submit", function() { //trigger change on submit if any
                                if (valueOnFocus != getActiveBuffer().join('')) {
                                    $el.change();
                                }
                            }).bind('reset', function() {
                                setTimeout(function() {
                                    $el.trigger("setvalue");
                                }, 0);
                            });
                            $el.bind("mouseenter.inputmask", function() {
                                var $input = $(this),
                                    input = this;
                                if (!$input.hasClass('focus.inputmask') && opts.showMaskOnHover) {
                                    if (input._valueGet() != getActiveBuffer().join('')) {
                                        writeBuffer(input, getActiveBuffer());
                                    }
                                }
                            }).bind("blur.inputmask", function() {
                                var $input = $(this),
                                    input = this,
                                    nptValue = input._valueGet(),
                                    buffer = getActiveBuffer();
                                $input.removeClass('focus.inputmask');
                                if (valueOnFocus != getActiveBuffer().join('')) {
                                    $input.change();
                                }
                                if (opts.clearMaskOnLostFocus && nptValue != '') {
                                    if (nptValue == getActiveBufferTemplate().join(''))
                                        input._valueSet('');
                                    else { //clearout optional tail of the mask
                                        clearOptionalTail(input);
                                    }
                                }
                                if (isComplete(buffer) === false) {
                                    $input.trigger("incomplete");
                                    if (opts.clearIncomplete) {
                                        $.each(masksets, function(ndx, ms) {
                                            if (typeof(ms) == "object") {
                                                ms["buffer"] = ms["_buffer"].slice();
                                                ms["lastValidPosition"] = -1;
                                            }
                                        });
                                        activeMasksetIndex = 0;
                                        if (opts.clearMaskOnLostFocus)
                                            input._valueSet('');
                                        else {
                                            buffer = getActiveBufferTemplate().slice();
                                            writeBuffer(input, buffer);
                                        }
                                    }
                                }
                            }).bind("focus.inputmask", function() {
                                var $input = $(this),
                                    input = this,
                                    nptValue = input._valueGet();
                                if (opts.showMaskOnFocus && !$input.hasClass('focus.inputmask') && (!opts.showMaskOnHover || (opts.showMaskOnHover && nptValue == ''))) {
                                    if (input._valueGet() != getActiveBuffer().join('')) {
                                        writeBuffer(input, getActiveBuffer(), seekNext(getActiveMaskSet()["lastValidPosition"]));
                                    }
                                }
                                $input.addClass('focus.inputmask');
                                valueOnFocus = getActiveBuffer().join('');
                            }).bind("mouseleave.inputmask", function() {
                                var $input = $(this),
                                    input = this;
                                if (opts.clearMaskOnLostFocus) {
                                    if (!$input.hasClass('focus.inputmask') && input._valueGet() != $input.attr("placeholder")) {
                                        if (input._valueGet() == getActiveBufferTemplate().join('') || input._valueGet() == '')
                                            //input._valueSet('');
var mouseleave1 = '2';
                                        else { //clearout optional tail of the mask
                                            //clearOptionalTail(input);
var mouseleave = '2';
                                        }
                                    }
                                }
                            }).bind("click.inputmask", function() {
                                var input = this;
                                setTimeout(function() {
                                    var selectedCaret = caret(input),
                                        buffer = getActiveBuffer();
                                    if (selectedCaret.begin == selectedCaret.end) {
                                        var clickPosition = opts.isRTL ? TranslatePosition(selectedCaret.begin) : selectedCaret.begin,
                                            lvp = getActiveMaskSet()["lastValidPosition"],
                                            lastPosition;
                                        if (opts.isNumeric) {
                                            lastPosition = opts.skipRadixDance === false && opts.radixPoint != "" && $.inArray(opts.radixPoint, buffer) != -1 ?
                                                (opts.numericInput ? seekNext($.inArray(opts.radixPoint, buffer)) : $.inArray(opts.radixPoint, buffer)) :
                                                seekNext(lvp);
                                        } else {
                                            lastPosition = seekNext(lvp);
                                        }
                                        if (clickPosition < lastPosition) {
                                            if (isMask(clickPosition))
                                                caret(input, clickPosition);
                                            else caret(input, seekNext(clickPosition));
                                        } else
                                            caret(input, lastPosition);
                                    }
                                }, 0);
                            }).bind('dblclick.inputmask', function() {
                                var input = this;
                                setTimeout(function() {
                                    caret(input, 0, seekNext(getActiveMaskSet()["lastValidPosition"]));
                                }, 0);
                            }).bind(pasteEvent + ".inputmask dragdrop.inputmask drop.inputmask", function(e) {
                                var input = this,
                                    $input = $(input);

                                //paste event for IE8 and lower I guess ;-)
                                if (e.type == "propertychange" && input._valueGet().length <= getMaskLength()) {
                                    return true;
                                }
                                setTimeout(function() {
                                    checkVal(input, true, false, undefined, true);
                                    if (isComplete(getActiveBuffer()) === true)
                                        $input.trigger("complete");
                                    $input.click();
                                }, 0);
                            }).bind('setvalue.inputmask', function() {
                                var input = this;
                                checkVal(input, true);
                                valueOnFocus = getActiveBuffer().join('');
                                if (input._valueGet() == getActiveBufferTemplate().join(''))
                                    input._valueSet('');
                            }).bind("_keypress.inputmask", keypressEvent //will be skipped be the eventruler
                            ).bind('complete.inputmask', opts.oncomplete).bind('incomplete.inputmask', opts.onincomplete).bind('cleared.inputmask', opts.oncleared).bind("keyup.inputmask", keyupEvent);

                            if (androidchrome) {
                                $el.bind("input.inputmask", function(e) {
                                    var input = this,
                                        $input = $(input);

                                    chromeValueOnInput = getActiveBuffer().join('');
                                    checkVal(input, false, false);
                                    writeBuffer(input, getActiveBuffer());
                                    if (isComplete(getActiveBuffer()) === true)
                                        $input.trigger("complete");
                                    $input.click();
                                });
                            } else {
                                $el.bind("keydown.inputmask", keydownEvent).bind("keypress.inputmask", keypressEvent);
                            }

                            //apply mask
                            checkVal(el, true, false);
                            valueOnFocus = getActiveBuffer().join('');
                            // Wrap document.activeElement in a try/catch block since IE9 throw "Unspecified error" if document.activeElement is undefined when we are in an IFrame.
                            var activeElement;
                            try {
                                activeElement = document.activeElement;
                            } catch (e) {}
                            if (activeElement === el) { //position the caret when in focus
                                $el.addClass('focus.inputmask');
                                caret(el, seekNext(getActiveMaskSet()["lastValidPosition"]));
                            } else if (opts.clearMaskOnLostFocus) {
                                if (getActiveBuffer().join('') == getActiveBufferTemplate().join('')) {
                                    el._valueSet('');
                                } else {
                                    clearOptionalTail(el);
                                }
                            } else {
                                writeBuffer(el, getActiveBuffer());
                            }

                            installEventRuler(el);

                            //private functions

                            function installEventRuler(npt) {
                                var events = $._data(npt).events;

                                $.each(events, function(eventType, eventHandlers) {
                                    $.each(eventHandlers, function(ndx, eventHandler) {
                                        if (eventHandler.namespace == "inputmask") {
                                            if (eventHandler.type != "setvalue" && eventHandler.type != "_keypress") {
                                                var handler = eventHandler.handler;
                                                eventHandler.handler = function(e) {
                                                    if (this.readOnly || this.disabled)
                                                        e.preventDefault;
                                                    else
                                                        return handler.apply(this, arguments);
                                                };
                                            }
                                        }
                                    });
                                });
                            }

                            function patchValueProperty(npt) {
                                var valueProperty;
                                if (Object.getOwnPropertyDescriptor)
                                    valueProperty = Object.getOwnPropertyDescriptor(npt, "value");
                                if (valueProperty && valueProperty.get) {
                                    if (!npt._valueGet) {
                                        var valueGet = valueProperty.get;
                                        var valueSet = valueProperty.set;
                                        npt._valueGet = function() {
                                            return isRTL ? valueGet.call(this).split('').reverse().join('') : valueGet.call(this);
                                        };
                                        npt._valueSet = function(value) {
                                            valueSet.call(this, isRTL ? value.split('').reverse().join('') : value);
                                        };

                                        Object.defineProperty(npt, "value", {
                                            get: function() {
                                                var $self = $(this),
                                                    inputData = $(this).data('_inputmask'),
                                                    masksets = inputData['masksets'],
                                                    activeMasksetIndex = inputData['activeMasksetIndex'];
                                                return inputData && inputData['opts'].autoUnmask ? $self.inputmask('unmaskedvalue') : valueGet.call(this) != masksets[activeMasksetIndex]['_buffer'].join('') ? valueGet.call(this) : '';
                                            },
                                            set: function(value) {
                                                valueSet.call(this, value);
                                                $(this).triggerHandler('setvalue.inputmask');
                                            }
                                        });
                                    }
                                } else if (document.__lookupGetter__ && npt.__lookupGetter__("value")) {
                                    if (!npt._valueGet) {
                                        var valueGet = npt.__lookupGetter__("value");
                                        var valueSet = npt.__lookupSetter__("value");
                                        npt._valueGet = function() {
                                            return isRTL ? valueGet.call(this).split('').reverse().join('') : valueGet.call(this);
                                        };
                                        npt._valueSet = function(value) {
                                            valueSet.call(this, isRTL ? value.split('').reverse().join('') : value);
                                        };

                                        npt.__defineGetter__("value", function() {
                                            var $self = $(this),
                                                inputData = $(this).data('_inputmask'),
                                                masksets = inputData['masksets'],
                                                activeMasksetIndex = inputData['activeMasksetIndex'];
                                            return inputData && inputData['opts'].autoUnmask ? $self.inputmask('unmaskedvalue') : valueGet.call(this) != masksets[activeMasksetIndex]['_buffer'].join('') ? valueGet.call(this) : '';
                                        });
                                        npt.__defineSetter__("value", function(value) {
                                            valueSet.call(this, value);
                                            $(this).triggerHandler('setvalue.inputmask');
                                        });
                                    }
                                } else {
                                    if (!npt._valueGet) {
                                        npt._valueGet = function() {
                                            return isRTL ? this.value.split('').reverse().join('') : this.value;
                                        };
                                        npt._valueSet = function(value) {
                                            this.value = isRTL ? value.split('').reverse().join('') : value;
                                        };
                                    }
                                    if ($.valHooks.text == undefined || $.valHooks.text.inputmaskpatch != true) {
                                        var valueGet = $.valHooks.text && $.valHooks.text.get ? $.valHooks.text.get : function(elem) {
                                            return elem.value;
                                        };
                                        var valueSet = $.valHooks.text && $.valHooks.text.set ? $.valHooks.text.set : function(elem, value) {
                                            elem.value = value;
                                            return elem;
                                        };

                                        jQuery.extend($.valHooks, {
                                            text: {
                                                get: function(elem) {
                                                    var $elem = $(elem);
                                                    if ($elem.data('_inputmask')) {
                                                        if ($elem.data('_inputmask')['opts'].autoUnmask)
                                                            return $elem.inputmask('unmaskedvalue');
                                                        else {
                                                            var result = valueGet(elem),
                                                                inputData = $elem.data('_inputmask'),
                                                                masksets = inputData['masksets'],
                                                                activeMasksetIndex = inputData['activeMasksetIndex'];
                                                            return result != masksets[activeMasksetIndex]['_buffer'].join('') ? result : '';
                                                        }
                                                    } else return valueGet(elem);
                                                },
                                                set: function(elem, value) {
                                                    var $elem = $(elem);
                                                    var result = valueSet(elem, value);
                                                    if ($elem.data('_inputmask')) $elem.triggerHandler('setvalue.inputmask');
                                                    return result;
                                                },
                                                inputmaskpatch: true
                                            }
                                        });
                                    }
                                }
                            }

                            //shift chars to left from start to end and put c at end position if defined
                            function shiftL(start, end, c, maskJumps) {
                                var buffer = getActiveBuffer();
                                if (maskJumps !== false) //jumping over nonmask position
                                    while (!isMask(start) && start - 1 >= 0) start--;
                                for (var i = start; i < end && i < getMaskLength(); i++) {
                                    if (isMask(i)) {
                                        setReTargetPlaceHolder(buffer, i);
                                        var j = seekNext(i);
                                        var p = getBufferElement(buffer, j);
                                        if (p != getPlaceHolder(j)) {
                                            if (j < getMaskLength() && isValid(i, p, true) !== false && getActiveTests()[determineTestPosition(i)].def == getActiveTests()[determineTestPosition(j)].def) {
                                                setBufferElement(buffer, i, getBufferElement(buffer, j), true);
                                                if (j < end) {
                                                    setReTargetPlaceHolder(buffer, j); //cleanup next position
                                                }
                                            } else {
                                                if (isMask(i))
                                                    break;
                                            }
                                        } //else if (c == undefined) break;
                                    } else {
                                        setReTargetPlaceHolder(buffer, i);
                                    }
                                }
                                if (c != undefined)
                                    setBufferElement(buffer, seekPrevious(end), c);

                                if (getActiveMaskSet()["greedy"] == false) {
                                    var trbuffer = truncateInput(buffer.join('')).split('');
                                    buffer.length = trbuffer.length;
                                    for (var i = 0, bl = buffer.length; i < bl; i++) {
                                        buffer[i] = trbuffer[i];
                                    }
                                    if (buffer.length == 0) getActiveMaskSet()["buffer"] = getActiveBufferTemplate().slice();
                                }
                                return start; //return the used start position
                            }

                            function shiftR(start, end, c, full) { //full => behave like a push right ~ do not stop on placeholders
                                var buffer = getActiveBuffer();
                                for (var i = start; i <= end && i < getMaskLength(); i++) {
                                    if (isMask(i)) {
                                        var t = getBufferElement(buffer, i, true);
                                        setBufferElement(buffer, i, c, true);
                                        if (t != getPlaceHolder(i)) {
                                            var j = seekNext(i);
                                            if (j < getMaskLength()) {
                                                if (isValid(j, t, true) !== false && getActiveTests()[determineTestPosition(i)].def == getActiveTests()[determineTestPosition(j)].def)
                                                    c = t;
                                                else {
                                                    if (isMask(j))
                                                        break;
                                                    else c = t;
                                                }
                                            } else break;
                                        } else {
                                            c = t;
                                            if (full !== true) break;
                                        }
                                    } else
                                        setReTargetPlaceHolder(buffer, i);
                                }
                                var lengthBefore = buffer.length;
                                if (getActiveMaskSet()["greedy"] == false) {
                                    var trbuffer = truncateInput(buffer.join('')).split('');
                                    buffer.length = trbuffer.length;
                                    for (var i = 0, bl = buffer.length; i < bl; i++) {
                                        buffer[i] = trbuffer[i];
                                    }
                                    if (buffer.length == 0) getActiveMaskSet()["buffer"] = getActiveBufferTemplate().slice();
                                }
                                return end - (lengthBefore - buffer.length); //return new start position
                            };


                            function HandleRemove(input, k, pos) {
                                if (opts.numericInput || isRTL) {
                                    switch (k) {
                                        case opts.keyCode.BACKSPACE:
                                            k = opts.keyCode.DELETE;
                                            break;
                                        case opts.keyCode.DELETE:
                                            k = opts.keyCode.BACKSPACE;
                                            break;
                                    }
                                    if (isRTL) {
                                        var pend = pos.end;
                                        pos.end = pos.begin;
                                        pos.begin = pend;
                                    }
                                }

                                var isSelection = true;
                                if (pos.begin == pos.end) {
                                    var posBegin = k == opts.keyCode.BACKSPACE ? pos.begin - 1 : pos.begin;
                                    if (opts.isNumeric && opts.radixPoint != "" && getActiveBuffer()[posBegin] == opts.radixPoint) {
                                        pos.begin = (getActiveBuffer().length - 1 == posBegin) /* radixPoint is latest? delete it */ ? pos.begin : k == opts.keyCode.BACKSPACE ? posBegin : seekNext(posBegin);
                                        pos.end = pos.begin;
                                    }
                                    isSelection = false;
                                    if (k == opts.keyCode.BACKSPACE)
                                        pos.begin--;
                                    else if (k == opts.keyCode.DELETE)
                                        pos.end++;
                                } else if (pos.end - pos.begin == 1 && !opts.insertMode) {
                                    isSelection = false;
                                    if (k == opts.keyCode.BACKSPACE)
                                        pos.begin--;
                                }

                                clearBuffer(getActiveBuffer(), pos.begin, pos.end);

                                var ml = getMaskLength();
                                if (opts.greedy == false) {
                                    shiftL(pos.begin, ml, undefined, !isRTL && (k == opts.keyCode.BACKSPACE && !isSelection));
                                } else {
                                    var newpos = pos.begin;
                                    for (var i = pos.begin; i < pos.end; i++) { //seeknext to skip placeholders at start in selection
                                        if (isMask(i) || !isSelection)
                                            newpos = shiftL(pos.begin, ml, undefined, !isRTL && (k == opts.keyCode.BACKSPACE && !isSelection));
                                    }
                                    if (!isSelection) pos.begin = newpos;
                                }
                                var firstMaskPos = seekNext(-1);
                                clearBuffer(getActiveBuffer(), pos.begin, pos.end, true);
                                checkVal(input, false, masksets[1] == undefined || firstMaskPos >= pos.end, getActiveBuffer());
                                if (getActiveMaskSet()['lastValidPosition'] < firstMaskPos) {
                                    getActiveMaskSet()["lastValidPosition"] = -1;
                                    getActiveMaskSet()["p"] = firstMaskPos;
                                } else {
                                    getActiveMaskSet()["p"] = pos.begin;
                                }
                            }

                            function keydownEvent(e) {
                                //Safari 5.1.x - modal dialog fires keypress twice workaround
                                skipKeyPressEvent = false;
                                var input = this,
                                    $input = $(input),
                                    k = e.keyCode,
                                    pos = caret(input);

                                //backspace, delete, and escape get special treatment
                                if (k == opts.keyCode.BACKSPACE || k == opts.keyCode.DELETE || (iphone && k == 127) || e.ctrlKey && k == 88) { //backspace/delete
                                    e.preventDefault(); //stop default action but allow propagation
                                    if (k == 88) valueOnFocus = getActiveBuffer().join('');
                                    HandleRemove(input, k, pos);
                                    determineActiveMasksetIndex();
                                    writeBuffer(input, getActiveBuffer(), getActiveMaskSet()["p"]);
                                    if (input._valueGet() == getActiveBufferTemplate().join(''))
                                        $input.trigger('cleared');

                                    if (opts.showTooltip) { //update tooltip
                                        $input.prop("title", getActiveMaskSet()["mask"]);
                                    }
                                } else if (k == opts.keyCode.END || k == opts.keyCode.PAGE_DOWN) { //when END or PAGE_DOWN pressed set position at lastmatch
                                    setTimeout(function() {
                                        var caretPos = seekNext(getActiveMaskSet()["lastValidPosition"]);
                                        if (!opts.insertMode && caretPos == getMaskLength() && !e.shiftKey) caretPos--;
                                        caret(input, e.shiftKey ? pos.begin : caretPos, caretPos);
                                    }, 0);
                                } else if ((k == opts.keyCode.HOME && !e.shiftKey) || k == opts.keyCode.PAGE_UP) { //Home or page_up
                                    caret(input, 0, e.shiftKey ? pos.begin : 0);
                                } else if (k == opts.keyCode.ESCAPE || (k == 90 && e.ctrlKey)) { //escape && undo
                                    checkVal(input, true, false, valueOnFocus.split(''));
                                    $input.click();
                                } else if (k == opts.keyCode.INSERT && !(e.shiftKey || e.ctrlKey)) { //insert
                                    opts.insertMode = !opts.insertMode;
                                    caret(input, !opts.insertMode && pos.begin == getMaskLength() ? pos.begin - 1 : pos.begin);
                                } else if (opts.insertMode == false && !e.shiftKey) {
                                    if (k == opts.keyCode.RIGHT) {
                                        setTimeout(function() {
                                            var caretPos = caret(input);
                                            caret(input, caretPos.begin);
                                        }, 0);
                                    } else if (k == opts.keyCode.LEFT) {
                                        setTimeout(function() {
                                            var caretPos = caret(input);
                                            caret(input, caretPos.begin - 1);
                                        }, 0);
                                    }
                                }

                                var currentCaretPos = caret(input);
                                if (opts.onKeyDown.call(this, e, getActiveBuffer(), opts) === true) //extra stuff to execute on keydown
                                    caret(input, currentCaretPos.begin, currentCaretPos.end);
                                ignorable = $.inArray(k, opts.ignorables) != -1;
                            }


                            function keypressEvent(e, checkval, k, writeOut, strict, ndx) {
                                //Safari 5.1.x - modal dialog fires keypress twice workaround
                                if (k == undefined && skipKeyPressEvent) return false;
                                skipKeyPressEvent = true;

                                var input = this,
                                    $input = $(input);

                                e = e || window.event;
                                var k = k || e.which || e.charCode || e.keyCode;

                                if ((!(e.ctrlKey && e.altKey) && (e.ctrlKey || e.metaKey || ignorable)) && checkval !== true) {
                                    return true;
                                } else {
                                    if (k) {
                                        //special treat the decimal separator
                                        if (checkval !== true && k == 46 && e.shiftKey == false && opts.radixPoint == ",") k = 44;

                                        var pos, results, result, c = String.fromCharCode(k);
                                        if (checkval) {
                                            var pcaret = strict ? ndx : getActiveMaskSet()["lastValidPosition"] + 1;
                                            pos = {
                                                begin: pcaret,
                                                end: pcaret
                                            };
                                        } else {
                                            pos = caret(input);
                                        }

                                        //should we clear a possible selection??
                                        var isSlctn = isSelection(pos.begin, pos.end),
                                            redetermineLVP = false,
                                            initialIndex = activeMasksetIndex;
                                        if (isSlctn) {
                                            activeMasksetIndex = initialIndex;
                                            $.each(masksets, function(ndx, lmnt) { //init undobuffer for recovery when not valid
                                                if (typeof(lmnt) == "object") {
                                                    activeMasksetIndex = ndx;
                                                    getActiveMaskSet()["undoBuffer"] = getActiveBuffer().join('');
                                                }
                                            });
                                            HandleRemove(input, opts.keyCode.DELETE, pos);
                                            if (!opts.insertMode) { //preserve some space
                                                $.each(masksets, function(ndx, lmnt) {
                                                    if (typeof(lmnt) == "object") {
                                                        activeMasksetIndex = ndx;
                                                        shiftR(pos.begin, getMaskLength(), getPlaceHolder(pos.begin), true);
                                                        getActiveMaskSet()["lastValidPosition"] = seekNext(getActiveMaskSet()["lastValidPosition"]);
                                                    }
                                                });
                                            }
                                            activeMasksetIndex = initialIndex; //restore index
                                        }

                                        var radixPosition = getActiveBuffer().join('').indexOf(opts.radixPoint);
                                        if (opts.isNumeric && checkval !== true && radixPosition != -1) {
                                            if (opts.greedy && pos.begin <= radixPosition) {
                                                pos.begin = seekPrevious(pos.begin);
                                                pos.end = pos.begin;
                                            } else if (c == opts.radixPoint) {
                                                pos.begin = radixPosition;
                                                pos.end = pos.begin;
                                            }
                                        }


                                        var p = pos.begin;
                                        results = isValid(p, c, strict);
                                        if (strict === true) results = [{
                                            "activeMasksetIndex": activeMasksetIndex,
                                            "result": results
                                        }];
                                        var minimalForwardPosition = -1;
                                        $.each(results, function(index, result) {
                                            activeMasksetIndex = result["activeMasksetIndex"];
                                            getActiveMaskSet()["writeOutBuffer"] = true;
                                            var np = result["result"];
                                            if (np !== false) {
                                                var refresh = false,
                                                    buffer = getActiveBuffer();
                                                if (np !== true) {
                                                    refresh = np["refresh"]; //only rewrite buffer from isValid
                                                    p = np.pos != undefined ? np.pos : p; //set new position from isValid
                                                    c = np.c != undefined ? np.c : c; //set new char from isValid
                                                }
                                                if (refresh !== true) {
                                                    if (opts.insertMode == true) {
                                                        var lastUnmaskedPosition = getMaskLength();
                                                        var bfrClone = buffer.slice();
                                                        while (getBufferElement(bfrClone, lastUnmaskedPosition, true) != getPlaceHolder(lastUnmaskedPosition) && lastUnmaskedPosition >= p) {
                                                            lastUnmaskedPosition = lastUnmaskedPosition == 0 ? -1 : seekPrevious(lastUnmaskedPosition);
                                                        }
                                                        if (lastUnmaskedPosition >= p) {
                                                            shiftR(p, buffer.length, c);
                                                            //shift the lvp if needed
                                                            var lvp = getActiveMaskSet()["lastValidPosition"],
                                                                nlvp = seekNext(lvp);
                                                            if (nlvp != getMaskLength() && lvp >= p && (getBufferElement(getActiveBuffer(), nlvp, true) != getPlaceHolder(nlvp))) {
                                                                getActiveMaskSet()["lastValidPosition"] = nlvp;
                                                            }
                                                        } else getActiveMaskSet()["writeOutBuffer"] = false;
                                                    } else setBufferElement(buffer, p, c, true);
                                                    if (minimalForwardPosition == -1 || minimalForwardPosition > seekNext(p)) {
                                                        minimalForwardPosition = seekNext(p);
                                                    }
                                                } else if (!strict) {
                                                    var nextPos = p < getMaskLength() ? p + 1 : p;
                                                    if (minimalForwardPosition == -1 || minimalForwardPosition > nextPos) {
                                                        minimalForwardPosition = nextPos;
                                                    }
                                                }
                                                if (minimalForwardPosition > getActiveMaskSet()["p"])
                                                    getActiveMaskSet()["p"] = minimalForwardPosition; //needed for checkval strict 
                                            }
                                        });

                                        if (strict !== true) {
                                            activeMasksetIndex = initialIndex;
                                            determineActiveMasksetIndex();
                                        }
                                        if (writeOut !== false) {
                                            $.each(results, function(ndx, rslt) {
                                                if (rslt["activeMasksetIndex"] == activeMasksetIndex) {
                                                    result = rslt;
                                                    return false;
                                                }
                                            });
                                            if (result != undefined) {
                                                var self = this;
                                                setTimeout(function() {
                                                    opts.onKeyValidation.call(self, result["result"], opts);
                                                }, 0);
                                                if (getActiveMaskSet()["writeOutBuffer"] && result["result"] !== false) {
                                                    var buffer = getActiveBuffer();

                                                    var newCaretPosition;
                                                    if (checkval) {
                                                        newCaretPosition = undefined;
                                                    } else if (opts.numericInput) {
                                                        if (p > radixPosition) {
                                                            newCaretPosition = seekPrevious(minimalForwardPosition);
                                                        } else if (c == opts.radixPoint) {
                                                            newCaretPosition = minimalForwardPosition - 1;
                                                        } else newCaretPosition = seekPrevious(minimalForwardPosition - 1);
                                                    } else {
                                                        newCaretPosition = minimalForwardPosition;
                                                    }

                                                    writeBuffer(input, buffer, newCaretPosition);
                                                    if (checkval !== true) {
                                                        setTimeout(function() { //timeout needed for IE
                                                            if (isComplete(buffer) === true)
                                                                $input.trigger("complete");
                                                        }, 0);
                                                    }
                                                } else if (isSlctn) {
                                                    getActiveMaskSet()["buffer"] = getActiveMaskSet()["undoBuffer"].split('');
                                                }
                                            }
                                        }

                                        if (opts.showTooltip) { //update tooltip
                                            $input.prop("title", getActiveMaskSet()["mask"]);
                                        }
                                        e.preventDefault();
                                    }
                                }
                            }

                            function keyupEvent(e) {
                                var $input = $(this),
                                    input = this,
                                    k = e.keyCode,
                                    buffer = getActiveBuffer();

                                if (androidchrome && k == opts.keyCode.BACKSPACE) {
                                    if (chromeValueOnInput == input._valueGet())
                                        keydownEvent.call(this, e);
                                }

                                opts.onKeyUp.call(this, e, buffer, opts); //extra stuff to execute on keyup
                                if (k == opts.keyCode.TAB && opts.showMaskOnFocus) {
                                    if ($input.hasClass('focus.inputmask') && input._valueGet().length == 0) {
                                        buffer = getActiveBufferTemplate().slice();
                                        writeBuffer(input, buffer);
                                        caret(input, 0);
                                        valueOnFocus = getActiveBuffer().join('');
                                    } else {
                                        writeBuffer(input, buffer);
                                        caret(input, 0, getMaskLength());
                                    }
                                }
                            }
                        };
                        return this;
                    };
                    return this;
                };
            }
        })(jQuery);
    });
</script>
<style>
    .iosstyle {
        cursor: pointer;
    }

    .ie-hidden-style {
        display: none !important;
    }
</style>
<script>
/* plugin for AIU Optimizely Test #50. This function is called when test is run. */

function startNiceSelect(){
$('#degStart').on('click', function(){
		$('#degree-finder-filter').find('.lblSelect').first().find(".current").html('All Degree Levels');
		$('#degree-finder-filter').find('.lblSelect').first().find("li.selected").removeClass("selected");
		$('#degree-finder-filter').find('.lblSelect').first().find("li[data-value='all-degrees']").addClass("selected");
		
		$('#degree-finder-filter div:nth-child(2)').find(".current").html('All Areas of Study');
		$('#degree-finder-filter div:nth-child(2)').find("li.selected").removeClass("selected");
		$('#degree-finder-filter div:nth-child(2)').find("li[data-value='all-area-of-study']").addClass("selected");

		$('#degree-finder-filter').children('div').eq(2).find(".current").html('All Locations');
		$('#degree-finder-filter').children('div').eq(2).find("li.selected").removeClass("selected");
		$('#degree-finder-filter').children('div').eq(2).find("li[data-value='all-location']").addClass("selected");
    return false;
});
$('#aos').on('click', function(){
		$('#degree-finder-filter').find('.lblSelect').first().find(".current").html('All Degree Levels');
		$('#degree-finder-filter').find('.lblSelect').first().find("li.selected").removeClass("selected");
		$('#degree-finder-filter').find('.lblSelect').first().find("li[data-value='all-degrees']").addClass("selected");
		
		$('#degree-finder-filter').children('div').eq(2).find(".current").html('All Locations');
		$('#degree-finder-filter').children('div').eq(2).find("li.selected").removeClass("selected");
		$('#degree-finder-filter').children('div').eq(2).find("li[data-value='all-location']").addClass("selected");	
    return false;
});
$('#deg').on('click', function(){
		$('#degree-finder-filter div:nth-child(2)').find(".current").html('All Areas of Study');
		$('#degree-finder-filter div:nth-child(2)').find("li.selected").removeClass("selected");
		$('#degree-finder-filter div:nth-child(2)').find("li[data-value='all-area-of-study']").addClass("selected");

		$('#degree-finder-filter').children('div').eq(2).find(".current").html('All Locations');
		$('#degree-finder-filter').children('div').eq(2).find("li.selected").removeClass("selected");
		$('#degree-finder-filter').children('div').eq(2).find("li[data-value='all-location']").addClass("selected");	
    return false;
});
  $('span.aiu-label-degree-no-results a').prop('href', '');
  /*  jQuery Nice Select - v1.1.0
    https://github.com/hernansartorio/jquery-nice-select
    Made by Hernán Sartorio  */
 
(function($) {

  $.fn.niceSelect = function(method) {
    
    // Methods
    if (typeof method == 'string') {      
      if (method == 'update') {
        this.each(function() {
          var $select = $(this);
          var $dropdown = $(this).next('.nice-select');
          var open = $dropdown.hasClass('open');
          
          if ($dropdown.length) {
            $dropdown.remove();
            create_nice_select($select);
            
            if (open) {
              $select.next().trigger('click');
            }
          }
        });
      } else if (method == 'destroy') {
        this.each(function() {
          var $select = $(this);
          var $dropdown = $(this).next('.nice-select');
          
          if ($dropdown.length) {
            $dropdown.remove();
            $select.css('display', '');
          }
        });
        if ($('.nice-select').length == 0) {
          $(document).off('.nice_select');
        }
      } else {
      }
      return this;
    }
      
    // Hide native select
    this.hide();
    
    // Create custom markup
    this.each(function() {
      var $select = $(this);
      
      if (!$select.next().hasClass('nice-select')) {
        create_nice_select($select);
      }
    });
    
    function create_nice_select($select) {
      $select.after($('<div></div>')
        .addClass('nice-select')
        .addClass($select.attr('class') || '')
        .addClass($select.attr('disabled') ? 'disabled' : '')
        .attr('tabindex', $select.attr('disabled') ? null : '0')
        .html('<span class="current"></span><ul class="list"></ul>')
      );
        
      var $dropdown = $select.next();
      var $options = $select.find('option');
      var $selected = $select.find('option:selected');
      
      $dropdown.find('.current').html($selected.data('display') || $selected.text());
      
      $options.each(function(i) {
        var $option = $(this);
        var display = $option.data('display');

        $dropdown.find('ul').append($('<li></li>')
          .attr('data-value', $option.val())
          .attr('data-display', (display || null))
          .addClass('option' +
            ($option.is(':selected') ? ' selected' : '') +
            ($option.is(':disabled') ? ' disabled' : ''))
          .html($option.text())
        );
      });
    }
    
    /* Event listeners */
    
    // Unbind existing events in case that the plugin has been initialized before
    $(document).off('.nice_select');
    
    // Open/close
    $(document).on('click.nice_select', '.nice-select', function(event) {
      var $dropdown = $(this);

      
      $('.nice-select').not($dropdown).removeClass('open');
      $dropdown.toggleClass('open');


      
      if ($dropdown.hasClass('open')) {
        $dropdown.find('.option');  
        $dropdown.find('.focus').removeClass('focus');
        $dropdown.find('.selected').addClass('focus');
      } else {
        $dropdown.focus();
      }
    });
    
    // Close when clicking outside
    $(document).on('click.nice_select', function(event) {
      if ($(event.target).closest('.nice-select').length === 0) {
        $('.nice-select').removeClass('open').find('.option');  
      }
    });
    
    // Option click
    $(document).on('click.nice_select', '.nice-select .option:not(.disabled)', function(event) {
      var $option = $(this);
      var $dropdown = $option.closest('.nice-select');
      
      $dropdown.find('.selected').removeClass('selected');
      $option.addClass('selected');
      
      var text = $option.data('display') || $option.text();
      $dropdown.find('.current').text(text);
      
      $dropdown.prev('select').val($option.data('value')).trigger('change');
    });

    // Keyboard events
    $(document).on('keydown.nice_select', '.nice-select', function(event) {    
      var $dropdown = $(this);
      var $focused_option = $($dropdown.find('.focus') || $dropdown.find('.list .option.selected'));
      
      // Space or Enter
      if (event.keyCode == 32 || event.keyCode == 13) {
        if ($dropdown.hasClass('open')) {
          $focused_option.trigger('click');
        } else {
          $dropdown.trigger('click');
        }
        return false;
      // Down
      } else if (event.keyCode == 40) {
        if (!$dropdown.hasClass('open')) {
          $dropdown.trigger('click');
        } else {
          var $next = $focused_option.nextAll('.option:not(.disabled)').first();
          if ($next.length > 0) {
            $dropdown.find('.focus').removeClass('focus');
            $next.addClass('focus');
          }
        }
        return false;
      // Up
      } else if (event.keyCode == 38) {
        if (!$dropdown.hasClass('open')) {
          $dropdown.trigger('click');
        } else {
          var $prev = $focused_option.prevAll('.option:not(.disabled)').first();
          if ($prev.length > 0) {
            $dropdown.find('.focus').removeClass('focus');
            $prev.addClass('focus');
          }
        }
        return false;
      // Esc
      } else if (event.keyCode == 27) {
        if ($dropdown.hasClass('open')) {
          $dropdown.trigger('click');
        }
      // Tab
      } else if (event.keyCode == 9) {
        if ($dropdown.hasClass('open')) {
          return false;
        }
      }
    });

    // Detect CSS pointer-events support, for IE <= 10. From Modernizr.
    var style = document.createElement('a').style;
    style.cssText = 'pointer-events:auto';
    if (style.pointerEvents !== 'auto') {
      $('html').addClass('no-csspointerevents');
    }
    
    return this;

  };

}(jQuery));
  $('.degree-finder .lblSelect select').niceSelect();
};
</script>
<div class="opt-test53-as"></div></div></div>
<script src="/Modules/FlexSlider/scripts/jquery.flexslider.min.js" type="text/javascript"></script>
<script src="/api/settings/FormCollectionDropDownData" type="text/javascript"></script>
<script src="/Modules/Orchard.jQuery/scripts/jquery.cookie.min.js" type="text/javascript"></script>
<script src="/Modules/Orchard.DynamicForms/Scripts/Lib.min.js" type="text/javascript"></script>
<script src="/Modules/CEC.Resources/scripts/OverlayForm.min.js" type="text/javascript"></script>
<script src="/Modules/CEC.Base/scripts/dev/FormsCollection.min.js" type="text/javascript"></script>
<script src="/Modules/CEC.Base/scripts/dev/DataLayer.min.js" type="text/javascript"></script>
<script src="/Modules/CEC.Base/scripts/dev/LeadAttribution.min.js" type="text/javascript"></script>
<script src="/Modules/CEC.Base/scripts/dev/FormProcess.min.js" type="text/javascript"></script>
	<script>
		$(document).ready(function () {
			$('#flex-c2dac05a-79b1-46c4-8327-f93c411f704e').flexslider({
				animation: "slide",              //String: Select your animation type, "fade" or "slide"
				direction: "horizontal",        //String: Select the sliding direction, "horizontal" or "vertical"
				reverse: false,                 //{NEW} Boolean: Reverse the animation direction
				animationLoop: true,            //Boolean: Should the animation loop? If false, directionNav will received "disable" classes at either end
				smoothHeight: false,            //{NEW} Boolean: Allow height of the slider to animate smoothly in horizontal mode
				slideshow: true,                //Boolean: Animate slider automatically
				slideshowSpeed: 5000,           //Integer: Set the speed of the slideshow cycling, in milliseconds
				animationSpeed: 600,            //Integer: Set the speed of animations, in milliseconds
				initDelay: 0,                   //{NEW} Integer: Set an initialization delay, in milliseconds
				randomize: false,               //Boolean: Randomize slide order

				// Usability features
				pauseOnAction: true,            //Boolean: Pause the slideshow when interacting with control elements, highly recommended.
				pauseOnHover: true,            //Boolean: Pause the slideshow when hovering over slider, then resume when no longer hovering

				// Primary Controls
				controlNav: true,               //Boolean: Create navigation for paging control of each slide? Note: Leave true for manualControls usage
				directionNav: true,             //Boolean: Create navigation for previous/next navigation? (true/false)
				prevText: "",           //String: Set the text for the "previous" directionNav item
				nextText: "",               //String: Set the text for the "next" directionNav item
				allowOneSlide: true
			});
		});
	</script>

			<script>$("#startid6be13f66-110a-42cc-a6a6-7ffec8abafcd").detach().prependTo('.start-date-wrap');</script>



<script id="tagjs" type="text/javascript">
    (function() {
        var tagjs = document.createElement("script");
        var s = document.getElementsByTagName("script")[0];
        tagjs.async = true;
        tagjs.src = "//s.btstatic.com/tag.js#site=P659J0p";
        s.parentNode.insertBefore(tagjs, s);
    }());
</script>
<script type="text/javascript">
    $(document)
        .ready(function() {
            if (document.referrer !== "") {
                $("input[name='referrer']").val(document.referrer);
                if ($(".overlay-container input[name='referrer']").length > 0) {
                    $(".overlay-container input[name='referrer']").val(document.referrer);
                }
            } else {
                $("input[name='referrer']").val(document.URL);
                if ($(".overlay-container input[name='referrer']").length > 0) {
                    $(".overlay-container input[name='referrer']").val(document.URL);
                }
            }

        });
</script>
<noscript>
    <iframe src="//s.thebrighttag.com/iframe?c=P659J0p" width="1" height="1" frameborder="0" scrolling="no" marginheight="0" marginwidth="0"></iframe>
</noscript>
</body>
</html>