/*!
 * jQuery JavaScript Library v1.4.2
 * http://jquery.com/
 *
 * Copyright 2010, John Resig
 * Dual licensed under the MIT or GPL Version 2 licenses.
 * http://jquery.org/license
 *
 * Includes Sizzle.js
 * http://sizzlejs.com/
 * Copyright 2010, The Dojo Foundation
 * Released under the MIT, BSD, and GPL Licenses.
 *
 * Date: Sat Feb 13 22:33:48 2010 -0500
 */
(function(A,w){function ma(){if(!c.isReady){try{s.documentElement.doScroll("left")}catch(a){setTimeout(ma,1);return}c.ready()}}function Qa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function X(a,b,d,f,e,j){var i=a.length;if(typeof b==="object"){for(var o in b)X(a,o,b[o],f,e,d);return a}if(d!==w){f=!j&&f&&c.isFunction(d);for(o=0;o<i;o++)e(a[o],b,f?d.call(a[o],o,e(a[o],b)):d,j);return a}return i?
e(a[0],b):w}function J(){return(new Date).getTime()}function Y(){return false}function Z(){return true}function na(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function oa(a){var b,d=[],f=[],e=arguments,j,i,o,k,n,r;i=c.data(this,"events");if(!(a.liveFired===this||!i||!i.live||a.button&&a.type==="click")){a.liveFired=this;var u=i.live.slice(0);for(k=0;k<u.length;k++){i=u[k];i.origType.replace(O,"")===a.type?f.push(i.selector):u.splice(k--,1)}j=c(a.target).closest(f,a.currentTarget);n=0;for(r=
j.length;n<r;n++)for(k=0;k<u.length;k++){i=u[k];if(j[n].selector===i.selector){o=j[n].elem;f=null;if(i.preType==="mouseenter"||i.preType==="mouseleave")f=c(a.relatedTarget).closest(i.selector)[0];if(!f||f!==o)d.push({elem:o,handleObj:i})}}n=0;for(r=d.length;n<r;n++){j=d[n];a.currentTarget=j.elem;a.data=j.handleObj.data;a.handleObj=j.handleObj;if(j.handleObj.origHandler.apply(j.elem,e)===false){b=false;break}}return b}}function pa(a,b){return"live."+(a&&a!=="*"?a+".":"")+b.replace(/\./g,"`").replace(/ /g,
"&")}function qa(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function ra(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var f=c.data(a[d++]),e=c.data(this,f);if(f=f&&f.events){delete e.handle;e.events={};for(var j in f)for(var i in f[j])c.event.add(this,j,f[j][i],f[j][i].data)}}})}function sa(a,b,d){var f,e,j;b=b&&b[0]?b[0].ownerDocument||b[0]:s;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&b===s&&!ta.test(a[0])&&(c.support.checkClone||!ua.test(a[0]))){e=
true;if(j=c.fragments[a[0]])if(j!==1)f=j}if(!f){f=b.createDocumentFragment();c.clean(a,b,f,d)}if(e)c.fragments[a[0]]=j?f:1;return{fragment:f,cacheable:e}}function K(a,b){var d={};c.each(va.concat.apply([],va.slice(0,b)),function(){d[this]=a});return d}function wa(a){return"scrollTo"in a&&a.document?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var c=function(a,b){return new c.fn.init(a,b)},Ra=A.jQuery,Sa=A.$,s=A.document,T,Ta=/^[^<]*(<[\w\W]+>)[^>]*$|^#([\w-]+)$/,Ua=/^.[^:#\[\.,]*$/,Va=/\S/,
Wa=/^(\s|\u00A0)+|(\s|\u00A0)+$/g,Xa=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,P=navigator.userAgent,xa=false,Q=[],L,$=Object.prototype.toString,aa=Object.prototype.hasOwnProperty,ba=Array.prototype.push,R=Array.prototype.slice,ya=Array.prototype.indexOf;c.fn=c.prototype={init:function(a,b){var d,f;if(!a)return this;if(a.nodeType){this.context=this[0]=a;this.length=1;return this}if(a==="body"&&!b){this.context=s;this[0]=s.body;this.selector="body";this.length=1;return this}if(typeof a==="string")if((d=Ta.exec(a))&&
(d[1]||!b))if(d[1]){f=b?b.ownerDocument||b:s;if(a=Xa.exec(a))if(c.isPlainObject(b)){a=[s.createElement(a[1])];c.fn.attr.call(a,b,true)}else a=[f.createElement(a[1])];else{a=sa([d[1]],[f]);a=(a.cacheable?a.fragment.cloneNode(true):a.fragment).childNodes}return c.merge(this,a)}else{if(b=s.getElementById(d[2])){if(b.id!==d[2])return T.find(a);this.length=1;this[0]=b}this.context=s;this.selector=a;return this}else if(!b&&/^\w+$/.test(a)){this.selector=a;this.context=s;a=s.getElementsByTagName(a);return c.merge(this,
a)}else return!b||b.jquery?(b||T).find(a):c(b).find(a);else if(c.isFunction(a))return T.ready(a);if(a.selector!==w){this.selector=a.selector;this.context=a.context}return c.makeArray(a,this)},selector:"",jquery:"1.4.2",length:0,size:function(){return this.length},toArray:function(){return R.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this.slice(a)[0]:this[a]},pushStack:function(a,b,d){var f=c();c.isArray(a)?ba.apply(f,a):c.merge(f,a);f.prevObject=this;f.context=this.context;if(b===
"find")f.selector=this.selector+(this.selector?" ":"")+d;else if(b)f.selector=this.selector+"."+b+"("+d+")";return f},each:function(a,b){return c.each(this,a,b)},ready:function(a){c.bindReady();if(c.isReady)a.call(s,c);else Q&&Q.push(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(R.apply(this,arguments),"slice",R.call(arguments).join(","))},map:function(a){return this.pushStack(c.map(this,
function(b,d){return a.call(b,d,b)}))},end:function(){return this.prevObject||c(null)},push:ba,sort:[].sort,splice:[].splice};c.fn.init.prototype=c.fn;c.extend=c.fn.extend=function(){var a=arguments[0]||{},b=1,d=arguments.length,f=false,e,j,i,o;if(typeof a==="boolean"){f=a;a=arguments[1]||{};b=2}if(typeof a!=="object"&&!c.isFunction(a))a={};if(d===b){a=this;--b}for(;b<d;b++)if((e=arguments[b])!=null)for(j in e){i=a[j];o=e[j];if(a!==o)if(f&&o&&(c.isPlainObject(o)||c.isArray(o))){i=i&&(c.isPlainObject(i)||
c.isArray(i))?i:c.isArray(o)?[]:{};a[j]=c.extend(f,i,o)}else if(o!==w)a[j]=o}return a};c.extend({noConflict:function(a){A.$=Sa;if(a)A.jQuery=Ra;return c},isReady:false,ready:function(){if(!c.isReady){if(!s.body)return setTimeout(c.ready,13);c.isReady=true;if(Q){for(var a,b=0;a=Q[b++];)a.call(s,c);Q=null}c.fn.triggerHandler&&c(s).triggerHandler("ready")}},bindReady:function(){if(!xa){xa=true;if(s.readyState==="complete")return c.ready();if(s.addEventListener){s.addEventListener("DOMContentLoaded",
L,false);A.addEventListener("load",c.ready,false)}else if(s.attachEvent){s.attachEvent("onreadystatechange",L);A.attachEvent("onload",c.ready);var a=false;try{a=A.frameElement==null}catch(b){}s.documentElement.doScroll&&a&&ma()}}},isFunction:function(a){return $.call(a)==="[object Function]"},isArray:function(a){return $.call(a)==="[object Array]"},isPlainObject:function(a){if(!a||$.call(a)!=="[object Object]"||a.nodeType||a.setInterval)return false;if(a.constructor&&!aa.call(a,"constructor")&&!aa.call(a.constructor.prototype,
"isPrototypeOf"))return false;var b;for(b in a);return b===w||aa.call(a,b)},isEmptyObject:function(a){for(var b in a)return false;return true},error:function(a){throw a;},parseJSON:function(a){if(typeof a!=="string"||!a)return null;a=c.trim(a);if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return A.JSON&&A.JSON.parse?A.JSON.parse(a):(new Function("return "+
a))();else c.error("Invalid JSON: "+a)},noop:function(){},globalEval:function(a){if(a&&Va.test(a)){var b=s.getElementsByTagName("head")[0]||s.documentElement,d=s.createElement("script");d.type="text/javascript";if(c.support.scriptEval)d.appendChild(s.createTextNode(a));else d.text=a;b.insertBefore(d,b.firstChild);b.removeChild(d)}},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,b,d){var f,e=0,j=a.length,i=j===w||c.isFunction(a);if(d)if(i)for(f in a){if(b.apply(a[f],
d)===false)break}else for(;e<j;){if(b.apply(a[e++],d)===false)break}else if(i)for(f in a){if(b.call(a[f],f,a[f])===false)break}else for(d=a[0];e<j&&b.call(d,e,d)!==false;d=a[++e]);return a},trim:function(a){return(a||"").replace(Wa,"")},makeArray:function(a,b){b=b||[];if(a!=null)a.length==null||typeof a==="string"||c.isFunction(a)||typeof a!=="function"&&a.setInterval?ba.call(b,a):c.merge(b,a);return b},inArray:function(a,b){if(b.indexOf)return b.indexOf(a);for(var d=0,f=b.length;d<f;d++)if(b[d]===
a)return d;return-1},merge:function(a,b){var d=a.length,f=0;if(typeof b.length==="number")for(var e=b.length;f<e;f++)a[d++]=b[f];else for(;b[f]!==w;)a[d++]=b[f++];a.length=d;return a},grep:function(a,b,d){for(var f=[],e=0,j=a.length;e<j;e++)!d!==!b(a[e],e)&&f.push(a[e]);return f},map:function(a,b,d){for(var f=[],e,j=0,i=a.length;j<i;j++){e=b(a[j],j,d);if(e!=null)f[f.length]=e}return f.concat.apply([],f)},guid:1,proxy:function(a,b,d){if(arguments.length===2)if(typeof b==="string"){d=a;a=d[b];b=w}else if(b&&
!c.isFunction(b)){d=b;b=w}if(!b&&a)b=function(){return a.apply(d||this,arguments)};if(a)b.guid=a.guid=a.guid||b.guid||c.guid++;return b},uaMatch:function(a){a=a.toLowerCase();a=/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version)?[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||!/compatible/.test(a)&&/(mozilla)(?:.*? rv:([\w.]+))?/.exec(a)||[];return{browser:a[1]||"",version:a[2]||"0"}},browser:{}});P=c.uaMatch(P);if(P.browser){c.browser[P.browser]=true;c.browser.version=P.version}if(c.browser.webkit)c.browser.safari=
true;if(ya)c.inArray=function(a,b){return ya.call(b,a)};T=c(s);if(s.addEventListener)L=function(){s.removeEventListener("DOMContentLoaded",L,false);c.ready()};else if(s.attachEvent)L=function(){if(s.readyState==="complete"){s.detachEvent("onreadystatechange",L);c.ready()}};(function(){c.support={};var a=s.documentElement,b=s.createElement("script"),d=s.createElement("div"),f="script"+J();d.style.display="none";d.innerHTML="   <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";
var e=d.getElementsByTagName("*"),j=d.getElementsByTagName("a")[0];if(!(!e||!e.length||!j)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(j.getAttribute("style")),hrefNormalized:j.getAttribute("href")==="/a",opacity:/^0.55$/.test(j.style.opacity),cssFloat:!!j.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:s.createElement("select").appendChild(s.createElement("option")).selected,
parentNode:d.removeChild(d.appendChild(s.createElement("div"))).parentNode===null,deleteExpando:true,checkClone:false,scriptEval:false,noCloneEvent:true,boxModel:null};b.type="text/javascript";try{b.appendChild(s.createTextNode("window."+f+"=1;"))}catch(i){}a.insertBefore(b,a.firstChild);if(A[f]){c.support.scriptEval=true;delete A[f]}try{delete b.test}catch(o){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function k(){c.support.noCloneEvent=
false;d.detachEvent("onclick",k)});d.cloneNode(true).fireEvent("onclick")}d=s.createElement("div");d.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";a=s.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var k=s.createElement("div");k.style.width=k.style.paddingLeft="1px";s.body.appendChild(k);c.boxModel=c.support.boxModel=k.offsetWidth===2;s.body.removeChild(k).style.display="none"});a=function(k){var n=
s.createElement("div");k="on"+k;var r=k in n;if(!r){n.setAttribute(k,"return;");r=typeof n[k]==="function"}return r};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=e=j=null}})();c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};var G="jQuery"+J(),Ya=0,za={};c.extend({cache:{},expando:G,noData:{embed:true,object:true,
applet:true},data:function(a,b,d){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var f=a[G],e=c.cache;if(!f&&typeof b==="string"&&d===w)return null;f||(f=++Ya);if(typeof b==="object"){a[G]=f;e[f]=c.extend(true,{},b)}else if(!e[f]){a[G]=f;e[f]={}}a=e[f];if(d!==w)a[b]=d;return typeof b==="string"?a[b]:a}},removeData:function(a,b){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var d=a[G],f=c.cache,e=f[d];if(b){if(e){delete e[b];c.isEmptyObject(e)&&c.removeData(a)}}else{if(c.support.deleteExpando)delete a[c.expando];
else a.removeAttribute&&a.removeAttribute(c.expando);delete f[d]}}}});c.fn.extend({data:function(a,b){if(typeof a==="undefined"&&this.length)return c.data(this[0]);else if(typeof a==="object")return this.each(function(){c.data(this,a)});var d=a.split(".");d[1]=d[1]?"."+d[1]:"";if(b===w){var f=this.triggerHandler("getData"+d[1]+"!",[d[0]]);if(f===w&&this.length)f=c.data(this[0],a);return f===w&&d[1]?this.data(d[0]):f}else return this.trigger("setData"+d[1]+"!",[d[0],b]).each(function(){c.data(this,
a,b)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var f=c.data(a,b);if(!d)return f||[];if(!f||c.isArray(d))f=c.data(a,b,c.makeArray(d));else f.push(d);return f}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),f=d.shift();if(f==="inprogress")f=d.shift();if(f){b==="fx"&&d.unshift("inprogress");f.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b===
w)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var Aa=/[\n\t]/g,ca=/\s+/,Za=/\r/g,$a=/href|src|style/,ab=/(button|input)/i,bb=/(button|input|object|select|textarea)/i,
cb=/^(a|area)$/i,Ba=/radio|checkbox/;c.fn.extend({attr:function(a,b){return X(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(n){var r=c(this);r.addClass(a.call(this,n,r.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1)if(e.className){for(var j=" "+e.className+" ",
i=e.className,o=0,k=b.length;o<k;o++)if(j.indexOf(" "+b[o]+" ")<0)i+=" "+b[o];e.className=c.trim(i)}else e.className=a}return this},removeClass:function(a){if(c.isFunction(a))return this.each(function(k){var n=c(this);n.removeClass(a.call(this,k,n.attr("class")))});if(a&&typeof a==="string"||a===w)for(var b=(a||"").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1&&e.className)if(a){for(var j=(" "+e.className+" ").replace(Aa," "),i=0,o=b.length;i<o;i++)j=j.replace(" "+b[i]+" ",
" ");e.className=c.trim(j)}else e.className=""}return this},toggleClass:function(a,b){var d=typeof a,f=typeof b==="boolean";if(c.isFunction(a))return this.each(function(e){var j=c(this);j.toggleClass(a.call(this,e,j.attr("class"),b),b)});return this.each(function(){if(d==="string")for(var e,j=0,i=c(this),o=b,k=a.split(ca);e=k[j++];){o=f?o:!i.hasClass(e);i[o?"addClass":"removeClass"](e)}else if(d==="undefined"||d==="boolean"){this.className&&c.data(this,"__className__",this.className);this.className=
this.className||a===false?"":c.data(this,"__className__")||""}})},hasClass:function(a){a=" "+a+" ";for(var b=0,d=this.length;b<d;b++)if((" "+this[b].className+" ").replace(Aa," ").indexOf(a)>-1)return true;return false},val:function(a){if(a===w){var b=this[0];if(b){if(c.nodeName(b,"option"))return(b.attributes.value||{}).specified?b.value:b.text;if(c.nodeName(b,"select")){var d=b.selectedIndex,f=[],e=b.options;b=b.type==="select-one";if(d<0)return null;var j=b?d:0;for(d=b?d+1:e.length;j<d;j++){var i=
e[j];if(i.selected){a=c(i).val();if(b)return a;f.push(a)}}return f}if(Ba.test(b.type)&&!c.support.checkOn)return b.getAttribute("value")===null?"on":b.value;return(b.value||"").replace(Za,"")}return w}var o=c.isFunction(a);return this.each(function(k){var n=c(this),r=a;if(this.nodeType===1){if(o)r=a.call(this,k,n.val());if(typeof r==="number")r+="";if(c.isArray(r)&&Ba.test(this.type))this.checked=c.inArray(n.val(),r)>=0;else if(c.nodeName(this,"select")){var u=c.makeArray(r);c("option",this).each(function(){this.selected=
c.inArray(c(this).val(),u)>=0});if(!u.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a,b,d,f){if(!a||a.nodeType===3||a.nodeType===8)return w;if(f&&b in c.attrFn)return c(a)[b](d);f=a.nodeType!==1||!c.isXMLDoc(a);var e=d!==w;b=f&&c.props[b]||b;if(a.nodeType===1){var j=$a.test(b);if(b in a&&f&&!j){if(e){b==="type"&&ab.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed");
a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&b.specified?b.value:bb.test(a.nodeName)||cb.test(a.nodeName)&&a.href?0:w;return a[b]}if(!c.support.style&&f&&b==="style"){if(e)a.style.cssText=""+d;return a.style.cssText}e&&a.setAttribute(b,""+d);a=!c.support.hrefNormalized&&f&&j?a.getAttribute(b,2):a.getAttribute(b);return a===null?w:a}return c.style(a,b,d)}});var O=/\.(.*)$/,db=function(a){return a.replace(/[^\w\s\.\|`]/g,
function(b){return"\\"+b})};c.event={add:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){if(a.setInterval&&a!==A&&!a.frameElement)a=A;var e,j;if(d.handler){e=d;d=e.handler}if(!d.guid)d.guid=c.guid++;if(j=c.data(a)){var i=j.events=j.events||{},o=j.handle;if(!o)j.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem,arguments):w};o.elem=a;b=b.split(" ");for(var k,n=0,r;k=b[n++];){j=e?c.extend({},e):{handler:d,data:f};if(k.indexOf(".")>-1){r=k.split(".");
k=r.shift();j.namespace=r.slice(0).sort().join(".")}else{r=[];j.namespace=""}j.type=k;j.guid=d.guid;var u=i[k],z=c.event.special[k]||{};if(!u){u=i[k]=[];if(!z.setup||z.setup.call(a,f,r,o)===false)if(a.addEventListener)a.addEventListener(k,o,false);else a.attachEvent&&a.attachEvent("on"+k,o)}if(z.add){z.add.call(a,j);if(!j.handler.guid)j.handler.guid=d.guid}u.push(j);c.event.global[k]=true}a=null}}},global:{},remove:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){var e,j=0,i,o,k,n,r,u,z=c.data(a),
C=z&&z.events;if(z&&C){if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(e in C)c.event.remove(a,e+b)}else{for(b=b.split(" ");e=b[j++];){n=e;i=e.indexOf(".")<0;o=[];if(!i){o=e.split(".");e=o.shift();k=new RegExp("(^|\\.)"+c.map(o.slice(0).sort(),db).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(r=C[e])if(d){n=c.event.special[e]||{};for(B=f||0;B<r.length;B++){u=r[B];if(d.guid===u.guid){if(i||k.test(u.namespace)){f==null&&r.splice(B--,1);n.remove&&n.remove.call(a,u)}if(f!=
null)break}}if(r.length===0||f!=null&&r.length===1){if(!n.teardown||n.teardown.call(a,o)===false)Ca(a,e,z.handle);delete C[e]}}else for(var B=0;B<r.length;B++){u=r[B];if(i||k.test(u.namespace)){c.event.remove(a,n,u.handler,B);r.splice(B--,1)}}}if(c.isEmptyObject(C)){if(b=z.handle)b.elem=null;delete z.events;delete z.handle;c.isEmptyObject(z)&&c.removeData(a)}}}}},trigger:function(a,b,d,f){var e=a.type||a;if(!f){a=typeof a==="object"?a[G]?a:c.extend(c.Event(e),a):c.Event(e);if(e.indexOf("!")>=0){a.type=
e=e.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[e]&&c.each(c.cache,function(){this.events&&this.events[e]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===8)return w;a.result=w;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(f=c.data(d,"handle"))&&f.apply(d,b);f=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+e]&&d["on"+e].apply(d,b)===false)a.result=false}catch(j){}if(!a.isPropagationStopped()&&
f)c.event.trigger(a,b,f,true);else if(!a.isDefaultPrevented()){f=a.target;var i,o=c.nodeName(f,"a")&&e==="click",k=c.event.special[e]||{};if((!k._default||k._default.call(d,a)===false)&&!o&&!(f&&f.nodeName&&c.noData[f.nodeName.toLowerCase()])){try{if(f[e]){if(i=f["on"+e])f["on"+e]=null;c.event.triggered=true;f[e]()}}catch(n){}if(i)f["on"+e]=i;c.event.triggered=false}}},handle:function(a){var b,d,f,e;a=arguments[0]=c.event.fix(a||A.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive;
if(!b){d=a.type.split(".");a.type=d.shift();f=new RegExp("(^|\\.)"+d.slice(0).sort().join("\\.(?:.*\\.)?")+"(\\.|$)")}e=c.data(this,"events");d=e[a.type];if(e&&d){d=d.slice(0);e=0;for(var j=d.length;e<j;e++){var i=d[e];if(b||f.test(i.namespace)){a.handler=i.handler;a.data=i.data;a.handleObj=i;i=i.handler.apply(this,arguments);if(i!==w){a.result=i;if(i===false){a.preventDefault();a.stopPropagation()}}if(a.isImmediatePropagationStopped())break}}}return a.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),
fix:function(a){if(a[G])return a;var b=a;a=c.Event(b);for(var d=this.props.length,f;d;){f=this.props[--d];a[f]=b[f]}if(!a.target)a.target=a.srcElement||s;if(a.target.nodeType===3)a.target=a.target.parentNode;if(!a.relatedTarget&&a.fromElement)a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement;if(a.pageX==null&&a.clientX!=null){b=s.documentElement;d=s.body;a.pageX=a.clientX+(b&&b.scrollLeft||d&&d.scrollLeft||0)-(b&&b.clientLeft||d&&d.clientLeft||0);a.pageY=a.clientY+(b&&b.scrollTop||
d&&d.scrollTop||0)-(b&&b.clientTop||d&&d.clientTop||0)}if(!a.which&&(a.charCode||a.charCode===0?a.charCode:a.keyCode))a.which=a.charCode||a.keyCode;if(!a.metaKey&&a.ctrlKey)a.metaKey=a.ctrlKey;if(!a.which&&a.button!==w)a.which=a.button&1?1:a.button&2?3:a.button&4?2:0;return a},guid:1E8,proxy:c.proxy,special:{ready:{setup:c.bindReady,teardown:c.noop},live:{add:function(a){c.event.add(this,a.origType,c.extend({},a,{handler:oa}))},remove:function(a){var b=true,d=a.origType.replace(O,"");c.each(c.data(this,
"events").live||[],function(){if(d===this.origType.replace(O,""))return b=false});b&&c.event.remove(this,a.origType,oa)}},beforeunload:{setup:function(a,b,d){if(this.setInterval)this.onbeforeunload=d;return false},teardown:function(a,b){if(this.onbeforeunload===b)this.onbeforeunload=null}}}};var Ca=s.removeEventListener?function(a,b,d){a.removeEventListener(b,d,false)}:function(a,b,d){a.detachEvent("on"+b,d)};c.Event=function(a){if(!this.preventDefault)return new c.Event(a);if(a&&a.type){this.originalEvent=
a;this.type=a.type}else this.type=a;this.timeStamp=J();this[G]=true};c.Event.prototype={preventDefault:function(){this.isDefaultPrevented=Z;var a=this.originalEvent;if(a){a.preventDefault&&a.preventDefault();a.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=Z;var a=this.originalEvent;if(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=true}},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=Z;this.stopPropagation()},isDefaultPrevented:Y,isPropagationStopped:Y,
isImmediatePropagationStopped:Y};var Da=function(a){var b=a.relatedTarget;try{for(;b&&b!==this;)b=b.parentNode;if(b!==this){a.type=a.data;c.event.handle.apply(this,arguments)}}catch(d){}},Ea=function(a){a.type=a.data;c.event.handle.apply(this,arguments)};c.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){c.event.special[a]={setup:function(d){c.event.add(this,b,d&&d.selector?Ea:Da,a)},teardown:function(d){c.event.remove(this,b,d&&d.selector?Ea:Da)}}});if(!c.support.submitBubbles)c.event.special.submit=
{setup:function(){if(this.nodeName.toLowerCase()!=="form"){c.event.add(this,"click.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="submit"||d==="image")&&c(b).closest("form").length)return na("submit",this,arguments)});c.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="text"||d==="password")&&c(b).closest("form").length&&a.keyCode===13)return na("submit",this,arguments)})}else return false},teardown:function(){c.event.remove(this,".specialSubmit")}};
if(!c.support.changeBubbles){var da=/textarea|input|select/i,ea,Fa=function(a){var b=a.type,d=a.value;if(b==="radio"||b==="checkbox")d=a.checked;else if(b==="select-multiple")d=a.selectedIndex>-1?c.map(a.options,function(f){return f.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},fa=function(a,b){var d=a.target,f,e;if(!(!da.test(d.nodeName)||d.readOnly)){f=c.data(d,"_change_data");e=Fa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data",
e);if(!(f===w||e===f))if(f!=null||e){a.type="change";return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:fa,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return fa.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return fa.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a,
"_change_data",Fa(a))}},setup:function(){if(this.type==="file")return false;for(var a in ea)c.event.add(this,a+".specialChange",ea[a]);return da.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return da.test(this.nodeName)}};ea=c.event.special.change.filters}s.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(f){f=c.event.fix(f);f.type=b;return c.event.handle.call(this,f)}c.event.special[b]={setup:function(){this.addEventListener(a,
d,true)},teardown:function(){this.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,f,e){if(typeof d==="object"){for(var j in d)this[b](j,f,d[j],e);return this}if(c.isFunction(f)){e=f;f=w}var i=b==="one"?c.proxy(e,function(k){c(this).unbind(k,i);return e.apply(this,arguments)}):e;if(d==="unload"&&b!=="one")this.one(d,f,e);else{j=0;for(var o=this.length;j<o;j++)c.event.add(this[j],d,i,f)}return this}});c.fn.extend({unbind:function(a,b){if(typeof a==="object"&&
!a.preventDefault)for(var d in a)this.unbind(d,a[d]);else{d=0;for(var f=this.length;d<f;d++)c.event.remove(this[d],a,b)}return this},delegate:function(a,b,d,f){return this.live(b,d,f,a)},undelegate:function(a,b,d){return arguments.length===0?this.unbind("live"):this.die(b,null,d,a)},trigger:function(a,b){return this.each(function(){c.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){a=c.Event(a);a.preventDefault();a.stopPropagation();c.event.trigger(a,b,this[0]);return a.result}},
toggle:function(a){for(var b=arguments,d=1;d<b.length;)c.proxy(a,b[d++]);return this.click(c.proxy(a,function(f){var e=(c.data(this,"lastToggle"+a.guid)||0)%d;c.data(this,"lastToggle"+a.guid,e+1);f.preventDefault();return b[e].apply(this,arguments)||false}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var Ga={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};c.each(["live","die"],function(a,b){c.fn[b]=function(d,f,e,j){var i,o=0,k,n,r=j||this.selector,
u=j?this:c(this.context);if(c.isFunction(f)){e=f;f=w}for(d=(d||"").split(" ");(i=d[o++])!=null;){j=O.exec(i);k="";if(j){k=j[0];i=i.replace(O,"")}if(i==="hover")d.push("mouseenter"+k,"mouseleave"+k);else{n=i;if(i==="focus"||i==="blur"){d.push(Ga[i]+k);i+=k}else i=(Ga[i]||i)+k;b==="live"?u.each(function(){c.event.add(this,pa(i,r),{data:f,selector:r,handler:e,origType:i,origHandler:e,preType:n})}):u.unbind(pa(i,r),e)}}return this}});c.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),
function(a,b){c.fn[b]=function(d){return d?this.bind(b,d):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});A.attachEvent&&!A.addEventListener&&A.attachEvent("onunload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}});(function(){function a(g){for(var h="",l,m=0;g[m];m++){l=g[m];if(l.nodeType===3||l.nodeType===4)h+=l.nodeValue;else if(l.nodeType!==8)h+=a(l.childNodes)}return h}function b(g,h,l,m,q,p){q=0;for(var v=m.length;q<v;q++){var t=m[q];
if(t){t=t[g];for(var y=false;t;){if(t.sizcache===l){y=m[t.sizset];break}if(t.nodeType===1&&!p){t.sizcache=l;t.sizset=q}if(t.nodeName.toLowerCase()===h){y=t;break}t=t[g]}m[q]=y}}}function d(g,h,l,m,q,p){q=0;for(var v=m.length;q<v;q++){var t=m[q];if(t){t=t[g];for(var y=false;t;){if(t.sizcache===l){y=m[t.sizset];break}if(t.nodeType===1){if(!p){t.sizcache=l;t.sizset=q}if(typeof h!=="string"){if(t===h){y=true;break}}else if(k.filter(h,[t]).length>0){y=t;break}}t=t[g]}m[q]=y}}}var f=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,
e=0,j=Object.prototype.toString,i=false,o=true;[0,0].sort(function(){o=false;return 0});var k=function(g,h,l,m){l=l||[];var q=h=h||s;if(h.nodeType!==1&&h.nodeType!==9)return[];if(!g||typeof g!=="string")return l;for(var p=[],v,t,y,S,H=true,M=x(h),I=g;(f.exec(""),v=f.exec(I))!==null;){I=v[3];p.push(v[1]);if(v[2]){S=v[3];break}}if(p.length>1&&r.exec(g))if(p.length===2&&n.relative[p[0]])t=ga(p[0]+p[1],h);else for(t=n.relative[p[0]]?[h]:k(p.shift(),h);p.length;){g=p.shift();if(n.relative[g])g+=p.shift();
t=ga(g,t)}else{if(!m&&p.length>1&&h.nodeType===9&&!M&&n.match.ID.test(p[0])&&!n.match.ID.test(p[p.length-1])){v=k.find(p.shift(),h,M);h=v.expr?k.filter(v.expr,v.set)[0]:v.set[0]}if(h){v=m?{expr:p.pop(),set:z(m)}:k.find(p.pop(),p.length===1&&(p[0]==="~"||p[0]==="+")&&h.parentNode?h.parentNode:h,M);t=v.expr?k.filter(v.expr,v.set):v.set;if(p.length>0)y=z(t);else H=false;for(;p.length;){var D=p.pop();v=D;if(n.relative[D])v=p.pop();else D="";if(v==null)v=h;n.relative[D](y,v,M)}}else y=[]}y||(y=t);y||k.error(D||
g);if(j.call(y)==="[object Array]")if(H)if(h&&h.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&E(h,y[g])))l.push(t[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&l.push(t[g]);else l.push.apply(l,y);else z(y,l);if(S){k(S,q,l,m);k.uniqueSort(l)}return l};k.uniqueSort=function(g){if(B){i=o;g.sort(B);if(i)for(var h=1;h<g.length;h++)g[h]===g[h-1]&&g.splice(h--,1)}return g};k.matches=function(g,h){return k(g,null,null,h)};k.find=function(g,h,l){var m,q;if(!g)return[];
for(var p=0,v=n.order.length;p<v;p++){var t=n.order[p];if(q=n.leftMatch[t].exec(g)){var y=q[1];q.splice(1,1);if(y.substr(y.length-1)!=="\\"){q[1]=(q[1]||"").replace(/\\/g,"");m=n.find[t](q,h,l);if(m!=null){g=g.replace(n.match[t],"");break}}}}m||(m=h.getElementsByTagName("*"));return{set:m,expr:g}};k.filter=function(g,h,l,m){for(var q=g,p=[],v=h,t,y,S=h&&h[0]&&x(h[0]);g&&h.length;){for(var H in n.filter)if((t=n.leftMatch[H].exec(g))!=null&&t[2]){var M=n.filter[H],I,D;D=t[1];y=false;t.splice(1,1);if(D.substr(D.length-
1)!=="\\"){if(v===p)p=[];if(n.preFilter[H])if(t=n.preFilter[H](t,v,l,p,m,S)){if(t===true)continue}else y=I=true;if(t)for(var U=0;(D=v[U])!=null;U++)if(D){I=M(D,t,U,v);var Ha=m^!!I;if(l&&I!=null)if(Ha)y=true;else v[U]=false;else if(Ha){p.push(D);y=true}}if(I!==w){l||(v=p);g=g.replace(n.match[H],"");if(!y)return[];break}}}if(g===q)if(y==null)k.error(g);else break;q=g}return v};k.error=function(g){throw"Syntax error, unrecognized expression: "+g;};var n=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF-]|\\.)+)/,
CLASS:/\.((?:[\w\u00c0-\uFFFF-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(g){return g.getAttribute("href")}},
relative:{"+":function(g,h){var l=typeof h==="string",m=l&&!/\W/.test(h);l=l&&!m;if(m)h=h.toLowerCase();m=0;for(var q=g.length,p;m<q;m++)if(p=g[m]){for(;(p=p.previousSibling)&&p.nodeType!==1;);g[m]=l||p&&p.nodeName.toLowerCase()===h?p||false:p===h}l&&k.filter(h,g,true)},">":function(g,h){var l=typeof h==="string";if(l&&!/\W/.test(h)){h=h.toLowerCase();for(var m=0,q=g.length;m<q;m++){var p=g[m];if(p){l=p.parentNode;g[m]=l.nodeName.toLowerCase()===h?l:false}}}else{m=0;for(q=g.length;m<q;m++)if(p=g[m])g[m]=
l?p.parentNode:p.parentNode===h;l&&k.filter(h,g,true)}},"":function(g,h,l){var m=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=h=h.toLowerCase();q=b}q("parentNode",h,m,g,p,l)},"~":function(g,h,l){var m=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=h=h.toLowerCase();q=b}q("previousSibling",h,m,g,p,l)}},find:{ID:function(g,h,l){if(typeof h.getElementById!=="undefined"&&!l)return(g=h.getElementById(g[1]))?[g]:[]},NAME:function(g,h){if(typeof h.getElementsByName!=="undefined"){var l=[];
h=h.getElementsByName(g[1]);for(var m=0,q=h.length;m<q;m++)h[m].getAttribute("name")===g[1]&&l.push(h[m]);return l.length===0?null:l}},TAG:function(g,h){return h.getElementsByTagName(g[1])}},preFilter:{CLASS:function(g,h,l,m,q,p){g=" "+g[1].replace(/\\/g,"")+" ";if(p)return g;p=0;for(var v;(v=h[p])!=null;p++)if(v)if(q^(v.className&&(" "+v.className+" ").replace(/[\t\n]/g," ").indexOf(g)>=0))l||m.push(v);else if(l)h[p]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()},
CHILD:function(g){if(g[1]==="nth"){var h=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=h[1]+(h[2]||1)-0;g[3]=h[3]-0}g[0]=e++;return g},ATTR:function(g,h,l,m,q,p){h=g[1].replace(/\\/g,"");if(!p&&n.attrMap[h])g[1]=n.attrMap[h];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,h,l,m,q){if(g[1]==="not")if((f.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,h);else{g=k.filter(g[3],h,l,true^q);l||m.push.apply(m,
g);return false}else if(n.match.POS.test(g[0])||n.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,h,l){return!!k(l[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)},
text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}},
setFilters:{first:function(g,h){return h===0},last:function(g,h,l,m){return h===m.length-1},even:function(g,h){return h%2===0},odd:function(g,h){return h%2===1},lt:function(g,h,l){return h<l[3]-0},gt:function(g,h,l){return h>l[3]-0},nth:function(g,h,l){return l[3]-0===h},eq:function(g,h,l){return l[3]-0===h}},filter:{PSEUDO:function(g,h,l,m){var q=h[1],p=n.filters[q];if(p)return p(g,l,h,m);else if(q==="contains")return(g.textContent||g.innerText||a([g])||"").indexOf(h[3])>=0;else if(q==="not"){h=
h[3];l=0;for(m=h.length;l<m;l++)if(h[l]===g)return false;return true}else k.error("Syntax error, unrecognized expression: "+q)},CHILD:function(g,h){var l=h[1],m=g;switch(l){case "only":case "first":for(;m=m.previousSibling;)if(m.nodeType===1)return false;if(l==="first")return true;m=g;case "last":for(;m=m.nextSibling;)if(m.nodeType===1)return false;return true;case "nth":l=h[2];var q=h[3];if(l===1&&q===0)return true;h=h[0];var p=g.parentNode;if(p&&(p.sizcache!==h||!g.nodeIndex)){var v=0;for(m=p.firstChild;m;m=
m.nextSibling)if(m.nodeType===1)m.nodeIndex=++v;p.sizcache=h}g=g.nodeIndex-q;return l===0?g===0:g%l===0&&g/l>=0}},ID:function(g,h){return g.nodeType===1&&g.getAttribute("id")===h},TAG:function(g,h){return h==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===h},CLASS:function(g,h){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(h)>-1},ATTR:function(g,h){var l=h[1];g=n.attrHandle[l]?n.attrHandle[l](g):g[l]!=null?g[l]:g.getAttribute(l);l=g+"";var m=h[2];h=h[4];return g==null?m==="!=":m===
"="?l===h:m==="*="?l.indexOf(h)>=0:m==="~="?(" "+l+" ").indexOf(h)>=0:!h?l&&g!==false:m==="!="?l!==h:m==="^="?l.indexOf(h)===0:m==="$="?l.substr(l.length-h.length)===h:m==="|="?l===h||l.substr(0,h.length+1)===h+"-":false},POS:function(g,h,l,m){var q=n.setFilters[h[2]];if(q)return q(g,l,h,m)}}},r=n.match.POS;for(var u in n.match){n.match[u]=new RegExp(n.match[u].source+/(?![^\[]*\])(?![^\(]*\))/.source);n.leftMatch[u]=new RegExp(/(^(?:.|\r|\n)*?)/.source+n.match[u].source.replace(/\\(\d+)/g,function(g,
h){return"\\"+(h-0+1)}))}var z=function(g,h){g=Array.prototype.slice.call(g,0);if(h){h.push.apply(h,g);return h}return g};try{Array.prototype.slice.call(s.documentElement.childNodes,0)}catch(C){z=function(g,h){h=h||[];if(j.call(g)==="[object Array]")Array.prototype.push.apply(h,g);else if(typeof g.length==="number")for(var l=0,m=g.length;l<m;l++)h.push(g[l]);else for(l=0;g[l];l++)h.push(g[l]);return h}}var B;if(s.documentElement.compareDocumentPosition)B=function(g,h){if(!g.compareDocumentPosition||
!h.compareDocumentPosition){if(g==h)i=true;return g.compareDocumentPosition?-1:1}g=g.compareDocumentPosition(h)&4?-1:g===h?0:1;if(g===0)i=true;return g};else if("sourceIndex"in s.documentElement)B=function(g,h){if(!g.sourceIndex||!h.sourceIndex){if(g==h)i=true;return g.sourceIndex?-1:1}g=g.sourceIndex-h.sourceIndex;if(g===0)i=true;return g};else if(s.createRange)B=function(g,h){if(!g.ownerDocument||!h.ownerDocument){if(g==h)i=true;return g.ownerDocument?-1:1}var l=g.ownerDocument.createRange(),m=
h.ownerDocument.createRange();l.setStart(g,0);l.setEnd(g,0);m.setStart(h,0);m.setEnd(h,0);g=l.compareBoundaryPoints(Range.START_TO_END,m);if(g===0)i=true;return g};(function(){var g=s.createElement("div"),h="script"+(new Date).getTime();g.innerHTML="<a name='"+h+"'/>";var l=s.documentElement;l.insertBefore(g,l.firstChild);if(s.getElementById(h)){n.find.ID=function(m,q,p){if(typeof q.getElementById!=="undefined"&&!p)return(q=q.getElementById(m[1]))?q.id===m[1]||typeof q.getAttributeNode!=="undefined"&&
q.getAttributeNode("id").nodeValue===m[1]?[q]:w:[]};n.filter.ID=function(m,q){var p=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&p&&p.nodeValue===q}}l.removeChild(g);l=g=null})();(function(){var g=s.createElement("div");g.appendChild(s.createComment(""));if(g.getElementsByTagName("*").length>0)n.find.TAG=function(h,l){l=l.getElementsByTagName(h[1]);if(h[1]==="*"){h=[];for(var m=0;l[m];m++)l[m].nodeType===1&&h.push(l[m]);l=h}return l};g.innerHTML="<a href='#'></a>";
if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")n.attrHandle.href=function(h){return h.getAttribute("href",2)};g=null})();s.querySelectorAll&&function(){var g=k,h=s.createElement("div");h.innerHTML="<p class='TEST'></p>";if(!(h.querySelectorAll&&h.querySelectorAll(".TEST").length===0)){k=function(m,q,p,v){q=q||s;if(!v&&q.nodeType===9&&!x(q))try{return z(q.querySelectorAll(m),p)}catch(t){}return g(m,q,p,v)};for(var l in g)k[l]=g[l];h=null}}();
(function(){var g=s.createElement("div");g.innerHTML="<div class='test e'></div><div class='test'></div>";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){n.order.splice(1,0,"CLASS");n.find.CLASS=function(h,l,m){if(typeof l.getElementsByClassName!=="undefined"&&!m)return l.getElementsByClassName(h[1])};g=null}}})();var E=s.compareDocumentPosition?function(g,h){return!!(g.compareDocumentPosition(h)&16)}:
function(g,h){return g!==h&&(g.contains?g.contains(h):true)},x=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false},ga=function(g,h){var l=[],m="",q;for(h=h.nodeType?[h]:h;q=n.match.PSEUDO.exec(g);){m+=q[0];g=g.replace(n.match.PSEUDO,"")}g=n.relative[g]?g+"*":g;q=0;for(var p=h.length;q<p;q++)k(g,h[q],l);return k.filter(m,l)};c.find=k;c.expr=k.selectors;c.expr[":"]=c.expr.filters;c.unique=k.uniqueSort;c.text=a;c.isXMLDoc=x;c.contains=E})();var eb=/Until$/,fb=/^(?:parents|prevUntil|prevAll)/,
gb=/,/;R=Array.prototype.slice;var Ia=function(a,b,d){if(c.isFunction(b))return c.grep(a,function(e,j){return!!b.call(e,j,e)===d});else if(b.nodeType)return c.grep(a,function(e){return e===b===d});else if(typeof b==="string"){var f=c.grep(a,function(e){return e.nodeType===1});if(Ua.test(b))return c.filter(b,f,!d);else b=c.filter(b,f)}return c.grep(a,function(e){return c.inArray(e,b)>=0===d})};c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,f=0,e=this.length;f<e;f++){d=b.length;
c.find(a,this[f],b);if(f>0)for(var j=d;j<b.length;j++)for(var i=0;i<d;i++)if(b[i]===b[j]){b.splice(j--,1);break}}return b},has:function(a){var b=c(a);return this.filter(function(){for(var d=0,f=b.length;d<f;d++)if(c.contains(this,b[d]))return true})},not:function(a){return this.pushStack(Ia(this,a,false),"not",a)},filter:function(a){return this.pushStack(Ia(this,a,true),"filter",a)},is:function(a){return!!a&&c.filter(a,this).length>0},closest:function(a,b){if(c.isArray(a)){var d=[],f=this[0],e,j=
{},i;if(f&&a.length){e=0;for(var o=a.length;e<o;e++){i=a[e];j[i]||(j[i]=c.expr.match.POS.test(i)?c(i,b||this.context):i)}for(;f&&f.ownerDocument&&f!==b;){for(i in j){e=j[i];if(e.jquery?e.index(f)>-1:c(f).is(e)){d.push({selector:i,elem:f});delete j[i]}}f=f.parentNode}}return d}var k=c.expr.match.POS.test(a)?c(a,b||this.context):null;return this.map(function(n,r){for(;r&&r.ownerDocument&&r!==b;){if(k?k.index(r)>-1:c(r).is(a))return r;r=r.parentNode}return null})},index:function(a){if(!a||typeof a===
"string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){a=typeof a==="string"?c(a,b||this.context):c.makeArray(a);b=c.merge(this.get(),a);return this.pushStack(qa(a[0])||qa(b[0])?b:c.unique(b))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode",
d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")?
a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,b){c.fn[a]=function(d,f){var e=c.map(this,b,d);eb.test(a)||(f=d);if(f&&typeof f==="string")e=c.filter(f,e);e=this.length>1?c.unique(e):e;if((this.length>1||gb.test(f))&&fb.test(a))e=e.reverse();return this.pushStack(e,a,R.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return c.find.matches(a,b)},dir:function(a,b,d){var f=[];for(a=a[b];a&&a.nodeType!==9&&(d===w||a.nodeType!==1||!c(a).is(d));){a.nodeType===
1&&f.push(a);a=a[b]}return f},nth:function(a,b,d){b=b||1;for(var f=0;a;a=a[d])if(a.nodeType===1&&++f===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var Ja=/ jQuery\d+="(?:\d+|null)"/g,V=/^\s+/,Ka=/(<([\w:]+)[^>]*?)\/>/g,hb=/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i,La=/<([\w:]+)/,ib=/<tbody/i,jb=/<|&#?\w+;/,ta=/<script|<object|<embed|<option|<style/i,ua=/checked\s*(?:[^=]|=\s*.checked.)/i,Ma=function(a,b,d){return hb.test(d)?
a:b+"></"+d+">"},F={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};F.optgroup=F.option;F.tbody=F.tfoot=F.colgroup=F.caption=F.thead;F.th=F.td;if(!c.support.htmlSerialize)F._default=[1,"div<div>","</div>"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d=
c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==w)return this.empty().append((this[0]&&this[0].ownerDocument||s).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this},
wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})},
prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,
this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,f;(f=this[d])!=null;d++)if(!a||c.filter(a,[f]).length){if(!b&&f.nodeType===1){c.cleanData(f.getElementsByTagName("*"));c.cleanData([f])}f.parentNode&&f.parentNode.removeChild(f)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild);
return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,f=this.ownerDocument;if(!d){d=f.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(Ja,"").replace(/=([^="'>\s]+\/)>/g,'="$1">').replace(V,"")],f)[0]}else return this.cloneNode(true)});if(a===true){ra(this,b);ra(this.find("*"),b.find("*"))}return b},html:function(a){if(a===w)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Ja,
""):null;else if(typeof a==="string"&&!ta.test(a)&&(c.support.leadingWhitespace||!V.test(a))&&!F[(La.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Ka,Ma);try{for(var b=0,d=this.length;b<d;b++)if(this[b].nodeType===1){c.cleanData(this[b].getElementsByTagName("*"));this[b].innerHTML=a}}catch(f){this.empty().append(a)}}else c.isFunction(a)?this.each(function(e){var j=c(this),i=j.html();j.empty().append(function(){return a.call(this,e,i)})}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&
this[0].parentNode){if(c.isFunction(a))return this.each(function(b){var d=c(this),f=d.html();d.replaceWith(a.call(this,b,f))});if(typeof a!=="string")a=c(a).detach();return this.each(function(){var b=this.nextSibling,d=this.parentNode;c(this).remove();b?c(b).before(a):c(d).append(a)})}else return this.pushStack(c(c.isFunction(a)?a():a),"replaceWith",a)},detach:function(a){return this.remove(a,true)},domManip:function(a,b,d){function f(u){return c.nodeName(u,"table")?u.getElementsByTagName("tbody")[0]||
u.appendChild(u.ownerDocument.createElement("tbody")):u}var e,j,i=a[0],o=[],k;if(!c.support.checkClone&&arguments.length===3&&typeof i==="string"&&ua.test(i))return this.each(function(){c(this).domManip(a,b,d,true)});if(c.isFunction(i))return this.each(function(u){var z=c(this);a[0]=i.call(this,u,b?z.html():w);z.domManip(a,b,d)});if(this[0]){e=i&&i.parentNode;e=c.support.parentNode&&e&&e.nodeType===11&&e.childNodes.length===this.length?{fragment:e}:sa(a,this,o);k=e.fragment;if(j=k.childNodes.length===
1?(k=k.firstChild):k.firstChild){b=b&&c.nodeName(j,"tr");for(var n=0,r=this.length;n<r;n++)d.call(b?f(this[n],j):this[n],n>0||e.cacheable||this.length>1?k.cloneNode(true):k)}o.length&&c.each(o,Qa)}return this}});c.fragments={};c.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var f=[];d=c(d);var e=this.length===1&&this[0].parentNode;if(e&&e.nodeType===11&&e.childNodes.length===1&&d.length===1){d[b](this[0]);
return this}else{e=0;for(var j=d.length;e<j;e++){var i=(e>0?this.clone(true):this).get();c.fn[b].apply(c(d[e]),i);f=f.concat(i)}return this.pushStack(f,a,d.selector)}}});c.extend({clean:function(a,b,d,f){b=b||s;if(typeof b.createElement==="undefined")b=b.ownerDocument||b[0]&&b[0].ownerDocument||s;for(var e=[],j=0,i;(i=a[j])!=null;j++){if(typeof i==="number")i+="";if(i){if(typeof i==="string"&&!jb.test(i))i=b.createTextNode(i);else if(typeof i==="string"){i=i.replace(Ka,Ma);var o=(La.exec(i)||["",
""])[1].toLowerCase(),k=F[o]||F._default,n=k[0],r=b.createElement("div");for(r.innerHTML=k[1]+i+k[2];n--;)r=r.lastChild;if(!c.support.tbody){n=ib.test(i);o=o==="table"&&!n?r.firstChild&&r.firstChild.childNodes:k[1]==="<table>"&&!n?r.childNodes:[];for(k=o.length-1;k>=0;--k)c.nodeName(o[k],"tbody")&&!o[k].childNodes.length&&o[k].parentNode.removeChild(o[k])}!c.support.leadingWhitespace&&V.test(i)&&r.insertBefore(b.createTextNode(V.exec(i)[0]),r.firstChild);i=r.childNodes}if(i.nodeType)e.push(i);else e=
c.merge(e,i)}}if(d)for(j=0;e[j];j++)if(f&&c.nodeName(e[j],"script")&&(!e[j].type||e[j].type.toLowerCase()==="text/javascript"))f.push(e[j].parentNode?e[j].parentNode.removeChild(e[j]):e[j]);else{e[j].nodeType===1&&e.splice.apply(e,[j+1,0].concat(c.makeArray(e[j].getElementsByTagName("script"))));d.appendChild(e[j])}return e},cleanData:function(a){for(var b,d,f=c.cache,e=c.event.special,j=c.support.deleteExpando,i=0,o;(o=a[i])!=null;i++)if(d=o[c.expando]){b=f[d];if(b.events)for(var k in b.events)e[k]?
c.event.remove(o,k):Ca(o,k,b.handle);if(j)delete o[c.expando];else o.removeAttribute&&o.removeAttribute(c.expando);delete f[d]}}});var kb=/z-?index|font-?weight|opacity|zoom|line-?height/i,Na=/alpha\([^)]*\)/,Oa=/opacity=([^)]*)/,ha=/float/i,ia=/-([a-z])/ig,lb=/([A-Z])/g,mb=/^-?\d+(?:px)?$/i,nb=/^-?\d/,ob={position:"absolute",visibility:"hidden",display:"block"},pb=["Left","Right"],qb=["Top","Bottom"],rb=s.defaultView&&s.defaultView.getComputedStyle,Pa=c.support.cssFloat?"cssFloat":"styleFloat",ja=
function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){return X(this,a,b,true,function(d,f,e){if(e===w)return c.curCSS(d,f);if(typeof e==="number"&&!kb.test(f))e+="px";c.style(d,f,e)})};c.extend({style:function(a,b,d){if(!a||a.nodeType===3||a.nodeType===8)return w;if((b==="width"||b==="height")&&parseFloat(d)<0)d=w;var f=a.style||a,e=d!==w;if(!c.support.opacity&&b==="opacity"){if(e){f.zoom=1;b=parseInt(d,10)+""==="NaN"?"":"alpha(opacity="+d*100+")";a=f.filter||c.curCSS(a,"filter")||"";f.filter=
Na.test(a)?a.replace(Na,b):b}return f.filter&&f.filter.indexOf("opacity=")>=0?parseFloat(Oa.exec(f.filter)[1])/100+"":""}if(ha.test(b))b=Pa;b=b.replace(ia,ja);if(e)f[b]=d;return f[b]},css:function(a,b,d,f){if(b==="width"||b==="height"){var e,j=b==="width"?pb:qb;function i(){e=b==="width"?a.offsetWidth:a.offsetHeight;f!=="border"&&c.each(j,function(){f||(e-=parseFloat(c.curCSS(a,"padding"+this,true))||0);if(f==="margin")e+=parseFloat(c.curCSS(a,"margin"+this,true))||0;else e-=parseFloat(c.curCSS(a,
"border"+this+"Width",true))||0})}a.offsetWidth!==0?i():c.swap(a,ob,i);return Math.max(0,Math.round(e))}return c.curCSS(a,b,d)},curCSS:function(a,b,d){var f,e=a.style;if(!c.support.opacity&&b==="opacity"&&a.currentStyle){f=Oa.test(a.currentStyle.filter||"")?parseFloat(RegExp.$1)/100+"":"";return f===""?"1":f}if(ha.test(b))b=Pa;if(!d&&e&&e[b])f=e[b];else if(rb){if(ha.test(b))b="float";b=b.replace(lb,"-$1").toLowerCase();e=a.ownerDocument.defaultView;if(!e)return null;if(a=e.getComputedStyle(a,null))f=
a.getPropertyValue(b);if(b==="opacity"&&f==="")f="1"}else if(a.currentStyle){d=b.replace(ia,ja);f=a.currentStyle[b]||a.currentStyle[d];if(!mb.test(f)&&nb.test(f)){b=e.left;var j=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;e.left=d==="fontSize"?"1em":f||0;f=e.pixelLeft+"px";e.left=b;a.runtimeStyle.left=j}}return f},swap:function(a,b,d){var f={};for(var e in b){f[e]=a.style[e];a.style[e]=b[e]}d.call(a);for(e in b)a.style[e]=f[e]}});if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b=
a.offsetWidth,d=a.offsetHeight,f=a.nodeName.toLowerCase()==="tr";return b===0&&d===0&&!f?true:b>0&&d>0&&!f?false:c.curCSS(a,"display")==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var sb=J(),tb=/<script(.|\s)*?\/script>/gi,ub=/select|textarea/i,vb=/color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i,N=/=\?(&|$)/,ka=/\?/,wb=/(\?|&)_=.*?(&|$)/,xb=/^(\w+:)?\/\/([^\/?#]+)/,yb=/%20/g,zb=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!==
"string")return zb.call(this,a);else if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var e=a.slice(f,a.length);a=a.slice(0,f)}f="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b==="object"){b=c.param(b,c.ajaxSettings.traditional);f="POST"}var j=this;c.ajax({url:a,type:f,dataType:"html",data:b,complete:function(i,o){if(o==="success"||o==="notmodified")j.html(e?c("<div />").append(i.responseText.replace(tb,"")).find(e):i.responseText);d&&j.each(d,[i.responseText,o,i])}});return this},
serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||ub.test(this.nodeName)||vb.test(this.type))}).map(function(a,b){a=c(this).val();return a==null?null:c.isArray(a)?c.map(a,function(d){return{name:b.name,value:d}}):{name:b.name,value:a}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),
function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:f})},getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:f})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href,
global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:A.XMLHttpRequest&&(A.location.protocol!=="file:"||!A.ActiveXObject)?function(){return new A.XMLHttpRequest}:function(){try{return new A.ActiveXObject("Microsoft.XMLHTTP")}catch(a){}},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},etag:{},ajax:function(a){function b(){e.success&&
e.success.call(k,o,i,x);e.global&&f("ajaxSuccess",[x,e])}function d(){e.complete&&e.complete.call(k,x,i);e.global&&f("ajaxComplete",[x,e]);e.global&&!--c.active&&c.event.trigger("ajaxStop")}function f(q,p){(e.context?c(e.context):c.event).trigger(q,p)}var e=c.extend(true,{},c.ajaxSettings,a),j,i,o,k=a&&a.context||e,n=e.type.toUpperCase();if(e.data&&e.processData&&typeof e.data!=="string")e.data=c.param(e.data,e.traditional);if(e.dataType==="jsonp"){if(n==="GET")N.test(e.url)||(e.url+=(ka.test(e.url)?
"&":"?")+(e.jsonp||"callback")+"=?");else if(!e.data||!N.test(e.data))e.data=(e.data?e.data+"&":"")+(e.jsonp||"callback")+"=?";e.dataType="json"}if(e.dataType==="json"&&(e.data&&N.test(e.data)||N.test(e.url))){j=e.jsonpCallback||"jsonp"+sb++;if(e.data)e.data=(e.data+"").replace(N,"="+j+"$1");e.url=e.url.replace(N,"="+j+"$1");e.dataType="script";A[j]=A[j]||function(q){o=q;b();d();A[j]=w;try{delete A[j]}catch(p){}z&&z.removeChild(C)}}if(e.dataType==="script"&&e.cache===null)e.cache=false;if(e.cache===
false&&n==="GET"){var r=J(),u=e.url.replace(wb,"$1_="+r+"$2");e.url=u+(u===e.url?(ka.test(e.url)?"&":"?")+"_="+r:"")}if(e.data&&n==="GET")e.url+=(ka.test(e.url)?"&":"?")+e.data;e.global&&!c.active++&&c.event.trigger("ajaxStart");r=(r=xb.exec(e.url))&&(r[1]&&r[1]!==location.protocol||r[2]!==location.host);if(e.dataType==="script"&&n==="GET"&&r){var z=s.getElementsByTagName("head")[0]||s.documentElement,C=s.createElement("script");C.src=e.url;if(e.scriptCharset)C.charset=e.scriptCharset;if(!j){var B=
false;C.onload=C.onreadystatechange=function(){if(!B&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){B=true;b();d();C.onload=C.onreadystatechange=null;z&&C.parentNode&&z.removeChild(C)}}}z.insertBefore(C,z.firstChild);return w}var E=false,x=e.xhr();if(x){e.username?x.open(n,e.url,e.async,e.username,e.password):x.open(n,e.url,e.async);try{if(e.data||a&&a.contentType)x.setRequestHeader("Content-Type",e.contentType);if(e.ifModified){c.lastModified[e.url]&&x.setRequestHeader("If-Modified-Since",
c.lastModified[e.url]);c.etag[e.url]&&x.setRequestHeader("If-None-Match",c.etag[e.url])}r||x.setRequestHeader("X-Requested-With","XMLHttpRequest");x.setRequestHeader("Accept",e.dataType&&e.accepts[e.dataType]?e.accepts[e.dataType]+", */*":e.accepts._default)}catch(ga){}if(e.beforeSend&&e.beforeSend.call(k,x,e)===false){e.global&&!--c.active&&c.event.trigger("ajaxStop");x.abort();return false}e.global&&f("ajaxSend",[x,e]);var g=x.onreadystatechange=function(q){if(!x||x.readyState===0||q==="abort"){E||
d();E=true;if(x)x.onreadystatechange=c.noop}else if(!E&&x&&(x.readyState===4||q==="timeout")){E=true;x.onreadystatechange=c.noop;i=q==="timeout"?"timeout":!c.httpSuccess(x)?"error":e.ifModified&&c.httpNotModified(x,e.url)?"notmodified":"success";var p;if(i==="success")try{o=c.httpData(x,e.dataType,e)}catch(v){i="parsererror";p=v}if(i==="success"||i==="notmodified")j||b();else c.handleError(e,x,i,p);d();q==="timeout"&&x.abort();if(e.async)x=null}};try{var h=x.abort;x.abort=function(){x&&h.call(x);
g("abort")}}catch(l){}e.async&&e.timeout>0&&setTimeout(function(){x&&!E&&g("timeout")},e.timeout);try{x.send(n==="POST"||n==="PUT"||n==="DELETE"?e.data:null)}catch(m){c.handleError(e,x,null,m);d()}e.async||g();return x}},handleError:function(a,b,d,f){if(a.error)a.error.call(a.context||a,b,d,f);if(a.global)(a.context?c(a.context):c.event).trigger("ajaxError",[b,a,f])},active:0,httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status===
1223||a.status===0}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),f=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(f)c.etag[b]=f;return a.status===304||a.status===0},httpData:function(a,b,d){var f=a.getResponseHeader("content-type")||"",e=b==="xml"||!b&&f.indexOf("xml")>=0;a=e?a.responseXML:a.responseText;e&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b===
"json"||!b&&f.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&f.indexOf("javascript")>=0)c.globalEval(a);return a},param:function(a,b){function d(i,o){if(c.isArray(o))c.each(o,function(k,n){b||/\[\]$/.test(i)?f(i,n):d(i+"["+(typeof n==="object"||c.isArray(n)?k:"")+"]",n)});else!b&&o!=null&&typeof o==="object"?c.each(o,function(k,n){d(i+"["+k+"]",n)}):f(i,o)}function f(i,o){o=c.isFunction(o)?o():o;e[e.length]=encodeURIComponent(i)+"="+encodeURIComponent(o)}var e=[];if(b===w)b=c.ajaxSettings.traditional;
if(c.isArray(a)||a.jquery)c.each(a,function(){f(this.name,this.value)});else for(var j in a)d(j,a[j]);return e.join("&").replace(yb,"+")}});var la={},Ab=/toggle|show|hide/,Bb=/^([+-]=)?([\d+-.]+)(.*)$/,W,va=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b){if(a||a===0)return this.animate(K("show",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay");
this[a].style.display=d||"";if(c.css(this[a],"display")==="none"){d=this[a].nodeName;var f;if(la[d])f=la[d];else{var e=c("<"+d+" />").appendTo("body");f=e.css("display");if(f==="none")f="block";e.remove();la[d]=f}c.data(this[a],"olddisplay",f)}}a=0;for(b=this.length;a<b;a++)this[a].style.display=c.data(this[a],"olddisplay")||"";return this}},hide:function(a,b){if(a||a===0)return this.animate(K("hide",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay");!d&&d!=="none"&&c.data(this[a],
"olddisplay",c.css(this[a],"display"))}a=0;for(b=this.length;a<b;a++)this[a].style.display="none";return this}},_toggle:c.fn.toggle,toggle:function(a,b){var d=typeof a==="boolean";if(c.isFunction(a)&&c.isFunction(b))this._toggle.apply(this,arguments);else a==null||d?this.each(function(){var f=d?a:c(this).is(":hidden");c(this)[f?"show":"hide"]()}):this.animate(K("toggle",3),a,b);return this},fadeTo:function(a,b,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,d)},
animate:function(a,b,d,f){var e=c.speed(b,d,f);if(c.isEmptyObject(a))return this.each(e.complete);return this[e.queue===false?"each":"queue"](function(){var j=c.extend({},e),i,o=this.nodeType===1&&c(this).is(":hidden"),k=this;for(i in a){var n=i.replace(ia,ja);if(i!==n){a[n]=a[i];delete a[i];i=n}if(a[i]==="hide"&&o||a[i]==="show"&&!o)return j.complete.call(this);if((i==="height"||i==="width")&&this.style){j.display=c.css(this,"display");j.overflow=this.style.overflow}if(c.isArray(a[i])){(j.specialEasing=
j.specialEasing||{})[i]=a[i][1];a[i]=a[i][0]}}if(j.overflow!=null)this.style.overflow="hidden";j.curAnim=c.extend({},a);c.each(a,function(r,u){var z=new c.fx(k,j,r);if(Ab.test(u))z[u==="toggle"?o?"show":"hide":u](a);else{var C=Bb.exec(u),B=z.cur(true)||0;if(C){u=parseFloat(C[2]);var E=C[3]||"px";if(E!=="px"){k.style[r]=(u||1)+E;B=(u||1)/z.cur(true)*B;k.style[r]=B+E}if(C[1])u=(C[1]==="-="?-1:1)*u+B;z.custom(B,u,E)}else z.custom(B,u,"")}});return true})},stop:function(a,b){var d=c.timers;a&&this.queue([]);
this.each(function(){for(var f=d.length-1;f>=0;f--)if(d[f].elem===this){b&&d[f](true);d.splice(f,1)}});b||this.dequeue();return this}});c.each({slideDown:K("show",1),slideUp:K("hide",1),slideToggle:K("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(a,b){c.fn[a]=function(d,f){return this.animate(b,d,f)}});c.extend({speed:function(a,b,d){var f=a&&typeof a==="object"?a:{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};f.duration=c.fx.off?0:typeof f.duration===
"number"?f.duration:c.fx.speeds[f.duration]||c.fx.speeds._default;f.old=f.complete;f.complete=function(){f.queue!==false&&c(this).dequeue();c.isFunction(f.old)&&f.old.call(this)};return f},easing:{linear:function(a,b,d,f){return d+f*a},swing:function(a,b,d,f){return(-Math.cos(a*Math.PI)/2+0.5)*f+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]||
c.fx.step._default)(this);if((this.prop==="height"||this.prop==="width")&&this.elem.style)this.elem.style.display="block"},cur:function(a){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];return(a=parseFloat(c.css(this.elem,this.prop,a)))&&a>-10000?a:parseFloat(c.curCSS(this.elem,this.prop))||0},custom:function(a,b,d){function f(j){return e.step(j)}this.startTime=J();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start;
this.pos=this.state=0;var e=this;f.elem=this.elem;if(f()&&c.timers.push(f)&&!W)W=setInterval(c.fx.tick,13)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(a){var b=J(),d=true;if(a||b>=this.options.duration+this.startTime){this.now=
this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var f in this.options.curAnim)if(this.options.curAnim[f]!==true)d=false;if(d){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;a=c.data(this.elem,"olddisplay");this.elem.style.display=a?a:this.options.display;if(c.css(this.elem,"display")==="none")this.elem.style.display="block"}this.options.hide&&c(this.elem).hide();if(this.options.hide||this.options.show)for(var e in this.options.curAnim)c.style(this.elem,
e,this.options.orig[e]);this.options.complete.call(this.elem)}return false}else{e=b-this.startTime;this.state=e/this.options.duration;a=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||a](this.state,e,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=c.timers,b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length||
c.fx.stop()},stop:function(){clearInterval(W);W=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){c.style(a.elem,"opacity",a.now)},_default:function(a){if(a.elem.style&&a.elem.style[a.prop]!=null)a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit;else a.elem[a.prop]=a.now}}});if(c.expr&&c.expr.filters)c.expr.filters.animated=function(a){return c.grep(c.timers,function(b){return a===b.elem}).length};c.fn.offset="getBoundingClientRect"in s.documentElement?
function(a){var b=this[0];if(a)return this.each(function(e){c.offset.setOffset(this,a,e)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);var d=b.getBoundingClientRect(),f=b.ownerDocument;b=f.body;f=f.documentElement;return{top:d.top+(self.pageYOffset||c.support.boxModel&&f.scrollTop||b.scrollTop)-(f.clientTop||b.clientTop||0),left:d.left+(self.pageXOffset||c.support.boxModel&&f.scrollLeft||b.scrollLeft)-(f.clientLeft||b.clientLeft||0)}}:function(a){var b=
this[0];if(a)return this.each(function(r){c.offset.setOffset(this,a,r)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);c.offset.initialize();var d=b.offsetParent,f=b,e=b.ownerDocument,j,i=e.documentElement,o=e.body;f=(e=e.defaultView)?e.getComputedStyle(b,null):b.currentStyle;for(var k=b.offsetTop,n=b.offsetLeft;(b=b.parentNode)&&b!==o&&b!==i;){if(c.offset.supportsFixedPosition&&f.position==="fixed")break;j=e?e.getComputedStyle(b,null):b.currentStyle;
k-=b.scrollTop;n-=b.scrollLeft;if(b===d){k+=b.offsetTop;n+=b.offsetLeft;if(c.offset.doesNotAddBorder&&!(c.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(b.nodeName))){k+=parseFloat(j.borderTopWidth)||0;n+=parseFloat(j.borderLeftWidth)||0}f=d;d=b.offsetParent}if(c.offset.subtractsBorderForOverflowNotVisible&&j.overflow!=="visible"){k+=parseFloat(j.borderTopWidth)||0;n+=parseFloat(j.borderLeftWidth)||0}f=j}if(f.position==="relative"||f.position==="static"){k+=o.offsetTop;n+=o.offsetLeft}if(c.offset.supportsFixedPosition&&
f.position==="fixed"){k+=Math.max(i.scrollTop,o.scrollTop);n+=Math.max(i.scrollLeft,o.scrollLeft)}return{top:k,left:n}};c.offset={initialize:function(){var a=s.body,b=s.createElement("div"),d,f,e,j=parseFloat(c.curCSS(a,"marginTop",true))||0;c.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"});b.innerHTML="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";
a.insertBefore(b,a.firstChild);d=b.firstChild;f=d.firstChild;e=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=f.offsetTop!==5;this.doesAddBorderForTableAndCells=e.offsetTop===5;f.style.position="fixed";f.style.top="20px";this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15;f.style.position=f.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==j;a.removeChild(b);
c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.curCSS(a,"marginTop",true))||0;d+=parseFloat(c.curCSS(a,"marginLeft",true))||0}return{top:b,left:d}},setOffset:function(a,b,d){if(/static/.test(c.curCSS(a,"position")))a.style.position="relative";var f=c(a),e=f.offset(),j=parseInt(c.curCSS(a,"top",true),10)||0,i=parseInt(c.curCSS(a,"left",true),10)||0;if(c.isFunction(b))b=b.call(a,
d,e);d={top:b.top-e.top+j,left:b.left-e.left+i};"using"in b?b.using.call(a,d):f.css(d)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),f=/^body|html$/i.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.curCSS(a,"marginTop",true))||0;d.left-=parseFloat(c.curCSS(a,"marginLeft",true))||0;f.top+=parseFloat(c.curCSS(b[0],"borderTopWidth",true))||0;f.left+=parseFloat(c.curCSS(b[0],"borderLeftWidth",true))||0;return{top:d.top-
f.top,left:d.left-f.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||s.body;a&&!/^body|html$/i.test(a.nodeName)&&c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(f){var e=this[0],j;if(!e)return null;if(f!==w)return this.each(function(){if(j=wa(this))j.scrollTo(!a?f:c(j).scrollLeft(),a?f:c(j).scrollTop());else this[d]=f});else return(j=wa(e))?"pageXOffset"in j?j[a?"pageYOffset":
"pageXOffset"]:c.support.boxModel&&j.document.documentElement[d]||j.document.body[d]:e[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();c.fn["inner"+b]=function(){return this[0]?c.css(this[0],d,false,"padding"):null};c.fn["outer"+b]=function(f){return this[0]?c.css(this[0],d,false,f?"margin":"border"):null};c.fn[d]=function(f){var e=this[0];if(!e)return f==null?null:this;if(c.isFunction(f))return this.each(function(j){var i=c(this);i[d](f.call(this,j,i[d]()))});return"scrollTo"in
e&&e.document?e.document.compatMode==="CSS1Compat"&&e.document.documentElement["client"+b]||e.document.body["client"+b]:e.nodeType===9?Math.max(e.documentElement["client"+b],e.body["scroll"+b],e.documentElement["scroll"+b],e.body["offset"+b],e.documentElement["offset"+b]):f===w?c.css(e,d):this.css(d,typeof f==="string"?f:f+"px")}});A.jQuery=A.$=c})(window);

/***********************************************
* AnyLink Drop Down Menu- � Dynamic Drive (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit http://www.dynamicdrive.com/ for full source code
***********************************************/
function setTxtValue(value) {
    var flexi = false;
    if (callingimg.id.match("imgMaxiFlexPercentageDropMenu") || callingimg.id.match("imgMaxiFlexStakeDropMenu"))
        flexi = true;
    //callingimg.parentNode.parentNode is the TR
    if (callingimg.parentNode.parentNode.firstChild.firstChild != null) {
        callingimg.parentNode.parentNode.firstChild.firstChild.value = value;
        if (flexi)
            callingimg.parentNode.parentNode.firstChild.firstChild.onkeyup();
    } //firefox stake
    //    else if ((callingimg.parentNode.parentNode.childNodes[1].childNodes[0] != null) && (callingimg.parentNode.parentNode.childNodes[1].childNodes[0] == 'text')) { //.type.toString()
    //        alert('2-');
    //        callingimg.parentNode.parentNode.childNodes[1].childNodes[0].value = value;
    //        if (flexi)
    //            callingimg.parentNode.parentNode.childNodes[1].childNodes[0].onkeyup();
    //    }
    else if (callingimg.parentNode.parentNode.childNodes[1].childNodes[1] != null) {
        callingimg.parentNode.parentNode.childNodes[1].childNodes[1].value = value;
        if (flexi)
            callingimg.parentNode.parentNode.childNodes[1].childNodes[1].onkeyup();
    } else {
        //firefox loop to find textbox
        var isFound = false;
        //alert('5 - ' + callingimg.parentNode.parentNode.childNodes.length);
        for (j = 0; j < callingimg.parentNode.parentNode.childNodes.length; j++) {
            for (i = 0; i < (callingimg.parentNode.parentNode.childNodes[j].childNodes.length); i++) {
                //alert('5-' + callingimg.parentNode.parentNode.childNodes[j].childNodes[i]);
                // alert('6' + callingimg.parentNode.parentNode.childNodes[j].childNodes[i].type);
                if (callingimg.parentNode.parentNode.childNodes[j].childNodes[i].type.toString() == 'text') {
                    callingimg.parentNode.parentNode.childNodes[j].childNodes[i].value = value;
                    if (flexi)
                        callingimg.parentNode.parentNode.childNodes[1].childNodes[i].onkeyup();

                    isFound = true;
                    break;

                }
            }

            if (isFound) {
                break;
            }
        }
    }
}

function setTxtValueDiv(value) {
    var flexi = false;
    if (callingimg.id.match("imgMaxiFlexPercentageDropMenu") || callingimg.id.match("imgMaxiFlexStakeDropMenu"))
        flexi = true;
    if (callingimg.parentNode.parentNode.firstChild.firstChild != null) {
        callingimg.parentNode.parentNode.firstChild.firstChild.value = value;
        if (flexi)
            callingimg.parentNode.parentNode.firstChild.firstChild.onkeyup();
    }
    else {
        if (callingimg.parentNode.parentNode.childNodes[1].childNodes[1].type.toString() == 'text')
            callingimg.parentNode.parentNode.childNodes[1].childNodes[1].value = value;
        if (flexi)
            callingimg.parentNode.parentNode.childNodes[1].childNodes[1].onkeyup();
    }
}

//Contents for menu 1
//when the textbox and dropDown_menu_image are in adjecent TDs, the following would work.
//if the html structure changes, the DOM traverse would need to be corrected
var menu1 = new Array()
menu1[0] = '<div class="dropStakeMenu"  onclick="setTxtValue(\'1.00\')">1.00</div>'
menu1[1] = '<div class="dropStakeMenu"  onclick="setTxtValue(\'5.00\')">5.00</div>'
menu1[2] = '<div class="dropStakeMenu"  onclick="setTxtValue(\'10.00\')">10.00</div>'
menu1[3] = '<div class="dropStakeMenu"  onclick="setTxtValue(\'20.00\')">20.00</div>'
menu1[4] = '<div class="dropStakeMenu"  onclick="setTxtValue(\'50.00\')">50.00</div>'
menu1[5] = '<div class="dropStakeMenu" onclick="setTxtValue(\'100.00\')">100.00</div>'
menu1[6] = '<div class="dropStakeMenu"  onclick="setTxtValue(\'200.00\')">200.00</div>'
menu1[7] = '<div class="dropStakeMenu"  onclick="setTxtValue(\'500.00\')">500.00</div>'
menu1[8] = '<div class="dropStakeMenu"  onclick="setTxtValue(\'1000.00\')">1000.00</div>'
menu1[9] = '<div class="dropStakeMenu"  onclick="setTxtValue(\'1500.00\')">1500.00</div>'
menu1[10] = '<div class="dropStakeMenu"  onclick="setTxtValue(\'2000.00\')">2000.00</div>'
menu1[11] = '<div class="dropStakeMenu"  onclick="setTxtValue(\'10000.00\')">10000.00</div>'
//exotic stake options
var menu2 = new Array()
menu2[0] = '<div class="dropStakeMenu"  onclick="setTxtValue(\'0.25\')">0.25</div>'
menu2[1] = '<div class="dropStakeMenu"  onclick="setTxtValue(\'0.50\')">0.50</div>'
menu2[2] = '<div class="dropStakeMenu"  onclick="setTxtValue(\'0.75\')">0.75</div>'
menu2[3] = '<div class="dropStakeMenu"  onclick="setTxtValue(\'1.00\')">1.00</div>'
menu2[4] = '<div class="dropStakeMenu"  onclick="setTxtValue(\'5.00\')">5.00</div>'
menu2[5] = '<div class="dropStakeMenu"  onclick="setTxtValue(\'10.00\')">10.00</div>'
menu2[6] = '<div class="dropStakeMenu"  onclick="setTxtValue(\'20.00\')">20.00</div>'
menu2[7] = '<div class="dropStakeMenu"  onclick="setTxtValue(\'50.00\')">50.00</div>'
menu2[8] = '<div class="dropStakeMenu" onclick="setTxtValue(\'100.00\')">100.00</div>'
menu2[9] = '<div class="dropStakeMenu"  onclick="setTxtValue(\'200.00\')">200.00</div>'
menu2[10] = '<div class="dropStakeMenu"  onclick="setTxtValue(\'500.00\')">500.00</div>'
menu2[11] = '<div class="dropStakeMenu"  onclick="setTxtValue(\'1000.00\')">1000.00</div>'
menu2[12] = '<div class="dropStakeMenu"  onclick="setTxtValue(\'1500.00\')">1500.00</div>'
menu2[13] = '<div class="dropStakeMenu"  onclick="setTxtValue(\'2000.00\')">2000.00</div>'
menu2[14] = '<div class="dropStakeMenu"  onclick="setTxtValue(\'10000.00\')">10000.00</div>'
//flexi
var menu3 = new Array()
menu3[0] = '<div class="dropStakeMenu"  onclick="setTxtValue(\'1\')">1</div>'
menu3[1] = '<div class="dropStakeMenu"  onclick="setTxtValue(\'5\')">5</div>'
menu3[2] = '<div class="dropStakeMenu"  onclick="setTxtValue(\'10\')">10</div>'
menu3[3] = '<div class="dropStakeMenu"  onclick="setTxtValue(\'15\')">15</div>'
menu3[4] = '<div class="dropStakeMenu"  onclick="setTxtValue(\'25\')">25</div>'
menu3[5] = '<div class="dropStakeMenu"  onclick="setTxtValue(\'33\')">33</div>'
menu3[6] = '<div class="dropStakeMenu"  onclick="setTxtValue(\'50\')">50</div>'
menu3[7] = '<div class="dropStakeMenu"  onclick="setTxtValue(\'75\')">75</div>'
menu3[8] = '<div class="dropStakeMenu"  onclick="setTxtValue(\'100\')">100</div>'
menu3[9] = '<div class="dropStakeMenu"  onclick="setTxtValue(\'200\')">200</div>'

//div mode
var menu1d = new Array()
menu1d[0] = '<div class="dropStakeMenu"  onclick="setTxtValueDiv(\'1.00\')">1.00</div>'
menu1d[1] = '<div class="dropStakeMenu"  onclick="setTxtValueDiv(\'5.00\')">5.00</div>'
menu1d[2] = '<div class="dropStakeMenu"  onclick="setTxtValueDiv(\'10.00\')">10.00</div>'
menu1d[3] = '<div class="dropStakeMenu"  onclick="setTxtValueDiv(\'20.00\')">20.00</div>'
menu1d[4] = '<div class="dropStakeMenu"  onclick="setTxtValueDiv(\'50.00\')">50.00</div>'
menu1d[5] = '<div class="dropStakeMenu"  onclick="setTxtValueDiv(\'100.00\')">100.00</div>'
menu1d[6] = '<div class="dropStakeMenu"  onclick="setTxtValueDiv(\'200.00\')">200.00</div>'
menu1d[7] = '<div class="dropStakeMenu"  onclick="setTxtValueDiv(\'500.00\')">500.00</div>'
menu1d[8] = '<div class="dropStakeMenu"  onclick="setTxtValueDiv(\'1000.00\')">1000.00</div>'
menu1d[9] = '<div class="dropStakeMenu"  onclick="setTxtValueDiv(\'1500.00\')">1500.00</div>'
menu1d[10] = '<div class="dropStakeMenu"  onclick="setTxtValueDiv(\'2000.00\')">2000.00</div>'
menu1d[11] = '<div class="dropStakeMenu"  onclick="setTxtValueDiv(\'10000.00\')">10000.00</div>'
//exotic stake options
var menu2d = new Array()
menu2d[0] = '<div class="dropStakeMenu"  onclick="setTxtValueDiv(\'0.25\')">0.25</div>'
menu2d[1] = '<div class="dropStakeMenu"  onclick="setTxtValueDiv(\'0.50\')">0.50</div>'
menu2d[2] = '<div class="dropStakeMenu"  onclick="setTxtValueDiv(\'0.75\')">0.75</div>'
menu2d[3] = '<div class="dropStakeMenu"  onclick="setTxtValueDiv(\'1.00\')">1.00</div>'
menu2d[4] = '<div class="dropStakeMenu"  onclick="setTxtValueDiv(\'5.00\')">5.00</div>'
menu2d[5] = '<div class="dropStakeMenu"  onclick="setTxtValueDiv(\'10.00\')">10.00</div>'
menu2d[6] = '<div class="dropStakeMenu"  onclick="setTxtValueDiv(\'20.00\')">20.00</div>'
menu2d[7] = '<div class="dropStakeMenu"  onclick="setTxtValueDiv(\'50.00\')">50.00</div>'
menu2d[8] = '<div class="dropStakeMenu" onclick="setTxtValueDiv(\'100.00\')">100.00</div>'
menu2d[9] = '<div class="dropStakeMenu"  onclick="setTxtValueDiv(\'200.00\')">200.00</div>'
menu2d[10] = '<div class="dropStakeMenu"  onclick="setTxtValueDiv(\'500.00\')">500.00</div>'
menu2d[11] = '<div class="dropStakeMenu"  onclick="setTxtValueDiv(\'1000.00\')">1000.00</div>'
menu2d[12] = '<div class="dropStakeMenu"  onclick="setTxtValueDiv(\'1500.00\')">1500.00</div>'
menu2d[13] = '<div class="dropStakeMenu"  onclick="setTxtValueDiv(\'2000.00\')">2000.00</div>'
menu2d[14] = '<div class="dropStakeMenu"  onclick="setTxtValueDiv(\'10000.00\')">10000.00</div>'
//flexi
var menu3d = new Array()
menu3d[0] = '<div class="dropStakeMenu"  onclick="setTxtValueDiv(\'1\')">1</div>'
menu3d[1] = '<div class="dropStakeMenu"  onclick="setTxtValueDiv(\'5\')">5</div>'
menu3d[2] = '<div class="dropStakeMenu"  onclick="setTxtValueDiv(\'10\')">10</div>'
menu3d[3] = '<div class="dropStakeMenu"  onclick="setTxtValueDiv(\'15\')">15</div>'
menu3d[4] = '<div class="dropStakeMenu"  onclick="setTxtValueDiv(\'25\')">25</div>'
menu3d[5] = '<div class="dropStakeMenu"  onclick="setTxtValueDiv(\'33\')">33</div>'
menu3d[6] = '<div class="dropStakeMenu"  onclick="setTxtValueDiv(\'50\')">50</div>'
menu3d[7] = '<div class="dropStakeMenu"  onclick="setTxtValueDiv(\'75\')">75</div>'
menu3d[8] = '<div class="dropStakeMenu"  onclick="setTxtValueDiv(\'100\')">100</div>'
menu3d[9] = '<div class="dropStakeMenu"  onclick="setTxtValueDiv(\'200\')">200</div>'

var callingimg = null;
var menuwidth = '75px' //default menu width
var menubgcolor = '#FFFFFF'  //menu bgcolor
var disappeardelay = 250  //menu disappear speed onMouseout (in miliseconds)
var hidemenu_onclick = "yes" //hide menu when user clicks within menu?

/////No further editting needed

var ie4 = document.all
var ns6 = document.getElementById && !document.all

if (ie4 || ns6)
    document.write('<div id="dropmenudiv" class="stakeDropBk" style="visibility:hidden;width:' + menuwidth + '" onMouseover="clearhidemenu()" onMouseout="dynamichide(event)"></div>');

function getposOffset(what, offsettype) {
    var totaloffset = (offsettype == "left") ? what.offsetLeft : what.offsetTop;
    var parentEl = what.offsetParent;
    while (parentEl != null) {
        totaloffset = (offsettype == "left") ? totaloffset + parentEl.offsetLeft : totaloffset + parentEl.offsetTop;
        parentEl = parentEl.offsetParent;
    }
    return totaloffset;
}


function showhide(obj, e, visible, hidden, menuwidth) {
    dropmenuobj.style.borderColor = '#cccccc';
    if (ie4 || ns6)
        dropmenuobj.style.left = dropmenuobj.style.top = "-500px"
    if (menuwidth != "") {
        dropmenuobj.widthobj = dropmenuobj.style
        dropmenuobj.widthobj.width = menuwidth
    }
    if (e.type == "click" && obj.visibility == hidden || e.type == "mouseover")
        obj.visibility = visible
    else if (e.type == "click")
        obj.visibility = hidden
}

function iecompattest() {
    return (document.compatMode && document.compatMode != "BackCompat") ? document.documentElement : document.body
}

function clearbrowseredge(obj, whichedge) {
    var edgeoffset = 0
    if (whichedge == "rightedge") {
        var windowedge = ie4 && !window.opera ? iecompattest().scrollLeft + iecompattest().clientWidth - 15 : window.pageXOffset + window.innerWidth - 15
        dropmenuobj.contentmeasure = dropmenuobj.offsetWidth
        if (windowedge - dropmenuobj.x < dropmenuobj.contentmeasure)
            edgeoffset = dropmenuobj.contentmeasure - obj.offsetWidth
    }
    else {
        var topedge = ie4 && !window.opera ? iecompattest().scrollTop : window.pageYOffset
        var windowedge = ie4 && !window.opera ? iecompattest().scrollTop + iecompattest().clientHeight - 15 : window.pageYOffset + window.innerHeight - 18
        dropmenuobj.contentmeasure = dropmenuobj.offsetHeight
        if (windowedge - dropmenuobj.y < dropmenuobj.contentmeasure) { //move up?
            edgeoffset = dropmenuobj.contentmeasure + obj.offsetHeight
            if ((dropmenuobj.y - topedge) < dropmenuobj.contentmeasure) //up no good either?
                edgeoffset = dropmenuobj.y + obj.offsetHeight - topedge
        }
    }
    return edgeoffset
}

function populatemenu(what) {
    if (ie4 || ns6)
        dropmenuobj.innerHTML = what.join("")
}


function dropdownmenu(obj, e, menucontents, menuwidth) {
    if (window.event) event.cancelBubble = true
    else if (e.stopPropagation) e.stopPropagation()
    clearhidemenu()
    dropmenuobj = document.getElementById ? document.getElementById("dropmenudiv") : dropmenudiv
    populatemenu(menucontents)

    if (ie4 || ns6) {
        showhide(dropmenuobj.style, e, "visible", "hidden", menuwidth)
        dropmenuobj.x = getposOffset(obj, "left")
        dropmenuobj.y = getposOffset(obj, "top")
        dropmenuobj.style.left = dropmenuobj.x - clearbrowseredge(obj, "rightedge") + "px"
        dropmenuobj.style.top = dropmenuobj.y - clearbrowseredge(obj, "bottomedge") + obj.offsetHeight + "px"
    }

    return clickreturnvalue(obj)
}

function clickreturnvalue(obj) {
    callingimg = obj;
    if (ie4 || ns6) return false
    else return true
}

function contains_ns6(a, b) {
    while ((b != null) && (b.parentNode))
        if ((b = b.parentNode) == a)
            return true;
    return false;
}

function dynamichide(e) {
    if (ie4 && !dropmenuobj.contains(e.toElement))
        delayhidemenu()
    else if (ns6 && e.currentTarget != e.relatedTarget && !contains_ns6(e.currentTarget, e.relatedTarget))
        delayhidemenu()
}

function hidemenu(e) {
    if (typeof dropmenuobj != "undefined") {
        if (ie4 || ns6)
            dropmenuobj.style.visibility = "hidden";
        //alert(e);
    }
}

function delayhidemenu() {
    if (ie4 || ns6)
        delayhide = setTimeout("hidemenu()", disappeardelay)
}

function clearhidemenu() {
    if (typeof delayhide != "undefined")
        clearTimeout(delayhide)
}

if (hidemenu_onclick == "yes") {
    document.onclick = hidemenu
}

/***********************************************
* Dynamic Countdown script- � Dynamic Drive (http://www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit http://www.dynamicdrive.com/ for this script and 100s more.
***********************************************/

function cdtime(container, targetdate, currentdate) {
    if (!document.getElementById || !document.getElementById(container)) return
    this.container = document.getElementById(container)
    this.currentTime = new Date(currentdate)
    this.targetdate = new Date(targetdate)
    //alert(t);
    this.timesminus = false
    this.timesup = false
    this.offset = 0//normal browsers with no UTC date error
    var browser = navigator.appName;
    //alert(browser + ' - ' + navigator.appCodeName);
    //if (browser == 'Netscape')
    //    this.offset = -1//chrome
    this.updateTime()
}

cdtime.prototype.updateTime = function () {
    //need to sync with current time not added time
    //this.currentTime=new Date()
    var thisobj = this
    this.currentTime.setHours(this.currentTime.getHours() + this.offset)//patch for chrome
    this.currentTime.setSeconds(this.currentTime.getSeconds() + 1)
    setTimeout(function () { thisobj.updateTime() }, 1000) //update time every second
}

cdtime.prototype.displaycountdown = function (baseunit, functionref) {
    this.baseunit = baseunit
    this.formatresults = functionref
    this.showresults()
}

cdtime.prototype.showresults = function () {
    var thisobj = this


    var timediff = (this.targetdate - this.currentTime) / 1000 //difference btw target date and current date, in seconds
    if (timediff < 0) { //if time is up
        //this.timesminus=true//nim reverse
        this.timesminus = true
        if (timediff < -300)
            this.timesup = true;
        timediff = (this.currentTime - this.targetdate) / 1000
    }
    var oneMinute = 60 //minute unit in seconds
    var oneHour = 60 * 60 //hour unit in seconds
    var oneDay = 60 * 60 * 24 //day unit in seconds
    var dayfield = Math.floor(timediff / oneDay)
    var hourfield = Math.floor((timediff - dayfield * oneDay) / oneHour)
    var minutefield = Math.floor((timediff - dayfield * oneDay - hourfield * oneHour) / oneMinute)
    var secondfield = Math.floor((timediff - dayfield * oneDay - hourfield * oneHour - minutefield * oneMinute))
    if (this.baseunit == "hours") { //if base unit is hours, set "hourfield" to be topmost level
        hourfield = dayfield * 24 + hourfield
        dayfield = "n/a"
    }
    else if (this.baseunit == "minutes") { //if base unit is minutes, set "minutefield" to be topmost level
        minutefield = dayfield * 24 * 60 + hourfield * 60 + minutefield
        dayfield = hourfield = "n/a"
    }
    else if (this.baseunit == "seconds") { //if base unit is seconds, set "secondfield" to be topmost level
        var secondfield = timediff
        dayfield = hourfield = minutefield = "n/a"
    }
    this.container.innerHTML = this.formatresults(dayfield, hourfield, minutefield, secondfield)
    setTimeout(function () { thisobj.showresults() }, 1000) //update results every second
}

/////CUSTOM FORMAT OUTPUT FUNCTIONS BELOW//////////////////////////////

//Create your own custom format function to pass into cdtime.displaycountdown()
//Use arguments[0] to access "Days" left
//Use arguments[1] to access "Hours" left
//Use arguments[2] to access "Minutes" left
//Use arguments[3] to access "Seconds" left

//The values of these arguments may change depending on the "baseunit" parameter of cdtime.displaycountdown()
//For example, if "baseunit" is set to "hours", arguments[0] becomes meaningless and contains "n/a"
//For example, if "baseunit" is set to "minutes", arguments[0] and arguments[1] become meaningless etc


function formatresults() {
    var displaystring = "";

    var mins = 0;
    var hours = 0;
    var days = 0;

    mins = arguments[2];
    hours = arguments[1];
    days = arguments[0];

    if ((mins < 1) && (hours < 1) && (days < 1))
        displaystring = '<span class="txt_BetClsOrg">';
    else
        displaystring = '<span class="txt_BetClsGrn">';

    if (this.timesminus == true) {//if target date/time not yet met
        displaystring = '<span class="txt_BetClsOrg">-';
        //if (this.timesup){
        //    displaystring = '<span class="txt_BetClsOrg">Closed</span>';       
        //    return displaystring;
        //}
    }

    if (arguments[0] != "0") {
        displaystring += arguments[0] + "d " + arguments[1] + "h "; //+arguments[2]+"m "+arguments[3]+"s"
    }
    else {
        if (arguments[1] != "0") {
            displaystring += arguments[1] + "h " + arguments[2] + "m "; //+arguments[3]+"s"
        }
        else {
            displaystring += arguments[2] + "m " + arguments[3] + "s"
            //if (arguments[3] == "10")alert('One of the counters ' + displaystring);               
        }
    }

    displaystring += '</span>';

    return displaystring
}



function MM_swapImgRestore() { //v3.0
    var i, x, a = document.MM_sr; for (i = 0; a && i < a.length && (x = a[i]) && x.oSrc; i++) x.src = x.oSrc;
}

function MM_preloadImages() { //v3.0
    var d = document; if (d.images) {
        if (!d.MM_p) d.MM_p = new Array();
        var i, j = d.MM_p.length, a = MM_preloadImages.arguments; for (i = 0; i < a.length; i++)
            if (a[i].indexOf("#") != 0) { d.MM_p[j] = new Image; d.MM_p[j++].src = a[i]; }
    }
}

function MM_findObj(n, d) { //v4.01
    var p, i, x; if (!d) d = document; if ((p = n.indexOf("?")) > 0 && parent.frames.length) {
        d = parent.frames[n.substring(p + 1)].document; n = n.substring(0, p);
    }
    if (!(x = d[n]) && d.all) x = d.all[n]; for (i = 0; !x && i < d.forms.length; i++) x = d.forms[i][n];
    for (i = 0; !x && d.layers && i < d.layers.length; i++) x = MM_findObj(n, d.layers[i].document);
    if (!x && d.getElementById) x = d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
    var i, j = 0, x, a = MM_swapImage.arguments; document.MM_sr = new Array; for (i = 0; i < (a.length - 2); i += 3)
        if ((x = MM_findObj(a[i])) != null) { document.MM_sr[j++] = x; if (!x.oSrc) x.oSrc = x.src; x.src = a[i + 2]; }
}

var eBetTypes = {
        BestOddsVic : 1,
        SP : 2,
        SPI : 3,
        BestFluc : 6,
        BestOddsNSW : 7,
        BestOddsUNi : 19,
        UNiTAB : 16,//TODO what is this, after PlaceUNi?
        MaxiDiv : 27,
        Fixed : 15,
        PlaceUNi : 18,
        PlaceNSW : 10,
        PlaceVic : 9,
        QuinellaStraight : 24,
        QuinellaBox : 25,
        QuinellaStandout : 26,
        QuinellaStraightNSW : 65,
        QuinellaBoxNSW : 66,
        QuinellaStandoutNSW : 67,
        QuinellaStraightVic : 80,
        QuinellaBoxVic : 81,
        QuinellaStandoutVic : 82,
        PlaceCard : 28,
        SBOdds : 29,
        TrifectaStraight : 34,
        TrifectaBox : 35,
        TrifectaStandout : 36,
        TrifectaMulti : 37,
        TrifectaStraightNSW : 72,
        TrifectaBoxNSW : 73,
        TrifectaStandoutNSW : 74,
        TrifectaMultiNSW : 75,
        TrifectaStraightVic : 87,
        TrifectaBoxVic : 88,
        TrifectaStandoutVic : 89,
        TrifectaMultiVic : 90,
        ExactaStraight : 44,
        ExactaBox : 45,
        ExactaStandout : 46,
        ExactaMulti : 47,
        ExactaStraightNSW : 68,
        ExactaBoxNSW : 69,
        ExactaStandoutNSW : 70,
        ExactaMultiNSW : 71,
        ExactaStraightVic : 83,
        ExactaBoxVic : 84,
        ExactaStandoutVic : 85,
        ExactaMultiVic : 86,
        DailyDouble : 50,
        ExtraDouble : 51,
        Treble : 52,
        Quaddie : 97,
        QuaddieNSW : 95,
        QuaddieVIC : 96,
        QuaddieUNI : 98,
        FeatureDouble : 53,
        FirstFourStraight : 54,
        FirstFourBox : 55,
        FirstFourStandout : 56,
        FirstFourMulti : 57,
        FirstFourStraightNSW : 76,
        FirstFourBoxNSW : 77,
        FirstFourStandoutNSW : 78,
        FirstFourMultiNSW : 79,
        FirstFourStraightVic : 91,
        FirstFourBoxVic : 92,
        FirstFourStandoutVic : 93,
        FirstFourMultiVic : 94,
        Multi : 60,
        FeatureQuinella : 64,
        // sport bet types
        Straight : 101,
        Line17 : 122,
        Line19 : 102,
        Under395 : 103,
        Over395 : 104,
        Under125 : 105,
        Over125 : 106,
        Line20 : 107,
        Sets20 : 109,
        Sets21 : 110,
        Sets30 : 111,
        Sets31 : 112,
        Sets32 : 113,
        KO : 114,
        Decision : 115,
        Handicap : 116,
        TotalGameScore : 117,
        Under105 : 118,
        Over105 : 119,
        Under25 : 120,
        Over25 : 121,
        Under85 : 123,
        Over85 : 124,
        Unknown : 999
}

/***********************************************
* Stride SB Choice Main JS for betting slip and 
* Race Event client side
************************************************/
var tblBetRowsID = 'bettingSlip1_tblBetRows';
function placeRaceBet(bet) {
    //alert(bet);
    __doPostBack('UpdatePanelMainContent', bet);
}

function placeSportBet(strEventName, strEventDate, concLevels, iCompetitorId, strSelection, strBetType, strPrice, strPoints, strAllowEachWay, eventId) {
    var bet = 'EVENTID:' + eventId + '^SELECTION:' + iCompetitorId + '^BETTYPE:' + strBetType + '^PRICE:' + strPrice + '^EVENTNAME:' + strEventName + '^ALLOWEACHWAY:' + strAllowEachWay +
    '^EVENTDATE:' + strEventDate + '^SPORTSCONCLEVELS:' + concLevels + '^SPORTSPOINTS:' + strPoints + '^COMPETITORNAME:' + strSelection;
    //alert(strBetType);     
    //alert(competitorID+'-'+eventId+'-'+venue+'-'+raceNo+'-'+allowEachWay+'-'+eventTime+'-'+competitorName+'-'+concLevels+'-'+strPoints);
    __doPostBack('UpdatePanelMainContent', bet);
}

function placeSportMulti(strEventName, strEventDate, concLevels, iCompetitorId, strSelection, strBetType, strPrice, strPoints, strAllowEachWay, eventId) {
    //alert(strBetType);
    var bet = 'EVENTID:' + eventId + '^SELECTION:' + iCompetitorId + '^BETTYPE:' + strBetType + '^PRICE:' + strPrice + '^EVENTNAME:' + strEventName + '^ALLOWEACHWAY:' + strAllowEachWay +
    '^EVENTDATE:' + strEventDate + '^SPORTSCONCLEVELS:' + concLevels + '^SPORTSPOINTS:' + strPoints + '^COMPETITORNAME:' + strSelection + '^MULTI:True';
    //alert(strBetType);     

    //alert(competitorID+'-'+eventId+'-'+venue+'-'+raceNo+'-'+allowEachWay+'-'+eventTime+'-'+competitorName+'-'+concLevels+'-'+strPoints);
    __doPostBack('UpdatePanelMainContent', bet);
}

function deleteMultiLeg(betId) {
    __doPostBack('UpdatePanelMainContent', 'multislip_delete_' + betId);
}

function deleteQuickListLeg(betId) {
    __doPostBack('UpdatePanelMainContent', 'quicklist_delete_' + betId);
}

function changeMultiExotic(exoticType) {
    //alert(exoticType);
    bettingSlipCalculateTotal();
}

function moveBetFromQuicklist(bet) {
    __doPostBack('UpdatePanelMainContent', bet);
}

///get uniqueid for each browser session, cool
var uid = (function () { var id = 0; return function () { return id++; }; })();


//delete a row from betting slip
function deleteRow(betId) {
    __doPostBack('UpdatePanelBettingSlip', 'bettingslip_delete_' + betId);
}

function quicklistCopy(popupname) {
    __doPostBack('UpdatePanelBettingSlip', 'quicklist_copy');
    if ($find(popupname) != null)
        $find(popupname).hidePopup();
}

function quicklistClose(popupname) {
    if ($find(popupname) != null)
        $find(popupname).hidePopup();
    //"$find('<%=ModalPopupExtender1.ClientID%>').hidePopup();"
}


function bettingSlipCalculateTotal() {
    __doPostBack('UpdatePanelBettingSlip', 'bettingslip_calculate');
}

function expandCollapseBettingSlip() {
    __doPostBack('UpdatePanelBettingSlip', 'bettingslip_expandcollapse');
}

function bettingSlipConfirm() {
    __doPostBack('UpdatePanelBettingSlip', 'bettingslip_confirm');
}

function bettingSlipUnConfirm() {
    __doPostBack('UpdatePanelBettingSlip', 'bettingslip_unconfirm');
}

function bettingSlipFinalise() {
    __doPostBack('UpdatePanelBettingSlip', 'bettingslip_finalise');
}

function bettingSlipClear() {
    __doPostBack('UpdatePanelBettingSlip', 'bettingslip_clear');
}

function placeFeatureQuinella(iFeatureQuinellaId, strEventName, strPrice,
        iCompetitor1Id, strCompetitor1Name, strCompetitor1Price,
        iCompetitor2Id, strCompetitor2Name, strCompetitor2Price, eventTime) {
    var bet = 'EVENTID:' + iFeatureQuinellaId + '^SELECTION:' + iCompetitor1Id + ':' + iCompetitor2Id
    + '^BETTYPE:64^PRICE:' + strPrice + '^EVENTNAME:' + strEventName + '^ALLOWEACHWAY:false^EVENTDATE:' + eventTime + '^COMPETITORNAME:' + strCompetitor1Name + ',' + strCompetitor2Name
    + '^COMP1PRICE:' + strCompetitor1Price + '^COMP2PRICE:' + strCompetitor2Price;
    __doPostBack('UpdatePanelMainContent', bet);
}

function placeFeatureDouble(FeatureDoubleId, EventName, strPrice, eventTime,
        Event1ID, Event1Name, Competitor1Id, Competitor1Name, Competitor1Price,
        Event2ID, Event2Name, Competitor2Id, Competitor2Name, Competitor2Price) {
    /*46258, "AJC Derby - Doncaster Hcp Feature Double ", "28.00",
    869386, "AJC Derby - All In Betting", 1, "Littorio", "4.2",
    808862, "Doncaster Hcp - All In Betting", 40, "Hot Danish", "6"
    */
    var bet = 'EVENTID:' + FeatureDoubleId + '^SELECTION:' + Competitor1Id + ':' + Competitor2Id
    + '^BETTYPE:53^PRICE:' + strPrice + '^EVENTNAME:' + EventName + '^ALLOWEACHWAY:false^EVENTDATE:' + eventTime
    + '^COMPETITORNAME:' + Event1Name + ' - ' + Competitor1Name + ', ' + Event2Name + ' - ' + Competitor2Name
    + '^COMP1PRICE:' + Competitor1Price + '^COMP2PRICE:' + Competitor2Price
    + '^FDEVENT1ID:' + Event1ID + '^FDEVENT2ID:' + Event2ID;

    __doPostBack('UpdatePanelMainContent', bet);
}

function placeFeatureQuinellaBox(iEventId, strFeatureQuinellaName, strSelection, eventTime, stakeTxtId) {
    var i = 0;
    var betLines = strSelection.split('^');
    var stake = document.getElementById(stakeTxtId).value;
    var bets = 'BOXGRID:';
    for (i = 0; i < betLines.length - 1; i++) {
        var compBet = betLines[i].split('~');
        var bet = 'EVENTID:' + iEventId + '^SELECTION:' + compBet[1] + ':' + compBet[4]
    + '^BETTYPE:64^PRICE:' + compBet[0] + '^EVENTNAME:' + strFeatureQuinellaName + '^ALLOWEACHWAY:false^EVENTDATE:' + eventTime
    + '^COMPETITORNAME:' + compBet[2] + ',' + compBet[5]
    + '^COMP1PRICE:' + compBet[3] + '^COMP2PRICE:' + compBet[6];
        bets += '#' + bet;
    }
    bets = bets + '#STAKE:' + stake;
    __doPostBack('UpdatePanelMainContent', bets);
}

function placeFeatureDoubleBox(iEventId, strFeatureQuinellaName, strSelection, eventTime) {
    var i = 0;
    var betLines = strSelection.split('^');
    for (i = 0; i < betLines.length - 1; i++)//there's a ending ^ thats not removed
    {
        var compBet = betLines[i].split('~');
        var bet = 'EVENTID:' + FeatureDoubleId + '^SELECTION:' + Competitor1Id + ':' + Competitor2Id
    + '^BETTYPE:53^PRICE:' + strPrice + '^EVENTNAME:' + EventName + '^ALLOWEACHWAY:false^EVENTDATE:' + eventTime
    + '^COMPETITORNAME:' + Event1Name + ' - ' + Competitor1Name + ', ' + Event2Name + ' - ' + Competitor2Name
    + '^COMP1PRICE:' + Competitor1Price + '^COMP2PRICE:' + Competitor2Price;
+'^FDEVENT1ID:' + Event1ID + '^FDEVENT2ID:' + Event2ID;

        __doPostBack('UpdatePanelMainContent', bet);
    }
}

function placeJockeyChallenge(jcId, strEventName, date, competitorID, competitorName, price, allowEachway, isMulti) {
    var bet = 'EVENTID:' + jcId + '^SELECTION:' + competitorID + '^BETTYPE:101^PRICE:' + price + '^EVENTNAME:' + strEventName
    + '^ALLOWEACHWAY:' + allowEachway + '^EVENTDATE:' + date + '^COMPETITORNAME:' + competitorName + '^MULTI:' + isMulti;
    __doPostBack('UpdatePanelMainContent', bet);
}

function placeBoxChallenge(jcId, strEventName, date, competitorID, competitorName, price, allowEachway, isMulti) {
    var bet = 'EVENTID:' + jcId + '^SELECTION:' + competitorID + '^BETTYPE:101^PRICE:' + price + '^EVENTNAME:' + strEventName
    + '^ALLOWEACHWAY:' + allowEachway + '^EVENTDATE:' + date + '^COMPETITORNAME:' + competitorName + '^MULTI:' + isMulti;
    __doPostBack('UpdatePanelMainContent', bet);
}

function placePlaceCard(pcID, eventTime, eventName, event1ID, event2ID, event3ID, event4ID, stake) {
    var chks = document.getElementsByTagName('input');
    var competitor1List = [];
    var competitor2List = [];
    var competitor3List = [];
    var competitor4List = [];
    var j = 0;
    var k = 0;
    var l = 0;
    var m = 0;

    for (var i = 0; i < chks.length; i++) {
        if (chks[i].id.indexOf('e' + event1ID + 'c') > -1) {
            if (chks[i].checked) {
                competitor1List[j] = (chks[i].id);
                j++;
            }
        }
        else if (chks[i].id.indexOf('e' + event2ID + 'c') > -1) {
            if (chks[i].checked) {
                competitor2List[k] = (chks[i].id);
                k++;
            }
        }
        else if (chks[i].id.indexOf('e' + event3ID + 'c') > -1) {
            if (chks[i].checked) {
                competitor3List[l] = (chks[i].id);
                l++;
            }
        }
        else if (chks[i].id.indexOf('e' + event4ID + 'c') > -1) {
            if (chks[i].checked) {
                competitor4List[m] = (chks[i].id);
                m++;
            }
        }
    }
    if ((competitor1List.length > 0) && (competitor2List.length > 0) && (competitor3List.length > 0) && (competitor4List.length > 0)) {
        var bets = 'BOXGRID:';
        //multiple bets constructed for each competitor list
        for (j = 0; j < competitor1List.length; j++) {
            for (k = 0; k < competitor2List.length; k++) {
                for (l = 0; l < competitor3List.length; l++) {
                    for (m = 0; m < competitor4List.length; m++) {
                        var bet = 'EVENTID:' + pcID + '^SELECTION: '
                        + '^BETTYPE:28^PRICE:' + 0
                        + '^EVENTNAME:' + eventName
                        + '^ALLOWEACHWAY:false^EVENTDATE:' + eventTime
                        + '^COMPETITORNAME:'
                            + competitor1List[j].split('^')[1] + ' @' + Number(competitor1List[j].split('^')[0].split('p')[1]).toFixed(2) + ', '
                            + competitor2List[k].split('^')[1] + ' @' + Number(competitor2List[k].split('^')[0].split('p')[1]).toFixed(2) + ', '
                            + competitor3List[l].split('^')[1] + ' @' + Number(competitor3List[l].split('^')[0].split('p')[1]).toFixed(2) + ', '
                            + competitor4List[m].split('^')[1] + ' @' + Number(competitor4List[m].split('^')[0].split('p')[1]).toFixed(2) + ', '
                        + '^COMP1ID:' + competitor1List[j].split('_')[competitor1List[j].split('_').length - 1].split('^')[0].split('c')[1].split('p')[0]
                        + '^COMP2ID:' + competitor2List[k].split('_')[competitor2List[k].split('_').length - 1].split('^')[0].split('c')[1].split('p')[0]
                        + '^COMP3ID:' + competitor3List[l].split('_')[competitor3List[l].split('_').length - 1].split('^')[0].split('c')[1].split('p')[0]
                        + '^COMP4ID:' + competitor4List[m].split('_')[competitor4List[m].split('_').length - 1].split('^')[0].split('c')[1].split('p')[0]
                        + '^EVENT1ID:' + competitor1List[j].split('_')[competitor1List[j].split('_').length - 1].split('^')[0].split('c')[0].replace('e', '')
                        + '^EVENT2ID:' + competitor2List[k].split('_')[competitor2List[k].split('_').length - 1].split('^')[0].split('c')[0].replace('e', '')
                        + '^EVENT3ID:' + competitor3List[l].split('_')[competitor3List[l].split('_').length - 1].split('^')[0].split('c')[0].replace('e', '')
                        + '^EVENT4ID:' + competitor4List[m].split('_')[competitor4List[m].split('_').length - 1].split('^')[0].split('c')[0].replace('e', '')
                        + '^COMP1PRICE:' + competitor1List[j].split('^')[0].split('p')[1]
                        + '^COMP2PRICE:' + competitor2List[k].split('^')[0].split('p')[1]
                        + '^COMP3PRICE:' + competitor3List[l].split('^')[0].split('p')[1]
                        + '^COMP4PRICE:' + competitor4List[m].split('^')[0].split('p')[1];
                        //alert(stake);
                        bets += '#' + bet;
                    }
                }
            }
        }
        bets = bets + '#STAKE:' + stake;
        __doPostBack('UpdatePanelMainContent', bets);
    }
    else {
        alert('Invalid Place Card Bet - Please select at least one horse per event in the place card');
    }
}

function placeRapidMulti(strSelection) {
    var i = 0;
    var hasBets = false;
    var betLines = strSelection.split(';');
    var bets = 'BOXMULTI-RAPIDMULTI';
    for (i = 0; i < betLines.length - 1; i++) {
        var compBet = betLines[i].split('^');
        if (compBet.length == 5) {
            var bet = 'EVENTID:' + compBet[0] + '^SELECTION:' + compBet[2] + '^BETTYPE:101^PRICE:' + compBet[4] + '^EVENTNAME:' + compBet[1] + '^ALLOWEACHWAY:false' +
                  '^EVENTDATE:' + '2010-07-13 8:00:00' + '^SPORTSCONCLEVELS:^SPORTSPOINTS:0.0^COMPETITORNAME:' + compBet[3] + '^MULTI:True';
            bets += '#' + bet;
            hasBets = true;
        }
    }
    if (hasBets) {
        bets = bets + '#STAKE:' + betLines[betLines.length - 2];
        bets = bets + '#EXOTICTYPE:' + betLines[betLines.length - 1];
        __doPostBack('UpdatePanelMainContent', bets);
    }
}


function placePlaceCard6Leg(pcID, eventTime, eventName, event1ID, event2ID, event3ID, event4ID, event5ID, event6ID, stake) {
    var chks = document.getElementsByTagName('input');
    var competitor1List = [];
    var competitor2List = [];
    var competitor3List = [];
    var competitor4List = [];
    var competitor5List = [];
    var competitor6List = [];
    var j = 0;
    var k = 0;
    var l = 0;
    var m = 0;
    var n = 0;
    var p = 0;

    for (var i = 0; i < chks.length; i++) {
        if (chks[i].id.indexOf('e' + event1ID + 'c') > -1) {
            if (chks[i].checked) {
                competitor1List[j] = (chks[i].id);
                j++;
            }
        }
        else if (chks[i].id.indexOf('e' + event2ID + 'c') > -1) {
            if (chks[i].checked) {
                competitor2List[k] = (chks[i].id);
                k++;
            }
        }
        else if (chks[i].id.indexOf('e' + event3ID + 'c') > -1) {
            if (chks[i].checked) {
                competitor3List[l] = (chks[i].id);
                l++;
            }
        }
        else if (chks[i].id.indexOf('e' + event4ID + 'c') > -1) {
            if (chks[i].checked) {
                competitor4List[m] = (chks[i].id);
                m++;
            }
        }
        else if (chks[i].id.indexOf('e' + event5ID + 'c') > -1) {
            if (chks[i].checked) {
                competitor5List[n] = (chks[i].id);
                n++;
            }
        }
        else if (chks[i].id.indexOf('e' + event6ID + 'c') > -1) {
            if (chks[i].checked) {
                competitor6List[p] = (chks[i].id);
                p++;
            }
        }
    }
    if ((competitor1List.length > 0) && (competitor2List.length > 0) && (competitor3List.length > 0) && (competitor4List.length > 0) && (competitor5List.length > 0) && (competitor6List.length > 0)) {
        var bets = 'BOXGRID:';
        //multiple bets constructed for each competitor list
        for (j = 0; j < competitor1List.length; j++) {
            for (k = 0; k < competitor2List.length; k++) {
                for (l = 0; l < competitor3List.length; l++) {
                    for (m = 0; m < competitor4List.length; m++) {
                        for (n = 0; n < competitor5List.length; n++) {
                            for (p = 0; p < competitor6List.length; p++) {
                                var bet = 'EVENTID:' + pcID + '^SELECTION: '
                                + '^BETTYPE:28^PRICE:' + 0
                                + '^EVENTNAME:' + eventName
                                + '^ALLOWEACHWAY:false^EVENTDATE:' + eventTime
                                + '^COMPETITORNAME:'
                                    + competitor1List[j].split('^')[1] + ' @' + Number(competitor1List[j].split('^')[0].split('p')[1]).toFixed(2) + ', '
                                    + competitor2List[k].split('^')[1] + ' @' + Number(competitor2List[k].split('^')[0].split('p')[1]).toFixed(2) + ', '
                                    + competitor3List[l].split('^')[1] + ' @' + Number(competitor3List[l].split('^')[0].split('p')[1]).toFixed(2) + ', '
                                    + competitor4List[m].split('^')[1] + ' @' + Number(competitor4List[m].split('^')[0].split('p')[1]).toFixed(2) + ', '
                                    + competitor5List[n].split('^')[1] + ' @' + Number(competitor5List[n].split('^')[0].split('p')[1]).toFixed(2) + ', '
                                    + competitor6List[p].split('^')[1] + ' @' + Number(competitor6List[p].split('^')[0].split('p')[1]).toFixed(2) + ', '
                                + '^COMP1ID:' + competitor1List[j].split('_')[competitor1List[j].split('_').length - 1].split('^')[0].split('c')[1].split('p')[0]
                                + '^COMP2ID:' + competitor2List[k].split('_')[competitor2List[k].split('_').length - 1].split('^')[0].split('c')[1].split('p')[0]
                                + '^COMP3ID:' + competitor3List[l].split('_')[competitor3List[l].split('_').length - 1].split('^')[0].split('c')[1].split('p')[0]
                                + '^COMP4ID:' + competitor4List[m].split('_')[competitor4List[m].split('_').length - 1].split('^')[0].split('c')[1].split('p')[0]
                                + '^COMP5ID:' + competitor5List[n].split('_')[competitor5List[n].split('_').length - 1].split('^')[0].split('c')[1].split('p')[0]
                                + '^COMP6ID:' + competitor6List[p].split('_')[competitor6List[p].split('_').length - 1].split('^')[0].split('c')[1].split('p')[0]
                                + '^EVENT1ID:' + competitor1List[j].split('_')[competitor1List[j].split('_').length - 1].split('^')[0].split('c')[0].replace('e', '')
                                + '^EVENT2ID:' + competitor2List[k].split('_')[competitor2List[k].split('_').length - 1].split('^')[0].split('c')[0].replace('e', '')
                                + '^EVENT3ID:' + competitor3List[l].split('_')[competitor3List[l].split('_').length - 1].split('^')[0].split('c')[0].replace('e', '')
                                + '^EVENT4ID:' + competitor4List[m].split('_')[competitor4List[m].split('_').length - 1].split('^')[0].split('c')[0].replace('e', '')
                                + '^EVENT5ID:' + competitor5List[n].split('_')[competitor5List[n].split('_').length - 1].split('^')[0].split('c')[0].replace('e', '')
                                + '^EVENT6ID:' + competitor6List[p].split('_')[competitor6List[p].split('_').length - 1].split('^')[0].split('c')[0].replace('e', '')
                                + '^COMP1PRICE:' + competitor1List[j].split('^')[0].split('p')[1]
                                + '^COMP2PRICE:' + competitor2List[k].split('^')[0].split('p')[1]
                                + '^COMP3PRICE:' + competitor3List[l].split('^')[0].split('p')[1]
                                + '^COMP4PRICE:' + competitor4List[m].split('^')[0].split('p')[1]
                                + '^COMP5PRICE:' + competitor5List[n].split('^')[0].split('p')[1]
                                + '^COMP6PRICE:' + competitor6List[p].split('^')[0].split('p')[1];
                                //alert(stake);
                                bets += '#' + bet;
                            }
                        }
                    }
                }
            }
        }
        bets = bets + '#STAKE:' + stake;
        __doPostBack('UpdatePanelMainContent', bets);
    }
    else {
        alert('Invalid Place Card Bet - Please select at least one horse per event in the place card');
    }
}

function placeRMS(pcID, eventTime, eventName, event1ID, event2ID, event3ID, event4ID, stake) {
    var chks = document.getElementsByTagName('input');
    var competitor1List = [];
    var competitor2List = [];
    var competitor3List = [];
    var competitor4List = [];
    var j = 0;
    var k = 0;
    var l = 0;
    var m = 0;

    for (var i = 0; i < chks.length; i++) {
        if (chks[i].id.indexOf('e' + event1ID + 'c') > -1) {
            if (chks[i].checked) {
                competitor1List[j] = (chks[i].id);
                j++;
            }
        }
        else if (chks[i].id.indexOf('e' + event2ID + 'c') > -1) {
            if (chks[i].checked) {
                competitor2List[k] = (chks[i].id);
                k++;
            }
        }
        else if (chks[i].id.indexOf('e' + event3ID + 'c') > -1) {
            if (chks[i].checked) {
                competitor3List[l] = (chks[i].id);
                l++;
            }
        }
        else if (chks[i].id.indexOf('e' + event4ID + 'c') > -1) {
            if (chks[i].checked) {
                competitor4List[m] = (chks[i].id);
                m++;
            }
        }
    }
    if ((competitor1List.length > 0) && (competitor2List.length > 0) && (competitor3List.length > 0) && (competitor4List.length > 0)) {
        var bets = 'BOXGRID:';
        //multiple bets constructed for each competitor list
        for (j = 0; j < competitor1List.length; j++) {
            for (k = 0; k < competitor2List.length; k++) {
                for (l = 0; l < competitor3List.length; l++) {
                    for (m = 0; m < competitor4List.length; m++) {
                        var bet = 'EVENTID:' + pcID + '^SELECTION: '
                        + '^BETTYPE:1000^PRICE:' + 0
                        + '^EVENTNAME:' + eventName
                        + '^ALLOWEACHWAY:false^EVENTDATE:' + eventTime
                        + '^COMPETITORNAME:'
                            + competitor1List[j].split('^')[1] + ', '
                            + competitor2List[k].split('^')[1] + ', '
                            + competitor3List[l].split('^')[1] + ', '
                            + competitor4List[m].split('^')[1]
                        + '^COMP1ID:' + competitor1List[j].split('_')[competitor1List[j].split('_').length - 1].split('^')[0].split('c')[1].split('p')[0]
                        + '^COMP2ID:' + competitor2List[k].split('_')[competitor2List[k].split('_').length - 1].split('^')[0].split('c')[1].split('p')[0]
                        + '^COMP3ID:' + competitor3List[l].split('_')[competitor3List[l].split('_').length - 1].split('^')[0].split('c')[1].split('p')[0]
                        + '^COMP4ID:' + competitor4List[m].split('_')[competitor4List[m].split('_').length - 1].split('^')[0].split('c')[1].split('p')[0]
                        + '^EVENT1ID:' + competitor1List[j].split('_')[competitor1List[j].split('_').length - 1].split('^')[0].split('c')[0].replace('e', '')
                        + '^EVENT2ID:' + competitor2List[k].split('_')[competitor2List[k].split('_').length - 1].split('^')[0].split('c')[0].replace('e', '')
                        + '^EVENT3ID:' + competitor3List[l].split('_')[competitor3List[l].split('_').length - 1].split('^')[0].split('c')[0].replace('e', '')
                        + '^EVENT4ID:' + competitor4List[m].split('_')[competitor4List[m].split('_').length - 1].split('^')[0].split('c')[0].replace('e', '')
                        + '^COMP1PRICE:' + competitor1List[j].split('^')[0].split('p')[1]
                        + '^COMP2PRICE:' + competitor2List[k].split('^')[0].split('p')[1]
                        + '^COMP3PRICE:' + competitor3List[l].split('^')[0].split('p')[1]
                        + '^COMP4PRICE:' + competitor4List[m].split('^')[0].split('p')[1];
                        //alert(stake);
                        bets += '#' + bet;
                    }
                }
            }
        }
        bets = bets + '#STAKE:' + stake;
        __doPostBack('UpdatePanelMainContent', bets);
    }
    else {
        alert('Invalid Getoutski Bet - Please select at least one horse per event');
    }
}

function validateAndAddDoubleTreble(dtid, venue, eventTime, eventType, betTab) {
    var quaddieBetType = betTab; //NSW by default

    //    if (document.getElementById('betweb2_ctl02_optQuaddieVic') != null)
    //        if (document.getElementById('betweb2_ctl02_optQuaddieVic').checked)
    //        quaddieBetType = 96;
    //    if (document.getElementById('betweb2_ctl02_optQuaddieUNi') != null)
    //        if (document.getElementById('betweb2_ctl02_optQuaddieUNi').checked)
    //        quaddieBetType = 98;
    var fieldAcheckBoxes = document.getElementsByName('DTCompetitorsList1');
    var fieldBcheckBoxes = document.getElementsByName('DTCompetitorsList2');
    var fieldCcheckBoxes = document.getElementsByName('DTCompetitorsList3');
    var fieldDcheckBoxes = document.getElementsByName('DTCompetitorsList4');

    //var fieldBcheckBoxes = document.form1.QuinellaCompetitorsList2;
    var intSelection1Count = 0;
    var strSelection1 = '';
    var intSelection2Count = 0;
    var strSelection2 = '';
    var intSelection3Count = 0;
    var strSelection3 = '';
    var intSelection4Count = 0;
    var strSelection4 = '';
    var strSelection = '';

    var objBet = new clsBet();
    //competitor list 1
    for (i = 0; i < fieldAcheckBoxes.length; i++) {
        if (fieldAcheckBoxes[i].checked) {
            intSelection1Count++;
            strSelection1 += fieldAcheckBoxes[i].id.replace('chkSel1', '') + ',';
        }
    }
    //competitor list 2
    for (i = 0; i < fieldBcheckBoxes.length; i++) {
        if (fieldBcheckBoxes[i].checked) {
            intSelection2Count++;
            strSelection2 += fieldBcheckBoxes[i].id.replace('chkSel2', '') + ',';
        }
    }
    //competitor list 3
    for (i = 0; i < fieldCcheckBoxes.length; i++) {
        if (fieldCcheckBoxes[i].checked) {
            intSelection3Count++;
            strSelection3 += fieldCcheckBoxes[i].id.replace('chkSel3', '') + ',';
        }
    }
    //competitor list 4
    for (i = 0; i < fieldDcheckBoxes.length; i++) {
        if (fieldDcheckBoxes[i].checked) {
            intSelection4Count++;
            strSelection4 += fieldDcheckBoxes[i].id.replace('chkSel4', '') + ',';
        }
    }

    if (strSelection1 != "")
        strSelection1 = strSelection1.substring(0, strSelection1.length - 1);
    if (strSelection2 != "")
        strSelection2 = strSelection2.substring(0, strSelection2.length - 1);
    if (strSelection3 != "")
        strSelection3 = strSelection3.substring(0, strSelection3.length - 1);
    if (strSelection4 != "")
        strSelection4 = strSelection4.substring(0, strSelection4.length - 1);

    if (eventType == '97')//quaddie
    {
        strSelection = strSelection1 + ':' + strSelection2 + ':' + strSelection3 + ':' + strSelection4;
        objBet.StakeMultiplier = intSelection1Count * intSelection2Count * intSelection3Count * intSelection4Count;
        objBet.BetType = quaddieBetType;
    }
    else if (eventType == '52') {
        strSelection = strSelection1 + ':' + strSelection2 + ':' + strSelection3;
        objBet.StakeMultiplier = intSelection1Count * intSelection2Count * intSelection3Count;
        objBet.BetType = '52';
    }
    else {
        strSelection = strSelection1 + ':' + strSelection2;
        objBet.StakeMultiplier = intSelection1Count * intSelection2Count;
        if (eventType == '50')
            objBet.BetType = '50';
        else
            objBet.BetType = '51';
    }
    //if any of them were 0
    if (objBet.StakeMultiplier == 0) {
        alert("Invalid Multiple Selection");
        return;
    }

    var bet = 'EVENTID:' + dtid + '^SELECTION:' + strSelection + '^BETTYPE:' + objBet.BetType + '^PRICE:' + 0 + '^EVENTNAME:' + venue
    + '^ALLOWEACHWAY:false^EVENTDATE:' + eventTime + '^COMPETITORNAME:^STAKEMULTIPLIER:' + objBet.StakeMultiplier;
    //alert(bet);
    __doPostBack('UpdatePanelMainContent', bet);
}

function showPrintFriendlySlip() {
    window.showModalDialog("PrintSlip.aspx", null, "dialogHeight:300px; dialogLeft:200px; dialogWidth:640px;");
}

function showPrintFriendlyFreeBetSlip() {
    window.showModalDialog("PrintSlipFreeBet.aspx", null, "dialogHeight:300px; dialogLeft:200px; dialogWidth:640px;");
}

function placeFav4(bets) {
    __doPostBack('UpdatePanelMainContent', bets);
}

//bet class
function clsBet() {
}

function getPrice(bet) {
    var ret = 0.0;
    var betComponents = bet.split('^');
    var i = 0;
    for (i = 0; i < betComponents.length; i++) {
        if (betComponents[i].indexOf('PRICE:') == 0)
            ret = Number(betComponents[i].replace('PRICE:', '')).toFixed(2);
    }
    return ret;
}

function getBetType(bet) {
    var ret = 0;
    var betComponents = bet.split('^');
    var i = 0;
    for (i = 0; i < betComponents.length; i++) {
        if (betComponents[i].indexOf('BETTYPE:') == 0)
            ret = betComponents[i].replace('BETTYPE:', '');
    }
    return ret;
}

function getEventID(bet) {
    var ret = 0;
    var betComponents = bet.split('^');
    var i = 0;
    for (i = 0; i < betComponents.length; i++) {
        if (betComponents[i].indexOf('EVENTID:') == 0)
            ret = betComponents[i].replace('EVENTID:', '');
    }
    return ret;
}

function getSelection(bet) {
    var ret = 0;
    var betComponents = bet.split('^');
    var i = 0;
    for (i = 0; i < betComponents.length; i++) {
        if (betComponents[i].indexOf('SELECTION:') == 0)
            ret = betComponents[i].replace('SELECTION:', '');
    }
    return ret;
}

function getEventName(bet) {
    var ret = 0;
    var betComponents = bet.split('^');
    var i = 0;
    for (i = 0; i < betComponents.length; i++) {
        if (betComponents[i].indexOf('EVENTNAME:') == 0)
            ret = betComponents[i].replace('EVENTNAME:', '');
    }
    return ret;
}

function getRaceNo(bet) {
    var ret = 0;
    var betComponents = bet.split('^');
    var i = 0;
    for (i = 0; i < betComponents.length; i++) {
        if (betComponents[i].indexOf('RACENO:') == 0)
            ret = betComponents[i].replace('RACENO:', '');
    }
    return ret;
}

function getAllowEachWay(bet) {
    var ret = false;
    var betComponents = bet.split('^');
    var i = 0;
    for (i = 0; i < betComponents.length; i++) {
        if (betComponents[i].indexOf('ALLOWEACHWAY:') == 0)
            if (betComponents[i].replace('ALLOWEACHWAY:', '').toLowerCase() == 'true')
                ret = true;
    }
    return ret;
}

function getEventDate(bet) {
    var ret = 0;
    var betComponents = bet.split('^');
    var i = 0;
    for (i = 0; i < betComponents.length; i++) {
        if (betComponents[i].indexOf('EVENTDATE:') == 0)
            ret = betComponents[i].replace('EVENTDATE:', '');
    }
    return ret;
}

function getCompetitorName(bet) {
    var ret = 0;
    var betComponents = bet.split('^');
    var i = 0;
    for (i = 0; i < betComponents.length; i++) {
        if (betComponents[i].indexOf('COMPETITORNAME:') == 0)
            ret = betComponents[i].replace('COMPETITORNAME:', '');
    }
    return ret;
}


function getPoints(bet) {
    var ret = 0;
    var betComponents = bet.split('^');
    var i = 0;
    for (i = 0; i < betComponents.length; i++) {
        if (betComponents[i].indexOf('SPORTSPOINTS:') == 0)
            ret = betComponents[i].replace('SPORTSPOINTS:', '');
    }
    return ret;
}

function getMulti(bet) {
    var ret = 0;
    var betComponents = bet.split('^');
    var i = 0;
    for (i = 0; i < betComponents.length; i++)
        if (betComponents[i].indexOf('MULTI:True') == 0)
            return true;
    return false;
}

function getProfileStake() {
    var ret = 0;
    if (document.getElementById('headerUserInfo1_hdnProfileDefaultBetAmount') != null)
        if (document.getElementById('headerUserInfo1_hdnProfileDefaultBetAmount').value != '')
            ret = document.getElementById('headerUserInfo1_hdnProfileDefaultBetAmount').value;
    //alert(ret);
    return ret;
}

function isExotic(betType) {
    if (betType == eBetTypes.QuinellaStandardUNi || betType == eBetTypes.QuinellaStandardNSW || betType == eBetTypes.QuinellaStandardVic ||
		betType == eBetTypes.QuniellaStandout || betType == eBetTypes.QuinellaStandoutNSW || betType == eBetTypes.QuinellaStandoutVic ||
		betType == eBetTypes.QuinellaBoxUNi || betType == eBetTypes.QuinellaBoxNSW || betType == eBetTypes.QuinellaBoxVic ||
		betType == eBetTypes.ExactaStandardUNi || betType == eBetTypes.ExactaStandardNSW || betType == eBetTypes.ExactaStandardVic ||
		betType == eBetTypes.ExactaStandoutUNi || betType == eBetTypes.ExactaStandoutNSW || betType == eBetTypes.ExactaStandoutVic ||
		betType == eBetTypes.ExactaBoxUNi || betType == eBetTypes.ExactaBoxNSW || betType == eBetTypes.ExactaBoxVic ||
		betType == eBetTypes.ExactaMultiUNi || betType == eBetTypes.ExactaMultiNSW || betType == eBetTypes.ExactaMultiVic ||
		betType == eBetTypes.TrifectaStandardUNi || betType == eBetTypes.TrifectaStandardNSW || betType == eBetTypes.TrifectaStandardVic ||
		betType == eBetTypes.TrifectaStandoutUNi || betType == eBetTypes.TrifectaStandoutNSW || betType == eBetTypes.TrifectaStandoutVic ||
		betType == eBetTypes.TrifectaBoxUNi || betType == eBetTypes.TrifectaBoxNSW || betType == eBetTypes.TrifectaBoxVic ||
		betType == eBetTypes.TrifectaMultiUNi || betType == eBetTypes.TrifectaMultiNSW || betType == eBetTypes.TrifectaMultiVic ||
		betType == eBetTypes.First4StandardUNi || betType == eBetTypes.First4StandardNSW || betType == eBetTypes.First4StandardVic ||
		betType == eBetTypes.First4StandoutUNi || betType == eBetTypes.First4StandoutNSW || betType == eBetTypes.First4StandoutVic ||
		betType == eBetTypes.First4BoxUNi || betType == eBetTypes.First4BoxNSW || betType == eBetTypes.First4BoxVic ||
		betType == eBetTypes.First4MultiUNi || betType == eBetTypes.First4MultiNSW || betType == eBetTypes.First4MultiVic ||
		betType == eBetTypes.DailyDouble || betType == eBetTypes.ExtraDouble ||
		betType == eBetTypes.Treble ||
		betType == eBetTypes.QuaddieNSW || betType == eBetTypes.QuaddieVic || betType == eBetTypes.Quaddie || betType == eBetTypes.QuaddieUNi) {
        return true;
    }
    else {
        return false;
    }
}

function isEachwayAllowed(betType) {
    if ((betType == "2")
        || (betType == "3")
        || (betType == "6")
        || (betType == "1")
        || (betType == "7")
        || (betType == "19")
        || (betType == "27")
        || (betType == "15")
        || (betType == "29")
         || (betType == "101"))//wrong
        return true;
    else
        return false;
}

function getDisplayBetType(betType, points) {
    //alert(betType);
    // sport bet types
    if (betType == 101) return 'Straight';
    if (betType == 102) return 'Line (' + points + ') ';
    if (betType == 103) return 'Margin (<39.5)';
    if (betType == 104) return 'Margin (>39.5)';
    if (betType == 105) return 'Margin (<12.5)';
    if (betType == 106) return 'Margin (>12.5)';
    if (betType == 107) return 'Line (' + points + ') ';
    if (betType == 109) return 'Sets (2-0)';
    if (betType == 110) return 'Sets (2-1)';
    if (betType == 111) return 'Sets (3-0)';
    if (betType == 112) return 'Sets (3-1)';
    if (betType == 113) return 'Sets (3-2)';
    if (betType == 114) return 'KO';
    if (betType == 115) return 'Decision';
    if (betType == 116) return 'Handicap (' + points + ')';
    if (betType == 117) return 'Total Game Score (' + points + ')';
    if (betType == 118) return 'Margin (<10.5)'; //may change
    if (betType == 122) return 'Line (' + points + ') ';
    if (betType == 119) return 'Margin (>10.5)';
    if (betType == 120) return 'Margin (<24.5)'; ;
    if (betType == 121) return 'Margin (>24.5)';
    if (betType == 123) return 'Margin (<8.5)';
    if (betType == 124) return 'Margin (>8.5)';

    if (betType == 1) return 'Best Odds - Vic'
    if (betType == 2) return 'SP'
    if (betType == 3) return 'Start Price Insurance'
    if (betType == 6) return 'Best Fluc'
    if (betType == 7) return 'Best Odds - NSW'
    if (betType == 19) return 'Best Odds - UniTAB'
    if (betType == 16) return 'Place Only'
    if (betType == 27) return 'MaxiDiv'
    if (betType == 15) return 'Fixed'
    if (betType == 18) return 'Place Only (UniTAB)'
    if (betType == 10) return 'Place Only (NSW)'
    if (betType == 9) return 'Place Only (Vic)'
    if (betType == 24) return 'Standard Quinella (UniTAB)'
    if (betType == 25) return 'Box Quinella (UniTAB)'
    if (betType == 26) return 'Standout Quinella (UniTAB)'
    if (betType == 65) return 'Standard Quinella (NSW)'
    if (betType == 66) return 'Box Quinella (NSW)'
    if (betType == 67) return 'Standout Quinella (NSW)'
    if (betType == 80) return 'Standard Quinella (Vic)'
    if (betType == 81) return 'Box Quinella (Vic)'
    if (betType == 82) return 'Standout Quinella (Vic)'
    if (betType == 28) return 'Place Card'
    if (betType == 29) return 'SB Odds'
    if (betType == 34) return 'Standard Trifecta (UniTAB)'
    if (betType == 35) return 'Box Trifecta (UniTAB)'
    if (betType == 36) return 'Standout Trifecta (UniTAB)'
    if (betType == 37) return 'Multi Trifecta (UniTAB)'
    if (betType == 72) return 'Standard Trifecta (NSW)'
    if (betType == 73) return 'Box Trifecta (NSW)'
    if (betType == 74) return 'Standout Trifecta (NSW)'
    if (betType == 75) return 'Multi Trifecta (NSW)'
    if (betType == 87) return 'Standard Trifecta (Vic)'
    if (betType == 88) return 'Box Trifecta (Vic)'
    if (betType == 89) return 'Standout Trifecta (Vic)'
    if (betType == 90) return 'Multi Trifecta (Vic)'
    if (betType == 44) return 'Standard Exacta (UniTAB)'
    if (betType == 45) return 'Box Exacta (UniTAB)'
    if (betType == 46) return 'Standout Exacta (UniTAB)'
    if (betType == 47) return 'Multi Exacta (UniTAB)'
    if (betType == 68) return 'Standard Exacta (NSW)'
    if (betType == 69) return 'Box Exacta (NSW)'
    if (betType == 70) return 'Standout Exacta (NSW)'
    if (betType == 71) return 'Multi Exacta (NSW)'
    if (betType == 83) return 'Standard Exacta (Vic)'
    if (betType == 84) return 'Box Exacta (Vic)'
    if (betType == 85) return 'Standout Exacta (Vic)'
    if (betType == 86) return 'Multi Exacta (Vic)'
    if (betType == 50) return 'Daily Double';
    if (betType == 51) return 'Extra Double';
    if (betType == 52) return 'Treble';
    if (betType == 95) return 'Quaddie (NSW)';
    if (betType == 96) return 'Quaddie (Vic)';
    if (betType == 98) return 'Quaddie (UniTAB)';
    if (betType == 53) return 'Feature Double';
    if (betType == 54) return 'Standard First Four (UniTAB)';
    if (betType == 55) return 'Box First Four (UniTAB)';
    if (betType == 56) return 'Standout First Four (UniTAB)';
    if (betType == 57) return 'Multi First Four (UniTAB)';
    if (betType == 76) return 'Standard First Four (NSW)';
    if (betType == 77) return 'Box First Four (NSW)';
    if (betType == 78) return 'Standout First Four (NSW)';
    if (betType == 79) return 'Multi First Four (NSW)';
    if (betType == 91) return 'Standard First Four (Vic)';
    if (betType == 92) return 'Box First Four (Vic)';
    if (betType == 93) return 'Standout First Four (Vic)';
    if (betType == 94) return 'Multi First Four (Vic)';
    if (betType == 60) return 'Multi';
    if (betType == 64) return 'Feature Quinella';
    if (betType == 999) return 'Unknown';
    return 'Unknown';
}

function selectQuinellaField(iIndex) {
    var sVal;
    var iGotVal = 0;

    for (i = 0; i <= document.forms[0].elements.length - 1; i++) {
        if (document.forms[0].elements[i].type == "checkbox" &&
			document.forms[0].elements[i].name.indexOf("QuinellaCompetitorsList" + iIndex) > -1) {
            //alert(document.forms[0].elements[i+1].name);
            //determine the value of the check boxes
            if (iGotVal == 0) {
                sVal = !document.forms[0].elements[i].checked;
                iGotVal = 1;
                //alert(iGotVal);
            }
            //alert(document.forms[0].elements[i].name);
            // dont check if the value of the opposite box is selected
            if (sVal) {
                if (iIndex == 1) {
                    if (!document.forms[0].elements[i + 1].checked) {
                        document.forms[0].elements[i].checked = true;
                    }
                }
                else {
                    if (!document.forms[0].elements[i - 1].checked) {
                        document.forms[0].elements[i].checked = true;
                    }
                }
            }
            else {
                document.forms[0].elements[i].checked = sVal;
            }

        }
    }
}

function selectExactaField(iIndex) {
    var iFirstSelCount = 0;
    var iSecondSelCount = 0;
    var sFirstSelId, sSecondSelId;
    var bValue;

    // determine what the user has already selected
    for (i = 0; i <= document.forms[0].elements.length - 1; i++) {
        if (document.forms[0].elements[i].type == "checkbox" &&
		    document.forms[0].elements[i].checked) {
            if (document.forms[0].elements[i].name.indexOf("ExactaCompetitorsList1") > -1) {
                iFirstSelCount++;
                sFirstSelId = document.forms[0].elements[i].id.substring(document.forms[0].elements[i].id.indexOf("l1") + 2);
            }
            else if (document.forms[0].elements[i].name.indexOf("ExactaCompetitorsList2") > -1) {
                iSecondSelCount++
                sSecondSelId = document.forms[0].elements[i].id.substring(document.forms[0].elements[i].id.indexOf("l2") + 2);
            }
        }
    }
    // select the field
    for (i = 0; i <= document.forms[0].elements.length - 1; i++) {
        if (document.forms[0].elements[i].type == "checkbox" &&
			document.forms[0].elements[i].name.indexOf("ExactaCompetitorsList" + iIndex) > -1) {
            // ge the value of the first check box to determine the what to change to
            if (bValue == null)
                bValue = !document.forms[0].elements[i].checked;
            // set the value of the current checkbox
            if (!bValue)
                document.forms[0].elements[i].checked = bValue;
            else if (bValue && iIndex == 1 &&
		        !(iSecondSelCount == 1 && document.forms[0].elements[i].id.substring(document.forms[0].elements[i].id.indexOf("l1") + 2) == sSecondSelId)) {
                document.forms[0].elements[i].checked = bValue;
            }
            else if (bValue && iIndex == 2 &&
		        !(iFirstSelCount == 1 && document.forms[0].elements[i].id.substring(document.forms[0].elements[i].id.indexOf("l2") + 2) == sFirstSelId)) {
                //alert(document.forms[0].elements[i].id + '---------' + sFirstSelId);
                document.forms[0].elements[i].checked = bValue;
            }
        }
    }
}

function selectTrifectaField(iIndex) {
    var iFirstSelCount = 0;
    var iSecondSelCount = 0;
    var iThirdSelCount = 0;
    var sFirstSelId, sSecondSelId, sThirdSelId;
    var bValue;

    // determine what the user has already selected
    for (i = 0; i <= document.forms[0].elements.length - 1; i++) {
        if (document.forms[0].elements[i].type == "checkbox" &&
		    document.forms[0].elements[i].checked) {
            if (document.forms[0].elements[i].name.indexOf("TrifectaCompetitorsList1") > -1) {
                iFirstSelCount++;
                sFirstSelId = document.forms[0].elements[i].id.substring(document.forms[0].elements[i].id.indexOf("l1") + 2);
            }
            else if (document.forms[0].elements[i].name.indexOf("TrifectaCompetitorsList2") > -1) {
                iSecondSelCount++;
                sSecondSelId = document.forms[0].elements[i].id.substring(document.forms[0].elements[i].id.indexOf("l2") + 2);
            }
            else if (document.forms[0].elements[i].name.indexOf("TrifectaCompetitorsList3") > -1) {
                iThirdSelCount++;
                sThirdSelId = document.forms[0].elements[i].id.substring(document.forms[0].elements[i].id.indexOf("l3") + 2);
            }
        }
    }


    // select the field
    for (i = 0; i <= document.forms[0].elements.length - 1; i++) {
        if (document.forms[0].elements[i].type == "checkbox" &&
			document.forms[0].elements[i].name.indexOf("TrifectaCompetitorsList" + iIndex) > -1) {
            //alert(sFirstSelId + ' - ' + sSecondSelId + ' - ' + sThirdSelId);
            //alert("Count:" + iSecondSelCount + "\n " +
            //    "second sel id:" + sSecondSelId + "\n " +
            //    "cbid:" + document.forms[0].elements[i].name.substring(9));
            // ge the value of the first check box to determine the what to change to
            if (bValue == null)
                bValue = !document.forms[0].elements[i].checked;
            // set the value of the current checkbox
            if (!bValue)
                document.forms[0].elements[i].checked = bValue;
            else if (bValue && iIndex == 1 &&
		        !(iSecondSelCount == 1 && document.forms[0].elements[i].id.substring(document.forms[0].elements[i].id.indexOf("l1") + 2) == sSecondSelId) &&
		        !(iThirdSelCount == 1 && document.forms[0].elements[i].id.substring(document.forms[0].elements[i].id.indexOf("l1") + 2) == sThirdSelId)) {
                document.forms[0].elements[i].checked = bValue;
            }
            else if (bValue && iIndex == 2 &&
		        !(iFirstSelCount == 1 && document.forms[0].elements[i].id.substring(document.forms[0].elements[i].id.indexOf("l2") + 2) == sFirstSelId) &&
		        !(iThirdSelCount == 1 && document.forms[0].elements[i].id.substring(document.forms[0].elements[i].id.indexOf("l2") + 2) == sThirdSelId)) {
                document.forms[0].elements[i].checked = bValue;
            }
            else if (bValue && iIndex == 3 &&
		        !(iFirstSelCount == 1 && document.forms[0].elements[i].id.substring(document.forms[0].elements[i].id.indexOf("l3") + 2) == sFirstSelId) &&
		        !(iSecondSelCount == 1 && document.forms[0].elements[i].id.substring(document.forms[0].elements[i].id.indexOf("l3") + 2) == sSecondSelId)) {
                document.forms[0].elements[i].checked = bValue;
            }
        }
    }
}

function selectFirstFourField(iIndex) {
    var iFirstSelCount = 0;
    var iSecondSelCount = 0;
    var iThirdSelCount = 0;
    var iFourthSelCount = 0;
    var sFirstSelId, sSecondSelId, sThirdSelId, sFourthSelId;
    var bValue;

    // determine what the user has already selected
    for (i = 0; i <= document.forms[0].elements.length - 1; i++) {
        if (document.forms[0].elements[i].type == "checkbox" &&
		    document.forms[0].elements[i].checked) {
            if (document.forms[0].elements[i].name.indexOf("FFCompetitorsList1") > -1) {
                iFirstSelCount++;
                sFirstSelId = document.forms[0].elements[i].id.substring(document.forms[0].elements[i].id.indexOf("l1") + 2);
            }
            else if (document.forms[0].elements[i].name.indexOf("FFCompetitorsList2") > -1) {
                iSecondSelCount++
                sSecondSelId = document.forms[0].elements[i].id.substring(document.forms[0].elements[i].id.indexOf("l2") + 2);
            }
            else if (document.forms[0].elements[i].name.indexOf("FFCompetitorsList3") > -1) {
                iThirdSelCount++;
                sThirdSelId = document.forms[0].elements[i].id.substring(document.forms[0].elements[i].id.indexOf("l3") + 2);
            }
            else if (document.forms[0].elements[i].name.indexOf("FFCompetitorsList4") > -1) {
                iFourthSelCount++;
                sFourthSelId = document.forms[0].elements[i].id.substring(document.forms[0].elements[i].id.indexOf("l4") + 2);
            }
        }
    }
    // select the field
    for (i = 0; i <= document.forms[0].elements.length - 1; i++) {
        if (document.forms[0].elements[i].type == "checkbox" &&
			document.forms[0].elements[i].name.indexOf("FFCompetitorsList" + iIndex) > -1) {
            //alert("Count:" + iSecondSelCount + "\n " +
            //    "second sel id:" + sSecondSelId + "\n " +
            //    "cbid:" + document.forms[0].elements[i].name.substring(9));
            // ge the value of the first check box to determine the what to change to
            if (bValue == null)
                bValue = !document.forms[0].elements[i].checked;
            // set the value of the current checkbox
            if (!bValue)
                document.forms[0].elements[i].checked = bValue;
            else if (bValue && iIndex == 1 &&
		        !(iSecondSelCount == 1 && document.forms[0].elements[i].id.substring(document.forms[0].elements[i].id.indexOf("l1") + 2) == sSecondSelId) &&
		        !(iThirdSelCount == 1 && document.forms[0].elements[i].id.substring(document.forms[0].elements[i].id.indexOf("l1") + 2) == sThirdSelId) &&
		        !(iFourthSelCount == 1 && document.forms[0].elements[i].id.substring(document.forms[0].elements[i].id.indexOf("l1") + 2) == sFourthSelId)) {
                document.forms[0].elements[i].checked = bValue;
            }
            else if (bValue && iIndex == 2 &&
		        !(iFirstSelCount == 1 && document.forms[0].elements[i].id.substring(document.forms[0].elements[i].id.indexOf("l2") + 2) == sFirstSelId) &&
		        !(iThirdSelCount == 1 && document.forms[0].elements[i].id.substring(document.forms[0].elements[i].id.indexOf("l2") + 2) == sThirdSelId) &&
		        !(iFourthSelCount == 1 && document.forms[0].elements[i].id.substring(document.forms[0].elements[i].id.indexOf("l2") + 2) == sFourthSelId)) {
                document.forms[0].elements[i].checked = bValue;
            }
            else if (bValue && iIndex == 3 &&
		        !(iFirstSelCount == 1 && document.forms[0].elements[i].id.substring(document.forms[0].elements[i].id.indexOf("l3") + 2) == sFirstSelId) &&
		        !(iSecondSelCount == 1 && document.forms[0].elements[i].id.substring(document.forms[0].elements[i].id.indexOf("l3") + 2) == sSecondSelId) &&
		        !(iFourthSelCount == 1 && document.forms[0].elements[i].id.substring(document.forms[0].elements[i].id.indexOf("l3") + 2) == sFourthSelId)) {
                document.forms[0].elements[i].checked = bValue;
            }
            else if (bValue && iIndex == 4 &&
		        !(iFirstSelCount == 1 && document.forms[0].elements[i].id.substring(document.forms[0].elements[i].id.indexOf("l4") + 2) == sFirstSelId) &&
		        !(iSecondSelCount == 1 && document.forms[0].elements[i].id.substring(document.forms[0].elements[i].id.indexOf("l4") + 2) == sSecondSelId) &&
		        !(iThirdSelCount == 1 && document.forms[0].elements[i].id.substring(document.forms[0].elements[i].id.indexOf("l4") + 2) == sThirdSelId)) {
                document.forms[0].elements[i].checked = bValue;
            }
        }
    }
}

function selectDoubleTrebleField(iIndex) {
    var sVal;
    var iGotVal = 0;

    for (i = 0; i <= document.forms[0].elements.length - 1; i++) {
        if (document.forms[0].elements[i].type == "checkbox" &&
			document.forms[0].elements[i].name.indexOf("DTCompetitorsList" + iIndex) >= 0) {
            //alert(document.forms[0].elements[i+1].name);
            //determine the value of the check boxes
            if (iGotVal == 0) {
                sVal = !document.forms[0].elements[i].checked;
                iGotVal = 1;
                //alert(iGotVal);
            }

            document.forms[0].elements[i].checked = sVal;

        }
    }
}

function selectGenExField() {
    var sVal;
    var iGotVal = 0;

    for (i = 0; i <= document.forms[0].elements.length - 1; i++) {
        if (document.forms[0].elements[i].type == "checkbox" &&
			document.forms[0].elements[i].name.indexOf("GenericExoticCompetitorsList1") > -1) {
            //alert(document.forms[0].elements[i+1].name);
            //determine the value of the check boxes
            if (iGotVal == 0) {
                sVal = !document.forms[0].elements[i].checked;
                iGotVal = 1;
                //alert(iGotVal);
            }
            //alert(document.forms[0].elements[i].name);
            // dont check if the value of the opposite box is selected
            if (sVal) {
                if (!document.forms[0].elements[i + 1].checked) {
                    document.forms[0].elements[i].checked = true;
                }
            }
            else {
                document.forms[0].elements[i].checked = sVal;
            }

        }
    }
}

function validateQuinella() {
    var tote = GetCookie('PreferedTote');
    var toteStraightQuinella = 24;
    var toteBoxQuinella = 25;
    var toteStandoutQuinella = 26;
    if (tote == 'NSW') {
        toteStraightQuinella = 65;
        toteBoxQuinella = 66;
        toteStandoutQuinella = 67;
    }
    else if (tote == 'Vic') {
        toteStraightQuinella = 80;
        toteBoxQuinella = 81;
        toteStandoutQuinella = 82;
    }
    else if (tote == 'SBO') {
        toteStraightQuinella = 224;
        toteBoxQuinella = 225;
        toteStandoutQuinella = 226;
    }

    var fieldAcheckBoxes = document.getElementsByName('QuinellaCompetitorsList1');
    var fieldBcheckBoxes = document.getElementsByName('QuinellaCompetitorsList2');
    var intSelection1Count = 0;
    var intSelection2Count = 0;
    var strSelection1 = '';
    var strSelection2 = '';
    var strSelection = '';

    var objBet = new clsBet();

    for (i = 0; i < fieldAcheckBoxes.length; i++) {
        if (fieldAcheckBoxes[i].checked && fieldBcheckBoxes[i].checked)
            return 'false';
        if (fieldAcheckBoxes[i].checked) {
            intSelection1Count++;
            strSelection1 += fieldAcheckBoxes[i].id.replace('chkSel1', '') + ',';
        }
    }
    for (i = 0; i < fieldBcheckBoxes.length; i++) {
        if (fieldBcheckBoxes[i].checked) {
            intSelection2Count++;
            strSelection2 += fieldBcheckBoxes[i].id.replace('chkSel2', '') + ',';
        }
    }
    if (strSelection1 != "")
        strSelection1 = strSelection1.substring(0, strSelection1.length - 1);
    if (strSelection2 != "")
        strSelection2 = strSelection2.substring(0, strSelection2.length - 1);

    if (intSelection1Count == 1 && intSelection2Count == 1) {
        strSelection = strSelection1 + "," + strSelection2;
        objBet.BetType = toteStraightQuinella;
        objBet.StakeMultiplier = 1;
    }
    else if (intSelection1Count == 1 && intSelection2Count > 1) {
        strSelection = strSelection1 + ":" + strSelection2;
        objBet.BetType = toteStandoutQuinella;
        objBet.StakeMultiplier = intSelection2Count;
    }
    else if (intSelection1Count > 1 && intSelection2Count == 1) {
        strSelection = strSelection2 + ":" + strSelection1;
        objBet.BetType = toteStandoutQuinella;
        objBet.StakeMultiplier = intSelection1Count;
    }
    else if (intSelection1Count == 2 && intSelection2Count == 0) {
        strSelection = strSelection1;
        objBet.BetType = toteStraightQuinella;
        objBet.StakeMultiplier = 1;
    }
    else if (intSelection1Count == 0 && intSelection2Count == 2) {
        strSelection = strSelection2;
        objBet.BetType = toteStraightQuinella;
        objBet.StakeMultiplier = 1;
    }
    else if (intSelection1Count > 2 && intSelection2Count == 0) {
        strSelection = strSelection1;
        objBet.BetType = toteBoxQuinella;
        objBet.StakeMultiplier = (intSelection1Count * (intSelection1Count - 1)) / 2;
    }
    else if (intSelection1Count == 0 && intSelection2Count > 2) {
        strSelection = strSelection2;
        objBet.BetType = toteBoxQuinella;
        objBet.StakeMultiplier = (intSelection2Count * (intSelection2Count - 1)) / 2;
    }
    else {
        // invalid bet show exception...
        //objBS.GeneralMessage = ConfigurationManager.AppSettings["invalidQuinella"];
        //return objBS;
        return 'false';
    }
    return 'SELECTION:' + strSelection + '^BETTYPE:' + objBet.BetType + '^STAKEMULTIPLIER:' + objBet.StakeMultiplier;
}


function fact(i) {
    ret = 1;
    for (x = 1; x <= i; x++) {
        ret *= x;
    }
    return ret;
}

function validateExacta(roving) {
    var rove = false;
    if (roving != null)
        rove = true;
    var tote = GetCookie('PreferedTote');
    var toteStraightExacta = 44;
    var toteBoxExacta = 45;
    var toteStandoutExacta = 46;
    var toteMultiExacta = 47;
    var toteRoveExacta = 260;

    if (tote == 'NSW') {
        toteStraightExacta = 68;
        toteBoxExacta = 69;
        toteStandoutExacta = 70;
        toteMultiExacta = 71;
        toteRoveExacta = 261;
    }
    else if (tote == 'Vic') {
        toteStraightExacta = 83;
        toteBoxExacta = 84;
        toteStandoutExacta = 85;
        toteMultiExacta = 86;
        toteRoveExacta = 262;
    }
    else if (tote == 'SBO') {
        toteStraightExacta = 244;
        toteBoxExacta = 245;
        toteStandoutExacta = 246;
        toteMultiExacta = 247;
        toteRoveExacta = 263;
    }

    var fieldAcheckBoxes = document.getElementsByName('ExactaCompetitorsList1');
    var fieldBcheckBoxes = document.getElementsByName('ExactaCompetitorsList2');
    var intSelection1Count = 0;
    var intSelection2Count = 0;
    var strSelection1 = '';
    var strSelection2 = '';
    var strSelection = '';
    var arrSelection1;
    var arrSelection2;
    var intCombinations = 0;

    var objBet = new clsBet();
    for (i = 0; i < fieldAcheckBoxes.length; i++) {
        if (fieldAcheckBoxes[i].checked) {
            intSelection1Count++;
            strSelection1 += fieldAcheckBoxes[i].id.replace('chkSel1', '') + ',';
        }
    }
    for (i = 0; i < fieldBcheckBoxes.length; i++) {
        if (fieldBcheckBoxes[i].checked) {
            intSelection2Count++;
            strSelection2 += fieldBcheckBoxes[i].id.replace('chkSel2', '') + ',';
        }
    }

    if (strSelection1 != "")
        strSelection1 = strSelection1.substring(0, strSelection1.length - 1);
    if (strSelection2 != "")
        strSelection2 = strSelection2.substring(0, strSelection2.length - 1);

    //roving banker exacta
    if (rove == true) {
        if (intSelection1Count > 1)
            return 'false:You cannot have more than 1 Roving selections for a Roving Banker Exacta.';
        else if (intSelection1Count < 1 || intSelection2Count < 1)
            return 'false:Insufficient number of competitors for a Roving Banker Exacta.';

        strSelection = strSelection1 + ":" + strSelection2;
        // get the selections into array format
        arrSelection1 = strSelection1.split(',');
        arrSelection2 = strSelection2.split(',');

        // calculate the number of combinations
        for (x = 0; x <= arrSelection1.length - 1; x++)
            for (y = 0; y <= arrSelection2.length - 1; y++)
                if (arrSelection1[x] == arrSelection2[y])
                    return 'false:Invalid Roving Banker Exacta';
                else
                    intCombinations++;

        if (intCombinations == 0) {
            //objBS.GeneralMessage = ConfigurationManager.AppSettings["invalidExacta"];
            return 'false:Invalid Exacta';
        }
        objBet.BetType = toteRoveExacta;
        objBet.StakeMultiplier = intCombinations * 2;
        return 'SELECTION:' + strSelection + '^BETTYPE:' + objBet.BetType + '^STAKEMULTIPLIER:' + objBet.StakeMultiplier;
    }
    else {
        if (intSelection1Count == 1 && intSelection2Count == 1) {
            // Straight exacta bet type
            objBet.BetType = toteStraightExacta;
            strSelection = strSelection1 + ":" + strSelection2;
            intCombinations = 1;

            // check that the selection is valid
            if (strSelection1 == strSelection2) {
                return 'false:Invalid Exacta';
            }
        }
        else if (intSelection1Count >= 2 && intSelection2Count == 0) {
            // Box Exacta bet type
            objBet.BetType = toteBoxExacta;
            strSelection = strSelection1;

            arrSelection1 = strSelection1.split(',');

            // calculate the number of combinations
            for (x = 0; x <= arrSelection1.length - 1; x++) {
                for (y = 0; y <= arrSelection1.length - 1; y++) {
                    if (arrSelection1[x] != arrSelection1[y])
                        intCombinations++;
                }
            }
        }
        else if (intSelection1Count >= 1 && intSelection2Count >= 1) {
            if (intSelection1Count == 1 || intSelection2Count == 1) {
                // Standout Exacta bet type
                objBet.BetType = toteStandoutExacta;
            }
            else {
                // Multiple Exacta bet type
                objBet.BetType = toteMultiExacta;
            }
            strSelection = strSelection1 + ":" + strSelection2;
            // get the selections into array format
            arrSelection1 = strSelection1.split(',');
            arrSelection2 = strSelection2.split(',');

            // calculate the number of combinations
            for (x = 0; x <= arrSelection1.length - 1; x++) {
                for (y = 0; y <= arrSelection2.length - 1; y++) {
                    if (arrSelection1[x] != arrSelection2[y])
                        intCombinations++;
                }
            }

            if (intCombinations == 0) {
                //objBS.GeneralMessage = ConfigurationManager.AppSettings["invalidExacta"];
                return 'false:Invalid Exacta';
            }
        }
        else {
            //objBS.GeneralMessage = ConfigurationManager.AppSettings["invalidExacta"];
            return 'false:Invalid Exacta';
        }
        objBet.StakeMultiplier = intCombinations;
        return 'SELECTION:' + strSelection + '^BETTYPE:' + objBet.BetType + '^STAKEMULTIPLIER:' + objBet.StakeMultiplier;
    }

}

function validatefirstFour(roving) {
    var rove = false;
    if (roving != null)
        rove = true;
    var tote = GetCookie('PreferedTote');
    var toteStraightFF = 54;
    var toteBoxFF = 55;
    var toteStandoutFF = 56;
    var toteMultiFF = 57;
    var toteRoveFF = 268;
    if (tote == 'NSW') {
        toteStraightFF = 76;
        toteBoxFF = 77;
        toteStandoutFF = 78;
        toteMultiFF = 79;
        toteRoveFF = 269;
    }
    else if (tote == 'Vic') {
        toteStraightFF = 91;
        toteBoxFF = 92;
        toteStandoutFF = 93;
        toteMultiFF = 94;
        toteRoveFF = 270;
    }
    else if (tote == 'SBO') {
        toteStraightFF = 254;
        toteBoxFF = 255;
        toteStandoutFF = 256;
        toteMultiFF = 257;
        toteRoveFF = 271;
    }

    var i;
    var intSelection1Count = 0;
    var intSelection2Count = 0;
    var intSelection3Count = 0;
    var intSelection4Count = 0;

    var strSelection1 = '';
    var strSelection2 = '';
    var strSelection3 = '';
    var strSelection4 = '';
    var strSelection = '';
    var arrSelection1; var arrSelection2; var arrSelection3;
    var splitter = ',';
    var x; var y; var z;
    var intCombinations = 0;
    var intIndex;
    var fieldAcheckBoxes = document.getElementsByName('FFCompetitorsList1');
    var fieldBcheckBoxes = document.getElementsByName('FFCompetitorsList2');
    var fieldCcheckBoxes = document.getElementsByName('FFCompetitorsList3');
    var fieldDcheckBoxes = document.getElementsByName('FFCompetitorsList4');

    var objBet = new clsBet();
    //objBet.EventId = long.Parse(Request["eventId"]);
    //objBet.EventName = Request["txtEventName"].ToString();
    //objBet.EventDate = DateTime.Parse(Request["txtEventDate"], 
    //	new System.Globalization.CultureInfo(ConfigurationManager.AppSettings["CultureInfo"], true));
    for (i = 0; i < fieldAcheckBoxes.length; i++) {
        if (fieldAcheckBoxes[i].checked) {
            intSelection1Count++;
            strSelection1 += fieldAcheckBoxes[i].id.replace('chkSel1', '') + ',';
        }
    }
    for (i = 0; i < fieldBcheckBoxes.length; i++) {
        if (fieldBcheckBoxes[i].checked) {
            intSelection2Count++;
            strSelection2 += fieldBcheckBoxes[i].id.replace('chkSel2', '') + ',';
        }
    }

    for (i = 0; i < fieldCcheckBoxes.length; i++) {
        if (fieldCcheckBoxes[i].checked) {
            intSelection3Count++;
            strSelection3 += fieldCcheckBoxes[i].id.replace('chkSel3', '') + ',';
        }
    }

    for (i = 0; i < fieldDcheckBoxes.length; i++) {

        if (fieldDcheckBoxes[i].checked) {
            intSelection4Count++;
            strSelection4 += fieldDcheckBoxes[i].id.replace('chkSel4', '') + ',';
        }
    }
    //strSelection2 = '1,2,3,4,5,6,7,8,9,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,';
    // get each of the comptitor IDs.
    // remove the last comma
    if (strSelection1 != "")
        strSelection1 = strSelection1.substring(0, strSelection1.length - 1);
    if (strSelection2 != "")
        strSelection2 = strSelection2.substring(0, strSelection2.length - 1);
    if (strSelection3 != "")
        strSelection3 = strSelection3.substring(0, strSelection3.length - 1);
    if (strSelection4 != "")
        strSelection4 = strSelection4.substring(0, strSelection4.length - 1);

    //roving banker first four
    if (rove == true) {
        arrSelection1 = strSelection1.split(',');
        arrSelection2 = strSelection2.split(',');   
         for (x = 0; x <= arrSelection1.length - 1; x++)
            for (y = 0; y <= arrSelection2.length - 1; y++)
                if (arrSelection1[x] == arrSelection2[y])
                    return 'false:Invalid Roving Banker First Four';
        if (intSelection1Count > 3)
            return 'false:You cannot have more than 3 Roving selections for a Roving Banker First Four.';
        else if (intSelection1Count < 1 || intSelection1Count + intSelection2Count < 4)
            return 'false:Insufficient number of competitors for a Roving Banker First Four.';
        // get the selections into array format
        m = strSelection1.split(',');
        n = strSelection2.split(',');

//        for (aa = 1; aa < 50; aa++)
       

        // calculate the number of combinations
        combinations = fact(m.length) * (fact(n.length) / (fact(n.length - 4 + m.length))) * (fact(4) / fact(4 - m.length) / fact(m.length));
        //alert(fact(m.length) + ' - ' + (fact(n.length) / (fact(n.length - 4 + m.length))) +' - ' +(fact(4) / fact(4 - m.length) / fact(m.length)) +' - ' + combinations);
        if (combinations == 0) {
            //objBS.GeneralMessage = ConfigurationManager.AppSettings["invalidExacta"];
            return 'false:Invalid First Four';
        }
        
        strSelection = strSelection1 + ":" + strSelection2;
        objBet.BetType = toteRoveFF;
        objBet.StakeMultiplier = combinations.toFixed(0);
        //alert('SELECTION:' + strSelection + '^BETTYPE:' + objBet.BetType + '^STAKEMULTIPLIER:' + combinations.toFixed(0));
        return 'SELECTION:' + strSelection + '^BETTYPE:' + objBet.BetType + '^STAKEMULTIPLIER:' + objBet.StakeMultiplier;
    }
    else {
        // get the ff bet type
        if (intSelection1Count == 1 && intSelection2Count == 1 && intSelection3Count == 1 && intSelection4Count == 1) {
            // Straight ff bet type
            objBet.BetType = toteStraightFF;
            intCombinations = 1;
            strSelection = strSelection1 + ":" + strSelection2 + ":" + strSelection3 + ":" + strSelection4;

            // check that the selection is valid
            if (strSelection1 == strSelection2 || strSelection1 == strSelection3 ||
					strSelection1 == strSelection4 || strSelection2 == strSelection3 ||
					strSelection2 == strSelection4 || strSelection3 == strSelection4) {
                return 'false:Invalid First Four';
            }
        }
        else if (intSelection1Count >= 4 && intSelection2Count == 0
				&& intSelection3Count == 0 && intSelection4Count == 0) {
            // Box FF bet type
            objBet.BetType = toteBoxFF;

            strSelection = strSelection1;

            arrSelection1 = strSelection1.split(',');

            // calculate the number of combinations
            for (w = 0; w <= arrSelection1.length - 1; w++) {
                for (x = 0; x <= arrSelection1.length - 1; x++) {
                    for (y = 0; y <= arrSelection1.length - 1; y++) {
                        for (z = 0; z <= arrSelection1.length - 1; z++) {
                            if (arrSelection1[w] != arrSelection1[x] &&
									arrSelection1[w] != arrSelection1[y] &&
									arrSelection1[w] != arrSelection1[z] &&
									arrSelection1[x] != arrSelection1[y] &&
									arrSelection1[x] != arrSelection1[z] &&
									arrSelection1[y] != arrSelection1[z])
                                intCombinations++;
                        }
                    }
                }
            }
        }
        else if (intSelection1Count >= 1 && intSelection2Count >= 1 &&
				intSelection3Count >= 1 && intSelection4Count >= 1) {
            if (intSelection1Count == 1 || intSelection2Count == 1 ||
					intSelection3Count == 1 || intSelection4Count == 1) {
                // Standout ff bet type
                objBet.BetType = toteStandoutFF;
            }
            else {
                // Multiple ff bet type
                objBet.BetType = toteMultiFF;
            }
            strSelection = strSelection1 + ":" + strSelection2 + ":" + strSelection3 + ":" + strSelection4;
            // get the selections into array format
            arrSelection1 = strSelection1.split(',');
            arrSelection2 = strSelection2.split(',');
            arrSelection3 = strSelection3.split(',');
            arrSelection4 = strSelection4.split(',');

            // calculate the number of combinations
            for (w = 0; w <= arrSelection1.length - 1; w++) {
                for (x = 0; x <= arrSelection2.length - 1; x++) {
                    for (y = 0; y <= arrSelection3.length - 1; y++) {
                        for (z = 0; z <= arrSelection4.length - 1; z++) {
                            if (arrSelection1[w] != arrSelection2[x] &&
									arrSelection1[w] != arrSelection3[y] &&
									arrSelection1[w] != arrSelection4[z] &&
									arrSelection2[x] != arrSelection3[y] &&
									arrSelection2[x] != arrSelection4[z] &&
									arrSelection3[y] != arrSelection4[z])
                                intCombinations++;
                        }
                    }
                }
            }

            if (intCombinations == 0) {
                return 'false:Invalid First Four';
            }
        }
        else {
            return 'false:Invalid First Four';
        }

        objBet.Selection = strSelection;
        /*objBet.StakeMultiplier = intCombinations;*/
        objBet.StakeMultiplier = intCombinations;
        return 'SELECTION:' + strSelection + '^BETTYPE:' + objBet.BetType + '^STAKEMULTIPLIER:' + objBet.StakeMultiplier;
    }
}

String.prototype.startsWith = function (str)
{ return (this.match("^" + str) == str) }

function validateTrifecta(roving) {
    var rove = false;
    if (roving != null)
        rove = true;
    var tote = GetCookie('PreferedTote');
    var toteStraightTrifecta = 34;
    var toteBoxTrifecta = 35;
    var toteStandoutTrifecta = 36;
    var toteMultiTrifecta = 37;
    var toteRoveTrifecta = 264;
    if (tote == 'NSW') {
        toteStraightTrifecta = 72;
        toteBoxTrifecta = 73;
        toteStandoutTrifecta = 74;
        toteMultiTrifecta = 75;
        toteRoveTrifecta = 265;
    }
    else if (tote == 'Vic') {
        toteStraightTrifecta = 87;
        toteBoxTrifecta = 88;
        toteStandoutTrifecta = 89;
        toteMultiTrifecta = 90;
        toteRoveTrifecta = 266;
    }
    else if (tote == 'SBO') {
        toteStraightTrifecta = 234;
        toteBoxTrifecta = 235;
        toteStandoutTrifecta = 236;
        toteMultiTrifecta = 237;
        toteRoveTrifecta = 267;
    }

    var i;
    var intSelection1Count = 0;
    var intSelection2Count = 0;
    var intSelection3Count = 0;
    var strSelection1 = '';
    var strSelection2 = '';
    var strSelection3 = '';
    var strSelection = '';
    var arrSelection1; var arrSelection2; var arrSelection3;
    var splitter = ',';
    var x; var y; var z;
    var intCombinations = 0;
    var intIndex;
    var fieldAcheckBoxes = document.getElementsByName('TrifectaCompetitorsList1');
    var fieldBcheckBoxes = document.getElementsByName('TrifectaCompetitorsList2');
    var fieldCcheckBoxes = document.getElementsByName('TrifectaCompetitorsList3');

    var objBet = new clsBet();
    //objBet.EventId = long.Parse(Request["eventId"]);
    //objBet.EventName = Request["txtEventName"].ToString();
    //objBet.EventDate = DateTime.Parse(Request["txtEventDate"], 
    //	new System.Globalization.CultureInfo(ConfigurationManager.AppSettings["CultureInfo"], true));
    for (i = 0; i < fieldAcheckBoxes.length; i++) {
        if (fieldAcheckBoxes[i].checked) {
            intSelection1Count++;
            strSelection1 += fieldAcheckBoxes[i].id.replace('chkSel1', '') + ',';
        }
    }
    for (i = 0; i < fieldBcheckBoxes.length; i++) {
        if (fieldBcheckBoxes[i].checked) {
            intSelection2Count++;
            strSelection2 += fieldBcheckBoxes[i].id.replace('chkSel2', '') + ',';
        }
    }

    for (i = 0; i < fieldCcheckBoxes.length; i++) {
        if (fieldCcheckBoxes[i].checked) {
            intSelection3Count++;
            strSelection3 += fieldCcheckBoxes[i].id.replace('chkSel3', '') + ',';
        }
    }
    if (strSelection1 != "")
        strSelection1 = strSelection1.substring(0, strSelection1.length - 1);
    if (strSelection2 != "")
        strSelection2 = strSelection2.substring(0, strSelection2.length - 1);
    if (strSelection3 != "")
        strSelection3 = strSelection3.substring(0, strSelection3.length - 1);
    //roving banker trifecta
    if (rove == true) {
        arrSelection1 = strSelection1.split(',');
        arrSelection2 = strSelection2.split(',');   
         for (x = 0; x <= arrSelection1.length - 1; x++)
            for (y = 0; y <= arrSelection2.length - 1; y++)
                if (arrSelection1[x] == arrSelection2[y])
                    return 'false:Invalid Roving Banker Trifecta';

        if (intSelection1Count > 2)
            return 'false:You cannot have more than 2 Roving selections for a Roving Banker Trifecta.';
        else if (intSelection1Count < 1 || intSelection1Count + intSelection2Count < 3)
            return 'false:Insufficient number of competitors for a Roving Banker Trifecta.';

        // get the selections into array format
        m = strSelection1.split(',');
        n = strSelection2.split(',');

        // calculate the number of combinations
        combinations = fact(m.length) * (fact(n.length) / (fact(n.length - 3 + m.length))) * (fact(3) / fact(3 - m.length) / fact(m.length));
        if (combinations == 0) {
            //objBS.GeneralMessage = ConfigurationManager.AppSettings["invalidExacta"];
            return 'false:Invalid Trifecta';
        }
        strSelection = strSelection1 + ":" + strSelection2;
        objBet.BetType = toteRoveTrifecta;
        objBet.StakeMultiplier = combinations;
        return 'SELECTION:' + strSelection + '^BETTYPE:' + objBet.BetType + '^STAKEMULTIPLIER:' + objBet.StakeMultiplier;
    }
    else {

        // get the trifecta bet type
        if (intSelection1Count == 1 && intSelection2Count == 1 && intSelection3Count == 1) {
            // Straight Trifecta bet type
            objBet.BetType = toteStraightTrifecta;
            intCombinations = 1;
            strSelection = strSelection1 + ":" + strSelection2 + ":" + strSelection3;

            // check that the selection is valid
            if (strSelection1 == strSelection2 || strSelection1 == strSelection3 || strSelection2 == strSelection3) {
                return 'false:Invalid Trifecta';
            }
        }
        else if (intSelection1Count >= 3 && intSelection2Count == 0 && intSelection3Count == 0) {
            // Box Trifecta bet type
            objBet.BetType = toteBoxTrifecta;

            strSelection = strSelection1;

            arrSelection1 = strSelection1.split(',');

            // calculate the number of combinations
            for (x = 0; x <= arrSelection1.length - 1; x++) {
                for (y = 0; y <= arrSelection1.length - 1; y++) {
                    for (z = 0; z <= arrSelection1.length - 1; z++) {
                        if (arrSelection1[x] != arrSelection1[y] && arrSelection1[x] != arrSelection1[z] && arrSelection1[y] != arrSelection1[z])
                            intCombinations++;
                    }
                }
            }
        }
        else if (intSelection1Count >= 1 && intSelection2Count >= 1 && intSelection3Count >= 1) {
            if (intSelection1Count == 1 || intSelection2Count == 1 || intSelection3Count == 1) {
                // Standout Trifecta bet type
                objBet.BetType = toteStandoutTrifecta;
            }
            else {
                // Multiple Trifecta bet type
                objBet.BetType = toteMultiTrifecta;
            }
            strSelection = strSelection1 + ":" + strSelection2 + ":" + strSelection3;
            // get the selections into array format
            arrSelection1 = strSelection1.split(',');
            arrSelection2 = strSelection2.split(',');
            arrSelection3 = strSelection3.split(',');

            // calculate the number of combinations
            for (x = 0; x <= arrSelection1.length - 1; x++) {
                for (y = 0; y <= arrSelection2.length - 1; y++) {
                    for (z = 0; z <= arrSelection3.length - 1; z++) {
                        if (arrSelection1[x] != arrSelection2[y] && arrSelection1[x] != arrSelection3[z] && arrSelection2[y] != arrSelection3[z])
                            intCombinations++;
                    }
                }
            }
            if (intCombinations == 0) {
                return 'false:Invalid Trifecta';
            }
        }
        else {
            return 'false:Invalid Trifecta';
        }

        objBet.Selection = strSelection;
        objBet.StakeMultiplier = intCombinations;
        /*objBet.StakeMultiplier = intCombinations;*/
        //alert(objBet.BetType);	
        return 'SELECTION:' + strSelection + '^BETTYPE:' + objBet.BetType + '^STAKEMULTIPLIER:' + objBet.StakeMultiplier;
    }
}

function validateGenericExotic(eventId, eventName, eventTime) {
    var i;
    var intSelection1Count = 0;
    var strSelection1 = '';
    var toteBox = 0;
    var intCombinations = 0;
    var tote = GetCookie('PreferedTote');
    var objBet = new clsBet();

    var fieldAcheckBoxes = document.getElementsByName('GenericExoticCompetitorsList1');
    for (i = 0; i < fieldAcheckBoxes.length; i++) {
        if (fieldAcheckBoxes[i].checked) {
            intSelection1Count++;
            strSelection1 += fieldAcheckBoxes[i].id.replace('chkSel1', '') + ',';
        }
    }
    if (strSelection1 != "")
        strSelection1 = strSelection1.substring(0, strSelection1.length - 1);
    arrSelection1 = strSelection1.split(',');

    var ret = 'BOXGRID:';

    if (document.getElementsByName('chkGenExQuinella').length > 0) {
        var bet = 'EVENTID:' + eventId + '^SELECTION: '
                        + '^PRICE:' + 0
                        + '^EVENTNAME:' + eventName
                        + '^ALLOWEACHWAY:false^EVENTDATE:' + eventTime;
        var quinellaChk = document.getElementsByName('chkGenExQuinella')[0];
        if (quinellaChk.checked) {
            //for quinella if its 2 competitors, its standard
            if (arrSelection1.length == 2) {
                toteBox = 24;
                if (tote == 'NSW') {
                    toteBox = 65;
                }
                else if (tote == 'Vic') {
                    toteBox = 80;
                }
                else if (tote == 'SBO') {
                    toteBox = 224;
                }
            }
            else {//box quinella
                toteBox = 25;
                if (tote == 'NSW') {
                    toteBox = 66;
                }
                else if (tote == 'Vic') {
                    toteBox = 81;
                }
                else if (tote == 'SBO') {
                    toteBox = 225;
                }
            }

            // calculate the number of combinations
            for (x = 0; x <= arrSelection1.length - 1; x++) {
                for (y = 0; y <= arrSelection1.length - 1; y++) {
                    intCombinations++;
                }
            }
            objBet.StakeMultiplier = (intSelection1Count * (intSelection1Count - 1)) / 2;
            // Box Exacta bet type
            objBet.BetType = toteBox;
            objBet.Selection = strSelection1;
            bet += '^SELECTION:' + strSelection1 + '^BETTYPE:' + objBet.BetType + '^STAKEMULTIPLIER:' + objBet.StakeMultiplier;
            ret += '#' + bet;
        }
    }
    if (document.getElementsByName('chkGenExExacta').length > 0) {
        intCombinations = 0;
        var bet = 'EVENTID:' + eventId + '^SELECTION: '
                        + '^PRICE:' + 0
                        + '^EVENTNAME:' + eventName
                        + '^ALLOWEACHWAY:false^EVENTDATE:' + eventTime;
        var exactaChk = document.getElementsByName('chkGenExExacta')[0];
        if (exactaChk.checked) {
            toteBox = 45;
            if (tote == 'NSW') {
                toteBox = 69;
            }
            else if (tote == 'Vic') {
                toteBox = 84;
            }
            else if (tote == 'SBO') {
                toteBox = 245;
            }

            // calculate the number of combinations
            for (x = 0; x <= arrSelection1.length - 1; x++) {
                for (y = 0; y <= arrSelection1.length - 1; y++) {
                    if (arrSelection1[x] != arrSelection1[y])
                        intCombinations++;
                }
            }
            // Box Exacta bet type
            objBet.BetType = toteBox;
            objBet.Selection = strSelection1;
            objBet.StakeMultiplier = intCombinations;
            bet += '^SELECTION:' + strSelection1 + '^BETTYPE:' + objBet.BetType + '^STAKEMULTIPLIER:' + objBet.StakeMultiplier;
            ret += '#' + bet;
        }
    }
    if (document.getElementsByName('chkGenExTrifecta').length > 0) {
        intCombinations = 0;
        var bet = 'EVENTID:' + eventId + '^SELECTION: '
                        + '^PRICE:' + 0
                        + '^EVENTNAME:' + eventName
                        + '^ALLOWEACHWAY:false^EVENTDATE:' + eventTime;
        var trifectaChk = document.getElementsByName('chkGenExTrifecta')[0];
        if (trifectaChk.checked) {
            toteBox = 35;
            if (tote == 'NSW') {
                toteBox = 73;
            }
            else if (tote == 'Vic') {
                toteBox = 88;
            }
            else if (tote == 'SBO') {
                toteBox = 235;
            }

            // calculate the number of combinations
            for (x = 0; x <= arrSelection1.length - 1; x++) {
                for (y = 0; y <= arrSelection1.length - 1; y++) {
                    for (z = 0; z <= arrSelection1.length - 1; z++) {
                        if (arrSelection1[x] != arrSelection1[y] && arrSelection1[x] != arrSelection1[z] && arrSelection1[y] != arrSelection1[z])
                            intCombinations++;
                    }
                }
            }
            // Box Exacta bet type
            objBet.BetType = toteBox;
            objBet.Selection = strSelection1;
            objBet.StakeMultiplier = intCombinations;
            bet += '^SELECTION:' + strSelection1 + '^BETTYPE:' + objBet.BetType + '^STAKEMULTIPLIER:' + objBet.StakeMultiplier;
            ret += '#' + bet;
        }
    }

    if (document.getElementsByName('chkGenExFirstFour').length > 0) {
        intCombinations = 0;
        var bet = 'EVENTID:' + eventId + '^SELECTION: '
                        + '^PRICE:' + 0
                        + '^EVENTNAME:' + eventName
                        + '^ALLOWEACHWAY:false^EVENTDATE:' + eventTime;
        var ffChk = document.getElementsByName('chkGenExFirstFour')[0];
        if (ffChk.checked) {
            toteBox = 55;
            if (tote == 'NSW') {
                toteBox = 77;
            }
            else if (tote == 'Vic') {
                toteBox = 92;
            }
            else if (tote == 'SBO') {
                toteBox = 255;
            }

            // calculate the number of combinations
            for (w = 0; w <= arrSelection1.length - 1; w++) {
                for (x = 0; x <= arrSelection1.length - 1; x++) {
                    for (y = 0; y <= arrSelection1.length - 1; y++) {
                        for (z = 0; z <= arrSelection1.length - 1; z++) {
                            if (arrSelection1[w] != arrSelection1[x] &&
									arrSelection1[w] != arrSelection1[y] &&
									arrSelection1[w] != arrSelection1[z] &&
									arrSelection1[x] != arrSelection1[y] &&
									arrSelection1[x] != arrSelection1[z] &&
									arrSelection1[y] != arrSelection1[z])
                                intCombinations++;
                        }
                    }
                }
            }
            // Box Exacta bet type
            objBet.BetType = toteBox;
            objBet.Selection = strSelection1;
            objBet.StakeMultiplier = intCombinations;
            bet += '^SELECTION:' + strSelection1 + '^BETTYPE:' + objBet.BetType + '^STAKEMULTIPLIER:' + objBet.StakeMultiplier;
            ret += '#' + bet;
        }
    }
    __doPostBack('UpdatePanelMainContent', ret);
    return ret;
}

function showHideMaxiFlex(tbl, chk, txtStake, txtMaxiFlex, combi, lblStake, defaultStack) {
    //alert(document.getElementById(chk).checked);
    var currentCHKFlexi = document.getElementById(chk);
    var currentTXTStake = document.getElementById(txtStake);
    var currentTBFlexi = document.getElementById(txtMaxiFlex);
    var lbl = document.getElementById(lblStake);

    if (!currentCHKFlexi.checked)
        document.getElementById(tbl).style.display = 'none';
    else
        document.getElementById(tbl).style.display = 'block';

    if (currentCHKFlexi.checked) {

        lbl.innerHTML = "Total Stake Amount&nbsp;";

        if (IsNumeric(currentTXTStake.value) && currentTXTStake.value != '0') {

            if (defaultStack > 0 && currentTXTStake.value == defaultStack) {
                currentTXTStake.value = currentTBFlexi.value = 0;
            } else {
                currentTXTStake.value = roundNumber((combi * currentTXTStake.value), 2);
                currentTBFlexi.value = roundNumber(((currentTXTStake.value / combi) * 100), 2);
            }
        }
        else {
            currentTXTStake.value = currentTBFlexi.value = 0;
        }
    }
    else {

        lbl.innerHTML = "Stake per Combo";

        if (IsNumeric(currentTBFlexi.value) && currentTBFlexi.value != '0') {
            currentTXTStake.value = roundNumber((currentTXTStake.value / combi), 2);
        }
        else {
            currentTXTStake.value = currentTBFlexi.value = 0;
        }
    }
}

function showHideMaxiFlexDiv(tbl, chk, txtStake, txtMaxiFlex, combi, lblStake, defaultStack) {
    var currentCHKFlexi = document.getElementById(chk);
    var currentTXTStake = document.getElementById(txtStake);
    var currentTBFlexi = document.getElementById(txtMaxiFlex);
    var lbl = document.getElementById(lblStake);

    if (!currentCHKFlexi.checked)
        document.getElementById(tbl).style.display = 'none';
    else
        document.getElementById(tbl).style.display = 'block';

    if (currentCHKFlexi.checked) {

        lbl.innerHTML = "Total Stake Amount&nbsp;";

        if (IsNumeric(currentTXTStake.value) && currentTXTStake.value != '0') {

            if (defaultStack > 0 && currentTXTStake.value == defaultStack) {
                currentTXTStake.value = currentTBFlexi.value = 0;
            } else {
                currentTXTStake.value = roundNumber((combi * currentTXTStake.value), 2);
                currentTBFlexi.value = roundNumber(((currentTXTStake.value / combi) * 100), 2);
            }
        }
        else {
            currentTXTStake.value = currentTBFlexi.value = 0;
        }
    }
    else {

        lbl.innerHTML = "Stake per Combo";

        if (IsNumeric(currentTBFlexi.value) && currentTBFlexi.value != '0') {
            currentTXTStake.value = roundNumber((currentTXTStake.value / combi), 2);
        }
        else {
            currentTXTStake.value = currentTBFlexi.value = 0;
        }
    }
}

function calFlexiStake(txtStake, txtMaxiFlex, combi) {
    var currentTXTStake = document.getElementById(txtStake);
    var currentTBFlexi = document.getElementById(txtMaxiFlex);

    if (IsNumeric(currentTBFlexi.value) && currentTBFlexi.value != '0') {
        currentTXTStake.value = roundNumber(((currentTBFlexi.value * combi) / 100), 2);
    }
    else {
        currentTXTStake.value = currentTBFlexi.value = 0;
    }
}

function calFlexiPer(txtStake, txtMaxiFlex, combi) {
    var currentTXTStake = document.getElementById(txtStake);
    var currentTBFlexi = document.getElementById(txtMaxiFlex);

    if (IsNumeric(currentTXTStake.value) && currentTXTStake.value != '0') {
        currentTBFlexi.value = roundNumber(((currentTXTStake.value / combi) * 100), 2);
    }
    else {
        currentTXTStake.value = currentTBFlexi.value = 0;
    }
}

function updateMultiWizPayout(tdMultiWizPayOut) {
    var myInputArray = document.forms[0].getElementsByTagName("INPUT");
    var i;
    var val = 1; var count = 0;
    for (i = 0; i < myInputArray.length; i++) {
        //checkboxes
        if ((myInputArray[i].name.indexOf('mwiz_c_') > -1) && (myInputArray[i].checked)) {
            var valueSplits = myInputArray[i].value.split('_');
            if (valueSplits[valueSplits.length - 1] > 0) {
                val = val * valueSplits[valueSplits.length - 1];
                count++;
            }
        }
        //radio buttons
        if ((myInputArray[i].name.indexOf('mwiz_r_') > -1) && (myInputArray[i].checked)) {
            valueSplits = myInputArray[i].value.split('_');
            if (valueSplits[valueSplits.length - 1] > 0) {
                //create the parent chk name
                var parentChk = 'mwiz_rc_' + valueSplits[0];
                //alert(document.getElementsByName(parentChk).length);
                if ((document.getElementsByName(parentChk) != null) && (document.getElementsByName(parentChk)[0].checked)) {
                    val = val * valueSplits[valueSplits.length - 1];
                    count++;
                }
            }
        }
    }

    var displayText = '';
    if (count > 1)
        displayText = count + ' legs';
    if ((count > 1) && (val > 1))
        displayText += ' @' + val.toFixed(2);
    document.getElementById(tdMultiWizPayOut).innerHTML = displayText;
}

function multiWizSelect(mode) {
    var myInputArray = document.forms[0].getElementsByTagName("INPUT");
    var i;
    var val = 1; var count = 0;
    for (i = 0; i < myInputArray.length; i++) {
        //checkboxes
        if ((myInputArray[i].name.indexOf('mwiz_c_') > -1) || (myInputArray[i].name.indexOf('mwiz_rc_') > -1)) {
            if (mode == 'all')
                myInputArray[i].checked = true;
            else
                myInputArray[i].checked = false;
        }
    }
}

//function to check a give text is numeric or not
function IsNumeric(sText) {
    var ValidChars = "0123456789.";
    var IsNumber = true;
    var Char;

    for (i = 0; i < sText.length && IsNumber == true; i++) {
        Char = sText.charAt(i);
        if (ValidChars.indexOf(Char) == -1) {
            IsNumber = false;
        }
    }
    return IsNumber;

}

function roundNumber(number, decimals) {

    //http://www.mediacollege.com/internet/javascript/number/round.html
    var newString; // The new rounded number
    decimals = Number(decimals);
    if (decimals < 1) {
        newString = (Math.round(number)).toString();
    } else {
        var numString = number.toString();
        if (numString.lastIndexOf(".") == -1) {// If there is no decimal point
            numString += "."; // give it one at the end
        }
        var cutoff = numString.lastIndexOf(".") + decimals; // The point at which to truncate the number
        var d1 = Number(numString.substring(cutoff, cutoff + 1)); // The value of the last decimal place that we'll end up with
        var d2 = Number(numString.substring(cutoff + 1, cutoff + 2)); // The next decimal, after the last one we want
        if (d2 >= 5) {// Do we need to round up at all? If not, the string will just be truncated
            if (d1 == 9 && cutoff > 0) {// If the last digit is 9, find a new cutoff point
                while (cutoff > 0 && (d1 == 9 || isNaN(d1))) {
                    if (d1 != ".") {
                        cutoff -= 1;
                        d1 = Number(numString.substring(cutoff, cutoff + 1));
                    } else {
                        cutoff -= 1;
                    }
                }
            }
            d1 += 1;
        }
        if (d1 == 10) {
            numString = numString.substring(0, numString.lastIndexOf("."));
            var roundedNum = Number(numString) + 1;
            newString = roundedNum.toString() + '.';
        } else {
            newString = numString.substring(0, cutoff) + d1.toString();
        }
    }
    if (newString.lastIndexOf(".") == -1) {// Do this again, to the new string
        newString += ".";
    }
    var decs = (newString.substring(newString.lastIndexOf(".") + 1)).length;
    for (var i = 0; i < decimals - decs; i++) newString += "0";

    var newNumber = Number(newString); // make it a number if you like

    return newString;
}

function genericExoticChk() {
    var intSelection1Count = 0;
    var fieldAcheckBoxes = document.getElementsByName('GenericExoticCompetitorsList1');
    for (i = 0; i < fieldAcheckBoxes.length; i++) {
        if (fieldAcheckBoxes[i].checked) {
            intSelection1Count++;
        }
    }
    if (document.getElementsByName('chkGenExQuinella').length > 0) {
        document.getElementsByName('chkGenExQuinella')[0].disabled = true;
        if (intSelection1Count < 2)
            document.getElementsByName('chkGenExQuinella')[0].checked = null;
    }
    if (document.getElementsByName('chkGenExExacta').length > 0) {
        document.getElementsByName('chkGenExExacta')[0].disabled = true;
        if (intSelection1Count < 2)
            document.getElementsByName('chkGenExExacta')[0].checked = null;
    }
    if (document.getElementsByName('chkGenExTrifecta').length > 0) {
        document.getElementsByName('chkGenExTrifecta')[0].disabled = true;
        if (intSelection1Count < 3)
            document.getElementsByName('chkGenExTrifecta')[0].checked = null;
    }
    if (document.getElementsByName('chkGenExFirstFour').length > 0) {
        document.getElementsByName('chkGenExFirstFour')[0].disabled = true;
        if (intSelection1Count < 4)
            document.getElementsByName('chkGenExFirstFour')[0].checked = null;
    }

    if (intSelection1Count > 1) {
        if (document.getElementsByName('chkGenExQuinella').length > 0) {
            document.getElementsByName('chkGenExQuinella')[0].disabled = false;
            document.getElementsByName('chkGenExQuinella')[0].checked = true;
        }
        if (document.getElementsByName('chkGenExExacta').length > 0) {
            document.getElementsByName('chkGenExExacta')[0].disabled = false;
            document.getElementsByName('chkGenExExacta')[0].checked = true;
        }
    }
    if (intSelection1Count > 2) {
        if (document.getElementsByName('chkGenExTrifecta').length > 0) {
            document.getElementsByName('chkGenExTrifecta')[0].disabled = false;
            document.getElementsByName('chkGenExTrifecta')[0].checked = true;
        }
    }
    if (intSelection1Count > 3) {
        if (document.getElementsByName('chkGenExFirstFour').length > 0) {
            document.getElementsByName('chkGenExFirstFour')[0].disabled = false;
            document.getElementsByName('chkGenExFirstFour')[0].checked = true;
        }
    }

}
/***********************************************
* Stride SB Choice Main JS for
* Race Event client side
************************************************/
var var_timer;
var refreshEventId;
var refreshTote;
var refreshTab;

//parameters are optional except eventID
function RaceEvent_OnDisplay(eventID) {
    //force display dialog because ie thread bug that freezes
    //showWaitDialog(true);
    selectedEventID = eventID;
    SetCookie('RaceEventSortMode', 'NoAsc');
    //alert(selectedEventID);
    var selectedTab = '';
    if (GetCookie('CookieRaceEventSelectedTab') != null)
        selectedTab = GetCookie('CookieRaceEventSelectedTab');
    //CallBackbetwebMain.callback('RaceEvent', 'raceEventDisplay',selectedEventID,'0','0','undefined',false,selectedTab);
    //handleTabSelect('tabbetweb');
    //window.location.hash ='?eventid='+eventID;
    __doPostBack('UpdatePanelMainContent', 'Race:' + eventID);
}

//EventSelector is the 3-menu (combo) on top of raceItems
function RaceEvent_DisplayFromEventSelector(eventID, selectedTimeBasedSubSlot, eventSelectorState) {
    //check if not loaded already
    selectedEventID = eventID;
    SetCookie('RaceEventSortMode', 'NoAsc');
    //alert(selectedEventID);
    var selectedTab = '';
    if (GetCookie('CookieRaceEventSelectedTab') != null)
        selectedTab = GetCookie('CookieRaceEventSelectedTab');

    //if (eventID == 0)//no venue
    //    CallBackbetwebMain.callback('RaceEvent', 'dailyRaceCardByDays', '-1',eventSelectorState,'0','undefined',false);
    //else
    __doPostBack('UpdatePanelMainContent', 'Race:' + eventID);
    //handleTabSelect('tabbetweb');        
}

//DisplayRaceCardByDays
function RaceEvent_DisplayRaceCardByDays(daysToRace) {
    SetCookie('CookieSelectedRaceCardMode', 'Standard');
    __doPostBack('UpdatePanelMainContent', 'Race:' + daysToRace * (-1));
}

//DisplayRaceCardTimeBased
function RaceEvent_DisplayRaceCardTimeBased(selectedTimeBasedSubSlot) {
    SetCookie('CookieSelectedRaceCardMode', 'TimeBased');
    if (document.getElementById("hiddenSelectedSlots") != null) {
        document.getElementById('hiddenSelectedSlots').value = selectedTimeBasedSubSlot;
    }
    __doPostBack('UpdatePanelMainContent', 'Race:0');
}

//Call cookie-set racecard mode
function RaceEvent_DisplayRaceCardFromCookie() {
    __doPostBack('UpdatePanelMainContent', 'Race:0');
}

function triggerRefresh() {
    __doPostBack('UpdatePanelMainContent', '');
}

function raceEventTabChange(tab) {
    SetCookie('CookieRaceEventSelectedTab', tab);
    __doPostBack('UpdatePanelMainContent', '');
}

// DisplayRaceResults
function RaceEvent_DisplayRaceResults(daysToRace) {
    //do the callback to the appropriate selected race component ? at the moment
    //the following code always sets focus to winPlace tab, and callsback for winPlace
    SetCookie('RaceEventSortMode', 'NoAsc');
    __doPostBack('UpdatePanelMainContent', 'Results:Home:' + daysToRace);
}

//personalised
function Personalised_ShowHome() {
    __doPostBack('UpdatePanelMainContent', 'Personalised:search');
}

//display blackbook list in my betweb
function personalised_DisplayBlackbooks(action, eventType, compName) {
    if (action == null)
        __doPostBack('UpdatePanelMainContent', 'Personalised:Blackbook');
    else if (action == 'DEL') {
        var answer = confirm("Do you want to remove this competitor from your Blackbook?")
        if (answer)
            __doPostBack('UpdatePanelMainContent', 'Personalised:Blackbook:' + action + ':' + eventType + ':' + compName);
    }
}

function Personalised_DisplayWiz() {
    __doPostBack('UpdatePanelMainContent', 'Personalised:PersWiz');
}

function Personalised_DisplayPreferences() {
    __doPostBack('UpdatePanelMainContent', 'Personalised:Preferences');
}

function Personalised_DisplayMessages() {
    __doPostBack('UpdatePanelMainContent', 'Personalised:Notifications');
}

function Personalised_DisplayNotifications(messageID) {
    var messageArgs = messageID;
    document.getElementById('myNotificationsHdnArgs').value = messageArgs;
    triggerRefresh();
}

function personalised_SearchFromMenu(eventType, favouriteName, favouriteType) {
    __doPostBack('UpdatePanelMainContent', 'Personalised:search:' + eventType + ':' + favouriteName + ':' + favouriteType);
}

function MainTabs_HomeIconClick() {
    __doPostBack('UpdatePanelMainContent', 'MainTab');
    refreshMenus();
}

function MainTabs_HomeClick() {
    __doPostBack('UpdatePanelMainContent', 'MainTab:HomePage');
}

function MainTabs_PersonalisedClick() {
    __doPostBack('UpdatePanelMainContent', 'PersonalisedTab');
}

function MainTabs_AccountsClick() {
    __doPostBack('UpdatePanelMainContent', 'AccountsTab');
}

function Personalised_DisplayFormGuide(venue, date, eventType, raceNo, saveVals, eventId) {
    __doPostBack('UpdatePanelMainContent', 'Personalised:FormGuide:' + venue + ':' + date + ':' + eventType + ':' + raceNo + ':' + saveVals + ':' + eventId);
}

//search page
function RaceEvent_DisplaySearch(textBoxClientId, ddl2ClientId, ddl1ClientId) {
    handleTabSelect('tabbetweb');
    if (textBoxClientId != null) {
        if (ddl2ClientId != null) {
            if (ddl1ClientId != null) {
                CallBackbetwebMain.callback('Search', document.getElementById(textBoxClientId).value, document.getElementById(ddl2ClientId)[document.getElementById(ddl2ClientId).selectedIndex].text,
                document.getElementById(ddl1ClientId)[document.getElementById(ddl1ClientId).selectedIndex].text);
            }
            else {
                CallBackbetwebMain.callback('Search', document.getElementById(textBoxClientId).value, document.getElementById(ddl2ClientId).value);
            }
        }
        else {
            CallBackbetwebMain.callback('Search', document.getElementById(textBoxClientId).value);
        }
    }
    else {
        CallBackbetwebMain.callback('Search');
    }
}

function searchFromBB(comp) {
    //handleTabSelect('tabbetweb');
    //CallBackbetwebMain.callback('Search', comp + ':Runner:Thoroughbred');
    __doPostBack('UpdatePanelMainContent', 'Personalised:Blackbook');
}

//doubles trebles
function RaceEvent_DisplayDoublesTreblesHome(daysToRace) {
    __doPostBack('UpdatePanelMainContent', 'DoublesTrebles:' + daysToRace);
}

function RaceEvent_DisplayDoublesTrebles(DTID) {
    __doPostBack('UpdatePanelMainContent', 'DoublesTrebles:' + DTID);
}

//Big6
function RaceEvent_DisplayBig6(big6Id) {
    __doPostBack('UpdatePanelMainContent', 'DoublesTrebles:Big6:' + big6Id);
}
//function RacingFeaturesList_OnDisplay(featureName) {
//    __doPostBack('UpdatePanelMainContent', 'Features:' + featureName + ':0');
//}

// racing features
function racingFeatures_OnDisplay(eventType, eventID) {
    //uncheck all and trigger refresh
    var chks = document.getElementsByTagName("input");
    var i = 0;
    for (i = 0; i < chks.length; i++) {
        chks[i].checked = false;
    }

    __doPostBack('UpdatePanelMainContent', 'Features:' + eventType + ':' + eventID);
}

//DisplayFavoured
function personalised_DisplayFavoured(eventType, favouriteName, favouriteType, link) {
    __doPostBack('UpdatePanelMainContent', 'Personalised:Favoured:' + eventType + ':' + favouriteName + ':' + favouriteType + ':' + link);
}

function ddlFavSearchResult_Change() {
    document.getElementById('hdnFavTriggerControl').value = 'ddlFavSearchResult';
    triggerRefresh();
}

function ddlFavL2_Change() {
    document.getElementById('hdnFavTriggerControl').value = 'ddlFavL2';
    triggerRefresh();
}

function ddlTopEventType_Change() {
    document.getElementById('hdnFavTriggerControl').value = 'ddlTopEventType';
    triggerRefresh();
}

function cboFGRaceChanged(cbo) {
    if (cbo.value != null && cbo.value != '') {
        //alert(cbo.value);
        var selected = cbo.value.split('|');
        Personalised_DisplayFormGuide(selected[3], selected[2], selected[1], selected[4]);
    }
}

function cboFGMeetChanged(cbo) {
    if (cbo.value != null && cbo.value != '') {
        var selected = cbo.value.split('|');
        Personalised_DisplayFormGuide(selected[3], selected[2], selected[1], 0);
    }
}

function cboFGDateChanged(cbo) {
    if (cbo.value != null && cbo.value != '') {
        var selected = cbo.value;
        Personalised_DisplayFormGuide('undefined', selected, 'undefined', 0);
    }
}

function featureDoubleSortChange() {
    //uncheck all and trigger refresh
    var chks = document.getElementsByTagName("input");
    var i = 0;
    for (i = 0; i < chks.length; i++) {
        chks[i].checked = false;
    }
    triggerRefresh();
}

//save form guide
function Personalised_SaveFormGuide(venue, date, eventType, raceNo, eventId) {
    //alert(document.getElementById(hdn1).value); 
    var opts = document.getElementsByTagName("input");
    var i = 0;
    var saveVals = '';
    for (i = 0; i < opts.length; i++) {
        if (opts[i].id.substring(0, 5) == 'optFG') {
            if (opts[i].checked) {
                saveVals += (opts[i].id) + ';';
            }
        }
    }
    Personalised_DisplayFormGuide(venue, date, eventType, raceNo, saveVals, eventId);
}

function featureRaceSort(sortmode) {
    if (document.getElementById('FeatureSortMode') != null)
        document.getElementById('FeatureSortMode').value = sortmode;
    triggerRefresh();
}

function UpdateFilterEventID(eventId) {
    if (document.getElementById('lastSelectedEventId') != null)
        document.getElementById('lastSelectedEventId').value = eventId;
    triggerRefresh();
}

//clear form guide
function Mybetweb_ClearFormGuide() {
    //alert(document.getElementById(hdn1).value); 
    var opts = document.getElementsByTagName("input");
    var i = 0;
    var saveVals = '';
    for (i = 0; i < opts.length; i++) {
        if (opts[i].id.substring(0, 5) == 'optFG') {
            //alert(opts[i].id);
            var Nid = opts[i].id.substring(0, opts[i].id.length - 1) + 'N';
            var Nopt = document.getElementById(Nid);
            if (Nopt)
                Nopt.checked = true;
        }

    }
}

function setFormGuideHdnOpt(hdn, optGroupName, form) {
    //alert(hdn);
    var compForm = optGroupName + ':' + form + ';';
    var compGForm = optGroupName + ':1;';
    var compSForm = optGroupName + ':2;';
    var compBForm = optGroupName + ':3;';

    var existing = document.getElementById(hdn).value;
    existing = existing.replace(compGForm, ''); //no need to do \g only one would be there
    existing = existing.replace(compSForm, '');
    existing = existing.replace(compBForm, '');
    //alert(existing);
    existing += compForm;
    document.getElementById(hdn).value = existing;
    //alert(document.getElementById(hdn).value); 
}



// feature events
function FeatureEvent_OnDisplay(eventID) {
    CallBackbetwebMain.callback('FeatureEvent', eventID);
}

function setTabSportEvent(selectedTab) {
    if (document.getElementById("hiddenSelectedTab") != null) {
        document.getElementById('hiddenSelectedTab').value = selectedTab;
    }
    triggerRefresh();
}

//sports - efficient menu
function s(e) {
    SportEvent_OnDisplay(e);
}

//sports
function SportEvent_OnDisplay(levelIds) {
    //alert(levelIds);
    __doPostBack('UpdatePanelMainContent', 'Sport:' + levelIds);
}

function SportEvent_OnDisplayFilter(levelIds, filters) {
    //alert(filters);
    if (TabStripMain.get_tabs().getTab(0).isSelected())
        CallBackbetwebMain.callback('SportEvent', levelIds, filters);
    else
        CallbackMybetweb.callback('SportEvent', levelIds, filters);
}


//get back to betweb main
function getBackToHomeArea() {
    RaceEvent_DisplayRaceCardFromCookie();
}

function hideShowUserInfo(show) {
    if (show == true) {
        SetCookie("HeaderDisplay", "Max");
    }
    else {
        SetCookie("HeaderDisplay", "Min");
    }
    __doPostBack('UpdatePanelHeaderButtons', 'refreshHeader');
}

function handleTabSelect(selectedTab) {
    //alert(selectedTab);
    /*document.getElementById('betwebHomeBtn').src = 'images/tab_BRhome_Off.gif';
    if (selectedTab == 'tabbetweb') {
    if (TabStripMain.get_tabs().getTab(0) != null)
    TabStripMain.get_tabs().getTab(0).select();
    document.getElementById('betwebHomeBtn').src = 'images/tab_BRhome_OnGrn.gif';
    }
    else if (selectedTab == 'tabMyRacing') {
    TabStripMain.selectTabById('tabMyRacing');
    document.getElementById('betwebHomeBtn').src = 'images/tab_BRhome_Off.gif';
    }
    else if (selectedTab == 'tabMyAccount') {
    TabStripMain.selectTabById('tabMyAccount');
    document.getElementById('betwebHomeBtn').src = 'images/tab_BRhome_Off.gif';
    }*/
}

function eventSelectorRace_Change(eventID, slot, eventSelectorState) {
    RaceEvent_DisplayFromEventSelector(eventID, slot, eventSelectorState);
}

function eventSelectorDate_Change(days) {
    RaceEvent_DisplayRaceCardByDays(days);
}

function eventSelectorMeet_Change(eventID, slot, eventSelectorState) {
    //alert(eventID+' - ' + slot+' - ' + eventSelectorState);
    RaceEvent_DisplayFromEventSelector(eventID, slot, eventSelectorState);
}

function preferedToteChange(tote) {
    SetCookie('PreferedTote', tote);
    triggerRefresh();
}

//open scratchings in a new popup window
function openScratchings() {
    window.open("./scratchings.aspx", "_blank", "height=400,width=700,top=200,left=100,status=no,toolbar=no,menubar=no,location=no,scrollbars=yes,resizable=yes");
}

function openRacingBigBets() {
    window.open("./BigBetsRacing.aspx", "_blank", "height=90,width=496,top=200,left=100,status=no,toolbar=no,menubar=no,location=no,scrollbars=yes");
}

function OnTabStripMainTabSelect(sender, eventArgs) {
    var selectedTab = eventArgs.get_tab();
    //alert(selectedTab.get_value());
    handleTabSelect(selectedTab.get_value());
    return true;
}

function showWaitDialog(show) {

    if (show) {
        /*var html= 
        '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="https://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0"'+
        'width="510" height="150">'+
        '<param name="movie" value="swf/br_Loading.swf" />'+
        '<param name="quality" value="high" />'+
        '<param name="wmode" value="transparent" />'+
        '<embed src="swf/br_Loading.swf" width="510" height="150" quality="high" pluginspage="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash"'+
        '    type="application/x-shockwave-flash" wmode="transparent"></embed></object>'
        ;*/
        //Tip(html, BORDERWIDTH, 0, FOLLOWMOUSE, false, BGCOLOR, '', FIX, [500, 200], DELAY, 0);
        //document.getElementById('tblPlsWait').style.display = 'block';
        document.getElementById('imgHeaderLogo').src = 'images/logo_betweb_load.gif';
    }
    else {
        //document.getElementById('tblPlsWait').style.display = 'none';
        //UnTip();
        document.getElementById('imgHeaderLogo').src = 'images/logo_betweb.gif';
    }
}



function OnCallBackbetwebMainCallbackComplete(sender, e) {
    //document.getElementById('imgHeaderLogo').src = 'images/logo_betweb.gif';
    //alert('OnCallBackbetwebMainCallbackComplete');    
    CallBackHeaderUserInfoCallbackDelegate(false);

    updateLiveHelpIndicator();

    showWaitDialog(false);
}

function OnCallBackbetwebMainBeforeCallback(sender, e) {
    showWaitDialog(true);
    //try and clear out all timers
    //clearTimeouts(); this is buggy because it will clear out all active
    //visible count-downs also. so make a provision for that
    //this is do cater for bug with componentart combobox in a callback
    disposeCACbos(1);

    document.getElementById('imgHeaderLogo').src = 'images/logo_betweb_load.gif';
    purge(sender);
    //alert('OnCallBackbetwebMainBeforeCallback');    
}

function OnCallbackMybetwebCallbackComplete(sender, e) {
    document.getElementById('imgHeaderLogo').src = 'images/logo_betweb.gif';
    //alert('OnCallBackbetwebMainCallbackComplete');
    CallBackHeaderUserInfoCallbackDelegate(false);

    updateLiveHelpIndicator();

    showWaitDialog(false);
}

function OnCallbackMybetwebBeforeCallback(sender, e) {
    showWaitDialog(true);
    //try and clear out all timers
    //clearTimeouts(); this is buggy because it will clear out all active
    //visible count-downs also. so make a provision for that

    //this is do cater for bug with componentart combobox in a callback
    //this is do cater for bug with componentart combobox in a callback
    disposeCACbos(2);
    document.getElementById('imgHeaderLogo').src = 'images/logo_betweb_load.gif';
    purge(sender);
    //alert('OnCallBackbetwebMainBeforeCallback');    
}

function purge(d) {
    var a = d.attributes, i, l, n;
    if (a) {
        l = a.length;
        for (i = 0; i < l; i += 1) {
            n = a[i].name;
            if (typeof d[n] === 'function')
            { d[n] = null; }
        }
    }
    a = d.childNodes;
    if (a) {
        l = a.length;
        for (i = 0; i < l; i += 1) {
            purge(d.childNodes[i]);
        }
    }
}

//SportEvent BreadCrumbs ComboBox Change event handler
function SportEventBreadCrumbsComboBox_Change(sender, eventArgs) {
    if (sender.getSelectedItem() != null && sender.getSelectedItem() != '') {
        var levelIds = sender.getSelectedItem().Value;
        SportEvent_OnDisplay(levelIds);
    }
}

//SportEvent BreadCrumbs ComboBox Change event handler
function SportEventBreadCrumbsComboBox_Changed(cbo) {
    if (cbo.value != null && cbo.value != '') {
        SportEvent_OnDisplay(cbo.value);
    }
}


function OnCallBackBetSlipCallbackComplete(sender, e) {
    document.getElementById('tdTotalAmountBet').innerHTML = document.getElementById('bettingSlip1_hdnTotal').value;
    //alert(document.getElementById('tdTotalAmountBet').innerHTML);
    if ('CONFIRM' == document.getElementById('hdnBetSlipState').value) {
        if (document.getElementById('bettingSlip1_hdnTotal').value > 0) {
            document.getElementById('tdConfirm').style.display = 'none';
            document.getElementById('tdCalculateTotal').style.display = 'none';
            document.getElementById('tdFinalise').style.display = 'block';
        }
        else {
            document.getElementById('hdnBetSlipState').value = '';
        }
    }
    else {
        document.getElementById('tdConfirm').style.display = 'block';
        document.getElementById('tdFinalise').style.display = 'none';
        //to cater for firefox buggy 'block' propert, set it to 'nothing' rather than 'block'
        document.getElementById('tdCalculateTotal').style.display = '';
    }
    CallBackHeaderUserInfoCallbackDelegate(true);
    //to cater for multi-add
    updateSelectionCount();
    //showWaitDialog(false);  
    document.getElementById('divBetSlipButtons').style.display = '';
    document.getElementById('divBetSlipButtonsWait').style.display = 'none';
    showWaitDialog(false);
}

function OnCallBackBetSlipBeforeCallback(sender, e) {
    //cdiagWait.Show(); 
    //alert('OnCallBackBetSlipBeforeCallback');     
    document.getElementById('divBetSlipButtons').style.display = 'none';
    document.getElementById('divBetSlipButtonsWait').style.display = 'block';
    showWaitDialog(true);
}

function OnCallBackQuickListBeforeCallback(sender, e) {
    //document.getElementById('tdcMultiActual').style.display='none';    
    //document.getElementById('tdcMultiLoading').style.display='block';      
    //toggleDisabled(document.getElementById('tdcMultiActual'),true);  
}

function OnCallBackQuickListCallbackComplete(sender, e) {
    //document.getElementById('tdcMultiActual').style.display='block';        
    //document.getElementById('tdcMultiLoading').style.display='none';   
    //toggleDisabled(document.getElementById('tdcMultiActual'),false);  
}

function OnTabStripRaceTypesTabSelect(sender, eventArgs) {
    var selectedTab = eventArgs.get_tab().get_id();
    SetCookie('CookieRaceEventSelectedTab', selectedTab);
    //FF and Chrome has a race issue here. try to delay
    var dummy = GetCookie('CookieRaceEventSelectedTab');
    __doPostBack('UpdatePanelMainContent', selectedTab);
}

function raceEventSort(sortBy) {
    SetCookie('RaceEventSortMode', sortBy);
    triggerRefresh();
}

function cacboDate_Change(sender, eventArgs) {
    if (sender.getSelectedItem() != null && sender.getSelectedItem() != '') {
        var selectedDate = sender.getSelectedItem().Value;
        RaceEvent_DisplayRaceCardByDays(selectedDate);
    }
}

function cboDateChanged(cbo) {
    if (cbo.value != null && cbo.value != '') {
        var selectedDate = cbo.value;
        RaceEvent_DisplayRaceCardByDays(selectedDate);
    }
}

function cacboMeet_Change(sender, eventArgs) {
    if (sender.getSelectedItem() != null && sender.getSelectedItem() != '') {
        var selected = sender.getSelectedItem().Value.split('|');
        eventSelectorMeet_Change(selected[0], selected[1], selected[2]);
    }
}

function cboMeetChanged(cbo) {
    if (cbo.value != null && cbo.value != '') {
        var selected = cbo.value.split('|');
        eventSelectorMeet_Change(selected[0], selected[1], selected[2]);
    }
}

function cacboRace_Change(sender, eventArgs) {
    if (sender.getSelectedItem() != null && sender.getSelectedItem() != '') {
        var selected = sender.getSelectedItem().Value.split('|');
        eventSelectorRace_Change(selected[0], selected[1], selected[2]);
    }
}

function cboRaceChanged(cbo) {
    if (cbo.value != null && cbo.value != '') {
        var selected = cbo.value.split('|');
        eventSelectorRace_Change(selected[0], selected[1], selected[2]);
    }
}

function cacboNextToJump_Change(sender, eventArgs) {
    if (sender.getSelectedItem() != null && sender.getSelectedItem() != '') {
        var selected = sender.getSelectedItem().Value.split('|');
        eventSelectorRace_Change(selected[0], selected[1], selected[2]);
    }
}

function cboNextToJumpChanged(cbo) {
    if (cbo.value != null && cbo.value != '') {
        var selected = cbo.value.split('|');
        eventSelectorRace_Change(selected[0], selected[1], selected[2]);
    }
}

function ddlOtherMultiplesChanged(cbo) {
    //alert(cbo.value);
    RaceEvent_DisplayDoublesTrebles(cbo.value);
}

function cboFilterType_OnChange(selectedValue, divPriceId, divTeamId, txtMaxId, txtMinId, txtTeamId) {
    //alert(selectedValue + divTeamId + divPriceId);
    if (selectedValue == 'Price') {
        document.getElementById(divTeamId).style.display = 'none';
        document.getElementById(divPriceId).style.display = 'block';
    }
    else {
        document.getElementById(divTeamId).style.display = 'block';
        document.getElementById(divPriceId).style.display = 'none';
    }
    document.getElementById(txtMaxId).value = '';
    document.getElementById(txtMinId).value = '';
    document.getElementById(txtTeamId).value = '';
}

function cacboFeatureRaceFilterType_OnChange(sender, eventArgs) {
    if (sender.getSelectedItem() != null && sender.getSelectedItem() != '') {
        var selectedType = sender.getSelectedItem().Value;
        var idpart = sender.Id.replace(sender.Id.split('_')[sender.Id.split('_').length - 1], '');
        if (selectedType == 'Price') {
            document.getElementById(idpart + 'divSportFilterPrice').style.display = 'block';
            document.getElementById(idpart + 'divSportFilterTeam').style.display = 'none';
            caacboMin.set_text('');
            cacboMax.set_text('');
            document.getElementById(idpart + 'txtTeam').value = '';
        }
        else {
            document.getElementById(idpart + 'divSportFilterTeam').style.display = 'block';
            document.getElementById(idpart + 'divSportFilterPrice').style.display = 'none';
            caacboMin.set_text('');
            cacboMax.set_text('');
            document.getElementById(idpart + 'txtTeam').value = '';
        }
    }
}


function OnCallBackHeaderUserInfoCallbackComplete() {
    if (document.getElementById('imgCallBackHeaderUserInfoRefresh') != null)
        document.getElementById('imgCallBackHeaderUserInfoRefresh').src = 'images/btn_AcRefresh.gif';
}

//Session Extend
function extendSession() {
    clearTimeout(sessionclosetimer);
    //alert('extendSession');
    cdiagSessionExp.close();
    CallBackHeaderUserInfoCallbackDelegate(true);
}

//because ff and safari wont animate flash without focus, dont use yet
function dialogForceClose() {
    //setTimeout('cdiagSessionExp.close();window.open("Login.aspx","_self")',1000*60);
}

//Session Abandon
function abandonSession() {
    //alert('abandonSession');
    //Issue with chorome
    //var browser = navigator.appName;
    //alert(browser);
    //if (browser != 'Netscape')

    //force a dummy form submit to enable page expiry message
    window.open('login.aspx?timeout=true', '_self');
}

var sessionclosetimer = null;
//delagated parameterised callback trigger for header info uc
function CallBackHeaderUserInfoCallbackDelegate(callback) {
    if (var_timer != null)
        clearTimeout(var_timer);
    //alert('CallBackHeaderUserInfoCallbackDelegate');
    var_timer = window.setTimeout('cdiagSessionExp.Show();', 1000 * 60 * 10);

    //start close window timer
    if (sessionclosetimer != null)
        clearTimeout(sessionclosetimer);
    sessionclosetimer = window.setTimeout('abandonSession();', 1000 * 60 * 11);
    if (callback)
        CallBackHeaderUserInfo.callback();
}

function OnCallBackHeaderUserInfoBeforeCallback() {
    if (document.getElementById('imgCallBackHeaderUserInfoRefresh') != null)
        document.getElementById('imgCallBackHeaderUserInfoRefresh').src = 'images/btn_AcRefshSpin.gif';
}

function toggleDisabled(el, confirm) {
    try {
        el.disabled = confirm ? true : false;
        if ((el.nodeName != null) && (el.nodeName == 'IMG'))
            el.style.visibility = confirm ? 'hidden' : 'visible';
    }
    catch (E) { }

    if (el.childNodes && el.childNodes.length > 0) {
        for (var x = 0; x < el.childNodes.length; x++) {
            toggleDisabled(el.childNodes[x], confirm);
        }
    }
}

function toggleJockeyTrainer() {
    var jockeySpans = document.getElementsByTagName("span");
    var i = 0;
    for (i = 0; i < jockeySpans.length; i++) {
        if (jockeySpans[i].id != '')
            if (jockeySpans[i].id.length > 5)
            if ((jockeySpans[i].id.substring(0, 6) == 'jockey')
                    || (jockeySpans[i].id.substring(0, 6) == 'traine')) {
            //alert(jockeySpans[i].id);
            if (jockeySpans[i].style.display == 'none')
                jockeySpans[i].style.display = 'block';
            else
                jockeySpans[i].style.display = 'none';
        }
    }

    var headerImages = document.getElementsByName('imgJockeyTrainerToggle')
    //alert(headerImages.length);
    for (i = 0; i < headerImages.length; i++)
        if (headerImages[i].src.indexOf('images/bt_togJck.gif') > 0)
        headerImages[i].src = 'images/bt_togTrn.gif';
    else
        headerImages[i].src = 'images/bt_togJck.gif';
}

function OnFeatureQuinellaCompetitorsSubmit(eventID, tableName, isOutrightMarket) {
    var chks = document.getElementsByTagName('input');
    var competitorList = '';
    for (var i = 0; i < chks.length; i++) {
        if (chks[i].id.indexOf('e' + eventID + 'c') > -1) {
            if (chks[i].checked) {
                competitorList += (chks[i].id) + ';';
            }
        }
    }
    racingFeatures_OnDisplay('FixedPriceQuinella', eventID, competitorList, null, null, isOutrightMarket);
}

function OnFeatureDoubleCompetitorsSubmit(eventID, tableName) {
    var chks = document.getElementsByTagName('input');
    var competitorList = '';
    for (var i = 0; i < chks.length; i++) {
        if (chks[i].id.indexOf('e' + eventID + 'c') > -1) {
            if (chks[i].checked) {
                competitorList += (chks[i].id) + ';';
            }
        }
    }
    racingFeatures_OnDisplay('FeatureDouble', eventID, competitorList);
}

function SetCookie(Name, Value) {
    //alert('set ' + Value);
    var date = new Date();
    var milliseconds = date.valueOf() + (86400000 * 30)
    date = new Date(milliseconds);
    document.cookie = Name + "=" + escape(Value) + "; expires='" + date.toGMTString() + "; path=/";
}

function GetCookie(Name) {
    var bikky = document.cookie;
    var index = bikky.indexOf(Name + "=");
    if (index == -1) return null;
    index = bikky.indexOf("=", index) + 1;
    var endstr = bikky.indexOf(";", index);
    if (endstr == -1) endstr = bikky.length;
    return unescape(bikky.substring(index, endstr));
}

//get back to betweb main
function wizFinish() {
    this.parent.CallBackHeaderUserInfoCallbackDelegate(true);
    this.parent.CallbackMybetweb.Callback('Favourites');
    //this.parent.document.getElementById('betwebHomeBtn').src = 'images/tab_BRhome_OnGrn.gif';
    parent.TabStripMain.selectTabById('tabMybetweb');
}

function GlobalTip(tip) {
    Tip(tip, BORDERCOLOR, '#FFB56E', BORDERWIDTH, 1, BGCOLOR, '#FFFFFF', PADDING, 2);
    //border: 1px solid rgb(225, 181, 110);
    //alert(tip);
}

/*function UnTip() { }*/

function dialogLinkOnShow(dialog) {
    //document.getElementById('showclose').disabled = true;
    if (hdnLinkClientIDG != '') {
        if (document.getElementById(hdnLinkClientIDG) != null) {
            document.getElementById('LTPlinkURL').value = document.getElementById(hdnLinkClientIDG).value;
            document.getElementById('LTPemail').value = document.getElementById(hdnLinkClientEmailG).value;
        }
        else {
            alert('Unique id cannot be found:' + hdnLinkClientIDG)
        }
    }
}

function dialogLinkClose(action) {
    //document.getElementById('showclose').disabled = false;
    email = document.getElementById('LTPemail').value;
    document.getElementById(hdnLinkClientEmailG).value = email;
    if (action == 'email click') {
        if (validateEmail(email)) {
            var selectedTab = '';
            if (GetCookie('CookieRaceEventSelectedTab') != null)
                selectedTab = GetCookie('CookieRaceEventSelectedTab');
            CallBackbetwebMain.Callback('RaceEventSendMail', 'raceEventDisplay', eventIdG, '0', '0', 'undefined', false, selectedTab, email);
            Dialog2.Close();
        }
        else {
            alert('Invalid Email Address');
        }
    }
}

function showForm(eventId, competitorId) {
    if (competitorId != null)
        window.open('iFormPopup.aspx?DirectEventId=' + eventId + '&CompetitorId=' + competitorId
        + '#' + competitorId, "def1",
"HEIGHT=450,WIDTH=988,SCROLLBARS=YES,RESIZABLE=YES, status=yes");
    else
        window.open('iFormPopup.aspx?DirectEventId=' + eventId, "def1",
"HEIGHT=450,WIDTH=988,SCROLLBARS=YES,RESIZABLE=YES, status=yes");

}

//save blackbooks
function saveBlackbook(eventId, competitorName, eventType, competitorId) {
    var answer = window.showModalDialog('BlackbookComment.aspx?action=Save&c=' + competitorName, window.self, 'dialogHeight:210px;dialogWidth:286px');
    //var answer = prompt("Do you want to add this competitor to your Blackbook?", "")
    if ((answer != null) && (answer != '')) {
        if (answer.substring(0, 5) == 'save:') {
            var saveBlackBook = eventId + '^' + competitorName + '^' + eventType + '^add^' + competitorId + "^" + answer;
            document.getElementById('raceEventAscxHdnArgs').value = saveBlackBook;
            triggerRefresh();
        }
        else if (answer.substring(0, 5) == 'ldbb:') {
            personalised_DisplayBlackbooks();
        }
    }
}

//delete blackbook
function delBlackbook(eventId, competitorName, eventType, competitorId) {
    var answer = confirm("Do you want to remove this competitor from your Blackbook?")
    if (answer) {
        var saveBlackBook = eventId + '^' + competitorName + '^' + eventType + '^del^' + competitorId + "^" + answer;
        document.getElementById('hdnComment').value = saveBlackBook;
        triggerRefresh();
    }
}

//edit blackbook
function editBlackbook(competitorName, comment) {
    var answer = window.showModalDialog('BlackbookComment.aspx?action=Edit&c=' + competitorName + '&co=' + comment, '', 'dialogHeight:210px;dialogWidth:286px');
    //var answer = prompt("Do you want to add this competitor to your Blackbook?", "")
    if ((answer != null) && (answer != '')) {
        if (answer.substring(0, 5) == 'save:') {
            var saveBlackBook = competitorName + '^' + answer;
            document.getElementById('hdnComment').value = saveBlackBook;
            triggerRefresh();
        }
        else if (answer.substring(0, 5) == 'ldbb:') {
            personalised_DisplayBlackbooks();
        }
    }
}


//favoured markets search results links
function cacboSearchResult_Change(sender) {
    if (sender.selectedIndex > 0) {
        var selected = sender.options[sender.selectedIndex].value.split('|');

        /*if(sender.getSelectedItem() != null && sender.getSelectedItem() != ''){
        var selected = sender.getSelectedItem().Value.split('|'); */
        var eventType = selected[0];
        var favouriteName = selected[1];
        var favouriteType = selected[2];
        var link = selected[3];
        personalised_DisplayFavoured(eventType, favouriteName, favouriteType, link);
    }
}

function disposeCACbos(tab) {
    if (tab == 1) {//betweb
        if (document.getElementById('betweb2_ctl02_BreadCrumbs1_cbl1') != null)
            betweb2_ctl02_BreadCrumbs1_cbl1.dispose();
        if (document.getElementById('betweb2_ctl02_BreadCrumbs1_cbl2') != null)
            betweb2_ctl02_BreadCrumbs1_cbl2.dispose();
        if (document.getElementById('betweb2_ctl02_BreadCrumbs1_cbl3') != null)
            betweb2_ctl02_BreadCrumbs1_cbl3.dispose();
        if (document.getElementById('betweb2_ctl02_BreadCrumbs1_cbl4') != null)
            betweb2_ctl02_BreadCrumbs1_cbl4.dispose();

        //sportsEventSelector1
        if (document.getElementById('betweb2_ctl02_SportsEventSelector1_cacboFilterType') != null)
            betweb2_ctl02_SportsEventSelector1_cacboFilterType.dispose();
        if (document.getElementById('betweb2_ctl02_SportsEventSelector1_caacboMin') != null)
            betweb2_ctl02_SportsEventSelector1_caacboMin.dispose();
        if (document.getElementById('betweb2_ctl02_SportsEventSelector1_cacboMax') != null)
            betweb2_ctl02_SportsEventSelector1_cacboMax.dispose();

        //raceEventSelector1
        if (document.getElementById('betweb2_ctl22_RaceEventSelector1_cacboDate') != null)
            betweb2_ctl22_RaceEventSelector1_cacboDate.dispose();
        if (document.getElementById('betweb2_ctl22_RaceEventSelector1_cacboMeet') != null)
            betweb2_ctl22_RaceEventSelector1_cacboMeet.dispose();
        if (document.getElementById('betweb2_ctl22_RaceEventSelector1_cacboRace') != null)
            betweb2_ctl22_RaceEventSelector1_cacboRace.dispose();
        if (document.getElementById('betweb2_ctl22_raceEventSelector1_cacboNextToJump') != null)
            betweb2_ctl22_raceEventSelector1_cacboNextToJump.dispose();
    }
    else if (tab == 2) {
        //favoured cbo in mybetweb
        if (document.getElementById('Mybetweb1_ctl02_cacboSearchResult') != null)
            Mybetweb1_ctl02_cacboSearchResult.dispose();
    }

    //if (document.getElementById('caDiagCommon')!=null)
    //    if (caDiagCommon.isShowing)
    //       caDiagCommon.dispose();
}

function onMenuLoadBegin() {
    //document.getElementById('imgMenuRefresh').src='images/bt_RefreshLoading.gif'
}

function onMenuLoadEnd() {
    //document.getElementById('imgMenuRefresh').src='images/bt_Refresh.gif'
}

function openMultiExoticCombinations(bettype, eventtype) {
    //alert(bettype);
    window.open("multiExoticCombinations.aspx?type=" + bettype + "&eventtype=" + eventtype, "_blank", "height=400,width=700,top=200,left=100,status=yes,toolbar=no,menubar=yes,location=no,scrollbars=yes");
}

function populateSecondDDL(ddl2Id, ddl1Id) {
    var optlength = document.getElementById(ddl2Id).options.length;
    for (var i = 0; i < optlength; i++) {
        document.getElementById(ddl2Id).options[0] = null;
    }

    newOpt = document.getElementById(ddl2Id).appendChild(document.createElement('option'));
    newOpt.text = "Runner";
    if (document.getElementById(ddl1Id).selectedIndex == 0) {
        var newOpt = document.getElementById(ddl2Id).appendChild(document.createElement('option'));
        newOpt.text = "Jockey";
    }
    newOpt = document.getElementById(ddl2Id).appendChild(document.createElement('option'));
    newOpt.text = "Trainer";
}

function showHideFormRow(compId, show) {
    //alert(compId);
    //when no form available, table wont be rendered
    if (show != null) {
        if (document.getElementById('tblCf_' + compId) == null)
            return;
        if (show) {
            document.getElementById('imgCf_' + compId).src = 'images/frm_rght_on.gif';
            document.getElementById('tblCf_' + compId).style.display = '';
            document.getElementById('imgLf_' + compId).src = 'images/frm_Lft_on.gif';
            document.getElementById('tdCF_' + compId).bgColor = '#3D515C';
            document.getElementById('tdCF_' + compId).className = 'txtWhtHd';
            //document.getElementById('tdCF_' + compId).background = 'images/blank.gif';
            //document.getElementById('ftc_' + compId).style.backgroundImage = 'url(images/bk_FormOn.gif)';
        }
        else {
            document.getElementById('imgCf_' + compId).src = 'images/frm_rght.gif';
            document.getElementById('tblCf_' + compId).style.display = 'none';
            document.getElementById('imgLf_' + compId).src = 'images/frm_Lft.gif';
            document.getElementById('tdCF_' + compId).bgColor = '#FFFFFF';
            //document.getElementById('tdCF_' + compId).background = 'images/frm_bk.gif';
            document.getElementById('tdCF_' + compId).className = '';
            //document.getElementById('ftc_' + compId).style.backgroundImage = 'url(images/bk_FormOff.gif)';
        }
    }
    else {
        if (document.getElementById('tblCf_' + compId) == null)
            return;
        if (document.getElementById('tblCf_' + compId).style.display == '') {
            document.getElementById('imgCf_' + compId).src = 'images/frm_rght.gif';
            document.getElementById('imgLf_' + compId).src = 'images/frm_Lft.gif';
            //document.getElementById('tdCF_' + compId).background = 'images/frm_bk.gif';
            document.getElementById('tdCF_' + compId).bgColor = '#FFFFFF';
            document.getElementById('tblCf_' + compId).style.display = 'none';
            document.getElementById('tdCF_' + compId).className = '';
            //document.getElementById('ftc_' + compId).style.backgroundImage = 'url(images/bk_FormOff.gif)';
        }
        else {
            document.getElementById('imgCf_' + compId).src = 'images/frm_rght_on.gif';
            document.getElementById('tblCf_' + compId).style.display = '';
            document.getElementById('imgLf_' + compId).src = 'images/frm_Lft_on.gif';
            document.getElementById('tdCF_' + compId).bgColor = '#3D515C';
            //document.getElementById('tdCF_' + compId).background = 'images/blank.gif';
            document.getElementById('tdCF_' + compId).className = 'txtWhtHd';
            //document.getElementById('ftc_' + compId).style.backgroundImage = 'url(images/bk_FormOn.gif)';
        }
    }
}


function expandCollapseAllForm(img) {
    //alert(img.src.substring(img.src.length - 16));
    if (img.src.substring(img.src.length - 14) == 'btn_Expand.gif') {
        img.src = 'images/btn_Collapse.gif';

        var imgs = document.getElementsByTagName('img');
        for (i = 0; i < imgs.length; i++) {
            if (imgs[i].id.substring(0, 6) == 'imgCf_') {
                var id = imgs[i].id.replace('imgCf_', '');
                imgs[i].style.display = 'block';
                showHideFormRow(id, true);
            }
        }
    }
    else {
        img.src = 'images/btn_Expand.gif';

        var imgs = document.getElementsByTagName('img');
        for (i = 0; i < imgs.length; i++) {
            if (imgs[i].id.substring(0, 6) == 'imgCf_') {
                var id = imgs[i].id.replace('imgCf_', '');
                imgs[i].style.display = 'block';
                showHideFormRow(id, false);
            }
        }
    }
}

function Info_Display(infoComponent) {
    __doPostBack('UpdatePanelMainContent', 'Info:' + infoComponent);
    //handleTabSelect('tabbetweb');
}

function MobileBettingDisplay() {
    secondwindow = open('http://www.sportingbet.com.au/content/sbetmobi/index.html', 'MobileBetting', 'width=1001, height=799 ,scrollbars=1');
}

function competitions_Display(competitionComponent) {
    __doPostBack('UpdatePanelMainContent', 'Competitions:' + competitionComponent);
}

// open rapid multi in a new popup window
function openRapidMulti() {
    window.open("RapidMulti.aspx", "rapidMultiWindow", "height=690, width=640");
}

//open live help in a new popup window
function openLiveHelp(liveHelpWebURL) {
    window.open(liveHelpWebURL, "_blank", "height=400,width=500,top=200,left=100,status=no,toolbar=no,menubar=no,location=no,scrollbars=no");
}

function setCulture(culture) {
    SetCookie('cookieCulture', culture);
    document.getElementById('form1').submit();
}

//open live help Indicator
function updateLiveHelpIndicator() {
    CallBackLiveHelpIcon.callback();
}

function login() {
    __doPostBack('UpdatePanelHeaderButtons', 'Login');
}

function logout() {
    __doPostBack('UpdatePanelHeaderButtons', 'Logout');
}

function search(param) {
    if (param != null)
        __doPostBack('UpdatePanelHeaderButtons', 'Search:' + param);
    else
        __doPostBack('UpdatePanelHeaderButtons', 'Search');
}

function searchOnKeypress(e) {
    if (window.event.keyCode && window.event.keyCode == 13) {
        triggerRefresh();
    }
}

function callRMSLinkService() {
    SBChoiceWeb4.Services.SBChoiceWebService.GetCurrentRMS(getRMSLink_success, getRMSLink_onFailed);
}

function getRMSLink_success(e) {
    var result = eval('(' + e + ')');
    //alert(result);
    if (result != 0)
        $get('divResult').innerHTML = String.format("<img src=\"images/but_rms.gif\" style=\"vertical-align: top; cursor: pointer\" onclick=\"racingFeatures_OnDisplay('RMS',{0})\" />", result);
    else
        $get('divResult').innerHTML = '';
}

function getRMSLink_onFailed(result) {
    //$get('divResult').innerHTML = 'exception!' + result.get_message();
}

function callFAV4LinkService() {
    SBChoiceWeb4.Services.SBChoiceWebService.GetFAV4Available(getFAV4Link_success, getFAV4Link_onFailed);
}

function getFAV4Link_success(e) {
    var result = e;
    //alert(result);
    var hasFav4 = result.split(':')[0];
    if (hasFav4 == 'True') {
        var text = '';
        if ((result.split(':')[1] == '0.00') || (result.split(':')[1] == '-'))
            text = '';
        else
            text = '= ' + result.split(':')[1];

        $get('divFav4').innerHTML = String.format("<table cellpadding=\"0\" cellspacing=\"0\" style=\"cursor:pointer\" onclick=\"racingFeatures_OnDisplay('FAV4')\" ><tr><td><img src=\"images/but_fav4tab.gif\"  style=\"vertical-align: top; cursor: pointer\" width=\"68\" height=\"36\"/></td><td class=\"txtWhtxLrg\">{0}</td></tr></table>",
         text);
    }
    else
        $get('divFav4').innerHTML = '';
}

function getFAV4Link_onFailed(result) {
    //$get('divFav4').innerHTML = 'exception!' + result.get_message();
}

function callMultiWizService() {
    SBChoiceWeb4.Services.SBChoiceWebService.GetMultiWizValue(getMultiWiz_success, getMultiWiz_onFailed);
}

function getMultiWiz_success(e) {
    var result = e;
    //alert(result);
    if (result != 0)
        $get('divMultiWiz').innerHTML = String.format("{0}", result);
    else
        $get('divMultiWiz').innerHTML = '';
}

function getMultiWiz_onFailed(result) {
    //$get('divMultiWiz').innerHTML = 'exception!' + result.get_message();
}

//happy hour
function callHappyHourLinkService() {
    SBChoiceWeb4.Services.SBChoiceWebService.GetCurrentHappyHour(getHappyHourLink_success, getHappyHourLink_onFailed);
}

function getHappyHourLink_success(e) {
    var result = e;
    //alert(result);
    if (result == 'On')
        $get('divHappyHourIcon').innerHTML = String.format("<img src=\"images/ico_HH.gif\" width=\"84\" height=\"19\" style=\"cursor:pointer\" onclick=\"SportEvent_OnDisplay(115);\"/>", result);
    else
        $get('divHappyHourIcon').innerHTML = '';
}

function getHappyHourLink_onFailed(result) {
    //$get('divHappyHourIcon').innerHTML = 'exception!' + result.get_message();
}


//SBTV
function callSBTVLinkService() {
    SBChoiceWeb4.Services.SBChoiceWebService.GetSBTV(getSBTVLink_success, getSBTVLink_onFailed);
}

function getSBTVLink_success(e) {
    var result = e;

    var rivusAvail = result.split(':')[0];
    var sbTVId = result.split(':')[1];
    var eventId = result.split(':')[2];

    //alert(result);
    if (rivusAvail == 1) {
        var tbl = String.format("<table width=211 border=0 cellspacing=0 cellpadding=0><tr><td height=140 align=center bgcolor=#cecece><table width=207 border=0 cellspacing=0 cellpadding=0><tr><td height=136 bgcolor=#FFFFFF><table width=100% border=0 cellspacing=0 cellpadding=0><tr><td height=29 align=center background=./images/grad_bg.gif><table width=100% border=0 cellspacing=0 cellpadding=0><tr><td width=10>&nbsp;</td><td align=left class=txtWhtHd>FOLLOW THE MONEY</td><td width=28><img src=./images/btn_close.gif width=21 height=20 border=0 class=hand /></td></tr></table> </td> </tr> <tr> <td align=center bgcolor=#5f7a89><iframe src={0} scrolling=no marginwidth=0 marginheight=0 frameborder=0 height=107px width=205px /></td></tr></table></td></tr></table></td></tr></table>", "./SBTVHighlight.aspx?sbTVId=" + sbTVId + "&eventId=" + eventId);

        var tblTip = String.format("Tip('{0}',FOLLOWMOUSE,false,STICKY,true,CLICKCLOSE,true,BORDERWIDTH,0,OFFSETX,0,OFFSETY,0);", tbl);

        if ($get('divSBTV') != null)
            $get('divSBTV').innerHTML = String.format("<img src=\"images/bt_Follow_on.gif\" width=\"123\" height=\"20\" style=\"vertical-align:middle;cursor:pointer\" onclick=\"openSBTV('');\" onmouseout=\"UnTip();\" onmouseover=\"{0}\" />", tblTip);
    }
    else if (rivusAvail == 0) {

        if ($get('divSBTV') != null)
            $get('divSBTV').innerHTML = String.format("<img src=\"images/bt_Follow_off.gif\" width=\"123\" height=\"20\" style=\"vertical-align:middle;cursor:pointer\" onclick=\"openSBTV('');\" />");
    }
    else {
        if ($get('divSBTV') != null)
            $get('divSBTV').innerHTML = '';
    }
}

function getSBTVLink_onFailed(result) {
    //$get('divSBTV').innerHTML = 'exception!' + result.get_message();
}





//My Messages
function callMyMessagesLinkService() {
    SBChoiceWeb4.Services.SBChoiceWebService.GetMyMessages(getMyMessagesLink_success, getMyMessagesLink_onFailed);
}

function getMyMessagesLink_success(e) {
    var result = eval('(' + e + ')');
    //alert(result);
    if (result > 0)
        $get('divMessageNotification').innerHTML = String.format("<table border=\"0\" cellspacing=\"0\" cellpadding=\"2\" class=\"hand\" onclick=\"Personalised_DisplayMessages();\"><tr><td><img src=\"images/ico_emailNew.gif\" width=\"13\" height=\"11\" /></td><td class=\"txtWhtHd\">{0} new</td></table>", result);
    else
        $get('divMessageNotification').innerHTML = '';
}

function getMyMessagesLink_onFailed(result) {
    //$get('divMessageNotification').innerHTML = 'exception!';
}

function callGetRaceService() {
    // when go to another page without timer ( timer will be stopped)
    if (document.getElementById('timerRefresh') == null) {
        if (alertTimerId != null) {
            clearInterval(alertTimerId);
        }
    } else {
        $get('imgRefresh').src = 'images/btn_Refresh_on.gif';
        try {
            SBChoiceWeb4.Services.SBChoiceWebService.GetRaceEvent(refreshEventId, getRace_success, getRace_onFailed);
        }
        catch (err) {
            clearInterval(alertTimerId);
            $get('imgRefresh').src = 'images/btn_Refresh.gif';
        }
    }
}

function getRace_success(e) {
    try {
        if (e == null) {
            clearInterval(alertTimerId);
            return;
        }
        var tote = refreshTote;
        var _IsMultiMode = refreshTab;


        //check to go to resulted page  
        if (e.ResultsIn) {
            if (alertTimerId != null) {
                clearInterval(alertTimerId);
            }
            triggerRefresh();
        } else {
            // alert(e.LocalDate);
            // alert(e.LocalDateString);
            var table = $get('tblWinComps');
            var s = '';
            var i = 0, j = 0;
            for (i = 0; i < e.Competitors.length; i++) {

                // fix price
                if (document.getElementById('tdFP' + (e.Competitors[i].CompetitorId)) != null && e.Competitors[i].Scratched != true) {
                    var linkHTML = "";

                    if (e.Competitors[i].PriceToWin != 0.0) {
                        linkHTML = "<a class=\"txtHdBlkBold\" href=\"javascript:placeRaceBet('EVENTID:" + e.EventId + "^SELECTION:" + (i + 1) + "^BETTYPE:15^PRICE:" + e.Competitors[i].PriceToWin + "^EVENTNAME:" + e.Venue + "^RACENO:" + e.RaceNumber + "^ALLOWEACHWAY:" + e.AllowEachWay + "^EVENTDATE:" + e.USDateString + "^COMPETITORNAME:" + e.Competitors[i].CompetitorName + "^MULTI:" + _IsMultiMode + "');\"/>" + e.Competitors[i].PriceToWin.toFixed(2) + "</a>";

                        document.getElementById('tdFP' + (e.Competitors[i].CompetitorId)).innerHTML = linkHTML;
                    }
                }

                //place & Best Odds && WIN
                if (tote == 'NSW') {
                    if (document.getElementById('tdPP' + (e.Competitors[i].CompetitorId)) != null && e.Competitors[i].Scratched != true) {
                        var linkHTML = "";

                        if (e.Competitors[i].NSWPlace != 0.0) {

                            linkHTML = "<a class=\"txtGenGry\" href=\"javascript:placeRaceBet('EVENTID:" + e.EventId + "^SELECTION:" + (i + 1) + "^BETTYPE:10^PRICE:0.0^EVENTNAME:" + e.Venue + "^RACENO:" + e.RaceNumber + "^ALLOWEACHWAY:false^EVENTDATE:" + e.USDateString + "^COMPETITORNAME:" + e.Competitors[i].CompetitorName + "^MULTI:" + _IsMultiMode + "');\"/>" + e.Competitors[i].NSWPlace.toFixed(2) + "</a>";
                            document.getElementById('tdPP' + (e.Competitors[i].CompetitorId)).innerHTML = linkHTML;
                        }

                    }
                    if (document.getElementById('tdBOP' + (e.Competitors[i].CompetitorId)) != null && e.Competitors[i].Scratched != true) {
                        var linkHTML = "";

                        if (e.Competitors[i].NSWWin != 0.0) {

                            linkHTML = "<a class=\"txtGenGry\" href=\"javascript:placeRaceBet('EVENTID:" + e.EventId + "^SELECTION:" + (i + 1) + "^BETTYPE:7^PRICE:0.0^EVENTNAME:" + e.Venue + "^RACENO:" + e.RaceNumber + "^ALLOWEACHWAY:false^EVENTDATE:" + e.USDateString + "^COMPETITORNAME:" + e.Competitors[i].CompetitorName + "^MULTI:" + _IsMultiMode + "');\"/>" + e.Competitors[i].NSWWin.toFixed(2) + "</a>";

                            document.getElementById('tdBOP' + (e.Competitors[i].CompetitorId)).innerHTML = linkHTML;
                        }
                    }

                    if (document.getElementById('tdWinP' + (e.Competitors[i].CompetitorId)) != null && e.Competitors[i].Scratched != true) {
                        var linkHTML = "";

                        if (e.Competitors[i].NSWWin != 0.0) {

                            linkHTML = "<a class=\"txtGenGry\" href=\"javascript:placeRaceBet('EVENTID:" + e.EventId + "^SELECTION:" + (i + 1) + "^BETTYPE:5^PRICE:0.0^EVENTNAME:" + e.Venue + "^RACENO:" + e.RaceNumber + "^ALLOWEACHWAY:false^EVENTDATE:" + e.USDateString + "^COMPETITORNAME:" + e.Competitors[i].CompetitorName + "^MULTI:" + _IsMultiMode + "');\"/>" + e.Competitors[i].NSWWin.toFixed(2) + "</a>";

                            document.getElementById('tdWinP' + (e.Competitors[i].CompetitorId)).innerHTML = linkHTML;
                        }
                    }
                }
                else if (tote == 'Vic') {

                    if (document.getElementById('tdPP' + (e.Competitors[i].CompetitorId)) != null && e.Competitors[i].Scratched != true) {
                        var linkHTML = "";

                        if (e.Competitors[i].VICPlace != 0.0) {

                            linkHTML = "<a class=\"txtGenGry\" href=\"javascript:placeRaceBet('EVENTID:" + e.EventId + "^SELECTION:" + (i + 1) + "^BETTYPE:9^PRICE:0.0^EVENTNAME:" + e.Venue + "^RACENO:" + e.RaceNumber + "^ALLOWEACHWAY:false^EVENTDATE:" + e.USDateString + "^COMPETITORNAME:" + e.Competitors[i].CompetitorName + "^MULTI:" + _IsMultiMode + "');\"/>" + e.Competitors[i].VICPlace.toFixed(2) + "</a>";

                            document.getElementById('tdPP' + (e.Competitors[i].CompetitorId)).innerHTML = linkHTML;
                        }

                    }

                    if (document.getElementById('tdBOP' + (e.Competitors[i].CompetitorId)) != null && e.Competitors[i].Scratched != true) {
                        var linkHTML = "";

                        if (e.Competitors[i].VicWin != 0.0) {

                            linkHTML = "<a class=\"txtGenGry\" href=\"javascript:placeRaceBet('EVENTID:" + e.EventId + "^SELECTION:" + (i + 1) + "^BETTYPE:1^PRICE:0.0^EVENTNAME:" + e.Venue + "^RACENO:" + e.RaceNumber + "^ALLOWEACHWAY:false^EVENTDATE:" + e.USDateString + "^COMPETITORNAME:" + e.Competitors[i].CompetitorName + "^MULTI:" + _IsMultiMode + "');\"/>" + e.Competitors[i].VicWin.toFixed(2) + "</a>";

                            document.getElementById('tdBOP' + (e.Competitors[i].CompetitorId)).innerHTML = linkHTML;
                        }
                    }

                    if (document.getElementById('tdWinP' + (e.Competitors[i].CompetitorId)) != null && e.Competitors[i].Scratched != true) {
                        var linkHTML = "";

                        if (e.Competitors[i].VicWin != 0.0) {

                            linkHTML = "<a class=\"txtGenGry\" href=\"javascript:placeRaceBet('EVENTID:" + e.EventId + "^SELECTION:" + (i + 1) + "^BETTYPE:4^PRICE:0.0^EVENTNAME:" + e.Venue + "^RACENO:" + e.RaceNumber + "^ALLOWEACHWAY:false^EVENTDATE:" + e.USDateString + "^COMPETITORNAME:" + e.Competitors[i].CompetitorName + "^MULTI:" + _IsMultiMode + "');\"/>" + e.Competitors[i].VicWin.toFixed(2) + "</a>";

                            document.getElementById('tdWinP' + (e.Competitors[i].CompetitorId)).innerHTML = linkHTML;
                        }
                    }
                }
                else if (tote == 'UNi') {
                    if (document.getElementById('tdPP' + (e.Competitors[i].CompetitorId)) != null && e.Competitors[i].Scratched != true) {
                        var linkHTML = "";

                        if (e.Competitors[i].UniTABPlace != 0.0) {

                            linkHTML = "<a class=\"txtGenGry\" href=\"javascript:placeRaceBet('EVENTID:" + e.EventId + "^SELECTION:" + (i + 1) + "^BETTYPE:18^PRICE:0.0^EVENTNAME:" + e.Venue + "^RACENO:" + e.RaceNumber + "^ALLOWEACHWAY:false^EVENTDATE:" + e.USDateString + "^COMPETITORNAME:" + e.Competitors[i].CompetitorName + "^MULTI:" + _IsMultiMode + "');\"/>" + e.Competitors[i].UniTABPlace.toFixed(2) + "</a>";

                            document.getElementById('tdPP' + (e.Competitors[i].CompetitorId)).innerHTML = linkHTML;
                        }

                    }

                    if (document.getElementById('tdBOP' + (e.Competitors[i].CompetitorId)) != null && e.Competitors[i].Scratched != true) {
                        var linkHTML = "";

                        if (e.Competitors[i].UniTABWin != 0.0) {

                            linkHTML = "<a class=\"txtGenGry\" href=\"javascript:placeRaceBet('EVENTID:" + e.EventId + "^SELECTION:" + (i + 1) + "^BETTYPE:19^PRICE:0.0^EVENTNAME:" + e.Venue + "^RACENO:" + e.RaceNumber + "^ALLOWEACHWAY:false^EVENTDATE:" + e.USDateString + "^COMPETITORNAME:" + e.Competitors[i].CompetitorName + "^MULTI:" + _IsMultiMode + "');\"/>" + e.Competitors[i].UniTABWin.toFixed(2) + "</a>";

                            document.getElementById('tdBOP' + (e.Competitors[i].CompetitorId)).innerHTML = linkHTML;
                        }
                    }


                    if (document.getElementById('tdWinP' + (e.Competitors[i].CompetitorId)) != null && e.Competitors[i].Scratched != true) {
                        var linkHTML = "";

                        if (e.Competitors[i].UniTABWin != 0.0) {

                            linkHTML = "<a class=\"txtGenGry\" href=\"javascript:placeRaceBet('EVENTID:" + e.EventId + "^SELECTION:" + (i + 1) + "^BETTYPE:17^PRICE:0.0^EVENTNAME:" + e.Venue + "^RACENO:" + e.RaceNumber + "^ALLOWEACHWAY:false^EVENTDATE:" + e.USDateString + "^COMPETITORNAME:" + e.Competitors[i].CompetitorName + "^MULTI:" + _IsMultiMode + "');\"/>" + e.Competitors[i].UniTABWin.toFixed(2) + "</a>";

                            document.getElementById('tdWinP' + (e.Competitors[i].CompetitorId)).innerHTML = linkHTML;
                        }
                    }
                }
                else if (tote == 'SBO') {
                    if (document.getElementById('tdPP' + (e.Competitors[i].CompetitorId)) != null && e.Competitors[i].Scratched != true) {
                        var linkHTML = "";

                        if (e.Competitors[i].SBOPlace != 0.0) {

                            linkHTML = "<a class=\"txtGenGry\" href=\"javascript:placeRaceBet('EVENTID:" + e.EventId + "^SELECTION:" + (i + 1) + "^BETTYPE:218^PRICE:0.0^EVENTNAME:" + e.Venue + "^RACENO:" + e.RaceNumber + "^ALLOWEACHWAY:false^EVENTDATE:" + e.USDateString + "^COMPETITORNAME:" + e.Competitors[i].CompetitorName + "^MULTI:" + _IsMultiMode + "');\"/>" + e.Competitors[i].SBOPlace.toFixed(2) + "</a>";

                            document.getElementById('tdPP' + (e.Competitors[i].CompetitorId)).innerHTML = linkHTML;
                        }

                    }

                    if (document.getElementById('tdBOP' + (e.Competitors[i].CompetitorId)) != null && e.Competitors[i].Scratched != true) {
                        var linkHTML = "";

                        if (e.Competitors[i].SBOWin != 0.0) {

                            linkHTML = "<a class=\"txtGenGry\" href=\"javascript:placeRaceBet('EVENTID:" + e.EventId + "^SELECTION:" + (i + 1) + "^BETTYPE:217^PRICE:0.0^EVENTNAME:" + e.Venue + "^RACENO:" + e.RaceNumber + "^ALLOWEACHWAY:false^EVENTDATE:" + e.USDateString + "^COMPETITORNAME:" + e.Competitors[i].CompetitorName + "^MULTI:" + _IsMultiMode + "');\"/>" + e.Competitors[i].SBOWin.toFixed(2) + "</a>";

                            document.getElementById('tdBOP' + (e.Competitors[i].CompetitorId)).innerHTML = linkHTML;
                        }
                    }


                    if (document.getElementById('tdWinP' + (e.Competitors[i].CompetitorId)) != null && e.Competitors[i].Scratched != true) {
                        var linkHTML = "";

                        if (e.Competitors[i].SBOWin != 0.0) {

                            linkHTML = "<a class=\"txtGenGry\" href=\"javascript:placeRaceBet('EVENTID:" + e.EventId + "^SELECTION:" + (i + 1) + "^BETTYPE:217^PRICE:0.0^EVENTNAME:" + e.Venue + "^RACENO:" + e.RaceNumber + "^ALLOWEACHWAY:false^EVENTDATE:" + e.USDateString + "^COMPETITORNAME:" + e.Competitors[i].CompetitorName + "^MULTI:" + _IsMultiMode + "');\"/>" + e.Competitors[i].SBOWin.toFixed(2) + "</a>";

                            document.getElementById('tdWinP' + (e.Competitors[i].CompetitorId)).innerHTML = linkHTML;
                        }
                    }
                }

                // maxDiv
                if (document.getElementById('tdMDP' + (e.Competitors[i].CompetitorId)) != null && e.Competitors[i].Scratched != true) {
                    var linkHTML = "";

                    if (e.Competitors[i].MaxiDIVWin != 0.0) {

                        linkHTML = "<a class=\"txtHdBlkBold\" href=\"javascript:placeRaceBet('EVENTID:" + e.EventId + "^SELECTION:" + (i + 1) + "^BETTYPE:27^PRICE:0.0^EVENTNAME:" + e.Venue + "^RACENO:" + e.RaceNumber + "^ALLOWEACHWAY:" + e.AllowEachWay + "^EVENTDATE:" + e.USDateString + "^COMPETITORNAME:" + e.Competitors[i].CompetitorName + "^MULTI:" + _IsMultiMode + "');\"/>" + e.Competitors[i].MaxiDIVWin.toFixed(2) + "</a>";

                        document.getElementById('tdMDP' + (e.Competitors[i].CompetitorId)).innerHTML = linkHTML;
                    }
                }

                //open
                if (document.getElementById('tdOpen' + (e.Competitors[i].CompetitorId)) != null && e.Competitors[i].Scratched != true) {
                    var html = "";
                    if (e.Competitors[i].Open != 0.0) {

                        html = "<span class='txtGenGry' >" + e.Competitors[i].Open + "</span>";
                        document.getElementById('tdOpen' + (e.Competitors[i].CompetitorId)).innerHTML = html;
                    }
                }

                //fluc1
                if (document.getElementById('tdFluc1' + (e.Competitors[i].CompetitorId)) != null && e.Competitors[i].Scratched != true) {
                    var html = "";
                    if (e.Competitors[i].Fluc1 != 0.0) {
                        html = "<span class='txtGenGry' >" + e.Competitors[i].Fluc1 + "</span>";
                        document.getElementById('tdFluc1' + (e.Competitors[i].CompetitorId)).innerHTML = html;
                    }
                }


                //tdFluc2
                if (document.getElementById('tdFluc2' + (e.Competitors[i].CompetitorId)) != null && e.Competitors[i].Scratched != true) {
                    var html = "";
                    if (e.Competitors[i].Fluc2 != 0.0) {
                        html = "<span class='txtGenGry' >" + e.Competitors[i].Fluc2 + "</span>";
                        document.getElementById('tdFluc2' + (e.Competitors[i].CompetitorId)).innerHTML = html;
                    }
                }


                //SBO odds for dogs and harness
                if (document.getElementById('tdSBOP' + (e.Competitors[i].CompetitorId)) != null && e.Competitors[i].Scratched != true) {
                    var html = "";
                    if (e.Competitors[i].SBOWin != 0.0) {
                        html = "<span class='txtHdBlkBold' >" + e.Competitors[i].SBOWin.toFixed(2) + "</span>";
                        document.getElementById('tdSBOP' + (e.Competitors[i].CompetitorId)).innerHTML = html;
                    }
                }
            }
            $get('imgRefresh').src = 'images/btn_Refresh.gif';
            clearInterval(alertTimerId);
            //alert(e);
            if ((e != null) && (e.JSONRefreshInterval > 0))
                alertTimerId = setInterval("callGetRaceService()", e.JSONRefreshInterval);
        }
    } catch (err) {
        clearInterval(alertTimerId);
        $get('imgRefresh').src = 'images/btn_Refresh.gif';
    }
}

function getRace_onFailed(result) {
    // alert('exception!' + result.get_message());
    clearInterval(alertTimerId);
    $get('imgRefresh').src = 'images/btn_Refresh.gif';
}

function refreshMenus() {

    mnuRacing.set_webServiceMethod('GetRacingMenu');
    mnuRacing.loadFromWebService();
    mnuSports.set_webServiceMethod('GetSportsMenu');
    mnuSports.loadFromWebService();

}

function cHelpModal(code) {
    UnTip();
    window.open("Content/ContextHelp.aspx?code=" + code, "_contexthelpwinow", "height=480,width=720,top=200,left=100,status=no,toolbar=no,menubar=no,location=no,scrollbars=yes");
}

//DisplayDictionaryForLetter
function dictionary_DisplayLetter(selectedLetter) {

    if (document.getElementById("hiddenSelectedLetter") != null) {
        document.getElementById('hiddenSelectedLetter').value = selectedLetter;
    }
    triggerRefresh();
}

function Info_AboutUsDisplay(selectedMenuId, infoComponent) {
    if (document.getElementById("hiddenSelectedLetter") != null) {
        document.getElementById('hiddenSelectedLetter').value = selectedMenuId;
    }
    __doPostBack('UpdatePanelMainContent', 'Info:AboutUs:' + infoComponent);
    //handleTabSelect('tabbetweb');
}

function Info_ContactDisplay() {
    __doPostBack('UpdatePanelMainContent', 'Info:AboutUs:Contact');

}

function Info_SiteUseDisplay(selectedMenuId, infoComponent) {
    if (document.getElementById("hiddenSelectedLetter") != null) {
        document.getElementById('hiddenSelectedLetter').value = selectedMenuId;
    }
    __doPostBack('UpdatePanelMainContent', 'Info:SiteUse:' + infoComponent);
    //handleTabSelect('tabbetweb');
}

function Info_PayOptionDisplay(selectedMenuId, infoComponent) {
    if (document.getElementById("hiddenSelectedLetter") != null) {
        document.getElementById('hiddenSelectedLetter').value = selectedMenuId;
    }
    __doPostBack('UpdatePanelMainContent', 'Info:PaymentOptions:' + infoComponent);
    //handleTabSelect('tabbetweb');
}


function Info_SpecialsDisplay(selectedMenuId, infoComponent) {
    if (document.getElementById("hiddenSelectedLetter") != null) {
        document.getElementById('hiddenSelectedLetter').value = selectedMenuId;
    }
    __doPostBack('UpdatePanelMainContent', 'Info:SpecialsAndBonuses:' + infoComponent);
    //handleTabSelect('tabbetweb');
}

function Info_IdentificationDisplay(selectedMenuId, infoComponent) {
    if (document.getElementById("hiddenSelectedLetter") != null) {
        document.getElementById('hiddenSelectedLetter').value = selectedMenuId;
    }
    __doPostBack('UpdatePanelMainContent', 'Info:Identification:' + infoComponent);
    //handleTabSelect('tabbetweb');
}

function toggleRules(selectedRule) {

    if (document.getElementById("hiddenSelectedRule") != null) {
        document.getElementById('hiddenSelectedRule').value = selectedRule;
    }
    triggerRefresh();
}

function showLiveAudio() {
    window.open("http://www.sportingbet.com.au/content/LiveAudio.aspx", "_blank", "height=400,width=700,top=200,left=100,status=no,toolbar=no,menubar=no,location=no,scrollbars=yes");
}

function googleAn() {
    var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
    document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
}

// redirect to login page from competitions register popup
function redirectLogin() {
    window.open('../../Login.aspx', '_self');
}

// redirect to registration page from competitions register popup
function redirectJoin() {
    window.open('../../Signup.aspx?competitions=true', '_self');
}

// competitions agree to terms and conditions
function agree(comp, leagueCode) {
    document.getElementById('hdnAction').value = comp;
    document.getElementById('hdnLeagueCode').value = leagueCode;
    __doPostBack('UpdatePanelMainContent');
}

// competitions popup
function popupInfo(compInfo) {
    window.open('./content/competition/' + compInfo, "_blank", "height=650,width=680,top=200,left=100,status=yes,toolbar=no,menubar=yes,location=no,scrollbars=yes");
}

// competitions agreedialog
function agreeDialog(compType) {
    window.showModalDialog('./Controls/Competitions/CompetitionsAgree.aspx?comp=' + compType, window, 'dialogHeight:640px;dialogWidth:680px;resizable:no;');
}

// competitions playnow
function playnow(compType) {
    window.open('http://www.sportingbet.com.au/lastman/default.aspx?type=tip&comp=' + compType, "_blank", "height=800,width=820,top=200,left=100,status=yes,toolbar=no,menubar=yes,location=no,scrollbars=yes");
}

function genericWindowOpen(url) {
    window.open(url, "_blank", "height=650,width=680,top=200,left=100,status=yes,toolbar=no,menubar=yes,location=no,scrollbars=yes");
}

//open SBTV in new window
function openSBTV(sbTVId) {
    window.open("./SBTVMediaCentre.aspx?Id=" + sbTVId, "_blank", "height=530,width=940,top=200,left=100,status=no,toolbar=no,menubar=no,location=no,scrollbars=no,resizable=yes");
}

var alertTimerId = 0;
function jsonRefreshTest(eventId, tote, tab) {
    if (alertTimerId != null)
        clearInterval(alertTimerId);
    refreshEventId = eventId;
    refreshTote = tote;
    refreshTab = tab;
    alertTimerId = setInterval("callGetRaceService()", 10000);
}

function testmovie_DoFSCommand(command, args) {
    // document.forms[0].txtAction.value = "betCalc";
    // document.forms[0].txtSelection.value = args;
    // document.forms[0].submit(); 
    placeRapidMulti(args);
}

function voidLink() {

}

var alertTimerSpringId = 0;
function jsonRefreshSpringTest(eventId, tote, tab) {
    if (alertTimerSpringId != null)
        clearInterval(alertTimerSpringId);
    refreshEventId = eventId;
    refreshTote = tote;
    refreshTab = tab;
    alertTimerSpringId = setInterval("callGetSpringRaceService()", 10000);
}

function callGetSpringRaceService() {
    // when go to another page without timer ( timer will be stopped)
    if (document.getElementById('timerRefresh') == null) {
        if (alertTimerSpringId != null) {
            clearInterval(alertTimerSpringId);
        }
    } else {
        $get('imgRefresh').src = 'images/btn_Refresh_on.gif';
        try {
            SBChoice.Mini.Spring2010.Services.SBChoiceWebService.GetRaceEvent(refreshEventId, getSpringRace_success, getSpringRace_onFailed);
        }
        catch (err) {
            clearInterval(alertTimerSpringId);
            $get('imgRefresh').src = 'images/btn_Refresh.gif';
        }
    }
}

function getSpringRace_success(e) {
    try {
        if (e == null) {
            clearInterval(alertTimerSpringId);
            return;
        }
        var tote = refreshTote;
        var _IsMultiMode = refreshTab;


        //check to go to resulted page  
        if (e.ResultsIn) {
            if (alertTimerSpringId != null) {
                clearInterval(alertTimerSpringId);
            }
            triggerRefresh();
        } else {
            // alert(e.LocalDate);
            // alert(e.LocalDateString);
            // var table = $get('tblWinComps');
            var s = '';
            var i = 0, j = 0;
            for (i = 0; i < e.Competitors.length; i++) {

                // fix price
                if (document.getElementById('tdFP' + (e.Competitors[i].CompetitorId)) != null && e.Competitors[i].Scratched != true) {
                    var linkHTML = "";

                    if (e.Competitors[i].PriceToWin != 0.0) {
                        linkHTML = "<a class=\"txtHdBlkBold\" href=\"javascript:placeRaceBet('EVENTID:" + e.EventId + "^SELECTION:" + (i + 1) + "^BETTYPE:15^PRICE:" + e.Competitors[i].PriceToWin + "^EVENTNAME:" + e.Venue + "^RACENO:" + e.RaceNumber + "^ALLOWEACHWAY:" + e.AllowEachWay + "^EVENTDATE:" + e.USDateString + "^COMPETITORNAME:" + e.Competitors[i].CompetitorName + "^MULTI:" + _IsMultiMode + "');\"/>" + e.Competitors[i].PriceToWin.toFixed(2) + "</a>";

                        document.getElementById('tdFP' + (e.Competitors[i].CompetitorId)).innerHTML = linkHTML;
                    }
                }

                //place & Best Odds && WIN
                if (tote == 'NSW') {
                    if (document.getElementById('tdPP' + (e.Competitors[i].CompetitorId)) != null && e.Competitors[i].Scratched != true) {
                        var linkHTML = "";

                        if (e.Competitors[i].NSWPlace != 0.0) {

                            linkHTML = "<a class=\"txtGenGry\" href=\"javascript:placeRaceBet('EVENTID:" + e.EventId + "^SELECTION:" + (i + 1) + "^BETTYPE:10^PRICE:0.0^EVENTNAME:" + e.Venue + "^RACENO:" + e.RaceNumber + "^ALLOWEACHWAY:false^EVENTDATE:" + e.USDateString + "^COMPETITORNAME:" + e.Competitors[i].CompetitorName + "^MULTI:" + _IsMultiMode + "');\"/>" + e.Competitors[i].NSWPlace.toFixed(2) + "</a>";
                            document.getElementById('tdPP' + (e.Competitors[i].CompetitorId)).innerHTML = linkHTML;
                        }

                    }
                    if (document.getElementById('tdBOP' + (e.Competitors[i].CompetitorId)) != null && e.Competitors[i].Scratched != true) {
                        var linkHTML = "";

                        if (e.Competitors[i].NSWWin != 0.0) {

                            linkHTML = "<a class=\"txtGenGry\" href=\"javascript:placeRaceBet('EVENTID:" + e.EventId + "^SELECTION:" + (i + 1) + "^BETTYPE:7^PRICE:0.0^EVENTNAME:" + e.Venue + "^RACENO:" + e.RaceNumber + "^ALLOWEACHWAY:false^EVENTDATE:" + e.USDateString + "^COMPETITORNAME:" + e.Competitors[i].CompetitorName + "^MULTI:" + _IsMultiMode + "');\"/>" + e.Competitors[i].NSWWin.toFixed(2) + "</a>";

                            document.getElementById('tdBOP' + (e.Competitors[i].CompetitorId)).innerHTML = linkHTML;
                        }
                    }

                    if (document.getElementById('tdWinP' + (e.Competitors[i].CompetitorId)) != null && e.Competitors[i].Scratched != true) {
                        var linkHTML = "";

                        if (e.Competitors[i].NSWWin != 0.0) {

                            linkHTML = "<a class=\"txtGenGry\" href=\"javascript:placeRaceBet('EVENTID:" + e.EventId + "^SELECTION:" + (i + 1) + "^BETTYPE:5^PRICE:0.0^EVENTNAME:" + e.Venue + "^RACENO:" + e.RaceNumber + "^ALLOWEACHWAY:false^EVENTDATE:" + e.USDateString + "^COMPETITORNAME:" + e.Competitors[i].CompetitorName + "^MULTI:" + _IsMultiMode + "');\"/>" + e.Competitors[i].NSWWin.toFixed(2) + "</a>";

                            document.getElementById('tdWinP' + (e.Competitors[i].CompetitorId)).innerHTML = linkHTML;
                        }
                    }
                }
                else if (tote == 'Vic') {

                    if (document.getElementById('tdPP' + (e.Competitors[i].CompetitorId)) != null && e.Competitors[i].Scratched != true) {
                        var linkHTML = "";

                        if (e.Competitors[i].VICPlace != 0.0) {

                            linkHTML = "<a class=\"txtGenGry\" href=\"javascript:placeRaceBet('EVENTID:" + e.EventId + "^SELECTION:" + (i + 1) + "^BETTYPE:9^PRICE:0.0^EVENTNAME:" + e.Venue + "^RACENO:" + e.RaceNumber + "^ALLOWEACHWAY:false^EVENTDATE:" + e.USDateString + "^COMPETITORNAME:" + e.Competitors[i].CompetitorName + "^MULTI:" + _IsMultiMode + "');\"/>" + e.Competitors[i].VICPlace.toFixed(2) + "</a>";

                            document.getElementById('tdPP' + (e.Competitors[i].CompetitorId)).innerHTML = linkHTML;
                        }

                    }

                    if (document.getElementById('tdBOP' + (e.Competitors[i].CompetitorId)) != null && e.Competitors[i].Scratched != true) {
                        var linkHTML = "";

                        if (e.Competitors[i].VicWin != 0.0) {

                            linkHTML = "<a class=\"txtGenGry\" href=\"javascript:placeRaceBet('EVENTID:" + e.EventId + "^SELECTION:" + (i + 1) + "^BETTYPE:1^PRICE:0.0^EVENTNAME:" + e.Venue + "^RACENO:" + e.RaceNumber + "^ALLOWEACHWAY:false^EVENTDATE:" + e.USDateString + "^COMPETITORNAME:" + e.Competitors[i].CompetitorName + "^MULTI:" + _IsMultiMode + "');\"/>" + e.Competitors[i].VicWin.toFixed(2) + "</a>";

                            document.getElementById('tdBOP' + (e.Competitors[i].CompetitorId)).innerHTML = linkHTML;
                        }
                    }

                    if (document.getElementById('tdWinP' + (e.Competitors[i].CompetitorId)) != null && e.Competitors[i].Scratched != true) {
                        var linkHTML = "";

                        if (e.Competitors[i].VicWin != 0.0) {

                            linkHTML = "<a class=\"txtGenGry\" href=\"javascript:placeRaceBet('EVENTID:" + e.EventId + "^SELECTION:" + (i + 1) + "^BETTYPE:4^PRICE:0.0^EVENTNAME:" + e.Venue + "^RACENO:" + e.RaceNumber + "^ALLOWEACHWAY:false^EVENTDATE:" + e.USDateString + "^COMPETITORNAME:" + e.Competitors[i].CompetitorName + "^MULTI:" + _IsMultiMode + "');\"/>" + e.Competitors[i].VicWin.toFixed(2) + "</a>";

                            document.getElementById('tdWinP' + (e.Competitors[i].CompetitorId)).innerHTML = linkHTML;
                        }
                    }
                }
                else if (tote == 'UNi') {
                    if (document.getElementById('tdPP' + (e.Competitors[i].CompetitorId)) != null && e.Competitors[i].Scratched != true) {
                        var linkHTML = "";

                        if (e.Competitors[i].UniTABPlace != 0.0) {

                            linkHTML = "<a class=\"txtGenGry\" href=\"javascript:placeRaceBet('EVENTID:" + e.EventId + "^SELECTION:" + (i + 1) + "^BETTYPE:18^PRICE:0.0^EVENTNAME:" + e.Venue + "^RACENO:" + e.RaceNumber + "^ALLOWEACHWAY:false^EVENTDATE:" + e.USDateString + "^COMPETITORNAME:" + e.Competitors[i].CompetitorName + "^MULTI:" + _IsMultiMode + "');\"/>" + e.Competitors[i].UniTABPlace.toFixed(2) + "</a>";

                            document.getElementById('tdPP' + (e.Competitors[i].CompetitorId)).innerHTML = linkHTML;
                        }

                    }

                    if (document.getElementById('tdBOP' + (e.Competitors[i].CompetitorId)) != null && e.Competitors[i].Scratched != true) {
                        var linkHTML = "";

                        if (e.Competitors[i].UniTABWin != 0.0) {

                            linkHTML = "<a class=\"txtGenGry\" href=\"javascript:placeRaceBet('EVENTID:" + e.EventId + "^SELECTION:" + (i + 1) + "^BETTYPE:19^PRICE:0.0^EVENTNAME:" + e.Venue + "^RACENO:" + e.RaceNumber + "^ALLOWEACHWAY:false^EVENTDATE:" + e.USDateString + "^COMPETITORNAME:" + e.Competitors[i].CompetitorName + "^MULTI:" + _IsMultiMode + "');\"/>" + e.Competitors[i].UniTABWin.toFixed(2) + "</a>";

                            document.getElementById('tdBOP' + (e.Competitors[i].CompetitorId)).innerHTML = linkHTML;
                        }
                    }


                    if (document.getElementById('tdWinP' + (e.Competitors[i].CompetitorId)) != null && e.Competitors[i].Scratched != true) {
                        var linkHTML = "";

                        if (e.Competitors[i].UniTABWin != 0.0) {

                            linkHTML = "<a class=\"txtGenGry\" href=\"javascript:placeRaceBet('EVENTID:" + e.EventId + "^SELECTION:" + (i + 1) + "^BETTYPE:17^PRICE:0.0^EVENTNAME:" + e.Venue + "^RACENO:" + e.RaceNumber + "^ALLOWEACHWAY:false^EVENTDATE:" + e.USDateString + "^COMPETITORNAME:" + e.Competitors[i].CompetitorName + "^MULTI:" + _IsMultiMode + "');\"/>" + e.Competitors[i].UniTABWin.toFixed(2) + "</a>";

                            document.getElementById('tdWinP' + (e.Competitors[i].CompetitorId)).innerHTML = linkHTML;
                        }
                    }
                }
                else if (tote == 'SBO') {
                    if (document.getElementById('tdPP' + (e.Competitors[i].CompetitorId)) != null && e.Competitors[i].Scratched != true) {
                        var linkHTML = "";

                        if (e.Competitors[i].SBOPlace != 0.0) {

                            linkHTML = "<a class=\"txtGenGry\" href=\"javascript:placeRaceBet('EVENTID:" + e.EventId + "^SELECTION:" + (i + 1) + "^BETTYPE:218^PRICE:0.0^EVENTNAME:" + e.Venue + "^RACENO:" + e.RaceNumber + "^ALLOWEACHWAY:false^EVENTDATE:" + e.USDateString + "^COMPETITORNAME:" + e.Competitors[i].CompetitorName + "^MULTI:" + _IsMultiMode + "');\"/>" + e.Competitors[i].SBOPlace.toFixed(2) + "</a>";

                            document.getElementById('tdPP' + (e.Competitors[i].CompetitorId)).innerHTML = linkHTML;
                        }

                    }

                    if (document.getElementById('tdBOP' + (e.Competitors[i].CompetitorId)) != null && e.Competitors[i].Scratched != true) {
                        var linkHTML = "";

                        if (e.Competitors[i].SBOWin != 0.0) {

                            linkHTML = "<a class=\"txtGenGry\" href=\"javascript:placeRaceBet('EVENTID:" + e.EventId + "^SELECTION:" + (i + 1) + "^BETTYPE:217^PRICE:0.0^EVENTNAME:" + e.Venue + "^RACENO:" + e.RaceNumber + "^ALLOWEACHWAY:false^EVENTDATE:" + e.USDateString + "^COMPETITORNAME:" + e.Competitors[i].CompetitorName + "^MULTI:" + _IsMultiMode + "');\"/>" + e.Competitors[i].SBOWin.toFixed(2) + "</a>";

                            document.getElementById('tdBOP' + (e.Competitors[i].CompetitorId)).innerHTML = linkHTML;
                        }
                    }


                    if (document.getElementById('tdWinP' + (e.Competitors[i].CompetitorId)) != null && e.Competitors[i].Scratched != true) {
                        var linkHTML = "";

                        if (e.Competitors[i].SBOWin != 0.0) {

                            linkHTML = "<a class=\"txtGenGry\" href=\"javascript:placeRaceBet('EVENTID:" + e.EventId + "^SELECTION:" + (i + 1) + "^BETTYPE:217^PRICE:0.0^EVENTNAME:" + e.Venue + "^RACENO:" + e.RaceNumber + "^ALLOWEACHWAY:false^EVENTDATE:" + e.USDateString + "^COMPETITORNAME:" + e.Competitors[i].CompetitorName + "^MULTI:" + _IsMultiMode + "');\"/>" + e.Competitors[i].SBOWin.toFixed(2) + "</a>";

                            document.getElementById('tdWinP' + (e.Competitors[i].CompetitorId)).innerHTML = linkHTML;
                        }
                    }
                }

                // maxDiv
                if (document.getElementById('tdMDP' + (e.Competitors[i].CompetitorId)) != null && e.Competitors[i].Scratched != true) {
                    var linkHTML = "";

                    if (e.Competitors[i].MaxiDIVWin != 0.0) {

                        linkHTML = "<a class=\"txtHdBlkBold\" href=\"javascript:placeRaceBet('EVENTID:" + e.EventId + "^SELECTION:" + (i + 1) + "^BETTYPE:27^PRICE:0.0^EVENTNAME:" + e.Venue + "^RACENO:" + e.RaceNumber + "^ALLOWEACHWAY:" + e.AllowEachWay + "^EVENTDATE:" + e.USDateString + "^COMPETITORNAME:" + e.Competitors[i].CompetitorName + "^MULTI:" + _IsMultiMode + "');\"/>" + e.Competitors[i].MaxiDIVWin.toFixed(2) + "</a>";

                        document.getElementById('tdMDP' + (e.Competitors[i].CompetitorId)).innerHTML = linkHTML;
                    }
                }

                //open
                if (document.getElementById('tdOpen' + (e.Competitors[i].CompetitorId)) != null && e.Competitors[i].Scratched != true) {
                    var html = "";
                    if (e.Competitors[i].Open != 0.0) {

                        html = "<span class='txtGenGry' >" + e.Competitors[i].Open + "</span>";
                        document.getElementById('tdOpen' + (e.Competitors[i].CompetitorId)).innerHTML = html;
                    }
                }

                //fluc1
                if (document.getElementById('tdFluc1' + (e.Competitors[i].CompetitorId)) != null && e.Competitors[i].Scratched != true) {
                    var html = "";
                    if (e.Competitors[i].Fluc1 != 0.0) {
                        html = "<span class='txtGenGry' >" + e.Competitors[i].Fluc1 + "</span>";
                        document.getElementById('tdFluc1' + (e.Competitors[i].CompetitorId)).innerHTML = html;
                    }
                }


                //tdFluc2
                if (document.getElementById('tdFluc2' + (e.Competitors[i].CompetitorId)) != null && e.Competitors[i].Scratched != true) {
                    var html = "";
                    if (e.Competitors[i].Fluc2 != 0.0) {
                        html = "<span class='txtGenGry' >" + e.Competitors[i].Fluc2 + "</span>";
                        document.getElementById('tdFluc2' + (e.Competitors[i].CompetitorId)).innerHTML = html;
                    }
                }


                //SBO odds for dogs and harness
                if (document.getElementById('tdSBOP' + (e.Competitors[i].CompetitorId)) != null && e.Competitors[i].Scratched != true) {
                    var html = "";
                    if (e.Competitors[i].SBOWin != 0.0) {
                        html = "<span class='txtHdBlkBold' >" + e.Competitors[i].SBOWin.toFixed(2) + "</span>";
                        document.getElementById('tdSBOP' + (e.Competitors[i].CompetitorId)).innerHTML = html;
                    }
                }
            }
            $get('imgRefresh').src = 'images/btn_Refresh.gif';
            clearInterval(alertTimerSpringId);
            //alert(e);
            if ((e != null) && (e.JSONRefreshInterval > 0))
                alertTimerSpringId = setInterval("callGetSpringRaceService()", e.JSONRefreshInterval);
        }
    } catch (err) {
        clearInterval(alertTimerSpringId);
        $get('imgRefresh').src = 'images/btn_Refresh.gif';
    }
}

function getSpringRace_onFailed(result) {
    // alert('exception!' + result.get_message());
    clearInterval(alertTimerSpringId);
    $get('imgRefresh').src = 'images/btn_Refresh.gif';
}



/***********************************************
*javascript use in MyAccount
***********************************************/

function AccountsAJAXMenuItemSelect(selectedMenuName) {

    __doPostBack('UpdatePanelMainContent', 'Accounts:' + selectedMenuName);
}


function AccountsMenuItemSelect(secure, selectedMenuName) {

    if (secure == true) {
        document.location = 'Accounts.aspx?s=' + selectedMenuName;
    }
    else {
        document.location = 'Default.aspx?#&&s=Accounts-' + selectedMenuName;
    }
}

function AddReferral() {

    __doPostBack('UpdatePanelMainContent', 'Accounts:ReferFriend:AddReferral');
}

function TransBetSummary(action) {

    __doPostBack('UpdatePanelMainContent', 'Accounts:transactions_bettingsummary:' + action);
}

function TransSearch(action) {

    __doPostBack('UpdatePanelMainContent', 'Accounts:transactions_search:' + action);
}


function selectDepositTab() {

    document.location = 'Accounts.aspx?s=deposit_creditcard';    
}

function selectTransactionsTab() {

    //__doPostBack('UpdatePanelMainContent', 'Accounts:transactions_summary');
    document.location = 'Default.aspx?#&&s=Accounts-transactions_summary-PendingBetsOn';
}

function selectReferAFriendTab() {
    //__doPostBack('UpdatePanelMainContent', 'Accounts:referfriend');
    document.location = 'Default.aspx?#&&s=Accounts-referfriend';
}

function joinNow() {

    document.location = 'Signup.aspx';
}


//Accounts.aspx
function AccountDetails(action) {

    __doPostBack('UpdatePanelAccounts', 'Accounts:details:' + action);
}


function AccountDeposit(selectedMenuName, action) {
  
    __doPostBack('UpdatePanelAccounts', 'Accounts:' + selectedMenuName +':'+ action);
}

function AccountWithdrawal(selectedMenuName, action) {

    __doPostBack('UpdatePanelAccounts', 'Accounts:' + selectedMenuName + ':' + action);
}

//transaction summary togggle
function AccountsTransactionsSummary(selected) {

    __doPostBack('UpdatePanelMainContent', 'Accounts:transactions_summary:' + selected);
}


//registration
//disable postal address and populate it
function addressSame(strPrefix)
{
    
	var docform = "document.form1."; // for use in default.aspx
	var myForm = document.forms['Form1'];
    if (myForm) 
    {
        docform = "document.Form1."; //for use in popup
    }
	    
    var disabledVal = eval(docform + strPrefix + "_chkSameAdd").checked;
    eval(docform + strPrefix + "_txtPostAddr1").disabled = disabledVal;	
    eval(docform + strPrefix + "_txtPostAddr2").disabled = disabledVal;	
    eval(docform + strPrefix + "_txtPostSuburb").disabled = disabledVal;	
    eval(docform + strPrefix + "_txtPostcodePA").disabled = disabledVal;	
    eval(docform + strPrefix + "_ddlStatePA").disabled = disabledVal;	
    eval(docform + strPrefix + "_ddlCountryPA").disabled = disabledVal;
    if(disabledVal)
    {
        eval(docform + strPrefix + "_txtPostAddr1").value = eval(docform + strPrefix + "_txtAddress1").value;	
        eval(docform + strPrefix + "_txtPostAddr2").value = eval(docform + strPrefix + "_txtAddress2").value;
        eval(docform + strPrefix + "_txtPostSuburb").value = eval(docform + strPrefix + "_txtSuburb").value;
        eval(docform + strPrefix + "_txtPostcodePA").value = eval(docform + strPrefix + "_txtPostcode").value;
        eval(docform + strPrefix + "_ddlStatePA").value = eval(docform + strPrefix + "_ddlStateRA").value;
        eval(docform + strPrefix + "_ddlCountryPA").value = eval(docform + strPrefix + "_ddlCountry").value;
    }
    else
    {
        eval(docform + strPrefix + "_txtPostAddr1").value = "";	
        eval(docform + strPrefix + "_txtPostAddr2").value = "";
        eval(docform + strPrefix + "_txtPostSuburb").value = "";
        eval(docform + strPrefix + "_txtPostcodePA").value = "";
        eval(docform + strPrefix + "_ddlStatePA").value = 0;
        eval(docform + strPrefix + "_ddlCountryPA").value = 13;		
    }
}

//registration
//disable subscription checkboxes and clear them
function unsubscribe(strPrefix)
{
    var docform = "document.form1."; // for use in default.aspx
	var myForm = document.forms['Form1'];
    if (myForm) 
    {
        docform = "document.Form1."; //for use in popup
    }
    
	var disabledVal = eval(docform + strPrefix + "_cbSubscribeRemove").checked;
	eval(docform + strPrefix + "_cbSubscribePromo").disabled = disabledVal;	
	eval(docform + strPrefix + "_cbSubscribeRace").disabled = disabledVal;
	eval(docform + strPrefix + "_cbSubscribeSport").disabled = disabledVal;
	if(disabledVal)
	{
		eval(docform + strPrefix + "_cbSubscribePromo").checked = false;
		eval(docform + strPrefix + "_cbSubscribeRace").checked = false;
		eval(docform + strPrefix + "_cbSubscribeSport").checked = false;
	}
	else
	{
	    eval(docform + strPrefix + "_cbSubscribePromo").checked = true;
	    eval(docform + strPrefix + "_cbSubscribeRace").checked = true;
		eval(docform + strPrefix + "_cbSubscribeSport").checked = true;
	}
}

//toggle Bet details in transaction search
function toggleBet(sId)
{
    var imageBtn = document.getElementById("btn" + sId);
	var tbl = document.getElementById("bid" + sId);
	
	if (tbl.style.display == "")
	{
	    imageBtn.src = imageBtn.src.replace('bt_Blkmax.gif', 'bt_Blkmin.gif');
	    tbl.style.display = "none";
	}
	else
	{
	    imageBtn.src = imageBtn.src.replace('bt_Blkmin.gif', 'bt_Blkmax.gif');
		tbl.style.display = "";
	}
}


//CreditCard, bank, bpay and cheque selection
function selectTableRow(tableId, rowClientId)
{
    //reset
    var table = document.getElementById(tableId);   
    var rows = table.getElementsByTagName("tr");   
    for(i = 1; i < rows.length; i++)
    {
        if (i % 2 == 0)
            rows[i].className = "rowEven";
        else
            rows[i].className = "rowOdd";
            
        //alert(rows[i].id);
        if(rows[i].id == rowClientId)
            rows[i].className = "rowHlight";
    }       
	
}

//withdrawal bpay
function selectMyTableRow(table1Id, table2Id, rowClientId) {
   selectTableRow(table1Id, rowClientId);
   selectTableRow(table2Id, rowClientId);
}

//transaction
function calculateMultiExoticCombinations(allupid)
{
    //alert();
    window.open("./Controls/MyAccount/multiExoticCalculations.aspx?allupid=" + allupid, "_blank", "height=400,width=700,top=200,left=100,status=yes,toolbar=no,menubar=yes,location=no,scrollbars=yes");
}

//loginHistory
function loginHistory() {

    window.open("./Controls/MyAccount/loginHistory.aspx", "_blank", "height=400,width=700,top=200,left=100,status=yes,toolbar=no,menubar=yes,location=no,scrollbars=yes");
}

//referral
function previewReferralEmail(clientId) {
  
    var ddlTitle = '';
    var txtFirstname = '';
    var txtSurname = '';
    var txtEmail = '';

    if (document.getElementById(clientId + '_ddlTitle') != null) {
        ddlTitle = document.getElementById(clientId + '_ddlTitle').value
    }
    
    if (document.getElementById(clientId + '_txtFirstname') != null) {
        txtFirstname = document.getElementById(clientId + '_txtFirstname').value
    }

    if (document.getElementById(clientId + '_txtSurname') != null) {
        txtSurname = document.getElementById(clientId + '_txtSurname').value
    }

    if (document.getElementById(clientId + '_txtEmail') != null) {
        txtEmail = document.getElementById(clientId + '_txtEmail').value
    }
    
    window.open("./Controls/MyAccount/previewReferralEmail.aspx?title=" + ddlTitle + "&fName=" + txtFirstname+ "&sName=" + txtSurname+ "&email=" + txtEmail, "_blank", "height=600,width=670,status=yes,toolbar=no,menubar=yes,location=no,scrollbars=yes");
}


//ask parent to do a callback
//use when in iframe
function parentInfo_Display(infoComponent) {
    //parent.CallBackbetwebMain.callback('Info', infoComponent);
    
    //if (parent.TabStripMain.get_tabs().getTab(0) != null)
   //     parent.TabStripMain.get_tabs().getTab(0).select();
    //parent.document.getElementById('betwebHomeBtn').src = 'images/tab_BRhome_OnGrn.gif';

    //todo : link to info
}

//open live help in a new popup window
function openLiveHelp(liveHelpWebURL) {
    window.open(liveHelpWebURL, "_blank", "height=400,width=500,top=200,left=100,status=no,toolbar=no,menubar=no,location=no,scrollbars=no");

    //window.open('http://server.iad.liveperson.net/hc/33290757/?cmd=file&amp;file=visitorWantsToChat&amp;site=33290757&amp;imageUrl=http://www.sportingbet.com.au/images&amp;referrer=' + escape(document.location), 'chat33290757', 'width=472,height=320'); return false;
}

function SuperStarsPopup(SuperStarsURL) {
    window.open(SuperStarsURL, "_blank", "height=400,width=700,top=200,left=100,status=yes,toolbar=no,menubar=yes,location=no,scrollbars=yes");
}

//display results in popup window for transactions
function RaceResultPopup(eventId) {
    window.open("./result.aspx?eventid=" + eventId, "_blank", "height=400,width=700,top=200,left=100,status=yes,toolbar=no,menubar=yes,location=no,scrollbars=yes");
}



/***********************************************
*javascript use in PickerAndCalender.ascx
***********************************************/

//use in racing result
function onSelectionChangedRacingResult(sender, eventArgs) {
    var clickedControl = sender;
    var clickedControlId = sender.get_clientControlId();
    var associatedControlId = GetAssociatedCalender(clickedControlId);
    var associatedControl = window[associatedControlId];
    associatedControl.setSelectedDate(clickedControl.getSelectedDate());
   
    //DisplayRaceResults when date is selected
    RaceEvent_DisplayRaceResults(getDays(sender.getSelectedDate()));
}

function getDays(myDate) {
    //Set the two dates
    var today = new Date();
    //Set 1 day in milliseconds
    var one_day = 1000 * 60 * 60 * 24;
    //Calculate difference btw the two dates, and convert to days              
    return Math.ceil((myDate.getTime() - today.getTime()) / (one_day));
}

function onSelectionChanged(sender, eventArgs) {
    var clickedControl = sender;
    var clickedControlId = sender.get_clientControlId();
    var associatedControlId = GetAssociatedCalender(clickedControlId);
    var associatedControl = window[associatedControlId];
    associatedControl.setSelectedDate(clickedControl.getSelectedDate());
}

function buttonOnClick(element, event) {

    var calendarId = GetAssociatedCalender(element.id);
    var calendar = window[calendarId];
    
    if (calendar.get_popUpShowing()) {
        calendar.hide();
    }
    else {
        var pickerId = GetAssociatedCalender(element.id);
        var picker = window[pickerId];
        calendar.setSelectedDate(picker.getSelectedDate());
        calendar.show(element);
    }
}
function buttonOnMouseUp(element, event) {

    var calendarId = GetAssociatedCalender(element.id);
    var calendar = window[calendarId];
    
    if (calendar.get_popUpShowing()) {
        event.cancelBubble = true;
        event.returnValue = false;
        return false;
    }
    else {
        return true;
    }
}


function GetAssociatedCalender(elementId) {

    var associatedControlId;

    if (elementId.indexOf('ImgCalendar', 0) > 0)
        associatedControlId = elementId.replace('ImgCalendar', 'Calendar')
    else if (elementId.indexOf('Picker', 0) > 0)
        associatedControlId = elementId.replace('Picker', 'Calendar')
    else if (elementId.indexOf('TdCalendar', 0) > 0)
        associatedControlId = elementId.replace('TdCalendar', 'Calendar')
    else if (elementId.indexOf('Calendar', 0) > 0)
        associatedControlId = elementId.replace('Calendar', 'Picker');
    else
        associatedControlId = elementId;

    return associatedControlId;
}
/* This notice must be untouched at all times.
Copyright (c) 2002-2008 Walter Zorn. All rights reserved.

wz_tooltip.js	 v. 5.20

The latest version is available at
http://www.walterzorn.com
or http://www.devira.com
or http://www.walterzorn.de

Created 1.12.2002 by Walter Zorn (Web: http://www.walterzorn.com )
Last modified: 1.8.2008

Easy-to-use cross-browser tooltips.
Just include the script at the beginning of the <body> section, and invoke
Tip('Tooltip text') to show and UnTip() to hide the tooltip, from the desired
HTML eventhandlers. Example:
<a onmouseover="Tip('Some text')" onmouseout="UnTip()" href="index.htm">My home page</a>
No container DIV required.
By default, width and height of tooltips are automatically adapted to content.
Is even capable of dynamically converting arbitrary HTML elements to tooltips
by calling TagToTip('ID_of_HTML_element_to_be_converted') instead of Tip(),
which means you can put important, search-engine-relevant stuff into tooltips.
Appearance & behaviour of tooltips can be individually configured
via commands passed to Tip() or TagToTip().

Tab Width: 4
LICENSE: LGPL

This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License (LGPL) as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

For more details on the GNU Lesser General Public License,
see http://www.gnu.org/copyleft/lesser.html
*/

var config = new Object();


//===================  GLOBAL TOOPTIP CONFIGURATION  =========================//
var tt_Debug	= true		// false or true - recommended: false once you release your page to the public
var tt_Enabled	= true		// Allows to (temporarily) suppress tooltips, e.g. by providing the user with a button that sets this global variable to false
var TagsToTip	= true		// false or true - if true, HTML elements to be converted to tooltips via TagToTip() are automatically hidden;
							// if false, you should hide those HTML elements yourself

// For each of the following config variables there exists a command, which is
// just the variablename in uppercase, to be passed to Tip() or TagToTip() to
// configure tooltips individually. Individual commands override global
// configuration. Order of commands is arbitrary.
// Example: onmouseover="Tip('Tooltip text', LEFT, true, BGCOLOR, '#FF9900', FADEIN, 400)"

config. Above			= false 	// false or true - tooltip above mousepointer
config. BgColor 		= '#E2E7FF' // Background colour (HTML colour value, in quotes)
config. BgImg			= ''		// Path to background image, none if empty string ''
config. BorderColor		= '#003099'
config. BorderStyle		= 'solid'	// Any permitted CSS value, but I recommend 'solid', 'dotted' or 'dashed'
config. BorderWidth		= 1
config. CenterMouse		= false 	// false or true - center the tip horizontally below (or above) the mousepointer
config. ClickClose		= false 	// false or true - close tooltip if the user clicks somewhere
config. ClickSticky		= false		// false or true - make tooltip sticky if user left-clicks on the hovered element while the tooltip is active
config. CloseBtn		= false 	// false or true - closebutton in titlebar
config. CloseBtnColors	= ['#990000', '#FFFFFF', '#DD3333', '#FFFFFF']	  // [Background, text, hovered background, hovered text] - use empty strings '' to inherit title colours
config. CloseBtnText	= '&nbsp;X&nbsp;'	// Close button text (may also be an image tag)
config. CopyContent		= true		// When converting a HTML element to a tooltip, copy only the element's content, rather than converting the element by its own
config. Delay			= 400		// Time span in ms until tooltip shows up
config. Duration		= 0 		// Time span in ms after which the tooltip disappears; 0 for infinite duration, < 0 for delay in ms _after_ the onmouseout until the tooltip disappears
config. FadeIn			= 0 		// Fade-in duration in ms, e.g. 400; 0 for no animation
config. FadeOut			= 0
config. FadeInterval	= 30		// Duration of each fade step in ms (recommended: 30) - shorter is smoother but causes more CPU-load
config. Fix				= null		// Fixated position, two modes. Mode 1: x- an y-coordinates in brackets, e.g. [210, 480]. Mode 2: Show tooltip at a position related to an HTML element: [ID of HTML element, x-offset, y-offset from HTML element], e.g. ['SomeID', 10, 30]. Value null (default) for no fixated positioning.
config. FollowMouse		= true		// false or true - tooltip follows the mouse
config. FontColor		= '#000044'
config. FontFace		= 'Verdana,Geneva,sans-serif'
config. FontSize		= '8pt' 	// E.g. '9pt' or '12px' - unit is mandatory
config. FontWeight		= 'normal'	// 'normal' or 'bold';
config. Height			= 0 		// Tooltip height; 0 for automatic adaption to tooltip content, < 0 (e.g. -100) for a maximum for automatic adaption
config. JumpHorz		= false		// false or true - jump horizontally to other side of mouse if tooltip would extend past clientarea boundary
config. JumpVert		= true		// false or true - jump vertically		"
config. Left			= false 	// false or true - tooltip on the left of the mouse
config. OffsetX			= 14		// Horizontal offset of left-top corner from mousepointer
config. OffsetY			= 8 		// Vertical offset
config. Opacity			= 100		// Integer between 0 and 100 - opacity of tooltip in percent
config. Padding			= 3 		// Spacing between border and content
config. Shadow			= false 	// false or true
config. ShadowColor		= '#C0C0C0'
config. ShadowWidth		= 5
config. Sticky			= false 	// false or true - fixate tip, ie. don't follow the mouse and don't hide on mouseout
config. TextAlign		= 'left'	// 'left', 'right' or 'justify'
config. Title			= ''		// Default title text applied to all tips (no default title: empty string '')
config. TitleAlign		= 'left'	// 'left' or 'right' - text alignment inside the title bar
config. TitleBgColor	= ''		// If empty string '', BorderColor will be used
config. TitleFontColor	= '#FFFFFF'	// Color of title text - if '', BgColor (of tooltip body) will be used
config. TitleFontFace	= ''		// If '' use FontFace (boldified)
config. TitleFontSize	= ''		// If '' use FontSize
config. TitlePadding	= 2
config. Width			= 0 		// Tooltip width; 0 for automatic adaption to tooltip content; < -1 (e.g. -240) for a maximum width for that automatic adaption;
									// -1: tooltip width confined to the width required for the titlebar
//=======  END OF TOOLTIP CONFIG, DO NOT CHANGE ANYTHING BELOW  ==============//




//=====================  PUBLIC  =============================================//
function Tip()
{
	tt_Tip(arguments, null);
}
function TagToTip()
{
	var t2t = tt_GetElt(arguments[0]);
	if(t2t)
		tt_Tip(arguments, t2t);
}
function UnTip()
{
	tt_OpReHref();
	if(tt_aV[DURATION] < 0 && (tt_iState & 0x2))
		tt_tDurt.Timer("tt_HideInit()", -tt_aV[DURATION], true);
	else if(!(tt_aV[STICKY] && (tt_iState & 0x2)))
		tt_HideInit();
}

//==================  PUBLIC PLUGIN API	 =====================================//
// Extension eventhandlers currently supported:
// OnLoadConfig, OnCreateContentString, OnSubDivsCreated, OnShow, OnMoveBefore,
// OnMoveAfter, OnHideInit, OnHide, OnKill

var tt_aElt = new Array(10), // Container DIV, outer title & body DIVs, inner title & body TDs, closebutton SPAN, shadow DIVs, and IFRAME to cover windowed elements in IE
tt_aV = new Array(),	// Caches and enumerates config data for currently active tooltip
tt_sContent,			// Inner tooltip text or HTML
tt_t2t, tt_t2tDad,		// Tag converted to tip, and its DOM parent element
tt_scrlX = 0, tt_scrlY = 0,
tt_musX, tt_musY,
tt_over,
tt_x, tt_y, tt_w, tt_h; // Position, width and height of currently displayed tooltip

function tt_Extension()
{
	tt_ExtCmdEnum();
	tt_aExt[tt_aExt.length] = this;
	return this;
}
function tt_SetTipPos(x, y)
{
	var css = tt_aElt[0].style;

	tt_x = x;
	tt_y = y;
	css.left = x + "px";
	css.top = y + "px";
	if(tt_ie56)
	{
		var ifrm = tt_aElt[tt_aElt.length - 1];
		if(ifrm)
		{
			ifrm.style.left = css.left;
			ifrm.style.top = css.top;
		}
	}
}
function tt_HideInit()
{
	if(tt_iState)
	{
		tt_ExtCallFncs(0, "HideInit");
		tt_iState &= ~0x4;
		if(tt_flagOpa && tt_aV[FADEOUT])
		{
			tt_tFade.EndTimer();
			if(tt_opa)
			{
				var n = Math.round(tt_aV[FADEOUT] / (tt_aV[FADEINTERVAL] * (tt_aV[OPACITY] / tt_opa)));
				tt_Fade(tt_opa, tt_opa, 0, n);
				return;
			}
		}
		tt_tHide.Timer("tt_Hide();", 1, false);
	}
}
function tt_Hide()
{
	if(tt_db && tt_iState)
	{
		tt_OpReHref();
		if(tt_iState & 0x2)
		{
			tt_aElt[0].style.visibility = "hidden";
			tt_ExtCallFncs(0, "Hide");
		}
		tt_tShow.EndTimer();
		tt_tHide.EndTimer();
		tt_tDurt.EndTimer();
		tt_tFade.EndTimer();
		if(!tt_op && !tt_ie)
		{
			tt_tWaitMov.EndTimer();
			tt_bWait = false;
		}
		if(tt_aV[CLICKCLOSE] || tt_aV[CLICKSTICKY])
			tt_RemEvtFnc(document, "mouseup", tt_OnLClick);
		tt_ExtCallFncs(0, "Kill");
		// In case of a TagToTip tip, hide converted DOM node and
		// re-insert it into DOM
		if(tt_t2t && !tt_aV[COPYCONTENT])
			tt_UnEl2Tip();
		tt_iState = 0;
		tt_over = null;
		tt_ResetMainDiv();
		if(tt_aElt[tt_aElt.length - 1])
			tt_aElt[tt_aElt.length - 1].style.display = "none";
	}
}
function tt_GetElt(id)
{
	return(document.getElementById ? document.getElementById(id)
			: document.all ? document.all[id]
			: null);
}
function tt_GetDivW(el)
{
	return(el ? (el.offsetWidth || el.style.pixelWidth || 0) : 0);
}
function tt_GetDivH(el)
{
	return(el ? (el.offsetHeight || el.style.pixelHeight || 0) : 0);
}
function tt_GetScrollX()
{
	return(window.pageXOffset || (tt_db ? (tt_db.scrollLeft || 0) : 0));
}
function tt_GetScrollY()
{
	return(window.pageYOffset || (tt_db ? (tt_db.scrollTop || 0) : 0));
}
function tt_GetClientW()
{
	var de = document.documentElement;
	return((de && de.clientWidth) ? de.clientWidth : (document.body.clientWidth || window.innerWidth || 0));
}
function tt_GetClientH()
{
	var de = document.documentElement;
	return((de && de.clientHeight) ? de.clientHeight : (document.body.clientHeight || window.innerHeight || 0));
}
function tt_GetEvtX(e)
{
	return (e ? ((typeof(e.pageX) != tt_u) ? e.pageX : (e.clientX + tt_scrlX)) : 0);
}
function tt_GetEvtY(e)
{
	return (e ? ((typeof(e.pageY) != tt_u) ? e.pageY : (e.clientY + tt_scrlY)) : 0);
}
function tt_AddEvtFnc(el, sEvt, PFnc)
{
	if(el)
	{
		if(el.addEventListener)
			el.addEventListener(sEvt, PFnc, false);
		else
			el.attachEvent("on" + sEvt, PFnc);
	}
}
function tt_RemEvtFnc(el, sEvt, PFnc)
{
	if(el)
	{
		if(el.removeEventListener)
			el.removeEventListener(sEvt, PFnc, false);
		else
			el.detachEvent("on" + sEvt, PFnc);
	}
}
function tt_GetDad(el)
{
	return(el.parentNode || el.parentElement || el.offsetParent);
}
function tt_MovDomNode(el, dadFrom, dadTo)
{
	if(dadFrom)
		dadFrom.removeChild(el);
	if(dadTo)
		dadTo.appendChild(el);
}

//======================  PRIVATE  ===========================================//
var tt_aExt = new Array(),	// Array of extension objects

tt_db, tt_op, tt_ie, tt_ie56, tt_bBoxOld,	// Browser flags
tt_body,
tt_ovr_,				// HTML element the mouse is currently over
tt_flagOpa, 			// Opacity support: 1=IE, 2=Khtml, 3=KHTML, 4=Moz, 5=W3C
tt_maxPosX, tt_maxPosY,
tt_iState = 0,			// Tooltip active |= 1, shown |= 2, move with mouse |= 4
tt_opa, 				// Currently applied opacity
tt_bJmpVert, tt_bJmpHorz,// Tip temporarily on other side of mouse
tt_elDeHref,			// The tag from which we've removed the href attribute
// Timer
tt_tShow = new Number(0), tt_tHide = new Number(0), tt_tDurt = new Number(0),
tt_tFade = new Number(0), tt_tWaitMov = new Number(0),
tt_bWait = false,
tt_u = "undefined";


function tt_Init()
{
	tt_MkCmdEnum();
	// Send old browsers instantly to hell
	if(!tt_Browser() || !tt_MkMainDiv())
		return;
	// Levy 06/11/2008: Important! IE doesn't fire an onscroll when a page
	// refresh is made, so we need to recalc page positions on init.
	tt_OnScrl();
	tt_IsW3cBox();
	tt_OpaSupport();
	tt_AddEvtFnc(window, "scroll", tt_OnScrl);
	// IE doesn't fire onscroll event when switching to fullscreen;
	// fix suggested by Yoav Karpeles 14.2.2008
	tt_AddEvtFnc(window, "resize", tt_OnScrl);
	tt_AddEvtFnc(document, "mousemove", tt_Move);
	// In Debug mode we search for TagToTip() calls in order to notify
	// the user if they've forgotten to set the TagsToTip config flag
	if(TagsToTip || tt_Debug)
		tt_SetOnloadFnc();
	// Ensure the tip be hidden when the page unloads
	tt_AddEvtFnc(window, "unload", tt_Hide);
}
// Creates command names by translating config variable names to upper case
function tt_MkCmdEnum()
{
	var n = 0;
	for(var i in config)
		eval("window." + i.toString().toUpperCase() + " = " + n++);
	tt_aV.length = n;
}
function tt_Browser()
{
	var n, nv, n6, w3c;

	n = navigator.userAgent.toLowerCase(),
	nv = navigator.appVersion;
	tt_op = (document.defaultView && typeof(eval("w" + "indow" + "." + "o" + "p" + "er" + "a")) != tt_u);
	tt_ie = n.indexOf("msie") != -1 && document.all && !tt_op;
	if(tt_ie)
	{
		var ieOld = (!document.compatMode || document.compatMode == "BackCompat");
		tt_db = !ieOld ? document.documentElement : (document.body || null);
		if(tt_db)
			tt_ie56 = parseFloat(nv.substring(nv.indexOf("MSIE") + 5)) >= 5.5
					&& typeof document.body.style.maxHeight == tt_u;
	}
	else
	{
		tt_db = document.documentElement || document.body ||
				(document.getElementsByTagName ? document.getElementsByTagName("body")[0]
				: null);
		if(!tt_op)
		{
			n6 = document.defaultView && typeof document.defaultView.getComputedStyle != tt_u;
			w3c = !n6 && document.getElementById;
		}
	}
	tt_body = (document.getElementsByTagName ? document.getElementsByTagName("body")[0]
				: (document.body || null));
	if(tt_ie || n6 || tt_op || w3c)
	{
		if(tt_body && tt_db)
		{
			if(document.attachEvent || document.addEventListener)
				return true;
		}
		else
			tt_Err("wz_tooltip.js must be included INSIDE the body section,"
					+ " immediately after the opening <body> tag.", false);
	}
	tt_db = null;
	return false;
}
function tt_MkMainDiv()
{
	// Create the tooltip DIV
	if(tt_body.insertAdjacentHTML)
		tt_body.insertAdjacentHTML("afterBegin", tt_MkMainDivHtm());
	else if(typeof tt_body.innerHTML != tt_u && document.createElement && tt_body.appendChild)
		tt_body.appendChild(tt_MkMainDivDom());
	if(window.tt_GetMainDivRefs /* FireFox Alzheimer */ && tt_GetMainDivRefs())
		return true;
	tt_db = null;
	return false;
}
function tt_MkMainDivHtm()
{
	return('<div id="WzTtDiV"></div>' +
			(tt_ie56 ? ('<iframe id="WzTtIfRm" src="javascript:false" scrolling="no" frameborder="0" style="filter:Alpha(opacity=0);position:absolute;top:0px;left:0px;display:none;"></iframe>')
			: ''));
}
function tt_MkMainDivDom()
{
	var el = document.createElement("div");
	if(el)
		el.id = "WzTtDiV";
	return el;
}
function tt_GetMainDivRefs()
{
	tt_aElt[0] = tt_GetElt("WzTtDiV");
	if(tt_ie56 && tt_aElt[0])
	{
		tt_aElt[tt_aElt.length - 1] = tt_GetElt("WzTtIfRm");
		if(!tt_aElt[tt_aElt.length - 1])
			tt_aElt[0] = null;
	}
	if(tt_aElt[0])
	{
		var css = tt_aElt[0].style;

		css.visibility = "hidden";
		css.position = "absolute";
		css.overflow = "hidden";
		return true;
	}
	return false;
}
function tt_ResetMainDiv()
{
	tt_SetTipPos(0, 0);
	tt_aElt[0].innerHTML = "";
	tt_aElt[0].style.width = "auto";
	tt_h = 0;
}
function tt_IsW3cBox()
{
	var css = tt_aElt[0].style;

	css.padding = "10px";
	css.width = "40px";
	tt_bBoxOld = (tt_GetDivW(tt_aElt[0]) == 40);
	css.padding = "0px";
	tt_ResetMainDiv();
}
function tt_OpaSupport()
{
	var css = tt_body.style;

	tt_flagOpa = (typeof(css.KhtmlOpacity) != tt_u) ? 2
				: (typeof(css.KHTMLOpacity) != tt_u) ? 3
				: (typeof(css.MozOpacity) != tt_u) ? 4
				: (typeof(css.opacity) != tt_u) ? 5
				: (typeof(css.filter) != tt_u) ? 1
				: 0;
}
// Ported from http://dean.edwards.name/weblog/2006/06/again/
// (Dean Edwards et al.)
function tt_SetOnloadFnc()
{
	tt_AddEvtFnc(document, "DOMContentLoaded", tt_HideSrcTags);
	tt_AddEvtFnc(window, "load", tt_HideSrcTags);
	if(tt_body.attachEvent)
		tt_body.attachEvent("onreadystatechange",
			function() {
				if(tt_body.readyState == "complete")
					tt_HideSrcTags();
			} );
	if(/WebKit|KHTML/i.test(navigator.userAgent))
	{
		var t = setInterval(function() {
					if(/loaded|complete/.test(document.readyState))
					{
						clearInterval(t);
						tt_HideSrcTags();
					}
				}, 10);
	}
}
function tt_HideSrcTags()
{
	if(!window.tt_HideSrcTags || window.tt_HideSrcTags.done)
		return;
	window.tt_HideSrcTags.done = true;
	if(!tt_HideSrcTagsRecurs(tt_body))
		tt_Err("There are HTML elements to be converted to tooltips.\nIf you"
				+ " want these HTML elements to be automatically hidden, you"
				+ " must edit wz_tooltip.js, and set TagsToTip in the global"
				+ " tooltip configuration to true.", true);
}
function tt_HideSrcTagsRecurs(dad)
{
	var ovr, asT2t;
	// Walk the DOM tree for tags that have an onmouseover or onclick attribute
	// containing a TagToTip('...') call.
	// (.childNodes first since .children is bugous in Safari)
	var a = dad.childNodes || dad.children || null;

	for(var i = a ? a.length : 0; i;)
	{--i;
		if(!tt_HideSrcTagsRecurs(a[i]))
			return false;
		ovr = a[i].getAttribute ? (a[i].getAttribute("onmouseover") || a[i].getAttribute("onclick"))
				: (typeof a[i].onmouseover == "function") ? (a[i].onmouseover || a[i].onclick)
				: null;
		if(ovr)
		{
			asT2t = ovr.toString().match(/TagToTip\s*\(\s*'[^'.]+'\s*[\),]/);
			if(asT2t && asT2t.length)
			{
				if(!tt_HideSrcTag(asT2t[0]))
					return false;
			}
		}
	}
	return true;
}
function tt_HideSrcTag(sT2t)
{
	var id, el;

	// The ID passed to the found TagToTip() call identifies an HTML element
	// to be converted to a tooltip, so hide that element
	id = sT2t.replace(/.+'([^'.]+)'.+/, "$1");
	el = tt_GetElt(id);
	if(el)
	{
		if(tt_Debug && !TagsToTip)
			return false;
		else
			el.style.display = "none";
	}
	else
		tt_Err("Invalid ID\n'" + id + "'\npassed to TagToTip()."
				+ " There exists no HTML element with that ID.", true);
	return true;
}
function tt_Tip(arg, t2t)
{
	if(!tt_db)
		return;
	if(tt_iState)
		tt_Hide();
	if(!tt_Enabled)
		return;
	tt_t2t = t2t;
	if(!tt_ReadCmds(arg))
		return;
 	tt_iState = 0x1 | 0x4;
	tt_AdaptConfig1();
	tt_MkTipContent(arg);
	tt_MkTipSubDivs();
	tt_FormatTip();
	tt_bJmpVert = false;
	tt_bJmpHorz = false;
	tt_maxPosX = tt_GetClientW() + tt_scrlX - tt_w - 1;
	tt_maxPosY = tt_GetClientH() + tt_scrlY - tt_h - 1;
	tt_AdaptConfig2();
	// Ensure the tip be shown and positioned before the first onmousemove
	tt_OverInit();
	tt_ShowInit();
	tt_Move();
}
function tt_ReadCmds(a)
{
	var i;

	// First load the global config values, to initialize also values
	// for which no command is passed
	i = 0;
	for(var j in config)
		tt_aV[i++] = config[j];
	// Then replace each cached config value for which a command is
	// passed (ensure the # of command args plus value args be even)
	if(a.length & 1)
	{
		for(i = a.length - 1; i > 0; i -= 2)
			tt_aV[a[i - 1]] = a[i];
		return true;
	}
	tt_Err("Incorrect call of Tip() or TagToTip().\n"
			+ "Each command must be followed by a value.", true);
	return false;
}
function tt_AdaptConfig1()
{
	tt_ExtCallFncs(0, "LoadConfig");
	// Inherit unspecified title formattings from body
	if(!tt_aV[TITLEBGCOLOR].length)
		tt_aV[TITLEBGCOLOR] = tt_aV[BORDERCOLOR];
	if(!tt_aV[TITLEFONTCOLOR].length)
		tt_aV[TITLEFONTCOLOR] = tt_aV[BGCOLOR];
	if(!tt_aV[TITLEFONTFACE].length)
		tt_aV[TITLEFONTFACE] = tt_aV[FONTFACE];
	if(!tt_aV[TITLEFONTSIZE].length)
		tt_aV[TITLEFONTSIZE] = tt_aV[FONTSIZE];
	if(tt_aV[CLOSEBTN])
	{
		// Use title colours for non-specified closebutton colours
		if(!tt_aV[CLOSEBTNCOLORS])
			tt_aV[CLOSEBTNCOLORS] = new Array("", "", "", "");
		for(var i = 4; i;)
		{--i;
			if(!tt_aV[CLOSEBTNCOLORS][i].length)
				tt_aV[CLOSEBTNCOLORS][i] = (i & 1) ? tt_aV[TITLEFONTCOLOR] : tt_aV[TITLEBGCOLOR];
		}
		// Enforce titlebar be shown
		if(!tt_aV[TITLE].length)
			tt_aV[TITLE] = " ";
	}
	// Circumvents broken display of images and fade-in flicker in Geckos < 1.8
	if(tt_aV[OPACITY] == 100 && typeof tt_aElt[0].style.MozOpacity != tt_u && !Array.every)
		tt_aV[OPACITY] = 99;
	// Smartly shorten the delay for fade-in tooltips
	if(tt_aV[FADEIN] && tt_flagOpa && tt_aV[DELAY] > 100)
		tt_aV[DELAY] = Math.max(tt_aV[DELAY] - tt_aV[FADEIN], 100);
}
function tt_AdaptConfig2()
{
	if(tt_aV[CENTERMOUSE])
	{
		tt_aV[OFFSETX] -= ((tt_w - (tt_aV[SHADOW] ? tt_aV[SHADOWWIDTH] : 0)) >> 1);
		tt_aV[JUMPHORZ] = false;
	}
}
// Expose content globally so extensions can modify it
function tt_MkTipContent(a)
{
	if(tt_t2t)
	{
		if(tt_aV[COPYCONTENT])
			tt_sContent = tt_t2t.innerHTML;
		else
			tt_sContent = "";
	}
	else
		tt_sContent = a[0];
	tt_ExtCallFncs(0, "CreateContentString");
}
function tt_MkTipSubDivs()
{
	var sCss = 'position:relative;margin:0px;padding:0px;border-width:0px;left:0px;top:0px;line-height:normal;width:auto;',
	sTbTrTd = ' cellspacing="0" cellpadding="0" border="0" style="' + sCss + '"><tbody style="' + sCss + '"><tr><td ';

	tt_aElt[0].innerHTML =
		(''
		+ (tt_aV[TITLE].length ?
			('<div id="WzTiTl" style="position:relative;z-index:1;">'
			+ '<table id="WzTiTlTb"' + sTbTrTd + 'id="WzTiTlI" style="' + sCss + '">'
			+ tt_aV[TITLE]
			+ '</td>'
			+ (tt_aV[CLOSEBTN] ?
				('<td align="right" style="' + sCss
				+ 'text-align:right;">'
				+ '<span id="WzClOsE" style="position:relative;left:2px;padding-left:2px;padding-right:2px;'
				+ 'cursor:' + (tt_ie ? 'hand' : 'pointer')
				+ ';" onmouseover="tt_OnCloseBtnOver(1)" onmouseout="tt_OnCloseBtnOver(0)" onclick="tt_HideInit()">'
				+ tt_aV[CLOSEBTNTEXT]
				+ '</span></td>')
				: '')
			+ '</tr></tbody></table></div>')
			: '')
		+ '<div id="WzBoDy" style="position:relative;z-index:0;">'
		+ '<table' + sTbTrTd + 'id="WzBoDyI" style="' + sCss + '">'
		+ tt_sContent
		+ '</td></tr></tbody></table></div>'
		+ (tt_aV[SHADOW]
			? ('<div id="WzTtShDwR" style="position:absolute;overflow:hidden;"></div>'
				+ '<div id="WzTtShDwB" style="position:relative;overflow:hidden;"></div>')
			: '')
		);
	tt_GetSubDivRefs();
	// Convert DOM node to tip
	if(tt_t2t && !tt_aV[COPYCONTENT])
		tt_El2Tip();
	tt_ExtCallFncs(0, "SubDivsCreated");
}
function tt_GetSubDivRefs()
{
	var aId = new Array("WzTiTl", "WzTiTlTb", "WzTiTlI", "WzClOsE", "WzBoDy", "WzBoDyI", "WzTtShDwB", "WzTtShDwR");

	for(var i = aId.length; i; --i)
		tt_aElt[i] = tt_GetElt(aId[i - 1]);
}
function tt_FormatTip()
{
	var css, w, h, pad = tt_aV[PADDING], padT, wBrd = tt_aV[BORDERWIDTH],
	iOffY, iOffSh, iAdd = (pad + wBrd) << 1;

	//--------- Title DIV ----------
	if(tt_aV[TITLE].length)
	{
		padT = tt_aV[TITLEPADDING];
		css = tt_aElt[1].style;
		css.background = tt_aV[TITLEBGCOLOR];
		css.paddingTop = css.paddingBottom = padT + "px";
		css.paddingLeft = css.paddingRight = (padT + 2) + "px";
		css = tt_aElt[3].style;
		css.color = tt_aV[TITLEFONTCOLOR];
		if(tt_aV[WIDTH] == -1)
			css.whiteSpace = "nowrap";
		css.fontFamily = tt_aV[TITLEFONTFACE];
		css.fontSize = tt_aV[TITLEFONTSIZE];
		css.fontWeight = "bold";
		css.textAlign = tt_aV[TITLEALIGN];
		// Close button DIV
		if(tt_aElt[4])
		{
			css = tt_aElt[4].style;
			css.background = tt_aV[CLOSEBTNCOLORS][0];
			css.color = tt_aV[CLOSEBTNCOLORS][1];
			css.fontFamily = tt_aV[TITLEFONTFACE];
			css.fontSize = tt_aV[TITLEFONTSIZE];
			css.fontWeight = "bold";
		}
		if(tt_aV[WIDTH] > 0)
			tt_w = tt_aV[WIDTH];
		else
		{
			tt_w = tt_GetDivW(tt_aElt[3]) + tt_GetDivW(tt_aElt[4]);
			// Some spacing between title DIV and closebutton
			if(tt_aElt[4])
				tt_w += pad;
			// Restrict auto width to max width
			if(tt_aV[WIDTH] < -1 && tt_w > -tt_aV[WIDTH])
				tt_w = -tt_aV[WIDTH];
		}
		// Ensure the top border of the body DIV be covered by the title DIV
		iOffY = -wBrd;
	}
	else
	{
		tt_w = 0;
		iOffY = 0;
	}

	//-------- Body DIV ------------
	css = tt_aElt[5].style;
	css.top = iOffY + "px";
	if(wBrd)
	{
		css.borderColor = tt_aV[BORDERCOLOR];
		css.borderStyle = tt_aV[BORDERSTYLE];
		css.borderWidth = wBrd + "px";
	}
	if(tt_aV[BGCOLOR].length)
		css.background = tt_aV[BGCOLOR];
	if(tt_aV[BGIMG].length)
		css.backgroundImage = "url(" + tt_aV[BGIMG] + ")";
	css.padding = pad + "px";
	css.textAlign = tt_aV[TEXTALIGN];
	if(tt_aV[HEIGHT])
	{
		css.overflow = "auto";
		if(tt_aV[HEIGHT] > 0)
			css.height = (tt_aV[HEIGHT] + iAdd) + "px";
		else
			tt_h = iAdd - tt_aV[HEIGHT];
	}
	// TD inside body DIV
	css = tt_aElt[6].style;
	css.color = tt_aV[FONTCOLOR];
	css.fontFamily = tt_aV[FONTFACE];
	css.fontSize = tt_aV[FONTSIZE];
	css.fontWeight = tt_aV[FONTWEIGHT];
	css.textAlign = tt_aV[TEXTALIGN];
	if(tt_aV[WIDTH] > 0)
		w = tt_aV[WIDTH];
	// Width like title (if existent)
	else if(tt_aV[WIDTH] == -1 && tt_w)
		w = tt_w;
	else
	{
		// Measure width of the body's inner TD, as some browsers would expand
		// the container and outer body DIV to 100%
		w = tt_GetDivW(tt_aElt[6]);
		// Restrict auto width to max width
		if(tt_aV[WIDTH] < -1 && w > -tt_aV[WIDTH])
			w = -tt_aV[WIDTH];
	}
	if(w > tt_w)
		tt_w = w;
	tt_w += iAdd;

	//--------- Shadow DIVs ------------
	if(tt_aV[SHADOW])
	{
		tt_w += tt_aV[SHADOWWIDTH];
		iOffSh = Math.floor((tt_aV[SHADOWWIDTH] * 4) / 3);
		// Bottom shadow
		css = tt_aElt[7].style;
		css.top = iOffY + "px";
		css.left = iOffSh + "px";
		css.width = (tt_w - iOffSh - tt_aV[SHADOWWIDTH]) + "px";
		css.height = tt_aV[SHADOWWIDTH] + "px";
		css.background = tt_aV[SHADOWCOLOR];
		// Right shadow
		css = tt_aElt[8].style;
		css.top = iOffSh + "px";
		css.left = (tt_w - tt_aV[SHADOWWIDTH]) + "px";
		css.width = tt_aV[SHADOWWIDTH] + "px";
		css.background = tt_aV[SHADOWCOLOR];
	}
	else
		iOffSh = 0;

	//-------- Container DIV -------
	tt_SetTipOpa(tt_aV[FADEIN] ? 0 : tt_aV[OPACITY]);
	tt_FixSize(iOffY, iOffSh);
}
// Fixate the size so it can't dynamically change while the tooltip is moving.
function tt_FixSize(iOffY, iOffSh)
{
	var wIn, wOut, h, add, pad = tt_aV[PADDING], wBrd = tt_aV[BORDERWIDTH], i;

	tt_aElt[0].style.width = tt_w + "px";
	tt_aElt[0].style.pixelWidth = tt_w;
	wOut = tt_w - ((tt_aV[SHADOW]) ? tt_aV[SHADOWWIDTH] : 0);
	// Body
	wIn = wOut;
	if(!tt_bBoxOld)
		wIn -= (pad + wBrd) << 1;
	tt_aElt[5].style.width = wIn + "px";
	// Title
	if(tt_aElt[1])
	{
		wIn = wOut - ((tt_aV[TITLEPADDING] + 2) << 1);
		if(!tt_bBoxOld)
			wOut = wIn;
		tt_aElt[1].style.width = wOut + "px";
		tt_aElt[2].style.width = wIn + "px";
	}
	// Max height specified
	if(tt_h)
	{
		h = tt_GetDivH(tt_aElt[5]);
		if(h > tt_h)
		{
			if(!tt_bBoxOld)
				tt_h -= (pad + wBrd) << 1;
			tt_aElt[5].style.height = tt_h + "px";
		}
	}
	tt_h = tt_GetDivH(tt_aElt[0]) + iOffY;
	// Right shadow
	if(tt_aElt[8])
		tt_aElt[8].style.height = (tt_h - iOffSh) + "px";
	i = tt_aElt.length - 1;
	if(tt_aElt[i])
	{
		tt_aElt[i].style.width = tt_w + "px";
		tt_aElt[i].style.height = tt_h + "px";
	}
}
function tt_DeAlt(el)
{
	var aKid;

	if(el)
	{
		if(el.alt)
			el.alt = "";
		if(el.title)
			el.title = "";
		aKid = el.childNodes || el.children || null;
		if(aKid)
		{
			for(var i = aKid.length; i;)
				tt_DeAlt(aKid[--i]);
		}
	}
}
// This hack removes the native tooltips over links in Opera
function tt_OpDeHref(el)
{
	if(!tt_op)
		return;
	if(tt_elDeHref)
		tt_OpReHref();
	while(el)
	{
		if(el.hasAttribute && el.hasAttribute("href"))
		{
			el.t_href = el.getAttribute("href");
			el.t_stats = window.status;
			el.removeAttribute("href");
			el.style.cursor = "hand";
			tt_AddEvtFnc(el, "mousedown", tt_OpReHref);
			window.status = el.t_href;
			tt_elDeHref = el;
			break;
		}
		el = tt_GetDad(el);
	}
}
function tt_OpReHref()
{
	if(tt_elDeHref)
	{
		tt_elDeHref.setAttribute("href", tt_elDeHref.t_href);
		tt_RemEvtFnc(tt_elDeHref, "mousedown", tt_OpReHref);
		window.status = tt_elDeHref.t_stats;
		tt_elDeHref = null;
	}
}
function tt_El2Tip()
{
	var css = tt_t2t.style;

	// Store previous positioning
	tt_t2t.t_cp = css.position;
	tt_t2t.t_cl = css.left;
	tt_t2t.t_ct = css.top;
	tt_t2t.t_cd = css.display;
	// Store the tag's parent element so we can restore that DOM branch
	// when the tooltip is being hidden
	tt_t2tDad = tt_GetDad(tt_t2t);
	tt_MovDomNode(tt_t2t, tt_t2tDad, tt_aElt[6]);
	css.display = "block";
	css.position = "static";
	css.left = css.top = css.marginLeft = css.marginTop = "0px";
}
function tt_UnEl2Tip()
{
	// Restore positioning and display
	var css = tt_t2t.style;

	css.display = tt_t2t.t_cd;
	tt_MovDomNode(tt_t2t, tt_GetDad(tt_t2t), tt_t2tDad);
	css.position = tt_t2t.t_cp;
	css.left = tt_t2t.t_cl;
	css.top = tt_t2t.t_ct;
	tt_t2tDad = null;
}
function tt_OverInit()
{
	if(window.event)
		tt_over = window.event.target || window.event.srcElement;
	else
		tt_over = tt_ovr_;
	tt_DeAlt(tt_over);
	tt_OpDeHref(tt_over);
}
function tt_ShowInit()
{
	tt_tShow.Timer("tt_Show()", tt_aV[DELAY], true);
	if(tt_aV[CLICKCLOSE] || tt_aV[CLICKSTICKY])
		tt_AddEvtFnc(document, "mouseup", tt_OnLClick);
}
function tt_Show()
{
	var css = tt_aElt[0].style;

	// Override the z-index of the topmost wz_dragdrop.js D&D item
	css.zIndex = Math.max((window.dd && dd.z) ? (dd.z + 2) : 0, 1010);
	if(tt_aV[STICKY] || !tt_aV[FOLLOWMOUSE])
		tt_iState &= ~0x4;
	if(tt_aV[DURATION] > 0)
		tt_tDurt.Timer("tt_HideInit()", tt_aV[DURATION], true);
	tt_ExtCallFncs(0, "Show")
	css.visibility = "visible";
	tt_iState |= 0x2;
	if(tt_aV[FADEIN])
		tt_Fade(0, 0, tt_aV[OPACITY], Math.round(tt_aV[FADEIN] / tt_aV[FADEINTERVAL]));
	tt_ShowIfrm();
}
function tt_ShowIfrm()
{
	if(tt_ie56)
	{
		var ifrm = tt_aElt[tt_aElt.length - 1];
		if(ifrm)
		{
			var css = ifrm.style;
			css.zIndex = tt_aElt[0].style.zIndex - 1;
			css.display = "block";
		}
	}
}
function tt_Move(e)
{
	if(e)
		tt_ovr_ = e.target || e.srcElement;
	e = e || window.event;
	if(e)
	{
		tt_musX = tt_GetEvtX(e);
		tt_musY = tt_GetEvtY(e);
	}
	if(tt_iState & 0x04)
	{
		// Prevent jam of mousemove events
		if(!tt_op && !tt_ie)
		{
			if(tt_bWait)
				return;
			tt_bWait = true;
			tt_tWaitMov.Timer("tt_bWait = false;", 1, true);
		}
		if(tt_aV[FIX])
		{
			tt_iState &= ~0x4;
			tt_PosFix();
		}
		else if(!tt_ExtCallFncs(e, "MoveBefore"))
			tt_SetTipPos(tt_Pos(0), tt_Pos(1));
		tt_ExtCallFncs([tt_musX, tt_musY], "MoveAfter")
	}
}
function tt_Pos(iDim)
{
	var iX, bJmpMod, cmdAlt, cmdOff, cx, iMax, iScrl, iMus, bJmp;

	// Map values according to dimension to calculate
	if(iDim)
	{
		bJmpMod = tt_aV[JUMPVERT];
		cmdAlt = ABOVE;
		cmdOff = OFFSETY;
		cx = tt_h;
		iMax = tt_maxPosY;
		iScrl = tt_scrlY;
		iMus = tt_musY;
		bJmp = tt_bJmpVert;
	}
	else
	{
		bJmpMod = tt_aV[JUMPHORZ];
		cmdAlt = LEFT;
		cmdOff = OFFSETX;
		cx = tt_w;
		iMax = tt_maxPosX;
		iScrl = tt_scrlX;
		iMus = tt_musX;
		bJmp = tt_bJmpHorz;
	}
	if(bJmpMod)
	{
		if(tt_aV[cmdAlt] && (!bJmp || tt_CalcPosAlt(iDim) >= iScrl + 16))
			iX = tt_PosAlt(iDim);
		else if(!tt_aV[cmdAlt] && bJmp && tt_CalcPosDef(iDim) > iMax - 16)
			iX = tt_PosAlt(iDim);
		else
			iX = tt_PosDef(iDim);
	}
	else
	{
		iX = iMus;
		if(tt_aV[cmdAlt])
			iX -= cx + tt_aV[cmdOff] - (tt_aV[SHADOW] ? tt_aV[SHADOWWIDTH] : 0);
		else
			iX += tt_aV[cmdOff];
	}
	// Prevent tip from extending past clientarea boundary
	if(iX > iMax)
		iX = bJmpMod ? tt_PosAlt(iDim) : iMax;
	// In case of insufficient space on both sides, ensure the left/upper part
	// of the tip be visible
	if(iX < iScrl)
		iX = bJmpMod ? tt_PosDef(iDim) : iScrl;
	return iX;
}
function tt_PosDef(iDim)
{
	if(iDim)
		tt_bJmpVert = tt_aV[ABOVE];
	else
		tt_bJmpHorz = tt_aV[LEFT];
	return tt_CalcPosDef(iDim);
}
function tt_PosAlt(iDim)
{
	if(iDim)
		tt_bJmpVert = !tt_aV[ABOVE];
	else
		tt_bJmpHorz = !tt_aV[LEFT];
	return tt_CalcPosAlt(iDim);
}
function tt_CalcPosDef(iDim)
{
	return iDim ? (tt_musY + tt_aV[OFFSETY]) : (tt_musX + tt_aV[OFFSETX]);
}
function tt_CalcPosAlt(iDim)
{
	var cmdOff = iDim ? OFFSETY : OFFSETX;
	var dx = tt_aV[cmdOff] - (tt_aV[SHADOW] ? tt_aV[SHADOWWIDTH] : 0);
	if(tt_aV[cmdOff] > 0 && dx <= 0)
		dx = 1;
	return((iDim ? (tt_musY - tt_h) : (tt_musX - tt_w)) - dx);
}
function tt_PosFix()
{
	var iX, iY;

	if(typeof(tt_aV[FIX][0]) == "number")
	{
		iX = tt_aV[FIX][0];
		iY = tt_aV[FIX][1];
	}
	else
	{
		if(typeof(tt_aV[FIX][0]) == "string")
			el = tt_GetElt(tt_aV[FIX][0]);
		// First slot in array is direct reference to HTML element
		else
			el = tt_aV[FIX][0];
		iX = tt_aV[FIX][1];
		iY = tt_aV[FIX][2];
		// By default, vert pos is related to bottom edge of HTML element
		if(!tt_aV[ABOVE] && el)
			iY += tt_GetDivH(el);
		for(; el; el = el.offsetParent)
		{
			iX += el.offsetLeft || 0;
			iY += el.offsetTop || 0;
		}
	}
	// For a fixed tip positioned above the mouse, use the bottom edge as anchor
	// (recommended by Christophe Rebeschini, 31.1.2008)
	if(tt_aV[ABOVE])
		iY -= tt_h;
	tt_SetTipPos(iX, iY);
}
function tt_Fade(a, now, z, n)
{
	if(n)
	{
		now += Math.round((z - now) / n);
		if((z > a) ? (now >= z) : (now <= z))
			now = z;
		else
			tt_tFade.Timer(
					"tt_Fade("
					+ a + "," + now + "," + z + "," + (n - 1)
					+ ")",
					tt_aV[FADEINTERVAL],
					true
			);
	}
	now ? tt_SetTipOpa(now) : tt_Hide();
}
function tt_SetTipOpa(opa)
{
	// To circumvent the opacity nesting flaws of IE, we set the opacity
	// for each sub-DIV separately, rather than for the container DIV.
	tt_SetOpa(tt_aElt[5], opa);
	if(tt_aElt[1])
		tt_SetOpa(tt_aElt[1], opa);
	if(tt_aV[SHADOW])
	{
		opa = Math.round(opa * 0.8);
		tt_SetOpa(tt_aElt[7], opa);
		tt_SetOpa(tt_aElt[8], opa);
	}
}
function tt_OnScrl()
{
	tt_scrlX = tt_GetScrollX();
	tt_scrlY = tt_GetScrollY();
}
function tt_OnCloseBtnOver(iOver)
{
	var css = tt_aElt[4].style;

	iOver <<= 1;
	css.background = tt_aV[CLOSEBTNCOLORS][iOver];
	css.color = tt_aV[CLOSEBTNCOLORS][iOver + 1];
}
function tt_OnLClick(e)
{
	//  Ignore right-clicks
	e = e || window.event;
	if(!((e.button && e.button & 2) || (e.which && e.which == 3)))
	{
		if(tt_aV[CLICKSTICKY] && (tt_iState & 0x4))
		{
			tt_aV[STICKY] = true;
			tt_iState &= ~0x4;
		}
		else if(tt_aV[CLICKCLOSE])
			tt_HideInit();
	}
}
function tt_Int(x)
{
	var y;

	return(isNaN(y = parseInt(x)) ? 0 : y);
}
Number.prototype.Timer = function(s, iT, bUrge)
{
	if(!this.value || bUrge)
		this.value = window.setTimeout(s, iT);
}
Number.prototype.EndTimer = function()
{
	if(this.value)
	{
		window.clearTimeout(this.value);
		this.value = 0;
	}
}
function tt_SetOpa(el, opa)
{
	var css = el.style;

	tt_opa = opa;
	if(tt_flagOpa == 1)
	{
		if(opa < 100)
		{
			// Hacks for bugs of IE:
			// 1.) Once a CSS filter has been applied, fonts are no longer
			// anti-aliased, so we store the previous 'non-filter' to be
			// able to restore it
			if(typeof(el.filtNo) == tt_u)
				el.filtNo = css.filter;
			// 2.) A DIV cannot be made visible in a single step if an
			// opacity < 100 has been applied while the DIV was hidden
			var bVis = css.visibility != "hidden";
			// 3.) In IE6, applying an opacity < 100 has no effect if the
			//	   element has no layout (position, size, zoom, ...)
			css.zoom = "100%";
			if(!bVis)
				css.visibility = "visible";
			css.filter = "alpha(opacity=" + opa + ")";
			if(!bVis)
				css.visibility = "hidden";
		}
		else if(typeof(el.filtNo) != tt_u)
			// Restore 'non-filter'
			css.filter = el.filtNo;
	}
	else
	{
		opa /= 100.0;
		switch(tt_flagOpa)
		{
		case 2:
			css.KhtmlOpacity = opa; break;
		case 3:
			css.KHTMLOpacity = opa; break;
		case 4:
			css.MozOpacity = opa; break;
		case 5:
			css.opacity = opa; break;
		}
	}
}
function tt_Err(sErr, bIfDebug)
{
	if(tt_Debug || !bIfDebug)
		alert("Tooltip Script Error Message:\n\n" + sErr);
}

//============  EXTENSION (PLUGIN) MANAGER  ===============//
function tt_ExtCmdEnum()
{
	var s;

	// Add new command(s) to the commands enum
	for(var i in config)
	{
		s = "window." + i.toString().toUpperCase();
		if(eval("typeof(" + s + ") == tt_u"))
		{
			eval(s + " = " + tt_aV.length);
			tt_aV[tt_aV.length] = null;
		}
	}
}
function tt_ExtCallFncs(arg, sFnc)
{
	var b = false;
	for(var i = tt_aExt.length; i;)
	{--i;
		var fnc = tt_aExt[i]["On" + sFnc];
		// Call the method the extension has defined for this event
		if(fnc && fnc(arg))
			b = true;
	}
	return b;
}

tt_Init();

Sys.Browser.WebKit = {}; //Safari 3 is considered WebKit
if (navigator.userAgent.indexOf('WebKit/') > -1) {
    Sys.Browser.agent = Sys.Browser.WebKit;
    Sys.Browser.version = parseFloat(
        navigator.userAgent.match(/WebKit\/(\d+(\.\d+)?)/)[1]);
    Sys.Browser.name = 'WebKit';
}

function test1()
{
alert('common loaded');
}

function validateEmail(str) {

var at="@"
var dot="."
var lat=str.indexOf(at)
var lstr=str.length
var ldot=str.indexOf(dot)
if (str.indexOf(at)==-1){
   return false
}

if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr-1){
   return false
}

if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr-1){
    return false
}

 if (str.indexOf(at,(lat+1))!=-1){
    return false
 }

 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
    return false
 }

 if (str.indexOf(dot,(lat+2))==-1){
    return false
 }

 if (str.indexOf(" ")!=-1){
    return false
 }
 return true					
}

function testObject(obj){
    alert(obj.Id);
}