Element.addMethods({position:function(el){var pos=Position.cumulativeOffset(el);var dim=$(el).getDimensions();return{left:pos[0],top:pos[1],width:dim.width,height:dim.height};},positionBelow:function(el,el_reference,position){var pos=$(el_reference).position();$(el).setStyle({position:"absolute",top:(pos.top+pos.height)+"px",left:(pos.left)+"px"});return $(el);}});if(typeof console=="undefined"||typeof console.log=="undefined"){var console={log:function(){}};}document.observe("dom:loaded",function(e){if(window.location.hash=="#class"){$("preferred_activities_sitinonaclass").checked=true;}$$("#navigation li").each(function(el){el.innerHTML=el.innerHTML.replace("<!--NAV","").replace("NAV-->","");});if($("share")){$("share").observe("click",function(e){e.stop();var pos=$(Event.element(e)).position();var create_div=false;if($("email_popup")==null){create_div=true;var div=new Element("div",{id:"email_popup"});}else{var div=$("email_popup");}new Ajax.Updater(div,$(Event.element(e)).href+"&js=1",{onComplete:function(){if(create_div){document.body.appendChild(div);}div.setStyle({width:"350px",display:"none",position:"absolute",top:(pos.top+pos.height)+"px",left:(pos.left-350)+"px"});div.show();addthis.toolbox(".addthis_toolbox",{services_expanded:"favorites,print,aim,blogger,buzz,delicious,google,kaboodle,kirtsy,live,myspace,stumbleupon,stylehive,thisnext,typepad,wordpress",ui_508_compliant:"true",data_track_linkback:"true"},{url:window.location.href});Event.observe("email_form","submit",function(e){$$("#email_popup .error").each(function(el){el.removeClassName("error");});Event.stop(e);var req=new Ajax.Request($("email_form").action,{method:"POST",parameters:$("email_form").serialize(true),onComplete:function(request,json){if(json.response.success){for(i in json.omniture){s[i]=json.omniture[i];}s.tl();new Ajax.Updater(div,$("email_form").title);}else{for(i in json.response){$("label_"+i).addClassName("error");}}}});});}});});}if(Scriptaculous){$$(".scrollto").each(function(el){el.observe("click",function(e){var hash=e.target.readAttribute("href").match(/#(.*)$/);if($$("a[name="+hash[1]+"]").length>0){e.stop();Effect.ScrollTo($$("a[name="+hash[1]+"]")[0]);}});});}if($("quickform")||$("career-planner")){$$("#email, #phone, #fname, #lname, #address1, #address2, #phone2, #zipcode, #city, #birthdate").each(function(el){el.observe("focus",cci.clearDefaultFormValue);el.observe("blur",cci.setDefaultFormValue);if($(el.identify()+"_label")){$(el.identify()+"_label").observe("click",function(e){if(e.target.readAttribute("for")&&$(e.target.readAttribute("for"))){$(e.target.readAttribute("for")).activate();}});}if($("quickform")){new cci.FormHint(el,{position:"left",offsetLeft:15});}else{new cci.FormHint(el,{position:"right",offsetRight:90});}});$$("#fname, #lname, #address1, #address2, #city").each(function(el){el.observe("keyup",cci.formatName);});$$("#birthdate_month, #birthdate_day, #birthdate_year").each(function(el){el.observe("keyup",cci.formatBirthdate);});$$("#birthdate_year").each(function(el){el.observe("blur",cci.formatBirthYear);});if($("phone")){$("phone").observe("keyup",cci.formatPhoneNumber);}if($("phone2")){$("phone2").observe("keyup",cci.formatPhoneNumber);}if($("zipcode")){$("zipcode").observe("keyup",cci.formatZipcode);$("zipcode").observe("blur",cci.cityStateLookup);}for(var i=0;i<cci.formRules.length;i++){if($(cci.formRules[i].id)){$(cci.formRules[i].id).observe(cci.formRules[i].event,cci.checkErrors);$(cci.formRules[i].id).observe("change",cci.checkErrors);if(Prototype.Browser.IE){$(cci.formRules[i].id).observe("blur",cci.checkErrors);}new Form.Element.Observer(cci.formRules[i].id,0.2,function(el){if(el.hasClassName("hasvalue")){var fakeEvent={target:el};cci.checkErrors(fakeEvent);}});}}}var sms=$$("input[type=radio][name=sms]");if(sms&&sms.length>0){new cci.customRadio(sms);}var gender=$$("input[type=radio][name=gender]");if(gender&&gender.length>0){new cci.customRadio(gender);}var received_degree=$$("input[type=radio][name=received_degree]");if(received_degree&&received_degree.length>0){new cci.customRadio(received_degree);}var fa=$$("input[type=radio][name=fa]");if(fa&&fa.length>0){new cci.customRadio(fa);}var contacts=$$("input[type=radio][name=contact]");if(contacts&&contacts.length>0){new cci.customRadio(contacts);}var checkboxes=$$(".check-box-custom input[type=checkbox]");if(checkboxes&&checkboxes.length>0){for(var i=0;i<checkboxes.length;i++){new cci.customCheckbox(checkboxes[i]);}}var others=$$(".plan-question");if(others){for(var i=0;i<others.length;i++){var sub_others=others[i].select("input[type=radio]");if(sub_others.length>0){new cci.customRadio(sub_others);}}}if($("quickform")){$("quickform").observe("submit",cci.submitForm);}if($("career-planner")){$("career-planner").observe("submit",cci.submitForm);}var expands=$$(".expand");if(expands&&expands.length>0){for(var i=0;i<expands.length;i++){expands[i].observe("click",function(e){e.stop();if($(e.target)&&$(e.target).up("a")){var toExpand=$($(e.target).up("a").readAttribute("title"));if(toExpand){Effect.toggle(toExpand,"slide",{duration:0.25});}}});}}$$(".hideonload").invoke("hide");var top_links=$$(".top_links");if(top_links&&top_links.length>0){for(var i=0;i<top_links.length;i++){new cci.FormHint(top_links[i],{position:"top",observeType:"hover",offsetTop:"9",attribute:"name"});}}if($("career-planner-quiz")){var options={questions:$$(".plan-question"),progressText:$$(".progress-percent")[0],progress:$$(".progress-bar")[0],nextLink:$("career-planner-next"),backLink:$("career-planner-back"),startOver:$("career-planner-startover"),answers:$("answers"),answersContent:$("answers-content")};var quiz=new cci.quizForm($("career-planner-quiz"),options);}if($("preferred_activities_meetwithanadvisor")){var end=new Date();new cci.Calendar($("calendar"),{limit:true,min:new Date(),max:new Date(end.getFullYear(),end.getMonth()+3,30)});$("preferred_activities_meetwithanadvisor").observe("cci:checkboxchange",function(e){if(e.target.checked){$("preferred_activities_meetwithanadvisor_date").show();$("calendar").activate();}else{$("preferred_activities_meetwithanadvisor_date").hide();$("preferred_activities_meetwithanadvisor_date").fire("cci:closeall");}});}});var cci={};cci.cityStateLookup=function(){new Ajax.Request("/contact/ziplookup",{method:"post",parameters:{zipcode:$F("zipcode")},onComplete:cci.cityStateLookupResponse});};cci.cityStateLookupResponse=function(req,json){if(json.city&&$("city")){$("city").value=json.city;$("city").addClassName("hasvalue").addClassName("valid");$("city_label").addClassName("hasvalue").addClassName("valid");}if(json.state&&$("state")){for(var i=0;i<$("state").options.length;i++){if($("state").options[i].value==json.state){$("state").selectedIndex=i;$("city").addClassName("valid");$("city_label").addClassName("valid");break;}}}};cci.clearDefaultFormValue=function(e){if(e.target.value==e.target.defaultValue){e.target.value="";e.target.addClassName("hasvalue");}};cci.setDefaultFormValue=function(e){if(e.target.value==""){e.target.value=e.target.defaultValue;e.target.removeClassName("hasvalue");}};cci.genericFormRule=function(id,regex,original){if($(id)){if(original===true&&$(id).defaultValue==$F(id)){return true;}return !($F(id).match(regex)!==null);}};cci.formRules=[{id:"fname",event:"keyup",regex:/^[^$]/,hasError:function(original){return cci.genericFormRule(this.id,this.regex,original);},label:"fname_label"},{id:"lname",event:"keyup",regex:/^[^$]/,hasError:function(original){return cci.genericFormRule(this.id,this.regex,original);},label:"lname_label"},{id:"address1",event:"keyup",regex:/^[^$]/,hasError:function(original){return cci.genericFormRule(this.id,this.regex,original);},label:"address1_label"},{id:"email",event:"keyup",regex:/^([\w\-\.\+]+)@([\w\-]+\.)([\w\-]+)(\.[\w\-]+)*$/,hasError:function(original){return cci.genericFormRule(this.id,this.regex,original);},label:"email_label"},{id:"phone",event:"keyup",regex:/^[2-9]\d{9}$/,hasError:function(original){if($(this.id)){if(original===true&&$(this.id).defaultValue==$F(this.id)){return true;}var value=$F(this.id).replace(/[^\d]/g,"");var error=false;if(cci.phoneRules){for(var i=0;i<cci.phoneRules.length;i++){if(value.match(cci.phoneRules[i])){error=true;}}}if(!value.match(this.regex)){error=true;}return error;}},label:"phone_label"},{id:"phone2",event:"keyup",regex:/^($|[2-9]\d{9})$/,hasError:function(original){if($(this.id)){return !($F(this.id).replace(/[^\d]/g,"").match(this.regex)!==null);}},label:"phone2_label"},{id:"zipcode",event:"keyup",regex:/^\d{5}$/,hasError:function(original){return cci.genericFormRule(this.id,this.regex,original);},label:"zipcode_label"},{id:"graddate_year",event:"change",regex:/^\d\d\d\d$/,hasError:function(original){return cci.genericFormRule(this.id,this.regex,original);},label:"graddate_label"},{id:"graddate_month",event:"change",regex:/^\d\d$/,hasError:function(original){return cci.genericFormRule(this.id,this.regex,original);},label:"graddate_label"},{id:"campus",event:"change",regex:/^[A-Z]{3}$/,hasError:function(original){return cci.genericFormRule(this.id,this.regex,original);},label:"campus_label"},{id:"program",event:"change",regex:/^[^$]/,hasError:function(original){if($(this.id).tagName=="SELECT"){return cci.genericFormRule(this.id,this.regex,original);}return false;},label:"program_label"}];cci.checkErrors=function(e){var ignore_keys=[Event.KEY_TAB,Event.KEY_LEFT,Event.KEY_RIGHT,Event.KEY_UP,Event.KEY_DOWN,16];if(e.keyCode&&ignore_keys.indexOf(e.keyCode)>=0){return;}for(var i=0;i<cci.formRules.length;i++){if(cci.formRules[i].id==$(e.target).readAttribute("id")){var rule=cci.formRules[i];break;}}if(rule.hasError()){cci.addError(rule.id);cci.addError(rule.label);}else{cci.removeError(rule.id);cci.removeError(rule.label);}};cci.addError=function(el){if($(el)){$(el).addClassName("error");$(el).removeClassName("valid");}};cci.removeError=function(el){if($(el)){$(el).removeClassName("error");$(el).addClassName("valid");}};cci.submitForm=function(e){e.stop();var errors=[];for(var i=0;i<cci.formRules.length;i++){if(cci.formRules[i].hasError(true)){errors.push(cci.formRules[i].id);cci.addError($(cci.formRules[i].id));cci.addError($(cci.formRules[i].label));}}if(errors.length>0){errors=$$(".error");for(var i=0;i<errors.length;i++){if(errors[i].tagName=="INPUT"||errors[i].tagName=="SELECT"||errors[i].tagName=="TEXTAREA"){$(errors[i]).activate();return;}}}else{$(e.target).submit();}};cci.formatPhoneNumber=function(e){var ignore_keys=[Event.KEY_TAB,Event.KEY_LEFT,Event.KEY_RIGHT,Event.KEY_UP,Event.KEY_DOWN,16,Event.KEY_DELETE,Event.KEY_BACKSPACE];if(e.keyCode&&ignore_keys.indexOf(e.keyCode)>=0){return;}var peices=$F(e.target).replace(/[^\d]/g,"").replace(/^[01]/,"").match(/^(\d{0,3})(\d{0,3})(\d{0,4})/);peices.shift();var ret="";if(peices[0].length==0){$(e.target).value="";return;}ret="("+peices[0];if(peices[0].length==3){ret+=") ";}if(peices[1].length>0){ret+=peices[1];}if(peices[1].length==3){ret+="-";}if(peices[2].length>0){ret+=peices[2];}$(e.target).value=ret;};cci.formatBirthYear=function(e){var value=$F(e.target).replace(/[^\d]/g,"");value=parseInt(value);if(value<1000){if(value>99){value=value-(Math.floor(value/100)*100);}value+=1900;var d=new Date();if(value<=(d.getFullYear()-(2100-d.getFullYear()))&&(value+100)<=d.getFullYear()){value+=100;}$(e.target).value=value;}};cci.formatBirthdate=function(e){if(e.keyCode==Event.KEY_BACKSPACE||e.keyCode==Event.KEY_DELETE||e.keyCode==Event.KEY_TAB||e.keyCode==16){return;}var value=$F(e.target).replace(/[^\d]/g,"");if(e.target.identify()=="birthdate_month"){if(parseInt(value)>=2&&parseInt(value)<=9){value="0"+parseInt(value);}if(value.length==2){$("birthdate_day").activate();}}if(e.target.identify()=="birthdate_day"){if(parseInt(value)>=4&&parseInt(value)<=9){value="0"+parseInt(value);}if(value.length==2){$("birthdate_year").activate();}}$(e.target).value=value;};cci.formatZipcode=function(e){$(e.target).value=$F(e.target).replace(/[^\d]/g,"").substr(0,5);};cci.formatName=function(e){$(e.target).value=$F(e.target).replace(/\w+/g,function(str){return str.charAt(0).toUpperCase()+str.substr(1);});};cci.FormHint=Class.create({initialize:function(element,options){this.element=$(element);this.options={position:"right",offsetLeft:5,offsetTop:0,offsetRight:0,offsetBottom:0,center:true,classname:"hint",prefix:"",extraDom:'<span class="pointer">&nbsp</span>',observeType:"click",animate:false,attribute:"title"};Object.extend(this.options,options||{});this.options.offsetLeft=parseInt(this.options.offsetLeft);this.options.offsetTop=parseInt(this.options.offsetTop);this.options.offsetRight=parseInt(this.options.offsetRight);this.options.offsetBottom=parseInt(this.options.offsetBottom);this.attachEvents();},attachEvents:function(){if(this.options.observeType=="hover"){this.element.observe("mouseover",this.showHint.bind(this));this.element.observe("mouseout",this.hideHint.bind(this));}else{this.element.observe("focus",this.showHint.bind(this));this.element.observe("blur",this.hideHint.bind(this));}Event.observe(window,"resize",this.positionHint.bind(this));},showHint:function(e){if(this.element.readAttribute(this.options.attribute)!=""){this.drawHint();this.positionHint();if(this.options.animate==true){new Effect.Appear(this.hint,{duration:0.2});}else{this.hint.show();}}},hideHint:function(e){if(this.hint){if(this.options.animate==true){new Effect.Fade(this.hint,{duration:0.3});}else{this.hint.hide();}}},drawHint:function(){if(this.hint){return;}this.hint=new Element("div",{"class":this.options.classname}).update(this.options.extraDom+this.options.prefix+this.element.readAttribute(this.options.attribute));$(document.body).insert(this.hint);this.hint.absolutize().setStyle({width:"auto",height:"auto"}).hide();},positionHint:function(e){if(typeof(this.hint)=="undefined"){return;}if(e&&e.type=="resize"&&!this.hint.visible()){return;}var elementSize=this.element.getDimensions();var hintSize=this.hint.getDimensions();var options={setWidth:false,setHeight:false};if(this.options.position=="top"||this.options.position=="bottom"){options.offsetLeft=(-1*this.options.offsetLeft)+this.options.offsetRight+(this.options.center?(elementSize.width/2)-(hintSize.width/2):0);}if(this.options.position=="left"||this.options.position=="right"){options.offsetTop=(-1*this.options.offsetTop)+this.options.offsetBottom+(this.options.center?(elementSize.height/2)-(hintSize.height/2):0);}switch(this.options.position.toLowerCase()){case"top":options.offsetTop=(-1*hintSize.height)+(-1*this.options.offsetTop)+this.options.offsetBottom;this.hint.select("span.pointer").invoke("addClassName","pointer-top");break;case"bottom":options.offsetTop=elementSize.height+(-1*this.options.offsetTop)+this.options.offsetBottom;this.hint.select("span.pointer").invoke("addClassName","pointer-bottom");break;case"left":options.offsetLeft=(-1*hintSize.width)+(-1*this.options.offsetLeft)+this.options.offsetRight;this.hint.select("span.pointer").invoke("addClassName","pointer-left");break;default:options.offsetLeft=elementSize.width+(-1*this.options.offsetLeft)+this.options.offsetRight;this.hint.select("span.pointer").invoke("addClassName","pointer-right");break;}this.hint.clonePosition(this.element,options);this.hint.setStyle({width:"auto",height:"auto"});}});cci.customRadio=Class.create({initialize:function(elements,options){this.elements=elements;this.radios=[];this.options=options||{};this.drawRadios();this.addEvents();},drawRadios:function(){for(var i=0;i<this.elements.length;i++){this.hideElement(i);this.drawRadio(i);this.insertRadio(i);}},hideElement:function(index){this.elements[index].hide();},drawRadio:function(index){this.radios[index]=new Element("div",{"class":"radio"});if(this.elements[index].readAttribute("tabindex")!=null){this.radios[index].writeAttribute("tabindex",this.elements[index].readAttribute("tabindex"));}if(this.elements[index].checked){this.radios[index].addClassName("selected");}},insertRadio:function(index){this.elements[index].insert({after:this.radios[index]});},addEvents:function(){for(var i=0;i<this.radios.length;i++){this.radios[i].observe("click",this.handleRadioClick.bind(this));this.radios[i].observe("keyup",this.handleRadioKeySelection.bind(this));if(this.elements[i].readAttribute("id")!=null){var labels=$$("label[for="+this.elements[i].readAttribute("id")+"]");if(labels.length==1){labels[0].observe("click",this.handleRadioClick.bind(this));}}}},handleRadioClick:function(e){e.stop();var el=$(e.target);if(el.tagName=="LABEL"){var tmp=$(el.readAttribute("for"));for(var i=0;i<this.elements.length;i++){if(this.elements[i]==tmp){el=this.radios[i];break;}}}for(var i=0;i<this.radios.length;i++){if(this.radios[i]==el){this.radios[i].addClassName("selected");this.elements[i].checked=true;}else{this.radios[i].removeClassName("selected");}}},handleRadioKeySelection:function(e){if(e.keyCode==32||e.keyCode==Event.KEY_RETURN||e.keyCode==Event.KEY_ENTER){this.handleRadioClick(e);}}});cci.customCheckbox=Class.create({initialize:function(element,options){this.element=$(element);this.options=options||{};this.label=false;this.drawCheckbox();this.addEvents();},drawCheckbox:function(){this.element.hide();this.checkbox=new Element("div",{"class":"checkbox"});if(this.element.readAttribute("tabindex")!=null){this.checkbox.writeAttribute("tabindex",this.element.readAttribute("tabindex"));}if(this.element.checked){this.checkbox.addClassName("selected");}this.element.insert({after:this.checkbox});},addEvents:function(){this.checkbox.observe("click",this.handleCheckboxClick.bind(this));this.checkbox.observe("keyup",this.handleCheckboxKeySelection.bind(this));if(this.element.readAttribute("id")!=null){var labels=$$("label[for="+this.element.readAttribute("id")+"]");if(labels.length==1){this.label=labels[0];labels[0].observe("click",this.handleCheckboxClick.bind(this));}}},handleCheckboxClick:function(e){e.stop();if(this.checkbox.hasClassName("selected")){this.checkbox.removeClassName("selected");this.element.checked=false;if(this.label){this.label.removeClassName("selected");}}else{this.checkbox.addClassName("selected");this.element.checked=true;if(this.label){this.label.addClassName("selected");}}this.element.fire("cci:checkboxchange");},handleCheckboxKeySelection:function(e){if(e.keyCode==32||e.keyCode==Event.KEY_RETURN||e.keyCode==Event.KEY_ENTER){this.handleCheckboxClick(e);}}});cci.customDropdown=Class.create({initialize:function(element,options){this.element=$(element);this.options=options||{};this.drawDropdown();this.addEvents();},drawDropdown:function(){this.element.hide();this.dropdown=new Element("ul");if(this.element.readAttribute("tabindex")!=null){this.dropdown.writeAttribute("tabindex",this.element.readAttribute("tabindex"));}for(var i=0;i<this.element.options.length;i++){this.dropdown.insert(new Element("li",{"class":(this.element.options[i].selected?"selected ":"")+((i+1)%2==0?"even":"odd")}).insert(this.element.options[i].text).store("value",this.element.options[i].value));}var lis=this.dropdown.select("li");lis[0].addClassName("first");lis[lis.length-1].addClassName("last");this.wrapper=new Element("div",{"class":"dropdown"});this.wrapper.insert(this.dropdown);this.element.insert({after:this.wrapper});},addEvents:function(){this.wrapper.observe("click",this.handleDropdownClick.bind(this));this.dropdown.observe("click",this.handleDropdownSelection.bind(this));this.dropdown.observe("keyup",this.handleDropdownKeySelection.bind(this));document.observe("cci:dropdownchange",this.handleSelectChange.bind(this));document.observe("cci:closeall",this.hideDropdown.bind(this));document.observe("click",this.closeAll.bind(this));},closeAll:function(e){$(e.target).fire("cci:closeall");},handleDropdownClick:function(e){e.stop();if(this.wrapper.hasClassName("open")){this.hideDropdown();}else{this.showDropdown();}},showDropdown:function(){this.wrapper.fire("cci:closeall");this.wrapper.addClassName("open");},hideDropdown:function(){this.wrapper.removeClassName("open");},handleDropdownSelection:function(e){if(this.wrapper.hasClassName("open")){e.stop();this.selectItem(e.target);}},selectItem:function(element){this.dropdown.select("li").invoke("removeClassName","selected");$(element).addClassName("selected");this.hideDropdown();for(var i=0;i<this.element.options.length;i++){if(this.element.options[i].value==$(element).retrieve("value")){this.element.options[i].selected=true;break;}}},handleDropdownKeySelection:function(e){e.stop();var index=null;if(e.keyCode==Event.KEY_UP||e.keyCode==Event.KEY_LEFT){index=Math.max(0,this.element.selectedIndex-1);this.dropdown.select("li").invoke("removeClassName","selected");this.dropdown.select("li")[index].addClassName("selected");}if(e.keyCode==Event.KEY_DOWN||e.keyCode==Event.KEY_RIGHT){index=Math.min(this.element.options.length-1,this.element.selectedIndex+1);this.dropdown.select("li").invoke("removeClassName","selected");this.dropdown.select("li")[index].addClassName("selected");}if(e.keyCode==Event.KEY_HOME||e.keyCode==Event.KEY_PAGEUP){index=0;this.dropdown.select("li").invoke("removeClassName","selected");this.dropdown.select("li")[index].addClassName("selected");}if(e.keyCode==Event.KEY_END||e.keyCode==Event.KEY_PAGEDOWN){index=this.element.options.length-1;this.dropdown.select("li").invoke("removeClassName","selected");this.dropdown.select("li")[index].addClassName("selected");}if(e.keyCode==Event.KEY_TAB||e.keyCode==Event.KEY_ENTER||e.keyCode==Event.KEY_RETURN||e.keyCode==Event.KEY_ESC){this.hideDropdown();}if(index!=null){this.element.selectedIndex=index;}},handleSelectChange:function(e){if(e.target!=this.element){return;}var value=$F(this.element);var values=this.dropdown.select("li");for(var i=0;i<values.length;i++){if(values[i].retrieve("value")==value){this.selectItem(values[i]);return;}}}});cci.quizForm=Class.create({initialize:function(wrapper,options){this.wrapper=$(wrapper);this.options={nextLink:this.wrapper.select(".next"),backLink:this.wrapper.select(".back"),questions:this.wrapper.select(".question"),progress:this.wrapper.select(".progress"),progressText:this.wrapper.select(".progressText"),answers:this.wrapper.select(".answers"),answersContent:this.wrapper.select(".answerscontent"),startOver:this.wrapper.select(".startover")};this.options=options;this.current=0;this.addEvents();this.zeroOut();},zeroOut:function(){this.options.progress.setStyle({width:0});this.options.progressText.update("0% Done");},addEvents:function(){this.options.nextLink.observe("click",this.handleNext.bind(this));this.options.backLink.observe("click",this.handlePrevious.bind(this));this.options.startOver.observe("click",this.handleStartOver.bind(this));},handleNext:function(e){e.stop();var radios=this.options.questions[this.current].select("input[type=radio]");var checked=false;for(var i=0;i<radios.length;i++){if(radios[i].checked){checked=true;break;}}if(!checked){new Effect.Highlight(this.options.questions[this.current],{endcolor:"#F6F6F6"});return;}Effect.SlideUp(this.options.questions[this.current],{duration:0.35});this.current++;this.updateProgress();this.options.backLink.show();if(this.current>=this.options.questions.length){this.options.nextLink.hide();this.options.backLink.hide();this.showAnswers();return;}Effect.BlindDown(this.options.questions[this.current],{duration:0.35});},handlePrevious:function(e){e.stop();Effect.BlindUp(this.options.questions[this.current],{duration:0.35});this.current--;if(this.current==0){this.options.backLink.hide();}this.updateProgress();Effect.SlideDown(this.options.questions[this.current],{duration:0.35});},handleStartOver:function(e){e.stop();this.options.answers.hide();this.options.startOver.hide();this.options.nextLink.show();this.current=0;this.options.questions[this.current].show();this.updateProgress();},updateProgress:function(){var percent=Math.ceil(100*(this.current/this.options.questions.length));this.options.progress.morph("width: "+percent+"%",{transition:Effect.Transitions.spring});this.options.progressText.update(percent+"% Done");},showAnswers:function(){var answers=this.options.questions.collect(function(el){var radios=el.select("input[type=radio]");for(var i=0;i<radios.length;i++){if(radios[i].checked){break;}}return radios[i].up().innerHTML.stripTags().strip();});var ul=new Element("ul",{"class":"answers"});for(var i=0;i<answers.length;i++){ul.insert(new Element("li",{"class":"answer"}).insert(answers[i]));}this.options.answersContent.update(ul);Effect.BlindDown(this.options.answers,{duration:0.35});this.options.startOver.show();}});cci.Calendar=Class.create({initialize:function(element,options){this.element=$(element);this.calendar=this.createWrapper();this.registerEvents();this.options={};this.options.format="mm/dd/yyyy h:ii aa";this.options.limit=false;this.options.max=new Date(2010,11,31);this.options.min=new Date(2010,0,1);this.options.today=false;this.options.time=true;Object.extend(this.options,options||{});this.options.titles={};this.options.titles.en={tiny:{},small:{},full:{}};this.options.titles.en.full.months=["January","February","March","April","May","June","July","August","September","October","November","December"];this.options.titles.en.full.days=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];this.options.titles.en.full.today="Today";this.options.titles.en.small.today=this.options.titles.en.full.today;this.options.titles.en.tiny.today=this.options.titles.en.full.today;this.options.titles.en.suffixes=["st","nd","rd","th"];this.options.titles.en.small.months=this.options.titles.en.full.months.invoke("substring",0,3);this.options.titles.en.tiny.months=this.options.titles.en.full.months.invoke("substring",0,1);this.options.titles.en.small.days=this.options.titles.en.full.days.invoke("substring",0,3);this.options.titles.en.tiny.days=this.options.titles.en.full.days.invoke("substring",0,1);this.options.titles.en.full.hours={0:12,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,10:10,11:11};this.options.titles.en.full.minutes={"00":"00","15":"15","30":"30","45":"45"};this.options.titles.en.full.ampm={AM:"AM",PM:"PM"};this.options.dropdowns={month:true,year:false};this.options.titles.length="full";},createWrapper:function(){var div=new Element("div",{"class":"calWrapper"}).hide();div.identify();$(document.body).insert(div);return div;},positionCalendar:function(e){if(e&&e.target&&!this.calendar.visible()){return;}var offset=this.element.cumulativeOffset();var dimens=this.element.getDimensions();this.calendar.setStyle({position:"absolute",top:offset.top+dimens.height+"px",left:offset.left+"px",width:(typeof document.body.style.maxHeight!="undefined"?"auto":dimens.width+"px")});this.lastWidth=document.viewport.getWidth();},registerEvents:function(){document.observe("click",this.closeCalendar.bind(this));Event.observe(window,"resize",this.positionCalendar.bind(this));this.element.observe("click",this.openCalendar.bind(this));this.element.observe("focus",this.openCalendar.bind(this));this.element.observe("keyup",this.updateCalendar.bind(this));this.calendar.observe("click",this.handleClick.bind(this));document.observe("cci:closeall",this.closeAllCalendars.bind(this));},handleClick:function(e){e.stop();if(e.target.hasClassName("calUnavailable")){return;}document.fire("cci:closeall",{id:this.calendar.identify()});var storage=e.target.getStorage();if(e.type=="change"){if(e.target.readAttribute("name")=="year"){this.draw(new Date($F(e.target),this.date.getMonth(),this.date.getDate(),this.date.getHours(),this.date.getMinutes()));}if(e.target.readAttribute("name")=="month"){this.draw(new Date(this.date.getFullYear(),$F(e.target),this.date.getDate(),this.date.getHours(),this.date.getMinutes()));}}if(e.target.tagName=="TD"){if(storage.get("date")){this.selectedDate=storage.get("date");this.selectedDate=this.setTheTime(this.selectedDate);this.element.value=this.formatDate(this.selectedDate);this.calendar.select(".calSelected").invoke("removeClassName","calSelected");e.target.addClassName("calSelected");}}if(storage.get("action")){if(storage.get("action")==-1){this.draw(this.lastMonth(this.date));}else{this.draw(this.nextMonth(this.date));}}},setTheTime:function(date){if(!this.options.time){return date;}var hour=parseInt($F(this.hours));if($F(this.ampm)=="PM"){hour+=12;}date.setHours(hour);date.setMinutes($F(this.minutes));return date;},openCalendar:function(e){e.stop();document.fire("cci:closeall",{id:this.calendar.identify()});if(this.calendar.visible()){return;}this.positionCalendar();var d=this.extractDateFromFormat($F(this.element));if(d==false){d=new Date();}this.selectedDate=d;this.draw(d);this.calendar.show();if(this.lastWidth!=document.viewport.getWidth()){this.positionCalendar();}},updateCalendar:function(e){if(e.keyCode==Event.KEY_ESC){this.closeCalendar();return;}var d=this.extractDateFromFormat($F(this.element));if(d==false){d=new Date();}this.selectedDate=d;this.draw(d);},closeCalendar:function(e){if(this.calendar.visible()){this.calendar.hide();}},closeAllCalendars:function(e){if(e.memo.id!=this.calendar.identify()){this.closeCalendar();}},draw:function(date){this.date=date;var today=new Date().toLocaleDateString();var selected=this.selectedDate.toLocaleDateString();var table,head,body,row,first,last,daysin,num,next,dates=[];row=new Element("tr",{"class":"calHeadRow"});row.insert(new Element("th",{"class":"calLastMonth"}).store("action",-1).store("date",date).update("&laquo;"));if(this.options.dropdowns.month){var monthdrop=this.createDropdown(this.options.titles.en.small.months,date.getMonth(),"month","calMonthDropdown");}if(this.options.dropdowns.year){var years={};for(var i=date.getFullYear()-50;i<=date.getFullYear()+50;i++){years[i]=i;}var yeardrop=this.createDropdown(years,date.getFullYear(),"year","calYearDropdown");}if(this.options.dropdowns.month||this.options.dropdowns.year){var nobr=new Element("nobr").insert(monthdrop||this.options.titles.en.small.months[date.getMonth()]).insert("&nbsp;").insert(yeardrop||date.getFullYear());row.insert(new Element("th",{"class":"calMonthTitle",colspan:5}).insert(nobr));}else{row.insert(new Element("th",{"class":"calMonthTitle",colspan:5}).update(this.options.titles.en.small.months[date.getMonth()]+"&nbsp;"+date.getFullYear()));}row.insert(new Element("th",{"class":"calNextMonth"}).store("action",1).store("date",date).update("&raquo;"));head=new Element("thead",{"class":"calHead"});head.insert(row);row=new Element("tr",{"class":"calDayTitlesRow"});for(var i=0;i<7;i++){row.insert(new Element("th",{"class":"calDayTitle"}).update(this.options.titles.en.tiny.days[i]));}head.insert(row);body=new Element("tbody",{"class":"calBody"});first=this.firstDayOfMonth(date);if(first!=0){last=this.lastMonth(date);daysin=this.daysInMonth(last);for(var i=0;i<first;i++){var day=daysin-(first-i)+1;var thedate=this.setDateWithDate(last,day);var classadd="calLastMonth";classadd+=thedate.toLocaleDateString()==today?" calToday":"";classadd+=thedate.toLocaleDateString()==selected?" calSelected":"";classadd+=this.options.limit&&(thedate>this.options.max||thedate<this.options.min)?" calUnavailable":"";dates.push({number:day,"class":classadd,date:thedate});}}daysin=this.daysInMonth(date);for(var i=1;i<=daysin;i++){var thedate=this.setDateWithDate(date,i);var classadd="calCurrentMonth";classadd+=thedate.toLocaleDateString()==today?" calToday":"";classadd+=thedate.toLocaleDateString()==selected?" calSelected":"";classadd+=this.options.limit&&(thedate>this.options.max||thedate<this.options.min)?" calUnavailable":"";dates.push({number:i,"class":classadd,date:thedate});}last=this.lastDayOfMonth(date);if(last!=6){num=1;next=this.nextMonth(date);for(var i=last+1;i<=6;i++){var thedate=this.setDateWithDate(next,num);var classadd="calNextMonth";classadd+=thedate.toLocaleDateString()==today?" calToday":"";classadd+=thedate.toLocaleDateString()==selected?" calSelected":"";classadd+=this.options.limit&&(thedate>this.options.max||thedate<this.options.min)?" calUnavailable":"";dates.push({number:num++,"class":classadd,date:thedate});}}dates=dates.inGroupsOf(7);for(var i=0;i<dates.length;i++){row=new Element("tr",{"class":"calRow"});for(var j=0;j<7;j++){row.insert(new Element("td",{"class":dates[i][j]["class"]}).update(dates[i][j].number).store("date",dates[i][j].date));}body.insert(row);}if(this.options.today){row=new Element("tr",{"class":"calRow calTodayLinkRow"});row.insert(new Element("td",{"class":"calTodayLink",colspan:7}).update(this.options.titles.en.full.today).store("date",new Date()));body.insert(row);}if(this.options.time){var hour=date.getHours();var ampm="AM";if(hour>11){hour-=12;ampm="PM";}this.hours=this.createDropdown(this.options.titles.en.full.hours,hour,"hour","calTimeHour");this.hours.observe("change",this.timeChange.bind(this));this.minutes=this.createDropdown(this.options.titles.en.full.minutes,date.getMinutes(),"minute","calTimeMinute");this.minutes.observe("change",this.timeChange.bind(this));this.ampm=this.createDropdown(this.options.titles.en.full.ampm,ampm,"ampm","calTimeAMPM");this.ampm.observe("change",this.timeChange.bind(this));var cell=new Element("td",{"class":"calTimeCell",colspan:7}).insert(new Element("nobr").insert(this.hours).insert(":").insert(this.minutes).insert("&nbsp").insert(this.ampm));row=new Element("tr",{"class":"calRow calTimeRow"}).update(cell);body.insert(row);}table=new Element("table",{"class":"calTable"});table.insert(head);table.insert(body);this.calendar.update(new Element("div",{"class":"calInnerWrapper"}).update(table));},timeChange:function(e){this.date=this.setTheTime(this.date);this.element.value=this.formatDate(this.date);},firstDayOfMonth:function(date){return new Date(date.getFullYear(),date.getMonth(),1).getDay();},lastDayOfMonth:function(date){return new Date(date.getFullYear(),date.getMonth(),this.daysInMonth(date)).getDay();},daysInMonth:function(date){return 32-new Date(date.getFullYear(),date.getMonth(),32).getDate();},lastMonth:function(date){if(date.getMonth()==0){return new Date(date.getFullYear()-1,11,1,date.getHours(),date.getMinutes());}else{return new Date(date.getFullYear(),date.getMonth()-1,1,date.getHours(),date.getMinutes());}},nextMonth:function(date){if(date.getMonth()==11){return new Date(date.getFullYear()+1,0,1,date.getHours(),date.getMinutes());}else{return new Date(date.getFullYear(),date.getMonth()+1,1,date.getHours(),date.getMinutes());}},weekNumber:function(date,weekStart){var cmpDate=new Date(date.getTime());var day=cmpDate.getDay()-weekStart;day+=day<0?7:0;cmpDate.setDate(cmpDate.getDate()-day+4);var seconds=cmpDate.getTime();cmpDate.setMonth(0);cmpDate.setDate(1);return Math.floor(Math.round((seconds-cmpDate)/86400000)/7)+1;},setDateWithDate:function(date,day){return new Date(date.getFullYear(),date.getMonth(),day);},extractDateFromFormat:function(dateString){var matches={aa:"(am|pm)",a:"(a|p)",AA:"(AM|PM)",A:"(A|P)",yyyy:"(\\d{4})",yy:"(\\d\\d)",mm:"(\\d?\\d)",m:"(\\d?\\d)",dd:"(\\d?\\d)",d:"(\\d?\\d)",hh:"(\\d?\\d)",h:"(\\d?\\d)",ii:"(\\d?\\d)",i:"(\\d?\\d)",ss:"(\\d?\\d)",s:"(\\d?\\d)",t:"("+this.options.titles.en.suffixes.join("|")+")",T:"("+this.options.titles.en.suffixes.join("|").toUpperCase()+")",MM:"("+this.options.titles.en.full.months.join("|")+")",M:"("+this.options.titles.en.small.months.join("|")+")",DD:"("+this.options.titles.en.full.days.join("|")+")",D:"("+this.options.titles.en.small.days.join("|")+")",HH:"(\\d?\\d)",H:"(\\d?\\d)",II:"(\\d?\\d)",I:"(\\d?\\d)",SS:"(\\d?\\d)",S:"(\\d?\\d)"};var regex=this.options.format;var replaces={};var repcount=0;for(var i in matches){if(i.toUpperCase().charAt(0)=="A"){}if(regex.indexOf(i)>=0){regex=regex.replace(i,"#{_-"+repcount+"}");replaces["_-"+repcount++]=matches[i];}}regex=regex.interpolate(replaces);var matched=dateString.match(new RegExp(regex));if(matched){var associations=this.options.format.match(/(m{1,2}|d{1,2}|y{2,4}|s{1,2}|h{1,2}|i{1,2}|t|a{1,2})/ig);var associated={};for(var i=1;i<matched.length;i++){associated[associations[i-1]]=matched[i];}return this.reverseDateFormat(associated);}return false;},reverseDateFormat:function(associations){var year,month,day;if(associations.MM){month=this.options.titles.en.full.months.indexOf(associations.MM);}if(associations.M){month=this.options.titles.en.small.months.indexOf(associations.M);}if(associations.m||associations.mm){month=(associations.m||associations.mm)-1;}if(associations.d||associations.dd){day=(associations.d||associations.dd);}year=associations.yyyy||assocations.yy;if(this.options.time){var hour=0,minute=0,second=0;if((associations.h||associations.hh)&&(associations.a||associations.aa||associations.A||associations.AA)){var ampm=associations.a||associations.aa||associations.A||associations.AA;hour=associations.h||associations.hh;hour=parseInt(hour);if(ampm.toUpperCase().charAt(0)=="P"&&(associations.h||associations.hh)){hour+=12;}}else{if(associations.H||associations.HH){hour=associations.H||associations.HH;hour=parseInt(hour);}}if(associations.i||associations.ii||associations.I||associations.II){minute=associations.i||associations.ii||associations.I||associations.II;minute=parseInt(minute);}if(associations.s||associations.ss||associations.S||associations.SS){second=associations.s||associations.ss||associations.S||associations.SS;second=parseInt(second);}}if(year&&month!=null&&day){if(this.options.time){return new Date(year,month,day,hour,minute,second);}return new Date(year,month,day);}return false;},formatDate:function(date){var ret=this.options.format;var peices=this.options.format.match(/(m{1,2}|d{1,2}|y{2,4}|s{1,2}|h{1,2}|i{1,2}|t|a{1,2})/ig);for(var i=0;i<peices.length;i++){ret=ret.replace(peices[i],"#{_-"+i+"}");}var replaces={};for(var i=0;i<peices.length;i++){replaces["_-"+i]=this.dateFormat(peices[i],date);}return ret.interpolate(replaces);},dateFormat:function(format,date){switch(format){case"yy":case"YY":return date.getFullYear().toString().substring(2);case"yyyy":case"YYYY":return date.getFullYear();case"m":return date.getMonth()+1;case"mm":date=date.getMonth()+1;return date<10?"0"+date:date;case"M":return this.options.titles.en.small.months[date.getMonth()];case"MM":return this.options.titles.en.full.months[date.getMonth()];case"d":return date.getDate();case"dd":date=date.getDate();return date<10?"0"+date:date;case"D":return this.options.titles.en.small.days[date.getDay()];case"DD":return this.options.titles.en.full.days[date.getDay()];case"H":return parseInt(date.getHours());case"HH":var start="00"+date.getHours();return start.substr(start.length-2);case"h":var start=parseInt(date.getHours());return start>12?start-12:(start==0?"12":start);case"hh":var start=parseInt(date.getHours());start=start>12?"00"+(start-12):(start==0?"12":"00"+start);return start.substr(start.length-2);case"i":case"I":return parseInt(date.getMinutes());case"ii":case"II":var start="00"+date.getMinutes();return start.substr(start.length-2);case"s":case"S":return parseInt(date.getSeconds());case"ss":case"SS":var start="00"+date.getSeconds();return start.substr(start.length-2);case"a":return parseInt(date.getHours())>11?"p":"a";case"aa":return parseInt(date.getHours())>11?"pm":"am";case"A":return parseInt(date.getHours())>11?"P":"A";case"AA":return parseInt(date.getHours())>11?"PM":"AM";case"t":var d=date.getDate();if(d>3&&d<21){return this.options.titles.en.suffixes[3];}var sub=d.toString().substring(1);if(d==1||sub==1){return this.options.titles.en.suffixes[0];}if(d==2||sub==2){return this.options.titles.en.suffixes[1];}if(d==3||sub==3){return this.options.titles.en.suffixes[2];}return this.options.titles.en.suffixes[3];case"S":return this.dateFormat("s",date).toUpperCase();}},createDropdown:function(items,selected,name,className){if(items.length){var obj={};for(var i=0;i<items.length;i++){obj[i]=items[i];}items=obj;}var dropdown=new Element("select",{"class":className,name:name});for(var i in items){if(items[i]==""||items[i]==null){continue;}var isSelected=i==selected?"selected":false;dropdown.insert(new Element("option",{value:i,selected:isSelected}).update(items[i]));}dropdown.observe("change",this.handleClick.bind(this));return dropdown;}});function clearFormField(fieldText){if(fieldText.value==fieldText.defaultValue){fieldText.value="";}}function checkFormField(fieldText){if(fieldText.value==""){fieldText.value=fieldText.defaultValue;}}
