Fix jquery Validation issue on setup

This commit is contained in:
Romain Neutron
2013-09-25 17:24:40 +02:00
parent 7a68ebbbb2
commit f20c4cdddf
174 changed files with 33796 additions and 1 deletions

View File

@@ -0,0 +1,412 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>jQuery accordion form with validation</title>
<link rel="stylesheet" href="../assets/demo_blue.css" type="text/css" />
<script type="text/javascript" src="../../lib/jquery.js"></script>
<script type="text/javascript" src="../../jquery.validate.js"></script>
<script type="text/javascript" src="js/jquery.maskedinput-1.0.js"></script>
<script type="text/javascript" src="js/ui.core.js"></script>
<script type="text/javascript" src="js/ui.accordion.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#recordClientPhone").mask("(999) 999-9999");
$("#recordClientPhoneAlt").mask("(999) 999-9999");
$("#recordClientZip").mask("99999");
$("#recordPropertyZip").mask("99999");
$("#recordPurchaseZip").mask("99999");
// add * to required field labels
$('label.required').append('&nbsp;<strong>*</strong>&nbsp;');
// accordion functions
var accordion = $("#stepForm").accordion();
var current = 0;
$.validator.addMethod("pageRequired", function(value, element) {
var $element = $(element)
function match(index) {
return current == index && $(element).parents("#sf" + (index + 1)).length;
}
if (match(0) || match(1) || match(2)) {
return !this.optional(element);
}
return "dependency-mismatch";
}, $.validator.messages.required)
var v = $("#cmaForm").validate({
errorClass: "warning",
onkeyup: false,
onblur: false,
submitHandler: function() {
alert("Submitted, thanks!");
}
});
// back buttons do not need to run validation
$("#sf2 .prevbutton").click(function(){
accordion.accordion("activate", 0);
current = 0;
});
$("#sf3 .prevbutton").click(function(){
accordion.accordion("activate", 1);
current = 1;
});
// these buttons all run the validation, overridden by specific targets above
$(".open2").click(function() {
if (v.form()) {
accordion.accordion("activate", 2);
current = 2;
}
});
$(".open1").click(function() {
if (v.form()) {
accordion.accordion("activate", 1);
current = 1;
}
});
$(".open0").click(function() {
if (v.form()) {
accordion.accordion("activate", 0);
current = 0;
}
});
});
</script>
<link rel="stylesheet" type="text/css" media="screen" href="style.css" />
</head>
<body>
<div id="wrap">
<div id="main">
<h1 class="top bottom"><span>Help me</span> Buy and Sell a House</h1>
<h2>This form is quick &amp; easy to complete - in only 3 steps!</h2>
<form name="cmaForm" id="cmaForm" method="post">
<input type="hidden" name="recordRequestPrimaryServiceID" id="recordRequestPrimaryServiceID" value="100" />
<input type="hidden" name="recordClientServices" id="recordClientServices" value="1,3" />
<ul id="stepForm" class="ui-accordion-container">
<li id="sf1"><a href='#' class="ui-accordion-link"> </a>
<div>
<fieldset><legend> Step 1 of 3 </legend>
<div class="requiredNotice">*Required Field</div>
<h3 class="stepHeader">Tell us about the property you're buying</h3>
<label for="recordPurchaseMetRealtor" class="input required">Are you currently working with a<br />
real estate agent? </label> &nbsp;&nbsp;No: <input name="recordPurchaseMetRealtor" type="radio" checked="checked" class="inputclass" value="0" /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Yes: <input name="recordPurchaseMetRealtor" type="radio" class="inputclass pageRequired" value="1" title="Please choose Yes or No" />
<div class="formspacer"></div>
<label for="recordPurchaseTimeFrameID" class="input required">When would you like to move?</label> <select name="recordPurchaseTimeFrameID" id="recordPurchaseTimeFrameID" class="inputclass pageRequired" title="Select a Time Frame">
<option value="">-Select-</option>
<option value="1">Less than 3 months</option>
<option value="2">3-6 months</option>
<option value="3">6-9 months</option>
<option value="4">9-12 months</option>
<option value="5">Over 12 months</option>
</select> <br />
<label for="recordPurchasePriceRangeID" class="input required">Purchase price range:</label> <select name="recordPurchasePriceRangeID" id="recordPurchasePriceRangeID" class="inputclass pageRequired" title="Select a Price Range">
<option value="">-Select-</option>
<option value="1"></option>
<option value="2">$75,000 - $100,000</option>
<option value="3">$100,000 - $125,000</option>
<option value="4">$125,000 - $150,000</option>
<option value="5">$150,000 - $200,000</option>
<option value="6">$200,000 - $250,000</option>
<option value="7">$250,000 - $300,000</option>
<option value="8">$300,000 - $350,000</option>
<option value="9">$350,000 - $400,000</option>
<option value="10">$400,000 - $500,000</option>
<option value="11">$500,000 - $700,000</option>
<option value="12">$700,000 - $900,000</option>
<option value="13">> $900,000</option>
</select> <br />
<label for="recordPurchaseState" class="input required">State:</label> <select name="recordPurchaseState" id="recordPurchaseState" class="inputclass pageRequired" title="Select a State">
<option value="">-Select-</option>
<option value="AL">Alabama</option>
<option value="AK">Alaska</option>
<option value="AZ">Arizona</option>
<option value="AR">Arkansas</option>
<option value="CA">California</option>
<option value="CO">Colorado</option>
<option value="CT">Connecticut</option>
<option value="DE">Delaware</option>
<option value="DC">Dist of Columbia</option>
<option value="FL">Florida</option>
<option value="GA">Georgia</option>
<option value="HI">Hawaii</option>
<option value="ID">Idaho</option>
<option value="IL">Illinois</option>
<option value="IN">Indiana</option>
<option value="IA">Iowa</option>
<option value="KS">Kansas</option>
<option value="KY">Kentucky</option>
<option value="LA">Louisiana</option>
<option value="ME">Maine</option>
<option value="MD">Maryland</option>
<option value="MA">Massachusetts</option>
<option value="MI">Michigan</option>
<option value="MN">Minnesota</option>
<option value="MS">Mississippi</option>
<option value="MO">Missouri</option>
<option value="MT">Montana</option>
<option value="NE">Nebraska</option>
<option value="NV">Nevada</option>
<option value="NH">New Hampshire</option>
<option value="NJ">New Jersey</option>
<option value="NM">New Mexico</option>
<option value="NY">New York</option>
<option value="NC">North Carolina</option>
<option value="ND">North Dakota</option>
<option value="OH">Ohio</option>
<option value="OK">Oklahoma</option>
<option value="OR">Oregon</option>
<option value="PA" selected="selected">Pennsylvania</option>
<option value="RI">Rhode Island</option>
<option value="SC">South Carolina</option>
<option value="SD">South Dakota</option>
<option value="TN">Tennessee</option>
<option value="TX">Texas</option>
<option value="UT">Utah</option>
<option value="VT">Vermont</option>
<option value="VA">Virginia</option>
<option value="WA">Washington</option>
<option value="WV">West Virginia</option>
<option value="WI">Wisconsin</option>
<option value="WY">Wyoming</option>
</select> <br />
<label for="recordPurchasePropertyTypeID" class="input">Desired property type:</label> <select name="recordPurchasePropertyTypeID" id="recordPurchasePropertyTypeID" class="inputclass" title="Select a Property Type">
<option value="">-Select-</option>
<option value="1">Single Family Detached</option>
<option value="2">Condo</option>
<option value="3">Townhouse</option>
<option value="4">Rental</option>
<option value="5">Multi-Family</option>
<option value="6">Vacation Home</option>
<option value="7">Other</option>
</select> <br />
<div class="buttonWrapper"><input name="formNext1" type="button" class="open1 nextbutton" value="Next" alt="Next" title="Next" /></div>
</fieldset>
</div>
</li>
<li id="sf2">
<a href='#' class="ui-accordion-link">
</a>
<div>
<fieldset><legend> Step 2 of 3 </legend>
<div class="requiredNotice">*Required Field</div>
<h3 class="stepHeader">Tell us about the property you're selling</h3>
<label for="recordClientTimeFrameID" class="input required">When would you like to sell?</label> <select name="recordClientTimeFrameID" id="recordClientTimeFrameID" class="inputclass pageRequired" title="Select a Time Frame">
<option value="">-Select-</option>
<option value="1">Less than 3 months</option>
<option value="2">3-6 months</option>
<option value="3">6-9 months</option>
<option value="4">9-12 months</option>
<option value="5">Over 12 months</option>
</select> <br />
<label for="recordClientHomeTypeID" class="input required">Type of property you are selling:</label> <select name="recordClientHomeTypeID" id="recordClientHomeTypeID" class="inputclass pageRequired" title="Select a Property Type">
<option value="">-Select-</option>
<option value="1">Single Family Detached</option>
<option value="2">Condo</option>
<option value="3">Townhouse</option>
<option value="4">Rental</option>
<option value="5">Multi-Family</option>
<option value="6">Vacation Home</option>
<option value="7">Other</option>
</select> <br />
<label for="recordPropertyAddress1" class="input required">Property Street Address:</label> <input name="recordPropertyAddress1" id="recordPropertyAddress1" class="inputclass pageRequired" title="Street Address is required" maxlength="254" onblur="recordClientAddress1.value = this.value" /><br />
<label for="recordPropertyAddress2" class="input">Address (2):</label> <input name="recordPropertyAddress2" id="recordPropertyAddress2" class="inputclass" maxlength="254" onblur="recordClientAddress2.value = this.value" /><br />
<label for="recordPropertyCity" class="input required">City:</label> <input name="recordPropertyCity" id="recordPropertyCity" class="inputclass pageRequired" title="City is required" maxlength="254" onblur="recordClientCity.value = this.value" /><br />
<label for="recordPropertyState" class="input required">State:</label> <select name="recordPropertyState" id="recordPropertyState" class="inputclass pageRequired" title="Select a State" onchange="recordClientState.value = this.value">
<option value="">-Select-</option>
<option value="AL">Alabama</option>
<option value="AK">Alaska</option>
<option value="AZ">Arizona</option>
<option value="AR">Arkansas</option>
<option value="CA">California</option>
<option value="CO">Colorado</option>
<option value="CT">Connecticut</option>
<option value="DE">Delaware</option>
<option value="DC">Dist of Columbia</option>
<option value="FL">Florida</option>
<option value="GA">Georgia</option>
<option value="HI">Hawaii</option>
<option value="ID">Idaho</option>
<option value="IL">Illinois</option>
<option value="IN">Indiana</option>
<option value="IA">Iowa</option>
<option value="KS">Kansas</option>
<option value="KY">Kentucky</option>
<option value="LA">Louisiana</option>
<option value="ME">Maine</option>
<option value="MD">Maryland</option>
<option value="MA">Massachusetts</option>
<option value="MI">Michigan</option>
<option value="MN">Minnesota</option>
<option value="MS">Mississippi</option>
<option value="MO">Missouri</option>
<option value="MT">Montana</option>
<option value="NE">Nebraska</option>
<option value="NV">Nevada</option>
<option value="NH">New Hampshire</option>
<option value="NJ">New Jersey</option>
<option value="NM">New Mexico</option>
<option value="NY">New York</option>
<option value="NC">North Carolina</option>
<option value="ND">North Dakota</option>
<option value="OH">Ohio</option>
<option value="OK">Oklahoma</option>
<option value="OR">Oregon</option>
<option value="PA" selected="selected">Pennsylvania</option>
<option value="RI">Rhode Island</option>
<option value="SC">South Carolina</option>
<option value="SD">South Dakota</option>
<option value="TN">Tennessee</option>
<option value="TX">Texas</option>
<option value="UT">Utah</option>
<option value="VT">Vermont</option>
<option value="VA">Virginia</option>
<option value="WA">Washington</option>
<option value="WV">West Virginia</option>
<option value="WI">Wisconsin</option>
<option value="WY">Wyoming</option>
</select> <br />
<label for="recordPropertyZip" class="input required">Zip:</label> <input name="recordPropertyZip" id="recordPropertyZip" class="inputclass pageRequired" title="Zip Code is required" maxlength="254" onblur="recordClientZip.value = this.value" /><br />
<label for="recordClientPropertyValueID" class="input required">Estimated Market Value:</label> <select name="recordClientPropertyValueID" id="recordClientPropertyValueID" class="inputclass pageRequired" title="Select a Price Range">
<option value="">-Select-</option>
<option value="1">Less Than $75K</option>
<option value="2">$75-$100K</option>
<option value="3">$100-$125K</option>
<option value="4">$125-$150K</option>
<option value="5">$150-$200K</option>
<option value="6">$200-$250K</option>
<option value="7">$250-$300K</option>
<option value="8">$300-$350K</option>
<option value="9">$350-$400K</option>
<option value="10">$400-$500K</option>
<option value="11">$500-$700K</option>
<option value="12">$700-$900K</option>
<option value="13">Over $900K</option>
</select> <br />
<label for="recordPropertyBedroomsID" class="input">Bedrooms:</label> <select name="recordPropertyBedroomsID" id="recordPropertyBedroomsID" class="inputclass">
<option value="">-Select-</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5+</option>
</select> <br />
<label for="recordPropertyBathroomsId" class="input">Bathrooms:</label> <select name="recordPropertyBathroomsId" id="recordPropertyBathroomsId" class="inputclass">
<option value="">-Select-</option>
<option value="1">1</option>
<option value="2">1.5</option>
<option value="3">2</option>
<option value="4">2.5</option>
<option value="5">3</option>
<option value="6">3.5</option>
<option value="7">4+</option>
</select> <br />
<label for="recordPropertyAgeId" class="input">Approx. Age of Home:</label> <select name="recordPropertyAgeId" id="recordPropertyAgeId" class="inputclass">
<option value="">-Select-</option>
<option value="1">Less Than 1 year</option>
<option value="2">1-5 years</option>
<option value="3">6-10 years</option>
<option value="4">11-15 years</option>
<option value="5">More than 15 years</option>
</select> <br />
<label for="recordPropertySqFt" class="input">Approx. Square Footage:</label> <input name="recordPropertySqFt" id="recordPropertySqFt" class="inputclass" maxlength="254" /><br />
<div class="buttonWrapper"><input name="formBack0" type="button" class="open0 prevbutton" value="Back" alt="Back" title="Back" /> <input name="formNext2" type="button" class="open2 nextbutton" value="Next" alt="Next" title="Next" /></div>
</fieldset>
</div>
</li>
<li id="sf3">
<a href='#' class="ui-accordion-link">
</a>
<div>
<fieldset><legend> Step 3 of 3 </legend>
<div class="requiredNotice">*Required Field</div>
<h3 class="stepHeader">Tell us about yourself</h3>
<label for="recordClientNameFirst" class="input required">First Name:</label> <input name="recordClientNameFirst" id="recordClientNameFirst" class="inputclass pageRequired" title="First Name is required" maxlength="254" /> <br />
<label for="recordClientNameLast" class="input required">Last Name:</label> <input name="recordClientNameLast" id="recordClientNameLast" class="inputclass pageRequired" maxlength="254" title="Last Name is required" /> <br />
<label for="recordClientAddress1" class="input required">Current Address:</label> <input name="recordClientAddress1" id="recordClientAddress1" class="inputclass pageRequired" maxlength="254" title="Address is required" /> <br />
<label for="recordClientAddress2" class="input">Address (2):</label> <input name="recordClientAddress2" id="recordClientAddress2" class="inputclass" maxlength="254" /> <br />
<label for="recordClientCity" class="input required">City:</label> <input name="recordClientCity" id="recordClientCity" class="inputclass pageRequired" maxlength="254" title="City is required" /> <br />
<label for="recordClientState" class="input required">State:</label> <select name="recordClientState" id="recordClientState" class="inputclass pageRequired" title="Select a State">
<option value="">-Select-</option>
<option value="AL">Alabama</option>
<option value="AK">Alaska</option>
<option value="AZ">Arizona</option>
<option value="AR">Arkansas</option>
<option value="CA">California</option>
<option value="CO">Colorado</option>
<option value="CT">Connecticut</option>
<option value="DE">Delaware</option>
<option value="DC">Dist of Columbia</option>
<option value="FL">Florida</option>
<option value="GA">Georgia</option>
<option value="HI">Hawaii</option>
<option value="ID">Idaho</option>
<option value="IL">Illinois</option>
<option value="IN">Indiana</option>
<option value="IA">Iowa</option>
<option value="KS">Kansas</option>
<option value="KY">Kentucky</option>
<option value="LA">Louisiana</option>
<option value="ME">Maine</option>
<option value="MD">Maryland</option>
<option value="MA">Massachusetts</option>
<option value="MI">Michigan</option>
<option value="MN">Minnesota</option>
<option value="MS">Mississippi</option>
<option value="MO">Missouri</option>
<option value="MT">Montana</option>
<option value="NE">Nebraska</option>
<option value="NV">Nevada</option>
<option value="NH">New Hampshire</option>
<option value="NJ">New Jersey</option>
<option value="NM">New Mexico</option>
<option value="NY">New York</option>
<option value="NC">North Carolina</option>
<option value="ND">North Dakota</option>
<option value="OH">Ohio</option>
<option value="OK">Oklahoma</option>
<option value="OR">Oregon</option>
<option value="PA" selected="selected">Pennsylvania</option>
<option value="RI">Rhode Island</option>
<option value="SC">South Carolina</option>
<option value="SD">South Dakota</option>
<option value="TN">Tennessee</option>
<option value="TX">Texas</option>
<option value="UT">Utah</option>
<option value="VT">Vermont</option>
<option value="VA">Virginia</option>
<option value="WA">Washington</option>
<option value="WV">West Virginia</option>
<option value="WI">Wisconsin</option>
<option value="WY">Wyoming</option>
</select> <br />
<label for="recordClientZip" class="input required">Zip:</label> <input name="recordClientZip" id="recordClientZip" class="inputclass pageRequired" maxlength="12" title="Zip Code is required" /> <br />
<label for="recordClientPhone" class="input required">Phone Number:</label> <input name="recordClientPhone" id="recordClientPhone" class="inputclass pageRequired" maxlength="254" title="Phone Number is required" /> <br />
<label for="recordClientPhoneAlt" class="input">Alternate Number:</label> <input name="recordClientPhoneAlt" id="recordClientPhoneAlt" class="inputclass" maxlength="254" /> <br />
<label for="recordClientEmail" class="input required">Email Address:</label> <input name="recordClientEmail" id="recordClientEmail" class="inputclass pageRequired email" maxlength="254" title="Email address is required" /> <br />
<label for="recordClientEmail1" class="input required">Confirm Email:</label> <input name="recordClientEmail1" id="recordClientEmail1" class="inputclass pageRequired" equalTo:"'#recordClientEmail" maxlength="254" title="Please confirm your email address" /> <br />
<br />
<p class="formDisclaimer">This is a sample form, no information is sent anywhere.</p>
<div class="buttonWrapper"><input name="formBack1" type="button" class="open1 prevbutton" value="Back" alt="Back" title="Back" /> <input name="submit" type="submit" id="submit" value="Submit" class="submitbutton" alt="Submit" title="Submit"></div>
</fieldset>
</div>
</li>
</ul>
</form>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,246 @@
/*
* Copyright (c) 2007 Josh Bush (digitalbush.com)
*
* Permission is hereby granted, free of charge, to any person
* obtaining a copy of this software and associated documentation
* files (the "Software"), to deal in the Software without
* restriction, including without limitation the rights to use,
* copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following
* conditions:
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
* OTHER DEALINGS IN THE SOFTWARE.
*/
/*
* Version: 1.0
* Release: 2007-07-25
*/
(function($) {
//Helper Functions for Caret positioning
function getCaretPosition(ctl){
var res = {begin: 0, end: 0 };
if (ctl.setSelectionRange){
res.begin = ctl.selectionStart;
res.end = ctl.selectionEnd;
}else if (document.selection && document.selection.createRange){
var range = document.selection.createRange();
res.begin = 0 - range.duplicate().moveStart('character', -100000);
res.end = res.begin + range.text.length;
}
return res;
};
function setCaretPosition(ctl, pos){
if(ctl.setSelectionRange){
ctl.focus();
ctl.setSelectionRange(pos,pos);
}else if (ctl.createTextRange){
var range = ctl.createTextRange();
range.collapse(true);
range.moveEnd('character', pos);
range.moveStart('character', pos);
range.select();
}
};
//Predefined character definitions
var charMap={
'9':"[0-9]",
'a':"[A-Za-z]",
'*':"[A-Za-z0-9]"
};
//Helper method to inject character definitions
$.mask={
addPlaceholder : function(c,r){
charMap[c]=r;
}
};
//Main Method
$.fn.mask = function(mask,settings) {
settings = $.extend({
placeholder: "_",
completed: null
}, settings);
//Build Regex for format validation
var reString="^";
for(var i=0;i<mask.length;i++)
reString+=(charMap[mask.charAt(i)] || ("\\"+mask.charAt(i)));
reString+="$";
var re = new RegExp(reString);
return this.each(function(){
var input=$(this);
var buffer=new Array(mask.length);
var locked=new Array(mask.length);
//Build buffer layout from mask
for(var i=0;i<mask.length;i++){
locked[i]=charMap[mask.charAt(i)]==null;
buffer[i]=locked[i]?mask.charAt(i):settings.placeholder;
}
/*Event Bindings*/
input.focus(function(){
checkVal();
writeBuffer();
setCaretPosition(this,0);
});
input.blur(checkVal);
//Paste events for IE and Mozilla thanks to Kristinn Sigmundsson
if ($.browser.msie)
this.onpaste= function(){setTimeout(checkVal,0);};
else if ($.browser.mozilla)
this.addEventListener('input',checkVal,false);
var ignore=false; //Variable for ignoring control keys
input.keydown(function(e){
var pos=getCaretPosition(this);
var k = e.keyCode;
ignore=(k < 16 || (k > 16 && k < 32 ) || (k > 32 && k < 41));
//delete selection before proceeding
if((pos.begin-pos.end)!=0 && (!ignore || k==8 || k==46)){
clearBuffer(pos.begin,pos.end);
}
//backspace and delete get special treatment
if(k==8){//backspace
while(pos.begin-->=0){
if(!locked[pos.begin]){
buffer[pos.begin]=settings.placeholder;
if($.browser.opera){
//Opera won't let you cancel the backspace, so we'll let it backspace over a dummy character.
writeBuffer(pos.begin);
setCaretPosition(this,pos.begin+1);
}else{
writeBuffer();
setCaretPosition(this,pos.begin);
}
return false;
}
}
}else if(k==46){//delete
clearBuffer(pos.begin,pos.begin+1);
writeBuffer();
setCaretPosition(this,pos.begin);
return false;
}else if (k==27){
clearBuffer(0,mask.length);
writeBuffer();
setCaretPosition(this,0);
return false;
}
});
input.keypress(function(e){
if(ignore){
ignore=false;
return;
}
e=e||window.event;
var k=e.charCode||e.keyCode||e.which;
var pos=getCaretPosition(this);
var caretPos=pos.begin;
if(e.ctrlKey || e.altKey){//Ignore
return true;
}else if ((k>=41 && k<=122) ||k==32 || k>186){//typeable characters
while(pos.begin<mask.length){
var reString=charMap[mask.charAt(pos.begin)];
var match;
if(reString){
var reChar=new RegExp(reString);
match=String.fromCharCode(k).match(reChar);
}else{//we're on a mask char, go forward and try again
pos.begin+=1;
pos.end=pos.begin;
caretPos+=1;
continue;
}
if(match)
buffer[pos.begin]=String.fromCharCode(k);
else
return false;//reject char
while(++caretPos<mask.length){//seek forward to next typable position
if(!locked[caretPos])
break;
}
break;
}
}else
return false;
writeBuffer();
if(settings.completed && caretPos>=buffer.length)
settings.completed.call(input);
else
setCaretPosition(this,caretPos);
return false;
});
/*Helper Methods*/
function clearBuffer(start,end){
for(var i=start;i<end;i++){
if(!locked[i])
buffer[i]=settings.placeholder;
}
};
function writeBuffer(pos){
var s="";
for(var i=0;i<mask.length;i++){
s+=buffer[i];
if(i==pos)
s+=settings.placeholder;
}
input.val(s);
return s;
};
function checkVal(){
//try to place charcters where they belong
var test=input.val();
var pos=0;
for(var i=0;i<mask.length;i++){
if(!locked[i]){
while(pos++<test.length){
//Regex Test each char here.
var reChar=new RegExp(charMap[mask.charAt(i)]);
if(test.charAt(pos-1).match(reChar)){
buffer[i]=test.charAt(pos-1);
break;
}
}
}
}
var s=writeBuffer();
if(!s.match(re)){
input.val("");
clearBuffer(0,mask.length);
}
};
});
};
})(jQuery);

View File

@@ -0,0 +1,477 @@
/*
* jQuery UI Accordion 1.7.1
*
* Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT (MIT-LICENSE.txt)
* and GPL (GPL-LICENSE.txt) licenses.
*
* http://docs.jquery.com/UI/Accordion
*
* Depends:
* ui.core.js
*/
(function($) {
$.widget("ui.accordion", {
_init: function() {
var o = this.options, self = this;
this.running = 0;
// if the user set the alwaysOpen option on init
// then we need to set the collapsible option
// if they set both on init, collapsible will take priority
if (o.collapsible == $.ui.accordion.defaults.collapsible &&
o.alwaysOpen != $.ui.accordion.defaults.alwaysOpen) {
o.collapsible = !o.alwaysOpen;
}
if ( o.navigation ) {
var current = this.element.find("a").filter(o.navigationFilter);
if ( current.length ) {
if ( current.filter(o.header).length ) {
this.active = current;
} else {
this.active = current.parent().parent().prev();
current.addClass("ui-accordion-content-active");
}
}
}
this.element.addClass("ui-accordion ui-widget ui-helper-reset");
// in lack of child-selectors in CSS we need to mark top-LIs in a UL-accordion for some IE-fix
if (this.element[0].nodeName == "UL") {
this.element.children("li").addClass("ui-accordion-li-fix");
}
this.headers = this.element.find(o.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all")
.bind("mouseenter.accordion", function(){ $(this).addClass('ui-state-hover'); })
.bind("mouseleave.accordion", function(){ $(this).removeClass('ui-state-hover'); })
.bind("focus.accordion", function(){ $(this).addClass('ui-state-focus'); })
.bind("blur.accordion", function(){ $(this).removeClass('ui-state-focus'); });
this.headers
.next()
.addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom");
this.active = this._findActive(this.active || o.active).toggleClass("ui-state-default").toggleClass("ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top");
this.active.next().addClass('ui-accordion-content-active');
//Append icon elements
$("<span/>").addClass("ui-icon " + o.icons.header).prependTo(this.headers);
this.active.find(".ui-icon").toggleClass(o.icons.header).toggleClass(o.icons.headerSelected);
// IE7-/Win - Extra vertical space in lists fixed
if ($.browser.msie) {
this.element.find('a').css('zoom', '1');
}
this.resize();
//ARIA
this.element.attr('role','tablist');
this.headers
.attr('role','tab')
.bind('keydown', function(event) { return self._keydown(event); })
.next()
.attr('role','tabpanel');
this.headers
.not(this.active || "")
.attr('aria-expanded','false')
.attr("tabIndex", "-1")
.next()
.hide();
// make sure at least one header is in the tab order
if (!this.active.length) {
this.headers.eq(0).attr('tabIndex','0');
} else {
this.active
.attr('aria-expanded','true')
.attr('tabIndex', '0');
}
// only need links in taborder for Safari
if (!$.browser.safari)
this.headers.find('a').attr('tabIndex','-1');
if (o.event) {
this.headers.bind((o.event) + ".accordion", function(event) { return self._clickHandler.call(self, event, this); });
}
},
destroy: function() {
var o = this.options;
this.element
.removeClass("ui-accordion ui-widget ui-helper-reset")
.removeAttr("role")
.unbind('.accordion')
.removeData('accordion');
this.headers
.unbind(".accordion")
.removeClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-corner-top")
.removeAttr("role").removeAttr("aria-expanded").removeAttr("tabindex");
this.headers.find("a").removeAttr("tabindex");
this.headers.children(".ui-icon").remove();
var contents = this.headers.next().css("display", "").removeAttr("role").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active");
if (o.autoHeight || o.fillHeight) {
contents.css("height", "");
}
},
_setData: function(key, value) {
if(key == 'alwaysOpen') { key = 'collapsible'; value = !value; }
$.widget.prototype._setData.apply(this, arguments);
},
_keydown: function(event) {
var o = this.options, keyCode = $.ui.keyCode;
if (o.disabled || event.altKey || event.ctrlKey)
return;
var length = this.headers.length;
var currentIndex = this.headers.index(event.target);
var toFocus = false;
switch(event.keyCode) {
case keyCode.RIGHT:
case keyCode.DOWN:
toFocus = this.headers[(currentIndex + 1) % length];
break;
case keyCode.LEFT:
case keyCode.UP:
toFocus = this.headers[(currentIndex - 1 + length) % length];
break;
case keyCode.SPACE:
case keyCode.ENTER:
return this._clickHandler({ target: event.target }, event.target);
}
if (toFocus) {
$(event.target).attr('tabIndex','-1');
$(toFocus).attr('tabIndex','0');
toFocus.focus();
return false;
}
return true;
},
resize: function() {
var o = this.options, maxHeight;
if (o.fillSpace) {
if($.browser.msie) { var defOverflow = this.element.parent().css('overflow'); this.element.parent().css('overflow', 'hidden'); }
maxHeight = this.element.parent().height();
if($.browser.msie) { this.element.parent().css('overflow', defOverflow); }
this.headers.each(function() {
maxHeight -= $(this).outerHeight();
});
var maxPadding = 0;
this.headers.next().each(function() {
maxPadding = Math.max(maxPadding, $(this).innerHeight() - $(this).height());
}).height(Math.max(0, maxHeight - maxPadding))
.css('overflow', 'auto');
} else if ( o.autoHeight ) {
maxHeight = 0;
this.headers.next().each(function() {
maxHeight = Math.max(maxHeight, $(this).outerHeight());
}).height(maxHeight);
}
},
activate: function(index) {
// call clickHandler with custom event
var active = this._findActive(index)[0];
this._clickHandler({ target: active }, active);
},
_findActive: function(selector) {
return selector
? typeof selector == "number"
? this.headers.filter(":eq(" + selector + ")")
: this.headers.not(this.headers.not(selector))
: selector === false
? $([])
: this.headers.filter(":eq(0)");
},
_clickHandler: function(event, target) {
var o = this.options;
if (o.disabled) return false;
// called only when using activate(false) to close all parts programmatically
if (!event.target && o.collapsible) {
this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all")
.find(".ui-icon").removeClass(o.icons.headerSelected).addClass(o.icons.header);
this.active.next().addClass('ui-accordion-content-active');
var toHide = this.active.next(),
data = {
options: o,
newHeader: $([]),
oldHeader: o.active,
newContent: $([]),
oldContent: toHide
},
toShow = (this.active = $([]));
this._toggle(toShow, toHide, data);
return false;
}
// get the click target
var clicked = $(event.currentTarget || target);
var clickedIsActive = clicked[0] == this.active[0];
// if animations are still active, or the active header is the target, ignore click
if (this.running || (!o.collapsible && clickedIsActive)) {
return false;
}
// switch classes
this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all")
.find(".ui-icon").removeClass(o.icons.headerSelected).addClass(o.icons.header);
this.active.next().addClass('ui-accordion-content-active');
if (!clickedIsActive) {
clicked.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top")
.find(".ui-icon").removeClass(o.icons.header).addClass(o.icons.headerSelected);
clicked.next().addClass('ui-accordion-content-active');
}
// find elements to show and hide
var toShow = clicked.next(),
toHide = this.active.next(),
data = {
options: o,
newHeader: clickedIsActive && o.collapsible ? $([]) : clicked,
oldHeader: this.active,
newContent: clickedIsActive && o.collapsible ? $([]) : toShow.find('> *'),
oldContent: toHide.find('> *')
},
down = this.headers.index( this.active[0] ) > this.headers.index( clicked[0] );
this.active = clickedIsActive ? $([]) : clicked;
this._toggle(toShow, toHide, data, clickedIsActive, down);
return false;
},
_toggle: function(toShow, toHide, data, clickedIsActive, down) {
var o = this.options, self = this;
this.toShow = toShow;
this.toHide = toHide;
this.data = data;
var complete = function() { if(!self) return; return self._completed.apply(self, arguments); };
// trigger changestart event
this._trigger("changestart", null, this.data);
// count elements to animate
this.running = toHide.size() === 0 ? toShow.size() : toHide.size();
if (o.animated) {
var animOptions = {};
if ( o.collapsible && clickedIsActive ) {
animOptions = {
toShow: $([]),
toHide: toHide,
complete: complete,
down: down,
autoHeight: o.autoHeight || o.fillSpace
};
} else {
animOptions = {
toShow: toShow,
toHide: toHide,
complete: complete,
down: down,
autoHeight: o.autoHeight || o.fillSpace
};
}
if (!o.proxied) {
o.proxied = o.animated;
}
if (!o.proxiedDuration) {
o.proxiedDuration = o.duration;
}
o.animated = $.isFunction(o.proxied) ?
o.proxied(animOptions) : o.proxied;
o.duration = $.isFunction(o.proxiedDuration) ?
o.proxiedDuration(animOptions) : o.proxiedDuration;
var animations = $.ui.accordion.animations,
duration = o.duration,
easing = o.animated;
if (!animations[easing]) {
animations[easing] = function(options) {
this.slide(options, {
easing: easing,
duration: duration || 700
});
};
}
animations[easing](animOptions);
} else {
if (o.collapsible && clickedIsActive) {
toShow.toggle();
} else {
toHide.hide();
toShow.show();
}
complete(true);
}
toHide.prev().attr('aria-expanded','false').attr("tabIndex", "-1").blur();
toShow.prev().attr('aria-expanded','true').attr("tabIndex", "0").focus();
},
_completed: function(cancel) {
var o = this.options;
this.running = cancel ? 0 : --this.running;
if (this.running) return;
if (o.clearStyle) {
this.toShow.add(this.toHide).css({
height: "",
overflow: ""
});
}
this._trigger('change', null, this.data);
}
});
$.extend($.ui.accordion, {
version: "1.7.1",
defaults: {
active: null,
alwaysOpen: true, //deprecated, use collapsible
animated: 'slide',
autoHeight: true,
clearStyle: false,
collapsible: false,
event: "click",
fillSpace: false,
header: "> li > :first-child,> :not(li):even",
icons: {
header: "ui-icon-triangle-1-e",
headerSelected: "ui-icon-triangle-1-s"
},
navigation: false,
navigationFilter: function() {
return this.href.toLowerCase() == location.href.toLowerCase();
}
},
animations: {
slide: function(options, additions) {
options = $.extend({
easing: "swing",
duration: 300
}, options, additions);
if ( !options.toHide.size() ) {
options.toShow.animate({height: "show"}, options);
return;
}
if ( !options.toShow.size() ) {
options.toHide.animate({height: "hide"}, options);
return;
}
var overflow = options.toShow.css('overflow'),
percentDone,
showProps = {},
hideProps = {},
fxAttrs = [ "height", "paddingTop", "paddingBottom" ],
originalWidth;
// fix width before calculating height of hidden element
var s = options.toShow;
originalWidth = s[0].style.width;
s.width( parseInt(s.parent().width(),10) - parseInt(s.css("paddingLeft"),10) - parseInt(s.css("paddingRight"),10) - (parseInt(s.css("borderLeftWidth"),10) || 0) - (parseInt(s.css("borderRightWidth"),10) || 0) );
$.each(fxAttrs, function(i, prop) {
hideProps[prop] = 'hide';
var parts = ('' + $.css(options.toShow[0], prop)).match(/^([\d+-.]+)(.*)$/);
showProps[prop] = {
value: parts[1],
unit: parts[2] || 'px'
};
});
options.toShow.css({ height: 0, overflow: 'hidden' }).show();
options.toHide.filter(":hidden").each(options.complete).end().filter(":visible").animate(hideProps,{
step: function(now, settings) {
// only calculate the percent when animating height
// IE gets very inconsistent results when animating elements
// with small values, which is common for padding
if (settings.prop == 'height') {
percentDone = (settings.now - settings.start) / (settings.end - settings.start);
}
options.toShow[0].style[settings.prop] =
(percentDone * showProps[settings.prop].value) + showProps[settings.prop].unit;
},
duration: options.duration,
easing: options.easing,
complete: function() {
if ( !options.autoHeight ) {
options.toShow.css("height", "");
}
options.toShow.css("width", originalWidth);
options.toShow.css({overflow: overflow});
options.complete();
}
});
},
bounceslide: function(options) {
this.slide(options, {
easing: options.down ? "easeOutBounce" : "swing",
duration: options.down ? 1000 : 200
});
},
easeslide: function(options) {
this.slide(options, {
easing: "easeinout",
duration: 700
});
}
}
});
})(jQuery);

View File

@@ -0,0 +1,519 @@
/*
* jQuery UI 1.7.1
*
* Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT (MIT-LICENSE.txt)
* and GPL (GPL-LICENSE.txt) licenses.
*
* http://docs.jquery.com/UI
*/
;jQuery.ui || (function($) {
var _remove = $.fn.remove,
isFF2 = $.browser.mozilla && (parseFloat($.browser.version) < 1.9);
//Helper functions and ui object
$.ui = {
version: "1.7.1",
// $.ui.plugin is deprecated. Use the proxy pattern instead.
plugin: {
add: function(module, option, set) {
var proto = $.ui[module].prototype;
for(var i in set) {
proto.plugins[i] = proto.plugins[i] || [];
proto.plugins[i].push([option, set[i]]);
}
},
call: function(instance, name, args) {
var set = instance.plugins[name];
if(!set || !instance.element[0].parentNode) { return; }
for (var i = 0; i < set.length; i++) {
if (instance.options[set[i][0]]) {
set[i][1].apply(instance.element, args);
}
}
}
},
contains: function(a, b) {
return document.compareDocumentPosition
? a.compareDocumentPosition(b) & 16
: a !== b && a.contains(b);
},
hasScroll: function(el, a) {
//If overflow is hidden, the element might have extra content, but the user wants to hide it
if ($(el).css('overflow') == 'hidden') { return false; }
var scroll = (a && a == 'left') ? 'scrollLeft' : 'scrollTop',
has = false;
if (el[scroll] > 0) { return true; }
// TODO: determine which cases actually cause this to happen
// if the element doesn't have the scroll set, see if it's possible to
// set the scroll
el[scroll] = 1;
has = (el[scroll] > 0);
el[scroll] = 0;
return has;
},
isOverAxis: function(x, reference, size) {
//Determines when x coordinate is over "b" element axis
return (x > reference) && (x < (reference + size));
},
isOver: function(y, x, top, left, height, width) {
//Determines when x, y coordinates is over "b" element
return $.ui.isOverAxis(y, top, height) && $.ui.isOverAxis(x, left, width);
},
keyCode: {
BACKSPACE: 8,
CAPS_LOCK: 20,
COMMA: 188,
CONTROL: 17,
DELETE: 46,
DOWN: 40,
END: 35,
ENTER: 13,
ESCAPE: 27,
HOME: 36,
INSERT: 45,
LEFT: 37,
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
}
};
// WAI-ARIA normalization
if (isFF2) {
var attr = $.attr,
removeAttr = $.fn.removeAttr,
ariaNS = "http://www.w3.org/2005/07/aaa",
ariaState = /^aria-/,
ariaRole = /^wairole:/;
$.attr = function(elem, name, value) {
var set = value !== undefined;
return (name == 'role'
? (set
? attr.call(this, elem, name, "wairole:" + value)
: (attr.apply(this, arguments) || "").replace(ariaRole, ""))
: (ariaState.test(name)
? (set
? elem.setAttributeNS(ariaNS,
name.replace(ariaState, "aaa:"), value)
: attr.call(this, elem, name.replace(ariaState, "aaa:")))
: attr.apply(this, arguments)));
};
$.fn.removeAttr = function(name) {
return (ariaState.test(name)
? this.each(function() {
this.removeAttributeNS(ariaNS, name.replace(ariaState, ""));
}) : removeAttr.call(this, name));
};
}
//jQuery plugins
$.fn.extend({
remove: function() {
// Safari has a native remove event which actually removes DOM elements,
// so we have to use triggerHandler instead of trigger (#3037).
$("*", this).add(this).each(function() {
$(this).triggerHandler("remove");
});
return _remove.apply(this, arguments );
},
enableSelection: function() {
return this
.attr('unselectable', 'off')
.css('MozUserSelect', '')
.unbind('selectstart.ui');
},
disableSelection: function() {
return this
.attr('unselectable', 'on')
.css('MozUserSelect', 'none')
.bind('selectstart.ui', function() { return false; });
},
scrollParent: function() {
var scrollParent;
if(($.browser.msie && (/(static|relative)/).test(this.css('position'))) || (/absolute/).test(this.css('position'))) {
scrollParent = this.parents().filter(function() {
return (/(relative|absolute|fixed)/).test($.curCSS(this,'position',1)) && (/(auto|scroll)/).test($.curCSS(this,'overflow',1)+$.curCSS(this,'overflow-y',1)+$.curCSS(this,'overflow-x',1));
}).eq(0);
} else {
scrollParent = this.parents().filter(function() {
return (/(auto|scroll)/).test($.curCSS(this,'overflow',1)+$.curCSS(this,'overflow-y',1)+$.curCSS(this,'overflow-x',1));
}).eq(0);
}
return (/fixed/).test(this.css('position')) || !scrollParent.length ? $(document) : scrollParent;
}
});
//Additional selectors
$.extend($.expr[':'], {
data: function(elem, i, match) {
return !!$.data(elem, match[3]);
},
focusable: function(element) {
var nodeName = element.nodeName.toLowerCase(),
tabIndex = $.attr(element, 'tabindex');
return (/input|select|textarea|button|object/.test(nodeName)
? !element.disabled
: 'a' == nodeName || 'area' == nodeName
? element.href || !isNaN(tabIndex)
: !isNaN(tabIndex))
// the element and all of its ancestors must be visible
// the browser may report that the area is hidden
&& !$(element)['area' == nodeName ? 'parents' : 'closest'](':hidden').length;
},
tabbable: function(element) {
var tabIndex = $.attr(element, 'tabindex');
return (isNaN(tabIndex) || tabIndex >= 0) && $(element).is(':focusable');
}
});
// $.widget is a factory to create jQuery plugins
// taking some boilerplate code out of the plugin code
function getter(namespace, plugin, method, args) {
function getMethods(type) {
var methods = $[namespace][plugin][type] || [];
return (typeof methods == 'string' ? methods.split(/,?\s+/) : methods);
}
var methods = getMethods('getter');
if (args.length == 1 && typeof args[0] == 'string') {
methods = methods.concat(getMethods('getterSetter'));
}
return ($.inArray(method, methods) != -1);
}
$.widget = function(name, prototype) {
var namespace = name.split(".")[0];
name = name.split(".")[1];
// create plugin method
$.fn[name] = function(options) {
var isMethodCall = (typeof options == 'string'),
args = Array.prototype.slice.call(arguments, 1);
// prevent calls to internal methods
if (isMethodCall && options.substring(0, 1) == '_') {
return this;
}
// handle getter methods
if (isMethodCall && getter(namespace, name, options, args)) {
var instance = $.data(this[0], name);
return (instance ? instance[options].apply(instance, args)
: undefined);
}
// handle initialization and non-getter methods
return this.each(function() {
var instance = $.data(this, name);
// constructor
(!instance && !isMethodCall &&
$.data(this, name, new $[namespace][name](this, options))._init());
// method call
(instance && isMethodCall && $.isFunction(instance[options]) &&
instance[options].apply(instance, args));
});
};
// create widget constructor
$[namespace] = $[namespace] || {};
$[namespace][name] = function(element, options) {
var self = this;
this.namespace = namespace;
this.widgetName = name;
this.widgetEventPrefix = $[namespace][name].eventPrefix || name;
this.widgetBaseClass = namespace + '-' + name;
this.options = $.extend({},
$.widget.defaults,
$[namespace][name].defaults,
$.metadata && $.metadata.get(element)[name],
options);
this.element = $(element)
.bind('setData.' + name, function(event, key, value) {
if (event.target == element) {
return self._setData(key, value);
}
})
.bind('getData.' + name, function(event, key) {
if (event.target == element) {
return self._getData(key);
}
})
.bind('remove', function() {
return self.destroy();
});
};
// add widget prototype
$[namespace][name].prototype = $.extend({}, $.widget.prototype, prototype);
// TODO: merge getter and getterSetter properties from widget prototype
// and plugin prototype
$[namespace][name].getterSetter = 'option';
};
$.widget.prototype = {
_init: function() {},
destroy: function() {
this.element.removeData(this.widgetName)
.removeClass(this.widgetBaseClass + '-disabled' + ' ' + this.namespace + '-state-disabled')
.removeAttr('aria-disabled');
},
option: function(key, value) {
var options = key,
self = this;
if (typeof key == "string") {
if (value === undefined) {
return this._getData(key);
}
options = {};
options[key] = value;
}
$.each(options, function(key, value) {
self._setData(key, value);
});
},
_getData: function(key) {
return this.options[key];
},
_setData: function(key, value) {
this.options[key] = value;
if (key == 'disabled') {
this.element
[value ? 'addClass' : 'removeClass'](
this.widgetBaseClass + '-disabled' + ' ' +
this.namespace + '-state-disabled')
.attr("aria-disabled", value);
}
},
enable: function() {
this._setData('disabled', false);
},
disable: function() {
this._setData('disabled', true);
},
_trigger: function(type, event, data) {
var callback = this.options[type],
eventName = (type == this.widgetEventPrefix
? type : this.widgetEventPrefix + type);
event = $.Event(event);
event.type = eventName;
// copy original event properties over to the new event
// this would happen if we could call $.event.fix instead of $.Event
// but we don't have a way to force an event to be fixed multiple times
if (event.originalEvent) {
for (var i = $.event.props.length, prop; i;) {
prop = $.event.props[--i];
event[prop] = event.originalEvent[prop];
}
}
this.element.trigger(event, data);
return !($.isFunction(callback) && callback.call(this.element[0], event, data) === false
|| event.isDefaultPrevented());
}
};
$.widget.defaults = {
disabled: false
};
/** Mouse Interaction Plugin **/
$.ui.mouse = {
_mouseInit: function() {
var self = this;
this.element
.bind('mousedown.'+this.widgetName, function(event) {
return self._mouseDown(event);
})
.bind('click.'+this.widgetName, function(event) {
if(self._preventClickEvent) {
self._preventClickEvent = false;
event.stopImmediatePropagation();
return false;
}
});
// Prevent text selection in IE
if ($.browser.msie) {
this._mouseUnselectable = this.element.attr('unselectable');
this.element.attr('unselectable', 'on');
}
this.started = false;
},
// TODO: make sure destroying one instance of mouse doesn't mess with
// other instances of mouse
_mouseDestroy: function() {
this.element.unbind('.'+this.widgetName);
// Restore text selection in IE
($.browser.msie
&& this.element.attr('unselectable', this._mouseUnselectable));
},
_mouseDown: function(event) {
// don't let more than one widget handle mouseStart
// TODO: figure out why we have to use originalEvent
event.originalEvent = event.originalEvent || {};
if (event.originalEvent.mouseHandled) { return; }
// we may have missed mouseup (out of window)
(this._mouseStarted && this._mouseUp(event));
this._mouseDownEvent = event;
var self = this,
btnIsLeft = (event.which == 1),
elIsCancel = (typeof this.options.cancel == "string" ? $(event.target).parents().add(event.target).filter(this.options.cancel).length : false);
if (!btnIsLeft || elIsCancel || !this._mouseCapture(event)) {
return true;
}
this.mouseDelayMet = !this.options.delay;
if (!this.mouseDelayMet) {
this._mouseDelayTimer = setTimeout(function() {
self.mouseDelayMet = true;
}, this.options.delay);
}
if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) {
this._mouseStarted = (this._mouseStart(event) !== false);
if (!this._mouseStarted) {
event.preventDefault();
return true;
}
}
// these delegates are required to keep context
this._mouseMoveDelegate = function(event) {
return self._mouseMove(event);
};
this._mouseUpDelegate = function(event) {
return self._mouseUp(event);
};
$(document)
.bind('mousemove.'+this.widgetName, this._mouseMoveDelegate)
.bind('mouseup.'+this.widgetName, this._mouseUpDelegate);
// preventDefault() is used to prevent the selection of text here -
// however, in Safari, this causes select boxes not to be selectable
// anymore, so this fix is needed
($.browser.safari || event.preventDefault());
event.originalEvent.mouseHandled = true;
return true;
},
_mouseMove: function(event) {
// IE mouseup check - mouseup happened when mouse was out of window
if ($.browser.msie && !event.button) {
return this._mouseUp(event);
}
if (this._mouseStarted) {
this._mouseDrag(event);
return event.preventDefault();
}
if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) {
this._mouseStarted =
(this._mouseStart(this._mouseDownEvent, event) !== false);
(this._mouseStarted ? this._mouseDrag(event) : this._mouseUp(event));
}
return !this._mouseStarted;
},
_mouseUp: function(event) {
$(document)
.unbind('mousemove.'+this.widgetName, this._mouseMoveDelegate)
.unbind('mouseup.'+this.widgetName, this._mouseUpDelegate);
if (this._mouseStarted) {
this._mouseStarted = false;
this._preventClickEvent = (event.target == this._mouseDownEvent.target);
this._mouseStop(event);
}
return false;
},
_mouseDistanceMet: function(event) {
return (Math.max(
Math.abs(this._mouseDownEvent.pageX - event.pageX),
Math.abs(this._mouseDownEvent.pageY - event.pageY)
) >= this.options.distance
);
},
_mouseDelayMet: function(event) {
return this.mouseDelayMet;
},
// These are placeholder methods, to be overriden by extending plugin
_mouseStart: function(event) {},
_mouseDrag: function(event) {},
_mouseStop: function(event) {},
_mouseCapture: function(event) { return true; }
};
$.ui.mouse.defaults = {
cancel: null,
distance: 1,
delay: 0
};
})(jQuery);

View File

@@ -0,0 +1,705 @@
/********************************************
AUTHOR: Erwin Aligam
WEBSITE: http://www.styleshout.com/
TEMPLATE NAME: Techmania 1.0
TEMPLATE CODE: S-0003
VERSION: 1.1
*******************************************/
/********************************************
HTML ELEMENTS
********************************************/ /* Top elements */
/** { margin:0; padding: 0; }*/
body {
background-color: #000;
color: #555;
font: 78%/ 1.6 Verdana, 'Trebuchet MS', arial, sans-serif;
text-align: center;
margin: 15px 0;
}
/* links */
a {
color: #213540;
background: inherit;
text-decoration: none;
}
a:hover {
color: #3e4255;
text-decoration: underline;
background: inherit;
}
/* headers */
h1,h2,h3 {
font-family: 'Trebuchet MS', Arial, sans-serif;
font-weight: bold;
}
h1 {
font-size: 1.5em;
margin: 10px 15px;
}
h2 {
font-size: 1.3em;
text-transform: uppercase;
color: #339900;
margin: 10px 15px;
}
h3 {
font-size: 1.1em;
color: #333;
margin: 16px 0 0 18px;
}
h1,h2,h3 {
padding: 0;
}
p {
line-height: 1.4em;
padding: 0 15px;
}
p.error {
color: #CC0033;
}
ul,ol {
margin: 10px 6px;
padding: 0 15px;
color: #006699;
}
ul span,ol span {
color: #666666;
}
/* images */
img {
border: 2px solid #CCC;
}
img.float-right {
margin: 5px 0px 10px 10px;
}
img.float-left {
margin: 5px 10px 10px 0px;
}
code {
margin: 5px 0;
padding: 10px;
text-align: left;
display: block;
overflow: auto;
font: 500 1em/ 1.5em 'Lucida Console', 'courier new', monospace;
/* white-space: pre; */
background: #FAFAFA;
border: 1px solid #EAEAEA;
border-left: 5px solid #72A545;
}
acronym {
cursor: help;
border-bottom: 1px solid #777;
}
blockquote {
margin: 15px;
padding: 0 0 0 32px;
background: #FAFAFA url(quote.gif) no-repeat 5px 10px !important;
background-position: 8px 10px;
border: 1px solid #EAEAEA;
border-left: 5px solid #72A545;
font-weight: bold;
}
/* form elements */
fieldset {
margin: 12px 12px 18px;
padding-left: 6px;
border: 1px solid #004080;
color: #006699;
}
fieldset fieldset {
border: 1px solid #9ea190;
margin: 17px 14px;
}
form {
margin: 10px 15px;
padding: 0;
}
label {
font-weight: bold;
margin: 5px 3px 0 0;
width: 160px;
text-align: right;
float: left;
}
legend {
font-size: 1.2em;
padding: 0 12px;
font-weight: 900;
background-color: #F9F9F9;
}
fieldset fieldset legend {
font-size: 1em;
color: #1a2129;
padding: 0 18px;
margin-left: 75px;
}
input {
padding: 3px;
margin: 4px 0;
border: 1px solid #CFCED3;
font: normal 1em Verdana, sans-serif;
color: #777;
}
textarea {
width: 400px;
padding: 4px;
font: normal 1em Verdana, sans-serif;
border: 1px solid #eee;
height: 100px;
display: block;
color: #777;
}
input.button {
margin: 0;
font: bold 12px Arial, Sans-serif;
border: 1px solid #EAEAEA;
padding: 3px 4px;
background: #CCC url(buttonbg.gif) repeat-x left bottom;
color: #333; /* color: #339900; */
cursor: pointer;
}
input.submitbutton {
background-color: #006699;
color: #FFF;
background-image: none;
font-weight: 900;
border: 1px solid #EAEAEA;
margin: 0 0 0 200px;
}
/* search */
#sidebar #search {
background: #f2f2f2;
margin: 0 15px;
padding: 5px 0;
}
#sidebar #search img {
vertical-align: bottom;
}
#sidebar #search .textbox {
background: #FFF url(input.png) no-repeat top left;
border: 1px solid #EAEAEA;
font-size: 11px;
padding: 3px;
width: 110px;
}
#sidebar #search input.searchbutton {
margin: 0;
font: bold 100% Arial, Sans-serif;
border: 1px solid #CCC;
background: #CCC url(buttonbg.gif) repeat-x left bottom;
padding: 1px;
height: 25px;
color: #333;
width: 55px;
}
/*****************************
LAYOUT
******************************/
#wrap {
margin: 0 auto;
padding: 0;
text-align: left;
background-color: #FFF;
width: 790px;
}
#content-wrap {
clear: both;
margin: 0;
padding: 0;
width: 790px;
}
/* header */
#header {
position: relative;
clear: left;
width: 790px;
height: 137px;
margin: 0;
padding: 0;
background: #000 url(headerbg.jpg) no-repeat left bottom;
}
#header h1#logo-text {
float: right;
margin: 39px 58px 0 0;
padding: 0;
font: bolder 3.2em 'Trebuchet MS', Arial, Sans-serif;
letter-spacing: -2px;
color: #FFF;
text-transform: none;
/* change the values of top and right to adjust the position of the logo*/
top: 35px;
right: 30px;
}
#header h2#slogan {
float: right;
margin: 0 38px 0 0;
padding: 0;
font: bold 1.5em 'Trebuchet MS', Arial, Sans-serif;
text-transform: none;
letter-spacing: 1px;
color: #FFF;
clear: both;
text-align: right;
}
#header h1#logo-text span {
color: #CFCED3;
}
/* menu tabs */
#header #header-tabs {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 25px;
background: #000;
font: bold 1.1em Verdana, Tahoma, 'Trebuchet MS', Sans-serif;
}
#header-tabs ul {
margin: 0;
padding: 2px 0px 0px 0px;
list-style: none;
}
#header-tabs li {
display: inline;
margin: 0;
padding: 0;
}
#header-tabs a {
float: left;
background: url(tableft.gif) no-repeat left top;
margin: 0;
padding: 0 0 0 4px;
text-decoration: none;
}
#header-tabs a span {
float: left;
display: block;
background: url(tabright.gif) no-repeat right top;
padding: 7px 15px 4px 8px;
color: #CCC;
}
/* Commented Backslash Hack hides rule from IE5-Mac \*/
#header-tabs a span {
float: none;
}
/* End IE5-Mac hack */
#header-tabs a:hover span {
color: #FFF;
}
#header-tabs a:hover {
background-position: 0% -42px;
}
#header-tabs a:hover span {
background-position: 100% -42px;
}
#header-tabs #current a {
background-position: 0% -42px;
}
#header-tabs #current a span {
background-position: 100% -42px;
color: #FFF;
}
/* main content */
#main {
width: 748px;
margin: 0;
padding: 8px 16px;
background-color: #F9F9F9;
border-left: 5px solid #000;
border-right: 5px solid #000;
}
#main h1 {
padding: 8px 0 3px 25px;
text-transform: none;
border-bottom: 2px solid #f2f2f2;
color: #339900;
}
/* sidebar */
#sidebar { /* float: right;
width: 245px;
margin: 0 0 10px 0; padding: 0;
background-color: inherit; */
display: none;
}
#sidebar h1 {
padding: 8px 0px 3px 25px;
background: url(square_arrow.gif) no-repeat 0% .7em;
text-transform: none;
color: #339900;
}
#sidebar ul.sidemenu {
list-style: none;
margin: 10px 15px;
padding: 0;
}
#sidebar ul.sidemenu li {
margin-bottom: 1px;
border: 1px solid #f2f2f2;
}
#sidebar ul.sidemenu a {
display: block;
font-weight: bold;
color: #333;
text-decoration: none;
padding: 2px 5px 2px 10px;
background: #f2f2f2;
border-left: 5px solid #CCC;
min-height: 18px;
}
* html body #sidebar ul.sidemenu a {
height: 18px;
}
#sidebar ul.sidemenu a:hover {
padding: 2px 5px 2px 10px;
background: #f2f2f2;
color: #339900;
border-left: 5px solid #72A545;
}
/* footer */
#footer {
clear: both;
height: 40px;
color: #CCC;
background: #000;
margin: 0;
font-size: 92%;
}
#footer a {
text-decoration: none;
font-weight: bold;
color: #FFF;
}
#footer #footer-left {
width: 68%;
float: left;
text-align: left;
margin: 0;
padding: 10px;
}
#footer #footer-right {
width: 25%;
float: right;
text-align: right;
margin: 0;
padding: 10px;
}
/* alignment classes */
.float-left {
float: left;
}
.float-right {
float: right;
}
.align-left {
text-align: left;
}
.align-right {
text-align: right;
}
/* additional classes */
.clear {
clear: both;
}
.hide {
display: none;
}
.gray {
color: #CCC;
}
.comments {
color: #333;
background: #FFF;
text-align: right;
border-top: 1px dashed #EFF0F1;
border-bottom: 1px dashed #EFF0F1;
padding: 5px 0;
margin-top: 20px;
}
html {
min-height: 100.1%;
}
/* ------ one ------------*/
body .mainText {
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
}
#demoText h1,.mainText h1 {
font-size: 130%;
color: #0099FF;
text-decoration: none;
font-family: Arial, Helvetica, sans-serif;
margin: 5px 4px 5px 24px;
background: none;
padding: 0;
border: none;
text-transform: capitalize;
}
.mainText h2 {
font-size: 110%;
color: #000033;
font-family: Arial, Helvetica, sans-serif;
text-decoration: none;
background: none;
margin: 4px 32px 6px 22px;
text-transform: capitalize;
}
.mainText h3 {
font-size: 120%;
font-weight: 900;
margin: 14px 0 0 0;
text-align: center;
color: #000033;
}
.mainText table {
width: 95%;
border: 1px solid #0099FF;
border-collapse: collapse;
margin: 18px 7px;
}
.mainText table td {
background-color: #99CCFF;
color: #000033;
padding: 4px;
}
.mainText table th {
background-color: #000033;
color: #99CCFF;
padding: 4px;
}
.mainText .linkPar a {
color: #000033;
text-decoration: underline;
}
.mainText .linkPar a:hover {
color: #660033;
text-decoration: none;
font-weight: 900;
}
.pusher {
cursor: pointer;
padding: 3px 10px 3px 22px;
font-weight: 900;
font-size: 14px;
}
/* ------------- form specific styles are here -------------- */
fieldset {
margin: 0;
border: 1px solid #C3DE00;
padding: 10px;
/*border:none;
padding:0;*/
color: #7563A5;
}
legend {
background-color: #FFFFFF;
text-align: center;
color: #097981;
padding: 0 12px;
}
label {
text-align: right;
width: 298px;
border-right: 1px dotted #099;
padding-right: 5px;
margin: 0 0 8px 0;
float: left;
clear: left;
display: block;
color: #7563A5;
}
label.checkbox,label.textarea {
border: none;
}
label.lgfield {
border: none;
text-align: center;
clear: both;
float: none;
width: 100%;
}
fieldset input,fieldset select,fieldset textarea {
margin-left: 10px;
margin-bottom: 8px;
}
select.longfield {
margin: 0 0 0 115px;
}
input [type="radio"],input [type="checkbox"] {
margin: 2px 0 0 4px;
}
textarea {
width: 250px;
float: left;
}
/*Get Help Form Styles*/
p.formDisclaimer {
text-align: center;
margin: 32px 24px 12px 0;
font-style: italic;
}
div.buttonWrapper {
margin: 28px 0 14px 0;
clear: both;
text-align: center;
}
.formspacer {
height: 1em;
clear: both;
}
.hideField {
display: none;
}
.pushOpen {
height: 18em;
}
/* ----- error message for field validation ----- */
#stepForm label.warning {
text-align: left;
width: auto;
padding: 0;
margin: 0 0 0 10px;
float: none;
clear: none;
display: inline;
color: #CC3366;
font-size: 10px;
border: none;
border-top: 1px dotted #CC3366;
}
div.requiredNotice {
width: 140px;
float: right;
margin: 0 24px 0 0;
padding: 0;
}
h3.stepHeader {
text-align: left;
font-size: 16px;
font-weight: bold;
margin: 0 0 24px 24px;
color: #676cac;
}
ul#stepForm,ul#stepForm li {
margin: 0;
padding: 0;
}
ul#stepForm li {
list-style: none;
}
/* Form Buttons */
input.submitbutton,.nextbutton,.prevbutton {
width: 100px;
height: 40px;
background-color: #663399;
padding: 4px;
border: 1px solid #339933;
cursor: pointer;
text-align: center;
color: #FFFFFF;
margin: 7px;
}
input.submitbutton {
background-color: #006699;
}