/*	
	CP Form
	By: Tim Gieseking 

	Fancy form plugin for the Complete Package template
	http://Complete Package.timgweb.com
	
	Version 0.9 
*/
;(function($){$.fn.cpform=function(options){var opts=$.extend({},$.fn.cpform.defaults,options),$cpform=this,$cplabels=$cpform.find('label'),$cptext=$cpform.find('input[type="text"], textarea'),$cpradio=$cpform.find('input[type="radio"]'),$cpcheckbox=$cpform.find('input[type="checkbox"]'),$cpselect=$cpform.find('select');$cpradio.hide();$cpcheckbox.hide();$cpselect.hide();if($cpselect.length>0)
{var cpfHideSelects=function(o){var $uls=$('.cpselect-container ul:visible');$uls.hide();};var cpfCheckClick=function(e){var $target=$(e.target);if($target.parents('.cpselect-container').length===0){cpfHideSelects($target);}};var cpfSelectListener=function(){$(document).mousedown(cpfCheckClick);};if($cpselect.length>0){cpfSelectListener();}
$cpselect.each(function()
{var $thisselect=$(this),$sopts=$thisselect.children('option'),existingClasses=$thisselect.attr('class'),sclass=opts.selectClass;if(existingClasses!=''){sclass+=" "+existingClasses;}
var shtml='<div class="cpselect-container"><div class="'+sclass+'"><span>'+$sopts.filter(':selected').text()+'</span><a href="#"></a></div><ul class="'+opts.selectULClass+'">';$sopts.each(function(){shtml+='<li><a href="#"><span>'+$(this).text()+'</span></a></li>';});shtml+='</ul></div>';var $pseudolist=$(shtml).insertBefore($thisselect),$pseudolistdiv=$pseudolist.find('div.'+opts.selectClass),$pseudolisttext=$pseudolistdiv.children('span'),$pseudolistanchor=$pseudolistdiv.children('a'),$pseudolistul=$pseudolist.find('ul.'+opts.selectULClass),$pseudolistitems=$pseudolistul.find('a');$pseudolistitems.click(function(e){e.preventDefault();var $this=$(this),idx=$pseudolistitems.index($this);$thisselect[0].selectedIndex=idx;$thisselect.trigger('change');$pseudolistul.hide();});$pseudolistdiv.click(function(e){e.preventDefault();$('.cpselect-container ul.'+opts.selectULClass).not($pseudolistul).hide();$pseudolistul.slideToggle('fast');});$thisselect.change(function(){$pseudolisttext.text($sopts.filter(':selected').text());});$pseudolistul.show();var ulheight=0;$pseudolistul.children('li').each(function(){ulheight=ulheight+parseInt($(this).outerHeight());});if($pseudolistul.height()>ulheight&&ulheight>0){$pseudolistul.height(ulheight);}
if(opts.selectAutoWidth===true)
{var maxwidth=0;$pseudolistitems.children('span').each(function(){var $this=$(this),$thisanchor=$this.parent(),thiswidth=parseInt($this.outerWidth())+parseInt($thisanchor.css('paddingLeft'))+parseInt($thisanchor.css('paddingRight'));if(thiswidth>maxwidth){maxwidth=thiswidth;}});if(maxwidth>0)
{maxwidth=maxwidth+parseInt($pseudolistanchor.outerWidth())+'px';$pseudolistdiv.width(maxwidth);$pseudolistul.width(maxwidth);}}
$pseudolistul.hide();});}
$cpradio.each(function()
{var $this=$(this),rclass=opts.radioClass,existingClasses=$this.attr('class');if($this[0].checked){rclass+=" "+opts.radioCheckedClass;}
if(existingClasses!=''){rclass+=" "+existingClasses;}
var $cpradiobtn=$('<a href="#" class="'+rclass+'"></a>').insertBefore($this);$cpradiobtn.click(function(e){e.preventDefault();$this.trigger('click').trigger('change');});$this.next('span').click(function(){$cpradiobtn.trigger('click');});}).change(function()
{var $this=$(this);if($this[0].checked)
{$this.siblings('.'+opts.radioClass).removeClass(opts.radioCheckedClass);$this.prev('.'+opts.radioClass).addClass(opts.radioCheckedClass);}});$cpcheckbox.each(function()
{var $this=$(this),chclass=opts.checkboxClass,existingClasses=$this.attr('class');if($this.is(':checked')){chclass+=" "+opts.checkboxCheckedClass;}
if(existingClasses!=''){chclass+=" "+existingClasses;}
var $cpcheckbtn=$('<a href="#" class="'+chclass+'"></a>').insertBefore($this);$cpcheckbtn.click(function(e){e.preventDefault();$this.trigger('click').trigger('change');});$this.next('span').click(function(){$cpcheckbtn.trigger('click');});}).change(function()
{var $this=$(this);if($this.is(':checked'))
{$this.prev('.'+opts.checkboxClass).addClass(opts.checkboxCheckedClass);}
else
{$this.prev('.'+opts.checkboxClass).removeClass(opts.checkboxCheckedClass);}});$cplabels.click(function()
{var $this=$(this),$cpinput=$this.siblings('input, textarea'),newleft=parseInt($cpinput.outerWidth())-parseInt($this.outerWidth())-parseInt($cpinput.css('paddingRight'));$this.addClass(opts.focusClass);$this.animate({left:newleft},opts.speed,opts.easing);$cpinput.focus();});$cptext.each(function()
{var $this=$(this);if($this.val()!='')
{var $cplabel=$this.siblings('label');$cplabel.hide();}}).focus(function()
{var $cplabel=$(this).siblings('label');if(!$cplabel.hasClass(opts.focusClass)){$cplabel.trigger('click');}}).click(function()
{$(this).trigger('focus');}).blur(function()
{var $this=$(this);if($this.val()==$this[0].defaultValue||$this.val()=='')
{var $cplabel=$this.siblings('label');$cplabel.css({left:'',right:''});$cplabel.removeClass(opts.focusClass);}}).keyup(function()
{var $this=$(this),$cplabel=$this.siblings('label');if($this.val()!=''){$cplabel.fadeOut(opts.speed);}
else{$cplabel.fadeIn(opts.speed);}});$cpform.submit(function()
{var $this=$(this),$errordiv=$('.'+opts.errorClass);$errordiv.hide();$('#'+opts.successMessageID).remove();if(opts.validateSubmit===true)
{var requiredfields=$this.find('.required'),blocksubmit=false;requiredfields.removeClass(opts.highlightRequiredClass);requiredfields.each(function(){var $thisfield=$(this),thisvalue=$thisfield.val();if(thisvalue==''){blocksubmit=true;$thisfield.addClass(opts.highlightRequiredClass);}});if(blocksubmit===true)
{if($errordiv.length===0){$('<div class="'+opts.errorClass+'">'+opts.fillRequiredError+'</div>').insertBefore($this).fadeIn();}
else{$errordiv.fadeIn();}
return false;}}
if(opts.ajaxSubmit===true)
{var $messagediv=$('<div class="'+opts.successMessageClass+'" id="'+opts.successMessageID+'"></div>').insertBefore($this),asoptions={target:'#'+opts.successMessageID,success:ajaxSuccess,resetForm:false};$this.fadeOut('fast',function(){$('<span class="'+opts.pleaseWaitClass+'">'+opts.pleaseWaitText+'</span>').insertBefore($this);$this.ajaxSubmit(asoptions);});return false;}});function ajaxSuccess(responseText,statusText)
{var $message=$('#'+opts.successMessageID);$('.'+opts.pleaseWaitClass).remove();$message.html(responseText).fadeIn();if(statusText!="success")
{$cpform.fadeIn();}}};$.fn.cpform.defaults={speed:200,easing:"swing",focusClass:"hasfocus",ajaxSubmit:true,radioClass:"radiobtn",radioCheckedClass:"radiochecked",checkboxClass:"checkbtn",checkboxCheckedClass:"checkchecked",selectClass:"selectbox",selectULClass:"selectlist",highlightRequiredClass:"highlightrequired",errorClass:"error",successMessageClass:"message",successMessageID:"successmessage",fillRequiredError:"Please complete required fields.",pleaseWaitText:"Please Wait...",pleaseWaitClass:"pleasewait",selectAutoWidth:true,validateSubmit:true};})(jQuery);