
/* Merged Plone Javascript file
 * This file is dynamically assembled from separate parts.
 * Some of these parts have 3rd party licenses or copyright information attached
 * Such information is valid for that section,
 * not for the entire composite file
 * originating files are separated by - filename.js -
 */

/* - IFSWS_skin.js - */
// http://www.ifs.tas.gov.au/ifs/portal_javascripts/IFSWS_skin.js?original=1
document.current=1
assimilate=function(e,number){try{var oldNumber=number-1;if((e.tagName=='INPUT')&&(e.type=='text')){e.value="";if(e.name=="stockDate"+oldNumber){e.setAttribute('id','stockDate'+number);e.setAttribute('name','stockDate'+number)}
if(e.name=="stockNumber"+oldNumber){e.setAttribute('id','stockNumber'+number);e.setAttribute('name','stockNumber'+number)}
if(e.name=="rearing"+oldNumber){e.setAttribute('id','rearing'+number);e.setAttribute('name','rearing'+number)}
if(e.name=="weight"+oldNumber){e.setAttribute('id','weight'+number);e.setAttribute('name','weight'+number)}}
if(e.tagName=='SELECT'){e.value="";if(e.name=="water"+oldNumber){e.setAttribute('id','water'+number);e.setAttribute('name','water'+number)}
if(e.name=="species"+oldNumber){e.setAttribute('id','species'+number);e.setAttribute('name','species'+number)}
if(e.name=="genotype"+oldNumber){e.setAttribute('id','genotype'+number);e.setAttribute('name','genotype'+number)}
if(e.name=="stock"+oldNumber){e.setAttribute('id','stock'+number);e.setAttribute('name','stock'+number)}
if(e.name=="age"+oldNumber){e.setAttribute('id','age'+number);e.setAttribute('name','age'+number)}}
if((e.tagName=='INPUT')&&(e.type=='button')){if(e.name=="add"+oldNumber){e.setAttribute('id','add'+number);e.setAttribute('name','add'+number);e.setAttribute('onclick','validandadd('+document.current+')')}}} catch(e){}
for(var i=0;i<=e.childNodes.length;i++){try{assimilate(e.childNodes[i],number)} catch(e){}}}
function switchSelect(option){if(option=='getRegion'){document.getElementById(option).style.display='inline';document.getElementById('getWaterId').style.display='none'}
if(option=='getWaterId'){document.getElementById(option).style.display='inline';document.getElementById('getRegion').style.display='none'}}
function validandadd(container){dateElement=document.getElementById("stockDate"+container);if(isDate(dateElement.value,"d/M/yyyy")){document.current=container+1;var previousElement=document.getElementById(container);var newElement=previousElement.cloneNode(1);newElement.setAttribute('id',document.current);assimilate(newElement,document.current);document.getElementById('fullForm').insertBefore(newElement,previousElement);button=document.getElementById("add"+(container));button.style.display='none'}
else{alert("You must enter a date in the form dd/mm/yyyy")}}

/* - date.js - */
// http://www.ifs.tas.gov.au/ifs/portal_javascripts/date.js?original=1
var MONTH_NAMES=new Array('January','February','March','April','May','June','July','August','September','October','November','December','Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
function LZ(x){return(x<0||x>9?"":"0")+x}
function isDate(val,format){var date=getDateFromFormat(val,format);if(date==0){return false}
return true}
function compareDates(date1,dateformat1,date2,dateformat2){var d1=getDateFromFormat(date1,dateformat1);var d2=getDateFromFormat(date2,dateformat2);if(d1==0||d2==0){return-1}
else if(d1>d2){return 1}
return 0}
function formatDate(date,format){format=format+"";var result="";var i_format=0;var c="";var token="";var y=date.getYear()+"";var M=date.getMonth()+1;var d=date.getDate();var H=date.getHours();var m=date.getMinutes();var s=date.getSeconds();var yyyy,yy,MMM,MM,dd,hh,h,mm,ss,ampm,HH,H,KK,K,kk,k;var value=new Object();if(y.length<4){y=""+(y-0+1900)}
value["y"]=""+y;value["yyyy"]=y;value["yy"]=y.substring(2,4);value["M"]=M;value["MM"]=LZ(M);value["MMM"]=MONTH_NAMES[M-1];value["d"]=d;value["dd"]=LZ(d);value["H"]=H;value["HH"]=LZ(H);if(H==0){value["h"]=12}
else if(H>12){value["h"]=H-12}
else{value["h"]=H}
value["hh"]=LZ(value["h"]);if(H>11){value["K"]=H-12} else{value["K"]=H}
value["k"]=H+1;value["KK"]=LZ(value["K"]);value["kk"]=LZ(value["k"]);if(H>11){value["a"]="PM"}
else{value["a"]="AM"}
value["m"]=m;value["mm"]=LZ(m);value["s"]=s;value["ss"]=LZ(s);while(i_format<format.length){c=format.charAt(i_format);token="";while((format.charAt(i_format)==c)&&(i_format<format.length)){token+=format.charAt(i_format++)}
if(value[token]!=null){result=result+value[token]}
else{result=result+token}}
return result}
function _isInteger(val){var digits="1234567890";for(var i=0;i<val.length;i++){if(digits.indexOf(val.charAt(i))==-1){return false}}
return true}
function _getInt(str,i,minlength,maxlength){for(var x=maxlength;x>=minlength;x--){var token=str.substring(i,i+x);if(token.length<minlength){return null}
if(_isInteger(token)){return token}}
return null}
function getDateFromFormat(val,format){val=val+"";format=format+"";var i_val=0;var i_format=0;var c="";var token="";var token2="";var x,y;var now=new Date();var year=now.getYear();var month=now.getMonth()+1;var date=now.getDate();var hh=now.getHours();var mm=now.getMinutes();var ss=now.getSeconds();var ampm="";while(i_format<format.length){c=format.charAt(i_format);token="";while((format.charAt(i_format)==c)&&(i_format<format.length)){token+=format.charAt(i_format++)}
if(token=="yyyy"||token=="yy"||token=="y"){if(token=="yyyy"){x=4;y=4}
if(token=="yy"){x=2;y=2}
if(token=="y"){x=2;y=4}
year=_getInt(val,i_val,x,y);if(year==null){return 0}
i_val+=year.length;if(year.length==2){if(year>70){year=1900+(year-0)}
else{year=2000+(year-0)}}}
else if(token=="MMM"){month=0;for(var i=0;i<MONTH_NAMES.length;i++){var month_name=MONTH_NAMES[i];if(val.substring(i_val,i_val+month_name.length).toLowerCase()==month_name.toLowerCase()){month=i+1;if(month>12){month-=12}
i_val+=month_name.length;break}}
if((month<1)||(month>12)){return 0}}
else if(token=="MM"||token=="M"){month=_getInt(val,i_val,token.length,2);if(month==null||(month<1)||(month>12)){return 0}
i_val+=month.length}
else if(token=="dd"||token=="d"){date=_getInt(val,i_val,token.length,2);if(date==null||(date<1)||(date>31)){return 0}
i_val+=date.length}
else if(token=="hh"||token=="h"){hh=_getInt(val,i_val,token.length,2);if(hh==null||(hh<1)||(hh>12)){return 0}
i_val+=hh.length}
else if(token=="HH"||token=="H"){hh=_getInt(val,i_val,token.length,2);if(hh==null||(hh<0)||(hh>23)){return 0}
i_val+=hh.length}
else if(token=="KK"||token=="K"){hh=_getInt(val,i_val,token.length,2);if(hh==null||(hh<0)||(hh>11)){return 0}
i_val+=hh.length}
else if(token=="kk"||token=="k"){hh=_getInt(val,i_val,token.length,2);if(hh==null||(hh<1)||(hh>24)){return 0}
i_val+=hh.length;hh--}
else if(token=="mm"||token=="m"){mm=_getInt(val,i_val,token.length,2);if(mm==null||(mm<0)||(mm>59)){return 0}
i_val+=mm.length}
else if(token=="ss"||token=="s"){ss=_getInt(val,i_val,token.length,2);if(ss==null||(ss<0)||(ss>59)){return 0}
i_val+=ss.length}
else if(token=="a"){if(val.substring(i_val,i_val+2).toLowerCase()=="am"){ampm="AM"}
else if(val.substring(i_val,i_val+2).toLowerCase()=="pm"){ampm="PM"}
else{return 0}
i_val+=2}
else{if(val.substring(i_val,i_val+token.length)!=token){return 0}
else{i_val+=token.length}}}
if(i_val!=val.length){return 0}
if(month==2){if(((year%4==0)&&(year%100!=0))||(year%400==0)){if(date>29){return false}}
else{if(date>28){return false}}}
if((month==4)||(month==6)||(month==9)||(month==11)){if(date>30){return false}}
if(hh<12&&ampm=="PM"){hh=hh-0+12}
else if(hh>11&&ampm=="AM"){hh-=12}
var newdate=new Date(year,month-1,date,hh,mm,ss);return newdate.getTime()}

/* - menu.js - */
<!--//--><![CDATA[//><!--

sfHover = function() {
    try {
        var sfEls = document.getElementById("ganeMenu").getElementsByTagName("LI");
        for (var i=0; i<sfEls.length; i++) {
            sfEls[i].onmouseover=function() {
                this.className+=" sfhover";
            }
            sfEls[i].onmouseout=function() {
                this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
            }
        }
    } catch (e) {}
}
if (window.attachEvent) window.attachEvent("onload", sfHover);

//--><!]]>


/* - IFSOLS_skin.js - */
// http://www.ifs.tas.gov.au/ifs/portal_javascripts/IFSOLS_skin.js?original=1
function check(cbId){document.getElementById(cbId).checked=true}
function uncheck(cbId){document.getElementById(cbId).checked=false}
function submitenter(myfield,e){var keycode;if(window.event) keycode=window.event.keyCode;else if(e) keycode=e.which;else return true;if(keycode==13){return false}
else
return true}
function checkSingle(groupName,selId){this.modUncheckAll();var elements=document.getElementsByName(groupName);for(var i=0;i<elements.length;i++){var element=elements[i];if(element.id===selId){element.checked=true}}}
function CheckAll(){count=document.frm.elements.length;for(i=0;i<count;i++){if(document.frm.elements[i].checked==1){document.frm.elements[i].checked=0}
else{document.frm.elements[i].checked=1}}}
function modUncheckAll(){count=document.forms.length;for(i=0;i<count;i++){secCount=document.forms[i].elements.length;for(j=0;j<secCount;j++){document.forms[i].elements[j].checked=0}}}
var Images=new makeArray(4);Images[0]="Image_1.gif";Images[1]="Image_2.gif";Images[2]="Image_3.gif";Images[3]="Image_4.gif";
function timedImage(imageNumber){imageNumber=imageNumber%4;document.getElementById('timeImage').src=Images[imageNumber];t=setTimeout(timedImage(imageNumber+1),500)}
var Cards=new makeArray(8);Cards[0]=new CardType("Mastercard","51,52,53,54,55","16");var Mastercard=Cards[0];Cards[1]=new CardType("Visa","4","13,16");var Visa=Cards[1];Cards[2]=new CardType("AmExCard","34,37","15");var AmExCard=Cards[2];Cards[3]=new CardType("DinersClubCard","30,36,38","14");var DinersClubCard=Cards[3];Cards[4]=new CardType("DiscoverCard","6011","16");var DiscoverCard=Cards[4];Cards[5]=new CardType("enRouteCard","2014,2149","15");var enRouteCard=Cards[5];Cards[6]=new CardType("JCBCard","3088,3096,3112,3158,3337,3528","16");var JCBCard=Cards[6];var LuhnCheckSum=Cards[7]=new CardType();
function CheckCardNumber(form){var tmpyear;if(form.cardNumber.value.length==0){alert("Please enter a Card Number.");form.cardNumber.focus();return false}
if(form.cardYear.value.length==0){alert("Please enter the Expiration Year.");form.cardYear.focus();return false}
if(form.cardYear.value>96)
tmpyear="19"+form.cardYear.value;else if(form.cardYear.value<21)
tmpyear="20"+form.cardYear.value;else{alert("The Expiration Year is not valid.");return false}
tmpmonth=form.cardMonth.options[form.cardMonth.selectedIndex].value;if(!(new CardType()).isExpiryDate(tmpyear,tmpmonth)){alert("This card has already expired.");return false}
var card='unset'
for(var i=0;i<form.cardType.length;i++){if(form.cardType[i].checked){card=form.cardType[i].value}}
if(card=='unset'){alert("Please select a card type");return false}
var retval=eval(card+".checkCardNumber(\""+form.cardNumber.value+"\", "+tmpyear+", "+tmpmonth+");");cardname="";if(retval){return true}
else{for(var n=0;n<Cards.size;n++){if(Cards[n].checkCardNumber(form.cardNumber.value,tmpyear,tmpmonth)){cardname=Cards[n].getCardType();break}}
if(cardname.length>0){alert("This looks like a "+cardname+" number, not a "+card+" number.");return false}
else{alert("This card number is not valid.");return false}}}
function CardType(){var n;var argv=CardType.arguments;var argc=CardType.arguments.length;this.objname="object CardType";var tmpcardtype=(argc>0)?argv[0]:"CardObject";var tmprules=(argc>1)?argv[1]:"0,1,2,3,4,5,6,7,8,9";var tmplen=(argc>2)?argv[2]:"13,14,15,16,19";this.setCardNumber=setCardNumber;this.setCardType=setCardType;this.setLen=setLen;this.setRules=setRules;this.setExpiryDate=setExpiryDate;this.setCardType(tmpcardtype);this.setLen(tmplen);this.setRules(tmprules);if(argc>4)
this.setExpiryDate(argv[3],argv[4]);this.checkCardNumber=checkCardNumber;this.getExpiryDate=getExpiryDate;this.getCardType=getCardType;this.isCardNumber=isCardNumber;this.isExpiryDate=isExpiryDate;this.luhnCheck=luhnCheck;return this}
function checkCardNumber(){var argv=checkCardNumber.arguments;var argc=checkCardNumber.arguments.length;var cardnumber=(argc>0)?argv[0]:this.cardnumber;var year=(argc>1)?argv[1]:this.year;var month=(argc>2)?argv[2]:this.month;this.setCardNumber(cardnumber);this.setExpiryDate(year,month);if(!this.isCardNumber())
return false;if(!this.isExpiryDate())
return false;return true}
function getCardType(){return this.cardtype}
function getExpiryDate(){return this.month+"/"+this.year}
function isCardNumber(){var argv=isCardNumber.arguments;var argc=isCardNumber.arguments.length;var cardnumber=(argc>0)?argv[0]:this.cardnumber;if(!this.luhnCheck())
return false;for(var n=0;n<this.len.size;n++)
if(cardnumber.toString().length==this.len[n]){for(var m=0;m<this.rules.size;m++){var headdigit=cardnumber.substring(0,this.rules[m].toString().length);if(headdigit==this.rules[m])
return true}
return false}
return false}
function isExpiryDate(){var argv=isExpiryDate.arguments;var argc=isExpiryDate.arguments.length;year=argc>0?argv[0]:this.year;month=argc>1?argv[1]:this.month;if(!isNum(year+""))
return false;if(!isNum(month+""))
return false;today=new Date();expiry=new Date(year,month);if(today.getTime()>expiry.getTime())
return false;else
return true}
function isNum(argvalue){argvalue=argvalue.toString();if(argvalue.length==0)
return false;for(var n=0;n<argvalue.length;n++)
if(argvalue.substring(n,n+1)<"0"||argvalue.substring(n,n+1)>"9")
return false;return true}
function luhnCheck(){var argv=luhnCheck.arguments;var argc=luhnCheck.arguments.length;var CardNumber=argc>0?argv[0]:this.cardnumber;if(!isNum(CardNumber)){return false}
var no_digit=CardNumber.length;var oddoeven=no_digit&1;var sum=0;for(var count=0;count<no_digit;count++){var digit=parseInt(CardNumber.charAt(count));if(!((count&1) ^ oddoeven)){digit *=2;if(digit>9)
digit-=9}
sum+=digit}
if(sum%10==0)
return true;else
return false}
function makeArray(size){this.size=size;return this}
function setCardNumber(cardnumber){this.cardnumber=cardnumber;return this}
function setCardType(cardtype){this.cardtype=cardtype;return this}
function setExpiryDate(year,month){this.year=year;this.month=month;return this}
function setLen(len){if(len.length==0||len==null)
len="13,14,15,16,19";var tmplen=len;n=1;while(tmplen.indexOf(",")!=-1){tmplen=tmplen.substring(tmplen.indexOf(",")+1,tmplen.length);n++}
this.len=new makeArray(n);n=0;while(len.indexOf(",")!=-1){var tmpstr=len.substring(0,len.indexOf(","));this.len[n]=tmpstr;len=len.substring(len.indexOf(",")+1,len.length);n++}
this.len[n]=len;return this}
function setRules(rules){if(rules.length==0||rules==null)
rules="0,1,2,3,4,5,6,7,8,9";var tmprules=rules;n=1;while(tmprules.indexOf(",")!=-1){tmprules=tmprules.substring(tmprules.indexOf(",")+1,tmprules.length);n++}
this.rules=new makeArray(n);n=0;while(rules.indexOf(",")!=-1){var tmpstr=rules.substring(0,rules.indexOf(","));this.rules[n]=tmpstr;rules=rules.substring(rules.indexOf(",")+1,rules.length);n++}
this.rules[n]=rules;return this}

