/**
 * uniform, a jQuery plugin
 *
 * @author Ethan Liu
 * @version $Id: jquery.uniform.js 130 2009-08-23 12:53:36Z ethan $
 * @copyright Creativecrap.com, Ethan, 17 October, 2008
 **/
(function($){var settings={defaultWidget:"white",widget:"white",confirmMessage:"Are you sure?",confirmTime:5000};var _this,serial=0;$.fn.uniform=function(option){$.extend(settings,option);if(!option||!option.widget){settings.widget=settings.defaultWidget}if(option){if(option.prepend&&$(this).length==1){var f=$(this).attr("id").replace("-","_");eval("settings.pp_"+f+" = "+option.prepend+";")}if(option.callback&&$(this).length==1){var f=$(this).attr("id").replace("-","_");eval("settings.cb_"+f+" = "+option.callback+";")}}_this=this;textbox();combo();dropdown();markup();button();behavior();$(this).find(".focus:first").focus()};$.fn.uniformMsg=function(param){var option={timeout:3000,effect:"fade",fadeSpeed:500};if(param.msg){switch(param.cls){case"error":$.n.error(param.msg,option);break;case"warning":$.n.waring(param.msg,option);break;case"success":default:$.n(param.msg,option);break}}};function getID(){serial++;while($("#uniform-"+serial).length>0){serial++}return"uniform-"+serial}function behavior(){_this.find("input").keydown(function(e){if(e.keyCode==13){if($(this).is(".trigger")){}else{if($(this).nextAll("input.require:first").length>0){$(this).nextAll("input.require:first").focus()}else{$(this).parents("form").submit()}return false}}})}function validForm(form_id){var valid=true;$(form_id+" :text,:password").each(function(){var val=$.trim($(this).val());$(this).val(val);if(val==$(this).attr("rel")){$(this).val("").removeClass("uniform-placeholder")}});$(form_id+" .require").each(function(){$(this).removeClass("uniform-form-invalid");if($(this).val()==""){$(this).addClass("uniform-form-invalid");valid=false}});if(!valid){$(form_id).uniform();return false}$(form_id+" .require-radio-group").each(function(i,item){$(this).removeClass("uniform-form-invalid");if($("input[type=radio]:checked",item).length<1){$(this).addClass("uniform-form-invalid");valid=false}});if(!valid){$(form_id).uniform();return false}$(form_id+" .require-checkbox-group").each(function(i,item){$(this).removeClass("uniform-form-invalid");if($("input[type=checkbox]:checked",item).length<1){$(this).addClass("uniform-form-invalid");valid=false}});if(!valid){$(form_id).uniform();return false}$(form_id+" .email").each(function(i,item){$(this).removeClass("uniform-form-invalid");var foo=$.trim($(item).val());if(foo==""||!isEmail(foo)){$(this).addClass("uniform-form-invalid");valid=false}});if(!valid){$(form_id).uniform()}$(form_id+" .numeric").each(function(i,item){$(this).removeClass("uniform-form-invalid");var foo=$.trim($(item).val());if(foo==""||!isNumeric(foo)){$(this).addClass("uniform-form-invalid");valid=false}});if(!valid){$(form_id).uniform()}$(form_id+" .phone").each(function(i,item){$(this).removeClass("uniform-form-invalid");var foo=$.trim($(item).val());if(foo==""||!isPhone(foo)){$(this).addClass("uniform-form-invalid");valid=false}});if(!valid){$(form_id).uniform()}return valid}function isEmail(mail){var mail=$.trim(mail);return(mail.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/)!=-1)}function isNumeric(str){var str=$.trim(str);return(str.search(/^[0-9]+$/)!=-1)}function isPhone(str){var str=$.trim(str);return(str.search(/^[-#+()0-9]+$/)!=-1)}function markup(){_this.find(".markup").each(function(){$(this).markItUp(mySettings);$(this).removeClass("markup")})}function dropdown(){var _id=getID();var tpl='<div id="%(id)s" class="uniform-dropdown-wrapper">';tpl+='<span class="inner"><input type="text" name="%(name)s" class="live-query" style="%(style)s" readonly></span><span class="trigger">&nbsp;</span>';tpl+='<div class="panel hide">';tpl+='<div class="options"></div>';tpl+="</div></div>";var itemtpl='<div class="item list-item" rel="%(rel)s"><span class="name">%(name)s</span></div>';_this.find("select:visible").each(function(){if(!$(this).is(".isDropdown")){var w=$(this).css("width");var id=$(this).attr("name")?"dd-"+$(this).attr("name"):getID();var dd=$(tpl.replace("%(id)s",_id).replace("%(name)s","dummy_"+$(this).attr("name")).replace("%(style)s",$(this).attr("style")));dd.find("span.trigger").hover(function(){$(this).addClass("pressed")},function(){$(this).removeClass("pressed")});dd.find("span.trigger").click(function(){dd.find("div.panel").toggleClass("hide")});if(jQuery.browser.msie){dd.find("div.panel").addClass("ie")}dd.find("input:text").click(function(){dd.find("div.panel").toggleClass("hide")});$(this).find("option").each(function(){var item=$(itemtpl.replace("%(rel)s",$(this).val()).replace("%(name)s",$(this).text()));item.bind("mouseenter mouseleave",function(){$(this).toggleClass("hover")});item.click(function(){$("div.item[rel='1']").parent("div").find(".item").removeClass("active");$(this).addClass("active");dd.find("input:text").val($(this).find("span").text());dd.find("div.panel").toggleClass("hide");$("#"+id).find("select").val($(this).attr("rel"));$("#"+id).find("select").trigger("change")});dd.find("div.panel div.options").append(item)});dd.find("input:text").val($(this).find("option:selected").text());$(this).addClass("isDropdown");$(this).before(dd).wrap('<div id="'+id+'" style="position:absolute;top:-9999px;"></div>');$("#"+_id).find(".panel").css("min-width",parseInt(w)+30)}})}function combo(){var tpl='<div id="%(id)s" class="uniform-dropdown-wrapper combo">';tpl+='<span class="inner"><input type="text" id="%(id2)s" name="%(name)s" size="%(size)d" class="live-query" value=""></span><span class="trigger">&nbsp;</span>';tpl+='<div class="panel hide">';tpl+='<div class="options"><div class="item list-item"><span class="name"></span></div></div>';tpl+="</div></div>";_this.find(" input:text.combo").each(function(){var id=$(this).attr("id")?$(this).attr("id"):getID();var combo=$(tpl.replace("%(id)s",getID()).replace("%(id2)s",id).replace("%(name)s",$(this).attr("name")).replace("%(size)d",$(this).attr("size")));combo.find("input:text").attr("rel",$(this).attr("rel"));combo.find("span.trigger").bind("mouseenter mouseleave",function(){$(this).toggleClass("pressed")});if(jQuery.browser.msie){combo.find("div.panel").addClass("ie")}combo.find("span.trigger").click(function(){combo.find("div.panel").toggleClass("hide")});$(this).replaceWith(combo)});textbox()}function textbox(){_this.find(":text,:password").each(function(){$(this).addClass("input-text");var val=$.trim($(this).val());var rel=$(this).attr("rel");if(rel&&(val==""||val==rel)){$(this).val(rel).removeClass("uniform-placeholder").addClass("uniform-placeholder")}}).bind("focus",function(){var val=$.trim($(this).val());var rel=$(this).attr("rel");if(rel&&(val==""||val==rel)){$(this).val("").removeClass("uniform-placeholder")}}).bind("blur",function(){var val=$.trim($(this).val());var rel=$(this).attr("rel");if(rel&&(val==""||val==rel)){$(this).val(rel).removeClass("uniform-placeholder").addClass("uniform-placeholder")}});_this.find(".inline-edit-box").bind("dblclick",function(e){$(this).find(".edit-box").toggleClass("uniform-hide");e.stopPropagation()})}function button(){var tpl='<div class="button %(cls)s" id="%(id)s" rel="%(rel)s"><span class="button-inner"><span class="label">%(label)s</span></span></div>';_this.find("button").each(function(){if($(this).is(".confirm")){var cls=($(this).is(".white")||$(this).is(".blue")||$(this).is(".capsule"))?$(this).attr("class"):settings.widget+" "+$(this).attr("class");var id=$(this).attr("id")?$(this).attr("id"):getID();var rel=$.trim($(this).attr("rel"));var button=$('<div class="uniform-button-wrapper"></div>').attr("id",getID());var button1=$(tpl.replace("%(cls)s",cls).replace("%(id)s",id+"_confirm").replace("%(rel)s",rel).replace("%(label)s",$(this).html()));button1.removeClass("confirm");var msg=$(this).attr("rel")?$(this).attr("rel"):settings.confirmMessage;var button2=$(tpl.replace("%(cls)s",cls).replace("%(id)s",id).replace("%(rel)s",rel).replace("%(label)s",msg)).css("display","none");button2.removeClass("confirm");button.append(button1,button2);button1.bind("click",function(){var t=$(this);t.hide();t.parent().find("#"+id).show();var timer=setTimeout(function(){t.parent().find("#"+id).hide();t.show()},settings.confirmTime)});button1.bind("mouseenter mouseleave",function(){$(this).toggleClass("pressed")});button2.bind("mouseenter mouseleave",function(){$(this).toggleClass("pressed")})}else{var cls=($(this).is(".white")||$(this).is(".blue")||$(this).is(".capsule"))?$(this).attr("class"):settings.widget+" "+$(this).attr("class");var id=$(this).attr("id")?$(this).attr("id"):getID();var rel=$.trim($(this).attr("rel"));var button=$('<div class="uniform-button-wrapper"></div>').attr("id",getID());var button1=$(tpl.replace("%(cls)s",cls).replace("%(id)s",id).replace("%(rel)s",rel).replace("%(label)s",$(this).html()));if($(this).is(".submit")||$(this).is(".submit2")){var form=$(this).parents("form");if(form.length==1){form.submit(sendForm);button1.bind("click",function(){form.submit()})}button1.removeClass("submit");button1.removeClass("submit2");button1.addClass("uniform-button-submit")}if(!$(this).is(".disable")){button1.bind("mouseenter mouseleave",function(){$(this).toggleClass("pressed")})}button.append(button1)}$(this).replaceWith(button)})}function sendForm(){var form=$(this);if(form.is(".normal-form")){return true}form.uniformMsg({msg:""});if(!validForm("#"+form.attr("id"))){return false}var bt=form.find(".uniform-button-submit");if(bt.is(".disable")){form.uniformMsg({msg:t("Please wait...")});return false}var f=eval("settings.pp_"+form.attr("id").replace("-","_"));if(f){var result=f();if(result==false){return false}}bt.removeClass("disable").addClass("disable");form.ajaxSubmit({type:"post",dataType:"json",clearForm:false,resetForm:false,success:function(result,status){if(result.success){form.uniformMsg({msg:result.error,cls:"success"});form.find(".uniform-button-submit").removeClass("disable")}else{form.uniformMsg({msg:result.error,cls:"error"});form.find(".uniform-button-submit").removeClass("disable")}var f=eval("settings.cb_"+form.attr("id").replace("-","_"));if(f){f(result,status)}}});return false}})(jQuery);