$().ready(function(){$('.fancyform').fancyForms();});;(function($){$.extend($.fn,{fancyForms:function(options){options=$.extend({PhotoUpload:true,PhotoUploadOptions:{},FieldsetFocus:true,FieldsetFocusOptions:{},OtherCheckbox:true,OtherCheckboxOptions:{},focusClass:'userText',hiddenClass:'hidden'},options);return this.each(function(){$form=$(this);if(!$form.data('isFancy')){$form.addClass('fancyform');$form.data('isFancy',true);$form.find('.'+options.hiddenClass).hide().removeClass(options.hiddenClass);$('input').focus(function(){$(this).addClass(options.focusClass);});$.each(options,function(name,enabled){if(enabled===true){eval("$form.fancyForm"+name+"();");}});}});}});})(jQuery);;(function($){$.extend($.fn,{fancyFormPhotoUpload:function(options){options=$.extend({selector:'#uploadPhoto',objectType:'User',objectIDSelector:'#photoUserID',objectHashSelector:'#photoUserHash',page:'AjaxPhotoUpload',buttonURL:'Images/buttons/Upload.gif',buttonWidth:75,cancelButtonURL:'Images/Icons/uploadify_cancel.png',queueClasses:'grid_2 first',errorSelector:'.error',photoSelector:'#userPhoto',idSelector:'#userPhotoID'},options);return this.each(function(){var baseURL=$("link[rel='baseurl']").attr("href");var $form=$(this);if($(options.selector).length){var $photoUploader=$form.find(options.selector);var $photoUploaderError=$photoUploader.parent().find(options.errorSelector);var $photoUploaderErrorText=$photoUploaderError.find('.text');var $photo=$(options.photoSelector);if(!$photo)$photo=$photoUploader.closest('fieldset').find('img:first');var type=$photoUploader.attr('name');type=type.substring(0,type.indexOf('Photo'));options.objectType=ucfirst(type);options.objectIDSelector="#photo"+ucfirst(type)+'ID';options.objectHashSelector='#photo'+ucfirst(type)+'Hash';options.photoSelector='#'+type+'Photo';options.idSelector='#'+type+'PhotoID';var objectIDStr=type+'ID';var objectHashStr=type+'Hash'
var scriptData={'type':options.objectType,'Page':options.page};eval("scriptData."+objectIDStr+" = $(options.objectIDSelector).val();");eval("scriptData."+objectHashStr+" = $(options.objectHashSelector).val();");$photoUploader.uploadify({'uploader':baseURL+'SWF/uploadify.swf','script':baseURL+'index.php','fileDataName':'photo','fileDesc':'Please upload an image for your profile','fileExt':'*.jpg; *.jpeg; *.tif; *.tiff; *.gif; *.bmp; *.png','auto':true,'scriptData':scriptData,'buttonImg':baseURL+options.buttonURL,'cancelImg':baseURL+options.cancelButtonURL,'width':options.buttonWidth,'onSelect':function(){$photoUploaderError.hide();$(options.selector+'Queue').addClass(options.queueClasses);},'onError':function(event,queueID,fileObj,errorObj){$photoUploaderError.show();$photoUploaderErrorText.text(errorObj.type+': '+errorObj.info);},'onComplete':function(event,queueID,fileObj,response,data){var photo=$.secureEvalJSON(response);if(photo.errors&&photo.errors.length){$.each(photo.errors,function(index,error){$photoUploaderError.show();$photoUploaderErrorText.text(error);});}else{$photo.parent().find('.loading').fadeIn();$photo.attr('src','');$photo.attr('src',photo.url).load(function(){$(this).parent().find('.loading').fadeOut();});$(options.idSelector).val(photo.id);$photoUploaderError.hide();}}});$('<a/>)').attr('id','cancelUploadify').text('(Not working? Try the alternate uploader)').addClass('small').addClass('top').click(function(){$form.unbind('submit.validDater');$photoUploaderError.hide();$(options.selector+'Uploader').hide();$(options.selector).show();$(this).hide();}).insertAfter($(options.selector+'Uploader'));setTimeout("if($('"+options.selector+"Uploader').children().length == 0){$('#cancelUploadify').click();}",500);}});}});})(jQuery);;(function($){$.extend($.fn,{fancyFormFieldsetFocus:function(options){options=$.extend({fieldsetSelector:'.group',focusClass:'focused',noFocusSelector:'.noFocus',hasFocusIndex:'hasFocus'},options);function _currentTooltipType($element){if(!$element.data('qtip'))return;return $element.qtip('api').currentType;}
function _isPartOfTooltip($element,$tooltip){if($element.is('canvas'))
$element=$element.parent();return $element.parents().index($tooltip)!=-1;}
function _isMyTooltip($fieldset,$element){var $tooltip=_getTooltip($fieldset);if(!$tooltip)return false;if($tooltip[0]===$element[0])return true;return _isPartOfTooltip($element,$tooltip);}
function _isMyFieldset($tooltip,$fieldset){var $otherTooltip=_getTooltip($fieldset);if(!$otherTooltip)return false;return($tooltip[0]===$otherTooltip[0]);}
function _getTooltip($fieldset){if(!$fieldset.data('qtip'))return;return $fieldset.qtip('api').elements.tooltip;}
function _getFieldset($tooltip){if(!$tooltip.data('qtip'))return false;return $tooltip.qtip('api').elements.target;}
function _rollOffTooltip(e){var $target=$(e.relatedTarget);var $fieldset=_getFieldset($(this));if($fieldset&&!_isMyFieldset($(this),$target)&&!_isPartOfTooltip($target,$(this)))
$fieldset.trigger('fieldsetBlur');return true;}
var _focusFn=function(e,cachedEvent){if($(this).is(':hidden')){e.stopPropagation();return;}
if($(this).is('input[type=submit]')){e.stopPropagation();return;}
if($(this).is('input[type=image]')){e.stopPropagation();return;}
if($(this).is(':input')){$(this).data(options.hasFocusIndex,true);$(this).closest('fieldset').addClass(options.focusClass);}
else if($(this).is('fieldset')){$(this).addClass(options.focusClass);if(_currentTooltipType($(this))!='error')
$(this).fancyFormShowMsg({type:'info'});}};var _blurFn=function(e,cachedEvent){if($(this).is(':hidden')){e.stopPropagation();return;}
if($(this).is('input[type=submit]')){e.stopPropagation();return;}
if($(this).is('input[type=image]')){e.stopPropagation();return;}
if(!cachedEvent)cachedEvent={};if($(this).is(':input')){$(this).data(options.hasFocusIndex,false);$(this).closest('fieldset').removeClass(options.focusClass);}
else if($(this).is('fieldset')){if($(this).find(':input').filter(function(){return $(this).data(options.hasFocusIndex);}).length){e.stopPropagation();return;}
if(_isMyTooltip($(this),$(cachedEvent.relatedTarget))){var $tooltip=_getTooltip($(this));if($tooltip)
$tooltip.unbind('mouseout.fancyFoms').bind('mouseout.fancyFoms',_rollOffTooltip);return;}
$(this).removeClass(options.focusClass);if(_currentTooltipType($(this))!='error')
$(this).fancyFormShowMsg({hide:true});}};var _triggerFocus=function(e){$(this).trigger('fieldsetFocus',[e]);}
var _triggerBlur=function(e){$(this).trigger('fieldsetBlur',[e]);}
return this.each(function(){$(this).find(':input, fieldset'+options.fieldsetSelector+':not('+options.noFocusSelector+')').bind('fieldsetFocus',_focusFn).bind('fieldsetBlur',_blurFn);$(this).find(':input').focus(_triggerFocus).blur(_triggerBlur);});}});})(jQuery);;(function($){$.extend($.fn,{fancyFormOtherCheckbox:function(options){options=$.extend({inputSelector:'input.other_input',checkboxSelector:'input.other_checkbox'},options);return this.each(function(){$(this).find(options.inputSelector).bind('focus.otherCheckbox',function(){$checkbox=$(this).prev(':checkbox');if(!$checkbox.is(':checked')){$checkbox.attr('checked',true);}}).bind('blur.otherCheckbox',function(){$checkbox=$(this).prev(':checkbox');if(($(this).val()==''||$(this).val()==$(this).attr('defaultValue'))&&$checkbox.is(':checked')){$checkbox.attr('checked',false);}else{$checkbox.val($(this).val());}});$(this).find(options.checkboxSelector).bind('click.otherCheckbox',function(){$input=$(this).next('input.other_input');if($(this).is(':checked')){$input.focus();}});$(this).submit(function(){$(this).find(options.checkboxSelector).each(function(){if($(this).val().toLowerCase()=='on'){$(this).attr('checked',false).val('');}
$checkbox=$(this);val=$checkbox.val();others=val.split(",");fieldIndex=-1;$.each(others,function(index,value){if(value.toLowerCase()=='on'){return}
name=$checkbox.attr('name');name=name.substring(0,name.indexOf('['));value=$.trim(value);if(!value||!value.length){return;}
if(fieldIndex==-1){fieldIndex=$checkbox.closest('form').find(':checkbox[name^='+name+']').length;}
fieldIndex+=index;$('<input type="hidden" />').attr('name',name+'['+fieldIndex+']').val(value).appendTo($checkbox.closest('form'));});$checkbox.val('');});});});}});})(jQuery);;(function($){$.extend($.fn,{fancyFormShowMsg:function(options){options=$.extend({type:'info',infoClass:'info',errorClass:'error',positionMarker:'display_',hide:false,hideSelector:'.fancyFormMsg',errorVisible:false,infoVisible:false},options);_getMsg=function(fieldName,selector){return $(selector+'[rel='+fieldName+']').html();}
_fieldName=function($field){fieldName=$field.attr('name');if(fieldName&&fieldName.indexOf('[')!=-1){fieldName=fieldName.substring(0,fieldName.indexOf('['));}
return fieldName;}
_getOptions=function(options){var position,style;switch(options.position){case'right':$field=$field.parent().children(':input:visible:last');$field=($field.length?$field:$field.closest('fieldset'));position={target:$field,adjust:{x:-8},corner:{target:'rightMiddle',tooltip:'leftMiddle'}};style={tip:{corner:'leftMiddle'},border:{width:2,radius:5}};break;case'bottom':$field=$field.parent().children(':input:visible:first');$field=($field.length?$field:$field.closest('fieldset'));position={target:$field,adjust:{y:-8},corner:{target:'bottomLeft',tooltip:'topLeft'}}
style={tip:{corner:'topMiddle'},border:{width:2,radius:5}};break;case'right_fieldset':$field=$field.closest('fieldset');position={target:$field,adjust:{x:-8},corner:{target:'rightMiddle',tooltip:'leftMiddle'}}
style={tip:{corner:'leftMiddle'},border:{width:2,radius:5}};break;case'bottom_fieldset':$field=$field.closest('fieldset');position={target:$field,adjust:{y:-8},corner:{target:'bottomLeft',tooltip:'topLeft'}}
style={tip:{corner:'topMiddle'},border:{width:2,radius:5}};}
switch(options.className){case'info':style.name='light'
break;case'error':style.name='error'
break;}
return{position:position,style:style}}
_showMsg=function($form,$field,className,options){var fieldName=_fieldName($field);var msgText=_getMsg(fieldName,'.speechContainer .'+className);if(msgText==""||!msgText)
return false;var $fieldset=$field.closest('fieldset.group');var qTipOptions=_getOptions({position:options.position,className:className,$field:$field});if(!$fieldset.data('qtip')){$fieldset.qtip({content:msgText,show:{effect:{length:0},when:false},hide:{effect:{length:0},when:false},position:qTipOptions.position,style:qTipOptions.style}).qtip('api').elements.tooltip.bind('click',function(){$(this).qtip('api').elements.target.find(':input:first').focus();});}
var qtipAPI=$fieldset.qtip('api');qtipAPI.currentType=className;qtipAPI.updateStyle(qTipOptions.style.name);qtipAPI.updateContent(msgText);qtipAPI.show();};_visible=function($field,type){var $fieldset=$field.closest('fieldset');if(!$fieldset.data('qtip'))return false;var qtipAPI=$fieldset.qtip('api');return qtipAPI.currentType==type;}
_infoVisible=function($field){return _visible($field,options.infoClass);}
_errorVisible=function($field){return _visible($field,options.errorClass);}
if(options.errorVisible)
return _errorVisible($(this));if(options.infoVisible)
return _infoVisible($(this));return this.each(function(){$field=($(this).is(':input')?$(this):$(this).find(':input:first'));$fieldset=($(this).is('fieldset')?$(this):$(this).closest('fieldset'));if($field.is(':hidden'))return;if(options.hide){if(!$fieldset.data('qtip'))return;var qtipAPI=$fieldset.qtip('api').hide();qtipAPI.currentType='';return;}
$info=$fieldset.find('.'+options.infoClass);$error=$fieldset.find('.'+options.errorClass);var $msg=$info;switch(options.type){case'error':msgClass='error';$msg=$error;show=$error.text().length;break;default:case'info':msgClass='info';$msg=$info;show=$info.text().length&&!_errorVisible($(this));break;}
if(show){$.each($msg.parent().attr('class').split(' '),function(i,className){var marker=options.positionMarker;if(className.indexOf(marker)!=-1){position=className.substring(marker.length);return false;}});_showMsg($field.closest('form'),$field,msgClass,{position:position});}});}});})(jQuery);;(function($){$.extend($.fn,{fancyFormScrollToField:function(options){options=$.extend({fieldName:'',scrollToFieldset:true,scrollOffset:0,$target:{}},options);var $target;var $field;if($(this).is(':input'))
$field=$(this);else{$field=$('form :input[name="'+options.fieldName+'"]:first');if(!$field.length)
$field=$('form :input[name^="'+options.fieldName+'["]:first');}
if(!options.$target.length){if(options.scrollToFieldset)
$target=$field.closest('fieldset');else
$target=$field;}else
$target=options.$target;$('html,body').animate({scrollTop:$target.offset().top+options.scrollOffset},500,function(){$(this).stop();$field.focus();});}});})(jQuery);;(function($){$.extend($.fn,{fancyFormGetNameFromLabel:function(options){options=$.extend({},options);var labels=[];var $label={};this.each(function(){if(!$(this).is(':input'))
return;if($(this).attr('id'))
$label=$(this).closest('form').find('label[for="'+$(this).attr('id')+'"]');if(!$label.length)
$label=$(this).closest('fieldset').find('label:first');$textLabel=$label.clone();$textLabel.children().remove();labelText=$textLabel.text().toLowerCase();labelText=$.trim(labelText.replace(/[^a-zA-Z0-9 ]+/g,''));if(labelText.length)
labels.push(labelText);});if(!labels.length)
return"";else if(labels.length==1)
return labels[0];else
return labels;}});})(jQuery);